Исследование отношения неразделимости для недетерминированных автоматов с тайм-аутами

УДК 519.713.1; 519.718.7

Н.В. Шабалдина

ИССЛЕДОВАНИЕ ОТНОШЕНИЯ НЕРАЗДЕЛИМОСТИ

ДЛЯ НЕДЕТЕРМИНИРОВАННЫХ АВТОМАТОВ С ТАЙМ-АУТАМИ

В статье исследуется отношение неразделимости для недетерминированных автоматов, в которых каждое состояние может обладать целочисленной задержкой (тайм-аутом). Если тайм-аут заканчивается и на автомат не было подано ни одного входного символа, то автомат изменяет свое состояние согласно переходу по этой временной задержке. Предлагается алгоритм построения разделяющей последовательности для таких автоматов, т.е. такой временной входной последовательности, на которую множества выходных последовательностей автоматов не пересекаются, и соответственно достаточно подать разделяющую последовательность на эти автоматы один раз, чтобы по выходной реакции различить их.

Ключевые слова: недетерминированные автоматы с тайм-аутами, временная входная последовательность, отношение неразделимости, разделяющая последовательность.

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

Для временных автоматов только начаты исследования различных отношений конформности [3]. Эти отношения и их свойства во многом заимствуются из теории конечных автоматов. Отношение неразделимости [5, 6], исследуемое в данной статье, также было введено изначально для конечных автоматов, а именно, для автоматов с недетерминированным поведением. Данное отношение замечательно тем, что при тестировании не требуется выполнения «всех погодных условий», т.е. необходимости подавать каждую тестовую последовательность до тех пор и при таких условиях, чтобы пронаблюдать все выходные последовательности системы на поданную входную последовательность. На практике затруднительно обеспечить выполнение такого предположения, и поэтому построение тестов с использованием отношения неразделимости актуально для моделей недетерминированных конечных автоматов [5, 6] и их модификаций [3, 4]. В данной работе предлагается алгоритм построения разделяющей последовательности для временных автоматов с тайм-аутами, на основе которого можно построить пол-

ный проверяющий тест относительно неразделимости при явном перечислении всех неисправностей.

1. Основные определения и обозначения

В данной работе временным автоматом (автоматом с тайм-аутами) называется шестерка А = (£, I, О, 50, ^А, ДА), где £ - конечное непустое множество состояний с выделенным начальным состоянием 50, I и О - конечные непересекающиеся входной и выходной алфавиты, ХА с £ х I х О х £ - отношение переходов. Функция ДА: £ ^ £ х (N и {да}), где N - множество натуральных чисел, есть функция задержки, определяющая для каждого состояния тайм-аут, т.е. время ожидания входного символа без изменения состояния, причём если для некоторого состояния 5 имеет место ДА(5) = (У, да), то 5 = ^'. Таким образом, классический конечный автомат [1], в том числе недетерминированный [5, 6], можно рассматривать как временной автомат, в котором для всех состояний 5 е £ имеет место ДА(5) = (5, да), т.е. конечный автомат, в отличии от временного, сколь угодно долго ожидает входного символа, не изменяя при этом текущее состояние.

Временному автомату ставится в соответствие внутренняя переменная (часы), принимающая целые неотрицательные значения и указывающая время, прошедшее с момента достижения текущего состояния [2 - 4] (или с момента выдачи последнего выходного символа). Если (5, /, У, о) е ХА, то автомат А в состоянии 5 на входной символ / может выдать выходной символ о и изменить своё состояние на У, причем после этого соответствующая временная переменная принимает значение 0. В данной работе мы не рассматриваем задержки выходных символов, т.е. полагаем, что временной автомат выдаёт выходной символ в тот же самый момент, когда принимает входной символ и, возможно, меняет своё состояние.

Если для каждой пары (5, /) е £ х I существует не более одной пары (о, 5) е О х £, такой, что (5, /, о, 5) е ХА, то временной автомат А называется детерминированным; иначе временной автомат называется недетерминированным. Если для каждой пары (5, /) е £ х I существует, по крайней мере, одна пара (о, 5) е О х £, такая, что (5, /, о, У) е ХА, то £ называется полностью определенным. Временной автомат А называется наблюдаемым, если для любой тройки (5, I, о) е £ х I х О существует не более одного состояния, такого, что (5, I, о, 5’’) е ХА.

