Д. Ю. Бугайченко
ВЕРИФИКАЦИЯ РАСПРЕДЕЛЕННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ ПО СПЕЦИФИКАЦИИ МА6Ь
Введение
Одним из активно развивающихся направлений современной информатики является разработка методов формальной спецификации и верификации алгоритмов. При этом большинство предлагаемых методов основывается на одном из вариантов темпоральной логики ветвящегося времени СТЬ [1], основным достоинством которой является полиномиальная сложность задачи верификации [2]. СТЬ расширяет логику высказываний темпоральными операторами «в следующий момент ф» О Ф и «когда-нибудь ф, а до тех пор -ф» ф и ф и кванторами «на любом пути ...» А и «существует путь на котором ...» Е, используемыми непосредственно перед темпоральными операторами. Истинность формулы ф определяется относительно модели М = {6, Д, п}, где 6 есть непустое конечное множество состояний системы, Д С S х 6 есть множество возможных переходов системы из состояния в состояние, а п есть интерпретация пропозициональных символов относительно состояний из 6, и текущего состояния в € 6, при этом для определения истинности темопральных операторов и кванторов рассматриваются возможные переходы системы из Д. Было предложено много различных вариантов расширения СТЬ для решения определенных задач, в том числе было предложено несколько методов расширения СТЬ средствами спецификации ограничений на время реакции [3], что является необходимым для спецификации систем реального времени.
Основным ограничением СТЬ является отсутствие явных средств спецификации многокомпонентных распределенных систем. Это ограничение преодолевается в логике альтернированного времени АТЬ [4], позволяющей учитывать многокомпонентность системы в явном виде. Модель АТЬ включает набор состояний 6, набор игроков Р, набор возможных ходов для каждого из игроков Арер, а переходы системы определяются отношением Д € 6 х (АР1 х ... х АРп) х 6, задающим для каждого состояния и для каждого возможного действия всей системы множество возможных результатов. АТЬ заменяет кванторы СТЬ на квантор «для коалиция игроков С С Р существует такая стратегия, что на любом пути ... »1 ((С}}. Для логики альтернированного времени
АТЬ также были предложены методы спецификации ограничений на время реакции, например, с помощью подстрочного индекса [5], ограничивающего «когда-нибудь» в операторе и <4, или с помощью переменных часов [6], запоминающих моменты модельного времени дополнительным оператором х ■ ф, чтобы затем их сравнить подформулой вида х + ^1 < у + ^2, где х и у переменные часов, а ^1,^2 € N0.
Однако, семантика АТЬ предназначена для описания возможностей (существует ли стратегия?), а не поведения системы, что также сужает область её применения. Это ограничение преодолевается в логике спецификации мультиагентных систем МА6Ь [7], семантика которой базируется на математической модели агента [8], описывающей поведение системы, а не на поиске возможной стратегии АТЬ. В данной работе
1 Несложно провести параллель с теорией игр, так как именно она вдохновила создателей ЛТЬ.
© Д. Ю. Бугайченко, 2007
мы предлагаем эффективные алгоритмы решения задачи верификации (проверки модели, model checking) по спецификации MASL для случая фиксированной внешней среды (раздел 1) и для случая неопределенной внешней среды (раздел 2).
1. MASL с фиксированной внешней средой
Логические спецификации MASL интерпретируются на математической модели исследуемой распределенной системы, включающей непустой конечный набор модулей-агентов AG = {agi, .. ., agn}, действующих во внешней среде с непустым конечным множеством состояний S. Каждый из модулей системы может выполнить одно действие из непустого конечного множества действий ACAag = {acaag,i,..., acaag,m}, а общее действие системы представляется как вектор действий всех модулей системы ACS = ACAagi x ... x ACAagn (далее вклад отдельного модуля ag в действие системы обозначим как acs[ag]). Реакция внешней среды на действия системы задана сериальным2 отношением env С S x ACS x S, описывающим возможные изменения состояния внешней среды при выполнении системой определенных действий.
Для каждого из модулей ag определенны непустое конечное множество внутренних состояний Iag и две функции: выбор действия actag : Iag ^ ACAag, сопоставляющая внутреннему состоянию некоторое действие, и обновление внутреннего состояния refnag : Iag x S x ACS ^ Iag, сопоставляющая предыдущему внутреннему состоянию, новому состоянию внешней среды и совершенному системой действию новое внутреннее состояние. В итоге, каждый модуль представляется четверкой
ag {ACAag, Iag, actag, refnag }.
Группу модулей системы назовем коалицией и зададим подмножеством модулей A С AG. Множество полных относительно коалиции A = {agj,..., agjfc} С AG состояний системы определяется как декартово произведение множеств внутренних состояний для каждого входящего в коалицию модуля: FSa = Iagjl x ... x Iagjfc. Состояние одного из модулей коалиции A С AG в полном относительно нее состоянии f sA[agj; ] = (iagj1,..., iagjk )[agj ] G FSa обозначим как fsA^gj ] — iag^. Заметим, что если коалиция B является подмножеством коалиции A (B С A), то возможно естественным образом построить проекцию полного относительно коалиции A состояния системы в полное относительно коалиции B состояние системы, исключив внутренние состояния агентов, не входящих в B. Эту проекцию обозначим /sa|b .
Функция выбора действия коалиции A в полном относительно этой коалиции состоянии act a : FSa ^ 2ACS определяется следующим образом:
act A (iagj , . . . , iagjk ) = {acs G ACS |Vag G A : acs[ag] = actag (iag) } . (1)
Таким образом, выбор действий входящих в коалицию модулей определяется их функциями выбора действия, а поведение агентов вне коалиции недетерминировано. Функция обновления полного относительно коалиции состояния ref па : FSa x S x ACS ^ FSa определяется следующим образом:
refnA (( iagj1 , . . . , iagjk ), s, aj — ^refnagil (iagil , s, a), . . . , refnagifc (iagifc , s, a) ). (2)
Определим множество возможных результатов действий коалиции A в начальном состоянии системы fsA G FSa и внешней среды s G S как множество непустых
2 Для любых s € S и acs € ACS существует s' € s такое, что (s, acs, s') € env.
конечных цепочек пар вида
outA(fsA, s) = {Л I Л g (FSa x S)+}, (3)
где для каждой цепочки Л[0] = (f sa, s) и для любого 0 < i < |Л| — 1 существует такое действие системы acs G actA(Л[i] |fsa ), для которого выполнено ^[i]|s, acs, Л[i + 1]|s) G env и Л^ + 1]|fsa = refnA^[i]|FsA, Л[i + 1]|s, acs).3
Синтаксис MASL включает алфавиты пропозициональных символов Prop и символов коалиций Coal и определяется грамматикой (p G Prop, A G Coal, а t G N U {to})4 :
ф ::= p 1 ф Л ф 1 1 ((A))0^ 1 ((A)^ U <4ф 1 Р]]ф U <4ф. (4)
Моделью MASL назовем пятерку M = {S, AG, env, п, 7}, где S есть множество состояний внешней среды, AG есть множество модулей системы, env С S x ACS x S есть описание реакции внешней среды, п : S ^ 2Prop есть интерпретация пропозициональных символов, а y : Coal ^ 2AG есть интерпретация символов коалиций. Семантику MASL опишем с помощью отношения M, A, (f sa, s) N ф5 между моделью M, коалицией A С AG, парой (f sa, s) G FSa x S и формулой ф, заданного следующими правилами:
1) M, A, (f sa, s) N p тогда и только тогда, когда p G n(s);
2) M, A, (f sa, s) N —ф тогда и только тогда, когда M, A, (f sa, s) .И ф;
3) M, A, (f sa, s) N ф Л ф тогда и только тогда, когда выполнено и M, A, (f sa, s) N ф, и M, A, (/sa, s) N ф;
4) M, A, (f sa, s) N ((B)) О ф тогда и только тогда, когда y(B) С A и для любой цепочки Л G outY(B)(f sa|y(b), s), если |Л| > 1, то M, y(B), Л[1] N ф;
5) M, A, (f sa, s) N ((B)^ W <4ф тогда и только тогда, когда y(B) С A и существует конечное 0 < i < t такое, что для любой цепочки Л G outY(B)(fsa|y(b), s) если |Л| > i, то существует 0 < k < i такое, что M, y(B), Л[к] N ф и для любых 0 < j < к выполнено M, y(B), Л[?’] N ф;
6) M, A, (f sa, s) N [[B]^ W <4ф тогда и только тогда, когда y(B) С A и существуют конечное 0 < i < t, цепочка Л G outY(B)(f sa|y(b), s) и 0 < k < |Л| такие, что |Л| < i и M, y(B), Л[к] N ф и для любых 0 < j < к выполнено M, y(B), Л[?] N ф.
Интуитивная интерпретация кванторов ((A)) и [[A]] звучит как «Действия коалиции A в соответствии с программой приведут к тому, что ...» и «Действия коалиции A в соответствии с программой могут привести к тому, что ... », а темпоральные операторы О ф и ф U <4ф интерпретируются как «внешняя среда на следующем шаге перейдет в состояние, удовлетворяющее условию ф» и «внешняя среда не более чем через t шагов (когда-нибудь, если t = то) перейдет в состояние, удовлетворяющее условию ф, а до этого будет находиться в состояниях, удовлетворяющих условию ф». Заметим,
3Под обозначением A[i] мы в данном случае понимаем i-ый элемент цепочки, под А[г]|_р$д и A[i]|s соответствующие элементы пары A[i], а под |А| — длину цепочки.
4 Здесь и далее мы будем описывать синтаксис и семантику только для логических связок — и Л, подразумевая, что остальные связки можно выразить обычным способом.
5 Использование отношения N в данном контексте соответствует классическому обозначению отношения «выполнимости на модели», часто используемому при определении семантики логики.
что Р]]0ф = —I ((A))0 — ф, поэтому мы исключили комбинацию Р]]0ф из основного определения.
((A))true W<еф, [[A]]^<^ — [[A]]true W<4ф, ((A}}^<^ — —[[A]]0<t—ф и [[A]p<^ —
— ((А))Ф<; —ф. Оператор ф<(ф интерпретируется как «внешняя среда не более чем через £ шагов (когда-нибудь, если £ = то) перейдет в состояние, удовлетворяющее условию ф», а П<(ф как «внешняя среда в течении не менее чем £ шагов (всегда, если £ = то) будет находиться в состояниях, удовлетворяющих условию ф».
Задачу верификации для МАЙХ с фиксированной внешней средой сформулируем так: для данных модели М = {£, АС, епу, п, 7}, коалиции А, множества пар Т = {(/вА, в) € Е$а х Й} и формулы ф найти такое подмножество [ф]т С Т, что для любой пары (/вА, в) € [ф]т выполнено М, А, (/вА, в) N ф. Для решения этой задачи мы предлагаем алгоритм 1, близкий к классическому алгоритму верификации СТХ, предложенному в [2], использующий рекурсию по структуре формулы ф и несколько вспомогательных функций:
Заметим, что процесс вычисления totalA(T) завершится не более чем за |FSa x S| шагов. Вычисление [ ]т для пропозициональных символов и логических связок совпадает с классическим алгоритмом для логики высказываний, поэтому наибольший интерес вызывает вычисление [ ]т для темпоральных операторов.
При вычислении [((B))0ф]т выбираются только такие (f sa, s) G T, для которых next7(B)({(f sa|7(b), s)}) С [ф]„ежет(В)(т|y(b)). Другими словами, выбираются только те пары, для которых после одного действия коалиции y(B) будет выполнено свойство ф.6
Для вычисления [((B}}ф2 W<(ф^т сначала вычисляется множество всех возможных результатов T' = total7(£)(T|y(b)), а также множества Ei = [ф1]т' и E2 = [ф2]т', для которых выполнены условия ф1 и ф2 соответственно. После этого для каждой пары (fsA, s) G T, в цикле последовательно строятся срезы (front) всех возможных Л G outY(B)(f sa|7(b), s) для всех i < t. Из рассмотрения сразу исключаются те Л, для которых уже выполнено условие ф1. Кроме того, все пройденные состояния запоминаются во множестве total. Цикл прерывается при выполнении одного из следующих условий: front = 0, означающего, что на данном шаге для всех цепочек выполнено свойство ф1, front ^ E2, означающего, что как минимум для одной цепочки на данном шаге не выполнено свойство ф2, front П total = 0, означающего, что как минимум одна из цепочек на данном шаге попала в ранее рассмотренную точку, что говорит о возможности бесконечного цикла, или i >= t, означающего, что превышено ограничение на время реакции. Этот цикл гарантированно завершится не более чем за |FSy(b) x S| шагов, так как множество total монотонно растет. По завершении цикла, если выполнено условие front = 0 (положительный исход), то пара (fsa, s) добавляется к результату. Алгоритм завершается после того, как просмотрены все пары.
Аналогичным образом происходит и вычисление множества [[[B]^2 W <(ф^т. При построении фронтов цепочек рассматриваются только те цепочки, для которых выпол-
6Отметим, что проверка на корректность вложенности y(B) С A опущена для простоты изложе-
Кроме того, можно определить следующие производные операторы: ((А))ф<ф =
totalA(T) — T U nextA(T) U nextA(nextA(T)) U ...
(6)
ния.
switch ф
case p : return {(f sa, s) G T | p G n(s)}; case —ф : return T \ [ф]т; case ф1 Л ф2 : return [ф1]т П [ф2]т; case (^}}0ф :
E : [ф]пеж47(в) (т|y(B));
return {(/sa, s) G T I E D next7(B)({(fsA|7(B), s)})}; case ((B}}ф2 W <еф1 :
T' := total7(B)(T|7(b)); Ei := [ф^т'; E2 := [ф2]т'; result := 0;
foreach (f sa, s) G T do
total := 0; front := {(/sa|7(b), s)} \ Ei; i := 0;
while front = 0 and front С E2 and front П total = 0 and i < t do
total := total U front; front := nextY(B)(front) \ Ei; i := i +1;
od;
if front = 0 then result := result U {(/sa, s)} fi;
od;
return result; case [[B]]ф2 W
T' := total7(B)(T|7(b)); Ei := [ф^т'; E2 := [ф2]т'; result := 0;
foreach (fsA, s) G T do
total := 0; front := {(/sa|7(b), s)} П (Ei U E2); i := 0; while front П Ei = 0 and front ^ total and i < t do
total := total U front; front := nextY(B) (front) П (Ei U E2); i := i + 1;
od;
if front П Ei = 0 then result := result U {(/sa, s)} fi;
od;
return result; end switch
нено хотя бы одно из условий (front := nextY(B)(front)П(Ei UE2)), а цикл завершается при одном из следующих условий: frontПEl = 0, означающего, что на данном шаге как минимум для одной цепочки выполнено условие ф!, fron С total, означающего, что на данном шаге ни одна из цепочек не дала новых результатов, или i >= t, означающего, что достигнут максимальный предел шагов взаимодействия. Положительным исходом, при котором рассматриваемая пара добавляется к результату, является выполнение условия front П Ei = 0, а конечность цикла за |FSy(b) x S| шагов гарантируется монотонным ростом множества total.
Сложность алгоритма 1 не превосходит полинома от длины формулы | ф| , мощности множества полных относительно коалиции всех агентов состояний |FSag|, мощности множества состояний внешней среды |S| и мощности множества |ACS|.
2. MASL с неопределенной внешней средой
Для тех случаев, когда поведение внешней среды невозможно точно и полно описать с помощью отношения env С S x ACS x S, предлагается [7] составить спецификацию внешней среды env, используя ограниченный вариант пропозициональной динамической логики PDL, синтаксис которой включает алфавит пропозициональных симво-
лов Prop и символов действий Actions и определяется грамматикой (aca G Actions и p G Prop)
a ::= aca | a Л a | —a; ф ::= p | ф Л ф | — ф 1 Мф. (7)
Моделью для этой логики является тройка Menv = {env,n, 0}, где env есть отношение, описывающее поведение внешней среды, п : S ^ 2Р есть интерпретация пропозициональных символов, а в : Actions ^ ACAagi U ... U ACAafln есть интерпретация символов действий. Семантика этой логики описывается с помощью двух отношений: Menv, acs =ac a, между моделью Menv, действием системы acs G ACS и формулой действий a, и Menv, s =env ф между моделью Menv, состоянием внешней среды s G S и формулой ф, удовлетворяющих, в дополнение к правилам для стандартных логических связок и пропозиций, следующим правилам:
• Menv, acs =ac aca тогда и только тогда, когда существует ag G AG такой, что acs [ag] = e(aca);
• Menv, s =env [a]ф тогда и только тогда, когда для любых acs G ACS и s' G S если M, acs =ac a и (s, acs, s') G env то Menv, s' =env ф.
Задача верификации для спецификации внешней среды алгоритмически разрешима за полиномиальное время (см. [7]). Кроме того, можно утверждать, что если глубина вложенности операторов [ ] в спецификации не превосходит n, то для любого env С S x ACS x S такого, что {env, п, в}, s ¥ env для некоторого s G S, существует такое env' С env, что |env'| < n и {env', п, в}, s ¥ env (отношение env' описывает тот путь, который опроверг спецификацию). В результате, для заданной спецификации env за время, не превышающее полинома от |env| и |S x ACS x S|n, где n есть максимальная глубина вложенности операторов [ ] в env, можно построить множество dngenv С 2SxACSxS такое, что |dngenv I < |S x ACS x S|n и для любого env С S x ACS x S если существует s G S такое, что {env, п, в}, s ¥ env, то существует env' G dnggnv, такое, что env' С env.
В случае если для описания внешней среды вместо фиксированного отношения env используется спецификация env, интерпретация квантора ((A)) меняется на «Действия коалиции A в соответствии с программой в любой внешней среде, удовлетворяющей спецификации env, приведут к тому, что ...», а квантор [[A]] теряет смысл. Поэтому, синтаксис MASL в этом случае задается грамматикой
ф ::= p 1 ф Л ф 1 —ф 1 ((A}}(^ 1 ((A}}ф W <4ф 1 ((A)p<t^ (8)
где p G Prop, A G Coal, а t G N U {то}. Таким образом, в этом случае оператор ^<(ф рассматривается как базовый, а оператор ф<(ф, как и раньше, может быть выражен следующим образом: ((A}}^<^ — ((A))true W <4ф.
Для того чтобы формально отразить эти изменения, переопределим множество возможных результатов действий коалиции A в начальном состоянии системы f sa G FSa, состоянии внешней среды s G S (уравнение (3)) следующим образом:
outA(fsA, s) = {Л G (FSa x S x ACS U {0})+}, (9)
где для каждой цепочки Л[0] = (f sa, s, 0) и для любого 0 < i < |Л| — 1 выполнено ЛИ|acs G actA^[i — 1]|fsa) и Л^^йд = refnA^[i] |acs, Л^ — 1]|fsa , Л[i]|s), а так-
|A|-i
же для любой цепочки Л существует envA С S x ACS x S такое, что и {(ЛЬ —
j=i
1]|s, Л[?’] |acs, Л[У]|я)} С envA и для любого 0 < к < |Л| выполнено {envA, п, в}, Л[к] = env. Таким образом, каждая цепочка Л содержит не только состояния, но и совершенные системой действия, при этом выбор действия и изменения внутреннего состояния модулей определяется соответствующими функциями actA и refnA, а реакция внешней среды удовлетворяет спецификации env.
С учетом измененного определения out а, семантику MASL с неопределенной внешней средой опишем с помощью отношения M, A, (f sa, s) = ф между моделью M = {S, AG, env, п, y, в} (env есть спецификация внешней среды, в : Action ^ ACAagi U ... U ACAafln есть интерпретация символов действий в спецификации внешней среды, а остальное аналогично случаю с фиксированной внешней средой), коалицией A С AG, парой состояний (f sa, s) G FSa x S и формулой ф, удовлетворяющего следующим правилам (в дополнение к стандартным):
• M, A, (f sa, s) = ((B)) 0 ф тогда и только тогда, когда y(B) С A и для любой
цепочки Л G out7(B)(f sa|7(b), s) если |Л| > 1, то M, y(B), Л[1]|fSa,s = ф;
• M, A, (f sa, s) = ((B)^ W <4ф тогда и только тогда, когда y(B) С A и существует
конечное 0 < i < t такое, что для любой цепочки Л G outY(B)(fsa|y(b), s) если |Л| > i, то существует 0 < k < i такое, что M, y(B), Л[к]|^ЙАХ5 = ф и для любых 0 < j < к выполнено M, y(B), Л^^здхя = ф;
• M, A, (f sa, s) = ((B)}n<^ тогда и только тогда, когда y(B) С A и для любой
цепочки Л G outY(B)(f sa|y(b), s) и любого 0 < i < min(t, |Л| — 1) выполнено
Задачу верификации MASL с неопределенной внешней средой сформулируем так: для данных модели M = {S, AG, env, п, y, в}, коалиции A, множества пар состояний T С FSa x S и формулы ф найти такое подмножество [ф]т С T, что для любой пары (f sa, s) G [ф]т выполнено M, A, (f sa, s) = ф. Для решения этой задачи введем функцию nextA : (FSa x S x ACS U {0})n ^ (FSa x S x ACS U {0})п+!, которая по множеству цепочек длины n строит все возможные продолжения длины n + 1. Алгоритм 2 описывает вычисление nextA(in), при этом его сложность не превышает полинома от |env|, |FSag| и |S x ACS x S|n, где n есть максимальная глубина вложенности операторов [ ]
j=i
if 3env' G dngenv : env' С d U {(Л[п — 1]|s, acs, s')} then continue; fi; result := result U {Л + (refnA(acs, f sa, s'), s ', acs)};
od;
od;
return result;
цепочек Л множество всех состояний, через которые эти цепочки прошли. Кроме то-
M, y(B), Л[i]|FsAxs = ф.
в env.
d := U {(Л[j — 1]|S,ЛЬ’]Цс5,Л[j]|s)};
Введем функцию full (Л) — У
АеЛ
вычисляющую по множеству
го, изменим функцию total а : 2FSaxS ^ 2FSaxS с учетом нового варианта функции nextA следующим образом: totalA(T) — TU full(nextA(T)) U full(nextA(nextA(T))) U . .. Процесс вычисления totalA сходится за число шагов, не превышающее |FSa x S|.
Алгоритм 1 относительно легко адаптируется к новым вариантам функций nextA и totalA. Алгоритм 3 демонстрирует адаптацию проверки оператора ((B)^i U<(ф2. Основное отличие этого алгоритма от алгоритма 1 заключается в том, что он последовательно строит множество цепочек, а не только их фронтов.
Алгоритм 3
T ' := total7(B)(T|7(b)); E := [ф^т; Е2 := [ф2]т'; result := 0; foreach (f sa, s) G T do
total := 0; next := {(/sa|7(b), s, 0)}; front := {(/sa|7(b), s)} \ Ei; i := 0; while front = 0 and front С E2 and front П total = 0 and i < t do total := total U front;
next := {Л G next+(HBi)(next) | Л^^^хй G Ei}; front := U {(^i]|FSAxS};
Aenext
od;
if front = 0 then result := result U {(fsA, s)} fi;
od;
return result;
Алгоритм 4 демонстрирует вычисление оператора ((B})[H<^. Этот алгоритм в цикле строит все возможные цепочки (next), исключая из рассмотрения те, которые попали в ранее пройденные состояния ^[i]|FsAX.s G total). Цикл прерывается, если: множество цепочек опустело (front = 0), для одного из вновь достигнутых состояний не выполнено условие ф (front ^ E) или превышено ограничение на время реакции (i > t). Конечность цикла не более чем за |FSa x S | шагов гарантируется монотонно растущим множеством всех пройденных состояний total.
Алгоритм 4
E := [ф]4о4агт(В) (T|7(В)); result := 0; foreach (fsA, s) T do
total := 0; next := {(/sa|7(b), s, 0)}; front := {(/sa|7(b), s)}; i := 0; while front = 0 and front С E and i < t do total := total U front;
next := {Л G next+(+Bi)(next) | Л^]|_рйаХ5 G total}; front := U {(^i]|FSAxS};
Aenext
od;
if front С E then result := result U {(/sa, s)} fi;
od;
return result;
В результате, общая алгоритмическая сложность задачи верификации для MASL с неопределенной внешней средой разрешима за время не превышающее полинома от длины спецификации системы |ф|, длины спецификации внешней среды |env|, мощности множества полных относительно коалиции AG состояний |FSag| и мощности множества | S x ACS x S| в степени n, где n есть максимальная глубина вложенности операторов [ ] в спецификации внешней среды env.
Выводы
Мы предложили алгоритм верификации распределенных систем реального времени по спецификации MASL [7]. Для случая с явно заданной реакцией внешней среды сложность предложенного алгоритма не превосходит полинома от длины спецификации системы | ф| , мощности множества полных относительно коалиции всех агентов состояний |FSag|, мощности множества состояний внешней среды |S | и мощности множества всех действий системы | ACS| .
В случае использования спецификации внешней среды env для описания возможной реакции сложность предложенного алгоритма не превосходит полинома от длины спецификации системы |ф|, длины спецификации внешней среды |env|, мощности множества полных относительно коалиции всех агентов состояний |FSag| и мощности множества | S x ACS x S| в степени n, где n есть максимальная глубина вложенности операторов [ ] в спецификации внешней среды env.
В качестве перспективного направления дальнейших исследований мы видим реализацию предложенных алгоритмов верификации с использованием OBDD-графов, по аналогии с [2], или аффинного представления данных, по аналогии с [9].7
Summary
D. Y. Bugaychenko. Model checking MASL specification of distributed real-time systems.
We present model checking algorithms for MASL specification of distributed real-time systems. The proposed algorithms use symbolic model checking approach by analogy with model checking algorithms for branching-time temporal logic CTL and alternating-time temporal logic ATL. For the fixed environment case the algorithm is polynomial-time in the specification length and sizes of the set of system states and actions. For the dynamic environment case the algorithm is polynomialtime in the model size, but it is exponential-time in the structure of environment specification.
Литература
1. Emerson E. A. Temporal and modal logic // Handbook of Theoretical Computer Science. Amsterdam: North-Holland Pub. Co., 1990. Vol. B: Formal Models and Sematics. P. 995-1072.
2. Clarke E. M., Schlingloff B.-H. Model checking // Handbook of automated reasoning. Amsterdam: Elsevier Science Publishers B. V., 2001.
3. Laroussinie F., Schnoebelen P., Turuani M. On the expressivity and complexity of quantitative branching-time temporal logics // Theory of Computer Science. 2003. Vol. 297. N1-3. P. 297315.
4. Rajeev A., Henzinger T. A., Kupferman O. Alternating-time temporal logic // Journal of the ACM. 2002. Vol. 49. N 5. P. 672-713.
5. Laroussinie F. Model-checking timed ATL for durational concurrent game structures // Proc. Fourth Conf. on Formal Modelling and Analysis of Timed Systems. Paris (France), 2006.
6. Henzinger T. A. Timed alternating-time temporal logic // Proc. Fourth Conf. on Formal Modelling and Analysis of Timed Systems. Paris (France), 2006.
7 Оба этих метода позволяют эффективно представлять в памяти большие множества и проводить операции (объединение, пересечение, проверку на включение) с ними. В методе OBDD-графов для этого используются булевые функции, и поэтому он эффективен для систем, состояния которых представимы в виде набора булевых переменных, а аффинное представление ориентировано на системы с состояниями в виде набора целочисленных переменных.
7. Бугайченко Д. Ю., Соловьев И. П. Формально-логическая спецификация мультиагент-ных систем реального времени // Вестн. С.-Петерб. ун-та. Сер. 1. 2006. Вып. 2. С. 49-57.
8. Бугайченко Д. Ю., Соловьев И. П. Абстрактная архитектура интеллектуального агента и методы её реализации // Системное программирование. 2005. Т. 1. С. 36-67.
9. Гаранина Н. О. Верификация распределенных систем с использованием аффинного представления данных, логик знаний и действий: Дис. . . канд. физ.-мат. наук: Институт систем информатики им. А. П. Ершова Сиб. Отд. РАН. Новосибирск, 2004.
Статья поступила в редакцию 15 марта 2007 г.