2011
ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА Управление, вычислительная техника и информатика
№ 4(17)
ДИСКРЕТНЫЕ ФУНКЦИИ И АВТОМАТЫ
УДК 519.713
М. Л. Громов, Н.Г. Кушик, Н.В. Евтушенко
РАЗЛИЧАЮЩИЕ ЭКСПЕРИМЕНТЫ С НЕИНИЦИАЛЬНЫМИ НЕДЕТЕРМИНИРОВАННЫМИ АВТОМАТАМИ1,2
В статье исследуются различающие эксперименты с недетерминированными неинициальными автоматами. Показывается, как построить безусловный различающий эксперимент для множества начальных состояний, если множество начальных состояний является разделимым, т. е. существует входная последовательность, на которую множества выходных реакций в любых двух различных начальных состояниях не пересекаются. Кроме того, предлагается алгоритм построения условного эксперимента для множества начальных состояний, и устанавливаются свойства множества начальных состояний для существования такого эксперимента.
Ключевые слова: недетерминированный автомат, неинициальный автомат, различающие эксперименты, разделимое множество состояний, разделяющая последовательность, условно-различимое множество состояний, различающий автомат.
В последнее время появляется все больше исследований, посвященных недетерминированным автоматам. В частности, недетерминированные автоматы находят применение при разработке выигрышных стратегий в логических играх и криптографии, активно используются при синтезе и анализе дискретных систем управления, в частности при оптимизации дискретных систем и синтезе проверяющих и диагностических тестов для них. Однако большинство отношений совместимости и различимости между недетерминированными автоматами введено для инициальных автоматов.
В ряде приложений требуется различить несколько состояний автомата (несколько автоматов) простым безусловным или условным экспериментом. Известны необходимые и достаточные условия существования таких экспериментов для двух состояний заданного автомата (двух заданных инициальных автоматов). В данной работе мы устанавливаем необходимые и достаточные условия существования таких экспериментов для подмножества состояний автомата любой мощности, на основе которых можно установить необходимые и достаточные условия различимости конечного числа (неинициальных) полностью определенных автоматов простым безусловным и условным экспериментами.
1 Авторы выражают благодарность проф. Американского университета Шарджа, ОАЭ, К. Эль-Факи за интересные дискуссии.
2 Работа частично поддержана грантом РФФИ 10-08-92003.
1. Недетерминированные автоматы
Конечным автоматом, или просто автоматом, далее называется пятерка Б = (5, I, O, hs, 5"), где £ - конечное непустое множество состояний с выделенным непустым подмножеством 5 начальных состояний, I и О - конечные входной и выходной алфавиты и ^ с 5 х I х О х 5 - отношение или множество переходов. Если множество 5' совпадает с множеством всех состояний автомата, то для обозначения такого автомата мы будем использовать четверку Б = (5, I, О, ^). Четверка (5, г, о, я') е ^ описывает переход в автомате Б из состояния 5 в состояние 5 под действием входного символа I с выходным символом о. Если множество 5' содержит только одно состояние, то автомат называется инициальным автоматом, в противном случае автомат называется неинициальным. Автомат называется полностью определенным, если для каждой пары (5, г) е 5 х I существует хотя бы одна пара (о, я') е О х 5, такая, что (я, г, о, я') е hs; в противном случае автомат называется частично определенным или частичным. В данной работе мы рассматриваем только полностью определенные автоматы. Автомат называется наблюдаемым, если для каждой тройки (5, г, о) е 5 х I х О существует только одно состояние 5' е 5, такое, что (5, I, о, 5') е hs; в противном случае автомат называется ненаблюдаемым. В данной работе мы рассматриваем только наблюдаемые автоматы. Автомат называется детерминированным, если для каждой пары (5, I) е 5 х I существует не более чем одна пара (о, 5') е О х 5, такая, что (5, I, о, 5') е ^; в противном случае автомат называется недетерминированным. В общем случае в недетерминированном автомате в текущем состоянии для данного входного символа может существовать более одного перехода. Для неинициального автомата Б = (5, I, О, hs, 51) далее через S/Sj обозначается инициальный автомат (5, I, О, hs, 5). Пусть Б = (5, I, О, hs, 50) и Р = (Р, I, О, ^, р0) - инициальные автоматы. Пересечением Б п Р автоматов Б и Р [1] называется наибольший связный подавтомат автомата Q = (5 х Р, I, О, h^, 50р0), в котором (¿р, г, о, 5 р') е hQ » (5, г, о, 5) е hs & (р, г, о, р') е hP.
Отношение переходов естественным образом распространяется на входные и выходные последовательности. Пусть 5 е 5 и 11 ... гк е I* - непустая последовательность входных символов. Четверка (5, 11 ... 4, о1 ... ок, 5') е hs, где оь..ок е О*,
- последовательность из выходных символов, если существует последовательность состояний 51, ..., 5к+1 е 5 такая, что 51 = 5, 5к+1 = 5' и для каждого } = 1, ..., к справедливо (5,, } о,, 5+1) е ^. Наличие четверки (5, г1 ... гк, о! ... ок, 5') в множестве Ы означает, что автомат в состоянии 5 может переработать, т.е. преобразовать или отобразить входную последовательность г1 ... гк в выходную о! ... ок, причем после такого преобразования автомат будет находиться в состоянии 5'. Пара последовательностей а/р, такая, что (5, а, р, 5' )е^ для некоторого состояния 5' е 5, называется входо-выходной последовательностью, или траекторией автомата, в состоянии 5. Множество всех входо-выходных последовательностей автомата в состоянии 5 обозначается Тгб(5). Для простоты дальнейшего повествования, будем использовать следующее обозначение: Тгб(Ь) = и, е ъ Тг б(5), где Ь с 5.
Для полностью определенного, возможно недетерминированного, автомата можно записать функции переходов пех^^е и выходов оШ, которые определены
в каждом состоянии на всех входных последовательностях. Функция переходов описывает множество состояний, в которые автомат может перейти из состояния 5 под действием входной последовательности а. Функция выходов описывает множество выходных последовательностей, которые могут появиться на выходе автомата в этом случае. Таким образом, функции переходов и выходов отображают декартово произведение 5 х I в множества подмножеств множеств 5 и О* соответственно, и для любых 5 е 5, Ь с 5 и а е I* справедливо
• пех1_81а1е($, а) э 5', если и только если Эр е О* [(5, а, р, 5') е hs\,
• пех/_5/а/е(Ь, а) = и, е ъ пех_'(а(е(5, а).
Далее мы распространяем хорошо известные бинарные отношения на множестве состояний автомата [1] на отношения между подмножествами состояний.
Состояние 5 полностью определенного автомата Б = (5, I, О, hs, 5') и состояние р полностью определенного автомата Р = (Р, I, О, hp, Р') называются эквивалентными, если для любой входной последовательности а имеет место ои/(5, а) = ои/(р, а). Подмножества состояний т автомата Б и Ь автомата Р называются эквивалентными, если для любой входной последовательности а имеет место ои/(т, а) = ои/(Ь, а). Автоматы Б и Р эквивалентны, если для каждого состояния множества 5 в множестве Р существует эквивалентное состояние, и обратно. Автоматы Б и Р слабо эквивалентны, если множества 5' и Р' эквивалентны. Известно [2], что для любого недетерминированного автомата Б существует эквивалентный наблюдаемый автомат. Наблюдаемая форма строится на основе детер-минизации соответствующего полуавтомата. Кроме того, известно [3], что для полностью определенного автомата Б = (5, I, О, hs, 5') можно построить слабо эквивалентный инициальный наблюдаемый автомат, т.е. такой автомат Q, что пара а/р есть входо-выходная последовательность автомата Q в начальном состоянии, если и только если а/р есть входо-выходная последовательность автомата Б в одном из состояний множества 5 .
Подмножество состояний т автомата Б называется разделимым, если существует входная последовательность а, которая является разделяющей последовательностью для любых двух различных состояний и 52 множества т, т.е. справедливо ои/(51, а) п ои/(52, а) = 0. Отметим, что в общем случае последовательность а должна разделять любые два непересекающихся подмножества состояний множества т, однако в данной статье мы рассматриваем только наблюдаемые автоматы, поэтому введенное определение корректно. Если состояния разделимого множества т разделимы одним входным символом, то множество т также называть 1-условно-различимым множеством.
Пусть определены все максимальные (к - 1)-условно-различимые подмножества, к > 0. Будем говорить, что т есть к-условно-различимое множество состояний, к > 1, если т есть (к - 1)-условно-различимое множество или существует входной символ г е I, такой, что для любого о е О множество г/о-преемников состояний из т пусто, содержит одно состояние или является (к - 1)-условно-различимым множеством, причем в последних двух случаях любые два различные состояния из т не могут обладать одним и тем же г/о-преемником. Множество т называется условно-различимым, если т есть к-условно-различимое множество для некоторого к.
2. Различающие эксперименты с недетерминированными автоматами
Как обычно, под различающим экспериментом с (недетерминированным) полностью определенным автоматом понимается эксперимент, позволяющий определить состояние автомата до эксперимента. В предыдущем разделе были введены два понятия различимости для подмножеств состояний автомата S. В работах [4, 5] установлены необходимые и достаточные условия для различимости пары начальных состояний безусловным и условным экспериментами, и в этой работе мы расширяем эти результаты на произвольное множество начальных состояний недетерминированного автомата.
2.1 Безусловные различающие эксперименты
Для построения входной последовательности, разделяющей состояния разделимого множества состояний, можно воспользоваться следующим алгоритмом:
Алгоритм 1. Построение разделяющей последовательности для множества начальных состояний
Вход: Полностью определенный наблюдаемый автомат S = (S, I, O, hS, S').
Выход: Входная последовательность, разделяющая состояния множества S', если S' - разделимое подмножество, или ответ «S' не является разделимым».
Шаг 1. Строим усеченное дерево преемников для автомата S. Вершина дерева, которая находится на нулевом уровне (корень дерева), помечается множеством, которое состоит из всех пар различных состояний вида sp, sq , sp, sq e S'; вершины
дерева помечаются множествами, состоящими из пар состояний множества S. Пусть уже построены j уровней дерева, j > 0. Из нетерминальной вершины j-го уровня, помеченной множеством P пар состояний, есть ребро, помеченное входным символом i, в вершину, которая помечена множеством пар Q: пара sp,sq e Q, если существует выходной символ о, такой, что sp и sq суть i/o-преемники состояний из некоторой пары множества P. Вершина Current на k-м уровне, k > 0, помеченная множеством P пар состояний, является листом дерева, если для нее выполняется одно из условий:
Правило 1: Существует входной символ i, который разделяет каждую пару состояний в множестве P.
Правило 2: На j-м уровне j, j < к, существует вершина, помеченная множеством R с P.
Правило 3: Множество P содержит пару вида sp, sp .
Шаг 2. Если все пути на шаге 1 заканчиваются с использованием правил 2 и 3, то множество S' не является разделимым множеством, т.е. его состояния не различимы простым безусловным экспериментом. Если некоторый путь на шаге 2 заканчивается применением правила 1, то последовательность ai, где а есть последовательность, помечающая искомый путь, есть последовательность, разделяющая состояния множества S'.
Теорема 1. Алгоритм 1 доставляет разделяющую последовательность ai, если и только если S' - разделимое множество и ai является разделяющей последовательностью для любых двух различных состояний множества S'.
Доказательство. ^ Пусть алгоритм 1 доставляет разделяющую последовательность ai. По построению, если путь из корня дерева в вершину, помеченную
множеством Р, которое не содержит одноэлементных множеств, помечен последовательностью а, то множество Р содержит все пары состояний автомата Б, такие, что для каждой пары из Р существует входо-выходная последовательность а/р, по которой эта пара достижима из некоторой пары начальных состояний. Поэтому, если существует входной символ /, который разделяет каждую пару состояний в множестве Р, последовательность разделяет каждую пару различных начальных состояний. Таким образом, если алгоритм 1 доставляет разделяющую последовательность, то 5" является разделимым множеством.
^ Предположим, что для разделимого множества 5" с кратчайшей разделяющей последовательностью а/ все пути в алгоритме 1 заканчиваются с использованием правил 2 и 3. Соответственно последовательность а не помечает ни один путь из корня дерева (иначе бы некоторый путь в дереве заканчивался с применением правила 1). Рассмотрим самый длинный префикс р последовательности а, а = Ру/, который помечает путь из корня дерева в некоторую терминальную вершину. Этот путь не может заканчиваться с применением правила 3, так как в этом случае любое продолжение р не является разделяющей последовательностью. Пусть путь, помеченный последовательностью р, заканчивается в вершине на к-м уровне, к > 0, с множеством Р пар состояний с применением правила 2. Последнее означает, что существует другой путь в дереве, помеченный последовательностью ц, в некоторую вершину на ]-м уровне ], ] < к, помеченную множеством Я с Р. Поскольку последовательность у/ разделяет все пары множества Р, то у/ разделяет и все пары подмножества Я, т.е. последовательность цуг, которая короче последовательности а/, является разделяющей для множества 5', что противоречит тому, что а/ была выбрана как кратчайшая последовательность с таким свойством.
Пример. Рассмотрим автомат Б = ({1, 2, 3, 4}, {а, Ь}, {0, 1}, к5, {1, 2, 3}), представленный на рис. 1, на котором также приведено усеченное по алгоритму 1 дерево преемников для этого автомата. Поскольку все пути в этом дереве заканчиваются с применением правил 2 и 3, множество {1, 2, 3} не является разделимым и, следовательно, начальные состояния автомата Б неразличимы безусловным экспериментом.
Ь/0
1,3
а/1
Рис. 1. Автомат, начальные состояния которого не различимы безусловным экспериментом, и его усеченное дерево преемников
Заметим, что для наблюдаемого автомата S = (S, I, O, h, S’) с n состояниями и m начальными состояниями длина кратчайшей разделяющей последовательности
C 2 — C ^
не превосходит величины 2 n m . Причиной является тот факт, что длина разделяющей последовательности ограничивается длиной пути в усеченном дереве преемников, которая, в свою очередь, согласно правилу 2, не превосходит числа множеств, не содержащих множество всех пар различных начальных состояний.
с2—с 2
Число таких подмножеств пар состояний равно 2 n m . Как известно [4], для автомата с n состояниями, два из которых являются начальными, для любого n > 2 можно построить автомат, в котором кратчайшая входная последовательность,
—:
разделяющая начальные состояния, имеет длину 2 4 , и, таким образом, безус-
ловные различающие эксперименты с неинициальными автоматами имеют экспоненциальную сложность.
Если множество начальных состояний неинициального автомата не является разделимым, то в ряде случаев состояния этого множества можно различить посредством условного эксперимента.
2.2 Условные различающие эксперименты с недетерминированными автоматами
В этом разделе мы показываем, что состояния множества m различимы условным экспериментом, если m является условно-различимым множеством, т. е. если существует такое целое неотрицательное число k, что m есть k-условноразличимое множество состояний. Поскольку число состояний n автомата S конечно, то число k не превышает 2n - 1, т.е. проверка множества начальных состояний автомата на различимость может быть осуществлена конструктивно, за конечное число шагов.
Частичный наблюдаемый автомат R = (R, I, O, TR, r0) со специальными состояниями ±:, ..., Lk называется различающим для автомата S = (S, I, O, h, S1), если выполняются следующие условия:
1. Граф переходов автомата R ациклический.
2. Состояния ±:, ..., Lkтупиковые.
3. Если r g {±ь ..., l_k}, то в состоянии r определен переход в точности по одному входному символу i.
4. Для любого j = 1, .k все тупиковые состояния пересечения S/sj n R являются парами вида (s, i_j), s е S, и для любого нетупикового состояния sr пересечения S/sj n R и входного символа i, по которому определен переход в состоянии r автомата R, пересечение S/sj n R в состоянии sr содержит каждую входо-выходную пару i/o автомата S в состояния s.
По определению различающего автомата справедливо следующее утверждение.
Предложение 1. Начальные состояния автомата различимы условным экспериментом, если и только если для автомата S = (S, I, O, h, S1) существует различающий автомат.
Действительно, свойства 1 - 3 определяют условный эксперимент с автоматом S, а свойство 4 является необходимым и достаточным для того, чтобы такой эксперимент различал начальные состояния автомата S. ■
В работе [4] показано, как построить r-различающий автомат для двух наблюдаемых инициальных автоматов, которые являются r-различимыми. Ниже мы
предлагаем алгоритм построения такого различающего автомата для случая, когда автомат имеет k начальных состояний, k > 2.
Алгоритм 2. Построение различающего автомата для произвольного множества начальных состояний.
Вход: Полностью определенный наблюдаемый автомат S = (S, I, O, h, S) |S'| = k. Выход: Автомат R, различающий состояния множества S1, если S’ - условноразличимое множество, или сообщение о том, что S’ не является условноразличимым множеством.
Строим автомат R = ( R, I, O, hR, r 0): состояниями автомата R являются непустые подмножества состояний автомата S и состояния ±ь ..., l_k; начальное состояние r0 автомата R есть подмножество S’
R : = { S’, ±1, ..., 1*}; hR : = 0; k: = 1;
Шаг 1. Если в автомате не существует ни одного разделимого множества мощности 2,
то выдать сообщение «S’ не является условно-различимым подмножеством» и END Иначе найти все k-условно-различимые подмножества.
Шаг 2. Если S' является k-условно-различимым множеством, то
для каждого j- условно-различимого подмножества P (j > 1)
определить входной символ i е I, такой, что для любого o е O множество i/о-преемников состояний из P пусто, содержит одно состояние или является (j - 1)-условно-различимым множеством P, причем любые два различные состояния из P не обладают одним и тем же i/о-преемником; добавить в R каждый переход (P, i, о, P ' ), |Р ' | > 1;
Для каждого начального состояния sj е S' построить пересечение S/sj n R;
Для каждого состояния (s, P) пересечения S/sj n R, достижимого из начального состояния по некоторой входовыходной последовательности
Если (s, P) - тупиковое состояние пересечения,
определить входной символ is е I, такой, что для любого о е O в автомате R множество i/о-преемников состояний из P пусто или содержит одно состояние; Иначе, обозначить через is входной символ, по которому определен переход из состояния (s, P)
Для каждой входо-выходной пары i^/о в состоянии s, по которой нет перехода в состоянии (s, P) пересечения S/sj n R добавить в R переход (P, is, о, ±j); Удалить из R состояния, недостижимые из начального состояния
END
Если все k-условно-различимые подмножества являются (k - 1)-условно-различимыми, то выдать сообщение «S’ не является условноразличимым подмножеством» и END Иначе, увеличить k на 1, и перейти на Шаг 1. ■
Теорема 2. Алгоритм 2 доставляет автомат ^ различающий состояния множества Б', если и только если Б' - условно-различимое множество.
Действительно, если Б' есть условно-различимое множество, т.е. Б' есть к-условно-различимое множество для некоторого к, алгоритм 2 строит автомат ^ который переходит в тупиковое состояние Л_/, если и только если начальное состояние автомата Б есть (шаг 2). С другой стороны, если Б' не является условноразличимым множеством, то алгоритм 2 формирует соответствующее сообщение, и автомат R не строится. ■
По правилам построения различающего автомата можно показать, что подобно автомату с двумя начальными состояниями [5], если множество Б' не является к-условно-различимым для некоторого к, то для автомата Б нельзя построить различающий автомат, т.е. не существует условного эксперимента, который различает начальные состояния автомата Б (предложение 1).
Как известно [5], если автомат имеет п состояний, два из которых являются начальными, то для любого п можно построить условный эксперимент, в котором входная последовательность, различающая два начальных состояния (если существует), имеет длину порядка п2, и, таким образом, условные различающие эксперименты с неинициальными автоматами с двумя начальными состояниями имеют полиномиальную сложность.
Для к начальных состояний сложность условного эксперимента оценивается суммой числа сочетаний из к по 2, 3, ..., к. Поэтому при к = п, где п - число состояний неинициального автомата, сложность условного эксперимента не более 2к
- к - 1. Требуются дополнительные исследования, чтобы выяснить, является ли такая оценка точной или может быть уменьшена.
Пример. Рассмотрим автомат Б на рис. 1. Построим различающий автомат по алгоритму 2 для множества начальных состояний {1, 2, 3} (рис. 2).
Таким образом, начальные состояния автомата Б (рис. 1), неразличимые безусловным экспериментом, различимы условным экспериментом. Заметим, что если в автомате Б каждое состояние может быть начальным, то начальные состояния такого автомата неразличимы и условным экспериментом, так как множество {1, 2, 3, 4} не является условно-различимым множеством. В частности, общую полностью определенную редукцию имеют множества {1, 2, 3} и {4}.
Заключение
В данной статье рассмотрена проблема различимости состояний неинициальных недетерминированных автоматов. Показано, что начальные состояния полностью определенного наблюдаемого автомата различимы безусловным экспериментом, если и только если множество начальных состояний является разделимым. Для того чтобы начальные состояния автомата можно было различить посредством условного эксперимента, необходимо и достаточно, чтобы множество начальных состояний было условно-различимым. Полученные результаты можно использовать при распознавании наблюдаемых недетерминированных автоматов в классе из l > 2 автоматов, если построить безусловный или условный эксперимент для прямой суммы распознаваемых автоматов. В статье приводятся верхние оценки высоты условного и безусловного экспериментов для наблюдаемых полностью определенных недетерминированных автоматов, однако анализ точности этих оценок требует дополнительных исследований.
ЛИТЕРАТУРА
1. Евтушенко Н.В., Петренко А.Ф., Ветрова М.В. Недетерминированные автоматы: анализ и синтез. Ч. 1. Отношения и операции: учеб. пособие. Томск: ТГУ, 2006. 142 с.
2. Starke P. Abstract automata. American Elsevier, 1972. 419 с.
3. Трахтенброт Б.А. Конечные автоматы: анализ и синтез. М.: Наука, 1970. 400 с.
4. 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.
5. Громов М.Л. Разработка методов синтеза условных тестов для автоматных моделей с недетерминированным поведением: дис. ... канд. физ.-мат. наук. Томск: ТГУ, 2009.
Громов Максим Леонидович
Кушик Наталья Генадьевна
Евтушенко Нина Владимировна
Томский государственный университет
E-mail: [email protected]; [email protected];
[email protected] Поступила в редакцию 20 июля 2011 г.