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

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

< Лекция 7 || Лекция 8: 12 || Лекция 9 >

Определение 8.4. Приведенное покрытие графа, являющееся минимальным по кратности и по длине, назовем минимальным.

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


Рис. 8.2.

Покрытия P_1=\{u_1u_2u_3u_4u_5u_6u_8, u_1u_2u_7u_6u_8u_9\} и P_2=\{u_1u_2u_3u_4u_5u_6u_8u_9, u_1u_2u_7\}, как легко видеть, являются приведенными покрытиями этого графа. Покрытие P_1 является минимальным по кратности (кратность его равна 1), но не минимальным по длине (длина его равна 13). Покрытие P_2 (длины 11 и кратности 2) является минимальным по длине, но не минимальным по кратности. Легко установить, что для данного графа минимального покрытия не существует.

Перейдем к отысканию условий, при которых минимальное покрытие существует. Покажем справедливость следующего вспомогательного утверждения.

Лемма 8.5. Если P есть покрытие графа G минимальной длины, то любой путь из P, не оканчивающийся в начальной вершине графа, оканчивается в некоторой положительной его вершине.

Доказательство. Пусть P - покрытие графа G(S,U) минимальной длины l. Предположим, что существует путь p \in P, оканчивающийся в некоторой не положительной вершине w, где w \ne s_0. Покрытию P соответствует регулярный сильно связный сверхграф H, способ построения которого описан при доказательстве леммы 8.3.

Преобразуем граф H следующим образом: каждую дугу u \in U заменим f дугами u(1), \dots, u(f) с тем же началом и концом, где f - число путей из P, содержащих дугу u. Легко видеть, что полученный в результате граф H' обладает эйлеровым контуром. Поскольку w не обладает положительной вершиной графа G и w \ne s_0, то в графе H эта вершина отрицательна, а в графе H', очевидно, \Delta (w)=0. Отсюда следует, что найдется такая дуга u_1 \in U, оканчивающаяся в вершине w, что в графе H' существуют дуги u_1(1), \dots, u_1(f), где f \ge 2. Выполним следующее преобразование графа H': исключим из него дугу u_1(f) и одну замыкающую дугу, исходящую из w. Далее, из начальной вершины дуги u_1(f), если она отлична от s_0, проводим одну замыкающую дугу в s_0. Полученный в результате такого преобразования новый граф H*, как это следует из его построения, обладает эйлеровым контуром.

Число дуг графа H* по крайней мере на единицу меньше числа дуг графа H'. Любому эйлерову контуру графа H' соответствует покрытие P* графа G длины, не большей l-1. Отсюда следует, что P не является покрытием минимальной длины. Полученное противоречие доказывает лемму.

Сформулируем достаточное условие существования у графа минимального покрытия.

Теорема 8.4. Если у правильного графа множества S^+ и R^+ совпадают, то у него существует мимнимальное покрытие.

Доказательство. Если у правильного графа G множество S^+ пусто, то он обладает эйлеровым контуром. Очевидно, что эйлеров контур является минимальным покрытием графа.

Предположим теперь, что множество S^+ не пусто, следовательно, S^- также не пусто. Поскольку S^+=R^+, а множество R^+ состоит из вершин, из которых не достижима ни одна отрицательная вершина, то граф G заведомо не является сильно связным. В силу следствия 1 теоремы 8.3 минимальная кратность покрытия графа G в таком случае равна (8.2).

Пусть P есть покрытие графа G минимальной длины d и каждый путь из P оканчивается в вершине, не равной s_0. Тогда по лемме 8.5 каждый путь из P оканчивается в вершине множества R^+. Предположим, что P не минимально по кратности, т. е. его кратность k больше (8.1). Пусть покрытию P соответствует сильно связный регулярный граф H (см. доказательство леммы 8.2). По графу H построим эйлеров граф H', заменяя каждую дугу u \in U столькими дугами (с тем же началом и концом), скольким путям из P принадлежит дуга u. Поскольку k больше (8.1), то найдется вершина t \in S_+, из которой в графе H выходит l замыкающих дуг, где l>\Delta (t). Следовательно, в графе H найдется дуга \nu \in U, входящая в вершину t и принадлежащая по крайней мере двум путям из P. Тогда в графе H' удалим одну дугу \nu', соответствующую дуге \nu, и удалим одну замыкающую дугу, исходящую из t. Затем из начала дуги \nu' в вершину s_0 проведем одну дугу. Легко видеть, что полученный граф H* является эйлеровым и его эйлерову контуру соответствует покрытие графа G длины d-1. Следовательно, P не является покрытием минимальной длины. Противоречие доказывает, что P - минимально еопкрытие.

Рассмотрим, наконец, минимальное по длине покрытие P=\{p_1, \dots, p_k\} графа G, у которого некоторые пути оканчиваются в s_0. Пусть кратность покрытия P больше (8.1) и пути p_1, \dots, p_l оканчиваются в s_0. Легко видеть, что покрытие P'=\{p_1p_2 \dots p_{l+1}p_{l+2}, \dots, p_k\} также является покрытием минимальной длины и все пути из P' оканчиваются только в положительных вершинах. Выше было показано, что кратность покрытия P' минимальна. Теорема доказана.

Перейдем к описанию алгоритма построения покрытия правильного графа G. Пути искомого покрытия обозначим через p_i. Каждой вершине s \in T поставим в соответствие множество U_s^0 всех дуг, выходящих из s. Дуги в U_s^0 занумеруем числами 1,2, \dots причем если u_i, u_j \in U_s^0 и u_i - петля, то i<j.

