Представление знаний

реклама
Представление знаний
Определение
• Представление (representation) в работе Уинстона
[Winston, 1984] определяется как "множество
синтаксических и семантических соглашений,
которое делает возможным описание предмета".
• В искусственном интеллекте под "предметом"
понимается состояние в некоторой проблемной
области, например объекты в этой области, их
свойства, отношения, которые существуют между
объектами.
• Описание (description) "позволяет использовать
соглашения из представления для описания
определенных предметов" [Winston, 1992].
Синтаксис
• Общепринятым в области искусственного интеллекта
является синтаксис в виде конструкции предикатаргумент, которая имеет форму
• <фраза> ::= <предикат> (<аргумент>,..., <аргумент>)
• В этой конструкции за к-местным предикатом должны
следовать k аргументов.
• Так, at может быть двухместным отношением, в
котором в качестве первого аргумента выступает имя
некоторого объекта, а в качестве второго— его
местонахождение (например, комната):
• at(робот, комнатаА)
Семантика
• Семантика представления специфицирует,
как должно интерпретироваться выражение,
построенное в соответствии с
синтаксическими правилами, т.е. как из его
формы можно извлечь какой-то смысл.
• Так, присваивая смысл символам at, робот,
комнатаА, мы можем сказать, что выражение
• at(робот, комнатаА)
• означает: робот находится в комнате А (но не
наоборот — комната А находится в роботе).
Планировщик STRIPS
• Программа предназначалась для решения проблемы
формирования плана поведения робота,
перемещающего предметы через множество
(анфиладу) помещений.
• Текущее состояние окружающей среды —
помещений и предметов в них — представляется
набором выражений предикат-аргумент, которые в
совокупности образуют модель мира.
• W = { at(poбoт, комнатаА), at(ящик1, комнатаБ),
at(ящик2, комнатаВ)}
• означает, что робот находится в комнате А и имеются
два ящика, один из которых находится в комнате Б, а
второй — в комнате В.
• Действия, которые может выполнить робот,
принимают форму операторов, приложимых к
текущей модели мира. Эти операторы позволяют
добавить в модель некоторые факты (сведения) или
изъять их из модели. Например, выполнение
операции
• "Переместить робот из комнаты А в комнату Б"
• в модели мира приведет к формированию новой
модели W. При этом факт at (робот, комнатаА) будет
изъят из модели, а добавлен факт at (робот,
комнатаБ). В результате новая модель мира будет
иметь вид
• W' = { at (робот, комнатаБ), at (ящик1, комнатаБ), аt
(ящик2, комнатаВ)}
Таблицы операторов
• Допустимые операции, такие как перемещение робота из одной
комнаты в другую или проталкивание объектов, кодируются в
таблице операторов.
• Пример элемента этой таблицы, соответствующий операции
push (толкать):
• push(X, Y, Z)
• Предварительные условия at(poбoT, Y), at(X, Y)
• Список удалений at (робот, Y), at(X, Y)
• Список добавлений at (робот, Z), at(X, Z)
• Здесь выражение push(X, Y, Z)
означает, что объект X выталкивается (роботом) из положения Y
в положение Z
• С точки зрения программиста переменные X, К и Z
в определении оператора, заданном элементом
таблицы, — это аналоги формальных параметров
в определении процедуры, которая соответствует
такому действию:
• "Вытолкнуть какой-либо объект из какого-либо
положения в любое другое положение, если имеют
место заданные предварительные условия;
• затем удалить формулы, указанные в списке
удаления,
• и добавить формулы, указанные в списке
добавления".
Пример
• как готовиться к ленчу с потенциальным клиентом.
• Для этого, во-первых, нужно иметь в своем распоряжении
определенную сумму наличных денег, чтобы расплатиться,
• во-вторых, нужно проголодаться, поскольку речь идет о приеме
пищи.
• Сформулированные условия можно рассматривать в качестве
предварительных для достижения цели "ленч".
• Однако обладание известной суммой наличных денег нельзя
рассматривать как естественное состояние клиента. Сначала
нужно получить их в банкомате, что, в свою очередь, требует
передвижения.
• Следовательно, нужно добавить в таблицу операторов еще два
элемента — at cash mashine (передвижение к банкомату) и have
money (получение наличности).
методика "генерация —проверка”
• Методика "генерация —проверка" означает
следующее: для каждого текущего состояния
предпринимаются попытки использовать все
возможные операторы, причем после каждой
попытки анализируется, не привела ли она к
желанной цели.
• Но такая методика явно бессмысленна, поскольку
количество разнообразных операций, которые робот
способен выполнить в некоторой произвольной
ситуации, очень велико, причем многие из этих
операций не имеют никакого отношения к
достижению заданной цели.
метод "средство — анализ
завершения”
• метода "средство — анализ завершения", состоит в том, чтобы с
каждой новой операцией отличие между текущим состоянием и
целевым уменьшалось, т.е. каждая очередная операция должна
приближать нас к цели.
• Но это предполагает включение в рассмотрение некоторой
меры для оценки "расстояния" в пространстве состояний.
• Такая мера очень походит на оценочную функцию. Если
очередная цель сформулирована в виде
• at(ящик1, комнатаА),
• а ящик находится в комнате Б, то перемещение робота из
комнаты А в комнату В никак не "приблизит" текущее состояние
к целевому. А вот перемещение робота из комнаты А в комнату
Б уменьшит расстояние между текущим и целевым состоянием,
поскольку робот теперь сможет на очередном шаге вытолкнуть
ящик из комнаты Б в комнату А.
MYCIN
• Используется для лечения заболеваний крови
(1) База знаний содержит фактические знания, касающиеся
предметной области, и сведения об имеющихся
неопределенностях.
(2) Динамическая база данных пациентов содержит
информацию о конкретных пациентах и их заболеваниях.
(3) Консультирующая программа задает вопросы, выводит
заключения системы и дает советы для конкретного случая,
используя информацию о пациенте и статические знания.
(4) Объясняющая программа отвечает на вопросы и дает
пользователю информацию о том, на чем основываются
рекомендации или заключения, сформулированные системой.
При этом программа приводит трассировку процесса выработки
рекомендаций.
(5) Программа восприятия знаний служит для обновления
знаний, хранящихся в системе, в процессе ее эксплуатации.
База знаний системы MYCIN
• База знаний системы MYCIN
организована в виде множества правил
в форме если условие1 и... и условиет
удовлетворяются то прийти к
заключению1 и... и к заключению n
• Эти правила преобразованы в
операторы языка LISP
Пример
• Вот как выглядит перевод на обычный язык
типичного правила MYCIN:
• ЕСЛИ 1) организм обладает грамотрицательной
окраской, и
• 2) организм имеет форму палочки, и
• 3) организм аэробный,
• ТО есть основания предполагать (0,8), что этот
микроорганизм относится к классу enterobacteriaceae.
• Помимо правил, в базе знаний MYCIN также хранятся факты и
определения. Для их хранения используются разные
структурные формы:
• простые списки, например списки всех микроорганизмов,
известных системе;
• таблицы знаний с записями об определенных клинических
показаниях и значениях, которые эти показания имеют при
разных условиях; примером может служить информация о
форме микроорганизмов, известных системе;
• система классификации клинических параметров
соответственно контексту, в котором эти параметры
рассматриваются, например являются ли они свойством
(атрибутом) пациентов или микроорганизмов.
Структуры данных в языке LISP
• основной структурой данных в нем является список;
• программы на этом языке также имеют списочную
структуру;
• его базовыми операциями являются операции над
списками.
• Базовым блоком в структуре данных языка LISP
является символическое выражение.
• Простое символическое выражение использует
атомарные символы, или атомы — строки буквенноцифровых символов, которые начинаются с буквы,
например WOMBAT.
• В LISP организованы программы и
выражения в виде списка. Например,
список
• (+ X Y) представляет математическое
выражение в форме
• (<функция> <1-й аргумент> <2-й
аргумент>),
Примитивы в LISP
• Пусть s — множество символических
выражений. Можно, например, записать:
• Е(Х , Y): S x S -> {Т, NIL}
• Это означает, что Е является функцией двух
аргументов, причем оба аргумента —
символические выражения из множества S,
которые могут принимать значение либо Т,
либо NIL.
• (1)Е(Х , Y): S x S -> {Т, NIL} проверяет, равны ли два атома.
• (2)А(Х): S -> {Т, NIL} проверяет, является ли символическое
выражение атомом.
• (З)Н(Х): S -> S извлекает голову символического выражения,
которое не является атомом; если х — атом, то результат
функции не определен.
• (4) Т(Х): S —> S извлекает хвост символического выражения,
которое не является атомом; если х — атом, то результат
функции не определен.
• (5)С(Х , Y): S х S —> S формирует символическое выражение;
если А и в являются символическими выражениями , то можно
сформировать новое символическое выражение (А . В).
• Фактически система, состоящая из трех компонентов
• (1) единственного атома NIL;
• (2) условного выражения, проверяющего равенство, в
форме
• if E(X, NIL) then ... else ...
• 3) функций Н(Х), Т(Х), С(ХД)
• к которым добавлена операция композиции функций,
вполне позволяет реализовать машину Тьюринга (см.
• NULL — это предикат, который
проверяет, не пуст ли список,
• EQ — предикат, который проверяет
равенство двух атомов,
• FIRST — функция, которая возвращает
головной элемент списка,
• REST — функция, которая возвращает
хвост списка
Сопоставление с образцом
• Одним из ключевых компонентов в
большинстве программ искусственного
интеллекта является анализатор
соответствия (pattern matcher) —
компонент, который некоторым образом
сравнивает поступающие на его вход
списки (или другие структуры данных) с
имеющимися символическими
образцами и таким образом выполняет
распознавание входных данных
• На языке LISP несложно разработать простой
анализатор соответствия, который будет
сравнивать два ординарных списка (т.е.
списка, на имеющего подсписков в качестве
элементов) и возвращать значение TRUE,
если один из них, sample (пример), можно
представить как реализацию другого —
pattern (образец).
• Предполагается, что образец может иметь
любую конечную длину и содержать любое
количество символов универсальной
подстановки(?)
Текст программы
• (defun match (sample pattern)
•
•
•
•
(cond ((and (null sample)
(null pattern)) T) ((or
(null sample) (null pattern)) NIL)
((eq (first pattern ?))
•
•
•
•
(match (rest sample) (rest pattern)))
((eq (first sample) (first pattern))
(match (rest sample) (rest pattern)))
(T NIL)) )
Системы, основанные на знаниях
• Канонические системы
• Системы порождающих правил для
решения проблем
• Управление функционированием
интерпретатора
Канонические системы
• Каноническая система — это разновидность формальной
системы, основанной на следующих компонентах:
• алфавит А, из символов которого формируются строки;
• некоторое множество строк, которые рассматриваются как
аксиомы,
• множества порождений в форме
• а1$1 ... am$m->b1$'1...bn$'1...bn$'n. Где
• (I) каждое ai и bi; есть фиксированная строка;
• (II) а1 и am, часто есть нуль;
• (III) некоторые или все из ai или bi могут представлять
собой нуль;
• (IV) каждое $i является переменной строкой, которая
также может быть нулем;
• (V) каждое $i заменяется определенным $'i .
Пример
• Пусть А — алфавит {а, b, с}, а аксиомы суть:
• а, b, с, аа, bb, cc.
• Тогда следующие порождения сгенерируют
все палиндромы, базирующиеся на этом
алфавите, приняв за отправную точку
имеющиеся аксиомы:
• (Р1)$->а$a (Р2) $ -> ab$ab (РЗ) $ -> с$с.
• чтобы сгенерировать bacab, нужно применить Р1 к
аксиоме с, а затем Р2 — к результату.
• Другими словами, приняв с в качестве аксиомы,
можно вывести из нее теорему аса и добавить ее к
имеющимся аксиомам.
• Затем из аса можно вывести новую теорему bacab.
• Обратите внимание, что эта последовательность
порождений не обладает свойством
коммутативности, т.е. если применять те же правила,
но в ином порядке, получится совсем другой
результат.
• Например, если к аксиоме с применить сначала
правило Р2, а затем Р1, то получим abcba.
• На первый взгляд канонические системы
довольно тривиальны. Все, что можно
сделать в рамках такой системы, —
преобразовать одну строку символов в
другую. Но если задуматься, то любое
логическое или математическое исчисление в
конце концов сводится к набору правил
манипулирования символами. Мы упускаем
это из виду, поскольку для нас часто важен
определенный смысл логических и
математических символов, чего не скажешь о
строках типа abcba.
Смысл порождений
• Пусть задано порождающее правило в форме
• а1$1...am$m-> b1$'1...bn$'n
• В нем a1$1 ... аm$m часто называют антецедентом
(antecedent) правила, а b,$'1 ... bn$'n консеквентом
(consequent) правила, по аналогии с условным
выражением логики высказываний.Условный
оператор обычно записывается в виде
• p U q1 что означает, "если р, то q", например "если вы
упали в реку, то будете мокрым".
• Правило в форме Х->У ( X U Y) говорит о том, что
можно записать, сгенерировать или породить
консеквент У при заданном анцеденте X.
• Правила переписывания в теоретической
лингвистике называются "порождениями", поскольку
правило вида
• S->NP+ VP
• имеет следующую интерпретацию: "один из способов
сформировать предложение S состоит в том, чтобы
взять существительное (NР) и добавить к нему глагол
(VP)".
Скачать