Иллюстрированный самоучитель по введению в экспертные системы

Приложение. Программирование на языке CLIPS.

  • Краткая история CLIPS

    Название языка CLIPS – аббревиатура от С Language Integrated Production System. Язык был разработан в Центре космических исследований NASA (NASA's Johnson Space Center) в середине 1980-х годов и во многом сходен с языками, созданными на базе LISP, в частности OPS5 и ART.
  • Правила и функции в CLIPS. Факты.

    CLIPS включает в язык представления порождающих правил и язык описания процедур. | В этом разделе мы рассмотрим оба этих модуля, сопровождая описание отдельных функций примерами. | Основными компонентами языка описания правил являются база фактов (fact base) и база правил (rule base).
  • Правила

  • Наблюдение за процессом интерпретации

    Теперь на простом примере познакомимся с возможностями, которые предоставляет среда разработки CLIPS в части отладки программы, состоящей из правил и фактов. Введите в текстовый файл правило, а затем загрузите этот файл в среду CLIPS.
  • Использование шаблонов. Определение функций.

    Для определения фактов можно использовать не только списочные структуры, но и шаблоны, которые напоминают простые записи.
  • Объектно-ориентированные средства в CLIPS

    Использование объектно-ориентированных средств в CLIPS позволяет значительно упростить программирование правил, поскольку для обновления данных можно применять механизм передачи и обработки сообщений методами классов.
  • Задача "Правдолюбцы и лжецы"

    Для того чтобы продемонстрировать вам возможности языка CLIPS, я выбрал головоломку, а не задачу из практики применения экспертных систем. | В головоломке решается одна из задач, возникающих на острове, населенном обитателями двух категорий: одни всегда говорят правду (назовем их правдолюбцами), а другие всегда лгут (их, естественно, назовем лжецами).
  • Анализ проблемы

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

    Следующий этап – определить, с какими видами данных нам придется иметь дело при решении этого класса головоломок. Какие объекты представляют интерес в мире правдолюбцев и лжецов и какими атрибутами эти объекты характеризуются?
  • Разработка правил

    В этом разделе мы рассмотрим набор правил, который помогает справиться с вырожденной формулировкой Р0 задачи о лжецах и правдолюбцах. Первые два правила, unwrap-true и unwrap-false, извлекают содержимое высказывания в предположении, что персонаж, которому принадлежит высказывание, является соответственно правдолюбцем или лжецом, и на этом основании формируют объект claim. | ;;
  • Расширение набора правил – работа с составными высказываниями

    Расширим теперь возможности программы таким образом, чтобы она могла работать с составными высказываниями. Это даст возможность охватить в ней не только вырожденный случай, рассмотренный в предыдущем разделе, но и более сложные. За основу возьмем следующую головоломку. | Р4.
  • Обратное прослеживание и множество контекстов

    Модифицируем программу таким образом, чтобы она могла справиться и с задачами этого класса в более сложной постановке. Речь идет о задачах, в которых несколько персонажей произносят реплики. Пример такого рода головоломки приведен ниже. | Упражнение 3 | Р5.
  • Обработка метавысказываний

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

    Ниже приведен полный листинг CLIPS-программы, которая обеспечивает обработку составных утверждений и метавысказывании. | Эта программа предназначена для разрешения головоломок о правдолюбцах и лжецах. Программа анализирует наличие логических противоречий и отыскивает первую непротиворечивую интерпретацию. | Программа может обрабатывать конъюнктивные и дизъюнктивные составные утверждения.
  • Стиль программирования на языке CLIPS

    В главе 17 был представлен обзор инструментальных средств конструирования экспертных систем и ряд рекомендаций, касающихся методики их проектирования. Многие из описанных в той главе средств имеют функциональные возможности, весьма близкие к тем, которые вы можете найти в CLIPS.
  • Упражнения

    Упражнение 1 | Разработайте программу моделирования, которая использовала бы объекты и правила, аналогичные описанным в разделе А.3, но для какого-нибудь другого устройства. | Упражнение 2 | Разработайте программу, которая решала бы детективные головоломки типа той, что представлена ниже (головоломки описаны в книге [Smullyan, 1978]).
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.