Опубликован: 17.02.2011 | Уровень: специалист | Доступ: платный
Лекция 6:

Эксперименты по контролю функции выходов инициального автомата

< Лекция 5 || Лекция 6: 12 || Лекция 7 >
Аннотация: Исследуется задача контроля функции инициального автомата, которая с математической точки зрения сводится к задаче построения специального обхода графа этого автомата. Приведен критерий существования такого обхода, который реализуется в процессе подачи на автомат так называемого характеристического слова. Доказываются различные утверждения, касающиеся оценок длин кратчайших обходов графа и характеристических слов.

Контроль функции выходов инициального автомата с использованием простого безусловного эксперимента

Известно, что ДУ с памятью, описываемое математической моделью конечного автомата Мили, всегда может быть реализовано в виде, изображенном на рис.6.1. Здесь блок C реализует функцию выходов и является комбинационным устройством, а блок B представляет собой запоминающее устройство.


Рис. 6.1.

В общем случае причинами неисправности ДУ могут быть как неисправности в блоке C (блоке B ), так и неисправности, возникшие в обоих блоках.

В этой лекции рассматриваются эксперименты, ориентированные на контроль функционирования блока C, т. е. функции выхода автомата. Мы займемся исследованием этого частного случая экспериментов потому, что для проверки памяти ДУ, т. е. блока B, разработаны хорошо зарекомендовавшие себя специальные методы. Конечно, для проверки функционирования блока C можно применить контрольные эксперименты общего вида, однако в рассмотренной ситуации методы их построения не учитывают ее специфики и будут порождать тесты, длина которых заведомо больше той, которая минимально необходима.

Естественно, что методы контроля зависят от класса рассматриваемых автоматов и применяемых средств. Ниже исследуются методы контроля для инициальных и неинициальных автоматов, а в качестве средств используются простые и кратные безусловные эксперименты. Характерной особенностью всех рассматриваемых здесь задач контроля является их сводимость к построению различных обходов графов автомата, т. е. путей по графу, проходящих через все его дуги.

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

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

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

Рассмотрим следующую задачу. Пусть в распоряжении экспериментатора находится один экземпляр автомата Мили A, у которого известны входной алфавит X=\{x_1, \dots, x_m\}, выходной алфавит Y=\{y_1, \dots, y_l\}, множество состояний s=\{s_0, s_1, \dots, s_{n-1}\}, где s_0 - выделенное состояние, называемое начальным, и функция переходов \delta : S \times X \to S. Требуется построить простой безусловный эксперимент, позволяющий распознать функцию выходов \lambda автомата A или эквивалентного ему автомата.

Умение решать сформулированную задачу позволит решать и задачу контроля функции выходов инициального автомата. В самом деле, если нам удастся распознать функцию выходов \lambda' автомата, с которым производится эксперимент, то сравнение ее с функцией \lambda автомата A, играющего роль исправного, позволит сделать вывод об исправности \lambda' в исследуемом автомате. Если же изменения, появившиеся в функционировании блока \lambda, таковы, что исследуемый автомат эквивалентен A, то естественно игнорировать эти изменения и считать исследуемый автомат исправным. Именно этим мотивируется требование распознаваемости функции выходов с точностью до эквивалентности.

Очевидно, что функция выходов будет распознана, если в результате проведения эксперимента для любого состояния этого автомата будет определена его реакция на любой входной символ.

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

Контроль функции выходов исследуемого автомата может быть выполнен с помощью так называемого контролирующего автомата, связанного с исследуемым так, как это изображено на рис.6.2, где A - исследуемый автомат, K - контролирующий автомат.


Рис. 6.2.

Автомат K фактически реализует второй и третий этап эксперимента. Вопросы синтеза подобных автоматов рассмотрены в ряде работ, например в [3], [29], поэтому мы не будем здесь на них останавливаться, а основное внимание уделим построению входного слова.

Если автомат задан в виде ориентированного графа, у которого начальной является вершина s_0, то упомянутому входному слову в графе автомата будет соответствовать путь, начинающийся в s_0 и проходящий через все его дуги. Этот путь будем называть обходом графа. Под путем в графе понимается последовательность дуг, таких, что конечная вершина предыдущей дуги является начальной вершиной следующей. Таким образом, сформулированная нами задача эквивалентна задаче построения обхода автоматного графа.

Под графом G(S,U), где S,U - множество вершин и дуг графа соответственно, мы будем понимать конечный ориентированный мультиграф. Пусть s_0 - начальная вершина этого графа. Дугу u графа, ведущую из вершины s_1 в s_2, для удобства будем иногда обозначать (s_1, s_2, u), чтобы явно указать ее начальную и конечную вершины.

Перейдем к определению условий существования обхода графа. Рассмотрим бинарное отношение \tau \subset S \times S, задаваемое следующим образом: (s_1, s_2) \in \tau тогда и только тогда, когда в графе G(S,U) существует путь из вершины s_1 в вершину s_2. Отношение \tau называется отношением достижимости. Используя отношение \tau, построим бинарное отношение \eta \subset S \times S следующим образом:

