Главная arrow Знания и рассуждения arrow Основанные на знаниях
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Основанные на знаниях Печать
Центральным компонентом любого агента, основанного на знаниях, является его база знаний, или сокращенно KB (Knowledge Base). Неформально базу знаний можно определить как множество высказываний. (Здесь слово "высказывание" используется в качестве формального термина. Смысл этого термина близок, но не идентичен понятию высказывания в английском и других естественных языках.) Каждое высказывание выражено на языке, называемом языком представления знаний, и представляет некоторое утверждение о мире.

Должен существовать определенный способ добавления новых высказываний к базе знаний, а также способ извлечения из этой базы тех знаний, которые в ней содержатся. Стандартными названиями для этих операций являются соответственно Tell и Ask. Обе такие операции могут быть связаны с проведением логического вывода, т.е. могут потребовать получения новых высказываний из старых. В логических агентах, которые служат основной темой исследования данной главы, логический вывод должен подчиняться тому фундаментальному требованию, что ответ на запрос к базе знаний, переданный с помощью операции Ask, должен следовать из того, что было сообщено базе знаний (или точнее, введено с помощью операции Tell) до сих пор. Ниже будет дано более точное определение важного понятия "логического следствия". А на данный момент будем считать, что в соответствии с этим понятием в процессе логического вывода не должны выполняться операции, не подчиняющиеся строгим правилам.

Общая схема программы агента, основанного на знаниях, приведена в листинге ниже. Как и все агенты, описанные в на данном веб-сайте, этот агент принимает на входе результаты акта восприятия percept и возвращает действие action. Агент поддерживает базу знаний, KB, которая может первоначально содержать некоторые фоновые знания. После каждого вызова программа агента выполняет три этапа. Во-первых, программа вводит в базу знаний с помощью операции Tell результаты акта восприятия, во-вторых, передает в базу знаний с помощью операции Ask запрос о том, какое действие следует предпринять. В процессе поиска ответа на этот запрос могут быть проведены исчерпывающие рассуждения в отношении текущего состояния мира, результатов возможных последовательностей действий и т.д. В-третьих, агент регистрирует свой выбор с помощью операции Tell и выполняет действие. Вторая операция Tell необходима для передачи в базу знаний информации о том, что гипотетическое действие action действительно было выполнено.

Подробные сведения о языке представления скрыты в трех функциях, которые реализуют интерфейс между датчиками и исполнительными механизмами, а также между основным представлением и системой формирования рассуждений. Функция Make-Percept-Sentence формирует высказывание, подтверждающее, что агент получил результаты данного конкретного акта в текущий момент времени. Функция Make-Action-Query формирует высказывание, представляющее собой запрос о том, какое действие должно быть выполнено в текущий момент времени. Наконец, функция Make-Action-Sentence формирует высказывание, подтверждающее, что выбранное действие было выполнено. Подробные сведения о механизме логического вывода скрыты внутри функций Tell и Ask. Эти подробные сведения будут представлены в следующих разделах.

Универсальный агент, основанный на знаниях
function KB-Agent(percept) returns действие action
  static: KB, база знаний
  t, счетчик, обозначающий время, первоначально равный О
  Tell(KB, Make-Percept-Sentence(percept, t))
  action <— Ask(KB, Make-Action-Query(t))
  Tell(KB, Make-Action-Sentence(action, t))
  t <- t + 1
return action

Алгоритм агента, приведенный в листинге, внешне кажется весьма аналогичным алгоритмам агентов с поддержкой внутреннего состояния. Однако в силу приведенных выше определений операций Tell и Ask агента, основанного на знаниях, уже нельзя рассматривать как произвольную программу для вычисления действий. Он уже больше подходит для описания на уровне знаний, в котором для фиксации его поведения требуется указать лишь то, что известно агенту и каковы его цели.

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

Как уже упоминалось, агент основанный на знаниях, может быть создан путем передачи ему с помощью операции Tell той информации, которую ему требуется знать. Первоначальная программа агента, применяемая до того, как агент начнет получать результаты актов восприятия, создается путем добавления одного за другим тех высказываний, которые представляют знания проектировщика о данной среде. А если удается спроектировать язык представления, позволяющий легко выражать эти знания в форме высказываний, то задача создания агента чрезвычайно упрощается. Описанный выше подход называется декларативным подходом к созданию системы. В отличие от этого процедурный подход требует представления желаемых правил поведения непосредственно в виде кода программы. Но сведение к минимуму роли явных форм представления и формирования рассуждений позволяет добиться создания гораздо более эффективных систем. В 1970-1980-х годах приверженцы этих двух подходов вступили в ожесточенные дебаты. Однако теперь стало ясно, что успешно действующий агент должен сочетать в своем проекте и декларативные, и процедурные элементы.

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

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