В алгоритме будут использованы функции \varphi и \delta, определяемые такими соотношениями: \varphi (u) - номер дуги u во множестве U_s^0, \delta(s,p) - конечная вершина пути p, исходящего из вершины s.

В описанном алгоритме кроме построения покрытия производится вычисление параметра j, необходимого для оценки длины полученного покрытия.

Для краткости при описании алгоритма используем операцию присваивания ":=", употребляемую в том же смысле, что и в алгоритмических языках.

Алгоритм А.

  1. P:=  \varnothing, i:=1, p_i:=e, s:=s_0, j=0 ; для всех s \in T:U_s:=U_s^0.
  2. Если U_s \ne  \varnothing, то перейти к пункту 3, иначе к пункту 4.
  3. p_i=p_iu, где u - дуга из множества U_s, имеющая наименьший номер; U_s:=U_s\ \{u\}, s:=\delta (s,u) ; если \varphi (u) \ne 1, то j:=j+1 ; перейти к пункту 2.
  4. Если Y_{s \in S} U_s \ne  \varnothing то перейти к пункту 5, иначе работа алгоритма завершается.
  5. Если из вершины s достижима хотя бы одна вершина t, для которой U_t \ne  \varnothing, то перейти к пункту 6, иначе к пункту 7.
  6. Построить кратчайший путь q_j, ведущий из вершины s в вершину из множества \{t|U_t \ne  \varnothing \}, p_i:=p_iQ_j, и перейти к пункту 3.
  7. s:=s_0; P:=PY\{p_i\}; i:=i+1; p_i:=e и перейти к пункту 3.

Заметим, что в случае сильно связного графа полученное по этому алгоритму покрытие имеет кратность 1.

Оценим сверху длину покрытия, построенного с помощью алгоритма A. Пусть m_s - мощность множества U_s, s \in T. Множество \{m_s\}_{s \in T} упорядочим отношением " \le " и обозначим через (m_1, \dots , m_s), где m_i \le m_j, если i <j.

Алгоритм A можно считать пошаговым процессом, где j -м шагом будут являться построения, выполняемые алгоритмом при фиксированном значении параметра j. Путь q_j, описанный в пункте 6 алгоритма A, будем называть транслирующим. Очевидно, что длина покрытия, построенного по алгоритму, равна сумме числа дуг графа и длин всех транслирующих путей.

Оценим суммарную длину всех транслирующих путей покрытия, построенного по алгоритму A.

Из описанного алгоритма следует, что длина транслирующего пути q_j не превосходит числа таких вершин s из T, для которых на j -м шаге U_s= \varnothing. Поэтому для значений j от 0 до m_1-1 включительно q_j=e, где e - "пустой" путь. Далее, для значений j от m_1 до m_2-1 включительно длина q_j не превосходит единицы. Из описания алгоритма следует, что на последнем шаге работы алгоритма значение j равно \sum_{i=1}^f(m_i-1). Отсюда, учитывая предыдущие рассуждения, легко показать, что суммарная длина транслирующих путей, построенных по алгоритму, не превосходит величины

Q=\sum_{i=1}^{f}(i-1)(m_i-1) ( 8.3)

Следовательно, справедливо следующее утверждение.

Теорема 8.5. Для правильного графа G всегда существует покрытие, длина которого не превышает величины

W+Q ( 8.4)

где W - число дуг графа.

Следствие 1. Для правильного n -вершинного автоматного графа степени m всегда существует покрытие длины, не превышающей величины

mn+\frac 12 (m-1)n(n-1) ( 8.5)

Следствие непосредственно вытекает из теоремы 8.5, так как для автоматного графа W=mn и Q=\frac 12 (m-1)n(n-1).

В [16] доказано, что для всех n и m существует n -вершинный сильно связный автоматный граф степени m, у которого имеется контур, проходящий через все дуги графа, минимальной длины, равной (8.5). Из этого факта следует, что оценка (8.5) достижима при всех n и m. Следовательно, оценки (8.4) и (8.3) также достижимы.

Перейдем теперь к автоматной интерпретации полученных результатов. Если автомат Мили задан в виде конечного ориентированного автоматного графа, то каждому пути покрытия графа ставится в соответствие некоторое входное слово, а множество слов, соответствующих всем путям покрытия, составит кратный безусловный эксперимент. Таким образом, для распознавания функции выходов заданного инициального автомата или ему эквивалентного с n состояниями и m входными сигналами может быть использован кратный эксперимент , длина которого не превышает величины (8.5), а кратность - величины (8.2). Необходимое и достаточное условие существования кратного эксперимента, а также алгоритм его построения получаются простой переформулировкой теоремы 8.1 и алгоритма А.

Вопросы и упражнения

  1. Приведите постановку задачи контроля функции выходов автомата с помощью кратного эксперимента.
  2. Приведите определение покрытия графа и его кратности.
  3. Каков критерий существований покрытия графа?
  4. Дайте определение приведенного покрытия графа.
  5. Приведите верхнюю и нижнюю оценки кратности для правильного не сильно связного графа.
  6. Дайте определение минимального покрытия графа.
  7. Каково условие существования минимального покрытия?
  8. Опишите процедуру построения покрытия правильного графа.
< Лекция 7 || Лекция 8: 12 || Лекция 9 >
Дмитрий Степаненко
Дмитрий Степаненко
Россия
Юрий Фролов
Юрий Фролов
Украина