Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по выполнению лабораторных 1-4 / Методические указания к лаб 1 и 2.doc
Скачиваний:
43
Добавлен:
20.06.2014
Размер:
99.84 Кб
Скачать

Лабораторная работа №1 Создание простейшей экспертной системы с использованием прямой цепочки рассуждений Общие сведения

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

Имеет место некоторая стартовая ситуация (перегрев двигателя), требуется предсказать ее последствия. После того, как зафиксировано определенное состояние, в работу включаются относящиеся к нему правила:

Например,

1. ЕСЛИ двигатель перегрелся, ТО мотор заглохнет

2. ЕСЛИ мотор заглохнет, ТО это приведет к позднему возвращению домой

Отправной точкой рассуждений служит уже возникшая ситуация (перегрев двигателя). Затем "срабатывает" условная часть ЕСЛИ 1-го правила. Поскольку возникшая ситуация удовлетворяет содержащемуся в ней условию, согласно констатирующей части этого правиля (части ТО) выводится новая ситуация (мотор заглохнет). Цепочка рассуждений продолжается. После этого "сработает" условная часть ЕСЛИ 2-го правила, что приведет к новой ситуации (позднему возвращению домой). Описанная последовательность рассуждений называется прямой цепочкой потому, что констатирующая часть правила (ТО) выполняется только в том случае, если удовлетворяется условная часть правила (ЕСЛИ).

Что же должна делать программа ? Она должна запросить у пользователя данные о возникшей ситуации (например, о перегреве двигателя) и имя базы знаний (например, "Диагностика неисправностей в автомобиле"), просмотреть информацию в базе знаний и затем, проведя прямую цепочку рассуждений, сделать вывод.

Например, база знаний на основе 7 правил может иметь следующую структуру:

1. ЕСЛИ объект1=значение1, ТО объект2=значение2

3. ЕСЛИ объект2=значение2, ТО объект3=значение3

4. ЕСЛИ объект2=значение2, ТО объект8=значение8

5. ЕСЛИ объект8=значение8, ТО объект15=значение15

6. ЕСЛИ объект2=значение2, ТО объект10=значение10

7. ЕСЛИ объект10=значение10, ТО объект11=значение11

Общий алгоритм:

1. Система содержит описание ряда ситуаций.

2. Для каждой ситуации система ищет в БЗ правила, в условной части которых содержится соответствующее условие.

3. В соответствие с констатирующей частью (ТО) каждое правило может генерировать новые ситуации, которые добавляются к уже существующим.

4. Система обрабатывает каждую вновь сгенерированную ситуацию. При наличии хотя бы одной такой ситуации выполняются действия, начиная с пункта 2. Рассуждения заканчиваются, когда больше нет необработанных ситуаций.

В общем случае может быть несколько одновременно срабатывающих правил, т.е. правил, которые содержат в части ЕСЛИ одинаковую пару ОБЪЕКТ=ЗНАЧЕНИЕ. В примере, приведенном выше, такие пары выделены жирным шрифтом. Таким образом, правило, "сработавшее" на шаг ранее,

приводит к "срабатыванию" сразу нескольких правил, количество которых заранее неизвестно.

Для обработки такой множественной генерации новых ситуаций предлагается использовать структуру данных, называемую очередью (FIFO). Принцип работы очереди – "первым пришел - первого обслужили".

------------

объект1 <- начало очереди

------------

объект2 <- конец очереди

------------

------------

------------

 поступление объектов в очередь

Кроме того, для хранения информации о текущем правиле можно создать структуру данных (указатель правила), в которой хранить номер правила и номер условия в правиле, поскольку условная часть правила в общем случае может содержать несколько условий.

Детальный алгоритм работы системы с прямой цепочкой рассуждений состоит из следующих шагов:

1. Определить исходной состояние.

2. Занести объект в очередь, а его значение - в список объектов.

3. Просмотреть список объектов и найти тот объект, имя которого стоит в начале очереди. Если объект найден, записать в указатель правила номер правила и число 1 (номер условия в части ТО). Если объектов не найден, перейти к шагу 6.

4. Присвоить значения непроинициализированным объектам условной части найденного правила (если такие есть). Имена объектов содержатся в списке объектов. Проверить все условия правила и в случае их истинности обратиться к части ТО правила.

5. Присвоить значение объекту, входящему в часть ТО правила, и поместить его в конец очереди объектов.

6. Удалить объект, стоящий в начале очереди объектов, если он больше не встречается в условной части какого-либо правила.

7. Закончить процесс рассуждений, как только опустеет очередь объектов. Если же в очереди еще есть объекты, то вернуться к шагу 3.

Задание

1. Сформировать собственную базу правил (не менее 10 правил) в произвольной предметной области на основе собственных знаний или знаний эксперта.

2. Правила должны формироваться в следующем виде:

ЕСЛИ Объект1=Значение1, ТО Объект2=Значение2

3. Допускается использование логической связки "И".

Например, ЕСЛИ объект1=значение1 И объект2=значение2, ТО объект3=значение3

4. База правил должна быть отделена от программного модуля и представлять собой отдельный текстовый файл.

5. База правил может дополняться новыми правилами, которые записываются в конец текстового файла в требуемом формате.

6. Написать программный модуль, реализующий вышеприведенный алгоритм на одном из распространенных языков программирования (Basic, Pascal, C).

7. В программе должны быть предусмотрены средства для отображения имен объектов и их разрешенных значений в процессе интерактивного диалога с пользователем.

8. Задать стартовую ситуацию, соответствующую части ЕСЛИ какого-либо правила, в виде пары "объект=значение".

Тестовый пример базы правил в экспертной системе по оказанию финансовых консультаций:

1. ЕСЛИ ставка=растет, ТО цены=падают

2. ЕСЛИ ставка=падает, ТО цены=растут

3. ЕСЛИ курс$=падает, ТО ставка=растет

4. ЕСЛИ курс$=растет, ТО ставка=падает

5. ЕСЛИ ставка_федерального_резерва=падает И федеральный_резерв=добавить, ТО ставка=падает

Предположим, имеется следующая стартовая ситуация: курс$ = падает

Экспертная система на основе данной стартовой ситуации и своей базы правил должна оказать сделать определенный вывод и отобразить его на экране.

Содержание отчета

Описание работы с программой. Листинг программы с комментариями. Распечатка базы правил. Пример работы системы для заданной стартовой ситуации.

Контрольные вопросы

1. Что такое экспертная система ? (ЭС)

2. Каковы ограничения ЭС по сравнению с человеком-экспертом ?

3. Каковы преимущества ЭС по сравнению с человеком-экспертом ?

4. Каковы стратегии управления выводом ?

5. Каковы области применения ЭС ?

6. Каковы критерии использования ЭС ?