МПЗиО_11_17_CLIPS (Лекции)

PDF-файл МПЗиО_11_17_CLIPS (Лекции) (МПЗИО) Модели представления знаний и онтологии (64160): Лекции - 11 семестр (3 семестр магистратуры)МПЗиО_11_17_CLIPS (Лекции) - PDF (64160) - СтудИзба2020-08-25СтудИзба

Описание файла

Файл "МПЗиО_11_17_CLIPS" внутри архива находится в папке "Лекции". PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "(мпзио) модели представления знаний и онтологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

ПРОДУКЦИОННАЯМОДЕЛЬ:ЯЗЫК CLIPSСОДЕРЖАНИЕ1. Общая характеристика CLIPS особенности управляющей стратегии2. Факты рабочей памяти виды фактов, шаблоны3. Создание правил продукций левая часть: образцы и условные элементы правая часть: операции с РП4. Средства работы с системой загрузка/выгрузка РП работа с правилами определение функций5. Практическое задание: экспертные системы этапы разработки ЭС пример ЭС: сущности, правила, интерфейс2ИСТОРИЯ СОЗДАНИЯ CLIPS● Появление языка CLIPS – 1984 г., NASA●●●●(C Language Integrated Production System)Особое внимание – совместимость с ранеесозданными языками ПЗ для ЭС,поэтому синтаксис лисповскийПервоначально: только продукционная парадигма1991 г. – введены 2 новые парадигмы:процедурное + объектно-ориентированноепрограммирование =>CLIPS Object-Oriented Language (COOL)Свободно распространяемый программныйпродукт, для компиляции может быть использованлюбой ANSI C или С++ компилятор3CLIPS: ОСОБЕННОСТИУПРАВЛЯЮЩЕЙ СТРАТЕГИИ● CLIPS – стратегия прямого безвозвратного вывода● Две области памяти: РП и БЗ, для каждой – свой набор●●●●функций и конструкторов(= процедур)Запуск программы: загрузка БЗ и фактов в РП, затемзапуск на выполнениеВыбор и задание стратегии разрешения конфликта(7 возможных стратегий)Повторение цикла сопоставление – разрешениеконфликта – выполнение правила до тех пор, пока естьприменимые правила (но также возможно выполнениезаданного пользователем количества правил)Правила выполняются в порядке уменьшения приоритета,приоритет правила задается при определении правила4СТРАТЕГИИ РАЗРЕШЕНИЯКОНФЛИКТАCLIPS: 7 стратегий разрешения конфликта●●●●●●●Стратегия глубины (приоритет + только что активированноеправило ставится выше)Стратегия ширины (приоритет + только что активированноеправило ставится ниже)Стратегия упрощения (приоритет + наименьшаяопределённость)Стратегия усложнения (приоритет + наибольшаяопределённость)Стратегия LEX (приоритет + определённость + новизна)Стратегия MEA (приоритет + новизна)Стратегия случайного выбораОпределённость – число сопоставлений в образце правилаНовизна – временной тег5CLIPS: ТИПЫ ДАННЫХПростые типы данных:● Числовые: float, integer -32.3e-7 +12.5● symbol – для именования объектов:2my245127a @=%любая последовательность неуправл.

символов ASCIIдо первого ограничителя, не могут начинаться с ? или $?″x and y″● string:″x\″z″ (строка x″z)Составная конструкция – последовательность данныхпростых типов, записанная в круглых скобках(z27.4″Bob″23)Ограничители: пробел, табуляция, переход нановую строку, символы ″ ( ) & | < ~;; – символ начала комментария (ограничен концом строки)6ФАКТЫ В РАБОЧЕЙ ПАМЯТИРабочая память (РП) – набор фактовВ процессе работы ПС: добавление/удаление фактовВиды фактов:● Факты с упорядоченными атрибутами (ordered facts)● Факты с неупорядоченными именованнымиатрибутами (unordered facts) Факты с неупорядоченными именованными атрибутами –аналог записей или структур, их можно считатьупрощёнными фреймами Шаблон факта – описание структуры такого факта,аналог фрейма-прототипа Сам факт с неупорядоченными именованнымиатрибутами – аналог фрейма-экземпляра7ФАКТЫ С УПОРЯДОЧЕННЫМИАТРИБУТАМИ● Факт – составная конструкция,первый элемент – типа symbol(parent Bob Liz) (Mike age 27 tel 5552233)● Первым элементом не м.б.

