Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Создание набора объектов






COOL использует прямой перебор для генерации наборов объектов, которые соответствуют шаблону для существующих в системе объектов по пере­численным ниже правилам:

1. Если шаблону удовлетворяет более одного набора, то элементы набора изменяются справа налево.

2. Если в ограничениях классов задано более одного класса, они перебираются слева направо.

3. Экземпляры объектов, определенные в системе, рассматриваются в порядке их создания.

Для шаблона, приведенного в предыдущем разделе, CLIPS сгенерирует 30 наборов объектов в следующем порядке:

1. [Воу-1] [Girl-1] 16. [Boy-4] [Girl-1]

2. [Воу-1] [Girl-2] 17. [Boy-4] [Girl-2]

3. [Boy-1] [Woman-1] 18. [Boy-4] [Woman-1]

4. [Boy-1] [Woman-2] 19- [Boy-4] [Woman-2]

5. [Boy-1] [Woman-3] 20. [Boy-4] [Woman-3]

6. [Boy-2] [Girl-1] 21. [Man-1] [Girl-1]

7. [Boy-2] [Girl-2] 22. [Man-1] [Girl-2]

8. [Boy-2] [Woman-1] 23. [Man-1] [Woman-1]

9. [Boy-2] [Woman-2] 24. [Man-1] [Woman-2]

10. [Boy-2] [Woman-3] 25. [Man-1] [Woman-3]

11. [Boy-3] [Girl-1] 26. [Man-2] [Girl-1]

12. [Boy-3] [Girl-2] 27. [Man-2] [Girl-2]

13. [Boy-3] [Woman-1] 28. [Man-2] [Woman-1]

14. [Boy-3] [Woman-2] 29. [Man-2] [Woman-2]

15. [Boy-3] [Woman-3] 30. [Man-2] [Woman-3]

Пример 11.49. Шаблон, выбирающий пары персон женского пола

((? fl FEMALE) (? f2 FEMALE))

Шаблон из примера 11.49 приведет к генерации 25 наборов объектов:

 

10.[Girl-1] [Girl-1] 14. [Woman-1] [Woman-2]

11.[Girl-1] [Girl-2] 15. [Woman-1] [Woman-3]

12.[Girl-1] [Woman-1] 16. [Woman-2] [Girl-1]

13.[Girl-1] [Woman-2] 17. [Woman-2] [Girl-2]

14.[Girl-1] [Woman-3] 18. [Woman-2] [Woman-1]

15.[Girl-2] [Girl-1] 19. [Woman-2] [Woman-2]

16.[Girl-2] [Girl-2] 20. [Woman-2 [Woman-3]

17.[Girl-2] [Woman-1] 21. [Woman-3] [Girl-1]

18.[Girl-2] [Woman-2] 22. [Woman-3] [Girl-2]

16. [Girl-2] [Woman-3] 23. [Woman-3] [Woman-1]

17. [Woman-1] [Girl-1] 24. [Woman-3] [Woman-2]

18. [Woman-1] [Girl-2] 25. [Woman-3] [Woman-3]

19. [Woman-1] [Woman-1]

 

Порядок генерации приведенных выше шаблонов обусловлен в первую оче­редь тем, что объекты класса girl рассматриваются перед объектами класса woman, т. к. сам класс girl был определен раньше класса woman.

Определение запроса

Запрос — это определенное пользователем логическое выражение, приме­няемое к набору объектов для установления дополнительных ограничений для членов набора. Если значение логического выражения не равняется false, то считается, что набор объектов удовлетворяет запросу.

Определение 11.31. Синтаксис запроса

< запрос>:: =(< логическое-выражение>)

Предположим, что необходимо найти пары противоположного пола одно­го возраста. Для этого следует использовать запрос, представленный в при­мере 11.50.

Пример 11.50. Запрос, накладывающий ограничение на возраст

(= (send? man-or-boy get-age) (send? woman-or-girl get-age))

В запросе можно обращаться к слотам членов набора объекта напрямую при помощи краткой нотации, скрывающей использование сообщений.

Определение 11.32. Синтаксис обращения к переменным

< переменная-набора-объектов>: < имя-слота>

С учетом сказанного, предыдущий пример может быть переписан так, как представлено в примере 11.51.

Пример 11.51. Измененный запрос, накладывающий ограничение на возраст

(=? man-or-boy: age? woman-or-girl: age)


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2026 год. (0.208 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал