О СВОЙСТВАХ МУЛЬТИАГЕНТНЫХ СИСТЕМ С ВЕРОЯТНОСТНЫМИ
КАНАЛАМИ СВЯЗИ[1]
Валиев М.К., к.ф.-м.н.
Институт прикладной математики им. М.В.Келдыша РАН
(495)250-79-38, valiev@keldysh.ru
Дехтярь М.И., к.ф.-м.н.,
доцент
Тверской государственный университет
(482-2)365410,
Michael.Dekhtyar@tversu.ru
Диковский А.Я.,
д.ф.-м.н.
Институт прикладной математики им. М.В.Келдыша РАН
(495)250-79-38, dikovsky@keldysh.ru
Системы взаимодействующих интеллектуальных
агентов представляют одно из самых активно развивающихся направлений в области
искусственного интеллекта и прикладного программирования (см., например, [5,7]).
Агенты используются в
качестве автономных компонент при построении систем искусственного интеллекта,
работы в Интернете и т.д. В таких системах агенты могут работать и
взаимодействовать по
весьма сложным правилам, что делает
поведение системы во времени очень
сложным. Это приводит к необходимости верификации динамических свойств таких
систем.
Определение понятия агента, используемое в настоящей работе, в основном (с
некоторыми упрощениями) следует архитектуре IMPACT из работы [5]. В работах [3, 4, 6] мы изучали проблему
верификации динамических свойств мультиагентных систем (МАС) с синхронной и
асинхронной системами передачи сообщений.
В данной работе нас интересует случай, когда каналы связи между агентами
являются вероятностными.
2. МАС с
вероятностными каналами связи
Мультиагентная система
(МАС) A
= {A1,...,An} состоит
из конечного множества {A1,...,An} взаимодействующих интеллектуальных агентов
Ai. У
интеллектуального агента A
имеется внутренняя база данных (БД) IA,
содержащая конечное множество базисных атомов (т.е. выражений вида p(c1,…, ck), где p-предикатный символ, c1,…, ck - константы, причем
множество используемых данной системой констант ограничено), и почтовый ящик MsgBoxA.
Текущие содержимые внутренней БД и почтового ящика агента A составляют его текущее локальное
состояние IMA=<IA,MsgBoxA>.
Агенты из A
общаются между собой посредством передачи сообщений вида msg(Sender, Receiver, Msg), где Sender и Receiver – имена агентов (источника и
адресата), a
Msg -
(передаваемый) базисный атом.
Для каждой пары агентов A, B
из A имеется канал связи CHAB, в который попадают сообщения, посылаемые
агентом A
агенту B. Затем из этого канала они попадают в
почтовый ящик MsgBoxB. Время пребывания каждого сообщения «в
пути» мы будем рассматривать как случайную величину, задаваемую конечным
дискретным распределением вероятностей. Через
pAB(t)
обозначим вероятность того,
что B
получит сообщение, посланное ему агентом
A,
ровно через t ≥ 1 шагов (тактов) после его отсылки.
Для разных сообщений соответствующие случайные величины будем считать
независимыми. Мы будем предполагать,
что ∑t=1∞
pAB(t) £ 1 .
Тогда разность 1 - ∑t=1∞ pAB(t) определяет вероятность того,
что сообщение никогда не достигнет адресата, т.е. будет утеряно в канале. Например, pAB(1) = 1 означает, что каждое сообщение, посланное агентом A агенту
B, будет получено адресатом на следующем
шаге после его посылки. Именно такой вариант рассматривался в работах [3, 4,
6]. Если pAB(1)=0.5,
pAB(2)=0.4 и pAB(t)=0 при
t >2 , то половина всех
сообщений A
агенту B будет получена на следующем шаге после их
отсылки, еще 4/10 будут находиться в пути 2 такта, и в среднем десятая часть
таких сообщений будет утеряна.
Текущее состояние канала CHAB будет включать все сообщения, посланные
агентом A агенту
B, которые еще не дошли до B, с
указанием времени их нахождения в канале. Мы будем обозначать текущее состояние
канала так же как и сам канал, т.е. CHAB ={(Msg,
t) | сообщение Msg
от агента A
агенту b находится в канале t
тактов}. Мы будем также
использовать сокращения CHij и pij для CHAiAj и pAiAj, соответственно.
С каждым агентом A
связана его база ACTA
параметризованных
действий вида
<a(X1,…,Xm), ADDa(X1,…,Xm), DELa(X1,…,Xm), SENDa(X1,…,Xm)>,
где a(X1,…,Xm) определяет параметризованное имя
действия. ADDa(X1,…,Xm) и DELa(X1,…,Xm) – списки атомов вида p(t1,…,tk),
где p – k-местный предикат из сигнатуры внутренней
БД, t1,…,tk –
либо константы, либо параметры X1,…,Xm. Эти множества определяют изменения внутренней БД (добавления и удаления фактов)
при выполнении соответствующего действия. SENDa(X1,…,Xm) определяет аналогичным образом список
сообщений вида msg(A,B, p(t1,…,tk)),
отправляемых другим агентам. Пусть c1,…,cm – константы. Обозначим через ADDa(c1,…,cm) множество фактов, получаемых
подстановкой c1,…,cm
вместо X1,…,Xm в атомы из ADDa(X1,…,Xm). Аналогично определяются DELa(c1,…,cm) и
SENDa(c1,…,cm). Базисные атомы вида a(c1,…, cl) назовем базисными именами действий.
Например, параметризованное действие повышения зарплаты агентом
бухгалтер, ведущим базу данных с таблицей зарплата, может быть описано
следующим образом:
повысить-зарплату(Фамилия, Должность, СтарСум, НовСум):
ADD={(зарплата(Фамилия, Должность,
НовСум)},
DEL
={(зарплата(Фамилия,
Должность, СтарСум)},
SEND = {(отдел_кадров,
зарплата _повышена(Фамилия, НовСум))}
Конкретный выбор действий для выполнения в зависимости от текущего
локального состояния агента определяется
парой < LPA , SelA>. Здесь LPA - логическая программа агента, определяющая
совместно с фактами из текущего
локального состояния агента некоторое множество Perm (= PermAt) допустимых для выполнения в данный
момент t базисных имен действий , а SelA выделяет из Perm подмножество Obl (=OblAt) обязательных для выполнения на данном шаге
действий.
После того, как множество Obl
определено, выполнение действий из него определяется следующим образом. Все
действия из Obl выполняются параллельно
и однозначно определяют изменения внутреннего состояния IA и каналов
СHAB
. Пусть ADDObl равно
объединению всех множеств ADDa(c1,…,cm) таких, что базисное имя a(c1,…, cm) из Obl унифицируется с параметризованным именем a(X1,…, Xm). Аналогично определяются множества DELObl и SENDObl.
Тогда следующее состояние NEW_DB(IA, Obl ) внутренней БД агента A получается из текущего состояния
удалением элементов из DELObl и
добавлением элементов из ADDObl.
Одновременно с изменением внутреннего состояния выполнение действий из Obl приводит к изменению состояний каналов,
пересылающих сообщения агента A другим агентам. Для каждого агента B
¹ A
в канал CHAB добавляются пары вида (Msg,, 0) для всех экземпляров
сообщений Msg, для которых (B, Msg) Î SENDObl .
Обозначим множество всех таких добавленных в канал CHAB пар
как NEW_CH(Obl,B).
Пусть, например, агент бухгалтер
должен выполнить множество
действий Obl={ повысить-зарплату(петров, инженер,
3500, 5000),
повысить-зарплату(соколова, программист, 4500,
6000)}. Выполнение Obl приведет к удалению из базы данных фактов
зарплата(петров, инженер, 3500),
зарплата(соколова,
программист, 4500)}
и
вставке фактов
зарплата(петров,
инженер, 5000),
зарплата(соколова,
программист, 6000)}.
Кроме того, в канал CHбухгалтер отдел_кадров будут помещены две пары:
NEW_CH(Obl, отдел_кадров)={ (зарплата_повышена(петров,5000),0),
(зарплата_повышена(соколова,6000),0)}.
В качестве программы LPA мы рассматриваем логическую программу с
предложениями вида H :- L1,...,Ln со следующими свойствами: H –атом действия, т.е. имеет вид a(t1,…,tm), где a –
имя действия, t1,…,tm – либо константы, либо переменные; литералы Li –
либо литералы действия, либо (экстенсиональные) литералы с предикатами из
сигнатуры внутренней БД, либо литералы
сообщений вида msg(Sender, A, Msg) или not msg(Sender, A, Msg), либо некоторые вычислимые в полиномиальное
время встроенные предикаты.
Мы предполагаем, что предложения в программах агентов являются безопасными в том смысле, что все
переменные из головы предложения H входят
позитивно в тело предложения
L1,...,Ln. Кроме того, мы считаем, что программа LPA является стратифицированной [1]. Тогда в каждом
локальном состоянии state= <IA, MsgBoxA> программа
LPA,state = LPA È IA È MsgBoxA,
определяющая множество действий, которые в
принципе может выполнить агент в текущем состоянии, является
стратифицированной. Хорошо известно (см. [1]), что стратифицированные логические
программы имеют единственную минимальную модель. Обозначим такую модель
программы LPA,state
через MA,state. Стандартная процедура вычисления
неподвижной точки позволяет вычислить эту модель по базисной развертке gr(LPA,state )
программы LPA,state. Отметим, что размер gr(LPA,state)
может быть экспонентой от размера
LPA,state.
Напомним также, что предположение
о замкнутости области, которое мы используем,
предполагает вычислимость за полиномиальное время всех встроенных предикатов.
Поэтому сохраняется вычислимость
неподвижной точки за полиномиальное
время.
Упомянутое выше множество Perm
определяется тогда как множество базисных имен действий,
содержащихся в минимальной модели MA,state . Обозначим через Sem функцию, которая по LPA,state
строит это множество Perm.
В качестве оператора выбора SelA
мы допускаем произвольную функцию, вычисляющую по произвольному
множеству базисных действий некоторое его подмножество за полиномиальное
время. Например, такой является тождественная функция, дающая по множеству M само множество M. Другой естественный вариант функции
выбора связан с выделением выполняемых действий в соответствии с некоторым
заранее определенным отношением приоритета на действиях.
3. Поведение
МАС
Глобальное состояние S
системы A включает в себя локальные состояния ее агентов и состояния всех ее (n2-n) каналов:
S = <I1,…,In; CH1,2, CH2,1,… , CHn-1,n,
CHn,n-1>.
Обозначим через SA множество всех глобальных состояний МАС A.
Тогда одношаговая семантика МАС A задает отношение S ÞA S’
перехода (за один шаг) на множестве SA, а вероятности pi,j(t) индуцируют вероятности таких переходов p(S, S’).
Переход S ÞA S’ начинается с работы каналов и формирования
нового содержимого почтовых ящиков. Сначала каждый канал увеличивает на 1 счетчик
времени у всех находящихся в нем сообщений. Затем для каждой пары (Msg, t) Î CHi,j в почтовый ящик MsgBoxj агента Aj с вероятностью pi,j(t) помещается факт msg(Ai,
Aj
,Msg). После этого каждый агент Ai
Î A
формирует множество всех допустимых на данном шаге действий Permi = Sem(LPA,state). А затем, используя свой оператор выбора
SelAi
, определяет множество выполняемых действий Obli= SelAi(Permi). Почтовые ящики всех агентов МАС
A
после этого опустошаются, т.е. полученные сообщения “забываются”. Разумеется,
это не ограничивает общности, поскольку агент может все нужные ему данные
перенести из почтового ящика в свою базу данных. Затем состояние внутренней БД Ii заменяется на NEW_DB(Ii, Obli ), а посланные им сообщения помещаются в
соответствующие каналы.
Таким образом, переход S ÞA S’ вычисляется следующим алгоритмом:
A -шаг( Вход: S ; Выход: S’ )
(1) FOR
EACH Ai, Aj Î A (i ¹ j) DO
(2) FOR EACH (Msg, t) Î CHi,j
DO
(3) CHi,j := (CHi,j \ {(Msg, t)} ) È {(Msg, t+1)} ;
(4) FOR EACH
Ai, Aj Î A (i ¹ j) DO
(5 ) FOR EACH (Msg, t) Î CHi,j
DO с вероятностью pi,j(t)
(6 ) { CHi,j := (CHi,j \ {(Msg, t)} ) ;
(7) MsbBoxj :=
MsbBoxj È{msg(Ai, Aj , Msg)}
(8)
};
(9) FOR EACH
Ai Î A DO
(10)
{ Permi := Sem(LPA,state );
(11) Obli= SelAi
(Permi);
(12)
MsgBoxi := Æ;
(13)
Ii := NEW_DBi(Obli, Ii);
(14)
FOR EACH (i ¹ j) DO
(15) CHi,j := (CHi,j È NEW_CH(Obli , Aj)
(16) }
(17)
RETURN S’.
В соответствии с вышеприведенным определением семантики с МАС A можно связать Марковскую цепь с множеством
состояний SA и вероятностями переходов p(S, S’) между ними. Поведение A в начальном глобальном состоянии S0 описывается деревом TA(S0)
возможных траекторий этой цепи, начинающихся с S0. Узлы этого дерева помечены глобальными
состояниями системы, причем каждый узел, находящийся на (t+1)-ом уровне и помеченный состоянием S’, связан
с узлом на t-ом
уровне, из пометки которого S
возможен переход S ÞA
S’ c
вероятностью p(S, S’) >0.
4. Верификация
динамических свойств
Динамические
свойства (поведения) МАС описываются формулами пропозициональной логики
линейного времени PLTL,
интерпретируемыми на траекториях [ 2 ].
Проблема верификации динамических свойств мультиагентных систем (которую
мы называем MA-BEHAVIOR) формулируется следующим образом. Пусть даны МАС A, ее начальное глобальное
состояние S0 и
формула F,
выражающая некоторое свойство
траекторий, нужно вычислить меру (вероятность) PA(S0 , F) множества траекторий дерева TA(S0), на
которых выполнена F.
Отметим, что единственным
источником неопределенности в программе A-шаг являются операторы в
строках 5-8, в результате выполнения которых сообщения попадают в почтовые
ящики агентов с учетом вероятностей
времен их пересылки. Поэтому результат S’ этой программы однозначно определяется
ее начальным состоянием S и содержимым почтовых ящиков агентов MsbBoxj, полученным ими в вероятностном
цикле в строках 5-8. Обозначим для любой пары
Ai, Aj Î
A (i ¹ j) через
Msgsi,j множество
сообщений, полученных агентом Aj от агента
Ai на
текущем шаге. Тогда для каждого Aj
имеем MsgBoxj
= È{Msgsi,j| 1 £ i
£
n, j ¹ i }.
Пусть в результате выполнения одного шага состояние системы
S = <I1,…,In; CH1,2, CH2,1,… , CHn-1,n,
CHn,n-1> перешло в состояние
S’ = <I’1,…,I’n; CH’1,2, CH’2,1,… , CH’n-1,n,
CH’n,n-1>.
Тогда
для всех i=1, … , n новое состояние БД агента Aj
получается в строке 13 как I’i= NEW_DBi(Obli, Ii) и
для всех i,j =1, … , n, (i ¹ j) новое
состояние канала сообщений от Ai к Aj определяется равенством CHi,j =
(CHi,j \ Msgsi,j ) È
NEW_CH(Obli , Aj) .
Это позволяет предложить эффективную процедуру вычисления вероятности p(S, S’) перехода S ÞA
S’
Алгоритм Prob(S,
S’)
(1) FOR EACH Ai, Aj Î A (i ¹ j) DO
(2) { M[i,j]
:= {(m, t) | ((m, t) Î CHi,j) & ((m,t+1) Ï CH’i,j )};
(3) pi,j
:= Õ { pi,j(t)
| ((m, t) Î M[i,j]}
(4) };
(5) FOR EACH Aj
Î A DO
(6) { MsgBoxj
:= Æ;
(7) FOR EACH Ai Î A (i ¹ j) DO
(8) MsgBoxj
:= MsgBoxj È {msg( Ai,
Aj ,m) | $t ( (m,t) ÎM[i,j] )}
(9) };
(10) FOR EACH
Aj Î A DO
(10) { Permi := Sem(LPA,state );
(11) Obli := SelAi (Permi);
(12) IF
I’i ¹ NEW_DBi(Obli, Ii)
(13) THEN RETURN 0;
(14) FOR
EACH (j ¹ i ) DO
(15) IF {(m,0) | (m,0) Î CHi,j) } ¹ NEW_CH(Obli
, Aj)
(16) THEN RETURN 0
(17) };
(18) RETURN
p(S, S’) = Õ { pi,j
| 1 £ i, j £ n, j ¹ i }
Теорема
1. Алгоритм Prob(S, S’) вычисляет вероятность p(S, S’)
перехода S
ÞA S’
за время, полиномиальное от суммы размеров МАС A и
размеров исходного и результирующего состояний S и S’: |A| + |S| +|S’| (в размер
|A| МАС A входят
размеры всех сигнатур, множества констант, и описаний агентов, включающих их
базы действий и базисные развертки программ
агентов).
Эта теорема вместе с результатами о верификации вероятностных программ
из работы [2] позволяют получить алгоритм решения проблемы MA-BEHAVIOR для
МАС с вероятностными каналами связи.
Теорема 2.
Существует алгоритм, который по базисной МАС A, начальному состоянию S0 и формуле F из
PLTL вычисляет вероятность PA(S0 , F) за время, экспоненциальное от размера
входа.
Список литературы
1.Apt K. R., Logic LPogramming. In: J. van
Leeuwen (Ed.), Handbook of Theoretical
Computer Science. Volume B. Formal Models and Semantics, Chapter 10, Elsevier
Science Publishers B.V. 1990, 493-574.
2. Courcoubetis C., Yannakakis M., The
complexity of probabilistic verification. J. ACM, v. 42, 4, 1995, 857-907.
3.
Dekhtyar M., Dikovsky A., and Valiev M., On Feasible Cases of Checking
Multi-Agent Systems Behavior. Theoretical Computer Science, Elsievier Science, 2003, vol.
303, no. 1, 63-81.
4. Dekhtyar M.I., Dikovsky A.Ja., Valiev
M.K., On complexity of verification of interacting agents’ behavior. Annals of
Pure and Applied Logic, 141, 2006, 336 – 362.
5. Subrahmanian V. S., Bonatti P., Dix J.,
et al., Heterogeneous Agent Systems, MIT LPess, 2000.
6. Валиев М.К., Дехтярь М.И., Диковский А.Я,
Китаев Е. Л., Скороходов А.П. Верификация динамических свойств многоагентных
систем. Труды III-го Межд. научно-практического семинара
"Интегрированные модели и мягкие вычисления в искусственном интеллекте", М.; Физматлит,
Коломна, 2005.
7. Тарасов
В.Б. От многоагентных систем к интеллектуальным организациям. Эдиториал УРСС,
М., 2002.