ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
2016 Управление, вычислительная техника и информатика № 4 (37)
ДИСКРЕТНЫЕ ФУНКЦИИ И АВТОМАТЫ
УДК 004
DOI: 10.17223/19988605/37/10
И.Б. Бурдонов, А.С. Косачев ОБОБЩЕННАЯ МОДЕЛЬ СИСТЕМЫ АВТОМАТОВ
Статья посвящена проблеме моделирования, композиции и детерминизма составных систем. Компоненты системы моделируются конечными автоматами с несколькими входами и выходами, а взаимодействие между ними - обменом сообщениями по симплексным каналам связи. Система описывается ориентированным графом связей, вершина которого соответствует автомату компонента, а дуга - каналу связи, соединяющему выход одного автомата с входом другого. Автоматы системы работают синхронно: на каждом такте каждый автомат выполняет один переход. Определяются ассоциативная композиция автоматов системы по графу связей и условия детерминированности системы.
Ключевые слова: ориентированные графы; взаимодействующие автоматы; композиция автоматов; детерминизм; сети.
Большинство сложных, особенно распределённых, систем представляет собой набор взаимодействующих компонентов. В данной статье компоненты моделируются конечными автоматами, а взаимодействие - обменом сообщениями между автоматами. Автомат может иметь несколько входов для приёма сообщений и может принимать сразу несколько сообщений; также автомат может иметь несколько выходов для посылки сообщений и посылать сразу несколько сообщений. Структура связей между компонентами моделируется ориентированным графом (будем называть его графом связей), вершинам которого соответствуют автоматы, а дуги называются соединениями и соответствуют симплексным каналам передачи сообщений. Соединение, ведущее из автомата A в автомат B, помечается выходом j автомата A и входом i автомата B. При этом каждый вход (выход) каждого автомата соединён не более чем с одним выходом (входом) другого (или того же самого) автомата. Входы (выходы) автоматов, которые не соединяются с выходами (входами) автоматов, являются внешними, через них осуществляется связь системы с её окружением. Автоматы системы работают синхронно: на каждом такте каждый автомат выполняет один переход. Также на каждом такте окружение системы посылает сообщения на некоторые внешние входы системы и принимает сообщения с некоторых внешних выходов системы.
Считается, что граф связей статический, т.е. не меняющийся в процессе работы системы. В этом случае система (так же как её компоненты) может моделироваться конечным автоматом, получающимся из автоматов-компонентов с помощью подходящего оператора композиции, учитывающего граф связей.
Такая модель системы является обобщением модели, предложенной в [1]. Там дуга графа связей представляла собой, по сути, очередь сообщений длины 1. Она моделируется автоматом с одним входом и одним выходом. Синхронно взаимодействуют автомат в вершине с автоматом дуги, инцидентной этой вершине. Если в графе связей из [1] каждую дугу разбить на два соединения, вставив в «середину» дуги новую вершину, в которую поместить автомат дуги, то получится система автоматов, являющаяся частным случаем системы, предлагаемой в данной статье. «Частность» этого случая заключается в том, что автомат дуги может теперь моделировать не только очередь сообщений длины 1, но и очередь любой другой (в том числе неограниченной) длины, стек и т. д. Более того, в данной статье мы, по сути, не делаем различия между автоматом вершины и автоматом дуги: автомат дуги тоже может иметь несколько входов и выходов.
Основная особенность предлагаемой модели автомата заключается в том, что переход автомата, предъявляя требования к состоянию всех входов и выходов автомата (указываются сообщения на них),
отдельно указывает ту часть входов и выходов, по которым сообщения принимаются или посылаются. Синхронность взаимодействия автоматов означает, что для каждого соединения требования автоматов, связанных этим соединением, должны быть согласованы. Это даёт возможность описывать более широкий спектр поведений автомата. Например, приоритетный приём сообщений: если на входах автомата имеется несколько сообщений, автомат может принять сообщения с наивысшим приоритетом, не принимая остальные сообщения. Также это позволяет автомату выполнять приём сообщений детерминиро-ванно, т. е. независимо от того, удаётся или не удаётся одновременно послать некоторое сообщение на некоторый выход. Если удаётся послать сообщение, автомат выполняет один переход, а если не удаётся - то другой. Обычно это приводит к недетерминизму: на один стимул выдаются разные реакции. Однако в нашей модели реакция - это требования к выходам, а не указание той части выходов, по которым сообщения реально передаются.
В статье определяется ассоциативная композиция переходов, автоматов и системы по известному графу связей. Ассоциативность важна для того, чтобы работа системы зависела только от множества её автоматов и соединений и не зависела от какого-либо упорядочивания этих множеств. Дополнительно определяется композиция автоматов, не связанных соединениями, что позволяет докомпоновать систему ровно до одного автомата, который может использоваться как компонент более сложных систем автоматов.
Исследуется проблема детерминизма: даётся определение детерминированного автомата и выясняются условия, при которых композиция детерминированных автоматов является детерминированной.
1. Модель
Пусть задано некоторое конечное множество сообщений М, которое мы будем называть алфавитом (сообщений). Пустое множество 0 будем называть пустым сообщением, считать, что 0 ё М, и обозначать М0 = М и {0}.
Автомат в алфавите М- это набор А = (М, I, 3, Б, Т, 50), где:
- I - конечное множество входов автомата;
- 3 - конечное множество выходов автомата;
- Б - конечное множество состояний автомата;
- Т с Б х X х Р х У х Q х Б - множество переходов автомата, где:
- X = {х | х: I ^ М0} - множество стимулов;
- У = {у I у: I ^ М0} - множество реакций;
- Р = 21 - семейство подмножеств входов (по ним принимаются сообщения);
- Q = 2 - семейство подмножеств выходов (по ним посылаются сообщения);
- 50 е Б - начальное состояние; причём выполнены следующие условия:
1) множества входов и выходов не пересекаются: I п 3 = 0;
2) принимаются и посылаются только непустые сообщения:
У(5, х, р, у, ц, 0 е Т (V/ е р (х(/) * 0) & V/ е ц (уф * 0)), что эквивалентно V(s, х, р, у, ц, () е Т (р с х-1(М) & ц с у-1(М)).
Очевидно, что из конечности множеств М, I, 3 и Б следует конечность множеств X, У, Р, Q, Т.
Для перехода а = (5, х, р, у, ц, ^ состояние 5 будем называть пресостоянием перехода, а состояние t - постсостоянием, и будем обозначать 5а = 5, ха = х, ра = р, уа = у, ца = ц, 1а = I. Для автомата А = (М, I, 3, Б, Т, 50) будем обозначать ^ = I, 3А = 3, БА = Б, ТА = Т, 50А = 50.
Работу автомата можно описать следующим образом. В текущем состоянии 5 проверяется состояние входов, т.е. какие сообщения можно принять с входов автомата. Это определяет стимул х. Далее рассматриваются переходы по этому стимулу, т.е. множество Т5,х с Т переходов из 5 по х. Каждый переход из множества Т5,х определяет ту или иную реакцию у. Если для данных 5 и х имеются переходы с разными реакциями у, то недетерминированным образом выбирается реакция у как одна из реакций на переходах из множества Т5,х. После выбора реакции у проверяется состояние выходов, а именно какие
непустые сообщения, определяемые реакцией у, могут быть переданы по соответствующим выходам, а какие нет. Это определяет параметр д. Тем самым определяется множество Т5,х,у,д с Т%х переходов с данными 5, х, у, д. Если это множество содержит более одного перехода, то недетерминированным образом выбирается один из них. Если выбран переход (5, х, р, у, д, ¿), то параметр р определяет, какие непустые сообщения будут приняты с входов автомата. Таким образом, принимаются сообщения, определяемые стимулом х, по входам, определяемым параметром р; посылаются сообщения, определяемые реакцией у, по выходам, определяемым параметром д, после чего автомат переходит в состояние Это описание работы автомата неформально. Формальное описание есть, по существу, формальное определение композиции автоматов, которое будет дано в следующем разделе.
Пусть V - конечное множество автоматов в алфавите М. Без ограничения общности можно считать, что входы, выходы и состояния автоматов разные: УЛ, В е V(Л Ф В ^ 1Лп, 1В= 0 & 1Л<^ ^в = 0 & 3АГ\ ^ = 0 & 8ЛГ\ Бв = 0). Это всегда можно сделать систематическим переименованием состояний, входов и выходов автоматов, в результате чего получатся автоматы, изоморфные исходным.
Система автоматов - это набор Я = (М, V, Е), где Е : Е0от ^ Е1т - биекция, определяющая соединения, где Е0от с Е1т с 1Я, ^ = и{ЛЛ е V} - множество всех выходов всех автоматов, = и{1Л\Л е V} - множество всех входов всех автоматов. Для Я = (М, V, Е) обозначим VR = V, ЕЯ = Е.
Определим функцию ф: (1яи ^) ^ V, которая каждому входу или выходу системы Я ставит в соответствие автомат, которому этот вход или выход принадлежит: УЛ е V У.г е 1Ли Зл ф(г) = Л. Будем говорить, что соединение (/, 1) связывает выход автомата ф(/) и вход автомата ф(1). Вход 1 е или выход / е ^, для которого не определено соединение, т.е. 1 £ Е1т или / £ Е0от, будем называть внешним входом или внешним выходом системы соответственно.
Системе Я = (М, V, Е) соответствует ориентированный граф связей, вершинами которого являются автоматы из V, а помеченные дуги - это соединения, причём дуга Л ^ В существует и помечена соединением (/, 1) тогда и только тогда, когда (/, 1) е Е, ф(/) = Л и ф(1) = В. Такой граф обозначим через Og(R). Если снять ориентацию соединений, то получившийся неориентированный граф обозначим через Ng(R). Будем говорить, что автоматы Л и В связаны в системе, если в графе Ng(R) существует (неориентированный) путь из Л в В (возможно, пустой, если Л = В). В противном случае разные автоматы Л и В не связаны. Очевидно, что отношение связанности автоматов является отношением эквивалентности и разбивает множество автоматов V на классы эквивалентности, которые будем называть классами связанности.
Будем считать, что состояние автомата в системе Я = (М, V, Е) является множеством и состояния разных автоматов не пересекаются: УЛ, В е V У5Ле БЛ У5Ве БВ (Л Ф В ^ 5ЛГ\ 5В= 0). Если уже задана система, в которой это условие не выполнено, то в каждом автомате каждое состояние 5 заменим на синглетон {5}, что даст возможность получить автоматы, изоморфные исходным, а требуемые условия будут выполнены.
Работу системы автоматов можно описать следующим образом. Прежде всего, окружение моделируется автоматом, число выходов (входов) которого равно числу внешних входов (выходов) системы, и добавляются внешние соединения, связывающие выходы (входы) окружения с внешними входами (выходами) системы. Получается замкнутая система без внешних входов и выходов. Все автоматы, включая окружение, срабатывают одновременно, и каждый автомат выполняет ровно один переход (явный или неявный, если используются правила умолчания). Если автоматы Л и В связаны соединением (/, 1), где / е 3Л и 1 е 1В, то для выполняемых переходов а е ТЛ и Ь е ТВ сообщение уа(/) и условие его передачи / е да на выходе / автомата Л должны быть согласованы с сообщением хЬ(1) и условием его приёма 1 е рЬ на входе 1 автомата В. Это означает, во-первых, что сообщение уа(/) на выходе / совпадает с сообщением хЬ(1) на входе 1. И, во-вторых, сообщение либо передаётся из Л по выходу /, т.е. / е да, и принимается в В по входу 1, т.е. 1 е рЬ, либо не передаётся из Л по выходу /, т.е. / £ да, и не принимается в В по входу 1, т.е. 1 £ рЬ.
2. Композиция
Существует большое разнобразие как автоматоподобных моделей, так и операторов их (параллельной) композиции начиная с классической композиции в алгебрах процессов CSP - Communicating Sequential Processes [4] и CCS - Calculus of Communicating Systems [5]. Они определяют две разновидности композиции LTS (Labelled Transition System), в которых переходы помечены символами действий из заданного алфавита. Для систем ввода-вывода (IOTS - Input-Output Transition System), в которых действия разбиваются на стимулы (input) и реакции (output), предлагались различные модификации композиции [7-9], в частности для обнаружения тупиковых ситуаций (deadlock) с целью наблюдения отказов (refusal) [6-8]. Для систем с приоритетами и моделей событий (систем более общего вида) нами были также предложены соответствующие операторы композиции [10,11]. Вводимая в данном разделе композиция учитывает наличие у автомата нескольких входов и выходов и моделирует взаимодействие автоматов через соединения, каждое из которых связывает выход одного автомата с входом другого. Иными словами, это композиция автоматов по графу связей системы автоматов.
Введём способ сокращённой записи для преобразования функции при уменьшении её домена: для функции f и множества N обозначим f/N = f \ {(z,fz)) | z e Nn Dom(f)}. Для любого множества N имеем f/(N u N") = f/N)/N\ и для любой функции g, такой, что Domf) n Dom(g) = 0 и N nDom(g) = 0, имеем (f u g)/N = (f/N) u g. Будем считать, что операция "/" имеет тот же приоритет, что разность "\" и объединение "u" множеств. В выражениях над множествами, где используются только операции "/", "\" и "u", будем использовать бесскобочную запись и предполагать, что операции выполняются слева направо. Логическую эквивалентность обозначим символом «~»: a ~ b = (a & b) v (—a & —ib).
Композиция определяется по соединению (j, i) e E. Обозначим через A автомат, которому принадлежит выход j, т.е. A = ф(?'), а через B - автомат, которому принадлежит вход i, т.е. B = ф(/').
Композиция переходов по соединению. Для соединения (j, i) определим условие f(a, j, i, b) композиции двух переходов a и b и результат композиции a j, i]b:
fa, j, i, b) = ae JA & beTB & (A = B ^ a = b) &ya(j) = Xb(i) & (jeqa ~ i e pb),
f(a, j, i, b): a j, i]b = (sa u Sb, Xa u Xb/{i}, Pa u Pb\{i}, Ja u Jb/^^}, qa u qb\{j}, ta u tb).
Заметим, что если A = B, то
fa, j, i, b) = a e Ja & Ja(/) = xa(i) & (/' e qa ~ i e pa),
f(a, j, i, b): a[j', i]b = (sa, xa/{i},pa\{i}, yj{j}, qa\{j}, ta).
Композиция переходов естественным образом распространяется на композицию множеств переходов, определяемую как множество попарных композиций переходов. Для соединения (j, i) определим композицию множеств переходов G и H: G[j, i]H = {a[j, i]bla e G & be H &f a, j, i, b)}.
Композиция автоматов по соединению. В композиции автоматов оставим только начальное состояние композиции и пре- и постсостояния переходов композиции. Это множество включает подмножество достижимых состояний. Для множества переходов T обозначим множество пре- и постсостояний этих переходов: States(T) = {sa|a e T} u {ta|a e T}. Для соединения (j, i) определим композицию автоматов A и B:
A[j, i]B = (M, Ia u Ib\{í}, Ja u Jb\{/}, {soa u Sob} u States(TA[j, í]Tb), Ta[/, í]Tb, Soa u Sob).
Заметим, что если в определении автомата используются правила умолчания, то композиция автоматов существенно использует композицию не только явных, но и неявных переходов.
Теорема 1. Композиция автоматов удовлетворяет условиям, налагаемым на автомат.
Доказательство см. в [2], теорема 1.
Композиция системы по соединению. Для системы R и соединения (j, i) определим
R[j, i] 4 (M, V\{A, B} u {A[j, i]B}, E\{(j, i)}).
Теорема 2. Композиция системы удовлетворяет условиям, налагаемым на систему.
Доказательство см. в [2], теорема 2.
Определённая таким образом композиция обладает свойством ассоциативности, которая важна для того, чтобы работа системы зависела только от множеств соединений, автоматов и их переходов и не зависела от какого-либо упорядочивания этих множеств. Последовательностью всех соединений для системы Я = (М, V, Е) назовём последовательность 2 соединений из Е, в которой каждое соединение встречается ровно один раз, т.е. 2 : [1..|2|] ^ Е является биекцией. Определим композицию системы Я по последовательности всех соединений 2как Я[2] = Я[2(\)][2(2)]...[2(Щ)], если 2не пусто, и Я[2] = Я, если 2 пусто.
Теорема 3. Композиция системы Я по всем её соединениям не зависит от порядка композиции: для любых двух последовательностей всех соединений 2 и 2 имеет место Я[2] = Я[2 ].
Доказательство см. в [2], теорема 3.
В системе Я[2] нет соединений, т.е. Ещ_2] = 0; автоматы такой системы не связаны друг с другом и соответствуют классам связности системы Я, а все входы и выходы автоматов являются внешними. Если в Я[2] больше одного автомата, то её нельзя использовать как компонент более сложной системы. Для того чтобы обойти это неудобство, определим композицию несвязанных автоматов. Её семантика достаточно прозрачна: если два автомата не связаны, то системы из этих автоматов эквивалентны одному автомату, в котором объединены входы и выходы обоих автоматов, а любые два перехода из разных автоматов объединены в один переход. Определим композицию без соединения формально.
Композиция переходов: а[]Ь = (5а и 5ь, Ха и Хь, ра и рЬ, Уа и Уь, да и дЬ, Га и (ь).
В этом определении неявно предполагается, что как домены стимулов, так и домены реакций в компонуемых переходах не пересекаются: Бот(ха) п Бот(хЬ) = Бот(уа) п Бот(уЬ) = 0. В противном случае стимул и / или реакция в композиционном переходе могли бы стать многозначными функциями. Мы не записали это требование как условие композиции двух переходов, поскольку такая композиция будет использоваться только для определения композиции несвязанных и, следовательно, разных автоматов, а в этом случае это требование автоматически выполнено.
Композиция множеств переходов: G[]H = {а[]Ь| а е G & Ь е Н}.
Композиция автоматов: Л[]В = (М, 1Л и 1В, 3Л и 7В, {50Л и 50В} и 8Ше8(ТЛ[]ТВ), ТЛ[]ТВ, 50Л и 50В).
Композиция автоматов удовлетворяет условиям, налагаемым на автомат (аналог теоремы 1).
Композиция системы: Я[Л, В] = (М, ЩЛ, В} и {Л[]В}, Е).
Композиция системы удовлетворяет условиям, налагаемым на систему (аналог теоремы 2). Каждая композиция системы уменьшает на единицу число автоматов в ней. Поэтому через конечное число композиций система Я[2] превратится в систему без соединений, состоящую из одного автомата, который обозначим через ЯЛ.
Нетрудно показать, что композицию несвязанных автоматов можно чередовать с композицией по соединениям. Можно только отметить, что композиция несвязанных автоматов уменьшает на 1 число компонентов связности в графе Ng(Я): автомат Л[]В оказывается связанным с каждым автоматом (отличным от Л и В), с которым был связан автомат Л или В.
3. Детерминизм
Автомат Л = (М, I, 3, 5", Т, 50) определен по всем стимулам, если выполнено условие, что в каждом состоянии есть переход по каждому стимулу: У5 е 5 Ух е X За е Т (5а = 5 & ха = х).
Автомат Л = (М, I, 3, 5, Т, 50) вполне определен, если он определен по всем стимулам и существуют переходы по всем д: Уа е Т Уд" с Уа1(М) За е Т (.V = Яа & ха = ха & ра = ра & Уа- = Уа & да = ч).
Вместо этих условий можно использовать правила умолчания, если в определении автомата указывать подмножество Т явных переходов и дополнять его до множества Т всех переходов согласно правилам умолчания:
1. Если в T* нет явного перехода из некоторого состояния по некоторому стимулу, то это означает, что такой переход определён неявно без приёма и выдачи сообщений и без изменения состояния.
2. Если в T* есть переход (5, x, p, y, q, t), но для некоторого q с y-1(M) нет перехода вида (5, x, p, y, q', t'), то это означает, что такой переход определён неявно без изменения состояния (t = t).
Формально это означает
T = T и {(5, x, 0, J х {Л}, 0, 5) | 5 е S & x е X& Vp, y, q, t (5, x,p, y, q, t) g T*} u
u {(5, x, p, y, q', 5)|3q, t (5, x, p, y, q, t) е T & q с y-1(M) & Vt (5, x, p, y, q', t') g T*}.
Автомат A будем называть детерминированным, если выполнены следующие условия:
1. Состояние 5 и стимул x однозначно определяют приём сообщений p и реакцию y:
Va,b е Ta (5a = 5b & xa = xb ^ pa = pb & Уа = Уь).
2. Одинаково помеченные переходы из одного состояния совпадают, т.е. ведут в одно постсостояние:
Va,b е Ta (5a = 5b & xa = xb & pa = pb & Уа = Уь & qa = qb ^ ta = tb).
Проблема в том, что композиция детерминированных автоматов может оказаться недетерминированной. Это может произойти из-за цикла соединений, если в автоматах этого цикла есть две «параллельные», но разные цепочки компонуемых переходов, ведущих из одинаковых состояний и отличающихся в параметрах x и q только по входам и выходам соединений цикла. Для одной цепочки по циклу соединений передаются одни сообщения, а для другой - другие. Более строго, пусть в графе связей есть цикл как чередующаяся последовательность автоматов и неповторяющихся соединений W = A1, (j\,i2), A2, (j2,i3), ..., An, (jn,in+1), A1: Vk,k'=1.n (j'k,ik+1) Ф (j,7k+1). Обозначим i1 = in+1. Пусть также в каждом из автоматов Ак имеются два перехода ak и a' k, такие, что если Ak = Ak, то ak = ak. Обозначим an+1 = a1 и a n+1 = а'1. Пусть переходы в соседних в цикле автоматов, т.е. переходы ak и ak+1, и переходы a k и ak+1 компонуются по соединению (jk, ik+1), т.е. f(ak, jk, ik+1, ak+1) = fla\, jk, ik+1, a'k+1) = true. Пусть для каждого k = 1..n переходы ak и a k начинаются в одном состоянии и отличаются в x только по входу ik и в q только по выходу jk, т.е. если ak= (5k,xk,pkyk,qk,tk) и a k = (5'k, x'k, p\, y k, q k, t'k), то 5k=5\, xj{ik} = xV{ik}, qk\{/k} = q'k\{/k}. Тогда композиция по всем соединениям цикла Wсодержит два перехода а = a1[/'1,i2]a2[/2,i3].. a„[/„,i„+1]a1 и а" = а' 1 [/1,i2]a' 2[j2,i3] . а' n\jnUl]a 1 в которых 5а = 5а', xa = xd и qa = qd, но, вообще говоря, p^ p k, Ук* У k и t Ф t\.
В то же время можно заметить, что если хотя бы в одном автомате цикла, например в первом, по соединению (/\, i2) в разных переходах а\ и a'i передаётся одно и то же сообщение yi(/'i) = y'i(/'i), то недетерминизм не возникает. Действительно, из условия композиции переходов следует, что в следующем втором автомате x2(i2) = y1(j1) = y' 1(/'1) = x'2(i2), а тогда, поскольку x2/{i2} = x'2/{i2}, имеем x2 = x'2. Отсюда, поскольку 52 = 5'2, в силу первого условия детерминизма второго автомата имеем p2=p'2, y2 = У'2, в частности y2(j2) = у'2(/'2). Продолжая аналогичные рассуждения по циклу соединений, получаем xk = x'k, pk = p'k, yk = y'k для каждого k. Тогда для каждого k имеем ik+1 е pk+1 ~ ik+1 е p'k+1, и по условию композиции jk е qk ~ jk е q k, что вместе с qk\{j'k} = q'k\{jk} влечёт qk = q k. Отсюда по второму условию детерминизма для каждого k имеем tk = t'k. Тем самым, ak = a'k для каждого k, что влечёт а = а'. Таким образом, одинаковые сообщения yk(jk) = y' k(jk) «склеивают» цепочки переходов d1 = a 1, d2 = a 2, ..., an = a'n, а композиция по такому циклу становится детерминированной.
В [1] композиция детерминированных автоматов детерминированная. В терминах данной статьи это означает, что система детерминированная, если выполнены следующие условия: 1) автоматы разбиты на два класса: класс «вершин» и класс «дуг», 2) каждое соединение связывает автоматы разных классов, 3) «вершина» определена по всем стимулам, а «дуга» вполне определена, 4) все автоматы детерминированные, 5) «дуга» имеет один вход и один выход, 6) «дуга» моделирует очередь сообщений длины 1. Класс «вершин» соответствует вершинам, а класс «дуг» - дугам графа связей из [1]. Условие 5 можно ослабить: достаточно, чтобы «дуга» имела один вход, но она может иметь несколько выходов. Вместо условия 6 достаточно, чтобы в «дуге» реакция зависела только от состояния (т. е. не зависела от стимула): VA е V Va, а' е Ta (5а = 5a- ^Уа = Уа').
Композиционный переход порождается множеством переходов в автоматах-операндах, которое содержит по одному переходу в каждой «дуге» и либо один переход в «вершине», либо «вершина» «стоит», если какие-то из сообщений, которые она могла бы послать на выходящие «дуги», ими не принимаются.
«Дуга» «склеивает» цепочки в каждом цикле, в который она входит, т. е. композиция по каждому такому циклу становится детерминированной. Для «дуги» в [1] это условие выполнено.
Теорема 4. Если система R = (M, V, E) удовлетворяет указанным выше шести условиям, то после специальной композиции каждой «вершины» со всеми выходящими из неё «дугами» дальнейшая композиция по описанным в разделе 2 правилам дает детерминированный автомат. Доказательство следует из теорем 1 и 2 в [3].
Заключение
Предложенная в данной статье модель системы автоматов может быть использована как база для тестирования составных систем. Особенно это полезно в том случае, когда в графе связей нет ошибок (гипотеза о связях), т. е. граф связей совпадает с заданным. В этом случае тестирование сводится к проверке правильности переходов каждого автомата. Однако проблема в том, что автомат может тестироваться только как часть системы, т.е. тестер не имеет непосредственного доступа к автомату, и вынужден осуществлять тестовые воздействия с помощью сообщений, посылаемых по внешним входным соединениям, которые ведут, быть может, в другие автоматы. Тестирование компонента такой системы похоже на тестирование в контексте [12-15], когда этот компонент рассматривается как тестируемая система, а остальные - как контекст. Существенное отличие, однако, в том, что в таком контексте тоже возможны ошибки, но если верна гипотеза о связях, то только в компонентах, а не в графе связей. С другой стороны, при тестировании проверяется работа сразу нескольких компонентов, через которые проходят сообщения. Поскольку автомат тестируется как часть системы, могут быть проверены не все его переходы, которые проверяются при автономном тестировании с прямым доступом к автомату. Речь идет только о переходах автоматов, достижимых при их работе в составе системы.
Тестирование композиционного автомата системы, получающегося композицией автоматов по заданному графу связей, обеспечивает проход по всем его достижимым переходам. При этом, конечно, проверяются все достижимые переходы автоматов-компонентов, но может делаться много «лишней работы». Гипотеза о связях позволяет существенно сократить время тестирования.
Предполагается, что нам известно, каким должен быть каждый автомат (задан граф переходов автомата с точностью до изоморфизма), и именно это проверяется при тестировании. Кроме того, тест может наблюдать как состояния автоматов в вершинах графа связей, так и сообщения на его дугах. Такие предположения могут быть оправданы, например, при имитационном тестировании аппаратуры (simulation-based verification) (см. например, [16]).
При этих условиях может быть предложен алгоритм построения набора тестов [3], основанный на фильтрации тестов, генерируемых для композиционного автомата системы: тест отбрасывается, если он покрывает только такие переходы в компонентах системы, которые покрываются уже отобранными тестами. Такой набор тестов будет полным (проверяет все достижимые переходы автоматов-компонентов) при выполнении двух условий: 1) верна гипотеза о связях, 2) система детерминирована. Дополнительно алгоритм может определить недостижимые переходы автоматов.
ЛИТЕРАТУРА
1. Бурдонов И.Б., Косачев А.С. Тестирование системы автоматов // Труды ИСП РАН. 2016. T. 28 (1).
2. Бурдонов И.Б., Косачев А.С. Система автоматов: композиция по графу связей // Труды ИСП РАН. 2016. T. 28 (1).
3. Бурдонов И.Б., Косачев А.С. Система автоматов: условия детерминизма и тестирование // Труды ИСП РАН. 2016. Т. 28 (1).
4. Hoare C.A.R. Communicating Sequential Processes. Englewood Cliffs, NJ : Prentice Hall International, 1985.
5. Milner R. Communication and Concurrency. Prentice-Hall, 1989.
6. Langerak R. A testing theory for LOTOS using deadlock detection // Protocol Specification, Testing, and Verification IX / eds. by
E. Brinksma, G. Scollo, C.A. Vissers. North-Holland, 1990. Р. 87-98.
7. Tretmans J. Test Generation with Inputs, Outputs and Repetitive Quiescence // Software-Concepts and Tools. 1996. Vol. 17, Issue 3.
8. van der Bijl M., Rensink A., Tretmans J. Compositional testing with ioco // Formal Approaches to Software Testing: Third Interna-
tional Workshop, FATES 2003, Montreal, Quebec, Canada, October 6th, 2003 / eds. by Alexandre Petrenko, Andreas Ulrich. LNCS Springer, 2003. V. 2931. Р. 86-100.
9. Petrenko A., Yevtushenko N., Huo J.L. Testing Transition Systems with Input and Output Testers. Proc. IFIP TC6/WG6.1 15th Int.
Conf. Testing of Communicating Systems, TestCom'2003. Sophia Antipolis, France, 2003. May 26-29. Р. 129-145.
10. Бурдонов И.Б., Косачев А.С. Системы с приоритетами: конформность, тестирование, композиция // Программирование. 2009. № 4. С. 24-40.
11. Бурдонов И.Б., Косачев А.С. Согласование конформности и композиции // Программирование. 2013. № 6. С. 3-15.
12. Revised Working Draft on "Framework: Formal Methods in Conformance Testing". JTC1/SC21/WG1/Project 54/1, ISO Interim Meeting, ITU-T on. Paris, 1995.
13. Bourdonov I.B., Kossatchev A.S., Kuliamin V.V. Conformance theory of the systems with Refused Inputs and Forbidden Actions. M. : Nauka, 2008. 412 p. (in Russian)
14. Bourdonov I. Conformance theory (functional testing on formal model base). LAP LAMBERT Academic Publishing. Saarbrucken, Germany, 2011. 428 p. (in Russian)
15. Bourdonov I.B., Kossatchev A.S. Specification Completion for IOCO // Programming and Computer Software. 2011. V. 37 (1). P. 1-14.
16. Kamkin A.S., Chupilko M.M. Survey of modern technologies of simulation-based verification of hardware // Programming and Computer Software. 2011. V. 37 (3). P. 147-152.
Бурдонов Игорь Борисович, д-р физ.-мат. наук. E-mail: [email protected] Косачев Александр Сергеевич, канд. физ.-мат. наук. E-mail: [email protected] Институт системного программирования РАН (ИСП РАН), Москва
Поступила в редакцию 30 мая 2016 г.
Burdonov Igor B., Kossatchev Alexander S. (Institute for System Programming of the Russian Academy of Sciences, Moscow, Russian Federation).
Generalized model of automata system.
Keywords: directed graph; communicating automata; automata composition; determinism; networks. DOI: 10.17223/19988605/37/10
The problem of modeling and composing of aggregate systems is considered. The system components are described by finite automata with multiple entries and exits. The communication between automata is described with message passing over simplex communication channels. The system is described with an oriented graph of links. Each node of the graph corresponds to the automaton of a component and an arc corresponds to a communication channel connecting an output of one automaton with input of another automaton. An automaton of the graph node in each state can accept multiple messages from its entries (at most one message from each input) and send multiple messages to its outputs (at most one message to each output). Inputs (outputs) of the automata not connected to outputs (inputs) of other automata are considered to be external and are used for communication between the system and its environment. The automata of the system operate synchronously: on each step each automaton performs one transition. A transition of an automaton imposes requirements on states of all its inputs and outputs (messages in them are specified) and explicitly specifies subset of inputs and outputs through which the messages are received or sent, respectively. Synchronous communication between automata means that for each link the requirements of the automata connected with this link must conform to each other. It makes possible to describe a wider spectrum of automata behavior. For example, a priority of message receiving: if there are multiple message at the automata inputs, it can receive messages with the highest priority and discard the rest of the messages. It also makes possible for the automaton to receive messages regardless of ability to simultaneously send some message to some output. A composition of the automata of the system according to the graph of links is defined and its associativity is proved. In conclusion, the problems of testing of aggregate systems are described.
REFERENCES
1. Burdonov, I.B. & Kossatchev, A.S. (2016) Testing of automata system. Trudy ISP RAN - The proceeding of ISP RAS. 28(1). (In Rus-
sian).
2. Burdonov, I.B. & Kossatchev, A.S. (2016) Automata system: composition on connection graph. Trudy ISP RAN - The proceeding of
ISP RAS. 28(1). (In Russian).
3. Burdonov, I.B. & Kossatchev, A.S. (2016) Automata system: conditions of determinism and testing. Trudy ISP RAN - The proceed-
ing of ISP RAS. 28(1). (In Russian).
4. Hoare, C.A.R. (1985) Communicating Sequential Processes. Englewood Cliffs, New Jersey: Prentice Hall International.
5. Milner, R. (1989) Communication and Concurrency. Prentice-Hall.
6. Langerak, R. (1990) A testing theory for LOTOS using deadlock detection. In: Brinksma, E., Scollo, G. & Vissers, C.A. (eds) Proto-
col Specification, Testing, and Verification IX. North-Holland. pp. 87-98.
7. Tretmans, J. (1996) Test Generation with Inputs, Outputs and Repetitive Quiescence. Software-Concepts and Tools. 17(3). DOI:
10.1007/3-540-61042-1_42
8. van der Bijl, M., Rensink, A. & Tretmans, J. (2003) Compositional testing with ioco. Formal Approaches to Software Testing: Third
International Workshop, FATES 2003. Montreal, Quebec, Canada. October 6. 2931. pp. 86-100. DOI: 10.1007/978-3-540-24617-6_7
9. Petrenko, A., Yevtushenko, N. & Huo, J.L. (2003) Testing Transition Systems with Input and Output Testers. Proc. IFIP TC6/WG6.1
15th Int. Conf. Testing of Communicating Systems, TestCom '2003. Sophia Antipolis, France. May 26-29. pp. 129-145. DOI: 10.1016/S0140-3664(96)01157-7
10. Bourdonov, I.B. & Kossatchev, A.S. (2009) Systems with Priorities: Conformance, Testing, and Composition. Programming and Computer Software. 35(4). pp. 198-211. DOI: 10.1134/S0361768809040045
11. Bourdonov, I.B. & Kossatchev, A.S. (2013) Agreement between Conformance and Composition. Programming and Computer Software. 39(6). pp. 269-278. DOI: 10.1134/S0361768813060029
12. Revised Working Draft on "Framework: Formal Methods in Conformance Testing". (1995) JTC1/SC21/WG1/Project 54/1, ISO Interim Meeting, ITU-T on. Paris.
13. Bourdonov, I.B., Kossatchev, A.S. & Kuliamin, V.V. (2008) Conformance theory of the systems with Refused Inputs and Forbidden Actions. Moscow: Nauka. (In Russian).
14. Bourdonov, I. (2011) Conformance theory (functional testing on formal model base). Saarbrucken: LAP LAMBERT Academic Publishing.
15. Bourdonov, I.B. & Kossatchev, A.S. (2011) Specification Completion for IOCO. Programming and Computer Software. 37(1). pp. 1-14. DOI: 10.1134/S0361768811010014. 1
16. Kamkin, A.S. & Chupilko, M.M. (2011) Survey of modern technologies of simulation-based verification of hardware. Programming and Computer Software. 37(3). pp. 147-152. DOI: 10.1134/S0361768811030017