Агенториентированная технология построения систем искусственного интеллекта.

Евгений Борисов

16 февраля 2003 г.

ttp://mechanoid.narod.ru/misc/agents/index.html

1 Основные понятия

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

  1. Агент - автономная система, способная принимать решения исходя из своих внутренних представления о среде.
  2. Агент существует в среде.
  3. Агент взаимодействует другими агентами и со средой.
  4. Агент может изменять среду.

В [6] агент определяется как интеллектуальное искусственное существо (носитель ИИ).

В [1] агент рассматривается как некоторый объект, который можно отделить от остального мира. Он существует во времени и пространстве, может взаимодействовать с другими агентами и средами, выполняя некоторые действия.

В [5] агент это автоматическая (полуавтоматическая) программно-аппаратная система, которая решает комплекс задач в динамично изменяющейся среде.

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

Требования к агентам по [5]

  1. интеллектуальность - агент должен быть способен к обдумыванию своих действий, чтобы действовать целеустремленно.
  2. реактивность - агент должен правильно и вовремя реагировать на неожиданные события и изменения в окружающем мире.
  3. эффективность - агент должен решать свои задачи эффективно.
  4. интерактивность - агент должен уметь взаимодействовать с другими агентами.
  5. приспособляемость - агент должен уметь адаптироваться в изменчивой среде.

Классификация агентов по [5]

  1. Реактивные агенты (behavior-based agent или situated agent).
    Эти агенты действуют в режиме реального времени, обычно основываясь на очень небольшом количестве информации и простых правилах "ситуация-действие". Отсутствует символическое представление мира, вместо этого реактивные агенты принимают решения основываясь непосредственно на информации от своих датчиков. Вместо корректного или оптимального поведения, основное внимание в этом классе систем уделяется живучести.

  2. Мыслящие агенты сохраняют внутреннее представление о мире как ментальное состояние, которое может меняться в процессе размышлений агента. Такая архитектура известна как BDI
    (belief-desire-intention убеждения-желания-намерения).

    Внутреннее состояние агента описывается с помощью множества ментальных категорий.

    1. убеждения - представления о текущем состоянии среды.
    2. желание - состояния среды, в которые агент стремится среду перевести. Агент может иметь несовместимые желания; желания могут быть не достижимы.
    3. цели - множество совместимых и достижимых желаний.
    4. намерение - множество избранных целей. Необходимо выделять некоторое множество целей для достижения, поскольку агент ограничен в ресурсах и не может достичь всех целей одномоментно.

  3. Смешанные типы архитектур. Рассмотренные типы систем страдают рядом недостатков.

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

2 InteRRaP

INTEgration of Reactive behavior and RAtional Plannig - объединение реактивного поведения и рационального планирования (по [5]).

2.1 Агент и среда

Агент InteRRaP рассматривается как некоторая функция, которая получает на вход ощущение и выдает на выход определенное действие. Для агента вводится понятие состояния (mental state) и базовых функций, которые могут изменять состояние.

Составные части состояния InteRRaP агента:

  1. ощущение (perception) агента.
  2. мн-во убеждений (beliefs) - информационное состояние.
  3. ситуация (situation). Ситуация это состояние среды. Она определяется как некоторая структура (множество), состоящая из убеждений агента.
  4. мн-во целей (goals). Цель можно определить как состояние среды (ситуацию).
  5. мн-во намерений (intentions). намерение - сформировавшийся план действий, который в последствии выполняется.

Среда в InteRRaP явным образом не определяется и присутствует как интуитивное понятие.

Для описания агента в InteRRaP определены специальные языки.

2.2 Архитектура

Принципиальная идея архитектуры InteRRaP состоит в разделении агента на три уровня (в соответствии с идеей смешанной архитектуры т.е. реактивность + способность к планированию) :

  1. уровень поведения (behavior-based layer) - включает реактивность и методы решения стандартных (простых) задач.
  2. уровень локального планирования (local planning layer) - предоставляет механизм для реализации целеустремленности.
  3. уровень совместного планирования (cooperative planning layer) - служит для взаимодействия с другими агентами.

Решения для архитектуры управления агента InteRRaP

  1. активация снизу-вверх (bottom-up activations) - уровень $i$ задействуется, только если уровень $i-1$ не может справиться с ситуацией.
  2. выполнение сверху-вниз (top-down execution) - каждый уровень для достижения своих целей использует операционные примитивы определенные на ниже расположенном уровне.

Рисунок: схема InteRRaP
\includegraphics[origin]{pict/interap.ps}

Цикл управления в общем виде выглядит так :
ощущение $\rightarrow$ распознавание $\rightarrow$ решение $\rightarrow$ действие

Для агента вводится понятие базовых функций, которые могут изменять состояние :

  1. порождение и пересмотр убеждений (belief generation and
    revision) - отношение между убеждениями агента и его ощущениями.
  2. оценка ситуации (situation recognition) - извлекает ситуацию из убеждений агента. Позволяет агенту определять степень необходимости действовать.
  3. активация цели (goal activation) - определяет цели агента для данной ситуаций.
  4. планирование (planning) - отображает текущие цели агента в мн-во операционных примитивов для достижения этих целей. Определяет 'что делать'
  5. назначение (scheduling) - процесс слияния частичных планов для различных целей в единый план выполнения. Определяет 'что и когда делать'
  6. выполнение (execution) - служит для корректного и своевременного применения запланированного.

Ниже представлен класс описывающий InteRRaP уровень

 class layer

  attributes
    Higher, Lower    /* соседние уровни */
    Bel, Goals, Ints /* текущие убеждения, цели, намерения */
    Sit, Sit-desc    /* ситуации и их описания */
    Ops    /* доступные операционные примитивы */
    Actreq /* активирующий запрос с уровня i-1 */
    Com    /* поручение с уровня i+1 */
   [...]

  methods
    b-upd +<Bel> {...}    /* коррекция убеждений */
    s-rec +<Sit> +<Bel> +<Sit-desc>{...} /* определение ситуации*/
    g-act +<Sit> +<Goals> {...} /* активация целей */
    comp-check +<Sg> +<Ops> {...} /* проверка компетенции */
    op-select +<Sg> +<Ops> {...}  /* планирование */
    schedule +<Int> +<Ints> {...} /* назначение */
    execute +<Int> {...}  /* исполнение */
   [...]

   cycle
     Bel = b-upd(Bel);
     Sit = s-rec(Sit U Actreq, Bel, Sit-desc);
     Goals = g-act( Sit, Goals );
     Sg = {(S,G)| (S in Sit)^(G in Goals)^(G = g-act(G,_))};
     (Comp-sg, Nocomp-sg) = comp-check(Sg, Ops);
     foreach Sg' from Nocomp-sg /* передача управления на уровень выше */
       Higher <- receive(request, activate(Sg'));
     Int = op-select(Comp-sg, Ops);
     Int = schedule(Int, Com);
     Int = execute(Int);

Рассмотрим операционные примитивы. Модели поведения (patterns of behavior - PoBs) есть самый нижний уровень операционных примитивов. Это есть некоторые стандартные решения. Они представлены в виде программ на execution language.

class PoB
  attributes
      Name
      Type   /* { reactor | procedure }*/
      Args   /* аргументы активации PoB */
      State  /* { inactive | active | committed }*/
      Resources /* список требуемых ресурсов */
      Priority  /* целое число - статический приоритет PoB*/
      Act-cond  /* условие активации */
      Succ-cond /* условие успешного завершения */
      Fail-cond /* условие неудачного завершения */
      Exeption-list /* список с описаниями
                       исключений (exeptions) */
      Body      /* выполняемая программа */
  methods
      meth init     /* инициализазия PoB */
      meth activate /* активация PoB */
      meth step     /* выполнение следующего шага PoB */
      meth uncommit /* остановка выполнения PoB */
      meth check-act-cond /* проверка условий активации */
      meth check-monitors /* проверка условий мониторинга */
      meth enable   /* разрешить активацию PoB */
      meth disable  /* запретить активацию PoB */
      meth inhibit <Sit> /* затормозить активацию PoB */
      meth permit <Sit>  /* отменить предшествующее
                            торможение  */

2.3 Языки

В InteRRaP определяется несколько языков. Языки организованы как иерархическая структура. С помощью этих языков осуществляется описание системы.

  1. Язык execution language служит для описания моделей поведения. Execution language строился с учетом следующих соображений. В процессе функционирования агента могут возникать события, требующие немедленного ответа. Следовательно, важным требованием к выполняемой программе есть возможность ее прерывать. Это требование можно удовлетворить рассматривая программу как последовательность элементарных (атомарных) инструкций и определить процедуру пошагового выполнения чтобы программу можно было прервать на любом такой инструкции. Таким образом, execution language должен допускать пошаговое выполнение непрерывных(атомарных) блоков программы.
    БНФ execution language:

     program ::= block [ ';' program ]
     block ::= '{' block-content '}' | primitive-inst
     block-content ::= while condition
                         do block-content od |
                       if condition
                          then block-content
                          else block-content fi |
                       primitive-inst
     primitive-inst ::= wif_execution |
                        lpl-call |
                        pob-activation |
                        modifier
     condition ::= ATOMIC FORMULA
     wif-execution ::= ex '(' wif-primitive ')'
     lpl-call ::= call '(' lpl ',' do '(' goal-spec ')' ')' | ...
     pob-activation ::= activate '(' pob-spec-list ')'
     wif-primitive ::= LIST OF DOMAIN-DEPENDENT ACTUATOR / SENSOR CALLS
     goal-spec ::= FORMULA
     pob-spec-list ::= '[' { pob-spec }+ ']'
     pob-spec ::= pobname '(' PARAMETER-LIST ')'
     pobname ::= ATOM
     modifier ::= assert GROUND FORMULA |
                  retract GROUND FORMULA
    

    ( primitives in uppercase )

    Исполнение программ на этом языке осуществляет метод step класса PoB.

  2. Более высокий уровень операционных примитивов это уровень локального планирования. Планы, составляющие уровень локального планирования операционных примитивов, представляются как программы на языке $L_0$. Основой для такого языка служат модели поведения, т.е. элементарные шаги плана берутся из моделей поведения.

    Язык $L_0$ определяется следующим образом :

    1. $P=\{p_0,p_1,\ldots\}$ - множество элементарных шагов плана.
    2. $C=\{c_0,c_1,\ldots\}$ - множество предикатов.
    тогда
    1. $\epsilon \in L_0$ - пустой план
    2. для $p \in P$ $p \in L_0$
    3. для $p_0 \in L_0,\ldots,p_n \in L_0$ имеем
      • $p_0,\ldots,p_n \in L_0$ - последовательная композиция
      • $p_0;\ldots;p_n \in L_0$ - дизъюнктивная композиция
    4. для $p_0,p_1 \in L_0\ ;\ c \in C$ имеем
      • if $c$ then $p_0$ else $p_1$ fi $\in L_0$
      • while $c$ do $p$ od $\in L_0$

    На основе $L_0$ определяются языки общих планов $L_1$ и $L_2$.

  3. Язык $L_1$ :
    $A=\{a_1,\ldots,a_n\}$ - множество агентов.

    $JP =[P,C]$ есть $L_1$-план где

    1. Р есть
      • $\epsilon \in L_0$ - пустой план, или
      • множество $[(a_1,P_1),\ldots,(a_n,P_n)]$
        где $(a_i,P_i)$
        это $P_i = p_{i1},\ldots,p_{im_i}$ - конъюнкция $L_0$-планов агента $a_i$

    2. $C=[c_1,\ldots,c_m]$ - множество условий в форме $p_i < p_j$
      между $p_i = p_{ik_i} \in P_i$ и $p_j = p_{jk_j} \in P_j$, $i\neq j$

  4. Язык $L_2$ :
    $A=\{a_1,\ldots,a_n\}$ - множество агентов.
    $R=\{R_1,\ldots,R_k\}$ - множество ролей для агентов.
    $r_1,\ldots,r_k$ - ролевые переменные.
    $JP =[P,C]$ есть $L_2$-план где

    1. Р есть
      • $\epsilon \in L_0$ - пустой план, или
      • множество $[(r_1:R_1,P_1),\ldots,(r_k:R_k,P_k)]$
        где $(a_i,P_i)$
        это $P_i = p_{i1},\ldots,p_{im_i}$ - конъюнкция $L_0$-планов агента $a_i$

    2. $C=[c_1,\ldots,c_m]$ - множество условий в форме $p_i < p_j$
      между $p_i\in P_i$ и $p_j\in P_j$, $i\neq j$

3 AE - ''Агенты и Среды''

AE - ''agents and environments'' (''агенты и среды'') (по [2] [1])

Агент AE рассматривается как некоторый объект, который можно отделить от остального мира. Он существует во времени и пространстве, может взаимодействовать с другими агентами и средами, выполняя некоторые действия. Агент и его поведение рассматриваются как эквивалентные понятия.

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

Агент и среда определяется в терминах алгебры поведений. Поведение рассматривается как элемент алгебры поведений над алгеброй действий $A$.

3.1 Алгебра действий

Операции алгебры действий :

  1. $a\times b$ комбинация действий
  2. $a+b$ операция недетерминированного выбора
  3. $ab$ операция последовательной композиции

Также определены :


$\displaystyle a\times b =b\times a$     (1)
$\displaystyle (a\times b) \times c= a\times (b \times c)$     (2)
$\displaystyle a\times \delta = \delta \times a = a$     (3)
$\displaystyle a\times 0 = 0 \times a = 0$     (4)
$\displaystyle a+a=a$     (5)
$\displaystyle a+b=b+a$     (6)
$\displaystyle a+b)+c=a+(b+c)$     (7)
$\displaystyle a+0=a$     (8)
$\displaystyle (ab)c=a(bc)$     (9)
$\displaystyle a\delta=\delta a=a$     (10)
$\displaystyle a0=0a=0$     (11)
$\displaystyle (a+b)\times c = a\times c + b\times c$     (12)
$\displaystyle (a+b)c = ac + bc$     (13)
$\displaystyle c(a+b) = ca + cb$     (14)

Таким образом алгебра действий есть коммутативный моноид.

3.2 Алгебра поведений

Алгебра поведений $F(A)$ имеет две операции :

  1. недетерминированный выбор - ассоциативная, коммутативная, идемпотентная, бинарная операция $u+v\ ;\ u,v \in F(A)$
  2. операция префикса $au$ где $a\in A$ это действие, $u\in
F(A)$ это поведение


$\displaystyle u+v=v+u$     (15)
$\displaystyle (u+v)+w=u+(v+w)$     (16)
$\displaystyle u+u=u$     (17)
$\displaystyle u+0=0+u=u (a+b)u = au + bu$     (18)
$\displaystyle 0u=0$     (19)

где $u,v,w\in F(A)$ - поведения, $a,b\in A$ - действия



Отношение аппроксимации (approximation) $\subseteq$ алгебры поведений над $A$ есть минимальный частичный порядок, который удовлетворяет выше представленные соотношения для алгебры поведений.

Каждое поведение может быть представлено как

\begin{displaymath}u = \sum_{i\in I}
a_i u_i+\varepsilon\end{displaymath}

где $a_i$ - ненулевое детерминированное действие, $u_i$ - поведение, $I$ - некоторое множество индексов, $\varepsilon=\Delta,\bot,\Delta+\bot,0$ - терминальные константы

3.3 Агент

Для агента в терминах AE понятие 'состояние' в явном виде не определяется. Вместо этого вводится понятие 'поведение' как агента в данном состоянии. Агент и его поведение рассматриваются как эквивалентные понятия. Агент определяется в терминах алгебры поведений.

3.4 Среда

Среда это агент снабженный функцией внедрения

\begin{displaymath}Ins(e, u) = e[u]\end{displaymath}

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

3.5 MIE

Система MIE использует модель ''агенты и среды''. MIE - математическая информационная среда, это мультиагентная система из агентов разных типов [1]. MIE осуществляет интерактивную обработку математических текстов (чтение, понимание, запись, проверка на корректность и непротиворечивость etc.). Математические тексты представлены в виде формализованного математического языка (FML) близкого к естественному. Это позволяет автоматически получать информацию из обычных математических текстов, представленных в электронном виде.

Типы агентов MIE:

Для реализации MIE используется система алгебраического программирования - APS с базовым языком APLAN. APLAN основывается на логике переписывания и позволяет комбинировать различные программные парадигмы : процедурную, функциональную, алгебраическую и логическую.

Язык действий AL [3] представляет собой часть APS. Этот язык используется для описания вычислительных систем, которые содержат элементы параллелизма и сетевой работы, распределенных систем и систем, которые должны взаимодействовать со средой. Построение агента в APS происходит по следующей схеме.

  1. Пишется программа на APLAN, которая определяет содержательную и интерактивную семантику AL, которая, в свою очередь, используется для написания программ, описывающих поведения агента.
  2. Семантика этих программ используется как параметр для симулятора, который представляет собой управляющую среду для создаваемого агента. Симулятор инициализируется начальным состоянием агента, описанным с помощью AL.
  3. Параметризированный симулятор служит источником для алгебраического модуля, который интерпретируются APS. Этот модуль может взаимодействовать с пользователем и другими модулями в MIE.


Литература

1
A. A. Letichevsky, J. V. Kapitonova, V. A. Volkov
''Proving theorem and reading mathematical texts in Mathematical Information Enviroment'', international workshop RTETP-2000, Kyiv, 29-31 May 2000, ISBN 966-02-1654-8

2
A.A.Letichevsky, D.R.Gilbert
''A model for interactions of agents and environments.''

3
A.A.Letichevsky, D.R.Gilbert
''A general theory of action languages''
''Кибернетика и системный анализ'', 1998, N1

4
Х.Уэно, Т.Кояма, Т.Окамото, Б.Мацуби, М.Исидзука
''Представление и использование знаний'', Москва, ''МИР'', 1987.

5
Mluller Jorg P.
''The design intelligence agents : a layered approach''
Springer 1996 (Lectures notes in computer science; vol. 1177 : Lectures notes in artifical intelligence) ISBN 3-540-62003-6

6
В.В.Девятков ''Системы искусственного интеллекта''
Москва,''МГТУ им. Н.Э.Баумана'', 2001



Evgeny S. Borisov
2005-03-15