язык программирования агента GOAL

редактировать

GOAL - это агент язык программирования для программирования когнитивные агенты. ЦЕЛЕВЫЕ агенты делают выбор действий исходя из своих убеждений и целей. Язык предоставляет основные строительные блоки для разработки и реализации когнитивных агентов с помощью программных конструкций, которые позволяют и облегчают манипулирование убеждениями и целями агента и структурируют его принятие решений. Язык предоставляет интуитивно понятную структуру программирования, основанную на здравом смысле или практическом мышлении.

Содержание
  • 1 Обзор
  • 2 Программа-агент ЦЕЛЬ
  • 3 Связанные языки программирования агентов
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Обзор

Основные особенности GOAL включают:

  • Декларативные убеждения : агенты используют символический, логический язык для представления информация, которой они обладают, а также их убеждения или знания об окружающей среде, в которой они действуют для достижения своих целей. Этот язык представления знаний не фиксируется Целью, но, в принципе, может быть изменен в соответствии с потребностями программиста.
  • Декларативные цели : агенты могут иметь несколько целей, которые определяют, чего агент хочет достичь в какой-то момент. в ближайшем или далеком будущем. Декларативные цели определяют состояние среды, которое агент хочет установить, они не определяют действия или процедуры, как достичь таких состояний.
  • Стратегия слепой приверженности : агенты привержены своим целям и отбрасывают цели только тогда, когда они было достигнуто. Эта стратегия приверженности, называемая в литературе стратегией слепой приверженности, является стратегией по умолчанию, используемой агентами GOAL. Предполагается, что у когнитивных агентов нет целей, которые, по их мнению, уже достигнуты, ограничение, которое было встроено в агенты GOAL, отбрасывая цель, когда она была полностью достигнута.
  • Основанный на правилах выбор действия : Агенты используют так называемые правила действий для выбора действий с учетом их убеждений и целей. Такие правила могут недооценивать выбор действия в том смысле, что несколько действий могут быть выполнены в любое время с учетом правил действий агента. В этом случае агент GOAL выберет произвольно разрешенное действие для выполнения.
  • Модули намерений на основе политик : агенты могут сосредоточить свое внимание и приложить все свои усилия для достижения подмножества своих целей, используя подмножество свои действия, используя только те знания, которые необходимы для достижения этих целей. GOAL предоставляет модули для структурирования правил действий и знаний, посвященных достижению конкретных целей. Неформально модули можно рассматривать как основанные на политике намерения в смысле Майкл Братман.
  • Общение на уровне знаний : агенты могут общаться друг с другом для обмена информацией и координировать свои действия. Агенты ЦЕЛИ общаются, используя язык представления знаний, который также используется для представления их убеждений и целей.
  • Тестирование : вы также можете писать тесты для ЦЕЛИ.
Программа агента ЦЕЛИ
border = 0 Elevatorworld.png
Пример блокирует мировую проблему
Другой пример: Многоагентный контроллер лифта GOAL

Программа агента GOAL состоит из шести различных разделов, включая знания, убеждения, цели, правила действий, спецификации действий и правила восприятия, соответственно. Знания, убеждения и цели представлены на языке представления знаний, таком как Prolog, Программирование набора ответов, SQL (или Datalog ) или, например, язык определения домена планирования. Ниже мы проиллюстрируем компоненты программы агента GOAL с использованием Prolog.

Общая структура программы агента ЦЕЛИ выглядит следующим образом:

main: { }

Код агента ЦЕЛИ, используемый для иллюстрации структуры агента ЦЕЛИ, - это агент, который может решать Блокирует мир проблем. Убеждения агента представляют текущее состояние мира блоков, тогда как цели агента представляют состояние цели. Раздел знаний, указанный ниже, содержит дополнительные концептуальные или предметные знания, связанные с мировым доменом блоков.

знание {блок (a), блок (b), блок (c), блок (d), блок (e), блок (f), блок (g). ясно (таблица). clear (X): - блок (X), а не (на (Y, X)). башня ([X]): - на (X, таблица). башня ([X, Y | T]): - на (X, Y), башня ([Y | T]). }

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

верования {на (a, b), на (b, c), на (c, таблица), на (d, e), на (e, таблица), на (f, g), на (г, таблица). }

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

голы {на (a, e), на (b, таблица), на (c, таблица), на (d, c), на (e, b), на (f, d), на (г, таблица). }

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

В ЦЕЛИ различаются разные понятия цели. примитивная цель - это утверждение, которое следует из целевой базы в сочетании с концепциями, определенными в базе знаний. Например, башня ([a, e, b])- это примитивная цель, и мы пишем goal (tower ([a, e, b])для обозначения этого. Изначально, tower ([a, e, b])также является целью достижения, поскольку агент не верит, что a находится на вершине e, e находится на вершине b и b находится на столе. Цели достижения - это примитивные цели, которые агент не считает имеющими место и обозначаются a-goal (tower ([a, e, b]). Это также полезно для быть в состоянии выразить, что цель была достигнута . goal-a (tower ([e, b])используется для выражения, например, что башня [ e, b]было достигнуто с блоком e поверх блока b. Можно определить как цели достижения, так и понятие достигнутой цели:

a-goal (formula) :: = цель (формула), не (бел (формула)) цель-а (формула) :: = цель (формула), бел (формула)

Существует значительная литература по определению концепции цели достижения в литературу по агентам (см. ссылки).

GOAL - язык программирования на основе правил е. Правила разбиты на модули. Главный модуль агента GOAL определяет стратегию выбора действий с помощью правил действий. Первое правило ниже гласит, что перемещение блока X поверх блока Y (или, возможно, стола) является вариантом, если такое перемещение является конструктивным, т.е. перемещает блок на место. Второе правило гласит, что перемещение блока X в таблицу является вариантом, если блок X неуместен.

основной модуль {программа {если цель (башня ([X, Y | T])), бел (башня ([Y | T])), то переместите (X, Y). если а-цель (башня ([X | T])), то переместите (X, стол). }}

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

actionspec {move (X, Y) {pre {clear (X), clear (Y), on (X, Z), not (X = Y)} post {not (on (X, Z))), on (X, Y)}}

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

модуль событий {программа {forall bel (восприятие (на (X, Y)), на (X, Z), а не (Y = Z)) вставляет (на (X, Y), а не ( на (X, Z))). }}
Связанные языки программирования агентов

Язык программирования агентов GOAL связан, но отличается от других языков программирования агентов, таких как AGENT0, AgentSpeak, 2APL, Golog, JACK Intelligent Agents, Jadex и, например, Jason. Отличительной чертой GOAL является концепция декларативной цели. Цели ЦЕЛЕВОГО агента описывают то, чего агент хочет достичь, а не то, как этого достичь. В отличие от других языков, агенты GOAL привержены своим целям и удаляют цель только тогда, когда она полностью достигнута. GOAL предоставляет структуру программирования с упором на декларативное программирование и возможности рассуждения, необходимые когнитивным агентам.

См. Также
Ссылки
Примечания

Литература по понятию цели:

  • Ларс Браубах, Александр Покар, Даниэль Молдт и Винфрид Ламерсдорф (2004). Представление целей для агентных систем BDI, в: Второй международный семинар по программированию многоагентных систем.
  • Филип Р. Коэн и Гектор Дж. Левеск (1990). Намерение - это выбор с обязательством. Искусственный интеллект 42, 213–261.
  • Андреас Херциг и Д. Лонгин (2004). Снова о намерении C l. В: Proc. 9-го Междунар. Конференция «Принципы представления знаний и рассуждений» (KR’04), 527–535.
  • Коэн В. Хиндрикс, Франк С. де Бур, Вибе ван дер Хук, Джон-Жюль Ч. Мейер (2000). Агентное программирование с декларативными целями. В: Proc. 7-го Междунар. Семинар по интеллектуальным агентам VII (ATAL’00), стр. 228–243.
  • Ананд С. Рао и Майкл П. Джорджфф (1993). Намерения и рациональные обязательства. Tech. Представитель 8, Австралийский институт искусственного интеллекта.
  • Бирна ван Римсдейк, Мехди Дастани, Джон-Жюль Ч. Мейер (2009). Цели в конфликте: семантические основы целей в агентном программировании. Международный журнал автономных агентов и многоагентных систем.
Внешние ссылки
Последняя правка сделана 2021-05-21 09:12:21
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте