Представление знаний в системах искусственного интеллекта
Основной особенностью интеллектуальных систем является то, что они основаны на знаниях, а вернее, на некотором их представлении.Знания здесь понимаются как хранимая (с помощью ЭВМ) информация, формализованная в соответствии с некоторыми правилами, которую ЭВМ может использовать при логическом выводе по определенным алгоритмам. Наиболее фундаментальной и важной проблемой является описание смыслового содержания проблем самого широкого диапазона, т.е. должна использоваться такая форма описания знаний, которая гарантировала бы правильную обработку их содержимого по некоторым формальным правилам. Эта проблема называется проблемой представления знаний.
В настоящее время наиболее известны три подходак представлению знаний в обсуждаемых системах:
• продукционная и логическая модели;
• семантические сети;
• фреймы.
Продукционные правила - наиболее простой способ, представления знаний. Он основан на представлении знаний в форме правил, структурированных в соответствии с образцом «ЕСЛИ - ТО». Часть правила «ЕСЛИ» называется посылкой, а «ТО» - выводом или действием. Правило в общем виде записывается так:
ЕСЛИ A1, A2, ...,An, ТО В.
Такая запись означает, что «если все условия от A1 до Аn являются истинными, то В также истинно» или «когда все условия от А1 до Аn выполняются, то следует выполнить действие В».
Рассмотрим правило
ЕСЛИ (1) у является отцом х
(2) z является братом у
ТО z является дядей х
В данном случае число условий п = 2.
В случае п = 0 продукция описывает знание, состоящее только из вывода, т.е. факт. Примером такого знания является факт «атомная масса железа 55,847 а.е.м».
Переменные х, у и г показывают, что правило содержит некое универсальное, общее знание, абстрагированное от конкретных значений переменных. Одна и та же переменная, использованная в выводе и различных посылках, может получать различные конкретные значения.
Знания, представленные в интеллектуальной системе, образуютбазу знаний.В интеллектуальную систему входит такжемеханизм выводов, который позволяет на основе знаний, имеющихся в базе знаний, получать новые знания.
Проиллюстрируем сказанное. Положим, что в базе знаний вместе с описанным выше правилом содержатся и такие знания:
ЕСЛИ (1) z является отцом х
(2) z является отцом у
(3) х и у не являются одним и тем же человеком
ТО х и у являются братьями
Иван является отцом Сергея
Иван является отцом Павла
Сергей является отцом Николая
Из представленных знаний можно формально вывести заключение, что Павел является дядей Николая. При этом считается, что одинаковые переменные, входящие в разные правила, независимы; объекты, имена которых эти переменные могут получать, никак не связаны между собой. Формализованная процедура, использующая сопоставление (при котором устанавливается, совпадают ли между собой две формы представления, включая подстановку возможных значений переменных), поиск в базе знаний, возврат к исходному состоянию при неудачной попытке решения, представляет собой механизм выводов.
Простота и наглядность представления знаний с помощью продукций обусловила его применение во многих системах, которые называются продукционными.
Семантическая сеть - иной подход к представлению знаний, который основан на изображении понятий (сущностей) с помощью точек (узлов) и отношений между ними с помощью дуг на плоскости. Семантические сети способны отображать структуру знаний во всей сложности их взаимосвязей, увязать в единое целое объекты и их свойства. В качестве примера может быть приведена часть семантической сети, относящейся к понятию «фрукты» (рис. 1.47).
Рис. 1.47. Пример семантической сети
Фреймовая система имеет все свойства, присущие языку представления знаний, и одновременно являет собой новый способ обработки информации. Слово «фрейм» в переводе с английского языка означает «рамка». Фрейм является единицей представления знаний об объекте, которую можно описать некоторой совокупностью понятий и сущностей. Фрейм имеет определенную внутреннюю структуру, состоящую из множества элементов, называемыхслотами. Каждый слот, в своюо-чередь, представляется определенной структурой данных, процедурой, или может быть связан с другим фреймом.
Фрейм: человек | ||
Класс | : | Животное |
Структурный элемент | : | Голова, шея, руки, ноги,... |
Рост | : | 30-220 см |
Масса | : | 1 - 200 кг |
Хвост | : | Нет |
Фрейм аналогии | : | Обезьяна |
Существуют и другие, менее распространенные подходы к представлению знаний в интеллектуальных системах, в том числе гибридные, на основе уже описанных подходов.
Перечислим главные особенности машинного представления данных.
1. Внутренняя интерпретируемость. Обеспечивается наличием у каждой информационной единицы своего уникального имени, по которому система находит ее для ответа на запросы, в которых это имя упомянуто.
2. Структурированность. Информационные единицы должны обладать гибкой структурой, для них должен выполняться «принцип матрешки», т.е. вложенности одних информационных единиц в другие, должна существовать возможность установления соотношений типа «часть - целое», «род - вид», «элемент - класс» между отдельными информационными единицами.
3. Связность. Должна быть предусмотрена возможность установления связей различного типа между информационными единицами, которые бы характеризовали отношения между информационными единицами. Эти отношения могут быть как декларативными (описательными), так и процедурными (функциональными).
4. Семантическая метрика. Позволяет устанавливать ситуационную близость информационных единиц, т.е. величину ассоциативной связи между ними. Такая близость позволяет выделять в знаниях некоторые типовые ситуации, строить аналогии.
5. Активность. Выполнение действий в интеллектуальной системе должно инициироваться не какими-либо внешними причинами, а текущим состоянием представленных в системе знаний. Появление новых фактов или описание событий, установление связей должны стать источником активности системы.
МОДЕЛИРОВАНИЕ РАССУЖДЕНИЙ
Рассуждение - один из важнейших видов мыслительной деятельности человека, в результате которого он формулирует на основе некоторых предложений, высказываний, суждений новые предложения, высказывания, суждения. Действительный механизм рассуждений человека остается пока недостаточно исследованным. Человеческим рассуждениям присущи: неформальность, нечеткость, нелогичность, широкое использование образов, эмоций и чувств, что делает чрезвычайно трудными их исследование и моделирование. К настоящему времени лучше всего изучены логические рассуждения и разработано много механизмов дедуктивных выводов, реализованных в различных интеллектуальных системах, основанных на представлении знаний с помощью логики предикатов 1-го порядка.
Предикат - это конструкция вида P(t1, t2, ..., tn), выражающая какую-то связь между некоторыми объектами или свойствами объектов. Обозначение этой связи или свойства, Р, называют «предикатным символом»; t1, t2, .... tn обозначают объекты, связанные свойством (предикатом) Р и называют термами.
Термы могут быть только трех следующих типов:
1) константа (обозначает индивидуальный объект или понятие);
2) переменная (обозначает в разное время различные объекты);
3) составной терм – функция f(t1, t2, … tn), имеющая в качестве своих аргументов m термов t1, t2, … tm.
Примеры.
1. Предложение «Волга впадает в Каспийское море» можно записать в виде предиката
впадает (Волга, Каспийское море).
«Впадает» - предикатный символ; «Волга» и «Каспийское море» - термы-константы. Мы могли обозначить отношение «впадает» и объекты «Волга» и «Каспийское море» символами.
Вместо термов-констант можно рассматривать переменные:
впадает (Х, Каспийское море)
или
впадает (X,Y).
Это тоже предикаты.
2. Отношение х + 1 < у можно записать в виде предиката А(х,у). Предикатный символ А здесь обозначает то, что останется от x + 1 < у, если выбросить из этой записи переменные х и у.
Итак, предикат - это логическая функция, принимающая значения «истина» или «ложь» в зависимости от значений своих аргументов. Количество аргументов у предиката называют егоарностью.
Так, для наших примеров предикат «впадает» имеет арность 2 и при Х = «Волга», а Y = «Каспийское море» истинен, а при Х = «Дон», Y = «Бискайский залив» ложен. Предикат А в примере 2 также имеет арность 2, истинен при Х = 1, Y = 3 и ложен при X=3, Y=1.
Предикаты могут быть объединены в формулы с помощью логических связок (союзов): ^ («и», конъюнкция), v («или», дизъюнкция), ~ («не», отрицание), → («следует», импликация), ↔ («тогда, и только тогда, когда», эквиваленция).
Ниже приведены таблицы истинности этих союзов, позволяющие определить, истинно или ложно значение формулы-связки при различных значениях, входящих в нее предикатов A и В.
Математически строго формулы логики предикатов определяются рекурсивно:
1) предикат есть формула;
2) если А и В - формулы, то А, А^В,АvВ, А→B, А↔В - тоже формулы;
3) других формул не бывает.
Многие формулы логики предикатов требуют использованиякванторов, определяющих область значений переменных - аргументов предикатов. Используются кванторы общности (перевернутое А от английского «All» - все) и квантор существования - (перевернутое Е от английского «Exists» - «существует»). Запись "x читается «для любого х», «для каждого х»; $х - «существует х», «хотя бы для одного х». Кванторы связывают переменные предикатов, на которые они действуют, и превращают предикаты в высказывания.
Таблица 1.12 Истинность связок предикатов (И - истина, Л - ложь)
А | В | А^В | AvB | ~А | А→В | А↔В |
И И Л Л | И Л И Л | И Л Л Л | И И И Л | Л Л И И | И Л И И | И Л Л И |
Пример.
Введем обозначения: А(х) - студент х учится отлично; В(х) - студент х получает повышенную стипендию. Теперь формула А (Иванов) → В (Иванов) означает: студент Иванов учится отлично, следовательно, студент Иванов получает повышенную стипендию, а формула с квантором общности (Vx) (A(x) —> В(х)) означает: каждый студент, который учится отлично, получает повышенную стипендию.
Из всевозможных формул нам потребуется только один их вид, называемый фразами Хорна. Фразы Хорна содержат в общем случае импликацию и конъюнкцию предикатов А, В1, В2,. . . , Вп следующим образом: В1, В2,. . . Вп → А, или в более удобных обозначениях:
А:-В1, В2,...Вn
(читается: А если B1 и В2 и ... и Вп).
Очевидно, фраза Хорна является формой записи некоего правила, и в дальнейшем будет называться правилом. Предикат А называется заголовком или головой правила, а предикаты В1, В2,... ,Вп- его подцелями.
Очевидно, что отдельный предикат является частным случаем фразы Хорна: А.
Другой частный случай фразы Хорна - правило без головы
:-В1, В2,...,Вп,
или
:-В.
Такая фраза Хорна называется вопросом. Мы будем записывать «: - В» в виде «? - В», а «:- В1, В2,.... Вп» в виде «? – В1, В2,.... Вп».
Поясним логический смысл такой формулы. Напомним, что импликация А: - В (В —> А) может быть выра-жена через отрицание и дизъюнкцию : ~BvА (проверьте это с помощью таблицы истинности). Значит, если отбросить А, останется только ~В - отрицание В. Формула ← B1, ..., Вп означает отрицание конъюнкции ~{B1^B2^...^Bn), что по закону де Моргана ~(X^Y) = (~X)v(~Y) равно (~B1)v(~B2) v ... v(~Bn) - дизъюнкции отрицаний.
Множество фраз Хорна применительно к некоторой проблемной области образует теорию (в логическом смысле).
Пример.
Рассмотрим предметную область: сдачу экзамена по некоторой дисциплине. Введем обозначения:
А - студент успешно сдает экзамен.
В - студент посещал занятия.
С - студент освоил учебный материал.
D - студент занимался самостоятельно.
Е - студент подготовил шпаргалку.
Введем знания о предметной области:
Студент успешно сдаст экзамен, если студент освоил учебный материал.
Студент освоил учебный материал, если студент посещал занятия и студент занимался самостоятельно. Студент посещал занятия. Студент занимался самостоятельно.
Форма логической записи:
А:-С;
C:-B,D;
В;
D.
В приведенном примере можно выполнить логический вывод. Так, из истинности фактов В и D и правила С:-В, D следует истинность С, и из правила А:-С - истинность предиката А, т.е., студент успешно сдаст экзамен. Кроме того, правила А :-С и С:-В, D можно было бы переписать в виде А :-В, D.
В этих случаях используют правила вывода, называемыеметодом резолюций.
Рассмотрим простейшую форму резолюции. Допустим, имеются «родительские» предложения
отрицание: ~А импликация: А :-В.
В результате одного шага резолютивного вывода получаем новое предложение:
В, которое называетсярезольвентой. В этом случае резолюция соответствует стандартному пропозициональному правилу вывода:
допуская, что не А
и А, если В
выводим не В.
Еще более простой случай:
отрицание: ~А
факт: А.
Резольвента - противоречие.
В общем случае имеются родительские предложения
~(А1^ ... ^Аn)
Ak:-B1,...,Bm 1 £ k £ n.
В качестве резольвенты за один шаг вывода получается ~(A1^…^Ak-1 ^B1^…^Bm^Ak+1^…^An).
Таким образом, резолюция является подстановкой предикатов - подцелей B1,... Вп, вместо соответствующего предиката Ak из отрицания. Отрицание инициирует логический вывод и поэтому называется запросом (или вопросом) и обозначается А1, А2, ... , An. Смысл метода резолюций состоит в том, что строится отрицание конъюнкции и проверяется, истинно его значение или ложно. Если значение результирующей конъюнкции ложь, значит, получилось противоречие и, поскольку на старте было отрицание предикатов, выполнено доказательство «от обратного». Если получено значение «истина», то доказательство не выполнено.
Пример.
Пусть предикат дает (Х,Y,Z) означает, что «X дает Y некоторому объекту Z», а предикат получают (X, Y) означает, что «Y получает Z». Пусть знания об этих отношениях выражаются предложениями
1) получает(вы, сила):- дает (логика, сила, вы);
2) дает (логика, сила, вы).
Задача, которую нужно решить, состоит в том, чтобы ответить на вопрос: получаете ли вы силу ?
Представим этот вопрос в виде отрицания -получает(вы, сила). Резолюция предложения 1 и отрицания приводит к ~дает (логика, сила, вы), что вместе с фактом 2 приводит к противоречию. Следовательно, ответом исходной задачи является «да».
Пока что мы рассмотрели резолюцию для высказываний или предикатов без переменных. Если же вывод производится для множества предикатов с переменными в качестве аргументов, эти переменные в ходе вывода получают значения соответствующих констант или, как еще говорят, конкретизируются константами.
Рассмотрим это на примере.
Пример.
Рассмотрим следующие родительские предложения:
1) ~получает (вы. У);
2) получает (X, сила) :- дает (Z, сила, X).
Они содержат три переменные X,Y и Z, которые неявно находятся под действием квантора общности. Так, предложение 1 утверждает, что «для всех Y вы не получаете Y», а 2 - «для всех Z любой Х получает силу, если Z дает силу X». Правило резолюции требует совпадения предиката из отрицания 1 и головы правила 2. Это означает, что переменные получают значения (конкретизируются) соответственно их месту в предложениях 1 и 2 следующим образом: Х = вы, Y = сила. Предикат получает (вы, сила) называется общим примером для предикатов получает(вы Y) и получает (Х, сила).
Изложенные положения логики предикатов находят реализацию и дальнейшее развитие в языке программирования Пролог.