Студопедия — Лабораторная работа № 2. Построение ЭС с использованием неупорядоченных фактов (шаблонов) и
Студопедия Главная Случайная страница Обратная связь

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

Лабораторная работа № 2. Построение ЭС с использованием неупорядоченных фактов (шаблонов) и

Построение ЭС с использованием неупорядоченных фактов (шаблонов) и

различных типов условных элементов в антецедентах правил.

 

Общие сведения.

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

Для спецификации состава неупорядоченных фактов (содержащихся в них слотов) используются шаблоны, которые задаются конструкцией deftemplate. Синтаксис конструкции deftemplate определен ниже:

(deftemplate <имя шаблона> [“<комментарий>”]

<определение слота-1>

...

<определение слота-N>)

Пример шаблона, содержащего три одиночных слота представлен ниже:

(deftemplate object “Шаблон объекта”

(slot name)

(slot location)

(slot weight)).

Пример конкретного неупорядоченного факта на основе данного шаблона представлен ниже:

(object (name table) (location “room”) (weight 15)).

Синтаксис антецедентов правил. Антецедент правила состоит из последовательности условных элементов – УЭ (conditional elements - CEs), которые должны удовлетворяться, чтобы правило было помещено в агенду. В CLIPS используется шесть основных типов условных элементов: УЭ на основе образца, УЭ-проверка, УЭ “И”, УЭ “ИЛИ”, УЭ “НЕ”, УЭ “существует”, УЭ “для всех”, логические УЭ.

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

УЭ на основе образца (УЭ-образец) – основной и чаще всего используемый тип условного элемента. Он состоит из совокупности ограничений на поля, масок полей (wildcards) и переменных, используемых в качестве ограничений для фактов и объектов, которые сопоставляются с образцом условного элемента. УЭ-образец удовлетворяется каждой сущностью, которая удовлетворяет его ограничениям. Ограничение на поле представляет собой в общем случае совокупность ограничений, которые используются для проверки единственного поля или слота факта или объекта. Ограничение может состоять из единственного литерала или из нескольких связанных ограничений. Кроме литеральных ограничений, поддерживает три других типа ограничений: связанные ограничения (connective constraints), предикатные ограничения и ограничения возвращаемым значением.

Литеральное ограничение задает точное значение (константу) целого, вещественного, символьного или строкового типа, которое должно сопоставляться с полем. При работе с объектами литеральное ограничение задает имя экземпляра. УЭ-образец с литеральными ограничениями не содержит полей масок и переменных. Все ограничения литерального образца должны точно совпадать со всеми полями сопоставляемой сущности.

Упорядоченный УЭ-образец, содержащий только литералы, имеет следующий синтаксис: (<константа-1>... <константа-n>).

Пример: (data 1 “two”).

УЭ-образец на основе шаблона, содержащий только литеральные ограничения, имеет следующий синтаксис:

(<имя шаблона>

(<имя слота-1> <константа-1>)

...

(<имя слота-n> <константа-n>)).

Пример литерального условного элемента для неупорядоченного факта:

(person (name Bob) (age 20)).

Переменные используются для запоминания значений полей, чтобы их можно было использовать в дальнейшем в других условных элементах антецедента или в операторах консеквента правила. Таким образом, переменные позволяют “захватить” значения переменных, содержащихся в сопоставляемой сущности, для дальнейшего использования. Используются одно- и многоместные переменные со следующим синтаксисом:

<одноместная переменная> записывается как?<переменная>,

<многоместная переменная> записывается как $?< переменная>,

где <переменная> является символьным типом, но должна начинаться с буквенного символа. В имени переменой не допускается использование кавычек. При первом появлении переменная работает так же, как в маске, т.е. связывается с любым значением в данном поле(ях). Последующие появления переменной требуют, чтобы поле сопоставлялось со связанным значением переменной. Имена переменных являются локальными в пределах каждого правила.

Ограничения со связками позволяют объединить несколько индивидуальных ограничений и переменных с помощью операций & (и), | (или), и ~ (не). Старшинство операций обычное: ~, &, | - по убыванию. Исключением является случай, когда первым ограничением является переменная, после которой следует связка &. В этом случае первая переменная трактуется как отдельное ограничение, которое также должно удовлетворяться. Например, ограничение?x&red|blue трактуется как?x&(red|blue), а не как (?x&red)|blue. Синтаксис ограничений со связками:

<term-1>&<term-2>... &<term-3>,

<term-1>|<term-2>... |<term-3>,

~<term>,

где <term> - одно- или многоместная переменная, константа или ограничение со связками.

Примеры УЭ, содержащих ограничения со связками:

(data-A ~blue)

(data-A?x&~green)

 

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

Данное ограничение так же как функция сравнения использует символ “=”. Пусть, например, в базе данных хранятся факты на основе следующего шаблона:

(deftemplate data (slot x) (slot y))

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

(data (x?x) (y =(* 2?x))).

УЭ-проверка используется для оценки выражений в процессе сопоставления с образцом и имеет следующий синтаксис:

(test <вызов функции>).

