Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Формирование объекта класса на языке clips
Содержание книги
- И пытаться отыскать определение функции (1 2 3).
- В различных диалектах языка допустимы вариации, но смысл остается тем же. В частности, в диалекте Common LISP используется сокращенная форма
- Фактически система, состоящая из трех компонентов
- Символический уровень и уровень знаний
- Язык включает средства (правда, ограниченные), позволяющие комбинировать правила и объекты.
- Системы порождающих правил для решения проблем
- Пусть задано порождающее правило в форме
- В данном случае предпосылка состоит в том, что определенный микроорганизм имеет форму палочки и размножается в воздушной среде.
- Удовлетворяет предпосылку в правиле
- Управление функционированием интерпретатора
- Свойства механизмов разрешения конфликтов, которые реально применяются в системах, при всем их разнообразии можно разделить на три довольно компактные группы.
- Стратегия сложности. Использует тот же критерий, что и стратегия простоты, но располагает правила в обратном порядке — более сложные занимают более приоритетное место в списке.
- Аса, aacaa, caacaac, bcaacaacb, cbcaacaacbc.
- Трассировка программы строительства башни
- Свойство выпуклости в clips: пингвины обретают способность летать (или не обретают)
- Таким образом, и образец в левой части порождающего правила, и сопоставляемые с ним элементы в рабочей памяти должны соответствовать этим шаблонам.
- Следующее Определение сети более близко к специфике задач искусственного интеллекта, которыми мы сейчас занимаемся.
- Два аспекта модели памяти, предложенной квиллианом, оказали особенно существенное влияние на последующее развитие исследований в области применения систем семантических сетей.
- Анализ адекватности ассоциативных сетей
- Из сказанного выше ясно, что первоначальные виды формализмов ассоциативных сетей страдают минимум двумя недостатками.
- Значения по умолчанию и демоны
- Если отсутствует любая информация о параметрах четырехугольника, не выполнять никаких вычислений.
- Система инициализируется командой (reset). Теперь можно активизировать демон, послав ему сообщение
- Подводя итог всему сказанному выше об ассоциативных сетях и фреймах, отметим, что в большинстве предлагаемых структур сетей не удалось дать четкий ответ на два важных вопроса.
- Для этого вам понадобится сначала внести изменения в определение класса square.
- Формирование объекта класса на языке clips
- Скомбинировать их таким образом, чтобы получить желаемый эффект.
- Множественное наследование в CLOS и clips
- Наложение методов в CLOS и clips
- В CLOS поддерживаются три базовых метакласса.
- Объекты в основном являются средствами реализации вычислений.
- Поиск доказательства в системе резолюций
- Использование квантора существования позволяет преобразовать термы с квантором общности в соответствии с определением
- Иными словами, это не тот случай, когда некоторый Объект X находится в комнате А и, следовательно, переменная имеет экзистенциальную подстановку.
- Если u и ф представляют две произвольные фразы, которые можно представить в конъюнктивной нормальной форме, и
- Поиск доказательства в системе резолюций
- Процедурная дедукция в системе PLANNER
- В следующем разделе мы кратко остановимся на системах, в которых была предпринята попытка устранить эти недостатки
- Обратите внимание на то, что если бы в теле процедуры отсутствовал предикат ввс, то программа очень быстро зациклилась.
- Occur)U, Exprl, 2), collect(U, Exprl, Expr2), isolate(U, Expr2, Ans).
- I) ни один Человек не является островом. (джон донн (john donne))
- Глава 9. Представление неопределенности знаний и данных
- В более общей форме правило байеса имеет вид
- Можно с уверенностью Т заключить, что пациент страдает заболеванием DI.
- Множество, определенное такой характеристической функцией, представляется формулой
- Которая после подстановки дает
- Какова вероятность того, что из полной колоды будет вытянута одна из старших карт (король, дама или валет).
- Преимущество использования такой программы — снижение трудоемкости процесса, поскольку перенос знаний от эксперта к системе осуществляется в один прием.
- В основу оболочки KADS положено пять базовых принципов.
- Оболочки CommonKADS и KASTUS
Ниже показано, как на языке CLIPS определяется класс ship и формируется экземпляр этого класса titanic. Сначала определим класс ship, в котором имеются два слота: x-velocity и y-velocity:
(defclass ship
(is-a INITIAL_OBJECT)
(slot x-velocity (create-accessor read-write))
(slot y-velocity (create-accessor read-write)))
Теперь сформируем экземпляр этого класса,, которому будет дано наименование "Titanic". Проще всего это сделать с помощью функции definstaces, которая в качестве аргументов принимает список параметров формируемых экземпляров. Определенные таким способом экземпляры класса будут инициализироваться при каждом перезапуске интерпретатора CLIPS.
(definstances ships (titanic of ship
(x-velocity 12) (y-velocity (10)
Завершается определение созданием обработчика событий для класса ship. Все экземпляры класса будут использовать этот обработчик для вычисления собственной скорости. Обратите внимание на то, что член в этом определении ссылается на значение слота того экземпляра класса, скорость которого требуется вычислить.
(defmessage-handler ship speed () (sqrt
(+
{?self:x-velocity?self:x-velocity)
(?self:y-velocity?self:y-velocity)))
)
Если файл со всеми представленными выше выражениями загрузить в среду CLIPS, а затем ввести с клавиатуры (send [titanic] speed), то в ответ интерпретатор CLIPS выведет скорость объекта titanic
Проблема наложения методов
Та простая картина, которая вырисовывается из представленного выше механизма прямого наследования, несколько усложняется, если мы попытаемся заменить прямое наследование множественным. В главе 6 уже отмечалось, что это может привести к неоднозначности в наследовании свойств. Но в контексте объектно-ориентированного подхода при множественном наследовании появляется и неоднозначность поведения.
С этой проблемой впервые столкнулись при разработке объектно-ориентированного языка FLAVORS, который поддерживает множественное наследование и наложение методов [Cannon, 1982]. Язык FLAVORS позволяет объектам иметь несколько родителей и таким образом наследовать процедуры и данные из нескольких источников. Для FLAVORS характерна не иерархия объектов, а гетерархия. Если графически изобразить отношения между разными объектами в FLAVORS, то схема будет больше походить на решетку, чем на дерево. Каков во всем этом смысл? Рассмотрим следующий пример, взятый из статьи Кэннона.
Отображение окон на дисплее рабочей станции реализуется, как правило, с использованием объектно-ориентированного стиля программирования. Будем считать, что окна на экране дисплея представлены в виде LISP-объектов, в каждом из которых записаны свойства окна (размеры и положение на поле экрана) и процедуры работы с окном (открытие, закрытие, перерисовка и т.п.). Существует несколько разновидностей окон и соответственно объектов окон — с рамкой, без рамки, со строкой заголовка, без заголовка и т.д.
Класс окно с рамкой.является подклассом (или производным классом) класса окно. Точно так же подклассом класса окно является и класс окно с заголовком. В иерархической системе классы окно с рамкой и окно с заголовком представляют собой отдельные узлы одного и того же уровня иерархии. Они наследуют определенные методы, например refresh (освежить), от базового класса окно, но имеют и собственные методы выполнения таких операций, как перерисовка рамки или строки заголовка.
А теперь предположим, что нам потребовался еще один вид окна — окно с рамкой и строкой заголовка. Окно такого типа должно быть представлено новым классом окно с рамкой и заголовком. В иерархической системе новый класс будет наследником класса окно и независимым "близким родственником" уже существующих классов окно с рамкой и окно с заголовком на том же уровне иерархии (рис. 7.2). Но даже интуитивно чувствуется, что такая организация избыточна. Ведь фактически мы стремимся "смешать" два набора уже существующих качеств и получить в результате новый комбинированный набор. Кажется, что целесообразнее сделать новый класс "дитятей" двух родителей, — классов окно с рамкой и окно с заголовком (рис. 7.3).

Рис. 7.2. Иерархическая система классов окон
Но здесь возникают вопросы: а как новый класс будет наследовать процедуры, определенные в двух базовых классах? Устроит ли нас "смешанное" поведение нового класса? Эту проблему можно разложить на две составляющие:
найти подходящие методы в базовых классах;
|