Экспертная система установления неисправностей и ремонта flash-плееров

Автор работы: Пользователь скрыл имя, 17 Июня 2013 в 23:21, лабораторная работа

Описание работы

Для решения нашей конкретной задачи предположим, что в результате бесед с экспертом в области установления неисправностей и ремонта ОС Windows были установлены следующие эмпирические правила:
Плеер может не включаться, работать стабильно, работать не стабильно.
Если плеер включается, и работает стабильно, значит микросхемы и флеш-диск целы, экран плеера цел, в нем есть закаченная музыка, питание на плеер подается, аудиовыход не сломан, сбоя памяти и программного обеспечения нет, никакого ремонта не требуется.
Если плеер не включился, то нужно узнать, подается ли питание на плеер.

Файлы: 1 файл

Отчет_Ksu.doc

— 164.50 Кб (Скачать файл)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Представление знаний в Информационных Системах

Отчет по лабораторной работе

Тема «Экспертная  система установления неисправностей и ремонта flash-плееров»

                           

 

 

 

 

 

 

 

 

Отметка о зачете «__________________»

Ст. преподаватель кафедры И3

__________________ Толмачев С.Г

«___» _________________ 2008 г.

 

 

Выполнила студент гр. И 343

 

__________ Ксю________

«23» ___Октября_____ 2008 г.


 

  1. Исходные данные

Для решения нашей конкретной задачи предположим, что в результате бесед с экспертом в области установления неисправностей и ремонта ОС Windows были установлены следующие эмпирические правила:

  1. Плеер может не включаться, работать стабильно, работать не стабильно.
  2. Если плеер включается, и работает стабильно, значит микросхемы и флеш-диск целы, экран плеера цел, в нем есть закаченная музыка, питание на плеер подается, аудиовыход не сломан, сбоя памяти и программного обеспечения нет,  никакого ремонта не требуется.
  3. Если плеер не включился, то нужно узнать, подается ли питание на плеер. Если подается, а плеер не включается, то значит, либо внутренний флеш-диск, либо микросхемы сгорели или треснули, необходимо отнести его в сервис-центр. Если питание на плеер не подается, необходимо его подать, путем замены батареек.
  4. Если  плеер  включился, но работает не стабильно, и музыка не проигрывается, то возможно в нём нет песен, необходимо убедится, что в нем есть закаченные треки.
  5. Если плеер включился, но работает не стабильно, и музыка не проигрывается, а песни в нём есть, то возможно сломан аудиовыход, убедитесь что аудиовыход в порядке. Если аудиовыход сломан, расколот или видны другие механические неисправности, то необходимо отнести плеер в сервис центр.
  6. Если плеер включился, но работает не стабильно, и музыка не проигрывается, а песни в нём есть, аудиовыход в порядке, то это сбой программного обеспечения плеера, необходимо подключить плеер к компьютеру, выполнить синхронизацию, и переустановить программное обеспечение плеера.
  7. Если плеер включился, но работает не стабильно, есть звук, и на экране выводится не то что должно выводиться, то это сбой программного обеспечения плеера, необходимо подключить плеер к компьютеру, выполнить синхронизацию, и переустановить программное обеспечение плеера.
  8. Если плеер включился, но работает не стабильно, и музыка играет некорректно, то возможно это сбой памяти, необходимо присоединить плеер к компьютеру и проверить память.
  9. Если плеер включился, но работает не стабильно, и не работает экран, то это механическая ошибка, необходимо отнести плеер в сервис центр.
  10. Возможны ситуации, когда состояние плеера  нельзя описать приведенными выше факторами и устройству может потребоваться более детальный анализ состояния.

 

Имея эти  данные, приступим к решению поставленной задачи.

 

 

  1. Сущности

 

;   Группа фактов,   описывающая  состояние плеера

working-state disenabled  ; не включается

working-state stable ; работает стабильно

working-state trable ; работает не стабильно

;  Группа фактов,   описывающая  состояние питания плеера

power-state be ; питание есть

power-state not ; питания нет

;  Группа фактов, описывающая  состояние звука

sound-state be ; звук есть

sound-state not ; звука нет

;  Группа фактов, описывающая  состояние экрана

display-state norm ; экран исправен

display-state err ; экран неисправен

;  Группа фактов, описывающая  проигрывания музыки

play-state norm ; экран исправен

