Смекни!
smekni.com

С базами знаний (стр. 2 из 18)

Следующий этап развития этого направления освещен в работах [3:1972;4:1974,1979;5:1975,1978;6:1976;7:1977,1980;8:1979;9:1981;10:1984]. В них были предложены методы моделирования предметной области для систем искусственного интеллекта с применением таких видов представления знаний о предметной области, как рассмотренные ниже семантические сети, фреймы, продукционные и предикатные модели, алгебра нечетких множеств, и другие. Термин «предметная область» заимствован из логики предикатов, в которой предметную область представляют элементы множеств, подставляемые вместо переменных [11:1967,1973]. В англо-русском словаре по программированию и информатике, изданном в 1989 г. термин «предметная область» (application domain) определяется как совокупность понятий и объектов, информация о которых хранится в базе данных и обрабатывается программой. Используется также термин «проблемная область», который обозначает не только предметную область, но и решаемые в ней задачи.

Одной из первых моделей представления знаний о предметной области явились семантические сети. Их вершины (узлы) описывают объекты, а соединяющие их дуги – отношения между ними. Выделяются структурные, функциональные, количественные, пространственные, хронологические, атрибутивные, логические и лингвистические типы отношений.

Пример семантической сети, объектами которой являются интервалы времени, связанные между собой отношениями вложенности (в) и следования (с), приведен на рис.1. Эта сеть может представлять хронологическую структуру событий, описанных, например, следующим текстом [10]: «Сегодня с 14 до 16-ти часов Иванов читал лекции в университете. Вечером он беседовал с Петровым по поводу его дипломной работы. Вчера утром до 10 часов Иванов редактировал доклад. За неделю до этого, 3 апреля, выступал на конференции в Москве».

Этому тексту соответствует дополнительная семантическая сеть, показанная на рис.2. Здесь в сеть введены отношения, связывающие более двух объектов. Они изображены вершинами, представляющими действия над объектами. Используя подобные сети, программы могут формировать ответы на некоторые вопросы в данном контексте.

Например, они могут ответить, где и когда выступал Иванов на симпозиуме, когда он читал лекцию и т.д. Кроме этого, используя транзитивность отношения временного следования и симметричность отношения «беседовать», можно логически вывести ответ, что Петров беседовал с Ивановым после 3 апреля.

Над семантическими сетями можно производить действия, например, устанавливать соответствия между элементами сетей и объединять их.

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

Таблица 1 - Структура фрейма

Имя фрейма
Имя слота Значение слота Способ получения значения Процедура

Если в качестве значения слота используется имя другого фрейма, то образуется сеть фреймов. Возможны следующие источники получения значений слотов во фрейме-экземпляре:
- от фрейма-образца (по умолчанию);
- по формуле, указанной в слоте;
- через присоединенную процедуру;
- явно из диалога с пользователем;
- из базы данных;
- через наследование свойств от фрейма, указанного в слоте фрейма более высокого уровня иерархии.

В слот может входить как одно, так и несколько значений. Он также может содержать компонент, называемый фасетом, задающий диапазон его возможных значений или границы диапазона. Представление фрейма в виде иерархической сети узлов, связанных дугами, приведено на рис.3.

Существуют два вида фреймов: статические и динамические (сценарии). Фрейм-сценарий описывает типовую структуру некоторого события, включающую характерные его элементы. Такой фрейм является совокупностью вопросов (терминалов фрейма), которые надо задать относительно некоторой ситуации, и способов ответа на них.

Например, для того чтобы понять наблюдаемый процесс, человек может задать такие вопросы: Какова причина процесса? Кто его осуществляет? Какова цель процесса? Каковы последствия? Кто потребитель результатов процесса? Каким образом он происходит?

Имея ответы на ограниченный круг вопросов можно понять большое количество реальных ситуаций. Отсюда следует, что с помощью фреймов можно построить относительно простые модели окружающего мира, достаточные для принятия решений в описываемых ситуациях. У фреймов-сценариев каждый терминал должен содержать рекомендации, как получить ответ на вопрос.

