Скачиваний:
47
Добавлен:
05.04.2013
Размер:
114.18 Кб
Скачать

Представление знаний в экспертных системах

В системах искусственного интеллекта, получающих в последнее время все большее развитие, существенную роль играет представление знаний.

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

Факты представляются в ЭВМ в виде данных, а алгоритмы - в виде программ. Всегдашним стремлением программистов было отделить данные от программ. Именно это стремление определило появление баз данных и систем управления ими.

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

Применительно к задачам, составляющим такие базы знаний в САПР, «кирпичиками» являются экспертные системы и модели, совокупность которых позволяет проектировать отдельные узлы и устройства.

Сила экспертной системы заключается в базе знаний. При использовании баз знаний большого объема, а тем более при работе с взаимодействующими друг с другом базами знаний встают проблемы:

  • приобретения и накопления знаний,

  • обеспечения непротиворечивости и полноты знаний,

  • необходимости манипулирования с большими базами знаний.

Методы представления знаний традиционно разделяются на 4 класса: семантические сети, логические подходы, фреймы и системы продукций. Это подразделение носит несколько условный характер, так как в реально работающих системах часто используют различные классы представления знаний.

Семантические сети

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

Сети различного вида получаются в зависимости от того, какие ограничения накладываются на вершины и дуги. Если вершины не имеют собственной внутренней структуры, то соответствующие сети называют простыми сетями. Если вершина обладает некоторой структурой, то такие сети называют иерархическими сетями.

Одно из основных отличий иерархических семантических сетей от простых семантических сетей состоит в возможности разделить сеть на подсети и установить отношения не только между вершинами, но и между подсетями.

Различные подсети, существующие в сети, могут быть упорядочены в виде дерева подсетей, вершинами которого являются подсети, а дугам - отношения видимости. Понятие подсети аналогично понятию скобок в математической нотации, а понятие видимости - связи переменных, находящейся в скобках к переменным, находящимся вне скобок.

В настоящее время достаточно популярной структурой является иерархическая сеть узлов, объединенная отношениями IS-A и HAS-PART [2, 7]. Рассмотрим одно из них. Идея IS-A очень простая. Еще в первых исследованиях по искусственному интеллекту было замечено, что многие представления о мире были связаны с концептуальным (понятийным) отношением, выражаемые по-английски фразами типа «John is a bachelor» (Джон является холостяком) и «dog is a domastic animal» (собака - это домашнее животное).

Эти два выражения являются примерами двух основных форм утверждений, используемых в искусственном интеллекте: предикат, выражающий принадлежность индивидуума (Джона) к определенному типу (холостяков), и связанный квантор всеобщности, определяющий что один тип (собака) является подтипом другого (животные). Простейший путь отображения такого рода утверждений на семантические сети - создать связь, которая прямо представляла бы части «is a» этих предложений. Так появилась связь IS-A.

Сразу было замечено, что связи IS-A образуют иерархи, что они частично упорядочены. Иерархическая организация облегчает распределение «свойств» так, чтобы они, будучи разделяемыми между узлами, запоминались в иерархии, покрывая максимальное множество узлов, использующих эти «свойства». Такая организация делает семантическую сеть достаточно эффективным средством организации памяти, поскольку копии «свойств» не запоминаются во всех точках, в которых они используются. Они «наследуются» всеми узлами, расположенными ниже тех, в которых они запомнены.

Такая структура позволяет легко осуществить поиск необходимых данных в экспертной системе.

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

Простейший тип описания - это описание индивида, например:

London, 5, John. Это идентификаторы (имена), описывающие индивидуальные объекты.

Для определения множества индивидуальных объектов используется языковая конструкция, получившая название «описание экземпляра» и имеющая вид (a city), (an integer), (a human).

Простейшим элементарным предложением языка Омега является утверждение, использующее отношение is. Например, London is (a city), 5 is (an integer) принимаются как утверждение, что индивидуальный объект London принадлежит к классу городов, а число 5 - к целым числам.

Утверждение может быть использовано для связи произвольных описаний. Например, в предложении

(a Human) is (a Mortal)

утверждается, что любой индивид класса «люди» является также индивидом класса «смертный».

Отношение is транзитивно. Из утверждений Socrates is (a Human) и (a Human) is (a Mortal) следует утверждение Socrates is (a Mortal). Очевидно, что эти предложения легко представляются семантической сетью.

Описание объекта может быть дополнено признаками (атрибутами). Они конкретизируют некоторый класс, описывая ряд его свойств. Например,

(a Car(with color red))

Определение (with color red) ограничивает описание автомобилей (car) только имеющими красный цвет. Здесь «color» (цвет) есть имя атрибута для понятия «автомобиль», а «red» - есть значение соответствующего атрибута.

Атрибутивная конструкция, кроме того, служит средством связывания описаний. Например,