\eta = \tau \cap \tau^{-1}

Известно [62], что \eta является отношением эквивалентности, а его классы, называемые слоями, являются максимальными сильно связными подмножествами множества S. Каждому слою \sigma графа G(S,U) естественным образом ставится в соответствие подграф G'(S,U'), где U' - множество всех дуг из U, начало и конец которых есть вершины множества \sigma. Иногда для простоты мы будем отождествлять слой графа с соответствующим ему подграфом, однако каждый раз из контекста будет ясно, о чем именно идет речь.

Следующее утверждение описывает класс графов, у которых существует обход.

Теорема 6.1. Для того чтобы у графа G(S,U) существовал обход, необходимо и достаточно, чтобы выполнялись следующие условия:

  1. для любой вершины s \in S существует путь, связывающий вершину s_0 с вершиной s ;
  2. в любом слое \sigma графа существует не более одной вершины s, а в графе G(S,U) не более одной дуги (s,s', u), таких, что s' \notin \sigma.

Необходимость. Предположим, что путь (s_0, s_{i_1}, u_{i_1}) (s_{i_1}, s_{i_2}, u_{i_2}) \dots (s_{i_{k-1}}, s_{i_k}, u_{i_k}) является обходом графа G(S,U). Справедливость первого условия непосредственно следует из определения обхода графа. Справедливость второго условия докажем от противного. Допустим, что существует слой \sigma и две различные дуги (s_{i_{\nu}},s_{i_{\nu +1}}, u_{i_{\nu +1}}) и (s_{i_{\mu}}, s_{i_{\mu +1}}, u_{i_{\mu +1}}), такие, что s_{i_{\nu +1}} \notin \sigma и s_{i_{\mu +1}} \notin \sigma. Предположим, что первая из этих дуг входит в обход ранее второй, т. е. обход имеет следующую структуру:

p=p_1(s_{i_{\nu}}, s_{i_{\nu +1}}, u_{i_{\nu +1}})p_2(s_{i_{\mu}}, s_{i_{\mu +1}}, u_{i_{\mu +1}})p_3,

где p_1(i=1,2,3) - некоторые отрезки пути p.

Рассмотрим множество вершин \sigma Y\{s_{i_{\nu +1}}\}. Поскольку \sigma - сильно связное подмножество, отрезок p_1 заканчивается в вершине s_{i_{\nu}} \in \sigma, а отрезок p_1(s_{i_{\nu}}, s_{i_{\nu +1}}, u_{i_{\nu +1}}) является начальным отрезком обхода p, то между любой вершиной s \in \sigma и вершиной s_{i_{\nu +1}} \notin \sigma путь по графу G(S,U) существует. Далее, так как отрезок (s_{i_{\nu}}, s_{i_{\nu+1}}, u_{I_{\nu +1}})p_2 заканчивается в вершине s_{i_{\mu}} \in \sigma и \sigma - сильно связное подмножество, то между вершиной s_{i_{\nu +1}} и любой вершиной s \in \sigma по графу G(S,U) путь также существует. Отсюда следует, что \sigma Y \{s_{i_{\nu +1}}\} есть сильно связное подмножество. Это противоречит нашему предположению о том, что \sigma - максимальное сильно связное подмножество. Полученное противоречие и доказывает наше утверждение.

Достаточность. Поскольку рассматриваемый граф G(S,U) конечен, то конечным является и число его слоев. Предположим, что это число есть N.

Пронумеруем слои \sigma графа G(S,U) следующим образом:

  • \sigma_1 - слой, содержащий начальную вершину s_0 ;
  • пусть i-1 слоев (i=2, \dots, N-1) уже пронумеровано; слой \sigma получает номер i, если существует такая вершина s \in \sigma_{i-1} ( \sigma_{i-1} - слой с номером i-1 ) и такая дуга (s,s',u), что s' \in \sigma ;
  • номер N получает тот слой \sigma, все дуги которого ведут в вершины, принадлежащие \sigma.

Легко показать, что каждому слою графа G(S,U), удовлетворяющему условию доказываемой теоремы, в соответствии со сформулированной процедурой будет присвоен единственный номер из диапазона от 1 до N.

Обозначим через s^{(i)} вершину слоя \sigma_i, из которой выходит дуга (s^{(i)}, \tilde {s^{(i)}}, u^{(i)}), такая, что \tilde {s}^{(i)} \in \sigma_{i+1}. В силу второго условия теоремы эта дуга единственна. Рассмотрим подграф G(\sigma_i, u_i) графа G(S,U), где \sigma_i - множество вершин i -го слоя, u_1 - множество всех дуг, начало и конец которых есть вершины множества \sigma_i. Поскольку этот подграф сильно связен, то у него всегда существует обход p_i, начинающийся в вершине \tilde {s}^{(i-1)} и заканчивающийся в вершине s^{(i)} (i=1,2,\dots, N-1). Через p_N обозначим обход подграфа G(\sigma_N, U_N), начинающийся в вершине \tilde {s}^{(N-1)}. Условимся считать, что \tilde {s}^{(0)}=s^0.

Легко видеть, что путь p=p_1(s^{(1)}, \tilde {s}^{(1)}, u^{(1)})p_2 p_1(s^{(2)}, \tilde {s}^{(2)}, u^{(2)}) \dots p_1(s^{(N-1)}, \tilde {s}^{(N-1)}, u^{(N-1)})p_N является обходом графа G(S,U). Достаточность условий теоремы доказана.

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

По графу G(S,U) с начальной вершиной s_0 построим новый граф O(B(U)\times S,U), где B(U) - множество всех подмножеств U. Начальной вершиной графа O(B(U) \times S,U) будем считать вершину (U, s_0). Положим, что в этом графе из вершины (U_{i_1}, s_{i_1}) в вершину (U_{i_2}, s_{i_2}) ведет дуга ((U, s_{i_1}),(U_{i_2}, s_{i_2}),u), если:

  • дуга (s_{i_1}, S_{i_2},u) графа G(S,U) принадлежит U_{i_1} ;
  • U_{i_2}=U_{i_1}\\{(s_{i_1}, s_{i_2},u)\}, где знаком "\" обозначена теоретико-множественная разность.

Из самой конструкции графа O(B(U) \times S,U) легко следует справедливость следующего утверждения.

Лемма 6.1. Путь p=(s_0, s_{i_1}, u_{i_1})(s_{i_1}, s_{i_2}, u_{i_2}) \dots (s_{i_{k-1}}, s_{i_k}, s_{i_k}) в графе G(S,U) является его обходом тогда и только тогда, когда в графе O(B(U)\times S,U) существует путь

((u, s_0), (u_{i_1}, s_{i_1}'), u_{i_1}') \times ((u_{i_1},s_{i_1}', (u_{i_2}, s_{i_2}'), y_{i_2') \dots ((U_{i_{k-1}}, s_{i_{k-1}}'), (u_{i_k}, s_{i_k}'), u_{i_k}'),

такой, что

  1. u_{i_k}= \varnothing ;
  2. для любого \nu, 1 \le \nu \le k, s_{i_{\nu}}=s_{i_{\nu}}', u_{i_{\nu}}=u_{i_{\nu}}'.

Лемма 6.1 по существу дает алгоритмы для решения следующих задач:

  1. Выяснить, существует ли обход для графа G(S,U) с начальной вершиной s_0.
  2. Найти множество всех обходов графа G(S,U).
  3. Найти множество всех минимальных по длине обходов графа G(S,U).

Эти алгоритмы сводятся к построению по графу G(S,U) графа O(B(U) \times S,U) и последующему его анализу. Так, первая задача равносильна выяснению существования пути между вершиной (u, s_0) и любой вершиной вида ( \varnothing, s) этого графа, вторая - нахождению всех путей графа O(B(U) \times S,U) между упомянутыми вершинами и, наконец, третья - определению всех путей минимальной длины между теми же вершинами.

Перейдем к интерпретации полученных результатов для задачи, сформулированной в начале этой лекции. Сделаем это достаточно подробно, чтобы далее на этом детально не останавливаться.

Легко видеть, что при построении простого безусловного эксперимента для распознавания функции выходов инициального автомата нам достаточно ограничиться рассмотрением автомата без выходов A=(S,X, \delta, s_0), а не исходного автомата Мили A=(S,X,Y, \delta, \lambda, s_0), ему соответствующего.

Определение 6.1. Слово p \in X_e* будем называть характеристическим для автомата A=(S,X, \delta, s_0), если для любого состояния s \in S и любого входного символа x \in X существует начальный отрезок q этого слова, такой, что p=qxq' и \delta (s_0, q)=s.

Из этого определения следует, что характеристическое слово автомата в точности соответствует пути по графу этого автомата, начинающемуся в вершине s_0 и проходящему через все его дуги, т. е. обходу автоматного графа. Таким образом, исходная задача сведена нами к задаче построения характеристического слова для автомата A=(S,X, \delta, s_0). Простая переформулировка теоремы 6.1 дает возможность описать класс автоматов, для которых характеристическое слово существует.

Теорема 6.1. Для того чтобы конечный инициальный автомат A=(S,X, \delta, s_0) обладал характеристическим словом, необходимо и достаточно, чтобы выполнялись следующие условия:

  1. для любого состояния s \in S существует слово p \in X_e*, такое, что \delta (s_0, p)=s ;
  2. для любого слоя \sigma существует не более одного состояния s \in \sigma и не более одного входного символа x \in X, таких, что \delta (s,x) \notin \sigma.
< Лекция 5 || Лекция 6: 12 || Лекция 7 >
Дмитрий Степаненко
Дмитрий Степаненко
Россия
Юрий Фролов
Юрий Фролов
Украина