
- •Основные понятия и определения области искусственного интеллекта.
- •Экспертные системы.
- •Продукционные модели представления знаний.
- •Управление разрешением конфликтов.
- •Семантические сети.
- •Фреймовая модель.
- •Разработка экспертных систем средствами clips
- •Определение правил.
- •Наблюдение за процессом интерпретации.
- •Использование шаблонов.
- •Определение функций в clips
- •Поиск решений в пространстве состояний.
- •Поиск решений при сведении задач к подзадачам
- •Поиск решений в игровых программах.
- •Общая характеристика задач распознавания образов и их типы.
- •Системы распознавания речи.
- •Искусственные нейронные сети.
Разработка экспертных систем средствами clips
CLIPS включает язык представления порождающих правил и язык описания процедур. Основными компонентами языка описания правил является база правил Fact Base и на них возлагаются след функции.
База знаний - исходное состояние проблемы.
База правил содержит операторы, которые преобразуют состояние проблемы, приводя его к решению.
Машина логического вывода CLIPS сопоставляет факты и правила и выясняет, какие из правил можно активизировать. Это выполняется циклически, причем каждый цикл состоит из трех шагов:
1)Сопоставление фактов и правил
2)Выбор правила, подлежащего активизации
3)выполнение действий, предписанных правилами.
Такой 3ех шаговый циклический процесс иногда называют циклом «распознавание-действие». Сразу после запуска появляется
CLIPS>
В режиме интерпретатора пользователь может использовать множество команд. Факты можно включить в базу фактов из командной строки с помощью команды
CLIPS>(assert ( today is Sunday))
Выдаст <Fact-0>
CLIPS>(assert ( weather is warm))
<Fact-1>
Для вывода списков фактов, имеющихся в базе, используется команда (fatc).
Для удаления фактов из базы используется команда (retract 1)
Эти же команды, используются в выполняемой части правила ( в заключении правила) и с их помощью выполняется программное изменение базы фактов.
Часто используются команда Clear –очищает базу фактов.
В тексте программы факты можно включать не по одиночке, а целым массивом.
(deffacts today
(today is Sunday)
(weather is warm))
Выражение начинается с команды deffacts, затем приводится имя списка фактов, который нужно определить, а за ним следуют элементы списка, причем их кол-во не ограничивается. Этот массив фактов можно затем удалить из базы командой (undefacts today ) выражение можно вводить в командную строку интерпретатора, но лучше в текстовый файл, с помощью текстового редактора. Загрузить можно с помощью среды, либо из командной строки, либо через меню. Файл должен иметь расширение clp. Однако после загрузки файла факты не передаются сразу же в базу фактов clips, команда deffacts просто указывает интерпретатору, что существует массив today, который содержит множество фактов. Собственно загрузка выполняется командой (reset). Команда сначала очищает базу фактов, а затем включает в нее факты из всех ранее загруженных массивов, она также добавляет в базу единственный системно определенный факт (initial-fatc). Это делается по умолчанию, поскольку иногда имеет смысл включить в программу правило start rule, которое может быть сопоставлено с этим фактом, и позволит выполнять какие-либо нестандартные инициализирующие операции, можно проследить, как выполняется команда reset, если перед выполнение приведенных выше команд установить режим слежения среды разработки, для этого нужно вызвать команду watch из меню execution и установить флажок facts.
Определение правил.
Правила имеют следующий формат:
(defrule <имя правила>
<необязательный комментарий>
<необязательное объявление>
<предпосылка 1>
….
<предпосылка m>
=>
<действие1>
…
<действиеn>
)
Предпосылки в условной части правила сопоставляются затем интерпретатором с базой фактов, а действия, перечисленные в выполняемой части правила вставят в базу факты, в случае, если правило будет активизировано. Выражение … указывает на важность правила.
При одинаковых предпосылках будет конкуренция между правилами, предпочтение будет отдано правилу, у которого параметр salience больше. Параметру может быть присвоено любое целочисленное значение от -10000 до 10000, если параметр отсутствует, то ему по умолчанию присваивается значение 0.
Переменные обозначают с префиксом ?X