зарезервированные слова:test, and, or, not, declare, logical, object, exists, forall● Важен порядок записи элементов конструкции● Каждый такой факт может описывать один или несколькоатрибутов некоторой сущности вместе с их значениями; Текущее состояние холодильника(refrigerator light on) ; свет включен(refrigerator door open) ; дверь открыта(refrigerator temp (+ 5 10 15))); t° 30 градусов8ФАКТЫ С НЕУПОРЯДОЧЕННЫМИИМЕНОВАННЫМИ АТРИБУТАМИ● Атрибуты сущностей именуются:(point (x-coord 15) (y-coord -25)); бакалейные товары: число их и их список(grocery-list (#-of-items 3)(items bread milk eggs))● Порядок атрибутов (слотов) не важен, доступ к значению– через имя слота● Факты определяются конструктором deftemplate:(deftemplate grossery-list(slot #-of-items) ; количество товаров(multislot items) ) ; список товаров slot – для определения атрибута (слота) простого типа multislot – для атрибута с несколькими значениями количество слотов произвольное9ШАБЛОНЫ ФАКТОВПри определении шаблона фактов можно задать:● ограничение на тип значения слота;для мультислота – ограничение на тип каждого элемента● значение слота по умолчанию: default(deftemplate grossery-list(slot #-of-items (type INTEGER)(default 2))(multislot items (type SYMBOL))) Значение по умолчанию может быть задано как● default – статическое, вычисляется при создании шаблона● default-dynamic – динамическое, вычисляется длялюбого факта-экземпляра при его создании Значение по умолчанию может быть задано явно (в видеконстанты) или неявно (в виде вызова функции)10ШАБЛОНЫ:ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ(deftemplate my_example(slot z (default (my_function)))(slot w (default-dynamic(my_function)))(slot x (default ?NONE))(slot y (default ?DERIVE)))Если вместо значения по умолчанию – ключевое слово● ?NONE , то значение слота/атрибута должно бытьобязательно задано при создании факта-экземпляра● ?DERIVE , то значение слота/атрибута можетизвлекаться из ограничений (для всех слотов поумолчанию)11ПРАВИЛА CLIPS: СОЗДАНИЕДля создания продукции – конструктор defrule(defrule <имя правила>[″комментарии″][(declare (salience <целочисл.

выражение>))]<условие применения>; левая часть=><действия>); правая часть● Комментарии могут отсутствовать● Левая часть – условия применения правила, состоит изусловных элементов, чаще всего – образцов фактов● Правая часть обычно содержит действия, добавляющиеили удаляющие факты из РП● Cвойство salience устанавливает приоритет правила(целое в диапазоне от -10000 до +10000), по умолчаниюприоритет устанавливается равным нулю12ЛЕВЫЕ ЧАСТИ ПРАВИЛ● Левая часть правила (условие) состоит изусловных элементов● Для выполнения правила должны выполняться всеусловные элементы, т.е. все условные элементы неявноконъюнктивно объединены● Типичный условный элемент – образец факта● Образец факта позволяет задать общий вид факта, в нёммогут использоваться константы и переменные(начинаются с префикса ? или $?):2b$?h ?fg● Переменная может быть именованной (для использованиянесколько раз) или анонимной: ? $?(используется только для сопоставления)● Переменная может сопоставляться с одним объектом (?)или с последовательностью объектов ($?)13ПРИМЕР ОБРАЗЦА ПРАВИЛА(defrule Find-data (data ? blue 56 $?)=> …)Поиск факта data с упорядоченными атрибутамипо образцу, в котором: первый атрибут не важен (? – анонимнаяпеременная, сопоставляющаяся с одним значением) второй атрибут – значениеblue третий атрибут – значение56 может быть ещё произвольное количество атрибутов(они сопоставятся с анонимной переменной $?)14ОБРАЗЦЫ ФАКТОВ: ЭЛЕМЕНТЫОбразец факта может включать:● константы – значения простых типов● переменные – все вхождения одной переменнойсопоставляются с одним и тем же значением● логические операции (конъюнкция: &,дизъюнкция: |, отрицание: ~)● предикаты – их вызов начинается с символа :● функции – их вызов начинается с символа =Пустой образец автоматически заменяется наусловие-образец initial-fact, т.е.(defrule empty_cond => …)заменится на(defrule empty_cond (initial-fact) => …)15ПРИМЕР ПРАВИЛА С ОБРАЗЦАМИ(defrule Find-2-Coeval-Person(person (name ?x)(age ?z))(person (name ?y&~?x)(age ?z))=>(printout t ?x ″ ″ ?y ″ ″ ?z crlf))● Среди фактовperson с именованными атрибутамипоиск пары фактов, описывающих людей-ровесников● Для каждой найденной пары фактов печатаются именаэтих людей и их возраст● Чтобы имена людей в паре не совпадали, используютсялогические связки конъюнкция и отрицание16ПРИМЕРЫ ИСПОЛЬЗОВАНИЯПРЕДИКАТОВ И ФУНКЦИЙ В ОБРАЗЦАХПример1: (defrule Find-data1(mydata1 ?x ?y&=(* 2 ?x)) => …)поиск факта mydata1 с упорядоч.и атрибутами, у которогозначение второго атрибута в два раза больше первогоПример2: (defrule Find-data2(mydata2 ?x&:(floatp ?x)&:(> ?x 0)$?y ?z&:(stringp ?z)) => …)поиск факта mydata2 с упорядоченными атрибутами первый атрибут имеет тип float и значение, большее нуля последний атрибут имеет тип string количество атрибутов – произвольно, но не меньше двух17УСЛОВНЫЕ ЭЛЕМЕНТЫВ ЛЕВОЙ ЧАСТИ ПРАВИЛ● Условные элементы:test, and, or, not, logical, exists, forall● Элементtest содержит выражение,возвращающее логическое значение● Пример:(defrule example(data ?x)(data ?y)(test (>= (abs (- ?x ?y)) 5)) => …)поиск в РП двух фактов data с атрибутом-числом,абсолютная разница между значениями атрибутовкоторых не меньше пяти18УСЛОВНЫЕ ЭЛЕМЕНТЫ:AND, OR И NOTУсловные элементы not, or и and позволяютзадавать наборы фактов(правило применимо на любом подходящем наборе)Пример: (defrule exam1(myfact1 ?z)(or (and (myfact2 ~?z)(myfact3 ?))(not (myfact4 ?z))) => …)правило применимо в случае, если в РП есть факт myfact1 с некоторым значением атрибута и либо одновременно есть факт myfact2 с другимзначением этого атрибута и факт myfact3либо в РП нет факта myfact4 с таким же значениематрибута19УСЛОВНЫЕ ЭЛЕМЕНТЫEXISTS И FORALLЗадание условий на наборы фактов● Элемент exists – проверка, если есть хотя бы одиннабор фактов, удовлетворяющих условию:(defrule ex-for-exists(exists (a ?x)(b ?x)(c ?x)) => …)проверка наличия 3 фактов с именами a, b и c,содержащих одно и то же значение● Элемент forall – заданное условие должновыполняться для всех включенных в него образцов(defrule all-student-passed(forall (student ?name)(reading ?name)(writing ?name)(arithmetic ?name)) => …)проверка, что все студенты прошли чтение, письмо иарифметику или же в РП нет данных о студентах20УСЛОВНЫЙ ЭЛЕМЕНТ LOGICAL● Позволяет задавать логическую зависимостьданных правой части правила от данных левой● Применяется только к фактам с упорядоченнымиатрибутами● Может быть применён только к первым n условнымэлементам(defrule examp-for-logical(logical (А))(logical (В))(С) => (assert (D)))Факт D добавляется в РП и логически зависит отфактов A и B, поэтому будет автоматически удалёнпри удалении любого из этих фактов(но не при удалении С).21ПРАВАЯ ЧАСТЬ ПРАВИЛПравая часть может включать действия:● ввод/вывод:printout, read …● изменение рабочей памяти – добавление,удаление, модификация фактов:assert, retract, modify …используются номера/адреса фактов● изменение БЗ – добавление, удалениеправил: defrule, undefrule …● вызов вспомогательных функций дляобработки данных● работа с объектами (для COOL, например,посылка сообщений и т.д.)22РП: НОМЕРА И АДРЕСА ФАКТОВКаждый факт после добавления в РП имеетномер видаf-<число>Каждый новый факт при добавлении получаеточередной номерВ результате модификации факта его номерменяетсяНумерация фактов начинается с нуля, при загрузкесистемы в РП заносится факт с номером нуль –initial-factНа факт можно сослаться по его номеру (число безпрефикса f ) или его адресу, получаемому спомощью специальной функции <Такие ссылки на факты используются в функцияхдля работы с фактами (удаление и модификация)23ПРИМЕР:ИСПОЛЬЗОВАНИЕ АДРЕСОВ(defrule del-data-facts?data-facts <- (data $?)=>(retract ?data-facts)) Правило удаляет все факты с именем data Переменная?data-facts, связанная с адресомфакта, может сравниваться с другой переменнойили использоваться внешней функцией В данном примере она используется функциейretract24ДОБАВЛЕНИЕ И ИЗМЕНЕНИЕФАКТОВ● assert – добавление фактов в РП:(assert <факт>{<факт>})● retract – удаление фактов:(retract <номер или адрес факта>{< номер или адрес факта>} | *)● modify – изменение факта, эквивалентно применениюпары retract-assert :(modify < номер или адрес факта><новое значение слота>{<новое значение слота>})● duplicate – создание нового факта, копируетсяинформация из уже существующего факта(duplicate < номер или адрес факта><новое значение слота>{<новое значение слота>})modify и duplicate: только для фактов с имен.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее