Jump to content

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

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

К основным особенностям GOAL относятся:

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

Агентская программа GOAL

[ редактировать ]
граница=0
Пример блокирует мировую проблему
Другой пример: многоагентный контроллер лифта GOAL. [1]

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

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

main: <agentname> {
  <sections>
}

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

knowledge{
  block(a), block(b), block(c), block(d), block(e), block(f), block(g).
  clear(table).
  clear(X) :- block(X), not(on(Y,X)).
  tower([X]) :- on(X,table).
  tower([X,Y|T]) :- on(X,Y), tower([Y|T]).
}

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

beliefs{
  on(a,b), on(b,c), on(c,table), on(d,e), on(e,table), on(f,g), on(g,table).
}

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

goals{
  on(a,e), on(b,table), on(c,table), on(d,c), on(e,b), on(f,d), on(g,table).
}

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

В ЦЕЛИ различают разные понятия цели. Примитивная цель — это утверждение, которое следует из базы целей в сочетании с концепциями, определенными в базе знаний. Например, tower([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(formula), not(bel(formula))
goal-a(formula) ::= goal(formula), bel(formula)

В литературе по агентам имеется обширная литература по определению концепции достижения цели (см. ссылки).

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

main module{
  program{
    if a-goal(tower([X,Y|T])), bel(tower([Y|T])) then move(X,Y).
    if a-goal(tower([X|T])) then move(X,table).
  }
}

Действия, такие как действие перемещения, использованное выше, определяются с использованием 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, новый факт on(X,Y) должен быть добавлен к базе убеждений. и атом на (X,Z) необходимо удалить.

event module{
  program{
    forall bel( percept(on(X,Y)), on(X,Z), not(Y=Z) ) do insert(on(X,Y), not(on(X,Z))).
  }
}
[ редактировать ]

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

См. также

[ редактировать ]
  1. ^ Симулятор лифта изначально написан Крисом Дэйли и Нилом МакКелларом и доступен в исходной форме по адресу http://sourceforge.net/projects/elevatorsim .
Примечания

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

  • Ларс Браубах, Александр Покар, Дэниел Молдт и Винфрид Ламерсдорф (2004). Представление целей для агентных систем BDI, в: Второй международный семинар по программированию мультиагентных систем.
  • Филип Р. Коэн и Гектор Дж. Левеск (1990). Намерение — это выбор, основанный на обязательствах. Искусственный интеллект 42, 213–261.
  • Андреас Херциг и Д. Лонгин (2004). Пересмотр намерения C&L. В: Учеб. 9-го Межд. Конференция «Принципы представления и рассуждения знаний» (KR'04), 527–535.
  • Коэн В. Хиндрикс, Франк С. де Бур, Вибе ван дер Хук, Джон-Жюль Ч. Мейер (2000). Агентное программирование с декларативными целями. В: Учеб. 7-го Межд. Семинар по интеллектуальным агентам VII (ATAL'00), стр. 228–243.
  • Ананд С. Рао и Майкл П. Джорджефф (1993). Намерения и рациональные обязательства. Тех. Представитель 8, Австралийский институт искусственного интеллекта .
  • Бирна ван Римсдейк, Мехди Дастани, Джон-Жюль Ч. Мейер (2009). Цели в конфликте: семантические основы целей в агентном программировании. Международный журнал автономных агентов и мультиагентных систем.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fafe015e0df7aa3a3b8d70086c59bae2__1679077860
URL1:https://arc.ask3.ru/arc/aa/fa/e2/fafe015e0df7aa3a3b8d70086c59bae2.html
Заголовок, (Title) документа по адресу, URL1:
GOAL agent programming language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)