Автор работы: Пользователь скрыл имя, 17 Июня 2013 в 23:21, лабораторная работа
Для решения нашей конкретной задачи предположим, что в результате бесед с экспертом в области установления неисправностей и ремонта ОС Windows были установлены следующие эмпирические правила:
Плеер может не включаться, работать стабильно, работать не стабильно.
Если плеер включается, и работает стабильно, значит микросхемы и флеш-диск целы, экран плеера цел, в нем есть закаченная музыка, питание на плеер подается, аудиовыход не сломан, сбоя памяти и программного обеспечения нет, никакого ремонта не требуется.
Если плеер не включился, то нужно узнать, подается ли питание на плеер.
(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 "Извините, неисправность плеера не установлена. Обратитесь в сервисную службу."))
)
(defrule print-repair ""
(declare (salience 10))
(repair ?item)
=>
(printout t crlf crlf)
(printout t "Suggested Repair:")
(printout t crlf crlf)
(format t " %s%n%n%n" ?item))
Информация о работе Экспертная система установления неисправностей и ремонта flash-плееров