Московский государственный технологический университет «Станкин»
Опубликован: 18.05.2005 | Доступ: свободный | Студентов: 4951 / 956 | Оценка: 3.93 / 3.84 | Длительность: 11:45:00
ISBN: 978-5-9556-0024-6
Специальности: Программист
Лекция 2:

Системы представления знаний

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >
Аннотация: В лекции рассмотрены системы и модели представления знаний, такие как фреймы, исчисления предикатов, системы продукций, семантические сети, нечеткие множества.
Ключевые слова: система представления знаний (СПЗ), модель представления знаний, фрейм, исчисление предикатов, система продукций, семантическая сеть, нечеткое множество, представление знаний, запись, representation, language, Lisp, слот, colour, ako, связь, наследование, свойство слота, ISA, подтип, cube, демон, значение, Пирамида, программа, команда, формальный язык, истина, ложь, квантор всеобщности, логика предикатов, высказывание, выражение, вывод, алфавит, константы, предикатный символ, предметной области, принцип резолюции, логические выражения, factorable, A-GPS, память, множества, конфликтное множество, разрешение конфликтов, механизм возврата, база фактов, параметр, поле, база целей, отношение, агент, объект, список, пункт, траектория, место, формализация знаний, подмножество, функция принадлежности, функция, операции, лингвистическая переменная, шкала, сложение, умножение, нечеткая логика, CLIPS, ART, Java, HTML, Интернет

Традиционно, системы представления знаний (СПЗ) для ИС используют следующие основные виды моделей: фреймы, исчисления предикатов, системы продукций, семантические сети, нечеткие множества. Рассмотрим эти модели подробно.

Фреймы предложены в 1975 году Марвином Минским [ 2.1 ] . Фрейм (рамка в переводе с англ.) - это единица представления знаний, запомненная в прошлом, детали которой могут быть изменены согласно текущей ситуации. Фрейм представляет собой структуру данных, с помощью которых можно, например, описать обстановку в комнате или место встречи для проведения совещания. М.Минский предлагал эту модель для описания пространственных сцен. Однако с помощью фреймов можно описать ситуацию, сценарий, роль, структуру и т.д.

Фрейм отражает основные свойства объекта или явления. Структура фрейма записывается в виде списка свойств, называемых во фрейме слотами. Рассмотрим запись фрейма на языке FRL (Frame Representation Language) [ 2.2 ] - языке, похожем на LISP, но только внешне из-за наличия скобок.

Например, фрейм СТОЛ может быть записан в виде 3 слотов: слот НАЗНАЧЕНИЕ ( purpose ), слот ТИП ( type ) и слот ЦВЕТ ( colour ) следующим образом:

(frame СТОЛ
     (purpose (value(размещение предметов для
       деятельности рук)))
     (type (value(письменный)))
     (colour (value (коричневый))))

Во фрейме СТОЛ представлены только ДЕКЛАРАТИВНЫЕ средства для описания объекта, и такой фрейм носит название фрейм -образец. Однако существуют также фреймы -экземпляры, которые создаются для отображения фактических ситуаций на основе поступающих данных и ПРОЦЕДУРАЛЬНЫХ средств (демонов), например, следующих:

IF-DEFAULT - по умолчанию

IF-NEEDED - если необходимо

IF-ADDED - если добавлено

IF-REMOVED - если удалено

Слот IS-A или AKO (A Kind Of) определяет иерархию фреймов в сети фреймов. Такая связь обеспечивает наследование свойств. Слот isa указывает на фрейм более высокого уровня, откуда неявно наследуются свойства аналогичных слотов.

Рассмотрим фрагмент описания из "мира блоков" ( рис. 2.1) в виде фреймов.

"Мир блоков"

Рис. 2.1. "Мир блоков"
(frame (name (Cube))
    (isa (Block World))
    (length (NULL))
    (width (IF-DEFAULT (use length)))    
    (height (IF-DEFAULT (use length))))    
 (frame (name (B1))      
   (isa (Cube))    
   (color (red))    
   (length (80)))    
 (frame (name (B2))       
   (isa (Cube))    
   (color (green))    
   (length (65))    
   (who_put (value (NULL))    
      (IF_NEEDED (askuser))))

Слот isa указывает на то, что объекты B1 и B2 являются подтипом объекта Cube и наследуют его свойства, а именно, length = width = height. Демон IF_NEEDED запускается автоматически, если понадобится узнать, кто поставил B2 на стол. Полученный ответ ( Робби ) будет подставлен в значение слота who_put. Аналогично работают демоны IF-ADDED и IF-REMOVED.

Допустим, однорукому роботу Робби дается приказ "Возьми желтый предмет, который поддерживает пирамиду". На языке представления знаний (ЯПЗ) вопрос записывается так:

(object ? X       
    (color (yellow))   
    (hold ? Y    
       (type (pyramid))))

Программа сопоставления с образцом находит в базе знаний описание объектов:

(frame (name (B3))    
    (type (block))
    (color (yellow))
    (size (20 20 20))
    (coordinate (20 50 0))
    (hold (P2)))

и

(frame (name (P2))    
   (type (pyramid))
   ...)

Ответ получен X = B3, Y = P2 и Робби выдается команда take(object=B3).

Таков общий механизм представления знаний в виде фреймов. Реализация этого механизма потребует решения других, более сложных проблем, например, автоматического ввода знаний для трехмерных объектов, работы с трехмерными быстродвижущимися объектами (своеобразный тест на реакцию) и т.д. Эти проблемы ждут своего эффективного решения.

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >
Дмитрий Черепанов
Дмитрий Черепанов

Неоднократно находил ошибки в тестах, особенно в экзаменационных вопросах, когда правильно данный ответ на вопрос определялся в итоге как не правильно отвеченный... Из-за этого сильно страдает конечный бал! Да еще в заблуждение студентов вводит! Они-то думают, что это они виноваты!!! Но они тут не причем! Я много раз проверял ответы на некоторые такие "ошибочные" вопросы по нескольким источникам - результат везде одинаковый! Но ИНТУИТ выдавал ошибку... Как это понимать?

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

Исправьте, пожалуйста, такие "ошибки"...

Анжелика Шлома
Анжелика Шлома

Огромная просьба сделать проще тесты, это просто ужас какой-то! Слишком сложно!