play-state err ; экран неисправен

 

 

 

 

  1. Рекомендации

 

  1. Из правила 2 – Никакого ремонта не требуется;
  2. Из правила 3 – Необходимо подать питание на плеер, путем замены батареек;
  3. Из правила 4 – Необходимо убедиться, что в плеере есть закаченные треки;
  4. Из правила 5 – Необходимо убедиться, что аудиовыход не сломан;
  5. Из правила 6 – Необходимо подключить плеер к компьютеру, выполнить синхронизацию, и переустановить программное обеспечение плеера;
  6. Из правила 7 – Необходимо  подключить плеер к компьютеру, выполнить синхронизацию, и переустановить программное обеспечение плеера;
  7. Из правила 8 – Необходимо  присоединить плеер к компьютеру и проверить память;
  8. Из правила 9 – Необходимо отнести плеер в сервис центр;
  9. Из правила 10 – Обращение в службу поддержки.

 

 

  1. Факты, описывающие рекомендации по ремонту принтера

 

  • repair "Ремонт плеера не требуется. Спасибо, за пользование программой";
  • repair "Внутренний флеш-диск, либо микросхемы сгорели или треснули, необходимо отнести его в сервис-центр.";
  • repair "Подайте питание на плеер, путём замены батареек.";
  • repair "Все в порядке, просто закачайте музыку в плеер, следуя инструкции";
  • repair "Если аудиовыход сломан, расколот или видны другие механические неисправности, то необходимо отнести плеер в сервис центр.";
  • repair "Это сбой программного обеспечения плеера. Необходимо подключить плеер к компьютеру, выполнить синхронизацию, и переустановить программное обеспечение плеера.";
  • repair "Это сбой программного обеспечения плеера, необходимо подключить плеер к компьютеру, выполнить синхронизацию, и переустановить программное обеспечение плеера.";
  • repair "Это механическая ошибка, необходимо отнести плеер в сервис центр.";
  • repair "Это сбой памяти, необходимо присоединить плеер к компьютеру и проверить память.";
  • repair "Причина неисправности экрана не установлена, обратитесь в сервис центр";
  • repair "Извините, неисправность плеера не установлена. Обратитесь в сервисную службу.".

 

Все приведенные факты, использующиеся для предоставления пользователю рекомендаций по ремонту, во втором поле содержат текстовое значение с рекомендацией по ремонту.

Кроме описанных выше фактов системе могут понадобиться факты, описывающие проявления неисправности. Однако в нашей версии экспертной системы таких фактов не будет. Приведенный выше список фактов вполне достаточен для решения поставленной задачи.

  1. Структура вопросов

 

  1. Диагностические правила

 

Правило determine-working-state

(defrule determine-working-state ""

(not (working-state ?))

   (not (repair ?))

=>

   (if (yes-or-no-p "Включается ли у вас player? (yes/no)? ")

       then

(if (yes-or-no-p "Требуется ли ремонт плеера?  (yes/no)? ")

           then

    (assert (working-state trable))

   else

   (assert (repair "Ремонт плеера не требуется.  Спасибо, за пользование программой"))

   (assert (working-state stable))

)

       else

       (assert (working-state disenabled))

  

)

)

 

Правило определяющее подается ли питание на плеер, если он не включается.

(defrule determine-power-state ""

(working-state disenabled)

(not (power-state ?))

(not (repair ?))

=>

(if (yes-or-no-p "Питание  на плеер подается? (yes/no)? ")

then

(assert (repair "Внутренний флеш-диск, либо микросхемы сгорели или треснули, необходимо отнести его в сервис-центр."))

(assert (power-state be))

else

(assert (repair "Подайте питание на плеер, путём замены батареек."))

(assert (power-state not))

)

)

 

 

Правило определяющее есть ли звук в плеере

(defrule determine-sound-state ""

(working-state trable)

(not (sound-state ?))

(not (repair ?))

=>

(if (yes-or-no-p "Проблема  из-за отсутствия звука в плеере? (yes/no) ")

then

(if (yes-or-no-p " Нет загруженных треков в плеер? (yes - треки есть/no - треков нет)? ")

then

(assert (repair "Все  в порядке, просто закачайте  музыку в плеер, следуя инструкции"))

(assert (sound-state not)) 

else

(if (yes-or-no-p " Сломан аудиовыход? (yes - аудиовыход сломан/no - аудиовыход цел)? ")

then

(assert (repair "Если  аудиовыход сломан, расколот или  видны другие механические неисправности,  то необходимо отнести плеер  в сервис центр."))

(assert (sound-state not))

else

 

(assert (repair "Это сбой программного обеспечения плеера. Необходимо подключить плеер к компьютеру, выполнить синхронизацию, и переустановить программное обеспечение плеера."))

(assert (sound-state not)) 

else   

(assert (sound-state be))

 

)

)

)

)

 

Правило определяющее состояние экрана

(defrule determine-display-state ""

(working-state trable)

(not (display-state ?))

(not (repair ?))

=>

(if (yes-or-no-p "Неисправность плеера заключается в некорректной работе экрана?(yes/no)?")

then

(if (yes-or-no-p "Выводится ли  что либо на экран? (yes/no)? ")

then

(assert (repair "Это сбой программного  обеспечения плеера, необходимо  подключить плеер к компьютеру, выполнить синхронизацию, и переустановить программное обеспечение плеера."))

(assert (display-state err)) 

else

(if (yes-or-no-p "Не работает экран?(yes/no)? ")

then

(assert (repair "Это механическая  ошибка, необходимо отнести плеер  в сервис центр."))

(assert (display-state err))

else   

(assert (repair "Причина неисправности экрана не установлена, обратитесь в сервис центр"))

(assert (display-state err))

 

)

)

else   

(assert (display-state norm))

)

)

 