Сценарий описывается системой фреймов, представляющей последовательность действий, связанную причинно-следственными отношениями для часто встречающихся ситуаций. Результатом каждого действия являются условия, при которых может произойти следующее действие. Фиксируются роли исполнителей работ и их различные точки зрения на ситуацию.
Примером такого сценария является посещение ресторана, которое может быть описано с точки зрения посетителя следующими действиями [4]:
Сцена 1. Вход: Войти в ресторан - Посмотреть, где есть незанятые столы - Выбрать стол - Направиться к столу - Сесть.
Сцена 2. Заказ: Получить меню - Прочитать меню - Решить, что заказать - Сделать заказ официанту.
Сцена 3. Еда: Получить пищу и напитки - Съесть пищу.
Сцена 4. Уход: Попросить счет – Оплатить счет - Выйти из ресторана.

Помимо действий посетителя могут быть заданы действия (определены роли) и для других участников сценария: официанта, кассира, администратора.
В каждом сценарии могут варьироваться варианты выполнения действий, в зависимости от обстоятельств. Например, в сцене 2 заказ можно сделать письменно, устно и жестами. В сцене 4 заплатить можно деньгами официанту или кассиру либо дать указание снять деньги со своего счета.

На рис.3 данный фрейм-сценарий изображен в виде древовидного графа с выделением последовательностей сцен, действий и их вариантов.

В общем случае, сценарий это не просто последовательность событий, а причинно-следственная цепь действий. Возможны прерывания последовательности действий сценария другим сценарием. Могут возникнуть препятствия, если что-то помешает обычному действию. Действие может завершиться не так, как требуется. Поэтому при формировании фрейма должны быть предусмотрены новые действия, являющиеся реакцией на препятствия и ошибки.

Рассмотренные выше семантические сети могут являться графической формой представления фреймов, если их дополнить описанием действий и правилами выполнения. В последние годы термин фреймовый часто заменяют термином объектно-ориентированный. При этом шаблон фрейма можно рассматривать как класс, а экземпляр – как объект.

Продукционной моделью представления знаний является предложение типа «если выполняется условие А, то надо осуществить действия Б». Для таких моделей могут производиться два варианта логических выводов: прямой вывод – от фактов, хранящихся в базе фактов, к поиску цели, и обратный вывод - от цели к фактам, чтобы ее подтвердить.

Программа, осуществляющая логический вывод, называется машиной вывода. Она выполняет такие функции:
- просмотр и добавление существующих фактов (из базы данных) и правил (из базы знаний);
- определение порядка просмотра и применения правил.

Для вывода используется правило заключения, называемое modus ponens: если истинно утверждение А и имеется правило «если А, то В», то утверждение В также истинно. Полученные программой логические заключения сохраняются для пользователя. Эта программа может запрашивать у него дополнительную информацию, если будет недостаточно данных для срабатывания очередного правила.

Предикатные модели основаны на исчислении предикатов 1-го порядка, когда предметная область или задача описывается в виде набора аксиом. Эти модели предъявляют жесткие требования к логике знаний о предметной области, и поэтому их применение ограничивается лишь исследовательскими задачами.

Формальный аппарат нечеткой (fuzzy) алгебры и логики был предложен Лотфи Заде [3]. Он ввел понятие лингвистической переменной, значения которой определяются набором словесных характеристик некоторого свойства. Например, возраст человека может определяться такими характеристиками, как младенческий, детский, юный, молодой, зрелый.

Значения лингвистической переменной задаются в виде базовой шкалы и функции принадлежности. Эта функция, принимая значения на интервале [0,1], определяет субъективную степень уверенности эксперта в том, что данное конкретное значение базовой шкалы соответствует определенному нечеткому множеству.

Например, определение нечеткого множества «высокая цена» для лингвистической переменной «цена автомобиля в условных единицах» может быть таким: {50000/1, 25000/0,8, 10000/0,6, 5000/0,4}, а нечеткого множества «младенческий возраст» для лингвистической переменной «возраст»: {0,5/1, 1/0,9, 2/0,8,…,10/0,1}.

Для логического вывода на нечетких множествах используются специальные отношения и операции над ними. Рассмотренный метод представления знаний был применен в медицинской экспертной системе MYCIN [6], где при выводе диагноза и рекомендаций использовались коэффициенты уверенности.