УЭ-проверка удовлетворяется, если вызываемая в нем функция возвращает значение, отличное от FALSE, и не удовлетворяется в противном случае. Использование данного типа УЭ позволяет, в частности, проверять любые соотношения между значениями различных полей (слотов) фактов.

Пример. В следующем правиле проверяется, что разность между значениями фактов data и value не меньше трех:

(defrule example-1

(data?x)

(value?y)

(test (>= (abs (-?y?x)) 3))

=>).

 

Порядок выполнения работы.

1. Используя редактор clips, сформировать базу данных, содержащую не менее десяти неупорядоченных фактов на основе следующего шаблона:

(deftemplate student

(slot name); имя студента

(slot age); возраст

(slot year); год обучения (курс)

(slot spec); специализация

(slot aver_mark)); средний балл

 

Типы и допустимые значения слотов представлены ниже:

Имя слота Тип значения Допустимые значения

name symbol любые имена

age integer 17 - 22

year integer 2 - 5

spec string “hard”, “soft”, “ai”

aver_mark float в интервале [3 - 5]

 

Пример заполнения БД представлен ниже:

(deffacts students

(student (name John) (age 20) (year 3) (spec "hard") (aver_mark 4.5))

...

)

Сохранить конструкции deftemplate и deffacts в файле.

 

2. Составить в соответствии с вариантом задания правила, реализующие описанные ниже функции, с использованием заданных типов условных элементов. Правила, соответствующие различным пунктам задания, следует сохранять в разных файлах, чтобы демонстрировать их работу преподавателю по отдельности.

2.1. Используя только литеральные ограничения, составить правила для нахождения в БД фактов, удовлетворяющих заданным в таблице 1 условиям, и выдачи соответствующих сообщений.

2.2. Изменить сформированные в п. 2.1. правила путем добавления в антецедент новых условий и изменения выводимых сообщений в соответствии с табл. 2. При реализации новых УЭ использовать УЭ-проверки (test).

 

 

Таблица 1.

Вари Ант Условие в антецеденте правила Сообщение, выводимое в консеквенте правила
1.   2.   3.   4.   5.   6.   7.   8. Студент 2-го курса   Возраст студента 20 лет   Специализация студента “ai”   Средний балл студента 4.0   Студент 5-го курса специ-ализации "hard" Возраст студента 18 лет   Специализация студента “soft”   Средний балл студента 4.5 “Студент 2-го курса <name> учится по специализации <spec>” “Студент <name> учится на <year> курсе” “Студент <name> учится по специализации “ai” на <year> курсе” “Студент <name> учится на <year> курсе со средним баллом 4” “Студент <name> учится на 5-м курсе, возраст <age>” “Студент <name> имеет средний балл <aver_mark>” “Студент <name> учится по специа-лизации “soft” на <year> курсе” “Студенту <name> <age> лет, он учится на <year> курсе”

 

 

Таблица 2.

Вари Ант Условие в антецеденте правила Сообщение, выводимое в консеквенте правила
1.   2.   3.   4.   5.   6.   7.   8. Студент 2-го курса, средний балл не ниже 4.5 Возраст студента 20 лет, специ-ализации "hard" или “soft” Специализация студента “ai”, возраст – не менее 20 лет Средний балл студента 4.0, курс второй или четвертый Студент 5-го курса специ-ализации "hard", старше 19 лет Возраст студента 18 лет, средний балл – выше 4.0 Специализация студента “soft”, не младше 4-го курса Средний балл студента 4.5, специализация – не "hard" “Студент <name> имеет средний балл <aver_mark>” “Студент <name> учится по специа-лизации <spec>” “Возраст студента <name> <age> лет” “Студент <name> учится на <year> курсе со средним баллом 4” “Студент <name> учится на 5-м курсе, возраст <age>” “Студент <name> имеет средний балл <aver_mark>” “Студент <name> учится по специа-лизации “soft” на <year> курсе” “Студенту <name> <age> лет, он учится по специализации <spec>”

 

 

2.3. Изменить сформированные в п. 2.2. правила путем добавления в антецеденты условных элементов с ограничением по возвращаемому значению. Условия ограничения для различных вариантов приведены в табл. 3.

 

Таблица 3.

Вариант Условный элемент с ограничением по возвращаемому значению
1. 2. 3. 4. 5. 6. 7. 8. Оканчивает университет в возрасте 24 лет Поступил в университет в возрасте 17 лет Оканчивает университет в возрасте 25 лет Поступил в университет в возрасте 20 лет Оканчивает университет в возрасте 22 лет Поступил в университет в возрасте 19 лет Оканчивает университет в возрасте 22 лет Поступил в университет в возрасте 18 лет

 

Возраст поступления в университет определяется по формуле: [age] - [year].

Возраст окончания: [age] + (5 - [year].)

 

 




<== предыдущая лекция | следующая лекция ==>
Трехмерная графика | Лабораторная работа № 3. Изучение стратегий разрешения конфликтов в продукционных системах.

Дата добавления: 2015-09-07; просмотров: 813. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия