This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:knowledge_representation_and_artificial_intelligence_systems:lab1 [2019/08/28 12:04] andrey.suchkov [Основные теоретические положения] |
courses:knowledge_representation_and_artificial_intelligence_systems:lab1 [2022/12/10 09:08] (current) |
||
---|---|---|---|
Line 10: | Line 10: | ||
^ Пункт ^ Подпункт ^ <<Горячие>> клавиши ^ Назначение команды ^ | ^ Пункт ^ Подпункт ^ <<Горячие>> клавиши ^ Назначение команды ^ | ||
- | | File | New | Ctrl-N | Вызов редактора | | + | | File | New | <nowiki>^</nowiki>N | Вызов редактора | |
- | | ::: | Load | Ctrl-L | Загрузка конструкций из файла | | + | | ::: | Load | <nowiki>^</nowiki>L | Загрузка конструкций из файла | |
| ::: | Load Batch | - | Исполнение пакетного файла | | | ::: | Load Batch | - | Исполнение пакетного файла | | ||
- | | Execution | Reset | Ctrl-E | Инициализация конструкций | | + | | Execution | Reset | <nowiki>^</nowiki>E | Инициализация конструкций | |
- | | ::: | Run | Ctrl-R | Запуск МЛВ | | + | | ::: | Run | <nowiki>^</nowiki>R | Запуск МЛВ | |
- | | ::: | Step | Ctrl-T | Выполнение одного шага вывода | | + | | ::: | Step | <nowiki>^</nowiki>T | Выполнение одного шага вывода | |
| Window | Facts Window | - | Активация окна списка фактов | | | Window | Facts Window | - | Активация окна списка фактов | | ||
| ::: | Agenda Window | - | Активация окна агенды | | | ::: | Agenda Window | - | Активация окна агенды | | ||
Line 56: | Line 56: | ||
</code> | </code> | ||
где ''<имя_группы_фактов>'' -- идентификатор символьного типа; ''<комментарий>'' -- необязательное поле комментария; ''<факт>*'' -- произвольная последовательность фактов, записанных через разделитель. | где ''<имя_группы_фактов>'' -- идентификатор символьного типа; ''<комментарий>'' -- необязательное поле комментария; ''<факт>*'' -- произвольная последовательность фактов, записанных через разделитель. | ||
+ | |||
+ | Пример использования конструкции ''deffacts'': | ||
+ | <code> | ||
+ | (deffacts startup "Refrigerator Status" | ||
+ | (refrigerator light on) | ||
+ | (refrigerator door open)) | ||
+ | </code> | ||
Факты, определенные конструкцией ''deffacts'' добавляются в список фактов всякий раз при выполнении команды ''reset''. | Факты, определенные конструкцией ''deffacts'' добавляются в список фактов всякий раз при выполнении команды ''reset''. | ||
- | Для задания правил используется конструкция defrule со следующим синтаксисом: | + | Для задания правил используется конструкция '' defrule'' со следующим синтаксисом: |
<code> | <code> | ||
(defrule <имя_правила> ["<комментарий>"] | (defrule <имя_правила> ["<комментарий>"] | ||
[<объявление>] | [<объявление>] | ||
- | <условный элемент>* ; Левая часть правила (антецедент) | + | <условный элемент>* ; Левая часть правила (антецедент) |
=> | => | ||
- | <действие>*) ; Правая часть правила (консеквент) | + | <действие>*) ; Правая часть правила (консеквент) |
</code> | </code> | ||
где ''<имя_правила>'' -- идентификатор символьного типа, уникальный для данной группы правил; ''<комментарий>'' -- необязательное поле комментария; ''<условный элемент>*'' -- произвольная последовательность условных элементов; ''<действие>*'' -- произвольная последовательность действий. | где ''<имя_правила>'' -- идентификатор символьного типа, уникальный для данной группы правил; ''<комментарий>'' -- необязательное поле комментария; ''<условный элемент>*'' -- произвольная последовательность условных элементов; ''<действие>*'' -- произвольная последовательность действий. | ||
Line 86: | Line 93: | ||
- Запустить систему CLIPS (файл //clipswin.exe//). Активизировать окно просмотра текущего списка фактов (подпункт <<Facts Window>> пункта <<Windows>> главного меню). Выполнить следующую последовательность действий, фиксируя после каждого шага состояние списка фактов: | - Запустить систему CLIPS (файл //clipswin.exe//). Активизировать окно просмотра текущего списка фактов (подпункт <<Facts Window>> пункта <<Windows>> главного меню). Выполнить следующую последовательность действий, фиксируя после каждого шага состояние списка фактов: | ||
* сбросить систему в исходное состояние командой ''(clear)''; | * сбросить систему в исходное состояние командой ''(clear)''; | ||
- | * выполнить начальную установку командой (reset) или комбинацией клавиш Ctrl-E; | + | * выполнить начальную установку командой ''(reset)'' или комбинацией клавиш ^E; |
- | * ввести 3 любых упорядоченных факта командой (assert), например: \\ ''CLIPS> (assert (n n) (m m) (p p))''; | + | * ввести 3 любых упорядоченных факта командой ''(assert)'', например: \\ ''(assert (n n) (m m) (p p))''; |
* повторно выполнить сброс командой ''(reset)''; | * повторно выполнить сброс командой ''(reset)''; | ||
* установить 3 ранее вводимых упорядоченных факта в качестве исходных фактов, используя конструкцию ''(deffacts)''; | * установить 3 ранее вводимых упорядоченных факта в качестве исходных фактов, используя конструкцию ''(deffacts)''; | ||
Line 97: | Line 104: | ||
V & W => U; | V & W => U; | ||
</code> | </code> | ||
- | * выполнить по шагам активизацию правил (используя <<горячую>> комбинацию Ctrl-T). | + | * выполнить по шагам активизацию правил (используя <<горячую>> комбинацию ^T). |
==== 2. Разработка демонстрационной экспертной системы ==== | ==== 2. Разработка демонстрационной экспертной системы ==== | ||
* Сформировать, пользуясь редактором CLIPS, базу знаний демонстрационной ЭС и сохранить ее в файле //rulebase.CLP//. Предметную область экспертной системы выбрать по согласованию с преподавателем. | * Сформировать, пользуясь редактором CLIPS, базу знаний демонстрационной ЭС и сохранить ее в файле //rulebase.CLP//. Предметную область экспертной системы выбрать по согласованию с преподавателем. |