Система автоматов: условия детерминизма и тестирование
И.Б. Бурдонов <[email protected]> А,С. Косачев <[email protected]> Институт системного программирования РАН, 109004, Россия, г. Москва, ул. А. Солженицына, д. 25.
Аннотация. Статья посвящена проблеме тестирования составных систем, компоненты которых моделируются конечными автоматами с несколькими входами и выходами, а взаимодействие между ними - обменом сообщениями по симплексным каналам связи. Система описывается ориентированным графом связей, вершина которого соответствует автомату компонента, а дуга - каналу связи, соединяющему выход одного автомата со входом другого автомата. Предполагается выполненной следующая гипотеза о связях: граф связей статический, а отображаемая им структура связей не содержит ошибок. Автомат, находящийся в вершине графа, в каждом состоянии может принимать несколько сообщений по своим входам (не более одного по каждому входу) и посылать несколько сообщений по своим выходам (не более одного по каждому выходу). Определяется ассоциативная композиция автоматов системы. Показывается, при каких ограничениях на автоматы и граф связей их композиция, т.е. сама система, детерминирована. Целью тестирования является покрытие переходов автоматов компонентов, которые достижимы при работе этих автоматов в системе. Предполагается, что при тестировании возможно наблюдение изменения состояний автоматов системы и передаваемых между ними сообщений. Полное тестирование системы автоматов без учёта гипотезы о связях может потребовать число тестовых воздействий порядка произведения чисел состояний автоматов компонентов, а с учётом гипотезы о связях - порядка суммы этих чисел. При равном числе состояний всех автоматов это даёт экспоненциальное уменьшение числа тестовых воздействий. При условии выполнения гипотезы о связях для детерминированной системы предлагается алгоритм генерации тестов, основанный на фильтрации тестов, генерируемых для покрытия всех переходов композиции. Тест отбрасывается, если он покрывает только такие переходы в компонентах системы, которые покрываются остающимися тестами. В заключение определяются направления дальнейших исследований.
Ключевые слова: ориентированные графы, покрытие графа, взаимодействующие автоматы, композиция автоматов, детерминизм, распределенные системы, тестирование, сети.
БОТ: 10.15514Л8РКЛ8-2016-28( 1)-9
Для цитирования: Бурдонов И.Б., Косачев А.С. Система автоматов: условия детерминизма и тестирование. Труды ИСП РАН, том 28, вып. 1, 2016 г., с. 151-184. DOI: 10.15514/ISPRAS-2016-28(1)-9
1. Введение
Большинство сложных, особенно распределённых, систем представляет собой набор взаимодействующих компонентов. Данная статья продолжает исследование системы автоматов, начатое в нашей предыдущей статье [2]. Компоненты моделируются конечными автоматами, а взаимодействие -обменом сообщениями между автоматами. Автомат может иметь несколько входов для приёма сообщений и может принимать сразу несколько сообщений; также автомат может иметь несколько выходов для посылки сообщений и может посылать сразу несколько сообщений. Структура связей между компонентами моделируется ориентированным графом (будем называть его графом связей), вершинам которого соответствуют автоматы, а дуги называются соединениями и соответствуют симплексным каналам передачи сообщений. Соединение, ведущее из автомата A в автомат B, помечается выходом j автомата A и входом i автомата B. При этом каждый вход (выход) каждого автомата соединён не более чем с одним выходом (входом) другого (или того же самого) автомата. Входы (выходы) автоматов, которые не соединяются с выходами (входами) автоматов, являются внешними, через них осуществляется связь системы с её окружением. При тестировании тест подменяет собой окружение: он передаёт сообщения в систему на её внешние входы (набор таких сообщений можно назвать внешним стимулом) и принимает от системы сообщения с её внешних выходов (набор таких сообщений можно назвать внешней реакцией). Считается, что граф связей статический, то есть не меняющийся в процессе работы системы. В этом случае система (также как её компоненты) может моделироваться конечным автоматом, получающимся из автоматов-компонентов с помощью подходящего оператора композиции, учитывающего граф связей.
Система работает правильно, если структура её связей правильна, и каждый автомат-компонент работает правильно. Обратное, вообще говоря, не верно, если требования к системе не однозначно определяют её структуру. Например, функциональные требования, определяющие внешнюю реакцию системы как требуемую функцию от последовательности внешних стимулов. В данной статье целью тестирования является покрытие всех переходов автоматов компонентов, которые достижимы при работе этих автоматов в системе. Поэтому, если в структуре связей нет ошибок, т.е. множество соединений совпадает с заданным (будем называть это гипотезой о связях), то такое тестирование системы сводится к проверке правильности переходов каждого автомата. Проблема в том, что каждый автомат может тестироваться только как часть системы. Это означает, что тест не имеет непосредственного
доступа к автомату-компоненту, и вынужден осуществлять тестовые воздействия с помощью сообщений, посылаемых по внешним входам, которые принадлежат, быть может, другим автоматам. Тестирование компонента такой системы похоже на тестирование в контексте ([3], [4], [5], [6]), когда этот компонент рассматривается как тестируемая система, а остальные - как контекст. Существенное отличие, однако, в том, что в таком контексте тоже могут быть ошибки, хотя, если верна гипотеза о связях, то только в компонентах, а не в структуре связей между ними. С другой стороны, один тест может проверять работу сразу нескольких компонентов, через которые проходят сообщения.
Поскольку компонент тестируется как часть системы, не все переходы автомата компонента, которые можно проверить при автономном тестировании с прямым доступом к компоненту, можно проверить при тестировании системы. Поэтому речь должна идти только о достижимых переходах автоматов, то есть таких переходах, которые могут быть выполнены при работе автомата как части системы.
Как мы показали в [1] на примере гипотеза о связях позволяет получить существенный выигрыш во времени тестирования, вплоть до экспоненциального его уменьшения. Если гипотеза о связях верна, то целью тестирования системы автоматов становится покрытие всех достижимых переходов автоматов компонентов системы.
В модели, предложенной в [2], автоматы системы работают синхронно: на каждом такте каждый автомат выполняет один переход. Также на каждом такте окружение системы посылает сообщения на некоторые внешние входы системы и принимает сообщения с некоторых внешних выходов системы. Для получения замкнутой формальной системы окружение моделируется автоматом, выходы которого соединяются с внешними входами системы, а внешние выходы системы соединяются со входами окружения. При тестировании роль окружения играет тест.
В данной статье предлагается алгоритм построения набора тестов, аналогичный алгоритму, предложенному в [1] для систем частного вида. Этот набор тестов является полным (проверяет все достижимые переходы автоматов компонентов) при выполнении двух условий: 1) верна гипотеза о связях, 2) система детерминирована. Дополнительно этот алгоритм определяет недостижимые переходы автоматов компонентов. Предполагается, во-первых, что нам известно, каким должен быть автомат каждого компонента (задан граф переходов автомата с точностью до изоморфизма) и именно это должно проверяться при тестировании. Во-вторых, тестовая система может не только выполнять тест, посылая сообщения на внешние входы системы и принимая сообщения с внешних выходов системы, но и наблюдать как состояния автоматов системы, так и сообщения, передаваемые по соединениям между автоматами системы. Такие предположения могут быть оправданы, например,
при имитационном тестировании аппаратуры (simulation-based verification) (см. например, [7]).
Сначала, в разделе 2, повторяются необходимые определения и утверждения (без доказательств) из [2]. Формально определяются модель автомата и модель системы, а также композиция переходов, композиция автоматов и композиция системы по соединению. Композиция автоматов удовлетворяет требованиям, предъявляемым к автомату, а композиция системы удовлетворяет требованиям, предъявляемым к системе автоматов. Композиция системы по всем её соединениям представляет собой автомат или набор автоматов, не связанных между собой соединениями. Композиция переходов, автоматов и системы обладает свойством ассоциативности. Ассоциативность важна для того, чтобы работа системы зависела только от множества её автоматов и соединений и не зависела от какого-либо упорядочивания этих множеств. В разделе 3 даётся определение вполне определённого и детерминированного автомата, формулируются условия, при которых система таких автоматов тоже вполне определённая и детерминированная и доказывается соответствующая теорема.
В разделе 4 рассматриваются системы автоматов класса «вершины-дуги», которые являются обобщением системы автоматов, изучавшейся в [1]. Раздел 5 содержит описание алгоритма генерации полного набора тестов системы при выполнении гипотезы о связях.
В заключение намечаются направления дальнейших исследований. 2. Модель системы и композиция
В этом разделе мы повторим основные определения и утверждения из нашей предыдущей статьи [2].
Пусть задано некоторое конечное множество сообщений M, которое мы будем называть алфавитом (сообщений). Пустое множество 0 будем называть пустым сообщением, считать, что 0gM, и обозначать M0 =Mu{0}. Автомат в алфавитеM- это наборA=(M,I,J,S,T,sq), где I - конечное множество входов автомата, J - конечное множество выходов автомата, S - конечное множество состояний автомата, T с SxXxPxYxQxS - множество переходов автомата, где X = {x | x:I^M0} - множество стимулов, Y = {У I y:J^M0} - множество реакций,
P = 2 - семейство подмножеств входов (по ним принимаются сообщения), Q = 2 - семейство подмножеств выходов (по ним посылаются сообщения), sQ e S - начальное состояние, причём выполнены следующие условия:
1. входы и выходы не пересекаются: I п 3 = 0,
2. приниматься по входу и передаваться по выходу может только непустое
сообщение: х, р, у, q, $ еТ (VI ер х(1)^0& \rfeqуф^0,
что эквивалентно V(s, х, р, у, q, $ еТ (рсх-1(М) & qсy'1(M)). Очевидно, что из конечности множеств М, I, 3 и £ следует конечность множеств X, У, Р, Q, Т.
Для перехода а = • х, р, у, q, 0 состояние 5 будем называть пресостоянием перехода, а состояние t - постсостоянием, и будем обозначать 5а=5, ха=х, ра=р, уа=у, qa=q, ta=t. Для автомата А=(М,1,3,3,Т,в() будем обозначать 1Л=1, 3А=3, 8а=8, Та=Т, 5оа=5о, а такжеХа=Х, Уа=У, РА=Р, QA=Q. Пусть V - конечное множество автоматов в алфавите М. Без ограничения общности можно считать, что входы, выходы и состояния автоматов разные: VA,BеV 1Ап1В=0 & 1Ап3В=0 & 3Ап1В=0 & 3Ап3В=0 & 8АпБВ=0. Этого всегда можно добиться с помощью систематического переименования состояний, входов и выходов автоматов, в результате которого получаются автоматы изоморфные исходным.
Система автоматов - это набор Я = (М^,Е), где Е: ЕПот ~^Е1т - биекция, определяющая соединения, где ЕПот с3Я, Е1т с1Я, 3 = u{JA\AеV} -множество всех выходов всех автоматов, 1Я = u{IA\AеV} - множество всех входов всех автоматов. Для системы Я = (М, V,E) обозначим: VR=V, ЕЯ=Е. Определим функцию р:(1Яи3в)^¥, которая каждому входу или выходу системы Я ставит в соответствие автомат, которому этот вход или выход принадлежит, т.е. VAеV VzеIA^JA ср(2)=А. Будем говорить, что соединение (¡4) ведёт из автомата ср(]) в автомат р(1). Функция р зависит от системы автоматов, однако для сокращения записи везде, где подразумевается система Я, мы её не указываем в параметрах функции р. Если функция р применяется для другой системы ЯЛ#Я, мы будем писать рЯ-.
Вход I е1Я, для которого не определено соединение, т.е. 10Е1т, будем называть внешним входом системы, и выход ¡е3Я, для которого не определено соединение, т.е. ¡0ЕПот, будем называть внешним выходом системы. Системе Я = (М, V,E) соответствует ориентированный граф с помеченными дугами, вершинами которого являются автоматы из V, а дуга А^В существует и помечена соединением (¡4) тогда и только тогда, когда (¡,1)еЕ, р(])=А и р(1)=В. Такой граф обозначим через Og(Я). Если снять ориентацию дуг, то соответствующий неориентированный граф обозначим через ^(Я). Будем говорить, что автоматы А и В связаны в системе, если в графе ^(Я) существует (неориентированный) путь из А в В (возможно, пустой, если А=В). В противном случае разные автоматы А и В не связаны. Очевидно, что отношение связанности автоматов рефлексивно, симметрично и транзитивно, т.е. является отношением эквивалентности, которое разбивает множество автоматов V на классы эквивалентности, которые вместе с соединениями
между автоматами одного класса мы будем называть компонентами связности.
Соединение (j,i) eE будем называть петлёй, если это дуга-петля в графе Og(R), то есть cpj)=q>(i).
Для удобства будем считать, что каждое состояние каждого автомата в системе R=(M,V,E) является множеством, причём состояния разных автоматов в системе являются непересекающимися множествами: VA,BeV VsAeSA VsBeSB (A^B sAnsB=0). Если уже задана система, в которой это условие не выполнено, то можно преобразовать каждый автомат, заменив в нём каждое состояние s на синглетон {s}. Поскольку в системе автоматов состояния разных автоматов разные, то таким преобразованием будут получены автоматы изоморфные исходным, а для системы автоматов будет выполнено условие попарного непересечения множеств состояний автоматов. Введём способ сокращённой записи для преобразования функции с помощью уменьшения её домена: для произвольной функции f и произвольного множества N обозначим f/N =f\ {(z,f(z)) | zeNnDomf)}. Очевидно, что для произвольного множества N имеет место f/(NuNy) = (f/N)/Ns и для произвольной функции g такой, что Domf)nDom(g)=0 и NnDom(g)=0, имеет место (fug)/N = (f/N) ug. Будем считать, что операция "/" имеет тот же приоритет, что разность "\" и объединение "u" множеств. Как следствие, в выражениях над множествами, где используются только операции "/", "\" и "u", мы будем использовать бесскобочную запись и предполагать, что операции выполняются слева направо.
Логическую эквивалентность будем обозначать символом «~»: a~b = (a&b) v(—a&—b).
Композиция определяется по соединению (j,i) eE. Обозначим через A автомат, которому принадлежит выход j, т.е. A=q>(j), а через B автомат, которому принадлежит вход i, т.е. B=qy(i).
Композиция переходов по соединению. Для соединения (j,i) определим условие f(a,j,i,b) композиции двух переходов a и b и результат композиции a[j,i]b:
f(aj,i,b) =aeTA & beTB & (A=B =^a=b) &ya(j)=xb(i) & (jeqa ~ iepb),
f(a,j,i,b): a[j,i]b =(sausb, XaUXi/{i}, paupb\{i}, yauyb/{j}, qauqb\{j}, taUtb).
Заметим, что если A =B, то
f(aj,i,a) =aeTA &yaj)=xa(i) & (jeqa ~ iepa),
f(a,j,i,a): a[,i]a = (sa, Xa/{i}, pj{i}, ya/{j}, qa\{j}, tj.
Композиция переходов естественным образом распространяется на композицию множеств переходов, определяемую как множество попарных
композиций переходов. Для соединения (¡, I) определим композицию множеств переходов О и И: ОЦ,1]И = {аЦ,1]Ь\аеО & Ь еН &/(а,],1,Ь)}. Композиция автоматов по соединению.
Для множества переходов Т обозначим множество пре- и постсостояний этих переходов: States(T) = {$а\аеТ}и{^\аеТ}. Для соединения (¡,1) определим композицию автоматов А и В:
АЦ,1]В =(М, 1а^1В\{'}, ЗАЛ {saA<JSoв}^States(TA[¡,i]Tв), ТА[],1]ТВ, 5ОА^ОВ). Композиция системы по соединению. Для системы Я и соединения (¡,1) определим Я[],1] =(М, У\{А,В}и{А[],1]В}, ЕЩ,1)}).
В [2] доказано, что композиция автоматов и системы определены корректно, т.е. композиция автоматов удовлетворяет условиям, налагаемым на автомат (теорема 1 в [2]), а композиция системы удовлетворяет условиям, налагаемым на систему (теорема 2 в [2]).
Последовательностью соединений для системы Я = (М, V,E) назовём последовательность 2 соединений из Е, в которой каждое соединение встречается не более одного раза, т.е. 2:[1..\2\]^Е является инъекцией. Определим композицию системы Я по последовательности 2 как Я[2] = Я[2(1)][2(2)]...[2(\2\)], если 2 не пусто, и Я[2] =Я, если 2 пусто.
Последовательность соединений, являющуюся биекцией, т.е. содержащую каждое соединение из Е, будем называть последовательность всех соединений и обозначать 2^. Очевидно, что в системе Я[2А] нет соединений, т.е. Ещ2А]=0, т.е. все входы и выходы автоматов являются внешними. Если в системе Я были автоматы, которые не связаны друг с другом, то в Я[2А] окажется несколько автоматов, соответствующих компонентам связности в Я, и все эти автоматы также не связаны друг с другом.
В [2] доказана ассоциативность композиции переходов (лемма 1 в [2]), автоматов (лемма 2 в [2]) и системы (лемма 3 в [2]), т.е. независимость результата композиции по двум соединениям (¡,1)еЕ и (1,к)еЕ от порядка композиции: сначала по (¡,1), а потом по (1,к), или, наоборот, сначала по (1,к), а потом по (¡,1). Как следствие, композиция системы Я по всем её соединениям не зависит от порядка композиции (теорема 3 в [2]): для любых двух последовательностей всех соединений 2А и 2АУ имеет место Я[2А] = Я[2АУ]. Ассоциативность важна для того, чтобы работа системы зависела только от множества её автоматов и соединений и не зависела от какого-либо упорядочивания этих множеств.
3. Вполне определённость и детерминизм
В композиции, которая определена выше, нет «асинхронных» переходов, все переходы «синхронные»: переход в каждом автомате выполняется одновременно с переходами в автоматах, связанных с ним по соединениям.
157
Это означает, что если какой-то автомат «стоит», т.е. в текущем своем состоянии не может выполнить никакого перехода, то «стоят» все автоматы из того же компонента связности, и это «стояние» продолжается бесконечно до рестарта системы. Это ситуация тупика (deadlock).
Тупик возникает из-за несогласованности требований автоматов, связанных соединением. Эти требования определяются условиями композиции переходов a[j,i]b: 1) ya(j)=xb(i) и 2) jeqa ~ iepb. Для того чтобы тупик был невозможен из-за нарушения условия 1, достаточно потребовать, чтобы либо A) в каждом автомате в каждом состоянии был определен переход по каждому стимулу x, либо B) в каждом автомате в каждом состоянии был определен переход по каждой реакции y. Для того чтобы тупик был невозможен из-за нарушения условия 2, достаточно потребовать, чтобы либо A) в каждом автомате в каждом состоянии для каждой реакции y был определен переход с каждым возможным параметром q, определяющим по какому выходу j сообщение y(j) передаётся, а по какому нет, либо B) в каждом автомате в каждом состоянии для каждого стимула x был определен переход с каждым параметром p, определяющим по какому входу i сообщение x(i) принимается, а по какому нет. Мы выбираем варианты A для обоих условий, что формализовано в определении вполне определенного автомата. Автомат A=(M,I,J,S,T,sq) будем называть определённым по всем стимулам, если в каждом состоянии есть переход по каждому стимулу:
1. VseS Vx eX3a eT sa=s & xa=x,
Автомат A=(M,I,J,S,T,sq) будем называть вполне определенным, если он определенный по всем стимулам и есть переходы по всем возможным q:
2. VaeT VqCy^M) 3a'eT sa=sa & Xa=Xa & pa=pa & ya=ya & qa=q'. Вместо условий 1 и 2 можно использовать правила умолчания, если в определении автомата указывать подмножество T явных переходов, и дополнять его до множества T всех переходов согласно правилам умолчания:
1) Если T не содержит явного перехода в некотором состоянии по некоторому стимулу, то это означает, что такой переход определён неявно без приёма и выдачи сообщений и без изменения состояния.
2) Если в T есть переход (s, x, p, y, q, t), но для некоторого qscy''(M) нет перехода вида (s, x, p, y, q\ f), то это означает, что такой переход определён неявно без изменения состояния (t'=t).
Формально это означает:
T = T* u{(s, x, 0, Jx{А}, 0, s) | seS & xeX & Vp,y,q,t (s,x,p,y,q,t) gT*} u{(s,x,p,y,q\s)I3q,t (s,x,p,y,q,t) eT & qscy~'(M) & Vf (s,x,p,y,q\f) gT}. В некотором смысле неявный переход вида (s, x, 0, Jx{A}, 0, s) моделирует отсутствие перехода, поскольку состояние автомата не меняется, сообщения не принимаются и не передаются.
Заметим, что, если в определении автомата используются правила умолчания, то композиция автоматов должна определяться через композицию не только явных, но и неявных переходов. Это показано в примере на Рис. 1.
A = ({m}, {k}, {j}, {sao}, t'a, {sao,sai}}
Ta=T*a=((sao,{(к,Л)},0,{а,Л)},0,sAo), (sAo,{(k,m)},{к},{(j,A)},0,sa1)} B = ({m}, {i}, 0 {sbo}, t*b, sbo}
T*b=0, Tb={(sbo,{(ía)},0,0,0,Sbo), (sBo,{(i,m)},0,0,0,SBo)}
Taü,í]tb = {(sAo^SBo,{(k,A)},000SAoUSBc), (sAoUSBa{(k,m)},{k},0,0,SA1usBc)} =
TA[j,i]B
T A[j,i]T B = 0, а правила умолчания добавляют множество переходов:
{(sAOusBO,{(k,A)},000sAOusBO), (sAOusBO,{(k,m)},0,0,0,sAOusBO)} #ТА[и]в
Рис. 1. Композиция и неявные переходы Fig 1. Composition and implicit transitions
В этом примере автомат B не имеет явных переходов, поэтому все его переходы неявные и являются петлями в начальном состоянии sbo. Из-за этого композиция T A[j,i]T B множеств явных переходов пуста, а после её пополнения по правилам умолчания все добавляемые переходы будут петлями в начальном состоянии saousbo. В то же время композиция TA[j,i]TB множеств всех переходов (как явных, так и неявных) не требует пополнения по правилам умолчания, но содержит переход по стимулу x={(k,m)}, который ведёт в состояние sa1usbo отличное от начального.
Для целей тестирования мы ограничимся исследованием детерминированных автоматов. Детерминированность будет означать, что каждый автомат в системе в своём текущем состоянии может выполнить не более одного перехода. При условии вполне определенности будет ровно один переход. Для детерминизма, прежде всего, нужно, чтобы в каждом состоянии автомата каждый стимул x однозначно определял параметр p, то есть по какому входу i сообщение x(i) принимается, а по какому нет. Стимул определяется сообщениями на входах автомата, а они, в свою очередь, определяются автоматами, посылающими сообщения на входы данного автомата, то есть автоматами, выходы которых соединены со входами данного автомата. Кроме того, стимул x однозначно определяет реакцию y. При этом параметр q,
определяющий по какому выходу j сообщение y(j) передаётся, а по какому нет, может выбираться любой, но зато однозначно определяется автоматами, принимающими сообщения с выходов данного автомата, то есть автоматами, входы которых соединены с выходами данного автомата. Наконец, постсостояние t должно быть единственным, если определены остальные параметры перехода: s, x, p, y и q. Эти требования формализованы ниже в определении детерминированного автомата.
Автомат A=(M,I,J,S,T,Sq) будем называть детерминированным, если выполнены условия:
1. Состояние s и стимул x однозначно определяют приём сообщений p и реакцию y:
Va,b eTa (sa=sb & xa=xb pa=pb &Уа=Уъ).
2. Одинаково помеченные переходы, ведущие из одного состояния, совпадают, т.е. ведут в одно постсостояние:
Va,b eTa (Sa=Sb & Xa=Xb & pa=pb & ya=yb & qa=qb ta=tb). Заметим, что если выполнено условие 1, условие 2 можно переписать короче:
Va,b eTa (Sa=Sb & Xa=Xb & qa=qb ^ ta=tb). В то же время детерминированность каждого автомата системы не гарантирует детерминированность системы: без дополнительных условий автоматы в некотором цикле соединений могут выполнять либо один, либо другой набор переходов, выбор между которыми недетерминирован. Выяснению достаточных условий детерминизма системы как раз и посвящена основная часть данной статьи. Пусть задана система автоматов R=(M, V,E). Лемма 1 о композиции разных автоматов:
Композиция различных вполне определённых и детерминированных автоматов вполне определённая и детерминированная.
Доказательство: Пусть автоматы A,BeV вполне определённые, детерминированные и различные A^B, а соединение (j,i)EE ведёт из A в B. Надо доказать, что автомат A[j,i]B вполне определённый и детерминированный.
1. Докажем, что автомат A[j,i]B вполне определённый.
1.1. Докажем выполнение 1-го условия вполне определённости (определенность по всем стимулам):
Vs ESA[j,i]B Vx EXA[j,i]B ETA[j,i]B sc=s & xc=x.
Пусть s eSa[j,i]B и x EXA[j,i]B. Тогда найдутся такие состояния sA eSa и sB eSb, что s=sAusB. Поскольку Dom(x)=IA[ji]B=IAuIB\{i} и iElB, стимул x может быть представлен в виде объединения непересекающихся по доменам отображений x=xAuxB, где Dom(xA)=IA и Dom(xB)=IB\{i}. Поскольку автомат A вполне определённый, по условию 1 в нём есть переход по каждому стимулу в каждом состоянии. Следовательно, имеется переход a
в состоянии sA по стимулу xA, т.е. sa=sA и xa=xA. Объединение x'B=xBu{(i,ya(j))} является стимулом вполне определённого автомата B, поэтому по условию 1 имеется переход b в состоянии sB по стимулу x'B, т.е. sb=sB и xb=xsB. Поскольку автомат A вполне определённый, по условию 2 в нём имеются переходы по всем q, следовательно, найдётся в состоянии sa такой переход a', что sa-=sa, xa=xa и jeqa- ~ iepb. Тогда f(a\j,i,b)=true. Следовательно, в автомате A[j,i]B имеется в состоянии sa usb переход c=ay[j,i]b по стимулу xa-uxb/{i}. Поскольку s=sAusB, sa=sA, sa-=sa, sb=sB, имеем s= sa-usb=s. Поскольку x=xAuxB, x*B=xBu{(i,yaj))}, xb=x'B, xa=xA, xa'=xa, имеем xi:= xauxb/{i}=x. Тем самым, в автомате A[j,i]B имеется в состоянии s переход c по стимулу x, что и требовалось доказать.
1.2. Докажем выполнение 2-го условия вполне определённости:
VceTA[j,i]B Vq^cyj'M) 3ts (sa xa pa ya q\ О eTA[j,i]B.
Пусть ceTA[ji]B и qscyc~'(M). По определению композиции переход c является композицией двух переходов c=a[j,i]b, где aeTA и beTB. Тогда yc=yauyb\{j}. Поскольку Dom(ya)=JA и Dom(yb)=JB, а qos^M), множество q~ можно представить в виде объединения двух множеств qs=qAuqB, где qAcya~1(M)\{j} и qBcyb'1(M). Обозначим qsA=qA, если igpb, и q A=qAu{j}, если iepb. Поскольку автоматы A и B вполне определённые по условию 2 найдутся такие состояния tAeSA и tBeSB, что a=(s a>xa,pa,ya> qSA,tA)eTA и bs=(sb,xb,pb,yb,qB,tB) eTb. Имеем
ya'(j)=ya(j)=xb(i)=xb'(i) и jeqa- ~ jeq'A ~ iepb ~ iepb-. Следовательно, f(a\j,i,b*)=true. Также имеем qy=qAuqB=qyAuqB\{j}. Поэтому, обозначая c =ay[j,i]b\ имеем сУ=(sc,xc,pc,yc,q\tAutB) eTA[)-ijB, т.е. в композиции нашлось такое состояние t"=tAutB, что (sc, xc, pc, yc, q', t)eTAjjj]B, что и требовалось доказать.
2. Докажем, что автомат A [j, i]B детерминированный .
По определению композиции автоматов переход в автомате A[j,i]B получается в результате композиции двух переходов в автоматах A и B. Пусть a,a*'eTA, b,bseTB и переход a компонуется с переходом b, а переход as - с переходом b', т.е. f(a,j,i,b)=f(a\j,i,b*)=true. Докажем выполнение условий детерминизма для переходов a[j,i]b и ay[j,i]b\ По определению композиции переходов для a,a~eTA, b,bseTB иA^B имеем: f(a,j,i,b) ^ya(j)=xb(i) & (jeqa ~ iepb), f(a\j,i,bj =^ya-(j)=xb-(i) & (jeqa-~ iepb),
a[j,i]b = (saUsb, xaUxb/{i}, paUpb\{i}, yaUy^{j}, qaUqb\{j}, taUtb) и a [j,i]b ' = (sa-usb-, xa-uxb-/{i}, pa'Upb-\{i}, ya'Uyb/{j}, qa Uqb \{j}, ta'Utb'). Пусть sausb=sa-usb- и xauxb/{i}=xa-uxb/{i}.
2.1. Докажем выполнение 1 -го условия детерминизма:
Pa^Pb\(i}=Pa^Pb:\(i} ИУа^Уь/Ц}=УаWb/(j}•
AjB влечёт sa-nsb=sansb-=0. Поэтому, sausb=sa-usb- влечёт sa=sa- и sb=sb-. AjB влечёт IAnIB=0, что влечёт xa-nxb=xanxb-=0. Также ieIB. Поэтому xauxb/(i}=xa-uxb/(i} влечёт xa=xa- и xb/(i}=xb/(i}. По 1-ому условию детерминизма для A из sa=sa- и xa=xa- следует ya=ya- и pa=pa-. Поскольку ya(j)=xb(i) и ya-(j)=xb(i), а ya=ya- влечёт ya(j)=ya-(j), имеем xb(i)=xb(i). А тогда, поскольку xb/(i}=xb/(i}, имеем xb=xb-. По 1-ому условию детерминизма для B из sb=sb- и xb=xb- следует yb=yb- и pb=pb-. Итак, sa=sa-, Sb=Sb-, xa=xa-, xb=xb', pa=pa, pb=pb~, ya=ya\ yb=yb'. А тогда pc^upb\(i}=pa-upb\(i} иya^4yb/(j}=ya-4yb-/(j}, что и требовалось доказать. 2.2. Пусть также qauqb/(j}=qa-uqb/(j}. Докажем выполнение 2-го условия детерминизма: tautb=ta-utb-.
По доказанному Sa=Sa~, Sb=Sb-, xa=xa , xb=xb , pa =pa', pb=pb , ya=ya~, yb=yb: AjB влечёт JAnJB=0, что влечёт qa-nqb=qanqb= 0. Также j eJA. Поэтому qa^qb/fthqa-^qb/ft} влечёт qa\(j}=qa-\(j} и qb=qv Поскольку jeqa ~ iepb и jeqa- ~ iepb-, а pb=pb-, имеем jeqa ~ jeqa-. А поскольку qa\(j}=qa-\(j}, имеем qa=qa-. Итак, Sa=Sa-, Sb=SV, xa=xa-, xb=xb-, pa=pa-, pb=pb, Уа=Уа, yb=yb-, qa=qa-, qb=qb-. А тогда по 2-ому условию детерминизма для A и для B имеем ta=ta- и tb=tb-. А тогда tautb=ta-utb-, что и требовалось доказать. Лемма 1 доказана.
Пару (k,/) будем называть контактом внутри автомата A, если k вход, а / выход автомата A: /eJA & keIA. Контакт (к,/) будем называть свободным и обозначать к # /, если сообщение на выходе / не зависит от сообщения на входе к:
к# / =3AeV/eJA & keIA & Va,b eTA (sa=sb & xt/(k}=x^(k} ya(/)=yb(/)).
Очевидно, что свободность контакта внутри автомата является свойством самого этого автомата независимо от того, в какую систему он входит. Однако принадлежность выхода и входа тому или иному автомату зависит от системы и меняется при композиции системы, поскольку меняется множество автоматов системы. Если /eJA, keIA и выполняется композиция автоматов A[j,i]B или B[j,i]A, то выход / остаётся в системе, только если /jj, вход k остаётся в системе, только если kji. Кроме того, если /¿j и kji, то после композиции выход / и вход k будут принадлежать уже другому, композиционному автомату A[j,i]B или B[j,i]A. Поэтому, если речь идёт о системе R* отличной от подразумеваемой системы R, мы в обозначении будем указывать систему в индексе: k #R /. Лемма 2 о композиции по петле:
Если автомат вполне определённый и детерминированный, внутри автомата контакт i # j и в системе есть соединение-петля (j,i), то композиция этого автомата по этому соединению вполне определённая и детерминированная.
Доказательство: Пусть соединение (j,i)eE является петлёй, т.е. <p(j) = q>(i),
контакт i # j, и автомат A=q>(j) вполне определённый и детерминированный.
1. Докажем, что автомат A[j,i]A вполне определённый.
1.1. Докажем выполнение 1-го условия вполне определённости (определенность по всем стимулам):
VseSA[j,i]A VxeXA[j,i]A 3ceTA[j,i]A sc=s & xc=x.
Пусть seSAj,i]A и xeXAji]A. Тогда seSA. Поскольку Dom(x)=IA/j,ijA=IA\{i}, для любого сообщения meMA объединение xy=xu{(i,m)} является стимулом для автомата A. Поскольку автомат A вполне определённый, по условию 1 в нём есть переход по каждому стимулу в каждом состоянии. Следовательно, имеется переход a в состоянии s по стимулу x', т.е. sa=s и xa=x\ Тогда x"=xu{(i,ya(j))} тоже является стимулом для автомата A. Поскольку автомат A вполне определённый, по условию 1 в нём есть переход as в состоянии s по стимулу x'', т.е. sa=s и xa=x*'\ Очевидно, что xa'(i)=ya(j) и xa/{i}=xl/{i}. А тогда, поскольку i#j, имеем xc^'(i)=ya(j)=ya'(j), что влечёт xa'(i)=ya'(j). Поскольку автомат A вполне определённый, по условию 2 в нём имеются переходы по всем q, следовательно, найдётся в состоянии s переход a"=(sa, xa', pa', ya', q^-, ta'), где q^-\{i}=qa'\{i} и jeqa'' ~ iepa~. Тогда f(a",j,i,a")=true. Следовательно, в автомате A[j,i]A имеется в состоянии s переход c=a"[j,i]a'' по стимулу xa/{i}. Поскольку sa''=sa'=s, имеем s^s. Поскольку xa~=xa=x"=xu{(i,yaj))}, имеем xc= xa /{i}=x. Тем самым, в автомате A[j,i]A имеется в состоянии s переход c по стимулу x, что и требовалось доказать.
1.2. Докажем выполнение 2-го условия вполне определённости: VceTADii]A Vq^cyj'M) 3ts (sa xa pa y, q\ ' eTAjjA.
Пусть ceTA[j:i]A и qscyc~'(M). По определению композиции переход c является композицией одного перехода c=a[j,i]a, где aeTA. Тогда xa(i)=ya(j), jeqa ~ iepa и yc=ya\{j}, sc=sa. Обозначим q'=q', если igpa, и q"=q"u{j}, если iepa. Поскольку автомат A вполне определённый, по условию 2 найдется переход a'=(sa xa, pa, ya, q'',ta)eTA. Имеем yaW=ya(j)=xa(i)=xa<i) и jeqa' ~ j eq" ~ iepa ~ iepa: Следовательно, f(a\j,i,aj=true. Также имеем q=q'\{j}=qa\{j}. Поэтому, обозначая c*=ay[j,i]a\ имеем eT^^, т.е. в композиции нашлось
такое состояние f=ta', что (sc, xc, pc, yc, q', tjeTAj-j]B, что и требовалось доказать.
2. Докажем, что автомат A[j,i]A детерминированный.
По определению композиции автоматов переход в автомате A[j,i]A получается в результате композиции одного перехода в автомате A . Пусть a,beTA и каждый из переходов a и b компонуется сам с собой, т.е. f(a,j,i,a)=f(b,j,i,b)=true. Надо доказать выполнение обоих условий
детерминизма для переходов a[j,i]a и b[j,i]b. По определению композиции
переходов для a,beTA имеем:
f(a,j,i,a) ^ya(j)=xa(i) & (jeqa ~ iepa),
f(bj,i,b) =>yb(j)=xb(i) & (jeqb ~ iepb),
a[j,i]a = (Sa, xj{i}, pa\{i}, yj{j}, qa\{j}, ta) и
b[j,i]b = (Sb, xt/{i}, pb\{i}, yi/{j}, qb\{j}, Пусть Sa=Sb и x^{i}=xi/{i}.
2.1. Докажем выполнение 1 -го условия детерминизма: pa\{i}=pb\{i} иyc/{j}=yb/{j}.
Поскольку i # j, из Sa=Sb и xj{i}=xb/{i} следует ya(j)=yb(j). А тогда, поскольку ya(j)=xa(i) и yb(j)=xb(i), имеем xa(i)=xb(i). Отсюда, учитывая, что xa/{i}=xb/{i}, имеем xa=xb. Из sa=sb и xa=xb по 1-ому условию детерминизма для автомата A имеем ya=yb и pa=pb. Итак, sa=sb, xa=xb, pa=pb, ya=yb. а тогда pa\{i}=pb\{i} и yJ{j}=yb/{}, что и требовалось доказать.
2.2. Пусть также qa\{j}=qb\{j}. Докажем выполнение 2-го условия детерминизма: ta=tb.
По доказанному имеем sa=sb, xa=xb, pa=pb, ya=yb. Поскольку jeqa ~ iepa и jeqb ~ iepb, а pa=pb, имеем jeqa ~ jeqb. А поскольку qa\{j}=qb\{j}, имеем qa=qb. Итак, Sa=Sb, xa=xb, pa=pb, ya=yb, qa=qb. А тогда по 2-ому условию детерминизма для автомата A имеем ta=tb, что и требовалось доказать. Лемма 2 доказана.
Лемма 3 о контакте внутри «постороннего» автомата: При композиции системы R по соединению (j, i) eE сохраняется свободность контактов внутри любого автомата C, который не участвует в композиции, т.е. Cjp(j) и Cjp(i). Доказательство: Пусть (j,i)eE, CeV, Cpj), Cjpp(i), leJC, keIC и k# l. После композиции CeVj], leJC, keIC и, поскольку свободность контактов внутри автомата является свойством самого этого автомата независимо от системы, в системе R[j,i] сохраняется свободность контакта к #Rjti] l. Лемма 3 доказана.
Лемма 4 о контакте в композиции разных автоматов: При композиции различных детерминированных автоматов по соединению (j,i) eE сохраняется свободность контакта (k,l), где l^j и k#i.
Доказательство: Пусть A=p(j), B=p(i) и A jB. Пусть также автомат CeV, IeJc, keIC, ljj, kj и к # l. Надо доказать, что к #R[]-iij l. Если CjA и CjB, то по лемме 3 k#Rj,i] l. Рассмотрим остальные случаи (Рис. 2): 1) C=AjB, 2) C=BjA. Для этих случаев рассмотрим два перехода в композиции, которые получаются как композиции двух пар переходов a,b и a,b \ где a,a eTa и b,b' eTB: f(a,j,i,b) ^ya(j)=xb(i) & (jeqa ~ iepb), f(a,j,i,b) ^ya-(j)=xb-(i) & (jeqa-~ iepb),
a[j,i]b = (SaUSb, xa^Kb/{i}, pa4>b\{i}, ya^Sb/lj}, qa^lb\{j}, ta^tb) и
а0№ = Ха-^ХЬ-/{1}, ра ирь \{1}, уа-иуЬ-/Ц}, Ца^ЧъЩ}' ¡а^к)
такие, что и хаихь/{1}/{к} = хаихь/{1}/{к}.
Надо доказать, что (УаЧУь/{]})(1)=(Уа-ЧУь-/{1'})(1).
Л^Б влечёт ^•а-т,ь=&,ат,ь-=0. Поэтому "аи$ь="а-^"ь- влечёт &"а=&'а- и
1) С=А 2) С=В
Рис. 2. Свободность контакта при композиции разных автоматов Fig. 2. Free contact with a composition of different machines
1. С=Л^Б.
Поскольку IAnIB=0, keIA, ieIB, имеем xauxb/{i}/{k}=(xc/{k})u(xb/(i}). Аналогично, xa-uxb/{i}/{k}=(xa/(k})u(xb/{i}).
Следовательно, поскольку xauxb/(i}/(k}=xauxb/{i}/{k}, имеем
(xa/(k}) u(xb/(i})=(xa/(k}) u(xb/(i}).
Отсюда, поскольку IA^IB=0, имеем xc/(k}=xa/(k}.
Поскольку Ja^Jb=0, ¡eJa, j eJa, l^j, имеем (ya4yb/(j})(l)=(ya/(j})(l)=ya(l). Аналогично, (ya-uyb-/(j})(l)=ya-(l).
Поскольку k# l, из Sa=Sa- и xa/(k}=xa/(k} следуетya(l)=ya~(l)-Следовательно, (yauyi/(j})(l)=(ya uyi^/(j})(l), что и требовалось доказать.
2. С=Б*Л.
Поскольку IA^IB=0, keIB и i eIb, имеем xauxb/(i}/(k}=xau(xb/{i}/{k}). Аналогично xa • uxb /{i}/(k}=xa • u(xb /{i}/(k}).
Следовательно, поскольку xauxb/(i}/(k}=xauxb/{i}/{k}, имеем xa u(xb/{i}/{k})=xa' Ufa /{i}/{k}).
Отсюда, поскольку IA^IB=0, имеем xa=xa- и xb/(i}/(k}=xb/{i}/{k}. Поскольку автомат Л детерминированный, из sa=sa• и xa=xa• следует ya=ya-. А тогда, поскольку ya(j)=xb(i) иya-(j)=xb-(i), имеем xb(i)=xb(i). Отсюда, поскольку xb/(i}/(k}=xb/{i}/{k}, имеем xb/(k}=xb/(k}. Поскольку JAnJB=0, leJB иjeJA, имеем (yauyb/(j})(l)=yb(l). Аналогично (ya~4yb-/{j})(l)=yb-(l).
Поскольку k# l, из sb=sb• и xb/(k}=xb/(k} следуетyb(l)=yb(l). Следовательно, (yauyb/(j})(l)=(ya-uyb/{j})(l), что и требовалось доказать. Лемма 4 доказана.
Будем говорить, что соединение (j,i) смежно с соединением (j\i\), если в графе Og(R), дуга (j,i) смежна с дугой (j\is), т.е. вход первого соединения и выход второго соединения образуют контакт (принадлежат одному и тому же автомату): p(i)=p>(js). Маршрутом длины m в системе R назовём ориентированный маршрут длины m в графе Og(R), т.е. последовательность соединений Z=(jQ,i1),(j1,i2),...(jm-1,im), в которой каждое соединение, кроме последнего, смежно со следующим соединением: Vr=1..m-1 p(ir)=p(jr). Контакт (ir,jr) для r=1..m-1 будем называть контактом в маршруте Z. Маршрут будем называть путём, если в нём все соединения разные: Vr,ry=Q..m-1 (rj (jnir+1)j(jr',ir'+1)). Путь будем называть циклом, если p(im)=p(jQ), т.е. последнее соединение смежно с первым. В этом случае будем обозначать iQ=im и пару (iQ,jQ)=(im,jQ) также будем называть контактом в цикле Z. Цикл Z будем называть A-простым, если A=p(jQ) и Ajp(jr) для r=1..m-1. Если в цикле Z имеет место p(jr)=p(ir), то через Z[jr,ir] обозначим цикл (jr,ir+1),...(jf-1,if), если r < r\ и цикл (jr,ir+1),...(jm-1,im) (jQ,i1),...('r-1,ir), если r >r\ Цикл будем называть свободным, если в цикле есть свободный контакт, т.е. ir # jr для некоторого r=Q..m-1.
Лемма 5 о сохранении свободности циклов при композиции:
Если в системе R все автоматы вполне определённые и детерминированные, все циклы свободные, а (j,i) eE, то в системе R[j,i] все циклы свободные. Доказательство: Обозначим компонуемые автоматы A=pj) и B=p(i). Рассмотрим в R[j,i] цикл Z=(jQ,i1),...(jm-1,im). По определению композиции системы ER[ji]=E\{(j,i)}, поэтому все соединения из Z были и в системе R. Также по определению композиции системы VRjn]=V\{A,B}u{A[j,i]B}. Смежность соединений из Z может отсутствовать в системе R только в том случае, когда в R[j,i] в цикле Z есть контакт (k,l) внутри автомата A[j,i]B, но в системе R вход k и выход l относятся к разным автоматам: 1) A jB, keIB и leJA, или 2) A jB, keIA и l eJB. За исключением этого случая Z является циклом в R. 1. Z является циклом в R.
По условию леммы цикл Z в R свободный. Тогда в R в цикле Z существует хотя бы один свободный контакт. Покажем, что хотя бы для одного такого контакта k # l имеет место k #Rjjjj l.
1.1. A jB.
Пусть k # l контакт в R в цикле Z. Поскольку Z является циклом в R[j,i], а (j,i) 0ER[j i], имеем ljj и k ji. А тогда по лемме 4 k #Rjjjj l.
1.2. A=B и в R в цикле Z есть контакт k# l внутри автомата, отличного от A, т.е. kgIA и, следовательно, lgJA.
По лемме 3 k #R[)-iij l.
1.3. A=B ив R в цикле Z любой свободный контакт является контактом внутри автомата A.
Сначала докажем вспомогательное утверждение: В системе Я существует контакт а # Ь внутри автомата А в цикле 2, для которого / # Ь или а # ]. Так как все циклы в Я свободные, а в 2 свободный контакт может быть только внутри автомата А , существует контакт а # Ь внутри автомата А в цикле 2.
Если 2=(/0,11),...(/т-1,1т), то а=1г и Ь=]г для некоторого г=0..т-1. Последовательность 2"=(Ь =]п Iг+1),... (¡т-1, ¡т)(]0, ¡1),... (¡г-1,¡г=а), очевидно, тоже является циклом, в котором все соединения и контакты такие же, как в цикле 2.
Цикл 2У можно представить в виде конкатенации А-простых циклов: Ж = Т[Ь=11,к2] Т[12,к3]-... Т[1м,_2,К_1] Т[1м,_1,К=а] (Рис. 3). Выберем в Ж максимальный начальный отрезок Ж' = 2У[Ь=11,к2]\..-2У[1м,-1,км,=с] без свободных контактов. В цикле 2 для некоторого выхода ё существует контакт (с,ё), который по условию максимальности ЖУ свободный.
Рассмотрим цикл Ж'' = 2*[Ь=11,к2]\..-2*[1м,--1,км,-=с]<О,1), который получается из ЖУ добавлением соединения-петли (¡,1). В нём нет контактов (а,Ь) и (с,ё), но есть контакты (1,Ь) и (с,]). В цикле Ж" все контакты не внутри автомата А не свободные, поскольку эти контакты есть также в цикле 2' и, следовательно, в 2, а в 2 все контакты не внутри А не свободные. В цикле Ж'' внутри А все контакты, кроме, быть может, (1,Ь) и (с]) тоже не свободные по построению ЖУ и Ж '. Если бы вспомогательное утверждение было не верно, то, поскольку контакты а # Ь и с # ё, контакты (1,Ь) и (с,]) были бы не свободные. Но тогда в цикле Ж'' вообще не было бы свободных контактов, что противоречит тому, что в Я все циклы свободные. Следовательно, вспомогательное утверждение верно.
Теперь докажем основное утверждение пункта 1.3.
Поскольку А=В, соединение (¡,1) является петлёй в Я, и в ней есть единственный контакт (¡О). По условию леммы петля (как цикл) свободная, следовательно, / # ].
Поскольку к # I, по вспомогательному утверждению I # I или к # ].
Итак, мы имеем: к # I & I #] & (I # I vk #]). Докажем, что к I.
По определению композиции автоматов переход в автомате А[],1]А получается в
результате композиции одного перехода в автомате А. Пусть а,ЬеТА и каждый из
переходов а и Ь компонуется сам с собой, т.е./(а], ¡, а)=/(Ь,], 1,Ь)=1гие. По определению
композиции переходов для а,ЬеТА имеем:
/(а,],1,а) ^уаф=Ха(0 & (¡еда ~ ¡ера),
/(Ь,],1,Ь) ^Уъ(/)=Хъ(0 & О'едъ ~'ерь),
а[],1]а = ^а, Х</{1}, ра\{1}, Уа/Ц}, да\Ц}, Га) и
Ь0,ф = ^ь, ХЬ/{1}, РЬ\{1}, УЬ/{]}, дЬ\{]},
■■♦.контакт
-цикл
►■свободный контакт
W
a kw k2 кз
*о!з
'-2 О
kw-1
b =11 =/„, a to h k2
W'
•О I-
W"
i os^-p j
K-1 K-2 c=k*
lw-1
l,=b
■Ю
lw-1
d=L-
k«-i O-f-.......>T
c=kw•
-1
lw=d
Рис. 3. Свободность цикла при композиции по петле Fig. 3. Free cycle when the loop composition
Пусть Sa=Sb и xc/{i}/{k}=xb/{i}/{k}. Обозначим s=sa, x=xc/{i}/{k}. Тогда s=sb, x=x^{i}/{k}. Надо доказать, что (ya/{i})(l)=(yb/{i})(l). Используя обозначения, имеем
a = (s, xu{(i,xa(i))}u{(k,xa(k))}, P<o ya, qa, ta) и
b = (s, xu{(i,xb(i))}u{(k,xb(k))}, ph уь, qb, tb).
Поскольку в автомате определены переходы по всем стимулам, должны быть ещё два перехода:
c = (s, xu{(i,xa(i))}u{(k,xb(k))}, Pc, yc, qc, tc) и d = (s, xu{(i,xb(i))}u{(k,xa(k))}, Pd, yd, qd, td).
В переходах a и c стимулы отличаются только по входу к. А тогда, поскольку k # l, реакции на выходе l одинаковы для этих переходов: ya(l)=yc(l). В переходах b и d стимулы тоже отличаются только по входу к. Поэтому, если к # j, то yb(j)=yd(j).
В переходах a и d стимулы отличаются только по входу i. А тогда, поскольку i # j, реакции на выходе j одинаковы для этих переходов: ya(j)=yd(j). В переходах b и c стимулы тоже отличаются только по входу i. Поэтому, если i # l, то yb(l)=yc(l).
Теперь, если к # j, то ya(j)=yd(j) и yb(j)=yd(j). Тогда ya(j)=yb(j). А поскольку ya(j)=xa(i) и yb(j)=xb(i), имеем xa(i)=xb(i). Но тогда в переходах a и b
a
к
2
к
стимулы отличаются только по входу к. А поскольку к # I, имеем Уа(1)=УЬ(1). А это влечёт (у^{1})(1)=(у^{1})(1).
Если же I # I, то Уа(1)=Ус(1) и УЬ(1)=Ус(1). Тогда Уа(1)=УЬ(1). А это влечёт
У</Ш)=У/Ш)-
Следовательно, к #Я],г] I. Итак во всех трёх случаях мы доказали, что в Я в цикле 2 существует хотя бы один свободный контакт (к,1), который остаётся свободным после композиции к #Я],] I. А поскольку контакт (к,1) имеется в цикле 2 в Я[],1], цикл 2 свободный в Я[], ¡].
2. 2 не является циклом в Я, поскольку А тВВ, к е1В и I е1А.
Покажем, что любой контакт (к,1) внутри автомата А[],1]В такой, что ке1В и lеJA, свободный: к #Я[^] I (Рис. 4). Очевидно, к я и I
Рис. 4. Свободность контакта (k,l) в R[j,i] Fig. 4. Free contact (k, l) in R[j,i]
Рассмотрим два перехода в композиции:
f(a,j,i,b) ^ya(j)=xb(i) & (jeqa ~ iepb),
f(a\j,i,b) =^ya-(j)=xb-(i) & (jeqa-~ iepb),
a[j,i]b = (Sa^Sb, Xa^Xb/{i}, Pa4Pb\{i}, ya^O}, qa^bj taUt^ и
a[j,i]b" = (Sa-USb-, Xa-UXb-/{i}, PaUpV\{i}, ya4yb-/{j}, qa^lbMj}, ta'Utb) такие, что sausb=sa-usb- и xauxb/{i}/{k}=xa-uxb/{i}/{k}. Надо доказать, что (ya^yb/{j})(l)=(ya^yv/{j})(l).
Поскольку A jB, keIB и ieIB, из xauxl/{i}/{k}=xauxb/{i}/{k} следует xa=xa-. А тогда, поскольку автомат A детерминированный, ya(l)=ya-(l), что вместе
с JeJa и IeJa, влечёт (yaUyt/{j})(l) = (ya-Uyb-/{j})(l).
Следовательно, k #Rjti] l, а поскольку контакт (k,l) имеется в цикле Z в R[j,i], цикл Z свободный в R[j,i]. 3. Z не является циклом в R, поскольку A jB, k eIa и l eJb.
Очевидно, kji и ljj. Контакт (a,b) внутри автомата A[j,i]B будем называть AB-разрывом, если a eIa и b eJb, и BA-разрывом, если a eIb и b eJa. Цикл Z можно представить как конкатенацию путей без разрывов в каждом пути и с разрывами между путями: Z = Z1Z2...Zw. Для v=1..w через kv обозначим вход последнего соединения в Zv, а через lv обозначим выход первого соединения в Zv.
Тогда для v=1..w-1 должно быть pR_[j,i](kv)=pR[jii](lv+1)=A[j,i]B и контакт (kv,lv+1) является разрывом, и pR[j,i](kw) = pR[j,i](l1)=A[j,i]B и контакт (kw,l1) является разрывом. Так как в каждом пути Zv нет разрывов, он является путём в R.
Если в R[j,i] в цикле Z есть BA-разрыв (a,b), то по доказанному в п.2
a #
R[j,i]
b, следовательно, цикл Z свободный в R[j,i].
Если в каком-то из путей где у=1.м, есть контакт а # Ь, то, поскольку путь является также путём в Я[],1], должно быть и Ь^. А тогда по лемме 4 а Ь, следовательно, цикл I свободный в Я[],1]. Далее будем считать, что в Щ], 1] в цикле I есть только ^45-разрывы, и в каждом из путей где у=1..ч>, нет свободных контактов (Рис. 5).
i B
l
...►контакт в A или в B ■ ►контакт-разрыв
соединение
■путь
A
-Of
кГ
Oj^ к,':
^w
"v..
B
/I,
1
h
•4
hi'
Рис. 5. Цикл как конкатенация путей с разрывами между путями Fig. 5. The cycle as a concatenation of paths with breaks between paths
Для каждого v=1..w путь Zv вместе с соединением (j,i) образует в R цикл Z\ = Zv-(j,i). В цикле Z\ есть два контакта внутри автоматов A и B: контакт (kv,j) в автомате A и контакт (i,lv) в автомате B. Поскольку остальные контакты цикла Z\ являются контактами пути Zv, они не свободные. Поскольку все циклы в R свободные, цикл Z\ должен быть свободным, а тогда должно быть kv # j или i # lv.
Нам надо показать, что для некоторого v имеет место kv lv+1, если
v=1..w-1, или kw l1, если v=w.
Допустим для некоторого v=1..w имеет место kv # j.
Обозначим k=kv и l=lv+1, если v=1..w-1, или l=l1, если v=w. Имеем k # j. Надо показать, что к l. Рассмотрим два перехода в композиции:
f(a,j,i,b) ^ya(j)=xb(i) & (jeqa ~ iepb), f(a\j,i,b') =^ya-(j)=xb-(i) & (jeqa-~ iepb),
a[j,i]b = (sausb, xauxb/{ij, paupb\(ij, yauyt/{j}, qa^qb\{jj, tautb) и
a[j,i]b = (Sa'USy, Xa-UXb-/{i}, PaUPb\{i}, Уа^/Ш, qaUqb\{j}, ta-Utb)
такие, что sausb=sa-usb- и xauxb/{i}/{k}=xa-uxb-/{i}/{k}.
Достаточно показать, что (yauyb/{j})(l)=(ya-uyb-/{j})(l).
Поскольку A jB, keIA и ieIB, из xauxt/{i}/{k}=xa-uxb-/{i}/{k} следует
xj(k}=xa/{k} и xt/{i}=xb/{i}.
Поскольку k# j, из xl/{k}=xa-/{k} следуетya(j)=ya-(j), что влечёт xb(i)=xv(i). А это вместе с xb/{i}=xb-/{i} влечёт xb=xb-. Но тогда, поскольку автомат B детерминированный, Уь=Уь-, что влечёт (yauyb/{j})(l)=(ya-uyb-/{j})(l), поскольку A jB, j eJA и l eJB.
Теперь предположим, что для каждого v=1..w не верно, что kv # j. Тогда для каждого v=1..w имеет место i # lv.
Выберем любое v=1..w и обозначим l=lv и k=kv-1, если v=2..w, или k=kw, если v=1. Имеем i # l. Надо показать, что k #Rjjjj l. Рассмотрим два перехода в композиции:
f(a,j,i,b) ^ya(j)=xb(i) & (jeqa ~ iepb),
f(a ,j,i,b) =^ya-(j)=xb-(i) & (jeqa-~ iepb),
a[j,i]b = (sa^b, xa^xb/{i}, paUpb\{i}, yaUy^{j}, qaUbW, taUt^ и
a[j,i]b = (sa-usy, xa-^Cb-/{i}, paUpb\{i}, УаЧУг/Ц}, qaUqb\{j}, ta^b)
такие, что sausb=sa-usb- и xauxb/{i}/{k}=xa-uxb-/{i}/{k}.
Достаточно показать, что (yauyb/{j})(l)=(ya-uyb-/{j})(l).
Поскольку AjB, keIA и ieIB, из xauxt/{i}/{k}=xa-uxb-/{i}/{k} следует
xt/{i}=xb-/{i}.
Поскольку i # l, из xb/{i}=xb-/{i} следует yb(l)=yb-(l), что влечёт
(ya4yt/{j})(l)=(ya-uyb-/{j})(l), поскольку AjB, jeJA и l eJb. Лемма 5 доказана.
Теорема 1 о вполне определенности и детерминированности системы автоматов:
Если в системе R=(M,V,E) все автоматы вполне определенные и детерминированные, и все циклы соединений свободные, то система R[ZA], где ZA - последовательность всех соединений, состоит из вполне определенных детерминированных автоматов, не связанных друг с другом. При этом система R[ZA] не зависит от выбора последовательности ZA для одного и того же множества E.
Доказательство: Так как в системе R=(M,V,E) все автоматы вполне определенные и детерминированные и все соединения-петли (как циклы соединений) свободные, по леммам 1 и 2 в композиции R[j,i] для любого соединения (j,i) eE все автоматы тоже вполне определенные и детерминированные. Так как в системе R все автоматы вполне определенные и детерминированные, и все циклы свободные, по лемме 5 в композиции R[j,i]
все циклы тоже свободные. Таким образом, в системе R[j,i], как и в исходной системе R, все автоматы вполне определенные и детерминированные, и все циклы соединений свободные. Будем выполнять композицию до тех пор, пока в системе есть соединения. Так как число соединений в системе конечно, а при композиции оно уменьшается на 1, через конечное число композиций (равное числу соединений в R) получим систему R[ZA], в которой нет соединений, и которая состоит только из вполне определенных и детерминированных автоматов. По ассоциативности композиции (теорема 3 в [2]) система R[ZA] не зависит от выбора последовательности ZA для одного и того же множества E. Теорема 1 доказана.
4. Системы автоматов класса «вершины-дуги»
В нашей статье [1] система автоматов описывалась как граф, в вершинах которого находились автоматы, а дуги соответствовали каналам связи, через которые автоматы обменивались сообщениями. При этом дуга представляла собой очередь сообщений длины 1. Она моделировалась автоматом с одним входом и одним выходом. Переход в автомате (вершины или дуги) помечался только парой (x,y), где x - стимул, а y - реакция, в отличие от более общих (x,p,y,q) -переходов в модели, используемой в данной статье. Автоматы вершин и дуг были детерминированными, но, кроме того, в автомате дуги реакция (сообщение, выбираемое из начала очереди) зависела только от состояния автомата, т.е. не зависела от стимула (сообщения, помещаемого в конец очереди).
Для того чтобы интерпретировать автоматы из [1] в терминах данной статьи, выполним следующие преобразования:
1. Нам нужно заменить стимул x и реакцию y как частичные отображения на полные отображения x' и y', а также добавить параметры p и q. В каждом автомате каждый переход (s,x,y,t) заменяется на множество кратных переходов вида (s,x\p,y\q,t), где стимулы x и x' совпадают на домене x, т.е. V eDom(x) x(i)=xfi), p= Dom(x), реакции y и yy совпадают на домене y, а на выходах из его дополнения сообщения пустые, т.е. Vj eDom(y) y(')=y*(j и Vj0Dom(y) у()=Л, q= Dom(y).
2. Если после этого в автомате в некотором состоянии s нет перехода по некоторому стимулу x', то добавляется переход-петля по этому стимулу без приёма и выдачи сообщений: (s,x\0,Jx{Л},0,s).
3. Кроме этого, в автомате дуги (очередь длины 1) с входом i и выходом j добавляются переходы для любого стимула без приёма сообщений для случая, когда на дуге находится сообщение, которое не может быть передано: VmeM Vm*еЫЛ (m,(i,my),0,(j,m),0,m).
Легко видеть, что после такого преобразования автомат вершины определен по всем стимулам, а автомат дуги вполне определен. Если автоматы
детерминированы в смысле [1], то после преобразования они детерминированы в терминах данной статьи. Также в автомате дуги реакция зависит только от состояния (не зависит от стимула).
Однако для моделирования системы автоматов из [1] в терминах данной статьи мы не можем применять композицию, которая определена в данной статье (и в [2]). Дело в том, что в [1] предполагалась семантика с асинхронными переходами, когда один автомат «стоит» (не выполняет никакого перехода), а связанный с ним автомат может работать (выполнять переход). Это происходит тогда, когда автоматы некоторых дуг, выходящих из вершины, не принимают сообщения, посылаемые на эти дуги автоматом этой вершины. В этом случае автомат вершины «стоит», а автоматы выходящих дуг могут выполнять переходы, передавая находящиеся на них сообщения в автоматы вершины, в которые эти дуги входят. В данной статье (и в [2]), как указано в начале раздела 3, используется семантика без асинхронных переходов: переход в каждом автомате выполняется одновременно с переходами в автоматах, связанных с ним по соединениям, поэтому, когда один автомат «стоит», все связанные с ним автоматы тоже «стоят».
Для моделирования семантики с асинхронными переходами мы предложим специальную асинхронную композицию автомата вершины с автоматами всех выходящих дуг. Почему автомат вершины следует единовременно компоновать с автоматами сразу всех выходящих дуг? Причина этого в том, что в семантике статьи [1] автомат вершины выполняет переход, принимая сообщения со своих входов, только в том случае, когда удается передать по его выходам все непустые сообщения, описываемые реакцией перехода. Иными словами, в терминах (х,р,у,ф -переходов параметр q всегда был равен множеству тех выходов ], по которым передавалось непустое сообщение у(])^Л. Поэтому то, «стоит» автомат вершины или выполняет переход, зависит от состояния автоматов всех выходящих дуг.
Мы также обобщим понятие дуги так, чтобы автомат дуги мог моделировать не только очередь длины 1, но также очередь любой длины, очередь с приоритетами сообщений, стек и т.п. В самом общем виде дуга будет рассматриваться как автомат-посредник между автоматами вершин, но с одним важным ограничением: у автомата дуги должен быть только один вход. Заметим, что выходов в автомате дуги может быть несколько. Будем говорить, что система автоматов Я = (М, У,Е) относится к классу «вершины-дуги», если 1) множество V автоматов разбито на два подмножества: автоматы вершин и автоматы дуг; 2) автоматы вершин и дуг чередуются: каждое соединение ведёт либо из автомата вершины в автомат дуги, либо из автомата дуги в автомат вершины; 3) автоматы вершин определены по всем стимулам, а автоматы дуг вполне определены; 4) все автоматы детерминированные; 5) в автомате дуги реакция зависит только от состояния, т.е. не зависит от стимула, 6) автомат дуги имеет только один вход.
Асинхронная композиция автомата вершины с автоматами всех выходящих дуг.
Пусть в системе R = (M, V,E) класса «вершины-дуги» имеется автомат вершины A и автоматы выходящих дуг B1,...,Bn так, что каждое соединение (j,i), где jeJA, ведёт в некоторый из автоматов дуг, т.е. jjm=1..n такое, что ieIBm, и для каждого m=1..n найдётся такое соединение (l,k), что leJA и keIBm. Для m-ого (m=1..n) автомата дуги множество его входов, используемых в соединениях с автоматом вершины, равно Im = {ieIBm\jjeJA (j,i)eE}. Множество I входов композиции определим как множество всех входов автоматов-операндов, кроме тех, что используются в соединениях автомата вершины с автоматами дуг: I = IA u(IB1\I1) и... u(IBn\In). Множество J выходов композиции определим как множество всех выходов автоматов дуг: J = JB1 и... и JBn. Состояние композиции - это набор состояний автоматов-операндов s=(sA,s1,...,sn) eSAxSB1x...xSBn. Стимул композиции x:I^M^ Для данного композиционного состояния s и композиционного стимула x в автомате вершины выделяется его состояние sA и его стимул xA = x п (IAxMA). Поскольку автомат вершины определен по всем стимулам и детерминирован, пара (sA,xA) однозначно определяет множество переходов вида a=(sA,xA,pA,yA,qA,tA) eTA, отличающихся друг от друга только параметром qA и постсостоянием tA, однозначно определяемым остальными параметрами перехода. Реакция yA вместе с композиционным стимулом x однозначно определяют стимул для каждого m-го автомата дуги xm = (x п (IBmxMJ) и{(i,yA(j))\ieIm & (j,i) eE}. Поскольку автомат дуги вполне определен и детерминирован, пара (sm,xm) однозначно определяет в автомате дуги множество переходов вида am=(sm,xm,pm,ym,qm,tm) eTBm, отличающихся друг от друга только параметром qm, который пробегает все возможные значения, и постсостоянием tm, однозначно определяемым остальными параметрами перехода. Поскольку для каждого (j,i)eE, где ieIm, имеет место xm(i)=yA(j), переход a выполняется, если для каждого m=1..n выполняется остальная часть условия композиции перехода a с переходом am по соединению (j,i): jeqA ~ iepm.
Если эти условия выполнены для некоторого перехода a, т.е. для некоторого qA, то они, очевидно, не выполнены для остальных qA. Тогда определяется композиционный переход (s,x,p,y,q,t), где p = pA u(p1\I1) и... u(pn\In), y = y1 и... иyn, q = q1 и... иqn, t = (tA,th...,tJ.
Если эти условия не выполнены ни для какого перехода a, т.е. ни для какого qA, то автомат вершины не меняет состояние, не принимает и не передает сообщения, поэтому на входах автоматов дуг, соединенных с выходами автомата вершины, находятся пустые сообщения. Эти пустые сообщения вместе с композиционным стимулом x однозначно определяют стимул для каждого m-го автомата дуги xsm = (x n(IBmxMA>) и {(i^)\i eIm}. Поскольку автомат дуги вполне определен и детерминирован, пара (sm,x*'„) однозначно
определяет в автомате дуги множество переходов вида а т=(х т,р т,У т, д т, Г т), отличающихся друг от друга только параметром д'т, который пробегает все возможные значения, и постсостоянием Г'т, однозначно определяемым остальными параметрами перехода. В этом случае определяется композиционный переход &х,р\У\д\Г), где р' = (р^^О и... и(р\Ч„), У' = У^1 и... иуп, д = д*1 и... ид\,
V = ^дГь...^^. Этот композиционный переход как раз и моделирует асинхронные переходы в автоматах дуг, когда автомат вершины «стоит». Теорема 2 об асинхронной композиции автомата вершины с автоматами всех выходящих дуг:
В системе автоматов класса «вершины-дуги» асинхронная композиция автомата вершины с автоматами всех выходящих дуг вполне определена и детерминирована, а все её контакты свободные.
Доказательство: Определенность композиции по всем стимулам следует из определения композиции. Определенность композиции по всем д следует, кроме того, из вполне определенности автоматов дуг. Детерминированность композиции следует из определения композиции и детерминированности автоматов вершин и дуг. Поскольку реакция в автомате дуги зависит только от состояния дуги, а в композиции реакция состоит из реакций автоматов дуг, композиционная реакция зависит только от композиционного состояния, содержащего все состояния автоматов дуг. Тем самым, все контакты в композиции свободные. Теорема 2 доказана.
Поскольку в системе класса «вершины-дуги» автоматы вершин и дуг строго чередуются, и каждая дуга имеет только один вход, асинхронную композицию можно проводить до тех пор, пока остаются автоматы вершин. В конечном счете останутся только вполне определенные и детерминированные автоматы, полученные с помощью асинхронной композиции, все контакты которых свободные, а также автоматы внешних входных дуг, которые как и любые автоматы дуг, тоже вполне определенные и детерминированные, а все их контакты свободные. После этого мы уже можем использовать семантику без асинхронных переходов, применяя композицию, определенную в данной статье (и в [2]). После завершения такой композиции системы по теореме 1 гарантируется детерминизм системы класса «вершины-дуги». Возникает вопрос: а что делать, если дуга имеет несколько входов? Возможно ли соответствующее обобщение системы автоматов класса «вершины-дуги» в семантике с асинхронными переходами? Как было сказано выше, аксинхронная композиция должна компоновать автомат вершины с автоматами сразу всех выходящих из вершины дуг. Поэтому, если дуга имеет несколько входов, то её следует компоновать сразу со всеми вершинами, выходы которых соединены со входами этой дуги. В целом в асинхронной композиции должен участвовать двудольный подграф системы: все соединения в нем ведут из вершин в дуги, и подграф замкнут по выходящим
из вершин соединениям. Тем самым в асинхронной композиции может участвовать сразу несколько автоматов вершин, и некоторые из них могут «стоять».
В целом получается следующая процедура. Поскольку в автомате дуги реакция зависит только от её состояния, состояния автоматов всех дуг однозначно определяют сообщения на выходах автоматов всех дуг. Поскольку автоматы вершин и дуг чередуются, тем самым однозначно определены сообщения на входах автоматов всех вершин. Поскольку автомат вершины определен по всем стимулам и детерминирован, в каждом автомате вершины однозначно определяется параметр p и реакция у подмножества выполнимых переходов. Эти реакции однозначно определяют сообщения на выходах автоматов всех вершин. Поскольку автоматы вершин и дуг чередуются, тем самым однозначно определены сообщения на входах автоматов всех дуг. Поскольку автомат дуги определен по всем стимулам и детерминирован, в каждом автомате дуги однозначно определяется параметр p подмножества выполнимых переходов.
После этого по каждому соединению (j,i), ведущему из автомата вершины cp(j) в автомат дуги p(i), проверяется согласованность параметров p и q, т.е. проверяется, что jeq ~ iep. Если это не так, автомат вершины p(j) должен «стоять», но тогда меняются сообщения на его выходах и, соответственно, сообщения на входах дуг, с которыми эти выходы соединены: эти сообщения становятся пустыми. В этом случае требуется повторно «пересчитать» подмножества выполнимых переходов в автоматах дуг.
Если проверка согласованности параметров p и q по соединениям и «пересчет» подмножеств выполнимых переходов в автоматах дуг будут чередоваться, то это может привести к недетерминизму, т.е. результирующее состояние системы (как набор состояний всех автоматов) будет зависеть от того, в каком порядке проверяются соединения (пример на Рис. 6). Поэтому нужно сначала выполнить проверку всех соединений, определяя, какие автоматы вершин будут «стоять», а уже потом заново «пересчитывать» подмножества выполнимых переходов в автоматах дуг. Этот процесс может потребовать несколько итераций, но он гарантированно «сходится», поскольку на каждом шаге, кроме последнего, число «стоящих» автоматов вершин увеличивается, а общее число вершин конечно.
Получившаяся процедура асинхронной композиции достаточно сложная, а её семантика недостаточно «прозрачна». Это наводит на мысль попробовать разработать новую модель взаимодействия автоматов, которая совмещала бы в себе достоинства семантики с асинхронными переходами и семантики без асинхронных переходов.
Рис. 6. Пример недетерминизма Fig. 6. An example of nondeterminism
5. Тестирование
Если для системы Я=(ЫУ,Е) не делается никаких предположений о том, правильно ли работают автоматы системы из множества V и правильно ли (не меняющееся) множество соединений Е, то для тестирования системы тесты генерируются по композиции Я[1А]. Если композиция состоит из нескольких автоматов, то, поскольку эти автоматы не связаны между собой, то тесты можно генерировать для каждого автомата из VR[Z^] независимо: полный набор тестов системы совпадает с объединением полных наборов тестов для всех автоматов из VR[Z*]. Иными словами, каждый компонент связности системы Я тестируется отдельно и независимо от других компонентов связности, что естественно.
Как указывалось в нашей предыдущей статье [1], если в соединениях (множестве Е) нет ошибок (будем называть это гипотезой о связях), то есть множество соединений совпадает с заданным, то такое тестирование системы сводится к проверке правильности переходов каждого автомата из VR. Поскольку компонент тестируется как часть системы, не все переходы автомата компонента, которые можно проверить при автономном тестировании с прямым доступом к компоненту, можно проверить при тестировании системы. Поэтому речь идёт только о достижимых переходах
автоматов, то есть таких переходах, которые могут быть выполнены при работе автомата как части системы. С другой стороны, если нас интересует правильность работы системы в целом, то достаточно «правильности» только достижимых переходов.
Тест моделируется автоматом, выходы которого соединяются с внешними входами системы, а внешние выходы системы соединяются со входами теста. В результате получается замкнутая система, т.е. система без внешних входов и выходов. Автоматы такой системы, в том числе тест, работают синхронно: на каждом такте каждый автомат выполняет один переход.
В данном разделе предлагается алгоритм построения набора тестов, который является полным (проверяет все переходы автоматов компонентов, достижимые при работе этих компонентов в системе) при выполнении двух условий: 1) верна гипотеза о связях, 2) система детерминирована. Дополнительно этот алгоритм определяет недостижимые переходы автоматов компонентов. Предполагается, во-первых, что нам известно, каким должен быть автомат каждого компонента (задан граф переходов автомата с точностью до изоморфизма) и именно это должно проверяться при тестировании. Во-вторых, тестовая система может не только выполнять тест, посылая сообщения на внешние входы системы и принимая сообщения с внешних выходов системы, но и наблюдать как состояния автоматов системы, так и сообщения, передаваемые по соединениям между автоматами системы. Поскольку мы не налагаем никаких ограничений на связность графов переходов автоматов, вообще говоря, полный набор тестов содержит более одного теста. Это означает, что требуется рестарт системы при переходе от одного теста к другому: при рестарте происходит «подмена» одного теста другим.
Для решения этой задачи мы предлагаем использовать любой алгоритм генерации полного набора тестов для одного детерминированного автомата. Таких алгоритмов предложено довольно много, они базируются на построении набора маршрутов, покрывающих граф переходов автомата, достижимых из его начального состояния (смотри, например, [8]). В качестве такого автомата для наших целей выбирается каждый из автоматов композиционной системы R[ZA]. Понятно, что покрывая все достижимые переходы автомата A eVR[Z] мы покрываем все достижимые переходы всех автоматов из соответствующего компонента связности системы R, который обозначим V(AA). Однако такой набор тестов может оказаться сильно избыточным для решения нашей задачи: покрытие всех достижимых переходов всех автоматов из V(AA) не обязательно требует покрытия всех
.А
достижимых переходов автомата A .
Поэтому предлагается в процессе генерации полного набора тестов для автомата A применять процедуру фильтрации, которая будет отбрасывать «лишние» тесты. Эта процедура работает следующим образом. С самого начала создаётся пустое множество T генерируемого набора тестов и
множество Р непокрытых переходов автоматов из У(АЛ), которое сначала равно множеству всех переходов всех автоматов из У(АА). Когда генерируется очередной /-ый тест Т/ для автомата А , вычисляется множество Р/ переходов автоматов из У(АЛ), покрываемое этим тестом. Тесту соответствует маршрут 2 в автомате А . Каждому переходу маршрута 2 соответствует множество переходов всех автоматов из У(АА): по одному переходу на каждый автомат из У(АА). Объединение этих множеств для всех переходов из 2 и есть множество Р/. Далее алгоритм фильтрации проверяет, покрывает ли /-ый тест какой-либо новый, ещё не покрытый переход какого-либо автомата компонента. Если Р^Р=0, то никаких новых переходов /-ый тест не покрывает, и он отбрасывается. В противном случае тест добавляется к набору тестов Т := Т и {Т}, а из множества непокрытых переходов удаляются новые переходы Р := Р \ Р. После того как все тесты сгенерированы и отфильтрованы, получившееся множество Т является искомым полным набором тестов, а множество Р - множеством недостижимых переходов автоматов компонентов.
6. Заключение
В статье [1] в заключении были перечислены направления дальнейших исследований из семи пунктов. После статьи [2] и данной статьи остаются четыре пункта, которые мы здесь и перечислим.
1) Предложенный алгоритм фильтрации не обязательно даёт оптимальный полный набор тестов. Оптимальность может пониматься как минимальное число или минимальная суммарная длина тестовых последовательностей. Соответственно, возникает задача оптимизации, т.е. поиска оптимального набора, которая, вообще говоря, сводима к задаче о поиске минимального покрытия ([9], [10]).
2) При тестировании, как обычно, возникает задача «огрубления», когда проверяется не «всё подряд», а проверка делается выборочно. Это называют факторизацией тестирования [11]. Например, для проверки правильности реализации числовой функции домены её аргументов разбиваются на поддомены, и из каждого поддомена выбирается хотя бы одно число для проверки. В терминах рассматриваемой здесь задачи факторизация означает, что на переходах автомата компонента определяется отношение эквивалентности, и считается, что достаточно проверить хотя бы один переход из класса эквивалентности. Задача заключается в том, чтобы уметь находить «правильные» отношения эквивалентности, т.е. отношения, удовлетворяющие некоторым практическим потребностям.
6) В данной статье предлагается решение проблемы тестирования компонентов только детерминированной системы автоматов. Одним из направлений дальнейших исследований могло бы стать исследование проблемы недетерминизма. Более точно, ставится задача определить такие ограничения на недетерминизм системы и/или составляющих её автоматов,
которые позволяли бы выполнять полное тестирование за конечное время. Для автономного тестирования, когда автомат находится под непосредственным управлением теста (не в контексте окружающей его части системы), предложенные неплохие решения этой задачи ([12], [13], [14], [15]). 7) В данной статье предполагается, что известно, каким должен быть автомат каждого компонента: задан граф переходов автомата с точностью до изоморфизма. В более общем случае между автоматом компонента в реализации и автоматом компонента в спецификации задаётся то или иное отношение конформности, которое слабее изоморфизма: квази-редукция, симуляция и т.п. Это требует более сложного алгоритма тестирования. Если тестирование компонента автономное, т.е. не в контексте других компонентов системы и связующих их дуг, то возможно полное тестирование за конечное время конформности типа редукции или слабой симуляции ([4], [5], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22]). Для составной системы возникает проблема декомпозиции системных требований, называемая также проблемой несохранения конформности. Она заключается в том, что композиция реализаций компонентов, конформных спецификациям этих компонентов, в общем случае неконформна спецификации системы, в частности, композиции спецификаций компонентов. Этой проблеме посвящён ряд работ ([4], [6], [23]), но остаётся задача переосмысления предложенных решений для рассматриваемой в этой статье задачи тестирования компонентов системы при условии, что верна гипотеза о связях.
Список литературы
[1]. И.Б.Бурдонов, А.С.Косачев. Тестирование системы автоматов. Труды ИСП РАН, том 28(1), 2016 г. DOI: 10.15514/ISPRAS-2016-28(1)-7
[2]. И.Б.Бурдонов, А.С.Косачев. Система автоматов: композиция по графу связей. Труды ИСП РАН, том 28(1), 2016 г. DOI: 10.15514/ISPRAS-2016-28(1)-8
[3]. Revised Working Draft on "Framework: Formal Methods in Conformance Testing". JTC1/SC21/WG1/Project 54/1, ISO Interim Meeting, ITU-T on, Paris, 1995 г.
[4]. И.Б.Бурдонов, Косачев А.С., В.В.Кулямин. Теория соответствия для систем с блокировками и разрушением. «Физ-мат лит» Наука, Москва, 2008 г., 412 стр.
[5]. И.Б.Бурдонов. Теория конформности (функциональное тестирование программных систем на основе формальных моделей). LAP Lambert Academic Publishing, 2011 г., 428 стр.
[6]. И.Б.Бурдонов, А.С.Косачев. Пополнение спецификации для ioco. Программирование, 2011 г., №1, стр. 3-18.
[7]. А. Камкин, М. Чупилко. Обзор современных технологий имитационной верификации аппаратуры. Программирование, 2011 г., №3, стр. 42-49.
[8]. И.Б. Бурдонов, А.С. Косачев, В.В. Кулямин. Неизбыточные алгоритмы обхода ориентированных графов. Детерминированный случай. Программирование, 2003 г., №5, стр. 59-69.
[9]. Ананий В. Левитин. Алгоритмы: введение в разработку и анализ. М.: «Вильямс», 2006 г., стр. 160-163, ISBN 0-201-74395-7.
[10]. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ. 2-ое издание. М.: «Вильямс», 2006 г., стр. 456458, ISBN 0-07-013151-1.
[11]. Бурдонов И.Б., Косачев А.С., Кулямин В.В. Использование конечных автоматов для тестирования программ. Программирование. 2000 г., № 2, стр.12-28.
[12]. И.Б. Бурдонов, А.С. Косачев. Полное тестирование с открытым состоянием ограниченно недетерминированных систем. Программирование, 2009 г., №6, стр. 3-18.
[13]. И.Б.Бурдонов, А.С.Косачев. Семантики взаимодействия с отказами, дивергенцией и разрушением. Часть 2. Условия конечного полного тестирования. Вестник Томского Государственного Университета, № 2(15), 2011 г., стр. 89-98.
[14]. И.Б. Бурдонов, А.С. Косачев. Тестирование конформности на основе соответствия состояний. Труды ИСП РАН, № 18, 2010 г., стр. 183-220.
[15]. И.Б.Бурдонов, А.С.Косачев, Безопасное тестирование симуляции систем с отказами и разрушением. Моделирование и анализ информационных систем, том 17(4), 2010 г., стр. 27-40.
[16]. I.B.Bourdonov, A.S.Kossatchev, V.V.Kuliamin. Formal Conformance Testing of Systems with Refused Inputs and Forbidden Actions. Proceedings of the Workshop on Model Based Testing (MBT 2004), Elsevier, 2006.
[17]. И.Б.Бурдонов, А.С.Косачев, В.В.Кулямин. Формализация тестового эксперимента. Программирование, 2007 г., №5, стр. 3-32.
[18]. И.Б.Бурдонов, А.С.Косачев, В.В.Кулямин. Безопасность, верификация и теория конформности. Материалы второй международной научной конференции по проблемам безопасности и противодействия терроризму. МГУ 2006, М., МЦНМО, 2007 г., стр. 135-158.
[19]. И.Б.Бурдонов, Косачев А.С. Системы с приоритетами: конформность, тестирование, композиция. Программирование, 2009 г., № 4, стр.24-40.
[20]. И.Б. Бурдонов, А.С. Косачев. Тестирование с преобразованием семантик. Труды ИСП РАН, том 17, 2009 г., стр.193-208.
[21]. A.Kossachev, I.Burdonov. Formal Conformance Verification, Short Papers of the 22nd IFIP ICTSS, Alexandre Petrenko, Adenilso Simao, Jose Carlos Maldonado (eds.), Nov. 08-10, 2010, Natal, Brazil, pp.1-6.
[22]. А.С. Косачев, И.Б.Бурдонов. Семантики взаимодействия с отказами, дивергенцией и разрушением. Программирование, 2010 г., №5, стр. 3-23.
[23]. И.Б.Бурдонов, А.С.Косачев. Согласование конформности и композиции. Программирование, 2013 г., №6, стр. 3-15.
Automata system: determinism conditions and testing
Igor Burdonov <[email protected]> Alexander Kossatchev [email protected] Institute for System Programming of the Russian Academy of Sciences, 25, Alexander Solzhenitsyn st., Moscow, 109004, Russia.
Abstract. The problem of testing of aggregate systems is considered. The system
components are described with 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 automaton of a component and an arc corresponds to a communication channel connecting exit of one automaton with entry of another automaton. The hypothesis of the links is assumed: the graph of links is static and the link structure is error-free. Automaton of the graph node in each state can accept multiple messages from its entries (at most one message from each entry) and send multiple messages to its exits (at most one message to each exit). An associative composition of the automata is defined. The restrictions on the automata and the graph of links are determined, for which their composition, i.e. the system itself, is deterministic. The goal of testing is to cover transitions of the automata reachable during the system work. It assumed that during testing it is possible to observe the states of automata and the messages on the arcs. The complete testing of the automata system without considering the hypothesis of links may require the number of testing actions of order of multiplication of numbers of states of the component automata, while with the consideration of the hypothesis of links - of order of the sum of these numbers. If the numbers of states of all automata are equal, it gives exponential reduction of the number of test actions. If the hypothesis of links is true, an algorithm of test generation for a deterministic system is proposed basing on filtration of tests generated for covering all transitions of the composition. Test is rejected if it covers only such transitions of the components that are covered by the remaining tests. In conclusion, the directions of future research are described.
Keywords: directed graphs, graph coverage, communicating automata, automata composition, distributed systems, testing, networks.
DOI: 10.15514/ISPRAS-2016-28(1)-9
For citation: Burdonov I.B., Kossatchev A.S. Automata system: determinism conditions and testing. Trudy ISP RAN/Proc. ISP RAS, 2016, vol. 28, issue 1, pp. 151-184 (in Russian). DOI: 10.15514/ISPRAS-2016-28(1)-9
References
[1]. I. B. Burdonov, A. S. Kossatchev. Testirovanie sistemy avtomatov [Testing of automata system]. Trudy ISP RAN [The proceeding of ISP RAS], Vol. 28(1), 2016. (in Russian). DOI: 10.15514/ISPRAS-2016-28(1)-7
[2]. I. B. Burdonov, A. S. Kossatchev. Sistema avtomatov: kompoziciia po grafu sviazei [Automata system: composition on connection graph]. Trudy ISP RAN [The proceeding of ISP RAS], Vol. 28(1), 2016 r.. (in Russian)
[3]. Revised Working Draft on "Framework: Formal Methods in Conformance Testing". JTC1/SC21/WG1/Project 54/1, ISO Interim Meeting, ITU-T on, Paris, 1995.
[4]. Bourdonov I.B., Kossatchev A.S., Kuliamin V.V. Teoriya sootvetstviya dlya system s blokirovkami I razrusheniem [Conformance theory of the systems with Refused Inputs and Forbidden Actions]. Moscow, «Nauka», 2008, 412 p. (in Russian)
[5]. Bourdonov I. Teoriya konformnosti (funkcional'noe testirovanie prorammny'kh system na osnove formal'ny'kh modelej [Conformance theory (functional testing on formal model base)]. LAP LAMBERT Academic Publishing, Saarbrucken, Germany, 2011, ISBN 978-3-8454-1747-9, 428 p. (in Russian)
[6]. Bourdonov I.B., Kossatchev A.S. Specification Completion for IOCO. Programming and Computer Software, vol. 37(1), 2011, pp. 1-14. DOI: 10.1134/S0361768811010014
[7]. A. S. Kamkin, M. M. Chupilko. Survey of modern technologies of simulation-based verification of hardware. Programming and Computer Software, vol. 37 (3), 2011, pp. 147-152. DOI: 10.1134/S0361768811030017
[8]. I. B. Burdonov, A. S. Kossatchev, V. V. Kuliamin. Irredundant Algorithms for Traversing Directed Graphs: The Deterministic Case. Programming and Computer Software, vol. 29(5), 2003, pp. 245-258. DOI: 10.1023/A:1025733107700
[9]. A. Levitin. Algoritmy: vvedenie v razrabotku i analiz [Introduction to The Design and Analysis of Algorithms]. M.: «Viliams», 2006, pp. 160-163, ISBN 0-201-74395-7. (in Russian)
[10]. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. Introduction to Algorithms. 2-nd Edition. MIT Press Cambridge, MA, USA, 2001, ISBN 0-262-03293-7.
[11]. Bourdonov I.B., Kossatchev A.S., Kuliamin V.V. Application of Finite Automatons for Program Testing. Programming and Computer Software, vol. 26(2), 2000, pp. 61-73. DOI: 10.1007/BF0275 9192
[12]. Bourdonov I.B., Kossatchev A.S. Complete Open-State Testing of Limitedly Nondeterministic Systems. Programming and Computer Software, vol. 35(6), 2009, pp.301-313. DOI: 10.1134/S0361768809060012
[13]. Bourdonov I.B., Kossatchev A.S. Semantiki vzaimodejstviya s otkazami, divergentsiej i razrusheniem. Chast' 2. Usloviya konechnogo polnogo testirovaniya. [Semantics of Interaction with Refused Inputs, Divergence and Forbidden Actions. Part 2. The condition of finite complete testing]. Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie, vychislitel'naya tekhnika i informatika. [Tomsk State University. Journal of Control and Computer Science], 2011, №2, pp. 89-98. (in Russian)
[14]. Bourdonov I.B., Kossatchev A.S. Testirovanie konformnosti na osnove sootvetstviya sostoyanij [Conformance testing based on a state relation]. Trudy ISP RAN [The proceeding of ISP RAS], vol. 18, 2010, pp. 183-320. (in Russian)
[15]. 84. Bourdonov I.B., Kossatchev A.S.. Safe simulation testing of systems with refusals and destructions. Automatic Control and Computer Sciences, vol. 45(7), 2011, pp. 380389. DOI: 10.3103/S0146411611070042
[16]. I.B.Bourdonov, A.S.Kossatchev, V.V.Kuliamin. Formal Conformance Testing of Systems with Refused Inputs and Forbidden Actions. Proceedings of the Workshop on Model Based Testing (MBT 2004), Elsevier, 2006.
[17]. Bourdonov I.B., Kossatchev A.S., Kuliamin V.V. Formalization of Test Experiments. Programming and Computer Software, vol. 33(5), 2007, pp. 239-260. DOI: 10.1134/S0361768807050015
[18]. Bourdonov I.B., Kossatchev A.S., Kuliamin V.V. Bezopasnost', verifikatsiya i teoriya konformnosti [Safety, Verification and Conformance Theory]. Materialy Vtoroj mezhdunarodnoj nauchnoj konferentsii po problemam bezopasnosti i protivodejstviya terrorizmu [The proceeding of the Second international conference on the problems of safety and counteraction against terrorizm], Moscow, MNCMO, 2007, pp. 135-158. (in Russian)
[19]. Bourdonov I.B., Kossatchev A.S. Systems with Priorities: Conformance, Testing, and Composition. Programming and Computer Software, 2009, Vol/35(4), pp.198-211. DOI: 10.1134/S0361768809040045
[20]. Bourdonov I.B., Kossatchev A.S. Testirovanie s preobrazovaniem semantic [Testing with Semantics Conversion] Trudy ISP RAN [The proceeding of ISP RAS], vol. 17, 2009, pp. 193-208. (in Russian)
[21]. A.Kossachev, I.Burdonov. Formal Conformance Verification, Short Papers of the 22nd IFIP ICTSS, Alexandre Petrenko, Adenilso Simao, Jose Carlos Maldonado (eds.), Nov. 08-10, 2010, Natal, Brazil, pp.1-6.
[22]. Bourdonov I.B., Kossatchev A.S. Interaction Semantics with Refusals, Divergence, and Destruction. Programming and Computer Software, vol. 36(5), 2010, pp. 247-263. DOI: 10.1134/S0361768810050014
[23]. Bourdonov I.B., Kossatchev A.S. Agreement between Conformance and Composition. Programming and Computer Software, vol. 39(6), 2013, pp. 269-278. DOI: 10.1134/S0361768813060029