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/09/29 17:06] andrey.suchkov [Основные теоретические положения] |
courses:knowledge_representation_and_artificial_intelligence_systems:lab1 [2022/12/10 09:08] (current) |
||
---|---|---|---|
Line 56: | Line 56: | ||
</code> | </code> | ||
где ''<имя_группы_фактов>'' -- идентификатор символьного типа; ''<комментарий>'' -- необязательное поле комментария; ''<факт>*'' -- произвольная последовательность фактов, записанных через разделитель. | где ''<имя_группы_фактов>'' -- идентификатор символьного типа; ''<комментарий>'' -- необязательное поле комментария; ''<факт>*'' -- произвольная последовательность фактов, записанных через разделитель. | ||
+ | |||
+ | Пример использования конструкции ''deffacts'': | ||
+ | <code> | ||
+ | (deffacts startup "Refrigerator Status" | ||
+ | (refrigerator light on) | ||
+ | (refrigerator door open)) | ||
+ | </code> | ||
Факты, определенные конструкцией ''deffacts'' добавляются в список фактов всякий раз при выполнении команды ''reset''. | Факты, определенные конструкцией ''deffacts'' добавляются в список фактов всякий раз при выполнении команды ''reset''. | ||
Line 63: | Line 70: | ||
(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//. Предметную область экспертной системы выбрать по согласованию с преподавателем. |