More Related Content
More from Laboratory of Information Science and Semantic Technologies (8)
Экспертные системы: лекция №3
- 2. ©2014МуромцевД.И.Лекция3
Продукционная система
(production system)
Модель вычислений, основанная на продукционных
правилах (production rule), использует правила вида «ЕСЛИ
условие, ТО действие» (IF… THEN…).
Впервые идея появилась в работе Эмиля Поста (Emil Leon
Post), 1943*, посвященной исследованию частного случая
канонической системы Поста.
Управление продукционными системами основано на
Марковских алгоритмах.
Пост доказал, что любая система в математики или логике
может быть представлена в виде продукционных правил. То
есть система продукции эквивалентна машине Тьюринга.
2
* Post E. (1943) Formal reduction of the general combination problem. American journal of Mathematics, 65: 197-268, 1943
- 4. ©2014МуромцевД.И.Лекция3
База знаний
В БЗ содержится множество продукционных правил
или просто продукций (productions);
Условная часть (IF–part) правила — антецедент
(antecedent) — является шаблоном (образцом), по
которому можно определить, в какой момент
необходимо использовать (активировать) данное
правило;
Часть действия (THEN–part) — консеквент (consequent)
— описывает соответствующий шаг решения.
4
- 7. ©2014МуромцевД.И.Лекция3
Стратегии разрешения конфликтов
Рефракция (refraction) для предотвращения
зацикливания.
Новизна (recency) позволяет сосредоточить поиск на
одной линии рассуждения.
Специфичность (specifity) отдает предпочтение более
конкретным правилам перед более общими
7
Пример реализации стратегий разрешения конфликтов в
системе OPS5* (модификации системы OPS - "Official
Production System», разработанной в конце 1970-х
Чарльзом Форги):
* Brownston L., Farrel R., Kant E., Martin N. (1985) Programming Expert Systems in OPS5: An
Introduction to Rule-Based Programming. Reading, MA: Addison-Wesley, 1985.
- 8. ©2014МуромцевД.И.Лекция3
Разрешение конфликтов в DROOLS
Приоритет («выпуклость» - Salience).
Новизна (Recency).
Первенство (Primacy).
FIFO (First In First Out).
LIFO (First In First Out).
Сложность (Complexity).
Простота (Simplicity).
Порядок загрузки (LoadOrder).
Случайность (Random).
8
В современной системе DROOLS имеется значительное количество
реализованных стратегий, а также можно определить свою*:
* http://legacy.drools.codehaus.org/Conflict+Resolution
- 11. ©2014МуромцевД.И.Лекция3
Примеры продукций
П1: ЕСЛИ клиент работает на одном месте
более двух лет, ТО клиент имеет
постоянную работу.
П2: ЕСЛИ клиент имеет постоянную работу
И клиенту более 18 лет И клиент НЕ имеет
финансовых обязательств, ТО клиент может
претендовать на получение кредита.
11
- 12. ©2014МуромцевД.И.Лекция3
Цепочка вывода (reasoning)
12
ЕСЛИ клиент работает на одном
месте более двух лет,
ТО клиент имеет постоянную
работу.
ЕСЛИ клиент имеет постоянную
работу
И клиенту более 18 лет
И клиент НЕ имеет финансовых
обязательств,
ТО клиент может претендовать на
получение кредита.
клиент работает на одном месте
более двух лет
клиенту более 18 лет
клиент НЕ имеет финансовых
обязательств
клиент может
претендовать на
получение кредита
клиент имеет постоянную
работу
заключение
правило
факт
действие
сопоставление
- 14. ©2014МуромцевД.И.Лекция3
Направления вывода
Вывод на основе данных (data–driven search),
процесс решения задачи начинается с исходных
фактов. Этот процесс также называют прямой
цепочкой вывода (forward chaining).
Вывод от цели (goal–directed strategy)
начинается от одной из допустимых целей, и
рассматриваются пути, ведущие к достижению
этой цели. Такой способ поиска называют
также обратной цепочкой вывода (backward
chaining).
14
- 15. ©2014МуромцевД.И.Лекция3
Прямая цепочка
Все или большинство данных заданы в пространстве задачи.
Существует большое количество потенциальных целей, но
всего лишь несколько способов представления и
применения исходных фактов.
Сформировать цель или гипотезы очень трудно в силу
избыточности исходных данных или большого числа
конкурирующих гипотез.
15
Прямая цепочка рассуждений применяется в задачах, где на основании
имеющихся фактов необходимо определить тип (класс) объекта или
явления, выдать рекомендацию, определить диагноз и т.п. Вывод на
основе данных применим к решению задач в следующих случаях:
- 16. ©2014МуромцевД.И.Лекция3
Алгоритм прямого вывода
16
Алгоритм прямого вывода основан на стратегии поиска в ширину.
Начальная инициализация
рабочей памяти
Проверка правила
Добавить консеквент к
рабочей памяти
Передать резултат
Выбор следующего
правила
Конец
Правило
акстивировано?
Есть еще
правила?
нет
да
нет
да
Цель найдена?
нет
да
- 17. ©2014МуромцевД.И.Лекция3
Пример прямого вывода
(база знаний)
ЕСЛИ Процентные ставки падают, ТО Уровень цен на бирже
растет.
ЕСЛИ Процентные ставки растут, ТО Уровень цен на бирже падает.
ЕСЛИ Валютный курс доллара падает, ТО Процентные ставки
растут.
ЕСЛИ Валютный курс доллара растет, ТО Процентные ставки
падают.
ЕСЛИ Процентные ставки федерального резерва падают И
Средства федерального резерва добавлены, ТО Процентные ставки
падают.
17
Пример миниатюрной экспертной системы для фондовой биржи.
БЗ включает, следующие продукционные правила:
- 21. ©2014МуромцевД.И.Лекция3
Обратная цепочка рассуждений
Цель поиска явно присутствует в постановке задачи
или может быть легко сформулирована.
Имеется слишком большое число правил, которые на
основе исходных фактов продуцируют возрастающее
число заключений или целей.
Исходные данные не приводятся в задаче, но
подразумевается, что они должны быть известны или
могут быть легко получены.
21
Обратная цепочка рассуждений применяется в задачах, соответствующих
процессу проверки гипотез при решении проблем человеком — для
заданной ситуации необходимо определить условия к ней приводящие.
Процесс поиска от цели к данным рекомендован в следующих случаях:
- 22. ©2014МуромцевД.И.Лекция3
Алгоритм обратного вывода
1. Определить цель для логического вывода и выбрать ее в качестве текущей подцели.
2. В списке правил найти первое вхождение этой подцели. Если правило найдено,
перейти к рассмотрению условной части найденного правила. Если правило не
найдено, сообщить пользователю, что ответ найти невозможно.
3. Выбрать в качестве подцелей факты из условия из данного правила.
4. Если в списке подцелей имеются факты, истинность или значение которых могут
быть запрошены у пользователя, то задать пользователю соответствующие вопросы.
5. Если очередная подцель выведена, то перейти к шагу 2.
6. Если очередная подцель не может быть выведена или запрошена у пользователя,
сообщить, что ответ получить невозможно.
7. Если все подцели подтверждены, то сообщить пользователю окончательный вывод.
22
Алгоритм прямого вывода обычно основан на стратегии поиска в
глубину. Этот процесс предусматривает следующие шаги:
- 24. ©2014МуромцевД.И.Лекция3
Пример обратного вывода
(формирование правил)
1. Выбрать из дерева решений вершину вывода и зафиксировать её.
2. Найти вершину решения, расположенную слева от выбранной вершины вывода
и связанную с ней ветвью, и зафиксировать её.
3. Повторять шаг 2 до тех пор, пока не будут рассмотрены все вершины решения,
расположенные левее зафиксированной вершины вывода или не встретится
новая вершина вывода. Если встретилась вершина вывода, то её надо
зафиксировать и прекратить выполнение шага 2. Выполнение также
прекращается, если исчерпаны все вершины.
4. Каждая вершина решения, составляющая путь, — это одна из переменных части
ЕСЛИ правила. Значение, связанное с ветвью, представляет собой условие.
Переменные условной части правила объединяются логическим оператором И.
5. Выбранный логический вывод перенести в часть ТО правила.
24
Условная часть содержит все вершины решения, находящиеся на пути к выводу.
Вывод же составляет часть правила ТО. Таким образом, процесс формирования
правил для всех возможных логических выводов состоит из следующих шагов:
- 25. ©2014МуромцевД.И.Лекция3
Пример пути на дереве решений
(пример формирования правил)
Путь 1→4→6:
ЕСЛИ Посетитель имеет ученое звание И Посетитель сделал
важное открытие, ТО Предложить посетителю должность
научного сотрудника.
25
- 26. ©2014МуромцевД.И.Лекция3
Другие пути на дереве решений для
приведенного примера
Путь 1→2: ЕСЛИ Посетитель НЕ имеет ученое звание, ТО Посетителю отказать.
Путь 1→3: ЕСЛИ Посетитель имеет ученое звание, ТО Возможно, что
посетитель будет принят на работу.
Путь 1→4→6: ЕСЛИ Посетитель имеет ученое звание И Посетитель сделал
важное открытие, ТО Предложить посетителю должность научного сотрудника.
Путь 3→5→7→10: ЕСЛИ Возможно, что посетитель будет принят на работу И
Средний бал посетителя за время учебы < 3,5 И Опыт работы посетителя по
специальности > 2 лет, ТО Предложить посетителю должность инженера по
эксплуатации.
Путь 3→5→7→9: ЕСЛИ Возможно, что посетитель будет принят на работу И
Средний бал посетителя за время учебы < 3,5 И Опыт работы посетителя по
специальности < 2 лет, ТО Посетителю отказать.
Путь 3→5→8: ЕСЛИ Возможно, что посетитель будет принят на работу И
Средний бал посетителя за время учебы > 3,5, ТО Предложить посетителю
должность инженера–конструктора.
26
- 27. ©2014МуромцевД.И.Лекция3
Пример обратного вывода
(первый шаг вывода)
Предположим, что претендент на работу хочет
получить должность инженера–конструктора
27
Предложить посетителю
должность инженера–
конструктора
Текущая подцель
Правило 1
Правило 2
Правило 3
Правило 4
Правило 5
Правило 6
Правила
- 28. ©2014МуромцевД.И.Лекция3
Пример обратного вывода
(второй шаг вывода)
Правило 6 содержит в заключении изначальный факт,
следовательно, система перейдет к рассмотрению новых
подцелей
28
Предложить посетителю
должность инженера–
конструктора
Возможно, что посетитель будет
принят на работу»,
Средний бал посетителя за время
учебы
Текущая подцель
Правило 1
Правило 2
Правило 3
Правило 4
Правило 5
Правило 6
Правила
- 29. ©2014МуромцевД.И.Лекция3
Пример обратного вывода
(второй шаг вывода)
В заключении правила 2 указан факт «Возможно, что
посетитель будет принят на работу», следовательно
следующей подцелью будет факт из условной части правила 2:
29
Предложить посетителю
должность инженера–
конструктора
Возможно, что посетитель будет
принят на работу»,
Средний бал посетителя за время
учебы
Посетитель имеет ученое звание
Текущая подцель
Правило 1
Правило 2
Правило 3
Правило 4
Правило 5
Правило 6
Правила
- 30. ©2014МуромцевД.И.Лекция3
Эвристические знания и метаправила
Иногда для получения решения требуется
вмешательство в стандартный процесс
вывода.
Метаправила не принимают
непосредственного участия в процессе
формирования рассуждений, а определяют
приоритет выполнения или исключают из
рассмотрения обычных правила и
выполняются в первую очередь.
30
- 33. ©2014МуромцевД.И.Лекция3
Алгоритм Rete для
оптимизации поиска правил
33
По существу, алгоритм
RETE интегрирует правила
в сетевую структуру,
позволяющую системе
сопоставлять правила с
данными, непосредственно
указывающими на
правило. Этот алгоритм
значительно ускоряет
выполнение поиска,
особенно, если число
правил велико.
- 37. ©2014МуромцевД.И.Лекция3
Пример правила в Drools
IF the entrance pupil of an optical system is removed forward
THEN exclude the all base elements with exception of B3A3P
element
37
rule “The B3A3P element”
when
Classification( D == 2 )
$elements := ArrayList() from
collect( OpticalElement() )
then
modify( $elements ) {
clear()
add( new OpticalElement( type == “B”,
surfaces == “3A3P” ))
}end
- 38. ©2014МуромцевД.И.Лекция3
Пример метаправила в Drools
IF the optical system is not fast
THEN a fast element isn’t needed at the system
38
rule “No fast”
when
Classification( J == 1 )
$conds := SystemConditions()
then
modify( $conds ) {
setIsFastNeeded( false )
}
end