русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Определение 6.6. Синтаксис ограничений для неупорядоченного факта


Дата добавления: 2014-11-28; просмотров: 668; Нарушение авторских прав


 

(<ограничение-1> ... <ограничение-n>)

<ограничение> ::= <символьное-ограничение >│?│$?

Соответственно для шаблона образец примет вид:

Определение 6.7. Синтаксис ограничений для шаблона

 

(<имя-шаблона > (<имя-слота-1> <ограничение-1>)

(<имя-слота-n> <ограничение-n>))

В качестве примера можно привести следующее правило:

Пример 6.8. Правило Find-data

 

(defrule Find-data

(data ? blue red $?) =>)

 

В нашем списке фактов присутствуют два факта, подходящие заданному шаблону и способные активировать данное правило:

 

Пример 6.9. Факты, активирующие правило Find-data

 

(data 1 blue red)

(data 1 blue red 6.9))

 

Рассмотрим еще одно правило:

Пример 6.10. Правило match-all-persons

 

(defrule match-all-persons

(person)

=>)

Поскольку person является шаблоном, а в образце данного правила не оп­ределен ни один слот шаблона, CLIPS автоматически поставит в соответст­вие каждому простому слоту групповой символ для простого поля, а состав­ному слоту — символ для составного. Таким образом, правило преобразует­ся в следующее:

 

Пример 6.11. Преобразованное правило match-all-persons

 

(defrule match-all-persons

(person

(name ?)

(age ?)

(friends $?))

=>)

 

Это правило будут активировать все факты шаблона person.

Групповые символы для составного поля можно комбинировать с символь­ными ограничениями, что приводит к получению более мощных возможно­стей сопоставления образцов. Образец, который сопоставляется со всеми фактами, имеющими значение yellow в любом поле (включая первый), мо­жет быть записан так:

 

Пример 6.12. Образец со значением yellow в любом поле



 

(data $? YELLOW $?)

 

Вот несколько фактов, соответствующих этому образцу:

 

Пример 6.13. Факты со значением yellow в любом поле

 

(data YELLOW blue red green)

(data YELLOW red)

(data red YELLOW)

(data YELLOW)

(data YELLOW data YELLOW)

 

Последний факт будет соответствовать образцу дважды, т. к. yellow присут­ствует в нем дважды. Использование группового символа для составного поля позволяет создавать гораздо более общие образцы, чем те, которые можно сформировать с помощью групповых символов для простого поля. Однако подобная общность приводит к тому, что процесс сопоставления образцов, использующих групповые символы, иногда занимает гораздо больше времени, чем аналогичный процесс с образцами, использующими только групповые символы для простых полей.



<== предыдущая лекция | следующая лекция ==>
Определение 6.5. Синтаксис символьных ограничений для шаблона | Определение 6.8. Синтаксис ограничений


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.056 сек.