Текст
                    С. И. БАРАНОВ
СИНТЕЗ _____—
МИКРОПРОГРАММНЫХ АВТОМАТОВ
(граф-схемы и автоматы)
ИЗДАНИЕ ВТОРОЕ,
ПЕРЕРАБОТАННОЕ И ДОПОЛНЕННОЕ
О
ао
LD
ТО
ш
ЛЕНИНГРАД «ЭНЕРГИЯ» ЛЕНИНГРАДСКОЕ ОТДЕЛЕНИЕ 1979

ББК 32.972 Б 24 УДК 007.52 : 519.713 Рецензент В. Б. Смолов Баранов С. И. Б24 Синтез микропрограммных автоматов (граф-схемы и авто- маты).— 2-е изд., перераб. и доп.— Л.: Энергия, Ленингр. отд-ние, 1979.— 232 с., ил. В книге в доступней для ин/кенера-разработчика форме изложены основы теории конечных автоматов и операторных, схем алгоритмов, связанные воедино с теорией и практикой проектирования микропрограммных управляющих уст- ройств. Основное внимание уделено методам, удобным в инженерной практике и обеспечивающим проектирование автоматов реальной сложности Первое издание вышло в 1974 г. Во втором издании книга в значительной степени переработана, в частности отражены новые направления, утвердившиеся в практике проектирования в последние годы Книга представляет интерес для разработчиков систем дискретной автома- тики и вычислительной техники, а также для студентов и аспирантов, специали- зирующихся в названных областях. 30311—106 051(01)—79 155—79. 2405000000 ББК 32.972 6Ф7.3 © Издательство «Энергия», .1979
ПРЕДИСЛОВИЕ Со времени выхода первого издания книги «Синтез микропро- граммных автоматов» прошло около пяти лет. И хотя в области математических моделей дискретных устройств в последние годы наблюдается определенная стабильность, автор тем не менее счел необходимым не только существенно переработать материал пер- вого издания, но и добавить новые разделы (главы первая, третья, четвертая и десятая). К задаче нахождения минимального замкну- того покрытия (глава третья) сводится не только задача минимиза- ции частичных автоматов, но и ряд весьма важных задач, выходя- щих за рамки теории автоматов. Включение раздела по декомпози- ции автоматов (глава четвертая) объясняется стремлением автора привлечь внимание к этой весьма перспективной области и стиму- лировать дальнейшие работы в этом направлении. Материал, пред- ставленный в десятой главе, был получен в последние годы в ре- зультате усилий по формализации синтеза управляющих устройств на программируемых логических матрицах. Краткие сведения из теории множеств (глава первая) включены для придания книге некоторой автономности в смысле используемого математического аппарата. Автор благодарит всех читателей, приславших свои отзывы на первое издание, а также сотрудников, аспирантов и студентов ка- федры вычислительной техники ЛИТМО за ценные советы, заме- чания и помощь при подготовке рукописи к печати. Автор особо благодарит рецензента, доктора технических наук, профессора В. Б. Смолова, чьи замечания способствовали существенному улуч- шению качества первого и второго изданий книги. Отзывы на книгу и пожелания просьба направлять по адресу: 191041, Ленинград, Д-41, Марсово поле, 1. Ленинградское от- деление издательства «Энергия». Автор
ГЛАВА ПЕРВАЯ_________________________________________ ЭЛЕМЕНТЫ ТЕОРИИ МНОЖЕСТВ 1-1. Множество Понятие множества является первоначальным неопределяемым поня- тием в современной математике. Под множеством обычно понимают некоторую совокупность (синонимы — система, коллекция, класс) объектов, которые называются элементами этого множества. Множество определяется своими элементами. Можно говорить о множестве страниц в данной книге, о мно- жестве букв на данной странице, о множестве читателей этой книги (сразу ясно, что множество может и не содержать никаких элементов), множестве действительных чисел и т. п. При задании множества важно, чтобы для лю- бого предмета и любого множества можно было указать, является этот пред- мет элементом данного множества или нет. Тот факт, что а есть элемент множества А (а принадлежит А), записы- вается следующим образом: a g А. Отрицание этого утверждения — «а не принадлежит Л» обозначается так: а ф А. Множество, у которого число элементов конечно, называется конечным множеством. В противном случае множество — бесконечное. Два множества Л и В равны (Л = В), если и только если они состоят из одних и тех же элементов. Для доказательства равенства множеств до- статочно доказать, что если a g Л, то a g В и, обратно, если b g В, то b g Л. Наибольшее распространение получили два способа задания множеств-. 1. С помощью перечисления элементов, которые записываются внутри фигурных скобок через запятую. Например, Л = {«J, а2, as}. Перестановка элементов списка не меняет множества: так, множества {1, 3, 5} и {1, 5, 3} совпадают. Ясно, что таким образом можно задавать только конечные множества, причем множества, содержащие сравнительно небольшое число элементов. Например, можно, но практически трудно задать таким образом множество целых чисел от 1 до 109. 2. С помощью характеристического свойства — общего свойства объек- тов, из которых образовано множество: Л = |а|а обладает свойством Q}. Здесь вертикальная черта после а означает «таких, что», т. е. Л — мно- жество элементов, таких, что они обладают свойством Q. Например, если N — 1, 2, 3, . . . , то множество Л — {ala = 2n, п g N] есть множество четных чисел. Иногда бесконечные множества задают просто перечислением нескольких первых элементов, и тогда характеристическое свойство оказы- вается заданным в неявном виде. Например, то же множество четных чисел можно задать так: Л = {2, 4, 6, 8, . . .}. Множество А называется подмножеством множества В (иначе — Л вхо- дит в В), если и только если каждый элемент множества Л принадлежит мно- жеству В. Обозначение: A s В или В = А. 4
Множество, не содержащее никаких элементов (число элементов в нем равно нулю), называется пустым множеством (обозначение о). Понятие пу- стого множества необходимо не только для упрощения всевозможных опреде- лений, но и для того, чтобы, производя различные операции над множест- вами (см. ниже), не оговаривать каждый раз, пусты множества, используемые в операциях, или нет. Зачастую мы даже не знаем этого заранее. Например, ие заглянув на стр. 173, нельзя сказать, пусто или нет множество рисунков на этой странице. Но тем не менее мы можем говорить о множестве рисунков иа стр. 173, 174 и 175. Другой пример: в настоящий момент (по крайней мере, когда я пишу эти строки, а не когда книга выйдет из печати) неизвестно, пусто или нет множество всех целочисленных корней уравнения хп + уп = = г" при п >2 (проблема Ферма). Ясно, что в соответствии с определением подмножества пустое множество является подмножеством любого множества, так как все его элементы (а у него их нет) являются элементами любого множества. Поскольку любое множество является своим подмножеством (A s А), то и 0 s 0. Число всевозможных подмножеств любого конечного множества, со- держащего п элементов, равно 2". Например, у множества А = {1, 2, 3} восемь подмножеств: 0, {1}, {2}, {3}, {1,2), {1,3}, {2, 3}, {1,2, 3). Из них 0 и само А — несобственные подмножества, все остальные — собственные под- множества множества А. Следует различать элемент а и одноэлементное множество {а}. Ясно также, что множество {0} —не пустое (0^(0)), а одноэлементное: его единственным элементом является пустое множество. Еще несколько при- меров: 1. А = {1, 2, 3, 4}; 1£Л; 3£Л; {1,3}^Л; {1,Г3{^Л. 2. В = {1, 2, {3}}; 1£В: З^В; {1, 2}сВ; {2}сВ; {3} ф В; {ЗКВ. 3. С= {1, 2, {1, 2}}; {1, 2}£С; {1, 2}сС. 4. D = {0, {0}); 0 {0}£D; {0)CD (так как 0^D); 0eD (так как пустое множество есть подмножество любого множества). 1-2. Операции над множествами Прежде чем определить операции над множествами, введем понятие универсального множества. В конкретной математической области (и не только математической) бывает полезно ввести в рассмотрение столь обшир- ное множество U, что все рассматриваемые множества окажутся его подмно- жествами. Такое множество U принято называть универсальным множест- вом или универсумом. Отметим,Тчто^универсальное множество — понятие относительное: оно выбирается для какой-нибудь определенной области. Например, в арифметике универсальным множеством считается множество R рациональных чисел. Еще пример, из другой области: если обсуждается какое-либо мероприятие в пределах некоторого вуза, то в качестве универ- сального множества лучше выбрать множество студентов данного вуза, а не всего города или страны. Пересечение двух множеств А и В (А (~) В) определяется следующим об- разом: ЛГ)В = {а|а£Л и~а£В}. Эта операция иллюстрируется с помощью диаграммы Венна (рис. 1-1), иа которой универсальное множество U и множества А и В есть множества точек плоскостей, ограниченные соответствующими замкнутыми линиями. Результат операции А П В заштрихован. Wl®*» Объединение двух множеств (Я (J В) определяется~следующим образом (рис. 1-2): Ли^={а'|'а^Л или а £ В}. 5
Дополнение (Л) множества А до универсального множества — одномест- ная операция (рис. 1-3): А = [a\a£U и афА}. Разность двух множеств (А \ В) определяется следующим образом (рис. 1-4): Рпс. 1-1. Пересечение множеств Л\В = {а|а£Л и а<£ В}. Ясно, что А = U \ А. Приведенные операции замкнуты в множе- стве U: и операнды, и результаты операций вхо- дят в U. Так как операции пересечения и объедине- ния ассоциативны: (АПВ)ПС = ЛЛ(ВПС); MUB)UC= Ли(ВиС), можно говорить о пересечении и объединении произвольного числа множеств: Л^ЛзЯ. . .ЛЛП= П Л,; 1=1 Л,и^и- • -ил„ = U At. 1=1 Рис. 1-2. Объединение Для определения операции произведения множеств множеств нам потребуется понятие кортежа (век- тора), которое также является неопределяемым в современной математике. Вместе с понятием кортежа вводится понятие ком- понента (координаты). Кортеж из двух компонентов называется парой, из трех — тройкой, . . . , из п — n-кой; п-компонент- ный кортеж задается перечислением компонен- тов через запятую в круглых скобках, напри- мер а = («J, а2, . . . , ап). В отличие от множества, в котором эле- менты не повторяются, кортеж может иметь одинаковые компоненты, например, (1, 2, 1, 3, 2) — пятикомпонентный кортеж. Число ком- понентов в кортеже называется длиной кор- тежа. Два кортежа считаются равными, если их длина одинакова и соответствующие компоненты равны между собой. Таким образом, если (а1> а2, . . ,,ап)^ (aj, а'2, .... а'п), то а( = = а[ для всех i = 1, . . . , п. Пусть, например, а = (1, 2, 3, 2, 4); ₽ = (1, 2, 3, 2); у = (1, 2, 3, 2, 4); б = (1, 2, 3, 1, 4). Ясно, что а = у, но а + Р и а ¥= 6. Пусть Л и В — два множества. Множе- ство Рис. 1-3. Дополнение множества Рис. 1-4. Разность мно- С = {(а, Ь)\а£А, Ь£В} всевозможных пар (а, &) называется произееде- жеств наем множеств Л и В и обозначается С = А X В. С содержит тп элемен- тов, где man — числа элементов А а В соответственно. 6
*5 Множество С = [ (oj, а2) | al Q А и а2 £ А} всех упорядоченных пар (я1( а2) элементов из А назовем квадратом множе- ства А и будем обозначать А2. Если Alt , Ап — множества, то под их произведением будем пони- мать множество п В = Aj X А2 X . . . X Ап = X А( = {(«J, . . . , а„) | а^Ар . . . , ап£Ап] i=l всевозможных кортежей длины п, i-я координата которых принадлежит А,. Пусть Ai= {1, 2), В = {а, b, с). Тогда А X В = {(1, а). (1 ,&),(!, с), (2, а), (2, &), (2, с)}. Ясно, что А X В =/= В X А; А X (В X С) Ф (А X В) X ХС А X В X С; Аг‘ х A'J АЛ+Г< 1-3. Соответствие. Функция. Отношение Любое подмножество Р s А X В произведения множеств А и В назы- вается бинарным соответствием из А в В. При этом множество А называется областью отправления, множество В — областью прибытия соответствия Р. Рис. 1-5. График соответствия Р Рис. 1-6. Стрелоч- ное представление соответствия Р Соответствие предполагает, что некоторым элементам множества А (воз- можно, всем) поставлены в соответствие некоторые элементы множества В. Пусть, например, А = {1, 2, 3, 4, 5}; В= {а, b, с, d, е, /}; соответствие из А в В, Р = {(1, а), (3, а), (3, Ь), (3, с), (4, с), (5, Ь), (5, е)). Сущест- вует много способов задания соответствия, мы будем пользоваться двумя из них: с помощью графиков (рис. 1-5) и стрелочного представления (рис. 1-6). Любое подмножество R <= А2 квадрата множества А называется бинар- ным отношением на А. Таким образом, бинарное отношение есть частный случай соответствия, у которого область отправления равна области при- бытия. Если D — множество точек прямой, тогда D2 — плоскость. Произвольное отношение на D можно рассматривать как множество отме- ченных на плоскости точек. Графики двух отношений Rr ~ {(х, у) | х2-\- у2 = = 1) и {(х, У) I У = *2) приведены на рис. 1-7, а и б соответственно. Имеются два тривиальных соответствия из А в В: множество А X В (полное соответствие); пустое подмножество 0 s А X В (пустое соответствие из А в В). 7
Для соответствий Р, Q из А в В может иметь место включение Р е Q. Поскольку соответствия являются множествами, к ним применимо обыч- ное определение равенства: два соответствия Р и Q равны, если и только если они состоят из одних и тех же элементов. Над соответствиями, как над под- множествами А X В, можно производить операции /"}, U> \> дополнения. Ниже будут рассмотрены свойства соответствий и отношений, характеризую- щиеся тем, что это не просто множества, а подмножества А X В или А2. Все сказанное о соответствиях будет справедливо и для отношений как част- ных случаев соответствий. Рис. 1-7. Графики отношений Рг (а) и Д2 (б) Проекция пары а = (а, Ь) на первую (вторую) ось равна ее первой (вто- рой) координате: Pti (а) = а; Рг2 (а) = Ь. Если Р ss А X В — соответствие, то проекции Pri (Р) и Pr3 (Р) соот- ветствия Р на первую и вторую оси определим следующим образом: , Ply (Р) = {а | а = Ргх (а) для а£Р}; Рг2 (Р) = {Ь | b — Рг2 (а) для а £ Р]. Для соответствия Р = {(1, а), (3, а), (3, Ь). (3, с), (4, с), (5, 6), (5, е)} (рис. 1-5 нлп 1-6) Ргх(Р) = {1, 3, 4, 5); Рг2(Р)={а, Ь, с, е). Pri (Р) называется областью определения соответствия Р s А X В, а Рг3 (Р) — областью значений соответствия Р. Если А = Ргх (Р) (область отправления равна области определения), то соответствие Р всюду (или пол- ностью) определено. Если В = Рг2 (Р), то говорят, что соответствие Р осу- ществляется на все множество В или что оно является сюръективным соот- ветствием. Пусть Р s А X В — соответствие; X = Ргх (Р), У = Рг2 (Р). Гово- рят, что соответствие Р определено в А и принимает значения в В; соответст- вие Р определено иа X и принимает значения на Y. Образом элемента a g А при соответствии Р s А X В или левым се- чением соответствия Р по элементу а называется множество sz(fl, Р)= {Ь\Ь£В и (а, &)£Р}. Прообразом элемента b £ В при соответствии Р s А X В илн правым сечением соответствия Р по элементу Ь называется множество Sr(P, b) = {ala£A и (а, Ь)^Р}. 8
Если А'~ Л, то образом множества А‘ при соответствии Р <= А X В (левым сечением соответствия Р по множеству Л') называется множество S/(A', Р) = U S;(a, Р). а£А' Если В's В, то прообразом множества В’ при соответствии Р <= А X В (правым сечением Р по множеству В') называется множество Sr(P, В’)= U Sr(P, b). Ь£В' Например, в рассматриваемом соответствии (рис. 1-5, 1-6), Sz(3, Р)— = {а, Ь, с}; Sz(l, Р) = [а}\ Sz(2, Р) = о; Sr(P, а) = (1, 3}; Sr(P, d} = Sr(P, f) = 0 - Если Л'={1, 2, 4} С? A; B' = {b, с, d'czfl, то S[(A', Р) = {а, с); Sr(P, В') = {3, 4, 5). Пусть а —(а, Ь) е Л х В. Пара а-!=(6, а)£В X А называется ««• версной по отношению к паре а, а операция сопоставления парам a g Л X В их инверсных пар называется инверсией. Если Р — соответствие из Л в В, то под инверсным соответствием Р—1 понимается со- ответствие из В в Л, состоящее из пар, инвер- сных парам из Р: P-i= ((Ь, а)\а£А, Ь£В, (а, 6)£Р). В нашем примере Р~1 = {(а, 1), (а, 3), (Ь, 3), (6,5/, (с, 3), (с, 4), (е, 5)}. Легко ви- Рис. 1-8. Пример графа би- нарного отношения деть, что при инверсии проекция на первую ось для Р становится проекцией на вторую ось для Р~1, левые сечения переходят в пра- вне, правые в левые и т. п. Пусть даны соответствия Рс Л X В и Qc В X С. Композицией со- ответствий Р и Q называется соответствие 7? CZ Л X С, определяемое сле- дующим образом: R = PQQ={(a, с) | существует Ь£В, такое, что (a, b) £ Р и (6, c)£Q}. Пусть, например, Л = {1, 2, 3, 4}; В = {a, b, с}; С = {и, v, w, х, у] и Р = {(1, b), (1, с), (2, а), (4, а), (4, с)}; Q = {(а, и), (а, х), (b, w), (с, о), (с, у)}; R = PQQ = {(1, ш), (1, о), (1, у), (2, и), (2, х), (4, и), (4, х), (4, о), (4, у)}. Очевидно, что соответствие Pr Q не пусто тогда и только тогда, когда Pr2P П Pr/Q 4= 0- В противном случае оно считается неоп- ределенным. Можно показать, что композиция соответствий — ассоциативная опера- ция, т. е. (Р О Q) О Т = Р О (Q О Т). Здесь Р, Q, Т — соответствия. Пусть на множестве Л задано бинарное отношение R С Л2. Построим граф, вершины которого — элементы множества Л, причем две вершины а; и а, соединим дугой (линией со стрелкой), направленной от а(- к а/, если (at, as) g R. На рис.1-8 приведен граф, соответствующий отношению Р = {(1, 1), (1, 2), (1, 3), (2, 3), (3, 2), (3, 3)) на множестве Л = {1, 2, 3). Ясно, что для каждого отношения можно построить единственный определенный таким образом граф, поэтому можно считать, что теория ориентированных графов и теория бинарных отношений — одна и та же теория. Соответствие фСЛХВизЛвВ называется функциональным соот- ветствием или функцией, если левое сечение <р по каждому элементу состоит не более чем из одного элемента. Ясно, что соответствие на рис. 1-6 не яв- ляется функцией, так как элементы 3 и 5 его области определения имеют бо- лее одного образа. По той же причине не будет функцией и соответствие (от- ношение) на рис. 1-7, а (каждый элемент области определения кроме х = = —1 и х = 1 имеет два образа). Но соответствие на рис. 1-7, б — функция. 9
Функция называется всюду определенной функцией или отобр ажением если ее область определения совпадает с областью отправления: А = Pryf Для функций в этой книге мы будем использовать следующие обозначения <р:Л->В; А X В; <p (х); y = q(x). Функция q> называется сюръекцией, если и только если ее область при- бытия совпадает с множеством значений.' В = Рг2(р. Функция называется инъекцией, если различные элементы множества А имеют различные образы: если х, х2, то f (Xj) =# f (х2). Отображение, одновременно сюръективное и инъективное, называется биективным отображением или биекцией. Его также часто называют взаимно-однозначным отображением. 1-4. Отношения эквивалентности и порядка Пусть R — бинарное отношение на множестве А. Вместо (a, b) £ R будем иногда использовать обозначение aRb. Приведем ряд свойств, кото- рыми могут обладать бинарные отношения: 1. R рефлексивно, если aRa для всех a g А; 2. R антирефлексивно,1 если (а, а) $ R для всех а С А; 3. R симметрично, если из aRb следует bRa~, 4. R антисимметрично, если из aRb и bRa следует а = &; 5. R транзитивно, если из aRb и bRc следует aRc. Бинарное отношение R называется эквивалентностью, если оно рефлек- сивно, симметрично и транзитивно. Примеры отношений эквивалентности: J. Отношение равенства на А, называемое диагональю Л; 2. Полное бинарное отношение R = Л2; 3. Отношение «быть на одном курсе» на множестве студентов факуль- тета; 4. Отношение «иметь одинаковый остаток при делении на 3» (сравни- мость по mod 3); 5. Пусть f : X -> У — отображение. Зададим на множестве X отно- шение R, такое, что хгРх2, если и только если f (xj) = f (х2). Нетрудно по- казать, что R — отношение эквивалентности. С каждым отношением эквивалентности на Л связано разбиение множе- ства Л на классы эквивалентности — непустые непересекающиеся подмно- жества множества А, объединение которых равно Л. Другими словами, ’{Bi, . . . , Вп} — разбиение Л (В; е Л), если и только если справедливо: п 1. Л = и В,-; i=i 2. Bif'|B/-= 0 при i j; 3. В j 0 . С помощью разбиения можно дать конструктивное определение эквива- лентности: отношение R на множестве Л называется эквивалентностью, если существует разбиение {В1г . . . , Вп] множества А, такое, что aRb выпол- няется тогда и только тогда, когда а и b принадлежат одному и тому же классу разбиения Л. В этом случае говорят, что R — отношение эквивалент- ности, соответствующее данному разбиению, а Вх......Brt — классы экви- валентности. Более подробно мы вернемся к разбиениям в четвертой главе. Бинарное отношение R на множестве Л называется отношением частич- ного порядка, если оно рефлексивно, транзитивно и антисимметрично. От- ношение частичного порядка часто обозначается Примеры частичного порядка: 1 Не следует путать понятия «нерефлексивное отношение» п «антиреф- лексивное отношение». В первом случае для некоторых а £ Л (но не для всех) может быть справедливым aRa. 10
1. Отношение (не больше) на множестве целых чисел; 2. Отношение s (включение) на множестве всех подмножеств некото- рого множества. Например, если А = [I, 2, 3j, то множество его подмно- жеств содержит 8 элементов: {{ 0 }, {1}, {2}, {3}, {1,2}, {1,3), {2, 3j, {1, 2, 3}}. На этом множестве: (1} CZ {1, 2); {1} cz {1, 3}; {1, 2} cz [1, 2, 3); 0 cz ^(любое из этих подмножеств); {1, 3} CZ {1, 3}, но {1} д4 {2}; {1, 2) с£ {1, 3} и т. д.; 1 3. Отношение «быть потомком» на множестве людей, живущих и жив- ших на Земле. 4. Иерархия на предприятии есть частичный порядок на множестве должностей. 5. Отношение «быть делителем» на множестве натуральных чисел. Кроме условий рефлексивности, антисимметричности и транзитивности отношение Д может удовлетворять условию дихотомии: для любых a, b С А справедливо либо aRb, либо bRa. Такое отношение называется линейным порядком (иногда используется термин «совершенный порядок»). В случае линейного порядка любые два элемента множества, на котором он определен, упорядочены. Если отношение антирефлексивно, антисимметрично и транзитивно, оно называется строгим порядком (для него часто используется обозначение <). Если любые два элемента множества, на котором определено отношение стро- гого порядка, упорядочены, такой порядок называется строгим линейным порядком. Для строгого линейного порядка выполняется условие трихо- томии: для любой пары элементов a, b g А выполняется одно из трех: либо а < Ь, либо b < а, либо а = b (а и b — один и тот же элемент). Множество А, на котором определено отношение частичного порядка, называется частично упорядоченным множеством, обозначение (А,- у). Со- ответственно определяются линейно упорядоченные множества, строго упо- рядоченные множества (А, <) н строго линейно упорядоченные множества. Приведем еще несколько примеров порядков. 6. Отношение строгого включения (cz) на множестве всех подмножеств некоторого множества есть строгий частичный порядок. На том же множестве что и в примере 2: {1} CZ {1, 2}; {1, 2} (ZZ { 1, 2, 3}; 0 CZ (любое из подмно- жеств множества А), но {1, 3} {1, 2); (1) {2}; {1, 2} ф (1,3) и т. д. 7. Отношение < (меньше) на множестве целых чисел есть строгий ли- нейный порядок. 8. Пусть (А, ^) — линейно упорядоченное множество. На множестве Ап n-компонентных векторов определим отношение лексикографического порядка L следующим образом. Пусть ср = (ах....ап): cr = (blf . . . , bny, Ср, cr € Ап; a;, bi £ A, i = 1, . . . , п. Тогда cpLcr, если для наименьшего индекса i со свойством а/ =/= bi имеет место ai < fy. Легко убедиться, что L — линейный порядок на множестве Ап. Например, если А = {0, 1.....9}, то на множестве А5 пятизначных целых положительных чисел определен линейный порядок 5g (предпола- гается, что если число имеет меньше пяти цифр, оно дополняется слева ну- лями до пятизначного числа): 112495g 11324; 00937sg01012 и т. д. 9. Пусть (A, sg) — линейно упорядоченное множество. Лексикографи- ческий порядок может быть определен на множестве A (J A2 {J A3 (J . . . . . . (JАп векторов различной длины. Так, если А —множество букв рус- ского алфавита, упорядоченных так, как они расставлены в алфавите, то слова в словаре размещаются в соответствии с лексикографическим поряд- ком: конь 5g коса; коса sg костер; костер sg кость и т. д. 10. Рассмотрим пример отношения порядка из работы [41 ], заданного на множестве А, элементы которого отец (О), его уже взрослый сын (С), срав- нительно молодая вдовушка — мать (Л4), имеющая взрослую дочь (Д). На 11
этом множестве задано отношение порядка согласно которому aRb, если и только если b — ребенок а (а — отец или мать Ь). Этому отношению со- ответствует граф на рис. 1-9, а. После того как С познакомился с вдовушкой М и они поженились, граф соответствующего отношения принял внд рнс. 1-9, б, так как О стал отцом и Л4, вышедшей замуж за его сына, а Д стала дочерью С, так как Д — дочь его жены. Однако спустя некоторое время О и Д влюбились друг в друга и тоже поженились, после чего граф отношения на множестве А преобразовался в граф на рис. 1-9, в. Авто]) работы [41 ], ведущий рассказ от лица С, делает правильное утверждение, что С стал сам себе дедушкой. Это сразу видно из графа на рис. 1-9, в, так как из С есть путь в С длины два (путь ог деда Рнс. 1-9. График некоторых отношений из работы [41 ] к внуку в таком отношении). Но из графа на рис. 1-9, в видно и то, что каж- дый из четырех действующих лиц также стал сам себе бабушкой или дедуш- кой. Большое число примеров на соответствия, функции н отношения содер- жится также в работах [44, 40, 45, 19, 13], являющихся прекрасными кни- гами для первого знакомства с элементами теории множеств. ГЛАВА ВТОРАЯ ________________________________________ АБСТРАКТНЫЙ АВТОМАТ 2-1. Определение абстрактного автомата Математической моделью дискретного устройства является аб- страктный автомат, определяемый как шестикомпонентный кор- теж, или вектор, S = (A, Z, W, 8, X, а^, у которого: 1. А = {alt . . . , ат , . . . , ам\ — множество состояний (алфа- вит состояний); 2. 2 — {Zj, . . . , zf, . . . , zF\ — множество входных сигналов (входной алфавит); 3. W = \wu . . . , wg, . . . , — множество выходных сигна- лов (выходной алфавит); 4. 8 : А X 2 А — функция переходов, реализующая ото- бражение S А X 2 в А. Другими словами, функция 6 некото- рым парам состояние — входной сигнал (ат, zf) ставит в соответ- ствие состояния автомата as ~ 8 (ат, z^), as g А; 12
5. X : A X Z->IT — функция выходов, реализующая отображение DK s А х Z на W. Функция X некоторым парам состояние — вход- ной сигнал (am, zf) ставит в соответствие выходные сигналы авто- мата — wg = X (am, zz); 6. С А — начальное состояние автомата. Под алфавитом здесь понимается непустое множество попарно различных символов. Элементы алфавита называются буквами, а конечная упорядоченная последовательность букв — словом в дан- ном алфавите. Не будем исключать из рассмотрения и пустую по- следовательность букв (последовательность нулевой длины) — пустое слово, которое будем обозначать буквой е. Автомат 1 (рис. 2-1) имеет один вход и один выход. Автомат работает в дискретном времени, принимающем целые неотрица- тельные значения t = 0, 1, 2, .... В каждый IV S Рис. 2-1. Абстракт- ный автомат момент t дискретного времени автомат нахо- дится в некотором состоянии а (/) из множе- ства состояний автомата, причем в началь- ный момент t = 0 он всегда находится в на- чальном состоянии а (0) = ах. В момент t, будучи в состоянии a (t), автомат способен воспринять на входе букву входного алфа- вита z (t) ^Z. В соответствии с функцией выходов он выдаст в тот же момент времени t букву выходного алфа- вита w (t) = X (а (/), z (/)) и в соответствии с функцией переходов перейдет в следующее состояние a (t + 1) = 6 (а (/), z (i)); a (t)£A, w (i) б W. Смысл понятия абстрактного автомата состоит в том, что он реализует некоторое отображение множества слов входного алфавита Z в множество слов выходного алфавита W. Иначе, если на вход автомата, установленного в начальное состояние а1т пода- вать буква за буквой некоторую последовательность букв вход- ного алфавита z (0), z (1), z (2), . . . — входное слово, то на выходе автомата будут последовательно появляться буквы выходного ал- фавита w (0), w (1), w (2), ... — выходное слово. Относя к каж- дому входному слову соответствующее ему выходное слово, мы по- лучим отображение <р, индуцированное абстрактным автоматом. Таким образом, на уровне абстрактной теории понятие «работа автомата» понимается как преобразование входных слов в выход- ные слова. Можно сказать, что в абстрактном автомате мы отвле- каемся от его структуры — содержимого прямоугольника на рис. 2-1, рассматривая его как «черный ящик» (принятый в кибер- нетике подход, когда основное внимание уделяется поведению системы относительно внешней среды). Вплоть до пятой главы автомат — не более чем преобразователь слов, и лишь в пятой главе мы займемся начинкой этого ящика — вопросом, как реали- зовать поведение, заданное на уровне абстрактного автомата, с по- мощью имеющихся в нашем распоряжении элементов. Оказывается, 1 До главы 5 под термином «автомат» понимается абстрактный автомат. 13
однако, что такое абстрагирование от структуры устройства поз- воляет решить ряд сложных проблем, которые на структурном уровне скрываются за множеством деталей, несущественных с точки зрения поведения всей системы в целом. В каком-то смысле поня- тие абстрактного автомата в теории дискретных устройств вопло- тило в себе системный подход, при котором предмет или явление рассматривается как нечто целостное и основной акцент в исследо- вании делается на выявлении многообразия связей и отношений с внешней средой, в отличие от структурного подхода, при кото- ром свойства объекта определяются свойствами составляющих его элементов. Понятие состояния в определении автомата введено в связи с тем, что часто возникает необходимость в описании поведения систем, выходы которых зависят не только от состояния входов в данный момент времени, но и от некоторой предыстории, т. е. от сигналов, которые поступали на входы си- стемы ранее. Состояния как раз и соответству- ют некоторой памяти о прошлом, позволяя устранить время как явную переменную и вы- разить выходной сигнал как функцию состоя- ние. 2-2. Функцио- ния и входа в данный момент времени, нальный преобразо- g этой книге основное внимание будет патрль 7 .. уделено изучению автоматов, число состояний которых не менее двух, т. е. автоматов с па- мятью. Известен класс автоматов, у которых выход не зависит от предыстории и в каждый момент времени определяется лишь вход- ным сигналом в этот же момент времени — так называемые комби- национные схемы. Этот класс автоматов можно рассматривать на абстрактном уровне как автомат с одним состоянием. Очевидно, что комбинационную схему также можно представить в виде рис. 2-1 и описывать тройкой S = (Z, IT, X), где Z и W — входной и выходной алфавиты соответственно, а X : Z -+ W — функция выходов. Комбинационные схемы мы иногда будем называть функ- циональными преобразователями и изображать их так, как это сделано на рис. 2-2. 2-2. Автоматы Мили и Мура. Способы задания автоматов На практике наибольшее распространение получили два класса автоматов — автоматы Мили и Мура, названные по имени впер- вые исследовавших эти модели американских ученых G. Н. Mealy и Е. F. Moore. Закон функционирования автомата Мили задается уравнениями a(t+1) — б(a(Z), z(0); w(/) = A(a(Z), z(/)), t = 0, 1, 2, ... , (2-1) а закон функционирования автомата Мура — уравнениями а (I + 1) = 6 (a (t), z(t)); го (/) = А (а (/)), t = 0, 1, 2, . . . (2-2) 14
Автомат называется конечным, если конечны множества A, Z и IF. В дальнейшем будут рассматриваться только конечные авто- маты и термин «конечный» почти всегда будет опускаться. Автомат называется полностью определенным, если D6 = = А X Z. Иными словами, у полностью определенного автомата области опре- деления функций 6 п X совпадают с множеством А х Z — множест- вом всевозможных пар вида (ат, г,). У неполностью определенного, или частичного, автомата функции 6 или X определены не для всех пар (ат, zf) б Л X Z. Таблица 2-1 Таблица 2-2 Чтобы задать конечный автомат S, необходимо описать все ком- поненты вектора S = (A, Z, W, 6, X, а^, т. е. входной и выходной алфавиты и алфавит состояний, а также функции переходов и вы- ходов. Среди множества состояний необходимо выделить состояние а1г в котором автомат находится в момент I = 0. Суще- ствует несколько способов задания работы автомата, но наибо- лее часто используются таб- личный и графический. Описание работы авто- мата Мили таблицами пере- ходов и выходов иллюстри- руется на примере автомата Sj в табл. 2-1 и 2-2. Строки этих таблиц соответствуют входным сигналам, а столб- цы — состояниям, причем крайний левый столбец обо- значен начальным состоя- Таблица 2-3 б : AxZ-^A , Т-. A-*-W Юз о2 О3 «4 «5 Z1 о2 °о а5 Оз Оз ?2 о« а2 а2 01 01 нием а1. На пересечении столбца ат и строки z; в таблице переходов ставится состояние as = 6 (ат, zf), в которое автомат переходит из состояния ат под действием сигнала zf, а в таблице выходов — соответствующий этому переходу выходной сигнал wg = = X (а„„ z^. Так как в автомате Мура выходной сигнал зависит только от состояния, автомат Мура задается одной отмеченной таблицей пе- реходов, в которой каждому ее столбцу приписан кроме состояния ат еще и выходной сигнал wg = X (ат), соответствующий этому состоянию. Пример табличного описания автомата Мура S2 иллю- стрируется табл. 2-3. 15
Для частичных автоматов Мили, у которых функции 8 или X определены не для всех пар (ат, zf) £ А X Z, на месте неопреде- ленных состояний и выходных сигналов ставится прочерк (частич- ный автомат S3 задан табл. 2-4 и 2-5). В автомате Мура, если функ- ция X (ат) не определена, то над состоянием ат вместо выходного сигнала ставится прочерк. Таблица 2-4 Таб ища 2-5 щенную таблицу переходов и выходов, в которой на пересечении столбца ап и строки zf записываются следующее состояние и вы- Таблица 2-6 6: AxZ-^-Л, X: AxZ->~W «1 а* ".3 21 о'з/о’з a4/w3 — Ч а3/к/2 — а2/— Две вершины графа автомата ат даваемый на переходе выход- ной сигнал: aJwx as = 8 (ат, Zf), wg = X (ат, z^). Автомат S3 задан совмещенной таблицей (табл. 2-6). Граф автомата—-ориентиро- ванный граф, вершины которого соответствуют состояниям, а ду- ги — переходам между ними, и as (исходное состояние и состо- яние перехода)соединяются дугой, направленной от ат к а„ если в ав- томате имеется переход из ат в а,, т. е. если as — 8 (ат, zf) при не- котором г; g Z. Дуге (ат, as) графа автомата приписывается вход- ной сигнал zf и выходной сигнал wg = А (ат, zf), если он опреде- лен, н ставится прочерк в противном случае. Если переход автомата из состояния ат в состояние as происходит под действием несколь- ких входных сигналов, то дуге (ат, as) приписываются все эти вход- ные и соответствующие выходные сигналы. При описании автомата Мура в виде графа выходной сигнал wg = к (ат) записывается внутри вершины ат или рядом с ней. На рис. 2-3, 2-4 и 2-5 приве- дены заданные ранее таблицами графы автоматов Slt S2, S3. В данной работе рассматриваются только детерминированные автоматы, у которых выполнено условие однозначности переходов: автомат, находящийся в некотором состоянии, под действием лю- бого входного сигнала не может перейти более чем в одно состоя- ние. Автомат, заданный таблицей переходов, всегда детерминиро- ванный, так как на пересечении столбца ат и строки zf записы- вается только одно состояние а,, = 8 (ат, zf), если переход опреде- лен, и ставится прочерк, если функция 6 на паре (ат, zf) не опреде- 16
Применительно к графическому способу задания автомата что в графе автомата из любой и более дуги, отмеченные одним лена. условие однозначности означает, вершины не могут выходить две и тем же входным сигналом. Рис. 2-3. Граф автомата Мили Si Рис. 2-4. Граф автомата Мура S2 Выделение в множестве состояний начального состояния объяс- няется чисто практическими соображениями, связанными с возни- кающей часто необходимостью фиксировать условия начала ра- боты дискретного устройства. Многие же задачи па уровне абстрактного ав- ' томата можно решать, описывая авто- мат пятеркой S - (A, Z, W, 6, X). 'Автомат S = (A, Z, W, 6, X, а^, представляемый шестеркой, т. е. с выделенным начальным состоянием, называется инициальным. Расширим функции б и X, опре- делив их на множестве пар со- стояние — входное слово. Пусть £ = zZl ... zik — входное слово длины k, Е — множество всех ко- нечных входных слов ненулевой длины, е — входное слово длины нуль Рис. 2-5. Граф частичного ав- томата Мили S3 (пустое слово). Тогда функ- цию заключительного состояния б (ат, t) определим индуктивно в множестве А х (Е и {е}) следующим образом: б(ат, ё) = ат для всех ат^А\ 6 (а.п, £) = б" (ат, zq . . . ZiJ --= 17
В качестве примера для частичного автомата S3, заданного совмещенной табл. 2-6, найдем 6 (а2, %) при 5 = z1z1z2z1z2: б(а3, z^z^)-= б (б (а3, z4), z4z2z4z2) = б (а3, z1z2z1z2) = -- б (б (а3, z4), z2z4z2) = б (а4, z2z4z2) --= б (6 (а4, z2), z4z2) =• = б (а3, z4z2) = б (6 (а3, z4), z2) = б (а3, z2) -- б (а3, z2) = а2. Однако для того же S3 б (а2, z^z^Za) =-б (б (а2, z4), z1z2z2z3) = = 6(б(а3, z4), z3z2Za) = б (б (а4, z2), z2z2) = б"(б (а2, z2), z3) не опреде- лена, так как не определена функция переходов б (а2, z2). Таким образом, б (ат, £) — заключительное состояние, в ко- торое переходит автомат из состояния ат под действием входного слова 5- Функция заключительного выхода А (а,„, £) в модели Мура опре- делена в множестве А X (Е и {е}) следующим образом: А. (ат, ё) А (о,п), |А(б(ат, £)) для Z^E, если б(ат, £) определена; (®mi t)~| х / I не определена, если б(ат, §) не определена. В модели Мили г , t. ( А(6(ат, £'), z(- ), £ = £'zz если В') определена; I не определена, если не определена б (ат, £'). Здесь g = z4 ... z^^, ^ = zfi . . . zlfc_r Таким образом, в модели Мура А(аот, £)— выходной сигнал, отмечающий заключительное состояние. В модели Мили А (а,„, £) — выходной сигнал, выдаваемый на последнем переходе (переходе в заключительное состояние). Он появляется на выходе в тот же момент времени, когда приходит последняя буква входного слова £. Найдем, например, А (а4, z1z2z1z1) для автомата S4 (табл. 2-1, 2-2): б(а4, z1z2z1z1) = б (б (а4, z4), z^Zj) = б (б (а2, z2), z^) =_- б(б(а2, z4), z^^^ag, z1) = 6(a3, z4) = a2. Последним в этой последовательности переходов является пе- реход (а3, z4), а потому А(а4, z1z2z1z1)^A(a3, zr)^w3. Функцию со (апг, £) — реакцию автомата в состоянии ат на входное слово • zift определим в множестве А X (Е |J (ej) следующим образом. Модель Мили: ® (ат, g) не определена, если б(а„„ £') не опреде- лена; здесь —гг1 . . . zik_v т. е. ^ = gzzi/;. Иначе, если б (а,„, gz) определена, то 18
<л{ат, £) = X(am, z(J и (6 (am, zj, zi2 . . . z;J = = X(am, z^Xf^, zi2) . . . X(%, ziy^wii . . . wik- Здесь а,2 = 6 {am, zt J; оу. = X (az , zf/); / = 2,3,..., k\ wti = =Цат, z^y Например, для автомата S4 co (ar, z^z^ = X(a4, z4) © (6 (a4, zT), z2z1z1)=w1a> (a2, z2z1z1)=o'1X (a2, z2) co (6 (a2, z2), z1z1)=w1w1(i) (a2, z^j = = wrwLX (a2, гг) co (б (a2, гг), z4) = (a3, z±) = w^w^. Нетрудно видеть, что для частичного автомата Мили S3 (табл. 2-6) со (<з2, ZjZjZ^jZ^ = ш3ю3ш2ю3— ; прочерк на послед- нем месте означает, что в реакции последний выходной сигнал не определен. Сама же реакция определена, так как 6 (а2, z1z1z2z1) определена. Однако для того же автомата со (а2, Z]Z]Z2z2z2) не определена, так как не определена (см. пример выше) функция 6 (а2, z^z^z). Можно определить реакцию автомата Мили в состоянии ат на входное слово £ и через заключительный выход: со(аш, £)= X(am, z(zQ . . . Цат, z^ . . . z^). Модель Мура: со (ат, £) не определена, если 6(ат, £) не опреде- лена. Иначе, если 6(ат, £) определена, то <о(ат, £) = Х(6(ат, гч))ю(б(ат, ZfJ, z^ . . . zift) = = . . . X(flift+1)=^3 • . . wik+v Здесь a,2 = 6(am, z.-J; ay. =X(a;.), / = 2, . . . , /г + 1. Определим, например, реакцию со (a4, z2z4z4z2) автомата Мура, заданного отмеченной таблицей переходов (табл. 2-3): со (a4, z2z1z1z2) = X (6 (a4, z2)) со (6 (a4, z2), z^zfe) = X (a4) и (a4, z4z4z2) = = w2 X (6 (a4, Zj)) co (6 (a4, z4), z4z2) = оуЛ (a3) co (a3, z4z2) = = «3X (6 (a3, zj) co (6 (a3, z4), z2) = ayay?. (a5) и (a5, z2) = = WzW^w^ (6 (tz5, z2)) = (a4) = w2wswswv Очевидно, что в автомате Мура выходной сигнал a?£i = X(am) в момент времени /4 не зависит от входного сигнала z^, а опреде- ляется только состоянием ат. Таким образом, этот сигнал никак не связан с входным словом, поступающим на вход автомата, начиная с момента t4. В связи с этим под реакцией автомата Мура в состоянии ат на входное слово £ = zt1z‘2 z<-k понимается выходное слово той же длины ®(am, = . wik+v но сдвинутое на один такт автоматного времени. Сведем вместе три функции: 19
Модель Мили Входное слово...................... г/, г;, ... г, б (ат, g) Последовательность состоя- . ' ~~ ~ яннй.............................. ат (ат> Z4) • • • aik= ° (а‘*—1г'Л—1) а,>+1 ~ ° (“‘/г’ Zik) Реакция.......................... = X (ат, г^) = X (а;2, г,2) • • • wik = X (aik, zik) fe) w(«m> i) Модель Мура Входное слово.............. z^ Zi2 ... zik б (ат, £) Последовательность состоя- ---------------- ннн...................... ат а(2 = д (ат, zi^ • • • aik~ § (a‘k—r г‘А—1) ~ $ (aik’ Zik) Реакция........................ wil = K(am) ayi2 = X(ai2) • • • = X (aift) wik+l=K(aik+l) (am, I)
Распространим функцию переходов 6 : А X Z А на множество 21 х Z, где 21 — множество всех подмножеств множества А. Опре- делим 6 (В, zf) (В е A, Zf £ Z) следующим образом: 6 (В, zz) = {as | аь - 6 (я,„, Zf), ат 6 В]. Иначе 6(В, Zf)= U {6 К, Zf)}. “т^в Таким образом, 6 (В, Zf) — множество состояний, в которые есть переход из всех состояний, входящих в В, под действием вход- ного сигнала zf. Таблица 2-7 6 : AXZ-+A , Рис. 2-6. Граф асинхрон- ного автомата Мура Например, для автомата S2 (табл. 2-3) пусть В = {а^, а4, а5}. Тогда 6 (В, Zj) = [а2, я3}; 6 (В, z2) = {я^ я4}. В заключение данного параграфа определим синхронные и асинхронные автоматы. Состояние as автомата S называется устойчивым, если для лю- бого входа z} £ Z такого, что 6 (ят, zf) = я5, имеет место 6 (я5, Zf) = as. Это означает, что если автомат перешел в некоторое со- стояние под действием входного сигнала Zf, то выйти из этого со- стояния он может только при поступлении на его вход другого, отличного от Zf, входного сигнала. Автомат S называется асин- хронным, если каждое его состояние as £ А устойчиво. В против- ном случае автомат S будет синхронным [1, 30]. Необходимо заметить, что все построенные на практике авто- маты — асинхронные, и устойчивость их состояний обеспечивается тем или иным способом, например введением сигналов синхрони- зации. Однако на уровне абстрактной теории, когда автомат есть лишь математическая модель, которая не отражает многих кон- кретных особенностей его возможной реализации, часто оказы- вается более удобным оперировать с синхронными автоматами, что мы и будем делать на протяжении второй, третьей и четвертой глав. Пример асинхронного автомата Мура приведен в табл. 2-7 и на рис. 2-6. Нетрудно видеть, что все его состояния устойчивы. 21
Очевидно, что если в таблице переходов асинхронного автомата некоторое состояние а, записано на пересечении строки zf и столбца ат (т^= s), это состояние обязательно должно встретиться в этой же строке в столбце as. В графе асинхронного автомата, если в не- которое состояние есть переходы из других состояний под дейст- вием каких-то сигналов, то в вершине as должна быть петля, отме- ченная символами тех же входных сигналов. Анализ таблиц 2-1, 2-3 и 2-4 показывает, что автоматы Slt S2 и S3 являются синхрон- ными. Часто понятие синхронности или асинхронности автоматов свя- зывают с наличием или отсутствием синхронизирующих импульсов в схеме автомата. Можно показать, что и при наличии синхронизи- рующих импульсов автомат (правда, уже структурный — см. ниже, пятую главу) может быть и, как правило, является асинхронным в смысле введенного определения. С абстрактным автоматом син- хронизация вообще никак не связана. В то же время приведенное определение синхронных и асинхронных автоматов легко перено- сится на структурный уровень1. 2-3. Связь между моделями Мили и Мура Введенное выше понятие реакции автомата на входное слово позволяет дать строгое определение эквивалентности полностью определенных автоматов. Два автомата S4 и SB с одинаковыми входными и выходными алфавитами называются эквивалентными, если после установления их в начальные состояния их реакции на любое входное слово совпадают. Более конструктивное опреде- ление эквивалентности автоматов будет дано в третьей главе. Проследим по таблицам переходов и выходов или по графам реакции автоматов Мили Sj (табл. 2-1, 2-2 или рис. 2-3) и Мура S2- (табл. 2-3 или рис. 2-4) в состоянии ах на входное слово z^z^z^. В автомате Входное слово............... z2 гг г2 г2 Последовательность состояний • а2 а2 а2 а3 aL а3 Выходное слово ............ WL Wi W3 OL'i W2 В автомате S2 Входное слово................ Последовательность состояний 22 ^2 2^2 щ а2 а2 а-а al ai Выходное слово йИ W2 йУ3 tt’. 1 Модель апериодического автомата, сохраняющего свою работоспособ- ность при любых задержках составляющих его элементов, предложена В. Варшавским и его коллегами [2]. Полисинхронные автоматы ввел Е. Гур- виц [14]. Асинхронные автоматы подробно исследованы в работе Э. Якубай- тиса [46]. 22
Как видно из примера, реакции автоматов 8Х и S2 на заданное входное слово совпали. Это совпадение, конечно, не означает, что автоматы Sx и S2 эквивалентны, т. е. их реакции в начальных со- стояниях на всевозможные входные слова любой длины тоже сов- падут. Возникает вопрос, можно ли для любого автомата Мили построить эквивалентный ему автомат Мура и, обратно, для лю- бого автомата Мура построить эквивалентный ему автомат Мили? Оказывается, можно, и ниже будут изложены алгоритмы перехода от автомата Мура к автомату Мили и обратно. При описании алго- ритмов взаимной трансформации ветствии с изложенным выше мы будем пренебрегать в авто- матах Мура выходным сигналом Л (d}), связанным с начальным состоянием. Рассмотрим сначала преобра- зование автомата Мура в автомат ©2/ * /*”*\ Zf Wff /^\ автоматов Мили и Мура в соот- Рис. 2-8. Автомат Мили S4, эквива- лентный автомату Мура S2 Рис. 2-7. Иллюстрация перехода от модели Мура к модели Мили Мили. Пусть дан автомат Мура 8л--=(Дл, ZA, W А, 6л, кА, а1А), у которого Аа = {alt . . . , ам], ZA-- {zT, . . . , zF], WA — {a\, . . . , : Ллх Za-+Aa, Ka : Aa->W A, a1A =ax—начальное состояние. Построим автомат Мили SB = (AB, ZB, WB, 8B, кв, а1В), у кото- рого Лв-— Лл; ZB — ZA\ IKg—1КЛ; 8В — 6Л; а1В — йщ — Яд- Функцию выходов 7.в : Ав х ZB WB определим следующим образом: если в автомате Мура 8А(ат, zf) = a$ и ZA(as) = ws, то в автомате Мили 7.в (ат, zf) — wg. Переход от автомата Мура к автомату Мили при графическом способе задания иллюстрируется рис. 2-7: выходной сигнал (w^), записанный рядом с вершиной (щ), переносится на все дуги, вхо- дящие в эту вершину. На рис. 2-8 приведен граф автомата Мили S4, эквивалентного автомату Мура S2 (рис. 2-4). При табличном способе задания автомата 8Л таблица перехо- дов автомата SB совпадает с таблицей переходов SA, а таблица выходов SB получается из таблицы переходов заменой символа as, 1 Здесь используется следующий прием: сначала без каких-либо обосно- ваний строится автомат Мили, а затем доказывается, что построенный таким образом автомат эквивалентен исходному автомату Мура. 23
стоящего на пересечении строки zs и столбца ат, символом выход- ного сигнала wg, отмечающего столбец as в таблице переходов ав- томата 8Л. Из самого способа построения автомата Мили SB очевидно, что он эквивалентен автомату Мура SA. Действительно, если не- который входной сигнал z; £ Z поступает на вход автомата 8Л, находящегося в состоянии ат, то он перейдет в состояние щ = = бл (ат, zf) и выдаст выходной сигнал wg — КА (щ). Но соответст- вующий автомат Мили 8В из состояния ат также перейдет в со- стояние as, поскольку (ат, zj) = бл (ат, zf) — as, и выдаст тот же выходной сигнал wg согласно способу построения функции Кв. Таким образом, для входной последовательности длины один поведение автоматов 8Л и SB • полностью совпадает. По индукции нетрудно показать, что любое входное слово конеч- ной длины, поданное на входы автоматов 8Л xy/Mj и SB, установленных в состояния ат, вызо- ' Л • вет появление одинаковых выходных слов и, . , . . ,, следовательно, автоматы 8Л и 8В эквива- */1Сг11 Нем . Рис. 2-9. Построение Прежде чем рассмотреть трансформацию множества As автомата Мили в автомат Мура, наложим на автомат Мили следующее ограничение: в нем не должно быть преходящих состояний. Под преходящим будем понимать состояние, в которое при представлении автомата в виде графа не входит ни одна дуга, но которое имеет по крайней мере одну выходящую дугу (пример — состояние ах на рис. 2-5). Итак, пусть задан автомат Мили Sa — (Aa, Za, Wa, бл, ZA, а1А), где AA = {ai.......ам], ZA = {Zi, ..., zF], WA = {u\, .... ®0|, бл : Aa x ZA -+Aa, Za : Aa xZa~>Wa, alA=a1—начальное состоя- ние. Построим автомат Мура SB = (AB, ZB, WB, бв, ZB, a1B), у которого: V4 wB = wA. Для определения Ав каждому состоянию as £ Аа поставим в соответствие множество As всевозможных пар вида (щ, и^), где ei'g — выходной сигнал, приписанный входящей в as дуге (рис. 2-9): As={(czs, №g) | бл (ат, zf)=as и ZA(am, zf) = wg}. Число элементов в множестве As равно числу различных вы- ходных сигналов на дугах автомата 8Л, входящих в состояние as. /.уМножество состояний автомата SB получим как объединение множеств As (s = 1, . . . , М): м Ав = U As. S—1 Функции выходов ZB и переходов 8В определим следующим образом. Каждому состоянию автомата Мура SB, представляю- 24
щему собой пару вида (as, ws), поставим в соответствие выходной сигнал w . Если в автомате Милн 8Л был переход 6Л (ат, zf) = as и при этом выдавался выходной сигнал лл (ат, zf) = wk, то в SB (рис. 2-10) будет переход из множества состояний Ат, порождае- мых ат, в состояние (as, wk) под действием того же входного сиг- нала Zf. В качестве начального состояния а1В можно взять любое из со- стояний множества Л1; порождаемого начальным состоянием аг автомата 8Л. Напомним, что при сравнении реакций автоматов 8Л и SB на всевозможные входные слова не должен учитываться выходной сигнал в момент t = 0, связанный с состоянием а1В авто- мата SB. Рассмотрим пример преобразования автомата Мили 8Х, изо- браженного на рис. 2-3, в автомат Мура. В автомате Мили 2Л =- Рис. 2-10. Иллюстрация перехода от модели Мили к модели Мура = {?!, z2), WA=[wlt w2, цу3), Лл = {П1, а2, п3], a1A=alt бл и %л определяются графом автомата. В эквивалентном автомате Мура ZB — ZA — {zx, z2), WB = WA — {Wj, w2, a»3). Построим множество Ав, для чего найдем множества пар, порождаемые каждым со- стоянием автомата 8Л:Х Л1ИК М-ЧМ; Д2 = №i), (а2, и>3)} = = (b2, Ь3|; Л3 = {(о3, w2), (а3, wd)} =-. |b4, &51. С каждым состоянием вида (as, wg), представляющим собой пару, отождествим выходной сигнал wg, являющийся вторым элементом этой пары: '^в (^1) = ^в Фг) = ^в (^4) — ^в С’з) ~= ZB (b5) — w3. Поясним построение функции 8В. Так как в автомате 8Л есть переход из состояния а2 под действием сигнала zx в состояние а3 с выдачей w3, то из множества состояний А2 — (Ь.2, Ь3], порождае- мых а2, в автомате SB должен быть переход в состояние (а3, w3) = == под действием сигнала zx. Аналогично из состояний множества А2 должен быть переход в состояние (п2, w2) = b2 под действием 1 Для краткости пары заменены символами blt b2, . . . 25
сигнала z2 и т. д. В качестве начального состояния можно выбрать только состояние Ь}, так как это единственное состояние, порож- даемое начальным состоянием автомата 8Л. Если теперь сим- волы bi (i = 1, . . . , 5) заменить на at, то получим автомат Мура S2 (рис. 2-4), эквивалентный автомату Мили 84 на рис. 2-3. Рассмотрим переход к автомату Мура от автомата Мили 86 (рис. 2-11), у которого состояние а4— преходящее. Как и выше, Л1 U А 2 U 43 = )(я2, ayj), (я2, w2), (а8, wx), (а3, w2)] = jblt b2, b3, b4]. К множеству полученных пар — состояний автомата Мура добавим состояние (alt —) =~ ЬБ, порождаемое преходящим состоя- нием alt считая, что выходной сигнал в состоянии Ь6 не определен. Функцию переходов 8В определим, как и ранее; в частности из состояния Ь6 будут переходы в Ь4 — (а2, ц^) под действием сигнала zL и в b3 = (а3, а^) под действием z2. Так как а4 — начальное со- Рис. 2-11. Автомат Мили S5 с прехо- дящим состоянием «1 Рис. 2-12. Автомат Мура Se, эквивалентный автомату Мили S6 стояние автомата Мили, то в качестве начального состояния авто- мата Мура следует взять порождаемое им состояние Ь5. На рис. 2-12 приведен граф автомата Мура 8в, эквивалентного автомату Мили на рис. 2-11. Эквивалентность автоматов SB и 8Л при преобразовании авто- мата Мили в автомат Мура на множестве входных слов конечной длины легко доказать по индукции подобно изложенному выше при обратном преобразовании. Изложенные методы взаимной трансформации моделей Мили и Мура показывают, что при переходе от автомата Мура к автомату Мили число состояний автомата не меняется, тогда как при обрат- ном переходе число состояний в автомате Мура, как правило, воз- растает (оно не возрастет, если каждое состояние автомата Мили порождает только одно состояние автомата Мура). Если, например, от автомата Мура S2 (рис. 2-4), эквивалентного автомату Мили Si (рис. 2-3), перейти вновь к автомату Мили, то получим автомат Мили S4 (рис. 2-8). Вследствие транзитивности отношения эквива- лентности два автомата Мили Sj и S4 также будут эквивалентны, но у последнего будет на два состояния больше. Таким образом, 26
эквивалентные между собой автоматы могут иметь различное число состояний, в связи с чем возникает задача нахождения минималь- ного (т. е. с минимальным числом состояний) автомата в классе эквивалентных между собой автоматов. Существование для любого абстрактного автомата S эквивалентного ему абстрактного авто- мата Smin с минимальным числом внутренних состояний впервые было доказано Муром. 2-4. Совмещенная модель автомата (С-автомат) Под абстрактным С-автоматом будем понимать математическую модель дискретного устройства, определяемую восьмикомпонент- ным вектором S = (A, Z, W, U, б, %1; %2, ях), у которого: 1. А = [Hj, . . . , ам]—множество состояний; 2. Z {zj, . . . , zF\ —входной алфавит; 3. W = .... щ0}—выходной алфавит типа 1; 4. U = [щ, . . . , ин\—выходной алфавит типа 2; 5. б : Л X Z А — функция переходов, реализующая ото- бражение D6 е А X Z в А; 6. : А X Z W — функция выходов, реализующая отобра- жение Df, е А X Z на W; 7. л2 : А U — функция выходов, реализующая отображение D-, 2 А на U-, 8. а1 £ А — начальное состояние автомата. Абстрактный С-автомат можно представить в виде устройства (рнс. 2-13) с одним входом, на который поступают сигналы из вход- ного алфавита Z, и двумя выхода- ми, на которых появляются сиг- налы из алфавитов W и U. Отли- чие С-автомата от моделей Мили и Мура состоит в том, что он одно- временно реализует две функции выходов %х и Л2, каждая из кото- Рис- 2'13’ Абстрактный С-автомат рых характерна для этих моделей в отдельности. С-автомат можно описать следующими уравнениями: a (t + 1) = б (а (0, z (0); w (0 = (а (0> z (О); U (0 = Х2 (я (0), t = 0, 1,2,... Выходной сигнал uh = (ат) выдается все время, пока авто- мат находится в состоянии ат. Выходной сигнал wg = (ят, zf) выдается во время действия входного сигнала zf при нахождении автомата в состоянии ат. Очевидно, что от С-автомата легко перейти к автоматам Мили или Мура (с учетом возможных сдвигов сигна- лов во времени на один такт), так же как возможна трансформация автомата Мили в автомат Мура и наоборот. В то же время в ряде приложений оказывается удобным использовать одновременно сиг- 27
налы обоих типов. Так, при проектировании ЦВМ часть сигналов устройства управления, таких, как передача из одного регистра в другой, наращивание счетчиков и т. п., по длительности совпадает с входным сигналом, тактированным синхроимпульсом, тогда как, например, сигналы подачи на комбинационный сумматор или де- шифратор памяти обычно значительно длиннее и определяются временами срабатывания сумматора и де- шифратора. Эти сигналы удобно отожде- ствлять с состоянием. Таким образом со- ображения практического характера при- водят к целесообразности рассмотрения С-автомата —• совмещенной модели авто- матов Мили и Мура. Для задания С-автоматов будем также использовать табличный и графический методы. В первом случае таблица пере- ходов (табл. 2-8) аналогична таблице пе- реходов автомата Мили, а в таблице выходов каждое состояние отмечено со- Таблица 2-8 5 : Рис. 2-14. Граф С-автомата ответствующим ему выходным сигналом типа 2 (табл. 2-9). При задании С-автомата в виде графа сигналы типа 1 будем приписывать дугам графа ря- дом с входными сигналами, а сигналы типа 2 — вершинам-состоя- ниям, которым они соответствуют. На рис. 2-14 приведен граф авто- мата, заданный таблицами 2-8 и 2-9. Таблица 2-9 ГЛАВА ТРЕТЬЯ______________________________________ МИНИМИЗАЦИЯ АВТОМАТОВ 3-1. Максимальные классы совместимости В данной главе будут рассмотрены методы минимизации частич- ных автоматов. На наш взгляд, эта задача представляет большой интерес еще и потому, что к ее математической постановке — на- 28
хождению минимального замкнутого покрытия сводится большое количество задач, в том числе и не относящихся к теории автома- тов. Предварительно дадим ряд определений. Входное слово £ = z, ... Ztk назовем допустимым для авто- мата S в состоянии ат, если: I) функция переходов б , Z(.j определена для всех / = 1, . . ., k—1; ai^am, aij+^8(aij, z{.); 2) определен заключительный выход ? (ain, £) = X(a;;? гг^. Таким образом, соответствующая допустимому входному слову последовательность состояний, определяемая функцией переходов, не содержит неопределенного состояния. Так, для автомата Sn заданного табл. 3-1 и 3-2, входное слово ZgZgZgZ^. допустимо в со- стоянии ар. Входное слово.................г3 г2 г3 г, Последовательность состояний щ а3 а4 а2 а3 а5 Выходное слово................— tt)2 — иу w3 Входные слова z3ziz3z2z1 и в состоянии а± не являются допустимыми, так как при поступлении первого из них не опреде- лена последовательность состояний: Входное слово................ Последовательность состояний Выходное слово............... ?3 Z4 гз Z2 гг «1 «3 °5 а1 — — Wj w2 w2 — а при поступлении второго — не ход: Входное слово............. Последовательность состояний Выходное слово............ определен заключительный вы- z4 2д z2 Z2 ?3 «1 a3 «з Щ «1 аз tulj w2 w2 — Таблица 3-1 6 : A XZ Таблица 3-2 Состояние a'm автомата S' покрывает состояние am автомата S. если любое входное слово, допустимое для S в состоянии ат, до- пустимо и для 3' в состоянии а'т и при приложении к S в ат и к S' в а’ вызывает в обоих случаях одинаковые реакции всюду, где выходные сигналы автомата S определены. Например, состояние Ьх автомата 32 (табл. 3-3 и 3-4) покрывает состояния пг и а2, а состоя- ние Ь3 — состояния а3 и а3 автомата S3 (табл. 3-1 и 3-2). 29
Таблица 3-3 8 : В X ZВ b2 bs bi ^3 bi b3 b3 z2 Ь4 bi bl b3 bv Ьз bl bl z4 bi bi bl bi Таблица 3-4 К: В XZ-+W bl b-i b- bi ?1 tOi 101 VO2 to2 го2 *3 — to2 z4 Ш1 W1 Автомат S' покрывает автомат S, если для каждого состоя- ния ат автомата S имеется по крайней мере одно состояние а'т автомата S', покрывающее состояние ат. Так, состояние а4 авто- мата Sj покрывается состояниями Ь4 и Ь2 автомата S2, а2 — состоя- ниями Ь4 и Ь3, а3 — состояниями Ь3 и Ь4, а4 — состояниями Ь2 и Ь4, а п6— состоянием Ь4. Таким образом, автомат S2 покрывает автомат S1 (или Sx покрывается автоматом S2). Данное определение покрытия автоматов не является конструк- тивным в том смысле, что оно не позволяет построить для данного автомата какой-либо, его покрывающий. Здесь читатель может лишь на нескольких входных словах проверить, что наше утвержде- ние относительно Sj и S2 справедливо. Но далее будет ясно, как построен автомат S2 по автомату S\ и почему построенный таким образом автомат покрывает исходный. Очевидно, что отношение покрытия рефлексивно, транзитивно, но не симметрично. Ясно также, что автомат S', покрывающий S, «работает» так же, как автомат S, в условиях работы S. Другими словами, S' «делает столько же и, может быть, больше», чем авто- мат S. Задачу минимизации частичного автомата S можно сформули- ровать как задачу поиска автомата S', который среди всех автома- тов, покрывающих S, имеет наименьшее число состояний.1 Серь- езным вкладом в решение этой задачи явилась работа М. Полла и С. Ангера [58], использующая идею минимального замкнутого покрытия. Дадим необходимые определения. Два состояния ат и as назовем совместимыми (обозначение ат ~ as), если при подаче любого допустимого в ат и as входного слова получаемые выходные слова непротиворечивы, т. е. совпа- дают там, где оба определены. Состояния ат и as назовем несовместимыми (ат as), если они не являются совместимыми. Более конструктивным является следующее определение сов- местимости. Два состояния ат и as называются совместимыми, если: 1 Первым шагом минимизации автомата должно быть удаление недости- жимых состояний, т. е. состояний, в которые автомат не может перейти из начального состояния ни при каких входных словах [35]. 30
1) для каждого входа г,- g Z, для которого оба выхода опреде- лены, Л (ат, zf) --- Z (ак, 2,). Это условие иначе называется совместимостью по выходу. 2) для каждого входа zf £ Z, для которого оба следующих со- стояния определены, 2f)~S(as, zf), т. е. оба следующих за а,п и а, состояния также должны быть сов- местимыми. Данное определение относится к автоматам Мили. В случае модели Мура условие (1) необходимо заменить следующим: если оба выхода, X (ат) и X (af), определены, то X (ат) = X (as). Ясно, что отношение совместимости рефлексивно, симметрично, но не тран- зитивно. Множество состояний С (С £= Я) называется классом совместимости, если все состояния в С попарно совместимы, класс совместимости С называется мак- симальным классом совместимости, если он не содержится ни в каком другом классе совместимости. Пусть В s А — подмножество мно- жества состояний автомата. Напомним, что множество состояний С следует за множеством В по входу zf, если и толь- Таблица 3-5 Треугольная таблица для автомата X, ко если С = <5(В, zf)--= (as(as = S(am, zf), ат£В\. Из понятия совместимости ясно, что множество состояний, сле- дующих за некоторым классом совместимости, также является классом совместимости. Рассмотрим алгоритм получения совместимых пар с помощью треугольной таблицы, предложенной М. Поллом и С. Ангером [58]. Описание этого алгоритма есть также в книге В. Лазарева и Е. Пийль [24]. Алгоритм, не использующий треугольной таб- лицы, представлен в работе [55]. По таблицам переходов и выходов автомата составляется треу- гольная таблица, столбцы и строки которой сопоставляются с со- стояниями автомата. Табл. 3-5 — треугольная таблица для авто- мата заданного табл. 3-1 и 3-2. Вид таблицы обусловлен рефлек- сивностью и симметричностью отношения совместимости состоя- ний — она треугольная. Для упрощения записи в этой таблице вместо а, будем писать i. В треугольной таблице на пересечении строки т и столбца s ставятся: 31
X (крест), если состояния ат и as несовместимы по выходу, например а2 и «5 (в табл. 3-2 в строке z3 в столбцах а2 и аъ стоят разные выходные сигналы — и w2 соответственно); множество всех пар состояний, следующих за парой (ат, as) и отличных от нее — все те пары, совместимость которых необхо- дима для совместимости пары (am, as). Например, для совместимо- сти (а1, а3) необходима совместимость (а2, а3) и (а2, а5), так как («2, й3) и («2, следуют за множеством (аъ а3) по входам z1 и z4 соответственно (см. табл. 3-1); V (птичка), если за (ат, as) не следуют пары, отличные от (аш, as), т. е. пара (ат, а,) совместима без дополнительных условий, налагаемых на совместимость других пар. В нашем примере это пара (а3, Для нахождения несовместимых пар состояний (и, следовательно, совме- стимых пар тоже) треугольная таблица просматривается по столбцам. Находится первая клетка, отмеченная крестом. Пусть это будет клетка (i. /) — в на- шем примере (2.5). Тогда во всех клет- ках, где есть пара (Л /), ставится крест, а уже рассмотренная клетка (Л /) отме- чается вторым крестом. Эта процедура проводится для всех клеток (включая новые), отмеченных одним крестом, и заканчивается, когда таких клеток не остается. Очевидно, что в этом случае клетки без крестов соответствуют сов- местимым парам состояний, а клетки с крестами — несовместимым. Так, по- Таблица 3-6 Таблица совместимых пар, построенная по табл. 3-5 сле применения этой процедуры Из этой таблицы видно: к табл. 3-5 получаем табл. 3-6. 1—2, 1—4, 2 — 3, 3 — 4, 3 — 5, 4 — 5; 1*3, 1 ф 5, 2 4, 2 5. Во многих методах минимизации частичных автоматов после нахождения всех пар совместимых состояний вычисляются все максимальные классы совместимости. Рассмотрим способ нахожде- ния максимальных классов совместимости из совместимых пар, предложенный С. Ангером [61]. Будем говорить, что множество состояний В (В s А) совместимо с некоторым состоянием ат £ А (обозначение аш—В), если и только если ат — as для любого йД В. В противном случае В. Алгоритм нахождения всех максимальных классов совместимо- сти сводится к следующему. 32
1. Начинаем составление списка Ф классов совместимости с сов- местимых пар в крайнем правом столбце треугольной таблицы, имеющем по крайней мере одну клетку без крестов. В примере 1 2 Ф = ЯД. 2. Продвигаясь влево, выписываем для каждого z-го столбца множество состояний Л, — ait т. е. множество всех состояний, соответствующих клеткам без крестов в i-м столбце таблицы. В на- шем примере 3 — 4.5 (в третьем столбце табл. 3-6 нет крестов в строках 4 и 5). Каждое Л£ пересекаем с каждым членом текущего списка Ф. У нас Л3 = 4.5 и список Ф также содержит единственный элемент 4~5: Т5П4~5 = 4?5. Если такое пересечение содержит более одного состояния, то добавляем в список объединение {а,} с результатом пересечения: 3 U 5 = ЗА5; Ф — [4?5, ЗТ5). Далее проводится максимизация полученного множества Ф — устранение всех повторений множеств в текущем списке и удаление всех множеств, содержащихся в других множествах списка: Ф= (ЗЯ5). Добавляем в список все пары, состоящие из и различных со- стояний из Л(, и не являющиеся подмножествами других членов списка Ф (при I = 3 таких добавлений нет). Приведем полностью результат применения второго шага ко всем столбцам: Ф--|45;; 3 — 475, Ф={ЗА5); 2 — 3, Ф-73Я5, 273); Т — 2Л, Ф = (ЗЯ5, 2Д L2, L4). 3. В список Ф, полученный после второго шага, добавляются все одноэлементные множества, состоящие из состояний, не вклю- ченных ни в какие другие максимальные классы совместимости (в нашем примере таких нет). Очевидно, что результирующий список Ф является списком всех максимальных классов совместимости. Таким образом, для 1 Если элементами некоторого множества также являются множества, то для сокращения числа скобок будем использовать надчеркивание, а эле- менты множества под чертой разделять точками. Так, запись Ф = {3.4.5, 2.3, 1.2, 1.4} применяется вместо Ф = {{3, 4, 5}, {2, 3}, {1, 2}, {1, 4}}. Ясно, что Ф = {4.5} означает, что Ф есть множество, единственным элементом которого также является множество с элементами 4 и 5, т. е. Ф = {{4, 5}}. 2 Заказ № 2010 33
автомата S, (табл. 3-1 и 3-2 и треугольная табл. 3-6) множество всех классов совместимости Ф= (31415, 213, 172, 74}. Приведем без пояснений еще один пример (он взят из [63]) нахождения всех максимальных классов для автомата S3, задан- ного табл. 3-7 и 3-8 (его треугольная таблица представлена табли- цей 3-9). Таблица 3-7 6 : Ах Z-> А «1 «з ^3 а4 а, а8 аэ 21 0-3 — а2 — а-а «5 «5 ^2 а4 а9 — 01 — — Оч — а3 гз — — а7 — а2 — — — 2< «3 — а8 «5 — — 01 — Таблица 3-8 Т-. AXZ-^W «1 а2 а3 а4 аъ a-i а8 а9 21 — — — — — И'г — — z2 — —. — — — — — — — z3 — — — — — — — — 2< — —. — — — — E'l — Ф= {8.9}; 7 -879, Ф= [S3, 7183};1 6 — 9, Ф={7Л9, 679]; 5~ 6777879, Ф^-{Ш, 63, 517183, 763); 4 — 5.6.7.83, Ф= {517179, 763, 4.5.7.83, 415763}; 3 — 617183, Ф = {4.5.7.83, 4.5.63, 3.7.83, 37б3{; 2 — 3.5.6.7.83, Ф = (4.5.7.83, 4.5.63, 3.7.8.9, 3^9, 2.5.7.83, 2.5.63, 2.3.7.83, 2.3.63); Г — 2.3.5.6.8, Ф= [4.5.7.83, 4.5.63, 2.5.7.83, 2.5.63, 2.3.7.83, 213163, 7Ю, 7176, 1721518, 1721516, 1.2.3.8, 1121316}. 1 Удаляемые в результате максимизации множества выделены курсивом. 34
Таблица 3-9 Треугольная таблица для автомата 53 Задача нахождения множества максимальных классов совме- стимости может также рассматриваться как задача мальных клик (полных подграфов) неориентиро- ванного графа совместимости, вершины которого соответствуют состояниям исходного автомата, а ребра — парам совместимых состояний. Граф отношения совместимости для автомата Sj приве- ден на рис. 3-1. Из приведенных примеров видно, что мак- симальные классы совместимости для частичных автоматов могут пересекаться, а число их может значительно превышать число состояний исходного автомата. Верхняя оценка этого числа Зм/3, где М — число состояний исходного автомата [31 ]. поиска макси- Рис. 3-1. Граф отношения сов- местимости для автомата 3-2. Минимальное замкнутое покрытие Посмотрим, что будет в случае объединения состояний из не- которого класса совместимости в одно состояние. Объединим, на- пример, максимальный класс совместимости 4.5.6.9 автомата Sa (табл. 3-7 и 3-8). Таблица выходов при этом преобразуется доста- точно просто. Объединяемые столбцы заменяются одним столбцом, 2* 35
в котором в некоторой строке zf ставится прочерк, ести во всех объединяемых столбцах в этой строке стоит прочерк. В противном случае в этой строке записывается выходной сигнал, стоящий в строке Zf хотя бы в одном из объединяемых столбцов. Так, столбцы а4, аь, а6 и ая заменяются следующим столбцом (выпишем его в строку): w±-----w2. _____ Как же преобразуется таблица переходов? За классом 4.5.6.9 по входу Zj следует класс 1.2.5, по входу z2 — класс 1.3, по входу zs — 2.6 и по входу г4 — 5.6. Следовательно, чтобы автомат, по- лучающийся в результате совмещения состояний 4.5.6.9 автомата S3, был детерминированным, необходимо совместить состояния 1.2.5, 1.3, 2.6, 5.6. В свою очередь, совмещение 1.2.5 требует сов- мещения 2.6, 4.9, 3.6, совмещение 1.3 требует совмещения 3.8 и т. д. Таким образом, мы сталкиваемся с цепной зависимостью. L . Цепью В, порожденной множеством состояний С, называется система множеств, определяемая следующим образом [51]: 1. С считается элементом цепи. 2. Если Q — элемент цепи, то все множества, следующие за Q и содержащие более одного элемента, считаются элементами цепи. Кроме того, производится максимизация системы множеств В. Так, например, максимальный класс совместимости 4.5.6.9 авто- мата Sa порождает следующую цепь: ВТТТ9 = {4.5.6.9, Г. 25, ГЗ, 25, 3?6, 35, 15, 277, Г8, 25, 35). Здесь оказалось, что цепь Bjg-g-g содержит все состояния исходного автомата. Все ее элементы — совместимые классы (сов- сем не обязательно максимальные). Объединение каждого из них в одно состояние даст детерминированный автомат, покрывающий исходный, однако в этом автомате будет 11 состояний — по числу классов в цепи Яу^-д. Приведенные рассуждения подводят нас к понятию замкнутости системы множеств состояний. Множество D классов совместимости замкнуто, если для лю- бого класса С ( D каждый следующий за ним класс содержится по крайней мере в одном классе множества D. Очевидно, что цепь, порожденная некоторым классом совместимости, является замкну- тым множеством. Если множество D классов совместимости включает в свои классы все состояния множества А, то будем говорить, что D по- крывает множество состояний исходного автомата, а само D будем называть покрытием (часто используется термин группировка [35]). Множество D классов совместимости будем называть замкнутым покрытием (правильной группировкой), если D — покрытие (груп- пировка) и оно замкнуто. При проверке на замкнутость некоторого покрытия, содержа- щего некоторый одноэлементный класс совместимости, нет необхо- 36
димости проверять замкнутость этого класса в данном покрытии, так как любое множество следующих за ним состояний либо пусто, либо тоже одноэлементно и, следовательно, всегда содержится в некотором классе покрытия. Ясно, что множество всех максимальных совместимых классов всегда есть замкнутое покрытие для данного автомата. В работе [58] показано, что каждому автомату S' с М' состоя- ниями, который покрывает автомат S = (A, Z, W, 8, Z, aj, соот- ветствует в S замкнутое покрытие мощности М’ и, наоборот, каж- дому замкнутому покрытию мощности М’ в автомате S соответст- вует автомат S', покрывающий S. Таким образом, проблему мини- мизации числа состояний автомата можно свести к проблеме на- хождения замкнутого множества совместимых классов, покрываю- щего множество состояний исходного автомата и имеющего мини- мальное число классов совместимости, т. е. к проблеме нахождения минимального замкнутого покрытия. Процедура получения автомата S = (Л , Z , W , 6 , X , ai\ представляемого найденным для исходного автомата S замкнутым покрытием D, достаточно проста. Каждому классу совместимости Ci £ D ставится в соответствие состояние at- нового автомата S . Для каждого класса С, £ D и каждого zf £ Z вычисляем множе- ство следующих за С( состояний Tif = zf). Функции переходов и выходов определяются как 6'zf] = ' не определена, если Tlf = 0; а’., где a'j — состояние, соответствующее одному из классов совместимости С, С D, включающему Tlf =0 0; Zf), если существует а{ £С/, такое, что V zf~) = . k(at , zf} определена; . не определена в противном случае. В качестве начального состояния ai автомата S выбирается любое состояние из множества А', соответствующее некоторому классу совместимости, содержащему начальное состояние аг авто- мата S. Теперь должно быть ясно, как по автомату Si был построен автомат S2 (табл. 3-3, 3-4). В качестве исходного замкнутого по- крытия для него было взято множество максимальных классов сов- местимости Ф-={1.2, 1.4, 2.3, 3.4.5] = {Ь1( Ь2, Ь3, bt}. Как видно из процедуры построения, таких автоматов по дан- ному замкнутому покрытию D можно построить несколько. Это объясняется тем, что классы совместимости в D могут пересечься и для некоторых множеств следующих состояний Tif может сущест- вовать несколько классов С, f D, включающих Tif, а потому и несколько вариантов определения перехода б| (а(-, Zf). Например, для того же Si и того же множества состояний {Ь^ Ь2, Ь3, Ь4] по- строена новая функция переходов 6" в табл. 3-10. 37
Прежде чем отметить еще два свойства минимального замкну- того покрытия, дадим следующее определение. Класс совмести- мости будем называть существенным классом в замкнутом по- Таблица 3-10 6" : А' X Z^A' крытии D, если выполняется одно из условий: 1. С£ — существенный класс для удовлетворения условия по- крытия, т. е. существует состоя- ние as g Ci, такое, что as $ С,- для любого С, QD и / i; 2. Если Са — существенный класс в D по условию покрытия, то существует элемент Cr/t цепи, порожденной Са, такой, что Cat s Ci и Cat С, для любого Cj £D и / =/= i. В этом случае Ct — существенный класс в D по условию замыкания. Т е о р е м а. Если D — минимальное замкнутое покрытие, то любой класс в D — существенный. Доказательство теоремы сразу же вытекает из определения су- щественного класса и минимальности D. Следствие. Никакие два различных класса в минимальном замкнутом покрытии несравнимы на включение. 3-3. Минимизация частичных автоматов с использованием простых классов Процесс минимизации частичных автоматов по методу, предло- женному М. Поллом и С. Ангером [58], включает в себя три основ- ных этапа: 1. Нахождение всех максимальных классов совместимости. 2. Нахождение минимального замкнутого покрытия. 3. Получение по минимальному замкнутому покрытию нового автомата. Первый и третий этапы достаточно просты, их алгоритмы рас- смотрены выше. Основную сложность представляет второй этап. Следует отметить, что в ряде случаев некоторые классы из множе- ства максимальных совместимых классов для данного автомата не являются элементами минимального замкнутого покрытия, тогда как некоторые из их собственных подмножеств могут стать такими элементами. Кроме того, одни максимальные классы совместимости могут дать несколько элементов в минимальное замкнутое покры- тие, а другие — ни одного. Число же минимальных замкнутых покрытий для некоторых частичных автоматов может значительно превышать число состояний этих автоматов. Поэтому практически более важной задачей является поиск одного минимального замк- нутого покрытия для заданного автомата. В работе [58] не пред- лагается иного алгоритма поиска кроме полного перебора всевоз- можных классов совместимости и цепей, порождаемых ими. 38
В работе А. Грассели и Ф. Луччио [51 ] показано, что при по- иске минимального замкнутого покрытия достаточно рассматривать лишь одно подмножество множества классов совместимости — под- множество простых классов. Метод минимизации А. Грассели и Ф. Луччио включает два этапа: 1. Получение множества всех простых классов. 2. Выбор минимального замкнутого покрытия из простых клас- сов с помощью специальной таблицы. Для определения простого класса нам потребуется ввести пару новых понятий. Порожденным множеством Ра класса совместимости Са будем называть множество всех классов Cai, следующих за классом Са, таких, что 1) d Са; 2) Cat Cay, если Ca/ £ Pa; 3) Cai содержит более одного элемента. Ясно, что для выполнения условия замыкания класса совме- стимости Са в любом множестве классов D каждый элемент Ра дол- жен включаться в некоторый класс множе- ства D, отличный от Са. Множества, по- рожденные максимальными совместимыми классами автомата S1; представлены в табл. 3-11. Совместимый класс С, исключается совместимым классом С;, если С, с Сс и s Р,, где Р{ и Pj — порожденные мно- жества для С{ и Ct соответственно. Простым классом называется такой класс совместимости, который не исклю- чается никаким другим классом совме- стимости. Очевидно, что все максимальные классы совместимости являются простыми классами, так как они не содержатся ни в каких других классах совместимости. В работе [51 ] доказана следующая теорема: членами по крайней мере одного минимального замкнутого покрытия являются простые классы. Простые классы получаются разложением каждого максималь- ного класса совместимости на подклассы и последующей проверкой того, какие из этих классов простые. Заметим, что разлагаться должны только классы с непустыми порожденными множествами, так как класс с пустым порожденным множеством не может строго включать ни одного простого класса. Начинается процесс с включения максимальных классов, наи- больших по числу элементов, в список простых классов. Пусть они содержат по п элементов. В примере это С± = 3.4.5 из табл. 3-11. Таблица 3-11 Множества, порожденные максимальными классами автомата Макси- мальные классы Порожден- ные множе- ства 3.4.5 1.4, 1.2 2.3 4.5 1.2 2.3 1 .4 2.3 39
На первом шаге процесса генерируются все подклассы порядка п—1 (содержащие п—1 элемент) и вычисляются порожденные ими множества. К списку простых классов добавляются только те из нчх, которые не исключаются каким-нибудь простым классом, уже вошедшим в список. У нас это С2 —3?4, Р2= (Г4); С3 = 3.5, Р3=0; С4--- 475, Р4 = (L2). Затем к списку добавляются все максимальные классы совме- стимости порядка п—1: С6 = 2ГЗ, Р6={4~5); С6 = 1.2, Рв-{2.3); С7 = 1.4, Р7 = {2.3}. На следующем шаге генерируются все подклассы порядка п—2. Генерирующими классами при этом являются максимальные классы Таблица 3-12 совместимости порядка п и п—1. Процесс Простые классы автомата У, Простые классы Порожден- ные мно- жества су = злД Гл, ГД с2 =зл Гл с3 =У5 0 с.1 = ГД ГД С5 =2.3 4.5 Св = Х2 2?3 С7 = Гл Дз С8 = 4 0 С8 =2 0 С1о = I 0 продолжается путем генерации подклассов всех порядков. На каждом шаге в список добавляются только подклассы, не ис- ключаемые уже вошедшими в список, а также максимальные классы совмести- мости того же порядка. Список всех простых классов автомата S4 приведен в табл. 3-12. На втором этапе метода Грассели— Луччио ищется такая совокупность про- стых классов, которая замкнута, является покрытием и содержит минимальное число классов. Для этого строится специальная таб- лица покрытия и замкнутости, состоящая из двух частей (для автомата ГД это табл. 3-13). Строкам обеих частей соответствуют простые классы. Столбцам левой части таблицы соответствуют состояния. На пе- ресечении строки, соответствующей про- стому классу Cit и столбца / ставится знак X (крест), если состояние as (- С{. Эта часть аналогична таб- лице простых импликант Квайна [59], используемой при миними- зации булевых функций. Совокупность простых классов, имеющая крест в каждом столбце левой части таблицы, является покрытием. Для замкнутости покрытия необходимо, чтобы эта совокупность строк удовлетворяла условиям, выраженным в правой части таб- лицы. 40
Таблица 3-13 Таблица покрытия и замкнутости для 1 2 3 4 5 1.4 1.2 4.5 2.3 С1 = 3.4.5 X X X О О X С2 = ЗА X X О С3 = ЗТ5 X X С4 = 4?5 X X О X с5 = 27з X X о X С„ = Й2 X X X о С7= Х4 X X X о С8 = 4 X С9 = 2 X Cjo ~ 1 X Столбцы правой части таблицы представляют собой следующее. Пусть Са — простой класс, Ра= {Са1, . . . , Cah, . . . , Сана] — его порожденное множество. Каждому Cah £ Ра в правой части таблицы соответствует столбец, и в этом столбце на пересечении со строкой Са ставится Q (кружок). Знак X (крест) ставится в столбце Cah в тех строках, которые соответствуют простым классам, содержащим Cah. Ясно, что если какая-либо строка из совокупно- сти строк, образующих замкнутое покрытие, имеет знак Q в каком- либо столбце, то этой совокупности должна принадлежать хотя бы одна строка, имеющая в этом столбце знак X- ХЙ В работе [51 ] сформулирован ряд правил сокращения построен- ной таблицы и дан порядок их применения, в результате чего по- лучается циклическая таблица покрытия и замкнутости. Нахожде- ние минимального замкнутого покрытия по этой таблице’возможно с использованием методов целочисленного линейного'Щрограмми- рования. Был опубликован ряд работ, содержащих методы сжатия 41
подобных таблиц, на которых мы не будем останавливаться вследст- вие их трудоемкости,1 а рассмотрим метод из работы [57], в кото- ром поиск минимального замкнутого покрытия, состоящего только из простых классов, представлен как процесс построения деревьев, вершинам которых приписаны простые классы. Метод будем иллю- стрировать на примере автомата S4 (табл. 3-14 и 3-15), простые классы которого записаны в табл. 3-16. Автомат S4 взят из работы [51 ]. Этот же пример, правда с ошибками, используется и при иллю- страции описываемого метода в работе [57]. Таблица 3-14 Таблица 3-15 X: A',<Z-+W Я1 °:-, °.1 «5 a7 (2g Zt w\. w\ — — — Z2 — w2 w-2 — — .— w2 Z3 — w-2 — — — w-2 Z4 w2 — — — — ^2 w2 Z5 — — wl — — — Z6 — w2 — — — wl wl — 2; — — — w2 — Соответствующие деревья изображены на рис. 3-2. Дерево пред- ставляется в виде разветвляющейся структуры, генерируемой слева направо. Начальным элементом будем называть крайний слева простой класс — корень дерева, из которого оно генерируется. На рис. 3-2 начальными элементами являются простые классы ПГ43 и L7. 1 Трудоемкость этих методов определяется не только сложностью на- хождения минимального замкнутого покрытия по такой таблице, но и боль- шим числом простых классов. Например, у автомата с девятью состояниями S3 (табл. 3-7 и 3-8) 70 простых классов. 42
Алгоритм построения таких деревьев сводится к следующему. 1. Выбирается состояние автомата, которое содержится в ми- нимальном числе простых классов. (Если есть несколько таких состояний, выбирается любое из них.) Все простые классы, содер- Рис. 3-2. Деревья покрытий автомата S, жащие это состояние, выбираются в качестве начальных и поме- щаются слева в корнях деревьев. В табл. 3-16 каждое из состояний alf а5, аа содержится только в двух простых классах. Выбираем аг. Тогда начальными элемен- тами будут простые классы 1.2.4.5 и 1.7. 2. Дерево генерируется из каждого начального элемента сле- дующим образом. 43
Простые классы Порожденные множества Ю -Ф tJ- It— 00 СЧ СО со Ю [со IcD It- |t- |сО It- — CH 'co ’TP 1 CH 1 CO IcO IcO I’TP 1— ]<£> II II II II 1' II 1! II II II II II 0 (T72, V.7, 475} {374, 578} (772, L4} 0 {177, 475} (O) {зл, 677} {578} 0 0 0 а. В качестве вершины в дерево внесен простой класс С, такой, что его порожденное множество не пусто и не покрывается мно- жеством D (CJ простых классов, лежащих на пути, проходящем через С; (т. е. не замкнут в этом множестве). Всевозможные комбинации простых классов, удовлетворяющие условию замыка- ния Q, размещаются на различных путях, выходящих из С\-. Например, рассмотрим путь (1.2.4.5, 4.8, 3.6.7) на рис. 3-2. Когда ЗТб?7 вносится в дерево, ни одно из его условий замыкания Таблица з-16 3.4 и 5.8 еще не удовлетворено. Множе- Простые классы автомата S4 ства (4.5.8, 2.3.4} и (4.5.8, 3.4} будут удовлетворять его условиям замыкания. Поэтому они использованы для форми- рования двух путей, выходящих из 3.6.7. б. В качестве вершины в дерево внесен простой класс С;, порожденное множество которого пусто или покры- вается множеством D (С1) простых клас- сов, лежащих на пути из начального элемента в Q. Если каждое состояние автомата содержится в некотором клас- се D (С^), то D (С^ — замкнутое по- крытие, причем минимальное, если соот- ветствующий ему путь самый короткий. Если существуют состояния, которые не содержатся в простых классах D (С^, то выбираем состояние, которое содер- жится в минимальном числе простых классов. Каждый простой класс, содер- жащий это состояние, определяет неко- торую ветвь, выходящую из CL. Рассмотрим путь (1.2.4.5, 4.5.8) на рис. 3-2. Каждый элемент мно- жества (1.2, 1.4}, порожденного простым классом 4.5.8, по- крывается простым классом 1.2.4.5, поэтому анализируется мно- жество (1.2.4.5, 4.5.8}, соответствующее этому пути. Ни одно из состояний а3, а6, а, не содержится в классах 1.2.4.5 и 4.75.8. Состоя- ния а8 и а7 содержатся только в четырех простых классах из мно- жества всех простых классов^ тогда как а3 — в шести. Выбираем состояние аа и четыре ветви 6, 3.6, 3.6.7, 6.7 (все простые классы, содержащие ав) заносим вслед за 4.5.8 в дерево па рис. 3-2. в. Все пути должны строиться параллельно до получения од- ного минимального замкнутого покрытия. Это позволит избежать построения путей избыточной длины. Так как путь (1.2.4.5, 4.5.8, 6.7, 2.3) определяет минимальное замкнутое покрытие, то пути длиной больше четырех не строятся. 44
Обоснование этого алгоритма очевидно. Ни один простой класс не включается в некоторый путь без удовлетворения условий по- крытия и замыкания. Хотя бы один начальный элемент должен входить в минимальное замкнутое покрытие, чтобы удовлетворя- лись условия покрытия. Рис. 3-3. Сокращенные деревья покрытий автомата S4 Замечание. Деревья, генерируемые методом из работы [57], могут быть избыточными, поскольку в этом методе часто строятся пути, которые могут быть исключены из рассмо- трения. Рассмотрим, например, путь (1.2.4.5, 4.5.8, 6, 3.6.7) на рис. 3-2. В этом пути 6 с 3.6.7, а на основании сле- дствия из § 3-2 этот путь мо- жет быть исключен из рас- смотрения, так как в мини- мальном замкнутом покры- тии никакие два класса не- сравнимы на включение. По Рис. 3-4. Минимизация автомата этой же причине могут быть исключеньГ’также пути (1.2.4.5, 4X8, 6, 67), (L2A5, 4X8, 67, 3X7), (1.2.4.5, 4Д 6Х 4’Х8) и др. Устранение этих путей часто приводит к существенному со- кращению числа ветвей в деревьях. С учетом этого замечания минимизация автомата S4 упростится, это видно из сравнения рис. 3-2 и 3-3. Минимизация автомата S4 45
(табл. 3-1 и 3-2) иллюстрируется рис. 3-4 (простые классы Sj за- писаны в табл. 3-12). Минимальным замкнутым покрытием для St будет А' = {1.2, 2.3, 4.5}. Соответствующий этому покрытию ми- нимальный автомат приведен в табл. 3-17 и 3-18. Так как часто бывает важно найти хотя бы одно минимальное замкнутое покрытие, можно ввести еще одно эффективное правило исключения путей. Пусть 7? = (Ctl, • • , Cln, • . . , CiN) и Q = (Cji, • • , C:m,. . . , C/M) — два пути в деревьях, полученных по описанному выше алгоритму (С1Л и С;1 — начальные элементы, причем допу- стимо Cit = Сд), такие, что: 1. Для любого С!т существует такой класс С1п, что Cjm е Cin; 2. CiN — простой класс, удовлетворяющий условию шага 26 описанного алгоритма, т. е. путь R определяет замкнутое множе- ство. 3. N < М. Тогда путь 7? исключает путь Q, который отмечается крестом (рис. 3-3) и далее не рассматривается. Отметим, что это правило исключения может привести к потере некоторых минимальных замкнутых покрытий, но оно гарантирует получение хотя бы одного такого покрытия. Метод [57] поиска минимального замкнутого покрытия, состоя- щего из простых классов, с учетом сделанных замечаний значи- тельно эффективнее метода аналогичного поиска в работе [511, особенно при выполнении его вручную. 3-4. Приближенный метод минимизации частичных автоматов С увеличением числа состояний и числа входных сигналов зна- чительно возрастает объем вычислений при минимизации частичных автоматов точными методами. В связи с этим большой интерес представляют приближенные методы, которые с помощью ЭВМ по- зволяют для достаточно сложных автоматов получать решения, близкие к оптимальным. Ряд приближенных методов и большин- ство точных требуют нахождения всех максимальных классов сов- местимости, число которых, как отмечалось выше, быстро растет 46
с ростом числа состояний автомата. В связи с этим мы подробно рассмотрим приближенный алгоритм минимизации, не требующий нахождения всех максимальных классов совместимости и позволяю- щий без большого перебора найти замкнутое покрытие, довольно близкое к минимальному1 [36, 39]. Напомним, что любой класс совместимости из замкнутого по- крытия есть множество состояний, в котором все состояния попарно совместимы. Поэтому будем строить замкнутое покрытие как со- вокупность классов совместимости, покрывающую все множество состояний автомата, такую, что любое множество состояний, сле- дующих за каждым классом, содержится в каком-либо классе этой совокупности. Пусть для некоторого частичного автомата S имеется множество D классов совместимости, в котором проведена максимизация — ни один из этих классов не входит в другой класс множества D. Пусть D не является замкнутым покрытием. Будем строить замкну- тое покрытие, расширяя входящие в D классы совместимости или дополняя их новыми классами. Образуем множество Q, элементы которого — множества, порожденные классами из D, или одно- элементные множества [ат], где ат — состояние, не содержащееся в элементах D или Q. Таким образом, D [J Q покрывает все множе- ство состояний исходного автомата. Ясно, что если Q = 0, то D — замкнутое покрытие. Превращение D в замкнутое покрытие представляет собой по- следовательную процедуру, на каждом шаге которой производится попытка включения одного из элементов qt g Q в какой-либо класс множества D. Если в D имеется несколько классов, в которые можно включить qt, то выбирается тот вариант включения, кото- рый приводит к минимальному увеличению на данном шаге числа порожденных множеств в Q, т. е. элементов Q, содержащих более одного состояния. Если такое включение сделать нельзя из-за того, что какое-либо состояние, входящее в qt, несовместимо с состоя- ниями из каждого класса в D, то элемент qt переносится в D. Первоначально в качестве D выбирается наибольшее по числу элементов множество D = . . . , [aj, . . . , {ak}}, такое, что at, . . . , ajt ... , ak — попарно несовместимые состояния. Мощность (число элементов) этого множества является нижней границей числа состояний минимального автомата, покрывающего данный автомат. Для нахождения исходного множества D можно по треугольной таблице найти максимальные классы несовмести- мости (аналогично нахождению максимальных классов совмести- мости) и выбрать из них максимальный класс с наибольшим числом элементов. Этого же можно добиться, построив граф отношения несовместимости и найдя в нем полный подграф с наибольшим чис- лом вершин. Неплохие результаты, однако, получаются и при до- 1 Интересный подход к решению задачи минимизации автоматов, свя- занный с раскраской вершин графов, предложен Г. Фрицновичем в [42]. 47
статочно случайным выборе исходного множества попарно несов- местимых состояний. Пример. Применим изложенный алгоритм для нахождения замкнутого покрытия для автомата S4, заданного табл. 3-14 и 3-15. Его треугольная таблица представлена таблицей 3-19. Найдем мно- жество максимальных классов несовместимости Фп для этого авто- мата: Таблица 3-19 Треугольная таблица для автомата 54 Фн={7.8};_ 6^8, Фн = {778, 678); 5 47, Фн= {778, 48, 46, 47}; 4 <<47, Фн= {78, 48, 46, 47, 46, 477}; 3 48, Фн= {78, 48, 46, 47, 46, 47, 45, ЗТв}; 2 478, Ф„= {27778, 448, 46, 47,46, 47, 45, 48}; Г<<448, Фн={478, 448, 448, 5.6, 5.7, 46, 47, 45, 1748}. 48
Выбираем в качестве начального D = {1, 3, 8}. Тогда началь- ное Q = [2, 4, 5, 6, 7). Процедура построения замкнутого по- крытия представлена в табл. 3-20. Таблица 3-20 После третьего шага Г>{1.7, 2Д, 07, Q = = {5, 6). Попытаемся склеить элементы Q с элементами D. Так как 5 Ф 1.7, 6 1.7, 5 'т6 2.3, 6 2.3, 6 Ф 4.8, а 5 ~ 4.8, то на четвертом шаге вклю- чаем 5 в класс 4.8: £> = = {Г7, 23, 4'Л8). По- рожденным множеством для 4.5.8 будет {1.2, 1.4}, элементы которого включаем в Q: Q = {6, 1.2, 1.4). На пятом ша- ге ни один из элемен- Построение замкнутого покрытия для Q. О л S и о л X S D <2 0 Т, 3, 8 2, 4, 5, 6, 7 1 1.7, 3, 8 2, 4, 5, 6 2 Р7, 273, 8 4, 5, 6 3 1.7, 2.3, 1.8 5, 6 4 1.7, 2.3, 4.5.8 6, 1.2, 1.4 5 1.7, 2.3, 4.5.8, 1.2 6, 174 6 L7, 275, <578, ГГ2Т4 6, 275 7 1 .7, 2.3, 4.5.8, 1.2.4.5 6 8 1.7, 2.3, 4.5.8, 1.2.4.5, 6 0 тов Q не склеивается с элементами D, поэтому переносим из Q в D множество 1.2 и т. д. После седьмого шага получаем замкну- тое покрытие D — (1.7, 2.3, 4.5.8, 1.2.4.5, 6}, число элементов в ко- тором всего на единицу больше числа элементов в минимальном замкнутом покрытии. Результаты статистических исследований рассмотренного при- ближенного алгоритма минимизации частичных автоматов обсужда- лись в [36]. 3-5. Минимизация полностью определенных автоматов При минимизации полностью определенного автомата отношение совместимости между состояниями превращается в отношение эк- вивалентности. Два состояния ат и as называются эквивалентными (обозначение ат = as), если со (am, |) = со (czs, |) для всевозможных входных слов т. е. реакции автомата в этих состояниях на все- возможные входные слова совпадают. Два автомата S = (Д, Z, W, 8, X, а±) и S' = (A', Z, W, 8', X', d[) одного и того же типа (Мили или Мура) эквивалентны, если и только если для каждого состояния ат £ А существует эквива- лентное ему a Е А' и, наоборот, для каждого а' Е А' существует ат Е А, ему эквивалентное. 49
Автомат S — минимальный, если и только если из ат == as сле- дует, что ат = as. Рассмотренное выше множество максимальных классов для пол- ностью определенного автомата превращается в разбиение л мно- жества его состояний на непересекающиеся классы эквивалентно- сти. Разбиение л позволяет определить избыточные элементы в мно- жестве состояний А. Пусть, например, ат и ал эквивалентны. Это значит, что с точки зрения реакций автомата на всевозможные входные слова неважно, находится автомат в состоянии ат или as, и одно из них, например as, может быть удалено из множества А. Если каждый класс эквивалентности содержит только одно состоя- ние, множество А несократимо. Если же один или несколько клас- сов содержат более одного элемента, все элементы, кроме одного в каждом классе, могут быть исключены из множества А, в резуль- тате чего получается автомат с минимальным числом состояний. Найдем разбиение л для автомата S6 (табл. 3-21, 3-22) по его треугольной таблице (табл. 3-23): Ф= {5?6}; 3-4, Ф= {5Д, 34); Т~2, Ф= {5Тб, ЗА, 172} =л. Построение минимального автомата по разбиению л сводится к следующему. 1. В каждом классе эквивалентности разбиения л выбираются по одному элементу, которые образуют множество А' состояний минимального автомата S' = (A', Z, W, 6', X', а)), эквивалентного исходному автомату S — (A, Z, W, 6, X, aj. Выберем в нашем при- мере А' = {flj, а4, а5). 2. Функции переходов 6' : А' X Z -> А' и выходов V : А' X XZ -> W автомата S' определяются на множестве А' X Z. Для этого в таблицах переходов и выходов вычеркиваются столбцы, соответствующие не вошедшим в множество А’ состояниям, а в ос- тавшихся столбцах таблицы переходов все состояния заменяются на эквивалентные из множества А'. Минимальный автомат S5 пред- ставлен в табл. 3-24, 3-25. 50
3. В качестве а\ выбирается состояние из множества А', экви- валентное состоянию ах. В частности, удобно за а\ принимать само состояние ах, если а1^А’. Рассмотрим еще один метод нахождения разбиения л множе- ства состояний полностью оп- ределенного автомата на классы эквивалентных между собой со- стояний, предложенный Ауфен- кампом и Хоном [4]. Предварительно введем более слабое отношение эквивалент- ности: состояния ат и as k-экви- Таблица 3-23 Треугольная таблица для автомата Zk) = со (as, £k) для всевозмож- ных входных слов длины k. Если состояния не й-эквива- лентны, они k-различимы. Алгоритм определения разби- ения л сводится к следующему. Находятся последовательные разбиения лр л2( . . . , nk, л^+1 мно- жества А на классы одно-, двух-, ...,&+ 1-эквивалентных между собой состояний, до тех пор пока на каком-то k + 1-м шаге не ока- жется, что л^+1 = nk. Нетрудно показать [4], что тогда разбиение nk = л, т. е. что ^-эквивалентные состояния являются эквивалент- ными, и число шагов k, при котором nk = л, не превышает М—1, где М — число элементов в множестве А. Рассмотрим пример определения разбиения л для автомата S5 (табл. 3-21, 3-22). Непосредственно по таблице выходов (табл. 3-22) получаем разбиение лх на классы 1-эквивалентных состояний, объединяя в 1-эквивалентные классы одинаковые столбцы: лх = = |ВХ, В2} = 1-2.5.6, 3.4. Действительно, два состояния 1-экви- валентны, если их реакции на всевозможные входные слова длины 1 совпадают, т. е. соответствующие этим состояниям столбцы в таб- лице выходов должны быть одинаковы. 51
Строим таблицу (табл. 3-26), заменяя состояния в табл. 3-21 соответствующими классами 1-эквивалентности. Очевидно, что 1-эквивалентые состояния ат, as будут 2-эквивалентными, если они переводятся любым входным сигналом также в 1-эквивалентные. По табл. 3-26 получаем разбиение л2 на классы 2-эквивалентных состояний (табл. 3-27): л2= {Са, С2, С3} = Г.2, 5.6, 3.4. Аналогичным образом построим л3 == {Dx, D2, D3\ = 1.2, 5.6, 3.4 (табл. 3-27), которое совпадает с л2. Процедура завершена. Разбиение л3 = л2 = л есть разбиение множества состояний авто- мата Мили S5 на классы эквивалентных между собой состояний. Таблица 3-26 Таблица 3-27 Разбиение л2 состояний автомата S5 Ci с2 С3 ai о2 а5 «б аз оц ?1 С3 с2 Сз С2 с2 С1 С2 Ci С3 С2 с3 С2 Алгоритм построения по разбиению л минимального автомата, эквивалентного заданному, был изложен выше. При минимизации полностью определенных автоматов Мура вводится понятие О-эквивалентности состояний и разбиение мно- жества состояний на О-эквивалентные классы: к такому классу относятся одинаково отмеченные состояния автомата Мура. Если два О-эквивалентных состояния любым входным сигналом пере- водятся в два О-эквивалентных состояния, то они называются 1-эк- вивалентными. Все дальнейшие классы эквивалентности состояний для автомата Мура определяются аналогично приведенному выше для автоматов Д1илн. ГЛАВА ЧЕТВЕРТАЯ____________________________________ КОМПОЗИЦИЯ И ДЕКОМПОЗИЦИЯ АВТОМАТОВ 4-1. Соединение двух автоматов В последующих параграфах будет введено понятие сети автома- тов и строго сформулированы задачи композиции и декомпозиции автоматов. Здесь же мы рассмотрим три основных вида соединения автоматов: параллельное, последовательное и с обратной связью. 52
Параллельное соединение двух автоматов иллюстрируется рис. 4-1. Здесь Si = (Ах, Z, IFX, 6t, Хх) и S2 = (А 2, Z, W2, б2, Х2). Входной алфавит у обоих автоматов один п тот же. Выходы авто- матов Sx и S2 соединены с функциональным преобразователем <р (автоматом без памяти), реализующим отображение ф*: Wr X X W2-+W. Результирующим автоматом параллельного соединения двух автоматов Sx и S2 назовем автомат S = (A, Z, W, б, Л), у которого: 1. Множество состояний А = = А х X А 2 — множество всевоз- можных пар, первые и вторые ком- поненты которых есть, соответст- венно, состояния автоматов S’x и А = {O,n (^mx’ °тп2) I ^т1 6 Л х, 2. Входной алфавит есть вход- ной алфавит Z автоматов Sx и S2. 3. Выходной алфавит W = ф ( Рис. 4-1. Параллельное соедине- ние двух автоматов х X W2), ф — заданное ото- бражение. 4. Функция переходов б : А X Z-> А, определяемая следую- щим образом: 6К. z/) = (61(ami, zf\ 62(aOTa, zf)), zf£Z. Мы будем использовать также другую запись: 6 (А х Z) = (бх (Ах X Z), 62 И 2 X Z)). 5. Функция выходов X : А х Z -> W, определяемая следующим образом: (am> zf) = <Р (^i (%» ?/). (%, ?/)), иначе б (А х Z) = ф (Хх(Дх х Z), X2(A2xZ)). Рассмотрим пример параллельного соединения двух автоматов Sx = (В, Z, U, бх, Хх) (табл. 4-1 и 4-2) и Ss = (С, Z, V, 62, К2), (табл. 4-3 и 4-4). Функция ср : U X V -> W определена в табл. 4-5. Результирующим автоматом этого соединения будет автомат S = (A, Z, W, &, X), у которого: 53
1. A = B \C={(b1, cj, (blt c2), (b2, cj, (b2, c2), (b3, cx), (bs, c2)} = -=- (Oi, , at]. 2. Z=[zlt z2). 3. U7= (&yx, w2, &y3}- Таблица 4-6 6 : Л X ZA 01 a2 a3 01 a5 ae biCi bic2 b2ci ^2^2 b3cL Z1 bici bLc2 biCi &,c2 biPi b2ct Z2 b3c2 b3ci Ь'3С2 &3CX biC? b2c1 Таблица 4-7 f,:Ay.Z->\V 01 tz2 a3 01 0-b aG biCi &1<?2 &2cx bye. b3ci b3c2 4 W1 W2 W3 ш2 ш3 ai2 Ш1 W2 W1 w2 Ш1 4. Функция переходов 6 : A X Z -> А определена в табл. 4-6. Здесь, например, 6 (а3, zx) = 6 ((Ь2, сх), zx) = (бх (Ь2, zx), 62 (сх, zx)) = (&х,сх) = ах. 5. Функция выходов Л : А X Z -> W7 определена в табл. 4-7. Здесь, например, Маз, гх) ~= К (<Ъ2, сх), zx) = <р (Лх (b2, zx), А.2(сх, гх)) = ф(м2, ух) = ьу2. Последовательное соединение двух автоматов иллюстрируется рис. 4-2. Здесь Sx=(Xx, Z, Гх, бх, Хх) nS2=(X2, Гх, W, б2, Х2), т. е. выходной алфавит автомата Sx является входным алфавитом S2. 54
Результирующим автоматом последовательного соединения двух автоматов Sx и S2 назовем автомат S = (Л, Z, W, 6, Л), у которого: 1. А==АххА2, иначе А = {am = (am,, ami) | ami £ Alt ат^А2]. 2. Z = Z. 3. w = w. 4. 8: A xZ -> А, определяемая следующим образом: --- Sf —* S? иначе 6 (Л х Z) = (бх (Ах X Z), б2 (А2хХх (AxXZ))). 5. Л : А X Z -> W, определяемая следующим образом: Рис. 4-2. Последователь- ное соединение двух ав- томатов иначе X (А х Z) = ?.2 (/12 х Zj 0! х Z)). Рассмотрим пример последовательного соединения двух авто- матов Sx = (В, Z, U, бх, Лх) и S2 = (С, U, W, б2, Х2). Автомат Sx — тот же, что и при па- раллельном соединении (табл. 4-1 и 4-2), а автомат S2 опре- делен в табл. 4-8 и 4-9. Результирующим автома- том этого соединения будет автомат S = (A, Z, W, 6, Л), у которого: 1. А = ВхС={(Ь1, сх), (blt с2), (б2, сх), (Ь2, с2), Таблица 4-8 б2: С X U -> С сх С2 «1 U2 С1 с2 с2 СХ Таблица 4-9 к2:С х U->W СХ С2 «1 И2 в в С1 в в (Рз, сх), (Ь3, с2)} —{ах, а2, д3, дх, д6, д6). 2. Z= (zx, z2). 3. W = [tt>x, йу2} . 4. Функция переходов б : А X Z -> А определена в табл. 4-10. Здесь, например, б (а3, zx) = б ((б2, сх), zx) = (бх (б2, zx), б2 (сх, А-i (J>2, zx))) = (бх, б2 (сх, ы2)) = (бх, с2) = а2. б : А х Z-* А Таблица 4-10 ах «2 а3 «4 а5 ае &хсх &хс2 b2Ci ^2^2 &3СХ &3С2 Z1 &хсх &хс2 Ьгс2 6ХСХ ^2^2 &2сх ?2 63с, Ь3с2 b3ci 63с2 Ь.,с2 55
5. Функция выходов Л : А X ZW определена в табл. 4-11. Здесь, например, X (а3, zx) = X ((62, сх), zx) = Х2 (сх, Хх (b2, zx)) = Х2 (сх, и2) = w2. Таблица 4-11 К: А х Z-+W «1 «2 Оз «4 а5 Й]С2 Ь2С2 b3ct ^3С2 «1 ш2 ^2 Ш1 Рис. 4-3. Соединение двух автоматов с обрат- ной связью Соединение с обратной связью. Соединение двух автоматов с об- ратной связью иллюстрируется рис. 4-3. Здесь 8Х = (Ах, Zx, W, 6-t, Хх) и S2 = (А2, W, W2, б2, X2). Функциональный преобразова- тель у (автомат без памяти) реализует отображение: у : Z X X W2 -> Zx. Покажем, что в случае соединения с обратной связью по край- ней мере один из автоматов — 8Х или 82 — должен быть автоматом Мура. Предположим противное, т. е. что 8Х и S2 — оба автомата Мили. Тогда Г2 = Х2 (А 2 X Г), W = Хх (Л х X Zx). Входной сигнал Zx первого автомата будет ZL = y(Zx IT2) = y(Z х Х2(Л2 х Г)) = = У (Z X Х2 (А2 X Хх (Ai х Zx))). Таким образом, оказалось, что Zx в данный момент времени зависит от Zx в тот же момент времени, что приводит к нестабильности системы при таком соединении. Если же один из автоматов, напри- мер Sx,— типа Мура, то 1Е = Хх(Ах) и Zx = у (Z х W2) = у (Z X х2 (А2 х Г)) - у (Z X х2 (А2 х Хх (Ах))). Стабильность системы не нарушается. Пусть 82 —модель Мура (W2 = Х2 (А 2)). Результирующим автоматом соединения двух автоматов 8Х и S2 с обратной связью назовем автомат 8 — (A, Z, W, 6, X), у которого: 1. А = А] х А2, иначе А = \ат = (а^, amJ | ami б А,, ат! £ А2) . 2. Z = Z. 3. w = w. 4. 6 : А х Z -> А, определяемая следующим образом: 56
6 К- иначе 6 (A x Z) = (бх (Ax x у (Z x X2 (А2))), б2 (А2 х Хх (Aj х у (Z х XJ (Л2))))). 5. Х:А xZ~>W, определяемая следующим образом: Ча«> Z/)=\K’ 4zf’ \ иначе X (А х Z) == Xj (Аг х у (Z х Х2 (А2))). Рассмотрим пример соединения с обратной связью (рис. 4-4) двух автоматов Si = (В, Р, W, 61; Хх) (табл. 4-12 и 4-13) и S2 = = (С, W, V, б2, Х2) (табл. 4-14). Функция у : Z X V -> Р определена в табл. 4-15. Результирующим автоматом этого со- единения будет автомат S = (A, Z, W, б, X), у которого: 1. А = ВхС={(б1, Cj), (бх, с2), (Ь2, Сх), (б2, с2), (б3, Сх), (63, с2)} = {Лх, а2, а3, аА, аб)’ 2. Z= (zi, z2, z3}. Рис. 4-4. Пример соеди- нения двух автоматов с обратной связью 3. W = {u>x, W2, Ш3}. 4. Функция переходов б : А X Z -> А определена в табл. 4-16. Здесь, например, б (as, Zj) = б ((б2, d), zx) = (бх (b2, у (zlt Х2 (d))), б2 (сх, Хх (62, у (Zj, Х2 (сх))))) = (бх (Ь2, у (Zj, t>i)), б2 (сх, Хг (б2, У (^1, fi)))) = (бх (Ь2, рг), б2 (ci, Хх (б2, рх))) = (62, б2 (ci, w2)) = = (б2, с2) = d- 5. Функция выходов X : А X Z W определена в табл. 4-17. Здесь, например, X (as, Zj) = X ((62, Ci), zx) = Хх (б2, у (zx, Ха (Сх))) = Хх (б21 у (Zx, Ci)) = Хх (62, pi) = w2. 57
Таб шца 4-14 62:CX1F->C, Таблица 4-16 Y.AxZ >Л ax a2 a3 at a5 ae biCi bic2 b2ci ^2^2 b3cr &3C2 Z1 bsci b2Ci ^2^2 6XC2 b3Ci Ь1с2 zi b3ci b2ci ^2^2 ^1C2 b3ct blC2 4 bsci b3ci b2c2 biC2 b3C! b3c2 Таблица 4-15 V.ZXV-+P Z1 г3 fl Pl Pl Pi f2 Pi Pi Pi Таблица 4-17 X: A/Z -> Г ax a2 a3 at аъ «6 5xCi &]Ca bici b2c2 b3cr b3c2 zi W3 w2 wl w2 4 Wi Wj te>2 г3 w2 W2 Ш1 X Sj S, 8г Рис. 4-5. Последовательное соедине- ние трех автоматов 4-2. Соединение с выходной функцией Рассмотрим последовательное соединение трех автоматов Sx = = (В, Z, X, бх, Лх), S2 = (С, X, Y, б2, Л2) и$3 = (D, Y, W, б3, Х3) (рис. 4-5). Пусть в общем случае в некоторый начальный момент времени ix автоматы Sb Х2и$3 находятся соответственно в состо- яниях bi , ct и di , а на вход Sx поступает входное слово = выходного слова определим = z^z^ . . . zt . Для получения реакции каждого автомата: Входное слово £2 • • • z,x z,2 Последовательность состояний Sx............. btl bi2 = бх (biv ZiJ Выходное слово Sx ix = (&ijj Sz)............. xtl = Xx (&(1> zt^ Xi2 = Xx (&12> zJa) Последовательность состояний S2............. c4 cl2 = e2(clr x(1) Выходное слово S2 iy — и2 (clx> Д) • • • ytl = 1.2^Ci^, Xij) Jf>2 = ^2 (C>2* Xli) Последовательность состояний S3.......... d,x d12 = 63 (d/x, y^') Выходное слово S3 = co3 (dix, ?</) • • • . ш;1 = Х3(с/1х, t/21) wt2 = X3 (dt2> 58
Очевидно, что S2 сможет выдать выходной сигнал у^ — !^ xtJ и перейти в следующее состояние = 62 только после того, как автомат Sx выдаст выходной сигнал = Хх , z,J. Точно так же S3 выдаст wti = Х3 y,J и перейдет в следую- щее состояние только после поступления на его вход выходного сигнала у^, выработанного автоматом S2. Таким образом, выход- ной сигнал wt , хотя он и относится к моменту времени ix, появится на выходе спустя ЗТ, где Т — время выработки выходного сигнала одним из автоматов. При последовательном соединении п автоматов это время возрастет до пТ, а такая задержка может быть нежела- тельна по практическим соображениям. Кроме того, такое соедине- ние автоматов может привести к серьезным затруднениям в смысле синхронизации при более сложном последовательно- параллельном соединении или при наличии обратных связей. В связи с этим вместо структуры, изображенной на рис. 4-5, мы будем рас- сматривать соединение ав- томатов с выходной функ- цией (рис. 4-6). В качестве Рис 4-6 Последовательное соединение с выходной функцией компонентных автоматов вместо авто- матов, описываемых пятеркой St = (At, Zt, Wt, 6„ Л(), в схеме на рис. 4-6 используются полуавтоматы St = (At Zt, 6(). Полуав- томат — это автомат Мура, в котором обеспечена полнота выходов, означающая, что каждому состоянию поставлен в соответствие свой выходной сигнал, отличный от выходных сигналов других состояний. Очевидно, что в таком автомате число выходных сигна- лов равно числу состояний автомата. Вместе с предыдущим утверж- дением это приводит к тому, что в автомате Мура с полной систе- мой выходов можно отождествить состояния автомата с его выход- ными сигналами. В связи с этим в полуавтомате можно использо- вать один и тот же алфавит и для состояний и для выходных сигна- лов. Ясно, что функцию выходов в этом случае также задавать не нужно, а потому вместо отмеченной таблицы переходов полуавто- мат задается просто таблицей переходов. Иногда полуавтоматы называют автоматами без выхода. Итак, пусть в соединении на рис. 4-6 представлены полуавто- маты Sx = (В, Z, 6Х), S2 = (С, В X Z, 62) и$3 = (D, С X Z, 63). Выходная функция реализует отображение g : В X С X X D X Z -> W. Если в некоторый начальный момент времени ix Sx, S2 и S3 находятся в состояниях Ь^, ct и соответственно, то при поступлении входного сигнала z все полуавтоматы могут одновременно начать переход в следующее состояние: = СЬ = 62К’ d..= 83K' К’ 59
так как входами для S2 и 83 в момент являются текущее состоя- ние bt и с£ автоматов 8Х и S2 соответственно и внешний входной сигнал г£ . Сигнал на выходе w^g^b., с^, d. , z.J также за- висит от текущих состояний в момент и входного сигнала z£ в тот же момент времени. Таким образом, при увеличении числа последовательно соединенных автоматов задержка на выходе не растет. Заметим, что выходная функция g определяет, является ли ре- зультирующий автомат автоматом Мили или Мура. В последнем случае g не зависит от Z. 4-3. Сеть автоматов описывающей совместную работу совокуп- Z'i 4/ Рис. 4-7. Компонентный авто- мат сети В качестве модели, ности автоматов, в алгебраической теории автоматов I54] исполь- зуется сеть автоматов. Введенное ниже определение сети автоматов близко к понятию сети в работе [54]. Однако там не определено понятие структуры сети, мы же будем зада- вать структуру сети в виде сово- купности функций, что позволит классифицировать задачи композиции и декомпозиции, а также существенно облегчит исследование структурных свойств сети. Большинство приведенных в этом параграфе определений взято из работы А. Кеэваллика 1 [22]. Сеть автоматов — это шестерка М = (2, [SJ, W, [Д], ш, g), где: 1. Z — входной алфавит. 2. {8£ = (А;, Z;, 6f)}> 1 <4 я—множество компонентных автоматов (КА) сети. КА S£ — полуавтомат (рис. 4-7), Z, — его входной алфавит: z ( z-xZ'. при z: =4 0, Z’. при Z\ = 0; Z'. — внутренний входной алфавит S£, Z” — внешний входной ал- фавит St. Функция переходов S£ б£: А£ X Z£ -> А{. 3. W — выходной алфавит сети. 1 Несколько другой подход к решению задачи декомпозиции автоматов встречается в работах А. Мелихова, например [29]. 60
4. Jfi'. (X Z’t\, 1 C j "n — множество функций соеди- нения компонентных автоматов сети.1 5. {ф.: Z -> Z"j, 1 i n—множество входных функций. 6- g: (X Д,) X Z W—выходная функция сети. Множества {SJ и {Д} назовем, соответственно, базисом и структурой сети. Определенную таким образом сеть можно рассматривать как общую модель совместной работы совокупности автоматов, по- скольку в ней нет ограничений ни на выбор элемента базиса, ни на выбор структуры. Сеть из п компонентных автоматов изобра- жена на рис. 4-8. Рис. 4-8. Сеть из п компонентных автоматов Для сети N можно строить функционально эквивалентный ей автомат SN, который будем называть результирующим автоматом сети N. Результирующим автоматом сети N = (Z, (5J, W, {Д-), (ф,-), g) назовем автомат S.v ’-(Av> WN, 8n, Z,a>), у которого: 1. AN=XA(, t = l, .... n. 2. Z„ = Z. 3. WN = W. 4. Функция переходов 6N : Ал x ZN -> определяемая сле- дующим образом: 1 X Aj — сокращенная запись произведения множеств, означающая Аг X А2 X . . . X Ап. 2 х (am-’ (ат1.........ат )> Ф; (zf))) ~ сокращенная запись «-ком- понентного вектора, г-й компонент которого равен \ ат , (f. [ат , . . ., атп^ ’ 61
Здесь am£AN, zf^ZN, am^At, am-=[am , .. am^. 5. Функция выходов zn:AnxZn-^Wn (в модели Мили), определяемая следующим образом: В модели Мура ^an-+wn, МЧ=£(Ч •••’ %) Рис. 4-9. Пример сети с тремя компонентными автома- тами Рассмотрим пример. Пусть задана сеть N = (Z, {S1( S2, S3[, !/i> fa, fa], [Ф1, Фг, Фз}. g) (Рис- 4'9)- в этой сети Z- !zi> z2, z3, z4], W= {о?!, ш2). Компонентный автомат Sr = (В, Zlf 6X). Zv = X, так как у <Sj нет входов от других компонентных автоматов; X = {хх, х2, х8}. функция л = 0; Таблица 4-18 Таблица 4-19 функция фх : Z — X за- (ц-.ВхХ^В Дана в табл. 4-18. Функция пепехолов Z X bi Ьз Ьз : В X X -> В опре- делена в табл. 4-19. Компонентный авто- мат S2 = (C, Z2, б2). Его входной алфавит Z2 = Q X У= [((В, У1), (<7i> Уг), (У2, У1), (%, Ш ч г3 г4 Х1 xi *3 Х1 х3 bl Ьз Ь3 bl bi bi Ьз Ьз bi Q= {ft. Ч {У1, Ч Функции ф.2: Z — У, f<>: В X D — Q и 62: С х (Q X Y) С определены в табл. 4-20, 4-21 и 4-22 соответственно. Компонентный автомат S3 = (D, Z3, 63). Входной алфавит Z3—РхТ—{(Pi> ^i), (Pi, ^)> (Рг> ^i)> (Рг> ^з)}5 Р = [Pi, Pi], Т = [t4, /2) • Функции ф3 : Z -> Т, f3 : С -> Р и 63 : D X (Р X 7) D опре- делены в табл. 4-23, 4-24 и 4-25 соответственно. 62
Таблица 4-20 ф2 : Z -> Y Таблица 4-21 f.,:BxD->Q Таблица 4-22 62-.CX{QxY) -^c Z Y BxD Q Cl cz 21 ?2 2.3 z4 У1 У-2 У1 У2 btd2 b2d\ b2d2 Ьз^1 b^d2 <71 42 <71 <71 <71 <71 Ч1У1 Я1У2 Я2У1 Я2У2 Cl C2 Cl C2 Cl C] C2 C2 Таблица 4-23 Фз : Z -> T Таблица 4-24 k-C->P 83 : Таблица 4-25 DX(PXT)->D Таблица 4-26 g-.CxD->W Z T C p di d2 CXD w 21 22 23 21 В В В ^2 Cl c2 Pl Pi Pih Plh P2G P2^2 d2 dt d2 dt a. a. sx i-1 2 3 4 ta to i-i c^d2 c2dx В § S § H H tJ H- Выходная функция сети g : С X D -> W определена в табл. 4-26. Все, что перечислено выше — задано, так как задана сеть N. . Необходимо построить для сети N ее резуль- тирующий автомат SN = (AN, ZN, WN, 8X, Таблица 4-27 7Л>): Таблица 1. AN = В xC X D = {(&!, q, dj), . • ., (^з, ^2> d2)j ~ {®ь • • •> ^12}’ При большом числе состояний удобно задавать таблицей кодирования состояний, в которой каждому состоянию из поставлен в соответствие вектор, компоненты которого — состояния компонентных автоматов сети (табл. 4-27). 2. ZX = Z= {z1( z2, z3, z4|. 3. WN^W={w1, ш2}. 4. Функция переходов 6V : AN X ZN->AN определена в табл. 4-28 (отмеченной таблице переходов, так как SN — автомат Мура: выход- ная функция сети g не зависит от Z). Здесь, на- пример, бд/ (а3, Z1) = бЛ, ((&!, с2, dj), z4) = (81 (&i, Ф1 (zj), 82 (с2, (f2 (blt dj, ф2 (Zj))), S3 (dlt (f3 (c2), ф3 (z4)))) = (64 (blt Xj), 62 (c2, (Рг> G))) (^i> d2) — a2. кодирования состояний BxCxD Oj b^d! 6Z2 bi^dz 03 b]C2di a4 b^c2d2 «5 b2C]di a6 a? a8 ^2^2^2 a9 ЬзС1^1 a10 b3Cid2 all bsC2di a12 b3,c2d2 (<7i. Z/i))> S3 (.di, 63
5. Функция выходов Xv: Лу - WN определена в юн же табл. 4-28. На- пример, \v (а3) — (Ьъ с2, di) = g (с2, dj = Wi. Введенные понятия сети автоматов и ее результирую- щего автомата позволяют сформулировать задачи ком- позиции и декомпозиции ав- томатов. Под задачей компо- зиции автоматов понимается задача нахождения для сети N ее результирующего авто- мата SN. Для определения задачи декомпозиции автоматов вве- дем дополнительные поня- тия. Автомат S' = (Л', Z', W, S', К') называется под- автоматом автомата S = (Л, Z, W, 6, к), если и только если А' С А, Z' С Z, W'CW и для любого am£A' и лю- бого Zf Е Z' справедливо S' (ат, zf) - 6 (ат, Zf), J Zf). Другими словами, на об- ласти определения автомата S' поведение обоих автоматов совпадает. Таким образом, автомат S «делает столько же, сколько и S', и, быть может, несколько больше». Таблица 4-29 6' : А'Х X Z'-+A’ а2 «3 Z1 <z2 Я1 03 Z2 аз а2 01 Таблица 4-30 к' : А'Х X Z'->W 01 о2 а3 Z1 | ьэ ы ] 64
Примеры автоматов Мили S' и S, таких, что S' есть подавто- мат S, приведены в табл. 4-29, 4-30 и табл. 4-31, 4-32 соответственно. Таблица 4-31 t>-.AxZ->A а1 6Z2 а3 «4 а3 °1 °1 г3 0-1 а4 аз Таблица '-32 X: AxZ->W а2 а3 а4 *1 Шз г2 Ш1л О»! О»! Автоматы S и S' называются изоморфными, если существуют три взаимно-однозначных отображения Ф^Д-^Д', q>2:Z->Zz, Фз: W -> W', таких, что Ф1(б(ат, zf)) = 6Z (Ф1 (ат), y2(zf)) и Фз (Ь (,ат, Zf)) - X' (фх (aj, ф2 (Zf)) для любых ат Е Д и zf£ Z. Тройку отображений фь <р2 и Фз называют изоморфизмом авто- матов S и S'. Кратко понятие изоморфизма формулируется сле- дующим образом: образ функции равен функции образов. Иначе, изоморфные автоматы идентичны с точностью до обозначений со- стояний, входных и выходных сигналов. Изоморфные автоматы S = (Д, Z, W, 8, 1) и S'= (В, U, V, 8', к') приведены в табл. 4-33, 4-34 и табл. 4-35, 4-36 соответ- ственно. Таблица 4-34 Таблица 4-33 6 : Лхг->Л 3 Заказ № 2010 65
Здесь изоморфизм — тройка фт, ф2, Фз: Фх: аг -> Ь„ ф2: zx -> н2 <p3: w1 -> a2 -» b1 z2 ur w2 -> v3 a3 > bs w3-+v2. Проверим, например, изоморфизм на паре (а2, zj: Ф1 (6 (а2, Zj)) = фх (flj) = b2, 8' (фх (а2), ф2 (?х)) = 6' (blt и2) = Ь2, Фз («2, Zx)) = ф3 (w3) = v2, К’ (фх (а2), ф2 (zx)) = Л' (Ьъ и2) = аг. Автомат S' назовем реализацией автомата S’ (обозначение S — = R (S')), если у автомата S существует подавтомат, изоморфный S'. Таким образом, если автомат S реализует автомат S', то пове- дение S с точностью до обозначений совпадает с поведением S' на области определения S', так как у автомата S должен быть не- который подавтомат S", изоморфный S'. Теперь мы можем определить задачу декомпозиции автомата S, под которой понимается задача построения сети N, такой, что ее результирующий автомат SN реализует заданный автомат S, т. е. SN = R (S). 4-4. Разбиения на множестве состояний результирующего автомата сети Напомним, что разбиением множества А называется множество л — {£?!, ..., Вт}, элементы которого — подмножества А(В;СА, i = l, ..., т), удовлетворяющие следующим условиям: 1. Для любых двух множеств Вс и Bj(i /) В^В^ 0. tn 2. U В; = Д. 3. Bi =/= 0, i = 1, .. ., т. Множества Bt (i = 1, ... , т) назовем блоками разбиения л. Пусть, например, А = {1, 2, 3, 4, 5, 6, 7). Разбиение л={{1, 2, 4), {3}, (5, 6, 7)) будем обозначать следующим образом: л = = 1.2.4, 3, 5.6.7. Еще примеры разбиений того же множества: Т, 2.3.4.5.6, 7; 1.2.3.4.5.6.7; 1,2, 3, 4, 5, 6, 7. Последние два разбиения — особые. Разбиение, состоящее из одного блока, называется единичным разбиением (обозначение л (1)). Разбиение, все блоки которого содержат по одному элементу, на- зывается нулевым разбиением (обозначение л (0)). Пусть Л; и л;- — разбиения некоторого множества А. Будем говорить, что (л£<(л;), если и только если каждый блок л; входит в какой-либо блок лг Ясно, что введенное таким образом отноше- ние — частичный порядок, так как оно: 1) рефлексивно (л( ' л;), 2) транзитивно (если л£ 0 л,- и л;- -" лр, то лг<лр), 66
3) антисимметрично (если л, л, и л, < л(, то л, = л,). Пусть, например, = 1.2.3.4, 5.6.7, л2=1.2, 3.4, 5.6.7 и л3 = 1.2.5.6, 3.4.7 — разбиения множества А = {1, 2, 3, 4, 5, 6, 7). Очевидно, что л2 < nlt а лх и л3 несравнимы (nj £ л3 и л3 nx). Точно так же несравнимы л2 и л3. Ясно, что л1-<л(1) и л(0)</л,., где л. — любое разбиение некоторого множества, а л (0) и л (1) — нулевое и единичное раз- биения того же множества. Определим на множестве разбиений данного множества опера- ции произведения и суммы разбиений. Пусть л,- и л,- — разбиения некоторого множества А. Произведением л( л,- разбиений л£ и л, называется разбиение А, состоящее из всех непустых пересечений каждого блока л(- с каждым блоком л;. Пример. л1 = 1.2.3.4, 5.6.7.8; л2= 1.3.5, 2.4.6.7.8; 1.2.3.4 ПГ^5-=ГЗ; 1.2.3.402.4.6.7.8 = 2Л; 50 708 Г) ГзЗ = 5; 5.6/Т8|~)2.4.67.8 = Ш; л3 = л1л2=1.3, 2.4, 5, 6.7.8. Будем говорить, что два множества А и В связаны, если А П В Ф 2)- Два множества А и В связаны цепью, если су- ществует последовательность Alt А2, . . . , Ап, такая, что А = Alt В = Ап и At связано с Xl+1 для всех i = 1, . . . , п—1 (т. е. A-Г) A'+i ¥= 0)- Определим сумму разбиений л = л,- + л;._ Пусть В — некото- рый блок лР Тогда блоком л, содержащим В, будет объединение всех блоков л,- и л;, которые связаны цепью с В. Пример. л1== L5, 2В, 3.8.9, 47; л2= Г4, ДЗЯ, ЪЛ, 08; Е5ПГЛ^=0;' П4П47¥=0; 47(15700- Тогда 1.4.5.7 — блок л3 = лх + л2. Аналогично 2.3.6.8.9 — второй блок л3; л2 +л2 = л3= 1.4.5.7, 2.3.6.8.9. Сумма разбиений л3 = лх + л2 хорошо иллюстрируется на графах. Построим граф, вершины которого — элементы множества А. На А заданы разбиения лх и л2. Две вершины р и q (р, q £ А) соединим ребром, если р и q входят в один блок разбиений лх или л2. Тогда в л3 будет столько блоков, сколько компонент связно- сти содержит построенный граф. Вершины, входящие в одну ком-' поненту, образуют один блок разбиения л3. Граф для последнего примера изображен на рис. 4-10. Введем следующие обозначения: а = b (л) — а и b находятся в одном блоке разбиения л; Вп (а) — блок разбиения л, содержа- щий а. 67
Перейдем к разбиениям множества состояний = (Лл,, ZN, WN, ^n) результирующего автомата сети N, содержащей компонентные автоматы Slt ... , Sn. Покажем, что поведение каж- дого компонентного автомата может быть представлено в терминах разбиения Лх. Пусть ат = (а^, .... ат^ ар= ..., ат, ар£А^ а бЛ.; Л. —множество состояний компонентного p-j г 1 / = 1, . . . , п. Определим разбиение л. . .на 1112 1Г автомата множестве Л N следующим образом: ат = ар(л{ (. . ), если и только если ат =ар для всех j = ilt i2, . . . , ir. Таким образом, два состоя- ния ат и ар результирующего автомата попадают в один блок л. . , , если и только если в ‘112 • г нх кодах соответственно равны Рис. 4-10. Граф, ил- люстрирующий сум- му разбиений лх = = L5, 2?6, 0.9, 4/7 компоненты t1( i2, ... , i,. Пример. Ранее был получен ре- зультирующий автомат SN с кодированием в табл. 4-27. Непосредственно из этой таб- лицы видно: л12=1.2, 3.4, 5.6, 7.8, 9.10, 11. 12; л23 = ТХ9, 2.6.10, 37Л1, 4~8Л2. Нетрудно видеть, что каждый блок л . соответствует различным элементам '1‘г ‘г в множестве Л, X Л. х ... х Л. (А . — 1 2 1Г \ 1/ множество состояний компонентного авто- и л2 — 1.4, 2.3.9, мата S., i — 1, . .., г], т.е. вл.. . столько 5.7, 6.8 л li ' ‘Г2-1г блоков, сколько различных внутренних состояний имеет система автоматов S. , S , .... S.. Действи- '1 '2 ‘г тельно, л 23 включает 4 блока, и столько же состояний имеет система автоматов, состоящая из S2 и S3 : С X D = {(сь d^), (съ d2), (с2, dj, (с2, d2)]. Блок 1.5.9 разбиения л23 соответствует состоянию (сх, dj) системы S2 и S3, а состояния alt аъ и а9 автомата SN имеют одинаковые второй и третий компоненты, равные и dr. Блок 2.6.10 соответствует состоянию (с1э d2), блок 3.7.11 —состоянию (с2, dx), а блок 4.8.12 — состоянию (с2, d2). Если в Л( . . . lr г = 1, то на AN можно аналогичным образом задать разбиение л; (иногда его называют примарным разбиением). Это разбиение, очевидно, определяется следующим образом: ат = ар (О , если и только если ат. = а;?; (ат, ap£AN; ат., ар. £ Л.). Таким образом, в один блок разбиения л; попадают те состояния результирующего автомата, которые имеют одинаковые t-е компо- ненты. 68
В нашем примере л4 —1.2.3.4, 5.6.7.8, 9.10.11.12; л2= 1.2.5.6.9.10, 3.4.7.8.11.12; л3 = 1.3.5.7.9.11, 2.4.6.8.10.12. Ясно, что число блоков разбиения л,- равно числу состояний компонентного автомата Sc и между блоками л; и состояниями S(- имеется взаимно-однозначное соответствие. В нашем примере. Л4, Вр «а, В3. В2Т4 -> Ь1г 1.2.5.6.9.10 -> с1( 1.3.5.7.9.11 -> <4, 5.6.7.8->Ь2, 3.4.7.8.11.12->с2; 2.4.6.8.10.12->d2. 9.10.11.12->63; В связи с этим можно отождествлять состояния St с блоками разбиения л(, считая, например, что автомат имеет три состоя- ния: первое 1.2.3.4, второе 5.6.7.8 и третье 9.10.11.12. Иначе; л^ПГЗЛ, 5.67.8, 9.10.11.12^ {blt b2, Ь3} = В, л2 = ПШЙЭЛО, 34778.11.12 = {сх, с2) = С, л3 - ТТГ5?7?9ЛТ, 2.4.6.8.10.12 = [dL, d2] = D. 4-5. Разбиения со свойством подстановки Разбиение л на множестве состояний автомата S = (4, Z, W, 6, К) обладает свойством подстановки (является СП-разбиением'), если и только если из am = as(n) (ат и as—в одном блоке л) следует, что 6(а„г, zz) = 6(as, zf) (л) для всех zf£Z. Иначе, под действием любого входного сигнала автомат из со- стояний, находящихся в одном блоке л, переходит в состояния, также находящиеся в одном блоке, т. е. каждый входной сигнал отображает блоки л в блоки л. Таким образом, для 2/6Z и В Е л существует единственный блок В' 6 л, такой, что 6 (В, Zf)CB'. Пример. В автомате S, таблица переходов которого пред- ставлена таблицей 4-37, два СП-разбиения: л4 = 1.2.3, 4.5.6 и л2 = 1.6, 2.5, 3.4. Таблица 4-37 6 : А X Z -+ А Я1 6Z3 я4 а5 Яв г1 я4 я5 я4 «3 Z2 а-з а-з а2 а0 я4 я4 69
Проверим это для л4. Найдем все переходы из состояний, по- павших в каждый блок, под действием zr и z2: 1X3: б(аъ Z!)=fl4) б(а1( z2) = a3, 8 (г/,, zx) = ав, 8 (a,, z2) а3, 8 (aa, zx) = щ, б (а3, z2) = а2, 6 (Г727з, z4) = 4Л6; 8(L23, z,)s= 1.2.3. 4Л6: 8 (я4, zx) = а2, 8 (й4, z2) = а5, б (а5, г,) = аи б (а3, z2) = а4, 8 (ав, zx) = а3, б (ав, z2) = а4, б (4X6, z4) = ПГЗ; 8 (4А6, z2)£= 4.5.6. Так как в случае СП-разбиения л на множестве А состояний S каждый блок этого разбиения при любом входном сигнале отобра- жается в блок этого же разбиения, можно рассматривать эти блоки как состояния некоторого автомата без выхода (полуавтомата), определяемого л и S. Пусть л—СП-разбиение на множестве состояний автомата S = (Л, Z, W, б, X). Тогда л-образом автомата S назовем полуавто- мат 5Л = ({ВЛ), Z, бл), Вя6л, у которого 8Л (Вл, zf) = B'n, если и только если 8(ВЛ, Пример. В табл. 4-38 приведен автомат — (лр Z, 8nJ— л-образ автомата S из табл. 4-37, соответствующий разбиению лх = 1.2.3, 4.5.6= [blt b2], а в табл. 4-39 — автомат 5я> = (л2, Z, бя) — л-образ того же автомата S, соответствующий л2= 1.6, 2.5, 3.4 — с %) сз}. Таблица 4-38 Таблица 4-39 Очевидно, что тривиальными СП-разбиениями будут л (0) и л (1). Чтобы предварительно показать, как идеи, связанные с раз- биениями, используются при декомпозиции автоматов, рассмотрим совместную работу и из табл. 4-38 и 4-39. Каждый из этих автоматов делает только часть работы, выполняемой автоматом S, 70
б : А х Z-+ А 01 а2 я-з а4 «5 ав Z1 «5 Я) я5 «5 а5 *2 а3 а3 Я1 яв а4 а4 *3 Я! #2 #2 Я1 поскольку они определяют только блоки лх или л2, в которых на- ходится состояние автомата S. Однако, работая вместе, они опреде- ляют точное состояние S, поскольку пересечение любых двух бло- ков nj и л2 содержит лишь одно состояние. Таким образом, состоя- ния автоматов S и однозначно определяют состояние S и, следовательно, работая параллельно, автоматы Sn и 8л вычис- ляют переходы автомата S. Нетрудно показать, что если л4 и л2 — СП-разбиения, то л4л2 и nj + л2 — тоже СП-разбиения [54]. Процедура нахождения всех СП-разбиений для данного авто- мата достаточно проста, хотя нередко и требует довольно длин- ных вычислений. Эта процедура состоит из двух шагов [541: 1. Для каждой пары состояний (ат, as) вычисляется наимень- шее СП-разбиение л (am,as), которое отождествляет ат Таблица 4-40 с аь (первичные СП-разбие- ния). 2. Находятся все воз- можные суммы полученных на первом шаге л (ат, а). Эти суммы образуют вто- ричные СП-разбиения. Отождествим два состо- яния ат и as (ат, as£A) в одном блоке искомого разбиения л: am = as(n). Тогда из определения разбиения с СП следует, что для любого z, б Z состояния 6 (ат, zf) и 6 (as, zf) также должны быть отождествлены: 6 (ат, zf) = 6 (as, zt) (л). Ясно, что если состояние ak отождествлено с ah a at — с аг, то состояния ak и аг также должны быть отождествлены, поскольку разбиение соответствует эквивалентности, а последняя транзи- тивна. Процесс повторяется для каждой пары состояний, вошедших в один блок, до тех пор, пока не перестанут отождествляться но- вые состояния. Легко видеть, что построенное таким образом раз- биение л (ат, as) имеет свойство подстановки и является минималь- ным разбиением, которое отождествляет состояния ат и as в одном блоке. Чтобы получить другие разбиения, процесс повторяется для каждой возможной пары состояний, т. е. Л4 (Л4—1)/2 раз, где М. — число состояний автомата. На втором этапе СП-разбиения получаются без обращения к таб- лице переходов путем суммирования минимальных СП-разбиений, а также вновь получаемых СП-разбиений с уже имеющимися. Пример. Пусть дан автомат, представленный таблицей пе- реходов (табл. 4-40)1. Тривиальные СП-разбиения: л(0) = Т, 2, 3, 4, 5, 6; л (1) = 1.2.З.4.5.6. 1 Пример взят из работы [49]. 71
Процедура построения СП-разбиений Таблица 4-41 * <У Л о к о. О и с Вводимые пары Результи- рующие СП-раз- биения СП-раз- биение О 0) £ 3 Ч S «Sa о к о. £ ч « О ю с Вводимые пары Результи- рующие СП-раз- биения СП-раз- биение z: Zj Zi Z2 1.2 5.6 5.6 5 3 4 1.2 1.2 ТТ2^ ЗТ4, 576 Л 2 2.5 5.6 5.6 5 3.4 4 1 1.2 3.4 1.2 5 5.6 1.6 3 1.2 1.2 1.2.5.6, 3.4 л4 1.3 5 1.3 1.2 1.6 5 3.4 1.2 1.2 5.6 5.6 5 3 4 1.2 1.2 1.2.3, 4, 5.6 1^2 2.6 5.6 5.6 5 3.4 4 1 1.2 1.4 3.6 5 3.6 1.4 2 1 3.4 1.2 5 5.6 1.6 3 1.2 1.2 1.2.5.6, 3.4 Л4 5 1.4, 2, 3.6, 5 л3 1.6 5 3.4 1.2 3.4 1 6 5 5 1.6 3 4 1.2 1.2 1.2 1.2 1.5 3.4 5 5 3.4 1.6 2 1.2 1.2 5.6 5.6 5 3 4 1.2.5.6, 3.4 1.6 1.2 5.6 5 5.6 5 3.4 1.2 1.2 1.2 1.2.5.6, 3.4 л4 3 4 3.5 1.4 5 5 1.4 3.6 1.2 2 1.6 3.4 5 5 3.4 1.6 1.2 1.2 1.2 3.6 5.6 5.6 5 5 3 1.4 4 1.2 1 1.2 1.2.4, 3.5.6 1.2.5.6, 3.4 1.2 5.6 5.6 5 3 4 1.2 1.2 л4 3.6 1.4 5 1.4 1 5 3.6 2 1.4, 2, 3.6, 5 л3 2.3 5.6 1.3 1.2 5.6 5 5 5.6 1.3 4 1.3 3 1 1.2 1.2 1.2 4.5 4.6 1.2 5.6 5 5 5.6 5 4.6 4.6 3 4 2 1.2 1.2 1.2 1.2.3, 4, 5.6 Яд 1.2, 3, 4.5.6 4.6 5 4.6 1.2 2.4 5.6 3.6 1.4 1.2 5.6 5 3.6 4 1.2 1.2 1.2 5.6 5.6 5 3 4 1.2 1.2 1.2, 3, 4.5.6 ле 5 5 5.6 1.4 3.6 3 1 2 1.2 1.2.4, 3.5.6 5.6 1.2 5 5.6 4 3 1.2 1.2 Т.2, 3? 47 5?6 Я1 72
Отождествляем состояния аг и о2, чт0 Дает 1.2, 3, 4, 5, 6. Из таблицы переходов видно, что должны быть отождествлены эле- менты из 5.6. Но 5.6 уже не требует новых отождествлений пар, и, следовательно, л (1, 2) = 1.2, 3, 4, 5.6. Все вычисления легко могут быть сведены в таблицу (табл. 4-41). В результате получено шесть первичных СП-разбиений. Производя их всевозможные суммирования, находим только одно новое СП- разбиение л7 = л24-лв = 1.2.3, 4, 5.6 + 1.2, 3,*4.5.6 = 1.2.3, 4.5.6. Суммирование л7 с разбиениями ль . . . , лв новых СП-раз- биений не дает. Таким образом, у автомата в табл. 4-40 девять СП- разбиений: л (0), л (1), ль . . . , л7. 4-6. Пары разбиений Два разбиения (л, л'), определенных на множестве состояний А автомата S = (A, Z, W, 6, X), назовем парой разбиений, если и только если из ат s= as (л) следует 6 (ат, zf) = 6 (as, zf) (л') для всех ат, as(zA. Иначе, (л, л') — пара разбиений, если при работе S блоки л переводятся в блоки л' под действием любого входного сигнала, т. е. для каждого zf С Z и В С л существует единственный блок В'£л', такой, что 6(В, z-t)~B'. Пример. Пусть л1=1.2, 3.4 и л2 = 1.3, 2.4 — два разбие- ния на множестве состояний автомата S, таблица переходов кото- рого представлена таблицей 4-42. Нетрудно убедиться, что (лп л2) — пара разбиений. Действительно, 1.2: 6(й1, Z1)==O1, 6(а2, Z])=a3, 6(Г2, z1) = L3; 6(о4, z2) = o2, 6(02, z2) = a4, 6(L2, z2) = 2M; 6(«i, г3) = о3, 6(а2, zs) = alt 6(L2, z3) = L3. 3.4: 6(о3, z1) = a2, 6(а4, z1) = ai, 6 (ЗД ?4) = 2Л; 6(о3, z2) = a1, 6(а4, и2) = а3, 6 (ЗА, z2) = L3; 6(о3, z3)==o4, 6(о4, z3)^o2, 6(ЗЛ, z3) = 2A. Ясно, что если л — СП-разбиение, то (л, л) — пара разбиений. Так, в последнем примере л3 = 1.4, 2.3 — СП-разбиение, а потому (л3, л3) = (1.4, 2.3; 1.4, 2.3) — пара разбиений. Можно показать, что если (л, л') и (т, т') — две пары разбиений на множестве состояний А автомата S, то (лт, л'т') и (л 4 т, л' т') — тоже пары разбиений на множестве А [54]. 73
Заметим, что для любого л на множестве состояний S (л, л (1)) и (л (0), л) — тривиальные пары разбиений. Кроме того, если (л, л') — пара разбиений и т] =< Табшца 4 42 л, то и (т|, л') — пара разбие- ний. Если же т л', то (л, т) — тоже пара разбиений СП-разбиения и пары разбие- ний на множестве состояний авто- мата играют большую роль в те- ории декомпозиции автоматов. Пусть, например, вход компонент- ного автомата SL связан с выхо- дами автоматов S., S , .. ., S * I 12 I ? (рис. 4-11). Ранее было показано, что число блоков в разбиении л( равно числу состояний компонент- ного автомата S( и между блоками л( и состояниями St имеется взаимно-однозначное соответствие. Аналогично л опреде- 1‘з 1Г ляет входы в /( от других автоматов, так как существует взаимно- однозначное соответствие между блоками л и состояниями ‘112 1Г системы автоматов S,, S ..... S . Как и в любом автомате, 1-» If. следующее состояние S, (блок разбиения л() z определяется его текущим состоянием и входным сигналом (входной сигнал здесь — состояние системы автоматов S , S , ..., и буква внешнего входного алфавита Таким образом, состояние St в лю- бой момент времени определяется состоянием системы автоматов Sz , S(, . ., S , St и Zf £ Z(, т. e. блоком разбиения л( t iri и gZ(, поэтому 1л(( z (, л^ — пара разбиений, а 6( реализует отображение %, гл Zt в л(. Рис 4-11 Компонент- ный автомат S, Заметим также, что если вход St не соединен с выходами других компонентных автоматов (на вход <$\ поступают только сигналы из Zt), 6; реализует отображение в ли т. е. (л(, л()—пара разбиений и, следовательно, л( — СП-разбиение. Пример. Из сети на рнс. 4-9 видно, что лх должно быть СП-разбиением, а (л123, л2) и (л23, л3) — пары разбиений. Предо- ставляем читателю возможность убедиться в этом самостоятельно с помощью табл. 4-28. 4-7. Общая теорема декомпозиции В работе [22] приведена общая теорема декомпозиции автома- тов. В доказательстве этой теоремы изложен конструктивный спо- соб построения сети автоматов, результирующий автомат которой 74
реализует заданный автомат. В данном параграфе будет сформу- лирована эта теорема и изложены основные идеи, используемые в ее доказательстве, а также конструктивный прием декомпозиции. Пусть (лг), 1 i ' п — некоторое множество разбиений на множестве А состояний декомпозируемого автомата S = (Л, Z, W, 6, X). Теорема. Множеству разбиений {л(), 1 i п можно поставить в соответствие абстрактную сеть автоматов N, так чтобы R (S) = SN, если и только если П л£ = л (0). (4-1) 11 При этом устанавливается взаимно-однозначное соответствие между разбиениями л£ и компонентными автоматами <$\. Множество разбиений, удовлетворяющих условию (4-1), будем называть ортогональным множеством разбиений- Конструктивный метод декомпозиции, приведенный в доказа- тельстве достаточности теоремы в [22], будем иллюстрировать при- мером декомпозиции автомата Мили S = (A, Z, W, 6, X), задан- ного таблицами 4-43 и 4-44. Таблица 4-43 Таблица 4-44 Даны также три разбиения л1 — 1.2.3.4, 5.6; л2 = 1.2.5.6, 3.4; л3 = 1.3.5, 2.4.6, причем л^л2л3 — Л (0) • Поставим в соответствие каждому разбиению лг функцию Fp А X Z Л;, такую, что F( (ат, zf) = л£ (6 (ат, zf)), т. е. значение функции У7, на паре (ат, zf) равно блоку л(, в котором содержится состояние as — b(am, zf), ат, as£A, zf£Z. Функции Flt F2 и F3 приведены в табл. 4-45, 4-46 и 4-47 соот- ветственно. Ft получается из функции 6 : А X Z -> А (табл. 4-43) заменой в поле этой таблицы состояния as блоком разбиения л£, 75
который содержит as. Для блоков ль л2 и л3 введены следующие обозначения: л4= 1.2.3.4, 5Д =-{&!, &3) -В, л2 = 1.2.5.6, 3.4= {q, с2]=С, , л3 = 1.3.5, 2А6 = {dlt d2] = D. ai «3 «4 <75 as Z1 Z2 Z3 Z4 d2 d> d-2 dz dt di dj d! d4 a. a. to b5 to b5 Ci. to to k- t- d2 dj dj Образуем на множествах А и Z соответственно разбиения т; и т];-, так что: 1. ат и as находятся в одном блоке разбиения т; (ат == as (т,)), если и только если для любого zz б Z справедливо: Ft (ат, zf) = Таблица 4-47 (°s> Иначе, в один F А х Z-> D блок т; объединяются все со- стояния, которым соответствуют одинаковые столбцы в таблице функции 2. z; и zt находятся в од- ном блоке разбиения ij(- (Zf == = zt ("П())> если и только если для любого ат £ А справедливо: Л (ат, zf) = Ft(am, zt). Иначе, в один блок т]; объединяются все входные сигналы, которым соответствуют одинаковые стро- ки в таблице функции Ft. В результате получим т4= 1.3.6, 2.4, 5; т2 = 1.2.3.4, 5.6; т3 = Й4, 2L3, 5, 6. Tl1 = z1z4, z2z8; т|2 = 2i2223i z4; T13 = Z1Z3, Z3Z4. Нетрудно видеть, что полученные таким образом (тм л,) — пара разбиений, т. е. каждый блок тг отображается любым входным сигналом в некоторый блок л;. При этом т; — максимальное раз- биение, образующее пару (то л,); это видно из самого способа по- 76
строения т,, в блоки которого объединяются все одинаковые столбцы функции Ft. Построим ceib N - (ZN, {SJ, WN, {/J, {ф,}, g), для чею опре- делим все компоненты кортежа ЛМ Начнем с входного и выходного алфавитов сети. 1. Полагаем ZN = Z. 2. Полагаем WN = W. В примере ZN = [z1, z2, z3, zt}, WN = [wl, w2, ш3}. 3. Построим компонентные автоматы St = (Л,, Zlt 6(), I i т. e. определим базис сети. а. Полагаем Л, = л1 В примере Лх = Ь2} = В, А2 = — {cj, с2) = С, Л3 = [dlt d2} = D. б. Для определения входного алфавита компонентного автомата Z, воспользуемся построенными выше разбиениями т( и т]/. Напом- ним, что 7 __j X при Z-t=/= 0, I Z, при Z, = 0. Здесь Zt и Z,— соответственно внутренний и внешний вход- ные алфавиты автомата S,. Выше мы получили, что (т(, л() — пара разбиений, причем т( — максимальное разбиение, образующее пару с л,. С другой стороны, в § 4-6 было показано, что если на вход функции Д посту- пают л(, л(, . . . , л( — выходы компонентных автоматов S. , (рис. 4-11), то (л^з л) — пара разбиений, где л( t ( i '1,, так как Д — максимальное разбиение, обра- зующее пару с л . Нетрудно также доказать, что л = 1112 ‘г1 = л л ... л л. Таким образом, для нахождения автоматов, 11 I 1Г 1 выходы которых присоединяются ко входу Д, необходимо найти такое произведение л(л( ... л которое не превос- Г l~h ходит т,,2 п тогда выходы S^, . . . , должны быть соединены со входом ft. ‘г Для нахождения л, п Д < Д в примере найдем предварительно /=<. всевозможные попарные произведения л,л;: njn2-1.2, 3.4, 5.6, 3, 2.4, 5, 6; л2л3=1.5, 2.6, 3, 4. 1 Для входного и выходного алфавитов сети выбраны обозначения Z^ и №М — как У результирующего автомата сети, с тем чтобы отличить от входного и выходного алфавитов Z и W исходного автомата S ~ (A, Z, W, b, X), который декомпозируется. 2 Согласно (4-1) такое произведение всегда найдется. 77
Напомним также, что л1( л2 и л3были выбраны таким образом, ЧТО JTjtt2n3 = л (0). Из сравнения этих произведений с тъ т2 и тз видно, что TjJ ^2’ Тд. Определим разбиение следующим образом: = П лу, / =0 i, Н, т. е. л(- не входит в это произведение, так как ко входу Д могут присоединяться выходы других, отличных от S,, компонентных ав- томатов (рис. 4-11). В примере = л3 = 10.5, 24X3; с2 .= лг 1.2.3.4, 5Л5; g3 = л^ = 172, ЗЛ, 5X3. В автомате S, полагаем Zz = |£, Zz= гр, a Zz определим со- гласно равенствам (4-2). Рис. 4-12. Компонентные автоматы сети: а — б — S2, в — S3 в. Определим функцию переходов компонентного автомата 6£: Л; X Z;-+ Лр Пусть а, р, и у — соответственно блоки разбиений л£, |£ и Л; (а € 0, Р е ?€Л1)- Если k = = 0, т. е. лг < т{ (л£ — СП-разбиение), то . ' б/(а- У) = Вя.(6(а, у)). Таким образом, значение функции переходов б£ равно блоку разбиения лг, содержащему 6 (а, у). Здесь 6 — функция переходов декомпозируемого автомата S = (A, Z, W, 6, X). Если же |£ = ТА 0= 0, то б; (а, Ф, ?)) Вл. (6 (а ПР, У)), если аП Р 0 0; не определена, т. е. равна произвольному блоку разбиения л£, если аПР = 0- Вернемся к примеру и определим функции переходов для каж- дого компонентного автомата. Автомат St (рис. 4-12, а): лх = 1.2.3.4, 5.6= [blf b2} =В, ili = ^4, г2и3 = {хх, х2} =Х, |1 = л3 = Ё^5, 2AB={dltd2]=--D. 78
Функция : В X (О х Х) > В приведена в табл, 4-48. Та же функция в терминах разбиений определена в табл. 4-49. Таблица 4-48 Таблица 4-49 б1: Bx(DxX)~>B X (5i X r)i> Л4 b. bz bl bl diX2 bz bl bz bl ^2-^2 bi bz 1.2.3.4 5.6 to Ю1 | '—I О 051 cnl oil Ml Ml Ml N м to “ N 1 N N W 1 1 W I ** 1 1 1.2.3.4 5.6 576 1.2.3.4 1.2.3.4 1.2.3.4 1.2.3.4 54 Поясним построение функции 6Х на примере перехода из состоя- ния под действием входного сигнала (dlt х2)- Так как #= 0, то 61 (&!, (db х2)) = ВП1 (6 z2)) = Вя, (6 (1.2.3.4П ГзЗ, ?2)) = (8(1.3, г2))-в„,[а,^ьг “> ЧК1 ® Рис. 4-13. Структура автомата S3 и его входных функций с использованием функциональных преоб- разований о)3 (а) и ф3 (б) Автомат S2 (рис. 4-12, б): л2 = 1.2.5.6, 3.4 (с1( с2]=С, = р2) = У, ^n^l.2.3.4, А6-- (blt b2] -В. Функция 62: С X (В X У) -> С определена в табл. 4-50. На пе- реходах (с2, (/12, i/i)) и (с2, (62, г/2)) неопределена 62, так какс2П Ь2— = ЗЛр|5?6—0. Автомат Ss (рис. 4-12, в): л3 = ТТГ5, 2АВ = \dlt d2] = D, Tl3=ZiZ2, Z324={Ui, u2} — U, g3=L2, 34, 576= {pi, p2, p3)=P. Функция 63 : D X (P X U) -> D определена в табл. 4-51. Так как в этой таблице есть одинаковые строки (первая, вторая, ше- 79
стая — d2, dx и третья, четвертая, пятая — dlt d2), можно ввести еще один функциональный преобразователь ю3 : Р X U -> Q (табл. 4-52). Тогда таблица переходов сожмется до двух строк (табл. 4-53), а структура автомата S3 и его входных функций при- мет вид, изображенный на рис. 4-13, а. Ясно, что функциональ- ные преобразователи /3, ф3 и со3 могут быть заменены одним <р3 : В X С X 2 -> Q (рис. 4-13, б). Очевидно, что аналогичным обра- зом можно было бы сжать и таблицы функций переходов 6, и 62- Таблица 4-50 62: Сх(ВХГ)->С <2 Ь1У! С1 51У3 ci С1 Ь2У1 С1 — Ь2У2 с2 — Таблица 4-51 63: DX(PxU)->D dt d2 Р1и1 dx P1U2 ^2 dj Р2“1 di d2 р2ч2 dx d2 Р3«1 dj Рзи2 d2 dj Таблица 4-52 <ь3-. PXU-+Q Pxu Q PlUi 4i Pl«2 4i p2“l 42 P2u2 42 PaUi 42 Рзи2 4i Таблица 4-53 JXQ-.-D di d2 4i 42 d2 di dl d2 4. Построим функции соединения компонентных автоматов X Aj-^Z'i; иначе (в терминах разбиений) fL: X ' ’ /=» Пусть л. х л. X • • • — Обра- зуем множество ts£ T'.t ts = ,..., r hj, • , tsr), такое, что П ts =f= 0. Таким об- (=i ' разом, в T'i попадают только те векторы из Т{, у которых пересечение всех компо- Г нентов не пусто. Такое пересечение О t... М ' брать можно, так как компоненты ts , . . . , ts — блоки разбие- ний, т. е. множества. опре- 1 Не следует путать произведение лг1 X лг X • • X лг деляемое кат произведение множеств, с произведением разбиений nfl х 'г . . . л(. П Лу В первом случае в результате получаются всевозможные /X г-компоиентные векторы, компоненты которых суть блоки, взятые по одному из каждого разбиения Лу (у = ilt . . . , ir). Результатом произведения раз- биений П Лу является одно разбиение, блоки которого — результат всевоз- /-<> можиых пересечений блоков разбиений л(. , . . л(. вида В; [1 Btj | . . . ... fl В г, где В, (f Лу, j — , ... , ir (подробно об этом — в § 4-4). 80
Функция реализует отображение 77 Значение опреде- лим следующим образом: ft (tSi, ...,tsr)=Pkt если n ts. Q Pk t i=i т. е. значение функции /) равно тому блоку разбиения в который входит пересечение компонентов tSi, , tS/,. На множестве Ti\T'i функция f{ не определена. В примере для компонентного автомата З3 имеем: Т3 х = {1.2.3.4, Кб) х (В2?Кб, 34} = = {(ТТЗЛ Г2Л6), (1.2.3 4, Т4), (Кб, ГККб), (Кб, ЗЛ)). Найдем пересечение компонентов в парах из Т3: 1.2.3.4 пГ2Л6 = Е2; 1.2.3.4 Г|К4 = К4; Кб Г) 1.2.5.6 = К6; КбГ)К4= 0. Тогда 71={(Г23Л, 1.2.5.6), (1.2.3.4, 3.4), (5.6, 1.2.5.6)}. Ранее было получено, что £3 = 1.2, 3.4, 5.6. Функция соедине- ния f3 : Т3 -> g3 определена в табл. 4-54. Так как в и /2 — по одному входу, то они реализуют тождественные отображения: h-.D-^D- f.2-.B-+B. 5. Определим множество входных функций следующим обра- зом: Фг (г/) = Втц (zf), i — т. е. значение функции фг на zf £ Z равно блоку разбиения т](-, содержащему Zf. Отсюда ясно, что автомат не различает тех букв входного алфавита Z, которые входят в один блок разбиения гр. В примере: ___ _____________________ Л1 = г^, ?2г3= (х1( х2\, = z2z2z3, z4 = {у2, y2\, Па = z3z4 = {«!, a2) • Функции ф1( ф2 и Фз сведены в табл. 4-55. 81
(п \ х At х Z-> W, i=i / (п \ X лг | X Z-> W. i=i / Пусть лх X л 2 X . . . X лга = Н. Образуем множество Н' С.Н, hm е И’, hm = [hmi, ..., hm., ..., hmn), такое, что р hm. 0. Та- 1 = 1 ким образом, в Н' попадают только те векторы из Н, у которых пересечение всех компонентов не пусто. I Рис. 4-14. Сеть N, реализующая автомат S Функция g реализует отображение Н' X Z W. Значение g определим следующим образом: / п \ g • • ’ • • • > ^т/г)> Zf') = А. Р hm., Zfj J т. е. значение выходной функции сети совпадает со значением функ- ции выхода X декомпозируемого автомата S на паре (am, zz), где qm — состояние, попавшее в пересечение компонентов вектора ьтен'. На множестве Н \ Н' функция g не определена. В нашем примере: лх--=1.2.34, 50- Ь2] = В, л2 — 1.2.5.6, 3.4 = {Cj, с2) -= С, л3 = 1.3.5, 240-{dp d2] - D' H = BxCxD= {(&1( с1( dj, (blf clt d2), (b^ c2, d^, (blt c3, d2), (b2> Ci, d^, (b2, c^ d^), (b2, c2, d^), (b2, c2, d^)]. Например, g ((bj, clt dj, zx) == А. (Ьг p cx p dlt zx) = = A, (1.2.3.4 p 1.2.5.6 P 1.3.5, z^ = X (alt z^ = wv С другой стороны, g((^2’ c2, d^, Zi) = A, (&2 P c2 p dlt Zj) = A, (5.6 p 3.4 p 1.3.5, z1) = = X(0, z^, т. e. функция g на векторе (b2, c2, dr) не определена. 82
Выходная функция сети приведена- в табл. 4-56. Результат де- композиции автомата 3 — сеть N изображена па рис. 4-14. Таблица 4-56 g: (BxCxD)xZ W 61С,Д1 V'A ^2^ 1^2 Z1 ^2 a>, to t Zj w, ^1 ®2 tt)2 Zi a?! Wj a>) a>) Z4 w, ^1 В работе [22] показано, что построенная таким образом сеть реализует исходный автомат 3. Выше было определено понятие реализации одного автомата другим. Будем также говорить, что сеть N есть реализация автомата 3, если ее результирующий авто- мат Зд, реализует S (SN = R (S)), т. е. у 3Л- есть подавтомат SN, изоморфный 3. Ход доказательства в [22 ] таков. Строится результирующий автомат сети N SN = (AN, ZN, WN,dN,XN), а также некоторый автомат 3Л--- (ЛЛ, ZN, Wn, kw), у которого: Z'N -Zn\ W'n^Wn-, A N — j • n A )" 67), € ^4 j, ’ * * ’ ^>N ’ ^mn}’ Zf) — • • • > ®/nn)> Zf), • • • , й-т'^ь Zf} —’ ’ ’ ’ n)' *"f)- Далее показано, что S'N есть подавтомат SN и что S’N изоморфен автомату 3, а потому SN — R (3), т. е. SiV реализует заданный ав- томат 3. Из способа построения сети N следует, что свойства компонент- ных автоматов Зг и их связи между собой зависят от выбранного множества разбиений (nJ, 1 <; i < п- Число компонентных авто- матов в сети равно числу разбиений в множестве {л,}. Число внут- ренних состояний компонентного автомата 3; равно числу блоков в л(. Поскольку число блоков в нетривиальном разбиении л, всегда меньше числа элементов в множестве А состояний исходного авто- мата 3, компонентные автоматы имеют всегда меньше- состояний, чем автомат 3. Разбиения т( и т], однозначно определяются разбиением л, (с по- мощью функции т( показывает, какие автоматы воздействуют на автомат S,, a T]t определяет классы неразличимых автоматом Зг букв входного алфавита Z. 83
Назовем (л£, т£, ц() характеристической тройкой автомата St. Отметим, что т£ и т](- являются наибольшими разбиениями, причем чем больше т,, тем меньше выходов других автоматов воздействует на 3,. Чем больше тр, тем проще зависимость от внешнего входа Z. Использование разбиений т; и тр при построении 3, является, та- ким образом, необходимым условием для построения сети N наи- меньшей сложности. 4-8. Структурная матрица сети автоматов Из конструктивного способа построения сети N видно, что структура сети N определена в общем случае неоднозначно, по- скольку неравенство П л; 0 тЛ-, которое определяет автоматы S; ,. • •, Sir, влияющие на поведение 3(, может быть выполнено при различных совокупностях разбиений из |л£), i = 1, . . . , п. Структурной матрицей сети N называется двоичная квадрат- ная матрица MN размерности п, в которой столбцы соответствуют разбиениям Tj, . . . , тп, а строки — разбиениям л1( . . . , лп. В i-й столбец матрицы MN записываются единицы в строки с ин- дексами ix, i2, . . . , ir, если и только если П Л, < Т;. /=<1 (4-3) Таблица 4-57 Структурная матрица сети на рис. 4-14 Обозначим через ш£/- элемент (i, /) матрицы Мд,. Таким образом, если = 1, то автомат S£ влияет на поведение автомата 3/ (в частно- сти, если i Ф j, то выход 3( соединен со вхо- дом ft). Структурная матрица для сети, изобра- женной на рис. 4-14, приведена в табл. 4-57. Очевидно, что существует множество раз- личных двоичных матриц размерности п, удо- влетворяющих условию (4-3) и являющихся, таким образом, структурными матрицами сети N. Обозначим через множество всевоз- можных структурных матриц сети 2V; ЭДд/7^0, поскольку матрица, у которой все элементы равны единице (mZ/- = 1, /,/==!,...,«) — всегда структурная матрица. Таким образом, ЭДд. определяет все потенциально возможные структуры сети N. Задача построения сети определенной структуры сводится к реше- нию вопроса, принадлежит ли соответствующая структурная мат- рица множеству ЭДЛ,. к- - Важное практическое значение имеет задача нахождения мат- рицы с минимальным числом единиц соответствующей структуре с минимальным числом связей. Пусть заданы лх, . . . , л Ti> • • • » тп- Решение задачи тривиально: 84
1. На первом шаге для каждого * разбиения из множества {л1; . . . , л„{ выясняется, не окажется ли оно меньше некоторого разбиения из множества [rt, . . . , tj. Если л, т;-, то элемент тг; = 1, а столбец Ту из матрицы вычеркивается. 2. Берутся всевозможные попарные произведения л,лй (i, k = = 1, . . . , п; i Ф k) и ищутся такие тр, что л(лА < тр. Здесь тр — разбиение, оставшееся после первого шага. Элементы mip и mkp полагаются равными единице (/77£р= = mkp = 1), а столбец тр из матрицы вычеркивается. 3. Затем процедура повторяется для всевозможных произведений троек л£лйлл, потом четверок и т. д., до тех пор пока не окажет- ся, что в матрице все столбцы вы- черкнуты. Структурная матрица позволяет вывести из общей теоремы де- композиции необходимые и до- Рис. 4-15. Сеть при параллель- ной декомпозиции статочные условия для получения сетей с различными ограниче- ниями на структуру. Параллельная декомпозиция. В этом случае (рис. 4-15) все Z't = 0, i = 1, . . . , п, т. е. на вход /£ не поступают сигналы от Рис. 4-16. Сеть при последовательной декомпозиции других компонентных автоматов. Ясно, что в этом случае в соот- ветствующей структурной матрице единицы могут стоять только на главной диагонали, т. е. если i ф то /77;, = О, 1 i,j п. ч ’ \ ’J (4-4) Так как в столбце т£ единица может быть только в строке л;, то л,- <0 т£, i = 1, . . . , п. В работе [54] показано, что разбиение с таким свойством является СП-разбиением (разбиением со свойст- вом подстановки). Таким образом, необходимым и достаточным условием существования параллельной декомпозиции с п компо- нентными автоматами является существование п СП-разбиений на множестве состояний декомпозируемого автомата. 85
Последовательная декомпозиция. В общем случае сеть (рис. 4-16) имеет структурную матрицу, приведенную в табл. 4-58. Условие существования последовательной декомпозиции, очевидно, форму- лируется следующим образом: ‘У т^, i Таблица 4-58 Структурная матрица последовательной декомпозиции т. е. должно быть одно СП-разбиение, определяющее первый ком- понентный автомат. В случае, если только получает информацию с внешнего входа: Пх ¥= Л (1), П2 = Пз=:- • = ГЛАВА ПЯТАЯ _________________________________________ СТРУКТУРНЫЙ АВТОМАТ 5-1. Канонический метод структурного синтеза автоматов Вслед за этапом абстрактного синтеза автомата, заканчиваю- щегося минимизацией числа его состояний, следует этап структур- ного синтеза, целью которого является построение схемы, реали- зующей автомат из логических элементов заданного типа. Если 86
абстрактный автомат был лишь математической моделью дискрет- ной системы, то в структурном автомате учитывается структура входных и выходных сигналов автомата, а также его внутреннее устройство на уровне структурных схем. Основной задачей струк- турной теории автоматов является нахождение общих приемов построения структурных схем автоматов на основе композиции элементарных автоматов, принадлежащих к заранее заданному конечному числу типов. В отличие от абстрактного С-автомата, имеющего один входной и два выходных капала, на которые поступают сигналы во входном Z = {Zj, . . . , Zf, ... , ZF] И ВЫХОДНЫХ W — {U^, . . . , wg, . . . , и 17 = «Л, ... , иИ} алфавитах автомата, структурный автомат имеет входные хг, . . . , х[г . . . , xL и выход- ные уг, . . . , уп, . . . , yN, rlt . . . , rd, . . . , rD каналы, на которых появляются сигналы в структурном алфавите автомата. Набор возможных значений сигналов, подаваемых на один внеш- ний входной (выходной) узел, образует структурный входной (выходной) алфавит автомата. В настоящее время наиболее распро- страненным структурным алфавитом является двоичный, что объяс- няется простотой его представления в современных элементах и приборах. Кроме того, для двоичного алфавита наиболее разрабо- тан аппарат булевых функций, позволяющий производить мно- гие операции над схемой формально. Поэтому в дальнейшем при решении задач структурного синтеза автоматов будет использо- ваться в основном двоичный структурный алфавит. В случае двоичного алфавита каждый входной zf и выходные ws и uh сигналы абстрактного автомата могут быть закодированы век- торами длины L, N и D соответственно, компоненты которых при- нимают два значения — нуль или единицу: Zf (Sfi, • • •, ед,.. . , efL), еи £ (0,1}, f -- 1,..., К; • • • egn,..., egN), egn £ {0,1},g- 1,..., G; иЛ-*(еЛ1, • • •. ehd,, ehD), ehd 6 {0,1}, h Очевидно, что L HoggFl, N ]log2G[, D > ]loga//[, где ]a [ означает ближайшее целое число, большее а или равное ему, если а — целое. На этапе структурного синтеза предварительно выбираются элементарные автоматы, из которых затем путем их композиции строится структурная схема полученного на этапе абстрактного синтеза автомата Мили, Мура или С-автомата. Если решение за- дачи структурного синтеза существует, говорят, что заданная си- стема автоматов структурно полна. Теоретическим обоснованием канонического метода структур- ного синтеза автоматов является доказанная в [12] теорема о структурной полноте. Всякая система элементарных автоматов, которая содержит автомат Мура с нетривиальной памятью, обла- дающий полной системой переходов и полной системой выходов, 87
и какую-либо функционально полную систему логических элемен- тов, является структурно полной. Существует общий конструктив- ный прием (канонический метод структурного синтеза), позволяю- щий в рассматриваемом случае свести задачу структурного синтеза произвольных автоматов к задаче синтеза комбинационных схем. Результатом канонического метода структурного синтеза яв- ляется система логических уравнений, выражающая зависимость выходных сигналов автомата и сигналов, подаваемых на входы за- поминающих элементов, от сигналов, приходящих на вход автомата в целом, и сигналов, снимаемых с выхода элементов памяти. Эти уравнения называются каноническими. Для правильной работы схем, очевидно, нельзя разрешать, чтобы сигналы на входе запоминающих элементов непосредственно участвовали в образовании выходных сигналов, которые по цепям обратной связи подавались бы в тот же самый момент времени на эти входы. В связи с этим запоминающими элементами должны быть не автоматы Мили, а автоматы Мура (см. уравнения функциониро- вания этих автоматов в § 2-2). Таким образом, структурно полная система элементарных авто- матов должна содержать хотя бы один автомат Мура. В то же время для синтеза любых автоматов с минимальным числом элементов памяти необходимо в качестве таких элементов выбирать автоматы Мура, имеющие полную систему переходов и полную систему вы- ходов — так называемые полные автоматы. Рассмотрим полноту автоматов памяти на примере автомата Мура П,, у которого Q = {<?!, q2, q3}, W = {u^, w2, w3\, В = {blt b2, b3] — алфавиты входной, выходной и состояний, а функции переходов и выходов заданы отмеченной таблицей переходов (табл. 5-1). Полнота системы переходов озна- чает, что для любой пары состояний (bm, bs) автомата найдется входной сиг- нал, переводящий первый элемент этой пары (Ьт) во второй (bs), т. е. в таком ав- томате в каждом столбце таблицы переходов должны встречаться все состояния автомата. Как уже отме- чалось в § 4-1, полнота системы выходов автомата Мура состоит в том, что каждому состоянию авто- мата поставлен в соответствие свой особый выходной сигнал, от- личный от выходных сигналов других состояний. Очевидно, что в таком автомате число выходных сигналов равно числу состояний автомата. Вместе с предыдущим утверждением это приводит к тому, что в автомате Мура с полной системой выходов можно отождест- вить состояния автомата с его выходными сигналами. В связи с этим в автоматах памяти мы будем использовать одни и те же обозначе- ния и для состояний, и для выходных сигналов, т. е. отмеченная Таблица 5-1 8:В xQ->B k:B->W bl ь2 b3 <71 bl bl Ьз <?2 b-i Ьз bl <7з Ьз bi Ьз 88
таблица переходов в автоматах Мура с полной системой выходов превращается просто в таблицу переходов. Автомат Мура в табл. 5-1 удовлетворяет условиям полноты системы переходов и выходов. В связи с этим в качестве его выходного алфавита можно принять алфавит В = [blt Ь2, Ь3]. Канонический метод структурного синтеза предполагает пред- ставление структурной схемы С-автомата в виде трех частей: па- мяти и двух комбинационных схем КС1 и КС2 (рис. 5-1). Поясним назначение каждой из них. Память автомата состоит из предварительно выбранных авто- матов памяти — элементарных полных автоматов Мура /7Х, . . . , Рис. 5-1. Представление С-автомата в виде па- мяти и двух комбинационных схем Пг, . . . , П%. После выбора элементов памяти каждое состояние ат (т = 1, . . . , Л4) абстрактного С-автомата представляется (ко- дируется) в структурном автомате вектором (ет1, . . . , етг, . . . , <?,„/<), компонентами которого являются состояния элементов па- мяти Пг (г = 1, . . . , R). Если все автоматы 77х, . . . , nR одина- ковы (что в общем случае необязательно), то их число /?>] logeM[, где 0 — число состояний элементарного автомата памяти. Переходу абстрактного С-автомата из состояния ат в состояние as под действием входного сигнала zf с выдачей выходного сигнала wg соответствует переход структурного автомата из состояния (ет1, . . . , emR) в состояние (е£1, . . . , esR) под действием вход- ного сигнала (efl, . . . , efL) с выдачей выходного сигнала (egl, . . . , egN) типа 1. Изменение состояний элементов памяти на таком пе- реходе происходит под действием сигналов на входах памяти авто- мата (р = (<рх, . . . , (рг.<Р/?)> снимаемых с выхода КС1. По- сле перехода в состояние as (или в структурном автомате (esl, . . . esR)) автомат выдает выходной сигнал uh типа 2 (еЛ1, . . . , ehD) все время, пока находится в этом состоянии. Комбинационная схема КС1 служит для формирования выходных сигналов типа 1 и вход- 89
них сигналов автоматов памяти, а КС2 — для формирования сиг- налов типа 2. Структурный синтез рассматривается для С-авто- мата, поскольку эта модель является обобщением моделей Мили и Мура. Если необходимо синтезировать автомат Мили, то можно считать, что в С-автомате не задана функция Tv2 и отсутствует КС2. В случае модели Мура незаданной оказывается функция и в КС1 нет выходных каналов уг, . . . , yN. Таким образом, после выбора элементов памяти и кодирования состояний синтез структурного автомата сводится к синтезу ком- бинационной схемы, реализующей функции: г/1=г/1(ть • • •, тЛ, хх,..., xL), Un — Ун (ti> • • •, ту?> xi> • • • , Ф1 = Ф1(Т1, • • •, ТЛ, .......XL), фу? — фу? (Т1> • • • I Ту?, Хх, . . . , Л';), Н = (т1( ..., тЛ), rD - rD (т1, • • • , ТЛ), где т = (tj, . . . , t^) — функция обратной связи от памяти автомата к комбинационной схеме; функция ср = (фх, . . . , <pR) носит на- звание функции возбуждения памяти автомата. --------в=(ь,,ь2.ъ3} —— о пг —Ч> Рис. 5-2. Автомат памяти: а — абстрактный, б — структурный Автомат памяти тоже можно рассматривать на абстрактном и структурном уровнях. Абстрактный автомат памяти Пг, заданный табл. 5-1,1 имеет один входной и один выходной каналы (рис. 5-2,а). При переходе от абстрактного к структурному автомату ПЛ его входные и выходные сигналы должны быть закодированы наборами сигналов на входных и выходных каналах. При двоичном структур- ном алфавите автомат Пг будет иметь 2 входных и 2 выходных ка- нала (рис. 5-2, б). В общем случае, если абстрактный автомат па- мяти имеет h состояний (В = [Ьъ . . . , bh]) и р входных сигналов (Q ={(?!,... , то число его входных К и выходных Т кана- лов должно быть > logn/y и Т > logv/y, где т| и v — число букв в структурных входных и выходных алфавитах автомата памяти Пг. Таким образом, возвращаясь к рис. 5-1, необходимо заметить, что 1 После отождествления выходного алфавита и алфавита состояний вы- ходными сигналами в абстрактном автомате Пг будут {blt b2, 63}. 90
сами компоненты <рл и тг (г = 1, . . . , векторов сигналов воз- буждения памяти <р и сигналов обратной связи от памяти т также могут быть представлены в виде векторов <pr = (cpri, . . . , <ргК), ту = (тг1, . . . , тгГ). Как уже отмечалось выше, мы будем пользоваться, если не ого- ворено особо, двоичным структурным алфавитом для входных и для выходных каналов синтезируемого автомата и автоматов па- мяти. Алфавит состояний автоматов памяти также будет в боль- шинстве случаев двоичный, т. е. в качестве элементов памяти в ос- новном будут использоваться автоматы с дву- мя состояниями. При построении функций возбуждения памяти автомата будем использовать функ- цию входов элемента памяти р (bm, bs), ста- вящую в соответствие каждой паре состояний (bm, bs) сигнал, который должен быть подан на вход этого автомата для перевода его из состояния Ьт в состояние bs. Функцию вхо- дов также удобно задавать в виде таблицы. Для автомата памяти, функция переходов которого приведена в табл. 5-1, функция вхо- дов задана табл. 5-2, в которой входной сиг- нал р (Ьт, Ь:) стоит во втором столбце между состояниями Ьт и bs. Из табл. 5-2 видно, что для перехода из Ьг в Ь2 необходимо по- дать входной сигнал q2, из Ь3 в Ь3 — входной Таблица 5-2 Функция входов абстрактного автомата памяти Ьт я &S Ь1 Я1 bl Ь1 Яг Ьг bl Яз Ьз ь2 Яз bi Ьг Я1 Ьг Ь2 Яг Ьз Ьз Яг bi Ьз Яз Ьз Ьз Я1 Ьз сигнал qr и т. д. Если входные и выходные (они же состояния) сиг- налы автомата памяти закодированы наборами (<рг1, . . . , <рлК) и (тг1, . . . , тгГ) сигналов на его входных и выходных каналах со- ответственно, то элементами таблицы, задающей функцию входов, вместо сигналов qlt . . . , qp будут соответствующие им наборы. Так, если для нашего примера (табл. 5-2) ввести кодирование 7!->00, q2~>01, q3 —>10, ^->00, &3->10, &3->11, то соответствующая функция входов превратится в табл. 5-3, т. е. для перехода из состояния 00 в состояние 10 нужно подать нуль на первый входной канал и единицу на второй, а при переходе из 11 в 11 —два нуля на оба входных канала. В следующем параграфе будет подробно рассмотрен пример канонического метода структурного синтеза автоматов, заданных таблицами переходов и выходов. Предупредим сразу, что в прак- тике проектирования дискретных устройств таким образом авто- маты почти никогда не синтезируются, однако для овладения из- ложенными в последующих главах методами синтеза сложных микропрограммных автоматов совершенно необходимо четкое по- нимание процедур, представленных в этой главе. 91
5-2. Пример канонического метода структурного синтеза Пусть необходимо синтезировать частичный С-автомат S, за- данный таблицей переходов (табл. 5-4) и отмеченной таблицей вы- ходов (табл. 5-5), используя в качестве элементарных автоматов логические элементы И, ИЛИ, НЕ и автомат памяти /7, функция переходов которого представлена таблицей 5-6. Структурные входной и выходной алфавиты и алфавит состояний синтезируемого автомата и автомата памяти будем считать двоич- ными. Таблица 5-3 Функция входов структурного автомата памяти Фг,Фг2 00 00 00 00 01 10 00 10 11 10 10 00 10 00 10 10 01 и 11 01 00 11 10 10 11 00 11 Перейдем к структурному представлению автоматов S и П, для чего закодируем их входные и выходные сигнальГи состояния. Так как в абстрактном автомате П два входных и два выходных сигнала, то в струк- турном автомате П будет один входной (<р) и один выходной (т) каналы. После кодиро- вания входных сигналов (табл. 5-7) и со- стояний (табл. 5-8) абстрактного автомата П его таблица переходов превратится в табл. 5-9. Функция входов структурного автомата П приведена в табл. 5-10. Так как у абстрактного автомата S три состояния, то структурный автомат S будет иметь два элемента памяти Hi и 772. Три аб- страктных входных (гх, 22, гз) и четыре вы- ходных сигнала типа 1 (re’i., w2, ws, тре- буют два входных (хъ х2) и два выходных ка- нала (t/х, у2)- Для реализации двух выходных сигналов типа 2 («х, «2) необходим еще один выходной канал (г). Результаты коди- рования состояний, входных и выходных сигналов автомата’S представлены в табл. 5-11 — 5-14. Таблица 5-4 6 : А XZ-А 01 ct2 а3 Z1 02 — О1 г? а. О1 — *3 а2 а3 а3 Таблица 5-5 Хх: А Z->W, Х2: А -+ U U1 и3 U1 01 03 Z1 г-, 2з “'4 Э I Э чг
Таблица 5-10 Таблица 5-9 Таблица 5-11 Таблица 5-12 Кодирование входных сигналов автомата S Таблица 5-13 Кодирование выходных сигналов типа 1 автомата S Таблица 5-14 Кодирование выходных сигналов типа 2 автомата S О О О 1 1 О Z1 Z-2 Z.3 ш2 1 О О о 1 1 О 1 Заменив в табл. 5-4 и 5-5 состояния и соответствующие сигналы их кодами, получим таблицу переходов (табл. 5-15) и отмеченную таблицу выходов (табл. 5-16) структурного автомата S, блок-схема которого приведена на рис. 5-3. Таким образом, после выбора эле- ментов памяти и кодирования состояний синтез С-автомата сво- дится к синтезу двух комбинационных схем КС1 и КС2, реализую- щих функции: 93
t/1 (Tl> Т2> Х1> Xi)' Т2> *1> Xi)< Ф1 (^i> х2> xi> xz)> ФгОТ» х2> ^Т> х%)> r(xi, т2). Напомним, что в абстрактном автомате выходной сигнал в мо- мент времени t зависит от состояния и входного сигнала в тот же момент t\ w (0 = A-i (a (t), z (0), и (t) = Х2 (а (0). В структурном Рис. 5-3. Структурная схема ав- томата S автомате эти временные соотно- шения, естественно, сохраняются, т. е. yt = yt (?! (0, т2 (0, хх (0, х2 (0), i = 1, 2; г (0 = г(тх (0, т2 (0), поэтому табл. 5-16 пред- ставляет собой «свернутую» таб- лицу функций yJt у2 от т1( т2, хх, х2 и таблицу функции г от т1( т2. Аналогично тому, как это делается при табличном задании булевых функций, аналитические выраже- ния yt и у2 могут быть получены непосредственно из табл. 5-16 как дизъюнкции конъюнкций, со- ответствующих наборам переменных ть т2, хъ х2, на которых эти функции принимают значение единицы. Из табл. 5-16 имеем: У1 = Т1Т2Х1Х2 V Т1Т2Х1Х2 V Т1Т2Х1Х2 V ^2Xlx2, У2 = Т1Т2Х1Х2 V Т1Т2Х1Х2 V Т1Т2Х1Х2 V Т1Т2Х1Х2. (5-1) Таблица 5-15 Таблица переходов структурного автомата 5 00 01 11 00 01 00 01 11 00 — 10 01 и 11 Таблица 5-16 Отмеченная таблица выходов структурного автомата 5 1 0 1 00 01 11 00 11 00 01 01 11 — 10 00 10 11 Если каждый двоичный набор переменных (т1, т2, хх, х2) ото- ждествить с его номером (например, набору 0001 соответствует 1, а набору 1100— 12), то выражения (5-1) можно представить в виде ^ = 0 V 5 V6 V 14- № = 0 V 1 V5 V 14. (5-2) Также непосредственно из табл. 5-16 получим выражения для функции г — г (тх, т2): Г - Т1Т2 V т1т2- (5-3) 94
Несколько сложнее получаются выражения функций возбужде- ния памяти. Рассмотрим, например, что будет с автоматом S, если он находился в состоянии 01 и на его вход поступил входной сиг- нал 10. Как видно из табл. 5-15 (второй столбец, третья строка), автомат S из состояния 01 перейдет в состояние 11. Этот переход складывается из двух переходов элементарных автоматов памяти. Первый из них (77 J перейдет из состояния 0 в состояние 1, а второй (П2) — из состояния 1 в состояние 1 (останется в том же состоя- нии). Переходы автоматов памяти происходят под действием сигналов функций возбуждения, поступающих на их входы. Для определе- ния того, что нужно подать на вход ав- томата /?!, чтобы перевести его из 0 в 1, обратимся к функции входов автомата памяти (табл. 5-10). Как вид- но из нее (вторая строка), на вход автомата необходимо подать сигнал 1. Аналогично для перехода автомата П 2 из 1 в 1 на его вход должен быть по- дан сигнал 0 (четвертая строка). Таким образом, при переходе автомата S из состояния 01 в состояние 11 на входы его памяти должен поступить векторный Таблица 5-17 Функция возбуждения памяти автомата S 00 01 11 00 01 11 01 11 01 — 10 01 10 00 сигнал функции возбуждения 10. Занесем этот результат в соот- ветствующее место таблицы функции возбуждения (табл. 5-17) — на пересечение второго столбца и третьей строки. Поскольку функ- ция возбуждения памяти автомата зависит от тех же переменных Ti> т2, х1г х2> столбцы и строки табл. 5-17 и 5-15 отмечены одина- ково. Аналогичным образом для остальных переходов в табл. 5-15 получим всю таблицу функций возбуждения памяти автомата S. Непосредственно из табл. 5-17 для единичных значений функций Фг и <р2 имеем: Ф1 ==TiT2xiX2 V Т1Т2Х1Х2 V 14X2X1X2= 1 V 6 V 12, ф2 = T1T2X1X2 V X1T2X1X2 V TiT2XiX2 V Т1Т2Х1Х2 V (5-4) V TiT2XiX2 = 0 V 1 V 2 V 5 V 12- Не останавливаясь здесь на вопросах минимизации комбина- ционной схемы автомата S, прямо из выражений 5-1, 5-3 и 5-4 по- лучим его логическую схему (рис. 5-4). Заметим, что для минимизации полученных выражений можно было бы использовать наборы переменных, на которых соответст- вующие функции не определены. Сформулируем правила учета неопределенности: 1. Если некоторый код (ет1, . . . , етг, .... emR), етг£ {0, 1) не используется для кодирования состояний автомата, то на все- 95
возможных наборах (ет1, . . . , етг, . . . , emR, efl, . . . , efl, . . . , efL), efi g (0, 1}, полученных in этого кода и всех кодов входных сигналов, все компоненты функций возбуждения памяти и функ- ций выходов (типа 1) не определены. В нашем примере среди кодов состояний не используется код 10, поэтому наборы 10 0 0 10 0 1 10 10 10 11 Г/ а?2 Рис. 5-4. Логическая схема автомата S входят в область неопределенности функций <рь <р2, уи у2- Точно так же функция г не определена при = 1, т2 = 0. 2. Если некоторый код (efl, . . . , efl, . . . , elL), efl E {0, 1) не используется для кодирования входных сигналов, то на всевоз- можных наборах (ет1, . . . , етг, .... emR, efl..efl, . . . , efL), emr E {0, 1}, полученных из всех кодов состояний и этого кода, все компоненты функций возбуждения памяти и функций выходов (типа 1) не определены. В нашем примере среди кодов входных сиг- 96
налов не используется код 11, поэтому наборы /001 1 \ I ° 1 1 1 I I 1 ° 1 1 I \1 1 1 1 / входят в область неопределенности функций <рь <p2, ylt уг. 3. Если на некоторой паре (ат, zf) функция переходов не опре- делена, то на наборе (ет1, . . . , етг, . . . , emR, efl, . . . , efl, . . . , efL), emn efi E (0, 1) все компоненты функции возбуждения не определены. Таким образом, прочерки в таблице функций возбуж- дения совпадают с прочерками в таблице переходов. Непосредст- венно из табл. 5-17 имеем два таких набора: / 0 1 о о \ ( 1 10 1/. 4. Аналогично п. 3, если на некоторой паре (а,п, zf) функция выходов (типа 1) не определена, то на наборе, соответствующем этой паре, все компоненты функции выходов (типа 1) не определены. Из табл. 5-16 имеем два набора: /0 1 о о \ (110 1/. 5-3. Синтез автомата на D-, Г-, и RS-триггерах Описанный в предыдущем разделе процесс построения функций возбуж- дения памяти автомата может быть существенно упрощен для некоторых наиболее распространенных на практике элементов памяти. Мы остановимся здесь на синтезе автоматов на D-, Т- и RS-триггерах. Рассмотренные методы будут иллюстрированы приме- Гр ром синтеза автомата S, заданного табл. 5-15 и 5-16. ___ ________ Функции выходов во всех случаях будут строиться < по выражениям (5-1), (5-3), поскольку таблица вы- 1__ ходов синтезируемого автомата не зависит от выбора того или иного элемента памяти. рис 5.5. D-триг- D-триггер (элемент задержки) имеет один вход ' гер и один выход и осуществляет задержку поступившего на его вход сигнала на один такт (рис. 5-5). Функция переходов и функ- ция входов этого автомата приведены в табл. 5-18 и 5-19 соответственно. Как видно из табл. 5-19, со- Таблица 5-18 Функция переходов D-триггера Таблица 5-19 Функция входов D-триггера 0 1 тисх ф Т'пер 0 0 0 1 1 1 о о 0 1 1 0 1 1 0 1 0 стояние, в которое переходит D-триггер (правый столбец), сов- падает с поступившим на его вход сигналом (средний столбец). В связи с этим таблица функций возбуждения памяти синтезируе- мого автомата S будет полностью совпадать с таблицей переходов этого автомата (табл. 5-15). Дей- ствительно, строки и столбцы этих таблиц отмечены одинаково, а на пересечении z-й строки и /-гостолб- ца в таблице переходов стоит код состояния, в которое переходит ав- томат из состояния, отмечающего 4 Заказ № 2010 97
j-й столбец, под действием входного сигнала, отмечающего Лю строку. Но при использовании D-триггера код состояния, в которое осуществляется переход, совпадает с сигналами, поступившими на входы элементов памяти. Поэтому непосредственно из табл. 5-15 получаем выражения для функций возбуждения памяти автомата, построенного на D-триггерах: = TytaXiXo Vtit2xi*2 Vtit2xi*2 = 1V6V14, Ф2 = чдагУВДЛУВДЛУ Vt1t2x1X2Vtit2xi*2 == 0V1 V2V6V'4. (5-5) Триггер co счетным входом (Т-триггер) имеет 1 вход и 1 выход (рис. 5-6). Его функции переходов и входов приведены в табл. 5-20 и 5-21. Как видно из последней таблицы, входной сиг- Рис. 5-6. Т-триггер нал, записанный в среднем столбце, равен сумме по модулю 2 кода исходного состояния (левый столбец) и состояния перехода (правый столбец). На основа- нии этого при синтезе автомата на Т-триггерах таб- лицу функций возбуждения можно получить из таб- лицы переходов следующим образом. Элемент таблицы функций возбуждения, сто- ящий в 1-й строке и /-м столбце, равен покомпонент- ной сумме по модулю 2 вектора кода состояния, отмечающего /-й столбец, и вектора кода состояния, стоящего на пересече- нии t-й строки и /-го столбца таблиц переходов, т. е. покомпонентной сумме по модулю 2 кодов исходного со- стояния и состояния перехода. Таблица 5-20 Таблица 5-21 Полученная таким образом фун- . кция возбуждения для авто- Функция Функция мата S приведена в табл. 5-22. переходов входов Из этой таблицы: Т-триггера Т-триггера ____ _ _ 1 <Р1 = ТЩ2Х1Х., Vrn2XiX2V vwa= ivev12, Ф2 = [ VTlT2XlX2V'riT2»1^2V ИТ2-*:1»2 = = OV1 V2V5V12. (5-6) Триггер с раздельными входами (RS-триггер) приведен на рис. 5-7, а его таблица переходов — в табл. 5-23. Поскольку в RS-триггере имеются Таблица 5-22 Таблица 5-23 Функция возбуждения памяти автомата S при синтезе на Т-триггерах 00 01 11 00 01 11 01 11 01 10 01 10 00 Таблица переходов RS-триггера 0 1 00 0 1 01 1 1 10 0 0 98
R----- два входных канала, возможны четыре различные комбинации входных сиг- налов. Одна из комбинаций (11) считается запрещенной, поэтому в табл. 5-23 всего три строчки. Входы R и S называются соответственно нулевым и еди- ничным. Функция входов RS-триггера приведена в табл. 5-24. Из табл. 5-24 видно, что при поступлении единицы на нулевой вход триггер переходит в состояние 0 независимо от того, в каком состоянии он до этого находился; при поступлении единицы на еди- ничный вход триггер переходит в состояние 1. Другое представление функции входов дано в табл. 5-25. В этой таблице переходу из 0 в 0 соответствует входной сигнал (— 0), где черточка означает, что переход не зависит от сигнала на нулевом входе триггера. Ана- логичным образом для перехода из 1 в 1 имеем входной сигнал (0—). Табл. 5-25 дает систему подстановок при переходе от таблицы переходов структурного автомата к таблице его функций возбуждения. Покажем, как пользоваться этими подстановками на примере автомата S (табл. 5-15), функции возбуждения определяются табл. 5-26. Рассмотрим в табл. 5-15 переход из состояния 00 в состояние 01 под действием входного сигнала 00. Этот ----T Рис. 5-7. RS-триггер для которого переход складывается из переходов Таблица 5-25 Преобразованная функция входов RS-триггера Таблица 5-24 Функция входов RS-триггера т исх RS пер 0 oov ю 0 0 01 1 1 10 0 1 оо vol 1 Т исх RS -О 01 10 0- Т пер 0 о 1 О О двух триггеров. Первый триггер переходит из 0 в 0, чему соответствует под- становка (— 0) (см. табл. 5-25). Запишем ее в Таблица 5-26 Функция возбуждения памяти автомата S при синтезе на RS-триггерах 00 01 11 00 -001 1010 01 0101 -010 — 10 -001 010- 0-0- табл. 5-26 в строчку 00 и стол- бец 00. На этом же переходе под действием входного сигна- ла 00 второй триггер переходит из 0 в 1, чему соответствует подстановка (01) для второго триггера. Таким образом сигналы возбуждения па- мяти определяются набором R1S1R2S2 = (—001). Переход автомата S из состояния 00 в состояние 11 под действием входного сигнала 01 приводит к подстановкам (01) для перво- го триггера и '(01) для вто- рого, чему соответствует на- бор R1S1R3S2 = (0101) во второй строке первого столбца таблицы функций возбуждения (табл. 5-26). Аналогично для остальных переходов табл. 5-15 получим всю таблицу функ- ций возбуждения (табл. 5-26) для автомата S. Выписывая из этой таблицы наборы переменных Tlt Т2, Xi, х2, соответствующие единицам на входах пер- 4* 99
вого и второго триггеров, получим выражения функций возбуждения памяти автомата в дизъюнктивной нормальной форме: (5-7) Ri = T1T.ix1x2= 12, Sj = 71T2X1X2V7;17’2X1X2 = 1V6, R-2 = 7’17' 2X1X2V T \T2xix2 = 5 V12, S2= T\T 2X1X2 V 17" 2Х1Х2\/Т 1T 2X1X2 = OV1 \/2. Рис. 5-8. Логическая схема автомата S при синтезе на RS-триггерах Очевидно, что кроме случаев, отмеченных в пп. 1—3 предыдущего па- раграфа, функции возбуждения будут не определены также на наборах, со- ответствующих черточкам в поле табл. 5-26. Такими наборами, например, для функции Ri будут 0 0 0 0 0 0 10 0 10 1 Логическая схема автомата S, синтезированного на элементах И, ИЛИ, НЕ и RS-триггерах, в соответствии с выражениями (5-1) и (5-3) для выход- ных сигналов и (5-7)для функций возбуждения памяти построена на рис. 5-8. 100
Таблица 5-27 Столбец таблицы переходов автомата с различными элементами памяти Таблица 5-28 Столбец таблицы функций возбуждения памяти, построенный по табл. 5-27 0 110 10 0 110 1 о 10 10 0 0 0 10 111 1 О О О 10 -о 01110- 01 Рассмотренные методы синтеза могут быть использованы и при построе- нии автомата на различных элементах памяти. Так, если в табл. 5-27 пред- ставлен один столбец табли- цы переходов некоторого ав- томата с двумя входными сиг- налами и ше- Т Таблица 5-29 Таблица переходов JK-триггера Таблица 5-30 Функция входов JK-триггера стъю элемента- рис. 5.9, ми памяти, при- J К-триггер чем П1 и 772 — D-триггеры, П3 и /74 — Т-тригге- ры, а Пь и Пв = RS-триггеры, то соответствующий столбецфункции возбуждения будет иметь вид табл. 5-28. Ясно, что подобные правила построения таблицы функций возбуждения по таблице пере- ходов могут быть получены для любых элементов памяти. Читателю предлагается в качестве упражнения разработать такие правила для JK-триггера (рис. 5-9), функция переходов и функция входов которого приведены в табл. 5-29 и 5-30 соответственно. 5-4. Графический метод структурного синтеза автоматов При графическом методе синтеза структурный С-автомат пред- ставляют в виде графа. Так как при получении выражений вида (5-1) и (5-4) берутся конъюнкции входных переменных, соответст- вующих кодам входных сигналов, договоримся дугам графа авто- мата вместо входных сигналов приписывать сразу эти конъюнк- ции. Так, вместо сигналов 00, 01 и 10 на дугах графа будут запи- саны х±х2, хгх2 и xtx2 соответственно. Кроме того, так как в таблич- ных методах синтеза для получения выражений вида (5-1) в столб- цах таблицы выходов ищутся компоненты выходных сигналов, принимающие значение единицы, будем на дугах графа записывать эти компоненты. Например, вместо выходных сигналов 10, 01 и И будем записывать уи у2 и ууу2 соответственно, а вместо выходного 101
сигнала 00 ставить прочерк (—), так как ни один его компонент не равен единице. Точно так же для выходных сигналов типа 2 рядом с состоянием будем записывать только тот компонент выход- ного сигнала, который в данном состоянии принимает значение единицы. На рис. 5-10, а изображен граф автомата, заданный ра- нее таблицами 5-15 и 5-16. Из таблицы функции входов для D-триггера (табл. 5-19) видно, что если в некотором состоянии элемент памяти Пг принимает зна- чение единицы, то на всех переходах в это состояние функция воз- буждения этого элемента <рг должна принимать значение единицы. Из табл. 5-21, описывающей функцию входов Т-триггера, следует, что функция возбуждения <рг триггера Пг должна быть равна еди- нице на тех переходах, когда происходит изменение состояния этого триггера. Функция входов RS-триггера (табл. 5-25) показывает, что для перевода такого триггера из состояния 0 в состояние 1 дол- жен быть подан входной сигнал, равный единице, на вход S, а для перевода из 1 в 0 — на вход R. Это позволяет сформулировать сле- дующую процедуру синтеза структурного С-автомата по его графу. При синтезе автомата на D -триггерах все дуги графа, входящие в состояние, в котором элемент памяти Пг принимает значение 1, отметим символом <рг, г = где R — длина кодов состоя- ний. Очевидно, что каждой дуге графа автомата будет приписано столько символов, сколько единиц содержится в коде состояния, в которое входит эта дуга (рис. 5-10, а). 102
При синтезе автомата на Т-триггерах, если на некотором пере- ходе из одного состояния в другое триггер Пг меняет свое состоя- ние с 0 на 1 или с 1 на 0, то соответствующая дуга графа автомата отмечается символом <рг (г = 1, . . . , R). Очевидно, что каждой дуге графа автомата будет приписано столько символов, сколько элементов памяти изменяет свои состояния на соответствующем этой дуге переходе (рис. 5-10, б). , При синтезе автомата на триггерах с раздельными входами, если на некотором переходе из одного состояния в другое триггер Пг меняет свое состояние с 0 на 1, то соответствующая дуга графа авто- мата отмечается символом Sr. Если же триггер памяти Пг перехо- дит из состояния 1 в состояние 0, то дуга отмечается символом Rr (г — 1, . . . , R). Очевидно, что каждой дуге графа автомата, как и в случае Т-триггеров, будет приписано столько символов, сколько элементов памяти изменяют свои состояния на соответст- вующем этой дуге переходе (рис. 5-10, в). Выражение для <pr (Rr, Sr), г = 1, R при использовании любого элемента памяти получается как дизъюнкция выражений вида АтХ,, где Ат = т^1 . . . тгтг . . . — конъюнкция, соответствующая коду (ет1, . . . , emR) состояния ат, из которого выходит дуга, отмеченная символом <pr (Rr, Sr)-, emr С (0, 1}, = тг, Тг = тг; Хг— входной сигнал, приписанный этой дуге (или дизъюнкция входных сигналов, если их несколько). Выражение для уп (п = 1, . . . , N, где N — число выходных каналов для реализации выходных сигналов типа 1) получается как дизъюнкция выражений вида АтХп, где Ат‘—конъюнкция, соответствующая коду состояния ат, из которого выходит дуга, отмеченная символом уп-, Хп — входной сигнал, под действием которого происходит переход с выдачей выходного сигнала уп. Выражение для rd (d = 1, . . . , D, где D — число выходных каналов для реализации выходных сигналов типа 2) получается как дизъюнкция конъюнкций, соответствующих кодам состояний, которым приписан символ rd. Таким образом, выражения функций возбуждения памяти и функций выходов могут быть получены непосредственно из графов рис. 5-10, а, б, в. Так как выходные сигналы не зависят от типа эле- мента памяти, для любого из трех графов: у\ = Т1Т2Х1Х2 VT1T2X1X2 VT1T2X1%2 V Т1Т2Х1Х2 0 V 5 V 6 V 1 4, У 2 = Т1Т2Х1Х2 VT1T2X1X2 VT1T2X1X2 VT1T2X1X2 = 0 V1V 5 v 14, Г = Т1Т2\Л1Т2- При синтезе на D-триггерах Ф1 = T1T2XiX2VT1T2XiX2VT1T2XiX2= 1 V6V14, ф2 = Т1Т2Х1Х2\/Т1Т2Х1Х2\/Т1Г2Х1Х2\/Т1Т2Х1Х2\/ VT1T2X1X2 = OV2V1 V6V14. (5-8) (5-9) (5-10) 103
При синтезе на Т-триггерах Ч>1 =T1T2^i^2VT1T2X1X2VTiT2X1X2= 1V6V12, ср2 = T1T2X1X2V Т1Т2Х1Х2 VT1T2X1X2 V Т1Т2Х1Х2 V V'Vit2xiX2 = 0v2\/1 V5V12. При синтезе на RS-триггерах Ri =tit2xiX2= 12, Si = Tir2xix2V tit2XiX2 = 1V6, /?2 = V т1т2х1Х2 — 5 V12, S2 = T1T2X1X2VT1T2X1X2VT1T2X1X2 = 1 V0\/2. Полученные при графическом синтезе выражения (5-8), (5-9), (5-10), (5-11) и (5-12) совпадают соответственно с выражениями (5-1), (5-3), (5-5), (5-6) и (5-7) — результатами табличного метода синтеза автомата S. 5-5. Кодирование состояний. Гонки в автомате Как уже отмечалось выше, задача кодирования состояний яв- ляется одной из основных задач канонического метода структур- ного синтеза автоматов. Напомним, что кодирование заключается в установлении взаимно-однозначного соответствия между мно- жеством А = [alt . . . , ам} состояний автомата и множеством R-компонентных векторов (К1( . . . , Kwj, Кт = (ет1, . . . , emR), где етг — состояние г-го элемента памяти, г = 1, . . . , R. Если етг £ (0, 1}, т. е. алфавит состояний элементов памяти дво- ичный, R > ] log2/W [. В данном параграфе для простоты ограни- чимся использованием в качестве элементов памяти RS-триггеров, которые будем обозначать Тъ . . . , Тр. Переход автомата из одного состояния в другое осуществляется за счет изменения состояний элементов памяти. Так, если автомат переходит из состояния ат с кодом 0101 в состояние as с кодом 1001, то это означает, что триггер 7\ переходит из состояния 0 в состояние 1, триггер Т2 — из состояния 1 в состояние 0, а состоя- ния триггеров Т<, и Ti не изменяются. При функционировании автомата могут появиться так называе- мые состязания. Явление состязаний возникает вследствие того, что элементы памяти имеют различные, хотя и достаточно близкие, времена срабатывания. Кроме того, различны также задержки сиг- налов возбуждения, поступающих на входные каналы элементарных автоматов по логическим цепям неодинаковой длины. Если при переходе автомата из одного состояния в другое должны изменить свои состояния сразу несколько запоминающих элементов, то ме- жду ними начинаются состязания. Тот элемент, который выиграет эти состязания, т. е. изменит свое состояние ранее, чем другие эле- J04
менты, может через цепь обратной связи изменить сигналы на вхо- дах некоторых запоминающих элементов до того, как другие участ- вующие в состязаниях элементы изменят свои состояния. Это мо- жет привести к переходу автомата в состояние, не предусмотренное его графом. Поэтому в процессе перехода из состояния ат в состоя- ние as под действием входного сигнала zf (рис. 5-11, а) автомат мо- жет оказаться в некотором промежуточном состоянии ak или az в зависимости от того, какой элемент памяти выиграет состязания. Если затем при том же входном сигнале автомат из ak и аг перейдет в состояние as, то такие состязания являются допустимыми, или некритическими. Если же в этом автомате есть переход, например, из ak в dj =/= as под действием того же сигнала zf (рис. 5-11, б), то автомат может перейти в а не в as и правильность его работы тем самым будет нарушена. Такие состязания называются крити- Рис. 5-11. Состязания между элементами памяти: а — некритические, б — критические ческами состязаниями или гонками. При кодировании состояний гонки должны быть устранены. Кодирование с устранением гонок называется противогоночным. Один из способов ликвидации гонок состоит в тактировании входных сигналов автомата импульсами определенной длительно- сти. Предполагается, что кроме входных каналов xlt . . . , xL имеется еще один канал р от генератора синхроимпульсов (ГСП), по которому поступает сигнал р = 1 в момент прихода импульса и р = 0 при его отсутствии. В связи с этим входным сигналом на переходе (ат, as) будет не zf, a pzf. Тогда, если длительность им- пульса tp меньше самого короткого пути прохождения тактиро- ванного сигнала обратной связи по комбинационной схеме, то к мо- менту перехода в промежуточное состояние ak (рис. 5-11, б) сигнал р равен нулю и, следовательно, pzf — 0, что и исключает гонки. Другой способ ликвидации гонок заключается во введении двой- ной памяти (рис. 5-12). В этом случае каждый элемент памяти дуб- лируется, причем перепись из нижнего элемента памяти в верхний происходит в момент отсутствия тактирующего импульса (р = 0). Сигналы обратной связи для получения функций возбуждения и функций выходов автомата снимаются с верхнего ряда триггеров. 105
Рис. 5-12. Двойная память Таким образом, состязания могут возникнуть только между ниж- ними триггерами, сигналы обратной связи не смогут измениться до тех пор, пока р не станет равным нулю. Но тогда входной сигнал pZf также равен нулю, а потому гонок быть не может. Наряду с аппаратурными способами для устранения гонок мо- гут использоваться специальные методы кодирования, которым посвящено большое число работ. В работе [28] предлагается метод противогоночного кодирования, основная идея которого сводится к следующему. Пусть (а, Р) и (у, 6) — две пары двоичных кодов длины R. Пары (а, 0) и (у, 6) назы- ваются развязанными, если при некотором 1 г Я r-й разряд кода принимает одно значение на паре (а, 0) и противоположное на паре (у, 6). В противном случае пары двоич- ных кодов (а, Р) и (у, 6) называются свя- занными. В работе [28] доказана следующая теорема: в автомате, состояния которого за- кодированы двоичными кодами конечной длины, гонки отсутствуют тогда и только тогда, когда для любых двух переходов (ат, aj и (ak, at), as-^= at, происходящих под действием одного и того же входного сигнала, соответствующие пары кодов состояний развя- заны. В этой же работе приведен основанный на этой теореме алго- Рис. 5-13. Графы, не допускающие сосед- него кодирования ритм противогоночного ко- дирования состояний ко- нечных автоматов, основ- ная идея которого доста- точно проста: последова- тельно просматривая все пары переходов, для кото- рых имеется хотя бы один общий входной сигнал, осуществляющий эти пере- ходы, присвоить разрядам кодов такие значения, чтобы соответствующие пары кодов состояний были развязаны.1 Существует один частный способ кодирования — соседнее коди- рование состояний автомата, при котором условие отсутствия го- нок всегда выполнено. При соседнем кодировании любые два со- стояния, связанные дугой на графе автомата, кодируются наборами, отличающимися состояниями лишь одного элемента памяти. Су- ществует несколько алгоритмов соседнего кодирования, один из которых приведен в [21 ]. 1 Этот алгоритм подробно изложен в первом издании книги «Синтез микропрограммных автоматов» (Л., Энергия, 1974). 106
Соседнее кодирование, однако, не всегда возможно. В работе [27 ] сформулированы требования к графу автомата, допускающего соседнее кодирование: 1. В графе автомата не должно быть циклов с нечетным числом вершин. 2. Два соседних состояния второго порядка не должны иметь более двух состояний, лежащих между ними. При этом под состоя- ниями второго порядка понимаются два состояния, путь между которыми по графу автомата состоит из двух ребер (независимо от ориентации). На рис. 5-13 приведены два графа, которые не удовлетворяют этим требованиям и не могут быть закодированы соседними кодами. Таким образом, имеются 4 способа устранения гонок: 1) двойная память; 2) рациональный выбор длительности синхроимпульса; 3) развязывание пар переходов; 4) соседнее кодирование. 5-6. Кодирование состояний и сложность комбинационной схемы Анализ канонического метода структурного синтеза автоматов показывает, что различные варианты кодирования состояний авто- мата приводят к различным выражениям функций возбуждения памяти и функций выходов, в результате чего оказывается, что сложность комбинационной схемы автомата существенно зависит от выбранного кодирования. Проиллюстрируем это синтезом на D-триггерах абстрактного автомата S, таблица переходов которого представлена в табл. 4-5. В рассмотренном в § 5-3 примере (табл. 5-15) состояния автомата были закодированы следующим образом: К (fli) = 00, К (а2) — 01, К. (а3) = 11. Соответствующие этому кодированию функции возбуждения приведены в выраже- ниях (5-5). Закодируем состояния автомата S иначе: К. (aj = 01, К (а2) = = 10, К (а3) = 00. Таблица переходов структурного автомата S при таком кодировании представлена в табл. 5-31. Так как таблица функций возбуж- дения на D-триггерах совпадает с таблицей переходов, непосредственно из табл. 5-31 имеем существенно более простые функции возбуждения: Cf! =TiT2X1X2VT1T2X1X2= 4\/6, ф2 — TiT2X1X2VT1T2X1X2 =9v0. При кодировании состояний в этом примере был использован следующий алгоритм, позволяющий упростить функции возбуждения при синтезе автомата на задерж- ках: Таблица 5-31 Таблица переходов структурного автомата 01 10 00 00 01 10 10 00 10 01 00 01 00 10'
1. Каждому состоянию автомата ат (т = 1, . . . , /И) ставится в соответствие целое число Nm, равное числу переходов в состояние am(N т равно числу появлений ат в поле таблицы переходов или числу стрелок, входящих в ат при графическом способе задания автомата). 2. Числа Nlt . . . , Nm, . . . , NM упорядочиваются по убыва- нию. 3. Состояние at с наибольшим Nt кодируется кодом 00 ... 0. 4. Следующие R состояний (R — число элементов памяти) в упорядоченном в п. 2 списке кодируются кодами 00 ... 01, 00 ... 10, . . . , 10 ... 00. 5. Для кодирования следующих R из оставшихся М—R—1 со- стояний используются все коды, содержащие две единицы, затем три единицы и т. д., до тех пор пока все состояния не будут закоди- рованы. В результате получаем такое кодирование, при котором чем больше имеется переходов в некоторое состояние, тем меньше единиц содержится в его коде. Подобные соображения могут быть использованы и при коди- ровании выходных сигналов для минимизации функции выходов. Упорядочим, например, выходные сигналы автомата S из таблицы выходов (табл. 5-5), которые в этой таблице встречаются: w3 — 3 раза, w2 — 2 раза, wx— 1 раз, wt— 1 раз, иг— 2 раза, «2— 1 раз. После кодирования выходных сигналов в соответствии с упоря- дочением (табл. 5-32 и 5-33) таблица выходов автомата S примет вид табл. 5-34. Таблица 5-33 Кодирование выходных сигналов типа 2 Таблица 5-32 Кодирование выходных сигналов типа 1 W У1У2 6666 1й [J W 00 01 10 11 Таблица 5-34 Таблица выходов после изменения кодов выходных сигналов 0 1 0 00 01 11 00 00 01 01 11 00 — 10 01 10 00 Непосредственно ций выходов: из этой таблицы получаем выражения функ- У1 = TlT2XlX2\/i;iT2XiX2 = 1V6, У2 = T1T2X1X2VT1T2X1X2\/T1T2X1X2 = 1V 2 V12, г = Т1Т2. 108
Заметим, что соответствующие выражения (5-1, 5-3) при первом варианте кодирования выходных сигналов были существенно слож- нее. Таблица 5-35 b:AxZ^A «1 а2 а3 а4 й5 а» Z1 ае <h а2 01 а3 г2 °3 а3 «5 Большое число работ [49, 52, 56, 62], начало которых было по- ложено Хартманисом и Стирном [53, 60], посвящено получению такого кодирования, при котором уменьшается зависимость функ- ций возбуждения от переменных обратной связи тх, . . . , тя. Харт- мание и Стирн показали, что этот подход тесно связан с существо- ванием определенных разбиений множества состояний автомата. Как правило, нахожде- ние вариантов кодиро- вания состояний, кото- рые обеспечивают ос- лабленную функцио- нальную зависимость для функций возбужде- ния, дает более эко- номичную схему, чем при других типах коди- рования. В качестве примера рассмотрим автомат, таб- лица переходов которого представлена в табл. Таблица 5-36 Первый вариант кодирования состояний Таблица 5-37 Кодирование входных сигналов Т2 Та ai й2 а3 a.i а5 ае ООО 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 5-351. Для простоты рассмотрим его синтез на D-триггерах, так как мы сможем получать выражения функций возбуждения непосредственно из таблицы переходов структурного автомата. Если его состояния и входы закодированы в соответствии с табл. 5-36 и 5-37, то из табл. 5-38 структурного автомата после упрощения имеем следующие выражения функций возбуждения его памяти: ф! = T1T2T3X Vt2t3x Vt2T3X, ф2 = t2xVtit2T3V TiT3, фз = T1XVT2T3XVT1T3XVT1T2X. 1 Пример взят из работы [31]. 109
Каждая переменная <рг (г = 1,2, 3) зависит от всех переменных т1, т2> тз и входной переменной х. Таблица 5-38 Таблица переходов структурного автомата для первого варианта кодирования ООО 001 010 он 100 101 0 он 101 100 001 000 010 1 010 010 001 100 он он При втором варианте кодирования состояний (табл. 5-39 и 5-40) получаем более простые выражения: Таблица 5-39 Второй вариант кодирования состояний Гр1 = Т1Х\АЛ q>2 = T3X, Cf>3 --T>T3. Видно, что ф! не зависит от т2 и т3, а ф2, ф3— от Упомянутый подход if развитые на его ос- нове методы достаточно подробно изложены в литературе, в том числе и в монографиях [54, 24, 62]. Ясно, что методы кодирования состояний с ослаблением функциональной зависимости тесно связаны с рассмотренной в четвертой главе задачей декомпозиции ав- томата. В то же время большинство авторов отмечают сложность этих методов кодирова- ния при синтезе автоматов с большим числом состояний и переходов и при синтезе час- тичных автоматов, а также трудности одно- Л Т2 Т3 Of 1 1 0 fl2 1 0 1 «3 1 0 0 «4 0 0 0 аг> 0 0 1 яв 0 1 0 временного учета сложности функций возбуждения памяти и функ- ций выходов. В связи с этим не будем останавливаться на этих ме- тодах, а рассмотрим эвристический алгоритм кодирования состоя- ний, предложенный в [33] и минимизирующий суммарное число изменений элементов памяти на всех переходах автомата. При та- ком критерии уменьшается сложность схем, реализующих дизъюнк- ции на входах элементов памяти, т. е. также минимизируется ком- бинационная схема автомата. Таблица 5-40 Таблица переходов структурного автомата для второго варианта кодирования но 101 100 000 001 010 0 000 010 001 101 ио 100 1 100 100 101 001 000 000 110
Пусть Г (S) — неориентированный граф переходов автомата S. Вершины графа отождествляются с состояниями автомата. Вер- шины t и / соединены ребром, если есть переход из at в или из в at. Обозначим через q (i, j) число всевозможных переходов ав- томата из состояния а( в состояние а{, на которых выдаются раз- личные выходные сигналы. Каждому ребру (t, /) графа Г (S) по- ставим в соответствие вес р (i, j) = q (i, j) + q (j, t). Введем функцию 2 p(h j), (i.j)Cr(S) где d. (i, j) — число компонентов, которыми коды К (а() и К (а{) отличаются друг от друга (расстояние по Хеммингу между К (aj и К (а;)). Введенная функция W может служить одной из оценок сложности комбинационной схемы автомата, при этом упрощение комбинационной схемы будет тем больше, чем меньше W. Алгоритм состоит из следующих шагов. 1. Построим матрицу Т = «1 ₽1 состоящую из всех пар номеров (a,, Pr), г = 1, . . . , R, для кото- рых р (аг, Рг) =/= 0, т. е. в автомате есть переход из ааг в a|if. или из а^г в aar, аг<0г. 2. Упорядочим строки матрицы Т, для чего построим матрицу М следующим образом. В первую строку матрицы М поместим пару (а, 1, Ptl) с наибольшим весом р (atl, Р(1). Из всех пар, имеющих общий компонент с парой (<z(1, Ptl), выбирается пара (а12, Р^)1 с наибольшим весом и заносится во вторую строку матрицы М. За- тем из всех пар, имеющих общий компонент хотя бы с одной из внесенных в список пар, выбирается пара с наибольшим весом и заносится в матрицу М. Указанная процедура продолжается до тех пор, пока все пары матрицы Т не будут перенесены в матрицу М. В случае равенства весов пар вычисляются суммы весов компо- нентов пар (весом р (аЛ) компонента аг назовем число появлений аг в матрице Т) и в матрицу М заносится пара с наибольшей суммой весов компонентов. Ясно, что для связного автомата такое упоря- дочение всегда возможно. В работе [33] показано, что изложен- ный ниже алгоритм кодирования приводит к меньшему значению W в случае такого упорядочения пар по весам. 3. Закодируем состояния из первой строки матрицы М следую- щим образом: 7^-00 ... 00; КР(1-00 . . . 01. 4. Вычеркнем из матрицы М первую строку, соответствующую 1) Ясно, что (aIX, ра) П (а12, р(г} ± 0. 111
закодированным состояниям аап и Др.]* 1. Получим матрицу М'. 5. В силу упорядочения в п. 2 в первой строке матрицы М' закодирован ровно один элемент. Выберем из первой строки М' незакодированный элемент и обозначим его через у. f' 6. Построим матрицу Mv, выбрав из М' строчки, содержащие у. Пусть = {Vi, . • • , yf, . . . , — множество элементов из матрицы Mv, которые уже закодированы. Их коды Ку, . . . , , KyF соответственно. 7. Для каждого Kyf (f = 1, ... , F) найдем — множество кодов, соседних с Kyf и еще не занятых для кодирования состояний . F автомата. Построим множество D?= (J Gv . Если = 0, то М F строим новое множество Dy = (J Су, где Су — множество ко- 1=1 ' дов, у которых кодовое расстояние до кода Kyf равно двум. Если и Dy = 0, строим аналогичным образом Dy, .... Dy до тех пор, пока не найдется Dy^=0 (и —1, 2, 3 . . .). Пусть Dy~ [Кь, ... , K6g, к6а}. 8. Для каждого K&g находим d (6g, yf~) — кодовое расстояние между K&g и всеми использованными кодами Kyf (f = , F). 9. Находим W&= v p(6g, yz)d(6g, yf), g-=\, . . . , G. fig- vfer(s) 10. Из Dy выбираем Ку, у которого l^g = min Wg. Элемент у (состояние a?) кодируем кодом Ку 11. Из матрицы М' вычеркнем строки, в которых оба элемента закодированы, в результате чего получим новую матрицу М'. Если в матрице М' не осталось ни одной строчки, переходим к п. 12, иначе — кп. 5. 12. Вычисляем функцию W = У, p(i, j) d{i, j). Переходим Щ/)€Г(Э) к п. 13. 13. Конец. Без подробных пояснений приведем пример кодирования со- стояний автомата, матрица Т которого имеет следующий вид (мат- рица соответствует автомату на 12 13 14 15 23 24 34 т = рис. 8-3): 3 1 1 2 2 1 1 1 Ниже вместо «элемент аг, соответствующий закодированному состоя- нию аа,г», будем говорить «закодированный элемент аг». 112
В матрице Т справа проставлены веса р (i, j). После упорядочения строк матрицы Т в соответствии с п. 2 получим матрицу М. Ki = 000; К2 = 001. Кодирование будем иллюстрировать картой Карно: М = 12 3 23 2 23 2 15 2 15 2 23 2 13 1; М' = 13 1; Y = 3; Л43 = 13 1 14 1 14 1 34 1 24 1 24 1 34 1 34 1 в3={1, 2}. С} = {010, 100}; С2= {ОН, 101}. Dl = c!uC2= {010, 100,011, 101}. Folo= 1-1 +2-2 = 5; W'ioo =1-1+2-2 = 5; Г011= 1-2 + 2-1 = 4; Г101=1-2 + 2-1 =4. Выбираем /С3 = 011. 1^100 = 2-1=2; W'010 = 2-l=2. Выбираем К6 = 100. В4 = {1, 2, 3}. . 1 1; 1 113
Выбираем Д4 = 010. г2 г3 С}=-- {010}; С|—{101}; С'3= {010, 111}; Dl = CJuCiuCi = =={010, 101, 111}. W010-~\-1 + 1 -2 + 1 -1 ==4; W101 = 1 -2+ 1 -1 + 1 -2 = 5; F1U=1-3 +1 -2+1 -1 =6. Минимизация целевой функции W возможна при использовании итера- тивных алгоритмов кодирования. Пусть К = (Кх, .... Кт, • • , Д.м) — некоторое решеие задачи кодирования состояний, которое мо- жет быть получено и в результате только что приведенного последова- тельного алгоритма (или некоторым случайным образом). Вектору К соответствует некоторое значение W (К) функции W. Основная идея итеративного алгоритма состоит в переходе от вектора Д к вектору Д' с W (Д') < W (Д) [33 ]. Это мож- но осуществить, например, путем всевозможных попарных переста- новок координат вектора Д. Перестановки осуществляются до тех пор, пока не окажется, что перестановка любой пары Д; и Ду (i =£= j) не уменьшает W. В работе [33] приведены результаты экспериментальных иссле- дований нескольких алгоритмов кодирования, которые подтвердили высокую эффективность последовательного алгоритма. ГЛАВА ШЕСТАЯ______________________________________ ОПЕРАТОРНЫЕ СХЕМЫ АЛГОРИТМОВ 6-1. Микропрограммы работы дискретных устройств При описании работы широкого класса дискретных систем авто- матики и вычислительной техники стало уже классическим их пред- ставление в виде композиции управляющего (Л) и операционного (В) устройств (рис. 6-1). Так, в вычислительной машине к опера- ционному устройству относят блоки памяти, регистры, сумматоры, каналы передачи информации, шифраторы и дешифраторы, а к устройству управления — ту часть машины, которая, координи- руя действия всех перечисленных устройств, определяет последо- вательность переработки информации. Задачей устройства управ- ления является, таким образом, выработка распределенной во вре- мени последовательности управляющих сигналов, под воздействием которых в операционном устройстве осуществляется некоторая операция. Иногда целесообразно многоступенчатое представление 114
дискретной системы. Так, в одних случаях, например при проек- тировании центрального устройства управления ЦВМ, арифметиче- ское устройство (АУ) в целом рассматривается как часть опера- ционного устройства, тогда как при проектировании самого АУ в нем выделяется свой автомат управления, а к операционной ча- сти АУ относятся его регистры, сумматор, регистр кодов арифме- тических операций и счетчик сдвигов. Элементарный неделимый акт обработки информации в опера- ционном устройстве, происходящий в течение одного момента ав- томатного времени, назовем микрооперацией. Пусть Y = \ух, . . . , yN] — множество микроопераций, реализуемых в операционном устройстве. Микрооперации возбуждаются сигналами уъ . . . , yN из управляющего устройства (для обозначения этих сигналов удоб- но использовать одни и те же символы: для выполнения микро- операции^ ^сиг- нал, равный единице, должен появиться на выходе уп). Если несколько микроопераций реали- зуются одновременно в устрой- стве В, назовем это множество ми- кроопераций микрокомандой. Так Рис. 6-1. Композиция операционного и управляющего автоматов если Yt=[ytl, .... ytUt\ —мик- рокоманда, микрооперации ytl, ... , ytU{ выполняются в один и тот же момент автоматного времени (ylu Q Y, и — 1.....Ut). При Ut — 1 микрокоманда Yt состоит из одной микрооперации. Не исключен случай Ut = 0, когда множество микроопераций, образующих микрокоманду, пусто. Микрокоманду, состоящую из пустого множества микроопераций, будем обозначать символом Yg. Реализация такой микрокоманды равносильна отсутствию выпол- нения каких-либо элементарных операций. В случае синхронных дискретных устройств микрокоманду Yo удобно интерпретировать как пропуск такта, когда не поступают никакие сигналы от устрой- ства управления к операционному устройству. Пусть Y 1( . . . , YT — микрокоманды, которые могут выпол- няться в операционном устройстве. Последовательность выполне- ния микрокоманд определяется функциями перехода — булевыми функциями ai; (t, j = 1, . . . , Т) от множества двоичных перемен- ных X = . . . , xL} — входных переменных управляющего устройства А. С каждой микрокомандой естественно связать множество функций перехода . , а[Т}, таких, что если по- сле выполнения микрокоманды Yi alt = 1, то следующей будет выполняться микрокоманда Y(. Очевидно, что множество функций перехода из одной и той же микрокоманды Yt обладает свойствами / Т ортогональности (рцри = 0 при / =/= О и полноты Vai; = l I. Ортогональность говорит о том, что непосредственно после данной 115
микрокоманды при определенных значениях входных переменных может выполниться только одна микрокоманда, а полнота — что она выполнится обязательно. Совокупность микрокоманд и функций перехода образует мик- ропрограмму. Таким образом, для описания микропрограммы не- обходимо задать последовательность микрокоманд и функций пе- рехода, определяющих порядок выполнения микрокоманд. Для описания микропрограмм мы будем использовать язык граф-схем алгоритмов.1 6-2. Граф-схемы алгоритмов Граф-схема алгоритма (ГСА) — ориентированный связный граф) содержащий одну начальную вершину (Ао)> одну конечную (Лк, и произвольное конечное множество условных (Р — |р1; ... , р^)) и операторных (Л = {Аг, . . . , Ло]) вершин (рис. 6-2). Конечная, операторная и условная вершины имеют по одному входу, начальная вер- шина входов не имеет. На- чальная и операторная вер- Рис. 6-2. Вершины ГСА шины имеют п0 одному вы- ходу, а условная — два вы- хода, помеченных символами 1 и 0. Конечная вершина выходов не имеет. ГСА удовлетворяет следующим условиям: 1. Входы и выходы вершин соединяются друг с другом с по- мощью дуг, направленных всегда от выхода ко входу. 2. Каждый выход соединен точно с одним входом. 3. Любой вход соединяется по крайней мере с одним выходом. 4. Любая вершина графа лежит по крайней мере на одном пути из начальной вершины к конечной вершине. 5. Один из выходов условной вершины может соединяться с ее входом, что недопустимо для операторной вершины. Такие услов- ные вершины будем иногда называть возвратными вершинами. 6. В каждой условной вершине записывается один из элементов множества X = {хъ . . . , xt, ... , xL], называемого множеством логических условий. Разрешается в различных условных вершинах запись одинаковых элементов множества X. 7. В каждой операторной вершине записывается оператор (мик- рокоманда) Yt — подмножество множества Y = {рх, . . . , уп, . . . , yN\, называемого множеством микроопераций:2 ¥f = (Кш • • ' Utu' • ' ' ’ У/u^Y’ и = 1, • • , Uf. 1 Несколько иное понятие микропрограммы встречается в работах А. Чеботарева, А. Мищенко [43, 32] и Ф. Атстопаса и его коллег [3]. 2 Слова «микрокоманда» и «оператор» при описании ГСА рассматри- ваются как синонимы. В случае содержательных граф-схем алгоритмов (см. следующий параграф) всегда будем использовать термин «микрокоманда», что чаще встречается в литературе, например в [26]. 116
При Ut = 0 Yt — 0, что допустимо. Разрешается также за- пись в различных операторных вершинах одинаковых подмножеств множества микроопераций. При большом числе дуг, приходящих на один вход вершины, наглядность графического изображения может потеряться, в связи с чем позволим изображать дуги как показано на рис. 6-3. Пример ГСА, содержащей 6 условных и 7 операторных вершин, приведен на рис. 6-4. Предположим, что в оператор- ных вершинах ГСА записаны опе- раторы Y lf . . . , YT — все раз- ные, так что операторную вершину можно отождествить с записанным £ входящие в вершины, так, Рис. 6-3. Допустимое изображе- ние вершин ГСА ней оператором (в вершине At записан оператор У£. В таком случае вместо обозначения At для операторной вершины можно использовать символ Y(). Начальной Рис. 6-4. Пример ГСА вершине поставим в соответствие оператор Уо, а конечной — опе- ратор Ук —Уг+1. Пусть в ГСА имеется путь из вершины У,- (t = = 0, 1, . . . , Т) в вершину Yj (j = 1, . . . , Т, Т + 1) вида Ytp‘Y ' -Ри- ' P$Yp (64> проходящий только через условные вершины р£1, . . . , Рщ\ 117
eir £ {0,1) — символ, приписанный выходу условной вершины pir, через который проходит путь (6-1). Очевидно, что каждому такому пути соответствует конъюнкция е R е- а.. = х‘.11 . . x.iR = /\ х.‘г, где xir — логическое условие, за- V 11 г=1 1Г писанное в условной вершине p[r\ x?ir~ х.г, х'г~х1г. Если между вершинами Y( и Yj имеется несколько (например //) путей, проходящих через условные вершины, то а,, равно дизъюнк- ту ции конъюнкций, соответствующих всем путям, т. е. а.. = у а)., Л=1 где а?/ — конъюнкция, соответствующая й-му пути из Yt в Y,- Назовем функцией перехода от оператора (микрокоманды) Yi к оператору (микрокоманде) Yj. Всевозможные наборы значений переменных х,, . . . , xL обо- значим через Д]......A2l- Определим процесс выполнения ГСА, начиная с оператора Yo (начальный оператор), на произвольной бесконечной последовательности наборов Ат1, . . . , Д,„9, . . . сле- дующим образом:1 Выписываем оператор Yo. Шаг 1. Придаем переменным . , xL значения из набора Ат1. Из множества функций перехода а01, . . . , апт выбираем функ- цию a0Z[ (У g {1, . . . , Т}), принимающую значение единицы на этом наборе (aOii (Aml) = 1). В строчку рядом с Yo записываем УЛ: YoYi- Ш а г 2. Придаем переменным х1г . . . , xL значения из набора Дт2. Из множества функций перехода а(11, . . . , aliT выбираем функцию a(iIj (t2 g jl, . . . , T\), такую, что aiti, (Am3) = 1. В строчку рядом с Yit записываем Yh: Y0Yi,Yia и т. д. Пусть перед некоторым q-м шагом имеем строчку операторов Если на наборе Ат<? некоторая функция <х(. равна единице (t? 0 (1, . . . , Т|), то в выписанную строчку операторов добавляем Yi . Если оказывается, что а. ] г+1 = 1, то в строчку вслед за записываем Уг+1 (конечный оператор), и процесс выпол- нения ГСА прекращается. Строчка Y Y. Y. ... Y. Y. называется значением ГСА на и Ч ‘г ‘<7—! ч последовательности наборов А ,, А А ,, А 1471. г глР m2 ’ ’ т. q —Р mq 1 J 1 В дальнейшем будем предполагать, что значения логических условий , хь могут изменяться только в моменты выполнения операторов. 118
Ясно, что процедура выполнения ГСА на заданной последователь- ности наборов может оборваться в двух случаях: исчерпаны все наборы (заключительным в значении ГСА стоит оператор Y; ); достигнута конечная вершина (заключительным в значении ГСА стоит конечный оператор YT+i). Например, значение ГСА на рис. 6-1 на последовательности на- боров Х1 х2 х3 х4 хй 10 10 1 110 11 10 110 0 110 1 10 10 0 0 10 11 равно У0У1У4У2УвУк. Определим процедуру выполнения ГСА на произвольной по- следовательности наборов при наличии возвратных условных вер- шин (соответствующий фрагмент ГСА изображен на рис. 6-5). Ме- жду операторами Y± и Y3 имеется бесчисленное множество путей, в связи с чем г/13 ^ “13 V «13 V • Vai3V • = Х\Х2Х7,\! Х\Х2Х2Хз\! \] x{x2x2x^3\J . . • \/Х\Х2 ’ ' ' 'Х2Х^1>\1 ' ’ ' ЛТ*2*3' Так как логические условия, соответствующие всем путям, на- чиная со второго, равны нулю, а13 фактически определяется пер- вым путем. В связи с этим в дальнейшем будем учитывать лишь те пути через возвратную вершину, которые проходят через выход, не соединенный с ее входом, и будем считать, что на рис. 6-5 имеется один путь вида (6-1) из вершины У\ в вершину Y3. Непосредственно из рис. 6-5: ai2 = X\, al3 = xix2x3, aii = xixzx3. (6-2) Пусть в процессе выполнения ГСА на некоторой последователь- ности наборов выполнился оператор У1; после чего в этой последо- вательности стоят наборы 1 0 1 1 1 1. Из выражений (6-2) видно, что ни одна функция перехода из оператора У4 на наборе 101 не равна единице. Поэтому в строчку рядом с У4 записываем пустой оператор Уо: • • • Y.Y, 119
и переходим к следующему набору (111), проверяя значения на нем функций перехода из того же оператора Y г. Нетрудно видеть, что ot.13 = 1, а потому рядом с Уо записываем оператор Y3: . . . УхУ0У3 и т. д. Если бы и на этом наборе ни одна из функций перехода не была бы равна единице, мы бы рядом с Yo записали еще один оператор Уо и т. д., до тех пор пока на каком-то наборе не оказалась некоторая функция перехода равна единице. Такое выполнение ГСА соответствует тому, что при значениях переменных, при которых ни одна функция перехода из последнего Рис. 6-5. Фрагмент ГСА с возвратной ус- ловной вершиной выполненного оператора не равна единице, управляющее устройство не выдает сигналов на выполнение микроопераций в операцион- ном устройстве (выполняется микрокоманда Уо), и тем самым моделируется ожидание в работе устройства. Если каждому оператору Yt (t = 0, 1,..., Т, Т + 1) граф-схемы поставлено в соответ- ствие некоторое подмножество Bt логических условий, элементы которого могут измениться во время выполнения оператора Yt, то го- ворят, что задано распределение сдвигов. Распределение сдвигов является дополни- тельной к ГСА информацией о логике ра- боты устройства, п эта дополнительная ин- формация может быть использована для упрощения ГСА (этот вопрос более подробно разбирается в следующей главе). Пусть процесс выполнения ГСА рассма- тривается для некоторой последовательности наборов значений логических условий А ,,..., А , А ,, ml’ ’ mq* tn.q-\~i и пусть набор Ат<7 предшествует моменту выполнения опера- тора У(- , а набор Am.g+i устанавливается непосредственно после выполнения оператора Уг- . Последовательность наборов назы- вается допустимой для ГСА при заданном распределении сдвигов, если всякий набор Am.?+i либо совпадает с набором Ат<?, либо отличается от него только значениями переменных из множе- ства Bi . q ГСА Гх и Г2 равносильны при данном распределении сдвигов (Г'х = Г2), если для всякой последовательности наборов, допусти- мой для ГСА Гх или Г2 при этом распределении сдвигов значения этих ГСА совпадают [47]. 120
6-3. Содержательные граф-схемы алгоритмов Обычно при проектировании различных устройств 1 предвари- тельно составляется так называемая содержательная граф-схема алгоритма, в которой внутри условных и операторных вершин за- писаны не элементы множеств X и Y, а логические условия и мик- рооперации в содержательных терминах. Рис. 6-6. Содержательная ГСА операции деления Рис. 6-7. ГСА операции деления В качестве примера рассмотрим алгоритм выполнения операции деления в арифметическом устройстве (АУ) параллельного дейст- вия с фиксированной запятой. АУ содержит накапливающий сум- матор (^), на котором до начала операции находится делимое, 1 Применение идей теории автоматов и операторных схем алгоритмов при проектировании систем управления популярно изложено во второй ча- сти интересной книги В. Захарова, Д. Поспелова, В. Хазацкого [18]. 121
регистр Z (делитель) и регистр У — на нем после завершения опе- рации получается частное. Проследим выполнение операции де- ления по содержательной граф-схеме, изображенной на рис. 6-6. В начале операции определяется знак частного. Если знаки делимого и делителя не совпадают (sign Z sign 2)» в знаковый разряд результата (sign У) записывается единица — частное отри- цательно. Если знаки совпадают, это действие пропускается. Да- лее обнуляются регистр У, счетчик тактов (СТ) и знаковые раз- ряды регистра Z и сумматора. Затем, если знак сумматора равен нулю (вначале он всегда равен нулю, так как в предыдущей микро- команде его сбросили), из делимого вычитается делитель, для чего на сумматор подается обратный код регистра Z (2 •’ = У, + Zo6p). Если на первом такте (СТ = 0) после вычитания на сумматоре ока- зывается положительное число (sign У = 0), то делимое больше делителя, т. е. имеет место переполнение, и после записи единицы в триггер переполнения (ТП : = 1) операция прекращается. Если же sign 2= 1, то наращивается счетчик тактов (СТ : = СТ + 1), сумматор и регистр У сдвигаются на 1 разряд влево (2 = L± (2). У : = Z-! (У)) и начинается второй такт. Если после вычитания на некотором такте на сумматоре оказывается отрицательное число, то на следующем такте вместо вычитания содержимого регистра Z из содержимого сумматора производится их сложение (2 = = У + Z), т. е. реализуется операция деления без восстановления остатка. Если на некотором такте, кроме первого, после вычитания на сумматоре получается положительное число (sign У = 0), то в младший n-й разряд результата записывается единица (Y[n] : — 1). По прошествии п тактов (СТ = п) операция заканчивается. Результат деления записан в регистре У. После построения содержательной ГСА логические условия и микрооперации кодируются символами . . . , xL и ух, ... , yN соответственно: Условные вершины Операторные вершины %!: sign S = sign Z, Vi: sign Y : = 1, #7 « 2 — S -р Zo6p > х2: sign S = 1, уг-Y: =0, #8: У [и]: = 1, x3:CT = 0, //з.-СТ: =0, #9: СТ : = СТ + 1, x4 : СТ = n. Ун- sign Z : =0, #io • 2 : = JLj (S), Уь: sign S : = 0, #п:Г:=^(У)т f/6: S : = S ф- Z, #12 ’ ТП : = 1. При таком кодировании вершин содержательной ГСА, приве- денной на рис. 6-6, получим ГСА, изображенную на рис. 6-7. 6-4. Логические схемы алгоритмов Граф-схемы алгоритмов, предложенные Л. А. Калужниным [20], представляют собой графический аналог логических схем алгоритмов (ЛСА), введенных А. А. Ляпуновым в 1953 г. для опи- 122
сания блок-схем программ ЦВМ [25]. А. А. Ляпунов предложил записывать алгоритмы в виде конечной строчки, состоящей из сим- волов операторов, логических условий и верхних и нижних стре- i i лок, которым приписаны натуральные числа (f , |, i = 1, 2, . . .). Такая запись алгоритма носит название логической схемы алго- ритма. Рассматриваемые ниже ЛСА удовлетворяют следующим усло- виям: 1. Содержат один начальный (Ун) и один конечный опе- ратор (Ук). 2. Перед оператором Ун и после оператора YK стрелок быть не должно. 3. Вслед за каждым логическим условием всегда стоит верхняя стрелка. 4. Не существует двух одинаковых (с одинаковыми цифрами) нижних стрелок. I 5. Для каждой нижней стрелки | должна быть по крайней мере одна верхняя стрелка. 6. Для каждой верхней стрелки должна быть точно одна ниж- няя стрелка. Множество операторов и логических условий, как и в случае граф-схем алгоритмов, обозначим соответственно через Y = = {Ylt . . ., Y Г] иХ = {х1? . . . , xL}. Описание поведения ди- скретного устройства с помощью ЛСА поясним на следующем при- мере: 112 2 УнМ t Л | х21 У2У31 У4УК. (6-3) Эта ЛСА имеет операторы начала и конца (YH и Ук), четыре оператора Y±—Yt и два логических условия. Начальному опера- тору соответствует некоторое начальное состояние дискретного устройства, при котором никакие микрооперации не выполняются. Если в начальном состоянии на вход х4 устройства придет сигнал, равный единице (х4 = 1), то устройство перейдет в новое состоя- ние, в котором выполняется оператор Ух1 — первый справа по- сле логического условия х±. Если х± = 0, то выходим по верхней 1 1 стрелке f и ищем нижнюю стрелку с той же цифрой (|). После 2 нее стоит логическое условие х2 с0 стрелкой f , за ней — операторы 2 У2, У3, а вслед за нижней стрелкой | — оператор У4. В смысле поведения устройства такое описание интерпретируется следующим образом. Если х4 = 0 и х2 = 1 (х4х2 = 1), то устройство из началь- 1 При описании работы устройства на языке ЛСА под оператором, как и в случае ГСА, понимается множество микроопераций, выполняемых в уст- ройстве одновременно. 123
Рис. 6-8. ГСА, равносильная ЛСА (6-3) гических схем ного переходит в некоторое новое состояние с выполнением опера- 112 _ _ тора У2 (Xi || х21 У2), а если = О и х2 = 0 (х±х2 = 0), то выполняется оператор У4(х1 f . . . | х2 f | К4). После вы- полнения оператора У 2 независимо от значений логических усло- вий выполняется стоящий справа от У2 оператор У3, затем У4 и т. д. Очевидно, что приведенная ЛСА описывает работу устрой- ства точно так же, как и ГСА на рис. 6-8. При задании ЛСА оказывается удобным использовать логиче- ские условия, тождественно равные нулю — всегда ложные логи- ческие условия. Их обычно обозначают через ю. Применение ло- гического условия со поясним на примере фраг- мента ЛСА: . . . У3® f 1 У3 • • \Yt. (6-4) Так как ю — 0, после оператора У2 всегда вы- полняется оператор Yt, а переход к У3 возможен только по стрелке | . Очевидно, что в ЛСА можно ввести понятие путей между операторами, аналогичных путям ви- да (6-1) в ГСА, и функций перехода ац из опера- тора У( к оператору У7-. Так, в ЛСА (6-3): а01 = — X1,GCq2 — ^04 ^1^2» G&12 ” Л-2» ^14 ~ а2з аз4 “ а4к = 1» остальные функции перехода равны нулю. Значение ЛСА на допустимой по- следовательности наборов, распределение сдвигов и равносильность логических схем алгоритмов бу- дем понимать точно так же, как и подобные поня- тия для ГСА, введенные в § 6-2. Классической работой по теории ЛСА является работа Ю. И. Янова [471, в кото- рой исследованы вопросы эквивалентности ло- алгоритмов и построена полная система пре- образований, ^позволяющая от любой ЛСА перейти к эквивалент- ной ей ЛСА с помощью сохраняющих эквивалентность преобразо- ваний. Однако, как отмечал А. П. Ершов в [16], эта работа Ю. И. Янова «не стала известна широкому кругу читателей, прежде всего, из-за - того, что она написана довольно трудным языком, рассчитанным в большей степени на специалистов по математической логике, не- жели на программистов». Поэтому А. П. Ершов в своей работе [16] поставил цель найти более простое изложение работы [47]. Оказа- лось, что «если вместо логических схем алгоритмов, имеющих вид строк символов, рассматривать ориентированные графы, в которых операторы и логические условия являются вершинами графа, а стрелки ’’изображают передачи управления, то уже за счет этого можно сделать большинство конструкций более прозрачными и по- 124
нятными, и в частности упростить систему преобразований, сокра- тив число соответствующих правил с семнадцати до шести».1 Логические схемы алгоритмов как язык описания микропро- граммных автоматов были предложены и исследованы В. Г. Лаза- ревым и его сотрудниками, их многочисленные работы в этом на- правлении обобщены в монографии [24 ].2 Изложим алгоритм перехода от ГСА к ЛСА на примере граф- схемы, изображенной на рис. 6-4. 1. Входы всех вершин ГСА (условных и операторных), к кото- рым подходит более одной стрелки, а также вход конечной вершины, даже если к ней подходит только одна стрелка, отме- чаем символами 1,2,..., s (рис. 6-9). В ГСА на рис. 6-9 s = 5. 2. Записываем оператор Yn, соответствующий на- чальной вершине ГСА. 3. Если вход вершины, следующей за начальной, отмечен символом / в п. 1, то после оператора Ун / ставим нижнюю стрелку | . В рассматриваемом при- мере этого нет. 4. Если за начальной вершиной ГСА следует опе- раторная вершина, в кото- рой записан оператор Yit то справа к Yn приписы- ваем Yt. Если же за на- чальной вершиной следует условная вершина, В кото- Рис. 6-9. ГСА с отметками для построения рой записано логическое равносильной ЛСА условие хт, то справа к Ун приписываем хт. Справа от хт ставим верхнюю стрелку, над которой записываем i, если вход вершины, следующей за рассматриваемой условной вершиной по выходу «О», отмечен меткой I. Если такой метки нет, то справа от хт ставим просто верхнюю стрелку. В на- шем примере имеем: УНХ11 • 1 Не просто симпатии автора данной книги, но и упомянутые соображе- ния привели к тому, что для описания алгоритмов работы дискретных уст- ройств в книге используется язык граф-схем алгоритмов. 2 Преобразованию операторных схем алгоритмов и синтезу автоматов ряд работ посвятили В. Барашенков и его коллеги, например [8, 38]. 125
5. Если в п. 4 рассматривалась операторная вершина и вход следующей за ней вершины отмечен в п. 1 символом р, то вслед за „ р Yt ставим нижнюю стрелку | , после которой записываем содержи- мое вершины, следующей за операторной вершиной с оператором Yt. Если в п. 4 рассматривалась условная вершина с логическим усло- вием хт, то после ее верхней стрелки записываем нижнюю стрелку р | , если вход вершины, следующей за этой условной вершиной по выходу «1», отмечен символом р. В противном случае нижняя стрелка не ставится. После этого справа к хт f приписываем со- держимое вершины, следующей за рассматриваемой условной вер- шиной по выходу «1». В нашем примере имеем: f /1- 6. Продолжаем аналогичным образом до тех пор, пока: а) после некоторого оператора Yt не окажется нижняя стрелка S 4- , где s — отметка конечной вершины. Тогда после Yt ставится тождественно ложное логическое условие ю с верхней стрелкой s: ... Yta f ; б) после некоторого оператора Yt не окажется нижняя стрелка ч 4- такая, что слева от нее на каком-либо месте в этой строчке уже ч ч была нижняя стрелка |. Тогда нижняя стрелка | после Yt уби- рается, а вместо нее ставится тождественно ложное логическое ч ч условие со с верхней стрелкой f (со f ); в) в этой строчке после некоторого логического условия хт со S своей верхней стрелкой (хт f ) не окажется нижняя стрелка |, где s—отметка конечной вершины. Тогда после ставится тождест- венно ложное логическое условие ю с верхней стрелкой s: f со | ; г) в этой строчке после некоторого логического условия хт со ч своей верхней стрелкой (хт f ) не окажется нижняя стрелка | (это означает, что в ГСА за условной вершиной, в которой записано это хт, по выходу «1» следует вершина, вход которой отмечен сим- ч волом д'), а слева от хт в этой строчке уже есть нижняя стрелка . ч Тогда нижняя стрелка 4 после хт f убирается, а вместо нее записы- вается тождественно ложное условие ю с верхней стрелкой : ч • *т I ю I • 126
В нашем примере написание первой строчки закончилось после 4 5 того, как вслед за х5 f оказалась нижняя стрелка |, где 5—отметка конечной вершины (см. условие 6в): 1 2 2 4 5 н-А f ¥1 | х3 f ^2Х4 f ^3*5 f | • 5 4 После записи <в с верхней стрелкой f вслед за хй f получим: 1 2 2 4 5 Ун*11 К1 х3 f 1 К3Х5 f CD t . (6-4) 7. Над первой слева верхней стрелкой без цифры в выражении (6-4) записываем число s + 1: 8. Начинаем новую строчку с нижней стрелки |, вслед за ко- торой записываем содержимое вершины, следующей по выходу «О» за условной вершиной с логическим условием (над стрелкой после х± мы записали s + 1 = 6): 6 4М • 9. Действуем далее так же, как при построении первой строчки, с той лишь разницей, что условия п. 6 проверяются по всем по- строенным ранее строчкам. В результате получим три строчки: 6 1 2 2 4 5 ЬМ у2М ЬМ , (6-5) 6 7 1 фх2ф К5соф, (6-6) 7 3 5 4 b 4 b® b (6-7) Первая, вторая и третья строчки обрываются после выполнения условий 6в, 66 и 6а соответственно. 10. После выполнения п. 9 оказалось, что больше нет ненад- писанных верхних стрелок. Находим такое г (1 г <4 s, гда s — число отметок на ГСА в п. 1), что в построенных строчках нет ниж- Г ней стрелки 4 . После этого строим новую строчку, начинающуюся Г со стрелки 4 , вслед за которой записано содержимое вершины, ко- торая отмечена символом г. В нашем примере г = 2: 2 3 4 1 4*4 4 f. (6-8) 11. Если возможно, действуем далее, как и выше. 12. Последняя строчка для любой граф-схемы состоит из ниж- S ней стрелки 4 , где s — отметка конечной вершины, и символа ко- нечного оператора. В нашем примере: 5 4 Ь- (6-9) 127
13. Строчки (6-5) — (6-9) записываем в одну строчку таким об- разом, что вначале стоит первая строчка (6-5), в конце — послед- няя (6-9), а остальные располагаются в произвольном порядке: 612 2 4567 173 YНХ1 f I Х3 t 2Х4 t YЗх6 t ® t I Х2 t ^5® t •J' 7 I Ye 5 2 3 4 1 5 I y4®t (6-10) Из самого способа построения ЛСА видно, что она равносильна ГСА на рис. 6-9. Нетрудно также показать, что число операторов и логических условий (без тождественно ложных) в построенной таким образом ЛСА совпадает соответственно с числом оператор- ных и условных^вершин в исходной граф-схеме. Алгоритм перехода от ЛСА к ГСА очевиден. Соответствующая ГСА имеет одну начальную и одну конечную вершины, число ее операторных вершин равно числу операторов в ЛСА, а число ус- ловных вершин — числу логических условий в ЛСА (без учета тождественно ложных). Выход начальной вершины ГСА соеди- няется дугой со входом вершины, соответствующей в ЛСА ближай- шему справа от Ун оператору или логическому условию. Аналогич- ным образом в граф-схеме проводятся дуги из операторных вершин. Единичный выход из условной вершины в ГСА, соответствующей в ЛСА логическому условию хт, соединяется со входом вершины, соответствующей ближайшему справа от хт оператору или логиче- скому условию. Если после логического условия хт в ЛСА стоит i верхняя стрелка f , то нулевой выход условной вершины, соот- ветствующей хт, соединяется со входом вершины, соответствующей оператору или логическому условию, перед которым стоит нижняя i стрелка | . Если после оператора Yt в ЛСА стоит тождественно лож- i ное логическое условие и с верхней стрелкой i (®f), то выход опе- раторной вершины, соответствующей Yt, соединяется со входом вершины, которая соответствует оператору или логическому уело- i вию, стоящему после нижней стрелки |. Точно так же, если после i логического условия хт с верхней стрелкой (xmt) стоит (of, то еди- ничный выход условной вершины, соответствующей хт, соеди- няется со входом вершины, которая соответствует оператору или i логическому условию, стоящему после нижней стрелки |. Если от ЛСА (6-10) перейти к ГСА, то получим граф-схему на рис. 6-9. 6-5. Формулы перехода Еще одним операторным представлением алгоритмов является система формул перехода. Тот факт, что, например, после оператора при равенстве единице соответствующих функций перехода 128
могут выполняться операторы У2, Y4 и Ye (см. рис. 6-4), можно записать следующим образом: где а13 = х3, а14 — х3х1 и а16 = xsx±, а все остальные функции перехода от оператора Ух равны нулю. В общем случае формула перехода из оператора У,- — это вы- ражение т-Н У(.-> V aitYt. (6-11) /=1 Здесь аи — функция перехода от оператора Y( к Yt (t = 1, . . ., Т + 1) — булева функция двоичных переменных х4, ... , xL; aitYt называется отмеченной бу- левой функцией. Она может прини- мать следующие значения: f Yt, если = “ [ 0, если al7 = 0. Над булевыми функциями, вхо- дящими в отмеченные функции, можно производить все преобразо- вания алгебры логики. В работе [34] определены правила, кото- рые совместно с полной системой аксиом алгебры логики образуют систему правил тождественного преобразования отмеченных функ- ций: 1. (aV₽)^ = a^V₽^- 2. арУ^ауГ/^афЛУтК/). 3. Если a == р (а эквивалентно Р), то аУ£ = рУ£. В этих выражениях а, р и у — булевы функции переменных х1г . . . , xL. Множество формул перехода для систему формул перехода. Для ГСА вид: Уо-> XiY iV xiY 4, Рис. 6-10. Пример ГСА всех i = 0, 1, . . . , Т образует на рис. 6-10 эта система имеет У1 -> XjY2 V Х1Х2Х3У 2 V XlX2X3Y3 V X!X2Y4, У 2 -> x2x3Y 2 V x2x3Y з V X2Y4, УзМХ3У2 V М-^зУз V Xi у 4, (6-12) У4->УК. 5 Заказ № 2010 129
Представление формулы перехода в виде Y^XtA^xfi, (6-13) где Xi £ {хх, xL], а А и В — подформулы перехода, не за- висящие от xt, носит название приведения (разложения) формулы перехода по переменной xz. Приведем, например, формулу перехода для оператора Y± из (6-12) по переменной хр. Y x\Y 2\j х\ (x2x?Y 2\] x^YsV x2Y4). (6-14) Если какие-то члены формулы перехода не зависят от хь то при приведении по хг необходимо предварительно умножить их на выражение (xz V Xi). Таким образом, любая формула перехода может быть разложена по любой входящей в нее переменной. На- пример, разложение формулы перехода для У! по переменной xs имеет вид: Y1 -> Xi (х2 V Х2) Y2 V Х1Х2Х3У2 V Х1Х2Х3Уз V Х1Х2У4 = = х2 [x\Y2\JX\Y\/х2 [x{Y2VХ1Х3У2VХ1Х3Уз)• (6-15) В выражении (6-13) можно продолжить разложение подформул А и В по другим переменным, но до тех пор пока во внутренних скобках не окажутся выражения вида (хрУт7хЛл). (6-16) где XPC{X1,. . , xL}, Ym, У„С{У1(. • •> Кг+,}. Полученная в результате формула перехода называется скобоч- ной формулой перехода, а система таких формул — системой ско- бочных формул перехода. Выражения вида (6-16) носят названия элементарных выражений. Приведем к скобочной форме систему (6-12): Уо-*Х1У1\/д^4’ У1 x,y2V К (х2 (х3У2\/хзУз) Vx2y4), У 2 М*зУ2 V *зУ з) V Х2У 4, Уз-4-%1 (х3У2\/*зУз) М X\Y 4, у4->ук. Приведем к скобочной форме также формулу перехода (6-15): Yx2(xiY2\J xxY x2[xiY2\l хх {xzY 2\j x2Y ). (6-18) Очевидно, что каждому выражению (6-16) соответствует подграф ГСА, изображенный на рис. 6-11. После приведения к скобочной форме переход от системы формул перехода к ГСА не представляет затруднений и сводится к построению цепочек условных вершин в соответствии с последовательностью разложения формулы пере- хода. На рис. 6-12 изображен подграф ГСА, соответствующий ско- 130
бочным формулам перехода из (6-17) для операторов и Yz. Оче- видно, что для одинаковых подформул строится один подграф ГСА (в выражениях (6-17) они одинаково подчеркнуты). Если же при построении подграфа ГСА для Yr и У2 вместо ско- бочной формулы перехода для Yt из (6-17) взять выражение (6-18), получим подграф на рис. 6-13, в котором на две ус- ловные вершины больше. Ясно, что число условных вершин в ГСА зависит от порядка разложения фор- мул перехода. Кроме того, сложность ГСА опреде- Рис. 6-12. Подграф ГСА для Yt и У2, построенный по выраже- ниям (6-17) Рис. 6-11. Подграф ГСА, соответству- ющий выражению (6-16) ляется тем, как часто в пределах системы формул перехода будут встречаться одинаковые подформулы, заключенные в круглые скобки, т. е. задачу «удачного» приведения надо решать для системы формул перехода. Минимизация условных вершин в граф-схемах будет подробно рассмотрена в седьмой главе. 5* 131
MCA, соответствующая ГСА иа рис. 6-10 У1 Уз У3 У* Ук Го Х1 1 Ут __*1 _ Х1 х2 х3 Х1 х2 х3 Xj х2 y2 X 1 • К» 1 ц 1 W 1 х2 х3 Уз Х1 х3 Х1 х3 Xi У< 1 6-6. Матричные схемы алгоритмов Пусть ГСА Г имеет начальную вершину (Уо), конечную (Ук) и Т операторных верщин с записанными в них различными опера- торами Ylt . . . , YT. Матричная схема алгоритма (MCA) М, со- ответствующая ГСА Г, есть квадратная матрица, строки которой отмечены символами Yo, Yъ . . . , YT, а столбцы — символами У1; У2, . . . , YT, YK. В этой матрице на пересечении строки У; и столбца Yj стоит фун- кция перехода а17 из опе- ратора Yt к оператору Yj. MCA для ГСА на рис. 6-10 приведена в табл. 6-1. Для простоты функции перехода, тождественно равные нулю, в матрицу не заносятся. Переход от ГСА к MCA очевиден: по ГСА необхо- димо найти все функции перехода и занести их в со- ответствующие клетки мат- рицы. Переход от MCA к ГСА состоит в последо- вательном получении си- стемы формул перехода, системы скобочных фор- мул перехода и после этого — ГСА1. Как и для граф-схем, можно определить значение MCA и системы формул перехода на произвольной последовательности наборов значений переменных х1( . . ., хд. ГЛАВА СЕДЬМАЯ______________________________________ ПРЕОБРАЗОВАНИЕ ОПЕРАТОРНЫХ СХЕМ АЛГОРИТМОВ 7-1. Минимизация условных вершин в граф-схеме алгоритма В работе [15] отмечалось, что предложенная Ю. И. Яновым [47] полная система тождественных преобразований логических схем алгоритмов (ЛСА) 1 Язык операторных схем параллельных алгоритмов с памятью (язык ОСПАП) для описания поведения дискретных устройств предложен М. Гав- риловым и его сотрудниками [9, 10]. 132
«дает возможность получить ЛСА с минимальным числом логических уело вий, однако этого можно достигнуть лишь путем полного перебора всех воз- можных ЛСА, равносильных заданной, так как отсутствует алгоритм по- следовательного применения преобразований для получения минимальной ЛСА». В данном параграфе описывается предложенный автором в работе [5] алгоритм минимизации числа логических условий с той лишь разницей, что изложение ведется применительно к граф-схемам, но все сказанное ниже может быть однозначно использовано и для логических схем алгоритмов. Постановка задачи в общем сводится к следующему. Пусть задана ГСА Г (Уо, Ук, У, Р), где Уо — начальная вершина, Ук — конечная вершина, У={У1............ У J-}—мно- жество операторных вершин, все разные, так что вершина отождествлена с записанным в ней оператором, Р = = {Р1> • > Pr]—множество условных вершин, в которых записаны логические условия X = {хх, . . . , xi}. Требуется среди множества граф-схем, равносильных Г (Уо, Ук, У, Р), найти граф-схему с мини- мальным числом условных вершин. Покажем, что задачу ми- нимизации ГСА Г (Уо, Ук, У, Р) можно разделить на не- I— сколько независимых подзадач путем разбиения ТСА на под- графы Г1......Гн такие, что если для каждого подграфа найти равносильный ему Г^!п (h = 1, . . . , Н) с минималь- ным числом условных вершин, то граф Гт|п, полученный по- сле объединения этих подгра- фов, будет иметь минимальное число условных вершин. Разбиение ГСА Г(У0, Ук, У, Р) осуществим следующим образом. В множестве { Уо, Уь У г] выбирается любой оператор, торы, в которые есть пути вида Рис. 7-1. ГСА Г до разбиения например Уо, после чего ищутся опера- YtPti1 Ре^‘ Pt^ys< (7-1) проходящие только через условные вершины; здесь [р/л, , PlM] С Р— множество условных вершин, лежащих па пути из У/ в ys; е/т £ {0,1} — символ, приписанный выходу условной вершины р1т, через который прохо- дит рассматриваемый путь. Для ГСА Г на рис. 7-1 это Уг, У3, У-. Этому соответствуют стрелки из оператора Уо в эти операторы на рис. 7-2, а. Далее для каждого оператора из { У1э Уз, У6} находим исходящие операторы, из которых есть пути вида (7-1) в эти операторы. Исходящие операторы располагаем слева под Уо. За- тем для всех стоящих слева операторов ищутся входящие — операторы, в ко- торые есть пути вида (7-1) и т. д., до тех пор пока не окажется, что множества слева (А1) и справа (В1) больше не растут. 133
Далее выбирается новая вершина Ym £ А1 и строятся аналогичным образом А2 и В2. Алгоритм состоит из И шагов (И sg Т + 1> где Т — число операторных вершин. На ft-м шаге (й = 2, . . . , И) выбирается опорная h—1 вершина Y? ф. U А1, строятся Ah, Bh и т. д., до тех пор, пока спустя Н ша- гов не окажется, что нельзя найти в качестве опорной вершину, не вошедшую в уже построенные множества А1, . . . , Аи. В результате получаем разбиение граф-схемы Г на подграфы Г1...... Fw, где подграф Г/! (Ah, Bh, Ph) определяется множествами Ah, Bh, Ph и со- ответствующими дугами между вершинами, вошедшими в эти множества. Из самого способа разбиения Г следует: Рис. 7-2. Подграфы и их условное изображение: Г1 (а), Г2 (б), Г3 (в) 1) для любых двух подграфов Г‘ и Р Al(~)7U = 0, В‘Г)В?'= 0> Р‘Г\Р‘ = 0; 2) разбиение единственно, независимо от выбора на каждом шаге опор- ных вершин для подграфов. Из единственности разбиения и условия Pl(^pi = 0 непосредственно вытекает следующее утверждение: пусть R — число условных вершин в Г, н a Rh — число условных вершин в ГЛ (й = 1, . . . , Д). Тогда R = V Rh. h=l После этого нетрудно доказать, что если Г разбивается на подграфы Г1, . . . , Г1’ и в каждом ГЛ (й = 1, . . . , И) число условных вершин мини- мально fumin')’ то число условных вершин в Г также будет минимально и и равно 2 Ять- h=\ Условное изображение процесса разбиения ГСА Г и получающиеся при этом подграфы приведены на рис. 7-2, а—в. В этих подграфах Г1: А1 = {Уо, У2, У4), В1 = {У1( У3, У6), Р1 = {Р1, Рз, р4}; Га:Аа=[У1, Y3, Y,}. В*={У2, У4, Ye}, Рг = {р2, Р6, р„); Г3:А3={У5), В3={УК}, Р3=0. 134
Номера условных вершин в ГСА Г и в подграфах проставлены рядом с вершинами Интересно заметить, что А2 (~| В2= {У6} 0, что допустимо (А‘ПВ‘ может быть не п^сто, обязательно A‘QA! = 0 и ВгГ|В/= 0). В работе [30] подробно изложены разработанные Ротом (J Roth) алго- ритмы минимизации переключательных схем, использующие геометрическое представление булевой функции, которая является отображением декартова произведения Z” в пространство Z2 7п 7 Л2 Л2’ гдег2={0, 1}, Z" = Z2 X Z2 X . X Z2, f~ '(1) — прообраз единицы; п раз f~1 (0) — прообраз нуля. Элементы f~~l (1) называются 0-кубами или вершинами Два 0-куба об- разуют 1-куб, если они отличаются значениями только одного компонента (координаты) 0-кубы в этом случае называются гранями 1-куба Например, 0-кубы ООП и 0111 образуют 1-куб 0x11, где второй компонент носит название свободного, а остальные — связанных Два 1-куба образуют 2-куб, если у иих свободным является один и тот же компонент, и эти 1-кубы отличаются значениями только одного связанного компонента Так, 1-кубы 0x11 и 0x10 образуют 2-куб 0х1х Индуктивно можно ввести понятие r-куба (г^п) Булевой функции, аналитическое представление которой имеет вид f = Х^ХзХ/ XiX^XiX/XiXgXt соответствует множество кубов (кубическое покрытие) К(Л = 0 х 0 х 10x0 х 1 1 0 По аналогии с геометрическим представлением булевых функций введем т + 1 геометрическое представление формул перехода Пусть Y f->- V a.ftYt — i=i формула перехода Функцию перехода a;t (хх, , хп) от Yf к Yf (t = = 1, . , Т + 1) представим в виде кубического покрытия, причем каж- дому из кубов, входящих в покрытие, припишем оператор У/, n-мерный куб вместе с приписанным оператором назовем отмеченным кубом Если Df — множество отмеченных кубов, порождаемых функцией ац, то формуле пе- Т + 1 Т | 1 рехода Yf—>- V aftYt соответствует множество кубов D (Yf)- U D/, кото- <=1 /-=1 рое назовем покрытием формулы перехода Например, для формулы перехода из оператора У2 на рис 7 3 Yi-^(x1xi\/ хгх^з) У4 V (xix2xR'/XiX2x3) Y ,\/xxx2Y ъ\/х^м^У покрытие D (У2) будет иметь вид 0 1 X Y, 1 0 0 Yt 0 0 1 У6 D (У2) = 0 0 0 У. 1 1 X Ye 1 0 1 (7-2) 135
Будем такое покрытие изображать следующим образом: D (У2) = 0 1x4 10 0 4 0 0 1 5 0 0 0 5 11x6 1 0 1' 7 Рис. 7-3. Подграф с^тремя исходящими вершинами Таблица X -операции Над парой отмеченных кубов с Yt — (at, . . . , at, . . . , ап) Y[ и с Ym = = (£>, b;, , bn) Ym, принадлежащих покрытию формулы перехода г-н Таблица 7-1 Г> - ,Y, Ч'Г' <Г'' Y-<i !Г‘........ введем X-операцию, в результате которой получается новый куб срУ9==сгУ/Х cs Ym (Yg i {YB, Ух..... Уг+1}, если I * m). Операция производится раздельно над ло- гическими (cr X cs) и операторными (У/ X X Ym) частями отмеченных кубов. Так как операция cr X cs производится над п-коор- динатными кубами, определим операцию координатного произведения с помощью табл. 7-1: ср = (а1; .... ait .... а„) X X(ij, &„), ср = («1(0! X bi), .... tn {at X bt), . . . , m(an X bn)), если у встречается точно в одной координате; rnfaxb,) есть /п(0) = 0, /п(1) = 1, m (х) = ш (у) — х; в противном случае (т. с. если у не встречается пи в одной ко- ординате или встречается в двух и более координатах). Геометрически операция <f X с? представляет собой наибольший куб ср, который имеет противоположные грани в кубах <f и cs, но такой, что сам ср не покрывается в отдельности ни одним из исходных кубов. Последнее 136
как раз и отличает х-операцию от введенной Ротом (30] операции ^-произ- ведения: а) (1 хх) X (0 1 1) = (х 1 1), 1 > результат одинаковый, (1 х х) (0 1 1) = (х 1 1) J б) (0 х х) X (хх 1) = С, (0 х х) 4: (х х 1) — (0 х 1) результат разный. Операция X над операторными частями зависит от результата операции над логическими частями. Пусть (Y X cs — ср 0 и кубы с' и с5 имели в i-коордииате противоположное значение (а< == е<, bt = е;, е, £ (0, 1J). Тогда оператору Yq, отмечающему куб ср, ставится в соответствие формула перехода Yq^Y^YnV (7-3) где х! =х;, х?=х(. Сокращенно формулу перехода (7-3) будем записывать так: Yq^xiYlY,n. (7-4) В этой записи вслед за х(- следует оператор, к которому в формуле (7-3) происходит переход из Y с, по х, = 1, а после него — оператор, к которому происходит переход по х, = 0. Очевидно, что в выражении (7-4) предпола- гается а, = ei = 1, bt — ei = 0. Если at = = 0, bt = e> = 1, то опера- торы Yt и Y„, необходимо поменять местами: Yq = = XiYmYi. Если Y[ = Ym, то из (7-3) получим: Таким образом, 0 , если сг х с5 = 0 ; rry, V rsy =) cPY<v если X , где ср = 1 л "г :'-~cr X cs, a Yq определяется выражением (7-3). Следует заметить, что формуле перехода (7-3) или ее сокращенной записи .(7-4), которой мы бу- дем пользоваться в дальнейшем, соответствует под- Рис. 7-4. Подграф для формулы перехода rQ->x'iyzVx/(r,„ граф ГСА, приведенный на рис. 7-4. Условимся вновь вводимый оператор Yq называть производным оператором и изображать на ГСА кружком в отличие от исходных (первичных) операторов Уо, Yv ... , Ут+Г Введенную х-операцию над парой отмеченных кубов tfE/ и cYYm назовем склеиванием н будем говорить, что эти кубы склеиваются по переменной xi, если они имеют противоположные значения (0 и 1) в (-координате. Определи»! также операцию полного склеивания как операцию над двумя одинаково отмеченными кубами, у которых все координаты, кроме одной, по которой производится склеивание, совпадают. Пример полного склеи- вания: 1x0x1 ¥о X 8 1 х 1 х 1 У? 1 х х х 1 Yg 137
Однако 1 х 0 х 1 Ya X s 1 X 1 1 X У8 1 х х 1 1 Ya не есть полное склеивание, так как участвующие в операции кубы отличаются более чем одной координатой. Опять-таки 1 х 0 х 1 Ya 1x1x1 У8 1 х х х 1 У10 ’ У10 — х3У8У8 не будет полным склеиванием, так как кубы-операнды отмечены разными операторами, хотя и отличаются одной координатой. Два отмеченных куба <fY[ = (ai....... а„)У/ и YYm = (blt . . . , b„)Ym назовем противоположными гранями отмеченного куба cpYq, если cf и cs есть противоположные грани ср (все их координаты, кроме одной, на- пример г, совпадают, а в г-координате <f и cs принимают противоположное значение), a Yq = х;У/Ут, если а; = 1, bi — 0 и Y„ = Х(УтУ;, если = О, bi= 1. Определим отношение покрытия для пары одинаково отмеченных кубов <fYm и cpYm. Будем говорить, что <fYm покрывает cpYm, или cpYm покры- вается кубом cfYm (cpYm<^ (fYm), если cf покрывает ср (ср CZ if) [30], т. е. ср является гранью cf. Очевидно, что отношение покрытия рефлексивно, транзитивно и антисимметрично. Изложим теперь алгоритм получения некоторого множества равносиль- ных подграфов ГСА, из которых в дальнейшем решением задачи покрытия определенного вида найдется подграф ГСА с минимальным числом условных вершин. Заранее оговоримся, что будем работать в классе граф-схем, у ко- торых в одном пути вида (7-1) не встретятся условные вершины с одинако- выми логическими условиями. Причина введения такого ограничения оче- видна, поскольку каждому пути вида (7-1) ставится в соответствии некоторый отмеченный куб, у которого одна координата соответствует одному логиче- скому условию. , Пусть в результате разбиения ГСА имеем подграф Г, содержащий т исходящих операторных вершин Ух, . . . , Ут, число логических условий в подграфе равно п. Очевидно, что для каждого исходящего оператора У/ можно, как и выше, построить соответствующее ему отмеченное покрытие D' (j = 1, . . . , т). Для подграфа Г (рис. 7-3) с тремя исходящими опера- торными вершинами имеем три покрытия: 1 0 0 4 0 1 х 4 1 0 0 4 1 1 0 4 1 0 0 4 1 1 1 5 0 0 1 5 0 0 1 5, 1 1 0 5 D1 = ООО 5, £>2 = ООО 5 £>3 = 0x0 6 0 1 X 6 1 1 X 6 1 0 1 7 1 1 1 7 1 0 1 7 0 х 1 8 1 0 1 7 В пределах каждого покрытия выполним всевозможные операции пол- ного склеивания и поглощения. Операция поглощения заключается в удале- 138
нии всех кубов, которые покрываются другими кубами. В нашем примере получим: 1 X 0 4 0 1 X 4 1 0 0 4 0 0 X 5 1 0 0 4 1 1 X 5 0 1 X 6, Г)2— и0 — 0 0 X 5, D3 — 0 х 0 6 . (7^5) 1 X 1 7 1 1 X 6 1 0 1 7 1 0 1 7 0 х 1 8 Нижний индекс нуль у Dj. означает, что D{. — исходное покрытие (/ = = 1, . . . , т). Операторы, отмечающие кубы в покрытиях D^, назовем пер- вичными. Множество первичных операторов в D[. обозначим через G'Q. В рас- сматриваемом примере Gl0 = Gq = |У4, У5, Уе, У7), Gq = {У4, У5, Уе, У7, ^8}- Go=-GoUG02UGg= |У4, У5, У6, У7, У8}. Алгоритм получения равносильных подграфов ГСА состоит из Н шагов (Н п, где п — число логических условий в подграфе). На первом шаге к каждой паре кубов (crYcsY) из Df0 применим X-операцию. В результате получим множества кубов D{(j= 1, . . . , т)1 : 1 х 0 20 х 0 0 10 0 х х 16 х 0 0 11 х 1 0 И X 1 X 17 1 0 х 12 1 X X 12 х 0 0 10 х 1 0 21 о' = Ь? = 1 0 х х 13 1 1 х 0 18 1 1 х 1 22 х 0 1 14 ’ 1 0 х 12 X 1 1 23 х 1 1 15 х 0 1 14 0 х х 24 1 X 1 19 х 0 1 25 Производные операторы (Y = x.Y^Y^j записываем в отдельную таблицу (табл. 7-2), в первом столбце которой помещаем индекс qlt во вто- ром — переменную xi, по которой произошло склеивание, в третьем и чет- вертом — индексы операторов 10 и т0 соответственно: <7i I М Uo I «о В каждом кубе из Dj подчеркнем ту координату, по которой произошло склеивание при получении этого куба. Например, ., 1 х 0 У4 А 1 х 1 У7 . 1 х х Y12 ’ У12 — х3У7У4, или, что то же самое, 1 х х| 12; 12 | ха | 7 | 4. 1 В примере нумерация производных операторов (ие совпадающих с пер- вичными) начата с 10. 139
10 *1 4 5 и xt 4 6 12 х3 7 4 13 х2 6 5 14 Х1 7 5 15 Х1 7 6 Функция /i 16 х2 4 5 17 Х1 6 4 18 Хо 6 4 19 Х2 6 7 20 %2 5 4 Таблица 7-2 21 Х1 5 6 22 х2 5 7 23 Х1 5 8 24 8 6 25 Х1 7 8 К множеству D{ добавляем кубы EJ0 CZ Dq, имеющие ранг не ниже еди- ницы. В рассматриваемом примере: 1 х 0 0 0 х 4 5 Е2- с0 — 0 1 х 0 0 х 4 5 1 0 1 X X 0 5. б’ /71 _ £0 - 0 1 х б’ 1 1 X 6 0 X 1 8 1 X 7 Образуем множества D[ = d{ и Е& 1 X 0 20 г 0 0 10 0 х х 16 X 0 0 11 х 1 0 11 X 1 X 17 1 0 X 12 X X 12 х 0 0 10 X 1 0 21 ] X X 13 1 х 0 18 1 X 1 22 х 0 1 14 1 0 х 12 X 1 1 23 ’ D| = X 1 1 > 15 D2^ х 0 1 14’ 0 X X 24 х 0 4 1 X 1 19 X 0 1 25 0 0 х 5 0 1 х 4 7 1 X 5 1 X 6 0 0 х 5 0 X 0 6 X 1 7 1 1 X 6 0 X 1 8 . Табл. 7-2 задает некоторую функцию flt определенную в множестве троек (Ос, У,, Ym) и принимающую значение в множестве производных one- т раторов Gj = U G{, где операторы из G{ отмечают кубы в £>{(х;£А; /=1 Yt , Yт £G0J. Каждому элементу Y^G^ соответствует подграф ГСА, ана- логичный рис. 7-4 и содержащий одну условную вершину. Если Р'о и G\ — множества операторов, отмечающих кубы в покрытиях m и G\ соответственно, то g{ — G{ U Р'о, Gl = U G{. /=1 Замечание. На последующих h шагах (й =2.................Н) первым действием на каждом шаге будет операция D/t l х При этом запретим выполнение этой операции над такими парами кубов сгУ/л_[, csYm^^ из д/_1, у которых в одном из них i-я координата равна подчеркнутому х (х), а в другом оиа равна 0 или 1 (связана). Например, иа втором шаге не будет выполняться X-операция над парой кубов 11х | 6 и Охх | 16. Очевидно, что 140
после такого замечания мы будем работать в классе граф-схем, у которых в одном и том же пути между двумя операторными вершинами не могут встре- титься две или более условные вершины - ------------ - виями, что было уже оговорено выше. Таким образом, на 2-м.......Н-ы ша- гах операция ср = (ах, . . . , ап) X X (Ь1У . . . , Ьп) определяется с помощью табл. 7-3 следующим образом: сР^ (т (а, х . , m (ai х bi),..., m(anxbn))y если у встречается точно в одной координате и ни одна координата не равна 0; m (at- X bi) есть m(0) = 0, m(l) = l, m(x) = xy m(y) = —tn (x) — x; 0 в противном случае. Выполнив на втором шаге опера- цию D{ X D{, получим Ь!2 — D{ X D{, — (Е j— множество кубов из D\ ранга не ниже 2), G^=G^ljP{ и таблицу функции /2 (табл. 7-4), за- данную в множестве троек (х[у Y[ , и принимающую значение в множестве д2 = U G'2. Проделав в D'2 все- с одинаковыми логическими усло- Таблица 7-3 Таблица X-операции на втором и последующих шагах в возможные поглощения, X X 0 26,32 X 0 X 27,30 X 1 X 28,31 »2 = X X X 29 X X 1 33,34 0 X X 13 1 X X 12 26 х2 11 10 27 х3 14 10 28 Хз 15 11 29 Х1 12 13 30 Х1 12 5 31 Х1 12 6 32 Х1 4 13 33 Х1 7 13 34 х2 15 14 рассматриваемом примере получим1: Г)2— и2 — <1 х х 0 X х 1 х 0 х 1 X X 0 х х X 1 X ’ункцн 35,37 36,38 27,30 1 X X х х 0 41,46 42,43 44,45 47,50. 48,49 24 Таблица 7-4 X X X 0 0 х 1 X х 1 X X 39,40 ; 16 17 “Л п3 — и2 ~ 35 Х1 18 16 43 Х2 21 11 36 Х1 19 16 44 х3 25 11 37 х2 17 10 45 Х1 12 24 38 х2 17 14 46 х2 5 12 39 х3 19 18 47 Хз 23 21 40 Х2 6 12 48 Х1 22 8 41 х3 22 20 49 Х2 23 25 42 Х1 20 6 50 Х1 5 24 1 В множестве кубы csYm и crFz при cr = cs записываются в виде cr\tnr, lr. 141
Продолжая аналогичным образом, иа Л-м шаге (h = 1, . . . , Н; Н п) получим D!h, G^ и таблицу функций заданную в множестве троек (х;, т Y^^, Ymh_^ и принимающую значение в множестве Gh = U G^. Очевидно, что спустя И шагов (Н п) Dи будет содержать только от- меченные n-кубы (хх . . . х). Ясно, что алгоритм содержит не более п шагов. Продолжая пример, на третьем (последнем) шаге, получим: £>з = |х х х| 29, 51. 52, 53, 54, 55, 56, 57, 58; £>| = |х х х| 59 , 60 , 61, 62 , 63 , 64 . 65 , 66; = | х х х | 67, 68, 69, 70, 71, 72, 73, 74, 75, 76. На последнем Н-м шаге имеем покрытия (j = 1, . . . , т), кубы ко- т торых отмечены операторами из множеств G'H. Пусть GH = U G!H, где G1^ — подмножество GH, соответствующее исходящему оператору Y . В примере — {^29’ ^51’ ^52’ ' • • ’ ’ = {^59" Г60> • • • > ^бб} ’ GH = (^67 > ^68......^76) ‘ Пусть G'H = . . . , Yiff, . . . , . Поскольку в D'H входят только кубы размерности п (хх . . . х), очевидно, что из Y j в операторы мно- жества G!H ведет путь, содержащий пустое множество условных вершин, т. е. имеет место совпадение Y с каждым из операторов, входящих в G!H. Представляя оператор Yy в виде тн (функция /?/;), получим подРраф на рис. 7-5. Раскрывая YmH_1 и т. д. с помощью функций fH_v ffi-V ’ fi’ СПУСТЯ не более И шагов придем к первичным операто- рам из множества Go. В результате получим один из вариантов реализации части подграфа, определяемой покрытием D!. Так как G!H содержит R. эле- ментов, проделав подобную процедуру R. раз для каждого Y^, . . . , Y1^1, можно построить Rj равносильных подграфов для покрытия Dj. Например, начав с У53 (из табл. 7-5), придем к подграфу, изображенному на рис. 7-6. Так как в Gxf{ девять производных операторов, возможны девять вариантов реализации Yt. Аналогичным образом Y2 и Ys могут быть реализованы во- семью и десятью способами, соответственно. Все варианты сведены в табл. 7-6, каждый столбец которой получен последовательным раскрытием операторов с помощью функций /3, f2 и fi- В табл. 7-6 в вариантах для Y, производные операторы заключаются в скобки, если они встречаются хотя бы в одном варианте для Yf Yj. Первичные операторы в таблицу вариан- тов не включаются. Очевидно, выбрав по одному варианту для каждого из У1( Y2, Y3, получим подграф ГСА, равносильный подграфу Г на рис. 7-3, в котором будет столько условных вершин, сколько производных операторов (без повторения одинаковых) содержится в выбранных вариантах. Напри- 142
Таблица 7-5 51 х3 33 26 52 хз 34 26 53 х3 33 32 54 34 32 55 Х2 28 27 56 хг 28 30 57 хг 31 27 58 х2 31 30 59 36 35 Функция /з 60 х3 36 37 61 х3 38 35 62 х3 38 37 63 17 27 64 х2 17 30 65 Х1 39 16 66 Х1 40 16 67 х1 41 24 68 Х1 46 24 69 х3 48 42 70 х3 48 43 71 хз 49 42 72 хз 49 43 73 х2 47 44 74 х2 47 45 75 х2 50 44 76 х2 50 45 12 мер, выбрав варианты b-, Ь17 и Ь1е, получим ГСА с В случае т исходящих операторов Ух, . в таблице вариантов имеется Rj (j = 1 задача нахождения подграфа с минимальным числом ус- ловных вершин сводится к выбору из этой таблицы таких • вариантов (по одному для каждого У,), чтобы суммарное число производных операторов в выбранных вариантах (без повторений) было минимальным. Назовем эту задачу задачей определения минимального покрытия таблицы вариантов. Ясно также, что число всевозможных раз- личных подграфов, которое можно построить по такой таблице, равно Rt . . . Rm; в примере из табл. 7-6 это число равно 9-8-10 = 720. Выбор минимального покрытия таблицы вариантов можно было бы решать модификацией метода Петрика (Petrick) лицы условными вершинами. Ym, для каждого из которых . , т) вариантов реализации, Рис. 7-5. Иллю- страция совпа- дения операто- ров Yf и У'н нахождения минимального покрытия таб- Квайна при минимизации булевых функций [12J. Пусть в таблице вариантов для каждого Yj (j = 1, . . . , т.) имеются варианты Ь1г . . . , Ь.^ , . . . , Ьщ,- Каждый вариант bjr можно представить как конъюнкцию Rjr символов производных операторов, входящих в этот ва- риант. Например, варианту 6-> из табл. 7-6 соответствует конъюнкция 54- 34• 32• 15-14• 13. Совокупность вариантов для оператора Y; можно вы- разить как у /С/r, тогда совокупность всех вариантов для Ylt . . . , Ym бу- дет т / #/ \ A V Kir Н \г=1 / Раскрывая в последнем выражении скобки и производя всевозможные операции вида АА = А, получим дизъюнкцию из Rx . . . R,n конъюнкций, где Rj (j = 1.....т) — число вариантов реализации Yj. Выбирая из этого выражения конъюнкцию с минимальным числом сомножителей, получим минимальное покрытие таблицы вариантов и, следовательно, минимальный подграф ГСА. Трудность такого решения этой задачи, в том числе на быстро- действующих ЦВМ, состоит в том, что с ростом числа исходящих операторов и числа вариантов внутри операторов число полученных конъюнкций растет очень быстро. Так, при т = 10 и Rj = 10 для всех j = 1, . . . , т число этих конъюнкций равно 1010. Покажем, как можно существенно сжать таблицу вариантов без потери минимального покрытия. На множестве вариантов для каждого Г/ (/ = 143
о G Таблица вариантов реализации D1, S •£5 CD 0 10 4* о? Ь- Ю TF СЧ «сГ lo о •*? ю 4 г- т сч сч rF ь- ю сО — счЧ^ ь- <- СЧ сч -^сч •£5 со г- 'tf со со -- Ь- 'ф -ф сч сч сч СЧ © СО СО LO — b- СЧ СЧ СЧ —< — © СЧ со ю О b- ’«F *F СЧ СЧ СЧ О 00 СО сч _" Ь- rf сч СЧ -о © со СЧ СЧ о CD ЧТ* TF сч сч 00 CD ’F СЧ CD rF СЧ _ Г- — М4 сч о CD xF СЧ СЧ СЧ CD О CD СЧ* CD ‘ _ © СО © 00 о СО — — 64 17 130) (12) СО г- CD — 62 38 37 17 (14) (Ю) —' ОО ЬО Ь- трос CD CD СО СО — _ — — -с О CD t"- CD CD b- o' CD CO CO — — — А © CD tD CD CD 00 1Л CO CO —< — —* -if 00 ~ S'cT' lO CO CO 57 31 (27) 12 ;i4) ;1O) Л <D =oS\n IQ 04 CQ^ tF xF 04 lO lO co co — 55 2 CO CO 04 CO lo co co — а5 СЧ tF cd lO LQ CO 04 — •с* — co co co l_Q CO 04 — —. _ •о © cTco сч = 1, . . . , т) введем отношение по- крытия между вариантами. Будем говорить, что bs покрывает bt (bs, bt — варианты нз массива У;), если независимо от выбора вариантов во всех остальных массивах Yv. . . , Y]-i > Yj+1’ • • • - Y,n вариант bs добавляет всегда не больше произ- водных операторов в любое, в том числе минимальное, покрытие всей таблицы, чем вариант bt (обозначение bs cr bt). Ясно, что если bs bt, то вариант Ь/ может быть удален из таблицы вариантов без потери мини- мального покрытия. Рис. 7-6. Один из вариантов ре- ализации подграфа с исходя- щим оператором У± Нетрудно показать, что b^^bf, если выполняются два условия: 1) Ls -с Lt, 2) (Lz-Li)-P(B/\Bs)Ss0,i где Ls и Lf — длины вариантов bs и bt (число производных операторов в этих вариантах), В; и Bs — мно- жества операторов, заключенных в скобки в вариантах bt и bs со- ответственно, В( \ Bs — разность множеств Bt и Bs, Р (Bs \ Bs) — число элементов в множестве B;\BS. Действительно, пусть в осталь- ных массивах F,,... , У)—!, Уj+i. Ym каким-то образом уже выбраны варианты bit .... 6/-i, 6/+i, . . . ,bm будущего минимального покрытия и пусть В — множество производных 1 Строго говоря, первое усло- вие вытекает из второго, поэтому достаточно лишь выполнения усло- вия 2. 144
операторов в этих вариантах. Остается выбрать для этого покрытия вариант из массива У/. Если Bf С В, то имеет место наиболее благоприятный для случай, когда bt добавляет в выбранное покрытие не больше производных операторов, чем в любое другое покрытие (число добавляемых операторов равно Lt—Р (Bt)). В этом случае (Lt—Ls) — Р (Bt\ В,,) есть наименьшая разность между числами производных операторов, добавляемых вариантами bt и bs в любое покрытие таблицы вариантов, если варианты для остальных массивов уже выбраны. Если эта разность не отрицательна, то очевидно, что bs всегда не хуже bt (bs sg bt) и вариант bt может быть удален из таблицы вариантов без потери в дальнейшем минимального покрытия. Очевидно, что отношение bs bf есть отношение частичного порядка. Будем также говорить, что bs и bf несравнимы, если bs bt и bt bs, и эквивалентны, если bs сс Ь( и b( bs. Рис. 7-7. Минимальный подграф, равносильный подграфу на рис. 7-3 Сравним для примера несколько вариантов из табл. 7-6. а. Ь2 и &3 : L2 = 6, L3 = 7, L2 < L3; (L8—Z,2) — P (B8\B2) = (7 — 6) — P (114, 11, 10}\{ll, 10})=l-l=0; l>2 sSJ &3 . 6. b2 и & §: L2 ~ - 6, Eg — 6, Ln — L,,'. (L8 — L2) — P (B8\B2) = (6 — 6) — P ({27, 14, 10}\{ll, 10}) = 0-2 = -2; bs bg. Проверим обратное: (Ls—L8) — P (B2\B8) = (6 — 6) — P ({11, 10}\{27, 14, 10}) = 0—1=—1; &8 b2. Варианты b2 и bs несравнимы. в. b4 и bg: Lt-- 4, Lg 4, L4 Z.8j (Ee — L4) — P (B9\B4) = (4 — 4) — P ((30, 12}\0) = O-2= -2; Ь ^Ьд. 4 Проверим обратное: (L4 - Ls) - P (B4\B9) = (4 - 4) - P (0\(3O, 12}) = 0 - 0 = 0; bs^b4. г. Сравнение b21 и Ь2в показывает, что b21 b.2S и b2s b2l, т. e. они эквивалентны. '' Алгоритм сжатия таблицы вариантов очевиден. Сравнивая варианты в пределах каждого массива Yj (j = 1, . . . , т), оставляем только те вари- 145
анты, которые не оказались хуже других. Если какая-либо пара вариантов из оставшихся эквивалентна, то достаточно оставить в таблице любой из них. Таким образом, в каждом массиве Yj (j = 1, . . . , т) после сжатия будут только несравнимые варианты. Сжатие табл. 7-6 приводит к табл. 7-7, у ко- торой Tj и Y3 содержат по одному варианту, а У2 — два варианта &14 и Ь1Ъ. Однако, если в табл. 7-6 в Ьи операторы 27, 14 и 10 были заключены в скобки, то в табл. 7-7 они без скобок, так как их нет в вариантах для и Y3. В ре- зультате сравнения &14 и &Х5 в табл. 7-7 оказывается, что 615 614 и мы при- ходим к табл. 7-8, где содержится всего один вариант подграфа ГСА, в ко- тором будет минимальное число условных вершин. Соответствующий подграф с 9 условными вершинами приведен на Таблица 7-7 Результаты первого сжатия таблицы вариантов рис. 7-7. У, Y3 bl Ь(1 Ьг> bis 29 (12) 13 63 64 17 17 27 30 14 (12) 10 68 46 24 (12) Таблица 7-8 Минимальное покрытие таблицы вариантов Л Y> У; bt bIS 29 (12) 13 64 17 30 (12) 68 46 24 (12) Таким образом, процедуру сжатия нужно проводить несколько раз. Если после окончательного сжатия в одном нли нескольких из У/ (j ~ = 1, .... т) остается более одного варианта, то можно применить описан- ную выше модификацию метода Петрика или любой другой метод решения задачи покрытия таблицы Квайна, поскольку размерность задачи после сжа- тия существенно сокращается. В случае неполностью определенной ГСА введем понятие неполностью определенного отмеченного покрытия, в которое включим кубы вида c?Z, где Z — символ неполной определенности, ас’ — соответствующий куб, на котором это покрытие не определено. Алгоритм получения равносильных подграфов остается прежним с той лишь разницей, что в результате опера- ции crYt X c'Z получается куб cpY[, где ср определяется как и ранее, но координата х, по которой происходит склеивание, не подчеркивается (так же, как и в случае crYi X c?Yi). Если положить, что в ГСА на рис. 7-3 все покрытия Dlt D2 и Ds не определены па кубе 10x|Z, то в результате миними- зации получим подграф с 7 условными вершинами. Необходимо отметить, что в случае неполностью определенной ГСА алгоритм не гарантирует получения минимального решения. Например, при минимизации подграфа, заданного покрытиями 0 0 3 0 0 3 1 1 5 1 0 4 *>0 = 1 0 II Q° S) x 1 5, (7-6) 0 1 Z получим подграф на рис. 7-8, а. Соответствующий минимальный подграф изображен на рис. 7-8, б. Для несложных примеров (до пяти-шести логических условий) можно использовать аналог карты Карно, в клетках которой записаны операторы, 146
отмечающие соответствующие 0-кубы. Карты Карно для покрытий Dg, Dq и Dq — см. формулы (7-5) — имеют вид а для покрытий и Dg — см. формулы (7-6) — вид Рис. 7-8. Подграфы, реализующие покрытия (7-6): а — неминимальный, б — минимальный Из двух последних таблиц видно, что для получения минимального под- графа на рис. 7-8, б покрытие необходимо доопределять с учетом £>q, заменив в Dg неопределенные кубы 10 | Z и 01 \Z кубами 10|4 и 011 5 соответст- венно. При минимизации подграфа, содержащего возвратную условную вер- шину (рис. 7-9), в множество Go вводится фиктивный оператор Yw, к кото- рому отправляется выход условной вершины, соединенный с ее входом (рис. 7-10). Далее алгоритм полностью аналогичен вышеизложенному, но при построении минимального подграфа в случае производного оператора Yq ~ XiYmYw (Yq = xtY№Ym) нулевой (единичный) выход условной вер- 147
шины, содержащей xt, соединяется с ее входом. Для подграфа на рис. 7-10 имеем: 1 1 X 4 0 0 х 1 X 1 1 5 1 X X 10,13 1 0 х 1 1 X 1 6 X 1 X 11,17 1 1 0 2, D° = х 1 0 7. D» = X X 1 12,14 1 1 1 3 1 х 0 8 х х 0 15,16 0 1 х W 0 х х 9 0 х х 9 х 0 х 1 х 0 х 1 0 1 х W D° = |х х х | 18, 19, 20, 21, 22, 23, 24, 25. Рис. 7-10. Подграф с опе- ратором Yw Рис. 7-9. Подграф с возвратной верши- ной до преобразова- ния Производные операторы сведены в табл. 7-9. Выбрав из таблицы вари, антов (табл. 7-10) минимальный, получаем минимальный подграф на рис. 7-11- Интересно заметить, что возвратные вершины на рис. 7-9 и 7-11 содержат различные логические условия. Производные операторы 12 5 1 13 хР 6 8 14 Х1 6 9 15 хп 7 1 16 *1 8 9 17 *1 4 W 18 Х1 13 9 19 х2 11 1 Таблица 7-9 20 хз 12 15 21 Хз 12 16 22 хз 14 15 23 х3 14 16 24 *1 10 9 25 Х2 17 1 148
Рис. 7-11. Минималь- ный подграф с воз- вратной вершиной Рис. 7-12. Соответствие между условной вершиной (а) и пе- реключательным контактом (б) Рис. 7-13. Схема на переклю- чательных контактах до мини- мизации (а) и после минимиза- ции (б) 149
Таблица 7-10 Таблица вариантов^ S bl ^2 Ьз bt Ьь bs bs 18 19 20 21 22 23 24 25 13 11 12 12 14 14 10 17 9 5 15 16 15 16 9 4 6 7 5 5 6 6 4 8 7 8 9 9 9 7 8 Изложенные выше алгоритмы были разработаны для минимизации ГСА, однако они могут быть без каких-либо изменений использованы для миними- Рис. 7-14. Частичное релейное дерево до ми- нимизации (а) и после минимизации (б) зации релейных деревьев— многовыходных схем с не- пересекающнмися множе- ствами значений реализуе- мых ими выходных фун- кций, построенных на пе- реключательных контактах. Рис. 7-12 иллюстрирует однозначное соответствие между условной вершиной и переключательным кон- тактом. Из пего видно, что методы минимизации булевых функций в классе дизъюнктивных нормаль- ных форм непригодны для минимизации релейных де- ревьев. На рис. 7-13 показан пример шестивыходной ре- лейной схемы до и после минимизации. Входные по- люсы Е1; Е2 и £3 на рнс. 7-13 играют роль исходя- щих операторов в подграфе, а функции fi, . . . , fe образуют множество Go первичных входящих операто- ров. Минимизация частичных релейных деревьев аналогична минимизации подграфов с возвратными условными вершинами. На рис. 7-14, а приведено неминимальное частичное релейное дерево (пример взят из [30], стр. 348). Исходное отмеченное покрытие 0 1 1 1 0 1 0 2 1 0 1 3 0 0 1 4 х 0 0 W 1 1 X W 1 х 0 W Примеиеиие изложенного выше алгоритма приводит к минимальной схеме на рис. 7-14, б. 150
7-2. Учет распределения сдвигов при минимизации операторных схем алгоритмов Из содержательного смысла работы дискретного устройства, поведение которого описано граф-схемой алгоритма, часто можно определить, какие логические условия могут меняться (или не меняться) во время выполнения того или иного оператора. Например, если в ЦВМ в каждый момент времени выполняется не более одной команды, т. е. отсутствует локальный паралле- лизм [26], то код этой команды не меняется от момента ее появления в ре- гистре команд до выбора следующей команды. Если каждому оператору Yt (( — 0, 1, . . . , Т [-1; Уо, YT+1 — началь- ный и конечный операторы) ГСА или MCA поставлено в соответствие неко- торое подмножество В/ логических условий, элементы которого могут из- меняться во время выполнения оператора Y то говорят, что задано распре- деление сдвигов. Распределение сдвигов является дополнительной к ГСА или MCA информацией о логике работы устройства, и эта дополнительная информация может быть использована для упрощения ГСА или MCA. Если каждому оператору Yt поставлено в соответствие все множество логических условий (В/ — X ~ {лгг, .... х^}), то такое распределение сдви- гов называется универсальным. Если же для всех t — 0, 1, . . . , Т~\~ 1 Bf = 0 (ни одно логическое условие не изменяется во время выполнения операторов), то такое распределение сдвигов называется пустым. Пусть для MCA М (табл. 7-11) задано распределение сдвигов1: Уо->-Во= {Х4, х2, х3, х4}, /4->В4={х1, хг, х3}, Y1-^B1= {х2, х3, х4), У5->В5={х1, х4), Y2 —> В2 ~ 0 , Yк —> Вк = (х,, х2, х3, х4}. Y3-*-B3 — {х3}, Таблица 7-11 MCA М до минимизации с учетом распределения сдвигов м п y2 Y3 Y, Y3 rK Yo л-i XiX2 X4X2 Yr Х4Х2Х3 ^1Х2 Х|Х2ХЗ X2 Y2 X2X4 x4 Уз •£1*4 Xj г4 X2X4 x2 V x4 Y, 1 Анализ столбца Y3 показывает, что оператор Yt может выполниться только после выполнения Yo, или Y3, но всегда при хг = 0, так как х4 встречается в столбце Yt всегда с инверсией. Обращаясь к распределению сдвигов для Ylt видим, что х4 Q Вг, т. е. х4 не изменяется во время выпол- 1 Пример взят из [15, стр. 46]. 151
нения Е1( а значит, и после выполнения Е4 xt остается равным нулю. В связи с этим в строку Еj можно вместо хг подставить его значение, равное нулю. Продолжая аналогичным образом анализ всех столбцов, делаем за- мены в строках Е3 (хг — 1), Е4 (х4 = 1) и Е5 (х2 = 1), после чего получаем MCA М' (табл. 7-12), проминимизированную с учетом распределения сдвигов. Таблица 7-12 MCA М' после минимизации MCA М М' У1 У2 Уз у. Уз Ек Уо *1 Х±Х2 Х1х-2 У1 Х2Х3 Х2Х3 х2 y2 X2Xi xt Уз 1 yt х2 Л'2 Уз 1 Описанную процедуру легко формализовать. В работе [15] предложен простой алгоритм учета распределения сдвигов при минимизации MCA, сущность которого сводится к следующему. Для каждого столбца Yt(t — = 1.......Т + 1) матричной схемы находится функция равная дизъюнк- ции функций перехода, стоящих в этом столбце: т fyt = V а/л ;=0 В MCA М (табл. 7-11): /у4 = х1- f Y-г. ~ 1 ’ ?У3 = Х1’ fYi = x4(x4Vx2), fy5 = x2 (XjVx3VX4), fyK = х4\/х2\/х4. Среди fY (t = 1, . . . , T + 1) отыскиваются сокращенные особенные функции относительно переменных х4р . . . , хщ Q X, т. е. функции, ко. *11 торые можно представить в виде х,-]1, . . , x^f —qyf ’ где Г не зависит от xtl, ИЗ фу • • • - xtp {°- 1}: xir = xir> x°ir = xir’ Исключая логические условия, входящие в распределение сдвигов оператора E<t получим функции *Pyf Очевидно, если Фу^ = х^1 • • х^ ({хА1, . . . , xkC)\ CZ {хп, . . . , x(.RJ), то в строке Yt в выражениях <xtp (р = 1. Т + 1) переменную Xkq можно заменить на единицу, если = 1, или на нуль, если = 0 (q = 1.......Q). 152
Непосредственно из табл. 7-11 с учетом распределения сдвигов имеем: фу =*1, Ф*=х1> Фу, = х4’ Фу, = хч- Заменяя в строке У± переменную х4 иа нуль, в строке Ys—х4 на единицу, в строке У4—х4 на единицу и в строке У,“Х2 на единицу, получим MCA М' в табл. 7-12. Таблица 7-13 MCA М" после дополнительной минимизации MCA М’ М" У1 У2 Уз Уз УК у0 Х1 Х1Х2 Vi у> X2-V3 х2 х4 х4 ^3 1 Уь 1 В MCA М' fYi — 1 не является сокращенной особенной функцией, в связи с чем ее нельзя непосредственно использовать для минимизации MCA. Однако из табл. 7-12 видно, что Г2 выполняется после У5 независимо от зна- чений логических условий. В то же время фу = х2, т. е. до и сразу после выполнения оператора F6 переменная х2 равна единице. Подставляя тогда в строку У5 а62 = х2 вместо а62 — 1, имеем ф*а = х2, после чего, заменив в строке У2 х2 на единицу и вернувшись к а52 = 1, получим окончательно MCA М" в табл. 7-13. В MCA М" удалены строка и столбец У4, так как все а/4 (/ = 0, 1, . . . , 5) оказались равными нулю. 7-3. Минимизация операторных вершин в граф-схеме алгоритма Минимизация операторных вершин в полностью определенной ГСА1 может быть осуществлена методом, аналогичным предложенному в работе [11] для минимизации микропрограмм. Поясним его на примере ГСА на рис. 7-15, имеющей начальную вершину, конечную, 10 операторных и 6 условных вершин. Будем интерпретировать граф-схему как автомат Мура, состояния которого отождествлены с начальной, конечной и операторными вершинами, а функция переходов определена так же, как в § 8-2 при синтезе микропрограммного автомата Мура по ГСА. В качестве выходного сигнала берется оператор, записанный в соответствующей данному состоянию вер- шине, причем в начальном состоянии at выдается выходной сигнал Уо, а в конечном состоянии ак—сигнал Ук. Прямая таблица переходов микро- программного автомата Мура приведена в табл. 7-14. Так как после миними- зации необходимо получить ГСА, у которой должны быть начальная и ко- нечная вершины, конечная вершина исходной ГСА выделяется в самостоя- тельное состояние. Поскольку в ГСА нет пути из конечной в другие вершины, 1 Этот параграф можно читать только после ознакомления с § 8-4. 153
Таблица 7-14 Автомат Мура, соответствующий ГСА на рис. 7-15 Исходное состоя- ние и (выходной сигнал) Состояние перехода Входной сигнал «i (Го) а2 1 «2 (Л) а. Х1 «4 Х1 «, (Г2) а-, 1 «4 (Гз) «10 х4 «и х4 а3 (Л) «6 Х2 «в х2 хг а- х2 х4 а» х2^1 ав (Г2) а9 1 а7 (Г3) «10 х4 «и х4 а8 (Xз) «10 х4 «и х4 «9 (Л) tZg Х1 «8 Х1 «ю X•>) «К 1 «и (Г5) ак 1 ЙК (Y к) ак 1 154
то в автомате Мура из состояния пк нет переходов в другие состояния, т. е под действием любого входного сигнала автомат остается в состоянии ак Этому соответствует последняя строчка в табл. 7-14. Минимизация автомата состоит в разбиении множества состояний на классы 0-, 1-, . . . , р, (р + ^-эквивалентных состояний до совпадения раз- биений на двух последовательных шагах. Для автомата в табл. 7-14: л0 = Т, 2.5.9, 37б, 47778, 10, ГТ, к={40, А4, Аа, А3, А4, А6, Ав} (табл. 7-15). Из этой таблицы: nx = T, 27579, зТб, 47778, То, ГТ, к; л0=л1. Рнс. 7-15, ГСА до минимизации операторных вершин Последовательность разбиений завершена. Выбирая из каждого класса л4 по одному состоянию, получим таблицу переходов минимального авто- мата Мура (табл. 7-16), от которой необходимо перейти к граф-схеме, равно- сильной исходной, но содержащей начальную, конечную и пять операторных вершин. Для этого аналогично изложенному в § 7-1 делаем разбиение буду- щей ГСА на подграфы (рис. 7-16).1 По числу подграфов получаем четыре подсистемы формул перехода: К0->Г4, У2->У4; У1 —>-х4К 2 V ХуУ з; У1~*-Ук, У 5~*"У К- (7-7) 1 Можно было бы от табл. 7-16 тривиальным образом перейти к MCA и далее от MCA к ГСА, но это можно сделать и непосредственно по табл. 7-16. 155
Таблица 7-15 Разбиение л0 Класс эквива- лентности Исходное состояние (выходной сигнал) Класс перехода Входной сигнал Л а1 (Во) Ях 1 -41 «2 (У1) л2 Аз и-1 аъ (Вх) а2 Аз А, Аз К 1 * 1 * к bi te t* го * । к 2*1 * ав (Вх) а2 Аз Хх Хх л2 аз (Вг) At 1 «в (Х2) At 1 Аз ai (Вз) At Аь К 1 |р. «7 (В3) At Аь х4 х4 аз (В3) А, Аь Х4 х4 At «ю (BJ Ав 1 Аь «хх (В5) Ав 1 Ав йк (Гк) Ав 1 156
Далее, если мы хотим минимизировать и условные вершины в получен- ных подграфах, необходимо воспользоваться методом минимизации из § 7-1 или искать (путем перебора) близкую к минимальной систему скобочных Рис. 7-17. ГСА с ми- нимальным числом операторных вершин Рис. 7-16. Разбие- ние строящейся ГСА с минималь- ным числом опера- торных вершин формул перехода. Система (7-7) уже представляет собой систему скобочных формул, притом минимальную — это очевидно из полученных выражений. По системе (7-7) построена минимальная граф-схема алгоритма на рис. 7-17. Таблица 7-16 Минимальный автомат Мура Исходное состояние (выходной сигнал) Состояние перехода Входной сигнал а1 (Уо) а2 1 (Г,) а3 а* *1 Xi а3 (Ys) а2 1 157
Окончание табл. 7-16 Исходное состояние (выходной сигнал) Состояние перехода Входной сигнал «4 (Г3) «10 «11 1 i аы (КД 1 «ы (У)>) Як 1 ак (Ук) 1 7-4. Объединение граф-схем алгоритмов При описании алгоритма работы сложной системы часто представляется целесообразным построение нескольких ГСА, каждая из которых описывает часть общего поведения системы (частные ГСА). Например, при проектиро- вании устройства управления ЭВМ проще построить граф-схемы выполне- ния отдельных операций. Очевидно, что в этих ГСА некоторые операторные и условные вершины будут одинаковыми, и если для каждой ГСА синтези- ровать отдельный автомат управления, то результат синтеза может быть далеко не оптимальным. В связи с этим возникает задача объединения част- ных ГСА в единую граф-схему, решение которой позволит минимизировать число операторных и условных вершин. Пусть заданы ГСА Гх, . . . , Tq, в каждой из которых операторы ие по- вторяются, но среди различных граф-схем могут встретиться одинаковые операторы. Каждой ГСА Г? (q = 1, . . . , Q) поставим в соответствие свой, отличный от других, набор (е?1, . . . , eq/j) значений переменных рг. Q ры, где eqn Q {0, 1}, N ] log2Q [, рп U Xq (Xq—множество логических <7=1 условий ГСА Г7), п = 1, . . . , N. Здесь, как и ранее, [ а ] означает наи- меньшее целое число, большее а или равное ему, если а — целое. Опре- N деляющей для ГСА Г? называется конъюнкция = Д р^п [15]. Задача п= I объединения ГСА Гх, . . . , Tq формулируется как задача построения ГСА Г, такой, что: 1. Если оператор У( входит хотя бы в одну из частных ГСА Г^, то он обязательно входит в ГСА Г, причем только один раз; 2. При подстановке набора значений (eql, . . . , eqpj), на котором Pq = 1, ГСА Г превращается в ГСА, равносильную частной ГСА Г? [24]. Параллельно с изложением алгоритма будем рассматривать пример объединения трех граф-схем Tj, Г2, Г3, изображенных на рис. 7-18. Решение задачи объединения разбивается на ряд этапов: 1. Для каждой ГСА Г? строится соответствующая ей MCA Mq. В нашем примере это MCA Мг, М2 и Л43, приведенные в табл. 7-17, 7-18 и 7-19. 158
Таблица 7-17 MCA Л г2 У3 г4 г5 ys ук Го Xj Уу X) г2 х3 Х3Х6 Х3Хв г3 х3 X3Xg Х3Х6 г4 х^х3 xtx3 Уъ Xi у. 1 Таблица 7-18 MCA M2 Г1 Г2 Гз Г4 г, Гз Гк Го Х7Х1 х7ххх5 х7ххх5 х7 Гх *2 г2 Х5 Гз х5 х5 г4 х4 г7 1 Г8 1 159
2. Каждая MCA Л1 кодируется вектором , eqN), eqn £ {О, 1}, Кодирование частных MCA мы обсудим в конце параграфа после изложения алгоритма объединения. Тогда будет более понятно, как выбранные коды влияют на сложность ГСА. Рис. 7-18. Граф-схемы Гх, Г2 и Г31 подлежащие объединению Таблица 7-19 MCA М3 У1 у2 Уз У< у? Кк ^0 Х1 *1*5 XjX5 У1 Х1 У2 х6 Х5 Уз XS *6 У< х4 у. 1 160
Закодируем MCA М1( M2 и М3 следующими кодами: Мх - (00), М2 — (11), М3 - (01). 3. Каждой MCA Mq ставится в соответствие конъюнкция Р = . где (eQ1> . . . , e<)N) — код MCA Mq, pQn=~pn, Р1п = Рп- В примере Р1 = Р1Рг, P2 = PiPi< Рз = PiP-2- 4. Строится объедииениая MCA М, строки и столбцы которой отмечены всеми операторами, входящими в объединение множеств операторов MCA Mlt ... , Mq. Среди строк, как и выше, нет конечного оператора Ук, а среди Q столбцов — начального оператора Yo. Элемент a,/ MCA М равен V <7=1 где а’- — элемент MCA М , стоящий на пересечении строки и столбца Yj. Объединенная MCA м, построенная по MCA Мг, М~ М3, приведена в табл. 7-20. Поскольку конъюнкция P„(q— 1, . . . , Q) равна единице все время, пока MCA М «работает» как MCA Mq, ни один оператор не меняет значений переменных рг.......р^ (относительно этих переменных имеем пустое рас- пределение сдвигов), в связи с чем MCA М можно упростить. Так, переход к оператору У6 (столбец У6 в табл. 7-20) происходит всегда при рг = р2 = 0 (фу. = Р1Р2)’ поэтому в строке Ys можно переменные рг и р2 заменить на Pi — Ръ ~ 0- Точно так же в строку Ye подставим значения рг = р2 = 0, в строку У7 — значение р2 = 1, в строку У8 — значение pr = р2 = 1, в ре- зультате чего получим проминимизированную с учетом распределения сдви- гов MCA М' (табл. 7-21). Для перехода от MCA М' к объединенной ГСА Г необходимо разбить MCA М' на подматрицы и воспользоваться методом построения минимальной ГСА, изложенным в § 7-1, или пытаться найти (путем перебора) близкую к минимальной систему скобочных формул перехода для каждой из подмат- риц. В обоих случаях следует учесть неопределенности двух типов, которые возникают при объединении частных ГСА: 1. Если число Q объединяемых ГСА меньше 2^, т. е. не все наборы зна- чений переменных pt, . . . , pN используются для кодирования MCA Мг, . . . , Mq, все формулы перехода (или отмеченные покрытия формул перехода) не определены на тех наборах значений переменных plt . . . , ры, хъ . . . , х^, которые покрываются кубами eSj . . . esNx . . . х, где esl . . . — неис- пользуемый набор значений переменных рх, . . . , р^. В рассматриваемом, примере не используется набор plt р2, равный 10, т. е. все формулы перехода не определены на кубе 10х . . . х. 2. Если оператор Yt не встречается в некоторой MCA Mq, то формула перехода для Yt (отмеченное покрытие Yt) не определена на тех наборах значений переменных, которые покрываются кубом eql . . . eq^ х . . . х, где eql . . . eqN — код MCA Mq. В нашем примере У5 не встречается в М2 и М3, а потому формула перехода для Y5 не определена на кубах Их ... х и 01х ... х. Точно так же формула перехода для Ye не определена на кубах 11х ... х и 01х ... х, для Y7 —• на кубе ООх . . . х, а для Yg — на кубах ООх ... х и 01х ... х. Подматрицы, полученные в результате разбиения MCA М’, приведены в табл. 7-22, 7-23, 7-24, 7-25. Если для подматриц Мг, М2, М3 и М4 построить соответствующие под- графы Г1, Г2, Г3 и Г4, то после объединения одинаковых исходящих и входя- щих операторных вершин в одну вершину придем к объединенной ГСА Г, изображенной на рис. 7-19. Эта ГСА построена с помощью методов, изложен- ных в § 7-1. К тому же результату можно было бы прийти, если выписать из подматриц формулы перехода, доопределить их иа неиспользуемых на- 6 Заказ № 2010 161
Таблица 7-20 Объединенная MCA Af y, y3 Ya y< y5 y0 У7 y. у. Ya PiP2Xt JJipiX.X.^ PiP^x^ PjpoX-XiXi Plp2XiX5 pjpL’X^-.Xfi PipoXjX^s P1P2A'1^S Р,Р;Х7 Y, P iPa-^a P1P2X2 PlP2X2 Y., ^P^P'pCs. psp2X^Cb Р1Р2Х5 PlP‘2X5 PiP'lX3Xb PlP2^5 PtPtXs Ya р\Р^ХЛ PiPa-^jXfi PiPi£5 PlPtX5 Plp2^6 P!piX5 pLp2*ii У« PiPlXiXj PlP2Xi PlP2X1 Р1Р2ЗД Ys | p^xt У Р1Р2 У7 P1P2 Р1Р2 y8 1 ( PiPi
борах значений переменных, после чего проминимизировать и привести к си- стеме скобочных формул. К сожалению, алгоритма подобных преобразований формул перехода, гарантирующего получение решения, близкого к мини- мальному, нет. Особые трудности возникают в неполностью определенных формулах перехода, и требуется значительный опыт и многократные попытки для получения хорошего решения. Например, чтобы прийти к той же граф- Рис. 7-19. ГСА Г, полученная^в результате объединения граф- схем Г1( Г2 и Г3 схеме Г на рис. 7-19, необходимо доопределить формулы перехода с помощью выражений, заключенных в квадратные скобки, и преобразовать их в систему скобочных формул следующим образом: Yо-> (P1P2X1VP1 pJtXiVP1P2X1V [Р1Р2Х7Х1]) Y1V(P1P2X1X3VP1P2XAX6V VP1 Р2Х-Х1Хб\/ P1P2X1X5VI РгР^Х^ХчХ/PsPiX^XsXeX-l]) У^рхр^х-рс^хД/ V[P1P2^AV7]) ^5V(PjP2*7*AVpiPAX5) Y7\/(plp2x1\J[p1p^7]) Ya = = Pi (x7Ys\/Xi (.Xi^^^^yx^tjypiJx^XjY^^^yxzY^jYxiYx)) V vpi (xi VXir^: Y2 = ^3-*(PjP2«3VPlP2x3XeV PlP2X5VPlP2X5V[PlP2X8XeVP1P2X3]) y4V V(Р1Р2ХзХв\/[р1Р2Хяхв]) Y5\/(P1P2X5 VP1P2X5) r7 = = p2 (x-,Y7\/X:3Y4) \/p2 (x3 (xaY a\J XgY 4) \7х3У4); Yi-^(PiP2xY-JPiPiX2\/PiP2x2\APiP2X2}) Y2 = x2Y2> 6 163
о Мц у< >4 YS Уо х. Х/ХдЗ? X,X3XS У2 xz XlXg Х3Хе у. х3хе х3х6 Mfz уг у. ^2 м>3 У3 У6 4 х4х3 Х4Х} Ук ys Х4 Уе 1 6) Рис. 7-20. Разбиение MCA Л1, (а), М„ (б) и Л43 (в)
y.i->(PiP2Xtx3\/pJp2xi\/p1pixi\/[p1p2XiX3]) Y3V(P1P2XAV [P1P2X4X3]) = = XitPiY^pz (x3YeVx3Y3)); Y 5—>х4У K; r6->FK; 8~r К • Очевидно, что одинаковым подформулам в этих выражениях (они оди- наково подчеркнуты) соответствуют одни и те же подграфы объединенной граф-схемы. Покажем на рассмотренном примере, что задача объединения граф-схем может быть разбита на несколько независимых подзадач меньшей размерно- сти. Для этого разобьем исходные MCA Mlt М2, М3 (рис. 7-20) на подмат- рицы /Мп, Л712, Л713, Л'114 (разбиение А/4), Л121, М32, М23, Л724 (разбиение М2), Af31, Л132, Л133, Л134 (разбиение Л43). Рис. 7-21. Граф отношения объедииимости под- матриц На множестве полученных таким образом подматриц введем отношение ьбъединимости, согласно которому две подматрицы Mt и Ms объединимы (Mt О Afs), если ((А/ П As) ф 0) V ((В/ Л Bs) ф 0) = 1, где At (Bt) и As (Bs) — множества исходящих (входящих) операторов подматриц Mt и Ms соответственно. Очевидно, что это отношение рефлексивно, симметрично, ио не транзитивно. Построим граф этого отношения, вершины которого со- ответствуют подматрицам, причем две вершины Mt и Ms соединим ребром, если Mt О (рис. 7-21). Тогда, очевидно, для нахождения множества всех объединимых подматриц необходимо найти все компоненты связности этого графа. Матрицы, попавшие в одну компоненту, подлежат объединению. В графе на рис. 7-21 четыре компоненты и, значит, необходимо решать че- тыре, но существенно более простые задачи объединения следующих под- матриц: Мн, А1315 А112, М22, М32< Л'Л3: Л114. М24, Л734. После объединения и учета распределения сдвигов приходим, минуя объединенную MCA М', к ее подматрицам М\, М2, М'3, М4 (табл. 7-22—7-25). Вернемся к задаче кодирования частных MCA Mlt . . . , Mq. Очевидно, что для минимизации числа условных вершин, в которых записаны перемен- ные рп (п = 1, . . . , N), соседними кодами следует кодировать MCA с наи- большим числом одинаковых элементов. Более того, целесообразно учиты- 165
& Таблица 7-21 MCA ЛГ, минимизированная с учетом распределения сдвигов Vj Уз Уз y* y5 y., y7 Y, yK Y„ Р1РХ{ PlP^Xl Р1Р.Х! p1p.>x1x1 P^PP^Xt, Pip2X7XlX-l Р1Р2Х,Х3 Pip.XjX.X, plp2X,XlX3 PlP^X, PiP.^7 plplAJ PlPi-Vj PlPiX2 У, PiP’Xz PiP^X ,xt. P^PXj PiPlX- Р]р.'гЛь p!p;Xs PiPAy У, p,p2X} PiP'X^,. PJhX*. PlPl*-> PiPjX.X, PlP'X, Р1Р2Г-. У4 P P'XiX^ PiPjXi PiPlXt Plp.X4X< у.- У О 1 У- Pl Pl у» 1
Подматрица Afl Таблица 7-22 Уг У, Уз У1 Уз '/о Р1Р2М PtP2x7xi Р1Р2М Р1Р2Х1Х3 PlP2XlX3X3 р1р^с7х1х6 Р1Р2МХ5 Р1Р2х1хзхв Р1Р2Х7Х1Х3 Р1Р-2Х1Х5 Р1Р2х7 У2 PiP-A Р1Р2хЗхв Р1Р2ХЪ Р1Р2Ч Р1Р2Х3Х6 Р1р2Х5 Plp2X3 Уз Р1Р2Х3 Р1Р2ЗД PlP2X3 Р1Р2Ч Р1Р2Х3Хв Р1Р2+ Р1Р2Х5 Таблица 7-23 Подматрица М2 У2 у, PlP2X2 Р1Р2Х2 PlP2X2 Таблица 7-24 Подматрица 3 6 у^ Р1Р2++ PlP2Xi. PlP2Xt PlP2XiX3 вать сложность таких элементов. В связи с этим взвесим элементы MCA а;/ по числу букв в функции аг-;- (обозначение b (ац)). Так, в MCA Мг b (aQ1) = 1, b (ао«) = 5, Ь (а6К) = 1> в случае аг/- = 1 считаем ее вес равным единице. Для каждой пары MCA Mq, Mr (q, г = 1, . . . , Q; q г) подсчитаем сумму весов совпадающих элементов а1;-, стоящих на пересечении У,- и У/ в обеих MCA Mq, Мг (обозначение Bqr). В нашем примере В12 = 1, В13 = 2, В23 = = 7. Кроме того, для каждого оператора Yt, входящего только в одну из MCA Mq или Мг, подсчитаем суммарный вес всех ненулевых элементов строки Yt и прибавим этот вес к Bqr. Обозначим эту сумму Cqr и назовем ее весом пары (Mq, Мг). В нашем примере Cj, = 1 + 4 = 5, С13 = 2 + + 3=5, С23 = 7 + 1 = 8. 167
ук У3 Уз 1 у. Р1 Р1 Уз 1 Соседними кодами прежде всего следует кодировать пары MCA с наи- большим весом. В нашем примере MCA Mlt М2 и М3 закодированы следую- Тпбмч,а 7-94 щим °бразом: Д' (MJ = 00. Д' (М2) = 11, К (М3) = 01. 4 , Если же MCA М2 и М3 закодировать несоседними Подматрица 4 кодами (положим, например, Д'(MJ — 01, К. (М2) = = 11, К (М3) = 00), то в объединенной ГСА будет на две условные вершины больше. Это видно из скобочных формул перехода для операторов У2 и У4: УPiPzXzYУ\/PiPiX^Y4\/р4р2хях4У5\!р^хъУ4 \J Ч PiPiX^YiV PiPzx-0Yi\J VP1P2X5Y?V [Р1Р2Х-ОУ4 V PiP2X-aY7] = = P2 (Pi (x3r4Vx3 (*eE4Vx6y5))V VPl (х5Г4\/х5У7)) Vрг (x5K4yx5r7): YР1Р2Х4х9У3\J Pip2x4x3Y3\J ptp2x4Y3\/ V Р1Р2ХцУ 3\j [PiP2XiYs] = = X4 (P! (p2 (ХЭУ3\/ХзУв)\/Р2Уз)\/Р1Уз)- В процессе получения скобочных формул перехода учитывалась их не- определенность за счет кода 10, не используемого при кодировании матрич- ных схем. ГЛАВА ВОСЬМАЯ _________________________i_______ СИНТЕЗ МИКРОПРОГРАММНЫХ АВТОМАТОВ ПО ГРАФ-СХЕМЕ АЛГОРИТМА 8-1.. Синтез микропрограммного автомата Мили Конечный автомат, реализующий микропрограмму работы ди- скретного устройства, принято называть микропрограммным авто- матом [12, 24, 6]. Синтез микропрограммного автомата по граф- схеме алгоритма [6] осуществляется в два этапа: 1. Получение отмеченной ГСА. 2. Построение графа автомата. На этапе получения отмеченной ГСА входы вершин, следующих за операторными, отмечаем символами а4, а2, . . . по следующим правилам: а) символом а4 отмечаем вход вершины, следующей за началь- ной, а также вход конечной вершины; б) входы всех вершин, следующих за операторными, должны быть отмечены; в) если вход вершины отмечается, то только одним символом; г) входы различных вершин, за исключением конечной, отме- ' чаются различными символами. 168
Ясно, что для проведения отметок потребуется конечное число символов. Предположим для определенности, что для отметки вхо- дов вершин граф-схемы использовались символы аъ . . . , ам. Ре- зультатом 1-го этапа является отмеченная ГСА, которая служит основой для 2-го этапа — перехода к графу автомата. Применение 1-го этапа к граф-схеме алгоритма на рис. 6-4 дает отмеченную ГСА, изображенную на рис. 8-1. Рис. 8-1 Отмеченная ГСА при синтезе автомата Мили Если идти от одной отметки ат к другой отметке as в направ- лении ориентации дуг ГСА, выписывая содержимое лежащих на этом пути вершин, то каждому такому пути можно поставить в со- ответствие слово в алфавите К1,• • •- 4L- yi- • • • - Yr} > где 1 при выходе из условной вершины по единице в соот е _ ветствующем пути, ч О при выходе из условной вершины по нулю; х°( = х{, х^ = х(, 1 = 1, . . . , L. 169
Чтобы подчеркнуть, что выписанное слово соответствует пути из ат в as, будем ограничивать это слово слева и справа символами ат и а5 соответственно. В дальнейшем нас будут интересовать слова вида 1°1’ • • • ’ М ) <8-1) ПЛИ a xmt. . .хт^а. (amfla9, av . . ам\ ). (8-2) tn ml tnR 1 1 мм 2’ 3’ f Ml ) ' ' Соответствующие этим словам пути в граф-схеме будем называть путями перехода. В пути вида (8-1) не исключен случай R = 0: (8-3) Таким образом, путь вида (8-1) — это путь в ГСА из одной от- метки ат в другую отметку as (допустимо ат = as), содержащий Рис. 8-2. Условное изображение пути перехода между ат и as : а — один путь, б — Н путей точно одну операторную вер- шину. Путь вида (8-2) — это путь из некоторой отметки ат в отметку ал (недопустимо ат = aj, проходящий только через условные вершины. Каждому пути (или слову) вида (8-1) или (8-2) можно поставить в соответствие конъ- юнкцию Х(ат< Д будем обозначать атХ (ат, as) Y (а Для краткости эти пути т, as) as и атХ (ап, aj аг, где У (am, as) =У/. Схематично путь перехода из ат в as можно изобразить так, как показано на рис. 8-2, а, где волнистая линия соответствует пути через условные вершины. Может случиться, что между ат и as имеется несколько путей вида amXh (а^, as) Y (ат, as)as (h — 1, . . . , Н), проходящих через одну и ту же операторную вершину (рис. 8-2, б). Будем считать, что указанному множеству путей соответствует дизъюнкция н X (ат, as) =- V Xtl {ат, as), а само множество путей обозначать h=l атХ{ат, ajY (ат, as)as, называя его обобщенным путем перехода. После получения отмеченной ГСА построим граф автомата Мили S, состояниями которого являются alt ... , ам, причем — начальное состояние. Переходы и выходные сигналы в этом автомате определим следующим образом. Находим все пути перехода в отмеченной ГСА. Если при неко- тором г (г = 1, . . . , R) имеется несколько вхождений символа хгг 170
в путь перехода, то все символы х/, кроме одного, из этого пути удаляются. Если при некотором г (г = 1, ...,/?) в путь перехода Рис. 8-3. Граф автомата Мили, постро- енного по ГСА на рис. 8-1 полагаем равным Yo (пустой опе- а из состояния ат в состояние а., же, как и раньше. Входной сигнал входят как хг, так и хг, то такой путь перехода в дальнейшем не рассматривается. Каждому пути перехода вида атХ (ат, as) Y (ат, as) as (ат, as t lai> • • • , a-м}) поставим в соответствие переход автомата S из состояния ат в состояние as под действием входного сигнала X (ат, as) с выдачей выходного сигнала Y (ат, as). Каждому пути перехода вида amY (ат, as) as (ат, as £ {а1( . . , ам}) поставим в соответствие переход автомг где ат и as определяются таг на этом переходе также ра- вен конъюнкции содержимого условных вершин в этом пути. Так как множество условных вершин в данном случае пус- то, а конъюнкция пустого множества переменных равна единице, то соответствующий входной сигнал полагаем равным единице, а выходной сигнал, как и раньше, Y (а , aj- Каждому пути перехода вида атХ (ат, aY) аг ставим в соответствие переход из ат в а±. При этом ат и входной сигнал определяются, как и раньше, а выходной сигна ратор). В результате получаем граф автомата Мили S, имеющий столько же состояний, сколько символов потребовалось для отметки входов вершин ГСА. Граф автомата Мили, соответствующий ГСА на рис. 8-1, приведен на рис. 8-3. Входными сигналами автомата S, имеющего L входных каналов, является множество В-компонентных векторов An . . . , A2l, где А, = (еу1, . . . , e/L), а компонент еу7 (/ = 1, . . . , 2L; I = 1, . . . , L) может принимать два значения — 0 или 1. В то же время, если в ГСА между отметками ат и as есть путь перехода атХ (ат, as) Y (ат, aj as, проходящий через операторную вершину Y (ат, as), то дуге графа автомата приписывается входной сигнал X (ат, as) и выходной сигнал Y (ат, as). Отличительная особенность микро- программных автоматов, синтезированных рассмотренным выше способом, состоит в том, что приписанные дугам графа входные сигналы являются элементарными произведениями, т. е. булевыми функциями тех переменных, которые входят в соответствующие пути перехода, причем длина этих произведений существенно 171
меньше числа L всех входных переменных. Очевидно, что переход (ат, as) с выдачей выходного сигнала Y (ат, as) будет иметь место под действием тех входных наборов из множества (Ар . . . , A?ij, на которых булева функция X (ат, аь) принимает значение еди- ницы. Условие детерминированности работы автомата требует, чтобы любое попарное произведение входных сигналов, вызывающих переход из некоторого состояния автомата, было равно нулю. Это условие всегда выполняется для автомата, построенного по граф- схеме алгоритма. Действительно, если из некоторого состояния ат есть более одного перехода, то, выбрав произвольно два из них, например в состояния as и at (не исключен случай s = t, т. е. два перехода в одно и то же состояние), можно убедиться в том, что в конъюнкциях X (ат, as) и X (ат, аг) какая-либо переменная, например хг, встречается в одном случае без инверсии (хг), а в дру- гом случае — с инверсией (хг). Это объясняется тем, что при опре- делении путей перехода атХ(ат , а5)У(ат, as)as и атХ(ат, at) Y (ат, af) at всегда найдется общая для них некоторая условная вершина, в которой записана хг, причем такая, что в первом пути мы выходим из нее по единице, а во втором — по нулю. В силу этого с каждым состоянием ат автомата S можно связать разбие- ние множества всех входных сигналов — наборов значений пере- менных на входных каналах автомата А , . . . , Д2£ на R + 1 по- парно не пересекающийся класс Ет1, . . . , Етг, . . . , Em.R+i, где R — число различных конъюнкций Хт1, . . . , Хтг , ... , XmR, которые приписаны дугам графа автомата S, выходящим из этого состояния ат. Если из ат выходит только одна дуга, которой приписан сигнал единица (путь amY (ат, as) as, т. е. когда вершина У (ат, as) следует непосредственно за другой операторной верши- ной), то полагаем R = 0. Очевидно, что каждому набору [А- = (еу1, . . . , e,L) однозначно соответствует конституента единицы хец . . . xe^L—булева функ- ция L переменных, принимающая значение единицы лишь на на- боре А, и значение нуля на остальных наборах. Тогда к каждому из первых R классов ЕтГ (г = I, ..., R) отнесем те и только те наборы значений входных переменных, соответствующие консти- туенты единицы которых поглощаются определяющей этот класс конъюнкцией Хг, т. е. Е =1а.(Х \/хе'1 * * *. . . x,iL--- X }, (8-4) mr 1/1 гм V 1 £ mr J \ 7 где г=1,. . . , Я; 2L); еД (0, Ч: 172
К (7? + 1)-му классу отнесем все остальные наборы; ’ ’ ’ \L 1 \ U Етг. Г=1 (8-5) Если Я = 0, то образуем один класс, состоящий из всех 2L наборов. Рассмотренное разбиение множества наборов А , . . . , A L на 2 классы позволяет определить, какой переход имеет место под дейст- вием каждого из этих наборов. Так как функция X тг принимает значение единицы на множестве наборов Етг (г — , R), то переход автомата из состояния ат под действием любого входного набора, попадающего в один из Етг классов, и соответствующий выходной сигнал совпадают с переходом автомата под действием определяющей этот класс конъюнкции и выдаваемым при этом выходным сиг- налом, тогда как под действием лю- бого набора из EOT.R+i-ro класса авто- мат остается в том же состоянии ат и при этом выдает выходной сигнал Уо = = (0. . .0). При R = 0 под действием любого входного набора автомат перехо- дит в то же состояние и выдает тот же выходной сигнал, что и под действием Рис. 8-4. Подграф автомата сигнала единицы, приписанного дуге графа автомата. В качестве примера подобного разбиения рассмотрим автомат с 3 входными каналами (L = 3) и 4 выходными (У = 4). Пусть из некоторого состояния ат этого автомата есть два перехода {рис. 8-4). Число элементарных произведений на выходящих из ат дугах R = 2 (Хт1 = xlt Хт2 = Х]Х2). Число возможных вход- ных наборов равно 8, и они разбиваются на R + 1 = 3 класса Ет1, Ет2, Ет3, первые два из которых определяются по выражению (8-4), а последний — по (8-5): Ет1=)111, НО, 101, 100), Ет2 = {001, 000); Ет3=|010, 011). Определим понятие реализации граф-схемы управляющим авто- матом. Пусть имеется структурный автомат S с L входными и У выходными каналами. Установим его в начальное состояние а± и подадим на его входы последовательность А-компонентных на- боров Аот1, . . . , \mQ вида (eql, . . . , eqL), q = I, . . . , Q, eq[ £ 6 )0, 1), I = 1, . . . , L. Пусть в ответ на эту входную последова- тельность автомат выдаст выходную последовательность У-компо- нентных наборов Q(1, .... вида (е?1, . . . , eqN), q — i, . . . , Q, eqn € 10, 1), « = 1, . . . , N. Образуем последовательность множеств У(1, . . . , YiQ, таких, что yn^Ylq, если в наборе Qiq eqn = 1 (<? = 1, . . . , Q; п = 1, . . . , N). Назовем Уп, . . . , YiQ 173
реакцией структурного автомата S на входную последовательность Дш1, . . . , Будем говорить, что автомат S реализует некото- рую граф-схему алгоритма Г, если его реакции на всевозможные последовательности наборов до перехода вновь в состояние совпадают со значениями ГСА на тех же последовательностях (с точностью до операторов Уо и Ук, стоящих в начале и конце лю- бого значения ГСА). Найдем реакцию автомата S (рис. 8-3) в состоянии аг на после- довательность наборов Д1 Д2 Аз М А» 10101 ПОП ЮНО 01101 10100 оюи для которой в § 6-2 было определено значение ГСА У0У1У4У2^/в^/к: Входные наборы.................\ Л. Д3 Д3 Дв Последовательность состояний at а2 а3 а3 ах а2 Реакция.......................У, К4 У2 Ye УД Видно, что реакция автомата до возвращения в состояние at совпадает со значением ГСА (без Уо и Ук) на той же последователь- ности наборов. Из рассмотренного выше способа построения микропрограммного автомата Мили по граф-схеме алгоритма Г непосредственно следует, что этот микропрограммный автомат реализует ГСА Г. В дальнейшем (если не оговорено особо) будем рассматривать автоматы, работа которых тактируется сигналами от генератора синхронизирующих импульсов (ГСП), т. е. в автомате кроме вход- ных каналов х}, ... , xL имеется по крайней мере еще один канал р от этого генератора, по которому поступает сигнал р = 1 в момент прихода импульса и р = 0 при его отсутствии. Поэтому входным сигналом на переходе (ат, as), соответствующем пути атХ (ат, a,)- Y (ат, as) as, будет не X (ат, as), а конъюнкция [рХ (ат, as). Договоримся, однако, символ р дугам графа автомата не приписы- вать. 8-2. Синтез микропрограммного автомата Мура Синтез автомата Мура по граф-схеме алгоритма также состоит из двух этапов: получения отмеченной ГСА и построения графа автомата [6]. На первом из них начальная, конечная и оператор- ные вершины отмечаются символами а4, . . . , по следующим правилам: 1. Символом а4 отмечаются начальная и конечная вершины. 2. Различные операторные вершины отмечаются различным» символами. 3. Все операторные вершины должны быть отмечены. При синтезе автомата Мура в отличие от автомата Мили отме- чаются не входы вершин, следующих за операторными, а сами опе- раторные вершины. Число отметок, таким образом, оказывается 174
на единицу больше числа операторных вершин в граф-схеме алго- ритма. В результате применения рассмотренной процедуры отметки к ГСА на рис. 6-4 получим отмеченную граф-схему, изображенную на рис. 8-5. Построение графа автомата Мура начинается с нахождения в от- меченной ГСА путей перехода вида а х т ml (8-6) mH 5 Рис. 8-5. Отмеченная ГСА при синтезе автомата Мура где етг (г = 1, . . . , R) и х"™ определяются так же, как и в вы- ражении (8-1). Как и ранее, для краткости эти пути будем обозна- чать атХ (ат, as) as, причем если между ат и as имеется множество путей вида amXh (ат, a,) as (h — 1.....И), то будем считать, что этому множеству путей соответствует дизъюнкция X (ат, as) — и = V Xh(am, as), а само множество путей обозначать атХ (ат, h=l as) а.', называя его обобщенным путем перехода. В пути вида (8-6) не исключено R = 0, когда между оператор- ными вершинами лежит пустое множество условных вершин (вер- шина, отмеченная символом as, непосредственно следует за верши- ной, отмеченной символом ат, и путь вида (8-6) превращается в путь amas). После получения отмеченной ГСА строим граф автомата Мура S, состояниями которого являются полученные на предыдущем этапе отметки alt ... , ам. Переходы и выходные сигналы в этом авто- мате определим следующим образом. 175
Каждому пути перехода amX(am,as) as (am,as £ (ob . . . , ам}) поставим в соответствие переход автомата S из состояния ат в со- стояние as под действием входного сигнала X (ат, as), а пути пе- рехода amas — переход из ат в as под действием сигнала единицы. Что касается выходных сигналов, то в каждом состоянии незави- симо от того, откуда в него произошел переход, выдается выходной сигнал, который записан в операторной вершине, отмеченной сим- волом этого состояния. На рис. 8-6 приведен граф автомата Мура, построенного по от- меченной ГСА на рис. 8-5. Замечание в конце § 8-1 относительно Рис. 8-6. Граф автомата Мура, построенного по ГСА на рис. 8-5 тактирования входных сигналов остается в силе и для автоматов Мура. При использовании графов для задания автоматов с большим числом состояний и переходов наглядность теряется, поэтому ока- зывается предпочтительным задавать эти графы в виде списков. В связи с этим введем понятие таблицы переходов микропрограмм- ного автомата. Табл. 8-1 — таблица переходов автомата Мили, построенного по ГСА на рис. 8-1. В этой таблице четыре столбца: ат—исходное состояние; as — состояние перехода; X (ат, as) — входной сигнал на переходе (ат, as); Y {ат, as) — выходной сигнал на переходе (ат, as). Таким образом, каждому пути перехода соответствует одна строка таблицы переходов. Прямой таблицей переходов микро- программного автомата назовем таблицу, в которой последова- 176
Таблица 8-2 Обратная таблица переходов автомата Мура ат aS) Y (as) X а£) ai «1 (—) х5 1 «1 «2 (J/1J/2) Xi а3 [Ул) хя «5 х3 «в х3 «4 (У вУ 7> Xi Ял Щ (Ув) X3Xi «3 X4XJ 4.1 х5 Х3Х( а6 Х3Х4 Я1 ав (У1Уз) хях2 ai (УзУл) x3xi X4Xt а- x3xi X3X1 аа 1 «1 °в (УаУ1) X1X2 Таблица 8-1 Прямая таблица переходов автомата Мили am 4s X (^;ГЬ *s) F (dm, ds) «1 X'l У1У3 «2 X]X2 У1У:> xvr2 Уе.У-1 41 X3X1 УзУл «2 X3X1 Уз «3 Xg Ул a3 41 X4X4 УзУл a. X4X4 Уз «4 x4 УьУзУч «1 Xs — Уз «5 «1 1 УзУл но сначала записываются все во второе и т. д. тельно перечисляются все пере- ходы сначала из первого состояния, затем из второго и т. д. (табл. 8-1). В ряде случаев оказывается удоб- ным пользоваться обратной таб- лицей переходов, в которой столбцы обозначены точно так же, переходы в первое состояние, затем В случае автомата Мура можно обойтись всего тремя столбцами, записывая выходной сигнал в прямой таблице рядом с соответст- вующим ему исходным состоянием, а в обратной — рядом с состоя- нием перехода. Обратная таблица для автомата Мура, построенного по ГСА на рис. 8-5, приведена в табл. 8-2. Очевидно, что таблицу переходов микропрограммного автомата (прямую или обратную) целесообразно составлять непосредственно по отмеченной граф-схеме алгоритма, записывая в нее все пути перехода, т. е. не нужно предварительно рисовать граф автомата, поскольку эта таблица и есть граф, заданный в виде списка. IVg? Заказ № 2010 177
8-3. Минимизация микропрограммных автоматов Изложенные выше алгоритмы синтеза по ГСА автоматов Мили практически позволяют получать автоматы, достаточно близкие к минимальным, что обеспечивается однократной отметкой входов вершин, следующих за операторными, независимо от путей пере- хода, ведущих в эту вершину. При этом степень приближения авто- мата к минимальному зависит от качества описания работы устрой- ства граф-схемой. В то же время изложенный в третьей главе ме- тод минимизации полностью определенных абстрактных автоматов можно модифицировать для минимизации микропрограммных ав- томатов. Напомним, что два состояния автомата Мили будут одно- эквивалентными, если под действием одинаковых входных сигна- лов они выдают одинаковые выходные сигналы. В связи с этим для выяснения одноэквивалентности состояний at и я; микропро- граммного автомата необходимо сравнить множества микрокоманд, выдаваемых на переходах из этих состояний. Пусть, например, эти множества совпадают и равны [ Уъ . . . , Yr, . . . , У^,}, при- чем микрокоманда Yr выдается под действием сигналов Хг (Уг) и Xj (Yr) для состояний я; и яу соответственно. Тогда, очевидно, at и яу будут одноэквивалентны, если эквивалентны функции Xz (Уг) и Х; (Уг) для всех г — 1, . . . , R (проверка эквивалент- ности двух булевых функций, заданных в некотором виде, отлич- ном от совершенной дизъюнктивной нормальной формы, может быть осуществлена с помощью операции вычитания кубических покрытий [30]). После нахождения указанным способом одноэквивалентных со- стояний получаем разбиение множества состояний микропро- граммного автомата на классы одноэквивалентности. Для автомата Мили в табл. 8-3 имеем: jii = L5, 23?4, 6?7, 8Д = В2, В3. В4]. Результаты разбиения сведены в табл. 8-4, в которой вместо состояний перехода указаны их классы эквивалентности. Два состояния at и яу- микропрограммного автомата будут й-эк- вивалентны, если выполняются следующие условия: 1. я; и я,- (k—^-эквивалентны. 2. Если Ог = [D{1, . . . , Din, . . . , DiN.\ и = [£>n, . . . , D/n, . . . , D)N.} — множества классов (ft—^-эквивалентных со- стояний, в которые есть переходы из а{ и Я/ соответственно, то Dt = = D, = D, т. е. N{ = N- = N и Din = D = Dn для всех п = = 1, .... X. 3. Если X; (Dn) и ХДОД — булевы функции, такие, что X,•(£>„)= V *(яг,ят), Xj(Dn) = \/ X (ц, ат), то X((Dn) эквива- ат £ ат £ »п лентно ХДО„) для всех Dn 6 D, где О — множество из п. 2. 178
Таблица 8-3 Таблица переходов неминимального микропрограмм- ного автомата Мили ат as X (ат> &$) Y (am, as) а4 а2 XjX2 Г1 а3 X(X4 ys а4 Х1Х2 y2 x1xi Y, 0-2 ав Х4Х3 Y6 аа Х4Х3 Y4 ае х4х3 Y& as X4X3 y4 а3 а» x3 y5 а? Хз y4 «4 а« Хз y5 а8 Хз y4 х±х2 Г1 аз Х4Х4 а4 Х4Х2 Y? xtx4 r<i а» ai x4 Y3 x4 Y3 а7 а4 x4 Y3 x4 Y3 а» 1 Y, а3 «1 Yl Таблица 8-4 Разбиение на классы 1-эквивалентных состояний Bi atn Bi X Bj) / (am, Bj) B2 Xj_X2 Yi B2 X1X4 Ys B2 X1X2 y2 Bi X1X4 Y3 «5 B2 X1X2 Г1 B2 x4x4 Y3 B2 X4x2 y2 B4 XiX4 Ye a2 B3 X4x3 Ys B4 X4X3 y4 B3 X4X3 y5 B4 X4X3 y4 B2 a3 B3 x3 Y3 B3 x3 y4 B3 x3 Y3 B4 X3 y4 B2 X4 Y3 B3 B4 x4 Y3 B2 X4 Y3 B4 X4 Y3 R . «8 Bl 1 ' Yi д9 Bl 1 1.J2 Из этого определения ясно, что методы минимизации абстракт- ных и микропрограммных автоматов почти полностью совпадают, с той лишь разницей, что вместо сравнения абстрактных вход- ных сигналов необходима проверка эквивалентности соответ- ствующих покрытий. Проводя последовательность разбиений на 1-, 2-, . . . , k-, (k + ^-эквивалентные классы до совпадения разбиений и получим разбиение множества состояний на эквивалентные. Вы- бирая из каждого класса эквивалентности по одному состоянию, 1V27* 179
Таблица 8-5 Разбиение л2 на классы 2-эквивалентных состояний Ci ат Ci X(am,Cj) Y (am, Cj) «1 Ci XiX2 У1 С3 XXX4 y3 Ci XiX2 Yi Ci Сг xtx4 Y, «5 Ci ад Yi С3 хгх4 Y3 Ci X1X2 Yi Ci ад Y, а. Ci x4x3 Yt C5 ад Yi Ci x4x3 Y5 С2 C3 X4X3 Yi Ct X3 F3 Cs x3 Yi С3 с? у Xg #3 Y, Yi а, C2 x4 Y3 c5 x4 Yt С. а. c2 x4 Y3 C5 X4 Yt Ci 1 Yi Г, иа Ci 1 Yi Таблица 8-6 Таблица переходов минимального автомата Мили as X (dm ,as) Y (am, as) at Oi ад Yi a3 XiX4 Y3 «4 X1X2 Yi «1 x4x4 Y, a3 А’з y5 «6 x:i Yi a. X:, as ^13 Yi Oi *4 Y3 a4 x4 r5 a» «1 1 Ti получаем множество А' со- стояний минимального мик- ропрограммного автомата Мили. При выборе предста- вителя из некоторого класса в А' целесообразно выбирать состояния с наименьшим чис- лом строчек в таблице пере- ходов. Таблица переходов минимального автомата полу- чается из исходной таблицы вычеркиванием массивов пе- реходов из состояний, не во- шедших в А', и заменой в столбце «состояние пере- хода» не вошедших в А' со- стояний на эквивалентные из множества А'. 180
По табл. 8-4 получаем разбиение л2 (табл. 8-5) на классы 2-эк- вивалентных состояний: л2-Ц 24, 3, 67, 8Д=[С1, С2, С3, С4, C5J. Если выполнить следующее разбиение (л3), то оно совпадет с л2, а потому л2 есть разбиение на классы эквивалентных состоя- ний. Выбирая из каждого класса эквивалентности по одному со- стоянию, получаем множество А' = {alt а3, а4, а6, щ} состояний минимального микропрограммного автомата Мили. Таблица пере- ходов минимального автомата (табл. 8-6) получена из табл. 8-3 вычеркиванием массивов переходов из состояний, не вошедших в Л', и заменой в столбце «состояние перехода» не вошедших в А’ состояний на эквивалентные из множества А'. Для минимизации микропрограмного автомата Мура необхо- димо предварительно найти разбиение множества состояний на классы О-эквивалентности. В каждый такой класс попадут состоя- ния, отмеченные одинаковой микрокомандой. Далее процесс мини- мизации полностью совпадает с минимизацией микропрограммных автоматов Мили. ГЛАВА ДЕВЯТАЯ___________________________________ СИНТЕЗ ЛОГИЧЕСКОЙ СХЕМЫ МИКРОПРОГРАММНОГО АВТОМАТА 9-1. Структурная таблица микропрограммного автомата Структурная таблица микропрограммного автомата является расширением его таблицы переходов. Пример обратной структурной таблицы для автомата, заданного ранее таблицей переходов (табл. 8-1), приведен в табл. 9-1. В этой таблице три новых столбца: К (ат) и К (as) — коды исходного состояния (ат) и состояния пе- рехода (as), а также F (ат, as) — множество компонентов обяза- тельных (изменяющих состояния элементов памяти) функций воз- буждения, вырабатываемых на переходе (ат, as).1 Для кодирования состояний микропрограммных автоматов можно использовать рас- смотренный в § 5-6 метод, минимизирующий суммарное число пе- реключений памяти на всех переходах автомата. 1 Здесь и в дальнейшем, если не оговорено особо, рассматривается син- тез с использованием в качестве элементов памяти триггеров с раздельными входами, однако все методы могут быть легко модифицированы для других элементов памяти. 181
Очевидно, что структурные таблицы автомата Мура будут иметь на один столбец меньше, если, как и в таблицах переходов микро- программного автомата Мура, выходной сигнал записывать рядом с исходным состоянием (в прямой таблице) или с состоянием пере- хода (в обратной). Таблица 9-1 Обратная структурная таблица автомата Мили КМ as X (ат> , as) а.л 010 01 001 УзУл ^2^3 а3 ОН Х4ХХ УзУз R'l «4 100 Хз — RiS3 101 1 УзУ1 Ri "1 001 а2 010 У1У2 s2R3 01 001 У1Уз $2^3 а2 010 *3*1 У» — а3 011 X4Xt Уз R3 а4 100 Хз Уз RiS2 аг 010 аз ОН Х3 У 4 S3 аз он 100 х4 УзУзУ1 SXR2R3 01 001 а5 101 Х4%2 Уг,У- St Так как структурная таблица представляет собой граф струк- турного микропрограммного автомата, заданный в виде списка, из этой таблицы можно получить выражения функций возбуждения и функций выходов аналогично тому, как это делалось в § 5-4 при графическом методе структурного синтеза автоматов. Так, например, для и у3 из табл. 9-1 имеем1: = рТ 1T2T3X5V рТ\Т 2Т 3V рТ iT2T3xs, Уз ~ рТ{Т2Т3Х3Х1VРТ]ТрТ{T2T3\JрТiT2T3x\X2- Однако для встречающихся на практике микропрограммных автоматов подобные выражения очень сложны — они представляют собой систему из десятков и сотен функций от десятков и сотен пе- 1 Относительно символа р см. замечание в конце § 8-1. (9-1) 182
ременных. В этом случае оказываются неприемлемыми известные классические методы минимизации булевых функций в классе нор- мальных форм. Кроме того, практика показала, что основное сокра- щение объема схемы происходит не за счет минимизации в нормаль- ных формах, а в результате выделения ряда функций и подфункций, допускающих совместную минимизацию, и представления систем функций в виде декомпозиции. Рис. 9-1. Схема для переходов в состояние а2: без преддешифратора (а), с преддешифратором (б) Первым шагом при минимизации логической схемы микропро- граммного автомата является объединенное построение компо- нентов функций возбуждения и функций выходов, записанных в од- них и тех же строчках структурной таблицы. Так, конъюнкция из пятой строчки табл. 9-1 (pTyT^TgXj) может быть использована при построении функций уъ у2, S2, ^з> из шестой строчки (рТгТ2Т^гх^ — при построении z/r, z/3, S2, R3 и т. д. Аналогичным образом в схеме на рис. 5-8 выражение tit2xi%2 входило в функции ylt у2, S2. Учет только этого обстоятельства позволяет сократить схему по сравнению с непосредственным по- строением по выражениям вида (9-1) примерно во столько раз, сколько компонентов функций возбуждения и функций выходов встречается в среднем в одной строке структурной таблицы. В ка- 183
чеетве критерия минимальности схемы будем использовать в дан- ной главе суммарное число входов в логические элементы схемы. Тривиальный метод синтеза логической схемы по обратной структурной таблице состоит в раздельном построении схемы для переходов в каждое состояние; в обратной структурной таблице эти массивы переходов отделены друг от друга горизонтальной чертой. В пределах перехода в одно состояние последовательно строится схема для каждой микрокоманды. Так, среди переходов в состояние а2 есть три микрокоманды: [ylt у2}, [ylt ys] и [z/8j. Конъюнкции, соответствующие каждой строчке для одной микро- команды, заводятся на схему ИЛИ, с которой и снимаются соот- ветствующие этой микрокоманде выходные сигналы — микроопе- рации (рис. 9-1, а для переходов в состояние а2). Для микрокоманд |ylt у2] и {z/j, у3} схемы ИЛИ не строятся, так как каждой из них соответствует одна строчка таблицы на переходе в состояние а2. Если пересечение всех микрокоманд не пусто, можно построить еще одну схему ИЛИ, с которой снимаются входящие в пересече- ние выходные сигналы. Цена схемы на рис. 9-1, а равна 36 [31 вход в схемы И, ИЛИ плюс пять отметок функций возбуждения и выхо- дов (кроме ylt у2, у8 и S2), которые встречаются на переходах в дру- гие состояния и, следовательно, потребуют построения схем ИЛИ, на которые и будут поданы эти сигналы]. 9-2. Преддешифратор обратной связи Из выражений (9-1) видно, что каждый компонент функций воз- буждения и выходных сигналов, соответствующий некоторому пути перехода, получается как конъюнкция переменных, которыми за- кодированы состояния тактирующего сигнала р и входного сигнала, входящего в путь перехода. С кодом каждого состояния автомата .можно соотнести клетку карты Карно на соответствующее число переменных и тем самым представить это состояние в виде конъюнк- ции наборов состояний триггеров столбца и строки, на пересечении которых находится рассматриваемое состояние. Предположим для определенности, что длина кода равна 5. Как видно из карты Карно на 5 переменных (табл. 9-2), конъюнк- ция Ат, соответствующая коду К (ат) состояния ат, разделяется на две части: Am = TiTVj ТД\ =а1₽3- “1 Ц Положим р£ — pfy (i = 0, 1, 2, 3), где р — тактирующий им- пульс. Очевидно, что если построить схемы, на выходах которых определяются значения <х; = 71*71 Т1^'2 Т1^3 (/ = 0, 1, . . . , 7) и — = рТе^Те*(1 = 0, 1, 2, 3), где ejk, eir 6 (0, 1|; T°k = Tk, Т1к = Tk (k = 1, 2, . . . , 5), то для am из табл. 9-2 pAm — сцРз. Схему, реализующую cty и [Ц назовем преддешифратором об- ратной связи. Нижние индексы j и i при <ху и Р£ есть восьмеричные 184
Таблица 9-2 Карта Карно на 5 переменных TtTb ЛТ’зТ'з ООО 001 он 010 НО 111 101 100 а0 «1 а3 а2 «« ос7 а6 «4 00 01 р'1 11 ₽3 a in 10 эквиваленты двоичных чисел, приписанных соответствующим столбцу и строке карты Карно, что позволяет по этим индексам |а/ 1аг Г~1 гп гл гл легко восстановить код со- стояния. В тех же случаях, когда конкретный код состоя- ния ат неважен, а необходимо лишь подчеркнуть, что речь идет о коде именно этого состояния, мы будем ис- Рис. 9-2. Преддешифратор для че- тырех триггеров Рис. 9-3. Схемы для одного обобщенного пути: а — с использованием предде- шифратора; б — без предде- шифратора 185
пользовать обозначения вида ccmp'n; верхние индексы при а и р означают, что а"1 и р"1 отмечают столбец и строку карты Карно, на пересечении которых стоит состояние ат. На рис. 9-1, б приведена схема, эквивалентная схеме на рис. 9-1, а, но построенная с учетом преддешифратора: а0 = 7,1712, «1 = ЛЛ. «2 = ТгТ2, р0 = pTs, Pj = pTs. Преддешифратор для четырех триггеров с раздельными входами изображен на рис. 9-2. Пусть в автомате имеется переход из состояния ат в состояние as под действием входного сигнала X (ат, as), что соответствует пути перехода в граф-схеме алгоритма атХ (ат, as) Y (ат, cQ as. Тогда схема для этого перехода будет иметь вид рис. 9-3, а, где F (ат, as) — множество компонентов обязательных функций возбуждения, выдаваемых на переходе (ат, as), a ccm и рт снимаются с выходов преддешифратора. Сравним подобное построение с полной расшифровкой кодов состояний (метод полного дешифратора). В последнем случае схема для того же перехода будет иметь вид рис. 9-3, б, где Ит —• второй (последний) каскад дешифратора. При использовании преддешифра- тора каждому обобщенному пути перехода из ат в as соответствуют два входа (без учета X (ат, а.)), в схему Ик (рис. 9-3, а), поэтому цена схемы обратной связи от элементов памяти при этом способе Vt = 2 Д', где К — число переходов. Цена схемы в случае полного дешифратора V2 = 2М + К, где М — число состояний. Очевидно, метод преддешифратора с точки зрения оборудования выгоднее, если И1<Й2, т. е. если К<.2М. С точки зрения быстродействия преддешифратор всегда лучше полного дешифратора, при котором число каскадов в схеме увели- чивается на единицу. $-3. Доопределение функций возбуждения Рассмотрим подграф графа автомата, изображенный на рис. 9-4. На переходе (а(, ak) второй триггер меняет свое состояние с нуля на единицу, состояния остальных триггеров не меняются, т. е. множество обязательных функций возбуждения на этом переходе F (ait ak) = {S2}. Точно так же на переходе (а;, ak) F (a,, ak) — — j/?1( S2). Ясно, что функционирование автомата не нарушается, если на переходе (af, ak) выдавать те же компоненты функций воз- буждения, что и на переходе (а;-, ak). Действительно, если на пе- реходе (а;, ak) на вход Rr первого триггера, установленного в со- стояние нуль, придет сигнал единица, то этот сигнал не изменит его состояния. Обобщим приведенные рассуждения. Пусть G (as) = [ат1, . . . , amR} — подмножество множества состояний, из которых есть пе- реходы в состояние as. Обязательными для этих переходов будут функции возбуждения F (amr, as), г = 1, . . . , R. Под доопределе- 186
наем функций возбуждения на переходах из состояний ат1, . . amR в as будем понимать выдачу на всех этих переходах одного и того же множества компонентов функций возбуждения F(G (as), as)= U F (amr, as), r=l t. e. на этих переходах, кроме обязательных, можно вырабатывать функции возбуждения, подтверждающие состояния элементов па- мяти, не меняющиеся на данном переходе. Функции возбуждения, вырабатываемые на некотором переходе (am, as), в одних слу- чаях рассматриваются как множество сигна- лов, поступающих на единичные и нулевые входы триггеров памяти, а в других — как булевы функции входных сигналов автомата и сигналов обратной связи. В связи с этим для функций возбуждения в первом случае будет использоваться обозначение F (ат, Рис. 9-4. Иллюстра- ция доопределения функций возбуждения as), а во втором — F (ат, aj. Доопределяя, например, функции возбуждения на всех пере- ходах в состояние а2 (табл. 9-1), получим: С(а2)=(а1( а2, а3, a4j; F(G(aa), я2) = Р(о1, а2)[)Р(а2, o^Ffa, a2) - (S2, R3} U 0 U U {До S2} - {Ri, S2, Rs}. Алгоритм построения функций выходов и функций возбуждения с учетом их доопределения рассматривается в § 9-6. Здесь же по- нятие доопределения было введено в связи с тем, что оно сущест- венно используется при декомпозиции логической схемы с помощью узлов в ГСА. 9-4. Метод декомпозиции логической схемы с помощью узлов в граф-схеме алгоритма Рассмотрим подграф ГСА, приведенный на рис. 9-5, а. Вход условной вершины хр1, отмеченный символом Q, соединяется с вы- ходом двух условных вершин xmR и xnL. Из состояний ат и ап в as есть пути перехода а хт1 . xe"1R хе'л . . . №рГ Ya и а х . . . J г tn ml mR Pl pT ё s п tn • • -^nL^n- xepPTYRas соответственно (emr, e„;, eptC:[O, M; r = 1, . . . , /?; / =1,..., L; t — 1, . . . , T). Входной сигнал на переходе (ат, as) — конъюнкцию X (ат, as) разобьем на две конъюнкции: X (ат, as) = X (ат, Q) X (Q, as). Аналогично Х(ап, О = Х(а„, Q) X (Q, as), где R е Ь е г е . х Л Q) - Л , х (Q>- Л . г—1 l=i 1=1 187
Условное изображение подграфа рис. 9-5, а приведено на рис. 9-5, б. Логическая схема для переходов (am, as) и (ап, as) изо- бражена на рис. 9-6, а. Доопределим функции возбуждения на переходах из ат и а„в as: ?(am, os)UF(a„, as) — F(G(Q), as), где G (Q) = \am, — множество состояний, из которых есть пути перехода в as, проходящие через точку Q. После доопределения Рис. 9-5. Узел в ГСА: а — подграф, содержащий узел, б — условное изображение подграфа множество функций возбуждения F (G (Q), as) можно снять вместе с Yg, что позволяет вынести за скобки общий член X (Q, as) (рис. 9-6, б). Со схемы ИЛИ снимается функция = Q)\I^X(an, Q). Увеличим число путей в точку Q и из точки Q в другие состоя- ния (рис. 9-7, а). Доопределяя функции возбуждения на переходах из множества состояний G (Q) = [alt . . . , ам] в каждое состояние ar (г = М. + 1, . . . , Я; не исключен случай {ар . . . ам\ Л • • • > ал) 0). получим: м F(G(Q), ar), 188
м Ф (Q) - v am₽"!x (ат, Q), т— 1 Kg = F(G(Q), ar>O(Q)X(Q, ar). jimX(a„,Q) a" fi”X(a„,Q) Рис. 9-6. Логическая схема для подграфа ГСА иа рис. 9-5: а — без доопределения функций возбуждения; б — с доопределением Схема, реализующая эти выражения, приведена на рис. 9-7, б. Введем теперь, кроме рассмотренных ранее отметок-состоя- а) Х(ат,а) a' fl'X(a,,Q) а"АяХ(а„,а) Рис. 9-7. Подграф ГСА с несколькими путями из узла в состояния (а) и соответствующая логическая схема (б) ний, понятие отмепгки-узла (или просто узла). Вход условной вер- шины ГСА назовем узлом, если он соединяется с выходами не менее чем двух других вершин, одна из которых — условная. Тогда в узел Qk имеется не менее двух путей из отметок- 18?
состояний вида • • • x^k (где emr£ {0, lj, x°mr = xmr, x’:,,r--x,„r (r-=l, ...» R), проходящих через различные условные вершины). Один из этих путей может не содержать ни одной условной вер- шины (R = 0), т. е. иметь вид amQk. Тогда вход некоторой услов- ной вершины имеет две отметки — состояния и узла, причем от- метку-узел договоримся помещать под отметкой-состоянием (ближе Рис. 9-8. Подграф ГСА с двумя узлами (а) и соответствующая логическая схема (б) ко входу вершины), чтобы не пропустить путь из этого состояния в узел. В общем случае могут быть пути в узел не только из состояний, но и из других узлов. На рис. 9-8, а приведено условное изображе- ние подграфа ГСА с двумя узлами Qk и Qp. Для этого подграфа: У (Qk, as) F (G (Qk),as) = Ф (Qk) X (Qk, as), Ф (Qk, a,) = am₽"lX (ain, Qk)\Ja^nX (aH, Qk) V V«<p/X(az,Qft)VayX(ar, Qk). 190
Так как X (at, Qk) --- X (at, Qp) X (Qp, Qk) и X (ar, Qfe) = Х(а-. QP) X (QP, Qft), to Ф (Qk) = атГХ (am, Qk) V «Т* (an,Qk) V V (at, Qp)\/afirX (ar, Qp)) X (Qp, Qk) = = a.mrx (flm, Qp) Va"₽"X (an, Qk) V Ф (Qp) X (Qp, Qp), где Ф (Qp) = a‘tfX (at, Qp) V a'0rX (ar, Qp), F (G (Q*). as) = F (am, as) U F (an, as) U F (at, as) (J F (ar, as) = = F (am, as) U F (an, as) U F (G (Qp), as), так как F (G (Qp, as)) = F (at, as) [JF (ar, as). Будем считать, что существует путь из узла Qp в узел Qk, если на граф-схеме есть путь вида QpX^1 . . . xpppFQk. На рис. 9-8, а в узел Qk есть пути из ат и ап и узла Qp. G (Qp) = {ат, ап\ {JG (Qp) — множество состояний, из которых есть пути в узел Qk, в том числе проходящие через другие узлы. Логическая схема для рис. 9-8, а приведена на рис. 9-8, б. В общем случае если в узел Qk есть пути из состояний alt . . . , ам и узлов Q1T . . . , Qn, а из узла Qk — пути в состояния ам н,.. ., aR и узлы Qyv+i, . . . , QT, то Ф (Qp) =- V a’TX (ат, Qp) V V Ф (Q„) X (Qn, Qp); /И = 1 /1—1 У (Qfe, ar) ^=F(G (Qp), ar) - Ф (Qp) X (Qp, ar), r = M + 1, . . . , Я; ^(Qi)-=^(Qk)X(Qk,Qt), t-=N + \, G(Qft)-!fli.....Om)U f UG(Q„)V \n=l / F Если G (Qp) -= {api, . • • ,akF], to F (G (Qp), ar) = U F(akf, ar). f=i Рассмотрим случай, когда из узла Qp есть пути в состояния s ар!, . . . , Оря и П F(G(Qk),akr)^Fk^ 0. Г—1 Тогда если в путях из узла Qp в akl, . . . , akR в граф-схеме алго- ритма нет возвратных условных вершин, то с выхода ИЛИ для Ф (Qp) можно снимать множество компонентов Fk. На рис. 9-9 F(G(Qp),aAr)-F(G(Qp),flpP)\Fp, г = 1, . . . , /?. 191
Аналогично, если из узла Q/; есть пути как в состояния akl, . . . , akR, так и в узлы Qkl, ... , QkN, а / « \ / w \ П F(G(Q*),aftr) П П 4 =М0, \Г=1 / \ /1 — 1 / то Fk можно снять с выхода Ф(ФА); в последнем выражении Fkn — функции возбуждения, снимаемые с ИЛИ для Ф (Qfe) , п = = 1, . . . , N. К ?'(б(ак,ак1)) F'(G(Qk,akR)) Рис. 9-9. Схема для случая, когда R „ П F (G (Qk), akr)F0 То же самое справедливо и для пересечения микрокоманд. Пусть Ykl, . . . , Y kR — микрокоманды, выдаваемые на переходах в со- стояния а/г1, . . . , akR, причем пути перехода проходят через R узел Qk. Тогда, если Л Ykr ^Yk^= <¥>, то Yk будем снимать с вы- Г—1 хода ИЛИ для Ф (QJ, а со схем И,— Ykr = Ykr\Yk, г — = 1......R. Таблица 9-3 Общий вид структурной таблицы с узлами Исходное состоя- ние или узел Код исходного состоя- ния Состоя- ние или узел перехода Код состоя- ния перехода Входной сигнал Выходной сигнал Обязатель- ные функции возбуждения ат К (От) as км X (ат, as) Y (ат, а,) F (ат, «s) atn К (ат) Qk — Q/?) — — Qk — as к м X (Qk, as) Y (Qk, «») F(G(Qk),as) QP — Qk — X (QP, Qk) — — Введенная в § 9-1 структурная таблица автомата предусматри- вает представление микропрограммного автомата в виде списка. В каждой строке структурной таблицы записывается путь перехода вместе с кодами состояний и вырабатываемыми на этом переходе обязательными функциями возбуждения. Расширим теперь понятие 192
Таблица 9-4 Обратная структурная таблица автомата Мили (с узлами), построенного по рис. 9-10 Исходное состоя- ние или узел Код исходно- го СОС- ТОЯНИЯ Состоя- ние илн узел перехода Код СОСТОЯ- НИЯ пе- рехода Входной сигнал Выходной сигнал Обязатель- ные функции возбуждения «2 001 <21 — *3*2 101 X» Qi Q2 Х4Х3 «4 101 ХЯ — 010 1 q2 — <2з — Х1 01 000 Х1ХеХ1 — — о3 он Хе Q3 01 000 х7 919s R1R2R3 Q3 — *1 919s RiR2R3 Qi — а2 001 Х1 9i9i RiR2s3 at 000 Х1 9\Уг S3 01 000 Х1ХвХ2 919 s S3 а2. 001 *3*2*7 9191 — «3 он Хе, 9i9i R-2 а7 но *3*4 9191 RiR2S3 а2 001 ^3 он *3*2 9з s2 а2 001 01 101 х^х^ху 9i,9s S\ «2 001 *3*2 9ь9в Si Q1 — а3 010 Х1 9i9s 01 000 Х1Х6х2 9i9s S2 01 000 *1*6*4 9i9s S2 01 но *з*4 9s Ri Q1 — о» 100 *4*5 9s S1R3 OS 100 01 но 1 У1 S2 193
структурной таблицы, введя туда пути состояние—узел, узел—со- стояние и узел—узел. Таким образом, всевозможных различных Рис. 9-10. Отмеченная ГСА комбинаций путей в граф-схеме будет четыре (табл. 9-3). Необхо- димо подчеркнуть, что узел не является состоянием автомата и вве- ден лишь для облегчения построения и минимизации схемы микропрограм- много автомата. На самом деле ни- каких переходов в узел и из узла в обычном понимании слов «переход автомата» не существует. Таким об- разом, расширение понятия струк- турной таблицы привело к тому, что она уже не представляет графа авто- мата в виде списка. В то же время в этой таблице учтены некоторые структурные особенности будущей схемы автомата. Рис. 9-11. Подграф ГСА с одним узлом Обратная структурная таблица с узлами для ГСА на рис. 9-10 приведена в табл. 9-4. В такой таблице сначала записываются все пути (из узлов и состояний) в узлы Qlt Q2, . . ., затем — в состоя- 194
пия alt а2, ... Нетрудно показать, что введение узлов в большин- стве случаев позволяет сократить длину структурной таблицы и число букв в массиве «входной сигнал» этой таблицы. & & Рис. 9-12. Логическая схема, по- | | | | | строенная без узла (й) и с узлом (б) а" Можно показать, что введение узлов всегда дает выигрыш в цене схемы, если под ценой схемы понимать сумму цен элементов, а под ценой элемента — число входов в этот элемент. Вместо об- Рис. 9-13. Два варианта логической схемы при ат~ а" щего случая рассмотрим пример, когда введение узла наименее выгодно. Соответствующий подграф ГСА изображен на рис. 9-11. Логическая схема для этого подграфа без использования узла Q приведена на рис. 9-12, а (4 элемента, 14 входов), а с использова- нием узла — на рис. 9-12, б (5 элементов, 11 входов). Если же со- стояния ат и ап закодированы так, что ат = ап или рт = р" (пред- положим для определенности, что ат — ап), то схема на рис. 9-12, б 195
Цреобразуется в схему на рис. 9-13, а (5 элементов, 10 входов). Если же а'п ввести в верхние конъюнкции, то схема примет вид схемы на рис. 9-13, б (4 элемента, 10 входов). Кроме того, при ис- пользовании узлов выходные сигналы Yr и Yt, а также функции возбуждения F (G (Q), as) и F (G (Q), а„) снимаются по одному разу, тогда как в схеме па рис. 9-12, a Yr и Yt, а также функции возбуждения на переходах в as и ар выдаются дважды, т. е. для каждой из этих функций потребуются два входа в соответствующие схемы ИЛИ. Нетрудно видеть, что если число путей в узел более трех (или число путей из узла более трех), то и число элементов в схеме при использовании узлов всегда меньше числа элементов в соответст- вующей схеме без узлов. Алгоритм синтеза логической схемы микропрограммного авто- мата по обратной структурной таблице с узлами будет рассмотрен в § 9-6. 9-5. Факторизация булевых функций Т Пусть задана функция /= \J X, множества двоичных переменных Х= t-=A <= (Xi, . . . , хд], где Xf — А х/r, t= I, . . . , Т‘, х1г £ X. Для решения Г=1 задачи факторизации функции f будем использовать многошаговый процесс, в котором на первом шаге всевозможными попарными пересечениями в множе- стве А = [At, . . ., Хт} находятся общие части (X/— (х^, . . ., t — 1.....Т}. Если пересечение некоторых, например первых п, множеств Х1; . . ., Хп не пусто: П X; = z + 0, ш где Z = {zt, .... zm}, г,£Х, i = l...tn, то Z = A г,- можно вынести i=l а скобки: / Il \ I т \ f = z V x'. V v xt , \/=l 1 / ) где Xj— Xj\Z. Выигрыш в цене схемы в результате подобных преобразований (вынесе- ния m букв из п конъюнкций) равен W (Z) = щ (п—1) — 2 + г при п < Т и W (Z) = m (л—1)—1 А г при п = Т, где г — число исходных конъюнк- ций, в которых после вынесения остается по одной букве. В алгоритме фак- торизации отдельной функции после нахождения общих частей делается вынесение за скобки общей части, имеющей наибольшую цену. В результате вынесения из А образуются два множества До = {Х(, . . . , Хп) и Во = = {Z, Хп+1; . . . , Хг}, для которых задача на следующем шаге решается отдельно. Процедура заканчивается, когда на каком-либо шаге оказывается, что не существует общей части с ценой больше нуля. Задачу вынесения общего множителя за скобки, в отличие от рассмот- * ренной ниже задачи факторизации системы функций, будем называть вы- 196
11 13 Рис. 9-14. Пример вынесения вверх: а — условное изображе- ние процесса, б — логическая схема 197
несением вверх по аналогии с тем, что общий множитель выносится над схе- мой ИЛИ. Этот алгоритм необязательно приведет к оптимальной схеме, так же как и алгоритм, изложенный в [30], где на каждом шаге предлагается выносить общую часть, имеющую наибольшую длину. Эксперименты над комбинационными схемами микропрограммных автоматов показали, что вы- несение по наибольшей цене в большинстве случаев дает решение, близкое к оптимальному. Процедура вынесения по этому алгоритму для функции f = Xj V Х2 V Х3 V ^4 V Хв, гДе = X1X2X3X4XiXeX7X11, Х2 = XrX2X3Xs, Х3 x4x2x3XqX4qXj4xj2» X4 XgXgXg и XB — x4x2x3XqXjqXj2x43 иллюстри- руется рис. 9-14, а, б. Дадим краткие пояснения к этому примеру г. Ищем попарные пересечения в исходном множестве А: Х1= 1, 2, 3, 4, 5, 6, 7, 11 Хг Х2= 1, 2, 3, 8 1, 2, 3 х2 Х3= 1, 2, 5, 6, 10, 11, 12 1, 2, 5, 6, 11 1, 2 Х3 Х4 = 5, 6, 9 5, 6 — 5, 6 Х4 Х5= 1, 2, 5, 6, 10, 12, 13 1. 2, 5, 6 1, 2 1, 2, 5, 6, 10, 12 5, 6 Получаем общие части: Z1= 1, 2, 3 (Х1; Х2), Z4 = 1, 2, 5, 6 (Хр Х3, Х5), Z2=l, 2, 5, 6, 11 (Х4, Х3), Z5 = 1, 2 (Хг, Х2, Х3, Хв), Z3 = 5, 6 (Хр Х3, Х4, Х6), Z,= 1, 2, 5, 6, 10, 12 (Х3, Х5). В скобках после общей части указаны конъюнкции, в которые она вхо- дит. Выигрыш от каждой общей части: 1F(Zi) = 2, W'(Z2) = 3, IF(Z3) = 5, F(Z4) = 6, F(Z5) = 4, B7(Z„) = 6. На первом шаге для вынесения выбирается общая часть Z4, имеющая наибольшую цену. В результате этого из исходного множества А = {Х4, Х2, Х3, Х4, Х5} образуются два множества: Ло — {Хр Х3, Х5|, Xi = Xj \Z4, x3 = x3\z4, x5 = x5\z4, B0={X2, x4, z4|. Ищем пересечения в множестве Ло: xj = 3, 4, 7, 11 Х3= 10, 11, 12 Xg= 10, 12, 13 з 10, 12 Z7= 11 (Хр Х3), W (Z7)= — 1, Z8=10, 12 (X', X'), F(ZS) = 2. Вынесение Zs порождает два множества: Ai = {X”, X3j , Х3= X3\Z8, X5==X5\Z8, В[=(Хр Z&\ , В каждом из множеств Л1( В, конъюнкции не пересекаются. Дальней- шие вынесения невозможны. 1 В изложенном ниже примере переменные (xt) заменены их индексами(i). 198
Переходим к множеству Во: Х2= 1, 2, 3, 8 Х« Х4 = 5, 6, 9 - Xt Z4 = 1, 2, 5, 6 1,2 5, 6 Z9 = 1, 2 (X,, Z4), W (Z9) = О, Zu, = 5, 6 (X4, Z4), IF (Zl0) = 1. Вынесение Zlo порождает два множества: Л2={Х4, Z4|, Х4 X4\Z10, ^4 = ^4\10’ ^з= 1-^2’ 2ю). В каждом из множеств Л2, В2 конъюнкции не пересекаются, дальнейшие вынесения невозможны. Выигрыш в результате всех вынесений IF’ = IF' (Z4)+ + W (Zs) + W (Zlo) = 9. Экспериментальные исследования алгоритма вынесения вверх, прове- денные автором, показали, что включение этого алгоритма в комплекс про- грамм автоматизации синтеза микропрограммных автоматов позволяет сни- зить цену схемы в среднем на 12% даже после построения преддешифратора и схем функций, реализующих узлы. Задача факторизации системы булевых функций (вынесение вниз) также сводится к последовательности вынесений, но из множества функций ft, . . ., fr от множества двоичных переменных X— {xb . . ., Х[_}, где ft= xtl 0 Q ... Q xtRt\ t= 1, .... T. Здесь операция Q — дизъюнкция или конъюнкция, но обязательно только одна из них. На первом шаге в множе- стве А = {Хх, . . . , Х?-} находятся общие части (Х/= {х^, . . . , Х/^|). Если пересечение некоторых, например первых п, множеств Xj, . . . , Хп не пусто: П X,- = Z00, /-1 где Z == {гг, . . . , zm}', zi£ X; i = 1т, то множество функций можно реализовать в виде декомпозиции, такой, что f.=^f(Xj, (где Х~0 при X/ = Z или X’. = (х'- \Z) U {хр} при Xj ^1(хрфХ\ • • • 0 zm; / = 1, . . . , п). Выигрыш в цене схемы в результате вынесения общей части Z с т вхо- дами равен W (Z) = т (п— 1) — п + г, где г — число множеств из Хь . . ., Хп, полностью совпадающих с Z, поскольку соответствующие им функции можно снять прямо с выхода схемы для общей части Z. В алгоритме факто- ризации системы функций после нахождения общих частей в множестве А делается вынесение общей части, имеющей наибольшую цену, в результате чего образуется новое множество Ло = {X......Хп, Xn^_lt . . . , ХТ, Z | . Затем та же процедура применяется к множеству Ло и т. д., до тех пор пока на каком-либо шаге не окажется, что не существует общей части с ценой больше нуля. Если последовательно сделаны вынесения Zo, Z4, . . , ZR с ценами W (Zo), IE (Zj), . . ., W (Zd), to общий выигрыш в результате R этих вынесений W = У W (Zr). г-0 Процедура вынесения по этому алгоритму для системы функций А = X1X.iX3XiX',X6X7Xll, fl = ^jXjjXgXg, 199
h = /5 = х^ХцХеХюХ^ иллюстрируется рис. 9-15, а, б. Дадим краткие пояснения к этому примеру. Ищем попарные пересечения в исходном множестве А = {Х1( Х2, Хз, Х4, Х6}; 1.2 5 6 Рис. 9-15. Пример вынесения вниз: а — условное изображение процесса, б — логическая схема Хг=1, 2, 3(Х1( Х2), Z4=l, 2, 5, 6(Xj, Х3, Х5), Z2=l, 2, 5, 6, U(Xt, Х3), Z5= 1, 2(Xn Х3, Х3, Х5), Zs=5, 6 (Х4, Х3, Х4, Х5), Ze= 1, 2, 5, 6, 10, 12 (Х3, Х8). Выигрыш от каждой общей части: W (Zj) = 1, Г (Z2) = 3, F (Z3) = 2, W (Z4) = 5, r (Z6) = 2, W (Ze) = 5. На первом шаге для вынесения выбирается общая часть Z4, имеющая наибольшую цену. В результате этого из исходного множества образуется множество л0= {Хр х2, х3, х4, х5, z4}, х;= (х4\ z4) и {13}, х3= (x3\z4) и {13}, Xj = (x5\z4) и {13}. 200
Ищем в множестве букв: Ао попарные пересечения, содержащие не менее двух Х\ =3, 4, 7, 11, 13 Х2 = 1, 2, 3, 8 А3=10, И, 12, 13 Х4 = 5, 6, 9 Х5= 10, 12, 13 Z4 = 1, 2, 5, 6 z7= 11, 13 (Хр хз), W (Z7) = o, Z8=l, 2(Х2, Z4), r(Z8) = 0, Z9=10, 12, 13 (хз, Х5), U7(Z9) = 2. Zlo=5, 6(Х4, Z4), 117(Z1O) = O, После вынесения общей части Z = 10, 12, 13 получаем новое множество Alt в котором нет пересечений, содержащих более одной буквы. Выигрыш в результате всех вынесений W = W (Z4) + W (Z9) =54-2=7. При синтезе микропрограммного автомата по ГСА после построения всех переходов в узлы и состояния схема может быть минимизирована за счет операций вынесения вверх (для каждой отдельной функции) и вынесе- ния вниз общих частей у схем И для различных функций. В качестве примера на рис. 9-16, а приведена схема, построенная по табл. 9-5, представляющей собой фрагмент некоторой структурной таблицы (пена схемы равна 70), а на рис. 9-16, б — та же схема после доопределения всех функций возбуждения и минимизации с помощью указанных операций (цена схемы 50). Таблица 9-5 Фрагмент обратной структурной таблицы Исходное состоя- нне Код исходно- го сос- тояния Состоя- ние пере- хода Код состоя- ния перехода Входной сигнал Выходной сигнал Обязатель- ные функции возбуждения Я1 11101 а. 00100 ХхХ2Х3Х^ У1У-2 Я1 11101 Х1Х2Х5Х^Х6 У1У.>. R1R2R5 а2 11111 Х1Х2-^.Лх5 У1Уг R1R2K4K5 аз 00111 XjX^e У1УвУ1 r4r5 at 00101 У1У4У5 R6 #4 00101 *1X6^8 I/1I/4I/5 Rs ав НПО Х1Х2Х3Х4Х5 У1У2 R1R2R4 Кроме вынесения вниз для схем И эта операция может быть использо- вана при построении схем ИЛИ, например для выходных сигналов и компо- нентов функций возбуждения. Покажем это на примере табл. 9-6, являющейся частью структурной таблицы некоторого автомата. Так как в данном случае конкретный вид входных сигналов безразличен, они представлены в таблице в виде Х4, . . ., Х7. 8 Заказ № 2010 201
Pf -r4 ?3 X-i XS ?! X4 X5 X1 x2 x3 XS X1O Рис, 9-16. Логическая схема, построенная по табл. 9-5: а — без вы- несения общих множителей, б — с вынесением общих множителей 202
Фрагмент структурной таблицы Таблица 9-6 Исходное состоя- ние Код ИСХОД- НОГО со- стояния Состоя- ние перехода Код состоя- ния перехода Входной сигнал Выход- ной сигнал Обязательные функции возбуждения аИ 1010010 at 1010000 УпУн at\ 1010010 х2 У 1зУ at2 0010011 X; — StR,R7 at3 1010011 х4 У1\ RsRi ati 0111111 X, УпУи S,R2R4R5R8R, ati 0111111 А'6 У !]У t2 s4r2r4r5r6r, а1ъ 0110110 А, У^Уи SiR2R5^6 Очевидно, что при построении схем, соответствующих каждой строчке табл. 9-6, получим семь схем И, с которых снимаются записанные в этих строч- ках выходные сигналы и функции возбуждения: И 1----------ytl, yt2, Rs', И 2----------yi3, yti, Rs-, И 3-----------Sj, Re, R7; И 4----------ytl, Rs, R7; И 5----------ytl, yt2, S., И 6----------ytl, yt2, Sj, И 7 yts, уц, S1( R:, R4, R:„ r6, r7-, R2, Rit R5, Rs, R7; Rz, R5, R6. Для получения каждого выходного сигнала или компонента функций возбуждения необходимо построить схему ИЛИ, на которую подать выходы тех схем из И2, . . ., И7, с которых снимается этот выходной сигнал илн этот компонент функции возбуждения (рис. 9-17, а). Представим выходные сигналы и функции возбуждения в виде слов, составленных из индексов схем, с которых они снимаются: (Ri = l, 4, 5, 6; R2 = 5, 6, 7; 1 y/3=l, 5, 6; R4 = 5, 6; У/з = 2, 7; #5=5, 6, 7; (9-2) yti = 2, 7; R6= 1, 2, 3, 4, 5, 6, 7; S4 = 3, 5, 6, 7; R7 = 3, 4, 5, 6. Если теперь к множеству слов А = {ytl, yt2, yt3, уц, S4, R2, R4, Rs, R6, R7} применять процедуру вынесения вниз, используя на каждом шаге общую часть с наибольшей ценой, то получим схему на рис. 9-17, б, цена которой на 15 единиц меньше цены схемы на рис. 9-17, а. Экспериментальные исследования алгоритма вынесения вниз показали, что включение этого алгоритма в автоматизированную систему синтеза мик- ропрограммных автоматов позволяет снизить цену схемы в среднем на 19% даже после построения преддешифратора, функций узлов и применения алго- ритма вынесения вверх. Процедура вынесения вниз может быть использована при минимизации схем ИЛИ для выходных сигналов н функций возбуждения с одновременным 8: 203
доопределением функций возбуждения. Для этого каждый выходной сигнал представим в виде слова, состоящего из индексов схем, с которых он снимается (как в выражениях (9-2)). Аналогичное слово для компонента S/ (7?/) функции возбуждения представим двумя частями: а) обязательной частью Cf — множеством индексов схем И, с которых снимаются обязательные функции возбуждения; °) fS Ид 1 [7 [Г Г/ 1 Г7 | 1 TTTT W TT TT ТПТ Tn' Tr Hf и5 и6 и2 и7 и2 и7 и5 и6 и7 И. и5 A'g Рис. 9-17. Реализация выходных сигналов и функций возбуждения из табл. 9-6 без вынесения вниз (а) и с вынесением вниз (б) б) необязательной частью Dj (ее в множестве St (Rt) заключим в скобки) —• множеством индексов схем И, с которых можно снять этот ком- понент St (Rt), если доопределить функции возбуждения на всех переходах. Так, после доопределения функций возбуждения на переходах в состоя- ние at из табл. 9-6 получим следующее исходное множество: 71 = (У/1, У/2’ У/3» У/l’ ^?2> ^5’ ^6* Ун = 1, 4, 5, 6; У12 = 1, 5, 6; г//з = 2, 7; Ум-2, 7; Sj = 3, 5, 6, 7(1, 2, 4); R2 = 5, 6, 7(1, 2, 3, 4); Ri=5, 6(1, 2, 3, 4, 7); Л5 = 5, 6, 7(1, 2, 3, 4); R6= 1, 2, 3, 4, 5, 6, 7; Д7 = 3,'4,75, 6(1, 2, 7). (9-3) 204
В исходном множестве А, как и в рассмотренной процедуре вынесения вниз, делаем всевозможные попарные пересечения, не различая букв в обя- зательной и необязательной частях S/ (Rt). В результате находим общие части Zoi, . . ., Z0/.-(l. В скобках после Zoe (е = 1, , . Ео) записываем уп, если общая часть ZQe входит в уп, и S* (R*), если ZOe входит в S( (R) и Zoe Г) Ct+£), т. е. хотя бы одна буква из Zae входит в обязательную часть St(Rt)', k = P(ZOenDt)—число букв из необязательной части St(Rt), содержащихся в Zoe- Если же Zoe П Q = 0, то St(Rt) не записывается в скобках после Zne: считается, что Zoe не входит в St (Rt)- Цену общей части при вынесении вниз с учетом доопределения функций возбуждения определим по формуле: W (Z) = т(п — 1)— п + г— р, (9-4) где пг, п и г — то же, что и в алгоритме вынесения вниз без учета неопределен- ности, ар — суммарное число верхних индексов у функций возбуждения, стоящих в скобках после общей части. Включение р со знаком минус в выражение (9-4) объясняется тем, что уменьшение цены схемы в результате вынесения вниз учитывается только для обязательной части, так как исходная схема (например, на рис. 9-17, а) не содержит входов для реализации необязательных функций возбуждения. Как и выше, из полученных на первом шаге общих частей выбираем Zo, такое, что IK (Zo) = гпах (й7 (Zoe)). После вынесения общей части Zo обра- 1<е<£0 г зуем новое множество Ао по тем же правилам, что и в алгоритме вынесения вниз, затем вновь находим общую часть с наибольшей ценой Zlt строим мно- жество Л1 и т. д., до тех пор пока не найдется ни одной общей части, имею- щей цену больше нуля. Суммарный выигрыш в результате последовательно- R сти вынесений Zo, Z1; . . . , Z% равен W (Zr). r=0 Проиллюстрируем алгоритм на примере выражений (9-3): Уп~ 1, 4, 5, 6 у/2= 1, 5, 6 У1з = 2, 7 УМ =2, 7 $1=3, 5, 6, 7(1, 2, 4) R2 = 5, 6, 7(1, 2, 3, 4) Rt = 5, 6(1, 2, 3, 4, 7) R5 = 5, 6, 7(1, 2, 3, 4) R6 = 1, 2, 3, 4, 5, 6, 7 R7 = 3, 4, 5, 6(1, 2, 7) Ул 1, 5, 6 1, 4, 5, 6 1, 4, 5, 6 1, 4, 5, 6 1, 4, 5, 6 1, 4, 5, 6 1, 4, 5, 6 У i2 — У/s — 2, 7 Vti 1, 5, 6 2, 7 2, 7 Остальные 1, 5, 6 2, 7 2, 7 1, 2, 3, 4, 5, 1, 5, 6 2, 7 2, 7 1, 2, 3, 4, 5, 1, 5, 6 2, 7 2, 7 1, 2, 3, 4, 5, 1, 5, 6 2, 7 2, 7 1, 2, 3, 4, 5, 1, 5, 6 2, 7 2, 7 1, 2, 3, 4, 5, Z1=l, 2, 3, 4, 5, 6, 7 (Sf, R%, R5, R^, Rfy Z2=l, 4, 5, 6(yfl, Sf, Rl Rl Rl R°, R>); Z3=l, 5, 6^,, yt2, S{, R>, R>, R>, RO, R>); ^4 = 2, 7 (y/3, yu, S}, R‘, R>, RO). W (Zj) = 7-5—64-6— 19= 16; Г (Z2) =4-6 —7 + 1 — 9 = 9; W (Z3) = 3-7— 8+ 1 — 5 = 9; IF (Z4) = 2-5 — 6 + 2—3 = 3; 205
IF (Zi) = max W (Zt) =16 — максимальная цена у общей части Zlt кото- lsi<A рую и выносим из Slt R2, Rt, Rs< Re> Rt> после чего эти функции возбужде- ния удаляются из исходного множества, так как все они совпадают с общей частью. Выход схемы, реализующей Zx, обозначим цифрой 8. Находим пе- ресечения в новом множестве Ао: уп = 1, 4, 5, 6 Ун Ун = 1 . 5, 6 1, 5, 6 У У is = 2, 7 — — yts Ун = 2, 7 — — 2, 7 Ун Zj= 1, 2, 3, 4, 5, 6, 7 1, 4, 5, 6 1, 5, 6 2, 7 2, 7 Z5 = 1, 5, 6(yfl, У12’ ^i)’, (Z5) — 4; Z6= 1, 4, 5, 6(ул, Zj); w (Z6) = 3; =2, 7(у/3, yti, Zr)-. IF(Z,) = 3. Выносим Z5. Выход схемы ИЛИ, реализующей Z5, обозначим цифрой 9. 1, 5 6 y'tl=4, 9 Uts = 2, 7 Ум = 2> 7 Zj = 2, 3, 4, 7, 9 Z5 = I, 5, 6 y't\ У(з 2, 7 4, 9 2, 7 Ун 2, 7 28 = 4, 9(^'1, zj); IF (Z8) = 1; Z9 = 2, 7(yf3, yfi, Z\\, W[Z9}=3. Рис. 9-18. Схема после вынесения вниз С доопределением функций возбужде- ния A Выносим Z9. Выход схемы ИЛИ, реализующей Z9, обозначим числом 10. Ун =4> 9 У а Z"t = 3, 4, 9, 10 4, 9 Z5 = 1,5,6 — Zg=2, 7 — А Z10 = 4, 9(yn> Z';); IF(Z1O) = 1. Процедура заканчивается вынесением Zlo. Соответствующая схема при- ведена на рис. 9-18. Число входов в логические элементы сократилось на 24 по сравнению с рис. 9-17, a (IF (ZJ + IF (Z6) + IF (Z9)+ IF (Zlo) = 24) и на 9 по сравнению с рис. 9-17, б, где делалось вынесение вниз без доопре- деления функций возбуждения. Очевидно, что эту процедуру вынесения вниз с доопределением можно использовать и в случае неполной определенности выходных сигналов. 206
9-6. Синтез логической схемы микропрограммного автомата по структурной таблице с узлами Изложим последовательную процедуру построения логической схемы микропрограммного автомата Мили с учетом результатов, полученных в предыдущих параграфах. 1. Пусть в структурной таблице имеются пути в узлы Qlt . . . , Qn и состояния а1У ... , ам. Структурная таблица разбивается на N + М массивов, каждый из которых соответствует множеству путей в один узел или в одно состояние. У микропрограммного автомата, заданного табл. 9-4, N = 3 и Л4 = 7. Указанные массивы отделяются друг от друга горизонтальной чертой. 2. Для массива путей в каждый узел Qn (п = 1, . . . , N) строим столько схем И, сколько строчек в структурной таблице занимает ФШ Ф(О,) агр,хв Ф(а}х<х5 a^,xs а, р0 Ф(0рх, с^Рцх,!^ a,pixs Рнс. 9-19. Логические схемы, реализующие Ф (Qx), ФШ, ФШ этот массив. Эти схемы реализуют функцию Ф (Qp) X (Qp, Qn) для пути из узла Qp в узел Qn и функцию as [Is X (as, Qn) для пути из состояния as в узел Qn. 3. Выходы построенных в п. 2 схем И для узла Qn заводятся на схему ИЛИ, с которой снимается функция Ф (Q„). Схемы для Ф (Q3), Ф (Q2) и Ф (Сз) из табл. 9-4 приведены на рис. 9-19. 4. Для функции Ф (QJ делается, если возможно, вынесение вверх в соответствии с изложенным в § 9-5. 5. Каждый массив путей в состояние ат(т — 1, . . . , А4) раз- бивается на столько подмассивов, сколько различных микрокоманд встречается в столбце «выходной сигнал» в этом массиве. Например, на переходах в состояние а6 в табл. 9-4 выдаются две микрокоманды: {г/7, Уа} и \У»}- Пусть в общем случае на переходах в ат выдаются микрокоманды УП11, . . . , YmT. 6. Для каждого подмассива, соответствующего Ymt, строится столько схем И, сколько строчек в структурной таблице занимает этот подмассив. Эти схемы реализуют функцию Ф (Qp) X (Qp, ат) для пути из узла Qp в ат и функцию as0sX (as, am) для пути из со- стояния as в ат. 207
7. Выходы схем И, построенных в п. 6 для подмассива с Ymt, заводятся на схему ИЛИт/, с которой снимаются сигналы микро- операций, входящих в микрокоманду Ynlt. 8. На всех переходах, соответствующих путям из подмассива с Ym(, производится доопределение функций возбуждения. Дооп- ределенная функция возбуждения Fmt снимается со схемы ИЛИт/. Для переходов в состояние а5 из табл. 9-4 соответствующая схема приведена на рис. 9-20, а. |тгпт| Оц PoIthXs Ф№,) Pre. 9-20 Схема переходов в а5: доопределение на переходах с одинаковыми микрокомандами (а), вынесение вверх (б), доопределение на всех переходах (в) 9. Делается, если возможно, вынесение вверх для схемы, со- ответствующей микрокоманде Ymt и функции возбуждения Fmt- Заметим, что это оказалось возможным только после доопределе- ния в п. 8, так как до этого с выходов схем И, собираемых на ИЛИт/, могли сниматься различные функции возбуждения (рис. 9-20, б). т 10. Если П Ymf=£ 0, то строится схема ИЛИт, на входы ко- i=i торой подаются выходы всех схем ИЛИт/ (t — 1, . . ., Т). Со схемы ИЛИт снимаются сигналы микроопераций, входящих в т Ym~ А Ymt, и доопределенная на всех переходах в ат функция t=i т возбуждения Fm= UFmt. Со схем ИЛИт/ после этого снимаются z=i 208
Рис. 9-21. Логическая схема автомата Мили, построенная по табл. 9-4 209
только сигналы микроопераций, входящие в Ymt\Ym. Fmt не снимается с ИЛИт/, так как мы доопределили функции возбужде- ния на всех переходах в ат (рис. 9-20, в). Пп. 6—10 лучше заменить процедурой вынесения вниз для вы- ходных сигналов с одновременным доопределением функций воз- буждения, как это изложено в конце §9-5, однако эта процедура более трудоемка при ручном построении схемы. II. После выполнения пп. 2—10 для N М массивов путей в узлы и состояния из всех построенных при этом схем И делается, Рис. 9-22. Преддешифратор при син- тезе автомата Мура если возможно, вынесение вниз. 12. Для каждого сигнала микроопераций и компонента функций возбуждения, которые Р снимаются более одного раза в построенной выше схеме, стро- ится схема ИЛИ. 13. Из всех построенных в п. 12 схем ИЛИ делается, если возможно, вынесение вниз. Логическая схема автомата Мили, построенная по табл. 9-4, изображена на рис. 9-21. Во избежание гонок и для обеспе- чения устойчивости состояний в схеме используется двойная память. Остановимся кратко на син- тезе логической схемы микропро- граммного автомата Мура по структурной таблице. Построение схем для путей перехода в узлы производится точно так же, как это было изложено в пп. 1-4 для автомата Мили. Синтез функций возбужде- ния и их доопределение также не отличается от случая автомата Мили. Что же касается выходных сигналов, то так как в модели Мура сигналы микроопераций, входящих в некоторую микро- команду, выдаются все время, пока автомат находится в соответст- вующем ей состоянии, для каждого состояния, с которым отождест- влена непустая микрокоманда, необходимо построить конъюнк- цию, равную единице во время нахождения автомата в этом состоя- нии. В этом случае схема правой части преддешифратора будет иметь вид, изображенный на рис. 9-22. Тогда выходной сигнал Y t, снимаемый в состоянии щ, будет равен as
ГЛАВА ДЕСЯТАЯ -------------------------------------- АВТОМАТЫ НА МАТРИЦАХ 10-1. Матричная реализация комбинационных схем и автоматов Достижения интегральной технологии последних лет привели к колоссальному повышению уровня интеграции и создали воз- можность изготовления схем, содержащих до 104 элементов на од- ном кристалле. Задача безошибочного конструирования подобных систем (можно утверждать, что проектирование схем и систем в на- стоящее время практически неразделимо) оказывается невозможным без широкого использования на всех этапах различных формаль- ных математических моделей и средств вычислительной техники. На этапе логического проектирования дискретных систем наи- большие трудности возникают при проектировании устройств уп- равления вследствие их нерегулярности и малой повторяемости отдельных узлов. В связи с этим особый интерес представляют попытки регуляризации структуры управляющего устройства без введения значительной избыточности. Широкое распространение в настоящее время получила реализация управляющего устройства на больших интегральных схемах (БИС) в виде программируемых логических массивов (programmable logic array — PLA) [50, 48]. Такая реализация имеет целый ряд преимуществ по сравнению с синтезом на постоянных запоминающих устройствах, поскольку «наряду с программированием данных (микрокоманд) позволяет программировать их адреса в массиве» [50], что практически лик- видирует многочисленные команды перехода в микропрограмме и позволяет выбирать слово, являющееся функцией нескольких записанных в массиве слов. В то же время процедура построения подобных PLA не формализована и задача их синтеза (программи- рования) в значительной степени решается интуитивными методами. В данной главе также рассматривается реализация управляю- щего устройства в виде PLA, однако вместо программирования используется формальная процедура синтеза управляющего авто- мата. На наш взгляд, использование автоматных моделей в отли- чие от программирования микропрограмм позволяет формализо- вать процедуру проектирования и решить ряд возникающих при этом оптимизационных задач. Некоторые из таких задач мы здесь сформулируем, а в отдельных случаях наметим пути их решения. Прежде чем перейти к синтезу автомата с памятью, напомним мат- ричную реализацию комбинационных схем. Пусть задана система булевых функций flt . . ., fN множества двоичных переменных X ~= [х1; . . ., xL}, представленных в дизъюнктивной нормальной форме: ни fn = Хя1 V • • • V — V Xnfl, п = 1, • • , N, Л=1 211
где ₽ h Xnh ~ ’ XhTfr = С Н ’ %М ~ %hi' ХМ ~ %М- Пусть {Хъ . . ., Хн] —множество термов в системе функ- ций flt . . ., fN. Эти функции можно реализовать двумя матрицами Рис. 10-1. Реализация системы функций в виде двух матриц М1 и М2 (рис. 10-1). Каждая вертикаль М1 соответствует одному Th Л ehi X . = Л Xht транзистор ставится /=1 на пересечении вертикали Хп1г и горизонтали хм при ем ~ 0 (переменная xht входит в конъ- юнкцию Xnh с инверсией) или горизонтали хм при eht ~ 1 (переменная хм входит в Xnh без инверсии). Такое построе- ние объясняется тем, что при реализации конъюнкции в ба- зисе ИЛИ—НЕ ее переменные терму, причем при построении Рис. 10-2. Пример реализации системы V функций должны быть инвертированы. Площадь матрицы S (MJ = 2LH. Площадь матрицы М2 S (М2) = HN. Каждая горизонталь М2 соответствует одной функции из множества . . . , fN, причем 212
при построении fn транзистор ставится на пересечении вертикали Хн и горизонтали fn, если терм Xh входит в дизъюнктивную нор- мальную форму fn. Такое построение определяется способом реа- лизации дизъюнкции в базисе ИЛИ—НЕ, когда входные перемен- ные подаются на элемент ИЛИ—НЕ без инверсии, а выход элемента ИЛИ—НЕ должен еще раз инвертироваться. Так что если необхо- димо иметь на выходе Л42 прямое значение fn (п = 1, . . . , М), то выходы уИ2 должны быть инвертированы. Рис. 10-3. Отмеченная ГСА Матричная реализация системы функций f 1 ~ МА2 V V Мг^з» f 2 ~ ^1-^2 V МАз i fз = А1Лз V МАг V приведена на рис. 10-2.1 Перейдем к синтезу автоматов с памятью. Пусть поведение управляющего устройства описано на языке граф-схем алгорит- мов (ГСА). В качестве примера будем рассматривать синтез микро- 1 На рис. I0-I и 10-2 нагрузка условно изображается в виде сопротивле- ния. В реальных схемах в качестве нагрузки, как правило, используются транзисторы. 213
Таблица 10-1 Прямая структурная таблица автомата Милн ат км K(as) У (<Ягп> fls) F As) Yt 000 а.. 100 х: У1У2 S, Yr «2 100 XtX2 У\У?> S, Yt 010 хгх2 У-У ч S2 Y3 100 100 X3X4X4 У1У10 — y7 «3 он У-.Уч RlS.S, Y. «4 101 ЗД Уз s3 Y. 111 Хз УьУз $2$3 Ys он 000 Х5Х7Х8 — ^2^3 Yo 01 000 х5х7х8 УьУяУъ R-tRg Ys а2 100 Х5Х7 У1У10 S1R2R3 y7 111 Х5 У-УУч Si y8 ^4 101 «1 ООО Х3Х2 У1УзУв R1R3 y9 а2 100 АЛ У1Уы R3 y7 «3 он УьУв RjS2 Ye а3 он х^х2 У-.Уч RjS2 ys 010 000 Х7Х8 — Rt Yo «1 000 Х7Х8 У4УхУо R2 Yg 100 Х7 У1У10 sxr2 y7 «6 111 а5 010 х5 УчУз Ri R3 Y3 Я 5 010 АЛ у9 Ri Rs y4 «6 111 АЛ; УьУп — TYle программного автомата по ГСА, приведенной на рис. 10-3. В со- ответствии с изложенным в § 8-2 построим прямую структурную таблицу автомата (табл. 10-1), реализующего ГСА на рис. 10-3. Здесь также предполагается, что в качестве элементов памяти выбраны триггеры с раздельными входами. Вопросы кодирования состояний будут обсуждаться в § 10-2, там же будут получены коды состояний в табл. 10-1. Нетрудно видеть, что микропрограммный автомат может быть реализован тривиальным образом в виде структуры, изображенной 214
на рис. 10-4. Здесь матрица переходов Л4Х реализует конъюкции Xlt . . . , Хн, соответствующие строкам структурной таблицы, а Л4ф и Му реализуют функции возбуждения памяти и функции выходов как дизъюнкции соответствующих конъюн- кций из множества {Х1; .. Хн]. Так, если в /i-й стро- ке структурной таблицы записан переход из ат в as под действием входного сигнала X (ат, as) —- Xhi1 ehT XhT , то этой строке со- ответствует вертикаль мат- рицы переходов, реали- зующая конъюнкцию %-h ~ А (Цт’ &s) / R. \ /Г \ = Л Т'™ д ХеМ \г=\ ! j (рис. 10-5, а). Здесь Ат — Рис. 10-4. Тривиальная реа- лизация микропрограммного автомата конъюнкция, соответствующая коду К (am) = (eml, . .., emR) состояния п . Д _ ит- т — 1 1 TeinR ' 'Я----------(Н Уп в) етг, {0, 1}, Хм — * * * * * * * * * хм, хм— хм< Тг—Тг, т\ = тг. Пусть микрооперация X„F Уп встречается на перехо- дах Хп1, . . . , ХпР, т. е. уп записана в F строках ° ° ° структурной таблицы. Тог- F да y„=V Xnf (рис. 10-5, б). xrf xrif xrQ f=l Пусть функция возбуж- , o'* ‘о* ‘ ’о__ дения г-го элемента памяти ТТ Т tpr (Sr или Rr) вырабатыва- ется на переходах Хг1, . . ., XrQ, т. е. <рг записана рис. Ю-5. Элементы матриц Мх(а), My(F), М<р(в) в Q строках структурной таблицы. Тогда<pr= V X (рис. 10-5, в). «=1 4 Для микропрограммного автомата средней сложности число переменных L = 30, число строк структурной таблицы И = 200, 215
число элементов памяти 7? = 6 и число микроопераций N = 50. Тогда площадь соответствующих матриц S (М x) = (2L-\-2R) Я=(2-30+2-6) 200= 14,4- 103 бит, S (44^ = 2/?# = 2-6-200 = 2,4-103 бит, S (Му) = NH - 50-200 = 10-103 бит. Суммарная площадь матриц S (М) = 26,8-103 бит. Эти площади оцениваются приближенно в битах — условных квадратах, образованных вертикальными и горизонтальными ши- нами. Более точная оценка сложности логической схемы микро- программного автомата приведена в [37]. Очевидно, что при по- строении управляющего автомата на БИС критерием сложности реализации является площадь, занимаемая его логической схемой, поэтому оптимизация схемы сводится прежде всего к миними- зации площади S (М). 10-2. Минимизация логической схемы при матричной реализации автомата Минимизация площади матрицы Мх возможна путем кодиро- вания логических условий xlf . . . , xL. Пусть в структурной таб- лице в массиве переходов из состояния ат встречается множество переменных Хт = (хт1, . . ., хтр }. Ясно, что Fm L, однако на практике, как правило, Fm (т = 1, . . . , М) существенно меньше числа L элементов в множестве X. Обозначим через G = max | Хт\, где | Хт { — число элементов в множестве Хт. Образуем новое мно- жество двоичных переменных Р = {ръ . . . , ра]и для каждого ат (т = 1, . . . , М) построим взаимно-однозначную функцию fm: Хт -> Р. После этого можно осуществить переход от множества входных переменных X — {xj, . . . , xL} к новому множеству пе- ременных Р = [ръ . . . , ра] (G значительно меньше L) следующим образом: в состоянии ат переменная xt £ Хт заменяется перемен- ной такой, что рг = xz при Ат = 1. Последнее равносильно следующему выражению: mil \ Pg= V V СтЛ Mm, g = 1....G, m=l \/=l / (10-1) где * e Am = A Trmr r=l как и ранее, конъюнкция, соответствующая коду К (ат) состоя- ния ат', cmi — 1, если в состоянии ат переменной х{ соответствует пе- ременная pg, т. е. fm(xt) — pg\ 0 в противном случае. 216
Таким образом, переход от переменных xlt . . . , xL к перемен- ным р4, . . . , ра с учетом кодов состояний равносилен замене эле- ментов множества Хт(пг = 1, . . . , М) различными элементами из множества Р = (рх, . . . , ра]. В нашем примере (см. табл. 10-1): — (хх, х2|, К2 ’ -={*х, х3, х4), Х3-(х5, х7, xs}, Х4 - [х2, х3, х4), Х3 = — [х7, xg), Хв — [х5, х6}. Один из возможных вариантов замены переменных приведен в табл. 10-2. В этой таблице на пересечении строки ат и столбца р„ записан элемент хь если Pg = fm т- е- переменная х, заме- няется переменной pg в состоянии ат. Ясно, что в строке ат должны быть за- писаны все элементы Хт, причем только по одному разу. Выражения вида (10-1) для р1г р2, р3 можно получить непосредственно из табл. 10-2. Очевидно также, что если в табл. 10-2 на пересечении строки ат и Таблица 10-2 Кодирование переменных для автомата в табл. 10-1 Р1 Рг Рз «1 *1 Х2 — (72 Хх Х3 х-4 Из Х3 Х7 х8 а± Х2 Xt Т, — х7 хв <4 х5 Хе — столбца pg стоит прочерк, то функция pg — неполностью определенная и в выражение для pg можно доба- вить, если это приведет к его упрощению, всевозможные члены Атх(, где xt — любая переменная, встречающаяся в столбце рЁ. В нашем примере (доопределяющие члены заключены в квадратные скобки) имеем: Pi А х%х V Л2Х1V A3xf) V Л 4X2 V Асх6 V [А5хг VA Зх2 V А 5X5] = — (Лх V A3V [Л6]) V (Л 4 V [ Л 5]) х2 V (Л3 V Л о V [Л5]) х5, р2 = Л xX2V (A2V Л4) xsV(AsV Л5) х7 \/ Авх6, Ра (A2V Лх''/ [AxV Лв]) x4V (A3V A5V [Лх V Ag]) xa. Пусть состояния автомата alf . . . , ав закодированы так, как это представлено в карте Карно; С учетом неиспользуемых кодовых комбинаций 001 и ПО получим: р1 = Т3х1\/Т2Т3х2\/Т2х3, Р2 = V КхТ2х3 V Кх? 2Х7 V КхТ2хв, Рз~ РчХРА'Р (10-3) 217
Выражения вида (10-1) или выражения (10-3) в нашем примере могут быть реализованы двумя матрицами Mz и Мр (рис. 10-6). Выходы Z1( . . . , Zs соответствуют конъюнктивным членам в выра- жениях (10-1), а выходы матрицы МР — дизъюнкциям функций Ръ • • • . Ра- Площадь матрицы Mz S(/Wz) = (L + 2R) S. Так как L и R — параметры автомата, все возможности минимизации S (Mz) свя- заны с уменьшением числа конъюнкций S в выражениях (10-1). Очевидно, что если уже выбрано кодирование состояний автомата и произведена замена переменных хг, . . . , xL переменными Х1 X, г/ Т R р< Ps Рис. 10-6. Матри- цы, реализующие выражения (10-1) ниях вида (10-1) ръ , pG, т. е. функции pg (g = 1, . . . , G) заданы, S будет минимально в случае кратчай- шей дизъюнктивной нормальной формы системы функций р^ ... , ра. Однако сами функции рА, . • , ра, а следовательно, и площадь матриц ML и M.z зависят от успешного решения двух задач: 1. Нахождения такой замены переменных хг, . . . , xL переменными plt . . . , ра, при которой минимизируется суммарное число по- явлений каждой переменной хг (I = 1, . . . , L) в различных столбцах pg (g = 1, . . . , G) таб- лицы вида табл. 10-2. 2. Выбора такого кодирования состояний автомата, при котором происходило бы макси- мальное склеивание конъюнкций в выраже- и минимизировалось бы, таким образом, число импликант в дизъюнктивной нормальной форме системы функций .pi, . . . , рв. Каждому элементу р„ g Р поставим в соответствие множество Рг (g = 1, . . • , G): Pg={^|Pg=L(^)> m = h •••> м), т. е. Pg — это множество элементов, записанных в столбце pg табл. 10-2. Тогда замена переменных хх, - - , xL переменными рл, . . . , ра сведется к расщеплению множества X = {х1( . . . , xL] на подмножества Р}, • • • , PG. Ясно, что это совсем не обязатель- ное разбиение X: не исключен случай РгПР/т^0 при i j. В нашем примере (см. табл. 10-2) РгГ)Р2 = (х2). Пусть 1, если Xi £ Pg, 0 в противном случае. Очевидно, что решение первой задачи будет тем лучше, чем меньше значение функции a L — 11=1 218
Оптимум имеет место, когда множество X разбивается на непе- ресекающиеся подмножества Р1; . . . , PG. В этом случае Ясно, что задача Рис. 10-7. Граф отношения £ однако такое разбиение не всегда возможно. Покажем, что задача замены переменных может быть разбита на несколько независимых подзадач меньшей размерности. Для этого на множестве . . ., зададим отношение 5, такое, что Х&Х^Х^ находится с X/ в отношении g), если и только если XtГ| X] 0 (I, /6(1, • • •, М), i=/=j'). Почти сразу видно, что эта задача разбивается на столько подзадач, на сколько компо- нент связности разбивается граф отношения решается отдельно для множества вершин в каждой компоненте. В нашем примере (рис. 10-7) имеем две подзадачи: распределение Хх, Х2, Х4 и распределение А'3, Х5, Хв. Перейдем к задаче кодирования состояний. Очевидно, что для лучшего склеивания термов в функции pg (выражение (10-1)) соседними кодами должны быть закодированы состояния ат и as, если в табл. 10-2 на пересечении столбца pg и строк ат и as стоят одинаковые логические условия (или, например, в одной из этих строк стоит некоторое логическое условие, а в другой строке — прочерк). Зададим на множестве А = {а1; . . . , ам] состояний автомата отношение связности <о, причем атаап (пг п), если и только если выполняется одно из условий: а) в табл. 10-2 существует столбец pg, такой, что xmg = хпе, где xmg £ Хт и xng £ Хп1 б) в табл. 10-2 существует столбец pg, такой, что в строке ат стоит некоторое логическое условие xITlg, а в строке ап — прочерк. Построим граф этого отношения (рис. 10-8 для нашего примера). Взвесим дуги этого графа следующим образом. Каждой дуге графа а (ат,ап) припишем вес bmn= 2 (стп + ^пп}, где ^mn[demn) — не- g=i который вес, приписываемый дуге (ат, ап), если выполняется условие «а» (условие «б») существования отношения ат<мп. Если, например, взять clzl -3 и ^ш=1,‘ то в нашем примере дуге (а3, аб) должен быть приписан вес Ь35 =- 7, так как с|з = 3 (в столбце р2 в строках а3 и а& стоит переменная х7), с35 = 3 (в столбце р3 в строках а3 и а5 стоит переменная х8) и = 1 (в столбце рг в строке а3 стоитх5, а в строке аъ—прочерк). Соседним кодированием, 1 Ясно, что веса могут быть выявлены в результате экспериментов. 219
очевидно, необходимо в первую очередь кодировать состояния, ко- торые соединены дугами с наибольшим весом. Эта задача на прак- тике удовлетворительно решается известными методами [331. При небольшом числе состояний (до 20—25) перспективным, на наш взгляд, является метод ветвей и границ [23]. Матрицы Мг и Мр, построенные по вы- ражениям (10-3), изображены на рис. 10-9. В Mz девять вертикалей, так как в (10-3) девять различных конъюнкций. В МР—три горизонтали, так как вводятся три новые переменные plt р2, ря. Для минимизации площади матрицы Му закодируем каждую микрокоманду Yt (t = 0, 1, . . . , Т) двоичным кодом К (.Yt) = (еа, . . . , efD) длины D(ew£ (0, 1}, £> > log2 (Т + 1)). После кодирования ми- крокоманд матрица MY заменится тремя матрицами: Mq, Мв и Му (рис. 10-10, а). Функция qd (d = 1, . . . , D) на Рис. 10-8. Граф отноше- ния со выходе матрицы ми- крокоманд определяется выражением Ен<)—( t > f . -т С . ! \ __ t и— t \ 11 ст? _ —')— —)— t х3 ) г \ - Xs — —t— —— L- —< >— Xg r \ -,Х7 Х9 т А Z i_ f 11 Ч » f 1 Т1 т — — — "4J l\ '\ f “4 t~- ) т Тг ——Ч г— uj —4' Тг Т т >3 1 # Pi Рг Мр Рз Qd V Cdh^h) Л=1 где 1, если d-и разряд кода с _ микрокоманды на пе- dfl реходе Xh равен 1; 0 в противном случае. Обозначим через Bt конъ- юнкцию, соответствующую коду К (Yt) = (еа, . . . , etD) микро- команды Yt (г = 0, 1, . . . , Т): D = Л qedd, qd = qd, Qd^Qd- d~ 1 Конъюнкции Bt (t = 1,..., Рис. 10-9. Матрицы Mz и MP реализуются матрицей Мв. Микрооперации уп (и = 1...., N) реализуются матрицей микроопераций Му, на выходах ко- торой т где #n = V cniBt, t=\ 1, если yn£Y t\ 0 в противном случае. 220
Площадь этих матриц S(M4) = HD, S(MB) -2DT, S(My) TN. Заметим сразу же, что так как в различных микрокомандах, как правило, содержится мало одинаковых микроопераций, часто удается закодировать микрокоманды таким образом, что боль- шинство функций уп (п —I,..., N) реализуются одной конъюнк- цией. В связи с этим практически отпадает необходимость в матрице Мв, структура имеет вид рис. 10-10, б, а площадь матрицы микро- операций Му в этом случае равна S (Ми) = 2DN. Для автомата средней сложности получим S(M4) + S(My) = H-D + 2D-N = 200-6+ 2-6-50 = 1,8-103 бит, что в 5 с лишним раз меньше площади матрицы MY (10-103бит) в схеме на рис. 10-4. Рис. 10-10. Реализация выходных сигналов тремя матрицами (а) и двумя матрицами в случае склеивания выражений для уп в одну конъюнкцию (б) Очевидно, что наилучшим в смысле минимизации площади мат- риц следует считать такое кодирование микрокоманд, когда функ- ция каждой микрооперации уп (/г = 1, . . . , N) представлена од- ной конъюнкцией (если это возможно). Покажем, что задача кодирования микрокоманд может быть разбита на несколько независимых подзадач меньшей размерности. Для этого на множестве микрокоманд зададим отношение совме- стимости ф, такое, что УДфУр если и только если У; р Y, =+ 0. Введенное отношение рефлексивно, симметрично, но нетранзи- тивно. Построим граф этого отношения. Ясно, что если этот граф разбивается на k компонент связности (на k несвязных подграфов), то задача кодирования микрокоманд разбивается на k подзадач в том смысле, что мы не должны заботиться о склеивании кодов мик- рокоманд, попавших в различные подграфы. В пашем примере (рис. 10-3): Уо=0. №}- у2= Уз}, Уз^{У~, Уз\, 221
{Ув}, ^5— (#з!> ^6 — {^5, Ув]> Ую)> 8 ~~ 11/4' .Уз1> ^9-"= \Уи У», У»}> Ую - ]Ув< Ун)- Граф отношения совместимости (без петель) приведен на рис. 10-11. Видно, что задача кодирования микрокоманд разбилась на четыре независимые подзадачи. Можно предложить несколько (в основном эвристических) алгоритмов кодирования микрокоманд, дающих не- плохие практические ре- зультаты. Не останавли- ваясь на этом, доделаем пример, закодировав ми- Рис. 10-11. Граф отношения ф выражения для микроопераций (для крокоманды так, как пока- зано в карте Карно (табл. 10-3). Получим следующие нашего примера результат склеивания с учетом неопределенности см. по табл. 10-3): У1 = Bi\/B2 VB7 = <?i<72> У% — ^1 = <7НзУ4, Уз = ®2VBs= 9171, ^4 = BgV^s — г/5 — Вв\/В10 — /ЦД’Д, Ув~ Be—qtq3qi, y-i~Bs = qsqi, yg = B3\f В8\'В9 —q^q^, yr!-Bi’Bl:t--qiq.iqi, (Ю-4) //in—B7 — q^q^i, Ун — Blo — После замены логических условий и кодирования микрокоманд строим новую структурную таблицу автомата, в которой в массиве переходов из состояния ат (т — 1, . . ., М) элементы Хт заменены элементами множества {Pi, . . ., pG}. В нашем примере по табл. 10-1 с учетом табл. 10-2 построена табл. 10-4. В приведенной таблице добавлены еще три столбца: кодов микрокоманд К (Kz) из карты Карно в табл. 10-3; символов тех компонентов qd микрокоманды Yt, которые в коде этой микро- команды принимают значение единицы; номеров строк по порядку. На рис. 10-12 приведена полная структура матричной реализа- ции автомата, построенная по табл. 10-4. Для устранения гонок в автомате используется двойная память и синхронизирующий сигнал t от генератора синхроимпульсов. Прокомментируем кратко эту схему. Матрицы Mz и Мр взяты из рис. 10-9. Матрицы М^, Ми Л4? имеют 21 вертикаль, каждая вертикаль соответствует одной строчке структурной таблицы (табл. 10-4). В матрице 6 горизонталей (три триггера памяти с раздельными входами), в матрице 4 горизонтали (код каждой микрокоманды содержит четыре компонента), а в матрице Му 11 вертикалей (по числу микроопераций). 222
Таблица 10-4 Структурная таблица после замены переменных и кодирования микрокоманд О к 0, K(as) X (am,as) Y (atn>as) F(am>as) Yt K(Yt) qa. п а1 ООО а2 100 Pt У1У2 S, Yt 0110 ЯзУз 1 а2 100 Р1Р2 У1УЗ Si y2 0111 ЯгЯзУ1 2 аъ 010 Pt Р-2 У-У» S-2 Y3 1101 Я\ЯгЯ1 3 аг 100 а2 100 PiPlPS У1У13 — Y-, 0100 Яг 4 а3 он P2P1P3 УьУв Ye 1010 Я1Яз 5 at 101 PiPl Уз S3 y5 OOH Я;Я1 6 “в 111 Рг У2Ув S2S3 Ys 1110 Я1ЯгЯз 7 а3 он «1 000 Р1Р2Р3 — ^2^3 Yn 0000 — 8 а1 ООО Р1Р2Р3 УУУЯУч R2R3 Ys 1111 Я\Я/!:Я1 9 а2 100 P1P2 У1У13 Yt 0100 Я-2 10 ая 111 Pl У1Ув Si y8 1110 Я>ЯгЯз И <4 101 000 P2P1 ViV-Ph RtRg Yg 1111 Я1ЯгЯзЯ1 12 а2 100 Р2Р3 У1У13 R3 Y t 0100 Яг 13 аз он Р2Р3 УзУв R1S2 Yg 1010 ЯгЯз 14 аз он P>Pl У;,Ув R1S2 Yg 1010 Я1Яз 15 010 th ООО Р2РЗ —- R2 Y„ 0000 — 16 «1 ООО Р2Р3 УдУзУз R2 Y 9 1111 Я1ЯгЯзЯ1 17 аг 100 Рг У1У10 SiR2 Yt 0100 Яг 18 аЪ 111 а& 010 Pt УчУъ RiR3 Y3 1101 Я1ЯгЯ1 19 а5 010 PlPi Уз R1R3 Yt 1011 Я\ЯзЯ1 20 ад 111 P1P2 УзУи — Yw 1000 Я1 21 223
2 4 S 8 10 12 /4 16 18 20 Mz -Ф-Ф----------- -Ф-Ч Н И Ь 11 13 15 17 19 21 ®-ф-ф Di !/j Уз Уу Уз Ун 2 4 6 8 10 12 14 16 18 20 Рис. 10-12. Матричная реализация’автомата] 224
так как в первой строке табл. 10-4 исходного состояния К (gJ == конъюнкции PiT1T2T3 в базисе Таблица 10-3 Кодирование микрокоманд в матрице Mq— При построении f( матриц '[М х, Mtf и 1 Mq осуществляется последовательная реализация каждой строки табл. 10-4. В мат- рице Л1х на первой 'вертикали транзисторы ставятся на гори- зонталях pr, Tlt Т2, Т3, входной сигнал р1г а* код = ООО (для образования ИЛИ—НЕ переменные инвертируются). В матрице 44^ на первой вертикали тран- зистор ставится на горизонтали Sb так как обязательная [функция возбуждения в первой строке—S, и конъюнкция Р1ТГТ^ГЭ входит в эту функцию. В Mq на первой вертикали транзисторы стоят на горизонталях q2, так как код микрокоманды выдаваемой на пе- реходе в первой строчке табл. 10-4, равен [ОНО. Аналогично иа второй вер- тикали в Мх транзисторы стоят на гори- зонталях plt р2, 7\, Т2, Т3 (входной сигнал во второй строке р±р2, а код исходного состояния К (аг) = ООО). В 44 ф транзисторы стоят на горизонтали S, (вырабатывается функция возбуждения на горизонталях q2, q3, qt (К (К2)=0111) и т. д. Матрица Му построена по выражениям (10-4). Так как уг = = 9192>т°на первой вертикали Му транзисторы ставятся на гори- SJ, а зонталях qlt q2, так как у2 = транзисторы ставятся на вто- рой вертикали на горизонталях qr, q3, qt и т. д. Заметим также, что если некоторая микрооперация уп встречается только в одной строке структурной таблицы (у2 и у1Г в строках 1 и 21 табл. 10-4), то выходной сигнал уп можно снять непосредственно с соответст- вующей вертикали матрицы Мх. Ясно, что число вертикалей в мат- рице Му в этом случае сокращается. Так, в нашем примере у2 и у можно было бы снять с первой и двадцать первой вертикалей Мх соответственно, удалив первую и одиннадцатую вертикали матрицы Му. В заключение отметим, что сокращение площади матрицы пере- ходов Мх, матрицы возбуждения М,, и матрицы микрокоманд Му возможно путем нахождения кратчайшей дизъюнктивной нормаль- ной формы системы функций (Sj, Rlt . . . , SR, Rr, qlt ... , fe}. При этом уменьшается число столбцов Н этих матриц. Площадь матрицы возбуждения М1{ может быть уменьшена соответствую- щим выбором элементов памяти автомата. В частности, при исполь- зовании D-триггеров, имеющих один вход, число строк этой матрицы сокращается вдвое. 225
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ.................... . Автомат абстрактный 12 — асинхронный 21 — детерминированный 16 — конечный 15 — микропрограммный 168 — Мили 14 — Мура 14 — полностью определенный 15 — полный 88 — синхронный 21 — структурный 87 — частичный 15 Автоматы изоморфные 65 — эквивалентные 49 Алфавит 13 — входной 12 — выходной 12 — состояний 12 — структурный 87 Базис сети 61 Биекция 10 Блок разбиения 66 Вершина конечная 116 —начальная 116 — операторная 116 — условная 116 Входная функция компонентного автомата 61 Входное слово допустимое 29 Входной алфавит сети 60 Вынесение вверх 198 — вниз 199 --- с доопределением 204 Выполнение ГСА на последователь- 'ности наборов 118 Гонки 105 Граф автомата 16 Граф-схема алгоритма 116 ---содержательная 121 Двойная память 105 Доопределение функций возбужде- ния 186 Дополнение множества 6 Задача декомпозиции автомата 66 — композиции автомата 64 Значение ГСА на последовательности наборов 118 Инъекция 10 Канонический метод структурного синтеза 86 Квадрат множества 7 Класс простой 39 — совместимости 31 • максимальный 31 — существенный 38 — эквивалентности 10 226 Кодирование ГСА при объединении 165 — логических условий при матрич- ной реализации 216 — микрокоманд при матричной реа- лизации 220 — состояний при матричной реали- зации 219 ----- противогоночное 106 ----- соседнее 106 Композиция соответствий 9 Компонентный автомат сети 60 Кортеж 6 Ликвидация гонок 105 Логическая схема алгоритма 122 Логическое условие 116 Матричная реализация системы функций 211 ----- тривиальная 214 — схема алгоритма 132 Микрокоманда 115 Микрооперация 115 Микропрограмма 116 Минимизация операторных вершин 153 — условных вершин 132 Множество 4 — бесконечное 4 — конечное 4 — пустое 5 — разбиений ортогональное 75 — универсальное 5 — частично-упорядоченное 11 Область значений соответствия 8 — определения соответствия 8 — отправления соответствия 7 — прибытия соответствия 7 Общая теорема декомпозиции 74 Объединение граф-схем алгоритмов 158 — множеств 5 Объединимость подматриц 165 Оператор 116 — производный 137 Определяющая конъюнкция 158 Ортогональность функций перехода 115 Отмеченная булева функция 129 — ГСА 168 Отмеченный куб 135 Отношение бинарное 7 — покрытия в множестве вариантов 144 ---------отмеченных кубов 138 — порядка 10 — эквивалентности 10
Отображение 10 — взаимно-однозначиое 10 Память автомата 89 Пара 6 — разбиений 73 Пересечение множеств 6 Переход от автомата Мили к авто- мату Мура 24 -------Мура к автомату Мили 23 ---ГСА к ЛСА 125 ---ЛСА к ГСА 128 Подавтомат 64 Подмножество 4 — несобственное 5 — собственное 5 Покрытие автоматов 30 — замкнутое 36 ---минимальное 37 — множества состояний 36 — формулы перехода 135 Полнота выходов 88 — переходов 88 — функций перехода 115 Полуавтомат 59 Порядок 10 — лексикографический 11 — линейный 11 — строгий 11 — частичный 10 Преддешифратор обратной связи 184 Проекция соответствия 8 Произведение множеств 6 — разбиений 67 Противоположные грани отмечен- ного куба 138 Путь перехода 170 — состояние—узел 190 — узел—узел 191 Равносильность ГСА 120 Разбиение 10, 66 — ГСА на подграфы 133 — единичное 66 — задачи объединения ГСА 165 — нулевое 66 — со свойством подстановки 69 Разложение формулы перехода 130 Разность множеств 6 Распределение сдвигов 120, 151 --- пустое 151 --- универсальное 151 Расширение функции выходов 17 --- переходов 17 Реакция автомата 18 Реализация автомата 66 — граф-схемы автоматом 174 Результирующий автомат сети 61 С-автомат 27 Свойства отношения 10 Сеть автоматов 60 Сечение соответствия 8 Сжатие таблицы вариантов 143 Система формул перехода 129 -------скобочных 130 Склеивание отмеченных кубов 137 Совместимость множеств состояний 32 Соединение автоматов параллельное 53 --- последовательное 54 --- с выходной функцией 59 --- с обратной связью 56 Состояние 13 — начальное 13, 17 — недостижимое 30 — преходящее 26 — устойчивое 21 Состояния несовместимые 30 — совместимые 30 — эквивалентные 49 Состязания 104 — критические 105 — некритические 105 Структура сети 61 Структурная матрица сети 84 — таблица микропрограммного авто- мата 181 ---------с узлами 194 Сумма разбиений 67 Таблица вариантов 142 — выходов 15 — переходов 15 ---и выходов совмещенная 16 ---микропрограммного автомата 176 ---------обратная 177 --- отмеченная 15 ---------прямая 176 — покрытия и замкнутости 40 — треугольная 31 Теорема о структурной полноте 87 Триггер с раздельными входами 98 Триггер со счетным входом 98 Узел в ГСА 189 Учет распределения сдвигов 151 Факторизация булевых функций 196 — системы булевых функций 199 Формула перехода 128 --- скобочная 130 Функция 9 — возбуждения памяти 90 — входов элемента памяти 91 — выходов автомата 13 — перехода" в ГСА 118 — переходов автомата 12 — соединения компонентного авто- мата 61 — сокращенная особенная 152 ^-эквивалентность состояний 51 — — микропрограммного автомата 178 227
СПИСОК ЛИТЕРАТУРЫ 1. Ангер С. Асинхронные последовательные схемы. Пер. с англ. М., Наука, 1977. 2. Апериодические автоматы/Под ред. В. И. Варшавского. М., Наука, 1976. 3. Атстопас Ф. Ф., Жиителис Г. Б., Хомские Р. Р. Входной язык для автоматического структурного синтеза ЦВМ.— В кн.: Материалы XX юбил. науч.-техн. конф. ЛитССР. Каунас, 1970. Т. 2. Вычислительная техника. 4. Ауфенкамп Д. Д., Хои Ф. Е. Анализ последовательностных машин.— Периодич. сб. переводов иностр, статей. Математика, вып. 1, 1959; вып. 2, 1959. 5. Баранов С. И. Минимизация условных вершин в граф-схемах алго- ритмов.— В кн.: Тр. Международного симпоз. ИФАК «Дискретные системы». Рига, Зинатне, 1974. Т. 1. 6. Баоанов С. И. Синтез микропрограммных автоматов. Л., Энеогия, 1974. 7. Баранов С. И. Синтез совмещенной модели микропрограммного авто- мата.— В кн.: Синтез автоматов и управление на сетях связи. М., Наука, 1973. 8. Барашенков В. В., Папков В. И., Степашкин Г. И. Цифровые вы- числительные машины/Под ред. В. Б. Смолова. Л., ЛЭТИ им. В. И. Улья- нова (Ленина), 1975. Вып. 4. Системы микропрограммного управления. 9. Гаврилов М. А., Девятков В. В., Пупырев Е. И. Логическое проекти- рование дискретных автоматов. М., Наука, 1977. 10. Гаврилов М. А., Девятков В. В., Чичковский А. Б. Язык оператор- ных схем параллельных алгоритмов с памятью (язык ОСПАП).— В кн.: Абстрактная и структурная теория релейных устройств (автоматизация ло- гического синтеза). М., Наука, 1975. 11. Глушков В. М. О применении абстрактной теории автоматов для минимизации микропрограмм.— Изв. АН СССР. Технич. кибернетика, 1964, № 1. 12. Глушков В. М. Синтез цифровых автоматов. М., Физматгиз, 1962. 13. Горбатов В. А. Теория частично упорядоченных систем. М., Сов. радио, 1976. 14. Гурвиц Е. А. Синтез полисинхронных дискретных устройств. ?А., . Связь, 1969. 15. Дьяченко В. Ф., Лазарев В. Г., Саввин Г. Г. Управление на сетях связи. М., Наука, 1967. 16. Ершов А. П. Операторные алгоритмы. 3 (об операторных схемах Янова).— Проблемы кибернетики, 1968, вып. 20. 17. Закревский А. Д. Алгоритмы синтеза дискретных автоматов. М., Наука, 1971. 18. Захаров В. Н., Поспелов Д. А., Хазацкий В. Е. Системы управления: Задание. Проектирование. Реализация. М., Энергия, 1972. , 19. Калужнин Л. А. Введение в общую алгебру. М., Физматгиз, 1973. 20. Калужнин Л. А. Об алгоритмизации математических задач.— Про- блемы кибернетики, 1959, вып. 2. 21. Капитонова Ю. В. Кодирование абстрактных автоматов С-кодами.— Кибернетика, 1965, № 1. 22. Кеэваллик А. Э. Теорема декомпозиции конечных автоматов.— Авто- матика и вычислит, техника, 1974, № 1. 23. Кофман А. Введение в прикладную комбинаторику. М., Физматгиз, 1975. 24. Лазарев В. Г., Пийль Е. И. Синтез управляющих автоматов. 2-е изд. М., Энергия, 1978. 25. Ляпунов А. А. О логических схемах программ.— Проблемы кибер- нетики, 1958, вып. 1. 228
26. Майоров С. А., Новиков Г. И. Принципы организации цифровых машин. Л., Машиностроение, 1974. 27. Мацевитый Л. В. Метод синтеза узлов ЭЦВМ из элементов потен- циального типа. Киев, КДНТП, 1963. 28. Мацевитый Л. В., Денисенко Е. Л. О кодировании внутренних со- стояний некоторых многотактных устройств.— Кибернетика, 1966, № 1. 29. Мелихов А. Н. Ориентированные графы и конечные автоматы. М., Наука, 1971. 30. Миллер Р. Теория переключательных схем. М., Наука, 1970. Т. 1. 31. Миллер Р. Теория переключательных схем. М., Наука, 1971. Т. 2. 32. Мищенко А. Т. О задании автоматов микропрограммой.— Киберне- тика, 1970, № 3. 33. Мороз Д. 3., Морозов Б. В. Экспериментальное исследование неко- торых алгоритмов кодирования состояний.— В кн.: Теория конечных авто- матов и ее приложения. Рига, Зинатне, 1974, вып. 3. 34. Новиков П. С. Элементы математической логики. М., Физматгиз, 1960. 35. Поттосин Ю. В. Методы минимизации числа состояний дискретного автомата (обзор).— Автоматика и телемеханика, 1971, № 8. 36. Поттосин Ю. В. Сравнительная оценка двух алгоритмов минимиза- ции числа состояний дискретного автомата.— Автоматика и вычислит, тех- ника, 1967, № 4. 37. Рувинский Б. И. Реализация микропрограммного автомата на БИС.— Электронная техника. Микроэлектроника, 1974, вып. 5 (53). 38. Сидоров Ю. Н. Автоматизация построения неполностью определен- ных управляющих автоматов.— В кн.: Теория релейных устройств. Челя- бинск, 1976. 39. Синтез асинхронных автоматов на ЭВМ/A. Д. Закревский, Л. И. Ба- лаклей, Н. А. Елисеева и др. Минск, Наука и техника, 1975. 40. Столл Р. Р. Множества. Логика. Аксиоматические теории. М., Про- свещение, 1968. 41. Твен М. Трагическое родство.— В кн.: Собр. соч. М., Гослитиздат, 1960. Т. 11. 42. Фрицнович Г. Ф. Об одном подходе к автоматизации синтеза асин- хронных конечных автоматов.— Tamil. МТА Szamitastechn. es Automat. Kutato Intezet. Budapest, 21, 1974. 43. Чеботарев A. H. Абстрактный синтез управляющего автомата по микропрограмме. — Кибернетика, 1966, №5. 44. Шиханович Ю. А. Введение в современную математику. М., Физ- матгиз, 1965. 45 Шрейдер Ю. А. Равенство, сходство, порядок. М., Физматгиз, 1971. 46. Якубайтис Э. А. Синтез асинхронных конечных автоматов. Рига, Зинатне, 1970. 47. Янов Ю. И. О логических схемах алгоритмов.— Проблемы киберне- тики, 1958, вып. 1. 48. Baranov S. I. Matrix Realization of Control Automata.— Proceedings of the Second International Symposium on Discrete Systems. Dresden, 1977, vol. 2. .1.. 49. Curtis H. A. Multiple Reduction of Variable Dependency of Sequea- tial Machines.— Journal of the Association for Computing Machinery, 1962, vol. 9, N 3. 50. Gorman K- The Programmable Logic Array: a New Approach to’Mic- reprogramming.— Electronic Design News, 1973, vol. 18, N 22. 51. Grasselli A., Luccio F. A Method for Minimizing the Number of Internal States in Incompletely Specified Sequential Networks.— IEEE Tran- sactions on Electronic Computers, 1965, vol. EC—14, N 3. 52. Hartmanis J. Loop Free Structure of Sequential Machines.— Infor- mation and Control, 1962, vol. 5, N 1. 53. Hartmanis J. On the^State Assignment Problem for SequenticalFMa- chines.— IRE Transactions on Electronic Computers, 1961, vol. EC—10, N 2. 229
54. Hartmanis J., Steams R. Algebraic Structure Theory of Sequentia Machines. New York, Prentice—Hall, 1966. 55. Kella J. State Minimization of Incompletely Specified Sequential Machines.— IEEE Transactions on Computers, 1970, vol. C—19, N 4. 56. Kohavi Zvi. Secondary State Assignment for Sequential Machines.— IEEE Transactions on Electronic Computers, 1964, vol. EC—13, N 3. 57. Meisel W. S. A Note on Internal State Minimization in Incompletely Specified Sequential Networks.— IEEE Transactions on Electronic Compu- ters, 1967, vol. EC—16, N 4. 58. Pauli M. C., Unger S. H. Minimizing the Number of States in Incomp- letely Specified Sequential Switching Functions.— IRE Transactions on Ele- ctronic Computers, 1959, vol. EC—8, N 3. 59. Quine W. V. The Problem of Simplifying of Truth Functions. — Amer. Math. Monthly, 1952, vol. 59, N 8. 60. Stearns R. E., Hartmanis J. On the State Assignment Problem for Sequential Machines, II.— IRE Transactions on Electronic Computers, 1961, vol. EC—10, N 4. 61. Unger S. H. Flov< Table Simplification — Some Usefull Aids.— IEEE Transactions on Electronic Computers, 1965, vol. EC—14, N 3. 62. Weiner P., Smith E. J. Optimization of Reduced Dependencies for Synchronous Sequential Machines.— IEEE Transactions on Electronic Com- puters, 1967, vol. EC—16, N 6. 63. Yang С. C. Closure Partition Method for Minimizing Incomplete Se- quential Machines.— IEEE Transactions on Computers, 1973, vol. C—22, N 12. ОГЛАВЛЕНИЕ ______________________________________ Предисловие...................................................... 3 Глава первая. Элементы теории множеств.........................4 1-1. Множество .......................................... 4 1-2. Операции над множествами.............................. 5 1-3. Соответствие. Функция. Отношение...................... 7 1-4. Отношения эквивалентности и порядка...................10 Глава вторая. (Абстрактный автомат...............................12 2-1. Определение абстрактного автомата.....................12 2-2. Автоматы Мили и Мура. Способы задания автоматов .... 14 2-3. Связь между моделями Мили и Мура......................22 2-4. Совмещенная модель автомата (С-автомат)...............27 Глава третья. Минимизация автоматов..............................28 3-1. Максимальные классы совместимости.....................28 3-2. Минимальное замкнутое покрытие........................35 3-3. Минимизация частичных автоматов с использованием про- стых классов............................................38 3-4. Приближенный метод минимизации частичных автоматов . . 46 3-5. Минимизация полностью определенных автоматов..........49 Глава четвертая. Композиция и декомпозиция автоматов.............52 4-1. Соединение двух автоматов.............................52 4-2. Соединение с выходной функцией........................58 230
4-3. Сеть автоматов.........................................60 4-4. Разбиения на множестве состояний результирующего авто- мата сети ..............................................66 4-5. Разбиения со свойством подстановки.....................69 4-6. Пары разбиений ........................................73 4-7. Общая теорема декомпозиции.............................74 4-8. Структурная матрица сети автоматов.....................84 Глава пятая.^Структурный автомат..................................86 5-1. Канонический метод структурного синтеза автоматов .... 86 5-2. Пример канонического метода структурного синтеза .... 92 5-3. Синтез автомата на D-, Т- и RS-триггерах...............97 5-4. Графический метод структурного синтеза автоматов .... 101 5-5. Кодирование состояний. Гонки в автомате...............104 5-6. Кодирование состояний и сложность комбинационной схемы 107 Глава шестаяу Операторные схемы алгоритмов.....................114 6-1. Микропрограммы работы дискретных устройств...........114 6-2. Граф-схемы алгоритмов................................116 6-3. Содержательные граф-схемы алгоритмов.................121 6-4. Логические схемы алгоритмов.........................122 6-5. Формулы перехода.....................................128 6-6. Матричные схемы алгоритмов..........................132 Глава седьмая. Преобразование операторных схем алгоритмов .... 132 7-1. Минимизация условных вершин в граф-схеме алгоритма . . 132 7-2. Учет распределения сдвигов при минимизации операторных схем алгоритмов......................................151 7-3. Минимизация операторных вершин в граф-схеме алгоритма . 153 7-4. Объединение граф-схем алгоритмов....................158 Глава восьмая. Синтез микропрограммных автоматов по граф-схеме ________ алгоритма.........................................168 /8-1.уСинтез микропрограммного автомата Мили..............168 Ч8.-Д: Синтез микропрограммного автомата Мура.............174 8-3. Минимизация микропрограммных автоматов..............178 Глава девятая. Синтез логической схемы микропрограммного автомата 181 9-1. Структурная таблица микропрограммного автомата . . . .181 9-2. Преддешифратор обратной связи.......................184 9-3. Доопределение функций возбуждения...................186 9-4. Метод декомпозиции логической схемы с помощью узлов в в граф-схеме алгоритма...............................187 9-5. Факторизация булевых функций.......................196 9-6. Синтез логической схемы микропрограммного автомата по структурной таблице с узлами.........................207 Глава десятая. Автоматы на матрицах............................211 10-1. Матричная реализация комбинационных схем и автоматов . 211 10-2. Минимизация логической схемы при матричной реализации автомата ...........................................216 Предметный указатель..........................................226 Список литературы........................................... 228 231
Самарий Иосифович Баранов СИНТЕЗ МИКРОПРОГРАММНЫХ АВТОМАТОВ (граф-схемы и автоматы) Издание второе, переработанное и дополненное Редактор 10. В. Долгополова Художественный редактор Ю. Г. Смирнов Технический редактор А. Г. Рябкина Корректор В. В. Румянцев Переплет художника В. В. Белякова ИБ № 1156 Сдано в набор 25.08.78. Подписано в печать 24.01.79. М-28851. Формат 60 X 90/16. Бумага типогр. № 1. Гарнитура шрифта литературная. Печать высокая. Ус с псч. л. 14,5. Уч.-изд. л. 15,19. Тираж 1 1 500 экз. Заказ 2010. Цена 1 р. 10 к. Ленинградское отделение издательства «Энергия», 191041. Ленинград, Д-41, Марсово поле, 1. Ленинградская типография № 4 Ленинградского производственного объединения «Техническая книга» Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли. Ленинград, Д-126, Социалистическая, 14.