Задача декомпозиции
Задача декомпозиции – это задача построения сети автоматов N, реализующей заданный автомат. Таким образом, задача декомпозиции состоит в том, чтобы для заданного автомата построить сеть из более простых автоматов, которая бы реализовала заданный автомат. При декомпозиции используется аппарат разбиения множества состояний. Дадим необходимые определения. Пусть существует множество состояний автомата S:
S= { 1, 2, 3, 4, 5, 6 }. (1.17)
Разбиением p множества S называют множество его подмножеств, которые не пересекаются между собой и в объединении дают множество S. Эти подмножества называют блоками разбиения. Например, для заданного множества (1.17) разбиением может быть
p1(S) = { 1234, 56 }.
Одноэлементным разбиением множества S p0(S) называется такое разбиение, в котором в каждом блоке содержится ровно 1 элемент множества S. p0(S) = { 1, 2, 3, 4, 5, 6 }.
p разбиения можно сравнивать между собой по величине элементов. Разбиение pi £ pj, если каждый блок разбиения pi входит в какой-нибудь блок разбиения pj. Например, пусть множество S (1.17) имеет три p разбиения: разбиение p1(S) = { 1234, 56 }, p2(S)={12, 34, 56} и p3(S) = { 15, 34, 26 }. При сравнении разбиений p1 и p2 следует, что p1(S) ³ p2(S) так как все блоки разбиения p2 полностью входят в блоки разбиения p1. При сравнении разбиения p3 с разбиениями p1 или p2 можно сделать вывод, что данные разбиения нее сравнимы, так как блоки ни одно из разбиений полностью не входят друг в друга. Произведением разбиений pi(S) и pj(S) называется разбиение pk(S) такое, что pi(S) ³ pk(S) и pj(S) ³ pk(S) и не найдётся разбиение pm(S) множества S pm(S) > pk(S), удовлетворяющего условиям: pi(S) ³ pm(S) и pj(S) ³ pm(S). Например для разбиений p1(S) = {1234, 56 } и p2(S) = { 1256, 34 } произведением будет разбиение pk(S) = p1(S) x p2(S) = { 12, 34, 56 }. Разбиение pk(S) получается перемножением каждого блока разбиений p1(S) и p2(S) между собой (1234 х 1256 = 12; 1234 х 34 = 34 и т.д.). Произведение разбиений содержит все непустые пересечения блоков разбиений-сомножителей. Множество разбиений p1(S), p2(S), …, pn(S) называется ортогональным, если произведение всех разбиений равно одноэлементному разбиению множества S, т.е. p1(S) x p2(S) x … x p n(S) = p0(S). Например выберем для множества состояний S (1.17) разбиения p1(S) = { 1234, 56 }, p2(S) = { 1256, 34 } и p3(S) = { 135, 246 }. Проверка показывает, что p1(S) x p2(S) x p3(S) = { 1, 2, 3, 4, 5, 6 } = p0(S). Рассмотрим последовательность вычислений: pk(S) = p1(S) x p2(S) = { 12, 34, 56 }; pk(S) x p3(S) = { 1, 2, 3, 4, 5, 6 }. Это означает, что разбиения p1(S), p2(S) и p3(S) – ортогональны. Общая теорема декомпозиции. Множеству разбиений {pi(S), i=1, N} можно поставить в соответствие абстрактную сеть автоматов, реализующих заданный автомат S, тогда и только тогда, когда выбранные p разбиения ортогональны
. (1.18)
|