Временной входной символ есть пара (/, О е I х 2+ , где 2+ - множество целых неотрицательных чисел; временной входной символ (/, /) показывает, что входной символ I подается в момент, когда значение временной переменной равно t. Последовательность (/ь ^)(/2, t2)...(il, ti) временных входных символов называется временной входной последовательностью длины I.

Для того чтобы расширить отношение переходов временного автомата на

временные входные символы, введем специальную функцию йтеА: £ х 2+ ^ £,

позволяющую определить по текущему состоянию автомата состояние автомата в момент времени, когда значение временной переменной равно t [4]. Для определения значения функции ^теА(5\ 0 рассмотрим последовательность тайм-аутов

Да(5) = (51, ТО, Да(51) = (52, Т2), ..., Да(5>-1) = (5р, Гр), такую, что Т + Т2 +...+ Тр-1 < ^ но Т1 + Г2 + ... + Тр > t. В этом случае ^теА(5\ 0 = 5р-1. Если ДА(5) = (5, да), то ИтеА(5', 0 = 5 для каждого значения переменной t. Для каждого временного вход-

ного символа (/, () к отношению ХА добавляется переход (5, (/, t), У, о), если и только если (МтеА(5, (), /, У, о) е ХА.

Множество всех входных временных последовательностей обозначается I . Для полностью определенного временного автомата А функция оШ5, отображающая множество £ х ^ во множество выходных последовательностей, т.е. оША($, а): £ х I ^ О , вводится следующим образом. Для состояния 5 и временной входной последовательности а = (/ь ^) ... (г'г, ti) последовательность о1 ... ог е ои^^, а), если существуют состояния 51 = 5, ..., 5/+1, такие, что для каждого ] е {1, ..., 1} временной автомат А имеет временной переход (5,, (/,, ф, о, 5+1), и будем говорить в этом случае, что пара (а, оИА(5, а)) может перевести автомат А из состояния 5 в состояние 5/+1. Пара «временная_входная_последователь-ность_а / выходная_последовательность_р» называется временной входо-выход-ной последовательностью или временной трассой временного автомата А в состоянии 5, если р е оША(5, а). Можно сказать, что временные трассы характеризуют функциональное поведение временного автомата (относительно временных входных последовательностей).1 Множество всех функциональных трасс в начальном состоянии автомата А обозначим ТТгА.

Состояние 51 называется (/, ()/о-преемником состояния 5, если (5, (/, t), У, о) е ХА. Состояние 5 в этом случае называется (/, ^/о-предшественником состояния 51. Соответственно любой (/, t)/o-преемник состояния 5 ((/, t)/o-предшественник состояния 5) можно рассматривать как просто (/, t)-преемник состояния 5 ((/, t)-предшественник состояния У). Множество всех (/, t)/o-преемников состояния 5 будем обозначать 5исА(5, (/, t), о), множество всех (/, t)-преемников состояния 5 будем обозначать 5исА(5, (/, t)), и в обоих случаях для краткости символ (/, 0) будем заменять символом /.

Если временной автомат А детерминированный, то для каждого состояния 5 и каждой временной входной последовательности а множество оША(5, а) содержит не более одного элемента. Для полностью определенного временного автомата А множество оША(5, а) не является пустым для любых 5 е £, а е ^ .

Пусть А = (£, I, О, 50, ХА, ДА) и В = (Р, I, О, р0, ХВ, ДВ) - полностью определенные автоматы с тайм-аутами. Автомат В называется редукцией автомата А, если ТТгВ с ТТгА; если ТТгВ ТТгА, то автомат В не является редукцией автомата А. Временные автоматы А и В называются неразделимыми, если выходные реакции автоматов на любую временную входную последовательность а пересекаются, т.е. оиА^'о, а) п ои^(р0, а) Ф 0; в противном случае автоматы называются разделимыми. Временная входная последовательность а, такая, что ои/А(50, а) п оШВ(р0, а) = 0, называется разделяющей последовательностью для временных автоматов А и В.

Пересечением А п В называется наибольший связный подавтомат С = (2, I, О, д0, Хс, ДС) автомата (Я, I, О, д0, ХС, ДС), в котором Я = £ х К х Р х К, где К = {0, ..., к}, к = тт(тахДА(5), тахДВ(р)), начальное состояние есть четверка (50, 0, р0, 0) и отношение переходов ХС и функция ДС определены по следующим правилам [3]:

1. Отношение переходов ХС содержит четверку [(5, к1, р, к2), I, о, (У, 0, р’, 0)], если и только если (5, I, о, 5’’) е ХА и (р, I, о, р’) е ХВ.

1 В данной статье при определении временных трасс мы опускаем слово «функциональная», поскольку не рассматриваем задержки выходных символов.

2. Дс((л кь р, к2)) = [(?', к{, р', к2), к], где к = шш( ДА (?)ш - к , Дв (р)ш - к2). Состояние (^', к\ , р', к2' ) = (АД?)^, 0, Дв(р);Р, 0), если ( Да С?)^м = да или

Д в(Р)^м = да> или (Д а (5)^- к1) = (Д в(Р)^м- к2)). Если (Д а (5)ш- к1) , (Дв(р)ш-к2) 6 2+ и (Да(5)^м-кг) < (Дв(р)^м -к2), то состояние (У, кг', р', к2) = (ДаС?)^, 0, р, к2 + к).

Если (Да (5)^ - к1) , (Дв(р)^м - к2) 6 2+ и (Да (5)^м - к1) > (Дв(р)^м - к2 ),

то состояние (у' , кг' , р', к2' ) = (у, к1 + к, Дв(р);Р, 0).

Алгоритм 1

Построение пересечения двух полностью определенных временных автоматов

Вход: Временные автоматы А = (Б, I, О, 50, ХА, Да) и в = (Р, I, О, р0, Хв, Дв).

Выход: Пересечение С = (2, I, О, д0, Хс, Дс).

1: Добавить в первоначально пустое множество 2 состояние д0 = С?0, 0, р0, 0);

2: Пока во множестве 2 есть нерассмотренные состояния;

3: Для каждого нерассмотренного состояния q=(s, к1, р, к2) из множества 2;

4: Для каждой пары 1/о определить множество состояний 2' и пополнить множество переходов Хс, добавляя состояние д'=С?', 0,р', 0) в 2' и переход [(у, к1,р,

к2), г, о, (у', 0,р', 0)] в Хс ^ (5, г, л', о) е ХА и (р, г, р', о) е Хв ;

5: 2 := 2 и 2' ;

6: Если ( ДаС?)^(N и {»}) * ю или Дв(р)иN и {да}) * “ ), то выполнять:

к : = тт( Да (5-)^ - к1 , Дв (р)^М - к2 );

7: Если (ДЛ»4< N и {да}) = да или Дв(р)^( N и {да}) = “ или

( ДА (5)Ш - к1) = ( Дв (р)^М - к2 ) ),

8: то д' : = (Аа (у), 0, Ав (р), 0);

9: Иначе

10: если ( ДА (- к1) < ( Дв (р)^М - к2 ),

то д' := (ДаС?)^, 0,р, к2 + к);

11: если ( ДА (- к1) > ( Дв (р)^М - к2 ),

то 4 := (5, к1 + к, Дв(р)^р, 0);

12: Доопределить функцию Дс: Дс(д) = (д', к); 2 := 2 и { д'};

13: Автомат С = (2, I, О, д0, Хс, Дс) - искомый автомат А п в; Конец.

На рис. 1 приведены два временных автомата А и в, на рис. 2 - автомат-пересечение А п в.

(2 / 1 *! / 1

г2 / 3; 5 £2/0, 3; / 0;

Рис. 1. Временные автоматы А и в

Рис. 2. Автомат A n B

2. Построение разделяющей последовательности для полностью определенных временных автоматов

Разделяющая последовательность для временных автоматов A и B строится на основе дерева преемников пересечения A n B . Если автоматы A и B не являются разделимыми, то на выходе алгоритма выдается соответствующее сообщение.

Алгоритм 2

Построение разделяющей последовательности для двух полностью определенных временных автоматов

Вход: Полностью определенные временные автоматы

A = (S, I, O, s0, ХА, Aa) и B = (P, I, O, p0, XB, AB).

Выход: Разделяющая последовательность для автоматов A и B (если автоматы A и B разделимы) или сообщение, что автоматы A и B неразделимы.

1: Построить пересечение C = A n B;

2: Если C - полностью определенный автомат, то

выдать сообщение «автоматы A и B неразделимы»; Конец.

3: k: = 0; Edge: = 0; Qk„: = {{q0, 0»; Qk: = {Qkо};

4: Пока не выполнится одно из следующих правил усечения дерева преемников:

5: Правило 1: для некоторого множества QkJ е Qk, j > 0, существует входной символ i-sep такой, что для каждого состояния q, (q, t) е Q kj, переход из q по входному символу i-sep не определен;

6: Или

7: Правило 2: для каждого множества Qkj е Qk существует Qam е Qa, a < k, такое, что

Qkj— Qam;

8: выполнять:

9: Qk +i: = 0;

10: Для каждого подмножества Qkj е Qk,j = 0, ..., |Qk|-1, для которого не существует

Qam е Qa, a < k, такого, что Qkj— Qam, выполнять:

11: Для каждого входного символа i

12: Построить множество M : = и smcc(qig,0х{0};

q^<3kj

13: Qk +1= Qk +1^ M; добавить тройку (Qkj, i,M) во множество Edge;

14: Если не для всех д, (д, Г) е Q^, (Дс(д))^( N и {»}) = ю, то определить для мно-

жества Qkj = {(д1, Г1), (д2, Г2),...,(дг, Гг)} минимальную задержку Ти множество преемников К по этой задержке следующим образом:

15: Т := шт{Т„ - Ги}, где Ти = (Дс(ди))^( N и {»}>

1<И <г

16: К := {(д!1, Г1'), (д2', Г2'),...,(дД Г/)},

где для всех и е {1, ..., г}

ди = Птвс(ди, Ги + Т);

Если (Ти = ю или Ти = Ги + Т), то = 0;

Если (Ти > Ги + Т), то Ги' = Ги + Т;

17

18

19

Qk+ 1= Qk + 1 u R; добавить тройку (Q kj, T, R) во множество Edge; k :=k+1;

Если выполнилось Правило 2 усечения дерева преемников, то выдать сообщение «автоматы A и B неразделимы», Конец.

20: Построить последовательность ребер (Q00, g1, Q1j1 ), (Q1y1 , g2, Q2j2 ),  , (Q(k-1)jk-1 , gk, Qkh ), такую, что для множества Qkj выполнилось Правило 1 усечения дерева преемников, (Q(l-1)м , gt, Qtjl) е Edge для каждого l е {1, ..., k}, и gi е {I u N }.

21: По построенной последовательности ребер выписать последовательность gig2.gk из входных символов и временных задержек.

22: Построить временную входную последовательность а = <i1, t1> ... <im, tm> следующим образом:

23: j := 0; Tj := 0; r := 0;

24: Пока

25: Если gj е I, то ir :=gj , tr := Tj , r := r+1, Tj := 0;

26: иначе Tj := Tj + gj ;

27: j :=j+1;

28: m := r; ir := i-sep , tr := Tj ;

29: Последовательность а = <i1, t1> ... <im, tm> - искомая разделяющей последовательностью для автоматов A и B, Конец.

Теорема. Если алгоритм 2 возвращает входную последовательность а, то а есть разделяющая последовательность для автоматов А и В. Если алгоритм 2 выдает сообщение «автоматы А и В неразделимы», то автоматы А и В не являются разделимыми.

Доказательство. Алгоритм 2 является модификацией алгоритма построения разделяющей последовательности для классических конечных автоматов, который был предложен в работе [6]. Внесенные изменения связаны с особенностью модели временного автомата с задержками, а именно, с переходами по временным задержкам, в связи с чем некоторые состояния временного автомата могут быть достигнуты только по таким переходам. Поэтому в данном алгоритме вершинам дерева соответствуют не подмножества состояний автомата-пересечения, а подмножества пар <состояние, время>.

При переходе по обычным входным символам значение времени в паре-преемнике <состояние, время> обнуляется. При переходе по временным задержкам временное значение накапливается, пока не будет достигнуто или превышено значение задержки, по которой в автомате-пересечении есть переход из данного состояния. Таким образом, в дереве, которое строится в алгоритме, добавляются дуги по минимальным временным задержкам (строки 14 - 17 алгоритма). Можно видеть, что для множества Qkj пар <состояние, время> текущей вершины опреде-

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

Согласно алгоритму, если для некоторой вершины, помеченной множеством Qk j , выполнилось Правило 2 усечения дерева преемников, то это означает, что

нет нераскрытых вершин, не объявленных листьями, и множество пар состояние, время> в каждой усеченной вершине дерева содержат в себе множество пар некоторой вершины на одном из предшествующих ярусов дерева, а значит, из такой вершины не может быть построена ветвь, соответствующая разделяющей последовательности.

Если же для некоторой вершины, помеченной множеством Qkjt , выполняется

Правило 1 усечения дерева преемников, то в строках 22 - 28 последовательность а собирается по ветви дерева, ведущей из корня в данную вершину. При этом временной входной символ формируется в результате суммирования всех задержек до очередного входного символа. Поскольку Правило 1 усечения дерева преемников перешло из алгоритма работы [6] без изменений, а переходы по временным задержкам из множеств пар <состояние, время> формируются согласно правилам, регламентированным при определении совместного поведения временных систем (а именно, при построении пересечения), то последовательность а будет разделяющей последовательностью для автоматов A и B.

Пример. Для иллюстрации алгоритма 2 рассмотрим автоматы A и B на рис. 1. Автомат A n B показан на рис. 2. По определению, множество Q0 = {Q00}, где Q00 = { < (а, 0, с, 0), 0) }. При k = 0 мы получаем Q1 = {Q10 = { < (a, 0, с, 0), 0) }, Q11 = { < (b, 0, с, 0), 0) } , Q12 = { < (a, 0, d, 0), 0) } }, множество Edge = {

(Q00, i1, Q10 ), (Q00, i2, Q11 ), (Q00, 3, 012 ) }. При k = 1 мы получаем

02 = {Q20 = { < (b, 0, c, 0), 0) }, Q21 = { < (a, 0, с, 0), 0) } , Q22 = { < (b, 3, d,

0), 0) }, Q23 = { < (b, 0, с, 0), 0), < (b, 0, d, 0), 0)} , Q24 = { < (a, 0, с, 0), 0),

< (b, 0, d, 0), 0) } }, множество Edge = {(Q00, /1, Q10 ), (Q00, *'2, Q11), (Q00, 3, Q12),

(Q 1b i1, Q20 X (Q 1b І2, Q21X (Q 11, 3 Q22), (Q 12, i1, Q23 ), (Q 12, i2, Q24)}.

Можно видеть, что поведение автомата A n B не определено в каждом состоянии множества Q22 по входному символу i-sep = i1. Таким образом, временная входная последовательность <i2, 0> <i1, 3> разделяет автоматы A и B.

В связи с тем, что при существовании разделяющей последовательности построение дерева прекращается, как только допустимо усечение по Правилу 1, последовательность (если существует) не обязательно будет кратчайшей по числу временных входных символов. Может оказаться, что если продолжать «тянуть» другие ветки дерева и вновь дойти до усечения по Правилу 1, то получим более длинную последовательность дуг (Q00, g1, Q1Л ), (Q1Л ,g2, Q2h ), •••,

( Q(k - 1 jt , gk, Qkjt ), но ей будет соответствовать более короткая временная последовательность (по числу входных символов), поскольку большее число дуг было помечено временными задержками.

Заключение

В работе представлено исследование отношения неразделимости для автоматов с тайм-аутами и предлагается алгоритм построения разделяющей последовательности для двух таких автоматов. Следует заметить, что построенная по данному алгоритму разделяющая последовательность не обязательно будет разделяющей последовательностью минимальной длины (по числу временных входных символов) для данной пары автоматов. Для нахождения разделяющей последовательности минимальной длины нужно при усечении дерева преемников по Правилу 1 запоминать построенную последовательность, но не прекращать дальнейших построений; затем выбрать самую короткую из множества построенных последовательностей.

Рассмотренная в работе модель временного автомата является упрощенным вариантом модели временного автомата, введенной в [2], поскольку в ней отсутствуют задержки по выходным символам. Однако предложенный алгоритм построения разделяющей последовательности может служить основой при анализе отношения неразделимости для «полноценного» варианта временного автомата. Развитием данного исследования может также стать разработка методов построения полных проверяющих тестов для временных автоматов относительно нераз-делимости.

ЛИТЕРАТУРА

1. Гилл А. Введение в теорию конечных автоматов. М.: Наука, 1966. 272 с.

2. Merayo M.G. Formal testing from timed finite state machines // Computer Networks. 2008. V. 52 №. 2. P. 432-460.

3. Громов М.Л., Евтушенко Н.В. Синтез различающих экспериментов для временных автоматов // Программирование. 2010. № 4. С. 1-11.

4. Zhigulin M., Maag S., Cavalli A, Yevtushenko N. FSM-based test derivation strategies for systems with time-outs // Proc. conf. QSIC’2011. 2011.

5. Starke P. Abstract automata. American Elsevier, 1972. 419 p.

6. Spitsyna N., El-Fakih K., Yevtushenko N. Studying the Separability Relation between Finite State Machines // Software Testing, Verification and Reliability. 2007. V. 17(4). P. 227-241.

Шабалдина Наталия Владимировна Томский государственный университет, E-mail: NataliaMailBox@mail.ru

Поступила в редакцию 31 марта 2011 г.