Обработка знаний в интеллектуальных системах
6.3. Обработка знаний в интеллектуальных системах с фреймовым представлением
В интеллектуальных системах с фреймовым представлением знаний используются три способа управления логическим выводом: демоны, присоединенные процедуры и механизм наследования. Последний можно назвать единственным основным механизмом вывода, которым оснащены фреймовые (объектно-ориентированные) системы.
Управленческие функции механизма наследования заключаются в автоматическом поиске и определении значений слотов фреймов нижележащих уровней по значениям слотов фреймов верхних уровней, а также в запуске присоединенных процедур и демонов.
Присоединенные процедуры и демоны позволяют реализовать любой механизм вывода в системах с фреймовым представлением знаний. Однако эта реализация имеет конкретный характер и требует значительных затрат труда проектировщиков и программистов. Рассмотрим простой пример. В табл. 6.2 показана структура фрейма «Научная конференция».
Таблица 6.2
Фрейм «Научная конференция»
Имя слота | Значение слота | If-needed | Рекомендуемые материалы6 lab вариант 13 объектно-ориентированное программирование FREE Справочные материалы для выполнения лабораторных и контролируемых самостоятельных работ Лабораторная работа L36 (№7) отчет+код Вариант 36(?) Lazarus Вывод массива в ListBox и Memo, сортировка и нахождение максимального элемента FREE Готовые лабы по инфе (найдены на компах в комп. классе) If-added | If-removed |
Дата Место проведения Тема доклада Докладчик | 1.02. 10:10 Аудитория 209 Прогнозирование тенденций в экономике Иванов И.И. | КТО? | ЗАКАЗ |
Демон ЗАКАЗ - это процедура, которая автоматически запускается при попытке подстановки значения в слот с именем Место проведения. Ее главное назначение состоит в проверке возможности заказа аудитории на нужное время. Такая процедура на языке LISP может выглядеть примерно так:
LISPprocЗАКАЗ(Название конференции, Место проведения, Дата)
if возможно(Место проведения, Дата)
then заказать (Название конференции, Место проведения, Дата)
else сообщение («Заказ невозможен», Название конференции)
end.
Демон КТО? автоматически запускается при обращении к слоту Докладчик, если значение этого слота не определено. Основное содержание данной процедуры — генерация запроса к пользователю типа «Кто выступает?», получение ответа и его запись в качестве значения слота.
Реализация вывода с помощью присоединенных процедур требует наличия механизма обмена информацией между фреймами. В качестве такого механизма обычно используется механизм сообщений.
На рис. 6.6 схематично показан обмен информацией между фреймами АА и ВВ во время исполнения присоединенной процедуры САLС, при этом вызывается процедура МЕАN, расположенная в фрейме ВВ.
Имя слота | Тип | Значение | Имя слота | Тип | Значение | |
ISA | Frame | A | ISA | Frame | B | |
Объект 1 | Integer | 125 | X | Integer | 10, 20, 30 | |
Объект 2 | Real | 8.5 | Y | Real | 8.0, 12.6 | |
…… | …… | …… | MSG
| …… | …… | …… |
Расчет | LISP | CALC | Среднее | LISP | MEAN |
Рис. 6.6. Обмен информацией между фреймами
Допустим, что процедура САLС(result) выполняет расчет, в процессе которого происходит обращение к фрейму ВВ с использованием команды MSG, реализующей передачу сообщения в другой фрейм.
LISPproc САLС(result)
………..
MSG (cреднее, ВВ, X)
…………
end.
Команда MSG имеет три параметра: 1 — имя слота, к которому происходит обращение (в данном случае значением слота Среднее является присоединенная процедура МЕАN): 2 — имя фрейма, в котором содержится необходимая информация (ВВ); 3 — имя слота-параметра, в котором находятся данные для расчета (X). Таким образом, запуск процедуры САLС вызовет исполнение следующих действий: передача сообщения во фрейм ВВ на запуск процедуры МЕАN, которая найдет среднее арифметическое чисел, записанных в слоте X; вычисленное значение будет записано в переменную result и передано в САLС как ответ на сообщение MSG.
Итак, в интеллектуальных системах с фреймовым представлением знаний невозможно четко отделить процедурные знания от декларативных, поскольку присоединенные процедуры и демоны одновременно являются и знаниями, и средствами управления логическим выводом. На рис. 6.7 схематично показаны средства управления выводом во фреймовой системе.
Возможность организации выводов любого типа является существенным преимуществом фреймовых систем по сравнению с продукционными и логическими. Не менее важным достоинством является большее сходство этой модели представления знаний со структурой знаний в памяти человека. Вместе с тем практическая реализация фреймовых систем сопряжена со значительной трудоемкостью как на этапе проектирования, так и при реализации. Поэтому стоимость промышленных экспертных систем фреймового типа на порядок превосходит стоимость продукционных систем.
Рис. 6.7. Средства управления выводом в интеллектуальной системе фреймового типа
Контрольные вопросы
1. Докажите предложенную тавтологию семантическим (синтаксическим) методом.
2. Расскажите о теоремах логики и их использовании в ИИС. Приведите примеры.
3. Опишите возможности применения в логическом выводе операции эквивалентности. Приведите примеры тавтологий с эквивалентностями.
4. Опишите стратегию доказательства с введением допущения. Приведите пример.
5. Рассмотрите пример доказательства путем приведения к противоречию.
6. Расскажите о стратегии доказательства методом резолюции. Приведите пример.
Обратите внимание на лекцию "Биохимия крови".
7. Опишите функционирование механизма вывода продукционной ЭС и охарактеризуйте его составляющие: компоненту вывода и управляющую компоненту.
8. Сформулируйте собственные примеры прямого и обратного вывода в ЭС продукционного типа.
9. Приведите пример представления знаний в виде И-ИЛИ-графа.
10. Опишите и представьте в графическом виде стратегии поиска решений: в глубину, ширину, разбиением на подзадачи, на основе a-b-алгоритма.
11. Расскажите о способах организации логического вывода в интеллектуальных системах с фреймовым представлением знаний.
12. Разработайте программную реализацию интеллектуальной системы с продукционным представлением знаний и механизмом вывода на базе правила Modus Ponendo Ponens.