my car is (a Car(with owner(an Italian)))

Атрибут owner (владелец) устанавливает связь между описанием my car (моя машина) и описанием итальянца, который является ее владельцем.

Язык системы Омега обеспечивает возможность постепенного накопления знаний, т.е. позволяет делать частичные описания с последующим поэтапным уточнением понятий. Например, можно сначала сформулировать описание

(a Car) is (a Car(with number_of_wheels 4))

(a автомобиль) is (a автомобиль (с числом колес 4))

а затем ввести утверждение

(a Car) is (a Car (with owner(a Person)))

(a автомобиль) is (a автомобиль (с владельцем (a лица)))

(здесь артикль «a» является служебным словом).

С помощью слияния можно сформировать предложение

(a Car) is (a Car(with number_of_wheels 4)) (with owner(a Person)).

Аналогично можно выполнить операцию удаления атрибута, получая описание более общего вида, т.е. с меньшим числом ограничений.

Значительная часть систем представления знаний поддерживает два отношения наследования: IS-A между классами и INSTANCE-OF (элемент из) между классом и его элементами.

С помощью этих отношений понятие «мой автомобиль» можно описать следующим образом:

АВТОМОБИЛЬ:

число колес: 4

двигатель: неисправный или исправный

цвет: красный или черный или синий

КРАСНЫЙ_АВТОМОБИЛЬ IS-A АВТОМОБИЛЬ

цвет: красный

МОЙ_АВТОМОБИЛЬ INSTANCE-OF АВТОМОБИЛЬ

цвет: красный

двигатель: неисправный

Понятие (концепт) КРАСНЫЙ_АВТОМОБИЛЬ наследует от понятия АВТОМОБИЛЬ его атрибуты, т.е. то, что он имеет 4 колеса и может быть двигатель в исправном или неисправном состоянии. Здесь из всего множества автомобилей с их свойствами выделяется подмножество автомобилей красного цвета. МОЙ_АВТОМОБИЛЬ - это уже не множество (или класс) автомобилей, а единственный элемент этого множества, обладающий теми свойствами, что он красного цвета и у него неисправный двигатель. Он наследует все остальные свойства понятия автомобиль. В данном случае: обладание 4-мя колесами.

На языке Омега этот пример описывается следующим образом:

(a Car) is (a Car (with number_of_wheels 4))

(with engine (faulty or not_fauty))

(with color red or black or blue)

(a red_Car) is (a Car (with color red))

my Car instance_of (a Car (with color red)(with engine faulty))

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

(a Car (with driver John)(with driver Jane))

Фреймы

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

Фрейм можно определить как фрагмент знаний, ассоциируемый со стереотипными ситуациями, имеющий вид структурированных наборов данных. Каждый набор данных называется «слот». Слот может указывать на другой фрейм, тем самым устанавливая связь между двумя фреймами. В фрейме могут быть представлены ожидаемые параметры ситуации.

Можно провести аналогию между фреймами и описанием процедур в языках программирования. Фрейм соответствует описанию процедуры, но вызываться фреймы могут не по имени, а по соответствию текущей ситуации той ситуации, которую описывает данный фрейм. Кроме того, фрейм, слоты и механизм их обозначения, определяющий вызов, описывают ситуацию в семантических, а не в синтаксических терминах. С каждым слотом фрейма связаны описания условий, которые должны быть соблюдены, чтобы произошло обращение к слоту.

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

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

В следующем примере описаны ожидаемые параметры велосипеда [2]:

ФРЕЙМ ВЕЛОСИПЕДА

СПЕЦИАЛИЗАЦИЯ: ФРЕЙМ движущегося средства с_количеством моторов=0

количество_колес: b{1,2}

значение по умолчанию 2

количество_сидений: b{1,2}

значение по умолчанию 1

владелец: ЭКЗЕМПЛЯР ФРЕЙМА человек

Таким образом, идея фрейма похожа на идею записи при обработке данных. Все атрибуты объекта собраны вместе в единой комбинационной структуре. В отличие от полей записи каждый слот фрейма поименован.

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

Поиск информации во фреймах может быть осуществлен так же, как в структурах данных.

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

Слоты в большинстве систем могут иметь различные значения (например, брат, вице-президент, отец) и множество свойств.

Фреймовое представление базы знаний, также как и метод семантических сетей, позволяет осуществлять быстрый вывод на основе принципа наследования. Так, если фрейм ФИЗИЧЕСКОГО_ОБЪЕКТА имеет связь с фреймом подкласса ПОДВИЖНЫЕ_ОБЪЕКТЫ, а они, в свою очередь, с фреймом подкласса АВТОМОБИЛЬ, то система легко делает заключение, что АВТОМОБИЛЬ есть подкласс ФИЗИЧЕСКОГО_ОБЪЕКТА без привлечения других механизмов вывода.

Соседние файлы в папке лаб2