Правило определяющее подается ли питание на плеер

(defrule determine-play-state ""

(working-state trable)

(not (play-state ?))

(not (repair ?))

=>

(if (yes-or-no-p "Музыка  играет некорректно? (yes-играет плохо/no-замечательно  играет, жалоб нет)? ")

then

(assert (repair "Это  сбой памяти, необходимо присоединить  плеер к компьютеру и проверить память."))

(assert (play-state err))

else

(assert (play-state norm))

 

 

Правило действующее если не удалось определить неисправность

 

(defrule no-repairs ""

(declare (salience -10))

(not (repair ?))

=>

(assert (repair "obratites' v slujbu poddrejki"))

)

 

 

  1. Запуск программы

Для запуска программы наберите  приведенный в конце отчета листинг в каком-нибудь текстовом редакторе (лучше использовать встроенный редактор CLIPS). Сохраните набранный файл, например, с именем source_Ksu.clp. После этого запустите CLIPS или, если он уже был у вас запущен, очистите его командой (clear) . Загрузите созданный вами файл с помощью команда (load "source_Ksu.clp"). Если файл был набран без ошибок, то вы должны увидеть сообщения, представленные на рис.1.

Рис.1 демонстрирует успешную попытку загрузки файла конструкторов Обратите внимание, что функция load вернула значение true. Если это не так, значит, в синтаксисе определений функций или правил была допущена ошибка. Для загрузки вы также могли бы воспользоваться функцией load*. В этом случае на экран не выводилась бы информация, отражающая процесс загрузки.

Рисунок 1. Загрузка экспертной системы

 

После удачной загрузки файла убедитесь, что все правила присутствуют в списке правил CLIPS, а функции — в списке функций. Легче всего это выполнить с помощью менеджеров правил и функций соответственно.

Для того чтобы запустить нашу экспертную систему, достаточно выполнить команду  reset, которая добавит факт initial-fact, необходимый для правила system-banner, и команду run. После этого вы сразу увидите сообщение "The Engine Diagnosis Expert system", которое означает, что система начала работать, и получите серию вопросов, ответы на которые помогут экспертной системе оценить текущее состояние вашей машины и подобрать соответствующую рекомендацию по ремонту.

Обратите внимание, что если после  завершения работы нашей экспертной системы в списке фактов CLIPS остаются факты, описывающие состояние автомобиля, их легко просмотреть с помощью команды Fact Window из меню Window.

 

Рисунок 2. Результат работы экспертной системы.

  1. Листинг программы

 

;;программу  выполнена студенткой группы  и-343

;;Федоровой  Ксю

;;****************

;;* DEFFUNCTIONS *

;;****************

 

(deffunction ask-question (?question $?allowed-values)

   (printout t ?question)

   (bind ?answer (read))

   (if (lexemep ?answer)

       then (bind ?answer (lowcase ?answer)))

   (while (not (member ?answer ?allowed-values)) do

      (printout t ?question)

      (bind ?answer (read))

      (if (lexemep ?answer)

          then (bind ?answer (lowcase ?answer))))

   ?answer)

 

(deffunction yes-or-no-p (?question)

   (bind ?response (ask-question ?question yes no y n))

   (if (or (eq ?response yes) (eq ?response y))

       then TRUE

       else FALSE))

 

;;Правило determine-working-state 

(defrule determine-working-state ""

(not (working-state ?))

   (not (repair ?))

=>

   (if (yes-or-no-p "Включается ли у вас player? (yes/no)? ")

       then

(if (yes-or-no-p "Требуется  ли ремонт плеера?  (yes/no)? ")

           then

    (assert (working-state trable))

   else

   (assert (repair "Ремонт плеера не требуется. Спасибо, за пользование программой"))

   (assert (working-state stable))

)

       else

       (assert (working-state disenabled))

  

)

)

 

;;правило определяющее подается ли питание на плеер, если он не включается.

(defrule determine-power-state ""

(working-state disenabled)

(not (power-state ?))

(not (repair ?))

=>

(if (yes-or-no-p "Питание на плеер подается? (yes/no)? ")

then

(assert (repair "Внутренний флеш-диск, либо микросхемы сгорели или треснули, необходимо отнести его в сервис-центр."))

(assert (power-state be))

else

(assert (repair "Подайте  питание на плеер, путём замены  батареек."))

(assert (power-state not))

)

)

 

 

;;Правило определяющее есть ли звук в плеере

(defrule determine-sound-state ""

Информация о работе Экспертная система установления неисправностей и ремонта flash-плееров