Рассмотрим некоторые примеры. Высказывание "у каждого человека есть отец" можно записать:
x y (ЧЕЛОВЕК(x) ОТЕЦ(y,x))Выражение "Антон владеет красной машиной" записывается, например, так:
x ( ВЛАДЕЕТ(АНТОН, x) МАШИНА(x) КРАСНЫЙ(x))Представление знаний в рамках логики предикатов служит основой направления ИИ, называемого логическим программированием []. Методы логического программирования в настоящее время широко используются на практике при создании ИИ в ряде предметных областей. Положительными чертами логических моделей знаний в целом являются:
- высокий уровень формализации, обеспечивающий возможность реализации системы формально точных определений и выводов;
- согласованность знаний как единого целого, облегчающая решение проблем верификации БЗ, оценки независимости и полноты системы аксиом и т. д.;
- единые средства описания как знаний о предметной области, так и способов решения задач в этой предметной области, что позволяет любую задачу свести к поиску логического вывода некоторой формулы в той или иной формальной системы.
Однако такое единообразие влечет за собой основной недостаток модели - сложность использования в процессе логического вывода эвристик, отражающих специфику предметной области. К другим недостаткам логической модели относят:
- “монотонность”;
- “комбинаторный взрыв”;
- слабость структурированности описаний.
Продукционные модели представления знаний
Продукционная модель или модель, основанная на правилах, позволяет представить знания в виде предложений типа "Если (условие), то (действие)".
Под "условием" (антецедентом) понимается некоторое предложение-образец, по которому осуществляется поиск в базе знаний, а под "действием" (консеквентом) — действия, выполняемые при успешном исходе поиска (они могут быть промежуточными, выступающими далее как условия, и терминальными или целевыми, завершающими работу системы).
Продукционная модель в чистом виде не имеет механизма выхода из тупиковых состояний в процессе поиска. Она продолжает работать, пока не будут исчерпаны все допустимые продукции. Практические реализации продукционных систем содержат механизмы возврата в предыдущее состояние для управления алгоритмом поиска.
Рассмотрим пример использования продукционных правил. П1: Если "отдых — летом" и "человек — активный", то "ехать в горы".П2: Если "любит солнце", то "отдых летом".Предположим, в систему поступили данные — "человек активный" и "любит солнце".Прямой вывод — исходя из данных, получить ответ.1-й проход.Шаг 1. Пробуем П1, не работает (не хватает данных "отдых — летом").Шаг 2. Пробуем П2, работает, в базу поступает факт "отдых — летом".2-й проход.Шаг 3. Пробуем П1, работает, активируется цель "ехать в горы", которая и выступает как совет, который дает ЭС.Обратный вывод — подтвердить выбранную цель при помощи имеющихся правил и данных.1-й проход.Шаг 1. Цель — "ехать в горы": пробуем П1 — данных "отдых — летом" нет, они становятся новой целью, и ищется правило, где она в правой части.Шаг 2. Цель "отдых — летом": правило П2 подтверждает цель и активирует ее.2-й проход.Шаг 3. Пробуем П1, подтверждается искомая цель.Основные преимущества продукционных систем:
- простота и гибкость выделения знаний;
- отделение знаний от программы поиска;
- модульность продукционных правил (правила не могут "вызывать" другие правила);
- возможность эвристического управления поиском;
- возможность трассировки "цепочки рассуждений";
- независимость от выбора языка программирования;
- продукционные правила являются правдоподобной моделью решения задачи человеком.
Имеется большое число программных средств, реализующих продукционный подход (например, языки высокого уровня CLIPS и OPS 5; "оболочки" или "пустые" ЭС — EXSYS Professional и Карра, инструментальные КЕЕ, ARTS, PIES , а также промышленных ЭС на его основе.
Семантические сети
Семантическая сеть — это ориентированный граф, вершины которого — понятия, а дуги — отношения между ними. Термин "семантическая" означает "смысловая", а сама семантика — это наука, устанавливающая отношения между символами и объектами, которые они обозначают, т. е. наука, определяющая смысл знаков. Модель на основе семантических сетей была предложена американским психологом Куиллианом.
В качестве понятий обычно выступают абстрактные или конкретные объекты, а отношения это связи типа: "это" ("АКО — A-Kind-Of, "is" или "элемент класса"), "имеет частью" ("has part"), "принадлежит", "любит".
Можно предложить несколько классификаций семантических сетей, связанных с типами отношений между понятиями.
По количеству типов отношений:
- однородные (с единственным типом отношений);
- неоднородные (с различными типами отношений).
По типам отношений:
- бинарные (в которых отношения связывают два объекта);
- N-арные (в которых есть специальные отношения, связывающие более двух понятий).
Наиболее часто в семантических сетях используются следующие отношения:
- элемент класса (роза это цветок);
- атрибутивные связи /иметь свойство (память имеет свойство — объем);
- значение свойства (цвет имеет значение — желтый);
- пример элемента класса (роза, например — чайная);
- связи типа "часть-целое" (велосипед включает руль);
- функциональные связи (определяемые обычно глаголами "производит", "влияет"...);
- количественные (больше, меньше, равно...);
- пространственные (далеко от, близко от, за, под, над...);
- временные (раньше, позже, в течение...);
- логические связи (и, или, не) и др.
Минимальный состав отношений в семантической сети таков:
- элемент класса или АКО;
- атрибутивные связи /иметь свойство;
- значение свойства.
Недостатком этой модели является сложность организации процедуры организации вывода.
Пример семантической сети для предложения типа "Поставщик осуществил поставку изделий для клиента до 1 июня 2010 года в количестве 10 000 штук" представлен на рис. 7.
Рис.7. Пример семантической сети.
Фреймы
Фрейм – это минимально возможное описание сущности какого-либо события, ситуации, процесса или объекта. В историческом плане развитие фреймовой модели связано с теорией фреймов М. Минского, определяющей способ формализации знаний, используемый при решении задач распознавания образов (сцен) и понимания речи. «Отправным моментом для данной теории служит тот факт, что человек, пытаясь познать новую для себя ситуацию или по-новому взглянуть на уже привычные вещи, выбирает из своей памяти некоторую структуру данных (образ), называемую нами фреймом, с таким расчетом, чтобы путем изменения в ней отдельных деталей сделать ее пригодной для понимания более широкого класса явлений или процессов». Другими словами, фрейм — это форма описания знаний, очерчивающая рамки рассматриваемого (в текущей ситуации при решении данной задачи) фрагмента предметной области.
Модель фрейма является достаточно универсальной, поскольку позволяет отобразить все многообразие знаний о мире через:
- фреймы – структуры, для обозначения объектов и понятий (заем, залог, вексель);
- фреймы – роли (менеджер, кассир, клиент);
- фреймы – сценарии (банкротство, собрание акционеров, празднование именин);
- фреймы – ситуации (тревога, авария, рабочий режим устройства) и др.
Различают фреймы-образцы или прототипы и фреймы-экземпляры, которые создаются для отображения реальных фактических ситуаций на основе поступающих данных.
Фрейм имеет имя (название) и состоит из слотов.
Традиционно структура фрейма может быть представлена как список свойств:
(ИМЯ ФРЕЙМА:
(имя 1-го слота: значение 1-го слота),
(имя 2-го слота: значение 2-го слота),
…………….
(имя N-гo слота: значение N-го слота)).
Ту же запись можно представить в виде таблицы (см. табл. 1), дополнив ее двумя столбцами.
Таблица 1 . Структура фрейма
Имя фрейма | |||
Имя слота | Значение слота | Способ получения значения | Присоединенная процедура |
В таблице дополнительные столбцы (3-й и 4-й) предназначены для описания способа получения слотом его значения и возможного присоединения к тому или иному слоту специальных процедур, что допускается в теории фреймов. В качестве значения слота может выступать имя другого фрейма, так образуются сети фреймов.
Широко известны такие фреймо-ориентированные экспертные системы, как ANALYST, МОДИС.
Тест по теме «Представление знаний»
1. Что понимается под представлением знаний?
a) это кодирование информации, на каком – либо формальном языке;
b) знания представленные в программе на языке С ++;
c) знания представленные в учебниках по математике;
d) моделирование знаний специалистов – экспертов.
2. Какие определения представленные ниже не являются моделями представления знаний?