Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Экспертные системы: лекция №3

1,526 views

Published on

Представление знаний (часть 2): Продукционные правила

Published in: Education
  • Be the first to comment

Экспертные системы: лекция №3

  1. 1. Представление знаний Лекция 3 муромцевди.рф dimour.spb.ru mouromtsev@mail.ifmo.ru Часть II Продукционные правила
  2. 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
  3. 3. ©2014МуромцевД.И.Лекция3 Архитектура продукционной системы 3
  4. 4. ©2014МуромцевД.И.Лекция3 База знаний В БЗ содержится множество продукционных правил или просто продукций (productions); Условная часть (IF–part) правила — антецедент (antecedent) — является шаблоном (образцом), по которому можно определить, в какой момент необходимо использовать (активировать) данное правило; Часть действия (THEN–part) — консеквент (consequent) — описывает соответствующий шаг решения. 4
  5. 5. ©2014МуромцевД.И.Лекция3 Рабочая память Рабочая память (working memory) содержит текущее описание модели мира в процессе рассуждений, инициализируемое начальным описанием задачи. 5
  6. 6. ©2014МуромцевД.И.Лекция3 Цикл распознавание-действие и разрешение конфликтов 6 поиск допустимых продукций добавление найденных правил в конфликтное множество модификация рабочей памяти выбор и активация одного из правил
  7. 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. 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
  9. 9. ©2014МуромцевД.И.Лекция3 Механизм возврата Чистая продукционная модель не предусматривает выхода из тупиковых ситуаций в процессе поиска. Гораздо более эффективным является модификация цикла управления с механизмом возврата (cycle back) в предыдущее состояние модели мира. 9
  10. 10. ©2014МуромцевД.И.Лекция3 Аналогия с памятью человека 10 Долговременная память Кратковременная память База знаний Рабочая память
  11. 11. ©2014МуромцевД.И.Лекция3 Примеры продукций П1: ЕСЛИ клиент работает на одном месте более двух лет, ТО клиент имеет постоянную работу. П2: ЕСЛИ клиент имеет постоянную работу И клиенту более 18 лет И клиент НЕ имеет финансовых обязательств, ТО клиент может претендовать на получение кредита. 11
  12. 12. ©2014МуромцевД.И.Лекция3 Цепочка вывода (reasoning) 12 ЕСЛИ клиент работает на одном месте более двух лет, ТО клиент имеет постоянную работу. ЕСЛИ клиент имеет постоянную работу И клиенту более 18 лет И клиент НЕ имеет финансовых обязательств, ТО клиент может претендовать на получение кредита. клиент работает на одном месте более двух лет клиенту более 18 лет клиент НЕ имеет финансовых обязательств клиент может претендовать на получение кредита клиент имеет постоянную работу заключение правило факт действие сопоставление
  13. 13. ©2014МуромцевД.И.Лекция3 Разновидности цепочек вывода Монотонный вывод - факты не удаляются из рабочей памяти. Немонотонный вывод допускает удаление фактов из рабочей памяти. 13
  14. 14. ©2014МуромцевД.И.Лекция3 Направления вывода Вывод на основе данных (data–driven search), процесс решения задачи начинается с исходных фактов. Этот процесс также называют прямой цепочкой вывода (forward chaining). Вывод от цели (goal–directed strategy) начинается от одной из допустимых целей, и рассматриваются пути, ведущие к достижению этой цели. Такой способ поиска называют также обратной цепочкой вывода (backward chaining). 14
  15. 15. ©2014МуромцевД.И.Лекция3 Прямая цепочка Все или большинство данных заданы в пространстве задачи. Существует большое количество потенциальных целей, но всего лишь несколько способов представления и применения исходных фактов. Сформировать цель или гипотезы очень трудно в силу избыточности исходных данных или большого числа конкурирующих гипотез. 15 Прямая цепочка рассуждений применяется в задачах, где на основании имеющихся фактов необходимо определить тип (класс) объекта или явления, выдать рекомендацию, определить диагноз и т.п. Вывод на основе данных применим к решению задач в следующих случаях:
  16. 16. ©2014МуромцевД.И.Лекция3 Алгоритм прямого вывода 16 Алгоритм прямого вывода основан на стратегии поиска в ширину. Начальная инициализация рабочей памяти Проверка правила Добавить консеквент к рабочей памяти Передать резултат Выбор следующего правила Конец Правило акстивировано? Есть еще правила? нет да нет да Цель найдена? нет да
  17. 17. ©2014МуромцевД.И.Лекция3 Пример прямого вывода
 (база знаний) ЕСЛИ Процентные ставки падают, ТО Уровень цен на бирже растет. ЕСЛИ Процентные ставки растут, ТО Уровень цен на бирже падает. ЕСЛИ Валютный курс доллара падает, ТО Процентные ставки растут. ЕСЛИ Валютный курс доллара растет, ТО Процентные ставки падают. ЕСЛИ Процентные ставки федерального резерва падают И Средства федерального резерва добавлены, ТО Процентные ставки падают. 17 Пример миниатюрной экспертной системы для фондовой биржи. БЗ включает, следующие продукционные правила:
  18. 18. ©2014МуромцевД.И.Лекция3 Пример прямого вывода
 (начальное состояние) На основании запроса пользователя инициализируется исходное состояние рабочей памяти путем добавления в нее факта Валютный курс доллара падает: 18
  19. 19. ©2014МуромцевД.И.Лекция3 Пример прямого вывода
 (первый шаг вывода) После активации правила 3, и в рабочую память добавится новый факт: Процентные ставки растут: 19
  20. 20. ©2014МуромцевД.И.Лекция3 Пример прямого вывода
 (второй шаг вывода) После активации правила 2, и в рабочую память добавится новый факт: Уровень цен на бирже падает: 20
  21. 21. ©2014МуромцевД.И.Лекция3 Обратная цепочка рассуждений Цель поиска явно присутствует в постановке задачи или может быть легко сформулирована. Имеется слишком большое число правил, которые на основе исходных фактов продуцируют возрастающее число заключений или целей. Исходные данные не приводятся в задаче, но подразумевается, что они должны быть известны или могут быть легко получены. 21 Обратная цепочка рассуждений применяется в задачах, соответствующих процессу проверки гипотез при решении проблем человеком — для заданной ситуации необходимо определить условия к ней приводящие. Процесс поиска от цели к данным рекомендован в следующих случаях:
  22. 22. ©2014МуромцевД.И.Лекция3 Алгоритм обратного вывода 1. Определить цель для логического вывода и выбрать ее в качестве текущей подцели. 2. В списке правил найти первое вхождение этой подцели. Если правило найдено, перейти к рассмотрению условной части найденного правила. Если правило не найдено, сообщить пользователю, что ответ найти невозможно. 3. Выбрать в качестве подцелей факты из условия из данного правила. 4. Если в списке подцелей имеются факты, истинность или значение которых могут быть запрошены у пользователя, то задать пользователю соответствующие вопросы. 5. Если очередная подцель выведена, то перейти к шагу 2. 6. Если очередная подцель не может быть выведена или запрошена у пользователя, сообщить, что ответ получить невозможно. 7. Если все подцели подтверждены, то сообщить пользователю окончательный вывод. 22 Алгоритм прямого вывода обычно основан на стратегии поиска в глубину. Этот процесс предусматривает следующие шаги:
  23. 23. ©2014МуромцевД.И.Лекция3 Пример обратного вывода
 (начальное состояние) 23
  24. 24. ©2014МуромцевД.И.Лекция3 Пример обратного вывода
 (формирование правил) 1. Выбрать из дерева решений вершину вывода и зафиксировать её. 2. Найти вершину решения, расположенную слева от выбранной вершины вывода и связанную с ней ветвью, и зафиксировать её. 3. Повторять шаг 2 до тех пор, пока не будут рассмотрены все вершины решения, расположенные левее зафиксированной вершины вывода или не встретится новая вершина вывода. Если встретилась вершина вывода, то её надо зафиксировать и прекратить выполнение шага 2. Выполнение также прекращается, если исчерпаны все вершины. 4. Каждая вершина решения, составляющая путь, — это одна из переменных части ЕСЛИ правила. Значение, связанное с ветвью, представляет собой условие. Переменные условной части правила объединяются логическим оператором И. 5. Выбранный логический вывод перенести в часть ТО правила. 24 Условная часть содержит все вершины решения, находящиеся на пути к выводу. Вывод же составляет часть правила ТО. Таким образом, процесс формирования правил для всех возможных логических выводов состоит из следующих шагов:
  25. 25. ©2014МуромцевД.И.Лекция3 Пример пути на дереве решений
 (пример формирования правил) Путь 1→4→6: ЕСЛИ Посетитель имеет ученое звание И Посетитель сделал важное открытие, ТО Предложить посетителю должность научного сотрудника. 25
  26. 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. 27. ©2014МуромцевД.И.Лекция3 Пример обратного вывода
 (первый шаг вывода) Предположим, что претендент на работу хочет получить должность инженера–конструктора 27 Предложить посетителю должность инженера– конструктора Текущая подцель Правило 1 Правило 2 Правило 3 Правило 4 Правило 5 Правило 6 Правила
  28. 28. ©2014МуромцевД.И.Лекция3 Пример обратного вывода
 (второй шаг вывода) Правило 6 содержит в заключении изначальный факт, следовательно, система перейдет к рассмотрению новых подцелей 28 Предложить посетителю должность инженера– конструктора Возможно, что посетитель будет принят на работу», Средний бал посетителя за время учебы Текущая подцель Правило 1 Правило 2 Правило 3 Правило 4 Правило 5 Правило 6 Правила
  29. 29. ©2014МуромцевД.И.Лекция3 Пример обратного вывода
 (второй шаг вывода) В заключении правила 2 указан факт «Возможно, что посетитель будет принят на работу», следовательно следующей подцелью будет факт из условной части правила 2: 29 Предложить посетителю должность инженера– конструктора Возможно, что посетитель будет принят на работу», Средний бал посетителя за время учебы Посетитель имеет ученое звание Текущая подцель Правило 1 Правило 2 Правило 3 Правило 4 Правило 5 Правило 6 Правила
  30. 30. ©2014МуромцевД.И.Лекция3 Эвристические знания и метаправила Иногда для получения решения требуется вмешательство в стандартный процесс вывода. Метаправила не принимают непосредственного участия в процессе формирования рассуждений, а определяют приоритет выполнения или исключают из рассмотрения обычных правила и выполняются в первую очередь. 30
  31. 31. ©2014МуромцевД.И.Лекция3 Пример метаправила (I) ЕСЛИ кредитный рейтинг клиента высокий И клиент является клиентом банка, ТО сначала применить правила для льготных условий предоставления кредита. 31
  32. 32. ©2014МуромцевД.И.Лекция3 Пример метаправила (II) ЕСЛИ существуют правила, в условиях которых не упоминается текущая цель И существуют правила, в условиях которых упоминается текущая цель, ТО сначала следует активизировать первые из перечисленных правил. 32
  33. 33. ©2014МуромцевД.И.Лекция3 Алгоритм Rete для оптимизации поиска правил 33 По существу, алгоритм RETE интегрирует правила в сетевую структуру, позволяющую системе сопоставлять правила с данными, непосредственно указывающими на правило. Этот алгоритм значительно ускоряет выполнение поиска, особенно, если число правил велико.
  34. 34. ©2014МуромцевД.И.Лекция3 Примеры систем: G2 34
  35. 35. ©2014МуромцевД.И.Лекция3 Примеры систем: Exsys 35
  36. 36. ©2014МуромцевД.И.Лекция3 Примеры систем: Drools 36
  37. 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. 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

×