Text
                    МАТЕМАТИЧЕСКАЯ ЛОГИКА
и
ОСНОВАНИЯ МАТЕМАТИКИ
ГОСУДАРСТВЕННОЕ ИЗДАТЕЛЬСТВО
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
МОСКВА 1 » 6 2
В. М. ГЛУШКОВ
СИНТЕЗ
ЦИФРОВЫХ
АВТОМАТОВ
ГОСУДАРСТВЕННОЕ ИЗДАТЕЛЬСТВО
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
МОСКВА 1962


517 Г 55 Виктор Михайлович Глушко». Сннтег цифровых автоматов. М., Физматгив, 1962 г., 476 ctfp с илл. (серия «Математическая логика и основания математики») Редактор Б. В. Бирюков. Техн. редактор К Ф. Брудно Корректор Л. О. Сечейко. Сдано в набор 31/V 1962 г Подписано к печати 28/IX 1962 г. Бумага 84 X 108/з:!. Физ печ л. 14,875 Усачкн печ л 24,4 Уч -И8д. л, 25,17. Тираж 15 000 экз Т-10950. Цена нниги 1 р 41 к Закая Jft 3661. Государственное издательство физико-математичесноп литературы. Москва, В-71, Ленинский о рог цент, 15. Отпечатано в гос. типографии «Пяргале», Вильнюс, ул. Латако 6 Заказ № 2266. ОГЛАВЛЕНИЕ Предисловие 7 Глава I. Общие сведения о преобразованиях информации 17 § 1. Понятие об информации и ее преобразованиях. . . 17 § 2. Преобразования алфавитной информации 22 § 3. Понятие об алгоритме 27 §4. Понятие о дискретном (цифровом) автомате .... 31 Глава II. Абстрактная теория автоматов 36 § 1. Понятие об абстрактном автомате и индуцируемом им отображении 36 § 2. Автоматные отображения и события 51 § 3. Алгебра событий 62 §4. Представление событий в автоматах 69 § 5. Анализ конечных автоматов 79 § 6. Основной алгоритм синтеза конечных автоматов 94 | 7. Усовершенствование основного алгоритма синтеза 106 | 8. Синтез автоматов по индуцируемым ими отображе- отображениям 124 § 9. Минимизация абстрактных автоматов 135 §10. Некоторые дополнительные приемы минимизация 150 1 л в а III. Структурная теория автоматов 165 § 1. Композиция автоматов, структурные схемы .... 165 §2. Канонический метод структурного синтеза автоматов 180 § 3. Булевы функции 190 § 4. Две замечательные алгебры булевых функций . . . 200 § 5. Нормальные формы 209 §6. Анализ и синтез комбинационных схем 222 § 7. Теорема о функциональной полноте 237 § 8. Канонические уравнения структурных схем в двоичном структурном алфавите 251 Глава IV. Минимизация булевых функций 264 § 1. Сокращенные и минимальные дизъюнктивные нор- нормальные формы 264 § 2. Метод Квайна — Мак-Класки 278 § 3. Другие методы минимизации булевых функций 292 § 4. Проблема факторизации. Минимальные конъюнк- конъюнктивные нормальные формы 306
6 ОГЛАВЛЕНИИ Глава V. Методы построения комбинационных схем в дво- двоичном структурном алфавите 317 § 1. Некоторые методы решения канонической задачи комбинационного синтеза 317 § 2. Методы канонического синтеза некоторых специ- специальных комбинационных схем 330 § 3. Общие методы синтеза вентильных схем 338 § 4. Некоторые дополнительные приемы синтеза и минимизации вентильных схем 353 Глава VI. Некоторые проблемы надежности цифровых автоматов 368 § 1. Потенциальные и импульсные сигналы. Основные типы схем цифровых автоматов 368 § 2. Проблема риска. Примеры синтеза схем с учетом простейших соображений надежности 383 §3. Проблема синтеза надежных схем из ненадежных. элементов 398 Глава VII. Алгоритмическая структура современных универсальных цифровых машин . 414 § 1. Принцип программного управления. Блок-схема универсального программного автомата 414 § 2. Принципы построения арифметических устройств 431 § 3. Организация управления универсальным програм- программным автоматом 447 Литература 464 Именной указатель 470 Предметный указатель 472 ПРЕДИСЛОВИЕ Одним из значительных достижений науки и техники середины двадцатого столетия явилось создание и широ- широкое использование электронных цифровых машин с программным управлением. Неудивительно, что вопросы рационального конструиро- конструирования, или, как принято обычно говорить, синтеза схем таких машин привлекают внимание большого числа ученых, конструкторов и инженеров. Электронные цифровые машины с программным управ- управлением представляют собою пример одного из наиболее ра- распространенных в настоящее время типов преобразовате- преобразователей дискретной информации, называемых дискретными, или цифровыми, автоматами. Поэтому за- задача синтеза схем электронных цифровых машин с прог- программным управлением входит в качестве частного случая в более общую задачу синтеза схем цифровых автоматов. Важность этой задачи обусловливается тем, что в настоящее время в целом ряде областей происхо- происходит процесс быстрого вытеснения старых средств автома- автоматики, основанных на принципе непрерывности, дискрет- дискретными автоматическими устройствами. Процесс синтеза сложного автомата подразделяется на несколько этапов. На первом этапе, называемом эта- этапом блочного синтеза, осуществляется разбиение схемы ав- автомата на отдельные блоки, определяются задачи, которые
8 ПРЕДИСЛОВИИ должны решаться отдельными блоками, намечается общий план обмена информации между блоками. На втором этапе, который мы будем называть этапом абстрактного синтеза, на основании задач, решаемых каждым отдельным блоком, определяется объем памяти, необходимый для данного блока, и устанавливаются те изменения состояний памяти под воздействием входных сигналов, которые должны реализоваться данным блоком для того, чтобы он мог выполнять поставленные перед ним задачи. На третьем этапе, называемом этапом структур- структурного синтеза, осуществляется выбор логических и запоми- запоминающих элементов для построения схемы данного блока — и автомата в целом — и выписываются так называемые канонические уравнения, сводящие общую задачу синтеза автомата (или блока) к синтезу схем из элементов дискрет- дискретного действия, не обладающих памятью. Следующим, четвертым этапом является этап синтеза этих последних схем, называемый обычно этапом комбинационного синтеза. Наконец, на пятом и последнем этапе производит- производится преобразование и дополнение построенных схем с целью обеспечения надежности их функционирования. На этом этапе, который мы будем условно называть этапом надеж- надежностного синтеза, выявляются искажения сигналов, воз- возникающие вследствие неидеальности применяемых элемен- элементов, и принимаются меры к устранению этих искажений. Разумеется, указанное разделение на этапы дает лишь общую ориентировку в вопросе о том, через какие стадии проходит решение задачи синтеза цифровых автоматов. В ряде случаев приходится делать те или иные отступле- отступления от приведенной выше последовательности этапов. На- Например, при синтезе автоматов, обладающих относительно малой сложностью, этап блочного синтеза обычно опус- ПРЕДИСЛОВИВ 9 кается. Наоборот, при синтезе особо сложных автоматов возможно многократное возвращение -к этому этапу. При некоторых специальных приемах синтеза этапы аб- абстрактного, структурного и комбинационного синтеза так переплетаются между собой, что не всегда удается провести четкое разграничение между ними. Наконец, учет сообра- соображений надежности обычно начинается на более ранних эта- этапах, находя на последнем этапе окончательное решение. Исторически наиболее рано начала развиваться та часть теории синтеза автоматов, которая имеет дело с эта- этапом комбинационного синтеза. В работах В. И. Шеста- нова1) и К. Шеннона1) была впервые продемон- продемонстрирована плодотворность идеи применения развитого ранее в рамках математической логики аппарата так на- называемой булевой алгебры к проблемам комбинационного синтеза релейно-контактных схем. Развиваясь в рамках логико-математической теории релейно-контактных схем, теория комбинационного син- синтеза достигла значительных успехов и после появления электронных цифровых машин стала успешно приспосаб- приспосабливаться к проблемам синтеза схем из электронных логических элементов. В этот период она пополнилась также существенными фрагментами теории структурного и блочного синтеза автоматов (см., например, работы Д. Хафмена'), Г. Мили'), В. И. Ш е с т а- к о в а *), М. У и л к с а ") и др.). ') См. ЖТФ, т. 11:6, 1941, стр. 532. ') См. Trans. AIEE, v. 57, 1938, p. 713—723. ') См. Journal of the Franklin Inst., v. 257, № 3 and 4, 1954, p. 161—190, 275—303. 4) Cm. Bell system Tech. J., v. 34, 1955, p. 1045—1079. 5) См. Автоматика и телемеханика, т. 15, № 4, 1954 стр. 310—324. Докл. АН СССР, т. 99, № 6, 1954, стр. 987—99о! ') См. Ргос. East. Joint. Comput. Conf. NT-114, New York, 1959, p. 18—20.
10 ПРЕДИСЛОВИИ Несколько отстала в своем раввитии теория абстракт- абстрактного и надежностного синтеза автоматов. Первый сущест- существенный сдвиг в этих разделах теории автоматов произошел в результате появления известного сборника статей «Ав- «Автоматы» под редакцией К. Шеннон аи Дж. М а к- карти. В первую очередь этот сдвиг был обязан поме- помещенным в указанном сборнике работам С. К. К л и- ни1), Э. Мура1) и Д. Неймана1). В упомянутых работах Клини и Мура было положено начало возникновению абстрактной теории автоматов, хотя сами полученные в них результаты были еще доста- достаточно далеки от возможности реального их использования на этапе абстрактного синтеза автоматов, где в это время продолжали господствовать эмпирические методы. В ра- работе Неймана было положено начало созданию общей ма- математической теории для одной из самых интересных об- областей надежностного синтеза, именно — теории синтеза надежных схем из ненадежных элементов. В работах автора *) теория абстрактного синтеза авто- автоматов была доведена до такого уровня, который обес- обеспечивает ей возможность непосредственного приложения к решению реальных задач, возникающих при синтезе циф- цифровых автоматов. В эту теорию в качестве ее органической составной части вошли также результаты, полученные ') См. сб. «Автоматы», под ред. К. Шеннона и Дж. Маккарти, перев. с англ., ИЛ, М., 1956, стр. 15—67. ') См. сб. «Автоматы», под редакцией К. Э. Шеннона и Дж. Маккарти. стр. 179—212. ') См. сб. «Автоматы», под редакцией К. Э. Шеннона и Дж. Маккарти, стр. 68—139. ¦) См. Укр. матем. журнал, т. 12, № 2, 1960, стр. 147—156. Докл. АН УССР, т. 12, № 9, 1960, стр. 1151—1154. Вычислит, ма- математика и математич. физика, т. I, № 3, 1961, 371—411. ПРЕДИСЛОВИЕ 11 другими авторами (см., например, работу Д. А у ф е н- кампа иФ. Хона ')). В работе автора *) была решена также задача со- сопряжения этапов абстрактного и структурного синтеза и представление структурной теории в виде, пригодном для решения проблем синтеза цифровых автоматов с запоми- запоминающими элементами любой природы. Вопросы сопряжения этапов структурного и комбинационного синтеза и разви- развитие самой теории комбинационного синтеза были успешно решены на более ранних этапах развития теории в трудах многих авторов, часть из которых была уже отмечена выше. Существенные сдвиги произошли также в теории надежно- надежностного и блочного синтеза. Таким образом, в настоящее время возникла возмож- возможность изложения теории синтеза цифровых автоматов как единой математической теории. Задача систематического изложения этой теории как раз и является той целью, которую преследует настоящая книга. Эта за- задача определяет собою специфику построения книги и отбора материала для нее. Что касается характера изложения, то он определяет- определяется следующими соображениями, казавшимися автору су- существенными для достижения указанной цели. Во-первых, по мере возможности строить книгу таким образом, каким обычно строятся математические теории. Это означает, в частности, необходимость заботы о том, чтобы вводимые понятия были точно определены, а высказанные утверждения строго доказаны. Это означает также стремление к органической взаимосвязи излагае- излагаемого материала с целью избежать превращения книги в набор не связанных друг с другом рецептов. Разумеется, ') См. IRE Trans., v. EC-6, №4, 1957, p. 276—285 (русский пере- вод в сб. переводов «Математика», 1959, № 3 : 3, стр. 129—146). г) См. Вычислит, математика и математич. физика, т. 1, №3,1961.
12 ПРЕДИСЛОВИЕ осуществить эту идею в полной мере в настоящее время затруднительно прежде всего потому, что разделы теории, касающиеся надежностного и блочного синтеза, все еще находятся в начальной стадии своего формирования и пока далеки от завершения. Во-вторых, изложение строится таким образом, чтобы достичь максимальной общности при сохранении возмож- возможности непосредственного практического применения тео- теории. Поэтому из книги исключены вопросы, связанные с особенностями конкретной физической реализации исполь- используемых элементов и устройств, но не оказывающие суще- существенного влияния на процесс синтеза схем на принятом уровне абстракции. В-третьих, автор считал необходимым введение различ- различных уровней абстракции, в частности в принятой выше классификации последовательных этапов синтеза. Осо- Особенно важно отметить введение уровня абстракции, про- промежуточного между тем уровнем, который имеет место при применении булевой алгебры, и тем, с которым имеют дело при использовании заимствованных из радиотехники и им- импульсной техники методов расчета схем. Именно этот уро- уровень, будучи тесно связанным с уровнем абстракции, при- принятым в абстрактной и структурной теории автоматов, позволяет осуществить тесную связь этих двух разделов теории с задачами, возникающими при синтезе реальных схем цифровых автоматов. Благодаря введению такого уровня абстракции оказывается возможным учесть осо- особенности синтеза схем различных типов (потенциальных, импульсных и смешанных) безотносительно к конкретной природе элементов, из которых построены эти схемы. Вво- Вводимые абстрактные физические модели логических и запо- запоминающих элементов могут допускать конкретные реали- реализации на основе самых различных физических принципов (не обязательно на основе принципов электроники). ПРЕДИСЛОВИВ 13 Наконец, главной и определяющей задачей изложения является такой подбор материала и такой характер его изложения, который дал бы возможность широкому кругу лиц и прежде всего широкому кругу математиков, не зна- знакомых с радиотехникой, электроникой и импульсной тех- техникой, понять суть проблем, встающих при синтезе схем современных сложных цифровых автоматов и прежде все- всего электронных вычислительных машин. Изложение пост- построено таким образом, чтобы после изучения материала внимательный читатель мог самостоятельно синтезиро- синтезировать различные варианты логических схем больших уни- универсальных электронных цифровых вычислительных ма- машин, а также схем относительно небольших цифровых ав- автоматов произвольного назначения с учетом простейших соображений надежности их работы. Подобная целенаправленность книги заставила автора произвести весьма жесткий отбор излагаемого в ней ма- материала. Пришлось полностью исключить из рассмотре- рассмотрения многие интересные разделы современной математиче- математической теории автоматов, содержащие подчас весьма глубо- глубокие научные результаты, но имеющие лишь косвенное от- отношение к проблемам практического синтеза автоматов; в книгу не включались и материалы, имеющие боль- большое практическое значение при синтезе схем из тех или иных конкретных элементов, но не обладающие до- достаточной степенью общности. По той же причине исклю- исключены подробности, связанные с методикой выполнения арифметических операций в автоматах, нашедшие к тому же уже достаточное отражение в монографической лите- литературе, изданной на русском языке. Автору казалось, что реализация указанных общих идей в книге должна привести к тому, что такая книга бу- будет существенно отличаться от всех изданных до настоя- настоящего времени руководств по синтезу схем цифровых
14 ПРЕДИСЛОВИЯ автоматов. О том, насколько автору удалось справиться с этой задачей, предоставляется судить читателю. В заключение скажем несколько слов о характере рас- распределения материала в книге. Книга состоит из семи глав. Первая глава фактически заменяет собою введе- введение. Основная цель этой главы — установить степень общ- общности тех задач, которые решаются в последующих главах, и уточнить некоторые понятия (прежде всего понятие алгоритма), которые имеют существенное значение для дальнейшего изложения, но которые сами по себе не со- составляют предмета настоящей книги. Вторая глава посвящена изложению проблем, воз- возникающих на этапе абстрактного синтеза автоматов. Эта глава почти полностью построена на основании собствен- собственных результатов автора '), изложенных в упомянутых выше его работах, а также некоторых новых результатов, изла- излагаемых впервые. То же самое относится к первым двум, а также к последнему, параграфам третьей главы, кото- которая посвящена структурной теории автоматов. В осталь- остальных параграфах этой главы содержится теоретический ма- материал, подготавливающий читателя к усвоению пробле- проблематики и методов комбинационного синтеза. Наряду с не- некоторыми новыми вопросами здесь изложены также ос- основы булевой алгебры, включая теорему о функциональной полноте; § 7 гл. Ill существенным образом использует идеи и методы, содержащиеся в работе СВ. Яблонского «Функциональные построения в А-значной логике»1). Последующие две главы, четвертая и пятая, посвящены проблемам комбинационного синтеза и мини- минимизации комбинационных схем. В этих главах излагаются ') См. Вычислит, математика и математич. физика, т. I, № 3, 1961, стр. 371-411 г) См Труды Матзм iiij-tu им. 13. А. Сто клони, г. 51, t'J53 стр. 5—WZ, ПРЕДИСЛОВИЕ 15 в основном известные результаты и методы комбинацион- комбинационного синтеза, принадлежащие К. Ш е н н о н у, Г. Н. Поваров у, Квайну, Блейку, Карнау и др., хотя в ряде случаев их интерпретация и доказатель- доказательства существенно изменены в соответствии с изложенными выше общими установками; произведены также уточ- уточнения постановок задач о графических (табличных) прие- приемах минимизации булевых функций. И в эти главы вклю- включено изложение некоторых новых понятий и результатов. Глава шестая посвящена некоторым проблемам надежностного синтеза схем автоматов. Введенные в ней понятия и определения позволяют реализовать тот — про- промежуточный между логическим и радиотехническим — уровень абстракции, о котором шла речь выше. В главе произведено обобщение постановки и методов решения известных проблем гонок и риска. Изложены так- также (в несколько измененной интерпретации) известные ре- результаты Шеннона — Мура о синтезе надежных схем из ненадежных элементов. Приведены простейшие сведения о самокорректирующихся кодах. В последней, седьмой главе излагается принцип программного управления и блочный синтез схем универ- универсальных программных автоматов; дается понятие о микро- микропрограммировании как в общем случае, так и примени- применительно к схеме, предложенной Уилксом и Стринд- жером1), разбирается вопрос о синтезе некоторых специальных схем (сумматоров, счетчиков, сдвиговых ре- регистров), играющих значительную роль при синтезе схем универсальных программных автоматов. Причина, по которой глава, посвященная блочному синтезу, оказалась последней, а не первой (что было бы ') См. Ргос. Cambridge Philos. Soc, v. 49, Л» 4:2, 1953, p. 230-238.
1С ПРЕДИСЛОВИЕ естественно, имея в виду указанную выше последователь- последовательность этапов синтеза), заключается в том, что общей теории блочного синтеза цифровых автоматов в настоя- настоящее время не существует. Предпосылать же частные приемы решения- задачи первого этапа общим приемам решения задач последующих этапов вряд ли было бы ра- разумно, тем более, что с помощью указанных общих прие- приемов полностью решается задача синтеза цифровых авто- автоматов относительно небольшой сложности, имеющая весьма важное самостоятельное значение. Имея в целом прикладную направленность, излагае- излагаемый в книге материал основан на широком использова- использовании идей, понятий и средств математической логики. Так, гл. IV, большая часть гл. III, а также гл. V представляют собой, по существу, разделы современной прикладной логики, точнее, прикладной теории булевых функций. Абстрактная теория алгоритмов, излагаемая в гл. II, может рассматриваться как один из разделов теории алгоритмов, также имеющий ярко выраженную прикладную направленность. Один из аспектов приклад- прикладной теории алгоритмов составляют и вопросы алгоритми- алгоритмической структуры универсальных цифровых машин, рассматриваемые в §§ 1 и 3 гл. VII. Всем сказанным и объясняется включение этой книги в серию «Математи- «Математическая логика и основания математики». Для чтения книги не требуется никакой специальной математической или логической подготовки. Из числа вопросов, выходящих за рамки школьного курса матема- математики, от читателя требуется только знакомство с двоич- двоичной системой счисления и с простейшими понятиями теории вероятностей (последние, впрочем, используются лишь в шестой главе). В. М. Глушков Киев, май 1961 г. ГЛАВА I ОБЩИЕ СВЕДЕНИЯ О ПРЕОБРАЗОВАНИЯХ ИНФОРМАЦИИ § 1. Понятие об информации и ее преобразованиях Понятие информации принадлежит к числу важнейших понятий современной науки. Важность этого понятия обу- обусловливается его всеобщностью: с понятием информации мы сталкиваемся при изучении любого явления, происхо- происходящего в природе или в обществе. С наиболее общей точки зрения процесс получения ин- информации есть не что иное, как процесс снятия неопреде- неопределенности в результате того, что из некоторой совокупно- совокупности возможных в данной конкретной ситуации явлений выделяется явление, фактически имевшее место. Таким образом, в понятии информации существенно не само происшедшее явление, а лишь его отношение к совокуп- совокупности явлений, которые могли произойти. Это обстоятельство позволяет при информационном подходе к изучению явлений абстрагироваться от многих их свойств. Ясно, например, что произвольное одновремен- одновременное изменение количественных масштабов рассматривае- рассматриваемых явлений с информационной точки зрения ничего не меняет. В частности, при передаче одних и тех же сооб- сообщений можно пользоваться как большими, так и малыми энергиями. Несущественным в информационном плане является также одновременное изменение пространствен- пространственных и временных масштабов явлений. Существуют два различных подхода к изучению явле- явлений с информационной точки зрения: непрерывный ч дискретный. При непрерывном подходе все изучаемые явления рассматриваются как переменные * В.М. Глушнов
18 ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ [Гл. I векторные поля. Конкретная физическая природа таких векторных полей, а также их количественные, простран- пространственные и времепные масштабы считаются при этом не- несущественными. Задание информации состоит в выборе какого-нибудь определенного (переменного) поля из фик- фиксированной заранее совокупности таких полей. Характер- Характерным для непрерывного подхода является то, что все описывающие явление величины (компоненты векторов, пространственные и временные координаты) являются вещественными числами и могут изменяться непрерывно. При дискретном подходе также имеют дело с переменными векторными полями. Однако, в отличие от предыдущего случая, компоненты векторов, а также про- пространственные и временные координаты принимают дис- дискретные ряды значений. Наиболее употребительным яв- является случай, когда число значений, принимаемых ком- компонентами векторов и пространственными координатами, конечно (поле задано в конечном числе точек). Что же ка- касается временной координаты, то ее область значений при дискретном подходе отождествляют обычно с множеством целых чисел (положительных, отрицательных и нуля). Нулевой момент времени считается при этом начальным, а остальные моменты времени получают названия в соот- соответствии с их номерами: первый, второй, минус первый, минус второй и т. д. При этом чаще всего ограничиваются рассмотрением конечных временных промежутков, начиная либо с нулевого, либо с первого момента времени. Задание информации при дискретном подходе сводится, таким образом, к заданию конечных последовательностей конечнозначных (постоянных) векторных полей. Если ди- дискретная информационная задача фиксирована, то коли- количество различных постоянных векторных полей, возмож- возможных в этой задаче, в соответствии с принятыми условиями, конечно. Вводя для каждого такого поля специальное бук- буквенное обозначение, мы получаем возможность задавать информацию конечными последовательностями букв. По- Подобный способ задания дискретной информации мы усло- условимся называть алфавитным, совокупность элементар- элементарных символов (букв), из которых составляется информа- информация — алфавитом, а конечные последовательности букв алфавита — словами в данном алфавите. $ I] ПОНЯТИЕ ОВ ИНФОРМАЦИИ И ЕЕ ПРЕОБРАЗОВАНИЯХ 19 Алфавитный способ употребляется, как известно, при задании лексической (языковой) и числовой информации. В случае лексической информации алфавит совпадает с обычным алфавитом языка, на котором задается инфор- информация, в случае числовой информации алфавитом является совокупность десяти цифр. Следует особо подчеркнуть, что введенное выше поня- понятие слова в алфавите существенно отличается от понятия слова в обычном языке даже в том случае, когда исходный алфавит совпадает, например, с русским алфавитом. Раз- Различие заключается в том, что, в силу принятых нами опре- определений, мы будем называть словами не только все факти- фактически существующие слова русского языка, но также и любые бессмысленные сочетания букв. Сочетания букв «автомат», «теорема», «кклмизръых», «ппд» с этой точки зре- зрения в равной мере заслуживают названия слов в русском алфавите. Если теперь к обычному русскому алфавиту добавить еще знаки раздела и знаки препинания, то словами в этом расширенном алфавите можно считать куски фраз, фразы, абзацы и даже целые книги. Отметим также относитель- относительность обычного разбиения лексической информации на буквы: при желании можно, разумеется, считать отдель- отдельными буквами слова и даже целые фразы. Алфавитный способ задания информации является до- достаточно универсальным. Действительно, как уже было показано выше, этим способом можно осуществить пред- представление любой дискретной информации. Что же касает- касается информации, задаваемой в непрерывной форме, то на практике, применяя методы аппроксимации, ее всегда удается представить с любой наперед заданной степенью точности в дискретной форме. Ввиду принципиальной важности процесса сведения непрерывной формы задания информации к дискретной рассмотрим его несколько подробнее. Пусть непрерывная информация задается в виде переменных векторных полей на участке пространства, имеющем ограниченные размеры. Пусть далее эта информация воспринимается некоторым объектом (автоматическим устройством или человеком). Всякое реальное устройство, воспринимающее непре- непрерывную информацию, обладает рядом ограничений, не 2*
tll>teObi>A80EAHtoft ИНФОРМАЦИИ tr*. i позволяющих ему различать многие тонкие свойства несущих информацию процессов. Так, ограниченная чувствительность вос- воспринимающего устройства дает ему возможность разли- различать лишь конечное число градаций значений величин (компонентов векторных полей), характеризующих про- процесс. Ограниченная разрешающая способность устройства приводит к тому, что достаточно малые участки пространства воспринимаются им как отдель- отдельные точки. В результате этого, с точки зрения воспринимающего устройства, участок пространства, на котором задаются несущие информацию векторные поля, представляется в виде конечного числа различных точек. Наконец, ограни- ограниченность полосы пропускания воспринимающего информацию устройства не позволяет ему различать очень близкие моменты времени. В результате (опять-таки с точ- точки зрения воспринимающего устройства) можно ограни- ограничиться дискретным временем, дробя реальное непрерывное время на столь малые временные интервалы, чтобы концы этих интервалов воспринимались объектом как один мо- момент времени. Суммируя все отмеченные выше реальные ограничения, которым подвержены воспринимающие устройства, мы приходим к выводу, что с точки зрения устрой- устройства, воспринимающего информацию, любая непрерывная информация сводится, фактически, к дискретной, а следовательно, в конечном счете — к алфа- алфавитной информации. Отсюда следует универсальность ал- алфавитного способа задания информации. Следует, впрочем, сразу же подчеркнуть, что, несмот- несмотря на универсальность алфавитного способа задания ин- информации, пользование им далеко не всегда является ес- естественным, так что специфические методы для изучения непрерывной информации полностью сохраняют свое зна- значение. Вместе с тем существуют и такие виды информации, при изучении которых дискретные методы являются не только вполне естественными, но, по-видимому, и един- единственно возможными. Наиболее важным примером такого вида информации является лексическая инфор- информация. ; 1] ПОНЯТИЕ ОБ ИНФОРМАЦИИ И ЕЕ ПРЕОБРАЗОВАНИЯХ 21 Роль дискретных (алфавитных) методов задания ин- информации особенно возросла после того', как появились мощные автоматы для преобразования дискретной инфор- информации, именно — электронные цифровые машины с прог- программным управлением. Поскольку целью настоящей книги является изучение дискретных преобразователей информации, то в дальней- дальнейшем под словом информация мы всегда будем понимать (если специально не оговорено противное) информацию, заданную в дискретной — и даже, точнее, в алфавитной форме. При этом процесс задания информации состоит в выборе определенного слова в некотором фиксированном конечном алфавите из совокупности всех возможных слов в этом алфавите. Подобно тому как со всяким явлением в природе или в обществе связана несущаяся этим явлением информация, взаимосвязь явлений приводит к понятию о преобразова- преобразовании информации. Предположим, что любое явление а из некоторого класса А явлений влечет за собой некоторое определенное явление Р из того же самого или любого другого класса В явлений. В таком случае говорят, что нам задано преобра- преобразование информации а-*^=/(а)'). Следовательно, с абст- абстрактной точки зрения преобразование информации есть не что иное, как отображение одного класса явле- явлений в другой класс явлений. Если подобное отображение осуществляется каким- либо определенным объектом, то этот объект называется обычно преобразователем информации. Например, обык- обыкновенный радиоприемник с информационной точки зре- зрения представляет собою преобразователь информации, осуществляющий преобразование информации, заданной в виде радиоволи, в информацию, задаваемую с помощью звуковых колебаний. Человек, решающий какую-либо задачу, также может рассматриваться как преобразова- преобразователь информации: исходной информацией в этом случае будет условие задачи, а заключительной — ответ. ') Стрелка «-+» здесь служит в качестве знака преобразо- преобразования информации, или, говоря иначе, в качестве обозначения отображения явления а в явление 0.
22 ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ [Гл. I § 2. Преобразования алфавитной информации В соответствии с высказанными в предыдущем параг- параграфе соображениями мы будем рассматривать исключи- исключительно дискретно заданную алфавитную информацию и ее преобразования. В наиболее общем виде преобразование алфавитной ин- информации может быть задано следующим способом. Пусть нам даны два конечных алфавита JE = (a;l, хг, ..., хт) и 33== = (у,, уг, ..., уп). Обозначим через F=F (х1 хт) сово- совокупность всех слов конечной длины в алфавите ?, а че- через G=G(yt, ..., уп) — совокупность всех слов конечной длины в алфавите 23. Если исходная информация запи- записывается в алфавите Ж, а конечная информация — в алфа- алфавите 23, то произвольное преобразование информации ф будет представлять собою не что иное, как отображение множества F в множество G. В дальнейшем мы будем рас- рассматривать лишь детерминированные преоб- преобразования информации, при которых входное слово пол- полностью определяет слово на выходе преобразователя. Яс но, что требование детерминированности есть не что иное, как требование однозначности отображе- отображения ф. Оказывается целесообразным также в самом общем случае считать ф частичным отображением, иначе говоря, задавать отображение ф не обязательно на всем множестве F, а лишь на части этого множества (не исклю- исключая, впрочем, случай совпадения этой части со всем мно- множеством F). Введение частичных отображений позволяет вместо отображений одного множества слов в другое рас- рассматривать лишь отображения таких множеств в себя. Для этой цели достаточно ввести объединенный алфавит 3=(я, хт'Уг Уп) имножество Н=Н{х1 я,л,у,, ... ..., уп) слов над этим алфавитом. Ясно теперь, что вместо отображения (или частичного отображения) множества F в множество G можно рассматривать частичное отображение множества Н в себя. Это частичное отображение будет оп- определено для слов, состоящих только из букв а;,, хй, ... ..., хт. Однозначность отображения ф множества F в множество G не означает, вообще говоря, кате известно, однозначности §2] ПРЕОБРАЗОВАНИЯ АЛФАВИТНОЙ ИНФОРМАЦИИ 23 обратного отображения ф~\ Если же такая однозначность имеет место, то отображение ф называется взаимно одно- однозначным. Мы будем говорить также в этом случае, что ото- отображение ф осуществляет эквивалентное преоб- преобразование информации. В случае эквивалентного преобра- преобразования заключительная (выходная) информация полно- полностью определяет исходную (входную) информацию. Пример 1. Преобразование информации в произ- произвольном конечном алфавите заключается в зеркальном ото- отображении слов: порядок следования букв в слове меняется после преобразования на прямо противоположный. Ясно, что такое преобразование будет эквивалентным. П р и м е р 2. В алфавите, состоящем из всех десятич- десятичных цифр и знака суммы, задается отображение слов вида а+&, где а и Ъ — целые числа, в сумму этих двух чисел; например, слово 2+5 преобразуется в слово 7, слово 21 + +15 в слово 36 и т. д. Легко видеть, что задаваемое таким образом преобразование не эквивалентно, поскольку за- задание суммы не определяет слагаемых. Со всяким преобразованием информации связывается интуитивное представление о его сложности. Ясно, например, что преобразование какого-нибудь русского текста, заключающееся в замене букв их порядковыми но- номерами в алфавите, много проще, чем перевод того же тек- текста; скажем, на английский язык. По критерию сложности оказывается целесообразным выделить один класс преобра- преобразований информации, которые естественно называть про- простейшим и. Простейшими, или побуквенными, мы будем называть преобразования, заключающиеся в замене каждой буквы исходного алфавита некоторой определенной, имеющей за- заранее фиксированную, одинаковую для всех букв длину, комбинацией букв нового алфавита. Приведем примеры простейших преобразований ин- информации. Пример 3. Исходная информация — произвольное слово в русском алфавите. Преобразование информации состоит в замене каждой буквы алфавита порядковым но- номером, записанным в десятичной системе счисления. При :>то.м для соблюдения условия равенства длин комбинаций букв нового алфавита, представляющих буквы строго
24 ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ [Гл. I алфавита, необходимо первую букву обозначать комбинаци- комбинацией 01, вторую — комбинацией 02 и т. д. В результате такого преобразования слово «дом» преобразуется в слово «051412», слово «бкзд» — в слово «02100805» и т. д. П р и м е р 4. Исходная информация — произвольное целое десятичное число (слово в алфавите, состоящем из десяти цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); преобразование ин- информации состоит в замене каждой четной цифры нулем, а каждой нечетной цифры — единицей. Слово «125» при этом преобразуется в слово «101», слово «0342» — в слово «0100» и т. д. Заметим, что преобразование в примере 3 является не только простейшим, но и эквивалентным. В то же время преобразование в примере 4, хотя и простейшее, тем не менее не эквивалентно. Легко видеть, что с помощью простейших эквивалент- эквивалентных преобразований, информацию, заданную в любом ко- конечном алфавите, можно записать в алфавите, содержащем только две буквы. Такой алфавит мы будем называть стандартным двухбуквенным, или двоичным, алфавитом, а две его буквы будем обозначать нулем и едини- единицей. Такие преобразования выполняются следующим образом: ищется такое натуральное число т, чтобы число различных слов длины т в двоичном алфавите превышало или было бы равным числу п различных букв исходного алфавита А, после чего каждая из букв алфавита А заме- заменяется словом длины т в двоичном алфавите так, чтобы раз- различным буквам соответствовали различные слова. По- Поскольку, как легко показать, число различных слов дли- длины т в двоичном алфавите равно 2, то для возможности выполнения указанного преобразования достаточно вы- выбрать т так, чтобы удовлетворялось неравенство Ясно, что кодирование информации в двоичном алфа- алфавите неоднозначно. Более того, для любого исходного ал- алфавита существует бесконечное множество таких преобра- преобразований. Все эти преобразования носят специальное наз- название двоичного кодирования исходной информации. Объединяя приведенные здесь рассуждения с тем, что было сказано в предыдущем параграфе, мы получаем воз- ПРЕОБРАЗОВАНИЯ АЛФАВИТНОЙ ИНФОРМАЦИИ 25 можность высказать следующее утверждение: при раз- различных преобразованиях информации можно, не нарушая общности, предполагать, что как исходная, так и заключи- заключительная информация задана в некотором стандартном (на- (например, двоичном) алфавите. В самом деле, пусть некоторая информация А с помо- помощью преобразования / преобразуется в вид В, Закодируем как информацию А, так и информацию/? в некотором стан- стандартном алфавите, обозначая соответствующие кодирую- кодирующие отображения через аир, а закодированную информа- информацию — через Л'и В', т. е. А'=Аа, В'=В$ >). Легко видеть, что преобразование/ индуцирует некото- некоторое преобразование /', переводящее информацию А' в информацию/?'. (Обозначая через а и р1 преобразования, обратные соответственно преобразованиям аир, мы по- получим: а/ Р =/. а IV—I • \1> Приведенные соотношения легко усмотреть из схемы, изображенной на рис. 1. Само собой разумеется, что в качестве стандартного может быть выбран не обязательно двоичный, а любой другой конечный алфавит, состоя- состоящий более чем из одной буквы. Пра- Правила кодирования при этом сохра- сохраняются. Нужно лишь вместо нера- неравенства 2"'^п пользоваться неравен- неравенством кт^п, где к — число букв в выбранном стандартном алфавите. Выполнение простейших преобра- преобразований информации и обратных им преобразований обычно не вызывает затруднений и может выполняться с помощью относительно простых ав- автоматических устройств. Поэтому вся трудность, свя- связанная с тем или иным конкретным преобразованием информации, может быть сведена к установлению некото- некоторого соответствия слов в стандартном алфавите. Если в качестве стандартного берется, например, двоичный а А 4' ас-' t f' В р 0" 1ис. ') Если С — информация, а у — отображение, то через Су обозначается результат воздействия отображения у на инфор- информацию С.
26 ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ [Гл. Г алфавит, то суть проблемы состоит в получении из одного ряда нулей и единиц другого ряда нулей и единиц, отли- отличающегося от первого либо числом символов, либо их вза- взаимным расположением, либо тем и другим вместе. Приведем пример сведения сложного процесса преобра- преобразования информации к преобразованию слов в двоичном алфавите. Пусть исходной информацией служат черно-белые ри- рисунки стандартного формата, изображающие тот или иной предмет из некоторого фиксированного множе- множества предметов. Преобразование информации состоит в том, что каждому рисунку сопоставляется название изо- изображенного на нем предмета, записанное на русском язы- языке. Произведем кодирование исходной и заключительной информации в двоичном алфавите. Для заключительной информации такое кодирование может быть выполнено очень просто: достаточно каждой из 32 букв русского ал- алфавита сопоставить одно из 32=25 возможных слов длипы 5 в двоичном алфавите. Например, букве а может быть содо- ставлен код 00000, букве б — код 00001 и т. д. Несколько более сложно кодируется исходная инфор- информация. Для того чтобы выполнить кодирование, разобьем системой горизонтальных и вертикальных прямых пло- площадь каждого рисунка на элементарные квадратики и за- занумеруем эти квадратики в том или ином фиксированном порядке (например, слева направо и сверху вниз). Вели- Величину каждого элементарного квадратика выбираем на- настолько малой, чтобы глаз не различал на нем деталей, а мог различать только степень его яркости. Выбираем, да- далее, максимальное число градаций яркости, воспринимае- воспринимаемых глазом как различные. Ввиду ограниченной способ- способности глаза различать степени яркости изображения, это число будет конечным. Предположим, что оно равно, нап- например, 200. Поскольку имеется ровно 256=2* различных слов длины 8 в двоичном алфавите, мы можем закодиро- закодировать яркости элементарных квадратиков восьмерками ну- нулей и едппиц, взятых в различных комбинациях. Записы- Записывая теперь коды яркостей элементарных квадратиков п порядке роста номеров квадратиков, мы получаем воз- возможность кодировать каждый рисунок рядом нулей и единиц. IS] ПОНЯТИИ ОВ АЛГОРИТМВ 27 Задача распознавания рисунков окав.ывается тем са- самым сведенной к преобразованию ряда нулей и единиц, являющегося кодом рисунка, в ряд нулей и единиц, пред- представляющий (в закодированной форме) название изобра- изображенного на этом рисунке предмета. § 3. Понятие об алгоритме В соответствии с принятой нами дискретной точкой зре- зрения произвольное преобразование информации есть не что иное, как отображение (вообще говоря, частичное) множества слов в некотором конечном алфавите в мно- множество слов в том же самом или любом другом конечном алфавите. Условимся называть такие отображения алфа- алфавитными операторами. Один из первых вопросов, возникающих при изучении алфавитных операторов,— это вопрос о способах их зада- задания. Дело в том, что, вообще говоря, алфавитный оператор определяется на бесконечном множестве слов и не может быть поэтому задан простой таблицей соответствия. Возни- Возникает необходимость нахождения способа задания алфавит- алфавитных операторов на основе конечной информации. Алфавит- Алфавитные операторы, задаваемые с помощью конечных систем правил, принято называть алгоритмами. Приведем при- примеры алгоритмов. Пример 1. Рассмотрим алгоритм сложения целых чисел в десятичной системе счисления. Этот алгоритм пе- перерабатывает слова вида а+b в алфавите, состоящем из 10 цифр и знака сложения, в слова в том же алфавите, из кото- которого исключен знак суммы. Конечная система правил, оп- определяющих алгоритм, состоит из правила поразрядного сложения, правила нахождения соответствующих друг другу разрядов слагаемых (в том числе младших разря- разрядов), правил сложения цифр (таблица сложения) и пра- правила переноса. П р и м е р 2. Рассмотрим алгоритм игры в шахматы. Игру в шахматы можпо трактовать как преобразование слов в конечном алфавите. В качестве алфавита здесь ес- естественно применить обычно употребляющиеся в шахмат- шахматной нотации символы. Словами, как обычно, будут счи- считаться копотлив последовательности букв алфавита.
28 ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ [Гл. I Некоторые из таких последовательностей будут представ- представлять собою шахматные позиции, другие — просто бес- бессмысленные наборы символов (например, 'dKJlad). Алго- Алгоритм задается лишь для слов, представляющих осмыслен- осмысленные позиции, и заключается в преобразовании любой за- заданной позиции в позицию, возникающую из нее после вы- выполнения очередного хода. Как известно, правила движения шахматных фигур еще не определяют однозначно выбора хода в той или иной конкретной позиции и, следовательно, не представляют еще алгоритма. Однако, как показывает опыт, можно со- составить конечную систему стратегических правил, позво- позволяющих в каждой конкретной позиции выбирать един- единственный наилучший (в некотором смысле) ход. Присое- Присоединяя эту систему правил к правилам движения фи- фигур, мы получаем алгоритм, который естественно назвать алгоритмом шахматной игры. Следует сразу оговориться, что в зависимости от того, каким образом определяется качество позиции, меняется и смысл понятия «наилучшего» хода. Это обстоятельство определяет наличие не одного единственного алгоритма шахматной игры, а множества таких алгоритмов. Мы оставляем также в стороне вопрос о вероят- вероятностных алгоритмах, где выбор образа для того или иного слова определяется не однозначно, а случайно, в соответствии с какими-либо вероятностными критериями. Ясно, что применительно к шахматным алгоритмам рас- рассмотрение случайных переходов является весьма уместным. В приведенном выше определении алгоритма как алфа- алфавитного оператора, задаваемого конечной системой пра- правил, есть один существенный недостаток — отсутствие математической точности определения. Не преодолев этого недостатка, нельзя сделать понятие алгоритма предметом точной математической теории. Были поэтому предпри- предприняты многочисленные попытки уточнения понятия алго- алгоритма, которые привели к установлению способов точного задания произвольных алгоритмов. Мы приведем один из таких способов, принадлежащий А. А. Маркову1). ') А. А. Марков, Теория алгоритмов. Труды Матем. ин-та им. В. А. Стеклова, т. 42, 1954. S3] понятие об алгоритме Алгоритмы А. А. Маркова, называемые также нормальными алгоритмами, преобразуют слова, заданные в любом конечном алфавите A =A(at, ..., а„), в слова в том же самом алфавите, причем, как правило, алгоритм ока- оказывается определенным лишь для части слов и задает, следовательно, частичное отображение. Нормальный алгоритм задается конечной таб- таблицей подстановок словв данном алфавите. Чтобы не вводить излишних усложнений, объяснение спо- способов задания таблицы подстановок и методов пользования этой таблицей мы проведем на следующем частном примере. Предположим, что алфавит, в котором функционирует нормальный алгоритм, состоит из трех букв: х, у, z, а таб- таблица подстановок имеет вид: ') 1. ху-^ух, 2. zxz —>- х, 3. zz—> zx. Пусть теперь нам задано произвольное слово в алфа- алфавите (х, у, z), например слово zzzxyz. Правила преобразова- преобразования этого слова с помощью алгоритма — выписанной выше таблицы подстановок — таковы. Прежде всего ищется первая по порядку (считая сверху вниз) формула таблицы, левая часть которой входит в рассматриваемое слово, вы- выделяется первое вхождение (считая слева направо) левой части формулы в слово и это вхождение заменяется правой частью формулы. Эта операция повторяется до тех пор, пока любая из формул таблицы не окажется далее непри- неприменимой (будут отсутствовать вхождения левых частей всех формул таблицы в полученное на предыдущем этапе слово) либо пока не будет применена одна из формул таб- таблицы, выделенных заранее как заключительные формулы и отмеченных специальным значком (в частном случае за- заключительные формулы могут и отсутствовать). При применении указанных правил возможны два слу- случая. Процесс может закончиться через конечное число ша- шагов: в этом случае слово, полученное после выполнения последней подстановки, и будет тем словом, в которое наш ') Стрелки служат для выражения подстановки слова, стоящего справа от нее, вместо вхождения слова, стоящего слева от нее.
30 ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ [Гл. I алгоритм переводит исходное слово. Поможет оказаться, что процесс преобразования слова будет происхо- происходить без конца: в таком случае считается, что алгоритм к исходному слову неприменим. Если в рассматриваемом примере не выделять заклю- заключительных формул, то процесс преобразования исходного слова будет выглядеть следующим образом. 1-й ш а г. Применяется формула 1. Слово zzzxyz = ~zzz(xy)z преобразуется в слово zzzyxz (скобками выделе- выделено первое вхождение левой части применяемой формулы в исходное слово). 2-й шаг. Формулы 1 и 2 неприменимы, применяется 3-я формула. Слово zzzyxz=(zz)zyxz преобразуется в слово zxzyxz. 3-й ш а г. Формула 1 неприменима, применяется 2-я формула. Слово zxzyxz = (zxz)yxz преобразуется в сло- слово xyxz. 4-й шаг. Снова применяется формула 1. Слово xyxz = = (xy)xz преобразуется в слово yxxz. 5-й ш а г. К слову yxxz неприменима ни одна из формул таблицы; поэтому процесс переработки закончен: исходное слово zzzxyz переработано алгоритмом в слово yxxz. Если бы в рассмотренном нами примере выделить, ска- скажем, формулу 2 как заключительную, то процесс обор- оборвался бы уже после 3-го шага, поскольку на этом шаге была бы применена заключительная формула. В резуль- результате получился бы уже другой алгоритм, который перера- перерабатывает слово zzzxyz в слово xyxz, а не в слово yxxz. Естественно задать вопрос о степени общности понятия нормального алгоритма. Специальные исследования, пред- предпринятые для выяснения этого вопроса, с достаточной убе- убедительностью показывают, что любой алгоритм эквивален- эквивалентен некоторому нормальному алгоритму. Иначе говоря, для любого алгоритма над произвольным конечным ал- алфавитом А можно построить нормальный алгоритм над тем же или, быть может, расширенным алфавитом, пере- перерабатывающий слова над алфавитом А точно так же, как и исходный алгоритм. Итак, говоря о произвольном алгоритме, можно, не нарушая общности, иметь в виду только нормаль- нормальные алгоритмы. ПОНЯТИЕ О ДИСКРЕТНОМ (ЦИФРОВОМ) АВТОМАТЕ § 4. Понятие о дискретном (цифровом) автомате 31 Дискретными автоматами принято называть устрой- устройства, служащие для преобразования дискретной инфор- информации. Как уже отмечалось в § 2, дискретную информацию можно всегда считать алфавитной и притом заданной в том или ином стандартном алфавите. В современных дискрет- дискретных автоматах принято обычно отождествлять буквы ис- используемого стандартного алфавита с цифрами той или иной системы счисления (чаще всего двоичной или деся- десятичной). Поэтому дискретные автоматы принято называть также цифровыми автоматами. Основным качеством, выделяющим дискретные авто- автоматы из числа всех других преобразователей информации, является наличие дискретного (при этом в реаль- реальных автоматах всегда конечного) множества внутрен- внутренних состояний и свойства скачкообразного перехода автомата из одного состояния в другое. Скачкообразность перехода означает возможность трак- товать этот переход как мгновенный, причем как такой, который совершается непосредственно, минуя какие-либо промежуточные состояния. Разумеется, для любого реально существующего авто- автомата имеет место конечная длительность переходных про- процессов, так что требование скачкообразности перехода в полной мере никогда не удовлетворяется. Удовлетворение этою требования оказывается возможным таким образом лишь на определенной ступени абстракции. Такая абст- абстракция, однако, достаточно хорошо описывает основные свойства реальных цифровых автоматических устройств (прежде всего — электронных цифровых машин) и поэто- поэтому может быть принята для построения теории цифровых автоматов. Второе допущение, которое также хорошо согласуется с действительностью, состоит в том, что после перехода ав- автомата в произвольное состояние переход в следующее со- состояние оказывается возможным не ранее, чем через неко- некоторый фиксированный для данного автомата проме?куток времени if>0,— так называемый интервал дискретности автомата. Это допущение дает возможность рассматри- рассматривать функционирование цифрового автомата в так
ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ [Гл. I называемом дискретном времени. При построении такого дискретного автоматного времени различаются два ос- основных случая. В так называемых синхронных автоматах, моменты вре- времени, в которые оказывается возможным изменение со- состояния автомата, определяются специальным устройст- устройством — генератором синхронизирующих импульсов. Сосед- Соседние моменты времени оказываются при этом обычно разде- разделенными равными временными промежутками. В противоположность синхронным автоматам, в асин- асинхронных автоматах моменты переходов из одного состоя- состояния в другое заранее не определены и могут совершаться через неравные между собой промежутки времени. Для асинхронных автоматов можно ввести дискретное время, определяемое исключительно лишь одними моментами фактических переходов автомата из одного состояния в другое. Однако при этом теория асинхронных автоматов становится существенно отличной от соответствующей тео- теории для синхронного случая. Поэтому мы в качестве мо- ментовдискретного автоматного времени для асинхронных автоматов будем рассматривать не только моменты факти- фактически имевших место переходов, но также и такие моменты, в которые переходы были возможны, но фактически не произошли. К числу таких моментов мы будем причислять моменты прихода входных сигналов импульсного типа (мгновенных) или изменения уровня напряжения входных сигналов так называемого «потенциального» типа (дейст- (действующих на временном интервале). Разумеется, при этом необходимо считать, что интервал дискретности авто- автомата ограничивает минимально возможное расстояние между дополнительно вводимыми моментами автоматного времени. При таком допущении теория асинхронных авто- автоматов в ряде случаев может быть сведена к синхронному случаю, поскольку фактические длины интервалов между последовательными моментами автоматного времени в идеализированной теории автоматов (без учета переход- переходных процессов) не имеют никакого значения. Имея в виду это обстоятельство, мы в дальнейшем будем рассматри- рассматривать абстрактное автоматное время, принимающее це- целые неотрицательные значения: ?=0,1, 2, ..., п,..., и стро- 4] ПОНЯТИЕ О ДИСКРЕТНОМ (ЦИФРОВОМ) АВТОМАТЕ 33 ить теорию, как теорию синхронных автоматов, хотя в дей- действительности она будет охватывать в значительной мере и теорию асинхронных автоматов. Изменения состояний цифрового автомата вызываются входными сигналами, возникающими вне автомата и пере- передающимися в автомат по конечному числу входных кана- каналов. В отношении входных сигналов цифровых автоматов принимаются два допущения: во-первых, для любого цифрового автомата число различных входных сигналов обязательно конечно, а, во-вторых, входные сигналы рассматриваются как причина перехода автомата из одного состояния в другое а относятся к моментам вре- времени, определяемым соответствующими им переходами. Отметим, что при таком допущении входной сигнал рас- рассматривается как мгновенный, хотя в действительности он имеет конечную длительность. Особо следует подчеркнуть, что реальный физический входной сигнал, вызывающий изменение состояния автомата в момент времени t, может кончиться до наступления этого момента, однако, тем не менее, он относится именно к моменту времени t, а не t—1. Результатом работы цифрового автомата является вы- выдача выходных сигналов, передаваемых из автомата во внеш- внешние цепи по конечному числу выходных каналов. В отноше- отношении выходных сигналов вводятся допущения, аналогичные тем, которые были сделаны для случая входных сиг- сигналов. Во-первых, число различных выходных сигналов для любого цифрового автомата всегда конечно. Во-вто- Во-вторых, каждому отличному от нуля моменту автоматного времени относится соответствующий ему выходной сигнал. Реальный физический выходной сигнал y(l), отнесенный к моменту времени I, появляется всегда после соответствую- соответствующего этому же моменту времени входного сигнала x(t). Что же касается момента t перехода автомата из состоя- состояния a(t — 1) в состояние a(t), то сигнал y(t) может фактиче- фактически появиться либо раньше, либо позже этого момента. В первом случае принимается, что выходной сигнал y(t) однозначно определяется входным сигналом x(t) и состоя- состоянием a(t — 1) автомата в предыдущий момент времени, во втором случае сигнал y{l) однозначно определяется па- парой (x(t), a(t)). Мы будем считать, что для любого дан- данного автомата всегда имеет место лишь одна из этих ' В М Гдушхои
ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ [Гл. I возможностей (одновременно для всех переходов). Цифро- Цифровые автоматы, в которых выходной сигнал y(t) определяет- определяется парой (x(t), a(t—1)), мы будем называть автоматами первого рода, а автоматы, в которых сигнал y(t) определяет- определяется парой (x(t), a(t)),— автоматами второго рода. Цифровой автомат (первого или второго рода) назы- называется правильным, если выходной сигнал «/(^определяется одним лишь его состоянием {a(t — 1) или a(t)) и не зависит явно от входного сигнала x(t). Поскольку состояние a(t) в любом цифровом автомате однозначно определяется парой (x(t), a(t — 1)), то в идеали- идеализированной (сведенной к автоматному времени) теории всякий автомат второго рода может рассматриваться как частный случай автоматов первого рода. Таким образом, автоматы первого рода являются наиболее общим типом цифровых автоматов и именно их теория должна в первую очередь служить объектом изучения. Автоматы первого рода обычно называются также автоматами Мили, по имени американского ученого, который впервые начал их систематическое изучение. Следует отметить, однако, что при синтезе автоматов часто представляет интерес задача построения не какого- нибудь автомата вообще, а автомата того или иного част- частного вида. Особый интерес на практике имеют правиль- правильные автоматы второго рода, известные обы- обычно под более кратким названием автоматов Мура '). При дальнейшем построении теории автоматов мы будем по- поэтому, кроме теории автоматов Мили, строить также и тео- теорию автоматов Мура. Общая теория автоматов при сделанных выше допуще- допущениях естественно разбивается на две большие части, кото- которым мы присвоим названия абстрактной теории автома- автоматов и структурной теории автоматов. Различие между ними заключается в том, что в абстрактной тео- теории мы отвлекаемся от структуры как самого автомата, так и его входных и выходных сигналов. Входные и вы- выходные сигналы рассматриваются при этом просто как буквы двух фиксированных для данного автомата алфави- '¦) Э. Ф. Мур — американский математик, начавший система- систематическое изучение правильных автоматов. ПОНЯТИЕ О ДИСКРЕТНОМ (ЦИФРОВОМ) АВТОМАТЕ 35 тов — входного и выходного. Не интересуясь способом построения автомата, абстрактная теория "изучает лишь те переходы, которые претерпевает автомат под воздействием входных сигналов, и те выходные сигналы, которые он при этом выдает. Абстрактная теория автоматов близка, таким образом, теории алгоритмов, являясь по существу се дальнейшей детализацией. В противоположность абст- абстрактной теории, структурная теория авто- автоматов интересуется прежде всего структурой как са- самого автомата, так и его входных и выходных сигналов. В структурной теории изучаются способы построения автоматов |цз элементарных автоматов, способы кодирова- кодирования входных и выходных сигналов элементарными сиг- сигналами, передаваемыми по реальным входным и выходным каналам, и т. п. Таким образом, структурная теория автоматов являет- является продолжением и дальнейшим развитием абстрактной теории. В частности, задача синтеза идеализированного (без учета переходных процессов) цифрового автомата ес- естественным образом подразделяется на этапы абстракт- абстрактного и структурного синтеза. В дальнейших главах мы да- дадим развернутое изложение этих этапов. Частным случаем дискретных автоматов являются ав- автоматы, обладающие лишь одним внутренним состоянием. Такие автоматы называются комбинационными схемами или автоматами без памяти. Работа таких автоматов со- состоит в том, что они сопоставляют каждому входному сиг- палу x(t) выходной сигнал у{1). Абстрактная теория автоматов без памяти совершенно тривиальна, а структурная теория таких автомате» много легче, чем теория произвольных автоматов с па- памятью. Основная идея излагаемой методики синтеза автомата состоит в том, чтобы еще на уровне абстрактной теории преодолеть основные затруднения, вызванные на- наличием памяти, а на уровне структурной теории свести задачу синтеза автомата к задаче синтеза комбинацион- комбинационных схем. 3*
ГЛАВА II АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ § 1. Понятие об абстрактном автомате и индуцируемом им отображении Объектом изучения в абстрактной теории автоматов яв- являются абстрактные автоматы вместе с реализуемыми ими отображениями и событиями. 1. 1. Абстрактный автомат А задается как совокуп- совокупность шести объектов: конечного множества i? входных сиг- сигналов, называемого входным алфавитом автомата, конеч- конечного множества 58 выходных сигналов, называемого выход- выходным алфавитом автомата, произвольного множества Ш, называемого множеством состояний автомата, элемента аа из множества s)i, называемого начальным состоянием авто- автомата, и двух функций 6(а, х) и Х(а, х), задающих одно- однозначные отображения множества пар (а,х), где а ?21 и х?Х., в множества ЭД и Щ>. Функция Ь(а,х) называется функцией переходов автомата, а функция %(а,х) — функ- функцией выходов, либо сдвинутой функцией выходов. Авто- Автомат, заданный функцией выходов, называется автоматом первого рода; автомат, заданный сдвинутой функцией выходов,— автоматом второго рода. Абстрактный автомат функционирует в дискретном вре- времени, принимающем целые неотрицательные значения / = = 0, 1, 2, .... В каждый момент / этого времени он находит- находится в определенном состоянии a(t) из множества Й состоя- состояний автомата, причем в начальный момент времени t—0 автомат всегда находится в своем начальном состоянии аи, т. е. а@) — а0. В каждый момент времени I, отличный от начального, автомат способен воспринимать входной сиг- ПОНЯТИЕ ОБ АБСТРАКТНОМ АВТОМАТЕ 37 нал x(t) — произвольную букву входпого алфавита ? и оыдавать соответствующий выходной сигнал y(t) — некото- некоторую букву выходного алфавита 23. Закон функцонирования абстрактного автомата в слу- случае автомата первого рода задается уравне- уравнениями: A) a(t) = b(a{t-i),x(t)), y(t)=X(a{t — l), x(t)), (* = 1, 2,,..), а в случае автомата второго рода — уравнениями: B) a(t) = b(a{t— 1), x(t)), y(t)=K(a(t),x(t)) (/=1, 2, ...). Установлением закона функционирования заканчивает- заканчивается определение абстрактного автомата. Теперь необхо- необходимо остановиться на смысле понятия абстрактного авто- автомата; этот смысл состоит в реализации некоторого отобра- отображения ф множества слов входного алфавита в множество олов выходного алфавита. Отображение ф реализуется следующим образом: каждое слово p=xit xi2... xik входного алфавита 3iz={x1, ..., хп), или, более кратко, каждое входное слово, последовательно, буква за буквой, подает- подается на вход данного абстрактного автомата А, установлен- установленного предварительно в начальное состояние. Возникаю- Возникающая таким образом конечная последовательность вход- входных сигналов х(\)=Х{1 , хB)=хг,,..., x(k)=xit на основании закона функционирования автомата вызывает появление однозначно определенной конечной последовательности <?=г/A),г/B), ..., у (к) выходных сигналов. Эту последова- последовательность мы будем называть выходным словом, соответст- соответствующим входному слову р. Относя таким образом каждому входному слову р соответствующее ему выходное слово q, мы получаем иско- искомое отображение ф, а именно: д=ф(р). Построенное указан- указанным способом отображение ф будем называть отображе- отображением, индуцированным абстрактным автоматом А. 1. 2. Два абстрактных автомата с общим входным и выходным алфавитами называются эквивалентными меж- между собой, если они индуцируют одно и то же отображение множества слов во входном алфавите в множество слов в вы- выходном алфавите.
АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ 1Гл. Наряду с эквивалентностью важнейшее значение имеет понятие изоморфизма абстрактных автоматов. Предположим, что нам заданы два абстрактных автома- автомата: .4,C:,. 33,, >Л,, а,.. 6, (а, ж), Я, (а х)) и А2(Х2, 3».. Я, а„ 62(а, ж), Я2(я, ж)) одного и того же рода. Если сущест- существуют взаимно однозначные отображения: а, отображаю- отображающее множество А, на множество Х.г, ($, отображающее множество sj>, на множество SB2, и у, отображающее мно- множество 9(, па множество ЭД2, и если удовлетворяются условия: A) B) (Y(rt)- «(г)), р (Л, (а, *)) (для любых а?'Д, и #€ то абстрактные автоматы Atvi Аг называются изоморфны- изоморфными. В этом случае говорят, что отображения а, ($ и у осу- осуществляют изоморфное отображение одного автомата на другой. Изоморфные между собой абстрактные автоматы отли- отличаются друг от друга лишь обозначениями входных и вы- выходных сигналов и состояний. Поэтому, в абстрактной тео- теории автоматов, не занимающейся проблемами кодирова- кодирования состояний, а также входных и выходных сигналов, изо- изоморфные автоматы считаются одинаковыми и будут заме- заменяться один другим без каких-либо дальнейших поясне- пояснений. Операция перехода от данного абстрактного автомата к изоморфному ему автомату состоит просто в перео- переобозначении элементов входного алфавита, выход- выходного алфавита и множества состояний автомата. Поскольку на протяжении всей настоящей главы мы будем оперировать исключительно с абстрактными авто- автоматами, термин «абстрактный» будет, как правило, опус- опускаться всякий раз, когда это сокращение не вызывает не- недоразумений. Следующим важным вопросом, который нам предстоит выяснить, является вопрос о взаимоотношении между автоматами первого и второго р о д а. ПОНЯТИЕ ОБ АБСТРАКТНОМ АВТОМАТЕ 39 Пусть нам дан произвольный автомат А второго рода, заданный функцией переходов 6(а, х) и сдвинутой функци- функцией выходов К(а, х). Построим новую функцию Я, (а, х) = =К{Ь(а,х),х). Из закона функционирования автоматов вто- второго родаB) мы получаем; г/(г)=ЯF(а(г—1), x(t)),x(t)) = =X,(a(i—l),x(t)). Теперь ясно, что автомат В первого рода, заданный той же функцией переходов Ь(а,х), что и автомат Л, и функцией выходов Я,(а,а:) (при условии сохранения множества состояний, начального состояния, а также вход- входного и выходного алфавита автомата А), индуцирует то же самое отображение множества входных слов- в множество выходных слов, что и автомат А. Нами доказано следующее предложение. 1. 3. Для каждого автомата А(Х.,$5, Sl,a,,,6(«, х), Х(а,х)) второго рода существует эквивалентный ему ав- автомат В(?, й, §1, а0, 6(а,х),К1(а,х)) первого рода, функ- функция выходов которого получается в результате подстановки функции переходов автомата А в его сдвинутую функцию выходов: Я, (а, ?) = ЯF(а, х), х). Способ сведения автоматов второго рода к автоматам первого рода, указанный в предложении 1.3., мы усло- условимся называть интерпретацией автомата второго рода как автомата первого рода. Обратная интерпретация автоматов первого рода как автоматов второго рода при сохранении того же самого множества состояний оказывается, вообще говоря, невоз- невозможной. Более сложный способ (с изменением множества состояний) построения обратной интерпретации будет из- изложен ниже. Произвольные автоматы первого рода мы будем, как отмечено в § 4 гл. I, называть в дальнейшем автоматами Мили, а частный случай автоматов второго рода, у кото- которых сдвинутая функция выходов К(а,х) не зависит от вто- второй переменной х — автоматами Мура. Автомат будет называться конечным или бесконечным в соответствии с тем, конечно или бесконечно множество его состояний. Исходя из соображений практики, объектом дальней- дальнейшего изучения будут служить в основном конечные авто- автоматы Мили и Мура. Мы остановимся поэтому несколько
40 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. И подробнее на способах задания таких автоматов. Посколь- Поскольку конечные множества могут быть заданы простым пере- перечислением их элементов, вопрос о задании конечных авто- автоматов сводится к заданию функций переходов и функций выходов (обычных или сдвинутых). Обыкновенно эти функции задаются таблицами с двумя входами, называе- называемыми соответственно таблицей переходов и таблицей выходов (обычной или сдвинутой) данного конечного ав- автомата. Строки обеих этих таблиц обозначаются входными сиг- сигналами автомата, а столбцы — его состояниями. При этом условимся, что начальное состояние всегда будет обозна- обозначать первый слева столбец. На пересечении х-й строки и а-го столбца таблицы переходов ставится соответствую- соответствующее значение 6(а,х) функции переходов, а в таблице выхо- выходов (обычной или сдвинутой) — соответствующее значе- значение К(а,х) функции выходов (обычной или сдвинутой). Задание таблиц переходов и выходов в том виде, как это было только что описано, полностью определяет соот- соответствующий конечный автомат, поскольку при этом за- задаются не только функции переходов и выходов, но и мно- множества состояний входных и выходных сигналов, а также начальное состояние. Весьма часто для обозначения со- состояний автомата употребляются целые положительные числа. В этом случае мы условимся, для определенности, начальное состояние обозначать единицей, а в случае, когда употребляется также и нуль — нулем. Для случаев автомата Мура сдвинутая таблица выхо- выходов сводится по существу к одной строке. Помещая эту строку над таблицей перехода, мы придем к понятию от- отмеченной таблицы переходов автомата Мура. В отмеченной таблице переходов над каждым состоянием а, автомата, обозначающим тот или иной столбец таблицы, стоит соот- соответствующий этому состоянию выходной сигнал Х(апх) = =Х0(а,) (сдвинутая функция выходов не зависит от вход- входного сигнала х\). Условимся говорить, что в произволь- произвольном автомате Мура каждое состояние а отмечено соответ- соответствующим ему выходным сигналом Х„(а). Второй способ задания абстрактных автоматов осно- основан на использовании направленных графов. Граф произ- произвольного абстрактного автомата А представляет собою ПОНЯТИИ ОБ АБСТРАКТНОМ АВТОМАТЕ 41 комбинацию вершин, изображаемых на рисунках кружоч- кружочками, и соединяющих их стрелок — ребер графа. Вершины отождествляются с состояниями автомата, а стрелки — с входными сигналами. Если входной сигнал х; вызы- вызывает переход автомата из состояния ау- в состояние ak, то на графе автомата этому сигналу соответствует обозна- обозначенная буквой xi стрелка, соединяющая вершину, соответ- соответствующую состоянию а у, с вершиной, соответствующей со- состоянию ak. При этом, разумеется, не исключается случай, когда вершина а;- и ак совпадают. Построенный таким образом граф автомата А задает только функцию переходов этого автомата. Для задания функции выходов (обычной или сдвинутой) ребра графа (стрелки) обозначаются не только входными, но и соответ- соответствующими им выходными сигналами. Если обозначенная входным сигналом х( стрелка соединяет вершину а;- с вер- вершиной ак, то в случае автоматов первого рода ей приписы- приписывается выходной сигнал X,(<iy, xt), а в случае автоматов второго рода — выходной сигнал Х2(аА, а:,), где К1 и Кг — соответств нно обычная или сдвинутая функция выходов автомата. В случае автоматов Мура все стрелки, входящие в одну и ту же вершину а,;, должны быть обозначены одним и тем же выходным сигналом. Поэтому принято обозначать вход- входными сигналами не стрелки, а вершины, в которые эти реб- ребра входят. Таким образом, на графе автомата Мура каждая вер- вершина имеет два обозначения — одно, обозначающее сос- состояние автомата, и другое, обозначающее выходной сигнал, отмечающий состояние автомата на основании сдвинутой функции выходов. Легко видеть, что граф автомата, благодаря введенным на нем (в соответствии со сделанным выше описанием) обоз- обозначениям вершин и ребер, полностью задает автомат,— при условии, что каким-то образом отмечена вершина графа, соответствующая начальному состоянию этого автомата. Переход от задания конечного автомата с помощью таблиц к заданию с помощью графа и обратный переход выполняются вполне очевидным образом. Пусть, напри- например, конечный автомат Мура задан отмеченной таблицей
42 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. П переходов (табл. II. 1). Этой таблице соответствует граф, изображенный на рис. 2. Таблица II. 1 X У и 1 2 1 и 2 3 4 3 3 4 0 4 2 1 Задание автомата с помощью графа обладает большей наглядностью по сравнению с заданием его с помощью таб- таблиц, однако при большом числе состояний такой способ задания становится достаточно громоздким. Мы будем поэтому в основном пользоваться заданием автоматов с помощью таблиц, используя графы лишь для иллюстрации. Следует упомянуть еще об од- одном упрощении, которым обычно пользуются пви изображении гра- графов автоматов: если несколько стрелок соединяют одну и ту же (упорядоченную) пару вершин, то все эти стрелки заменяются одной стрелкой того же направления с сохранением в ее обозначении всех букв, которые обозначали заменен- замененные ею стрелки. При этом, чтобы избежать путаницы в отношении выходных сигналов, каж- каждый выходной сигнал пишется рядом с соответствующим ему входным сигналом и заключается обычно в скобки. Отметим, что при обоих описанных способах задания автоматов особо просто осуществляется интерпретация произвольного автомата Мура как автомата Мили, опи- описанная в более общем виде в предложении 1. 3. В самом деле, в случае задания автомата Мура А отме- отмеченной таблицей переходов достаточно подставить в эту таблицу вместо состояний отмечающие их выходные сиг- Риг.. 2. il] ПОНЯТИЕ ОБ АБСТРАКТНОМ АВТОМАТЕ 43 налы, чтобы получить таблицу выходов автомата Мили В, эквивалентного автомату А. В случае задания автомата А графом для получения графа автомата В достаточно обоз- обозначить выходными сигналами не вершины графа, а стрел- стрелки, входящие в соответствующие вершины. Применение указанной процедуры к автомату Мура, граф которого изо- изображен на рис. 2, приводит к эквивалентному ему авто- автомату Мили, задаваемому графом, изображенным на рис. 3, и таблицами переходов и выходов II. 2 и II. 3. Таблица II. 2 Таблица II. 3 X у t 2 1 2 3 4 3 3 4 4 2 1 X У 1 и и - V V ¦i 0 V 4 и и ум В некоторых случаях оказывается удобным вместо таб- таблицы переходов абстрактного автомата (любого рода) ис- использовать так называемую квадратную автоматную таблицу. Квадратной автомат- автоматной таблицей мы будем назы- называть таблицу, у которой как строки, так и столбцы обозна- обозначены различными состояниями автомата. Элементом таблицы, стоящим на пересечении а--й строки и ау-го столбца, служит множество всех входных сигна- сигналов, вызывающих переход ав- автомата из состояния at в состоя- состояние aj (такое множество может быть, разумеется, и пустым). Если фиксировать какую- либо нумерацию состояний ав- автомата иатуральнкм i числами 1, 2, ... и расположить строки и столбцы квадратной ав- автоматной таблицы в соответствии с этой нумерацией, то квадратная автоматная таблица превращается в (квад-' ратную) автоматную матрицу \\аи\\. Рис. 3.
44 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. 11 В отличие от таблицы в матрице нет необходимости выписывать состояния, обозначающие строки и столбцы,—> их заменяет номер строки или столбца, определяемый их положением в матрице. Разумеется, при изменении нуме- нумерации состояний изменяется и сама матрица, так что одна и та же функция переходов может задаваться различными квадратными автоматными матрицами. Напомним лишь, что, в соответствии с принятым выше соглашением, при лю- любой нумерации начальному состоянию автомата приписы- приписывается номер, равный единице. Как уже отмечалось выше, элементами квадратной авто- автоматной матрицы служат множества входных сигналов а:,,... ..., хп автомата. Для обозначения множества, состоящего из сигналов а:^, xix, ..., xin, будем употреблять символы этих сигналов, соединенные знаком дизъюнкции (логиче- (логического «или»): Zj.v xi% v...\ixik. В частности, множество, со- состоящее из одной буквы, будем отождествлять с этой бук- буквой. Для обозначения пустого множества будем употреб- употреблять специальный символ (звездочку или черточку), либо просто оставлять в соответствующих местах матрицы пу- пустые места. Пользоваться символом нуля для этой цели не- неуд бно, noci ольку в ряде случаев естественно употреб- употреблять нуль для обозначения одного из входных сигналов. Имея таблицу переходов или граф автомата и зафикси- зафиксировав определенную нумерацию его состояний, легко по- построить квадратную автоматную матрицу этого автомата. Так, например, для автомата, граф которого изображен на рис. 1, при использовании фактически выполненной на ней нумерации состояний квадратная автоматная матрица будет иметь следующий вид: ух-. х у х у ух Обратно, по квадратной автоматной матрице нетрудно восстановить таблицу переходов или его граф (без обозна- обозначения стрелок и вершин выходными сигналами). Следует отметить одну особенность способов задания автоматов. В то время как произвольным образом заполнен- заполненная таблица переходов или таблица выходов служит таб- ПОНЯТИЕ 013 АБСТРАКТНОМ АВТОМАТЕ 45 лицей переходов или соответственно табл.ицей выходов не- некоторого абстрактного автомата, не всякий граф и не вся- всякая квадратная матрица описанного выше вида могут слу- служить графом или соответственно квадратной автоматной матрицей некоторого автомата. Для того чтобы это име- имело место, необходимо соблюдение некоторых условий, свя- связанных со свойствами функции переходов автомата. Первое условие связано с однозначностью функ- функций переходов и выходов и называется в соответствии с этим условием однозначности. Соблюдение этого условия требует, чтобы на графе автомата из любой вершины вы- выходило бы ие более одной стрелки, обозначенной любым данным входным сигналом. Применительно к квадратной автоматной матрице это условие означает, очевидно, что в любой ее строке любой -данный входной сигнал должен встречаться не более одного раза. Второе условие, называемое обычно условием пол- полной определенности, определяется тем, что до настоящего времени мы рассматривали лишь такие автоматы, функции переходов и выходов которых (обычные или сдвинутые) всюду определены. Соблюдение этого услоьим требует, очевидно, чтобы для любого входного сигнала х из каждой вершины обязательно выходила бы стрелка, обозначенная этим входным сигналом, и чтобы этот вход- входной сигнал обязательно присутствовал в каждой строке квадратной автоматной матрицы. В настоящей книге мы не будем рассматривать такие обобщения абстрактных автоматов, для которых не выпол- выполняется условие однозначности. Вместе с тем, при синтезе цифровых автоматов весьма часто и с большой пользой употребляются такие обобщения понятия абстрактного ав- автомата, для которых не выполняется условие полной оп- определенности. Это — так называемые частичные авто- автоматы. Частичным автоматом называется абстрактный ав- автомату у которого функция переходов или функция вы- выходов {обычная или сдвинутая), или обе эти функции, определены не для всех пар значений своих аргументов а их. В отличие от частичных автоматов, рассматривавшиеся ранее автоматы называются вполне определенными. В даль- дальнейшем изложении будет удобно под термином автомат
4 U АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ |Гл. II понимать произвольный (частичный или вполне опре- определенный) абстрактный автомат. Для частичных автома- автоматов употребляются те же способы задания, что и для вполне определенных автоматов. В тех местах таблицы пе- переходов или таблицы выходов (обычной или сдвинутой), в которых изображаемые ими функции не определены, мы будем ставить черточки. Граф частичного автомата чможет иметь вершины, из которых не выходят стрелки, обозначенные теми или иными входными сигналами. Подобно вполне определенным автоматам частичные ав- автоматы также делятся на автоматы первого и второго рода, автоматы Мили и автоматы Мура. Изоморфизм частичных автоматов предусматривает, чтобы соответствующее изо- изоморфное отображение переводило множества значений, в которых не определены функции переходов или выходов (обычная или сдвинутая) одного автомата, в множества значений, в которых не определены соответствующие функ- функции другого автомата. Несколько сложнее обстоит дело с понятием эквивалент- эквивалентности частичных автоматов. Для того чтобы определить это понятие, необходимо прежде всего установить, что сле- следует понимать под отображением, индуцируемым данным частичным автоматом А. Для этой цели, как и прежде, мы будем подавать на вход частичного автомата (приведенного предварительно в начальное состояние) различные вход- входные слова. Подавая очередную букву х(к)=х-п некоторого слова p=x-ltx-u... xik на вход автомата А, мы можем стол- столкнуться с положением, когда соответствующий ей выход- выходной сигнал не определен. Условимся в этом случае назы- называть соответствующее слово/? — запрещенным для данного частичного автомата А. Все слова, не являющиеся запре- запрещенными, будем называть допустимыми (для данного ав- автомата А). Отображение ф множества входных слов в множество выходных слов, индуцируемое частичным автоматом Л, является, таким образом, частичным отображением, обла- областью определения которого служит множество всех допу- допустимых слов данного автомата. Образ ф (р) любого допусти- допустимого слова при этом отображении определяется точно так же, как и для вполне определенных автоматов. В дальней- дальнейшем нам будет удобно под термином «отображение» попи- М] ПОНЯТИЕ OD АБСТРАКТНОМ АВТОМАТК 47 мать произвольное (вполне определенное или частичное) отображение. Два частичных автомата с одинаковыми входным и выходным алфавитами естественно называть эквивалент- эквивалентными, если индуцируемые ими частичные отображения имеют одну и ту же область определения и совпадают на этой области. Для случая частичных автоматов, однако, большее зна- значение имет не отношение эквивалентности, а отношение эквивалентного продолжения автоматов. 1. 4. Говорят, что частичное отображение ф продол- продолжает частичное отображение \р, если область определения отображения ф включает в себя область определения М отображения ij), а на области М оба отображения совпа- совпадают. Частичный автомат А называется эквивалентным продолжением частичного автомата В, если частичное ото- отображение, индуцируемое автоматом А, продолжает ча- частичное отображение, индуцируемое автоматом В. Ясно, что в случае, когда автомат А эквивалентно про- продолжает автомат В, входной алфавит автомата А должен содержать входной алфавит автомата В. То же самое будет иметь место и для выходных алфавитов, так как в дальней- дальнейшем мы будем всегда предполагать, что выходные слова, выдаваемые частичным автоматом в ответ на всевозможные входные слова, используют все буквы его выходного ал- алфавита. В дальнейшем нам придется иметь дело в основном с такими эквивалентными продолжениями, при которых не происходит расширения входного и выходного алфа- алфавитов. Из определения допустимых слов (для любого данного частичного автомата А) вытекает, что в случае, когда входное слово p=xiixi2... ^допустимо, допустимыми будут также все слова xti, x\t а:{,,,.., xit Х{г ...xii_l. Все эти слова называются начальными отрезками слова р. Обычно к чи- числу начальных отрезков слова р причисляют само это сло- слово, а также пустое слово, не содержащее ни одной буквы. Сделанное замечание позволяет сформулировать следую- следующее предложение. 1. 5. Область определения М частичного отображения, индуцируемого любым частичным автоматом, удовлетворя- удовлетворяет следующему условию, называемому условием полноты:
АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ {Гл. II вместе с любым содержащимся в М словом область М со- содержит и все начальные отрезки этого слова. Рассмотрим теперь некоторые соотношения между об- областями определений функций переходов и выходов в ча- частичном автомате. Предположим, что мы имеем частичный автомат Мили А, и пусть для некоторого состояния о,- и входного сигнала Xj его функция выходов не определена. Это означает, очевидно, что переход автомата из состояния о,- в новое состояние под воздействием входного сигнала Xj реализуется лишь при подаче на вход автомата запре- запрещенных входных слов. Поэтому мы можем не определять функцию переходов б(а, х) автомата А в точке a=ait x=Xj без опасения изменить реакцию автомата А на допустимые слова. Считая функцию б(а, х) неопределенной в этой точ- точке, мы не увеличим и не уменьшим множества допустимых слов автомата. Проведенными рассуждениями нами доказано следую- следующее предложение. 1. 6. Если функцию переходов произвольного частичного автомата Мили А рассматривать не заданной во всех точ- точках, в которых не задана его функция выходов то возникший таким образом новый частичный автомат Мили В будет, индуцировать то же самое частичное отображение, что и автомат А. При задании (частичного) автомата А таблицами пере- переводов и выходов таблица переходов автомата В получает- получается прочеркиванием всех мест таблицы переходов автомата А, которым соответствуют прочеркнутые места в его таб- таблице выходов. Назовем эту операцию распространением неопределенности таблицы выходов на таблицу переходов автомата Мили. Для частичных автоматов Мура естественно считать запрещенными все состояния, для которых сдвинутая функ- функция выходов не определена. Легко понять, что перейти из начального состояния в запрещенное под воздействием непустого слова автомат Мура может лишь в том случае, когда это слово — запрещенное. Можно поэтому не опре- определять функцию переходов автомата Мура всякий раз, когда функция принимает запрещенное значение, не изме- изменяя при этом индуцируемого автоматом отображения (включая область определения этого отображеиия). §П ПОНЯТИЕ ОБ АБСТРАКТНОМ АВТОМАТЕ 49 Нами доказано следующее предложение. 1. 7. Не изменяя индуцируемого частичным автоматом Мура частичного отображения, можно считать функцию переходов этого автомата неопределенной всякий раз, когда она принимает запрещенное значение. Эквивалентное преобразование автоматов Мура, уста- устанавливаемое предложением 1.7, сводится к тому, что в таблице переходов автомата Мура символы запрещенных состояний заменяются черточками. Как и в случае автома- автоматов Мили, мы будем называть эту операцию распростра- распространением неопределенности на таблицу переходов. Введем еще следующее определение. 1. 8. Состояние а абстрактного (частичного или вполне определенного) автомата называется достижимым, если оно совпадает с начальным состоянием или если сущест- существует такое достижимое состояние Ь и такой входной сиг- сигнал х, что a7=zb(b,x). В противном случае состояние а называется недостижимым. Автомат, все состояния кото- которого достижимы, называется связным. Нетрудно понять, что автомат не может перейти в не- недостижимое состояние из начального состояния под воз- воздействием допустимых входных слов. Можно поэтому вы- вычеркнуть все столбцы таблиц переходов и выходов авто- автомата, которые обозначены недостижимыми состояниями, не изменяя при этом индуцируемое автоматом частичное отображение. Условимся называть такую операцию ис- исключением недостижимых состояний. 1, 9. 5 результате исключения недостижимых состоя- состояний индуцируемое абстрактным автоматом (частичным или вполне определенным) отображение не изменяется. Предложение 1.9 показывает, что при изучении инду- индуцируемых автоматами отображений можно ограничиться рассмотрением лишь связных автоматов. Условимся еще относительно некоторых обозначений. Если А — произвольный абстрактный, автомат, &(а,х) — его функция переходов, а р — произвольное входное сло- слово, то через б (а, р) мы будем обозначать то состояние, в которое перейдет автомат А из состояния а, если на вход автомата последовательно, буква за буквой, подать все буквы слова р. Для обозначения состояния Ь(а,р) мы будем иногда употреблять также сокращенное обозначение ар, 4 В. М. Глушнов
50 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. 11 так что, в частности, функция переходов автомата может быть записана просто в виде выражения ах. В заключение сделаем несколько замечаний, которые следует иметь в виду при практическом использовании введенных в настоящем параграфе понятий. Во-первых, нужно помнить, что всякий абстрактный автомат (в том числе и частичный) получает входные сигналы во все моменты времени < = 1, 2, ... Это обстоятельство нисколько не сужает области применения абстрактных автоматов. В самом деле, если некоторый реальный автомат в какие-то моменты времени не получает никаких реальных сигна- сигналов, то можно ввести для такого случая специальный символ нулевого сигнала, так что рассматриваемый как абстрактный автомат наш автомат будет получать вход- входные сигналы во все моменты времени. Далее, необходимо помнить, что любая комбинация сигналов, передаваемых одновременно по реальным вход- входным каналам, рассматривается в абстрактной теории как один входной сигнал. Если, например, реальный автомат имеет два входных канала, по которым м<уут передаваться три комбинации сигналов 00, 01 и 10, то, рассматривая этот автомат как абстрактный, мы должны ввести для него три (абстрактных) входных сигнала х1, хг, хг, сопоставив их каким-нибудь образом заданным комбинациям реаль- реальных входных сигналов. Еще одно замечание касается способов практического использования понятия частичного автомата. Обычно все реально существующие автоматы являются вполне опреде- определенными. Однако они могут быть поставлены в такие ус- условия, что некоторые слова их входного алфавита никогда не подаются на их вход. Такие слова естественно называть запрещенными. Ясно, что с точки зрения правильности работы автомата совершенно безразлично, как он будет реагировать на запрещенные слова. Поэтому переходы и вы- выходы автомата применительно к запрещенным словам мо- могут быть определены совершенно произвольно. Беря соответствующий частичный автомат, где эти пе- переходы и выходы не определены вовсе, мы тем самым остав- оставляем за собой право определить их впоследствии так, как это нам будет удобно. Таким образом, на практике ча- частичный автомат А выступает как способ представления §2] АВТОМАТНЫЕ ОТОБРАЖЕНИЯ И СОБЫТИЯ 51 целого класса вполне определенных автоматов, которые могут быть получены из автомата А в результате произвольного доопределения его функций переходов и выходов во всех точках, в которых они не были ранее определены. § 2. Автоматные отображения и события Отображения (вообще говоря, частичные), индуцируе- индуцируемые абстрактными автоматами, мы будем называть автома- автоматными отображениями. Из предложения 1.5 предыдущего параграфа и из способа определения автоматного отобра- отображения непосредственно вытекает, что всякое автоматное отображение удовлетворяет следующим четырем условиям: 1. Автоматное отображение осуществляет однознач- однозначное отображение (вообще говоря, частичное) множества слов в некотором конечном алфавите X. (называемом вход- входным алфавитом отображения) в множество слов в некото- некотором конечном алфавите 93 (назывармом выходным). 2. Область определения автоматного отображения удовлетворяет условию полноты, то есть, иначе говоря, вместе с любым содержащимся в ней словом содержит так- также все начальные отрезки этого слова. Пустое слово всегда входит в область определения отображения. 3. Автоматное отображение ф сохраняет длину слова: любое слово р входного алфавита, на котором отображение Ф определено, имеет ту же длину, что и его образ <р(р). В частности, пустое слово переводится отображением ф в пустое слово. . 4. Автоматное отображение ф переводит любой на- начальный отрезок слова р, на котором оно определено, в соот- соответствующий (имеющий ту же длину) начальный отрезок слова ff(p). Назовем эти условия условиями автоматности отобра- отображения. Все слова входного алфавита разбиваются автоматным отображением на два класса: на класс допустимых и класс запрещенных слов, в зависимости от того, входят или не входят они в область определения этого отображения. Со- Совокупность всех запрещенных для данного автоматного отображения слов будет называться его областью запрета.
АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Рассмотрим произвольное (частичное) отображение ф, для которого выполняются сформулированные выше ус- условия. Построим абстрактный (частичный) автомат Мура А, состояниями которого будут служить всевозможные допу- допустимые для отображения ф слова входного алфавита ? = =(«,, ..., ?„)• Обозначим множество всех таких слов через Щ и определим функцию переходов 6(а, х) этого автомата следующим образом: если ау — любое слово из 31, a xt — произвольная буква входного алфавита, то будем считать, что 6(ау., ?,•) равняется слову aJ-xl (получающемуся в ре- результате приписывания буквы xt к слову aj), если слово uj xt содержится в 31, и что б(ау, xt) не определено — в противном случае. Выбирая в качестве выходного алфавита автомата А выходной алфавит отображения ф, построим сдвинутую функцию выходов Х(а) автомата Мура А следующим обра- образом: для любого непустого слова at из 31 полагаем Ца.) равным последней букве слова ф(а,); на пустом слове функ- функция Х(а) остается неопределенно^ Выбирая в качестве начального состояния автомата пустое слово е, мы получим, как легко видеть, автомат Мура, индуцирующий исходное отображение ф. В самом де- деле, пусть q = х, ?;,... ?jj — любое допустимое слово ото- отображения ф. Тогда все его начальные отрезки будут также допустимыми словами (в силу условия 2). Подавая на вход построенного автомата слово q, мы будем осуществлять последовательно его перевод в состояния exit =xit, х-хх-1г, ... ...,Xi,Xj, ...Х;гПри этом автомат выдает некоторую после- последовательность выходных букв у hy/t... yjh=p. Из способа определения нашего автомата вытекает, что последняя буква слова р совпадает с последней буквой слова y(q), предпоследняя буква слова р — с последней буквой слова ф(х;1 ?;,... Xit_,), которая, в силу условия 4, совпадает с предпоследней буквой слова ф(д) и т. д. Продолжая подоб- подобным образом и используя условие 3, мы установим совпаде- совпадение всех букв слова р с соответствующими им буквами слова ф(<7). Следовательно, построенный нами автомат Мура А индуцирует исходное (частичное) отображение ф. Поскольку мы можем интерпретировать автомат А как автомат Мили (см. § 1), нами доказано следующее предложение. §2] АВТОМАТНЫЕ ОТОБРАЖЕНИЯ И СОБЫТИЯ 53 2. 1. Если алфавитное отображение ф удовлетворяет сформулированным выше четырем условиям автоматно- сти, то можно построить автоматы Мили и Мура (вооб- (вообще говоря, бесконечные), индуцирующие это отображение. В случае, когда область определения отображения ф конеч- конечна, эти автоматы также могут быть выбраны конечными. Доказанное предложение позволяет нам применять тер- термин «автоматное отображение» ко всякому алфавитному отображению, удовлетворяющему условиям автоматности. Из доказательства предложения 2.1 вытекает сущест- существование единого конструктивного приема, позволяющего по любому автоматному отображению с конечной областью определения (заданному на конеч- конечном множестве слов) строить индуцирующий это отобра- отображение конечный автомат Мили или Мура. Ука- Указанный прием восходит еще к работам Хафмена')и Мили2). Нашей же целью является разработка более общего конструктивного приема, позволяющего строить конечные автоматы Мили и Мура, индуцирующие за- заданное автоматное отображение не только для случая ко- конечной области определения, авсякий раз, когда такие автоматы существуют. Из предложения 2.1 вытекает, что классы отображений, индуцируемых произвольными (не обязательно конечны- конечными) автоматами Мили и Мура, совпадают между собой: как един, так и другой класс состоят из всех автоматных отображений. Оказывается, что имеет место также совпа- совпадение классов отображений, индуцируемых конеч- конечными автоматами Мили и Мура. Поскольку в § 1 уже была установлена возможность интерпретации каждого ав- автомата Мура как автомата Мили с тем же самым числом со- состояний, то для обоснования справедливости высказанного утверждения достаточно доказать следующую теорему. 2. 2. Для всякого конечного автомата Мили суще- существует эквивалентный ему (индуцирующий то же самое ') D. A. Huff ma n, The synthesis of sequential switching circuits. Journal of the Franklin Inst., v. 257, № 3, 4, 1954, p. 161 — 190, 275—303. 2) G. H. Mealy, A method for synthesizing sequential circuits. Bell System Tech. J., v. 34, 1955, p. 1045—1079.
54 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл, II отображение) конечный автомат Мура. Существует еди- единый конструктивный прием (универсальный алгоритм преобразования автоматов Мили в автоматы Мура), позволяющий по произвольному конечному автомату Мили, имеющему т входных сигналов и п состояний, построить эквивалентный ему автомат Мура, имеющий не более тп-{-{ состояний. В самом деле, пусть А — конечный автомат Мили с множеством состояний (а,, ..., ап), входным алфавитом (ж,, ..., хт), выходным алфавитом (у1, ..., уг), начальным со- состоянием а,, функцией переходов 6(а, х)=ах и функцией выходов К(а, х). Построим автомат Мура В, состояниями которого являются начальное состояние Ь1=а1 (совпадаю- (совпадающее с начальным состоянием автомата А) и всевозможные пары btJ =(а-, xj) (?=1 re; /=1 т). Функцию переходов автомата В определим следующим образом: blxk=blk = (a1,xk), bi/xk = (ai,xJ)xk = (aix/, xk) (?=1,2,..., re; /V i=l,2, ..., m). В случае, когда at Xj не определено, неопределенным является также и ЬцХк. Сдвинутую функцию выходов \х(Ь) автомата В определим следующим образом: значение ц.F,)не определено; значение |д.(&;у) определено и равняется Х(а;, xj) всякий раз, когда значение Х(а,, ху) определено, и не определено — в про- противном случае. Из самого способа построения автомата В непосредст- непосредственно вытекает, что он индуцирует то же самое отображе- отображение, что и автомат А. В самом деле, пусть р=хих^... xit — произвольное допустимое входное слово автомата А. По- Построим последовательность состояний ах, ау.,ау2,..., ау(_,, в которые автомат А переходит из начального состояния а, под влиянием последовательных начальных отрезков сло- слова р. Тогда соответствующая последовательность состоя- состояний автомата В будет иметь вид: о,, (о,, Ж},), (оу,, Х{2), ... ..., (fly,.,, Xi,). Теперь, в силу определения сдвинутой функции выходов автомата В, очевидно, что автоматы А и В под влиянием слова р выдадут одно и то же выходное слово. Пусть теперь слово р является запрещенным в автома- автомате А. Это означает, что существует номер s<^t такой, что либо %(а}), Х{г+1), либо б(ауд_1, ж4д) не определены. В первом случае на состоянии (ау#, ач,+1) не будет определен выход- 2} АВТОМАТНЫЕ ОТОБРАЖЕНИЯ И СОБЫТИЯ 55 ной сигнал автомата В, а во втором — не определен пере- переход от состояния bja_iia=(a.jt_l, xQ посредством входного сигнала ж^+1. В обоих случаях слово р оказывается запре- запрещенным и для автомата В. Итак, отображения, индуцируемые автоматами А и В, действительно совпадают. Автомат Мура В имеет при этом тп-{-\ состояние. После применения к нему операций рас- распространения неопределенности на таблицу переходов и исключения недостижимых состояний (см. 1.7 и 1.8) число состояний может уменьшиться без изменения индуцируе- индуцируемого им соответствия. Тем самым предложение 2.2 полно- полностью доказано. Условия автоматности накладывают весьма жесткие ограничения на класс отображений, которые могут быть индуцированы абстрактными автоматами. Большинство алфавитных отображений, с которыми приходится иметь дело на практике,— в частности большинство алгорит- алгоритмов,— не удовлетворяют этим условиям. Существует, од- однако, стандартный прием, позволяющий превратить лю- любое алфавитное отображение в автоматное. К описанию это- этого приема мы сейчас и переходим. Пусть ф — произвольное (вообще говоря,— частичное) отображение множества слов в (конечном) алфавите ? в множество слов в (конечном) алфавите 33. Обозначим через Р область определения этого отображения. Будем приме- применять к отображению ф две операции. Первая из них, кото- которую мы назовем операцией выравнивания длин слов (или, кратко, операцией выравнивания), заключается в следую- следующем. Во входной и выходной алфавиты отображения Ф (то есть в it" и Й>) добавляется по одной новой букве, кото- которые мы будем называть пустыми и обозначать через а и Р (иногда в качестве таких букв могут быть выбраны буквы алфавитов X и 33; не исключено также совпадение букв а и Р); к любому слову р из Р приписывается справа т экземпляров букв а, а к его образу <7=Ф (р) приписыва- приписывается слева nq экземпляров букв Р так, чтобы длины полу- полученных в результате приписывания новых букв слов рх и <7, совпали. Далее строится новое отображение ф, некоторого множе- множества Р, слов в алфавите X. U (а) в множество слов в алфа- алфавите 93 U Ш). которое переводит друг в друга слова р, п qt,
50 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II полученные в результате выравнивания длин слов р и q соответственно: tyl(pl)=ql (р пробегает при этом все мно- множество Р). Условимся говорить, что отображение ф, получается из отображения ф с помощью операции выравнивания. Отображение ф однозначным образом восстанавливает- восстанавливается по отображению ф,, однако само отображение ф, может быть построено многими различными способами. Мы бу- будем поэтому применять наряду с произвольной также и некоторую стандартную операцию выравнивания, при которой отображение ф, однозначно определяется отобра- отображением ф и присоединенными пустыми буквами аир. Сущность этой операции заключается в том, что число тр пустых букв а, приписываемых.справа к произвольному слову р из области определения отображе- отображения ф, принимается равным длине слова д= =ф(/>), а число п пустых букв р, приписываемых слева к слову q, принимается равным длине слова р. Ясно, что такое приписывание действительно приводит к выравниванию длин слов. Вторая операция применяется только к вырав- выравненным алфавитным отображениям ф, то есть к таким отображениям, у которых длины входных и соответствующих им выходных слов равны между собой. Сущность этой операции, которую мы будем называть операцией пополнения отображения ф, заключается в рас- распространении отображения ф на начальные отрезки слов. Операция пополнения имеет следующий вид: если s — произвольный начальный отрезок любого слова р из об- области определения отображения ф, то мы полагаем q>(s) равным начальному отрезку слова ф(/>), имеющему равную с начальным отрезком s длину. В результате применения операции пополнения к про извольному выравненному алфавитному отображению ф возникает новое отображение ф', область определения ко- которого удовлетворяет условию полноты. Условимся назы- называть это отображение пополнением отображения ф. Если пополнение ф' отображения ф является однознач- однозначным, то оно удовлетворяет, очевидно, всем четырем усло- условиям автоматности. К сожалению, однако, в большинстве случаев пополнение отображения ф неоднозначно, пос- 2] АВТОМАТНЫЕ ОТОБРАЖЕНИЯ И СОБЫТИЯ 57 кольку одно и то же слово s может входить в качестве начального отрезка в несколько различных слов из обла- области определения отображения ф. Вместе с тем справедливо следующее предложение. 2. 3. В случае, когда отображение ф получено из некото- некоторого однозначного алфавитного отображения в результате стандартной операции выравнивания длин слов, пополне- пополнение ф' этого отображения однозначно и является автомат- автоматным отображением. Действительно, пусть рх=р асе...а — произвольное сло- слово из области определения Р отображения ф; ф(р1) = ?1 = =рр.. р<7 — его образ при отображении ф; р — слово дли- длины т, не содержащее пустой буквы a; q — слово длины п, не содержащее пустой буквы Р; рг — произвольный на- начальный отрезок слова рх. Рассмотрим два случая. Пусть сначала слово рг содер- содержит хотя бы одну пустую букву а. В этом случае слово р2 имеет вид раа...а. Но задание любого слова такого вида однозначно определяет слово р, а, следовательно, и слово рх. Таким образом в этом случае слово рг совпадает с началь- начальным отрезком одного лишь слова рх, так что его образ ф' (рг) в пополненном отображении определяется одно- однозначно. Рассмотрим теперь второй возможный случай, то есть случай, когда слово рг не содержит ни одной буквы а. В этом случае, в силу определения стандартной операции выравнивания, соответствующий начальный отрезок слова ql будет состоять лишь из пустых букв, так что ф'(р2) = — pp...р. Так будет, очевидно, не только для слова рх, но и для любого слова в Р, начальным отрезком которого яв- является слово рг. Следовательно, однозначность определе- определения образа ф'(/>2) будет иметь место и в этом случае. Область определения Р' отображения ф' содержит все Етчальные отрезки слов из Р. Так как всякий начальный, отрезок любого начального отрезка произвольного слова из Р сам является начальным отрезком этого слова, то об- область Р' удовлетворяет условию полноты. Таким образом, для отображения ф' выполняется второе условие автомат- автоматности. Выполнимость первого условия автоматности была доказана вместе с установлением однозначности отображе- отображения ф'. Выполнимость третьего условия очевидна.
58 АБСТРАКТНАЯ ТЕО РИЯ АВТОМАТОВ [Гл. II Наконец, пусть р, — произвольный начальный отрезок любого слова рг из Р'. Так как рг, в свою очередь, явля- является начальным отрезком некоторого слова pt из Р, то рг также совпадает с каким-то начальным отрезком слова рх. В силу способа построения отображения ф' слову рг отно- относится в качестве образа некий начальный отрезок дг слова ф(/>,), а слову />, — начальный отрезок д3 того же слова, имеющий меньшую, чем отрезок д2, длину. Так как дг мо- может рассматриваться в качестве начального отрезка слова <72, то выполнимость четвертого условия автоматности для отображения ф' доказана. Вместе с тем завершено доказа- доказательство предложения 2.3. В качестве следствия предложения 2.3 можно сформу- сформулировать следующее предложение. 2. 4. Любое однозначное алфавитное отображение можно превратить в автоматное отображение, применяя к этому отображению операцию выравнивания длин слов и операцию пополнения. Заметим, что в ряде случаев при превращении задан- заданного отображения в автоматное отображение можно при- применять не стандартную операцию выравнивания, а какой- нибудь более экономный (с точки зрения числа дописы- дописываемых букв) вариант операции выравнивания. В частно- частности, если само исходное отображение было автоматным, то можно считать, что применяется нулевая опера- операция выравнивания, при которой никакого дописывания пустых букв вообще не происходит. Именно поэтому в предложении 2. 4 говорится о про- произвольной, а не о стандартной операции выравнивания. В дальнейшем соответственно тому, применяется ли стандартная или нестандартная операция выравнивания, мы будем говорить о стандартном или нестандартном приеме сведения произвольного отображения к автомат- автоматному. Обычно на практике поступают следующим образом. Сначала операцию выравнивания проводят наиболее эко- экономным образом и, применяя затем операцию пополнения, проверяют (по признаку однозначности пополнения), получилось ли в результате автоматное отображение? Если нет, то производят новые дописывания пустых букв, новую проверку пополнением и т. д. Предложение 2.3 12] АВТОМАТНЫЕ ОТОБРАЖЕНИЯ И СОБЫТИЯ 59 дает гарантию того, что в результате продолжения подоб- подобного процесса мы обязательно придем к автоматному ото- отображению. Назовем этот метод приведения произвольного отображения к автоматному отображению методом после- последовательного приведения в отличие от метода стандартного приведения, описанного в предложении 2.3. Остановимся тйперь на способах задания автоматных отображений. Разумеется, можно задавать автоматное ото- отображение индуцирующим его автоматом. Однако на прак- практике при постановке той или иной задачи, относящейся к синтезу автомата, такой способ задания является конеч- конечной целью, а не исходным пунктом. В случае, когда область определения автоматного ото- отображения ф конечна, его чаще всего принято задавать с помощью так называемой таблицы соответствия. В ле- левой половине этой таблицы выписывают в том или ином порядке входные слова, на которых данное отображение ф задано, а в правой части таблицы — соответствующие им выходные слова. Знаком раздела между каждым входным словом р и соответствующим ему выходным словом ф(/>) служит обычно стрелка, так что каждая строка таблицы соответствия имеет вид р-*у(р). Используя четвертое условие автоматности, в таблицу соответствия обычно не включают входные слова, являю- являющиеся начальными отрезками слов, уже включенных в таблицу. Таблицу соответствия, в которой никакое вход- входное слово не является начальным отрезком какого-либо другого входного слова, мы будем называть сокращенной таблицей соответствия. При задании автоматного отобра- отображения сокращенной таблицей соответствия его Продолже- Продолжение на начальные отрезки входных слов, вошедших в таб- таблицу, осуществляется на основании четвертого условия автоматности. Таким образом, при желании по сокращен- сокращенной таблице соответствия всегда можно восстановить пол- полную таблицу соответствия. В ряде случаев оказывается удобным рассматривать частично сокращенные таблицы соответствия (то есть таблицы соответствия, из которых ис- исключена лишь часть входных слов, являющихся началь- начальными отрезками других слов). В ряде случаев удается задавать таблицей соответствия и такие автоматные отображения, область определения
60 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ (ГЛ. П которых бесконечна. Например, таблица соответствия, yxx n xy . . .X раз —>uv —yvvuu ...u, 1) раз где п пробегает все целые положительные значения (п— =1,2, ...), задает, очевидно, автоматное отображение с бесконечной областью определения. Очень удобным способом задания произвольного авто- автоматного отображения является задание его с помощью так называемого автоматного множества событий. 2. 5. Событием в любом данном алфавите ? мы будем называть произвольное множество слов в этом алфавите, а сам алфавит ? — входным алфавитом этого события. 2. 6. Для любого алфавитного отображения ф с вход- входным алфавитом ? и выходным алфавитом 23, и для любой выходной буквы (буквы выходного алфавита) у событие S , состоящее из всех слов входного алфавита, образы (при отображении ф) которых оканчиваются буквой у, будем на- называть событием, представленным в отображении ф вы- выходной букво 1 у. Множгствэ событий Sy., где yt пробегает все буквы выход- выходного алфавита ЭД, называется каноническим множеством событий, соответствующим отображению ф. При этом говорят, что буква yt выходного алфавита отмечает соот- соответствующее ей событие Sm. Задание любого (однозначного) алфавитного отображе- отображения ф однозначно определяет соответствующее ему канони- каноническое множество событий. Обратное, вообще говоря, не- неверно и имеет место лишь для автоматных отображений. Действительно, пусть ф — произвольное автоматное отображение, a p=^x^Xi. ... Xik — произвольное входное слово, входящее в область определения этого отображения. Обозначим через <7=г/у г//.... уп образ ф(/>) слова р при ото- отображении ф, и покажем, что этот образ однозначно опреде- определяется заданием канонического множества М событийSyi,... ..., Sym, соответствующего отображению ф. Для этой цели определим события множества М, в которые входят после- последовательные начальные отрезки слова р: x-lt, X[y X{s, ... ..., xi^x-^... xik. В силу четвертого условия автоматности АВТОМАТНЫЕ ОТОБРАЖЕНИЯ И СОБЫТИЯ 01 втими событиями будут события^. ,Sy. , ...,Sy. , задание которых позволяет однозначно (по индексам уп этих собы- событий) восстановить выходное слово ф(/>). Ясно также, что отображение ф не определено на слове q всякий раз, когда слово (или даже некоторый его начальный от'резок) не вхо- входит в область определения отображения ф. Нами доказано, таким образом, следующее пред- предложение. 2. 7. Всякое автоматное отображение однозначно опре- определяется соответствующим ему каноническим множеством событий в предположении, что события этого множества отмечены соответствующими буквами выходного алфавита заданного отображения. Будем называть автоматное отображе- отображение и соответствующее ему множество собы- событий соответствующими друг другу. Предложение 2.7 показывает, что автоматные отображения могут задавать- задаваться конечными множествами событий. Условимся называть автоматными множества событий, соответствующие авто- автоматным отображениям. Из условий 1—4, которым удовлет- удовлетворяет всякое автоматное отображение, и из определения автоматных множеств нетрудно вывести следующие усло- условия, которым должно удовлетворять любое автоматное множество событий: 1. Автоматное множество событий состоит из конеч- конечного числа событий в одном и том же конечном алфавите (называемом входным), которые попарно не пересекаются и не содержат пустого слова. II. Если какое-либо слово принадлежит какому-ни- какому-нибудь событию из автоматного множества событий, то все начальные отрезки этого слова, за исключением пустого слова, принадлежат каким-либо событиям из того же са- самого множества. Назовем эти условия условиями автоматности данного множества событий. Справедливо следующее предложение. 2. 8. Если некоторое множество М событий удовлетво- удовлетворяет условиям автоматности, то существует одно и, с точностью до обозначения букв выходного алфавита, только одно автоматное отображение у, отличающееся тем, что соответствующее ему каноническое множество событий совпадает с М.
62 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Действительно, пусть ?,, St, ..., Sm — события, со- составляющие множество М. Определим отображение ср мно- множества слов во входном алфавите данного множества М в множество слов в алфавите (<S,, S%, ..., Sm) следующим об- образом. Если с'лово/>=?;,, X{t, ..., Х{к не содержится ни в од- одном из событий множества М, то значение ф (р)считается не- неопределенным. Если же слово р содержится в каком-либо из данных событий, например в событии Sik, то найдется (в силу второго условия автоматности) ряд событий S^, Sj,, ...,Sjk_t множествам такой, что первое событие этого ряда содержит начальный отрезок х?] слова р, второе со- событие — начальный отрезок X;, х?„ и т. д. В этом случае полагаем <p(p)=S}lS}\ •¦• Sjk. Ясно, что для построенного таким образом отображения ф будут выполняться все четыре условия автоматности отображений, так что оно будет автоматным отображением. Из способа его по- построения непосредственно вытекает, что соответствующим ему каноническим множеством событий будет мно- множество М. Единственность отображения ф вытекает из предложения 2.7. Тем самым предложение 2.8 полностью доказано. Предложение 2.8 позволяет нам в дальнейшем назы- называть автоматным всякое множество собы- событий, удовлетворяющее условиям ав- автоматности I и II. § 3. Алгебра событий Как было установлено в предыдущем параграфе, лю- любое автоматное отображение ф может быть задано конеч- конечным множеством М событий во входном алфавите этого отображения. Если область определения отображения ф конечна, то, как нетрудно видеть, все события множества М конечны (т. е. состоят из конечного множества слов). Конечное событие можно задать, перечислив все его эле- элементы. Однако, как уже отмечалось выше, нашей основной целью является рассмотрение отображений с произволь- произвольными областями определения. Ясно, что в случае, когда область определения отображения ф бесконечна, хотя бы одно из событий множества М также будет бесконечным. Необходимо поэтому разработать специальный язык, t 8] АЛГЕБРА СОБЫТИЙ 63 который позволял бы представлять те бесконечные собы- события, которые нас будут в дальнейшем интересовать, кс- нечными выражениями. Один из возможных путей для по- построения такого языка открывает так называемая алгебра событий. Следуя терминологии современной абстрактной алгеб- алгебры, мы будем называть алгеброй множество элементов произвольной природы, на котором определены некоторые конечно местные операции. Задать конечноместную (или, n-местную) операцию / в алгебре — значит указать способ, позволяющий отнести любому упорядоченному набору из п элементов ?,,..., gn алгебры элемент g=f(gl,..., gn) той же алгебры — результат применения операции / к элементам g,, ..., gn. В так называемых частичных алгебрах те или иные алгебраические операции могут быть определены не для всех возможных наборов элементов. 3. 1. Алгеброй событий в алфавите Л мы будем назы- называть множество ЩХ.) всех событий в этом алфавите, на ко- котором заданы две двухместные операции, называемые дизъюнкцией и умножением, и одна одноместная операция, называемая итерацией. Дизъюнкцией St\/S2 двух событий St и St называется теоретико-множественное объединение событий. Произведением SlSt событий St и S2 называется событие, состоящее из всех слов вида pq, где р — любое сло- слово события Sx, a q — любое слово события Бг. Наконец, ите- итерацией {S) события S называется событие, состоящее из пу- пустого слова и всевозможных слов вида рхрг.-.рп, где />,, рг,... ..., рп — произвольные слова события S, а п — любое на- натуральное число /г = 1, 2, ... Для дальнейшего важно установить определенный по- порядок действий в алгебре событий. Условимся, что при от- отсутствии в выражении скобок, изменяющих обычный по- порядок действий, сначала должны выполняться итерации, затем умножения и, наконец, дизъюнкции. В случае необ- необходимости изменить обычный порядок выполнения опера- операций в выражение вводятся круглые скобки, которые мы будем называть обычными, в отличие от фигурных скобок, используемых для обозначения итерации и назы- называемых поэтому итерационными. Таким образом, с точки зрения порядка действий в алгебре событий имеется полная аналогия с обычной алгеброй, если считать, что
64 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II дизъюнкция соответствует сложению, умножение в ал- алгебре событий —обычному умножению, а итерация — воз- возведению в степень. Операции в алгебре событий удовлетворяют целому ряду тождественных соотношений, которые можно исполь- использовать при преобразованиях и упрощениях формул в этой алгебре. Выпишем некоторые важнейшие соотношения, справедливость которых вытекает непосредственно из оп- определения операций в алгебре событий. В этих формулах через Р, Q и S обозначены произвольные события, а через е — событие, состоящее из одного пустого слова. 1. PyQ =QyP (коммутативность дизъюнк- дизъюнкции). 2. Ру (Q\iS) = (P\iQ)yS (ассоциативность дизъюнк- дизъюнкции). 3. РуР^Р (идемпотентность дизъюнк- дизъюнкции). 4. Р (QS) = {PQ)S (ассоциативность умноже- умножения). 5. Р (Q\/S) = PQmPS (левая и правая дистрибу- (PmQ)S = PSvQS тивность умножения по отношению к дизъюнкции). 6. {{/>}} = {/>} (идемпотентность итерации),. 7. {P} = evP {P} (правило развертывания ите- итерации). 8. Р {Р} = {Р} Р (закон коммутативности для итерации). 9. {Р} {Р\ = {Р} (закон мультипликатитшого поглощения для итерации). 10. {Р} уР = {Р) (закон дизъюнктивного по- поглощения для итерации). И. eS = Sf, = S (закон нейтральности пусто- пустого слова). 12. {е} = е. Отметим вместе с тем, что умножение в алгебре собы- событий, вообще говоря, некоммутативно: для произвольных событий R и Q справедливо RQ^QR. Заметим также, что законы ассоциативности дизъюнкции и умножения позво- позволяют записывать без скобок дизъюнкцию и произведение любого конечного числа событий без опасения, что АЛГЕБРА СОБЫТИЙ 65 после этого не вполне определенный порядок выполне- выполнения действий может привести к неоднозначности. Подобно тому, как это имеет место в обычной алгебре, условимся называть одночленами, или термами, такие вы- выражения в алгебре событий, в которых дизъюнкция не яв- является последним из выполняемых действий. Дизъюнк- Дизъюнкцию более чем одного терма будем называть многочленом в алгебре событий. Приведем примеры термов и многочленов: выражения \R){P\jRS)Q(P\jR), RS, \R) будут, очевидно, термами, а выражения R\iQ, R{Q\S)\i{R\\iQ — многочленами. Пер^ вый из приведенных многочленов состоит из двух, а вто- второй из трех термов. Иногда нам придется вводить в алгебру событий и дру- другие операции, которые, однако, мы не будем причислять к числу основных операций. В качестве таких неоснов- неосновных операций отметим одноместную операцию дополне- дополнения события и двуместную операцию пересечения событий. Дополнением S события S в некотором алфавите ? на- называется множество всех слов в алфавите X, не входящих в событие S. Пересечением S1aS2 событий ?, и St называется событие, состоящее из всех слов, входящих одновременно в оба события St и St. Перечислим некоторые замечательные события, с кото- которыми придется иметь дело в дальнейшем. Это, во-первых, так называемое всеобщее событие, включающее в себя все слова в данном алфавите. Невозможным, или пустым, со- событием, напротив, называется событие, не содержащее ни одного слова (в том числе и пустого), или, дру- другими словами, событие, состоящее из пустого множества слов. Одноэлементными событиями называются события, состоящие из одного слова. В дальнейшем мы условимся отождествлять каждое такое событие с единственным вхо- входящим в него словом. Конечным называется всякое собы- событие, состоящее из конечного множества слов. Наконец, полным событием мы будем называть такое событие, кото- которое, наряду со всяким словом, содержит все начальные от- отрезки этого слова, исключая лишь, быть может, пустое слово. Операция пополнения события заключается в добав- добавлении к нему начальных отрезков всех входящих в него слов. 5 В М Глушков
АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Особое значение для дальнейших построений имеют так называемые элементарные и регулярные события. 3.2. Элементарными событиями в алфавите ?=(х1,... ..., хп) называются п-\-\ одноэлементных событий хх, хг,... .... хп, е, где е — пустое слово. Любое событие, которое мож- можно получить из элементарных событий в резулътате приме- применения любого конечного числа раз операций дизъюнкции, ум- умножения и итерации, называется регулярным событием, а всякое его представление через элементарные события и три указанные операции — регулярным выражением. Легко видеть, что всякое одноэлементное и всякое ко- конечное событие регулярно: всякое одноэлементное неэле- неэлементарное событие (слово) можно представить в виде про- произведения букв, а всякое конечное событие — в виде дизъ- дизъюнкции одноэлементных событий. Регулярным будет и все- всеобщее событие в любом (конечном) алфавите ЗЕ = (:»:,, ...,хп). Регулярным выражением для этого события будет ите- итерация дизъюнкции всех букв алфавита: \ztvxav... vxn). Невозможное событие мы также будем причислять к числу регулярных событий, считая, что его можно представить, например, в виде дизъюнкции пустого множества элемен- элементарных событий. Заметим, что одно и то же регулярное выражение до- допускает много различных представлений. Поэтому одной из основных проблем в алгебре событий является проблема эквивалентных преобразований регу- регулярных выражений, то есть таких преобразований, кото- которые не меняют представляемых этими выражениями собы- событий. Такие преобразования можно выполнить, в частности, с помощью выписанных выше тождественных соотношений. Для регулярных выражений вводится естественное по- понятие циклической глубины. Циклической глубиной регу- регулярного выражения мы будем называть максимальное чи- число вложенных друг в друга пар итерационных скобок. Так, выражение х{ум{х\\ имеет циклическую глубину 2, выражение {{{а:}г/^} — циклическую глубину 3, выра- выражение ({x\vy{xx)\y)){z} — циклическую глубину 1, вы- выражение (хму)у — циклическую глубину 0. Циклическая глубина регулярного события определяет- определяется как наименьшая циклическая глубина представляющих это событие регулярных выражений. § 3 ] АЛГЕБРА СОБЫТИЙ 67 Легко видеть, что справедливо следующее предло- предложение. 3.3. Конечные события, и только они, являются регу- регулярными событиями, имеющими нулевую циклическую глубину. Предложение 3.3 свидетельствует о том, что лишь ис- использование итерации позволяет нам строить регулярные выражения для бесконечных событий. Легко заметить, впрочем, что далеко не всякое бесконеч- бесконечное событие регулярно. Это обстоятельство становится ясным из простых теоретико-множественных соображений. В самом деле, поскольку множество слов в непустом конечном алфавите счетно, то множество всех событий в любом таком алфавите имеет мощность континуума. В то же самое время множество всех регулярных выражений в любом конечном алфавите, как легко проверить, всего лишь счетно. Впрочем, нетрудно ') построить конструктив- конструктивный пример нерегулярного события. Таким примером является событие S, состоящее из всех слов в непустом конечном алфавите ДЕ, длины которых яв- являются точными квадратами. В самом деле, если бы указанное событие S было бы ре- регулярным, оно допускало бы представление в виде регуляр- регулярного выражения. Легко видеть, однако, что регулярное выражение, не содержащее итерации, представляет всегда конечное событие, то есть, иначе говоря, событие, состоящее из конечного числа слов. Поскольку интересую- интересующее нас событие S бесконечно, то в представляющем его регулярном выражении обязательно встречаются итераци- итерационные скобки.Выделим терм с парой таких скобок, не содер- содержащихся внутри других итерационных скобок. Содержи- Содержимое этих скобок, которое мы обозначим через Р, в силу тож- тождественного соотношения 12 (стр. 64) может считаться от- отличным от пустого слова е. Следовательно, в событии Р содержится хотя бы одно слово h, имеющее ненулевую длину ^0 1) Следуя С. К. К л и н и (см. его статью «Представление со- событий в нервных сетйх и конечных автоматах», опубликованную в сб. «Автоматы», ИЛ, М., 1950, стр. 15.—67).
68 ЛЬСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. И Пусть теперь q есть длина какого-нибудь наугад вы- выбранного слова из события, регулярное выражение для ко- которого получается из выделенного терма заменой итера- итерационной скобки {Р\ пустым словом е. Так как etP, то это слово содержится в событии S. Согласно определе- определению итерации в событии S будут содержаться события, получающиеся в результате замены скобки {Р\ словом h, словом hh и т. д. до бесконечности. Отсюда уже непо- непосредственно следует, что в событии S содержатся слова длины q, q + p, q+2p q+np, ... В силу определения события S все числа q-\-np (где п=0, 1, 2, ...) должны представлять ссбою точные квад- квадраты. Ясно, однако, что это в действительности невозмож- невозможно. В самом деле, если q+np=ml, то qJr(nJrl)p=(mJrkJ, где Азэ1. Вычитая эти неравенства почленно друг из друга, мы придем к соотношению (т-\-к)г—тг=/>или,что то же самое, к соотношению 2тк+к*=р. Это соотношение должно выполняться при любом сколь угодно большом п и, следовательно, при сколь угодно большом т (так как m = ]/g-f pn). Тем самым мы при- придем к противоречию, поскольку в правой части соот- соотношения 2кт-\-кг=р стоит фиксированное число, а левая часть может быть сделана сколь угодно большой. Таким об- образом доказано, что событие^ не может быть регулярным. Построенный пример может быть легко обобщен. Тот же самый прием, который уже был использован в этом примере, позволяет доказать нерегулярность события S(N) в любом непустом алфавите, содержащего всевоз- всевозможные слова, длины которых составляют произвольную последовательность N = nt,nt nk,..., удовлетворяющую единственному условию: разности nk+x—nk{k—\, 2,...) не ограничены в совокупности, то есть, иными словами, для любого сколь угодно большого числа М найдется та- такой номер к, что nk+i— п^>М. Несмотря на то, что класс регулярных событий охва- охватывает далеко не все бесконечные события, он тем не менее оказывается достаточным для описания всех автоматных отображений, индуцируемых конечными автомата- автоматами. Заметим также, что использование при построении §4] ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В АВТОМАТАХ 69 регулярных выражений наряду с операциями дизъюнк- дизъюнкции, умножения и итерации также и операций дополнения, пересечения и пополнения не выводит за пределы класса регулярных событий. § 4. Представление событий в автоматах Основной задачей абстрактной теории автоматов яв- является установление связей, существующих между авто- автоматами и индуцируемыми ими отображениями. Как было показано в § 2 настоящей главы, произвольное автоматное отображение можно задавать представляемыми этим ото- отображением событиями. В связи с этим возникает задача установления связей между событиями и автоматами. Ис- Исходным пунктом для установления таких связей будет служить следующее определение. 4.1. Для произвольного автомата А множество S всех входных слов, вызывающих появление выходных слов, которые оканчиваются одной и той же буквой (выходным сигналом) у, называется событием, представленным в ав- автомате А выходным сигналом у. Множество, состоящее из событий S для всех букв выходного алфавита автомата А, называется каноническим множеством событий данного автомата А. Из приведенного определения и определения 2.6 непо- непосредственно следует, что каноническое множество событий любого автомата А совпадает с каноническим множеством событий для индуцируемого этим автоматом отображения. Как и в § 2, мы будем предполагать, что события, состав- составляющие каноническое множество событий автомата, от- отмечены соответствующими им выходными сигналами. Далее, справедливо следующее очевидное предложение. 4.2. Каноническое множество событий любого автома- автомата является автоматным множеством событий. Обратно, для любого автоматного множества событий М сущест- существует автомат (в качестве которого можно выбрать как ав- автомат Мили, так и автомат Мура), каноническое множе- множество событий которого совпадает с множеством М. Справедливость сформулированного предложения выте- вытекает из доказанных в § 2 настоящей главы предложений 2.1 и 2.8 и сделанного выше замечания о совпадении канони-
70 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II ческих множеств событий, соответствующих автомату и ин- индуцируемому им автоматному отображению. Заметим, что в отличие от автоматного отображения абстрактный автомат не определяется одно- однозначно соответствующим ему каноническим множест- множеством событий, поскольку одно и то же автоматное отобра- отображение может индуцироваться различными автоматами. В связи со всем сказанным становится понятной необ- необходимость решения следующих важнейших задач абстракт- абстрактной теории автоматов. Прежде всего нужно научиться ре- решать задачу нахождения по заданному абстрактному авто- автомату А соответствующего ему канонического множества событий; эту задачу мы будем называть канонической зада- задачей анализа абстрактного автомата. Далее необходимо научиться решать обратную задачу: по заданному автомат- автоматному множеству событий М находить абстрактный авто- автомат, каноническое множество событий которого совпадает с М; эту задачу мы будем называть канонической задачей синтеза абстрактного автомата. Для решения задачи синтеза удобно считать, что события заданного множества М заранее отмечены различ- различными буквами выходного алфавита синтезируемого автомата. Условимся в дальнейшем называть кано- каноническим всякое автоматное множество событий, для которого выполнены соответствующие отметки. Бук- Буквы, отмечающие события канонического множества, со- составляют так называемый алфавит отметок. После реше- решения задачи синтеза этот алфавит превращается в выходной алфавит построенного автомата. При использовании введенной терминологии описан- описанные выше задачи канонического анализа и синтеза авто- автоматов формулируются как обратные друг другу задачи: в первой по заданному автомату строится соответствую- соответствующее ему каноническое множество событий, во второй — по заданному каноническому множеству событий строится соответствующий ему автомат. Поскольку, как уже отмечалось выше, каноническая задача синтеза по самому своему существу неоднозначна, возникает задача синтеза (по заданному каноническому множеству событий) автомата, имеющего наимень- наименьшее возможное число состояний. Эта 14] ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В АВТОМАТАХ 71 задача обычно формулируется и решается как задача минимизации автомата, найденного при решении канони- канонической задачи синтеза. На практике оказывается удобным несколько обобщить канонические задачи анализа и синтеза абстрактных авто- автоматов. Это обобщение основано на рассмотрении не только таких событий, которые представляются в автоматах од- одним выходным сигналом, но и таких событий, которые представляются произвольными множе- множествами выходных сигналов. 4.3. Событием, представленным в автомате А каким- либо множеством М выходных сигналов, называется объеди- объединение событий, представленных всеми выходными сигна- сигналами, составляющими множество М. В соответствии с этим определением мы будем считать, что невозможное событие представлено в любом автомате пустым множеством выходных сигналов. Нетрудно понять, что всеобщее событие в любом алфавите X представляется множеством всех состояний любого вполне определенного автомата, имеющего алфавит X, в качестве своего входного алфавита. Общая задача анализа абстрактного автомата ставит- ставится теперь как задача нахождения по заданному абстракт- абстрактному автомату такого события, которое представлено любым множеством его состояний. Аналогично, общая задача синтеза абстрактного автомата ставится как за- задача построения по л ю б о м у (а не только по автомат- автоматному) конечному множеству М событий такого ав- автомата, который представляет каждое событие этого множества некоторым множеством своих выходных сиг- сигналов (ограничение лишь конечными множествами исход- исходных событий связано с тем, что число различных мно- множеств выходных сигналов в любом абстрактном автомате конечно). Для упрощения языка условимся в дальнейшем гово- говорить, что автомат представляет некоторое мно- множество событий, если он представляет к а ж- дое событие этого множества. Ясно, что общая и каноническая задачи анализа автомата весьма близки между собой: найдя каноническое множество соб ытий- автомата, нетрудно найти событие,
72 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II представленное любым множеством выходных сигналов ав- автомата как объединение некоторых событий канонического множества. Обратно, умея решать общую задачу анализа, можно одно за другим найти все события, составляющие каноническое множество. Гораздо менее ясен вопрос о близости канонической и общей задач синтеза автомата. Более того, заранее неясно, имеет ли вообще решение произвольная общая за- задача синтеза. Нетрудно видеть, что умение решить общую задачу синтеза позволяет решить и каноническую задачу. В самом деле, пусть нам дано автоматное множество собы- событий М. Если применить к этому множеству метод решений общей задачи синтеза (в предположении, что такой метод существует), то мы найдем автомат, в котором каждое со- событие Sj множества М будет представлено некоторым мно- множеством N, выходных сигналов. Ввиду автоматности множества событий М различные события этого множе- множества попарно не пересекаются. Но тогда не могут, очевид- очевидно, пересекаться и представляющие их множества выход- выходных сигналов. Заменяя все выходные сигналы каждого такого множества одним выходным сигналом (особым для каждого множества), мы решаем тем самым каноническую вадачу синтеза. Покажем теперь, что имеет место и обратное: умение решать каноническую задачу синтеза позволяет решать также и общую задачу. Для этой цели опишем прием, ко- который мы будем называть стандартным приемом сведе- сведения общей задачи синтеза автомата к канонической задаче синтеза. Пусть М = (<?,,..., Qn) — произвольное конечное множе- множество событий в некотором алфавите it. Обозначим через Р/ множество всех непустых слов события Qt, не содержа- содержащихся ни в одном из остальных событий^- (/V=i; i, j =1,... ..., п). Через Pjj обозначим множество всех непустых слов, каждое из которых содержится в событиях Qt и Q; и не со- содержится ни в одном из остальных событий Qk (k^bi, k=pj, i^=j; k, i, / = 1, 2, ..., n). Вообще, для любого &=1, 2, ... ..., n через Pj, ,{,,..., цмы будем обозначать событие, состоя- состоящее из всех непустых слов, ВХОДЯЩИХ В СобыТИЯ Qi,iQi,t ... ..., Q-,.k и не входящих ни в одно из остальных событий мно- множества М (i,, i%,.... ik=i,.... п; ir^isnpvi r^=s). ЧерезP% S4] ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В АВТОМАТАХ 73 обозначим множество всех непустых начальных отрезков слов событий Qt, ..., Qn, которые (рассматриваемые как отдельные слова) не содержатся ни в одном из событий <?, <?„• Обозначим через <S,, St, ..., ?твсе непустые события из числа построенных событий Рх, Рх, ..., Рп, Р12, ... ...,Pit ... п, Рл и назовем полученное множество ./V собы- событий (St, ¦¦¦,?„) каноническим разбиением исходного множе- множества М. Из самого способа построения канонического разбие- разбиения вытекает справедливость следующего предложения. 4.4. Каноническое разбиение произвольного конечного множества событий в любом конечном алфавите представ- представляет собою автоматное множество событий. Используя свойство автоматности построенного кано- канонического разбиения N, можно, решая каноническую за- задачу синтеза, построить автомат А, для которого множество М будет каноническим множеством событий. Из способа построения канонического разбиения непосредственно следует, что любое из исходных событий Q4 представляется (с точностью до пустого слова) в виде объединения всех непустых событий вида Pi,и h (h,— ** = l>-"> n; A = 0, 1,..., и—1). Так как каждое из таких событий представлено в авто- автомате А каким-либо выходным сигналом, то событие Qt (за вычетом, быть может, лишь пустого слова) для любого t = l, ..., п представляется в этом автомате некоторым множеством выходных сигналов. Следовательно, описанный прием действительно сво- сводит решение общей задачи синтеза автомата к решению канонической задачи синтеза. При этом исходные для общей задачи события представляются в синтезированном автомате с точностью до пустого слова. Особую роль пу- пустого слова в задачах синтеза нетрудно понять, если вспомнить, что в принятом нами законе функционирования автоматов пустому слову не соответствует никакого выходного сигнала. Поэтому задача представления событий выходными сиг- сигналами для случая событий, содержащих пустое слово, строго говоря, не имеет смысла.
74 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ 1Гл. Мы условится в дальнейшем рассматривать все задачи представления событий с точностью до пустого слова. Иначе, будем говорить, что некоторое событие S пред- представлено в автомате множеством М выходных сигналов, если этим множеством представлено событие, составлен- составленное из всех непустых слов события S. Описанный выше стандартный прием действительно позволяет (с учетом сделанных замечаний относительно пустого слова) свести общую задачу синтеза автоматов к канонической задаче. Что же ка- касается последней задачи, то она всегда имеет решение в силу предложения 4.2. Однако такое решение (основан- (основанное на результатах § 2) не может нас удовлетворить, поскольку оно приводит к построению, вообще говоря, бесконечного автомата даже в тех случаях, когда сущест- существует дающий решение задачи конечный автомат. Поэтому сформулированные выше задачи синтеза (а также и задачи анализа) автоматов нуждаются в дальней- дальнейшем уточнении. При таком уточнении нужно, с одной стороны, фиксировать некоторый язык, приспособлен- приспособленный для конструктивного описания событий (как множеств слов), с которыми мы будем оперировать, а с другой сто- стороны,— ограничиться некоторым вполне определенным классом автоматов, допускающих какой-либо конструктив- конструктивный способ задания. Ясно, что при этом уже нельзя будет оперировать с произвольными событиями и автоматами, поскольку, как хорошо известно в математике, «произ- «произвольные» множества и «произвольные» функции не допу- допускают конструктивного описания. Поэтому мы ограни- ограничимся в дальнейшем лишь конечными артоматами и регу- регулярными событиями. Оба эти класса объектов допускают конструктивное описание; первый — на языке таблиц переходов и выходов, а второй — на языке регулярных выражений алгебры событий. Такое ограничение вполне достаточно для практических целей, потому что цифровые автоматы, с которыми приходится иметь дело на прак- практике, всегда конечны. Все остальное содержание настоящей главы будет посвящено разработке методов решения общих задач анализа, синтеза и минимизации для случая конечных автоматов. Уточненные постановки 14] ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В АВТОМАТАХ 75 этих задач приводятся в специально посвященных этим задачам параграфах. Заметим теперь же, что справедливо следующее пред- предложение. 4.5. Для любого конечного множества М событий в лю- любом конечном алфавите тогда и только тогда существует конечный автомат, представляющий каждое из событий множества М некоторым множеством своих выходных сигналов, когда все события множества М регулярны1). Истоки этой фундаментальной для теории конеч- конечных автоматов теоремы восходят еще к работе С. К. К лини2), где был впервые доказан один ее важный частный случай. Одним из следствий этой теоремы является то, что язык регулярных выражений оказывается достаточным для описания отображений, индуцируемых произвольными конечными автоматами. Отметим еще, что на основании предложения 2.8 и построенного выше стандартного приема сведения общей задачи синтеза автомата к канонической задаче синтеза из доказанной в § 2 теоремы 2.2 может быть выведено следующее следствие. 4.6. Если некоторое (конечное) множество событий в т-буквенном алфавите допускает представление (мно- (множествами выходных сигналов) в конечном автомате Мили с п состояниями, то оно допускает представление (также множествами выходных сигналов) в конечном автомате Мура, число состояний которого не превосходит тп-\-\. Для случая автоматов Мура иногда удобно бывает считать, что представленное в автомате А некоторым множеством 7V выходных сигналов событие S представ- представляется множеством М всех тех. со с^т о я- н и й автомата, которые отмечены выходными сигналами множества TV. Ясно, что все слова события S переводят автомат А из начального, состояния в состояния из мно- множества М. Условимся говорить, что событие S представлено в ав- автомате Мура множеством М (конечных) состояний, если *) Строгое доказательство этого предложения будет дано в двух последующих параграфах. 2) С. К. К л и н и, Представление событий в нервных сетях и конечных автоматах. Сб. «Автоматы», ИЛ, М., 1956, стр. 15—67.
76 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II событие S состоит из всех тех и только тех входных слов, которые переводят автомат из начального состояния в одно из состояний множества М. Отмечая все состояния множества М выходными сиг- сигналами, отличными от выходных сигналов, отмечающих не вошедшие в М состояния, мы можем событие S, пред- представленное ранее множеством состояний М, представить множеством 7V всех выходных сигналов, которыми отме- отмечены состояния множества М. Легко видеть, что при этом множеством 7V выходных сигналов представляются все непустые слова события S и только такие слова. Что же касается пустого слова, то мы уже условились выше не принимать его во внимание при представлении событий. Поэтому способы представ- представления событий в автоматах Мура множествами выходных сигналов и множествами состояний оказываются экви- эквивалентными (с точностью до пустого слова) между собой. Рис. 4. Изучая проблему представления событий множе- множествами состояний автомата, естественно поставить вопрос о возможности сведения этой проблемы к проблеме о представлении событий одним состоянием. Иначе говоря, возникает вопрос, можно ли для всякого события, пред- представленного в автомате Мура множеством состояний, построить новый автомат Мура, в котором это событие было бы представлено одним единственным состоянием? Легко видеть, что ответ на поставленный вопрос — от- отрицателен. В самом деле, достаточно рассмотреть событие S=xvxx, состоящее из двух слов х и хх в однобуквен- ном алфавите А" (я). Это событие представимо в автомате, граф которого изображен на рис. 4, множеством двух со- состояний 1 и 2. Предположим, что существует автомат А, в котором рассматриваемое событие S представлено каким-либо од- одним состиянием а. Ясно, что под действием входа х автомат ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В АВТОМАТАХ 77 из начального состояния а0 должен перейти в состояние а, ибо слово х содержится в S : а^х—а. Поскольку слово хх также содержится в S, то оно должно переводить автомат из состояния а0 в состояние а, то есть ао(хх)=а. Но это означает, очевидно, что входной сигнал х переводит состоя- состояние а=аох в состояние (аох) х=а^(хх)=а. В таком случае не только слова х и хх, но также слова ххх, хххх и т. д. должны переводить автомат из состояния а0 в состояние а и, следовательно, входить в событие S, что на самом деле не так. Полученное противоречие и доказывает невэзмож- ность представления события S одним состоянием ни в ка- каком автомате. Еще более важное значение имеет вопрос о существо- существовании непредставимых в автоматах событий. Если не ис- исключать из рассмотрения автоматов с бесконечным числом внутренних состояний, то все события оказываются пред- ставимыми. Однако в случае конечных автоматов дело обстоит иначе. Первый пример события, не представимого ни в каком конечном автомате, был указан К л и н и. Таким событием является рассмотренное в предыдущем параграфе нерегулярное событие S, состоящее из всех слов, длины которых являются точными квадратами. Не- Непредставимость этого события вытекает из его нерегуляр- нерегулярности, поскольку, как будет показано в следующем пара- параграфе, все представимые в конечных автоматах события регулярны. В заключение настоящего параграфа рассмотрим воп- вопрос о связи проблемы представления событий в конеч- конечных автоматах со степенями квадратной автоматной матрицы. Рассмотрим произвольный автомат А с входным ал- алфавитом (я,, .... хт) и множеством внутреьЛшх состояний (а,, а2,...). Состояние а, будем считать начальным. Как явствует из определения квадратной автоматной матрицы 31= || o.tj || автомата А (см. §2 настоящей главы) для любых i и /', элемент a,j представляет собою не что иное, как множество слов входного алфавита, имеющих длину 1 и переводящих автомат из состояния а; в состояние а^. В соответствии с введенными определениями мы мо- можем, следовательно, рассматривать элементы матрицы ?1= || atJ || как события в алфавите (х1,..., х^-
78 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [ГЛ. It Используя операции алгебры событий, мы можем построить алгебру матриц, элементами которых служат события. Дизъюнкцией ЭДуЭЗ двух квадратных матриц 9[= || а,-у-1| и $В=|Р,у| одного и того же порядка п называется матрица II А II Произведением матриц У\ и 55 мы будем называть мат- матрицу \\y{j || , элементы которой определяются по формулам: УU = «/iPiyva/.P.yV• • • va,.npn> (/,/=1,2, . .., и). A) Произведение и дизъюнкция понимается в этих фор- формулах в смысле алгебры событий. Теперь мы можем определить последовательные сте- степени квадратной автоматной матрицы ЗГ. Я1 = 91, Щ« = 31-81, W = W-% и т. л- Условимся через S/у- обозначать событие, состоящее из всех слов входного алфавита, переводящих рассматривае- рассматриваемый автомат А из состояния at в состояние ау-. Через S;J (к) мы будем обозначать событие, состоящее из всех тех слов события S .у, которые имеют длину к. Введем еще обозначение а;/ (к) для элемента матрицы 51*, стоящего на пересечении i-u строки и /-го столбца. Справедливо следующее предложение. Для любого к—1, 2,... имеет место соотношение ..?„(*) = а,, (Л). B) Переходя к доказательству этого предложения, заме- заметим, что справедливость соотношения B) при А-=1 выте- "кает непосредственно из определения квадратной автомат- автоматной матрицы, поскольку, очевидно, а1уA)=а,7-. Предполо- Предположим теперь соотношение B) доказанным для всех к^р и будем доказывать его для к=р-\-1. По определению степеней матрицы Щ мы имеем 9F+'== ~?С?1 или, переходя к элементам: а,у (р + 1) = «,-, (р) а1у A) у • • • va;n (p) anj A) C) (i, /=1, ..., п). Любое слово h из а^{р-\-\) имеет вид h=gx, где gtaik{p), xea;!j(l) при каком-либо к A<;/е«^п). Слово g, согласно индуктивному предположению, переводит авто- §5] АНАЛИЗ КОНЕЧНЫХ АВТОМАТОВ 79 мат А из состояния ai в состояние ak и имеет длину р. Что же касается слова х, то оно имеет длину 1 и переводит автомат из состояния ak в состояние <ху-. Но тогда, оче- очевидно, слово h имеет длину р-\-1 и переводит автомат из состояния а1 в состояние а^. Обратно, пусть h — произвольное слово длины р-\-1, переводящее автомат из состояния а( в состояние ay. Слово h можно записать в виде произведения gx слова g длины р и слова х длины 1. Пусть слово g переводит автомат из состояния aL в некоторое состояние ak; тогда, очевидно, слово я должно переводить автомат из состояния ak в состояние ау-. Следовательно, согласно индуктивному предположению, слово g содержится в aik (p), а слово х—в akj A). В силу формулы C) отсюда следует, что слово h содержится в a,.y- (p-\-i). Тем самым индукция прове- проведена, и формула B) доказана для всех значений к=1, 2,... Из доказанного предложения вытекает следствие: Если образовать дизъюнкцию всех степеней квадратной автоматной матрицы 91 произвольного автомата А, то в полученной матрице 93=St1>v9l1v2l1 v---- элемент р{-, стоящий на пересечении i-й строки и /-го столбца, пред- представляет собою множество всех слов, переводящих автомат из состояния а{ в состояние ау.. Под нулевой степенью 91° матрицы % здесь понимается матрица, на главной диаго- диагонали которой стоят символы пустого слова е, а на всех остальных местах — невозможное событие ф. Дизъюнкция любого множества элементов первой строки матрицы 33: Pi/,vPi/,\'...vPi;,. является не чем иным, как событием, представляемым в автомате'^ начальным со- состоянием а, и множеством конечных состояний а^,,<!;,,...,а/г. Тем самым установлена требуемая связь между задачей представления событий в абстрактном автомате и степе- степенями квадратной матрицы. § 5. Анализ конечных автоматов В настоящем параграфе мы будем решать общую проб- проблему анализа для случая конечных автоматов. Точная формулировка этой проблемы такова. Требуется построить алгоритм, который позволял бы для любого конечного автомата Мили или Мура А, задан-
80 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл II ного своими таблицами переходов и выходов или, соответ ственно, отмеченной таблицей переходов, и для любого множества N выходных сигналов автомата А находить регулярное выражение {одно из возможных) для события, представленного в автомате А множестеом N выходных сигналов. Как следует из результатов предыдущего параграфа, при решении проблемы анализа для автоматов Мура можно предполагать, что событие S, регулярное выраже- выражение для которого требуется найти, представлено в авто- автомате не множеством 7V выходных сигналов, а множеством состояний автомата. С целью подчеркнуть, что речь идет не о выходных сигналах автомата, а о его состояниях, мы будем на- называть состояния автомата его внутренними состояниями. Соответствующим образом переформулированную об- общую проблему анализа мы будем называть проблемой анализа конечного автомата Мура. Эта проблема ре- решается теми же методами, что и общая проблема анали- анализа автоматов Мили или Мура, однако имеет по сравне- сравнению с последней то преимущество, что при ее решении можно ограничиться использованием лишь таблицы переходов или графа автомата, не прибегая к таблице вы- выходов. Примем поэтому такой план изложений: сначала изло- изложим метод решения проблемы анализа конечных автома- автоматов Мура при условии представления событий множеством внутренних состояний, а затем укажем на те изменения, которые необходимо сделать в описанном алгоритме для решения общей проблемы анализа конечных автоматов Мили. Итак, переходим к решению проблемы анализа конеч- конечных автоматов Мура, для чего сформулируем предвари- предварительно эту проблему в точной постановке. Проблема анализа конечного автомата Мура заклю- заключается в следующем. Дана таблица переходов или граф конечного автомата Мура А, дано начальное состояние а, автомата А и прозвольное множество М его внутренних состояний. Требуется найти регулярное выражение для события, представленного в этом автомате множест- множеством М. АНАЛИЗ КОНЕЧНЫХ АВТОМАТОВ 81 Для построения алгоритма анализа, решающего по- поставленную проблему, введем предварительно несколько новых понятий. Путем в автомате А с входным алфавитом {хх,..., хп) и внутренними состояниями а,,..., ат называется вся- всякая конечная последовательность попарно чередующихся букв aj ихс, а именно: 1=а^пхиа^х12а}-2 ... ajk_txlkajk (k^sO) при условии, что для любого jd = 1, ..., к состояние a,jp_l переводится входом Х\р в состояние а$р. Путь называется простым, если все входящие в него состояния ajy за исключением, быть может, лишь первого ain и последнего а$к, попарно различны. Если яу„=яд| то путь называется замкнутым. Слово h=xixx^ ... Хц, получающееся в результате удаления из пути I символов внутренних состояний, назы- называется (входным) словом, соответствующим этому пути. Легко видеть, что путь / однозначно определяется соответствующим ему входным словом h и начальным состоянием ауо. Используя это обстоятельство, мы будем иногда обозначать путь соответствующей ему парой (ain, h). Условимся также говорить, что путь I входит в то или иное событие S, если соответствующее этому пути входное слово входит в S. Введем еще понятие о типе путей. Всякий путь в авто- автомате А, имеющем внутренние состояния ах, ..., ат, начи- начинающийся состоянием at и кончающийся любым состоя- состоянием из любого множества внутренних состояний автомата М, будем называть путем типа а^М; пути типа ai->-al мы будем называть просто путями типа а,.. Наконец, если N — любое множество внутренних со- состояний, не содержащее состояния а;, то условимся назы- называть путем типа at\N\ всякий путь типа а,-, не содержащий в своем составе ни одного состояния из множества N. За- Заметим, что пути типа а,- можно при желании называть путями типа at\N\, выбирая в качестве множества N пустое множество внутренних состояний. Это обстоятель- обстоятельство позволяет в дальнейшем изложении рассматривать лишь два сорта типов путей: тип а(-^М, который мы бу- будем называть начальным, и тип at\N\, который естествен- естественно назвать циклическим. Разумеется, если множество М состоит из единственного элемента at, то начальный тип 6 В И. Глущло»
82 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II ai->-ai будет вместе с тем и циклическим. Ясно также, что всякий путь типа at\N\ будет вместе с тем и путем типа а,[УУ,|, где TV, — любое подмножество множества N. Для упрощения формул условимся в случае необходи- необходимости заменять в обозначениях типов путей символы состояний индексами этих состояний (для чего, разумеет- разумеется, необходимо фиксировать некоторую нумерацию со- состояний), так что, например, пути типа at будут назы- называться также путями типа i, и т. п. Множество всех слов входного алфавита, соответст- соответствующих путям любого данного типа Р, мы будем назы- называть событием типа Р. Введем, наконец, понятие комплексов различных типов. Пусть S — некоторое событие, представленное в авто- автомате А с начальным состоянием аг множеством М внутрен- внутренних состояний. Тогда начальным комплексом события S или просто начальным комплексом называется формальная дизъюнкция всех простых незамкнутых путей типа а,—*М. Этот комплекс мы будем обозначать через Ks или просто через К, если рассматривается лишь одно событие S. Если ах еМ, то в начальный комплекс мы будем включать путь а,, состоящий лишь из одной буквы, который усло- условимся считать незамкнутым. Комплексом типа а,-[УУ] условимся называть формальное выражение, получаемое в результате вычеркивания в каждом из простых путей типа а,|УУ| символов а,, стоящих в начале и в конце пути, объединения всех полученных в результате такого вычер- вычеркивания «урезанных» путей знаками дизъюнкции и заклю- заключения полученного выражения в итерационные (фигурные) скобки. В комплексы типов а, и а,- \N\ не включаются пути, состоящие лишь из одной буквы. Если пути какого- либо типа Р в автомате отсутствуют, то соответствующий комплекс типа Р мы будем называть пустым и отождест- отождествлять с пустым словом е. Пустота начального комплекса события S означает, очевидно, что событие S пусто. Поскольку в этом случае решение проблемы анализа тривиально (формально регу- регулярным выражением для S может служить, например, дизъюнкция пустого множества букв входного алфавита), то в дальнейшем этот случай мы исключим из рассмот- рассмотрения. АНАЛИЗ КОНЕЧНЫХ АВТОМАТОВ 83 Подчеркнем, что комплексы составляются не из произ- произвольных путей данного типа, а лишь из простых путей этого типа. Поскольку число всех простых путей в конечном автомате очевидным образом конечно, то ко- конечными являются и все определенные выше комплексы. Каждый из таких комплексов может рассматриваться по- поэтому как некоторое регулярное выражение в расширен- расширенном алфавите (я,, ...,хп, а,,..., ат). Для любого данного конечного автомата конечным будет, разумеется, и число комплексов. Нетрудно видеть, что при фактическом построении комплексов все трудности оказываются преодоленными после того, как найдены выражения для начального ком- комплекса и всех комплексов типа a,- (t = l, ..., т). Действи- Действительно, в силу определения всякий комплекс типа at[N\ получается из комплекса типа а,- вычеркиванием всех тех дизъюнктивных членов, в составе которых встречаются символы состояний, входящих в множество N. Что же касается начального комплекса и комплексов типа а;, то их приходится находить с помощью фактического перебора соответствующих простых путей на графе авто- автомата или в его таблице переходов. Поясним теперь все сказанное о построении комплексов на примере. Предположим, что нам необходимо найти комплексы всех типов для события S, представленного в автомате А* с начальным состоянием 1 множеством М, состоящим из состояний 1 и 2; автомат А* задан таблицей переходов 11.4. Таблица II. 4 X У 1 2 1 2 2 3 2 1 Непосредственным перебором по табл. II.4мы находим все простые незамкнутые пути типа 1 ->¦ A,2). Таких путей будет, очевидно, два: путь 1, содержащий единственное состояние 1, и путь ,2, (для удобства чтения, символы
84 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II состояний в пути условимся записывать в виде нижних индексов при соответствующих буквах). Следовательно, начальный комплекс К события S будет иметь вид lv,z,. Аналогичным путем находим, что имеются два простых пути типа 1: ,{/,, lxiyiy1, три простых пути типа 2: txt, »УА- tVtV^i и Два простых пути типа 3: ,xtyt, ,у^хгуг Комплексы типов 1, 2 и 3 имеют вид: Все остальные комплексы находятся с помощью вы- вычеркивания в комплексах Кх, Kt,Kt лишних членов: К ЧЧ = К ЧЧ = К тш} = {У}' Для дальнейшего будет иметь значение еще одно поня- понятие, а именно понятие о ранге комплексов. Условимся при- приписывать всем комплексам типа aj[N\, для которых мно- множество N состоит из к элементов, ранг k-\-i. Комплексы типа а, при этом будут иметь ранг 1. Что же касается на- начального комплекса, то ему, по определению, присваи- присваивается нулевой ранг. Алгоритм анализа конечных автоматов состоит в после- последовательном применении одной единственной операции, которую мы назовем операцией расширения. Суть этой операции состоит в замене всех входящих в то или иное выражение символов внутренних состояний автомата сим- символами комплексов; операция выполняется в соответствии с правилом, называемым правилом замены. Правило замены. Если путь a^i, ay,... х^а^ входит в начальный комплекс, то буква а, заменяется символом комплекса типа а,, буква а;-, — символом ком- комплекса типа a;,|a,]. буква ан —- символом комплекса типа ayja,, a,-,l и т. д. Если же урезанный путь (т. е. путь без начального и конечного состояний) х^а^х^а^.^х^ АНАЛИЗ КОНЕЧНЫХ АВТОМАТОВ 85 входит в комплекс типа aJ[N], to буква aix заменяется символом комплекса типа a;i [N, uj[, буква а^ — симво- символом комплекса типа a;-,|7V, uj, ait\ и т. д. Операция расширения может приме- применяться к любому регулярному выражению (и даже к про- произвольной формуле) над алфавитом, содержащим все буквы входного алфавита автомата и символы всех его комплексов. Если / (я,, ..., хп, К, KPl, ..., К^ ) — произ- произвольная формула указанного вида, то операция расшире- расширения состоит, во-первых, в замене всех символов комплексов их явными выражениями через пути, а, во-вторых, в под- подстановке вместо символов внутренних состояний а, в каж- каждом из возникших таким образом путей символов комплексов высших рангов в соответствии со сформулиро- панным выше правилом замены. При применении операции расширения из регулярного выражения получается, как нетрудно видеть, снова регулярное выражение; при этом, однако, минимальный ранг входящих в него комплексов повышается по сравне- нению с исходным выражением не менее, чем на единицу. Если в исходном автомате А имеется т внутренних состоя- состояний, то после (т-}-1)-кратного применения операции расширения к любому регулярному выражению / (я,,... ..., хп, К, KPl..., Kps) в алфавите, состоящем из вход- входных сигналов и символов комплексов этого автомата, по- получится, очевидно, регулярное выражение R(xl, ..., хп), уже не содержащее символов комплексов автомата. Поясним операцию расширения комплексов на примере автомата А*, уже рассмотренного в настоящем параграфе с целью пояснения методов построения комплексов (см. стр. 83). Пусть исходное выражение / совпадает с символом К начального комплекса представленного в автомате А* события S. Применим к нему четыре раза операцию расши- расширения: 1-е расширение: 2-е расширение: i) = {yvx2y,y\ (evz {xvyzx})
86 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ 3-е расширение: [Гл. II = {yvx {xvy,x} yey) (evx {xvyex}) = = {yvx{x\yix)yy\ (evx {xvyx})-^ —* {умх \x\yKt{Uip) yy) (e\x {xvtjx}). 4-е расширение: {учх {х\/уК,1иг]х\ yy} (evx {xvyx)) = = { yvx {x\yex}yy} (evx {xvyx}) = = {yvx {x\yx} yy} (evx {x\yx}). На 4-м расширении применять правило замены уже не требуется, ввиду отсутствия символов внутренних состоя- состояний. Ясно, что все последующие расширения уже не будут менять полученного выражения. Заметим еще, что при первом расширении мы применяли операции алгебры событий с целью упрощения полученного выражения; введенный здесь символ е означает пустое слово и в исход- исходный алфавит не входит. Разумеется, применять упроще- упрощения выражений в алгебре событий при выполнении опера- операции расширения вовсе необязательно,— это делается лишь с целью упрощения записи. Основным результатом, обосновывающим алгоритм анализа конечных автоматов, является следующее пред- предложение. (U) Если событие S представлено множеством М внутренних состояний конечного автомата А, имеющего т внутренних состояний, то событие S регулярно, а регу- регулярное выражение для этого события может быть получено в результате (т-\-{)-кратного применения операции рас- расширения к символу начального кМплекса события S. Мы докажем более общее предложение (У), из которого справедливость предложения (U) усматривается непо- непосредственно. (V) (т—к-\-1)-кратное расширение любого комплекса типа Р, имеющего ранг к, приводит к регулярному выра- выражению, представляющему событие Qp типа Р. Действительно, начальный комплекс К, о котором идет речь в предложении (U), имеет тип at->-M ранга АНАЛИЗ КОНЕЧНЫХ АВТОМАТОВ 87 нуль, а событие типа a^-i-M есть не что иное, как событие S. Таким образом, предложение (U) действительно яв- является простым следствием предложения (У) и,, следова- следовательно, нам достаточно доказать это последнее предло- предложение. Прежде чем перейти к доказательству предложения (У), введем одно новое понятие. Если /(я,, ...,хп, К, KPt .... ...,КРк) —любое регулярное выражение в алфавите, содер- содержащем входные сигналы я,, ..., хп автомата и символы всех его комплексов, то событием, соответ- соответствующим этому выражению, мы будем называть событие во входном алфавите (ж,, ..., хп), представляемое регулярным выражением, которое получается из выраже- выражения / в результате замены символов комплексов их значе- значениями и вычеркивания (замены пустыми словами) в полу- полученной формуле всех символов внутренних состояний автомата. Так, например, для рассмотренного выше автомата А* выражению KxvKs^ будет соответствовать событии {yvxyy}vx {ху}, выражению {KvKby} —событие {eyxv{xy\ yyxy\y} = {xv{xy\/yxy\y}, выражению^ — событиееуя ит. п. Условимся через Кp(f) обозначать / раз расширенный комплекс Кр типа Р, а через Rp (/) — событие, соответ- соответствующее выражению Kp(j) (f=0, I,..., m+1). Выражение Кр@) совпадает с исходным комплексом Кр. В терминах введенных понятий предложение (V) можно перефразировать следующим образом: Если комплекс Кр имеет ранг к, то событие Rp(m—к-\-1) совпадает с событием Qp типа Р. Приступая к доказательству предложения (V), заметим, что выполнение каждой операции расширения, в соответ- соответствии с формулировкой предложения (У), обогащает ис- исходное выражение: в событии Rp(f-\-l) появляются, вообще говоря, новые слова по сравнению с событием Rp (/). Однако из способа расширения непосредственно вытекает, что путь /, соответствующий каждому такому новому слову h, получается из пути /0, соответствующего некоторому слову события Rp(j), с помощью вставок циклических путей, начинающихся и кончающихся одним и тем же состоянием пути /0. Начальное и конечное состоя- состояния пути при этом не меняются. Поэтому слово h всегда
88 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл./ II остается принадлежащим событию типа Р. Тем самым доказано, что при любом /, в том числе и при /=к, имеет место включение Rp (m—f-\-l)cQp. Теперь, для того чтобы доказать предложение (V), достаточно установить, что Справедливость этого включения будет доказана индук- индукцией по рангу к. Для к=т справедливость A) очевидна, поскольку для всякого комплекса Ка \Nт\ ранга т соот- соответствующее ему событие Ra\Nт\ имеет вид \xiyxit v... va?i,} и, в силу определения комплекса типа a;\Nm\, включает все слова, переводящие автомат из состояния at в состоя- состояние ар минуя все остальные состояния. Таким образом, справедливость включения A) для всех типов Р ранга т может считаться установленной. Предположим теперь, что включение A) доказано для всех значений ранга к, больших чем р\ докажем справед- справедливость A) для А=р. Пусть фиксированы произвольный тип Р ранга р и произвольное слово q из события Qp типа Р. Требуется доказать, что слово q принадлежит событию Rp(m—р-\-1), которое мы для краткости будем обозначать просто через R. Рассмотрим отдельно два случая. 1-й случай. Ранг р больше нуля; тип имеет вид аДУУ]. Путь l=(anq), определяемый состоянием а, и сло- словом q, будет в этом случае начинаться и кончаться состоя- состоянием а{. Это обстоятельство позволяет представить путь / в виде /=a;/]a(/2...af/<,a(, где урезанные (с вычеркнутыми начальным и конечным состояниями) пути /,,/,,..., 1С не содержат состояния а,-. Поскольку выражение R=Rp(m— —p-\-i) в рассматриваемом случае заключено в итерацион- итерационные скобки, то очевидно, что для доказательства требуе- требуемого включения слова q в событие R достаточно показать, что все слова, соответствующие путям a(/,a,,..., uilcan содержатся в событии R. Следовательно, не нарушая общности, можно предполагать, что слово / содержит символ аг лишь в начале и в конце. Представим теперь слово / в виде ni xnrat. B) АНАЛИЗ КОНЕЧНЫХ АВТОМАТОВ 89 З^есь путь am,hlami'=q1 не содержит символа at, путь ?,*=лт]/г1от1 не содержит символов ai и am, "и т. д. Одним словом, каждый из выделенных в скобки путей не содержит ни одного из символов внутренних состояний, встречаю- встречающихся в явном виде в выражении B) слева от этого пути. Добиться такого представления слова / можно следующим очевидным способом: нужно выделить самый левый и самый правый из символов аШ|; тогда в оставшейся (правой) части пути / символ am, уже встречаться не будет. В этой оставшейся части слова находим самый левый символ amj и выделяем новый участок пути: от самого левого символа ami до самого правого. Продолжая подобным образом, мы получим требуемое разбиение пути Л Поскольку в пути / по условию не могут встречаться символы состояний из множества N, то мы приходим к заключению, что путь gi=amjiiamt имеет тип ami [N, a,] и содержится, следовательно, в событии Qam [jv.oj > путь gt СОДерЖИТСЯ В СобыТИИ <?a,nJ^,o.,amj] И Т. Д.' Легко заметить также, что путь / получается из простого пути /0=а/ж„„ата;Г!1ат2а;П2 ... атгхПга1 в резуль- результате подстановки вместо состояний ami, ama,..., атт соответ- соответственно путей g,, g,,..., gr. Но путь /0 после выбрасывания начального и конечного состояний войдет, очевидно, в ком- комплекс Кр типа P=ai \N\. Подстановка путей g, в путь /0 соответствует подстановке при образовании расширения Кр-гКр A): каждый из путей g, подставляется в то же самое место пути /0, куда при расширении подставляется комплекс того же типа, что и путь gt. Но все подставляемые комплексы имеют ранги, большие, чем р, и потому, согласно предположению индукции, событие, соответ- соответствующее любому из этих комплексов, содержит слово, соответствующее тому из путей g,i...,gr, который имеет одинаковый с данным комплексом тип. При переходе от расширения Кр к расширению Кр (тп—р + 1) будет совершено m—р шагов, что, по предложению индукции, оказывается достаточным, чтобы все подставленные при первом расширении ком- комплексы (они имеют ранг р-\-1 и выше) превратились в со- соответствующие им события. Теперь ясно, что слово q, соответствующее пути /, может быть получено в результате раскрытия регулярного
90 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. выражения Кр(т—р-\-\). Следовательно, qtRp (m—р-\-\) и, ввиду произвольности q из Qp, мы получаем требуемое включение: QpczRp{m-p-\-X). 2-й случай. Индекс Р равен нулю; тип Р имеет вид и,-»М. Путь /=(а,, q), определяемый состоянием а, и словом q, будет начинаться состоянием а, и кончаться одним из состояний ат множества М. В этом случае дока- доказательство ведется аналогично первому случаю. Отличие заключается лишь в том, что первый этап рассуждений опускается, и сразу строится разбиение пути /, аналогич- аналогичное разбиению B), но все же немного от него отличаю- отличающееся: l = {alht>ai)xni(amh,am)... xnr(amrktamr). C) Здесь, как и в первом случае, в первой скобке g0 выде- выделено самое левое и самое правое вхождение символа а, в путь /, во второй — самое левое и самое правое вхожде- вхождение символа ат в оставшуюся (правую) часть пути. В даль- дальнейшем рассуждения проводятся точно так же, как и в первом случае, и поэтому мы их проводить не будем. Предложение (V), а значит, и предложение (?/) дока- доказано. Тем самым полностью обоснован алгоритм аналиьа для случая конечных автоматов Мура. Алгоритм анализа для случая конечных автоматов Мили отличается от построенного алгоритма лишь одной деталью. А именно, поскольку рассматриваемое событие S представляется в данном автомате Мили А с начальным состоянием а, не множеством М внутренних состояний, а множеством N выходных сигналов, необходимо иначе строить начальный комплекс. Вместо комплекса типа а1 -* М в этом алгоритме строится комплекс^ типа а^ N. Комплекс К представляет собою дизъюнкцию всех простых путей с отброшенной последней буквой, которые оканчи- оканчиваются всевозможными парами aitr_lXik, дающими при под- подстановке их в функцию выходов автомата А выходные сигналы, принадлежащие представляющему множеству N. В остальном алгоритм анализа конечных автоматов Мили ничем не отличается от алгоритма анализа конечных автоматов Мура. Нетрудно видеть, что для него оказы- АНАЛИЗ КОНЕЧНЫХ АВТОМАТОВ 91 ваются применимыми все приведенные выше рассуждения и доказательства. Из рассмотрения построенного в настоящем параграфе алгоритма анализа непосредственно вытекает справедли- справедливость следующего предложения. 5.1. Если ее бытие S представлено в конечном автомате Мили или Мура с т состояниями множеством выходных сигналов (или множеством внутренних состояний), то это событие регулярно и допускает регулярное выражение, циклическая глубина которого не превосходит т. Чтобы убедиться в справедливости этого предложения, достаточно заметить, что регулярное выражение для собы- события S, получаемое в результате применения алгоритма анализа, конструируется с помощью тп-(-1 расширения регулярного выражения .ЙГ, циклическая глубина которого равна нулю. При этом после первого расширения цикли- циклическая глубина выражения остается равной нулю, а посль каждого следующего увеличивается не более чем на еди- единицу. В заключение настоящего параграфа рассмотрим несколько примеров анализа конечных автоматов. Пример 1. Конечный автомат А с тремя внутрен- внутренними состояниями 1, 2, 3 и двумя входными сигналами х и у задан таблицей переходов 11.5. Таблица И.5 X У 1 2 1 2 3 2 3 1 3 Требуется найти регулярное выражение для события S, представленного в этом автомате множеством состояний A, 2) при начальном состоянии 1. Решение. Непосредственно по табл. II.5 находим начальный комплекс Z = lv1x2 и комплексы типов 1, 2 и 3:
92 АБСТРАКТНАЯ ТВОРИЯ АВТ ОМАТОВ [Гл. II Остальные комплексы мы выписывать не будем, по- поскольку они легко находятся на основе комплексов К1У Кг, К . Применяем четыре раза операцию расширения: 1-е расширение: К К = lv.x, -+K 2-е расширение: ) = {yvxtx,x} ( ]=Kx (evxKt[li). {у}) } (evx{y}). 3-е расширение: {yvxKtH^K,Hi]x} (evx {y}) = {yvx {у} х {у} x} (evx \y}) = R. Поскольку операция расширения, примененная к вы- выражению R уже не может его изменить, дальнейшие расширения становятся излишними, а выражение R = {yyx{y)x{y\x\{eyx{y}) представляет собою искомое регулярное выражение для события S. Заметим, что в этом случае не потребовалось четырех расширений, предусмотренных в алгоритме син- синтеза. Таким образом, число /п+1 представляет собою лишь верхнюю грань числа необходимых расширений; в отдельных случаях эта грань может и не достигаться. Пример 2. Конечный автомат А с четным числом состояний 1, 2,..., 2п и с двумя входными сигналами х и у вадан таблицей переходов 11.6. Таблица II. 6 X У 1 2 1 2 1 3 3 4 2 4 3 5 5 6 4 в 5 7 ... 2л 2л—2 2п 2л-1 2л Требуется найти регулярное выражение для события S, представленного в автомате А состоянием 1 при началь- начальном состоянии 1. " Решение. Начальный комплекс К состоит из един- единственного пути К=1. Произведя первое расширение, $ 6] АНАЛИЗ КОНЕЧНЫХ АВТОМАТОВ 93 получим выражение К A)=ЛГ,. Из табл. II.6 видно, что ^III. «]=={X4a:}l^4tl,J,.|]:={2/l2/}' • • ''^(M-l)ll .tn-jF3 = {xinx}, Ktnllt lf###f ln.u = {y}. Произведя второе расширение, мы придем к выра- женис: Поел; третьего расширения получим выражение Нетрудно видеть, что, продолжая подобным образом, мы на 2п-м расширении придем к выражению KBn) = {yvx{y{x{...{xKinU „-,]*}.••}*}#}*} и на Bп-|-1)-м расширении — к выражению R=KBn-{-l) = {yvx{y{x{...{X{y}x}...}x}y}x}, имеющему циклическую глубину 2п. Это выражение и будет искомым регулярным выражением для события S. Заметим, что в рассмотренном примере достигается верхняя граница циклической глубины регулярного вы- выражения для события, представленного в автомате, которая была найдена в сформулированном выше предложении 5.1. Пример 3. Автомат Мили А с двумя внутренними состояниями 1,2, двумя входными сигналами х, у и двумя ¦выходными сигналами гиг? задан таблицей переходов II.7 и таблицей выходов II.8. Таблица 11.7 Таблица II.8 X У 1 2 1 2 2 1 X У 1 z Z 2 V V Найти регулярное выражение для события S, пред- представленного в автомате S выходным сигналом v (при начальном состоянии 1),
94 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Решение. Находим начальный комплекс К — = ххгх v ххгу, а также комплексы типов 1 и 2: Kl={yjxiy\, Кг = {хму1х}. Производим необходимые расширения: К = хххх\1^л -+KlxK2[l]xvKlxK2lliij = {yvxj/} х {х} {хму} -* х ix\ (.wy) = \УЧХ \х\ У) х \х\ Последнее выражение и дает искомое выражение для события S: S= {у\х{х)у}х{х} {х\у). § 6. Основной алгоритм синтеза конечных автоматов Основной задачей настоящего параграфа является построение алгоритма синтеза вполне опреде- определенных автоматов по представляемым ими событиям. Сначала мы будем решать так на- называемую общую проблему синтеза вполне определенных конечных автоматов. Приведем точную форму- формулировку этой проблемы. Требуется построить алгоритм, который позволял бы по любому конечному множеству М регулярных событий, заданных своими регулярными выражениями, находить таблицу переходов и выходов конечного вполне определен- определенного автомата Мили А и отмеченную таблицу переходов конечного вполне определенного автомата Мура В таких, что все события множества М представляются как в авто- автомате А, так и в автомате В некоторыми множествами их выходных сигналов. Описываемый ниже алгоритм, решающий указанную проблему, мы будем называть основным алгоритмом син- синтеза конечных автоматов. Напомним, что согласно приня- принятому ранее соглашению представление событий будет рассматриваться с точностью до пустого слова, которое, таким образом, будет играть лишь служебную роль. Для построения общего алгоритма синтеза достаточно научиться строить по представляемым ими событиям § 6] ОСНОВНОЙ АЛГОРИТМ СИНТЕЗА КОНЕЧНЫХ АВТОМАТОВ 95 лишь конечные автоматы Мура. В самом деле, построив автомат Мура В, представляющий заданное множество регулярных событий М, мы можем интерпретировать его как автомат Мили А способом, описанным в § 1 настоя- настоящей главы. Как было показано в § 1, автоматы А и В инду- индуцируют одно и то же автоматное отображение, и следова- следовательно, представляют все события исходного множества М одинаковыми множествами своих выходных сигналов. В свою очередь, решая задачу синтеза автомата Мура, мы можем, в силу результатов § 4, считать, что заданные нам регулярные события требуется представить не мно- множествами выходных сигналов, а множествами (внутрен- (внутренних) состояний автомата. Для того чтобы перейти от представления событий Rl,...,Rp в автомате Мура множествами состоя- состояний к представлению их множествами выход- выходных сигналов, достаточно в качестве выходных сигналов взять различные подмножества заданного множества событий (Д,,...,Д ) и отмечать каждое состояние а автомата множеством всех таких событий, которые представляются этим состоянием (то есть таких событий, которые содержат слова, переводящие автомат из начального состояния в рассматриваемое состояние а). В частности, состояния, не представляющие ни одного из заданных событий, отмечаются пустым множеством событий. Описанный способ отметок состояний автомата Мура В мы назовем каноническим способом отметок. Применяя канонический способ отметок, мы получим, как нетрудно видеть, представление любого заданного со- события Ri множеством всех тех выходных сигналов, кото- которые в своем составе содержат это событие (/=1,..., р). Исключение может составить лишь пустое слово (если оно входило в заданное событие), поскольку пустое слово не может быть представлено никаким выходным сигналом. Таким образом, при использовании канонического способа отметок заданные события представляются множествами выходных сигналов (отметок) с точностью до пустого слова. Переходя к построению основного алгоритма синтеза конечных автоматов, условимся, что все те из исход- исходных для алгоритма регулярных выражений Д,, ..., Д.
96 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II (представляющих заданные регулярные события), которые являются многочленами, будут всегда заключены в обычные (неитерационные) скобки. Это условие мы будем называть условием правильности записи регулярных вы- выражений. Ясно, что необходимость выполнения этого условия нисколько не ограничивает общности построения. Местами в правильно записанном регулярном выра- выражении R над алфавитом X.=(xt, ...,xn) мы условимся назы- называть специально вводимые знаки раздела (вертикальные линии), ставящиеся между любыми двумя знаками этого выражения (знаками в выражении R являются буквы алфавита Ж, символ пустого слова е, знак дизъюнкции, итерационные и обычные скобки). Кроме этих так назы- называемых разделяющих мест вводятся еще два места — на- начальное и конечное. Первое из них располагается слева от сймого левого знака выражения R, а второе — справа от сймого правого знака. В качестве примера рассмотрим разметку мест в регу- регулярном выражении R=zyx\y\/z). Приведенное к правиль- правильной форме, это выражение приобретает вид R — (zyx{y\/z)). После приведения можно произвести разметку мест: I ( I z I vlx| {| y\ v| z| H ) I 12 34 56789 10 11' A) Таким образом, данное регулярное выражение имеет всего 11 мест. Начнем теперь развертывать данное регулярное выра- выражение в слово, то есть последовательно, буква за бук- буквой, выписывать какое-либо слово из представляемого им события. При таком развертывании, производимом в соответствии с порядком действий, указанным в выраже- выражении, мы будем осуществлять переходы от одного места данного регулярного выражения к другому, от- отправляясь от начального места и заканчивая конечным местом. Естественно различать два вида таких перехо- переходов — непосредственный переход и переход через букву основного алфавита X., в котором задается представляемое выражением событие. Рассмотрим в качестве примера процессы развертыва- развертывания размеченного выше выражения R в принадлежащие представляемому им событию слова г и xyz. При разверты- I 6] ОСНОВНОЙ АЛГОРИТМ СИНТЕЗА КОНЕЧНЫХ АВТОМАТОВ 97 вании выражения в первое слово мы должны осуществить непосредственный переход от начального места 1 к месту 2, переход через букву z от места 2 к месту 3 и, наконец, непосредственный переход от места 3 к конечному месту И, При развертывании выражения в слово xyz порядок переходов будет следующим: непосредственный переход — от места 1 к месту 4, переход через букву х — от места 4 к месту 5, непосредственный переход — от места 5 к месту 6, переход через букву у — от места 6 к месту 7, непосредственный переход — от места 7 к месту 10, непосредственный переход — от места 10 к месту 8, пере- переход через букву z — от места 8 к месту 9, непосредствен- непосредственный переход — от места 9 к месту 10 и непосредственный переход — от места 10 к месту 11. Пусть R — регулярное выражение, q=xilxil...xii— произвольное слово во входном алфавите события, пред- представляемого выражением R. Условимся говорить, что место а в выражении R связано словом q с местом р в том же выражении, если от места а к месту Р можно перейти с по- помощью чередования любого числа непосредственных пере- переходов и переходов через буквыx,i ,?,,,,..., x,t слова q, взятых по одному разу в том порядке, в каком они входят в слово. Мы будем употреблять также другую терминологию, го- говоря, что место р q-следует за местом а всякий раз, когда место а связано с местом р словом q. Условимся говорить, что место р подчинено месту а, если от места а к месту р можно перейти с помощью одних лишь непосредственных переходов, то есть, иначе говоря, если место а связано с местом р пустым словом е. Из определения операций и порядка их выполнения в алгебре событий непосредственно вытекают следующие правила подчинения мест в регулярных выражениях: 1. Начальные места всех термов многочлена, поме- помещенного в обычные или итерационные скобки, подчинены месту, находящемуся непосредственно слева от открываю- открывающей скобки из пары скобок, объемлющих данный многочлен (многочлен в этом правиле может вырождаться в одночлен, важно лишь, чтобы он был заключен в скобки). 2. Место, расположенное непосредственно справа от закрывающей скобки (итерационной или обыкновенной) подчинено конечным местам всех термов многочлена 1 В. М. Гдуш1.О1
98 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. И (в частном случае, одночлена), заключенного в соответст- соответствующие скобки, а в случае итерационных скобок — также месту, расположенному непосредственно слева от соответ- соответствующей открывающей скобки. 3. Начальные места всех термов многочлена (в частном случае, одночлена), заключенного в итерационные скобки, подчинены месту, расположенному непосредственно справа от соответствующей закрывающей скобки. 4. Место, расположенное непосредственно справа от символа пустого слова е, подчинено месту, расположенному непосредственно слева от этого символа. 5. Если место у подчинено месту р, а место р подчинено месту а, то место у подчинено месту а (свойство транзи- транзитивности для отношения подчиненности мест). 6. Каждое место подчинено самому себе. 7. Других случаев подчинения мест, кроме тех, которые определяются правилами 1, 2, 3, 4 и 5, нет. В качестве примера использования приведенной си- системы правил установим отношение подчиненности мест для рассмотренного выше регулярного выражения A). Место 1 в этом выражении, кроме себя самого, очевидно,. не подчинено никаким другим л егтам. Тем же самым свойст- свойством обладают также места 3,5,7 и 9. Места 2 и 4, кроме са- самих себя, подчинены месту 1 (по правилу 1), места 6 и 8 — месту 5 (по правилу 1) и месту 10 (по правилу 3). Место 10 подчинено (кроме самого себя) местам 5, 7 и 9 (по пра- правилу 2). Наконец, место 11 подчинено (кроме самого себя) местам 3 и 10 (по правилу 2) и местам 5, 7 и 9 (по правилу 5). Важное значение для построения алгоритма синтеза имеет понятие основного места в правильно записанном регулярном выражении. Основными местами в таких вы- выражениях считаются по определению все места, непосред- непосредственно с л е в а от которых стоит буква основного алфа- алфавита, а также начальное место. Условимся также называть все места, непосредственно справа от которых стоит буква основного алфавита, пред основными. Рассмотрим теперь произвольное множество правильно записанных регулярных выражений Д,, Д2, ..., Rp. Ото- Отождествим между собой все начальные места этих выра- выражений и будем рассматривать совокупность различных § 6] ОСНОВНОЙ АЛГОРИТМ СИНТЕЗА КОНЕЧНЫХ АВТОМАТОВ 99 множеств их основных мест, включая пусто.е множество основных мест (не содержащее ни одного места). Если к — общее число экземпляров букв основного ал- алфавита, входящих в данные выражения Д,,..., Rp, то, как следует из элементарной теории множеств и определе- определения основного места, число различных множеств основных мест будет равняться g=2ft+1. Построим теперь автомат Мура А, входной алфавит которого совпадает с основным алфавитом ?=(xl,...,xn) выражений Д,, ..., R , а внутренними состояниями служат всевозможные множества а,, а. ...,aq основных мест этих выражений. Состояние aixj=al, в которое автомат А пе- переходит из состояния ai под действием входа Xj, опреде- определяется как множество aL всех тех основных мест выра- выражений Д,,..., Rp, которые связаны однобуквенным словом xt хотя бы с одним из основных мест, входящих в мно- множество а,-. Ясно, что таким образом однозначно опреде- определяется некоторая функция переходов в автомате А. В частности, в силу этого определения, состояние авто- автомата А, соответствующее пустому множеству основных мест, обладает тем свойством, что оно переводится в самое себя любой входной буквой Xj. В качестве начального состояния а, в построенном ав- автомате выберем множество, состоящее из начального места (которое считается общим для всех выражений Д,, ...,Д ). Для того чтобы завершить построение автомата, остается лишь отметить его состояния. При этом мы будем пользо- пользоваться подмножествами (Д;,, ...,Rilt) данного нам множества M=(R1,...,Rp) регулярных выражений (не исключая из рассмотрения пустого множества и самого множества М). Примем следующее правило отметок: состояние at автомата А (множество основных мест выражений Д,,... ...,Rp) отмечается множеством, содержащим все те и только те выражения Д,, ..., Rp, конечные места которых подчинены хотя бы одному (основному) месту из числа мест, входящих в множество at. Из определения функции переходов в построенном нами автомате А и из способа отметки его состояний непо- непосредственно вытекает следующее предложение. Слово q в основном алфавите ?=(х1, ..., хп) тогда и только тогда переводит автомат А из начального состоя-
100 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II , j, отмеченное произвольным множест- множеством, содержащим любое заданное регулярное выражение Rr когда начальное место выражения Rt связано с конеч- конечным местом этого выражения словом q. Нетрудно видеть также, что слово q тогда и только тогда связывает начальное и конечное места выражения Rt, когда оно принадлежит событию, представляемому этим выражением. Тем самым становится очевидным следую- следующее предложение. 6.1. Событие St, представляемое регулярным выраже- выражением R{, в построенном выше автомате Мура А представ- представляется множеством состояний, содержащим все те и только те состояния, в отмечающие множества которых входит символ Rt (j = l,2, ..., р). Поскольку в процессе построения автомата А мы ис- использовали канонический способ отметки его состояний, то, как было показано в начале параграфа, можно счи- считать, что автомат А представляет исходные события не только множествами своих состояний, но и множествами выходных сигналов. Но тогда построенный автомат можно интерпретировать как автомат Мили. Кроме того, в про- процессе построения нами было выяснено, что число состоя- состояний построенного автомата равняется 2*+1 , где к — общее число букв входного алфавита (считая повторения) в ис- исходных регулярных выражениях. Некоторые из этих состояний могут оказаться недостижимыми и могут, сле- следовательно, быть исключены без изменения индуцируе- индуцируемого автоматом отображения (см. § 1), а, значит, и без изменения представляемых им событий. Таким образом, величину 2*+1 следует рассматривать как верхнюю оценку для числа состояний синтезируемого автомата. Все сказанное можно резюмировать в виде следующей теоремы существования. 6.2. Существует единый конструктивный прием (ос- (основной алгоритм синтеза конечных автоматов), позволяю- позволяющий для любого конечного множества регулярных событий, заданных своими регулярными выражениями Я,, ..., Rp, построить конечный автомат Мура А и конечный автомат Мили В, в которых все события множества М представ- представляются (с точностью до пустого слова) некоторыми мно- множествами их выходных сигналов. При этом число различ- различай] ОСНОВНОЙ АЛГОРИТМ СИНТЕЗА КОНЕЧНЫХ АВТОМАТОВ Ю1 ных выходных сигналов в автоматах А и В не превышает 2Р, а число состояний в каждом из них не более чем 2*+\ где к — общее число букв входного алфавита (считая пов- повторения), которые входят в заданные выражения R,,..., Rp, Из данной теоремы и предложения 5.1 вытекает спра- справедливость сформулированной (но не доказанной) в § 4 теоремы 4.5. Рассуждения, с помощью которых была доказана теорема 6.2, позволяют оформить основной алгоритм син- синтеза конечных автоматов в виде ряда четко формулируемых правил. Эти правила мы сформулируем таким образом, чтобы включить в алгоритм также и упрощение синтези- синтезируемого автомата за счет исключения недостижимых состояний. Такое исключение можно, очевидно, выпол- выполнить, если при построении переходов в автомате, отправ- отправляясь от начального состояния, учитывать (и вносить в таблицу) лишь те состояния, которые будут фактически появляться при рассмотрении переходов. Новые состоя- состояния перестанут появляться через конечное число шагов, поскольку общее число возможных состояний конечно. Правила основного алгоритма синтеза конечных автоматов Правило 1. Заданные регулярные события (число которых предполагается конечным) представляются пра- правильно записанными регулярными выражениями Я,, ... ...Rp. Все места (как основные, так и неосновные) в этих выражениях отмечаются вертикальными черточками. Правило 2. Каждому основному месту в выраже- выражениях /?j, ..., Rp приписывается в качестве индекса неотри- неотрицательное целое число. При этом всем начальным местам приписывается один и тот же индекс, а именно индекс нуль. Что же касается остальных основных мест, то они нумеруются в произвольном порядке натуральными чис- числами 1, 2, ... Все введенные здесь индексы называются ос- основными. Основные индексы подписываются под вертикаль- вертикальными чертами соответствующих им (основных) мест и подчеркиваются снизу общей для каждого из выражений /?,,..., Вр горизонтальной разделительной чертой.
102 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Правило 3. Индекс (основной) каждого основного места а распространяется в качестве неосновного индекса на все места (как основные, так и неосновные), подчиненные месту а, но отличные от него самого (правила, определяю- определяющие подчинение мест, были сформулированы в настоящем параграфе). При этом каждое место р* получает, вообще говоря, некоторое множество неосновных индексов. Все индексы этого множества подписываются в произвольном порядке под вертикальной чертой, соответствующей месту р, ниже разделительной горизонтальной черты. Все индексы (как основные, так и неосно(ные), относящиеся к любому предосновному месту, заключаются в общую рамку. Правило 4. Строится таблица переходов некото- некоторого автомата Мура А. В качестве состояний этого автомата берутся подмножества множества всех основных индексов. При этом подмножество, состоящее из основных индексов ix,..,,ik(k^\), мы будем обозначать через J,vJjV ... ...vt,;i а пустое множество основных индексов — звездоч- звездочкой (соответствующее ему состояние автомата А назы- называется пустым). В качестве начального состояния выби- выбирается состояние 0 и со столбца, соответствующего этому состоянию, начинается построение таблицы переходов. Столбцы, соответствующие остальным состояниям, вы- выписываются в произвольном порядке, но лишь после того, как обозначающие их состояния уже появились в вь.писанных ранее столбцах таблицы. Строки таблицы обозначаются (в произвольном порядке) различными буквами входного ал- алфавита заданного множества событий. На пересечении про- произвольной (х-й) строки и произвольного (uj-го) столбца таб- таблицы выписывается состояние (множество основных индек- индексов), состоящее из основных индексов всех тех и только тех основных мест, которые х--следуют за предосновными местами, в числе индексов которых (как основных, так и неосновных) находится хотя бы один индекс, принадлгжа- щий состоянию ау- (в случае несуществования основных мест с требуемыми свойствами на соответствующем месте таблицы выписывается пустое состояние). Правило 5. Каждое из состояний ityji2\/...\/ih (k^sl), которые обозначают столбцы таблицы переходов, отмечается множеством (Лу,. ¦¦•, Rjn) всех символов тех I 6] ОСНОВНОЙ АЛГОРИТМ СИНТЕЗА КОНЕЧНЫХ АВТОМАТОВ 103 и только тех регулярных выражений Rt, ...t R , конечные места котор ых содержат в числе своих индексов (как основ- основных, так и неосновных) хотя бы один из индексов /,, ..., iJk. Пустое состояние отмечается пустым множеством регу- регулярных выражений Rt, ..., R ; его мы будем обозначать через ( ). С помощью введенных отметок, принимаемых за выходной алфавит, строится отмеченная таблица пе- переходов искомого конечного автомата Мура А. Правило 6. В случае необходимости найденный автомат Мура интерпретируется как автомат Мили В. Таблица переходов автомата А при этом принимается за таблицу переходов автомата В, а таблица выходов авто- автомата В получается в результате подстановки в его таб- таблицу переходов вместо символов состояний символов, отме- отмечающих эти состояния выходных сигналов (отметок) автомата А. Построенные автоматы А и В представляют заданные события множествами своих состояний и (с точностью до пустого слова) множествами своих выходных сигналов. Событие, заданное регулярным выражением Rr представ- представляется множеством всех тех и только тех состояний, которые отмечены множествами, содержащими в качест- качестве своих элементов выражение й(. Это же событие (за вычетом лишь пустого слова, если оно содержится в собы- событии) представляется в автоматах А и В множеством всех тех и только тех выходных сигналов (множеств, состоящих из выражений Rt, ..., Rp), которые содержат в своем составе выражение ЙДг=1, ..., р). Множество состояний, отмеченных пустым множеством ( ), или выходной сигнал ( ) представляет событие, состоящее из всех слов входно- входного алфавита, не вошедших в заданные события. Обоснование правильности описанного алгоритма содер- содержится в доказательстве предложения 6.1, в свойствах канонического способа отметок, описанных в начале на- настоящего параграфа, и в методе интерпретации автоматов Мура как автоматов Мили, развитом в § 1. Необходимо отметить еще, что в процессе синтеза автомата или по окончании этого процесса производят обычно переобозначение состояний и выходных сигналов с целью упрощения записи таблиц переходов и выходов. Обычно при переобозначении состояний мы
104 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II будем просто нумеровать их натуральными числами 1,2, ..., используя для обозначения начального состояния еди- единицу. В некоторых случаях, впрочем, оказывается целе- целесообразным обозначать состояния числами 0, 1, 2, ...; при этом начальное состояние обозначается всегда нулем. Рассмотрим теперь пример синтеза конечного автомата в соответствии с описанным алгоритмом. Требуется пост- построить конечный автомат, в котором для входного алфа- алфавита ?, состоящего из двух букв х и у, были бы представ- представлены два события: событие Я,, состоящее из всех слов в алфавите X., в которых все буквы х предшествуют всем буквам г/, и событие Я,, состоящее из всех слов в алфавите ?, которые кончаются буквой х. Применяя правило 1, записываем заданные события в виде следующих регулярных выражений: После разметки мест эти выражения приобретут вид Применяем правило 2, в результате чего возникают следующие выражения: д;= В результате применения правила 3 мы получаем: х \ О' о 0 О 1 2 0 3 4 0 3 4 0 3 4 Применение правила 4 приводит к построению таб- таблицы переходов 11.9. Применение правила 5 дает нам отмеченную таблицу переходов 11.10. Обозначая выходные сигналы ( ), (Я,), (Я,), и (Я,, Я,) соответственно через 2, u, v, w и нумеруя состояния, мы приходим к отмеченной таблице переходов 11.11. ( в] ОСНОВНОЙ АЛГОРИТМ СИНТЕЗА КОНЕЧНЫХ АВТОМАТОВ 105 Таблица II. 9 X У X У 0 1 V3v5 2v4 (Д.) 0 1 v3v5 2 v4 1 V3 V5 1 v3v5 2v4 <Д„ Д2) Iv3v5 1 v3v5 2v4 2 V4 3v5 2v4 (Д.) 2v4 3v5 2v4 3v5 3v5 4 4 3 v5 4 Габлица II. 10 <Д2) 3v5 3v5 4 ( ) 3v5 4 При интерпретации построенного автомата как авто- автомата Мили в соответствии с правилом 6 мы получим таб- таблицу его выходов 11.12. Таблица II. И X У и 1 2 3 w 2 2 3 и 3 ¦ 4 3 V 4 4 5 г 5 4 5 X У 1 1 w и абли ца II. 2 w и 3 V и 4 V Z 12 5 V Z Построенные автоматы представляют событие Я, со- состояниями 1, 2, 3, а событие Я, — состояниями 2,4. Собы- Событие Я, за вычетом содержащегося в нем пустого слова представляется также выходными сигналами и, w, а собы- событие Я, — выходными сигналами v, w. Состоянием 2 или, что то же самое, выходным сигналом w представлено п е- ресечение событий Я, и Я,. Легко видеть, что при представлении любого мно- множества событий во вполне определенном автомате оказы- оказываются автоматически представленными всевозможные
106 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гя. II пересечения и объединения событий этого множества. Нетрудно видеть также, что будут представ- представлены и все дополнения этих событий (см. § 3). В случае же применения описанного выше алгоритма синтеза окажутся представленными также и пополнения (см. § 3) исходных событий. Действительно, нетрудно видеть, что пополнение со- события, задаваемого любым из исходных регулярных вы- выражений Д(, будет представлено в получаемых в резуль- результате синтеза автоматах А и В множеством всех тех и только тех состояний, которые содержат в своем составе индекс хотя бы одного из основных мест выражения Д(. Поскольку выражения Д,,...,Д в описанном алго- алгоритме синтеза могут представлять любые регулярные события и поскольку события, представленные в конечных автоматах, непременно регулярны (ср. 5.1), то тем самым доказано следующее предложение. 6.3. Дополнение и пополнение любого регулярного собы- события, а также пересечение любого конечного множества регулярных событий являются регулярными событиями. § 7. Усовершенствования основного алгоритма синтеза Описанный выше алгоритм, синтеза конечных автома- автоматов допускает ряд уточнений и изменений, позволяющих упрлцать синтезируемый автомат. Первое уточнение пре- преследует цель сократить количество используемых основ- основных индексов и уменьшить, по возможности, число состоя- состояний в синтезируемом автомате. Уточнение это опирается на использование понятия комплекса регуляр- ных. выражений. Комплексом регулярных выражений К называется любое конечное множество регулярных выражений Д,, ..., Д в одном и том же конечном алфавите (называемом входным алфавитом комплекса), у которых размечены и снабжены индексами все основные места. При этом различные основные места в выражениях Д,, ..., Д могут иметь один и тот же основной индекс. Всякое множество, состоящее из всех основных мест в выражениях Д,, ..., R , которые имеют один и тот же основной индекс к, называется осиов- § 7] УСОВЕРШЕНСТВ ОСНОВНОГО АЛГОРИТМА СИНТЕЗА 107 ным местом комплекса К; индекс к называется основным индексом этого места. Начальные места всех выражений Д,, .... Д всегда снабжаются одинаковым индексом 0 и составляют начальное место комплекса К. Если некоторое основное место а комплекса К состоит из основных мест а,, а2, ..., ak в выражениях Д,, ..., R , составляющих комплекс, то местами, подчиненными месту а в комплексе К, считаются все места в выражениях Д,, ..., Д , подчиненные хотя бы одному из мест a,,..., ak в этих выражениях. Конечными и предосновными местами комплекса считаются, соответ- соответственно, конечные и предосновные места составляющих его выражений. Будем говорить, что основное место а комплекса К х(-следует за пред основным местом р\ если хотя бы одно из составляющих место а основных мест в выражениях Д,, ..., Д х--следует за местом р. Говорят, что слово q входного алфавита связывает основное место а комплекса К с основным местом р того же комплекса, если оно связывает некоторое основное место в одном из выражений Д,, ..., Rp, входящее в место а, с каким-либо основным местом того же самого выражения, входящим в место р. Мы в этом случае будем также гово- говорить, что место р q-следует за местом а. Основные места в данном комплексе К регулярных выражений называются соответственными, если множест- множества слов входного алфавита, связывающих начальное место комплекса с каждым из этих мест, одинаковы. Основные места а,, ..., ak в комплексе К называются подобными, если в комплексе К им подчинены одинаковые множеств л конечных мест и если для любой буквы х входного алфа- алфавита комплекса множества М,, ..., Mk основных мест комплекса, я-следующих за местами а,, ..., ak, одинаковы, либо становятся одинаковыми при замене входящих в них мест а2,..., ak местом а,. Мы будем применять к комплексам регулярных выра- выражений так называемую операцию отождествления мест. Сущность этой операции заключается в том, что некото- некоторому множеству основных мест данного комплекса К, имев- имевших различные основные индексы, приписывается один п тот же индекс к и, следовательно, все основные мес- места в регулярных выражениях комплекса, входившие в
108 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II отождествляемые места комплекса К, составят новое ос- основное место комплекса, имеющее основной индекс к. Правила 1 и 2 основного алгоритма синтеза конечных автоматов представляют собою не что иное, как правила написания некоторого комплекса К регулярных выраже- выражений для заданного множества регулярных событий. В этом комплексе каждое основное место, за исключением начального места, состоит из единственного основного места в выражениях Я,, .... Rp, составляющих комплекс. Таким образом, в комплексе Ко не проведено никакого отождествления мест, за исключением предусмотренного в определении всякого комплекса отождествления началь- начальных мест входящих в комплекс выражений. Все последующие правила (то есть правила 3—6) ос- основного алгоритма синтеза, оперируют с местами и с их индексами в этом комплексе Ко,который мы будем называть нулевым. На практике оказывается возможным, однако, прежде чем переходить к правилам 3—6 алгоритма син- синтеза, применить к нулевому комплексу Ко операцию отож- отождествления мест так, чтобы последующее применение правил 3—6 алгоритма синтеза к новому комплексу при- привело к построению автоматов, представляющих исходные события Я,, .... Rp. Нетрудно показать, что основной алгоритм синтеза конечных автоматов может быть дополнен следующим правилом. Правило 2а. К комплексу Ко заданных регулярных выражений Я,, ..., Rp, полученному по правилам 1—2 ос- основного алгоритма синтеза конечных автоматов, можно применять последовательно, шаг за шагом, операцию отождествления соответственных мест и операцию отожде- отождествления подобных мест. Последующие правила (правила 3—6) алгоритма синтеза применяются не к нулевому комплексу Ко, а к комплексу, в который он превратится после выполнения любого числа таких отождествлений. Следует подчеркнуть, что операцию отождествления мест следует осуществлять именно последовательно, не допуская одновременного (на одном шаге) отождествления и по признаку подобия и по признаку соответствия, ибо после отождествления по одному признаку (например, по признаку соответствия) места, бывшие ранее подоб- 5 7] УСОВЕРШЕНСТВ. ОСНОВНОГО АЛГОРИТМА СИНТЕЗА 109 ными, могут перестать быть таковыми, и наоборот. Что же касается порядка отождествления, то он безразличен: можно начинать отождествление как с соответственных, так и с подобных мест. Покажем теперь, что применение правила 2а не влияет на правильность представления событий в синтезируемом автомате. Действительно, из определения способа пост- построения перехода в синтезируемом автомате (правило 3) и определения соответственных мест непосредственно вытекает, что в каждом состоянии автомата, содержащем индекс какого-либо из основных мест, будут одновре- одновременно присутствовать индексы всех соответственных ему мест. Следовательно, операция отождествления соответ- соответственных мест сводится к тому, что некоторое множество i,v /2v...v/ft основных индексов, одновременно входящих или одновременно не входящих в любое из используемых состояний автомата, заменяется одним индексом г. Такая операция не меняет, очевидно, ни числа состояний авто- автомата, ни переходов между ними. Она не влияет также и на отметку состояний, в силу принятого нами определения подчинения мест в комплексе; основному месту с индексом / будет подчинено то же самое множество конечных мест выражений Я,, ..., R , что и совокупности основных мест /,, it, .... ik до отождествления. Следовательно, операция отождествления соответственных мест, приводя к экономии основных индексов, не изменяет (с точно- точностью до обозначений состояний) самого синтезируемого автомата. Возможность отождествления подобных мест основана на несколько иных соображениях. Выясним прежде всего, как отражается операция отож- отождествления мест в комплексе на .применение к этому ком- комплексу правил 3—5 основного алгоритма синтеза автомата Мура. Пусть К — некоторый комплекс регулярных выра- выражений Я,, ...,Rp; а,,аг, ...,ak — основные индексы каких- либо его основных мест; у — основной индекс соответст- соответствующего им места в комплексе Кх, полученном в резуль- результате отождествления мест а,, ..., ak в комплексе К. Обозначим через А и Л, автоматы Мура, полученные в ре- результате применения правил 3—5 основного алгоритма синтеза, соответственно к комплексам К и К,
110 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II $7] УСОВЕРШЕНСТВ ОСНОВНОГО АЛГОРИТМА СИНТЕЗА 111 Из определения операции отождествления и законов подчинения мест в комплексе легко усмотреть способ, которым отмеченная таблица переходов автомата Ах может быть получена из соответствующей таблицы авто- автомата А. Для этой цели достаточно, как это вытекает из правил 4 и 5 алгоритма синтеза, в отмеченной таблице переходов автомата А индексы а,, ..., ak заменить всюду индексом у и произвести слияние тех столбцов, которые после такой замены становятся обозначенными одинаковыми состояниями. Слияние столбцов происх)дит путем образования дизъюнкции соответствующих друг другу (расположенных в одной строке) элементов этих столбцов, а отметки вновь полученного таким образом столбца производятся объединением множеств, отмечав- отмечавших слитые столбцы состояния (общего для всех слитых столбцов). Вообще говоря, подобная операция изменяет пред- представляемые автоматом события. Однако в случае, когда отождествляемые места (с основными индексами а,, ..., ak) подобны друг другу, из определения подобия мест непо- непосредственно вытекает, что сливающиеся в один столбец таблицы переходов автомата А будут одинаковыми и оди- одинаково отмеченными. Как будет показано в § 10, посвященном минимизации абстрактных автоматов, слияние столбцов при таких условиях приводит к появлению автомата, эквивалент- эквивалентного исходному, а следовательно,-и представляющего те же самые события. Таким образом, операция отождествления подобных мест в алгоритме синтеза автоматов оказывается действи- действительно возможной. Следует подчеркнуть, что в отличие от операции отождествления соответственных мест эта операция, как правило, приводит к уменьшению числа состояний в синтезируемом автомате. При практическом применении правила 2а необязатель- необязательно, разумеется, проводить все возможные отождествле- отождествления; можно ограничиться лишь некоторыми из них. Воз- Возникающие таким образом алгоритмы (с тем или иным числом предварительных отождествлений мест) мы будем называть усовершенствованными алгоритмами синтеза конечных (вполне определенных) автоматов. В случае, когда стоит задача синтеза лишь (конечного) автомата Мили (а не автоматов Мура и Мили), то в общий алгоритм синтеза могут быть внесены еще некоторые изменения, приводящие, вообще говоря, к новому умень- уменьшению числ \ состояний синтезируемого автомата. П е д! всего в случае синтеза автоматов 1Уили нет необходимости отмечлть ее стояния автомата в соответ- соответствии с правилом 5 и затем применять правило 6; последо- последовательное применение правил 5 и 6 можно заменить при- применением одного правила 5а, относящегося к построению таблицы выходов синтезируемого автомата Мили. Правило 5а. Таблица выходов автомата Мили имеет те же обозначения строк и столбцов, что и пост- построенная по правилу 4 таблица его переходов. На пересече- пересечении произвольной строки, обозначенной буквой входного алфавита xt, и произвольного столбца, обозначенного со- состоянием i,vi2 v...Wft (A^l), в таблице выходов ставится выходной сигнал (Rj:, ...,i?;,,), состоящий из сихво ов всех тех и только тех регулярных выражений Rx, ..., Rp, ко- конечные места которых хгследуют хотя бы ;а одним 13 мест г,, г,, ...,ik. В столбце, обоенгченном пустым со- состоянием, во всех строках ставится пустой выходной сигнал ( ). Лллко видеть, что применение правила 5а действитель- действительно эквивалентно последовательному применению двух правил 5 и 6 основного алгоритма синтеза. Алгоритм, состоящий из правил 1, 2, 3, 4 и 5а, мы будем называть особым алгоритмом синтеза конечных автоматов Мили. Нетрудно понять, что этот алгоритм допускает отож- отождествление соответственных мест в нулевом комплексе исходных регулярных выражений, полученном по прави- правилам 1 и 2 основного алгоритма. Что же касается подобных мест, то,— ввиду отсутствия в рассматриваемом случае отметок состояний,— их необходимо заменить так назы- называемыми квазиподобными местами, определяемыми сле- следующим образом: 7.1. Основные места а,, ..., ak любого заданного ком- комплекса регулярных выражений называются квазиподоб- квазиподобными, если для любой буквы х входного алфавита комплекса К множества конечных мест комплекса, х-следующих за основными местами а,, ..., ak, совпадают между собой,
112 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл Г. а множества М,, ..., Мк основных мест комплекса, х-следующих за местами а,, ..., ak, либо одинаковы, либо становятся одинаковыми после замены входящих в множест- множества Мv ..., Mk мест аг, ..., ak местом а,. Рассмотрим комплекс К регулярных выражений и комплекс Kv полученный из него в результате отождест- отождествления подобных месте индексами а,, ...,аАи присваивания получившемуся в результате отождествления мест основ- основному месту индекса а,. Пусть А и Л, — автоматы Мили, построенные в результате применения правил 3, 4, 5а к комплексам К и К1. Из правил 3,4 и 5а вытекает, что таблица переходов автомата К1 получается в результате дизъюнкции столбцов таблицы переходов автомата К, обозначающихся одинаковыми (после замены индексов а,, ..., ak индексом а,) состояниями. Аналогичное явление происходит и в таблице выходов. Из определения же квазиподобных мест вытекает, что объединяемые таким образом столбцы как в таблице переходов, так и в таблице выходов оказываются одинаковыми. Как показано в § 10, посвященном минимизации автоматов, слияние столбцов при таких условиях не меняет отображения, индуцируе- индуцируемого автоматом, а следовательно, не меняет и представляе- представляемых им событий. Следовательно, можно сформулировать следующее правило отождествления мест в случае син- синтеза автоматов Мили. Правило 26. При синтезе автоматов Мили к ком- комплексу Ко, полученному по правилам 1—2 основного алго- алгоритма синтеза, можно применять последовательно, шаг за шагом, но в любом порядке операции отождествления соответственных и квазиподобных мест. К полученному в результате таких отождествлений комплексу приме- применяются правила 3, 4, 5а особого алгоритма синтеза конеч- конечных автоматов Мили. Заметим, что согласно приведенному выше определе- определению, квазиподобными являются все тупиковые места комплекса, т. е. такие его основные места, которые не связаны ни одной буквой входного алфавита ни с одним основным местом комплекса. Если в синтезированном автомате Мили А имеются состояния, образуемые основ- основными индексами лишь одних тупиковых мест, то в таблице переходов автомата А столбцы, обозначенные всеми §7] УСОВЕРШЕНСТВ. ОСНОВНОГО АЛГОРИТМА СИНТЕЗА 113 такими состояниями, будут состоять из одних лишь символов пустого состояния *, а соответствующие столбцы в таблице выходов — из одних лишь символов пустого выходного сигнала. Как уже отмечалось, такие столбцы могут быть отождествлены без нарушения правильности представления событий. Ясно также, что при вычеркива- вычеркивании индексов тупиковых мест из других состояний авто- автомата состояниям, полученным в результате такого вычер- вычеркивания, будут соответствовать, в силу правил 4 и 5а, те же самые столбцы в таблице переходов и в таблице выходов, что и до вычеркивания индексов. Тем самым доказано, что при синтезе автоматов Мили наряду с правилом 26 может применяться также следую- следующее правило. Правило 2в. При синтезе автоматов Мили тупи- тупиковым основным местам в комплексе регулярных выражений можно не присваивать никаких основных индексов. Алгоритмы синтеза, использующие правила 1, 2, 26, 2в, 3, 4, 5а, мы будем называть усовершенствованными особыми алгоритмами синтеза конечных автоматов Мили. Мы имеем дело здесь не с одним алгоритмом, а с целым комплексом алгоритмов, поскольку правила 26 и 2в сфор- сформулированы так, что соответствующие им упрощения могут и не проводиться или проводиться лишь частично. Отметим также, что усовершенствованные алгоритмы синтеза автоматов Мили, в отличие от основного алгоритма, уже не приводят к автоматам, в которых заданные события представлены множествами состояний, а лишь к таким автоматам, в которых эти события представ- представлены множествами выходных сигналов. Продемонстрируем теперь работу усовершенствован- усовершенствованных алгоритмов синтеза на примере. Пример 1. Найти конечные автоматы Мура и Мили, представляющие регулярные события в алфавите (х, у), заданные следующими регулярными выражениями: Решение. 1) Выпишем нулево комплекс Kt задан- заданных регулярных выражений: R=\x\{y\\, P=\x\ ¦ \xl 0 1 \х\. 3 4 8 В. М Глушков
114 АБСТРАКТНАЯ ТВОРИЯ АВТОМАТОВ [Гл. II В этом комплексе места 1 и 3 являются соответствен- соответственными между собой, места 1 и 2 — подобными, а место 4 — тупиковым. Проведем последовательные отождествления мест в соответствии с правилом 2а. Отождествляя сначала соответственные места, придем к комплексу: Р=\х\х\. \ 0 \х\. 14 После такого отождествления места 1 и 2 перестают быть подобными (за местом 1 z-следует место 4, а за местом 2 — нет). Дальнейшие отождествления по правилу 2а невозможны. Применяя теперь аравило 3, мы получим размечен- размеченный комплекс: П= \х\{ \w Р= \x\x\. ninr По правилам 4 и 5 получаем отмеченную таблицу пере- переходов автомата Мура 11.13. Таблица II. 13 Таблица II. 14 X У <> 0 1 * <*> 1 4 2 (Л) 2 * 2 (Р) 4 * * * * w 1 2 5 и 2 4 3 U 3 5 3 V 4 5 5 w 5 5 5 После переобозначений: 0—. 1х), 1 — 2, 2 (Л)—и, (/>) ¦3, 4—4, *- ¦5, ') Стрелка употребляется в качестве знака переобозначения. Например, 0->-1 означает, что вместо обозначения 0 в отмеченной таблице переходов II. 13 берется обозначение 1. §7] УСОВЕРШЕНСТВ. ОСНОВНОГО АЛГОРИТМА СИНТЕЗА 115 .мы получаем отмеченную таблицу переходов автомата Мура 11.14. Событие R представлено в этом автомате выходным сигналом и, а событие Р — выходным сигналом г;. Применяя правило 6, мы получаем таблицы переходов и выходов автомата Мили 11.15 и 11.16. Таблица II. 15 Таблица II. 16 X У 1 2 5 2 4 3 3 5 3 4 5 5 5 5 5 X У 1 и W 2 V и 3 W и 4 W W 5 W W 2) Если бы мы вначале отождествили нб соответствен- соответственные, а подобные места, то пришли бы к комплексу: "*• После такого отождествления места 1 и 3 перестают быть соответственными, поскольку начальное место свя- связывается с местом 3 лишь однобуквенным словом х, а с местом 1 — множеством слов вида х{у). Отмеченная таблица автомата Мура С, построенная по этому комплексу, будет иметь вид (см. табл. 11.17): Таблица II. 17 X У о 0 1 v3 * (R) 1 Не 1 (R) 1V3 4 1 (Р) 4 Не Не ¦о- * * * Нетрудно показать, что автоматы Л и С изоморфны, так что в рассматриваемом случае отождествление по- подобных мест не привело к уменьшению числа состояний.
116 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. 11 3) Рассмотрим, наконец, как в этом примере работает упрощенный особый алгоритм синтеза автоматов Мили. Применяя правила 26 и 2в, мы после отождествления соответственных мест получим следующий комплекс: Применяя правила 3 и 4, мы находим таблицу перехо- переходов автомата Мили D (табл. 11.18). Применение прави- правила 5а дает таблицу выходов 11.19. Таблица П. 18 Таблица II. 19 X У 0 1 * 1 * 2 2 * 2 * * * X У 0 О О 1 (Р) W 2 О (К) * О О У автомата D — лишь четыре состояния, в то время как у ранее синтезированных автоматов было пять со- состояний. При построении всех описанных до сих пор алгоритмов мы ставили своей задачей получать вполне определенные автоматы. Можно, однако, достичь дальнейшего упро- упрощения синтезируемых автоматов, если считать их не вполне определенными, а частичными автома- автоматами. Для этой цели необходимо условиться относи- относительно того, какие слова при синтезе автоматов следует считать допустимыми, а какие запрещен- запрещенными. Будем сначала рассматривать произвольный автомат Мура А. Естественно назвать неопределенными все те состояния автомата А, в которые автомат может перейти (отправляясь от начального состояния) только под дейст- действием запрещенных слов. Это название связано с тем, что автомат А не изменит, как легко видеть, своих реакций на допустимые слова, если его неопределенные состояния отождествить с любыми другими состояниями автомата. Можно поэтому не определять переходов в автомате, § 7] УСОВВРШЕНСТВ. ОСНОВНОГО АЛГОРИТМА СИНТЕЗА 117 переводящих его в неопределенные состояния. Поскольку после этого указанные состояния делаются недостижимы- недостижимыми, их можно просто напросто исключить из автомата (см. § 1). Если после такого исключения возникнут новые недостижимые состояния, их также можно исключить. В силу принятого нами соглашения, мы можем всегда относить пустое слово к числу запрещенных слов. Тогда начальное состояние автомата также может оказаться неопределенным (это, в частности, будет во всех случаях, когда начальное состояние не встречается среди элементов таблицы переходов). В этом случае все переходы в авто- автомате, переводящие его в начальное состояние, можно, как и в вышеупомянутом случае, считать неопределенными, однако исключать начальное состояние из числа состояний автомата, разумеется, нельзя. Все сказанное можно сформулировать в виде следую- следующего правила. Правило 56. По заданной области запрета или области допустимых слов автсм та Мура А находятся неопределенные состояния автомата. Все вхождения неопределенных состояний в отмеченную таблицу пере- переходов автомата А заменяются черточками, а обозначенные этими состояниями столбцы исключаются из таблицы. Если к числу неопределенных относится начальное состоя- состояние автомата, то обозначенный им (начальный) столбец сохраняется в таблице, но отметка начального состояния делается неопределенной. В случае возникновения недости- недостижимых состояний обозначенные ими столбцы также вы- вычеркиваются. Это правило может сочетаться с любым из описанных алгоритмов, включающих в себя в качестве заключитель- заключительного или промежуточного этапа синтез конечного автомата Мура. Таким образом, могут быть получены алгоритмы, заключающиеся в последовательном применении правил 1,2 Bа), 3, 4, 5 E6), (бI). Если требуется синтезировать только автомат Мура, то можно исключить правило 6, если ставится задача синтеза какого-нибудь (а не обя- ') Скобки служат для выделения тех правил, которые могут как применяться, так и не применяться в зависимости от цели, которая ставится перед алгоритмом.
116 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. 11 3) Рассмотрим, наконец, как в этом примере работает упрощенный особый алгоритм синтеза автоматов Мили. Применяя правила 26 и 2в, мы после отождествления соответственных мест получим следующий комплекс: Применяя правила 3 и 4, мы находим таблицу перехо- переходов автомата Мили D (табл. 11.18). Применение прави- правила 5а дает таблицу выходов 11.19. Таблица И. 18 Таблица II. 19 X У 0 1 * 1 * 2 2 * 2 * * * X У 0 О О 1 (Р) W 2 О (К) * О О У автомата D — лишь четыре состояния, в то время как у ранее синтезированных автоматов было пять со- состояний. При построении всех описанных до сих пор алгоритмов мы ставили своей задачей получать вполне определенные автоматы. Можно, однако, достичь дальнейшего упро- упрощения синтезируемых автоматов, если считать их не вполне определенными, а частичными автома- автоматами. Для этой цели необходимо условиться относи- относительно того, какие слова при синтезе автоматов следует считать допустимыми, а какие запрещен- запрещенными. Будем сначала рассматривать произвольный автомат Мура А. Естественно назвать неопределенными все те состояния автомата А, в которые автомат может перейти (отправляясь от начального состояния) только под дейст- действием запрещенных слов. Это название связано с тем, что автомат А не изменит, как легко видеть, своих реакций на допустимые слова, если его неопределенные состояния отождествить с любыми другими состояниями автомата. Можно поэтому не определять переходов в автомате, § 7] УСОВВРШЕНСТВ. ОСНОВНОГО АЛГОРИТМА СИНТЕЗА 117 переводящих его в неопределенные состояния. Поскольку после этого указанные состояния делаются недостижимы- недостижимыми, их можно просто напросто исключить из автомата (см. § 1). Если после такого исключения возникнут новые недостижимые состояния, их также можно исключить. В силу принятого нами соглашения, мы можем всегда относить пустое слово к числу запрещенных слов. Тогда начальное состояние автомата также может оказаться неопределенным (это, в частности, будет во всех случаях, когда начальное состояние не встречается среди элементов таблицы переходов). В этом случае все переходы в авто- автомате, переводящие его в начальное состояние, можно, как и в вышеупомянутом случае, считать неопределенными, однако исключать начальное состояние из числа состояний автомата, разумеется, нельзя. Все сказанное можно сформулировать в виде следую- следующего правила. Правило 56. По заданной области запрета или области допустимых слов автсм та Мура А находятся неопределенные состояния автомата. Все вхождения неопределенных состояний в отмеченную таблицу пере- переходов автомата А заменяются черточками, а обозначенные этими состояниями столбцы исключаются из таблицы. Если к числу неопределенных относится начальное состоя- состояние автомата, то обозначенный им (начальный) столбец сохраняется в таблице, но отметка начального состояния делается неопределенной. В случае возникновения недости- недостижимых состояний обозначенные ими столбцы также вы- вычеркиваются. Это правило может сочетаться с любым из описанных алгоритмов, включающих в себя в качестве заключитель- заключительного или промежуточного этапа синтез конечного автомата Мура. Таким образом, могут быть получены алгоритмы, заключающиеся в последовательном применении правил 1,2 Bа), 3, 4, 5 E6), F)'). Если требуется синтезировать только автомат Мура, то можно исключить правило 6, если ставится задача синтеза какого-нибудь (а не обя- ') Скобки служат для выделения тех правил, которые могут как применяться, так и не применяться в зависимости от цели, которая ставится перед алгоритмом.
120 АБСТРАКТНАЯ ТЕОРИ Я АВТОМАТОВ [Гл. II быми алгоритмами синтеза автоматов Мили. Возникающие таким образом алгоритмы состоят из правил 1, 2, B6), Bв), 3, 4, 5а Fа) (выполнение правил, номера которых заключены в скобки, не обязательно). Условимся, что добавление правила 6а в описанные выше особые алго- алгоритмы синтеза автоматов Мили (обычный и упрощенные) не меняет их названий. В случае необходимости уточняют, синтез какого автомата (частичного или вполне опреде- определенного) имеется в виду. Рассмотрим теперь основные способы задания множеств допустимых слов и областей запрета, которые встречаются на практике. Для каждого из этих способов примени- применительно к автоматам, полученным с помощью любого из описанных выше алгоритмов синтеза вполне определенных автоматов, укажем те выходные сигналы и состояния, которые будут при этом неопределенными. Правильность этих указаний легко проверить, анализируя соответствую- соответствующие правила описанных алгоритмов синтеза. 1-й способ. Допустимыми являются все слова, входящие хотя бы в одно из заданных событий Л, Rp, и произвольные начальные отрезки таких слов. Все осталь- остальные слова составляют область запрета. Неопределенным в этом случае (как для автоматов Мура, так и для автоматов Мили) всегда является пустое состояние (то есть состоящее из пустого множества основных индексов). Начальное состояние является не- неопределенным в случае, когда оно не встречается среди элементов таблицы переходов автомата. 2-й способ. Допустимым -^является всякое слово, содержащееся в одном и только в одном (зависящем от вы- выбора слова) из заданных регулярных событий Л, Rp, причем такое, что всякий его непустой начальный отрезок также содержится точно в одном (зависящем от выбора этого отрезка) из заданных событий-Л,, ..., Л (необяза- (необязательно, чтобы слово и его начальные отрезки вхооили в одно и то же событие). Все остальные слова составляют область запрета. Неопределенными в этом случае являются все выходные сигналы, состоящие из двух и более событий Л,, ..., Rpt а также пустой выходной сигнал. Неопределенными состоя- состояниями являются для автоматов Мура все состояния, 7] УСОВЕРШЕНСТВ. ОСНОВНОГО АЛГОРИТМА СИНТЕЗА 121 отмеченные неопределенными выходными сигналами (в частности, пустое состояние), и начальное состояние, если оно не входит в качестве одного из элементов в таблицу переходов. В случае автоматов Мили неопределенным будет пустое состояние. Остальные неопределенные состоя- состояния могут быть цолучены с помощью предложения 7.2. 3-й способ. Допустимым является всякое слово, обладающее тем свойством, что как оно само, так и любой из^ его непустых начальных отрезков содержатся не более чем в одном из заданных регулярных событий Л,, ..., Л . Все остальные слова составляют область запрета. Р Неопределенными в этом случае будут те же выходные сигналы и состояния, что и в предыдущем случае, за исключением пустого состояния и пустого выходного сигнала. 4-й способ. Область запрета задана явно — в виде одного из регулярных выражений S, входящих в задан- заданное множество регулярных выражений. Неопределенными в этом случае будут все выходные сигналы, в состав которых входит символ области запрета S. Неопределенные состояния характеризуются с помощью предложения 7.2. В частности, для автоматов Мура не- неопределенными будут все состояния, отмеченные неопре- неопределенными выходными сигналами. Начальное состояние является неопределенным, если оно не входит в число элементов таблицы переходов автомата. Заметим, что неопределенность начального состояния в случае, когда оно не входит в число элементов таблицы переходов автомата, имеет место при любой области запрета. В заключение параграфа рассмотрим примеры приме- применения упрощенных алгоритмов синтеза для случая синтеза частичных автоматов. Пример 2. События заданы регулярными выраже- выражениями Р={х\{у\, Q=\x\(xvy). Построить представляю- представляющие эти события частичные автоматы Мура и Мили при условии, что область запрета задана первым из ука- указанных выше способов. Решение. Отождествляя сначала соответственные, а потом подобные места, мы приходим к следующему (раз- (размеченному) комплексу. (Заметим, что отождествление
122 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ ?Гл. II подобных мест 0 и 1 вдесь не производится.) ц I1!1 0 i "о 1 2 0 1 2 f ( 0 1 t "о-| г ill У\) 3 о 1_ 3 Правила 4 и 5 приводят к отмеченной таблице перехо- переходов автомата Мура (табл. 11.20). Таблица II. 20 X У Р 0 1 v3 2v3 (P. Q) Iv3 1 v3 2v3 (P. Q) 2v3 * 2 p 2 * 2 О • • • Неопределенными являются здесь пустое и начальное состояние. Применяя правило 56 и вводя переобозначения 0 -1, lv3-<-2, 2v3-3, 2^4, P-<-u, {P, Q)->-v, мы приходим к следующей отмеченной таблице переходов искомого частичного автомата Мура (табл. 11.21): Таблица II. 21 X У - 1 2 3 V 2 2 3 V 3 7 и 4 4 Применяя правило 6 основного алгоритма, получим автомат Мили С, заданный своими таблицами переходов и выходов (табл. 11.22 и 11.23). | 7] УСОВЕРШЕНСТВ. ОСНОВНОГО АЛГОРИТМА СИНТВЗА 123 Таблица II. 22 Таблица II. 23 X У 1 2 3 2 2 3 3 4 4 4 X У 1 V V 2 V V 3 и 4 и Пример 3. Найти автомат Мили, представляющий событие R=xv{y) у при условии, что область запрета задана регулярным выражением S = {xy}. Решение. Размечая комплекс в соответствии с пра- правилами 2, 2в и 3, мы получим: у s= о 3 По правилам 4 и 5а построим таблицы переходов и вы- выходов 11.24 и 11.25. X У Таблица II. 0 2 1 1 * 1 2 * 3 3 2 * 24 * * * X У Табд 0 R Н 1 О н ица II. 2 О S 3 О О * о О Запрещенным в рассматриваемом случае будет только выходной сигнал S. Применим правило 6а. Заменяя чер- черточкой сигнал S в таблице выходов и ставя черточку в со- соответствующем месте таблицы переходов, приходим к табл. 11.26 и 11.27. Теперь, как легко видеть, состояние 3 сделалось недо- недостижимым, и его можно, следовательно, исключить. Производя переобозначения 0 -<¦ 1,1 ->¦ 2, 2 -<¦ 3, *-<¦ 4, R ->¦ и, ( )-»•», мы получаем окончательные таблицы переходов A1.28) и выходов A1.29) искомого автомата Мили D.
124 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Таблица II. 26 Таблица II. 27 Таблица II. 28 X У 0 2 1 1 * 1 2 * 3 2 * * * * X У 0 R R 1 О R 2 ( ) 3 О О * О о Таблица II. 29 X У 1 3 2 2 4 2 3 4 — 4 4 4 X У 1 и и 2 г> и 3 V —* 4 г> V § 8. Синтез автоматов по индуцируемым ими отображениям Одчой из наиболез важных задач теории абстрактных автоматов является здича синтезд конечных автоматов по реализуемым и«и алфпвитныч отображениям. Используя полученные в предай v-щих п^ртрафах результаты, не- нетрудно указать общай мете д решения этой задачи. 8. 1. Первый этап решения указанной за- задачи состоит в том, что исходное (вообще говоря, частич- частичное) алфавитное отображение <р записывается в виде таблицы соответствия') и приводится к авто- автоматному виду с помощью применения опера- операции выравнивания длин слов (см. § 2). При этом обычно не прибегают сразу к стандартной опе- операции выравнивания длин слов, а производят ряд после- последовательных попыток приведения отображения к автомат- автоматному виду путем приписывания по возможности меньшего числа пустых букв, прибегая после каждой попытки к про- ') Общие методы конструктивного задания бесконечных таб- таблиц соответствия в книге специально не разбираются. Простой пример такого задания рассмотрен в конце этого параграфа. § 8] СИНТЕЗ АВТОМАТ. ПО ИНДУЦИРУЕМЫМ ИМИ ОТОБРАЖ. 125 верке выполнимости условий автоматности (см. § 2). Результатом первого этапа является сокращен- сокращенная таблица соответствия автоматного отображения \|), в которое превратилось исходное отображение <р в резуль- результате применения операции выравнивания длин слов. Второй этап решения состоит в нахожде- нахождении канонического множества собы- событий, соответствующего отображению \|) (см. § 2). Число событий канонического множества равно, как известно, числу букв выходного алфавита SS=(j/,, ..., ут) отобра- отображения г|). Событие <S(y,) этого множества, соответствующее выходной букве уг строится следующим образом. Про- Просматривая сокращенную таблицу соответствия отображе- отображения i|>, выделяют все начальные отрезки выходных слов, кончающиеся буквой ус. Начальные отрезки входных слов отображения, соответствующие выделенные отрезкам, и составят событие ?(!/,) (/=1, ..., т). Результатом второго этапа является каноническое множество событий »%,-), ..., S{ym) отображения \|>. По- Попутно на этом этапе производится контроль правильности выполнения операций первого этапа: легко видеть (см. § 2), что отображение \|) тогда и только тогда является автома- автоматным, когда найденные события попарно не пересекаются. Третий этап решения состоит в нахожде- нахождении возможно более простых регулярных выражений для найденных на предыдущем этапе событий »%,), .... S(ym). При этом пользуются тождественными преобразованиями в алгебре событий, а также следующим приемом расшире- расширения событий: при подыскании для события S(yi) наиболее простого регулярного выражения можно добавлять к нему произвольное множество запрещенных слов, т. е. таких слов, которые не содержатся ни в одном из исходных собы- событий Siy^) 3(Ут)- Для упрощения последующих рас- рассмотрений будем обозначать найденное таким образом регулярное выражение для события <S(j/() просто через yi (t=l т). Заметим, что благодаря применению опе- операции расширения событий, события, представляемые регулярными выражениями ух, ..., ут, могут пересекаться между собой. Результатом третьего этапа является множество М всех найденных регулярных выражений yt уа.
126 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Четвертый этап решения состоит в син- синтезе конечного автомата Мили или Мура, представляющего события i?j, ..., Rm, задаваемые регулярными выраже- выражениями у, ,..., ут, посредством множеств своих выходных сигналов. Процесс синтеза может производиться по двум основ- основным вариантам. Первый вариант (с естественной об- областью запрета). В процессе синтеза считаются •запрещенными, во-первых, все те слова, у которых хотя бы один непустой начальный отрезок (включая само слово) не содержится ни в одном из событий Я, Rm, и, во-вто- во-вторых, все те слова, у которых хотя бы один непустой на- начальный отрезок (включая само слово) содержится одно- одновременно в нескольких (более, чем в одном) событиях /?,, ..., Rm. Легко видеть, что этот способ задания области запрета совпадает со вторым из способов, рассмотренных в предыдущем параграфе. Производится синтез конечного частичного автомата Мура или Мили, представляющего события i?,, ..., Rm с учетом введенной области запрета. При этом можно применять любой из описанных в двух предыдущих параграфах алгоритмов синтеза. Выходные сигналы (после исключения неопределенных выходных сигналов) в построенных автоматах будут совпадать с бук- буквами у,, ..., ут выходного алфавита отображения г|з, а сами автоматй будут индуцировать частичное отображение 1рж, п родолжающее частичное отображение г|з с сохра- сохранением входного и выходного алфавитов отображения г|з. Второй вариант (с исключением од- одного из событий). Одно из заданных регулярных выражений (обычно наиболее сложное) исключается из заданного множества у,, ..., ут регулярных выражений. Пусть этим выражением будет ух. К оставшимся выраже- выражениям уг, ..., ут применяется любой из описанных в § б и § 7 алгоритмов синтеза частичных автоматов Мили или Мура. При этом запрещенными считаются все те слова, у которых хотя бы один непустой начальный отрезок (включая само слово) содержится одновременно в несколь- нескольких (более, чем в одном) событиях i?2, .... Rm. Выходные сигналы, содержащие более одного символа у%, ..., ут- будут при этом неопределенными. Из остающихся выход, | 8] СИНТЕЗ АВТОМАТ. ПО ИНДУЦИРУЕМЫМ ИМИ ОТОБРАЖ. 127 ных сигналов yt, ..., ут, ( ) пустой выходной сигнал ( ) заменяется выходным сигналом у,, после чего синтезиро- синтезированные автоматы будут индуцировать частичное отобра- отображение ^|>2, продолжающее исходное частичное отображе- отображение *|> с сохранением его входного и выходного алфавита. Обоснование описанного метода решения задачи син- синтеза автомата по индуцируемому им отображению выте- вытекает из результатов второго параграфа настоящей главы и из сущности описанных в предыдущих параграфах ал- алгоритмов синтеза автоматов по представляемым ими собы- событиям. Некоторых пояснений заслуживает лишь способ образования областей запрета. Из способа построения операции расширения событий на третьем этапе решения ясно, что любые нетривиальные пересечения расширенных событий Я, Rm, а такжедо- полнениеих объединения состоят из запрещенных слов. Из условия автоматности множества событий <S(j/,) 3(Ут) вытекает, что всякое слово, хотя бы один непустой началь- начальный отрезок которого запрещен, само будет запрещенным. Теперь видно, что образование естественной области за- запрета в первом варианте синтеза не нарушает индуцируе- индуцируемого синтезируемым автоматом отображения на множестве допустимых слов отображения г|з. Расширение же области допустимых слов в автомате по сравнению с областью допустимых слов в исходном отображении г|з может про- произойти за счет запрещенных слов, добавленных в процессе расширения событий Sty,), ••-,»S'(yra) только к одному из этих событий. Из способа образования расширений событий на третьем этапе решения непосредственно вытекает, что событие SiyJ содержится в дополнении объединения расширенных событий i?,, ..., Rm. Таким образом, во вполне опреде- определенном автомате А, представляющем события Rt, ..., Rm, событие ?(!/,), быть может расширенное за c4it некото- некоторого множества запрещенных слов, представляется выход- выходным сигналом, состоящим из пустого множества выраже- выражений yt, ..., ут. Заменяя этот пустой выходной сигнал бук- буквой ух, мы придем, очевидно, к автомату, индуцирующему отображение, совпадающее с отображениемг|з на множестве допустимых слов отображения г|з. Точно таким же образом, как и в первом варианте, нетрудно показать, что образо-
128 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ 1Гл. I 8) СИНТЕЗ АВТОМАТ. ПО ИНДУЦИРУЕМЫМ ИМИ ОТОБРАЖ. 129 вание области запрета, описанной во втором варианте синтеза, не нарушает этого совпадения (способ задания области запрета совпадает в этом случае с третьим спосо- способом § 7, см. стр. 121). Тем самым предложенный метод решения задачи синтеза автомата по индуцируемому им отображению пол- полностью обоснован. Попутно доказано следующее предло- предложение. Если в описанном методе пользоваться первым вариан- вариантом синтеза и не прибегать к расширению исходных собы- событий 5(у,), ..., S(ym), то области определения исходного ото- отображения и отображения, индуцируемого синтезирован- синтезированным автоматом, совпадают при условии, что возможности введения неопределенности в функции переходов и выходов, предоставляемые правилами 56 и 6а предыдущего пара- параграфа, использованы полностью. Заметим, однако, что разумное использование возмож- возможностей, заключающихся в операции расширения событий (с целью получения наипростейших регулярных выраже- выражений), существенно упрощает процесс синтеза и особенно последующую минимизацию автоматов. Это обстоятельство обусловливает большие преимущества описанного метода синтеза даже в том случае, когда существуют более прямые методы синтеза, то есть в случае конечности области опре- определения исходного автоматного отображения <р (см. § 2). 8.2. Сделаем еще одно замечание о дальнейших воз- возможностях упрощения синтезируемого автомата в соответ- соответствии со вторым вариантом синтеза. В ряде случаев при использовании этого варианта можно относительно просто произвести дифференциацию пустых выходных сигналов, отождествляя только некоторую часть из них в таблице выходов автомата (обычной или сдвинутой) с выходным сигналом 1/, и производя замену остальных таких сигна- сигналов черточками. Так бывает, например, в том случае, когда все слова исключаемого события S(yt) совпадают с началь- начальными отрезками слов остающихся событий S(yt), ..., S(ym). Ясно, что в этом случае пустые выходные сигналы, отно- относящиеся к пустому состоянию автомата, не будут пред- представлять слов события S(yt), и их можно поэтому считать неопределенными. Неопределенным будет в этом случае и пустое состояние. Легко видеть, что описанное уточнение второго ва- варианта сводится к тому, что исключаемое событие S(yx) расширяется лишь до некоторой части дополнения объеди- объединения остальных событий. Рассмотрим теперь примеры синтеза автоматов по ин- индуцируемым ими отображениям. Пример 1. Найти конечный автомат Мили, инду- индуцирующий отображение <р, заданное сокращенной табли- таблицей соответствия: ух—*uv хх., .х—*vuu...u (и = 1,2,...). п рае (п- 1) раз Решение. Легко проверить, что заданное отобра- отображение — автоматное. Поэтому можно начать решение сразу со второго этапа. Каноническое множество событий отображения <р состоит из двух событий: S (и) = у v {х\ хх и S(v)=x у ух. Приведенные регулярные выражения являются доста- достаточно простыми, в силу чего их минимизацию (третий этап решения) можно опустить. На четвертом этапе применим первый вариант синтеза. Разметка выражений (в соответствии с правилами 2, 26, 2в) дает: ) х\х), 2 y[x)- 0 0 1 \1\\1 По правилам 4 и 5а находим таблицы переходов и выходов 11.30 и 11.31. Таблица 11.30 Таблица 11.31 X У 0 1 v2 4 1 v 2 1 v2 * 4 * * * * * X У 0 V и 1 v2 и О 4 V О * о О В М r.iymi.o»
130 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Учитывая, что область запрета задается вторым из способов, описанных в предыдущем параграфе, находим, что неопределенным выходным сигналом является пустой сигнал, а неопределенным состоянием — пустое состоя- состояние. Применяя правило 6а и вводя переобозначения 0-^1, 1у2 -г 2, 4 -¦ 3, получаем таблицы переходов и выходов искомого (частичного) автомата Мили 11.32 и 11.33. X У Таблица 11.32 1 2 3 2 2 3 X У Таблица 11.33 1 V и 2 и 3 V ¦ ¦ Применяя же второй вариант синтеза к выражению v (исключая и), мы получаем таблицу переходов 11.34 и таблицу выходов 11.35. Таблица 11.34 Таблица 11.35 X У 0 * 4 ' 4 * * * * * X У 0 V О 4 V о * о О Неопределенных выходных сигналов и неопределенных состояний здесь нет. Вводя переобозначения 0 -<-1,* -». 2, 4-^3, мы получаем таблицы переходов и выходов искомого автомата Мили (табл. 11.36 и 11.37). Таблица 11.36 Таблица 11.37 X У 1 2 3 2 2 2 3 2 2 X У 1 V и 2 и и 3 V и S 8] СИНТЕЗ АВТОМАТ. ПО ИНДУЦИРУЕМЫМ ИМИ ОТОБРАЖ. 131 Нетрудно видеть, что автомат В получается из автомата А в результате ликвидации неопределенностей в его таблицах переходов и выходов. Пример 2. Найти конечный автомат Мура, осуще- осуществляющий возведение в квадрат двузначных двоичных чисел. Числа подаются на вход автомата последовательно, разряд за разрядом, младшими разрядами вперед. Так же осуществляется выдача результата. Решение. Поскольку результат возведения в квад- квадрат двузначного числа может быть четырехзначным, то в первоначально заданной таблице соответствия входные и выходные слова имеют различную длину. Используя прием выравнивания длин слов, добавим к входным сло- словам справа по две пустых буквы. В качестве пустой буквы можно в рассматриваемом случае выбрать цифру 0, по- поскольку добавление нуля в старшие разряды входных слов позволяет однозначно восстановить их первоначальный вид. После этого добавления мы получаем автоматное ото- отображение ф, заданное следующей сокращенной таблицей соответствия: 0000 1000 0100 1100 -+0000 —^1000 —-0010. —.-1001. Каноническое множество событий для отображения ф имеет вид 1S'@)=0v00v000v0000vl0vl00vl000v01v0100v vllvllO, S(l) = lv010vll00. Первое из найденных событий можно представить более простым регулярным выражением, записывая вместо пер- первых четырех членов член {0}, а вместо трех следующих — член 10{0}. Однако мы поступим проще, применив второй вариант синтеза с исключением события S{0). Что касается второго события, то мы будем иметь для него следующее регулярное выражение: l=(lV010vll0O).
132 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Произведем разметку мест в этом выражении, чтобы найти в нем два соответственных и два подобных места: |( l|v|Ojll O|v О 1 6 По полученному выражению находим отмеченную таб- таблицу переходов автомата Мура А (табл. 11.38). 0 1 - 0 2 1 l 1 * 4 <> 2 со* о 3 6 * Таблица II <> 4 5 * 5 6 * 1 6 * .38 <> * * * В соответствии с правилами второго варианта синтеза в этой таблице следует заменить пустой выходной сигнал ( ) выходным сигналом 0. Производя затем переобозна- переобозначения пустого состояния (*->-7), мы приходим к оконча- окончательному виду отмеченной таблицы переходов искомого автомата Мура (табл. 11.39). Таблица 11.39 0 1 - 0 2 1 1 1 7 4 0 2 7 3 0 3 6 7 0 4 5 7 0 5 6 7 1 6 7 7 0 7 7 7 Пример 3. Построить автомат Мили, который преобразовывал бы подаваемые на его вход (старшими I 8] СИНТВЗ АВТОМАТ. ПО ИНДУЦИРУЕМЫМ ИМИ ОТОВРАЖ. 133 разрядами вперед) числа от единицы до девяти, записанные в четверичной системе счисления, в приближенные (цело- (целочисленные) значения квадратного корня из них, выдавае- выдаваемые на вход также в четверичной системе счисления (старшими разрядами вперед). Решение. Приближенные значения квадратного корня из чисел от единицы до девяти будут равны соот- соответственно 1, 1, 2, 2, 2, 2, 3, 3, 3. Будучи записаны в чет- четверичной системе счисления, они приводят к следующей таблице соответствия отображения <р, которое требуется реализовать: 01 02 03 10 И 01 01 02 02 02 12 13 20 21 02 03 03 03. Это отображение, будучи естественным образом продол- продолжено на начальные отрезки слов, является, очевидно, автоматным. Находим соответствующее ему каноническое множество событий: 5(l) = 01v02t SB) = 03vWvllvl2, S C) = 13 v 20 v 21. Применим второй вариант синтеза, исключив из рас- рассмотрения событие S@). Оставшиеся события запишем в виде регулярных выражений: 1 = 0A v 2), 2 = @3vl0vllvl2).
134 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ |Гл. II Разметка этих выражений по правилам 2, 26, 2в, 3 приводит к следующему размеченному комплексу: l = |0|( ПГ|1 1 2), 2 = 0 111 01 3 v 1 0 llOv 2 o~ 1 lv 2 10 | 1 2 0 l|3v 2 0 0 3 : ei По правилам 4 и 5а находим таблицы переходов и выходов автомата Мили 11.40 и 11.41. Таблица 11.40 Таблица 11.41 0 1 2 3 0 1 2 3 * 1 * * * * 2 * * * * 3 # * * * # * * * * 0 1 2 3 0 ( } ( ) ( ) ( } l ( } 1 1 2 2 2 2 2 3 3 3 3 ( ) ( } * ( } ( ) ( ) ( > В соответствии с правилами второго варианта синтеза пустой выходной сигнал ( ) должен быть заменен здесь выходным сигналом 0. Однако нетрудно видеть, что мы находимся в условиях применимости замечания 8.2. По- Поэтому мы можем считать неопределенными пустое состоя- состояние автомата и соответствующие ему выходные сигналы. По правилу 6а мы приходим к таблицам переходов и выхо- выходов искомого автомата 11.42 и 11.43. Таблица II. 43 Таблица И. 42 0 1 2 3 0 1 2 3 — 1 — 2 — 3 — 0 1 2 3 0 0 0 0 0 1 0 1 1 2 2 2 2 2 3 3 3 3 0 0 S9] МИНИМИЗАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ 135 Нетрудно заметить, что, не нарушая- индуцируемого автоматом А отображения на множестве допустимых слов исходного отображения <р, можно заменить черточками все вхождения нулевого выходного сигнала во все столбцы таблицы выходов, отличные от начального столбца. § 9. Минимизация абстрактных автоматов Основной задачей настоящего параграфа является раз" работка таких конструктивных приемов, которые позво- позволяли бы по любому данному конечному автомату Мили или Мура А находить эквивалентный ему (или, в случае частичных автоматов, эквивалентно продолжающий его) автомат Мили или соответственно автомат Мура, которые имели бы наименьшее возможное число состояний. Эта задача носит название задачи минимизации конечных автоматов. Напомним, что вполне определенные автоматы называются эквивалентными, если они инду- индуцируют одно и то же отображение, а частичный автомат А называется эквивалентным продолжением частичного автомата В, если индуцируемое им отображе- отображение совпадает с отображением, индуцируемым автоматом В на всех допустимых для автомата В словах. Частично задача минимизации конечных автоматов уже решалась в предыдущих параграфах. Так, в § 1 был опи- описан метод исключения недостижимых состояний. В пара- параграфах, посвященных синтезу конечных автоматов, много внимания уделялось возможности получения автоматов с возможно меньшим числом состояний. Следует подчерк- подчеркнуть, что разработанные выше методы синтеза выгодно отличаются от других возможных методов (например, от прямого метода синтеза, описанного в теореме 2.1 из §2) как раз тем, что они дают возможность в большинстве случаев получать автоматы, достаточно близкие к мини- минимальным. Однако существуют и такие случаи, когда автоматы, синтезированные в соответствии с описанными выше алгоритмами, будут заметно отличаться от минимальных. Необходимо поэтому разработать методы, позволяющие минимизировать утке построенные абстрактные автоматы
13G АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ {Гл. 11 с целью получения автоматов с минимальным числом состояний. Первым (предварительным) этапом всякой минимизации является выделение неопределенных выходных сигналов и состояний и внесение соответствую- соответствующей неопределенности в таблицы переходов и выходов автомата. Внесение неопределенности не должно изменять исходного отображения, которое должен индуцировать рассматриваемый автомат. Вместе с тем желательно, чтобы оно было, по возможности, полным, т. е. не оставляло бы определенным ни одного из тех мест таблицы переходов и выходов автомата, которые могут быть сделаны неопре- неопределенными. Степень полноты внесенной неопределенности определяет в значительной мере и возможности последую- последующей минимизации. Вторым этапом минимизации является исклю- исключение недостижимых состояний, то есть переход к связ- связному автомату (см. § 1). Возможность уменьшения числа состояний на этом этапе, вообще говоря, увеличивается при увеличении степени неопределенности, внесенной в автомат на первом этапе. Третьим этапом, заключающим процесс мини- минимизации, является этап объединения в одно состояние множеств так называемых совместимых состояний. К подробному рассмотрению этого этапа мы сейчас и перейдем. Прежде всего необходимо ввести ряд новых определе- определений. Пусть А — произвольный абстрактный автомат, а — любое его состояние. Будем говорить, что слово р во вход- входном алфавите автомата А применимо к состоянию а, если, подавая это слово на вход автомата А, установленного предварительно в состояние а, мы получим на его выходе вполне определенное слово q в выходном алфавите, имею- имеющее ту же самую длину, что и слово р. Иначе говоря, подавая последовательно на вход автомата буквы слова р, мы ни разу не должны столкнуться со случаем неопределен- неопределенности соответствующего очередной подаваемой букве вы- выходного сигнала. -Слово q будет называться результатом применения слова р к состоянию а. В случае, когда слово р неприменимо к состоянию а, мы будем говорить, что реяулг.тат применения сяола р МИНИМИЗАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ 137 к состоянию а является неопределенным (при этом безраз- безразлично, дают ли некоторые непустые начальные отрезки слова р в применении к состоянию а определенные результаты или нет). Используя понятие о неопределенном результате при- применения слова р к состоянию автомата, мы можем не заботиться о том, чтобы подаваемые на вход автомата слова были обязательно словами во входном алфавите автомата. Мы можем подавать на вход автомата, установленного в то или иное начальное состояние а, слова в любом алфавите, считая, что результат применения слова р к состоянию а не определен всякий раз, когда слово р содержит буквы, не включенные во входной алфавит автомата. Теперь можно дать определение совместимых состояний. 9.1. Состояния <ц,, ..., ain, входящие в один и тот же или в несколько различных автоматов Мили, называются совместимыми, если все определенные {не считая неопре- неопределенных результатов) результаты применения любого слова р к состояниям ait ain будут одними и теми же (зависящими только от слова р, но не от выбора состояния aik из данного множества состояний). В случае автоматов Мура кроме этого условия для совместимости данных со- состояний требуется еще, чтобы, не считая неопределенных отметок, все совместимые состояния имели бы одинаковые отметки. Совместимые состояния во вполне определенных автоматах называются также эквивалентными. Для случая конечных автоматов существует эффектив- эффективный конструктивный прием для нахождения совместимых между собой состояний в любом конечном множестве авто- автоматов одного и того же типа (Мура или Мили). Этот прием основан на использовании понятия i-совместимости со- состояний. Состояния ait ,...,ain автоматов Мили назы- называются i-совместимыми для любого данного t=l,2,..., если, с точностью до неопределенных результатов, результат применения любого слова длины i к состояниям ait ain будет одним и тем же, находясь в зависимости лишь от выбора слова, но не от выбора состояния. Состояния ав- автоматов Мура называются О-совместимыми, если, не считая неопределенных отметок, они одинаково отмечепт.1;
138 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ 1Гл. они называются i-совместимыми для любого fc=l, 2, ..., если они О-совместимы и если, с точностью до неопре- неопределенных результатов, результат применения любого дан- данного слова длины i ко всем рассматриваемым состояниям одинаков. Легко видеть, что справедливо следующее предло- предложение. 9.2. i-совместимые состояния будут также и /-совме- /-совместимыми для любого /<J. Состояния тогда и только тогда совместимы, когда они i-совместимы для всех /=1/ 2 Введем еще следующее важное определение. 9.3. Для любого множества М автоматов одного и того же типа (Мура или Мили) и любого /=0, 1, 2 i-классом данного множества М называется всякое максимальное множество {-совместимых между собой состояний автома- автоматов из М, т. е. такое множество, к которому нельзя добавить ни одного нового состояния без нарушения свойст- свойства i-совместимости. Всякое максимальное множество совместимых между собой состояний автоматов из М будет называться оо -классом или классом совместимости мно- множества М. 1-классы для автоматов Мили и 0-классы для автоматов Мура могут быть найдены непосредственно по их табли- таблицам выходов (обычным или сдвинутым). В случае автома- автоматов Мили в один и тот же 1-класс зачисляются все состоя- состояния, обозначающие совпадающие (с точностью до неопре- неопределенных выходных сигналов) столбцы таблиц выходов. В случае автоматов Мура в один и тот же 0-класс зачис- зачисляются все одинаково отмеченные состояния и все состоя- состояния, отметки которых не определены (последние попадают, таким образом, во все 0-классы). Уже на этом примере видно, что для частичных авто- автоматов /-классы, вообще говоря, пересекаются между собой. То же самое имеет место и для оо-классов. В то же самое время нетрудно показать, что для вполне определенных автоматов i-классы не могут пересекаться между собой, ибо отношение /-совместимости состояний обладает в этом случае свойством транзитивности (если состояние а, /-совместимо с состоянием а,, а состояние аг /-совместимо с состоянием а,, то состояние о, i-совместимо с состоянием {9] МИНИМИЗАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ 139 а,). Для случая же частичных автоматов свойство транзи- транзитивности для отношения /-совместимости, вообще говоря, не выполняется. Определим теперь так называемую операцию расщепле- расщепления i-классов. Пусть М — множество автоматов одного и того же типа (Мура или Мили), (х,, хг хп) — мно- множество всех букв их входных алфавитов, Kt (/), ... ...,К (/)—совокупность всех /-классов рассматриваемого множества. Будем говорить, что множество ./V состояний а,-,, ..., a;v, целиком содержащееся в одном из /-классов Кг (/), выдерживает умножение на входную букву хт, если все состояния а^хт,..., aikxm (не считая тех, которые не определены) содержатся в одном и том же /-классе Kt(i), зависящем от выбора N и хт. 9.4. Операция расщепления i-классов состоит в нахож- нахождении максимальных подмножеств состояний каждого i-класса, выдерживающих умножение на все буквы хх, ... ..., хп входных алфавитов рассматриваемого множества автоматов. Операция расщепления /-классов выполняется очевид- очевидным образом с помощью использования таблиц переходов рассматриваемого множества автоматов. Справедливо сле- следующее важное предложение. 9.5. В результате применения операции расщепления к i-классам произвольного множества М автоматов одного и того оке типа (Мура или Мили) возникают все (/-(-1)- классы этого множества (/=0, 1, ...): ими являются все максимальные множества, возникшие в результате рас- расщепления. В самом деле, пусть N — произвольное множество, возникшее в результате применения операции расщепле- расщепления к одному из /-классов Кг (/) данного множества авто- автоматов М, не входящее ни в какое другое множество того же вида, а ат и аП — два произвольных состояния из N. Рассмотрим произвольное слово pt=xp, имеющее длину /+1, и будем считать сначала, что рассматриваемое мно- множество М состоит из автоматов Мили. В таком случае, в силу предложения 9.2, состояния ат и ап будут 1-совме- стимыми. Следовательно, выходные сигналы, определяе- определяемые парами (ат, х) и (ап, х), одинаковы в случае, если оба они определены. С другой стороны, по определению
140 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ {Гл. II множества N, состояния атх и апх, если они оба опре- определены, входят в один и тот же i-класс, так что приме- применение к ним слова р дает одинаковые результаты. Теперь ясно, что, в случае, когда оба результата применения слова pt к состояниям ат и ап не будут неопределенны- неопределенными, они обязательно совпадут. Ввиду произвольности выбора слова рх это означает, что состояния ат и ап (/+1)-совместимы. Предположим теперь, что найдется состояние ak, ко- которое (/+1)-совместимо со всеми состояниями множества N. В силу предложения 9.2 оно будет также /-совместимо с ними и, следовательно, по определению /-классов, най- найдется /-класс Kt (/), содержащий все состояния множества ^V и состояние ak. Пусть a.j — произвольное состояние, содержащееся в Л^. Ввиду (/+1)-совместимости состояний uj и ak для любой входной буквы х состояния а-х и akx ,— в случае, если они оба определены,— будут, очевидно, /-совместимы. Это, в свою очередь, означает, что в резуль- результате применения операции расщепления к /-классу Kt(i) возникнет множество Nx, содержащее все состояния мно- множества N и состояние ak. Но включение NcNt противоре- противоречит определению множества ./V. Следовательно, к мно- множеству N нельзя добавить ни одного нового состояния, (/+1)-эквивалентного со всеми состояниями множества N. Тем самым доказано, что множество N является (/+1)- классом. Пусть теперь Кр (/+1) — произвольный (/+1)-класс множества автоматов М. В силу теоремы 9.2 он содержится в некотором /-классе .Я^ (/) того же множества. Из опреде- определения (/+1)-класса следует, что для любой входной буквы х все определенные состояния вида ах (где а — любое со- состояние из Kp{i-\-\)), являются /-совместимыми и входят, следовательно, в один и тот же /-класс. Таким образом, множество К (/+1) выдерживает умножение на все вход- входные буквы. Обозначим через Р одно из максимальных под- подмножеств /-класса Кг (/), выдерживающих умножение на все входные буквы и содержащее классКр (/+1). Исполь- Используя первую часть данного доказательства, получим, что все состояния множества Р (/+1)-совместимы. В силу определения (/ + 1)-класса, это означает, что Р—К (/+1). Таким образом, (i-\ 1)-класс Кр (i-\ 1) возникает в ро 19] МИНИМИЗАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ 141 зультате применения операции расщепления к /-классам множества М. Ясно, что К (/+1) является максимальным среди мно- множеств, возникающих в результате расщепления /-классов, поскольку все такие множества будут (/+1)-классами (как было только что показано), а (/+1)-класс К (/+1) не может, по определению, содержаться ни в каком большем (/ + 1)-классе. Тем самым для случая автоматов Мили предложение 9.5 полностью доказано. Доказательство для случая автоматов Мура почти дословно повторяет уже проведенное доказательство. Не- Некоторые изменения должны быть сделаны лишь в самом начале построения. Рассмотренные выше состояния атх и апх — в случае, если они оба определены,— попадают, в силу определения множества N, в один и тот же /-класс. Поскольку всякий «-класс состоит из 0-совместимых со- состояний, то выходные сигналы, выдаваемые при перехо- переходах ат-*атх и ап^~апх, —в случае, если они оба определены,— оказываются непременно одинаковыми. Да- Далее доказательство ничем не отличается от соответствую- соответствующего доказательства для случая автоматов Мили. Тем самым теорема 9.5 полностью доказана. Если теперь исходное множество М состоит из конеч- конечного числа конечных автоматов (Мили или Мура), то при- применение операции расщепления /-классов оказывается возможным лишь конечное число раз. В самом деле, исход- исходные 1-классы или 0-классы представляют собою в этом случае конечные множества, так что неограниченное их измельчение невозможно: через конечное число шагов (/+1)-классы совпадут с /-классами. Новое применение операции расщепления к (/+1)-классам будет повторять применение этой операции к /-классам. Поэтому возни- возникающие в результате ее применения (/+2)-классы совпа- совпадут с /-классами. Продолжая этот процесс, получим, что для любого /^>/ /-классы совпадают с /-классами. Та- Таким образом, /-классы будут в этом случае не чем иным, как со-классами. В результате нами доказано следующее предложение. 9.6. Если применять последовательно операцию рас- расщепления i-классов к конечному множеству М конечных
142 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл II автоматов Мили или Мура, отправляясь от 1-классов (для случая автоматов Мили) или от 0-классов (для случая автоматов Мура), то через конечное число шагов для неко- некоторого k^zQ процесс расщепления к-классов даст в резуль- результате те же самые к-классы. Удовлетворяющие этому условию (нерасщепляемые далее) к-классы будут совпадать с оо -классами исходного множества М. Теорема 9.6 усиливает результаты, полученные А у- фенкампоми Хоном1). Она является основой, на которой зиждется минимизация конечных автоматов. Значение теоремы 9.6 станет ясным после того, как мы покажем, каким образом, зная оо-классы, можно осущест- осуществлять минимизацию автоматов. Обозначим через Кх, К2, ...,Кп... оо-классы какого- либо множества М автоматов одного и того же типа (не обя- обязательно конечных),а через (хх, ...,х„) — все буквы входные алфавитов автоматов множества М. Так как со-классы являются вместе с тем и /-классами для всех /=0, 1, 2 то для каждой входной буквы xk все состояния, входящие в любой оо-класс Кт, порождают один и тот же выходной сигнал (в случае автоматов Мили) или отмечены одним и тем же выходным сигналом (в случае автоматов Мура), либо соответствующие выходные сигналы не определены. Построим таблицу (функцию) выходов (обычную или сдви- сдвинутую) некоторого автомата А, состояниями которого служат оо-классыКх,Кг, ...,КП, а входными сигналами — буквы хх хп. В случае автоматов Мили относим каждой паре (Кт, xk) выходной сигнал, соответ- соответствующий паре (ат, xk) для любого ал и з Кт, для которого этот сигнал опре- определен. Если же для всех пар (ат, xk) соответствующие им выходные сигналы не определены, то мы счи- считаем, что выходной сигнал для пары (Кт, xk) также не определен. В случае автоматов Мура мы отмечаем каждый класс Кт выходным сигналом, которым отмечен произвольный элемент о-т*Кт- Если же ') D. D. A u f e n k a m p and F. Е. Н о h n, Analysis of sequential machines. IRE Trans. EC-6, № 4, 1957, p. 276—285 (русский перевод в сб. переводов «Математика», ИЛ, 1959, №3:3, етр. 129—146). §9] МИНИМИЗАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ 143 все элементы, входящие в Кт, не отмечены, то мы будем считать отметку класса Кт н е- определенной. Таблицу (функцию) переходов автомата А мы построим по следующему правилу: переход Km->-Kmxk будет считаться неопределенным, если для всех состояний ат, составляющих класс Кт, переходы ат->-ат xk не опреде- определены. Если же хотя бы для одного состояния amtKm переход ат ->- ат xk определен, то переход Km—+Kmxk также будет считаться определенным, а в качестве состоя- состояния Kmxk будет приниматься любой из оо-классов Кг (их может быть несколько), содержащий все определенные состояния вида amxk (ameKm). Из предложений 9.5 и 9.6 вытекает, что оо-классы Кг с требуемыми свойствами обя- обязательно существуют. Если существуют такие оо-классы, каждый из которых содержит начальные состояния всех автоматов множества М, то один из таких классов принимается в качестве начального состояния построенного автомата А. В про- противном случае мы либо вовсе не будем фиксировать началь- начального состояния, либо будем принимать в качестве началь- начальных все ос-классы, которые содержат начальное состояние хотя бы одного из автоматов множества М. Описанный прием построения автомата А по данному множеству М автоматов будет называться нормализа- нормализацией, а все построенные таким образом автоматы — нормальными формами множества автоматов М. Нормальная форма множества М будет автоматом Мили или Мура соответственно тому, являлись ли автоматами Мили или Мура все автоматы множества М. Легко видеть также, что для случая вполне определенных автоматов нормальная форма определяется однозначно, поскольку, как было отмечено выше, оо-классы в этом случае не пере- пересекаются и, следовательно, как переходы Кт—*Ктхн в нормальной форме, так и ее начальное состояние опре- определяются однозначным образом. Отметим еще, что неопределенностью, возникающей в таблице переходов нормальной формы, обычно пользуют- пользуются при последующем упрощении на уровне структурного синтеза автоматов. В частности, если переход Кт—Ктхк согласно определению нормальной формы таков, что
144 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. И в качестве Kmxk может быть выбран любой оо-класс Кг, то при переходе к этапу структурного синтеза в соответ- соответствующем месте таблицы переходов можно поставить спе- специальный значок, означающий, что хотя соответствующий переход и определен, но он может быть переходом в лю- любое состояние (назовем такой переход без- безразличным). В качестве такого значка (во всяком случае на уровне абстрактного синтеза) нельзя, однако, употреблять черточку, поскольку мы условились исполь- использовать ее для указания того, что в местах таблицы пере- переходов, отмеченных черточкой, переходы не определены вовсе. Проведение различия между переходами, которые определены, но результат их безразличен, и переходами, результат которых не определен вовсе, существенно для правильности понимания последующих предложений (9.7—9.8). При переходе же к структурному синтезу, где неопределенных переходов не остается совсем (а существуют лишь безразличные переходы), это различие утрачивает свое значение. Разница между неопределенными и безразличными переходами сказывается всякий раз, когда оперируют с отображениями, индуцируемыми частичными автоматами: принимая безразличные переходы за неопределенные, мы сужаем, вообще говоря, область определения этих отобра- отображений и тем самым можем нарушить правильность ре- результатов такого типа, какие содержатся в последующих теоремах 9.7 и 9.8. Справедливо следующее предложение. 9.7. Если в любой нормальной форме А произвольного множества М автоматов выбрать в качестве начального состояния оо-класс, содержащий начальное состояние про- произвольного автомата At из множества М, то автомат А будет являться эквивалентным продолжением автомата Аг Доказательство теоремы 9.7. вытекает непосредственно из определения нормальной формы. В самом деле, пусть p=xixl ...xi]t—произвольное допустимое слово автомата А,, Обозначим через а, начальное состояние автомата Ar a через Kt— содержащий его оо-класс. Согласно определе- определению нормальной формы, автомат А из состояния Кх под действием входного сигнала xtj перейдет в состояние Kh, представляющее тот оо-класс, который содержит состояние 19) МИНИМИЗАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ 145 а,Х{, автомата А{. При этом будет выдан тот же самый вы- выходной сигнал, который дается автоматом Аг при пере- переходе а,—>-я,2ч,, — безразлично, имеем ли мы дело с автомата- автоматами Мили или Мура. В случае состояния ajt=alxit мы будем иметь дело снова с точно такой же ситуацией, как и в случае состояния а,. Поэтому вторые буквы выходных слов, выданных автоматами А и Л,- в ответ на слово р, будут снова одинаковыми. Продолжая подобным же образом, мы приходим к выводу, что результаты применения слова р к состояниям а, и К, совпадают. Ввиду произвольности выбора слова р теорема доказана. Нормальная форма любого множества автоматов удов- удовлетворяет следующему условию. 9. 8. Во всякой нормальной форме А любого множества автоматов М нет ни одной пары совместимых между со- собой состояний. В самом деле, по определению оо-классов (состояний ав- автомата А) для любой пары (К^К,) таких классов найдется состояние uj, входящее в класс Kj и несовместимое с мно- множеством состояний класса К{. Следовательно, найдется такое входное слово р и такое состояние at в классе К;, что результаты применения слова р к состояниям а(. и а о р ;делены и не совпадают между собой. Точно так же/ как и при доказательстве предыдущей теор§мы, в данном случае можно показать, что результаты применения слова1 р к состояниям Kt и Kj автомата А совпадают, соответствен- соответственно, с результатами применения слова р к состояниям а{ и aj и, следовательно, являются различными. Это озна- означает несовместимость состояний К{ и К j. В силу произ- произвольности выбора состояний Kt и Kj теорема дока- доказана. Полученные результаты позволяют производить мини- минимизацию с одновременным объединением в одном автомате произвольных конечных множеств автоматов. Мы будем, однако, в основном применять эти результаты для целей минимизации одного автомата. Если ограничиться к тому же лишь вполне определенными автоматами, то метод исключения недостижимых состояний (§ 1) вместе с опе- операцией нормализации дает возможность осуществлять абсолютную минимизацию автоматов. Это обстоятельство вытекает из следующей теоремы. 10 В М Глушнов
14E АБСТРАКТНАЯ ТВОРИЯ АВТОМАТОВ 1Гл. П 9. 9. Если в произвольном конечном вполне определенном автомате Мили А исключить недостижимые состояния и для полученного таким образом автомата В построить нормальную форму С, то автомат С будет эквивалентен автомату А и будет иметь наименьшее число состояний среди всех автоматов, эквивалентных автомату А. Доказательство сформулированной теоремы осущест- осуществляется следующим образом. Из предложения 1.9 выте- вытекает, что автомат В эквивалентен автомату А. Ввиду же полной определенности автомата В его нормальная фор- форма С, являясь его эквивалентным продолжением (предло- (предложение 9.7), окажется просто эквивалентной ему, а зна- значит, и автомату А. Пусть D — произвольный абстрактный автомат, экви- эквивалентный автомату А. Поскольку всякий автомат второго рода (в частности, всякий автомат Мура) можно без изме- изменения числа состояний интерпретировать как автомат Мили, мы будем предполагать, что автомат D является автоматом Мили. Будучи эквивалентным автомату А, он будет эквивалентен и автомату С. Эквивалентность же автоматов означает эквивалентность (в смысле опреде- определения 9.1) их начальных состояний. Кроме того, поскольку в автомате В всякое состоя- состояние достижима, то, как следует из способа построения нормальной формы, этим же свойством обладает и авто- автомат С: состояние К автомата С (оо-класс автомата ^полу- ^получается из его начального состояния К0 с помощью любого входного слова, которое переводит автомат В из началь- начального состояния в любое состояние, содержащееся в клас- классе К. Мы можем поэтому для каждого состояния Kt автома- автомата С фиксировать входное слово р( так, чтобы Ki=Kl)pl (i=i,...,n). Отправляясь от начального состояния dn авто- автомата D, определим аналогичным образом ряд его состоя- состояний d.=dl)pi(i=l,...,n). Поскольку состояния Кв и ^экви- ^эквивалентны между собой (то есть, иначе говоря, применение к ним любого входного слова дает одинаковые результаты на выходе), то, как нетрудно видеть, для любого /= 1,...,ге состояния Kt и d, также будут попарно эквивалентными. Если бы для каких-то I и / состояния d. и dj оказались одинаковыми, то состояния К( и Кj, будучи эквивалент- эквивалентМИНИМИЗАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ 147 ными однадну и тому же состоянию, были бы-эквивалент- бы-эквивалентными между собой. Но, ввиду предложения 9,8, в автомате С все состоя- состояния попарно неэквивалентны. Отсюда следует, что все сос- состояния dt, dt,...,dn в автомате!) различны. Следовательно, автомат D имеет не меньше состояний, чем автомат С. В силу произвольности выбора автомата D теорема дока- доказана. Аналогичная теорема имеет место и для случая конеч- конечных автоматов Мура. 9. 10. Если в произвольном конечном вполне определен- определенном автомате Мура А исключить недостижимые состоя- состояния, а для полученного таким образом автомата Мура В построить нормальную форму С, то автомат С будет автоматом Мура, эквивалентным автомату А, имеющим сним одинаковые отметки начальных состояний, и будет иметь наименьшее число состояний среди всех автоматов Мура, эквивалентных автомату А и имеющих с ним оди- одинаковы? отметки начальных состояний. Доказательство этого предложения производится точ- точно так же, как и доказательство предложения 9.9. Един- Единственное добавление должно быть сделано во второй части доказательства — при установлении эквивалентности на- начальных состояний d0 и Ко. Дело в том, что в случае авто- автоматов Мура эквивалентность состояний требует не только совпадения результатов применения к этим состояниям любого входного слова, но и совпадения их отметок (см. 9.1). Если состояния в эквивалентных автоматах могут быть получзны из начальных состояний в результате действия непустого входного слова, то их отметки совпадают с последней буквой соответствующих1 выходных слов, оди- одинаковых в силу эквивалентности автоматов. Поэтому экви- эквивалентность состояний dj и К t, отличных от начальных состояний, для автоматов Мура устанавливается точно так же, как и для автоматов Мили. Что же касается началь- начальных состояний, то совпадение их отметок, вообще говорг:, требуется постулировать, что и было сделано нами при формулировке теоремы. Легко показать, что без этого теорема может потерять силу. После же такого посту- постулирования доказательство проходит точно так же, как и
148 АБСТРАКТНАЯ ТВОРИЯ АВТОМАТОВ [Гл. II в предыдущем случае. Совпадение отметок начальных состояний у автоматов А и С вытекает из определения нормальной формы. Теоремы 9.9 и 9.10 показывают, что в случае вполне определенных автоматов построение нормальной формы приводит к абсолютной мищ м 1зации (в случае автоматов Мура нужно лишь предварьтельно перепробовать раз личные отметки начального состояния, не меняющие отоб- отображения, индуцируемого автоматом). В случае же час- частичных автоматов дело обстоит гораздо сложнее: с пост- построением оо-классов и нормальной формы процесс миними- минимизации, вообще говоря, не заканчивается. При современном состоянии разработки этого вопроса нахождение абсолют- абсолютных минимизаций основаЕЮ на использовании методов пз- ребора вариантов. Поэтому на практике либо ограничи- ограничиваются нахождением нормальной формы минимизируемого автомата, либо применяют перебор среди относительно небольшого числа вариантов, отказываясь от достигeui;я абсолютной минимизации. Так называемый основной алгоритм минимизации со- состоит в последовательном применении операции ис- исключения недостижимых состояний, операции нормализации и, если потре- потребуется , операции исключения недос- недостижимых состояний в полученной нормальной форме (для вполне определенных автоматов такая потребность никогда не может появиться). При этом в случае минимизации множества М, состояще- состоящего из двух и более автоматов, достижимыми будут считать- считаться все те состояния (оо-классы) построенной нормальной формы А, которые могут быть получены в результате при- применения какого-либо входного слова к любому из состоя- состояний нормальной формы (к ос-классу), содержащему на- начальное состояние хотя бы одного из автоматов, входя- входящих в М. Иногда удобно все такие оо-классы называть начальными состояниями нормальной формы А. В следующем параграфе мы рассмотрим дополнения к этому алгоритму, а теперь покажем его работу на при- примере. Пример. Провести совместную минимизацию мно- множества М, состоящего из двух автоматов Мили А и В, i»] МИНИМИЗАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ 149 заданных таблицами переходов и выходов II. 44, II. 45, II. 46, II. 47. Таблица II. 44 Таблица II. 45 X У 1 2 6 2 _ 4 3 5 4 3 5 X У 1 и V 2 _ и 3 и 4 V 5 и Таблица II. 46 Таблица II 47 X Z 6 7 9 7 8 8 7 9 X Z 6 и W 7 _ W а _ W 9 W Решение. Применяем основной алгоритм миними- минимизации. Оба заданных автомата связаны. Следовательно, недостижимые состояния отсутствуют. Переходим поэтому к построению нормальной формы заданного множества автоматов. Имеется всего три 1-класса: а= A,3,5,6,7,8,9), Ь = B, 3, 5,6,7, 8, 9), с=--{2, 4, 7, 8, 9). Заметим, что авто- автоматы А и В имеют различные входные алфавиты (как, впрочем, и выходные). Поэтому объединение в 1-классы производится по совпадению реакций (с точностью до неопределенных реакций) на три входных сигнала х, у, г. В класс а попадаются состояния, имеющие реакции (uv—), (и ), (и — ы>) и ( w), в класс b — состояния с реак- реакциями (—и—), (и ), (и — w) и ( и), в класс с — состояния с реакциями (—и—), (г; ) и (——и;). Для определения, какие из 1-классов расщепляются, найдем множества, в которые они переводятся под воздей- воздействием входных сигналов х, у, г: ах=B, 5, 7) с Ь, ау= t=C)ca (или ay=C)cb), az=G,8,9) принадлежит любому 1-классу, 6х=E, 1) d а (или bx=E,7)cb), by=(i) с с, bz«=G, 8, 9) принадлежит любому 1-классу, сх«=C)са (или
150 ABGTPAKT/НАЯ ТКОРИЯ АВТОМАТОВ [Гл. II cx=C)cb), су=D)се, cz=G, 8) принадлежит любому классу. Таким образом, расщепления 1-классов не происходит, и их можно принять за оо-классы и строить нормальные формы по найденным реакциям и включениям. Поскольку в трех местах нам предоставляется выбор из двух возмож- возможностей и еще в трех местах — выбор из трех возможно- возможностей, то существует всего 2*-3* = 216 нормальных форм. В каждой из них за начальное состояние можно принять класс а, содержащий начальные состояния обоих данных автоматов. Таблицы переходов и выходов одной из нормальных форм имеют вид, представленный на табл. II. 48. и II. 49. Таблица II. 48 Таблица II. 49 X У г а Ь а а b а с а с а с а X У z а и V w ь и и W с V и W Автомат С, в соответствии с теоремой 9.7, индуцирует отображение, продолжающее отображения, индуцируемые исходными автоматами А и В. § 10. Некоторые дополнительные приемы минимизации Описанный в предыдущем параграфе основной алгоритм минимизации автоматов основан на отождествлении всех совместимых между собой состояний. Часто оказывается удобным, однако, проводить отождествление лишь неко- некоторой части совместимых состояний. В предыдущем па- параграфе все совместимые между собой состояния объеди- объединялись в один класс, называемый оо-классом. Система всех оо-классов осуществляла покрытие множества всех состояний заданных автоматов; иначе говоря, всякое сос- состояние содержалось хотя бы в одном оо-классе. Эта система обладала также тем свойством, что все состояния, состав l to] дополнительный приемы минимизации 151 ляющие один и тот же оо-класс, переводились любым входным сигналом х в один и тот же оо-класс (зависящий от х). Обобщим теперь понятие системы оо-классов, введя следующее определение. 10.1. Совокупность множеств Kt, К2, ...,Кт состояний заданного множества М автоматов одного и того же типа (Мура или Мили) называется системой инвариантных клас- классов состояний автоматов множества М, если удовлетво- удовлетворяются следующие три условия: а) любое состояние произвольного автомата из множест- множества М содержится хотя бы в одном из классов Kv...,Km, б) все состояния, входящие в один и тот же класс Кг являются 0-совместимыми (в случае автоматов Мура) или 1-совместимыми (в случае автоматов Мили), в) люэой входной сигнал х переводит (с томностью до неопределенных переходов) все состояния, входящие в один и тот же инвариантный класс К,, в некоторый другой инвариантный класс Kj (зависящий от выбора класса К t и входного сигнала х). Система инвариантных классов называется правильной, если составляющие ее классы попарно не пересекаются. Ясно, что система оо-классов представляет собою част- частный случай системы инвариантных классов. Нетрудно по- показать, что любой класс произвольной системы инвариант- инвариантных классов состоит из совместимых между собой состоя- состояний и входит, следовательно, в какой-либо оо-класс. В связи с этим оо-классы естественно называть максималь- максимальными инвариантными классами. Пус'1ъК1,...,Кт — произвольная система инвариантных классов состояний некоторого множества автоматов М. Будем для краткости называть е.е просто инвариантной системой. Построим автомат А, состояниями которого бу- будут все классы Kt,...JCm инвариантной системы, а входной и выходной алфавиты будут совпадать с объединениями входных и, соответственно, выходных алфавитов всех автоматов множества М. Функцию переходов автомата А определим следующим образом. Для любого класса К, и любого входного сигнала х значение б(Kn x)=KiX функции пе- переходов автомата А считается неопределенным, если
152 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II неопределенными были соответствующие значения atx функций переходов автоматов множества М для всех со- состояний а,-, входящих в класс К:. Если же для какого-либо состояния а1 из класса К/ переход at—*atx определен, то определенным считается также переход Kt—<-Ktx, причем в качестве значения для Ktx выбирается один из тех клас- классов Kj, который содержит все состояния вида а!х(а!^К1). Функцию выходов автомата А (обычную или сдвинутую) определим следующим образом. Для любого класса К1 и любого входного сигнала х значение Я, (К;, х) функции выходов автомата А считается неопределенным, если неопределенными были соответствующие значения X/ (а,-, ж) функций выходов автоматов множества М для всех состояний at, входящих в класс Kt. Если для какого- либо состояния а: из класса Kt значение выхода Х[(апх) определено, то значение выхода Х(Кп х) также считается определенным и равным Я,;(а(-,х) (ввиду условия б) из определения 10.1 определенное таким образом значение Х(Кпх) не зависит от выбора состояния а: из класса Kt). Построенный таким образом автомат А ( в котором не фиксируется пока начальное состояние) называется приве- приведенной формой множества автоматов М по системе инва- инвариантных классов Кх,..-,Кт, а сама операция получения автомата А — операцией приведения. Описанная в предыдущем параграфе операция норма- нормализации является частным случаем операции приведения, а нормальная форма множества автоматов М — частным случаем приведенной формы того же множества. Точно так же, как была доказана теорема 9.7 предыду- предыдущего параграфа, может быть доказано следующее пред- предложение. 10.2. Если в любой приведенной форме А произвольно- произвольного множества автоматов М одного и того же типа выбрать в качестве начального состояния один из инвариантных классов, содержащих начальное состояние произвольного автомата А{ из множества М, то автомат А будет яв- являться эквивалентным продолжением автомата At. В дальнейшем изложении в настоящем параграфе мы ограничимся случаем, когда заданное множество автома- автоматов М состоит из одного автомата, а все рас- рассматриваемы» системы инвариантных классов — п р а- |Ю ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ МИНИМИЗАЦИИ 153 В и л ь н ы е. Первое ограничение не является, по сущест- существу, ограничением, поскольку можно всегда осуществить формальное сведение системы автоматов одного и того же типа в один автомат, объединяя множества их состоя- состояний, а также входные и выходные алфавиты, определяя все переходы и выходы так, как они были определены в объединяемых автоматах, и считая, что все остальные переходы и выходы неопределенны. В случае приведения одного автомата А по правильной системе инвариантных классов можно, отправляясь от описанной выше общей методики приведения, сформу- сформулировать следующие частные правила приведения: 1. В таблицах переходов и выходов {обычной или сдви- сдвинутой) автомата А заменяем все содержащиеся в них сим- символы состояний автомата А содержащими их классами за- заданной правильной системы (ввиду условия правильности системы такие классы определяются однозначно). Из условия в) определения 10.1 и правильности сис- системы вытекает, что после применения правила 1 во всех одинаково обозначенных столбцах таблицы переходов на перзсечении с любой строкой будут стоять либо символы одного и того же класса, либо черточки (символы неопре- неопределенности). В силу условия б) определения 10.1 то же самое будет иметь место и в таблице выходов: во всех одинаково обозначенных столбцах таблицы выходов (обыч- (обычной или сдвинутой) на пересечении с любой строкой будут стоять либо символы одного и того же выходного сиг- сигнала, либо черточки. Условимся называть такие столбцы совместимыми. Следующее правило называется прави- правилом объединения совместимых столбцов. 2. Каждая группа одинаково обозначенных (совместимых) столбцов как в таблице переходов, так и в таблице вы- выходов объединяется в один столбец, сохраняющий то же самое обозначение, что и все объединяемые столбцы. Если на пересечении с какой-либо строкой во всех объединяемых столбцах стояли черточки, то черточка ставится и на месте пересечения с этой строкой столбца а, полученного в результате их объединения. В случае же когда хотя бы в одном из объединяемых столбцов на пересечении с данной строкой р стоял определенный (отличный от черточки) символ (он будет одним и тем же во всех объединяемых
154 ЛВСТРАКТНАЯ ТКОРИЯ АВТОМАТОВ |Гп. столбцах в силу условия совместимости), то этот символ ставится (на пересечении со строкой р) и в столбце а. Полученные в результате применений правил 1 и 2 таблицы переходов и выходов (обычная или сдвинутая) гадают автомат В, являющийся, как нетрудно видеть, приведенной формой исходного автомата А по заданной (правильной) системе инвариантных классов. В случае приведения одного автомата по правильной системе инвариантных классов в приведенной форме фик- фиксируется начальное состояние в соответствии со следую- следующим правилом: 3. В качестве начального состояния в автомате, пост- построенном по правилам 1 и 2, выбирается инвариантный класс, содержащий начальное состояние исходного автомата А (такой класс определяется однозначно ввиду правильности заданной системы инвариантных классов). Из проведенных рассуждений вытекает следующее предложение. 10.3. Приведенная форма автомата по правильной системе инвариантных классов определяется однозначно. Из предложения 10.2 и правила 3 вытекает также сле- следующий результат. 10. 4. Приведенная форма любого автомата по любой правильной системе инвариантных классов является экви- эквивалентным продолжением этого автомата. Приведенная форма любого вполне определенного автомата эквивалент- эквивалентна ему. Опишем теперь основные методы, с помощью которых находятся правильные системы инвариантных классов. Следует отметить, во-первых, что в ряде частных случаев такие системы можно находить непосредственно по таб- таблицам переходов и выходов заданного автомата, не при- прибегая ни к каким специальным построениям. Сформу- Сформулируем два предложения, относящихся к таким слу- случаям: » 10. 5. Предположим, что в автомате А имеется некото- некоторое множество , N состояний, обладающих следующими свойствами: а) все состояния множества N 1-совместимы (если А — автомат Мили) или О-совместимы (если А — автомат Мура), 10] дополнительный приемы минимизации 155 б) в любом столбце таблицы переходов автомата А, обозначенном состоянием из множества N, встречаются только состояния из того же самого множества. В таком случае система, состоящая из множества N и одноэлемент- 'ных множеств состояний, не входящих в N, является пра- правильной системой инвариантных классов. Приведенная форма автомата А по этой системе получается с помощью замены всех состояний множества N новым состоянием и объединения всех столбцов в таблицах переходов и выходов автомата А, обозначенных этим новым состоянием. 10. 6. Если в автомате А имеется множество N таких состояний, что все обозначенные ими столбцы как в таб- таблице переходов, так и в таблице выходов (обычной или сдви- сдвинутой) совместимы (в частности, одинаковы), то система, состоящая из множества N и одноэлементных множеств всех остальных состояний, является правильной системой инвариантных классов. Приведенная форма автомата А по этой системе получается с помощью замены всех состоя- состояний множества N новым состоянием и объединения всех столбцов в таблицах переходов и выходов автомата А, обоз- обозначенных этим новым состоянием. Доказательства предложений 10.5 и 10.6 вытекают непосредственно из правил 1 и 2 и определения 10.1. В общем случае системы инвариантных классов могут быть получены путем расщепления обобщенных 0-клас- сов или обобщенных 1-классов, подобно тому, как в пре- предыдущем параграфе получались оо-классы. При этом, в отличие от систем /-классов, которые фигурировали в предыдущем параграфе, мы будем пользоваться система- системами обобщенных /-классов. 10. 7. Системой обобщенных i-классов (/=0, 1, 2, ....) со- состояний автомата А мы будем называть любую совокуп- совокупность множеств К^ (/), ..., Кт (/) его состояний, удовлетво- удовлетворяющую следующим двум условиям: а) любое состояние автомата А содержится хотя бы в одном из множеств Kx(i), ..., Кт (/), б) любое множество Kj (/) (/=1, ¦••, т) состоит из i-совместимых между собой состояний. Система обобщенных /-классов будет называться пра- правильной, если входящие в нее классы попарно не пересе- пересекаются.
156 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. П Расщеплением системы обобщенных i-классов Кл (/),... ..., K^(i) автомата А мы будем называть всякую систему обобще тих A-\-\)-классов Kt(i+l), ..., Kn(i+l), удовлет- удовлетворяющую следующим двум условиям: а) каждое из множеств Kt(i-\-l), ..., К „A+1) целиком содержится в одном из множеств K^(i),..., Кm(i), б) для любого входного сигнала х автомата А и для любого обобщенного (/+1)-класса Kj(i+i) все состояния этого класса перзвосятся (с тоуностью до неопределенных переходов) входным сигналом х в состояния, принадлежа- принадлежащие одному и тому же обобщенному i-классу (зависящему от выбора Ц-\-\)-класса Kj(i+\) и входного сигнала х). Условимся также в качестве расщепления правильной си- системы обобщенных г-классов всегда выбирать систем... обоб- обобщенных (/+1)-классов, также являющуюся правильной. В случае правильных систем находить расщепления удобно с помощью так называемых i-таблиц. Для произвольного конечного автомата А и произволь- произвольной системы обобщенных /-классов его состояний /-таб- /-таблица автомата А получается в результате подстановки в таблицу его переходов на места состояний, содержащих эти состояния обобщенных /-классов. При этом обобщен- обобщенными /-классами заменяются не только элементы таблицы переходов, но и состояния, обозначающие ее столбцы. Те места таблицы переходов, в которых переходы были не определены, остаются не. пределегшыми и в /-таблице. Столбцы /-таблицы вместе с обозначающими их обоб- обобщенными /-классами мы будем называть обобщенными столбцами. Каждый обобщенный столбец а отмечается состоянием автомата А, обозначающим столбец таблицы переходов, из которого возник столбец а. Обобщенные столбцы /-таблицы называются совмести- совместимыми, если на соответствующих друг другу местах всех столбцов этого рода, в которых переходы были опреде- определены, стоят одинаковые обобщенные /-классы. Например, если дана таблица переходов некоторого автомата А (табл. II. 50) и два обобщенных /-класса а{= = A, 2, 3) и 6,= D, 5), то /-таблица будет иметь вид, пока- ванный на табл. II. 51. Совместимыми будут обобщенные t-столбцы, отмеченные состояниями 2 и 3, а также обоб- щошше столбцы, отмеченные состояниями 4 и 5. |Ю] ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ МИНИМИ8АЦИИ 157 Таблица II. 50 Таблица II. 51 X У 1 2 3 2 4 — 3 5 4 3 2 5 1 - X У 1 <Ч а/ ai 2 <Ч bi 3 а» ь, 4 ь« а; а,- 5 bi а,- Легко видеть, что состояния, отмечающие совместимые обобщенные столбцы /-таблицы, будут (/-{-^-совместимы- (/-{-^-совместимыми. Каждое множество таких состояний переводится лю- любым входным сигналом х в множество, содержащееся це- целиком внутри одного из обобщенных /-классов. Следова- Следовательно, справедливо следующее предложение. 10.8. Для того чтобы получить расщепление правиль- правильной системы обобщенных i-классов автомата А, достаточ- достаточно разбить все состояния автомата А на попарно непе- непересекающиеся множества так, чтобы все состояния, входя- входящие в любое из таких множеств, отмечали бы совместимые между собой обобщенные столбцы i-таблицы автомата А. Условимся называть систему обобщенных /-классов не расщепляемой, если существует такое ее расщепление, которое совпадает с исходной системой. Из определения расщепления и определения 10.1 непосредственно выте- вытекает следующее предложение. 10.9. Всякая нерасщепляемая система обобщенных i-классов состояний автомата является системой инвари- инвариантных классов. В случае конечных автоматов безграничное расщепле- расщепление системы обобщенных /-классов, очевидно, невозмож- невозможно,— через конечное число шагов мы обязательно при- придем к нерасщепляемой системе. В связи с этим можно построить следующий алгоритм минимизации конечных автоматов, который мы будем называть общим алгоритмом минимизации. Первый шаг общего алгоритма ми- минимизации состоит в разбиении множества состоя- состояний данного автомата А на попарно непересекающиеся обобщенные 0-классы (если А — автомат Мура) или
158 АБСТРАКТНАЯ ТВОРИЯ АВТОМАТОВ 1Гд. И i-классы (если А —автомат Мили). Построенное разбие- разбиение называется исходной правильной системой обобщен- обобщенных i-классов состояний автомата А ¦ U = 0 или 1). Второй шаг алгоритма состоит в том, что, отправляясь от исходной системы, на основании предло- предложения 10.8 мы строим ее последовательные расщепления, пока при некотором i—k мы не придем к нерасщепляемой (правильной) системе обобщенных /-классов. Полученная система обобщенных ^-классов принимается за систему инвариантных классов. Третий шаг алгоритма состоит в том, что по найденной (правильной) системе инвариантных клас- классов с помощью сформулированных выше правил 1—3 мы находим приведенную форму В автомата А. Согласно теореме 10.4 автомат В является эквивалентным продол- продолжением исходного автомата А. Описанный алгоритм основывается на идеях Мили, Ауфенкампа и X о н а '), Следует заметить, что хотя мы и назвали его общим алгоритмом минимизации, однако он не включает в себя описанного в предыдущем параграфе основного алгоритма минимизации, поскольку последний оперирует, вообще говоря, с попарно пересекаю- пересекающимися классами. Для случая же вполне определенных автоматов общий алгоритм действительно обобщает основ- основной алгоритм. Можно так усовершенствовать общий алгоритм мини- минимизации, что он сможет работать также и с попарно пе- пересекающимися обобщенными /-классами и инвариантны- инвариантными классами. Однако при этом он сильно усложняется и делается гораздо менее наглядным. Поэтому мы не будем делать таких усовершенствований. Приведем еще два простых результата, позволяющих осуществлять предварительную минимизацию автоматов. •) G. H. Mealy, A method for synthesizing sequential circuits. Bell. System Tech. J., v. 34, 1955, p. 1045—1079; D. D. A u f e n k a m p, Analysis of sequential machines, II. IHE Trans. EC—7, № 4, 1958, p. 299—306 (русский перевод в сб. перево- переводов «Математика», 1959, №3:3, стр. 145—158); D. D. A u f e п- ka m p and F. Е. Н о h a, Analysis of sequential machines. IRE Trans. EC—6, № 4, 1957, p. 276—285 (русский перевод в сб. пере- иодов «Математика», 1959, №3:3, стр. 129—146). i ю] ДОПОЛНИТВЛЬНЫВ ПРИЕМЫ МИНИМИЗАЦИИ 159 10.10. Бели в автомате Мили А имеется состояние а, для которого функция выходов не определена ни при каком входном сигнале, то такое состояние можно исключить из автомата, выбросив обозначенные им столбцы из таблиц переходов и выходов автомата А и заменив все остальные вхождения состояния а в таблицу переходов автомата А черточками. Возникший в результате такой операции автомат Мили В индуцирует то же самое отображение, что и автомат А. Для доказательства предложения 10.10 достаточно заметить, что любое слово р, переводящее автомат А из начального состояния в состояние а, является предза- прещенным, то есть становится запрещенным после при- присоединения любой буквы входного алфавита. Но выход- выходное слово, появляющееся в результате подачи на вход автомата слова р, очевидным образом не зависит от того, определен или не определен переход, совершающийся под влиянием последней буквы слова р. Так как исключение состояния а может отразиться лишь на преобразовании автоматом слов типа слова р (переводящих автомат в состояние а), то последнее соображение и завершает до- доказательство предложения 10.10. 10.11. Если в aemoMi тз Мура А имеется (отличное от начального состояния) состояние а с неопределенной от- отметкой, то это состояние можно исключить из автомата, выбросив обозначенный им столбец из отмеченной таблицы переходов и заменив черточками все остальные вхождения состояния а в эту таблицу. В результате такого исключе- исключения отображение, индуцируемое автоматом, не изменится. Доказательство предложения 10.11 заключается в по- последовательном применении к автомату А предложений 1.7 и 1.9 из § 1. Значение предложений 10.10 и 10.11, а также доказан- доказанных выше предложений 10.5 и 10.6 состоит в том, что они часто позволяют производить предварительное упроще- упрощение автомата еще до применения к нему общего или основ- основного алгоритма минимизации. Это обстоятельство оказы- оказывается весьма благоприятным для сокращения общего времени, затрачиваемого на минимизацию, поскольку с увеличением числа состояний автомата выкладки, связан- связанные с применением общего и основного алгоритма мини-
160 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II мизации, становятся весьма громоздкими и сильно подвер- подверженными случайным ошибкам. Поэтому никогда не сле- следует упускать возможности предварительной миними- минимизации автомата с использованием относительно простых средств. В качестве таких средств, кроме средств, которые дают предложения 10.5, 10.6, 10.10 и 10.11, использует- используется также метод исключения недостижимых состояний, описанный в § 1. В заключение настоящего параграфа рассмотрим не- несколько примеров минимизации автоматов. Пример 1. Минимизировать автомат Мили А .задан- .заданный таблицей переходов II. 52 и таблицей выходов II. 53. Таблица II. 52 Таблица И. 53 У z i 2 — 2 3 4 3 5 — 4 1 — 5 — X У z i U — 2 V и 3 U — V 4 и V 5 — Решение. Состояние 5 можно исключить на осно- основании теоремы 10.10. После этого столбцы 3 и 4 становят- становятся совместимыми в обеих таблицах: то же самое справед- справедливо и для столбцов 1 и 2. Применяя теорему 10.6, можно заменить каждый из этих двух столбцов одним, после че- чего мы получаем таблицу переходов 11.54 и таблицу выхо- выходов 11.55. Таблица 11.54 Таблица 11.55 X У Z а а Ъ Ъ ь а — X У z а и V и ь и V V Поскольку состояния а и Ь не являются 1-совместимыми (что видно из таблицы выходов), то дальнейшая минимиза- минимизация оказывается невозможной. Но] ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ МИНИМИЗАЦИИ 161 Пример 2. Минимизировать автомат Мура А, за- заданный отмеченной таблицей переходов 11.56. Таблица 11.56 X У - 1 2 3 и 2 4 5 U 3 2 1 V 4 4 5 V 5 2 4 Решение. Ни один из описанных выше простых приемов минимизации в данном случае неприменим. Поэтому мы применим общий алгоритм минимизации. В ка- качестве исходной системы обобщенных 0-классов выберем систему а„ —A, 2, 3), 6О=D,5). 0-таблица будет иметь вид, представленный в табл. 11.57. Таблица II. 57 Таблица 11.58 X У 1 а„ «0 «0 2 а„ 3 а„ «0 «0 4 ь„ к 5 ь„ X У 1 а. а) 2 ь, 3 | 4 а, а, с. 5 d, t По этой таблице на основании предложения 10.8 мы нахо- находим следующую систему обобщенных 1-классов: ^ = A, 3), bt = B), с, = D), rft = E) и строим 1-таблицу (табл. 11.58). В соответствии с теоремой 10.8 можно выбрать расщеп- расщепление системы обобщенных 1-классов, совпадающее с ней самой. Следовательно, эта система нерасщепляема и, на основании теоремы 10.9, является системой инвариантных классов. Можно поэтому по правилам 1, 2иЗ построить отмеченную таблицу переходов приведенной формы авто- автомата А (табл. 11.59). После перенумерации состояний отмеченная таблица переходов примет вид, показанный в табл. П.60. Пример 3. Минимизировать автомат Мура А, по- построенный в примере 2 из § 8. 11 В М Глушиоа
162 АБСТРАКТНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. II Таблица 11.59 Таблица 11.60 X У и а 2 а и 2 4 5 V 4 4 5 V 5 2 4 а; .'/ и 1 2 1 U 2 | 3 3 4 3 4 2 3 Решение. Автомат А задается следующей отме- отмеченной таблицей переходов 11.61: Таблица 11.61 0 1 - 0 2 1 1 1 7 4 0 2 7 3 0 3 6 7 0 | 0 4 5 7 5 6 7 1 6 7 7 0 7 7 7 На основании теоремы 10.6 можно объединить столбцы 3 и 5, после чего мы придем к отмеченной таблице пере- переходов 11.62. Таблица 11.62 0 1 - 0 2 1 1 1 7 4 0 2 7 3 0 | 0 3 6 7 4 3 7 1 6 7 7 0 7 7 7 Построим систему обобщенных 0-классов: ао = @, 2, 3, 4, 7), 6„ = A, 6) и выпишем 0-таблицу. Остальные /-табли- /-таблицы будем для экономии мест выписывать под нею (см. табл. 11.63), помещая рядом с каждой i-таблпцей соответствую- соответствующие обобщенные /-классы. Поскольку процесс расщепления привел к восстанов- восстановлению исходных состояний, то приведенная форма автома- автомата совпадает с ним самим. § 10] ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ МИНИМИЗАЦИИ 163 Таблица 11.63 „ = @, 2,3,4, 7), &„ = (!, 6) — @), Л, = A,6), с,= B47)tfC) 0 1 0 1 0 1 0 ь> аг ег Ьг «2 сг Ьг 1 Ьо V «0 Ьг "г С] Ьг !г 2 а0 «о «0 сг сг с2 d[ 3 «0 Ьо «о rf, Ьг сг аг и 4 «0 «0 а, сг di сг ег Лг и 6 ь> «0 «0 *, и и 7 "о «0 «0 ci Cl ci и и и , (), , (), , (), s = C), е, = D), /, = G), ?, = ( При минимизации мы отнесли состояние 0 в класс а0. Если бы его отнести в другой класс Ьо, то снова получилось бы расщепление классов до единичных состояний. Исполь- Используя теперь теорему 9.10 предыдущего параграфа, нетруд- нетрудно показать, что после проведенного выше объединения состояний 3 и 5 получен автомат Мура В, имеющий наи- наименьшее возможное число состояний среди всех автоматов Мура, эквивалентных исходному автомату А. П р и м е р 4. Минимизировать автомат Мили А, рас- рассмотренный в примере 3 из § 9, который задается табли- таблицей переходов II. 64 и таблицей выходов 11.65. Таблица 11.65 Таблица 11.64 0 1 2 3 0 1 2 3 — 1 — 2 — 3 — 0 1 2 3 0 0 0 0 0 1 0 1 1 2 2 2 2 2 3 3 3 3 0 0 11"
164 АБСТРАКТНАЯ ТЕ О РИЯ АВТОМАТОВ [Гл. 11 Решение. Из таблицы выходов автомата А непо- непосредственно видно, что все его состояния попарно 1-не- совместимы. Недостижимых состояний также не имеется. Следовательно, дальнейшая минимизация автомата А опи- описанными выше средствами невозможна. Нетрудно пока- вать, что автомат А не может быть минимизирован ника- никакими средствами, ибо для реализации четырех различных столбцов выходных сигналов он должен иметь не менее четырех различных состояний. ГЛАВА III СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ § 1. Композиция автоматов, структурные схемы По сравнению с абстрактной теорией автоматов в структурной теории автоматов делаются даль- дальнейшие шаги в направлении учета большего числа свойств реально существующих дискретных автоматов. Главная отличительная особенность структурной теории автоматов состоит в том, что, в отличие от абстрактной теории, она учитывает структуру входных и выходных сигналов авто- автомата, а также его внутреннюю структуру на уровне так называемых структурных схем. Основной за- задачей структурной теории является изучение компо- композиции автоматов, то есть методов построения сложных автоматов из автоматов, являющихся относи- относительно более простыми. Следует подчеркнуть, что структурная теория авто- автоматов не ставит своей задачей отразить все свойства реа- реально существующих автоматов. В ней, например, совер- совершенно не учитываются переходные процессы в автоматах, вопросы надежности работы автома- автоматов, физические свойства сигналов и многое другое. В этом смысле структурная теория автоматов также остается в значительной мере абстрактной теорией, хотя она и от- отличается значительно меньшей степенью абстракции, чем собственно абстрактная теория автоматов. Структурная теория автоматов и абстрактная теория автоматов являются двумя различными ступенями о б- щ е й теории автоматов. При синтезе реальных автоматов многие вопросы проще и эффективнее решаются на уров- уровне абстрактной теории. К числу таких вопросов относится определение необходимого объема памяти автомата (то
166 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III есть числа его состояний), переходов в памяти, а также вопросы, относящиеся к минимизации числа состояний автомата. Рассмотрение этих вопросов на уровне струк- структурной теории повлекло бы за собой загромождение хода рассуждения несущественными (и к тому же подчас затем- затемняющими суть дела) подробностями. Более того, труд- трудности эквивалентных преобразований структурных схем автоматов с памятью делают практически невозможным (по крайней мере в настоящее время) решение на уровне структурной теории такой задачи, как задача минимиза- минимизации числа состояний автомата. В то же самое время име- имеется ряд вопросов — таких, например, как вопрос о ком- композиции автоматов,— сама постановка которых выводит за рамки абстрактной теории автоматов. Таким образом, абстрактная теория автоматов и структурная теория авто- автоматов взаимно дополняют друг друга и имеют собственные естественные области приложения. В структурной теории автоматов сохраняется абстракция дискретного автоматного време- времени, однако при построении этой теории оказывается бо- более удобным несколько изменить порядок отсчета времен- временных интервалов, принятый в абстрактной теории. В абст- абстрактной теории автоматов было удобнее (для того, чтобы не создавать двух различных теорий для автоматов первого и второго рода) относить входные и выходные сигналы к моменту перехода автомата из одного состояния в другое. В структурной теории мы будем придерживаться более естественного способа отсчета времени, считая моменты перехода автомата из одного состояния в другое грани- границами интервалов, относящихся к одному и тому же зна- значению автоматного времени. При таком способе отсчета времени определение зако- закона функционирования автоматов первого рода (автоматов Мили) будет выглядеть следующим образом: a(* + l)=fl(a@, z(t)), у@=М*@, x(t)) A=0, 1, 2,...)- Закон функционирования автоматов Мура приобретет вид: §1] КОМПОЗИЦИЯ АВТОМАТОВ, СТРУКТУРНЫЕ СХЕМЫ 167 Нетрудно убедиться в том, что и для этой формулиров- формулировки законов функционирования автоматов сохраняются все результаты, полученные в предыдущей главе. Правда, они нуждаются в несколько иной интерпретации, учиты- учитывающей особенности принимаемого теперь способа отсче- отсчета времени. В этой интерпретации следует учитывать два обстоятельства. Первое обстоятельство состоит в том, что при но- новом способе отсчета времени момент начала отсчета вре- времени совпадает с нулевым моментом не только для сос- состояний автомата, но также и для входных и выходных сигналов. Это замечание касается в равной степени как автома- автоматов Мура, так и автоматов Мили и обусловливает необхо- необходимость рассмотрения входных и выходных последова- последовательностей вида х @) х A)... х (t—1) вместо последователь- последовательностей вида хA) xB)...x(t). Ясно, что подобный сдвиг во времени ни в коей мере не влияет на правильность полу- полученных в предыдущей главе результатов. Второе обстоятельство, относящееся только к авто- автоматам Мура, связано с тем, что при новом способе отсчета времени результатом применения входного еловая @)z(l)... ...x(t—1) к начальному состоянию автомата Мура следует считать не выходное слово у @) t/(l)... y(t—1), а выходное слово у{\) i/B)... y(t). Это обстоятельство связано с тем, что для автоматов Мура выходной сигнал, индуцированный каким-либо вход- входным сигналом x(t), при новом способе отсчета времени от- относится не к моменту t появления сигнала x(t), а к непо- непосредственно следующему за ним моменту времени t-\-l. Все результаты предыдущей главы сохраняют свою силу при условии их интерпретации с учетом этого обстоятель- обстоятельства. Единственный новый момент, вносимый введением нового способа отсчета времени, состоит в том, что теперь пустое слово оказывается всегда представленным в авто- автоматах Мура выходным сигналом у@), в то время как ранее оно не могло быть представлено никаким выходным сиг- сигналом. Эта особенность новой интерпретации, однако, несущественна в силу принятого в предыдущей главе условия, согласно которому пустое слово не принимается во внимание при представлении событий.
168 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Ш В отличие от абстрактной теории автоматов, в струк- структурной теории как входные, так и выходные каналы рас- рассматриваемых автоматов считаются состоящими, вообще говоря, из нескольких элементарных входных и соответ- соответственно элементарных выходных каналов. По всем элемен- элементарным каналам могут передаваться лишь так называемые элементарные сигналы. Набор всех возможных для дан- данного автомата элементарных сигналов называется струк- структурным алфавитом этого автомата. Структурный алфавит должен быть непременно конечным. Что касается природы букв (элементарных сигналов), составляющих структур- структурный алфавит, то в структурной теории автоматов ею обычно не интересуются. В структурной теории автоматов, далее, предполагает- предполагается, что каждый элементарный канал (входной или выход- выходной) подсоединяется к так называемому узлу. Узлы, к которым подсоединены элементарные входные кана- каналы, называются входными узлами автомата, а узлы, к которым подсоединены элементарные выходные сиг- сигналы — выходными узлами. В каждом автомате осуществляется определенная цир- циркуляция элементарных сигналов. Элементарные входные сигналы поступают сначала на входные узлы, а затем по присоединенным к ним элементарным входным каналам передаются внутрь автомата. Элементарные выходные сиг- сигналы, выходя из автомата по элементарным выходным каналам, поступают на выходные узлы, к которым эти каналы присоединены. При графическом изображении автоматов узлы обо- обозначаются точками или маленькими кружочка- кружочками, элементарные входные и выход- выходные каналы — сплошными линиями, а сами автоматы — различными геометрическими фигурами (пря- (прямоугольниками, треугольниками, кругами и т. п.). Для того чтобы отличить входные элементарные каналы от выходных элементарных каналов направление передачи по ним элементарных сигналов иногда отмечают стрел- стрелками. Согласно принятому соглашению относительно циркуляции элементарных сигналов это однозначно опре- определяет характер соответствующих элементарных кана- каналов. Например, на рис. 5 изображен автомат с двумя КОМПОЗИЦИЯ АВТОМАТОВ, СТРУКТУРНЫЕ СХЕМЫ 169 1 ? Рис. 5. выходными и тремя входными элементарными кана- каналами. Под термином «автомат» в структурной теории автоматов понимается абстрактный автомат с явно заданными элементарными входными и выходными кана- каналами и соответствующими им входными и выходными узлами. При этом предполагается также заданной некото- некоторая определенная нумерация как входных, так и выход- выходных узлов автомата. Входной и выходной сигналы такого автомата задаются конечными упорядоченными наборами элементарных сигналов. Подобные наборы мы будем на- называть векторами в структурном алфавите, составляющие их элементарные сигналы — компонен- компонентами вектора, а число компонент — размерностью вектора. Нумерация ком- компонент этих векторов соответствует ну- нумерации входных и выходных узлов, так что на г-й входной узел передается г-я компонента входного вектора (то есть вектора, изображающего входной сиг- сигнал) , а на /'-й выходной узел — /-я ком- компонента выходного вектора (вектора, изображающего выходной сигнал). В отличие от абстрактных входных и выходных сигналов, рассматривавшихся в предыдущей главе, век- векторные представления таких сигналов называются струк- структурными (входными и выходными) сигналами. Переход от абстрактных входных и выходных сигналов к структур- структурным сигналам носит название кодирования соответствую- соответствующих абстрактных сигналов в структурном алфавите авто- автомата. Вектор, получающийся в результате кодирования какого-либо абстрактного сигнала, обозначается обычно той же буквой, что и этот сигнал, но жирным шрифтом. При этом записью х мы будем выражать обычно пере- переменный входной структурный сигнал, а записью у — переменный выходной структурный сиг- сигнал автомата. В структурной теории принято несколько отличное от абстрактной теории понимание частичных авто- автоматов. Частичные автоматы рассматриваются здесь как такие автоматы, у которых функции переходов и выходов
170 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III в действительности (в каждой конкретной реализации автомата) всюду определены, однако в некоторых точках значения этих функций для нас безразличны, так что при желании мы можем определить их иначе, выбрав другую реализацию соответствующего автомата. Мы будем считать также, что на всех выходных узлах всякого автомата Мура выходные сигналы возникают в каждый момент автоматного времени, независимо от того, подаются ли какие-либо сигналы на его входные узлы или нет. Что касается автоматов Мили, то там положение будет иным: сигналы на выходных узлах автомата Мили в тот или иной момент автоматного времени появляются тогда и только тогда, когда втот же самый мо- момент времени сигналы поданы на в с е его входные узлы. Следует подчеркнуть, что во многих случаях при построении структурного алфавита автомата в этот алфа- алфавит включается в качестве особого сигнала так называе- называемый естественный нулевой сигнал, возникающий на изо- изолированных (то есть не подсоединенных ни к какому кана- каналу) узлах. Например, если элементарные сигналы пред- представляют собою электрические импульсы различной ве- величины, то естественным нулевым сигналом будет о т- сутствие каких бы то ни было импульсов в тот или иной момент автоматного времени. В случае включения в структурный алфавит таких естественных нулевых сигна- сигналов на выходных узлах автоматов Мили сигналы будут появляться и тогда, когда входные узлы этих автоматов не подсоединены ни к каким источникам сигналов. Следует, однако, иметь в виду, что существует ряд слу- случаев (например, при представлении сигналов в виде уров- уровней электрического потенциала), когда естественный нуле- нулевой сигнал не включается в структурный алфавит, то есть, иначе говоря, не рассматривается как один из возмож- возможных элементарных сигналов. В таких случаях для получе- получения определенных (принадлежащих структурному алфа- алфавиту) элементарных сигналов на выходных узлах автома- автоматов Мили подсоединение входных узлов этих автоматов к источнику сигналов является обязательным. Переходя к описанию способов композиции авто- автоматов, условимся всякий раз при рассмотрении той или иной системы автоматов считать, не оговаривая этого осо- s и КОМПОЗИЦИЯ АВТОМАТОВ, СТРУКТУРНЫЕ СХЕМЫ 171 бо, что все входящие в систему автоматы имеют один и тот же структурный алфавит и работают в одном и том же дискретном автоматном времени. Заметим, что введение общего автоматного времени для системы автоматов не означает, вообще говоря, отказ от рассмотрения асинх- асинхронных автоматов. Речь идет здесь о том, что совмест- совместная работа автоматов в системе определяет общее дискрет- дискретное время для всех входящих в нее автоматов, отличное, вообще говоря, от того автоматного времени, в котором эти автоматы работали бы вне данной системы. Сформулируем теперь определение общего способа ком- композиции автоматов. Пусть Ах,...,Ап (где лЗгО) — конечное множество автоматов. Произведем объединение этих автоматов в сис- систему совместно работающих автоматов следующим образом. Введем в рассмотрение некоторое конечное множество узлов, которые назовем внешними входными узлами, и не- некоторое конечное множество других узлов, которые на- назовем внешними выходными узлами. Эти узлы предпола- предполагаются отличными от входных и выходных узлов рассмат- рассматриваемых автоматов, которые, в отличие от только что введенных внешних узлов, мы будем называть внут- внутренними {входными и выходными) узлами. Чтобы подчер- подчеркнуть различие между двумя введенными типами узлов, внешние узлы называются иногда также полюсами. При графическом изображении системы автоматов внутренние узлы чаще всего обозначаются точками, а внешние — кру- кружочками. При построении системы автоматов фиксирует- фиксируется определенная нумерация как для внешних входных, так и для внешних выходных узлов (полюсов). Собственно композиция автоматов состоит в том, что в полученной системе, состоящей из данных автоматов Л,,..., Ап и внешних узлов, производится отождествление не- некоторых узлов (как внешних, так и внутренних). С точки зрения совместной работы системы автоматов смысл опе- операции отождествления узлов состоит в том, что элемен- элементарный сигнал, попадающий на один из узлов, входящих в множество отождествленных между собой узлов, попа- попадает тем самым на все узлы этого множества. В случае электронных цифровых автоматов операции отождествле- отождествления узлов соответствует соединение этих узлов проводни-
172 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Ш ками. Мы будем поэтому часто вместо отождествления узлов говорить об их соединении друг с другом. При графическом изображении отождествление узлов производится либо с помощью их фактического совме- совмещения, либо с помощью соединения их сплошными ли- линиями (вообще говоря, ломаными и, возможно, проходя- проходящими через другие узлы). В результате проведения операции отождествления (соединения) узлов, все узлы, входящие в данную сис- систему (как внутренние, так и внешние), разобьются на по- попарно непересекающиеся множества отождествленных (сое- (соединенных) между собою узлов. Некоторые из этих мно- множеств могут, разумеется, быть и одноэлементными (сос- (состоящими из единственного узла). После проведенных отождествлений система автома- автоматов превращается в так называемую схему, или сеть, автоматов. Мы будем считать, что автоматы, входящие в схему автоматов, работают совместно, если в каждый мо- момент t автоматного времени (t—0, 1, 2,...) на все внешние входные узлы схемы подается какой-либо набор элемен- элементарных сигналов (структурный входной сигнал схемы), а со всех внешних выходных узлов схемы снимается по- получающийся на них набор элементарных выходных сиг- сигналов (структурный выходной сигнал). Предположим, что в каждый момент дискретного вре- времени t = 0, 1, 2,... структурный выходной сигнал схемы однозначно определяется поступившей к этому времени (конечной) последовательностью структурных входных сиг- сигналов, начальными состояниями входящих в схему авто- автоматов и сделанными при построении схемы отождествле- отождествлениями (соединениями) узлов. В этом случае построенная схема может рассматриваться как некоторый автомат А, а сама схема называется структурной схемой этого автомата. Условимся говорить, что полученный только что опи- описанным способом автомат А есть результат композиции исходных автоматов Аг...,Ап. Входными узлами этого автомата служат внешние входные узлы схемы, а выход- выходными узлами — внешние выходные узлы. Следует подчеркнуть, что операция отождествления узлов определена неоднозначно. Поэтому существует, вооб- вообще говоря, много различных возможностей для компози- 1] КОМПОЗИЦИЯ АВТОМАТОВ, СТРУКТУРНЫЕ СХЕМЫ 173 ции одних и тех же автоматов. Вместе с тем далеко не вся- всякое отождествление узлов приводит к схеме, которую мож- можно рассматривать в качестве структурной схемы некоторо- некоторого автомата. Для того чтобы это можно было сделать, не- необходимо при отождествлении узлов соблюдать два усло- условия, которые мы будем называть условиями корректности построения схемы. Первое условие корректности по- построения схемы состоит в том, что в любой мо- момент автоматного времени на всех внешних выходных уз- узлах схемы должны появляться какие-то элементарные сигналы. Считая, что в схеме не должно быть заведомо лишних узлов (то есть таких узлов, которые можно исклю- исключить из схемы, не нарушая ее функционирования), мы мо- можем усилить это условие, считая, что в любой момент времени на каждый узел схемы (как внешний, так и внут- внутренний) поступает какой-либо элементарный сигнал. Второе условие корректности по- построения схемы состоит в том, что неоднознач- неоднозначность элементарных сигналов в каком-нибудь узле схемы хотя бы в один момент времени является недопустимой. Существуют два источника неоднозначности эле- элементарного сигнала в узле. Во-первых, неоднозначность может иметь место в случае, если к какому-нибудь узлу подсоединено одновременно несколько выходных узлов, являющихся источниками элементарных сигналов. При построении схемы необходимо, таким образом, избегать подобных соединений. На практике, однако, подсоединение к одному и тому же узлу нескольких выходных узлов часто не приводит к возникновению неоднозначности. Это бывает тогда, когда среди элементарных сигналов оп- определена некоторая естественная упорядо- упорядоченность, в силу которой одновременный приход не- нескольких элементарных сигналов эквивалентен приходу лишь наибольшего из всех фактически пришедших сигна- сигналов. Мы будем говорить, что в этом случае имеет место естественное разделение элементарных сигналов. Такое естественное разделение наблюдается, например, в случае релейно-контактных схем, а также во многих электронных схемах с импульсным представлением элементарных сиг- сигналов.
174 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III Во-вторых, источником неоднозначности элементар- элементарных сигналов в узле могут быть так называемые цикли- циклические цепи или петли структурных схем. Условимся на- называть цепью конечную упорядоченную последователь- последовательность автоматов ВК,...,ВЧ, входящих в схему, у которых хотя бы один из выходных узлов каждого предыдущего автомата создинен с некоторым входным узлом непосред- непосредственно следующего за ним автомата. Если к тому же хо- хотя бы один из выходных узлов последнего автомата цепи соединен с каким-нибудь входным узлом первого автома- автомата той же цепи, то цепь называется циклической (о ней также говорят, что она образует петлю в дан- данной схеме). Обо всех узлах, которые имеются в виду при определении цепи и петли, говорят как об узлах этой цепи пли этой петли. О цепи В, Bk говорят, что она начинается любым из входных узлов автомата В, и кончается любым из вы- выходных узлов автомата Bk. Условимся также, что два отож- отождествленных между собою узла а и b или даже один един- единственный узел составляют цепь (состоящую из пустого множества автоматов). В первом случае цепь начинается любым из узлов а или b и кончается другим из этих узлов. Во втором случае цепь начинается и кончается узлом а. Циклические цепи, состоящие из пустого множества авто- автоматов, называются тривиальными и в дальнейшем обычно не рассматриваются. Покажем на примере, каким образом может возник- возникнуть неоднозначность в петле. Предположим, что каждый из трех автоматов, входящих в цепь, изображенную на рис. 6, обладает следующим свойством: он работает в структурном алфавите, состоящем из двух элементарных сигналов 0 и 1 и превращает входной сигнал 0 в выходной сигнал 1, а входной сигнал 1 — в выходной сигнал 0; при этом входной и соответствующий ему выходной сигна- сигналы возникают водин и тот же момент вре- времени. Легко видеть, что такое определение сигналов во всех входящих в цепь узлах не может быть сделано без проти- противоречия. Действительно, полагая, что в какой-то момент временив узле2 имелся сигнал 0, мы получим, что в узле 2 в тот же самый момент времени должен иметься сигнал 1, S 1] КОМПОЗИЦИЯ АВТОМАТОВ, СТРУКТУРНЫЕ СХЕМЫ 175 в узле 3 — сигнал 0, а, следовательно, в узле.2 — сигнал 1. Полагая, что в узле 1 имелся сигнал 1, мы также придем к противоречию. Петли, подобные только что рассмотренной петле, н е- корректно построены. Некорректность тако- такого рода не будет иметь места, если хотя бы один из вхо- входящих в петлю автоматов является автоматом Му- Мура , а не автоматом Мили. Действительно, автомат Мура реагирует на тот или иной входной сигнал . ^ i 1 и . выходным сигналом, " " ' ' " ** возникающим на один элементарный промежу- промежуток времени позже, чем вызвавший его по- появление входной сиг- сигнал. Поэтому в рассмот- рассмотренном примере сигнал 0, переданный в момент времени t в узел 1, вы- вызвал бы в результате пе- передачи его вдоль петли появление в узле 1 сиг- сигнала 1 не в момент вре- времени Лав один из бо- более поздних моментов времени. Таким образом, никакого противоречия не возникло бы. Разберем теперь вопрос о том, каким образом при по- построении схемы можно удовлетворить первому условию корректности. При включении в структурный алфавит естественного нулевого сигнала это условие соблюдается автоматически. В противном же случае для соблюдения этого условия необходимо, при проведении операции отождествления узлов, выполнить определенные, описы- описываемые ниже требования. Прежде всего заметим, что все внешние входные узлы и все внутренние узлы, являющиеся выходными узлами автоматов Мура, по определению, получают элементарные сигналы во все моменты автоматного времени. Назовем все эти узлы задающими узлами. Нетрудно сформулиро- сформулировать условие, обеспечивающее передачу элементарных 6.
176 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III сигналов от задающих узлов на все узлы автомата в каждый момент автоматного времени. Для этой цели дос- достаточно напомнить, что выходные сигналы у автоматов Мили, по определению, возникают одновременно с по- поступлением сигналов на все его входные узлы. Соответст- Соответствующее условие можно сформулировать, следовательно, таким образом: 1.1. Для любого узла схемы должна иметься цепь, состоя- состоящая из некоторого множества (может быть, пустого) автоматов Мили, начинающаяся каким-либо задающим узлом и кончающаяся данным узлом. Назовем это условие первым условием правильности построения схемы. Проведенные выше рассуждения поз- позволяют сформулировать два других условия правиль- правильности схемы: 1.2. Любой узел схемы должен быть отождествлен {соединен) не более чем с одним внешним входным или внут- внутренним выходным узлом. 1.3. Любая нетривиальная (содержащая не менее одного автомата) петля в схеме должна содержать в своем составе хотя бы один автомат Мура. Схема, в которой выполнены все три условия: 1.1, 1.2 и 1.3, называется правильной схемой, а операция, состоя- состоящая в построении такой схемы — правильной компози- композицией автоматов. Из проведенных выше рассуждений вытекает следую- следующий результат. 1.4. Всякая правильная схема может рассматриваться как структурная схема некоторого автомата. Предложение 1.4 допускает, очевидно, и другую, экви- эквивалентную, формулировку. В результате правильной композиции любого конечного множества автоматов получается схема некоторого автомата. Таким образом, правильная композиция задает неко- некоторый класс операций на множестве автоматов. Рассмот- Рассмотрим некоторые частные случаи таких операций. Первый случай — операция пересоединения внешних узлов (композиция пустого множества автоматов). В этом случае схема предполагается состоящей только из внешних (входных и выходных) узлов. Из условий 1.1 и 1.2 §1] КОМПОЗИЦИЯ АВТОМАТОВ, СТРУКТУРНЫЕ СХЕМЫ 177 взятые, / 2 3 г з Рис. 7. непосредственно следует, что каждый выходной узел в такой схеме должен быть соединен в точности с одним входным узлом. Схема представляет собою автомат Мили без памяти (с одним-единственным состоянием). Компонен- Компонентами структурного выходного сигнала автомата служат компоненты его структурного входного сигнала, вообще говоря, в другом порядке и, быть может, повторенные по несколь ко раз. На рис. 7 показан один из приме ров такой композиции. Автомат, полученный в результате этой композиции, сопоставляет струк- структурному входному сигналу х—(а, р, у) структурный выходной сигнал у= = (P.P.Y.Y.Y)- Второй случай — операция подстановки вхо- входов в автомате. Эта операция состоит в следующем. Рас- Рассматривается произвольный автомат А с т входными и с п выходными узлами. Строится система, состоящая из автомата А из т внешних входных и из л выходных узлов, j-й выходной узел автомата А отождествляется с j-м внеш- внешним выходным узлом (i = l,...,n). Каждый входной узел автомата А отождествляется в точности с одним внешним входным узлом. Полученный в результате композиции авто- автомат действует так же, как и ис- исходный автомат А при условии, что на автомат А подается не исходный структурный входной сигнал х, а структурный вход- входной сигнал, полученный из него в. результате некоторой подстановки (вообще говоря, неоднозначной) его компо- компонент. На рис. 8 показан один из примеров такой конст- конструкции. Третий случай — операция подстановки вы- выходов. Определяется по аналогии с предыдущим случаем. Четвертый случай — операция суперпози- суперпозиции автоматов. Эта операция состоит в следующем. Рас- Рассматриваются два автомата А и В. Пусть у автомата А имеется т входных и п выходных узлов, а у автомата 12 в. М. Глушпов Рис. 8.
178 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III В —п входных и р выходных узлов. Суперпозиция этих автоматов заключается в построении системы, состоящей из автоматов А и В, т внешних входных и р внеш- внешних выходных узлов посредством соединения г-го внеш- внешнего входного узла с г-м входным узлом автомата А (/=1,... ...,т), /-го выходного узла автоматам! с /-м входным узлом автомата В (j—l,..., n) и к-то выходного узла автомата В с А-м внешним выходным узлом (А=1,..., р). Пятый случа й—операция объединения автома- автоматов. Эта операция состоит в следующем. Рассматривается любое конечное множество автоматов А,,..., Ар. Каждый ав- автомат Aiимеет т,- входных и nt выходных узлов (t=l,..., p). Строится система, состоящая из данных автоматов, из тх-\-тг-\-...-\-тр внешних входных узлов и из га,+гаг+... ...+пр внешних выходных узлов. При этом каждый из внешних входных узлов соединяется в точности с одним из входных узлов автоматов Ах А ; точно такое же отождествление, по принципу взаимно однозначного со- соответствия, осуществляется между выходными узлами данных автоматов и внешними выходными узлами. Все описанные конструкции являются частными слу- случаями правильной композиции автоматов, причем такой композиции, в результате которой получаются схемы без петель. Нетрудно убедиться в том, что операции подста- подстановки входов и выходов (второй и третий случаи) могут быть получены в результате последовательного примене- применения операций пересоединения внешних узлов и супер- суперпозиции автоматов (первый и четвертый случаи). Опера- Операции же, описанные в первом, четвертом и пятом случаях, не выражаются, очевидно, друг через друга. В дальнейшем мы будем иметь дело в основном с пра- правильными схемами. Однако не следует забывать, что пра- правильные схемы не исчерпывают всех корректно построен- построенных схем; это позволяет в ряде случаев пользоваться схе- схемами, не принадлежащими к числу правильных. Укажем два важнейших случая такого рода. Во-первых, в случае наличия в структурном ал- алфавите естественного нулевого сигнала можно не соблю- соблюдать, очевидно, условие правильности 1.1 и тем не менее получать корректно построенные схемы. Оказывается возможным, однако, так интерпретировать эти схемы, что § 1] КОМПОЗИЦИЯ АВТОМАТОВ, СТРУКТУРНЫЕ СХЕМЫ 179 условие 1.1 будет в них выполненным. Эта интерпретация осуществляется с помощью введения так называемого ну- нулевого автомата. Нулевым автоматом мы будем называть автомат Мили с одним входным и одним выходным узлом, отличающий- отличающийся тем, что на его выходном узле при любом сигнале на входном узле появляется нулевой сигнал. При наличии в схеме узлов, для которых не выполняет- выполняется условие 1.1, можно, не изменяя условий работы схемы, вставить в нее добавочные цепи из нулевых автоматов, соединяющие задающие узлы со всеми такими узлами. После этой операции условие 1.1 будет, очевидно, вы- выполнено. Во-вторых, в случае, когда имеется естественное разделение элементарных сигналов, можно, очевидно, не соблюдать условие правильности 1.2 и, тем не менее, по- получать корректно построенные схемы. Однако и в этом случае оказывается возможным так интерпретировать указанные схемы, что условие 1.2 будет выполняться. Этой цели можно достичь, введя понятие разделяющего автомата Мили, или просто разделения. В разделяющем автомате Мили на единственный выходной узел автома- автомата передается всегда самый большой элементарный сиг- сигнал (в заданной естественной упорядоченности элементар- элементарных сигналов) из числа входных сигналов, поданных в то же самое время на его входные узлы. Если в схеме с есте- естественным разделением сигналов имеется соединение ка- какого-нибудь узла с несколькими внешними входными или внутренними выходными узлами а, ak, то можно счи- считать этот узел соединенным с выходным узлом разде- разделяющего автомата, входные узлы которого соединены с узлами а, ak. При таком дополнении схемы ее работа, очевидно, не изменится, но условие 1.2 будет уже соблю- соблюдаться. В заключение рассмотрим вопрос о состояниях авто- автомата А, полученного в результате композиции некоторых автоматов А1,..., Ak. Ясно, что состояниями автомата А можно считать упорядоченные наборы (a,,..., ak) состояний автоматов Al,..., Ak. Такой набор мы будем называть структурным состоянием автомата А и обозначать малой латинской жирной буквой а. 12*
180 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Ill В дальнейшем будем предполагать, что в результате композиции автоматов, кроме указанных комбинаций уже имевшихся состояний, других состояний не возни- возникает. Тогда справедливо следующее: 1.5. Число состояний автомата, полученных в резуль- результате композиции автоматов А,,..., А п, равно произведению чисел состояний всех этих автоматов. § 2. Канонический метод структурного синтеза автоматов Основной задачей теории струк- структурного синтеза автоматов является на- нахождение общих приемов построения структурных схем автоматов на основе композиции автоматов, принадлежа- принадлежащих к заранее заданному конечному числу типов автома- автоматов. Более точно эта задача может быть сформулирована следующим образом. 2.1. Пусть нам задано некоторое конечное множество автоматов в одном и том же структурном алфавите 2. На- Назовем эти автоматы элементарными автоматами и пред- предположим, что каждый из элементарных автоматов имеется в нашем распоряжении в неограниченном числе экземпляров. Пусть далее задан произвольный конечный автомат А в том же самом структурном алфавите S. Необходимо найти алгоритм, позволяющий по заданному автомату А строить некоторую композицию элементарных автома- автоматов так, чтобы полученный в результате композиции автомат индуцировал отображение, продолжающее ото- отображение, индуцируемое автоматом А. Следует подчеркнуть, что далеко не при всяком выборе системы элементарных автоматов эта задача имеет решение. В том же случае, когда она имеет решение (для произволь- произвольного конечного автомата Л), будем говорить, что задан- заданная система элементарных автоматов структурно полна. Иногда пользуются также понятием ослабленной струк- структурой полноты. Именно, говорят, что система элементар- элементарных автоматов ослабленно структурно полна, если для любого отображения ф, индуцируемого конечным автома- автоматом, можно найти такую композицию элементарных автоматов, что получаемый в результате этой композиции автомат индуцирует отображение, которое продолжает §2] КАНОНИЧЕСКИЙ МЕТОД СТРУКТ. СИНТЕЗА АВТОМАТОВ 181 либо само отображение ф, либо отображение, полученное из отображения ф в результате применения к нему опера- операции выравнивания длин слов (см. гл. 2, § 2). Разумеется, при этом предполагается, что автомат, индуцирующий отображение ф, задан в том же структурном алфавите, что и все элементарные автоматы, о которых идет речь. За- Заметим также, что операция выравнивания в применении к отображению ф, являющемуся автоматным отображением, означает просто дописывание равного числа пус- пустых букв справа к входным словам и слева к выходным словам отображения ф. В настоящее время нет сколько-нибудь эффективных методов (существенно более простых, чем метод перебора всех вариантов) решения основной задачи структурного синтеза при любом выборе структурно полных систем элементарных автоматов. Мы будем поэтому излагать так называемый канонический метод структурного син- синтеза автоматов, пригодный для структурно полных систем элементарных автоматов некоторого специального вида. Канонический метод структурного синтеза оперирует с элементарными автоматами, разделяющимися на два больших класса. Первый класс составляют элементарные автоматы с памятью (то есть автоматы, имеющие более одного внутреннего состояния); такие автоматы называют- называются элементами памяти или запоминающими элементами. Второй класс составляют автоматы без памяти (то есть автоматы с одним внутренним состоянием), которые при- принято называть комбинационными, или логическими, элемен- элементами. При принятых нами предположениях результатом композиции логических элементов являются всегда авто- автоматы без памяти или, как их иначе называют, комбина- комбинационные схемы. Каждая комбинационная схема (автомат без памяти) характеризуется векторной функцией выходов, устанавливающей зависимость структурного выходного сигнала у(х) от структурного входного сигнала х (t) в один и тот же момент автоматного времени: y(t) = K(x(t)). Задание такой функции эквивалентно заданию системы обычных (скалярных) функций, устанавливающих зави-
182 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III симость каждой компоненты вектора у(х) от компонент (в общем случае всех) вектора х (t). По аналогии с основной задачей структурного синтеза автоматов может быть сформулирована следующая за- задача структурного синтеза комбинационных схем. 2.2. Пусть нам задано некоторое конечное множество логических элементов (автоматов без памяти) в одном и том же структурном алфавите 33; предположим, что каж- каждый из таких элементов имеется в нашем распоряжении в неограниченном числе экземпляров. Требуется найти общий конструктивный прием (алгоритм), позволяющий по любо- любому конечному автомату А без памяти в структурном алфавите S3 осуществить некоторую композицию заданных логических элементов так, чтобы полученная в результате композиции комбинационная схема имела ту же самую векторную функцию выходов, что и заданный автомат А. Далеко не при всяком выборе системы логических эле- элементов сформулированная задача имеет решение. В том случае, когда она имеет решение (для произвольного ко- конечного автомата без памяти), мы будем говорить, что заданная система логических элементов функционально полна. Следует заметить, что на практике векторная функ- функция выходов \ исходного, для комбинационного синтеза, автомата без памяти А бывает задана не во всех точках (точнее говоря, в некоторых точках значения ее для нас безразличны). В таком случае комбинационная схема, получаемая при решении задачи комбинационного синте- синтеза, должна иметь векторную функцию выходов, совпадаю- совпадающую с функцией К во всех точках, в которых значения функции \ определены. Основная идея канонического метода структурного синтеза автоматов заключается в том, чтобы свести задачу структурного синтеза произвольных автоматов к задаче структурного синтеза комбинационных схем (автоматов без памяти). Для осуществления этой идеи производится специальный выбор запоминающих элементов. При кано- каноническом методе структурного синтеза в качестве запоми- запоминающих элементов выбираются автоматы Мура, обладаю- обладающие полной системой переходов и полной системой вы- выходов. § 2] КАНОНИЧЕСКИЙ МЕТОД СТРУКТ . СИНТЕЗА АВТОМАТОВ 183 2.3. Полнота системы переходов в автомате означает, что для любой упорядоченной пары состояний этого авто- автомата найдется входной сигнал, переводящий первый эле- элемент этой пары во второй. Иначе говоря, если б (а, х) — функция переходов автомата, то для полноты системы переходов в этом автомате необходимо и достаточно, что- чтобы для любой пары (а, Ь) его состояний уравнение Ь=д (а, х) было бы разрешимым относительно входного сигна- сигнала х. 2.4. Полнота системы выходов в автомате Мура озна- означает, что каждому состоянию автомата соответствует свой собственный выходной сигнал, отличный от выход- выходного сигнала, соответствующего любому другому состоянию. Иначе говоря, для полноты системы выходов автомата Мура необходимо и достаточно, чтобы его сдвинутая функция выходов у = \(а) осуществляла взаимно однозначное отобра- отображение множества состояний автомата на множество всех его выходных сигналов. Из определения 2.4. непосредственно вытекает следую- следующий результат. 2.5. В автомате Мура с полной системой выходов мож- можно отождествить внутренние состояния с выходными сиг- сигналами автомата. Значение этого результата состоит в том, что он позволяет употреблять один и тот же (струк- (структурный) алфавит не только для обозначения (кодирования) входных и выходных сигналов, но и для кодирования внут- внутренних состояний автоматов (в случае автоматов Мура с полной системой выходов). Для автоматов с полной системой переходов оказывает- оказывается целесообразным ввести следующее определение. 2.6. Функцией входов :r=fi (a, b) автомата А с полной системой переходов, имеющего функцию б(а, х) в качестве своей функции переходов, называется функция (вообще го- говоря, неоднозначная), заданная на упорядоченных парах состояний автомата А. Для каждой такой пары (а, Ь) в качестве значения функции входов \i(a, b) выбирается (не- (непустое) множество всех тех входных сигналов х, для кото- которых б(а, х)=Ь. Функции входов конечных автоматов мы будем зада- задавать таблицами входов. Таблица входов отличается тем, что на пересечении а-й строки и 6-го столбца в ней поме-
184 СТРУКТУРНАЯ ТКОРИЯ АВТОМАТОВ [Гл. III § 2] КАНОНИЧКСКИЙ МКТОД СТРУКТ. СИНТЕЗА АВТОМАТОВ 185 щено множество входных сигналов, вызывающих переход автомата из состояния а в состояние Ъ. Следует заметить, что почти все употребляющиеся в реальных цифровых автоматах запоминающие элементы представляют собою автоматы Мура с полной системой переходов и с полной системой выходов. Таким образом, ограничения, вводимые каноническим методом структурного синтеза, с практи- практической точки зрения являются несущественными. Можно доказать справедливость следующего утвержде- утверждения, которое мы будем называть теоремой о структурной полноте. 2.7. Всякая система элементарных автоматов, которая содержит автомат Мура с нетривиальной памятью, об- обладающий полной системой переходов и полной системой выходов, и какую-нибудь функционально полную систему логических элементов (элементарных автоматов без памя- памяти), является структурно полной системой. Существует общий конструктивный прием (канонический метод струк- структурного синтеза) i позволяющий в рассматриваемом случае свести задачу структурного синтеза произвольных конеч- конечных автоматов к задаче структурного синтеза комбина- комбинационных схем. Для доказательства теоремы 2.7 рассмотрим произ- произвольный конечный автомат А. Возьмем какие-либо за- запоминающие элементы Ах,..., А , обладающие полными системами переходов и выходов, причем такие, что произ- произведение чисел их состояний не меньше, чем число состоя- состояний автомата А. Каждому состоянию а автомата А отнесем конечную упорядоченную последовательность (ах, ..., а„) состояний автоматов Ах, ...,Ар так, что различным состоя- состояниям автомата А ставятся в соответствие различные по- последовательности. Этот процесс называется кодированием состояний автомата А. После кодирования состояний (выполняемого произ- произвольным образом) возникают структурные состояния авто- автомата А (см. § 1). Используя предложение 2.5, мы можем считать эти структурные состояния векторами в струк- • турном алфавите; компонента а(- в структурном состоянии (а,, .... ар) заменяется при этом групповой компонентой структурного выходного сигнала г\ запоминающего эле- элемента Аг соответствующего состоянию а(. Обозначим структурное состояние (vx,...,vp) через v. Его можно одновременно рассматривать не только как структурное состояние, но и как структурный выходной сигнал объединения (см. § 1) автоматов АХ,...,А. Обо- Обозначим через и структурный входной сигнал этого объеди- объединения. Структурный входной сигнал и естественно назвать структурным входным сигналом памяти автомата А. Рас- Рассмотрим, кроме того, внешний структурный входной сиг- сигнал х автомата А. Благодаря проведенному выше коди- кодированию состояний мы можем функцию переходов и закон функционирования автомата А представить в векторном виде Переход автомата А из состояния v (t) в состояние v(t-\-l) складывается из соответствующих переходов авто- автоматов Ах,..., А . Каждый из последних происходит под действием структурного сигнала ut (t), подаваемого на вход автомата At и определяемого с помощью функции входов fi(- этого автомата (i=l,..., р). Структурные сигна- сигналы иг (t) естественным образом объединяются в структур- структурный входной сигнал и (t) памяти автомата А, а из функ- функций [1,- строится объединяющая их (содержащая их в ка- качестве своих компонент) векторная функция \L(v(t), V B) Подставляя в формулу B) значение v (t -\- 1) из формулы A), мы приходим к новой формуле = \i(v(t), 8(v(t), C) Определяемая этой формулой векторная функция q(v,x) называется (векторной) функцией возбуждения автомата А или функцией входов его памяти. Она определяет, какой структурный входной сигнал и (t) в любой момент време- времени- t должен быть подан на память автомата А, находя- находящегося в состоянии v(t), если на внешние входные узлы автомата подается в тот же самый момент времени структурный входной сигнал x{t). Благодаря совпадению всех рассмотренных сигналов во времени сигнал u(t) можно рассматривать как струк-
186 СТРУКТУРНАЯ ТКОРИЯ АВТОМАТОВ [Гл. III тучный выходной сигнал некоторой комбинационной схе- схемы, отличающейся тем, что ее структурный входной сиг- сигнал получается в результате объединения структурного входного сигнала х (t) автомата А и структурного выход- выходного сигнала v (t) его памяти. Реализуя эту схему в виде композиции заданных логических элементов (что возмож- возможно благодаря предположению о функциональной полноте системы логических элементов), мы осуществим, очевид- очевидно, все те переходы, которые предусматриваются функцией переходов автомата А. Построенная комбинационная схема называется схе- схемой обратных связей автомата А, а уравнение D) u — q(v, ас), D) определяющее реализуемую этой схемой векторную функ- функцию выходов,— каноническим (векторным) уравнением автомата А. При переходе к компонентам это уравнение распадается на систему канонических уравнений авто- автомата А. Заметим, что функция возбуждения Q (v, х) автомата является, вообще говоря, неоднозначной функцией, по- поскольку неоднозначными, в общем случае, являются функ- функции входов (л, запоминающих элементов А( {i=i р). Неоднозначностью этой функции можно воспользоваться для получения возможно более простой схемы обратных связей в автомате. Значительные возможности упрощения схем обрат- обратных связей — и определяемых ниже схем выходов — за- заключены в выборе рационального способа кодирования состояний синтезируемого автомата. В выборе рациональ- рационального, с указанной точки зрения, кодирования состояний автомата состоит так называемая проблема кодирования, являющаяся одной из трудных проблем структурной тео- теории автоматов. В настоящее время решение этой пробле- проблемы в каждом конкретном случае сопряжено, как правило, с перебором большого числа различных вариантов коди- кодирования состояний. Построением схемы обратных связей процесс структур- структурного синтеза исходного автомата А еще не заканчивается. Необходимо еще обеспечить в каждый момент времени t образование требуемого законом функционирования авто- § 2] КАНОНИЧЕСКИЙ МКТОД СТРУКТ. СИНТКЗА АВТОМАТОВ 187 мата А структурного выходного сигнала y(t). В зависимо- зависимости от того, является ли заданный автомат -А автоматом Мили или Мура, образование его выходного сигнала бу- будет определяться либо законом y{t)=l{v{t), x(t)), либо за- законом y(t)=l(v(t)) (см. § 1). И в том, и в другом случае необходимый структурный выходной сигнал может быть обеспечен комбинационной схемой, которую мы будем называть схемой выходов исход- исходного автомата А. В случае автоматов Мили эта схема реа- реализует векторную функцию y=\(v,x), а в случае автома- автоматов Мура—векторную функцию у=Цг). В обоих случаях схема выходов автомата может быть получена в результа- результате композиции заданных логических элементов в силу Зопоминоюицоу часть .. .71 Вых полюет Комбинационная часть Вх. полюсы Рис. 9. предположения о функциональной полноте системы этих элементов. Тем самым теорема 2.7 полностью доказана. Заметим еще, что при структурном синтезе автомата обе построенные комбинационные схемы (схема обратных свя- связей и схема выходов) обычно объединяются в одну общую комбинационную схему, называемую комбинационной ча- частью автомата,— в противовес его запоминающей части, представляющей объединение (см. § 1) всех запоминаю- запоминающих элементов автомата. С помощью такого объединения часто оказываются возможными дальнейшие упрощения схемы. Структурная схема всякого автомата, синтезированного в соответствии с каноническим методом структурного синте- синтеза, имеет вид, изображенный на рис. 9. Нетрудно видеть, что эта структурная схема будет корректно построенной или правильной, если корректно
188 СТРУКТУРНАЯ ТКОРИЯ АВТОМАТОВ [Гл. III построена или соответственно правильна его комбина- циэнная часть (вместе с входными и выходными полю- полюсами). Таким образом, канонический метод синтеза полностью сводит все вопросы, возникающие при синтезе произволь- произвольных конечных автоматов, к соответствующим вопросам, относящимся к случаю автоматов без памяти. В качестве примера рассмотрим применение канони- канонического метода структурного синтеза к синтезу схемы ав- автомата Мили А (в структурном алфавите A, 2, 3)), задан- заданного таблицами переходов и выходов III. 1 и III.2. Таблица III.1 Таблица III.2 1 2 3 а, О, «к О4 аз а, а, а, а, «я as — Я4 1 2 3 а, A.1) 3,1) C,3) B,2) C,3) A,1) B,1) B,2) а. A,3) C,2) as — B,3 В качестве элемента памяти выберем автомат Мура В, задаваемый таблицей переходов III.3. Таблица 1 2 3 1 1 2 3 2 2 3 1 III.3 3 3 1 2 Принимая, что отметка состояния i в автомате В есть также i (г=1, 2, 3), мы получим, очевидно, автомат Му- Мура с полной системой переходов и с полной системой вы- выходов. Для кодирования состояний автомата А в структурном алфавите достаточно взять два элемента памяти, посколь- поскольку 32]> 5. Систему кодирования состояний автомата А' % 2] КАНОНИЧКСКИЙ МЕТОД СТРУКТ. СИНТЕЗА АВТОМАТОВ 189 выбираем произвольным образом, например, так: о1 = A,1), аг = B,2), 1о, = C,3), о4=A,2), а, = A,3). После этого таблица переходов автомата А представится в виде табл. III. 4. Выпишем таблицу входов элемента памяти В (см. табл. Ш.5). Таблица Ш.4 Таблица Ш.5 1 2 3 A B A A ,1) ,2) .3) .2) B A B ,2) ,1) ,2) C A C .3) ,1) .3) A C A ,2) ,3) ,3) A A .3) ,2) 1 2 3 1 1 3 2 2 2 1 3 3 3 2 1 Используя табл. Ш.5 и таблицу переходов автомата А (табл. III.1), легко построить (векторную) функцию возбуждения автомата А. Обозначим через х—{х) внеш- внешний структурный входной сигнал автомата А; через v= — (V^) — структурный выходной сигнал этого автомата, а через г*=(и1 ,иг) — структурный входной сигнал его памя- памяти. Для задания функции возбуждения автомата А нужно задать зависимость входных сигналов их и иг от сигналов х, vx, vt. Для задания функций возбуждения здесь и дальше мы будем строить таблицу, выписывая явно значения компонент функции возбуждения на всех наборах элемен- элементарных сигналов, на которых эта функция задана. С це- целью сокращения места таблицу для функции возбужде- возбуждения будем объединять с таблицей для (векторной) функ- функции выходов автомата, задающей компоненты внешнего структурного выходного сигнала у={ух,у^ как функции элементарных сигналов х, vx, v2. Наборы элементарных сигналов х, vx, vt, на которых не определены ни функция возбуждения, ни функция выходов, мы не будем включать в таблицу. Получаемую таким образом объединенную таблицу для функций возбуждения и выходов автомата мы условимся
190 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Ш называть функциональной таблицей данного автомата. Она является исходным пунктом для синтеза соответствую- соответствующей комбинационной схемы. В рассматриваемом случае из таблиц переходов и выходов автомата А (табл. II 1.1 и III.2) и таблицы входов элемента памяти В (табл. III.5) мы непосредственно получаем функциональную таблицу автомата А (табл. III. 6) Таблица Ш.6 X 1 1 1 2 2 2 2 3 3 3 3 1 2 1 1 2 3 1 1 2 3 1 i>2 1 2 2 1 2 3 2 1 2 3 3 u, 2 3 3 1 1 2 1 1 1 1 2 3 2 3 1 2 2 2 1 3 1 2 1 3 3 2 3 3 1 2 2 Иг 1 2 3 1 3 1 2 3 1 2 3 После построения этой таблицы задача структурного синтеза автомата А оказалась сведенной к задаче синтеза комбинационной схемы с тремя входными полюсами (x,vl,i\) и четырьмя выходными полюсами (и1У и2, у1, уг). Методы синтеза комбинационных схем мы будем рассматривать в последующих параграфах настоящей главы. § 3. Булевы функции Из соображений технического характера при построе- построении схем современных электронных цифровых автоматов в качестве структурного алфавита выбирается обычно алфавит, состоящий из двух элементов. Такой алфавит принято называть двоичным, а его буквы отождествлять с цифрами 0 и 1. Употребление двоичного алфавита в качестве струк- структурного алфавита в цифровых автоматах не следует путать с употреблением двоичной системы счисления для пред- §з] БУЛКВЫ ФУНКЦИИ 191 ставления чисел в таких автоматах. Как известно, с двоич- двоичным структурным алфавитом уживается не только двоич- двоичная, но также десятичная и любая другая система пред- представления чисел в автоматах. В современных электронных цифровых автоматах наи- наиболее часто употребляются такие представления элемен- элементарных сигналов, составляющих двоичный структурный алфавит: 1) наличие импульса электрического тока и от- отсутствие импульса электрического тока, 2) высокий элект- электрический потенциал и низкий электрический потенциал, 3) электрический ток большой силы и электрический ток малой силы, 4) импульсы различной (положительной и отрицательной) полярности. В случае 1) наличие импуль- импульса обычно принимается за единицу, а его отсутствие — за нуль. В других случаях возможны различные способы отождествления реальных элементарных сигналов с ну- нулем и единицей. Заметим, что в первом из рассмотренных случаев имеет место естественное разделение элементар- элементарных сигналов, а отсутствие импульса служит естественным нулевым сигналом (см. § 1). При синтезе комбинационных схем в двоичном струк- структурном алфавите условия работы таких схем задаются с помощью функций, принимающих лишь два значения 0 и 1, и зависящих от переменных, каждая из которых так- также может принимать лишь два значения 0 и 1. Условимся о том, что в дальнейшем переменные, спо- способные принимать лишь два значения: 0 и 1, будут назы- называться двоичными или булевыми переменными. Функции от любого конечного числа двоичных пере- переменных, также способные принимать лишь два значения — 0 и 1, принято называть переключательными, или булевы- булевыми, функциями. Это название функций связано с тем, что реализующие такие функции комбинационные схемы осу- осуществляют переключения выходных каналов, подавая на них сигналы то одного, то другого вида. Название «бу- «булевы» возникло в связи с использованием функций рас- рассматриваемого типа в алгебре логики, начало которой было положено трудами английского ученого 19 в. Дж. Буля. Понятие переключательной функции иногда трактует- трактуется более широко. А именно под переключательной функ-
192 СТРУКТУРНАЯ ТКОРИЯ АВТОМАТОВ [Гл. Ш цией можно понимать любую функцию от конечного чис- числа аргументов, которая вместе со всеми своими аргумен- аргументами принимает значения из произвольного конечного множества значений. В то же время термин «булева» упо- употребляется исключительно для обозначения функций двоичных переменных, то есть переменных, могущих принимать лишь два значения. Поэтому в дальнейшем Изложении" мы будем называть эти функции булевыми, а не переключательными, оставляя термин «переключатель- «переключательные» для более широкого класса функций. Областью определения булевой функции от п перемен- переменных служит совокупность всевозможных ге-м е р н ы х упорядоченных наборов (векторов размер- размерности п), компонентами которых являются буквы двоичного алфавита (двоичные цифры) 0 и 1. Эти наборы называются кортежами, а иногда, используя геометри- геометрическую терминологию, также точками. Последнее назва- название связано с тем, что имеется естественная возможность отождествить различные re-мерные (булевы) наборы с вер- вершинами единичного re-мерного куба, одна из вершин кото- которого совмещена с началом координат. В дальнейшем изложении мы почти всегда будем иметь дело с наборами, компонентами которых являются двоич- двоичные цифры 0 и 1. Поэтому обычно мы не будем специально оговаривать это обстоятельство. В случае же необходимо- необходимости подчеркнуть, что рассматриваются именно наборы с двоичными, а не с какими-нибудь иными компонентами, они будут называться булевыми, или двоичными, наборами. Для любого п—1, 2,... среди re-мерных двоичных набо- наборов можно ввести естественную (так называемую лексико- лексикографическую) упорядоченность. Для этой цели заметим прежде всего, что любой двоичный набор можно рассмат- рассматривать как представление некоторого целого неотрицатель- неотрицательного числа в двоичной системе счисления. Например, на- набор A110) представляет число 0+1-2+1-22 + 1-2*=14, а набор @101)—число 1+0-2+1-22+0-2'=5. Число, кото- которое представляется данным набором (рассматриваемым как двоичный код), мы условимся называть номером этого набора. Естественную упорядоченность re-мерных (двоичных) наборов мы получим, расположив эти наборы в порядке 13] БУЛЕВЫ ФУНКЦИИ 193 возрастания их номеров. Первым в таком расположении будет нулевой набор, все компоненты которого являются нулями, последним — единичный набор, все компо- компоненты которого являются единицами. Единичный набор следует отличать от набора, имеющего номер единица. У этого последнего набора лишь последняя компо- компонента равна 1, а все остальные компоненты являются нулями. Двоичный набор полностью определяется своим номе- номером и своей размерностью. Поэтому, когда размерность наборов задана, их можно отождествлять с их номерами. Набор, имеющий номер i, мы будем называть i-м набором. Наборы размерности п нумеруются целыми числами от 0 до 2"—1. Отсюда, в частности, вытекает следующее предложение. 3.1. Имеется точно 2" двоичных п-мерных наборов >=1, 2, ...)• Нетрудно также подсчитать число различных булевых функций от п переменных. Для каждого набора значений переменных, независимо от значений функции на других наборах, мы можем выбрать в качестве значения функции 0 или 1. Следовательно, прибавление каждого нового набора в область определения булевой функции увели- увеличивает число различных булевых функций ровно в два раза. На одном наборе можно определить две различные бу- булевы функции, на двух наборах — 22 различные булевы функции, и т. д. Продолжая подобным образом и учитывая результат, сформулированный в теореме 3.1, мы придем к предложению 3.2. Имеется точно 22" различных булевых функций от п переменных (ге = 1,2, ...). Следует отметить, что здесь и далее к числу функций от п переменных относятся и такие функции /(ж,, х2,..., хп), которые в действительности не зависят от тех или иных переменных х;. Таким образом, всякая функция от мень- меньшего числа переменных автоматически включается в число функций любого большего числа переменных. В частности, функции-константы (тождественный нуль и тождествен- тождественная единица), которые естественно рассматривать как функции от нуля переменных, можно рассматривать 13 в. М. Глушков
194 СТРУКТУРНАЯ ТКОРИЯ АВТОМАТОВ [Гл. III §3] БУЛКВЫ ФУНКЦИИ 195 также как функции одного, двух, трех и, вообще, лю- любого (конечного) числа переменных. Условимся называть невырожденными функциями от п переменных такие функции, которые существенно зави- зависят от псех этих переменных. Функции же п переменных, сводящиеся к функциям от меньшего числа переменных, назовем вырожденными. Булевы функции могут задаваться с помощью таблиц. В левой части таблицы, задающей булеву функцию, в порядке естественной упорядоченности сверху вниз вы- выписываются наборы значений переменных, на которых определены данные функции. В правой части таблицы против каждого набора значений переменных выписы- выписываются соответствующие значения функции. Наряду с функциями, значения которых заданы на всех наборах значений переменных, оказывается целесообраз- целесообразным рассматривать также и неполностью определенные ! булевы функции. В структурной теории автоматов непол- неполное задание булевой функции означает возможность вы- выбора значений функции на тех наборах, на которых она не была первоначально задана, произвольным образом. Таким образом, неполностью заданная булева функция ' будет рассматриваться фактически как целое семейство всюду определенных булевых функций, некоторые из значений которых могут варьироваться. При таблич- табличном задании булевых функций неопределенные значе- значения функций принято обозначать черточкой или вол- волной -V-. В теории булевых функций особое значение имеют функции одного и двух переменных, к систематиче- систематическому изучению которых мы сейчас переходим. Имеется всего 22'=4 различные булевы функции одной пере- переменной. Эти функции можно задать сводной табли- таблицей (табл. Ill Л). Из построенных четырех функций функции g, и gt пред- представляют собою константы 0 и 1. Функция gt повторяет значения переменной х и потому просто совпадает с ней: g2=x. Единственной нетривиальной функцией являет- является функция g,. Мы будем называть эту функцию^ отрица- отрицанием переменной х и обозначать через х: g,—x. Иногда функцию g, называют также инверсией, а для ее обозна- обозначения используют символ х'. Таблица III.7 N. / Х \ 0 1 0 0 0 1 1 0 gl 1 1 Число булевых функций от двух переменных равно, согласно теореме 3.2, 22 =24=16. Выпишем сводную таблицу всех этих функций (табл. III.8). Таблица III. 8 X 0 0 1 1 у 0 1 0 1 0 0 0 0 п 0 0 0 1 0 0 1 0 0 0 1 1 и 0 1 0 0 и 0 1 0 1 и 0 1 1 0 /в 0 1 1 1 1 0 0 0 /ю 1 0 0 1 /ч 1 0 1 с 1 0 1 1 Лз 1 1 0 0 1 1 0 1 Л» 1 1 1 0 Л. 1 1 1 1 Из выписанных функций шесть функций, а именно функ- функции /,, /4, /е, /„, /1а, /1(, будут вырожденными. Действи- Действительно, легко видеть, что Д=0, ft=x, f,=y, fll=y, /„=» —х, /„=1. Таким образом, все названные шесть функ- функций существенно зависят не более чем от одной перемен- переменной каждая. Остальные 10 функций будут невырожден- невырожденными. Мы введем для них специальные названия и обо- обозначения. Функция/, носит название конъюнкции, или про- произведения, или функции совпадения, или логического «и». Для ее обозначения мы будем пользоваться знаком умно- умножения, который, как и в обычной алгебре, применительно к буквенным выражениям мы будем опускать: ft=x-y=xy. 13*
190 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Ш Если значения переменных хжу функции ft понимать как обычные числа 0 и 1, то значение функции /2 можно на- находить, как легко проверить, с помощью обычного пере- перемножения соответствующих значений переменных х и у. Функция /7 носит название функции неравнознач- неравнозначности, или суммы по модулю два; для ее обозначения мы будем употреблять обычный знак суммы: /7 = х-\-у. Лег- Легко проверить, что, понимая под 0 и 1 обычные числа, мы можем находить значения функции /7 в результате сумми- суммирования по модулю два соответствующих значений пере- переменных х ц у. Часто суммирование по модулю два мы бу- будем называть в дальнейшем просто суммированием, по- поскольку в других смыслах термины «суммирование» и «сум- «сумма» употребляться в настоящей главе не будут. Функция /8 носит название дизъюнкции, или функ- функции разделения, или логического «или». Для ее обозначения мы будем употреблять обычный знак дизъюнкции, при- применяющийся в математической логике: fb=xyy. Функцию /„ мы будем называть отрицанием дизъюнкции и обозначать через хуу. Смысл этого обозна- обозначения станет ясным после введения понятия о суперпо- суперпозиции булевых функций. Функция /10 носит название функции равнознач- равнозначности, или логической эквивалентности, или просто экви- эквивалентности и обозначается через х=у. Функции /1S и /14 носят название импликации. Для их обозначения употребляют стрелку, соединяющую меж- между собой переменные х и у, расположенные в определен- определенном порядке: Ф у н к ц и я /15 носит название штриха Шеффера, или отрицания конъюнкции. Для ее обозначения использует- используется обычно вертикальная черточка, разделяющая перемен- переменные: fXi=x\y. Можно обозначать эту функцию также че- через ху. Оставшиеся без названий невырожденные функции /, и /5 можно называть отрицаниями импликации. Иног- Иногда они называются также функциями запрета. Их можно обозначать следующим образом: f,—xy, ft=xy. БУЛЕВЫ ФУНКЦИИ 197 Значение функций одного и двух переменных в общей теории булевых функций состоит в том, что из них может быть построена любая булева функция. Средством для такого построения является суперпозиция буле- булевых функций или, что то же самое, подстановка одних булевых функций вместо аргументов в другие булевы функции. Возможность такой подстановки обусловлива- обусловливается тем, что, в силу определения, области значений буле- булевых функций и области значений их аргументов совпада- совпадают между собой. Используя суперпозицию, мы можем аргументами каж- каждой из рассмотренных выше функций одного и двух пере- переменных считать произвольные булевы функции. Тем са- самым булевы функции одного и двух переменных (как, впрочем, и булевы функции любого числа переменных) могут рассматриваться не как функции, а как опера- операции на множестве всех булевых функ- ц и й. В частности, отрицание может рассматриваться как монарная (одноместная) операция, а конъюнкция, дизъюнкция и суммирование по модулю два — как би- бинарные (двуместные) операции. С помощью этих операций могут быть построены раз- различные алгебры булевых функций. Две наиболее замеча- замечательные алгебры такого рода будут рассмотрены ниже. А сейчас заметим лишь, что некоторые из введенных выше обозначений для функций двух переменных исполь- используют явным образом понятие суперпозиции функций. Так, отрицание дизъюнкции (функция /„) есть не что иное, как результат подстановки" дизъюнкции переменных х и у вместо переменной х в функцию gs (в отрицание пере- переменной х). В предложенном выше обозначении для функ- функции хуу явным образом выполнена указанная подстанов- подстановка (суперпозиция функций). Аналогично обстоит дело с обозначениями функций /, и /5, указывающими на возможность представления этих функций в виде суперпозиции отрицания и умножения. Нетрудно видеть, что при таком истолковании выражений ху и ху (рассматривавшихся выше просто как символы, введенные по определению) их значения действительно совпадают с требуемыми значениями функций / и /. (ср. табл. III. 8).
198 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл III На этих простых примерах мы видим уже, каким об- образом происходит представление одних булевых функций через суперпозицию других булевых функций. В после- последующих параграфах способы такого представления будут разработаны в гораздо более общем виде. Следует заметить, что с ростом числа аргументов про- происходит весьма быстрый рост числа булевых функций. Так, имеется 2* =28=256 различных булевых функций от трех переменных. Число булевых функций от пяти переменных превышает 4 миллиарда. При каждом увеличении числа переменных на единицу происходит (как нетрудно убедить- убедиться с помощью теоремы 3.2) возведение в квадрат числа различных булевых функций, полученного на предыдущем этапе. Быстрый рост числа булевых функций с ростом числа переменных практически исключает возможность их не- непосредственной табуляризации') и классификации. За- Задача классификации несколько упрощается в случае объе- объединения некоторых булевых функций в классы и типы. Говорят, что две булевы функции /, (хх, хг хп) и ft (i/i, Уг>--->Уп) относятся к одному и тому же классу, если после некоторой взаимно однозначной подстановки пе- переменных: хх на место у^, хгна место у,- ,... и хп на место yt , одна из этих функций совпадает со второй. Говорят, что функции /, и /г относятся к одному и тому же типу, если одна из них переходит в другую после выполнения взаимно однозначной подстановки переменных с инвер- инверсиями: хх на место ylt, хг на место у!г ,... и хп на место i/y , где у{ означает либо yt , либо yt (A=l,.., п). К.Шенноном8) была доказана следующая теорема. 3.3. Число различных классов булевых функций от п 22" переменных равно —-. A+е„), еде е„ — положительная ве- величина, стремящаяся к нулю при п, стремящемся к оо. ') Под табуляризацией здесь понимается составление таблиц, включающих в себя все булевы функции с любым данным числом аргументов. *) С. E. Shannon, The synthesis of two-terminal swit- switching circuits. Bell. System Tech. J., v. 28, 1949, p. 59—98. 3J БУЛЕВЫ ФУНКЦИИ 199 Г. Н. Поваров1) использовал методы К. Шеннона для доказательства следующего предложения. 3.4. Число различных типов булевых функций от п 2*" переменных равно рру A+бп), где 6п — положитель- положительная величина, стремящаяся к нулю при п, стремя- стремящемся к оо. Точное вычисление величин еп и бп в теоремах 3.3 и 3.4 произведено лишь для малых значений числа перемен- переменных. В табл. III.9 указано число булевых функций, число классов и число типов функций для и=1, 2, 3, 4!). Таблица III.9 Число перемен- переменных в булевых функциях 1 2 3 4 Число булевых функций 4 16 256 65536 Число классов ОУлевых функций 4 12 80 3984 Число типов Суленых функций 3 6 22 402 В одном из следующих параграфов мы выпишем явно все типы булевых функций от трех переменных. Что же касается булевых функций от двух переменных, то су- существующие типы таких функций нетрудно получить непосредственно, рассматривая таблицы всех 16 булевых функций от двух переменных /,—/1в. Первые два типа со- составляют константы 0 и 1. К третьему типу относятся функ- функции /4, /,, /,,, /„, являющиеся, по существу, функциями одного переменного. К четвертому типу относится функ- функция f2=xy, а также функции /,, /5, и/,. Пятый тип со- составляют функции fi=x-\-y и /10, а шестой тип — функ- функции ft=xvy, /12, /„, /„. ') Г. Н. Поваров, Математическая теория синтеза кон- контактных A, *)-полюсников, ДАН СССР, т. 100, № 5, 1955; стр. 909—912. 2) См. табл. 12 в статье СВ. Яблонского «Функциональ- «Функциональные построения в /с-значной логике». Тр. Матем. ин-та им. В. А, Стеклова, т. 51, 1958, стр. 56.
200 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III § 4] ДВЕ ЗАМЕЧАТЕЛЬНЫЕ АЛГЕБРЫ БУЛЕВЫХ ФУНКЦИЙ 201 § 4. Две замечательные алгебры булевых функций При построении теории синтеза комбинационных схем в двоичном структурном алфавите большую роль играют две системы операций, которые можно ввести на множест- множестве всех булевых функций. Первая система включает три операции: отрицание, умножение и дизъюнк- дизъюнкцию, а вторая — две операции: умножение и сложение по модулю два. Множество булевых функций, рассматриваемое вместе с операциями отрицания, умножения и дизъюнкции, на- называют обычно булевой алгеброй. Множество же булевых функций, рассматриваемое вместе с операциями умноже- умножения и сложения {по модулю два) мы будем называть алгеб- алгеброй Жегалкина. Как в булевой алгебре, так и в алгебре Жегалкина1) мы будем рассматривать различные выражения, составлен- составленные с помощью операций алгебры из констант 0 и 1 и из букв (переменных) х, y,z, ..., под которыми мы будем пони- понимать произвольные булевы функции (в частности, обычные двоичные переменные). Условимся относительно порядка выполнения действий: в булевой алегбре при отсутствии в выражении скобок первыми должны выполняться опе- операции отрицания, затем — операции умножения и, на- наконец, — операции дизъюнкции; в алгебре Жегалкина первыми выполняются операции умножения, а затем — операции сложения. Наличие в выражении скобок изме- изменяет обычный порядок действий: в первую очередь долж- должны производиться операции внутри скобок. В булевой алгебре при отрицании сложных выражений часто опус- опускают скобки. Роль скобок при этом играет сам символ от- отрицания. Например, вместо (ху) обычно пишут просто ху. При этом, разумеется, имеет силу все сказанное от- относительно изменения порядка действий при наличии скобок. Любое выражение булевой алгебры или алгебры Же- Жегалкина представляет собою некоторую булеву функцию и в свою очередь может быть обозначено одной буквой. Два выражения мы будем считать равными, _если они пред- представляют одинаковые булевы функции входящих в них переменных1). Нетрудно видеть, что определяемые равен- равенства будут тождественными в том смысле, что подстанов- подстановка вместо любой буквы одновременно в левой и в правой частях равенства одного и того же выражения соот- соответствующей алгебры не нарушает равенства. Нашей бли- ближайшей целью является установление тождественных соотношений, имеющих место в двух введенных нами замечательных алгебрах. Средством для установления справедливости выписываемых ниже тождеств служит, в основном, проверка с помощью перебора всех значе- значений переменных, входящих в данное тождество. Выпи- Выпишем сначала основные тождества для булевой алгебры. Непосредственно из определения отрицания (см. § 3) вытекает справедливость следующего тождества, назы- называемого обычно правилом двойного отрицания: х = х. A) Из определения дизъюнкции и умножения вытекают законы коммутативности для дизъюнкции и умножения xvy = yvx, B) ху = ух. C) Непосредственно проверяется справедливость законов ассоциативности для дизъюнкции и для умножения: X V (У V 2) = (X V У) V 2, D) . E) В самом деле, из определения дизъюнкции ( см. § 3) сле- следует, что левая часть тождества D) равна нулю тогда и только тогда, когда все переменные х, у и ъ одновременно обращаются в нуль. Поскольку то же самое имеет место и для правой части тождества D), то справедливость это- этого тождества доказана. Аналогичным образом доказыва- доказывается справедливость тождества E). Различие состоит лишь в том, что здесь как левая, так и правая части обращаются ') Названной по имени предложившего ее советского ученого И. И. Жегалкина. ') Более точно, равные функции должны принимать одинаковые значения на любом наборе значений переменных, входящих в представляющие эти функции булевы выражения.
202 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [тл. m в единицу (а не в нуль) при единственном наборе значений переменных (x=i, y=l, z=l). Наличие законов ассоциативности позволяет запи- записывать сложные дизъюнкции и сложные произведения без всяких скобок, как выражения вида х^х^м ...ухп или соответственно вида х1 хг ... хп. Непосредственной проверкой с помощью подстановки различных значений переменных устанавливается также справедливость первого и второго законов дистрибутив- дистрибутивности для булевой алгебры: х (yvz) = xy ч xz, xvyz=(xvy)(xvz). F) G) Действительно, легко проверить, что в тождестве F) левая и правая части равны, каждая, единице тогда и только тогда, когда переменная х и хотя бы одна из переменных у или z принимают значения, равные единице. Аналогично, в тождестве G) как левая, так. и правая части обращаются в нуль тогда и только тогда, когда переменная х и хотя бы одна из переменных у или z принимают значения, равные нулю. Следующими важными тождествами являются так называемые правила де Моргана1): xvy = xy, (8) xy = xvy. (9) В первом тождестве де Моргана как левая, так и пра- правая части обращаются в единицу тогда и только тогда, когда как х, так и у равны нулю. Аналогично во втором тождестве правая и левая части обращаются в нуль при единичном наборе значений переменных. Для операций с константами нуль и единица имеют силу следующие очевидные правила: 0 = 1, 1 = 0, хЛ = х, а>0 = 0, х v 0 = х, х v 1 = 1. A0) (И) A2) 1)Де Морган — английский математик A9 в.), один из создателей алгебры логики. § 4] ДВЕ ЗАМЕЧАТЕЛЬНЫЕ АЛГЕБРЫ БУЛЕВЫХ ФУНКЦИЙ 203 Наконец, легко проверяется справедливость следую- следующих двух важных соотношений: XV Х=1, хх=0. A3) A4) Из выписанных тождеств булевой алгебры, которые мы будем считать основными, легко выводятся но- новые тождества. Приведем некоторые из таких тождеств, особенно полезные при проведении различных преобра- преобразований в булевой алгебре. Для того чтобы подчеркнуть, что мы имеем дело не с основными, а с производными тождествами, будем упо- употреблять в них вместо малых латинских букв большие буквы. Следует подчеркнуть, что это различие является чисто номинальным, поскольку как в первом, так и во вто- втором случае входящие в формулы буквы можно считать произвольными выражениями буле- булевой алгебры. Заметим также, что тождества A0), (И), A2) позволяют исключить из любого выраже- выражения булевой алгебры входящие в него константы, если только само это выражение не сводится к константе. По- Поэтому в дальнейшем, говоря о произвольных выражениях булевой алгебры, можно считать, что в это выражение не входят в явном виде константы 0 и 1, случай же, когда само выражение сводится к константе, оговаривать особо. Прежде всего укажем на так называемые законы по- поглощения в булевой алгебре: АмАВ = А, A5) A(A\jB) = A. A6) Первый закон поглощения может быть доказан с по- помощью выписывания следующей цепочки равенств: Ач АВ = АЛу АВ = А {\уВ) = А (В м 1) = А Л = А. Проведенные преобразования последовательно исполь- используют тождества (И), F), B), A2), (И). Аналогичным образом доказывается второй закон по- поглощения: A (AvB) = (A у0)(Л v?) —Лv0-.fi = AvB-O
204 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Hi При этом последовательно используются тождества A2), G), C), (И), A2). Полагая в тождестве A5) В равным единице, а в тож- тождестве A6) В равным нулю, мы приходим к следующим важным частным случаям этих тождеств, которые будем называть законами идемпотентности дизъюнкции и умно- умножения: АуА=А, A7) АА = А. A8) Заметим, что частными случаями тождеств A5) и A6) являются также вторые из тождеств A1) и A2). Рассмотрим выражение АуАВ. Используя второй за- закон дистрибутивности, его можно представить в виде (AyA) (AvB), после чего с помощью тождеств A3), C) и (И) мы приведем его к виду A vS. Следовательно, имеет место тождество AvJB~ AyB. A9) Заметим также, что, комбинируя законы коммутатив- коммутативности для дизъюнкции и умножения с тождествами F), G), A1), A2), A3), A4), A9), мы придем к новым тождест- тождествам, отличающимся от старых порядком расположения членов. Мы условимся в дальнейшем при ссылках на то или иное из этих тождеств иметь в виду возможность произвольных перестановок входящих в них дизъюнктив- дизъюнктивных членов или сомножителей. С помощью математической индукции из тождеств (И), A2), A7), A8) легко выводятся следующие предложения: 4.1. Выбрасывая из произвольной дизъюнкции дизъюнк- дизъюнктивные члены, равные нулю, мы не изменим величины этой дизъюнкции. 4.2. Если в дизъюнкции хотя бы один из членов равен единице, то вся дизъюнкция равна единице. 4.3. Выбрасывая из произвольного произведения все сом- сомножители, равные единице, мы не изменим величины этого произведения. 4.4. Если в произведении хотя бы один сомножитель ра- равен нулю, то все произведение обращается в нуль. 4.5. Дизъюнкция или произведение любого числа одина- одинаковых членов А равняется А. § 4] ДВЕ ЗАМЕЧАТЕЛЬНЫЕ АЛГЕБРЫ БУЛЕВЫХ ФУНКЦИЙ 205 Правила де Моргана (8) и (9) также поддаются обоб щению с помощью применения математической индукции В результате такого обобщения мы придем к следующему предложению. 4.6. Если А (а,,..., ап) — произвольное выражение буле- булевой алгебры {построенное из выражений а,,..., ап с помощью применения операций отрицания, дизъюнкции и умноже- умножения), то отрицание этого выражения равняется В (а,,..., а„), где выражение В (ах,...,ап) получается из выражения А(ах, ..., а„) с помощью замены всех умножений на дизъюнк- дизъюнкции, а всех дизъюнкций — на умножение, при условии сохранения всех имевшихся ранее в выражении А (а,, ...,ап) отрицаний. В самом деле, если выражение А (а,,..., а„) представляет собою дизъюнкцию каких-то членов: АхчАг\1 ...уАт, то по- последовательное применение тождества (8), приведет нас к соотношению Агы,..чАт=АхА1...А1 B0) Тем самым осуществляется сведение проблемы нахож- нахождения отрицания данного выражения к проблеме нахожде- нахождения отрицания выражений с меньшим числом булевых операций. В случае, когда исходное выражение представляет со- собою произведение, аналогичное сведение осуществляется с помощью тождества Это тождество получается в результате последователь- последовательного применения тождества (9). Наконец, в случае, когда исходное выражение А = =А(ах,...,ап) имеет в качестве последней операции отрица- отрицание (то есть, если А имеет вид С), то отрицание выраже- выражения А имеет вид С, то есть совпадает (в силу тождества A)) с выражением С, которое опять-таки имеет меньшее, по сравнению с выражением А, число булевых операций. Поскольку для выражений, сводящихся к одному из выражений ах, ..., ап, справедливость утверждения 4.6 оче- очевидна, то тем самым его доказательство завершено.
206 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ 1!Гл. III В качестве примера применения теоремы 4.6 рас- рассмотрим отрицание выражения B=^At v-42 (At v.4.I). -Co- Df гласно теореме 4.6, мы будем иметь: B=Al(AtvAtAt). Разу- Разумеется, двойное отрицание, в силу тождества A), можно при этом не писать. Вообще нетрудно убедиться в справед- справедливости следующего предложения. 4.7. Если к некоторому выражению А булевой алгебры применена более чем одна операция отрицания В=А, то, Df не изменяя значений, принимаемых выражением В, можно исключить любое четное число этих операций, В силу предложения 4.7 можно всегда предполагать, что при построении выражений булевой алгебры ни к какой части этого выражения не применяется более чем одна операция отрицания (разумеется, при этом не исклю- исключается, что внутри отрицаемого выражения находят- находятся и другие отрицания). Если теперь А=А (а,,...,а„) — произвольное выражение булевой алгебры, то, применяя предложение 4.6 ко всем отрицаниям, входящим в выражение А, а затем исполь- используя теорему 4.7, мы придем к следующему предложению. 4.8. Любое выражение A(alt ...,ап) булевой алгебры с помощью тождественных соотношений, существующих в этой алгебре, может быть приведено к выражению В, по- построенному из переменных а,,..., ап и их отрицаний с помощью одних лишь умножений и дизъюнкций. Назовем выражение В, указанное в теореме 4.8, без- инверсной формой исходного выражения А. Теорема 4.8 утверждает, что любое выражение булевой алгебры мо- может быть приведено к безинверсной форме. Отметим одно обобщение законов дистрибутивности, получаемое путем последовательного применения тож- тождеств F) и G) в сочетании с законами коммутативности: 4.9. Произведение Al At ... Ап, каждый сомножитель которого является дизъюнкцией некоторого числа членов: ^;=a/iVa(jV-va;j (i=l,...,n),можно преобразовать в рав- * i. ') Знак «=» читается «есть по определению», «равно по определению». 4] ДВЕ ЗАМЕЧАТЕЛЬНЫЕ АЛГЕБРЫ БУЛЕВЫХ ФУНКЦИЙ 207 ную ему дизъюнкцию произведений a,^, a2y2,..., anj , взятых для всевозможных наборов значений /,, /2,..,/„. Дизъюнкцию BjVSjj v..-yBm, каждый член которой представляет собой произведение некоторого числа сомножителей: 5/=6/1йг,... ...Ъ1г. (i=l,...,m), можно преобразовать в равное ей произве- произведение дизъюнкций Ъх) v Ъг] v ... v bmj , взятых для всевоз- всевозможных наборов значений /\, /,,.., /т. Например, выражение (a,va2) (a,vas) равняется выра- выражению alalyalat\/aial\/aia3, а выражение аЬмЬс равняется выражению (avb) (avc) (bvb) (bvc). Перейдем теперь к установлению системы основных тождеств валгебре Жегалкина. Непосредственной проверкой устанавливается, что для сложения по модулю два, как и для умножения, имеют место законы коммутативности и ассоциативности: х-\-у = у-\-х, ху = ух, B2) х + (у + z) = (х + у) + 2, x{yz) = {xy)z. B3) Имеет силу дистрибутивный закон для умножения по отношению к сложению: x(y-\-z)=xy-{-xz. B4) В самом деле, как левая, так и правая части этого ра- равенства равны единице тогда и только тогда, когда х ра- равен 1 и в точности одна из переменных у или z также рав- равна 1. Заметим, что закон дистрибутивности для сложения по отношению к умножению уже не имеет силы. Для операций с константами непосредственной провер- проверкой легко устанавливаются следующие тождества: х-1 = х, а>0 = 0, х-{-0 = х. B5) Непосредственной проверкой устанавливается закон приведения подобных членов при сложении, а также и закон идемпотентности для умножения: х-\-х = 0, B6) хх = х. B7) Выписанные тождества B2)—B7) мы будем называть основными тождествами алгебры Жегалкина.
208 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III Рассмотрим теперь взаимосвязь, существующую между операциями булевой алгебры и алгебры Жегалкина, для чего введем объединенную алгебру, использующую опе- операции отрицания, дизъюнкции, умноже- умножения и сложения по модулю два. Непосредственной проверкой (подстановкой различных возможных наборов значений переменных) устанавли- устанавливаются следующие тождества: х=1+х, B8) B9) C0) Первые два из этих тождеств позволяют преобразовать любое выражение булевой алгебры в равное ему (пред- (представляющее ту же самую булеву функцию) выражение алгебры Жегалкина. Тождество C0) позволяет осущест- осуществить обратный переход —от выражения в алгебре Жегал- Жегалкина к равному ему выражению булевой алгебры. Рассмотрим примеры преобразований выражений буле- булевой алгебры в равные им выражения алгебры Жегал- Жегалкина, а также примеры преобразований выражений в ал- алгебре Жегалкина в равные им выражения булевой алгебры. Пример 1. Выражение хмху преобразовать в выра- выражение алгебры Жегалкина и упростить полученное после преобразования выражение. Решение. Используя тождества B8) и B9), мы по- получаем: Тождества B2), B3), B4), B5) и B7) позволяют преобразовать полученное выражение в вид i-\-i-\-x-\-x-\-xy-\-x-\-x-\-xy-\-xy. Поскольку 14-1 = 0, х-\-х = 0, ху-\-ху = 0, то в силу тождества B6) мы имеем окончательно: 1 +1 -[- х + х -\- ху + х + х + ху + ху = ху. Пример 2. Выражение (х-\- 1) у-\- (х-\- 1) преобра- преобразовать в выражение булевой алгебры и упростить полу- полученное выражение. j 6] НОРМАЛЬНЫЕ ФОРМЫ 209 Решение. Из соотношений B8) и C0) выводим: (х-\- i)y -\- {x-\-i)**=xy -\-!; = ху -хмху-х. Пользуясь основными тождествами булевой алгебры, последнее выражение легко преобразовать в вид x = 0vyx=xy. Заметим, что если в исходном выражении (х-\-1)у+ -\-(х-\-1) множитель х-\-1 вынести за скобку, то получится выражение (х+1)(у-\-1), которое на основе тождеств B2) и B8) сразу преобразуется в вид ху. § 5. Нормальные формы Основной целью настоящего параграфа является уста- установление некоторых специальных форм выражений в бу- булевой алгебре и в алгебре Жегалкина, к которым можно свести любое выражение в этих алгебрах. Начнем наши рассуждения с булевой алгебры, и прежде всего введем понятия элементарной дизъюнкции и эле- элементарного произведения. Элементарной дизъюнкцией называется выражение, представляющее собою дизъюнкцию любого конечного мно- множества попарно различных между собою букв, над частью которых (быть может, пустой или, наоборот, содержащей все буквы) поставлены черточки (знаки отрицания). К числу элементарных дизъюнкций мы будем относить также выражения, состоящие из одной буквы (с отрица- отрицанием или без отрицания), а также константу нуль. Считается, что в первом случаемы имеем дело с дизъюнк- дизъюнкцией одного члена, во втором — с дизъюнкцией пустого множества членов. Дизъюнкцию пустого множества чле- членов мы, по определению, будем считать всегда равной нулю. В силу приведенного определения элементарными дизъюнкциями будут, например, выражения: 0, хх, х\у, avbvc, хчу. 14 В. М. Глушков
210 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III В то же время выражения: xlyxlyx3, aybya не являются элементарными дизъюнкциями, поскольку в первое выражение дважды входит буква xv а во вто- второе — дважды входит буква а, причем один раз с отри- отрицанием, а второй раз — без отрицания. Элементарным произведением называется выражение, представляющее собою произведение любого конечного мно- множества попарно различных между собою букв, над частью ко- которых (быть может, пустой или, наоборот, содержащей все буквы) поставлены черточки (знаки отрицания). К числу элементарных произведений мы будем также относить выражения, состоящие из одной буквы (с отри- отрицанием или без отрицания), а также константу еди- единица. Для этой цели условимся произведения, состоя- состоящие из одного сомножителя, считать равными этому со- сомножителю; условимся также рассматривать в качестве элементарных произведения, состоящие из пустого мно- множества сомножителей, и считать их, по определению, рав- равными единице. В силу приведенного определения к числу элементар- элементарных произведений относятся, например, выражения 1, х, ху, ах, xyz. В то же время выражения ху, уху, хх не являются элементарными произведениями, ибо в пер- первом случае знак отрицания стоит над всем выражением (а не над составляющими его буквами), во втором и в третьем случаях в выражения дважды входят одинаковые буквы. < Элементарные произведения и элементарные дизъюнк- дизъюнкции, отличающиеся только порядком располо- расположения членов, мы в дальнейшем не будем раз- различать. Условимся буквы и их отрицания называть первичными термами. Нетрудно доказать следующее предложение. $51 НОРМАЛЬНЫЕ ФОРМЫ 211 5.1. Дизъюнкция любого числа первичных ^термов равна либо единице, либо элементарной дизъюнкции. Произве- Произведение любого числа первичных термов равно либо нулю, либо элементарному произведению. В самом деле, если в некоторую дизъюнкцию первич- первичных термов какая-либо буква входит вместе со своим от- отрицанием, то, в силу тождества, A3) и предложения 4.2, вся дизъюнкция равна единице. В противном же случае, используя предложение 4.5, мы сможем привести рассмот- рассмотренную дизъюнкцию к элементарной дизъюнкции. Ана- Аналогичное рассуждение нетрудно провести и относительно произведения первичных термов. Введем теперь следующее важное определение. 5.2. Дизъюнктивной нормальной формой называется дизъюнкция любого конечного множества попарно различ- различных элементарных произведений. Конъюнктивной нормаль- нормальной формой называется произведение любого конечного мно- множества попарно различных элементарных дизъюнкций. Заметим, что в этом определении не исключается слу- случай дизъюнкций и произведений пустого множества членов или множества, состоящего из одного-единственного члена. Таким образом, константа 0, например, может рассмат- рассматриваться как дизъюнктивная нормальная форма, пред- представляющая собою дизъюнкцию пустого множества эле- элементарных произведений, либо как конъюнктивная нор- нормальная форма, представляющая собою произведение, состоящее из одной элементарной дизъюнкции 0 — дизъ- дизъюнкции пустого множества первичных термов. Аналогично константа 1 также может рассматриваться и как конъюнк- конъюнктивная, и как дизъюнктивная нормальная форма. Справедлива следующая важная теорема. 5.3. Существует единый конструктивный метод, поз- позволяющий для любого выражения булевой алгебры найти равные ему дизъюнктивную и конъюнктивную нормальную форму. Требуемый конструктивный прием может быть построен следующим образом. На первом этапе с помощью метода, использованного при доказательстве предложения 4.8, исходное выражение G—G(xl,...,xn) преобразуется в равное ему выражение F, построенное из букв xl,...,xn и их отри- отрицаний с помощью одних лишь умножений и дизъюнкций. 14*
212 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III На втором втапе последовательно, шаг за шагом, при- применяется теорема 4.9. Предположим вначале, что нам тре- требуется привести выражение к дизъюнктивной нормальной форме. Если выражение F не содержит дизъюнкций, то оно является, очевидно, про- произведением первичных термов и с помощью предложения 5.1 может быть либо сведено к нулю, либо к элементар- элементарному произведению, то есть к некоторому частному слу- случаю дизъюнктивной нормальной формы. В общем случае будем применять редукцию, представ- представляя выражение F в виде дизъюнкции членов, каждый из которых содержит меньшее число дизъюнк- дизъюнкций, чем исходное выражение F. Ясно, что, осуществляя подобную редукцию, мы через конечное число шагов придем к дизъюнкции выражений, не содержащих дизъ- дизъюнкций; такие выражения, как было показано выше, сво- сводятся либо к нулю, либо к элементарным произве- произведениям. Выбрасывая нули и объединяя одинаковые члены (см. предложения 4.1 и 4.5) дизъюнкции, мы при- придем, очевидно, к дизъюнктивной нормальной форме. Дело, таким образом, сводится к нахождению метода редукции. Редукция выполняется тривиальным образом, если выражение F представляет собою дизъюнкцию не менее чем двух членов. В противном случае выражение F обя- обязательно является произведением не менее чем двух сомно- сомножителей: F=FlF1...Fn(n'^2). Если в выражении F имеется не менее чем одна дизъюнкция, то можно предполагать, очевидно, что хотя бы один из сомножителей является дизъюнкцией не менее чем двух членов. В таком случае, применяя к произведению FlFt...Fn теорему 4.9, мы представим его в виде дизъюнкции членов, каждый из которых содержит меньшее число дизъюнкций, чем исходное выражение F. Тем самым для случая дизъюнк- дизъюнктивных нормальных форм редукция проведена. Случай конъюнктивных нормальных форм рассматри- рассматривается точно так же. Только что проведенное доказатель- доказательство, если в нем всюду заменить дизъюнкции на произве- произведения и наоборот, становится доказательством 5.3 для случая конъюнктивной нормальной формы. Тем самым теорема 5.3 полностью доказана. НОРМАЛЬНЫЕ ФОРМЫ 213 Следует заметить, что ввиду принятого нами определе- определения порядка действий в булевой алгебре описанный прием приведения к дизъюнктивной нор- нормальной форме сводится к последовательному раскрытию (в соответствии с первым дистрибутивным за- законом) всех скобок в выражении, которое содержит знаки отрицания лишь над символами переменных, с после- последующим исключением нулей и объединением равных чле- членов. Раскрытие скобок производится точно так же, как и в обычной алгебре. Приведение к конъюнктивной нор- нормальной форме не допускает прямой аналогии с действиями, принятыми в обычной (школьной) алгебре, и осуществляется в связи с этим более формальным прие- приемом, в точном соответствии с последовательностью дей ствий, описанной в доказательстве теоремы 5.3. Рассмотрим в виде примера процесс приведения к дизъ- дизъюнктивной и к конъюнктивной нормальной форме выра- выражения: /gf (ХУ xu. На первом этапе опускаем знаки отрицания непосред- непосредственно на переменные входящие в выражение: f=(xyvyz) (хми). Раскрывая скобки, мы придем к дизъюнктивной нор- нормальной форме: f — xyMxyz v xyu v yzu. Эта форма допускает дальнейшие упрощения (например, ее третий член поглощается первым); мы, однако, не будем доводить до конца этих упрощений. При приведении к конъюнктивной нормальной форме применим теорему 4.9. к выражению (хумуг)(хми): f = {xyv yz) (x v в) = (.г v у) (х м г) (ум у) (ум г)(хмп) = ¦ —(хм у) (ху г) (у vz) (хми). Последнее из полученных выражение представляет собой конъюнктивную нормальную форму.
214 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III В дальнейших рассуждениях будем предполагать фик- фиксированным некоторое множество М булевых переменных хх, ...,хп (обычно в качестве такого множества выбирается множество аргументов той или иной булевой функции). Элементарные дизъюнкции (соответственно элемен- элементарные произведения) называются конституентами нуля (соответственно конституентами единицы) для данного множества М булевых переменных, если они содержат (либо в прямом, либо в инверсном виде) все переменные из множества М. Для переменных хх, ..., хп произвольную конституенту нуля можно представить в виде ххмхгм...мхп, а произволь- произвольную конституенту единицы — в виде хх хг...хп, где xt оз- означает либо хп либо х{ (г = 1, ..., п). Нетрудно убедиться в том, что для любой конституенты единицы К существует один и только один набор а значений переменных, входящих в К, на котором эта конституента обращается в единицу. В самом деле, если К=хх хг... хп, то набор а=(а,, а2,..., ап) тогда и только тогда обращает К в единицу, когда г-я компонента а( набора а для всех г'=1, ..., п обращает в единицу соответствующий сомно- сомножитель х{ из числа сомножителей, составляющих данную конституенту (см. предложение 4.4). Этим условием каждая компонента а(- (а следовательно, и весь набор а) определяется однозначно: если xl=xl, то а;=1, если Xi~xt, то а(.=0. Построенный таким образом набор а и конституента единицы К, которая на этом наборе об ращается в единицу, называются соответствующими друг другу. Аналогичным образом для всякой конституенты нуля R=xivx1y...vxn имеется один и только один соответству- соответствующий этой конституенте набор р = (р\, ..., рп) значений переменных х%, ..., хп, на котором эта конституента равна нулю. В силу предложения 4.2 для этой цели надо выбрать значение Р((г=1,2,..., п) равным нулю, если Х/=хр и рав- равным единице, если ?,=?,. Условимся нумеровать конституенты нуля и единицы с помощью тех же номеров, что и соответствующие им наборы значений переменных. 5] НОРМАЛЬНЫЕ ФОРМЫ 215 Для построения булевой алгебры существенное зна- значение имеют понятия совершенной дизъюнктивной и со- совершенной конъюнктивной нормальной формы: Дизъюнктивная (соответственно конъюнктивная) нор- нормальная форма называется совершенной, если все составля- составляющие ее элементарные произведения (соответственно элементарные дизъюнкции) являются конституентами единицы (соответственно конституентами нуля) для одного и того же множества М переменных. Совершенная дизъюнктивная (конъюнктивная) нормальная форма на- называется совершенной дизъюнктивной (соответственно конъюнктивной) нормальной формой булевой функции f=f(xx, ..., хп), если она равна этой функции и если мно- множество составляющих ее переменных совпадает с множе- множеством аргументов функции /. Справедливо следующее важное предложение. 5.4. Любая булева функция имеет одну и только одну совершенную дизъюнктивную нормальную форму, а также одну и только одну совершенную конъюнктивную нормаль- нормальную форму. Действительно, пусть f(xt,..., xn)— произвольная бу- булева функция. Через ft обозначим значение этой функции на г-м наборе значений переменных, через Kt— консти- конституенту единицы, а через Л( — конституенту нуля, соот- соответствующие этому набору (/=0, 1, ..., 2"—1). Обозначим через ср совершенную дизъюнктивную нор- нормальную форму f0KitvflKl\/...vf2r'-\K2''-i' a через i|)— совер- совершенную конъюнктивную нормальную форму (/ovi?o)(/,v/?,) ...(/2"_ivi?21>-i)- В соответствии с предложениями 4.1, 4.2, 4.3 и 4.4, можно считать форму ф совпадающей с дизъюнк- дизъюнкцией тех конституент Кп для которых соответствующие значения функции /,- равны 1, а форму г]з совпадающей с произведением тех конституент Rj, для которых соответ- соответствующие значения функции /у равны 0. Как форму ф, так и форму г]з можно рассматривать как некоторые функции переменных хх, ..., хп. На г-м наборе мы будем иметь Kt — \, Ку=0 (при ]Ф1), Я(=0. Rj—{ (при )Ф1). Используя снова предложения 4.1, 4.2, 4.3, 4.4, мы приходим к выводу, что значения функций ф и г]з на г-м наборе совпадают с /,-, то есть со значением функции / на г-м наборе. Ввиду произвольности набора
216 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III приходим к выводу о равенстве между собой всех трех функций /, ср, ф. Следовательно, согласно определению совершенных но^альных форм, ф является совершенной дизъюнктивной, а г]з — совершенной конъюнктивной нор- нормальной формой функции /. Произвольную совершенную дизъюнктивную нормаль- нормальную форму g функции / можно, очевидно, записать в виде где g0, gx, ..., g,n-i— коэффициенты, равные единице или нулю в соответствии с тем, входит или не входит соответ- соответствующая конституента в данную форму |. На г-м наборе значений переменных значение формы | равно, как не- нетрудно видеть, gt. С другой стороны, по условию, значе- значения функции / и формы g должны совпадать на всех набо- наборах. Следовательно, для любого / справедливо gi=fr так что форма g совпадает с формой ф. Ввиду произволь- произвольности выбора g это означает единственность совершенной дизъюнктивной нормальной формы. Единственность со- совершенной конъюнктивной нормальной формы доказы- доказывается совершенно аналогично. Тем самым теорема 5.4 полностью доказана. Рассмотрим теперь произвольную дизъюнктивную нормальную форму ф от переменных я,,..., хп. Пусть не- некоторое элементарное произведение р, входящее в эту форму, не содержит какой-либо из переменных х{, напри- например, переменной хх\ тогда его можно заменить равным ему (в силу тождеств A3) и A1) из § 5) выражением/? (ххухх)=- =рххмрхх. Продолжая этот процесс относительно осталь- остальных переменных множества хх,...,хп, не входящих в то или иное элементарное произведение, мы после повторения этой процедуры некоторое конечное число раз получим совершенную дизъюнктивную нормальную форму выражения ф, поскольку в каждое составляющее ее элементарное произведение будут входить все бук- буквы хх, ..., хп. Назовем описанный процесс приведением (про- (произвольной) дизъюнктивной нормальной формы ф к совершенному виду. Аналогичным образом можно построить процесс п р и- о е д е н и я (произвольной) конъюнктивной НОРМАЛЬНЫЕ ФОРМЫ 217 нормальной формы г]з к совершенному виду. Для этой цели к входящей в конъюнктивную нор- нормальную форму произвольной элементарной дизъюнк- дизъюнкции q, не содержащей, например, буквы хх, добавляется равный нулю член хххх. Затем к полученному выражению применяют второй дистрибутивный закон: q-=xxxx — = (qvxx)(qvxx). Продолжая аналогично, мы сможем в каж- каждую элементарную дизъюнкцию ввести все недостающие в ней переменные, после чего форма г]з превратится в совер- совершенную. Отсюда, учитывая 5.3, получаем: 5.5. Существует единый конструктивный метод, поз- позволяющий для любого выражения булевой алгебры найти равные этому выражению совершенную дизъюнктивную и совершенную конъюнктивную нормальные формы. Заметим, что при приведении произвольного выраже- выражения булевой алгебры к совершенной дизъюнктивной и к совершенной конъюнктивной нормальной форме мы мо- можем ограничиться использованием лишь основных тождеств булевой алгебры A)—A4) из § 4, поскольку все остальные применяемые нами тождества являются их следствиями. Сам процесс приведения обратим: применяя все тождества, использованные при приведении данного выражения к совершенной конъюнктивной или совершен- совершенной дизъюнктивной нормальной форме,в обратном порядке, мы можем восстановить исходное выражение по его совер- совершенной нормальной форме '). Пусть теперь нам даны два равных выражения булевой алгебры / и g. Их можно рассматривать как булевы функ- функции входящих в них переменных (букв). Согласно теореме 5.4 они имеют одну и ту же совершенную дизъюнктивную нормальную форму ф. Приводя выражения (функции) / к совершенной дизъюнктивной нормальной форме ф и вос- восстанавливая по форме ф выражение g, мы осуществим непрерывную цепь тождественных преобразований, опирающихся лишь на тождества A)—A4) из § 4 и переводящих выражение / в выражение g. Следовательно, ') Этот процесс обратного перехода оказывается, разумеется, возможным лишь тогда, когда известна последовательность тож- тождеств, испольуоваыгая при приведении исходного выражения к соответствующей совершенной форме.
218 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТО В [Гл. III 5.6. С помощью основных тождеств булевой алгебры можно осуществить преобразование произвольного выра- выражения булевой алгебры в любое равное ему выражение бу- булевой алгебры. Иначе говоря, система тождеств A)—A4) из § 4 ока- оказывается достаточной для выполнения любых преобразо- преобразований в булевой алгебре. Это свойство естественно на- назвать свойством полноты системы тождеств A)—A4), Исключив некоторые из тождеств этой системы (относя их в число неосновных тождеств), можно, тем не менее, сохранить за оставшимся множеством основных тождеств свойство полноты. Мы, однако, не будем заниматься иссле- исследованием системы тождеств A)—A4) с этой точки зрения. В алгебре Жегалкина роль совершенных форм булевой алгебры играют полиномы специального вида, которые мы будем называть каноническими полиномами. Каноническим полиномом называется конечная сумма попарно различных произведений переменных таких, что в одном и том же произведении никакая переменная не встречается более одного раза. При этом к числу произве- произведений относятся произведения, состоящие из одного сом- сомножителя (отдельные переменные), и произведение, состоя- состоящее из пустого множества сомножителей (константа 1). Выражения хуг+ху-\-г+1, х, 1 являются, очевидно, каноническими полиномами, а выражения хх,ху\ г/ж+1 — нет, поскольку в первом полиноме имеется произведение, содержащее две буквы х, а второй полином содержит два одинаковых (с точностью до перестановки сомножителей) произведения ху и ух. Условимся к числу элементарных полиномов относить также константу 0, рассматривая ее как сумму пустого множества членов. С помощью тождеств B2), B6) и B7) из § 4 любой по- полином (сумму произвольных произведений переменных) в алгебре Жегалкина легко привести к каноническому виду. Используя же тождества B2), B3), B4) и B5) из § 4, нетрудно любое выражение алгебры Жегалкина пре- преобразовать в полином. Это делается точно так же, как и в обычной (школьной) алгебре,— путем раскрытия всех скобок. Различие заключается лишь в том, что в данном случае мы можем иметь дело лишь с коэффициентами, НОРМАЛЬНЫЕ ФОРМЫ 219 равными нулю или единице. Приведение же подобных членов делается в соответствии с тождествЬм B6) из § 4. Точно таким же способом, какой был применен при до- доказательстве теоремы 5.3, можно показать, что описанный прием проведения преобразований выражений алгебры Жегалкина заканчивается через конечное число шагов. Поскольку он приводит к построению канонического по- полинома, мы можем сформулировать следующий результат. 5.7. Существует единый конструктивный прием, поз- позволяющий для любого выражения алгебры Жегалкина найти равный ему канонический полином. Процесс отыскания канонического полинома, равного заданному выражению алгебры Жегалкина, мы будем на- называть приведением выражения к ка- каноническому виду, а сам этот полином — каноническим видом исходного выражения. Заметим, что приведение к каноническому виду может быть осуществлено с помощью одних лишь основных тождеств и допускает восстановление (с помощью основ- основных тождеств) исходного выражения по каноническому виду (разумеется, для этого нужно знать цепочку преобра- преобразований, которая привела к построению канонического вида данного выражения). Докажем следующую теорему. 5.8. Если два канонических полинома равны между собой (представляют одинаковые булевы функции от вхо- входящих в них переменных), то они совпадают между собой с точностью до перестановки членов. Действительно, предположение о несовпадении задан- заданных полиномов ф и Мр приводит к выводу о том, что в одном из них, например в полиноме ф, должно быть слагаемое p=xlx!t...Xj , не содержащееся в другом. Допустим, что выбранное слагаемое р имеет наименьшее возможное число букв, так что все слагаемые, имеющие менее чем к букв, одинаковы в обоих полиномах. Рассмотрим набор а значений переменных, принимая для всех переменных, входящих в слагаемое р, значения, равные 1, а для всех остальных переменных — значения, равные 0. Любое слагаемое q первого или второго поли- полинома, отличное от р и содержащее равное с ним или боль- большее число букв, обязательно содержит буквы, не входя- входящие в р и, следовательно, обращается в нуль на наборе а*
220 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ ГГл. III Слагаемое р принимает на этом наборе значение 1. Подставляя значения переменных из набора а в полиномы Ф и г|>, мы приведем их к виду 1+ф„> i|>0> где ф0 и *ф0 — зна- значения, принимаемые суммами тех членов полиномов ф и г]з соответственно, которые содержат меньшее по срав- сравнению с членом р число букв. Поскольку, ввиду выбора члена р, эти суммы одинаковы, то Ф0='ф0. Но тогда, оче- очевидно, 1+Фо ^'Фо и> следовательно, наши полиномы ф и i|) представляют разные булевы функции. Если же они представляют одинаковые булевы функции, то их несовпа- несовпадение не может иметь места. Тем самым теорема доказана. Если теперь нам даны два произвольных выражения / HgB алгебре Жегалкина, то, приводя их к канониче- каноническому виду, мы получим, в силу теоремы 5.8, один и тот же канонический полином ф. Цепь преобразований, при- приводящая / к ф и восстанавливающая g по ф, использует лишь основные тождества алгебры Жегалкина. Тем самым мы получили доказательство следующего предложения. 5.9. С помощью основных тождеств B2)—B7) алгебры Жегалкина можно осуществить преобразование произволь- произвольного выражения этой алгебры в любое равное ему (пред- (представляющее ту же функцию) выражение той же алгебры. Предположим, что мы имеем некоторую дизъюнкцию конституент единицы: l=KlyKljj...vKlm. Заменяя в ней энаки дизъюнкции знаками суммы, мы придем к некото- некоторому выражению в объединенной алгебре: g=Kli^\-Kh-{-... ,.,+К^1). Покажем, что выражения / и g равны между со- собой. Действительно, ни при каком наборе значений пе- переменных две различные конституенты единицы не могут одновременно обратиться в единицу, поскольку i-я кон- ституента единицы обращается в единицу лишь на г-м наборе. Следовательно, при определении значений функ- функций / и g нам придется определять значение дизъюнкции (или соответственно суммы) членов, из которых только один может равняться единице, остальные же обязательно равны нулю. Но в этом случае очевидно, что как дизъюнк- дизъюнкция, так и сумма по модулю два приводят к одному и тому же результату (к 0, если все члены равны нулю, и к 1, если один и только один из членов равен единице). *) Объединенная алгебра использует как операции булевой алгебры, так и операции алгебры Жегалкина. НОРМАЛЬНЫХ ФОРМЫ 221 Тем самым мы доказали следующее предложение. 5.10. Если в совершенной дизъюнктивной нормальной форме f произвести замену всех знаков дизъюнкции знаками суммы, а все отрицаемые переменные заменить согласно тождеству x=i+x, то получится выражение алгебры Жегалкина, представляющее ту же булеву функцию, что и исходная форма /. Поскольку в виде совершенной дизъюнктивной нор- нормальной формы может быть представлена любая булева функция (теорема 5.4), то из предложений 5.7, 5.8 и 5.10 вытекает справедливость следующего результата. 5.11. Любая булева функция может быть представ- представлена в алгебре Жегалкина в виде одного и (с точностью до порядка членов) только одного канонического поли- полинома. Представление выражения алгебры Жегалкина в виде канонического полинома мы будем называть приведе- приведением выражения к каноническому виду. В заключение параграфа рассмотрим примеры приве- приведения выражений булевой алгебры и алгебры Жегалкина к рассмотренным выше нормальным и каноническим формам. Пример 1. Выражение f = (xyyz)(xyz) привести к совершенной дизъюнктивной и к совершенной конъюнк- конъюнктивной нормальной форме. Решение. f="x(yv z) (x vz) = xz)=xyz 2) f = x(yy z) (x v z) = (x v yy) (y v z v xx) (x v z v yy) = = (x v y) (x v y) (x v у v z) (x v у v z) (x v у v z) • • (x v у v z) = (x v у v zz) (x v у v zz) (x v у v z) • • (x v у v z) (x v у v z) (x v у v z) = (x v у v z) • • (Jv у v z) (x v у v z) (x v у v z) (xv у v z) • • (xv у v z) (x v у v z) (x v у v z) = (x v у v z) • • (x v у v z) (x v у v z) (? v у v z) (x v у v z) (x v у v z).
222 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ ГГл. III Пример 2. Привести к каноническому виду выра- выражение: ? ( + y + )( + ) + ( + 2/)( + ) Решение: g^=xz-\-yz-\-z-\-x-\-y-\-l-{- х-\-ху-\-х-\- -\-у — xz-\-yz-\-xy-{-x-\-z-\-l. § 6. Анализ и синтез комбинационных схем Комбинационной схемой в настоящем параграфе мы будем называть произвольную композицию конечных автоматов без памяти '), называемых обычно логическими элементами. Всякая комбинационная схема обладает некоторым множеством внешних входных узлов (входных полюсов), некоторым множеством внешних выходных узлов (выходных полюсов) и некоторым множеством внут- внутренних узлов. Первые два множества предполагаются всегда непустыми, а третье может оказаться и пустым. Комбинационную схему с т входными и с га выходными полюсами принято называть (т, п)-полюсником. Элемен- Элементарный сигнал в каждом узле схемы обозначается спе- специальной буквой, называемой переменной, соот- соответствующей данному узлу. Эта буква может принимать различные значения из структурного алфавита схемы. Переменные, соответствующие входным, выходным и внутренним узлам схемы, называются соот- соответственно входными, выходными и внутренними перемен- переменными. Переменные, соответствующие узлам комбинацион- комбинационной схемы, рассматриваются обычно как обозначения не только элементарных сигналов в узлах, но и самих этих узлов. Условимся в дальнейшем через xl,...,xm обозначать входные переменные, через ух,-.-,Уп— выходные, а через z,, ..., zp — внутренние. В случае, когда характер пере- переменных неизвестен, мы будем употреблять для их обозна- обозначения буквы и, v, w и др, с различными индексами. Договоримся в качестве логических элементов рассмат- рассматривать лишь такие автоматы без цамяти, которые обла- обладают одним элементарным выходным каналом. Такое предположение не нарушает общности, поскольку всякий логический элемент, имеющий k(k^>l) элементарных вы- *) В том числе и такую, для которой не выполняются условия корректности построения, сформулированные в § 1. 16] АНАЛИЗ И СИНТЕЗ КОМБИНАЦИОННЫХ СХЕМ 223 ходных каналов, можно заменить к логическими элемен- элементами, имеющими те же самые элементарные входные ка- каналы и лишь по одному элементарному выходному каналу. В силу сделанного предположения структурная функция выходов каждого логического элемента сводится к неко- некоторой переключательной функции, которую мы будем называть переключательной функцией данного логического элемента. Используя метод задания логических элементов пере- переключательными функциями, можно ввести аналитическое описание комбинационных схем с помощью систем пе- переключательных уравнений. Такое описание осуществля- осуществляется следующим образом. Вводятся обозначения пере- переменных (элементарных сигналов), соответствующих всем узлам рассматриваемой комбинационной схемы. Все пе- переменные, соответствующие отождествляемым (соединя- (соединяемым между собою) узлам, приравниваются друг др}гу. Для каждого логического элемента А, входящего в схему, выписывается уравнение вида v=f{ux uk), где / — пе- переключательная функция данного элемента, v — пере- переменная, обозначающая узел, к которому подсоединен выходной канал логического элемента А, а и{ — перемен- переменная, обозначающая узел, к которому подсоединен г-й входной канал элемента A(i=i, ..., к). Система всех полу- полученных таким образом уравнений называется системой уравнений непосредственных связей рассматриваемой ком- комбинационной схемы. Следует отметить, что обычно в целях экономии обо- обозначений отождествляемые между собою узлы комбина- комбинационной схемы заменяются просто одним узлом. Исклю- Исключение составляют лишь входные и выходные узлы схемы: если некоторый входной узел х( схемы отождествлен (соединен) с каким-либо выходным узлом yt, то эти узлы всегда сохраняют свою индивидуальность (не заменяются одним узлом). Благодаря этому обстоятельству множе- с:еа входных и выходных переменных" можно считать попарно непересекающимися. Можно считать также, не нарушая общности, что в системе уравнений непосред- непосредственных связей любой комбинационной схемы отсут- отсутствуют тривиальные уравнения, т. е. уравнения вида v = u, где v им — просто некоторые переменные, за исклю-
224 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Ш чением случая, когда и является входной, а г? — выходной переменной. Иногда, впрочем, целесообразно включать в систему и тривиальные уравнения. В связи с введенными понятиями естественно сформу- сформулировать следующее определение. 6.1. Комбинационной системой переключательных уравнений называется система уравнений с переменными, принимающими значения в некотором структурном ал- алфавите, все уравнения которой имеют вид v=f(ult,,,, uk) и для которой фиксированы непустые попарно непересе- непересекающиеся множества входных и выходных переменных. Заметим, что в уравнениях комбинационных систем переменная, стоящая в левой части какого-либо урав- уравнения, может, вообще говоря, встречаться и в правой части того же самого уравнения. Легко видеть, что всякая комбинационная система переключательных уравнений может рассматриваться как система уравнений непосредственных связей некоторой комбинационной схемы, и наоборот, (См. примечание на стр. 222.) Итак, справедливо следующее предложение. 6.2. Имеет место взаимно однозначное соответствие между комбинационными схемами и комбинационными системами переключательных уравнений. Теорема 6.2 полностью сводит изучение комбинацион- комбинационных схем к изучению комбинационных систем переклю- переключательных уравнений. В ряде случаев комбинационные системы переключа- переключательных уравнений оказывается удобным трактовать как систему переключательных функций, в которых зафик- зафиксированы некоторые обозначения как для самих функ- функций, так и для их аргументов, а также выделены мно- множества входных и выходных переменных. Условимся называть такие системы структурными системами пере- переключательных функций. Известное неудобство при этом составляет то обстоятельство, что иногда та или иная функция структурной системы может оказаться обозна- обозначенной той же буквой, что и некоторый ее аргумент. Однако в будущем мы ограничимся в основном так назы- называемыми правильными структурными системами, для ко- которых подобное обстоятельство никогда не может иметь места. АНАЛИЗ И СИНТЕЗ КОМБИНАЦИОННЫХ СХЕМ 225 Трактуя в качестве структурной системы переключа- переключательных функций систему уравнений непосредственных связей комбинационной схемы, мы приходим к поня- понятию системы функций непосредственных связей данной схемы. Как известно из § 1, далеко не всякая композиция авто- автоматов и, в том числе, далеко не каждая комбинационная схема может рассматриваться как структурная схема не- некоторого автомата. В случае, когда такое рассмотрение оказывается возможным, соответствующая комбинацион- комбинационная схема называется корректно построенной, К числу корректно построенных комбинационных схем относятся так называемые правильные комбинационные схемы. Правильной комбинационной схемой мы будем называть комбинационную схему без петель, у которой к каждому узлу, отличному от входных полюсов схемы, подсоединен точно один выходной канал какого-либо логического элемента или точно один входной полюс; выходные каналы логических элементов не подсоединены ни к одному из входных полю- полюсов, Комбинационные схемы, на которые наложено лишь условие отсутствия петель, называются условно пра- правильными. Говорят, что узел, присоединенный к одному из вход- входных каналов какого-либо логического элемента, непо- непосредственно связан с узлом, подсоединенным к выходному каналу того же самого элемента. Будем говорить также, что узел а связан с узлом Ъ, если существует цепь, начи- начинающаяся узлом а и кончающаяся узлом Ъ (см. § 1). В комбинационной схеме S без петель обязательно су- существуют узлы, с которыми не связаны непосредственно никакие другие узлы схемы. Действительно, если бы это было не так, то для любого узла охемы можно было бы построить цепь неограниченной длины, кончающуюся данным узлом. Ввиду ограниченности общего числа узлов в схеме в этой цепи какой-либо узел рано или поздно повторится дважды, то есть цепь образует петлю, что, однако, исключено первоначальным условием. Таким образом, в комбинационной схеме S без петель существуют узлы, с которыми не связаны непосредственно никакие другие узлы. Назовем такие узлы узлами нуле- нулевой ступени. В числе оставшихся узлов (если таковые 15 В. М. Глушков
226 СТРУН?УРНАя ТЕОРИЙ fti. m имеются) обязательно найдутся узлы, с которыми не свя- связаны непосредственно никакие другие узлы, кроме узлов нулевой ступени. Назовем такие узлы узлами первой ступе- ступени. Их существование доказывается точно так же, как и существование узлов нулевой ступени: из их отсутствия вытекала бы возможность построения цепи неограничен- неограниченной длины. Описанный процесс продолжается до тех пор, пока не будут исчерпаны все узлы схемы: узлами /-й ступени на- называются узлы, не являющиеся узлами меньших ступеней (О, 1, .,,, /—1), причем такие, что с ними непосредственно связаны лишь узлы низших ступеней, Если в схему S входят узлы га-й ступени, но не входят узлы (га+1)-й ступени, то схема S называется п-ступенной комбинацион- комбинационной схемой (без петель). Условимся называть структурную систему Q пере- переключательных функций ступенчатой системой, если все входящие . в нее переменные разбиваются на попарно непересекающиеся классы Ко, Kt,..,, Кп так, что перемен- переменными класса Ко не обозначается ни одна из функций си- системы, а для любого / = 1, .... п переменные класса Kt обозначают лишь такие функции, аргументы которых обо- обозначены переменными классов Кй, .... Kt_v Переменные, входящие в класс К(, называются переменными t-й сту- ступени. Из проведенных выше рассуждений непосредственно вытекает справедливость следующего результата. 6.3. Ступенчатые системы переключательных функций, и только они, могут рассматриваться как системы функ- функций непосредственных связей комбинационных схем без петель, Рассмотрим теперь правильную комбинационную схему Р. В силу приведенного выше определения в схеме Р входные полюсы и все отождествленные с ними узлы будут узлами нулевой ступени. На эти узлы элементарные сиг- сигналы подаются извне. Из определения понятия узла /-й ступени следует, что к узлам первой ступени подсое- подсоединены выходные каналы логических элементов, все входные каналы которых подсоединены к узлам нулевой ступени. Таким образом, на узлах первой ступени возник- возникнут вполне определенные элементарные сигналы. Это Анализ й Синтез комёйнацйОННЫх Сх.йм 22? в свою очередь приведет к возникновению .вполне опре- определенных элементарных сигналов на узлах второй ступени, и т. д. В результате оказывается, что в правильной комбина- комбинационной схеме Р элементарные сигналы во всех узлах схемы оказываются вполне определенными функциями элементарных сигналов на входных полюсах. Таким обра- образом, схема Р построена корректно, Из проведенных рас- рассуждений легко следует также, что рассмотренное опре- определение правильных комбинационных схем является ча- частным случаем определения правильных схем, данного в § 1. Условимся называть правильной системой переключа- переключательных функций любую структурную систему переклю- переключательных функций, которую можно рассматривать как систему функций непосредственных связей какой-либо правильной комбинационной схемы. Справедливо следующее предложение. 6.4, Структурная система переключательных функций тогда и только тогда правильна, когда она является сту- ступенчатой системой, у которой все входные переменные входят в функции системы лишь в качестве аргументов, а каждая из остальных переменных обозначает в точности одну из функций системы. Справедливость сформулированного предложения сле- следует из приведенных выше рассуждений. Необходимо лишь напомнить, что узлам, отождествленным с входными узлами в правильной комбинационной схеме Р, будут отвечать функции вида v=xt. Если рассматривать произвольный автомат без памяти, то его функционирование определяется заданием его структурной функции выходов (см. § 1). В свою очередь структурная функция выходов задается системой пере- переключательных функций, определяющих зависимость эле- элементарного сигнала на каждом из выходных полюсов автомата от элементарных сигналов на его входных полю- полюсах. Назовем эти функции выходными функциями данного автомата без памяти. В частности, если комбинационная схема может рассматриваться как автомат без памяти (то есть, если она корректно построена), то можно говорить о выходных функциях этой схемы,. 15*
228 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III В теории комбинационных схем можно сформулировать две основные задачи. Первая задача, которую естественно называть задачей анализа комбинационных схем, может быть сформулирована следующим образом. Найти общий конструктивный прием (алгоритм), позволяющий по любой корректно построенной комбина- комбинационной схеме построить выходные функции этой схема. Вторая задача, называемая задачей синтеза комбинационных схем, формулируется так: Найти общий конструктивный прием (алгоритм,), позволяющий по любой заданной функционально полной (см. § 2) системе логических элементов (переключательных функций) и любой системе переключательных функций (в том же самом структурном алфавите) /,, ..., fk найти корректно построенную (из элементов данного типа) комбинационную схему, для которой функции /,, ..., /Л служили бы выходными функциями. Для случая правильных комбинационных схем реше- решение задачи анализа получается в результате последова- последовательного применения к системам функций непосредствен- непосредственных связей этих схем так называемых операций внутрен- внутренней суперпозиции. Операция внутренней суперпозиции может быть при- применена к любой структурной системе S переключательных функций. Суть этой операции состоит в пополнении си- системы S новой переключательной функцией по следующим правилам: 1. Из системы S выбирается произвольная функция v=f(uv ..., uq) такая, что какой-либо из ее аргументов, например иг обозначен в системе S той же буквой, что и некоторая функция и(=ф(ш,, .... wr) той же системы. 2. Образуется новая функция v=f(ul, ..., и1_1, ф(ш,,..., wr), w/+1, .... uq), получаемая с помощью подста- подстановки функции ф вместо переменной и, в функцию /. Эта новая функция обозначается той же буквой v, что и исход- исходная функция /, и заменяет функцию / в системе S. Из проведенного выше рассмотрения законов передачи элементарных сигналов в правильных комбинационных схемах от узлов нулевой ступени к узлам высших ступе- ступеней непосредственно следует справедливость следующего факта. АНАЛИЗ И СИНТЕЗ КОМБИНАЦИОННЫХ ОХВМ 229 6.5. В результате применения конечного' числа опера- операций внутренней суперпозиции к правильной системе пе- переключательных функций Р, независимо от порядка вы- выполнения этих операций, возникает одна и та же система переключательных функций, обозначенных всеми перемен- переменными исходной системы Р, отличными от входных пе- переменных (по одной функции на каждую такую перемен- переменную), причем аргументами этих функций являются одни лишь входные переменные системы S. Система переключательных функций Р являлась си- системой функций непосредственных связей некоторой пра- правильной комбинационной схемы Q, Система же функций S, полученная из системы Р методом, описанным в теореме 6.5, будет задавать элементарные сигналы во всех узлах схем, отличных от входных узлов, как функции элемен- элементарных сигналов в ее входных узлах. Среди этих функций будут, в частности, и все выходные функции исходной комбинационной схемы Q. Таким образом, теорема 6.5 дает общий прием решения задачи анализа для случая правильных комбинационных схем. Операция, заключающаяся в переходе от системы Р к системе S в теореме 6.5, будет называться нами опера- операцией полной внутренней суперпозиции функций системы Р. Решение задачи синтеза комбинационных схем мы проведем лишь для случая двоичного структурного алфавита. Причина такого ограничения состоит в том, что при этом мы можем воспользоваться развитым выше аппаратом теории булевых функций. В случае же произ- произвольного структурного алфавита необходимо было бы предварительно развить соответствующий аппарат для произвольных переключательных функций. В то же время особой практической необходимости подобного обобщения теории пока еще не имеется, поскольку подавляющее большинство встречающихся на практике комбинацион- комбинационных схем оперирует именно с двоичным структурным алфавитом. Заметим также, что с теоретической точки зрения до- достаточно решить задачу синтеза для случая комбинацион- комбинационных схем лишь с одним выходным полюсом. Действительно, комбинационную схему, обладающую несколькими вы- выходными полюсами, можно всегда представлять себе в
230 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III виде композиции схем, каждая из которых обладает лишь одним выходным полюсом, с отождествленными входными полюсами. Полное решение (по крайней мере в теоретическом плане) задачи синтеза для случая правильных комбина- комбинационных схем в двоичном структурном алфавите будет дано в следующем параграфе; пока мы рассмотрим лишь один весьма специальный случай синтеза, который явится отправным пунктом для имеющих в дальнейшем место построений. Речь идет о синтезе правильных комбина- комбинационных схем из логических элементов, реализующих бу- булевы функции, принятые в качестве основных операций булевой алгебры. Для таких элементов приняты специаль- специальные наименования. Логический элемент, реализующий функцию отрица- отрицания х, принято называть инвертором. Совпадением назы- называют обычно элемент, выходной сигнал которого пред- представляет собой произведение (конъюнкцию) всех его вход- входных сигналов, а разделением — элемент, выходной сигнал которого является дизъюнкцией всех его входных сиг- сигналов. Заметим, что наряду с двухвходовыми совпадениями и разделениями употребляются и м н о г о- входовые элементы этого же типа, реализующие соответственно функции х^хг... хпъ. ххухгу ... \/хп. Однако в этой главе мы будем употреблять лишь двухвходовые совпадения, не оговаривая этого всякий раз особо. Все результаты настоящего параграфа, полученные для произвольного структурного алфавита, имеют,разу- имеют,разумеется, силу и для двоичного структурного алфавита. Заметим лишь, что теперь мы будем переключательные функции всюду именовать булевыми функциями. В ча- частности, правильные комбинационные схемы будут за- задаваться с помощью правильных систем булевых функ- функций. Для рассматриваемого специального случая синтеза возможен, однако, и несколько иной способ аналитиче- аналитического представления схем. Условимся называть правильными булевыми схемами правильные комбинационные схемы в двоичном структур- структурном алфавите, построенные из инверторов, двухвходовых совпадений и двухвходовых разделений. Правильную булеву 161 АНАЛИЗ И СИНТЕЗ КОМБИНАЦИОННЫХ СХЕМ 231 схему с т входными и с п выходными полюсами будем назы- называть правильным булевым (т, п)-полютиком. Мы будем предполагать дополнительно, что правиль- правильный булев (т, га)-полюсник не содержит лишних у з л о в, то есть таких узлов, которые не связаны ника- никакими цепями с его выходными полюсами. Как уже отмечалось выше, синтез произвольных ком- комбинационных схем сводится к синтезу (т,1)-полюсников, причем, как легко видеть, можно ограничиться лишь та- такими (тЛ)-полюсниками, которые являются правиль- правильными комбинационными схемами, не содержащими лиш- лишних узлов. В связи с этим значительный интерес приобре- приобретает задача синтеза правильных булевых (т,1)-полюс- ников. Рассмотрим систему S (булевых) функций непосред- непосредственных связей произвольного булева (т,1)-полюсника Р. Пусть х , ..., хт, zi,...zp, у — все переменные, входящие в систему о. Поставим задачу определения значения вы- выходного сигнала у в зависимости от входных сигналов ж,, ..., хт. Такое определение предполагает, что последо- последовательно, шаг за шагом, находятся значения всех пере- переменных 2,, ..., г¦ у. Ввиду отсутствия лишних узлов значе- значение у будет найдено лишь на последнем шаге, после того как будут найдены значения всех переменных 2,, ..., гр, причем все эти значения существенны для нахождения значения у. На каждом шаге над найденными ранее зна- значениями производится одна из операций булевой алгебры, а весь процесс эквивалентен нахождению значения некоторого булева выражения от входных переменных xi< •••< хт (^ез констант). Соответствующее булево вы- выражение, очевидно, полностью определяет исходный (т, 1)-полюсник Р. Обратно, произвольное выражение А булевой алгебры, построенное из переменных х1%..., хт (без констант), можно записать в виде системы функций непосредственных свя- связей некоторого правильного булева (т,1)-полюсника. Для этой цели достаточно ввести соответствующие бук- буквенные обозначения для всех составных частей выраже- выражения так, чтобы любая обозначенная часть выражения могла быть получена из других его обозначенных частей с помощью применения одной булевой операции.
232 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Га. III Таким образом, оказывается справедливым следующее предложение. 6.6. Существует естественным образом определяемое однозначное соответствие между правильными булевыми (т, 1)-полюсниками и выражениями булевой алгебры от т переменных (без констант). Инвертор < Инвертор г, *>* h Совпадение Совпадение Разделение -оу, Рис. 1U. Рассмотрим в виде примера процесс представления в виде булева выражения правильного булева B,1)-полюс- ника Р, изображенного на рис. 10. Система функций непосредственных связей схемы Р имеет вид =*i. z2=i2, zi=z1xi, zi = yl=z,vzi Эта система может быть представлена эквивалентным образом в виде следующего булева выражения: Это выражение и будет выражением булевой алгебры, соответствующим B,1)-полюснику Р. Легко видеть, что справедливо следующее предложе- предложение. 6.7. Если к системе S функций непосредственных связей правильного булева (т,1)-полюсника Р с входными пере- переменными xt, ..., хт и выходной переменной у применить операцию полной внутренней суперпозиции, не производя никаких упрощений, получаемых в результате суперпозиции выражений, то единственная функция, обозначенная бук- буквой у, в заключительной системе функций будет представ- АНАЛИЗ И СИНТЕЗ КОМБИНАЦИОННЫХ СХЕМ 233 лятъ собою булево выражение, соответствующее схеме исходного (т,1)-полюсника Р. В предыдущем параграфе был указан общий конструк- конструктивный прием, позволяющий представлять произвольную булеву функцию (ж,, -..,хт) в виде некоторого специаль- специального выражения булевой алгебры,— в виде совершенной дизъюнктивной нормальной формы. При этом совершенная дизъюнктивная нормальная форма функции f(xl хт) содержит лишь переменные х1, ..., хт и не содержит кон- констант 0 и 1, за исключением случая, когда функция / тождественно равна нулю. Однако и в этом последнем случае функцию / можно представить в виде булева вы- выражения, не содержащего констант,— например в виде произведения xxxv Поскольку всякое булево выражение однозначно оп- определяет правильный булев (тД)-полюсник, то описан- пый прием решает задачу синтеза правильных булевых (т,1)-полюсников. Умея же решать эту задачу, мы можем построить также правильный булев (т,га)-полюсник, реализующий любую заданную систему выходных функ- функций. Если теперь необходимо решить общую задачу синтеза комбинационных схем в двоичном структурном алфавите, то достаточно научиться строить из заданной системы ло- логических элементов A,1)-полюсник, реализующий отри- отрицание, и B,1)-полюсник, реализующий умножение или дизъюнкцию. Умея реализовать отрицание и умножение, или отрицание и дизъюнкцию, мы с помощью формул де Моргана (см. § 4) можем построить схемы, реализующие также дизъюнкцию или соответственно умножение. Имея же логические элементы, реализующие отрицание, умно- умножение и дизъюнкцию, можно, как было показано выше, строить схемы, реализующие любые системы выходных функций (в двоичном структурном алфавите). Нами доказано, следовательно, следующее предло- предложение. 6.8. Для решения общей задачи синтеза комбинацион- комбинационных схем в двоичном структурном алфавите достаточно уметь строить из заданной системы логических элементов комбинационные схемы, имеющие своими выходными функ- функциями отрицание х и произведение ххх%.
234 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III Следует подчеркнуть, что метод решения общей задачи синтеза, намечаемый теоремой 6.8, имеет скорее теорети- теоретическое, чем практическое значение, поскольку он приво- приводит, как правило, к излишне сложным схемам. Необхо- Необходимо поэтому разрабатывать практически более удобные методы решения задач синтеза и минимизации комбина- комбинационных схем применительно к определенным типам ло- логических элементов. Такие методы развиваются в дв>х последующих главах, а сейчас мы ограничимся тем, что дадим классификацию основных типов задач синтеза ком- комбинационных схем, встречающихся на практике. Так называемая общая задача комбинационного син- синтеза состоит в разработке методов построения корректных комбинационных схем, реализующих любые заданные вы- выходные системы булевых функций из логических элемен- элементов любых фиксированных типов, при условии, что на входные узлы схемы могут подаваться лишь входные пе- переменные. При этом как в данной задаче, так и в других задачах комбинационного синтеза необходимо заботиться о минимизации числа логических элементов, используемых при построении любой данной схемы. В общую задачу комбинационного синтеза вводятся часто некоторые дополнительные условия. Так, в случае, • когда на входные полюсы схемы могут подаваться не толь- только входные переменные, но и константы @ и 1), мы полу- получаем общую задачу синтеза при нали- наличии констант. В случае, когда на входные полюсы подаются не только входные переменные, но и их отрица- отрицания, мы приходим кзадаче синтеза при на- наличии инверсий переменных. Введенные дополнительные условия могут встречаться на практике в различных сочетаниях. Канонической задачей комбинационного синтеза мы условимся называть задачу синтеза правильных булевых (т, м)-полюсников при наличии констант и инверсий пе- переменных из двухвходовых совпадений и разделений. Важной задачей является также задача синтеза вен- вентильных схем. В этой задаче употребляется специальный тип логического элемента, называемый вентилем. С точки зрения чисто функциональной вентиль представляет собою двухвходовое совпадение, реализующее функцию ху. АНАЛИЗ И СИНТЕЗ КОМБИНАЦИОННЫХ СХЕМ 235 Однако он имеет одну отличительную особенность, за- заключающуюся в том, что один из его входных каналов, называемый управляющим входом вентиля, может подсое- подсоединяться лишь к входным полюсам вентильной схемы, на которые подаются входные переменные и их отрицания. В вентильной схеме обязательно имеется так называемый вентильный входной полюс, на который обычно подается входной сигнал, тождественно равный единице. Что касается сигнала 0, то в вентильных схемах он служит естественным нулевым сигналом', он возникает, в част- частности, на всех изолированных узлах схемы (то есть на уз- узлах, с которыми не связан никакой другой узел схемы). В вентильных схемах имеет место также и естественное разделение сигналов, причем это разделение таково, что сигнал 1 оказывается старшим по отношению к сигналу 0. Иначе говоря, одновременный приход на какой-либо узел схемы элементарных сигналов, из которых хотя бы один равен 1, обеспечивает наличие в этом узле сигнала 1. Сигнал 0 в узле может быть лишь в том случае, когда все пришедшие одновременно в этот узел элементарные сиг- сигналы равны нулю. Это означает, очевидно, что элемен- элементарный сигнал в узле определяется как дизъюнкция всех одновременно приходящих в него элементарных сигналов. Кроме обычных так называемых односторонних вен- вентилей на практике употребляются также двусторонние вентили. Односторонний вентиль пропускает сигнал 1 от вентильного входного канала к выходному каналу тогда и только тогда, когда на управляющий вход вентиля подан сигнал 1. Двусторонний вентиль действует точно так же, но, в отличие от одностороннего вентиля, он про- пропускает сигналы и в обратном направлении (от выходного канала к вентильному входному, каналу), в силу чего фак- фактически стирается разница между входным и выходным каналом (не считая управляющего входа). Примером дву- двусторонних вентилей являются обычные электромагнитные реле. В чисто электронных схемах обычно встречаются лишь односторонние вентили. Вентильные схемы допускают изучение с помощью систем уравнений непосредственных связей (систем функ- функций непосредственных связей). Однако, поскольку в вен- вентильных схемах обычно встречаются петли, для их
236 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Ш изучения целесообразно развивать особый аппарат. Задача развития такого аппарата частично решается в пятой главе. В заключение параграфа заметим, что в случае наличия естественного нулевого сигнала и естественного разде- разделения сигналов описанного выше типа всякая условно правильная схема (схема без петель) естественным обра- образом интерпретируется как правильная схема. Для этой цели схема дополняется (способом, описанным в § 1) нулевыми и разделяющими элементами, причем, в силу описанного выше характера естественного разделения в двоичном алфавите, разделяющий элемент будет являться логическим элементом разделения в смысле настоящего параграфа. Система S функций непосредственных связей любой условно правильной комбинационной (двоичной) схемы превращается в правильную систему булевых функций в результате выполнения следующих двух операций: а) Вводится обозначение нулевой функции (константы 0) с помощью всех переменных системы S, отличных от входных переменных и таких, что они не обозначают в системе S никаких функций (включая тривиальные функ- функции у=х[). б) Если какой-либо переменной г; в системе S обозначено несколько функций /г, ..., /А, то вместо всех этих функций в систему вводится лишь одна функция, обозначенная переменной v, а именно дизъюнкция всех функций Л h- С помощью этих двух правил задача анализа условно правильных комбинационных (двоичных) схем, заданных системами функций непосредственных связей, сводится (при условии наличия естественного нулевого сигнала и естественного разделения сигналов) к соответствующей задаче для правильных комбинационных схем. Пусть, например, схема задана системой S функций непосредственных связей: zl=xlxt zt=xv 2/ = zlVz2, где я,, xt — входные переменные, у — выходная перемен- переменная. При наличии естественного нулевого сигнала и есте- естественного разделения сигналов система S преобразуется j 7] ТЕОРЕМА О ФУНКЦИОНАЛЬНОЙ ПОЛНОТЕ 237 в правильную систему После полной 'внутренней суперпозиции система прини- принимает вид: у = хххг v х, = (х^хг) х1 = *Я- § 7. Теорема о функциональной полноте Основной целью настоящего параграфа является уста- установление необходимых и достаточных условий функцио- функциональной полноты системы логических элементов в двоич- двоичном структурном алфавите. Напомним, что система логических элементов назы- называется функционально полной, если существует общий конструктивный прием, позволяющий строить из логиче- логических элементов заданной системы корректные комбина- комбинационные схемы, имеющие любые наперед заданные вы- выходные функции. Произведем некоторое сужение задачи, ограничившись только правильными комбинационными схемами. Как было показано в предыдущем параграфе, выходные функ- функции таких схем получаются в результате суперпозиций функций, реализуемых выбранными логическими эле- элементами, и тривиальных функций f(xlt...,xm)=xml (xt про- пробегает все входные переменные). Это обстоятельство приводит к следующему естествен- естественному определению. 7.1. Система S булевых функций называется функци- функционально полной, если для любой булевой функции /(ж,, ..., хт) можно построить равную ей булеву функцию, пред- представляющую собой результат суперпозиции (вообще го- говоря, многократной) функцийж,, ..., хт и функций системы S, взятых в любом конечном числе экземпляров каждая (т — любое натуральное число). Оказывается полезным наряду с понятием функцио- функциональной полноты ввести так называемое понятие ослаб- ослабленной функциональной полноты системы булевых функ- функций.
238 ТЕОРИЙ АВТОМАТОВ Егя. Ш 7.2. Система S булевых функций называется ослабление функциональной полной, если для любой булевой функции /(ж,, ..., хт) можно построить равную ей булеву функцию, представляющую собою результат суперпозиции (вообще говоря, многократной) функций ж,, ..., хт, констант О и 1 и функций системы S, взятых в любом конечном числе экземпляров каждая (т есть любое неотрицательное число). Введенные определения легко распространить на про- произвольные переключательные функции, однако мы не будем делать такого распространения и ограничимся лишь случаем булевых функций (то есть случаем двоичного структурного алфавита). При установлении необходимых и достаточных усло- условий функциональной полноты (найденных впервые Э. П о- с т о м ')) большую роль играют пять замечательных клас- классов булевых функций, замкнутых относительно операции суперпозиции. Первый класс составляют функции, сохраняющие кон- константу О, то есть такие булевы функции/(ж,, ..., хт), что /(О, 0, ..., 0)=0. Поскольку на одном из наборов значения функции фиксированы, произвольными остаются (в слу- случае п переменных) лишь 2" —1 наборов. Следовательно, имеется ровно у22" булевых функций от п переменных, сохраняющих константу нуль. Нетрудно убедиться в том, что справедливо следующее предложение. 7.3. Суперпозиция любого числа булевых функций, со- сохраняющих константу О, является также функцией, со- сохраняющей константу 0. Для обоснования этого предложения достаточно рас- рассмотреть суперпозицию двух функций, например функций z=/(j/i' •••'*/„) и y1=g(x1, ...,xn). При подстановке нулевых значений аргументов в суперпозицию » = /(?(*! *J' V Vm) этих функций, мы найдем, что значение функции v будет также равно нулю. ') Е. Post, Introduction to a general theory of elementary propositions, Amer. J. Math., v. 43, 1921, p.'163—185. ТЕОРЕМА О ФУНКЦИОНАЛЬНОЙ пОЯЙОТЁ 239 Второй замечательный класс булевых функций состав- составляют функции, сохраняющие константу 1, то есть такие булевы функции /(ж,, ...,жп),что /A,1, ..., 1)=1. Как и в предыдущем случае, нетрудно показать, что имеется ровно т2гП булевых функций от п переменных, сохра- сохраняющих константу 1. Справедливо также следующее предложение, аналогичное предложению 7.1. 7.4. Суперпозиция любого числа булевых функций, со- сохраняющих константу 1, является функцией, сохраняющей константу 1. Третий замечательный класс булевых функций со- составляют так называемые самодвойственные функции. Булевы функции /(ж,, ..., хп) и g(xlt ..., хп) называются двойственными друг другу, если g(xlt ..., xn)=f(x1 хп) (очевидно, что в этом случае будет справедливым также и соотношение /(ж,, ...,xn)=g(x1, ..., хп)). Булева функция /(ж,, ..., хп) называется самодвойственной, если она двой- двойственна по отношению к себе самой, то есть если выпол- выполняется соотношение /(ж,, ...,xn)=f(xl, ...,ж„). Если усло- условиться называть противоположными наборами набор (а,, ..., ап) и набор (а,, ..., ап), то нетрудно следующим образом перефразировать определение самодвойственных функций: Булева функция называется самодвойственной, если на любых двух противоположных наборах она принимает противоположные значения @ и 1). При расположении наборов в естественном (лексико- (лексикографическом) порядке ') противоположные друг другу наборы помещаются симметрично относительно середины этого расположения, так как (/—1')-й и BП—/)-й наборы для любого /=1, ..., 2" оказываются противоположными друг другу. Отсюда следует, что столбец значений само- самодвойственной функции должен быть антисимметричным ') Естественным порядком называется такой порядок располо- расположения наборов, при котором каждый набор совпадает с представле- представлением в двоичной системе счисления своего номера в этом располо- расположении: нулевым набором будет при этом набор 0...000, первым на- набором — набор 0...001, вторым — набор 0... 010, третьим — набор 0...011 и т. д.
240 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гя. Ill относительно своей середины. По этому признаку легко выделить самодвойственные функции в случае табличного способа задания функций. Как явствует Из сказанного, самодвойственная функция полностью определяется заданием значений, принимаемых ею на половине всех наборов, причем значения ее на на- наборах этой половины могут быть выбраны произвольно. Следовательно, имеется точно 21/"'2"=У2*'' самодвой- самодвойственных булевых функций от п переменных. Справедливо следующее предложение. 7.5. Суперпозиция любого числа самодвойственных функ- функций является снова самодвойственной функцией. Для доказательства этого предложения достаточно рассмотреть суперпозицию двух самодвойственных функ- функций, например функций z=f(y1 yj и y1=g(x1 хп). Двойственной функцией для суперпозиции »=/(g(x,,... •••>хп)> Ун — ' Ут) этих Функций будет функция v * — f(g(x1,...xn),yi,...,ym). Ввиду самодвойственности функции g имеем g(x,, ..., xn)=yv Но тогда 0*=/(у,, у,,.... ут) и вви- ввиду самодвойственности функции / мы имеем г;*=г;,что и завершает доказательство сформулированного в предложе- предложении 7.5 свойства суперпозиции самодвойственных функций. Четвертый замечательный класс булевых функций со- составляют так называемые линейные функции. Булева функция /(х,, ..., хп) называется линейной, если, после представления ее каноническим полиномом в алгебре Жегалкина, в этом полиноме не окажется членов, име- имеющих степени, выше чем первая, то есть если представ- представляющий эту функцию полином имеет вид Коэффициенты а0, а,, ..., ап могут составлять любой набор значений 0 и 1, причем в силу однозначности опре- определения канонического полинома (см. § 4) различным на- наборам коэффициентов будут соответствовать различные булевы функции. Таким образом, имеется точно 2n+I ли- линейных булевых функций от п переменных. Из определения линейных функций непосредственно следует справедливость следующего предложения. 17] ТЕОРЕМА О ФУНКЦИОНАЛЬНОЙ ПОЛНОТЕ 241 7.6. Суперпозиция любого числа линейных булевых функций представляет собою снова линейную функцию. Пятый замечательный класс булевых функций со- составляют так называемые монотонные функции. Для того чтобы определить монотонные функции, не- необходимо наряду с рассмотренной выше естественной упорядоченностью наборов ввести еще один вид упорядо- упорядоченности. Для любых двух наборов а=(а,, ..., а„), 6=(р,, ..., р„), имеющих одинаковую размерность, отношение а<:& эк- эквивалентно отношениям а,<:|3, для всех j=l, ..., п. При этом мы считаем, что 0<:0, Osgl, 1<1. В силу этого определения @101)^A101). В то же время наборы а=@101) и 6=A010) несравнимы в том смысле, что для них не выполняется ни отношение а^.Ъ, ни отношение Булева функция /(х,, ..., хп) называется монотонной, если для любых наборов а=(а,, ...,ая) и 6=(р,,..., рп), таких, что а^Ь, имеет место неравенство /(а,, ..., ап)=^ </(Р, Р.)- Среди булевых функций имеются как монотонные функ- функции (например, функции х, x,vx2), так и немонотонные функции (например, функции х, x,xt). Справедливо сле- следующее предложение. 7.7. Суперпозиция любого числа монотонных буле- булевых функций является в свою очередь монотонной функ- функцией. ( Для доказательства предложения 7.7 достаточно, оче- очевидно, рассмотреть суперпозицию двух монотонных функ- функций, например функций z=f(y1 ут) и y1=g(xl хп). Возьмем два произвольных набора ах и аг значений пере- переменных х,, ..., хп, г/,, ..., уттаких,-что а^а2. Каждый из наборов а1 и а2 однозначно определяет соответствующие наборы F,, с, и Ьг> сг) значений переменных х,, ..., хп и переменных г/,, ..., ут. Ввиду определения неравенства для наборов, из неравенства а1^.а1 вытекает справедли- справедливость неравенств Ь1^Ьг и с,^с2. Обозначим через vl и v2 значения суперпозиции функ- функций / и g, т. е. г;=/(?(х,, ..., хп), г/,,..., ут) на наборах а, и а,, а через gl и gt — значения функции g(x,, ..., хп) на наборах Ь1 и Ь% соответственно. Если к тому же наборы 16 В. М. Гаушков
242 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III с1 и сг имеют вид с1 = (а, ат)'с.=(Р, PJ-томы ПОЛУ" чим, очевидно: »i=/(tfi. аг «J- ».=/(*, р. PJ- Ввиду монотонности функции g справедливо неравен- неравенство g1 <: gt. Поскольку из с, ^ с, вытекает, что а, ^ «s р2,.. .,ат <: рт, то мы придем к неравенству (?i. а2> ••- «»)<fei. Р. PJ- Из этого неравенства в силу монотонности функции / мы получаем неравенство v^vt, чем и завершается дока- доказательство монотонности суперпозиции функций. К числу немонотонных булевых функций относится отрицаниех. С другой стороны, оказывается, что всякая немонотонная функция содержит, в некотором смысле, в своем составе функцию отрицания. Более точно вы- высказанное утверждение можно сформулировать следу- следующим образом. 7.8. В результате суперпозиции произвольной немо- немонотонной функции /(ж,, ..., хп) с константами Owl может быть получена функция отрицания xt одного из аргументов функции f{x,, ..., хп). Доказательство предложения 7.8 мы начнем с того, что зафиксируем два набора a vib значений переменных хх, ..., х„так, чтобыаг=г&и/(а)=1, /F)=0 (через /(а) и f(b) обо- обозначены значения функции / на наборах а и Ь). Это всегда можно сделать ввиду немонотонности функции /. Согласно определению понятия неравенства раборов, в наборах а и b на некоторых из мест, соответствующих друг другу, могут стоять одинаковые компоненты. На остальных же местах в наборе а стоят нули, а в наборе b — единицы. Заменяя в каком-либо порядке эти нули в наборе а еди- единицами, мы получим ряд так называемых соседних друг другу наборов ао—а, а,, аг,..., ап=Ь Сосед- Соседними мы будем называть наборы, отличающиеся значе- значением только одной из компонент). Поскольку/(ао)=1, а /(ап)=0, то найдутся два сосед- соседних друг другу набора ak и ak+1 таких, что f(ak) = l,f(ak+1) = =0. Предположим, что наборы ak и ak+1 отличаются зна- ТЕОРЕМА О ФУНКЦИОНАЛЬНОЙ ПОЛНОТЕ 243 чением /-й компоненты. В силу принятого нами способа построения наборов а0, ..., ап эта компонента'обязательно равна 0 в наборе ak и равна 1 в наборе ак+1. Следовательно, ak = (au ¦¦.,ai_u0,ai i+1, Подставляя в функцию /(х,, ..., хп) вместо переменной X) константу а;(/=1, 2, ..., /—1, /+1, ..., п), мы получим функцию одной переменной g(a:/)=/(a/, ..., а,_,, х,, a, + i ап)- В силу принятого способа выбора наборов ак и aft + 1 мы будем иметь: @) = 1 и Следовательно, g(x()=x/, и теорема доказана. Теперь можно приступить к доказательству основной теоремы настоящего параграфа — теоремы, о функциональ- функциональной полноте. Доказательство этой теоремы будет вестись по методу А. В. Кузнецова и С. В. Яблон- Яблонского1). 7.9. Теорема о функциональной пол- полноте. Для того чтобы система S булевых функций была функционально полной, необходимо и достаточно, чтобы эта система содержала хотя бы одну функцию, не сохраняющую константу 0, хотя бы одну функцию, не со- сохраняющую константу 1, хотя бы одну несамодвойствен- несамодвойственную функцию, хотя бы одну нелинейную функцию и хотя бы одну немонотонную функцию. Доказательство необходимости описываемых в этой теореме свойств системы булевых функций вытекает из предложений 7.3, 7.4, 7.5, 7.6 и 7,7, а также из того до- достаточно просто проверяемого факта, что тривиальные функции /(х,, ..., xn)=:Xiii='[, ..., п) принадлежат каж- каждому из введенных выше пяти замечательных классов булевых функций. Доказательство достаточности описываемых свойств мы начнем с того, что зафиксируем прежде всего пять функ- ') См. СВ. Яблонский, Функциональные построения в ft-значной логике, Труды матем. ин-та им. В. А. Стеклова,т. 51, изд. АН СССР, М.— Л., 1958, стр. 5—142. 16*
244 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III ТЕОРЕМА О ФУНКЦИОНАЛЬНОЙ ПОЛНОТЕ 245 ций, принадлежащих заданной системе S: функцию /,, не сохраняющую 0, функцию /,, не сохраняющую 1, несамо- несамодвойственную функцию /,, нелинейную функцию /4 и немо- немонотонную функцию /5 (при этом не исключено, что некото- некоторые из этих функций могут оказаться совпадающими). Нашей целью является построение в виде суперпозиции функций системы ? и переменных хх, ..., хп любой заданной булевой функции /(ж,, ..., хп) этих переменных. Если функция /(ж,, ..., хп) является константой, то условимся считать ее функцией не менее чем одной пе- переменной. Таким образом, для образования суперпозиций у нас в запасе имеется всегда хотя бы одна переменная ж,. Образуем суперпозицию функций /, и ж,, имеющую вид g{x1)=f1(x1, ж,,..., ж,). Так как функция /, не сохра- сохраняет 0, то g{0)—\. Если теперь g(l) = l, то #(?,)=!. Имея константу 1 и подставляя ее в функцию /2, не сохраняю- сохраняющую единицу, мы получим вторую константу — 0. Несколько сложнее обстоит дело в том случае, когда g(l)=0. Из равенств g(O) = l и g(l)=0 мы заключаем, что #(ж,)=ж,. Поскольку функция /,— несамодвойственная, найдется такой набор значений (а,, ..., аА) ее аргументов, что /,(а,, ..., аА)=/,(а,, ..., аА). Построим суперпозицию /г(х,) функций /, и фДж,), равных либо хл, либо ж,, по следу- следующему правилу: Здесь ф1-(ж,) = ж„ если а, = 0, и ф,- (ж,) = ж,, если а, = 1. Тогда мы имеем: М0)=/8(ф.@), ...,фа(())) =/,(«„« «*)=* = /, (а,, а„ ..., оА) = /, (ф, A) Фа A)) = h A). Следовательно, /г@)=/гA), то есть, иначе говоря, h(x)l есть функция, тождественно равная константе 0 или константе 1. Образуя суперпозицию этой константы с построенной функцией g(x1)=ж,, мы получим вторую кон- константу. Итак, в любом случае из функций системы S и перемен- переменных ж,, ..., хп могут быть построены константы 0 и 1. Применяя теорему 7.8 к функции /5, мы можем образовать суперпозицию этих функций, дающую функцию xr a значит, и все функции ж,, ..., хп. Таким образом, уже построены все функции от одной переменной. Из теории нормальных форм, изложенной в § 5, следует, что заданная функция /(ж,, ..., хп) может быть представлена в виде су- суперпозиции (вообще говоря, многократной) уже найден- найденных фуНКЦИЙ И фуНКЦИЙ Х^Х2, XjVX2. ФуНКЦИЯ ZjVXj В СВОЮ очередь может быть построена с помощью суперпозиции функций х,, хг и ххх% в соответствии со вторым правилом де Моргана (см. § 4). Итак, для завершения доказательства теоремы о функ- функциональной полноте нам остается получить функцию хххг. Для этой цели возьмем нелинейную функцию /4(ж,, ..., хр). Строя для этой функции канонический полином алгебры Жегалкина (см. § 4), мы обязательно найдем в этом поли- полиноме член, содержащий произведение каких-либо двух переменных х1 и xt, так как в противном случае функция /4 оказалась бы линейной. Используя, в случае необходимо- необходимости, СуПерПОЗИЦИЮ фуНКЦИИ /4 С фуНКЦИЯМИ Xj, Xj, Х1 И Хг, мы можем считать, что xl—xl, a Xj=x2. Все члены (канонические произведения) канонического полинома функции /4 можно разбить на 4 группы сле- следующим образом: в первую группу отнести все произве- произведения, содержащие как х1, так и х2, во вторую отнести произведения, содержащие только ж,, но не х2, в третью — произведения, содержащие только х2, но не ж,, и, нако- наконец, в четвертую группу — все произведения, не содер- содержащие ни х,, ни хг (некоторые из этих групп, кроме, разумеется, первой, могут оказаться и пустыми). После этого функция /4 приобретает вид = х1х2г|51 (ж, г (xt , (х хр) \ (*.. • • -. *,)• Функция г|5, не равна тождественно нулю. Выбирая значения переменных ха, . .., хр так, чтобы обратить эту функцию в 1, то есть осуществляя подходящую суперпо- суперпозицию функции /4 с константами, мы придем к функции
246 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III где а, р, у — константы 0 или 1. В нашем распоряжении для образования суперпозиций имеются функции ж,, х2, x1 = zi-{-lvLxt = x1-{-l. Мы можем, следовательно, об- образовать функцию + ( а) + Y = «Р « где б=рG Если 6=0, то нами построена требуемая функция ххх%, если же 6=1, то построенная функция равна хххг-\- -\-i=xlxt. Образуя суперпозицию этой функции с уже по- построенным отрицанием хх, мы придем к требуемой функции хххг. Тем самым теорема о функциональной полноте пол- полностью доказана. В случае наличия констант 0 и 1 в нашем распоряжении оказывается функция, не сохраняющая 0 (функция 1), функция, не сохраняющая 1 (функция 0), и несамодвойст- несамодвойственная функция (любая из функций 0 или 1). Вместе с тем константы являются, очевидно, линейными и монотон- монотонными. Отсюда непосредственно (на основе теоремы о функ- функциональной полноте) вытекает следующий результат. 7.10. Теорема об ослабленной функ- функциональной полноте. Для того чтобы система булевых функций была ослабленно функционально полной (полной при наличии констант), необходимо и достаточно, чтобы эта система содержала хотя бы одну нелинейную и хотя бы одну немонотонную функцию. Естественно называть функционально полную систему булевых функций несократимой, если из нее нельзя исклю- исключить ни одной функции так, чтобы оставшаяся после ис- исключения система функций снова была бы функционально полной. Любую функционально полную систему булевых функций можно привести к несократимому виду, выбра- выбрасывая из нее лишние функции. Как вытекает из теоремы о функциональной полноте, в любой несократимой функционально полной системе булевых функций со- содержится не более 5 функций. В действительности, их число всегда может быть сокращено до 4, поскольку функция /, не сохраняющая 0, либо не сохраняет 1, либо §7] ТЕОРЕМА О ФУНКЦИОНАЛЬНОЙ ПОЛНОТЕ 247 (если / A,1,..., 1)=1) является несамодвойственной. Таким образом, кроме этой функции достаточно оставить в си- системе лишь три функции: нелинейную, немонотонную и либо функцию, не сохраняющую 1 (если /A, 1,...,1)=1), либо несамодвойственную функцию (если/A,1,..., 1)=0). Вместе с тем нетрудно привести примеры функцио- функционально полных несократимых систем, состоящих из четы- четырех функций. Такой системой является, например, система функций: Из этой системы нельзя исключить ни одной функции, поскольку функция /, является единственной из функций этой системы, не сохраняющей константу 1, /,— един- единственной функцией, не сохраняющей константу 0, /,— единственной нелинейной функцией, а /4— един- единственной немонотонной функцией (несамодвойственными здесь являются три функции: /,, ft и /8). Таким образом, мы приходим к следующему предложе- предложению. 7.11. Максимальное возможное число функций в несо- несократимой функционально полной системе булевых функ- функций равно четырем. Доказательство теоремы о функциональной полноте дает общий конструктивный прием синтеза любых правиль- правильных комбинационных схем в двоичном структурном ал- алфавите из произвольных логических элементов, реализу- реализующих функционально полную систему булевых функций. Сущность этого приема состоит в том, что сначала из данной системы логических элементов выбирают пять типов элементов, реализующих булевы функции, не со- сохраняющие 0 и 1, несамодвойственную, нелинейную и немонотонную функции. Затем, осуществляя правильную композицию элементов первых трех типов, методами, опи- описанными в ходе доказательства теоремы о функцио- функциональной полноте, строят правильные комбинационные схемы, реализующие константы. Полученные две схемы принимаются за новые логические элементы. Из этих элементов и элементов, реализующих немонотонную и нелинейную функцию, строят комбинационные схемы, реализующие отрицание и конъюнкцию. После этого
248 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III строится дизъюнкция и применяется общий метод пред- представления произвольных булевых функций с помощью совершенных нормальных форм (дизъюнктивных или конъюнктивных). Тем самым получается одно из возможных решений общей задачи синтеза комбинационных схем в двоичном структурном алфавите, поскольку уже в классе правиль- правильных комбинационных схем можно реализовать любые выходные функции. Разумеется, это решение имеет ско- скорее чисто теоретический, чем практический интерес, так как описанный метод синтеза приводит, как правило, к излишне усложненным схемам. Практически более целе- целесообразные приемы синтеза комбинационных схем стро- строятся обычно для каждой системы логических элементов отдельно. При построении функционально полных систем ло- логических элементов мы будем связывать с этими элемен- элементами понятия, относящиеся к реализуемым этими элемен- элементами булевым функциям. Например, нелинейными логи- логическими элементами будем называть логические элементы, реализующие нелинейные булевы функции. Естественно не различать между собой логических элементов, отли- отличающихся лишь способом обозначения входных сигналов. Таким образом, логические элементы находятся во вза- взаимно однозначном соответствии не с самими булевыми функциями, а с классами булевых функций в смыс- 3. Как отмечалось в конце § 3, имеется 12 различных классов булевых функций двух переменных и, следова- следовательно, 12 различных логических элементов в двоичном структурном алфавите, имеющих не более двух элемен- элементарных входных сигналов каждый. Перечислим все эти элементы, исключая из рассмотрения тривиальный элемент, реализующий функции я, или xt (в электрон- электронных схемах тривиальным элементам соответствует просто кусок проводника, соединяющего два узла схемы). Остальные 11 логических элементов представляют со- собою нулевой и единичный элементы, реали- реализующие функции-константы, инвертор, реализую- реализующий отрицание х, совпадение, реализующее конъ- конъюнкцию (произведение) #,#2, разделение, реализу- I7J ТЕОРЕМА О ФУНКЦИОНАЛЬНОЙ ПОЛНОТЕ 249 ющее дизъюнкцию XjVX2. Далее идут совпадения с одним и с двумя запретами, реализую- реализующие функции хххг и х,х2 соответственно, разделение содним запретом (функция хх\/хг), разделе- разделение с двумя запретами, или штрих Ш е ф ф е р а (функция x,vx2). Наконец, имеется еще элемент равнозначности, реализующий функцию я,?^,^, и элемент неравнознач- неравнозначности (двоичный полусумматор), реализующий функ- функцию х,+х2. Разобьем эти элементы на группы, имея целью облег- облегчить применение к системам этих элементов теорему о функциональной полноте. К группе немонотонных элементов относятся: инвер- инвертор, совпадение с одним запретом, совпадение с двумя запретами, разделение с одним запретом, разделение о двумя запретами, элемент равнозначности и элемент неравнозначности — всего 7 логических элементов. К группе нелинейных элементов относятся: совпадение, разделение, совпадения и разделения с одним и с двумя. запретами — всего 6 логических элементов. К группе несамодвойственных элементов относятся: ну- нулевой и единичный элементы, совпадение и разделение, совпадение и разделение с одним и с двумя запретами, а также элементы равнозначности и неравнозначности — всего 10 элементов (то есть все элементы, за исключением инвертора и тривиального элемента х). К группе элементов, не сохраняющих константу 0, относятся: единичный элемент, инвертор, совпадение с двумя запретами, разделение с одним и с двумя запрета- запретами, а также элемент равнозначности — всего 6 элемен- элементов. Наконец, к группе элементов, не сохраняющих кон- константу 1, относятся: нулевой'элемент, инвертор, совпа- совпадение с одним и с двумя запретами, разделение с двумя запретами и элемент неравнозначности — всего 6 эле- элементов. Эти результаты удобно свести в табл. III. 10, в которой знаком + отмечена принадлежность элемента к той или иной из введенных 5 групп.
250 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. Ill Таблица ШЛО Тип элемента Тривиальный . . Нулевой Единичный .... Совпадение.... Разделение .... Инвертор .... Совпадение с за- запретом .... Разделение с за- запретом .... Совпадение с дву- двумя запретами. . Разделение с двумя запретами . . . Элемент равно- равнозначности . . . Элемент неравно- неравнозначности . . . функция X 0 1 Х\Хг x^wxt X ж, ж, X{4Xt x^xt X{4Xt - x^xt\lx^xt *! + *! Группы элементов немо- нотон- нотонные — — -р -р -р -р ~г -р + нели- ней- нейные _|_ + -р -р -р -р — неса- мо- двсй- стнвн- ные — -р -р -р -р -р + не со- храня- храняющие- 0 _|_ . — -р — -р -р -р -р не со- храня- храняющие 1 , — -р -р — -р -р — + Из табл. III. 10 видно, что существуют два двухвхо- довых элемента, а именно совпадение и разделение с двумя запретами (х,хг, x,v?2), каждый из которых составляет функционально полную систему логических элементов, то есть дает возможность построения на его основе комби- комбинационных схем, реализующих любые функции в двоич- двоичном структурном алфавите. При наличии констант этим свойством обладают еще два логических элемента, а именно совпадение и разделение с одним запретом (xtxt, xty,xt). Построенная таблица позволяет находить также все- всевозможные другие функционально полные системы логи- логических элементов. Признаком функциональной полноты системы элементов является, очевидно, наличие плюса в каждом столбце таблицы хотя бы для одного из состав- составляющих систему элементов. § 8] КАНОНИЧЕСКИЕ УРАВНЕНИЯ СТРУКТУРНЫХ СХЕМ 251 Легко устанавливается, например, функциональная полнота следующих систем логических элементов: 1) совпадение и инвертор; 2) разделение и инвертор; 3) совпадение, элемент неравнозначности и единичный элемент; 4) разделение с запретом и нулевой элемент; 5) совпадение с запретом и единичный элемент. § 8. Канонические уравнения структурных схем в двоичном структурном алфавите В § 2 настоящей главы был решен вопрос о сведении общих проблем структурного синтеза автоматов к пробле- проблемам синтеза комбинационных схем. В случае двоичного структурного алфавита можно внести дополнительные уточнения в канонический метод структурного синтеза автоматов, рассмотренный в § 2. Первое уточнение состоит в том, что в слу- случае двоичного структурного алфавита в качестве запоми- запоминающих элементов используются обычно автоматы с двумя внутренними состояниями, обладающие полной системой переходов и полной системой выходов. Можно провести полную классификацию такого рода автоматов, получив при этом все наиболее употребительные в настоящее время запоминающие элементы логических схем автоматов. Для каждого из полученных в результате проведенной классификации запоминающих элементов можно указать специальные приемы получения канонических уравнений автомата, более удобные по сравнению с общим приемом, описанным в § 2. В построении таких специальных приемов будет состоять второе уточнение, вносимое в настоящем параграфе в канонический метод синтеза авто- автоматов. Приступая к классификации автоматов с двумя внут- внутренними состояниями, заметим прежде всего, что в таб- таблицах переходов таких автоматов не может быть более четырех различных строк. Ясно также, что нет смысла различать входные сигналы в автомате Мура, если им соответствуют одинаковые строки в таблице переходов автомата.
252 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III Мы будем поэтому рассматривать лишь такие автоматы с двумя состояниями, число входных сигналов которых не превосходит четырех. Обозначим состояния автоматов через 0 и 1 и введем специальные буквенные обозначения для входных сигналов, которым соответствует та или иная фиксированная строка таблицы переходов автомата, при условии, что первый столбец таблицы обозначается состо- состоянием 0, а второй — состоянием 1. Через х условимся обозначать входной сигнал, которому соответствует строка @0), через у— входной сигнал со строкой A1), через z — входной сигнал со строкой @1), через и — входной сигнал со строкой A0). Полнота системы переходов в автомате означает, оче- очевидно, что в каждом столбце таблицы переходов автомата должны встречаться символы всех его состояний. С уче- учетом этого обстоятельства мы получаем следующие возмож- возможные типы запоминающих элементов. 1) Элемент с таблицей переходов III. 11, называемый обычно элементом задержки. Для этого элемента приме- применяется система кодирования входных сигналов х=0, 1 Таблица III.11 Таблица III.12 Таблица III.13 X У 0 0 1 1 0 1 z и 0 0 1 1 1 0 Z X У 0 0 0 1 1 1 0 1 2) Элемент с таблицей переходов III. 12, называемый обычно триггером со счетным входом, или счетчиком по модулю 2. Сигнал z в этом случае отождествляется с нуле- нулевым сигналом, сигнал и — с единичным. 3) Элемент с таблицей переходов III. 13, называемый обычно триггером с раздельными входами. Для него упо- употребляется система кодирования входных сигналов z= = @0), z=A0), y=@i) (элемент имеет два элементарных входных канала). 4) Элемент с таблицей переходов III. 14, который есте- естественно назвать комбинированным триггером (он полу- 8 8] КАНОНИЧЕСКИЕ УРАВНЕНИЯ СТРУКТУРНЫХ СХЕМ 253 Таблица III.14 Таблица III.15 Таблица 111.16 Z и X У 0 0 1 0 1 1 1 0 0 1 z и X 0 1 0 1 1 0 0 z и У 0 0 1 1 l 1 0 1 чается в результате комбинирования в одном элементе двух триггеров — триггера со счетным входом и триггера с раздельными входами). Для этого элемента употребля- употребляется следующая система кодирования входных сигналов: 2 = @0), в = A1), х = A0), у=@1). Кроме перечисленных элементов, находящих широкое применение в схемах современных электронных цифровых автоматов, теоретически возможными (хотя и малоупо- малоупотребительными на практике) являются еще три автомата с двумя состояниями, обладающие полной системой пе- переходов: 5) Элемент с таблицей переходов III.15. 6) Элемент с таблицей переходов III.16. 7) Элемент с таблицей переходов II 1.17. Таблица III.17 Таблица III.18 Таблица III.19 и X У 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 Эти три элемента не имеют специальных названий. Следует иметь в виду, что приведенная классификация основана на трактовке исследуемых элементов как аб- абстрактных автоматов. Возможны поэтому различные мо- модификации каждого из этих элементов с помощью при- применения систем кодирования входных сигналов, отличных
254 СТРУКТУРНАЯ ТВОРИЯ АВТОМАТОВ [Гл. III от рассмотренных выше. То же самое относится и к вы- выходным сигналам; хотя из условия пелноты системы выхо- выходов вытекает взаимно однозначное соответствие между состояниями автоматов и их выходными сигналами, си- система кодирования выходных сигналов может отличаться от принятой системы кодирования состояний. Так, в различного рода триггерах (элементы 2, 3, 4) обычно имеется два элементарных выходных канала: сигнал на однвм из этих каналов повторяет символ а состояния автомата, а на втором совпадает с его отрица- отрицанием а. Что же касается элемента задержки, то он имеет один элементарный выходной канал, сигнал на котором совпадает с внутренним состоянием элемента. Для описания упрощенных приемов получения кано- канонических уравнений введем понятия абстрактной и струк- структурной таблиц переходов автомата. Абстрактной табли- таблицей переходов автомата мы будем называть обычную его таблицу переходов, в которой состояния автомата обо- обозначаются просто буквами того или иного алфавита. В структурной таблице переходов состояния автомата обязательно кодируются наборами букв структурного алфавита (в рассматриваемом нами частном случае алфа- алфавита — в двоичном алфавите — кодирование произво- производится наборами из нулей и единиц). Входные сигналы автомата также предполагаются закодированными в двоичном структурном алфавите. За- Заменяя в таблице переходов автомата каждое его структур- структурное (закодированное) состояние структурным входным сигналом памяти автомата, вызывающим указанный в таблице переход, мы приходим к понятию таблицы воз- возбуждений автомата. Таблица возбуждений задает вектор- векторную функцию возбуждений автомата (см. § 2). По ней, а также по структурной таблице выходов автомата непо- непосредственно строится его функциональная таблица (см. § 2), являющаяся исходным пунктом для построения ком- комбинационной части схемы данного автомата. Для двоичного структурного алфавита, при использо- использовании описанных выше запоминающих элементов, суще- существуют относительно простые приемы построения таблиц возбуждений. К описанию этих приемов мы сейчас и пе- переходим. $ 8] КАНОНИЧЕСКИЕ УРАВНЕНИЯ СТРУКТУРНЫХ СХЕМ 255 8.1. При использовании в качестве запоминающих эле- элементов элементов задержки (с двумя состояниями) таблица возбуждений автомата совпадает с его структурной таблицей переходов. Чтобы доказать предложение 8.1, достаточно обратить внимание на то, что в элементе задержки переход из лю- любою состояния в состояние 0 осуществляется с помощью входного сигнала 0, а переход из любого состояния в со- состояние 1 осуществляется с помощью входного сигнала 1. Такое свойство элемента задержки легко усмотреть непо- непосредственно из его структурной таблицы переходов II 1.18. 8.2. В случае использования в качестве запоминающих элементов триггеров со счетным входом для получения таблицы возбуждений автомата достаточно к каждой строке этой таблицы прибавить {покоординатно) по модулю 2 строку структурных состояний, последователь- последовательно обозначающих столбцы таблицы переходов. Действительно, если обозначить через х входной сиг- сигнал, переводящий триггер со счетным входом из состояния а, в состояние а,, то из таблицы переходов триггера II 1.19 непосредственно усматриваем, что а,-Нг=а,. Прибавляя к обеим частям этого равенства по а, и используя соотно- соотношение B6) из § 4, мы приходим к соотношению x—a^-\-at, чем и завершается доказательство предложения 8.2. Например, если структурная таблица переходов ав- автомата имеет вид, показанный в табл. III. 20, то в случае Таблица III.20 Таблица III.21 0 1 00 10 01 01 00 10 10 10 01 0 1 00 10 01 01 01 11 10 00 11 использования в качестве запоминающих элементов триггеров со счетными входами мы приходим, поль- пользуясь предложением 8.2, к таблице возбуждений III.21. Для случая триггеров с раздельными входами и ком- комбинированных триггеров положение усложняется благо-
256 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III §8] КАНОНИЧЕСКИЕ УРАВНЕНИЯ СТРУКТУРНЫХ СХЕМ 257 даря тому, что для кодирования их состояний использу- используется одна буква (цифра) двоичного алфавита, а для коди- кодирования их структурных входных сигналов необходим уже двухбуквенный код. В силу этого обстоятельства в структурной таблице переходов синтезируемого автомата с памятью каждый символ @ или 1), обозначающий состояние, в которое переходит один из соответствующих триггеров, заменяется двумя символами ?,?,, означающими сигналы, которые надо подать на входы триггера, чтобы вызвать переход из состояния а в состояние Ъ (а — символ, обозначающий столбец структурной таблицы переходов, в котором нахо- находится выделенный символ Ь). При этом каждый из симво- символов хххг может принимать кроме значений 0 и 1 еще и безразличное значение, которое мы будем обо- обозначать черточкой. В случае, когда тот или иной символ принимает безразличное значение, это означает, что он может, в действительности, принять любое из двух зна- значений 0 или 1 без нарушения правильности соответствую- соответствующего перехода. В рассматриваемом случае оказывается целесообраз- целесообразным записывать закон преобразования таблицы переходов в таблицу возбуждений с помощью системы подстановок вида (?)—*(хгхг). Такая запись означает, что элемент b таблицы переходов, стоящий в столбце таблицы, обозна- обозначенном символом а, заменяется структурным входным сиг- сигналом xtxt. Назовем указанную систему подстановок системой подстановок для получения таблицы возбуж- возбуждений. Задание такой системы подстановок позволяет по любой заданной таблице переходов получить соответству- соответствующую ей таблицу возбуждений. Таблица 111.22 Таблица 111.23 0 1 00 10 00 10 10 10 0 1 0 10 -1 0 —1 —1 1 0— 0— 0 -1 -1 Например, если таблица подстановок для получения таблицы возбуждений имеет вид ( q)-^(—1)»(» J—A0)л » )-+ -+@—), то из таблицы переходов III. 22 мы получим таб- таблицу возбуждений III. 23, что приводит в свою очередь к функциональной таблице III. 24. Таблица 111.24 Таблица III.25 000 010 100 110 1 0 0 х2 0 — 1 ¦— ХЛ _ — _ — 1 1 1 1 00 10 01 0 0 0 1 1 1 0 1 Укажем теперь системы подстановок для триггеров с раздельными входами и для комбинированных триггеров. 8.3. В случае использования в качестве запоминающих элементов триггеров с раздельными входами система под- подстановок для получения таблицы возбуждений имеет вид Доказательство предложения 8.3 вытекает из рассмот- рассмотрения структурной таблицы переходов триггера с раздель- раздельными входами (табл. III. 25). Необходимо подчеркнуть, что при выбранной системе кодирования в любой паре (х^хг), составляющей струк- структурный входной сигнал триггера с раздельными входами, первый элемент пары (я,) означает элементарный входной сигнал на нулевом входном канале триггера (передача сигнала 1 по этому каналу уста- устанавливает триггер в состояние 0), а второй элемент пары (хг) означает элементарный входной сигнал на е д и н и ч- ном входном канале триггера (передача сигнала 1 по этому каналу устанавливает триггер в 1). 8.4. В случае использования в качестве запоминающих элементов комбинированных триггеров первого рода си- система подстановок для получения таблицы возбуждений 17 В. М. Глушков
258 структурная теория автоматов имеет вид [Гл. III <-<». (?)-(-!>. (J)-(!-). Доказательство предложения 8.4 вытекает непосред- непосредственно из рассмотрения структурной таблицы переходов комбинированного триггера первого рода (табл. III. 26). Таблица II 1.26 Таблица II 1.27 00 10 01 11 0 0 0 1 1 1 1 0 1 0 000 100 010 001 0 0 0 1 1 1 1 0 1 0 При выбранной системе кодирования первый элемент структурного входного сигнала триггера означает сигнал на его нулевом входном канале, а второй элемент — сиг- сигнал на его единичном входном канале. Одновременная передача сигналов 1 по обоим входным каналам вызывает работу триггера в режиме счетного входа; иначе говоря, в этом случае триггер работает так, как работал бы триг- триггер со счетным входом при передаче по его единственному входному каналу сигнала 1. Заметим, что на практике для комбинированного триг- триггера часто используют три входных канала, двумя из которых являются каналы для установки триггера в со- состояния 0 и 1, а третьим — канал, отличающийся тем, что передача по нему сигнала 1 вызывает работу триггера в режиме счетного входа; этот последний канал естествен- естественно называть счетным. При этом сигнал 1 в каждый данный момент может передаваться не более чем ио одному из трех указанных каналов. Если первый элемент струк- структурного входного сигнала такого триггера обозначает сигнал на его нулевом входном канале, второй элемент — сигнал на его единичном входном канале, а третий эле- элемент — сигнал на его счетном входном канале, то струк- структурная таблица переходов рассматриваемого триггера будет иметь вид, представленный в табл. 111.27. 8] КАНОНИЧЕСКИЕ УРАВНЕНИЯ СТРУКТУРНЫХ СХЕМ 259 Комбинированные триггеры с тремя входными каналами,— при условии, что входные сигналы кодируются по рас- рассмотренной»' выше системе — мы будем называть комбини- комбинированными триггерами второго рода (за рассматривав- рассматривавшимися .ранее комбинированными триггерами с двумя входивши каналами мы закрепим название комбинирован- комбинированных триггеров первого рода). 8.5. Система подстановок для получения таблицы воз- возбуждений в случае комбинированных триггеров второго рода может быть записана следующим образом: где через б и е обозначен любой из символов 0 или 1, а через б и е — их отрицания. Указанная система подстановок получается непосред- непосредственно из рассмотренной выше структурной таблицы переходов комбинированного триггера второго рода. Следует отметить, впрочем, что в задачах синтеза авто- автоматов при использовании комбинированных триггеров второго рода эти триггеры предпочитают рассматривать в одних случаях как триггеры со счетным входом, а в дру- других — как триггеры с раздельными входами, применяя при построении их таблиц возбуждений предложения 8.2 и 8.3, а не предложение 8.5. Построение таблицы возбуждений автомата является главной составной частью процесса получения канониче- канонических уравнений синтезируемого автомата. Эти уравнения могут быть получены, например, в результате записей функций возбуждения, представленных таблицей возбуж- возбуждений автомата, в совершенной нормальной форме (дизъ- (дизъюнктивной или конъюнктивной). Мы будем употреблять для этой цели совершенную дизъюнктивную нормальную форму. Рассмотрим в качестве примера получение канониче- канонических уравнений для абстрактного автомата Мура А, син- синтезированного в примере 2, рассматривавшегося в § 8 главы 2. Отправляясь от отмеченной таблицы переходов этого автомата А (табл. III. 28) и применяя естественную систему кодирования его состояний 17*
260 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [Гл. III Таблица III.28 0 1 - 0 2 1 1 i 7 4 0 2 7 3 0 3 6 7 0 4 5 7 0 5 6 7 1 6 7 7, 0 7 / 7 ' 7 в двоичном алфавите (состоящую в том, что в качестве кода состояния употребляется просто номер этого со- состояния в двоичной системе счисления), мы получим структурную таблицу переходов Р автомата (табл. II 1.29). 0 1 000 010 001 001 111 100 010 111 011 он 110 111 Та 100 101 111 блица III.29 101 НО 111 по 111 111 in 111 111 Условимся через х обозначать входной сигнал авто- автомата А, а через (z,, zz, za) — его структурное (закодиро- (закодированное) состояние. Рассмотрим случай, когда в качестве запоминающих элементов выбираются элементы задержки, и обозначим через (и,, uit ut) структурный входной сигнал памяти автомата А {и[ — входной сигнал /-го элемента памяти автомата, где i=l, 2, 3). В силу предложения 8.1 таблица возбуждений автомата совпадает с его структур- структурной таблицей переходов. Функции возбуждений автомата ft(x, z,, z2, z,) задают зависимость входных сигналов в каждый момент от вход- входного сигнала и структурного состояния автомата А: tti=f,(x,zl,zt,zt) A = 1,2,3). A) Эти зависимости и являются искомыми каноническими уравнениями автомата А. Для явного выражения правых частей уравнений A) представим их в совершенной дизъ- 8] КАНОНИЧЕСКИЕ УРАВНЕНИЯ СТРУКТУРНЫХ СХЕМ 261 юнктивной нормальной форме, фиксируя наборы, на ко- которых значения us равны единице. Таким образом, мы легко найдем, например, выражение для ц,: = xz1 гггг v xzlz2z,v xzlzizt vxz1z2zt у xz v xzizizt v xz1z1zt v xz, zzzt v v xzizizt v xzizi zt v xzxzj.b v zt v Найденное выражение достаточно громоздко. Исполь- Используя методы минимизации, излагаемые в следующем па- параграфе, его можно, правда, существенно упростить. Сей- Сейчас, однако, мы не будем заниматься его упрощением, а укажем лишь один более простой метод задания совершен- совершенных дизъюнктивных нормальных форм, часто применя- применяющийся на практике. Суть этого метода заключается в том, что вместо явного выписывания конституент единицы, со- составляющих дизъюнктивную нормальную форму, выпи- выписываются лишь номера этих конституент, то есть номера тех наборов, на которых данные консти- туенты обращаются в единицу. При этом, разумеется, не- необходимо фиксировать некоторый определенный порядок следования переменных, от которых зависят функции возбуждения. Мы условимся считать Первыми переменные, состав- составляющие структурный входной сигнал автомата, причем сами эти переменные выписываются в том порядке, в ко- котором они вписаны в структурной таблице переходов авто- автомата. После этих переменных выписываются (тоже в том порядке, который принят в структурной таблице перехо- переходов) переменные, составляющие структурное состояние автомата. Используя принятую систему обозначений, канони- канонические уравнения автомата в рассматриваемом случае можно записать в следующем виде: и1 = [1, 2, 3, 4, 5, 6, 7, 9, И, 12, 13, 14, 15], и2 = {0, 1, 2, 3, 5, 6, 7, 10, И, 12, 13, 14, 15], в, = [1, 2, 4, 6, 7, 8, 10, И, 12, 13, 14, 15]. B) Найдем теперь канонические уравнения того же самого автомата в предположении, что в качестве запоминающих
262 СТРУКТУРНАЯ ТЕОРИЯ АВТОМАТОВ [гл; ш элементов используются триггеры со счетными входами. Применение предложения 8.2 приведет к таблице возбуж- возбуждений автомата А III. 30; а это значит, что канонические 0 1 000 010 001 001 но 101 010 101 001 он 101 100 Та 100 001 011 блица Ш.ЗО 101 он 010 по 001 001 111 000 000 уравнения (в сокращенной записи) представятся в виде «, = [1, 2, 3, 9, 11], 1 о, = 10,- 1, 5, 12, 13], I C) в, = [2, 3, 4, 5, 6, 8, 9, 10 12, 14]. J В случае использования в качестве запоминающих элементов триггеров с раздельными входами мы с помощью предложения 8.3 можем найти таблицу возбуждений рас- рассматриваемого автомата А (табл. III. 31). 0 1 000 -001--0 -0-001 001 01010— 01—010 010 010-01 -00-01 011 010-10 010—0— 100 0 001 0- 0101 Таблица 101 0-0110 0—010— но 0-0-01 0-0-01 111.31 111 0—0—0— 0-0-0- В этом случае структурный входной сигнал памяти автомата имеет не три компоненты, как в ранее разобран- разобранных случаях, а шесть — по две компоненты на каждый триггер. Обозначим через ut сигнал на нулевом входном канале, а через vt — сигнал на единичном входном канале 1-го триггера (/=1, 2, 3). Тогда согласно принятым усло- условиям (переменный) структурный входной сигнал памяти автомата будет иметь вид (и^:игрги,р,). Рассматриваемый § 8] КАНОНИЧЕСКИЕ УРАВНЕНИЯ СТРУКТУРНЫХ СХЕМ 263 случай отличается также наличием безразличных зна- значений переменных, обозначаемых черточками. Поскольку в качестве этих значений могут быть вы- выбраны как 0, так и 1, соответствующие им конституенты единицы могут быть по нашему желанию либо введены в совершенную дизъюнктивную нормальную форму, либо исключены из нее. Мы будем называть такие конституенты безразличными и при выписывании канонических уравне- уравнений автомата описанного выше типа помещать их в круг- круглые скобки. Следует подчеркнуть, что введение в совершенную дизъюнктивную нормальную форму некоторых безраз- безразличных конституент может способствовать, как это будет показано в следующей главе, более полной минимизации этой формы. Именно поэтому целесообразно в записи ка- канонических уравнений на первых порах сохранять все безразличные конституенты с тем, чтобы в результате последующего анализа отбросить те из них, которые не способствуют минимизации, и включить в совершенную дизъюнктивную нормальную форму безразличные кон- конституенты, способствующие минимизации этой формы Применяя введенный способ обозначений, мы полу- получим — для случая использования в качестве запоминаю- запоминающих элементов триггеров с раздельными входами — сле- следующие канонические уравнения автомата А: в, = [@,-8, 10)], vl = [i, 2, 3, 9, 11, D, 5, 6, 7. 12, 13, 14, 15)], в,= [D. 8, 9)], р|=[0, 1, 5, 12, 13, B, 3, 6, 7, 10, И, 14, 15)], в, = [3, 5, 9 @)], v,= [2, 4, 6, 8, 10, 12, 14, A, 7, И, 13, 15)]. D) В уравнениях с левыми частями и1 и иг все конститу- конституенты, стоящие в правых частях, являются безразличными. Поэтому можно принять, что и-=иг=0. Для остальных переменных получаются уравнения с нетривиальными правыми частями.
ГЛАВА IV МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИИ § 1. Сокращенные и минимальные дизъюнктивные нормальные формы Под минимизацией булевой функции понимается на- нахождение наиболее простого представления этой функции в виде суперпозиции функций, составляющих какую- нибудь фиксированную функционально полную систему S булевых функций. Наиболее простым счи- считается обычно представление, содержащее наименьшее возможное число суперпозиций. Понимаемая в таком смысле задача минимизации булевых функций всегда разрешима, поскольку мы будем рассматривать лишь конечные функционально полные системы. В этом случае можно организовать последовательный перебор сначала всех функций системы <S\ затем всевозможных их парных суперпозиций, тройных суперпозиций и т. д., пока не будет получена суперпозиция, равная заданной булевой функции. Разумеется, такой метод последовательного перебора всех представлений является весьма громоздким и не может применяться на практике без существенных усовершенствований. На практике пользуются обычно специальными приемами минимизации,разрабатываемыми применительно к каждой отдельной функционально пол- полной системе S булевых функций. Наиболее детально та- такие приемы разработаны для случая, когда система S состоит из дизъюнкции, конъюнкции и отрицания. В этом случае задача минимизации булевой функции сводится к нахождению выражения булевой алгебры, представля- представляющего заданную функцию и построенного с помощью на- наименьшего возможного чисда. операций. МИНИМАЛЬНЫЕ ДИЗЪЮНКТИВНЫЕ ФОРМЫ 265 Мы ограничимся еще более частной задачей миними- минимизации, а именно задачей представления заданной булевой функции дизъюнктивной нормальной формой, содержащей наименьшее возможное число букв. Условимся называть эту задачу канонической задачей минимизации булевых функций. Каноническая задача минимизации играет ос- основную роль при синтезе комбинационных схем в случае наличия на входах этих схем наряду с любым данным сиг- сигналом х также и сигнала х. Подобная ситуация имеет, например, место при синтезе цепей обратной связи авто- автоматов, использующих в качестве запоминающих элемен- элементов одну из разновидностей триггеров, описанных в § 8 предыдущей главы. При решении канонической задачи минимизации су- существенную роль играют понятия импликанты и простой импликанты булевой функции '). 1.1. Булева функция g=g(xt хп) называется импли- кантой булевой функции /=/(?,,..., хп), если на любом на- наборе значений переменных ж,, ..., хп% на котором значение функции g равно единице, значение функции f также равно единице. Простой импликантой функции f называется всякое элементарное произведение g=xiixia...Xik, являющееся им- импликантой функции f и такое, что никакая его собственная часть {то есть произведение, получающееся иг произведения g выбрасыванием одного или нескольких сомножителей х\) уже не является импликантой функции f. Для правильного понимания сформулированного оп- определения необходимо напомнить, что, согласно принятому в предыдущей главе условию, элементарное произведение, состоящее из пустого множества, сомножителей, прини- принимается равным единице. Таким образом, константа 1 яв- является собственной частью любого элементарного произ- произведения. В силу сделанного замечания состоящее из од- одного сомножителя (буквы) элементарное произведение, являясь импликантой какой-либо булевой функции, не равной тождественно единице, будет всегда простой им- импликантой этой функции. ') См. W. V. Q u i n e, The problem of simplifying of truth functions. Amer. Math. Monthly, v. 59, № 8, 1952, p. 521—531.
266 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV Для произвольных импликант имеет место следующее предложение, справедливость которого вытекает непосред- непосредственно из определения 1.1. 1.2. Дизъюнкция любого множества импликант одной и той же булевой функции является импликантой этой функции. Предположим, что на некотором наборе а значений переменных некоторая булева функция / принимает зна- значение, равное единице. Условимся говорить, что эта еди- единица накрывается импликантой g функции /, если на на- наборе а импликанта g также обращается в единицу. Усло- Условимся называть систему S импликант функции / пол- полной, если любая единица из таблицы значений функ- функции / накрывается хотя бы одной импликантой систе- системы S. Справедливо следующее предло- предложение. 1.3. Дизъюнкция всех импликант булевой функции /, входящих в какую-либо полную систему S импликант этой функции, совпадает с функцией f. В самом деле, в силу предложения 1.2 и определения полноты системы импликант, дизъюнкция g всех импли- импликант системы S является импликантой функции /, на- накрывающей все единицы этой функции. Будучи импли- импликантой функции /, функция g должна обращаться в нуль на всех наборах, на которых обращается в нуль функция /. Вместе с тем, на любом наборе, на котором функция / обращается в единицу, функция g также должна обращать- обращаться в единицу, так как она накрывает все единицы функции /. Следовательно, значения функций /и g совпадают на всех наборах, то есть функции / и g равны друг другу, что и требовалось доказать. Для данной булевой функции / можно построить, вооб- вообще говоря, не одну, а много различных полных систем импликант. Одной из таких систем является система, со- состоящая лишь из самой функции /. Другой полной систе- системой импликант функции / является, очевидно, система всех конституент единицы, представляющих собою им.- пликанты данной функции. Эти две системы различим для функций, таблицы значений которых насчитывают более одной единицы. МИНИМАЛЬНЫЕ ДИЗЪЮНКТИВНЫЕ ФОРМЫ 267 Для минимизации булевых функций существенное зна- значение имеет следующее предложение. 1.4. Система всех простых импликант булевой функции является полной системой. В самом деле, рассмотрим произвольную булеву функ- функцию /. Если / — тождественный нуль, то доказывать не- нечего. Если же функция / отлична от нуля, то рассуждение поведем так. Рассмотрим произвольный набор, на котором эта функция принимает значение, равное 1. Соответству- Соответствующая этому набору конституента единицы К=х1хг...хп является, очевидно, импликантой функции /. Некоторая часть р элементарного произведения К (быть может, сов- совпадающая с ним самим) обязательно будет простой им- импликантой функции /. Действительно, если элементарное произведение само не является простой импликантой, то некоторая его собственная часть К1 будет импликантой функции /. Если импликанта .ЙГ, также непростая, то можно выделить ее собственную часть Кг, снова являющуюся импликантой функции /. Продолжая подобным образом далее, придем к простой импликанте р. Благодаря способу своего определения, простая импли- импликанта р обращается в единицу на наборе а. Следовательно, для любой единицы из таблицы значений булевой функции / найдется накрывающая ее простая импликанта этой функ- функции. Предложение 1.4 тем самым полностью доказано. Из предложений 1.3 и 1.4 непосредственно вытекает следующий результат. 1.5. Дизъюнкция всех простых импликант булевой функ- функции совпадает с этой функцией. Особого рассмотрения в высказанном предложении требует лишь случай функции, тождественно равной нулю. В этом случае функпия не имеет, очевидно, ни одной простой импликанты. Однако, согласно принятому в пре- предыдущей главе условию, дизъюнкция пустого множества членов принимается равной нулю. Так что теорема оста- остается справедливой и в этом случае. Введем следующее определение. 1.6. Дизъюнкция всех простых импликант булевой функции называется сокращенной дизъюнктивной нормаль- нормальной формой этой функции.
268 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [ГЛ. IV . Сокращенная дизъюнктивная нормальная форма яв- является, вообще говоря, более экономным способом пред- представления булевой функции, чем совершенная дизъюнк- дизъюнктивная нормальная форма. Однако в большинстве случаев она допускает дальнейшие упрощения за счет того, что некоторые из простых импликант могут поглощаться дизъюнкциями других простых импликант. Например, в сокращенной дизъюнктивной нормальной форме f=xyv vxyvxzvyz простая импликанта yz поглощается дизъюнкци- дизъюнкцией остальных членов формы, так что ху v xy v xz v yz = xy v xy v xz. Справедливость этого утверждения легко проверить, за- замечая, что импликанта yz обращается в единицу лишь на двух наборах а=@11) и р = A11). В то же время на наборе а обращается в единицу импликанта ху, а на наборе Р — импликанта xz. В связи со всем сказанным естественно ввести сле- следующее определение. 1.7. Система S простых импликант булевой функции f называется приведенной, если эта система полна, а ни- никакая, ее собственная часть не является полной системой импликант функции f. Дизъюнкция всех простых импли- импликант, составляющих систему S, называется приведенной или тупиковой дизъюнктивной формой функции f. Из предложения 1.3 мы непосредственно выводим, что всякая тупиковая дизъюнктивная нормальная форма любой булевой функции совпадает с этой функцией. Вместе с тем, в отличие от сокращенной дизъюнктив- дизъюнктивной нормальной формы, однозначно определяемой функ- функцией /, для одной и той же булевой функции может суще- существовать несколько различных тупиковых дизъюнктивных нормальных форм. Так, например, функция, задаваемая сокращенной д. н. ф. (дизъюнктивной нормальной фор- формой) f=xyvxyvxzvyz, имеет две тупиковых д. н. ф.: /,= =xyvxyvxz и f2=xyvxyvyz. Естественно оценивать сложность дизъюнктивных нор- нормальных форм общим числом входящих в них букв, счи- считая различными буквами вхождения одной и той же буквы в различные дизъюнктивные члены формы. В соответствии МИНИМАЛЬНЫЕ ДИЗЪЮНКТИВНЫЕ ФОРМЫ 269 с этим условием мы должны считать, что рассмотренная выше форма / содержит 8 букв, а формы /, и /8— по 6 букв каждая. Введем следующее определение. 1.8. Минимальной дизъюнктивной нормальной формой булевой функции называется дизъюнктивная нормальная форма (д.н.ф.) этой функции, состоящая из наименьшего числа букв. Нетрудно видеть, что минимальная д. н. ф. / любой бу- булевой функции представляет собою дизъюнкцию некото- некоторых простых импликант этой функции. В самом деле, представим форму / в виде pvP, где р — одно из составля- юших форму / элементарных произведений, а Р — дизъюнк- дизъюнкция всех остальных членов этой формы. Отождествив форму / с представляемой ею булевой функцией, мы сразу заметим, что р является импликантой этой функции. Дей- Действительно, из определения дизъюнкции непосредственно следует, что функция / равна 1 во всех точках, в которых р равняется 1. Аналогично, функция Р также является им- импликантой функции /. Поскольку f=pyP, то система им- импликант р и Р — полная. Если элементарное произведение р не является про- простой импликантой функции /, то найдется элемен- элементарное произведение q, составленное лишь из части мно- множителей (букв), составляющих произведение р, и явля- являющееся также импликантой функции /. Ввиду свойств произведения, импликанта q обращается в единицу па всех наборах, на которых равна единице импликанта р. Но тогда, очевидно, система импликант q и Р является полной системой функции / и, в силу теоремы 1.3, ока- оказывается, что f—qyP. Выражение qyP является поэтому дизъюнктивной нор- нормальной формой функции /, причем формой, содержащей меньшее число букв, чем исходная д.н.ф. pvP. Поскольку эта последняя форма была минимальной, мы приходим к противоречию, источником которого является, очевидно, предположение о том, что импликанта р — непростая. Ввиду произвольности выбора р, мы приходим к выво- выводу, что минимальная д. н. ф. любой булевой функции представляет собою дизъюнкцию некоторого множества S ее простых импликант. Из минимальности формы
270 мпнттаизАЦИя булевых функций [Гл. IV непосредственно следует также, что система S простых им- импликант непременно приведенная. Таким образом, мы приходим к следующему предложению '). 1.9. Любая минимальная дизъюнктивная нормальная форма булевой функции представляет собою дизъюнкцию некоторой приведенной системы простых импликант этой функции. Иными словами, всякая минимальная д. н. ф. является тупиковой д.н.ф. Заметим, что одна и та же булева функция может об- обладать несколькими различными минимальными д.н.ф. Существуют также тупиковые д.н.ф., не являющиеся ми- минимальными д. н. ф. Соответствующие примеры будут приведены в последующих параграфах. Нетрудпо прове- проверить, впрочем, что рассмотренные выше тупиковые д. н. ф. /, и /2 являются вместе с тем и минимальными. Теорема 1.9 составляет основу общей схемы решения канонической задачи минимизации булевых функций. Из теоремы 1.9 вытекает, что эта схема должна состоять из двух основных этапов. На первом этапе находятся все простые импликанты заданной булевой функции или, что фактически то же самое — ее сокращенная д.н.ф. На втором этапе ищутся приведенные системы простых импликант, строятся тупиковые д.н.ф., из числа которых отбираются минимальные д.н.ф. В последующих параграфах мы опишем несколько методов решения задач первого этапа, а сейчас остано- остановимся более подробно на втором этапе. Основным аппа- аппаратом для решения задач второго этапа служит так называемая импликантная таблица булевой функции *). Импликантная таблица любой данной булевой функции / представляет собою прямоугольную таблицу с двумя входами, строки которой обозначаются различными про- простыми импликантами функции /, а столбцы — наборами значений переменных (или соответствующими им консти- туентами единицы), на которых функция обращается в единицу. Если какая-либо простая импликанта обра- обращается в единицу на некотором наборе а, обозначающем ') W. V. Q u i n e, The problem of simplifying of truth fun- functions. Amer. Math. Monthly, v. 59, № 8, 1952, p. 521—531. •) Импликантные таблицы булевых функций введены К в а й- я о м. См. его статью, указанную в примечании выше. МИНИМАЛЬНЫЕ ДИЗЪЮНКТИВНЫЕ ФОРМЫ 271 какой-либо столбец импликантной таблицы,- то на пере- пересечении р-ъ строки и а-го столбца таблицы ставится звез- звездочка. Если же импликанта р на наборе а обращается в нуль, то пересечение р-й строки и а-го столбца в импли- импликантной таблице оставляется пустым. При обозначении столбцов импликантной таблицы кон- ституентами единицы имеет силу, как это очевидно, сле- следующее правило заполнения импликантной таблицы. 1.10. На пересечении р-й строки и К-го столбца им- импликантной таблицы тогда и только тогда ставится звездочка, когда импликанта р составляет некоторую часть конституенты К (быть может, совпадающую со всей конституентой). Рассмотрим в качестве примера импликантную таблицу для булевой функции j=xyyxy\ixz\iyz, уже рассматривав- рассматривавшейся по другому поводу выше. Эта функция имеет четыре простые импликанты ху, ху, xz, yz и обращается в единицу на пяти наборах @10), (ОН), A00), A01), A11), которым соответствуют конституенты единицы xyz, xyz, xyz, xyz, xyz. В соответствии с приведенным выше правилом, импли- импликантная таблица рассматриваемой функции будет иметь следующий вид: ху ху XZ yz xyz xyz * * Таблица x~yz * xyz # .* IV.1 xyz * * Выделение приведенных систем простых импликант может быть проведено непосредственно по импликантной таблице. Для этой цели нужно выбрать минимальные си- системы строк таблицы так, чтобы для каждого столбца среди выбранных строк нашлась хотя бы одна строка, со- содержащая в этом столбце звездочку. Ясно, что в любую
272 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV такую систему должны входить все строки, в которых со- содержится звездочка, являющаяся единственной звездоч- звездочкой в своем столбце. Простые импликанты, обозначающие строки с указанным свойством, составляют так называемое ядро булевой функции. Они входят во всякую приведенную систему простых импликант этой функции. В рассмотрен- рассмотренном выше случае ядро составляют простые импликанты ху и ху (им соответствуют «однозвездочные» столбцы хуг и хуг). Простые импликанты, входящие в ядро, накрывают часть единиц булевой функции. Применительно к импли- импликантной таблице более удобно говорить, что простые им- импликанты накрывают соответствующие этим единицам конституенты функции. Ясно, что накрытыми окажутся все те и только те конституенты, которые обозначают столб- столбцы импликантной таблицы, содержащие звездочки в стро- строках, обозначения которых принадлежат ядру. В нашем случае это будут конституенты хуг, хуг, хуг, хуг. Исключая из импликантной таблицы столбцы, обозна- обозначенные уже накрытыми конституентами, мы методом пе- перебора сможем найти минимальные накрытия оставшихся конституент. В рассматриваемом нами случае единствен- единственная остающаяся конституента хуг может быть накрыта как импликантой хг, так и импликантой уг, в соответ- соответствии с чем мы получаем две приведенные системы простых импликант: (ху, ху xz), (ху, ху, yz) в две тупиковые д.н.ф.: f2 = xyvxyvyz. Следует отметить, что метод перебора всевозможных минимальных накрытий конституент непосредственно по импликантной таблице оказывается практически приме- применимым для относительно простых импликантных таблиц; он может быть применен также в том случае, когда нужно найти не все, а лишь одно из минимальных накрытий (приведенных систем простых импликант). Для нахож- нахождения всех минимальных накрытий в случае сложных МИНИМАЛЬНЫЕ ДИЗЪЮНКТИВНЫЕ ФОРМЫ 273 таблиц можно применять естественный алгебраический метод, предложенный Петриком '). Суть этого метода состоит в том, что по импликантной таблице булевой функции / строится некоторое выражение, называемое конъюнктивным представлением этой таблицы. Для этой цели производится обозначение всех простых импликант функции / различными буквами (обычно для этой цели используют большие латинские буквы А, В, С,...), после чего для каждого столбца а импликантной таблицы строится дизъюнкция qx=At мА( v...vAt всех букв, обо- обозначающих строки импликантной таблицы, на пересечении которых с рассматриваемым столбцом а стоят звездочки. Беря произведение построенных дизъюнкций дх для всех столбцов а импликантной таблицы, мы придем к конъюнк- конъюнктивному представлению импликантной таблицы. Обозначая в рассмотренном выше примере импликанту ху буквой А, импликанту ху — буквой В, импликанту хг — буквой С, а импликанту уг — буквой D, мы полу- получим следующее конъюйктивное представление импликант- импликантной таблицы: <f = A(A vD) В (В v С) (С vD). Если в конъюнктивном представлении импликантной таблицы в соответствии с законом дистрибутивности рас крыть все скобки, то возникнет некоторая дизъюнкция произведений букв, обозначающих простые импликанты. Назовем эту дизъюнкцию дизъюнктивным представле- представлением исходной импликантной таблицы. Как непосред- непосредственно вытекает из закона раскрытия скобок, в каждое элементарное произведение, составляющее дизъюнктивное представление, обязательно входит символ простой импли- импликанты, накрывающей конституенту единицы, соответ- соответствующую любому наперед заданному столбцу импликант- импликантной таблицы. Иначе говоря, простые импликанты, символы которых входят в любой фиксированный терм дизъ- дизъюнктивного представления импликантной таблицы булевой функции /, составляют полную систему простых импли- ¦ ') S. R. P e t r i с k, A direct decomposition of the irredun- dant forms of a boolean function from the set of prime-implicants. Tech. reports Air Force Cambridge Research Center, 1956, p. 56—110. 18 в. М. Глушков1
274 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV кант функции /. Назовем эту систему системой, соответ- соответствующей данному терму. Нетрудно видеть, что при пользовании одним лишь ди- дистрибутивным законом без каких-либо дополнительных упрощений в дизъюнктивном представлении импликант- ной таблицы функции / будут встречаться термы, которым соответствуют любые заданные полные системы простых импликант функции /. Для получения одних лишь при- приведенных систем простых импликант в дизъюнктивном представлении импликантной таблицы нужно, очевидно, произвести исключение тех термов, которые содержат в своем составе другие термы того же представления. На- Например, при наличии терма А В нужно исключить термы ABC, ABD, ABCD и т. п. Операция исключения более сложных термов при наличии более простых называется обычно операцией элементарного поглощения термов. Операция элементарного поглощения соответствует тождеству AvAB=A булевой алгебры. Если использовать дизъюнктивное представление импликантной таблицы лишь для нахождения приведенных систем простых им- импликант, то наряду с этим тождеством можно, разумеется, употреблять для упрощения выражения также и другие тождества булевой алгебры, не содержащие отрицаний и констант. Иначе говоря, можно пользоваться законами ассоциативности и коммутативности для умножения и дизъюнкции, а также тождествами АА=А, AvA=A. Выполняя в дизъюнктивном представлении импли- импликантной таблицы все элементарные поглощения и устра- устраняя все повторения в соответствии с тождествами АА=А и АуА=А, мы приходим к так называемому приведенному дизъюнктивному представлению импликантной таблицы. Термам этого представления соответствуют все приве- приведенные системы простых импликант рассматриваемой булевой функции. В процессе получения приведенного дизъюнктивного представления импликантной таблицы из конъюнктивного представления можно применять различные упрощающие преобразования с помощью формул булевой алгебры еще до получения обычного (неприведенного) дизъюнктивного представления. Такая возможность обусловливается тем, что термы приведенного дизъюнктивного представления МИНИМАЛЬНЫЕ ДИЗЪЮНКТИВНЫЕ ФОРМЫ 275 можно рассматривать как простые импликанты булевой функции (от переменных А,В,С,...), задаваемой исходным конъюнктивным представлением, а само приведенное дизъюнктивное представление — как сокращенную дизъ- дизъюнктивную нормальную форму этой функции. Обоснова- Обоснование этого факта будет дано в одном из следующих парагра- параграфов при рассмотрении того способа минимизации булевых функций, который носит название метода Нель- Нельсона. А пока достаточно сослаться лишь на то, что тождественные преобразования любой функции в булевой алгебре не меняют ее сокращенную д. н. ф. Использование промежуточных упрощений позволяет в большинстве случаев существенно сократить процесс построения приведенного дизъюнктивного представления импликантной таблицы. В возможности таких упрощений как раз и заключается преимущество рассматриваемого алгебраического метода нахождения приведенных систем простых импликант по сравнению с методом перебора всех вариантов накрытий непосредственно по импликант- импликантной таблице. Вернувшись к рассматривавшемуся выше примеру, мы видим, что Ф=Л (AvD)B (Ву/С) (С vD)=(A mAD)(Bm ВС) (CVD)= Таким образом, в полном соответствии с тем, что было получено ранее, мы находим две приведенные системы простых импликант: (А, В, С), (А, В, D). Им соответствуют две тупиковые д. н ф. исходной функ- функции: Заметим, что все проведенные нами рассуждения и выводы остаются в силе, если импликантную таблицу функции / строить не для простых импликант, а для про- произвольных импликант этой функции. В частности, алгеб- алгебраический метод позволяет находить все приведенные си- системы таких импликант, определяемые аналогично тому, 18*
276 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV II] МИНИМАЛЬНЫЕ ДИЗЪЮНКТИВНЫЕ ФОРМЫ 277 как были определены приведенные системы простых им- пликант (см. определение 1.7). Отметим один частный случай, при котором система всех простых импликант булевой функции является при- приведенной системой. Это — случай, когда все простые им- пликанты не содержат отрицаний переменных. Действи- Действительно, в этом случае все простые импликанты, отличные от любой данной импликанты р, должны обязательно содержать буквы, не входящие в импликанту р. Пусть хх, хг,..., хк — все буквы (аргументы рассматриваемой функции), не входящие в импликанту р. Импликанта р накрывает конституенту единицы К=рх1хг...хк. Любая же другая простая импликанта содержит хотя бы одну из букв хх, ..., xk без отрицания и не может, следовательно, накрывать эту конституенту. Таким образом, система всех простых импликант оказывается приведенной си- системой. Аналогичная ситуация будет иметь, очевидно, место и в том случае, когда все переменные входят в простые им- импликанты непременно с отрицаниями. Более общо: будем говорить, что в системе простых импликант все переменные разделены, если любая переменная xt не может входить в одну из импликант системы с отрицанием, а в другую — без отрицания. Как и выше, мы легко установим, что пол- полная система простых импликант с разделенными перемен- переменными является непременно приведенной системой. Иначе говоря, справедливо следующее предложение. 1.11. Если сокращенная дизъюнктивная нормальная форма булевой функции не содержит никакой буквы, вхо- входящей в нее одновременно с отрицанием и без отрицания, то эта форма является минимальной дизъюнктивной нор- нормальной формой. Заметим, что монотонная булева функция / не может иметь ни одной простой импликанты, содержащей отрица- отрицания переменных. Действительно, предположим противное: пусть р — простая импликанта функции /, содержащая отрицания переменных. Обозначим через q произведение всех переменных, входящих в р без отрицаний, а через а — набор, отличающийся тем, что в нем всем переменным, входящим в q, приписано значение 1, а всем остальным переменным — значение 0. Импликанта р, а значит, и функция / обращаются на этом наборе в единицу. С дру- другой стороны, произведение q обращается в единицу только на наборах р^а (в том числе, и на наборе а). Но на всех таких наборах функция f>, в силу определения свойства монотонности, также равна 1. Следовательно, q — им- импликанта функции /, а импликанта р — не простая, что противоречит сделанному предположению. Таким обра- образом, простые импликанты монотонной функции не содер- содержат отрицаний переменных. Объединяя этот результат с предложением 1.11, мы приходим к следующему пред- предложению '). 1.12. Сокращенная дизъюнктивная нормальная форма монотонной булевой функции не содержит отрицаний переменных и является минимальной дизъюнктивной нор- нормальной формой этой функции. В дополнение к теореме 1.12 отметим, что возможность представления булевой функции дизъюнктивной нормаль- нормальной формой; не содержащей отрицаний переменных, озна- означает монотонность этой функции, поскольку, как было доказано в § 7 предыдущей главы, суперпозиция монотон- монотонных функций является всегда монотонной функцией. Таким образом, булева функция тогда и только тогда монотонна, когда ее сокращенная д. н. ф. не содержит отрицаний переменных. В заключение настоящего параграфа разберем вопрос о простых импликантах для случая частичных булевых функций, то есть таких булевых функций, значения кото- которых определены не на всех наборах. Простой импликантой частичной булевой функции f мы будем называть всякую простую импликанту р функции / *, получающейся из функции / в результате доопреде- доопределения этой последней значениями, равными единице, на всех наборах, на которых ранее функция / не была опре- определена. Простую импликанту функции / мы будем назы- называть существенной, если она накрывает хотя бы одну еди- единицу этой функции. Система простых импликант функции / называется полной, если любая единица функции / накрывается хотя ') См. СВ. Яблонский, Функциональные построения в Ar-значной логике, Тр. Матем. ин-та им. В. А. Стеклова , т. 51 1958, стр. 29.
278 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV бы одной импликантой этой системы. Полная система простых импликант называется приведенной системой, если из нее нельзя исключить ни одну импликанту без потери свойства полноты. Условимся дизъюнкцию всех простых импликант, принадлежащих какой-либо приведенной системе простых импликант частичной булевой функции /, называть ту- тупиковой дизъюнктивной нормальной формой функции /, а дизъюнкцию всех существенных простых импликант функции / — ее сокращенной дизъюнктивной нормальной формой. Во всех точках, в которых значения частичной булевой функции / определены, эти значения совпадают, очевидно, со значениями ее сокращенной д. н. ф. и со значениями любой из ее тупиковых д. н. ф. Минимальная д. н. ф. ча- частичной булевой функции / определяется как д. н. ф., имеющая наименьшее число букв среди всех д. н. ф., значения которых совпадают со значениями функции / в области ее определения. Подобно тому как это было сделано выше для всюду определенных булевых функций, легко показать, что все минимальные д. н. ф. частичной булевой функции находятся среди ее тупиковых д. н. ф. § 2. Метод Квайна — Мак-Класки В настоящем параграфе мы изложим метод нахождения првстых импликант булевой функции, предложенный Квайвом1) и усовершенствованный Мак-Кла- Мак-Класки2). В методе Квайна простые импликанты находятся по совершенной д. н. ф. булевой функции в результате последовательного применения к ней операции, которую мы назовем операцией неполного склеивания, и операции элементарного поглощения. Для того чтобы уяснить себе суть этих операций, рас- рассмотрим процесс развертывания сокращенной д. н. ф. в совершенную д. н. ф. Пусть, например, мы имеем l) W. V. Q u i n e, The problem of simplifying of truth fun- functions, Amer. Math. Monthly, v. 59, № 8, 1952, p. 521—531. 8 -Me. Cluskey, Minimizations of boolean functions. Bell System Techn. I., v. 35, №6, 4956, p. 1417-1444, 21 МЕТОД КВАЙНА — МАК-КЛАСКИ 279 сокращенную д. н. ф. ft=xy \iyz ыга. Для преобразования ее в совершенную д. н. ф. мы к каж- каждому элементарному произведению добавляем множители, представляющие собой, каждый, дизъюнкцию буквы, отсутствующей в произведении, и отрицания этой буквы; затем мы производим раскрытие скобок. Применительно к форме /,- этот процесс дает на первом шаге выражение ft =ху{гчг)ч(хч х) yzv(xv х) zu = =xyz v xyz v xyz v xyz vxzuv xzu; на втором шаге получается выражение /, = xyz (и v и) v xyz (и v и) v xyz (и v и) v xyz (и v и) v v х (у v у) zu v х (у v у) zu=xyzu v xyzu v xyzu v xyz и v v xyzu v xyzu v xyzu v xyzu v xyzu v xyzu v xyzu v x yzu. Последнее из полученных выражений представляет собой искомую совершенную д. н. ф., у которой некоторые из конституент повторены несколько раз (например, кон- ституента xyzu входит в выражение /, трижды). Легко видеть, что процесс перехода от формы /, к форме /, обратим: можно от формы /, перейти к форме /,, а затем и к форме /, с помощью операции склеивания, осу- осуществляемой на основе формулы Axv Ax = А. Условимся (применительно к этой формуле) говорить, что члены Ах и Ах склеиваются по х, давая в результате член А. В результате склеивания по и первые два члена выра- выражения /, дадут член xyz, представляющий собой первый член выражения /,. Склеивая по.м третий и четвертый члены из /,, мы получим второй член xyz выражения /,, и т. д., пока не получим все члены выражения /,. При- Применяя подобный же прием к выражению /,, мы придем к выражению /,, представляющему собой дизъюнкцию всех простых импликант функции /,. Ясно, что приведенные рассуждения имеют вполне общее значение; именно, с помощью многократного при- применения операции склеивания мы из совершенной д. ц. ф.,
280 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. ГУ отличающейся тем, что в ней некоторые конституенты выписаны более одного раза, можем получить сокращен- сокращенную д. н. ф. Недостатком этого метода является то, что мы не знаем заранее, какие именно конституенты и в каком числе необходимо вписать в исходную совершенную д. н. ф. Нетрудно, однако, внести такое изменение в метод, которое делает многократное выписывание конституент излишним. С этой целью достаточно, очевидно, при при- применении операции склеивания не вычеркивать склеиваемые члены. Иначе говоря, вместо формулы Axv Ах=А следует пользоваться формулой Ах v Ax=A v Ах м Ах. Тождественное преобразование, выражаемое последней формулой, мы будем называть операцией неполного склеи- склеивания. Операция неполного склеивания отличается тем, что члены, уже подвергавшиеся склеиванию, могут принимать участие в дальнейших склеиваниях столько раз, сколько это окажется необходимым. В силу этого исключается необходимость предварительного многократного выписы- выписывания некоторых членов совершенной д. н. ф. Для того чтобы прием, основанный на применении операции не- неполного склеивания, давал точно такой же результат, как и прием, описанный ранее, следует позаботиться еще об удалении членов, подвергшихся склеиванию, после того как с ними произведены все возможные склеивания. Операция удаления склеенных членов носит название операции элементарного поглощения. Смысл этой опера- операции состоит в последовательном применении формулы элементарного поглощения A uv А = А. Необходимо подчеркнуть при этом, что исключить с помощью операции элементарного поглощения можно лишь те члены, к которым были применены все воз- возможные для них склеивания. Нарушение этого условия может привести к ошибкам. С целью исключить возмож- возможность подобных ошибок, операции неполного склеивания и элементарного поглощения необходимо производить Г2] МЕТОД КВАИНА — МАК-КЛАСКИ 281 в определенном порядке, указываемом следующим алго- алгоритмом Квайна:. 1. Минимизируемая булева функция f от произволь- произвольного числа п переменных записывается в совершенной д. н. ф. /0. 2. Отправляясь от д. н. ф. /0, строим последова- последовательность д. н. ф.: /„,/,, ..., f{, ... до тех пор, пока две какие-либо д.н.ф. fk и /ft+1 не совпадут между собой. Переход от формы ft к форме /i+J (i = 1, ..., к) произво- производится по следующему правилу: в форме ft выполняются все операции неполного склеивания, применимые к элемен- элементарным произведениям длины п — i, после чего исклю- исключаются все те элементарные произведения длины п — i, которые могут быть исключены на основании формулы элементарного поглощения. 3. Результатом применения алгоритма Квайна к функции f является заключительная д. н. ф. fk. Легко видеть, что, применяя алгоритм Квайна, мы придем к определенному результату (д. н. ф. fk) не более чем за п шагов. Рассуждения, проведенные выше, дока- доказывают справедливость следующей теоремы Квайна. 2.1. Для любой булевой функции f результатом при- применения алгоритма Квайна к совершенной д.н.ф. этой функции будет сокращенная д. н. ф. функции /. Иными словами, с помощью последовательного (много- (многократного) применения операций неполного склеивания и элементарного поглощения в конечное число шагов со- совершенная д. н. ф. любой булевой функции преобразуется в сокращенную д. н. ф. этой функции. Продемонстрируем работу алгоритма Квайна на при- примере булевой функции /, заданной своей совершенной д. н. ф.: хуъ v xyz v xyz v xyz v xyz. Операции неполного склеивания можно применить к первому и второму члену формы /0> к первому и треть- третьему, а также к первому и четвертом^ ее членам. В ре- результате мы приходим к форме: ft, = yzvxzvxyv xyz vxyz vxyz vxyz v xyz.
282 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV После четырехкратного применения операции элемен- элементарного поглощения форма f\ преобразуется в форму /, = yz v xz v xy v х у z. Поскольку операция неполного склеивания далее не- неприменима, форма /, совпадает с формой /,. В силу ал- алгоритма Квайна и теоремы 2.1 мы заключаем, что /, — сокращенная д. н. ф. функции /. Таким образом, функция / имеет четыре простые импликанты. Для булевых функций от большого числа переменных применение алгоритма Квайна в описанном выше виде становится затруднительным. Затруднения возникают в связи с громоздкостью записи конституент и возможно- возможностью ошибок при отыскании склеивающихся членов в формах, содержащих большое количество членов. С целью обойти указанные затруднения, Мак-Класки1), а также Абрахам и Нордаль2) предложили несколько иное, практически более удобное, оформление алгоритма Квайна. Алгоритм Квайна в этом оформлении мы будем называть (усовершенствованным) алгоритмом Мак-Класки. В отличие от алгоритма Квайна, усовершенствованный алгоритм Мак-Класки основывается на задании консти- конституент единицы не в их натуральном виде, а в виде услов- условных чисел, называемых номерами соответствующих кон- конституент. Чтобы получить номер конституенты, нужно набор, на котором она обращается в единицу, рассматри- рассматривать как запись этого номера в двоичной системе счисле- счисления. При этом конституента xlxt...xn получает номер О, а конституента xlxt...xn — номер 2" — 1. Для случая трех переменных конституенте xyz приписывается номер О, конституенте xyz — номер 4, конституенте xyz — номер 6 и т. д. Индексом целого числа мы условимся называть число единиц в двоичном представлении этого числа. Например, ') Мс. С 1 u s k e у, Minimizations of boolean functions, Bell, System Techn. J., v. 35, №6, 1956, p. 1417—1444. • 2) См. S. H. С a I d w e 1 1, Switching circuits and logical design. John. WUley and Son inc., 1958. МЕТОД КВАЙНА — МАК-КЛАСКИ 283 число 7 = 111 имеет индекс 3, число 12 = 1100 — индекс 2 и т. д. Ясно, что индекс 1 имеют все числа, являющиеся степенью двойки, и только такие числа. Нетрудно усмотреть справедливость следующего пред- предложения. 2.2. Для того чтобы два числа тип являлись номерами двух склеивающихся между собой конституент единицы, необходимо и достаточно, чтобы их индексы различались точно на единицу, чтобы сами числа отличались друг от друга на степень двойки и чтобы число с большим индексом было больше числа с меньшим индексом. Действительно, необходимость условий, приведенных в теореме 2.2, очевидна, поскольку двоичные представле- представления номеров двух склеивающихся конституент имеют вид т = аОр и п = alp (а и Р — какие-то наборы нулей и единиц). В целях доказательства достаточности указанных условий заметим, что прибавление к любому целому (неотрицательному) числу г числа, являющегося степенью двойки 2k(k = 0, 1, ...), только тогда увеличивает индекс этого числа точно на единицу, когда в (к + 1)-м разряде двоичного представления числа г стоит нуль. В самом деле, если бы в (к + 1)-м разряде стояла единица, то после прибавления числа 2* в этом разряде появился бы нуль, что вызвало бы уменьшение индекса числа на единицу. Возникающий при этом перенос в старшие разряды осу- осуществляет преобразование некоторого числа р^>0 еди- единиц старших разрядов в нули и лишь одного нуля — в единицу. Таким образом, в результате сложения индекс числа уменьшился бы на р единиц вместо того, чтобы увеличиться на единицу. Но из условий, сформулирован- сформулированных в теореме, вытекает, что большее из чисел т и п (скажем, для определенности, число т) получается из меньшего числа (п) прибавлением к нему числа, являю- являющегося некоторой степенью двойки 2*, т. е. т = rt+2*. При этом индекс числа т точно на единицу больше ин- индекса числа п. Как было только что показано, это возможно лишь в том случае, когда двоичное представление числа п имеет нуль в (А+1)-м разряде, и, значит, двоичные пред- представления чисел тип имеют вид т = al|5, п = <х0|3. Очевидно, что конституенты, соответствующие этим
284 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV номерам, различаются отрицанием только у одной из составляющих их букв и, следовательно, могут быть склеены. Тем самым предложение 2.2 полностью дока- гано. Элементарное произведение, получившееся в резуль- результате склеивания двух конституент с номерами т и п, обозначается в алгоритме Мак-Класки упорядоченной парой {п, т) этих номеров (первым выписывается мень- меньший номер). Член, получающийся при склеивании двух таких произведений (р, q) и (г, s), обозначается четверкой номеров (р, q, r, s), расположенных в порядке их воз- возрастания. Произведения еще меньшей длины будут обо- обозначаться восьмеркой чисел и т. д. При таком способе обозначения склеиванию двух элементарных произведе- произведений соответствует объединение обозначающих их мно- множеств номеров (с условием последующей записи этих номеров в порядке возрастания). Нетрудно показать справедливость следующего пред- предложения. 2.3. Элементарное произведение, обозначенное множест- множеством номеров Р, входит в качестве составной части во все конституенты единицы, номера которых входят в мно- множество Р. Элементарное произведение, обозначенное мно- множеством номеров R, тогда и только тогда поглощает элементарное произведение, обозначенное множеством но- номеров S, когда множество S является подмножеством мно- множества R: SczR. Остается еще научиться распознавать те элементарные произведения (заданные множествами номеров), которые можно склеивать между собой. С этой целью каждому элементарному произведению, кроме множества номеров констдтуент, сопоставляется еще набор чисел, называе- называемых разностями. Если xv xx, ..., хп — все аргументы минимизируемой булевой функции, с которыми имеют дело, а рассматривае- рассматриваемое произведение не содержит (ни в прямом, ни в инвер- инверсном виде) переменных xt , xiit ..., Xik, но содержит все остальные переменные (или их отрицания), то ему сопо- сопоставляется набор разностей 2"-*>, 2"-*», .... 2™-**. В частности, любой конституенте единицы сопоставляется пустое множество разностей. J2] МЕТОД КВАЙНА — МАК-КЛАСКИ 285 Справедливо следующее предложение. 2.4. Два элементарных произведения р и q тогда и только тогда склеиваются между собой, когда соответ- соответствующие им наборы разностей одинаковы, а наименьшие номера типе обозначающих их множествах Р uQ являются номерами склеивающихся между собой конституент еди- единицы. В результате склеивания получается элементарное произведение г, обозначаемое объединением множеств Р и Q. Набор разностей элементарного произведения г полу- получается из набора разностей любого из произведений р или q добавлением к нему модуля разности номеров тип. Действительно, конституенты единицы с номерами т и п получаются, в силу теоремы 2.3, из произведений р и q в результате умножения их на элементарные произ- произведения s, и st, состоящие из отрицаний букв, не вошед- вошедших, соответственно, в р и q. Теперь ясно, что произведе- произведения р и q склеиваются между собой (то есть имеют вид lxt и lxt) тогда и только тогда, когда sx = st и когда кон- конституенты pst и gs8 склеиваются между собой. Если про- произведения р и q склеиваются между собой по переменной xt, то номера тип будут иметь (в двоичной записи) вид ai<V--a/-i <4+i -а» и а,а,... а,., 1а/+1...а„. Модуль их разности равняется 2" '. Но в силу определения понятия набора разностей именно эту разность надо добавить к элементарному произведению I, получающемуся в резуль- результате склеивания элементарных произведений р и q, по- поскольку в произведении I содержатся все те переменные, которые содержатся в произведениях р и q, исключая переменную xt. Поскольку объединение обозначающих множеств при склеивании элементарных произведений предусмотрено в самом их определении, то предложение 2.4 полностью доказано. Предложения 2.2, 2.3 и 2.4 дают возможность осущест- осуществлять алгоритм Квайна для получения сокращенных д. н. ф. из совершенных д. н. ф. способом, при котором кон- конституенты единицы заданы номерами, а произвольные элементарные произведения — множествами номеров. При этом для удобства проверки конституенты группируются по их индексам так, чтобы проверка на склеивание осу- осуществлялась в применении к соседним группам номеров
286 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV (то есть к группам номеров, индексы которых отличаются на е,гиницу). Элементарные произведения, исключающие- исключающиеся с помощью применения операции поглощения, при- принято обозначать звездочкой. Звездочкой обозначаются также конституенты, соответствующие наборам,на которых заданная функция не определена. Простыми импликан- тами булевой функции будут все те элементарные произ- произведения (обозначенные множествами номеров), которые после выполнения всех операций окажутся не отмеченными звездочкой и которые отличаются тем, что обозначающие их множества содержат хотя бы один номер, не отмечен- отмеченный звездочкой. Последовательность выкладок, выполняемых в рас- рассмотренном алгоритме (алгоритме Мак-Класки), проще всего уяснить на примерах. Заметим, что при применении алгоритма Мак-Класки булевы функции принято задавать множествами номеров копституент единицы их совершен- совершенных д. н. ф. В это множество включаются обычно также номера конституент, соответствующих наборам, на кото- которых функция не определена. Эти номера обозначаются звездочками. Пример 1. Найти все простые импликанты час- частичной булевой функции / от четырех переменных, задан- заданной множеством номеров своих конституент единицы: /=A, 3, 4, 5, 9, 15, 10*. 12*). Решение. Группируем номера конституент в по- порядке роста их индексов, отделяя друг от друга группы номеров, имеющих одинаковый индекс, вертикальными чертами: |1,4|3,5,9,10*,12*Ц15|. В первую группу попали номера, имеющие индекс 1: 1 = 0001, 4 = 0100, во вторую группу — номера, имею- имеющие индекс 2: 3 = ООН, 5 = 0101, 9 = 1001, 10 = 1010, 12 = 1100, и, наконец, в последнюю группу попал один номер, имеющий индекс 4:15 = 1111. В силу теоремы 2.2 склеивание возможно только между номерами первой и второй группы. Поскольку индексы номеров второй и третьей группы различаются на двойку, склеивание номеров этих групп невозможно. Это обсто- МЕТОД КВАЙНА — МАК-КЛАСКИ 287 ятельство обозначается тем, что вторая и третья группы отделены друг от друга не одной, а двумя вертикальными чертами. Для выполнения склеиваний нужно, в соответствии с теоремой 2.2, находить пары номеров такие, чтобы номер из второй группы был на некоторую степень двойки больше номера из первой группы. Таким образом, мы при- приходим к следующему мпожеству пар: A,3), A,5), A,9), D,5), D,12 *). Разности, соответствующие этим парам, принято выпи- выписывать рядом с ними: A,3)B), A,5)D). A.9)(8). D.5)A). D,12 *)(8). Элементарные поглощения приведут к тому, что исход- исходное множество конституент представится в виде |1*. 4* |3*. 5*. 9*. 10*. 12*||15|. Поскольку дальнейшие склеивания полученных пар оказываются невозможными, алгоритм заканчивает свою работу. В результате его выполнения мы получили 6 простых импликант исходной булевой функции /: /,= A5). /, = A,3), /, = A,5), /4 = A,9), /, = D,5) /, = D,12). Предположим, что переменными, от которых зависит функция /, будут переменные х, у, z, и, так что первая импликанта /, (конституента с номером 15) будет иметь вид: /, = xyzu. Для нахождения в явном виде остальных импликант воспользуемся следующим очевидным приемом: 1) выписываем для каждой простбй импликанты Р какую- нибудь конституенту единицы К, номер которой входит в обозначающее множество импликанты Р; 2) по разно- разностям, соответствующим импликанте Р, определяем пере- переменные, которые отсутствуют в представляющем ее эле- элементарном произведении, и вычеркиваем эти переменные из конституенты К. Применяя этот прием к нашему случаю, мы получим, что импликанты /2, /, и /4 могут быть получены из кон- конституенты единицы xyzu с номером 1 в результате вычер-
288 МИНИМИЗАЦИЯ БУЛЕВЫХ: ФУНКЦИЙ [Гл. IV кивания из нее букв 2, у и х соответственно, а импли- канты /6 и /, получаются из конституенты единицы хуги с номером 4 в результате вычеркивания из нее букв ц и х соответственно. Выполняя указанные вычеркивания, мы получим: ft=xyu, f, — xzu, ft = yzu, {ь = хуг, f, = yzu, что и дает искомое решение (вместе с выписанной ранее простой импликантой fx = xyzu). Пример 2. Найти минимальную д. н. ф. частичной булевой функции: /(*. у, z, и) = @, 1, 2, 3, 4, 6, 8, 9, 11, 14, 7*. 10*). Решение. Расположим выкладки так, как это обычно принято при применении алгоритма Мак-Класки, помещая все импликанты (элементарные произведения) Таблица IV.2 Ин- Индекс 0 1 2 3 0* 1* 2* 4* 8* о со оз со • * * * 11* 7* 14* @,2) B)* @,4) D)* @,8) (8)* A,3) B)* A,9) (8)* B,3) A)* B,6) D)* B,10) (8)* D,6) B)* (8,9) A)* (8,10) B)* C,11) (8)* C,7) D)* F,7) A)* F,14)(8)* (9,11) B)* A0,11) A)* A0,14) D)* @, 1, 2, 3) A) B) * @, 1,8, 9)A) (8) * @, 2,4, 6) B) D) @, 2, 8, 10) B) (8) * A, 3, 9, 11) B) (8)* B, 3, 6, 7) A) D) B, 6, 10, 14) D) (8) B, 3, 10, 11) A) (8)* (8, 9, 10, 11) A) B)* @,1,2,3.8,9,10,11) A)B)(8) §2] ME ТОД КВАЙНА — МАК-КЛАСКИ 289 функции /, имеющие одну и ту же длину, в свой собствен- собственный столбец и разделяя группы номеров, имеющих оди- одинаковые индексы, горизонтальными чертами (табл. IV.2). В результате получаем четыре простые импликанты, обозначаемые множествами @,2,4,6), B,3,6,7), B,6,10,14) и @,1,2,3,8,9,10,11). Обозначая эти импликанты соот- соответственно буквами А, В, С и D и применяя прием, опи- описанный при рассмотрении примера 1, мы получим, что А = хи, В = xz, С = zu, D = у. Импликантная таблица функции / может быть легко найдена с помощью теоремы 2.3: всякая импликанта, в обозначающем множестве которой содержится номер ка- какой-либо конституенты единицы, обращается в единицу на наборе, соответствующем этой конституенте. Для рас- рассматриваемой функции мы получаем импликантную табл. IV.3. Таблица IV.3 А В С D 0 * * 1 * 2 * * * * 3 * * 4 * в * * * 8 * 9 * 11 * 14 * Импликанты А, С и D составляют ядро функции / и накрывают, как легко видеть, все единицы этой функции. Поэтому функция / обладает единственной тупиковой, а следовательно, и единственной минимальной д.н.ф.: Полученная форма и дает искомое решение. Заметим, что в только что рассмотренном примере при склеивании всех элементарных произведений, за исключением конституент, один и тот же результат полу- получался при нескольких склеиваниях (хотя выписывался, разумеется, только один раз). Нетрудно показать, что это не является случайностью, а представляет собою общее правило. 19 В. М. Глушков
290 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ 1.ГЛ. IV Заметим, что в ряде случаев оказывается более целе- целесообразным применять не усовершенствованный, а обыч- обычный алгоритм Мак-Класки. В этом алгоритме элемен- элементарные произведения обозначаются наборами нулей, еди- единиц и черточек. Такая система обозначений основывается на заранее фиксированной нумерации булевых перемен- переменных, с которыми имеют дело. Предположим, что имеется п таких переменных: ж,, xt, ..., хп. Тогда любое элементарное произведение, составленное из этих переменных и их отрицаний, обо- обозначается конечной упорядоченной последовательностью а, а, ... ап длины п, состоящей из нулей, единиц и чер- черточек. Последовательность эта строится по следующему правилу: 1-й элемент а( последовательности а,а4 ...а„. обозначающий любое данное элементарное произведение р, равняется нулю, если произведение р содержит отрица- отрицание i-й переменной xt; он равняется единице, если произ- произведение р содержит переменную xt без отрицания; он заменяется черточкой, если произведение р вообще не содержит переменной х1 ни в прямом, ни в инверсном виде. Например, при п=4 элементарное произведение xtxt получит обозначение 1—0—, элементарное произведение x,xtxtxt — обозначение 0000, элементарное произведение хх — обозначение 1— — —, и т. д. Используя эти обозначения, можно осуществлять ми- минимизацию булевых функций с помощью тех же приемов, которые применяются в описанном выше (усовершенст- (усовершенствованном) алгоритме. При этом отпадает, разумеется, необходимость в выписывании разностей. Ясно, что при принятой системе обозначений наборы разностей окажутся одинаковыми у тех и только тех элементарных произве- произведений, которые имеют черточки на одних и тех же местах. Расположение же конституент в порядке их индексов со- сохраняется и в рассматриваемом случае. Работу алгоритма Мак-Класки лучше всего уяснить на примере. Пример 3. Найти минимальную д.н.ф. булевой функции: j=xyzuv xy zuvx yzu у xyzu у xyzu v xyzu v xyzu. §2] МЕТОД КВАЙНА — МАК-КЛАСКИ 291 Таблица IV 4 Индекс 1 2 3 4 0001* 0101* ООН* 1001* 1011* 0111* НИ * 0—01* 00 1* —001* -011* 10—1* 01—1* 0—И* 1-11* -111* 0 1 0 1 —и Индекс 1 2 3 4 5 6 7 1, 2, 3, 5, 65, 66 7, И, 42. 44 84, 88 15, 23 58, 60 4, 8 6 9 , 68 13, . 49 , 97 . 27 71 102, 105, 31, 47, 55 109, НО, 63, 95 127 , 16 , Ю 72 14, 50, , 98. . 29, 75 106. , 59, 115 32, 1? 80, 19, 52, 100 30, 77 108, 61, 117. 64 17, 96 Числа 18 21, 22. 56. 67 , 104, 39, 78, 1Г 62, 118 , 111, 119, 123, 43 83 ?0 25, 69 112 45 85 , 114 79, 87 121, 125 ?4 26, , 70 . 46, 86 116, . 91, 122, 126 Т 33 28, 73 51, 89 120 93, 124 а б ли ца IV.5 34 35, 74 53 90 94 36, 40, 48, 37, 38, 41, 76, 81, 82, , 54, 57, 92, 99, 101, 103, 107. 19*
292 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV Решение. Располагая переменные в следующем порядке: х, у, г, и, мы получим представление конституент функции / в виде: 0001, 0101, ООН, 1001, 1011, 0111, 1111. Применим обычную схему расположения выкладок (см. табл. IV.4) В результате мы получаем три простые импликанты: А = хи (обозначение 0 1), В = уи (обозначение —0—1) и С = zu (обозначение И). Легко проверить, что все эти импликанты входят в ядро рассматриваемой функции. Таким образом, искомая минимальная д.н.ф. имеет вид: / = xuyyuvzu. В заключение параграфа приведем таблицу распреде- распределения чисел по заданным индексам для всех чисел, мень- меньших чем 128 (это достаточно для минимизации булевых функций, зависящих не более чем от 7 переменных). Понятно, что единственным числом, имеющим индекс О, будет само число 0. Для всех же остальных индексов соот- соответствующие им числа представлены в таблице IV.5. § 3. Другие методы минимизации булевых функций Разобранный в предыдущем параграфе метод Квайна — Ма к-К ласки минимизации булевых функ- функций в качестве своей отправной точки имеет совершен- совершенную д.н.ф. Однако в ряде случаев приходится осуществлять минимизацию (нахождение простых импликант) булевых функций, заданных произвольными д.н.ф. В этом случае целесообразно использовать метод минимизации, предло- предложенный Блейком'). Метод Блейка основывается на использовании опера- операции, которую мы будем называть операцией обобщенного склеивания. Суть этой операции состоит в применении следующего тождественного соотношения булевой ал- алгебры: A) ') A. Blake, Canonical expression in Boolean Algebra. Dis- Dissertation, Chicago, 1937. Метод Блейка восходит к работам русского логика 19 в, П. С. П о р е ц к о г о, в результаты которого Блейк внес усовершенствования. §3] ДРУГИЕ МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ 293 Для того чтобы убедиться в справедливости этого соотношения, достаточно провести следующие тождест- тождественные преобразования: АС ч ВС = AC v ABC v ВС v ABC = ==ACvBCvAB(Cv С) — AC v ВС v AB. Метод Блейка состоит в том, что в произвольной д.н.ф. заданной булевой функции / осуществляются все допу- допустимые обобщенные склеивания. После устранения эле- элементарных поглощений (то есть удаления дизъюнктивных членов вида А В при наличии дизъюнктивных членов А или В) этот метод приводит к сокращенной д.н.ф. Сформулируем и докажем соответствующее предло- предложение. 3.1. Если е произвольной д.н.ф. булевой функции f произвести все возможные обобщенные склеивания и устра- устранить затем все элементарные поглощения, то в результате получится сокращенная д.н.ф. функции /. Для доказательства сформулированного предложения достаточно доказать, что в результате многократного применения операции обобщенного склеивания из про- произвольной д.н.ф. булевой функции может быть получена любая простая импликанта этой функции. В самом деле, в результате применения к д.н.ф. операции обобщенного склеивания мы снова получаем некоторую д. н. ф. Каждый же член д.н.ф. является элементарным произведением и импликантой функции /. Поэтому он поглощается какой- либо простой импликантой функции /. Таким образом, после получения всех простых импликант устранение всех элементарных поглощений обязательно приведет нас к сокращенной д.н.ф. Для доказательства того, что в результате обобщенных склеиваний из произвольной д.н.ф. булевой функции / могут быть получены все ее простые импликанты, про- проведем индукцию по числу переменных п, от которых зависит функция /. Для п = 1 это утверждение очевидно. Предположим теперь, что оно справедливо для всех тк^тп, и докажем его для п = т. Заметим прежде всего, что простая импликанта р, являющаяся конституентой единицы, входит во всякую
294 ИИНИМИЗАДИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV д.н.ф. F и, следовательно, получается из нее в результате пустого множества обобщенных склеиваний (напомним, что каждое новое обобщенное склеивание не уничтожает полученных ранее членов). Действительно, в д.н.ф. F обязательно найдется элементарное произведение г, кото- которое обращается в единицу на наборе, соответствующем конституенте р. Но тогда, очевидно, р = rl, где / — не- некоторое элементарное произведение, и, поскольку г является импликантой функции /, а р — ее простой им- пликантой, то / = 1 и, следовательно, р = г. Итак, когда простая импликанта р является консти- туентой единицы, она обязательно войдет в любую д.н.ф. функции /, в том числе и в ту д.н.ф., которая получается в результате применения операций обобщенного склеи- склеивания к любой данной исходной д.н.ф. F функции /. Предпо- Предположим теперь, что р не является конституентой единицы; тогда в р не входит хотя бы одна из переменных, от которых зависит функция /; этой переменной может быть, напри- например, переменная х. В этом случае представим д.н.ф. F в виде F=AxmBxmC, группируя члены, содержащие х и х, и вынося i и i за скобки. Являясь импликантой функции F и не завися от х, элементарное произведение р будет, очевидно, являться импликантой функций, которые получаются из функции F в результате приравнивания х нулю и единице. Иными словами, р является импликантой функций A\jC и By С. Но тогда р будет, очевидно, импликантой и произведения этих функций Обозначим это произведение через Ft. Отметим, что Ft является импликантой функции F, поскольку, при- применяя к F операцию обобщенного склеивания, мы полу- получим, что l Теперь ясно, что никакая собственная часть элементарно- элементарного произведения р не может быть импликантой функции Fx, потому что в противном случае она была бы импликантой функции F, что исключено ввиду простоты импликанты р. §3] ДРУГИЕ МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ 295 Следовательно, р представляет собой простую импли- канту функции Ft. Поскольку функция Fx зависит от меньшего числа переменных, чем функция F, к ней можно применить индуктивное предположение. Поэтому можно считать, что простая импликанта р получается из любой д.н.ф. функции Fx в результате некоторбго числа обоб- обобщенных склеиваний. Но формула Ахч Bxv C = Ax v Bx v Ft показывает, что какая-то д.н.ф. функции Fx получается в результате обобщенных склеиваний (по х) из исходной д.н.ф. F. Следовательно, простая импликанта р возникает из д.н.ф. F функции / в результате применения операции обобщенного склеивания .повторенной некоторое число раз. Ввиду произвольности выбора р и F, теорема доказана. Покажем работу алгоритма Блейка на примере буле- булевой функции, заданной д.н.ф. f=xyvzyzvyz. Легко видеть, что первый и второй члены формулы / допускают обобщенные склеивания как по х, так и по у, но возникающие в результате склеивания произведения равны нулю, так как они обязательно содержат одну из букв (х или у) вместе с ее отрицанием. Нетривиальное обобщенное склеивание возможно для первого и третьего члена формы /. Выполняя это склеивание, мы приходим к д.н.ф. fl = xyvxyzvyzvxz. В этой форме нетривиальное обобщенное склеивание можно применить к первому и третьему, а также к вто- второму и четвертому члену. Однако оба эти склеивания при- приводят к членам, уже имеющимся в форме /,. Таким обра- образом, можно считать, что в форме /, выполнены все возт можные в ней обобщенные склеивания. Производя затем исключение элементарного поглоще- поглощения (член хуг поглощается членом г/г), мы придем к со- сокращенной д.н.ф.:
296 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV Приведем еще один пример, рассматривая который, мы будем производить все необходимые преобразования без каких-либо дополнительных пояснений: f=xyz vxzm xy=xyz v xzvxy vxy vyzv yz = =xzv хуч хум yzsi yz\j y=xzv у. Таким образом, сокращенная д.н.ф. функции / имеет вид хгчу. Заметим, что в этом примере мы произвели часть эле- элементарных поглощений еще до того, как были закончены все операции обобщенного склеивания. Ясно, что таким, упрощающим выкладки приемом можно пользоваться всякий раз, когда исключаемые члены не могут дать (в результате обобщенного склеивания) никаких новых членов. Из теоремы 3.1 нетрудно получить другое доказатель- доказательство теоремы 1.11 из § 1. Действительно, к д.н.ф., не содержащей никакой буквы, которая входила бы в нее одновременно с отрицанием и без отрицания, неприменима, как это очевидно, операция обобщенного склеивания. То же самое относится к дизъюнкции любой части членов этой формы. Если исходная д.н.ф. была сокращенной, то она должна была бы восстанавливаться с помощью операции обобщенного склеивания по минимальной д.н.ф., составляющей некоторую ее часть. В силу сказанного выше, это возможно лишь в том случае, когда минималь- минимальная д.н.ф. совпадает с сокращенной д.н.ф. Используя операцию обобщенного склеивания, в ряде случаев удается относительно просто устанавливать воз- возможность выбрасывания из сокращенной д.н.ф. (или из некоторой ее части, представляющей заданную функцию) некоторых простых импликант. Соответствующую мето- методику можно уяснить себе из рассмотрения следующего примера. Пусть / = xy vkv yz. Легко видеть, что третий член формы / может быть получен в результате примене- применения операции обобщенного склеивания к первым двум членам: § ?] ДРУГИЕ МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ 297 Полученное соотношение дает возможность упростить исходное представление булевой функции /, заменив его представлением: f=xyyxz. Разберем еще один метод минимизации булевых функ- функций, предложенный Нельсоном1). Этот метод осно- основывается на следующей теореме. 3.2. Если в произвольной конъюнктивной нормальной форме булевой функции раскрыть все скобки в соответствии с дистрибутивным законом и устранить все элементарные поглощения, то в результате получится сокращенная д.н.ф. этой функции. Как и в случае предыдущей теоремы, для доказатель- доказательства теоремы 3.2 достаточно установить, что при раскры- раскрытии скобок в произвольной конъюнктивной нормальной форме F = K1Ki...Km булевой функции / может быть получена любая наперед заданная простая импликанта р этой функции. В силу принятого нами определения конъ- конъюнктивных нормальных форм (см. гл. III, § 5), можно считать, что функция / не равна тождественно единице, поскольку в противном случае ее конъюнктивная нормаль- нормальная форма тривиальна (т. е. равна единице). Можно исключить также случай, когда функция / тождественно равна нулю, поскольку в этом случае она не имеет ни одной простой импликанты. Предполагая, таким образом, что функция / не является константой, мы можем считать простую импликанту р этой функции произведением не- непустого множества букв или их отрицаний: В силу простоты импликанты р,' полагая в функции /: мы не можем обратить эту функцию в тождественную единицу, поскольку иначе произведение х^х^ ... xilt также было бы импликантой функции /. Это означает, очевидно, ') R. J. Nelson, Simplest normal truth functions. J. Sumb. Logic, v. 20, № 2, 1955, p. 105—l'O8.
298 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ П*. IV что в форме F найдется такая элементарная дизъюнкция, которая не содержит букв xijt xit, ..., xik. He нарушая общности, можно считать, очевидно, что такого .рода дизъюнкцией является дизъюнкция Кх. Вместе с тем, полагая xi=x^ = ...= x,-k = 1, мы обратим, очевидно, функцию / в тождественную единицу (для этого достаточно рассмотреть сокращенную д.н.ф. функции /, имеющую вид рчА). Это означает, в свою очередь, что все элемен- элементарные дизъюнкции Кх, Kt, ..., Кт обратятся при такой подстановке в единицу. Отсюда следует, что любая эле- элементарная дизъюнкция К, (i = 1, ..., т) содержит хотя бы один из первичных термов xlt, xt, ..., х,- . Поскольку дизъюнкция Кх не содержит первичных термов х,а, ... ,..,xt ,она обязательно содержит терм хи. Иными словами: Кх = x-h v Kx. Аналогичным образом можно установить, что Kt = х1г v К'г, К, = х(з v К„ ..., Kk = x.k v Kt. В каждую из остальных элементарных дизъюнкций, со- согласно сказанному выше, обязательно входит хотя бы один из термов х^, ..., х,. После этого становится непо- непосредственно очевидным, что при раскрытии скобок в произведении КхКг...Кт в числе прочих членов будет получен и член р = xixl...xi . Тем самым теорема 3.2 полностью доказана. В качестве примера применения метода Нель- Нельсона рассмотрим булеву функцию /, заданную в виде конъюнктивной нормальной формы: f=(xvy) (xvz) (xvyvz). Раскрывая скобки в этой форме, получим: - f—xzvxzyvx у z vxyz. Устраняя элементарные поглощения, мы придем к сокра- сокращенной д. н. ф. функции /: f=xzvxy z . В § 1 нами был разобран так называемый алгебраический метод нахождения всех приведенных систем простых им- пликант булевой функции, основанный на получении при- приведенного дизъюнктивного, представления импликантной § 33 ДРУГИЕ МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ 299 таблицы. Из теоремы 3.2 непосредственно следует, что приведенное дизъюнктивное представление импликантной таблицы может рассматриваться как сокращенная д.н.ф. булевой функции от простых импликант А,В,С,..., зада- задаваемой конъюнктивным представлением этой таблицы. Поэтому для нахождения приведенного дизъюнктивного представления импликантной таблицы можно применять все методы, позволяющие находить сокращенные д.н.ф. булевых функций. Можно, в частности, к функции, зада- задаваемой конъюнктивным представлением импликантной таблицы, применять любые тождественные преобразования булевой алгебры. Сделанное замечание дает обоснование развитого в § 1 метода нахождения приведенных систем импликант бу- булевой функции. Основной вариант этого метода представ- представляет собою фактически приложение описанного выше метода нахождения сокращенной д.н.ф. булевой функции, принадлежащего Нельсону. Теперь становится яс- ясным, что для этой цели можно применить не только метод Нельсона, но и любой другой прием минимизации, опи- описанный в §§ 2 и 3 этой главы. Все описанные до настоящего времени методы мини- минимизации булевых функций являются аналитическими методами. На практике для минимизации булевых функ- функций от малого числа переменных оказываются более удоб- удобными методы, которые мы будем называть графическими. Эти методы основаны на использовании той особенности зрительного восприятия, что с его помощью можно прак- практически мгновенно распознавать те или иные простые конфигурации. Для того чтобы лучше уяснить основную идею графи- графических методов, рассмотрим сначала простейший случай, а именно случай булевой функции f(x,y), зависящей лишь от двух аргументов х и у. Как известно, каждая такая функция может быть задана таблицей своих значений (см. табл. IV.6). Для функции двух переменных существуют простые импликанты лишь двух видов: конституенты единицы ху, ху, ху, ху и первичные термы х, х, у, у. Каждая из простых импликант первого вида накрывает лишь одну единицу булевой функции, каждая импликанта второго вида —
300 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV две единицы. Ясно, однако, что любые две единицы буле- булевой функции не могут, вообще говоря, быть накрыты одной простой импликантой второго вида. Для этой цели необходимо, чтобы эти единицы были специальным обра- образом расположены в таблице функций. Необходимым и достаточным условием для возможности одновременного накрытия двух единиц одной простой импликантой яв- является, очевидно, условие, чтобы эти единицы стояли в тех и только тех местах таблицы, в которых расположе- расположены единичные значения какой-либо из простых импликант. > Введем следующее определение. 3.3. При задании булевых функций таблицами их значений {имеющими ту или иную фиксированную форму) пра- правильными конфигурациями в этих таб- таблицах называются всевозможные множе- множества мест в таблицах, состоящие из всех тех и только тех мест, в которых обращается в единицу какое-ни- какое-нибудь элементарное произведение. Если элементарное про- произведение р имеет длину i, то соответствующая ему пра- правильная конфигурация называется конфигурацией ранга i (i = 1, 2 п). Условимся обозначать правильные конфигурации еди- единицами, проставленными во всех местах соответствующей конфигурации. Для обычно принятой формы табличного задания зна- значений булевых функций от двух аргументов правильные конфигурации ранга 1 имеют вид, представленный в табл. IV.7. Таб л X 0 0 1 1 ица у 0 1 0 1 IV. 6 <х а, а2 а» а4 Таблица IV.7 Таблица IV.8 X 0 0 1 1 У 0 1 0 1 X 1 1 X 1 1 У 1 1 У 1 1 X 0 0 1 1 У 0 1 0 1 1 1 1 0 §31 ДРУГИЕ МЕТОДЫ МИНИМИЗАЦИИ БУЛВВЫХ ФУНКЦИЙ 301 Запомнив эти конфигурации, легко находить минималь- минимальные д.н.ф. булевых функций от двух переменных. Дейст- Действительно, для этого достаточно, очевидно, найти наиболее экономное накрытие единиц функции правильными кон- конфигурациями. Так, например, все единицы функции /, заданной табл. IV.8, накрываются первой и третьей конфигурацией табл. IV.7. В соответствии с этим мини- минимальная д.н.ф. функции / имеет вид х у у. Определим более точно понятие накрытия и наиболее экономного (минимального) накрытия. 3.4. Совокупность М правильных конфигураций об- образует накрытие булевой функции /, заданной таблицей своих значений, если на всех местах, входящих в конфигу- конфигурации системы М, значения функции f либо равны единице, либо не определены и если любое место, в котором значение функции f равно единице, входит хотя бы в одну конфигу- конфигурацию системы М. Рангом накрытия называется сумма рангов всех образующих накрытие правильных конфигура- конфигураций. Накрытие функции называется минимальным, если его ранг не превосходит ранга любого другого накрытия этой функции с помощью правильных конфигураций. Каждой правильной конфигурации соответствует не- некоторое элементарное произведение, единицы которого (в таблице его значений) образуют данную конфигурацию. Нетрудно убедиться в справедливости следующего пред- предложения. 3.5. Дизъюнкция элементарных произведений, соот- соответствующих всем правильным конфигурациям, которые образуют любое накрытие М булевой функции /, является дизъюнктивной нормальной формой F этой функции. Форма F тогда и только тогда является минимальной д.н.ф. функции f, когда накрытие М минимально. Теорема 3.5 сводит вопрос о минимизации булевых функций к нахождению минимальных накрытий этих функций правильными конфигурациями. Для облегче- облегчения запоминания правильных конфигураций оказывается целесообразным несколько изменить форму табличного задания булевых функций. Эти изменения включают из- изменение обычного порядка следования наборов значений переменных, а также использование вместо линейно
302 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV расположенных таблиц таблиц, имеющих форму прямо- прямоугольников или квадратов. Преимущества, которые получаются в результате по- подобных изменений, можно оценить на примере функций двух переменных. Изменив порядок следования наборов значений переменных так, как это показано в табл. IV.9, можно получить более единообразную форму конфигу- конфигураций ранга 1 (см. табл. IV.9). Таблица IV.9 Таблица IV.10 X 0 0 1 1 и 0 1 1 0 X 1 1 X 1 1 V 1 1 У 1 1 X N. 0 1 0 ',; 1 Если условиться мысленно отождествлять («склеивать») верхний и нижний край этой таблицы, то правильные конфигурации ранга 1 будут составлять все рядом расположенные пары единиц и только такие пары. Еще более просто запомнить все конфигурации ранга 1 при изображении таблиц значений булевых функций двух переменных в форме квадрата (см. табл. IV.10). Легко проверить, что правильным конфигурациям ранга 1 в та- такой таблице соответствуют прямоугольники, составлен- составленные из любых двух соседних мест таблицы. Нетрудно понять теперь смысл графических методов минимизации булевых функций: дело сводится к тому, чтобы подыскать такой способ записи таблиц значений булевых функций, при котором было бы наиболее просто запомнить все правильные конфигурации. Удобный спо- способ записи таблиц булевых функций был предложен Вейчем1) и К а р н а у '). Таблицы функций, за- ') Е. W. V е i t с h, A chart method for simplifying truth fun- functions. Proc. Ass. Сотр. Mach., 1952, May, №2, 3, p. 127—133. ') M.Karnaugh, The map method for synthesis of combi- combinational logic circuits, Trans. AIEE, v. 72, № 1, 1953, p. 593—599. § SJ ДРУГИЕ МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ 303 писанные таким способом, носят название карт Карнау или диаграмм Вейча. Карты Карнау (диаграммы Вейча) для булевых функ- функций от трех и от четырех переменных изображены соот- соответственно на табл. IV.11 и IV.12. Таблица IV.И Таблица IV. 12 X V 'Ч. 0 0 0 1 1 1 1 0 0 и и и и 1 /, и и и >. ги х ""к 0 0 0 1 1 1 1 0 00 и и /и /. 01 и и /,. /. И /, и /,| /и 10 /• /• /,4 /.0 В табл. IV.11 нужно отождествить мысленно ее верх- верхний и нижний край (замкнуть таблицу в кольцо). При этом значения /ф и /4, а также значения /, и /, станут соседними (через /, мы обозначаем значение функции на 1-м наборе). В табл. IV.12 кроме отождествления верх- верхнего и нижнего края необходимо также отождествить между собой левый и правый ее края. Для обозначения конфигураций в этих таблицах будем пользоваться гео- геометрическими терминами. Например, конфигурацию табл. IV.12, образуемую местами /,, /,, /1S и /11? естественно назвать прямоугольником, или, более точно, вертикаль- вертикальным D X 1)-прямоугольником. Конфигурация, образуе- образуемая местами /, и /„, называется горизонтальным B X X 1)-прямоугольником; конфигурация, образуемая ме- местами /„, /14, /„, /10 — B X 2)-квадратом. Следует обратить особое внимание на то обстоятель- обстоятельство, что, благодаря проведенным отождествлениям краев таблиц, возникают новые квадратные и прямоугольные конфигурации, которые не являлись таковыми до ото- отождествления. Например, следует считать, что места /, и /f в таблице IV".12 образуют вертикальный B X 1)- прямоугольник, места /,, /,, /, и /„— B х 2)-квадрат, верхняя и нижняя строка вместе взятые образуют горизон- горизонтальный D X 2)-прямоугольник, и т. д.
304 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ LI1». IV Для упрощения формулировок последующих теорем целесообразно называть произведение чисел т и п в лю- любом (т X п)-прямоугольнике площадью этого прямо- прямоугольника. При этом, разумеется, квадрат рассматри- рассматривается как частный случай прямоугольника. Теперь, после того как введены необходимые понятия и сделаны нужные разъяснения, можно сформулировать следующие предложения, справедливость которых не- нетрудно установить непосредственной проверкой (напри- (например, путем перебора конфигураций, соответствующих всем элементарным произведениям от трех и четырех переменных). 3.6. Правильными конфигурациями ранга i на карте Карнау для булевых функций от трех переменных являются все прямоугольники (вертикальные, горизонтальные и квадратные), имеющие площадь 2' (i = 1, 2, 3), и только такие прямоугольники. 3.7. Правильными конфигурациями ранга i на карте Карнау для булевых функций от четырех переменных являются все прямоугольники (вертикальные, горизонталь- горизонтальные и квадратные), имеющие площадь 24 (i = 1, 2, 3, 4), и только такие прямоугольники. Идентичность формулировок теорем 3.6 и 3.7 приводит к мысли о возможности обобщения этих предложений на случай функций от произвольного числа п переменных такого, что конфигурации ранга i совпадают с прямоуголь- прямоугольниками, имеющими площадь 2"~' (i', = 1, 2, ..., п). Ясно, что для п = 2, равно как и для п = 3 и п = 4, этот ре- результат справедлив. Однако уже для п = 5 нельзя по- построить карту Карнау по аналогии, с картами Карнау для п = 3 и п = 4, для которой этот результат имел бы место. Поэтому для случая п5=5 либо прибегают к даль- дальнейшему обобщению понятия прямоугольника, вводя в картах Карнау некоторые дополнительные отношения со- соседства (кроме соседства верхнего с нижним и левого с правым краев карты Карнау), либо используют про- пространственные диаграммы, где роль прямоугольников выполняют прямоугольные параллелепипеды. Эти обоб- обобщения (после приобретения необходимого навыка) дают возможность относительно просто производить миними- гацшо булевых функций от пяти и шести переменных. | 3] ДРУГИЕ МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ 305 Мы не будем, однако, выписывать соответствующих карт Карнау для пяти и шести переменных. В случав необходимости их легко может выписать каждый, кто ознакомится с картами Карнау для трех и четырех пере- переменных. На табл. IV.13 и IV.14 показаны, в виде примера, минимальные накрытия для частичных булевых функций / и g от трех и четырех переменных, заданных картами Карнау (места, в которых значения функций не опреде- определены, отмечены черточками). Таблица IV.13 Таблица IV.14 0 0 0 1 1 1 1 0 0 1 1 1 — 0 1 1 о о 0 1 00 01 И 10 — 0 0 1 1 1 1 1 0 0 0 — 1 0 1 Построив накрытие М булевой функции на карте Кар- Карнау, нетрудно найти явные выражения для элементарных произведений, соответствующих всем конфигурациям этого накрытия, и построить определяемую данным накрытием дизъюнктивную нормальную форму. С этой целью доста- достаточно выяснить, значения каких переменных остаются постоянными для всех наборов, определяющих места любой заданной правильной конфигурации из рассматри- рассматриваемого накрытия. Нетрудно видеть, что все такие и только такие переменные входят в элементарное произ- произведение р, соответствующее конфигурации К. Ясно также, что каждая такая переменная входит в элементарное про- произведение р в прямом или инверсном виде, соответственно тому, равняется ли ее значение на всех наборах, состав- составляющих конфигурацию К, единице или нулю. 20 В. М. Глушков
306 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV Используя описанный прием, мы легко найдем дизъюн- дизъюнктивные нормальные формы, соответствующие накрытиям, которые показаны в табл. IV.13 и IV.14: f = xz*>yz /xy, g = xyv zuvx zuvyu. Очевидно, что области карт Карнау, в которых зна- значение любой переменной остается постоянным, представ- представляют собой прямоугольники, имеющие площадь, равную 4 (для функций от трех переменных), и площадь, равную 8 (для функций от четырех переменных). Для того чтобы облегчить нахождение элементарных произведений, соот- соответствующих правильным конфигурациям, эти области иногда выделяются на картах Карнау явным образом. Карты Карнау для функций от трех и четырех переменных с выделенными явно областями постоянства значений переменных изображены на табл. IV.15 и IV.16. Таблица IV.16 Таблица IV. 15 x у \. 0 0 0 1 1 1 1 0 1 {; 0 fl и \^ ги \ * у \ 0 0 0 1 1 1 1 0 00 /о и in и 01 /. /• /,. /. и ? /и 10 !: /и /.. } z z и и и Используя размеченные карты Карнау, нетрудно сразу определить, например, что квадрат, составленный из мест /,, /,, /,, /м, соответствует элементарному произве- произведению уи, первая строка в табл. IV.15 — элементарному произведению ху, и т. д. § 4. Проблема факторизации. Минимальные конъюнктивные нормальные формы Методы минимизации булевых функций, развитые в предыдущих параграфах, ограничиваются решением лишь одной задачи, а именно задачи нахождения минимальной §41 ПРОБЛЕМА ФАКТОРИЗАЦИИ 307 дизъюнктивной нормальной формы булевой функции. Нетрудно видеть, однако, что минимальная д.н.ф. далеко не во всех случаях дает самое простое выражение для булевой функции в булевой алгебре. В самом деле, легко видеть, что f = ху у xz — минимальная д.н.ф. (см. пред- предложение 1.12). Используя ее в качестве формы представ- представления булевой функции /, мы выражаем эту функцию с помощью трех операций (двух умножений и одной дизъ- дизъюнкции). Вместе с тем, вынося х за скобки, мы нахо- находим для той же функции выражение, в котором исполь- использовано лишь две операции (дизъюнкция и умножение):/= — х{у\ г). Проблема построения выражения для булевой функции, использующего наименьшее возможное число операций дизъюнкции и умножения среди всех выражений, пред- представляющих данную функцию и построенных из первич- первичных термов х, х, у, у, ... с помощью одних лишь дизъюн- дизъюнкций и умножений, носит название проблемы фактори- факторизации. К сожалению, в настоящее время не имеется общих методов решения этой проблемы, существенно более про- простых, чем метод перебора всех формул булевой алгебры, построенных из первичных термов с помощью одних лишь дизъюнкций и умножений и использующих ограниченное число этих операций, не превосходящее суммарное число дизъюнкций и умножений в минимальной д.н.ф. рас- рассматриваемой булевой функции. Обычно в случае практического решения проблемы факторизации не ставят целью найти непременно самое экономное выражение для данной булевой функции, а ограничиваются лишь некоторым уменьшением сложно- сложности ее минимальной д.н.ф. (в случае, когда это ока- оказывается возможным), используя разложение на мно- множители тех или иных групп членов, составляющих эту форму. Нетрудно показать, что при использовании лишь обыч- обычных приемов разложения на множители (подходящей группировки членов и вынесения общих множителей за скобки) не представляется возможным во всех случаях получить самое экономное выражение для булевой функ- функции, если отправляться от ее минимальной д.н.ф. 20*
308 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ Гл. ГУ Соответствующие примеры были построены Б е р к х а р- том1). Рассмотрим один из примеров Беркхарта. Пусть булева функция / задана дизъюнктивной нор- нормальной формой f=xyvvxywvxzuvvyzuw. Из теоремы 3.1 вытекает, что эта форма является со- сокращенной, но тогда с помощью теоремы 1.11 мы устанав- устанавливаем, что она является минимальной д.н.ф. Непосред- Непосредственная группировка членов и вынесение общих множи- множителей за скобки приводит к выражению /, =ху (ww) \zn (xvvyw), содержащему 9 операций умножения и дизъюнкции F ум- умножений и 3 дизъюнкции). Нетрудно проверить, что это самое экономное выражение из всех выражений, которые могут быть получены из минимальной д.н.ф. с помощью группировки членов и вынесения общих множителей за скобки. Нетрудно видеть, однако, что xy(v\w) = xy(xv\yw). Используя это обстоятельство, можно продолжить разло- разложение на множители и получить для функции / выражение /,= (xyvzu) (xvvyw), содержащее лишь 7 операций дизъюнкции и умножения B дизъюнкции и 5 умножений). В ряде случаев при решении проблемы нахождения абсолютно минимального представления булевой функции целесообразно вместо минимальных дизъюнктивных нор- нормальных форм употреблять минимальные конъюнктивные нормальные формы. Теория минимизации конъюнктивных нормальных форм (к.н.ф.) оказывается вполне параллель- параллельной теории минимизации д.н.ф. Введем определения, необходимые для построения этой теории. Прежде всего необходимо определить аналоги понятий импликан- ты и простой импликанты, которые мы будем называть имплицентой и простой имплицентой. 4.1. Имплицентой булевой функции f(xt, ..., хп) на- навивается всякая булева функция g(xx, ..., хп), которая обращается в нуль лишь в тех точках (не обязательно во всех), в которых значения функции f равны нулю или не ') W. H. Burkhart, Theorem minimization, Proc. Ass. Сотр. Mach. May, № 2 and 3, 1952, p. 259—263. i 4] ПРОБЛЕМА ФАКТОРИЗАЦИИ 309 определены. Простой имплицентой булевой функции f называется любая элементарная дизъюнкция р, являющаяся имплицентой функции f и такая, что никакая собственная часть этой дизъюнкции (дизъюнкция части членов элемен- элементарной дизъюнкциир) не является имплицентой функции/. Заметим, что к числу элементарных дизъюнкций мы относим также и константу нуль (рассматриваемую в качестве дизъюнкции пустого множества первичных тер- термов). Ясно, что константа нуль может рассматриваться как простая имплицента лишь одной единственной булевой функции, а именно функции, тождественно равной нулю. Этот случай мы будем считать тривиальным и в дальнейшем исключать из рассмотрения. Во всех остальных случаях все простые имплиценты булевых функций отличны от нуля. Нетрудно убедиться в том, что произведение любого множества имплицент булевой функции снова является имплицентой той же сам,ой функции. Если это произведение равно рассматриваемой функции, мы будем говорить, что составляющие его имплиценты образуют полную систему имплицент этой функции. Полная система имплицент называется приведенной, если никакая собственная часть этой системы не является полной системой имплицент. Имплиценты булевой функции /, образующие полную систему, накрывают все нули этой функции. Иными сло- словами, для любого набора значений переменных, на котором функция / обращается в нуль, найдется имплицента дан- данной системы, принимающая на этом наборе нулевое зна- значение. Ясно, что выполнение этого условия необходимо и достаточно для полноты системы имплицент. Точно так же, как и в случае простых импликант, доказывается утверждение, гласящее, что система всех простых имплицент булевой функции представляет собою полную систему. Этот результат позволяет определить (по аналогии с сокращенной д.н.ф.) сокращенную конъюн- конъюнктивную нормальную форму. 4.2. Сокращенной к.н.ф. булевой функции называется произведение всех ее простых имплицент. Произведение имплицент булевой функции /, составляющих какую-ни- какую-нибудь приведенную систему простых имплицент этой функции, называется тупиковой к.н.ф. функции f.
г ю МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV Если назвать минимальной к.н.ф. булевой функции такую ее к.н.ф., которая содержит наименьшее возможное число первичных термов (переменных и их отрицаний), то, как и в случае минимальных д.н.ф., нетрудно доказать следующее предложение. 4.3. Любая минимальная к.н.ф. булевой функции яв- является тупиковой к.н.ф. (но, вообще говоря, не наоборот). Как и минимизация д.н.ф., минимизация к.н.ф. обычно проводится в два этапа. На первом этапе находятся все простые имплиценты данной булевой функции или, что то же самое,— ее сокращенная к.н.ф.; на втором этапе из найденных простых имплицент строятся минимальные накрытия (приведенные системы), образующие тупиковые к.н.ф., а из тупиковых к.н.ф. выбираются минимальные к.н.ф. Для решения задачи второго этапа может употреб- употребляться имплицентная таблица, строящаяся по аналогии с импликантной таблицей, рассмотренной в § 1. Строки имплицентной таблицы обозначаются простыми импли- центами данной булевой функции, а столбцы — наборами значений переменных (или соответствующими им консти- туентами нуля), на которых эта функция обращается в нуль. При этом используются все простые имплиценты и все наборы с нулевыми значениями функции. На пере- пересечении А-й. строки и Р-го столбца имплицентной таблицы ставится звездочка, если имплицента А обращается в нуль на наборе Р. Если же имплицента А на этом наборе равна единице, то соответствующее место таблицы ос- оставляется пустым. Точно так же, как и в § 1, строится конъюнктивное представление имплицентной таблицы. Превращая это представление в дизъюнктивное (с помощью раскрытия скобок) и осуществляя упрощения в соответствии с прави- правилами булевой алгебры (элементарные поглощения), мы получаем дизъюнкцию произведений простых имплицент. Каждое из таких произведений является тупиковой к.н.ф. исходной булевой функции, причем таким способом получаются все тупиковые (а, значит, и все минимальные) конъюнктивные нормальные формы. Заметим, что в соответствии с дуальностью операций дизъюнкции и умножения, имеющий место в булевой ал- $4] ПРОБЛЕМА ФАКТОРИЗАЦИИ 311 гебре, весьма естественно распространить эту дуальность на процесс раскрытия импликантных и имплицентных таблиц. Иными словами, в данном случае нужно от исход- исходного конъюнктивного представления таблицы переходить к дизъюнктивному представлению, а в другом случае — наоборот. Однако мы сделали отступление от принципа дуальности, что было вызвано главным образом сообра- соображениями практического удобства. Дело в том, что переход от конъюнктивного представления к дизъюнктивному ис- использует правила раскрытия скобок, аналогичные соот- соответствующим правилам школьного курса алгебры, обрат- обратный же переход менее обычен, в связи с чем, как показы- показывает практика, увеличивается вероятность ошибок при проведении выкладок. Для нахождения простых имплицент булевой функции можно использовать все методы (соответствующим образом перефразированные) нахождения простых импликант, которые были развиты в двух предыдущих параграфах. Условимся сохранять для получаемых таким образом ме- методов введенные выше названия. В случае метода Квайна для нахождения про- простых имплицент вместо операции неполного дизъюнктив- дизъюнктивного склеивания нужно употреблять операцию неполного конъюнктивного склеивания, основанную на тождестве (Avx) (Avx) = А (Avx) (Avx). Вместо операции обобщенного (дизъюнктивного) склеи- склеивания по методу Блейка нужно употреблять опера- операцию обобщенного конъюнктивного склеивания, задаваемую тождественным соотношением: (Avx) (Bvx) == (Avx)\Bvx) (AvB). Справедливыми являются также аналоги теорем Квайна, Блейка и Нельсона: 4.4. Применяя к совершенной к.н.ф. булевой функции все возможные операции неполного конъюнктивного склеива- склеивания и устраняя элементарные поглощения, мы получаем сокращенную к.н.ф. этой функции. 4.5. Применяя к произвольной к.н.ф. булевой функции все возможные операции обобщенного конъюнктивного
312 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV склеивания и устраняя элементарные поглощения, мы при- приходим к сокращенной к.н.ф. этой функции. 4.6. Если произвольную д.н.ф. булевой функции пре- преобразовать в конъюнктивную нормальную форму, исполь- используя второй дистрибутивный закон A v ВС = (A v В) (A v С), и устранить элементарные поглощения, то мы приходим к сокращенной к.н.ф. этой функции. Элементарное поглощение во всех этих теоремах по- понимается в конъюнктивном смысле; именно, при использовании тождественного соотношения A (A v В) = = А говорят, что множитель А осуществляет элементарное поглощение множителя А у В. Доказательства сформули- сформулированных теорем мы не будем приводить, поскольку они являются перефразировками доказательств теорем Квайна, Блейка и Нельсона, приведенных в §§ 2 и 3 настоящей главы. Весьма просто осуществляется также перефразировка (применительно к нахождению минимальных к.н.ф.) гра- графических приемов минимизации, основанных на исполь- использовании карт Карнау. Различие состоит в том, что вместо конфигураций единиц рассматриваются конфигу- конфигурации нулей. Задача минимизации состоит в минимальном накрытии всех нулей заданной булевой функции правиль- правильными конфигурациями нулей, соответствующими нулям: элементарных дизъюнкций. Как и ранее, нетрудно удостою вериться в том, что правильными конфигурациями яв- являются обобщенные прямоугольники (с учетом отождест- отождествления противоположных сторон на картах Карнау). Рассмотрим в качестве примера нахождение (с помощью карты Карнау) минимальной к.н.ф. частичной булевой функции от четырех переменных, заданной табл. IV. 17 (для наборов значений переменных, отсутствующих в таблице, значения функции безразличны). Решение задачи дается картой Карнау, изображенной в табл. IV.18. Из этой таблицы видно, что имеются три простые им- плиценты заданной функции, образующие приведенную систему. Первой из этих имплицент является имплицента у, которой соответствует обобщенный прямоугольник, составленный из верхней и нижней строки карты Карнау (заметим, что при нахождении простых импликант, а не простых имплицент этому прямоугольнику соответст- ПРОБЛЕМА ФАКТОРИЗАЦИИ 313 вовала бы простая импликанта у; различие получается вследствие того, что мы оперируем теперь с конфигура- конфигурациями нулей, а не с конфигурациями единиц). Таблица IV.18 Таблица X 0 0 0 1 1 и 0 1 1 0 1 г 0 0 1 1 1 IV. 17 и 0 1 1 1 1 0 1 0 0 1 х V >v^ 0 0 0 1 1 1 1 0 00 0 — Е 01 1 — — 11 10 — — о | — 1 0 — — Вторая простая имплицента и соответствует обобщен- обобщенному прямоугольнику, состоящему из крайних (левого и правого) столбцов карты Карнау. Третья простая им- имплицента х v z соответствует B X 2)-квадрату в Правом верхнем углу таблицы. Искомая минимальная к.н.ф. функции / совпадает с произведением всех трех найденных простых имплицент: / = уи{х v z). Заметим еще, что нахождение минимальных к.н.ф. можно полностью свести к нахождению минимальных д.н.ф. Такое сведение осуществляется в соответствии со следующей теоремой. 4.7. Если в таблице заданной (частичной) булевой функции заменить все нули единицами, а все единицы ну- нулями, то возникает взаимно однозначное соответствие Ф между множеством всех минимальных д.н.ф. полученной таким образом (частичной) булевой функции g и множе- множеством всех минимальных к.н.ф. функции {: если g0 — произвольная минимальная д.н.ф. функции g, то <p(g0) = /0, причем к.н.ф. /0 получается из д.н.ф. g0 заменой всех дизъ- дизъюнкций умножениями и всех умножений дизъюнкциями при одновременной замене всех первичных термов xt тер- термами xt, а первичных термов ху — термами Xj.
314 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV В целях доказательства предложения 4.7 заметим, прежде всего, что выражение /0, получаемое из д.н.ф. g0 в соответствии с предложением 4.7, представляет собой некоторую к.н.ф. Из предложения 4.6 гл. Ill вытекает, что функция, задаваемая формой /0, представляет собою отрицание функции, задаваемой формой g0. Поскольку g0 является некоторым представлением функции. g, то из способа построения функции g непосредственно сле- следует, что /0 является некоторым представлением функции /. Будучи к.н.ф., выражение /0 является к.н.ф. функции /. Отображение ф может быть определено на всех д.н.ф. функции g. Ясно также, что для этого отображения суще- существует обратное отображение ф"\ которое может быть определено на множестве всех к.н.ф. функции /. Далее, отображения ф и ф~' не меняют количества первичных термов, составляющих нормальную форму. Отсюда непо- непосредственно следует, что эти отображения переводят минимальные нормальные формы (д.н.ф. функции g и к.н.ф. функции /) в минимальные, что и требовалось доказать. Применяя доказанную теорему, теперь можно иначе интерпретировать проведенное выше построение минималь- минимальной к.н.ф. для булевой функции /, заданной табл. IV.16. Для этой цели достаточно на карте Карнау, задаваемой табл. IV. 17, произвести мысленную замену всех единиц нулями, а всех нулей — единицами. Для построенной та- таким образом новой функции g мы находим минимальную д.н.ф. g = у v и v xz. Используя отображение ф, мы приходим к к.н.ф. /0 = уи(х v г), которая, в силу теоремы 4.7, является минимальной к.н.ф. исходной функции /. В заключение решим задачу факторизации для случая булевых функций от трех переменных. Нетрудно убедиться в том, что найдя для некоторой булевой функции / выражение, построенное с помощью операций дизъюнкции и умножения из наименьшего воз- возможного числа первичных термов, мы можем считать по- построенными аналогичные выражения для всех функций, получаемых из функции / с помощью всевозможных перестановок переменных и преобразований переменных вида х( -+ х(. Иначе говоря, проблему нахождения абсолютно минимального выражения (проблему факторн- ПРОБЛЕМА ФАКТОРИЗАЦИИ 315 зации) достаточно решать лишь для одного какого-нибудь представителя каждого типа булевых функций. Как уже отмечалось выше, существует всего 22 раз- различных типа булевых функций от трех переменных. Их нетрудно найти с помощью прямого перебора. Среди этих 22 типов 6 типов составляют функции, которые сво- сводятся к функциям от меньшего числа переменных. Кроме констант 0 и 1, это будут типы, задаваемые следующими своими представителями: х, ху, xvy, xy\xyz=(xyy)(x\iy). Нетрудно проверить, что выписанные выражения будут абсолютно минимальными представлениями соответствую- соответствующих функций. Для остающихся 16 типов (от 7-го до 22-го) выпишем по одному представителю каждого типа, задавая для них все минимальные д.н.ф. и к.н.ф., а также абсолютно минимальные выражения: 7-й тип: ^ — хуъ. 8-й тип: fa;=zy 9-й тип: ftz= = {xvy) (xvz) (yvz) — (xvy) (xvz) (yyz). 10-й тип: fiaz=xyvxz — x(yvz). 11-й тип: fllz=xyyxyz = = (xyy){xyy) {yyz) = (xvy) (xvy) (xvz). 12-й тип: flt^=xyzvxyzvxijz = = (xvy) (yvz) (xvz) (xvyvz)=x (yzvy z) vx yz. 13-й тип: fls = xyvyzvxz = ^=(xvy\(x'jz) (y\'z) = x(yvz) vyz. 14-й тип: flt = xzvyzz=(xvz)(yvz). 15-й тип: fls^=xyvxzvxyz~ = (xvy) (xvz) (xvyvz)=x (yvz) y/xyz. 16-й тип: flt = xyzvxyzvxyzvxyz= = (xvyvz)(xvyvz)(xvy\iz)(xvyvz)= . = x(yzvyz)vx{yz yz).
316 МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ [Гл. IV 17-й тип: ft,=xyvxzvyzvxy z= *=(x\iyyz) (xyyyz) (xvyvz)=^ =x (yvz) yyzyx yz . 18-й тип: flt=xyyxyyxz = —xy\ixyyyz={x\iy) (x vyyz). 19-й тип: flt=xvyz=(xvz)(xvy). 20-й тип: ft0=xyvxzvyz = = xyvxzvyz = (x yy yz) (xyyyz). 21-й тип: ftl=^xvyzvyz=(xvyvz)(xvyvz). 22-й тип: fii=xyyyz. Заметим, что функция /20 имеет пять различных тупи- к вых д.н.ф., из которых только две минимальные. Ана- Аналогично функция /, имеет пять различных тупиковых к.н.ф., из которых только две минимальные. У всех осталь- остальных типов булевых функций от трех переменных все тупи- тупиковые д.н.ф. и к.н.ф. являются минимальными. При ьтом, кроме 9-го и 20-го типов, еще только функция /,, имеет две различные минимальные к.н.ф., а функция /,, — две различные минимальные д.н.ф. Все остальные минималь- минимальные д.н.ф. и к.н.ф. являются единственными. ГЛАВА V МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ В ДВОИЧНОМ СТРУКТУРНОМ АЛФАВИТЕ § 1. Некоторые методы решения канонической задачи комбинационного синтеза В главе III (§6) было введено понятие канонической задачи комбинационного синтеза. Для случая п перемен- переменных хх, ..., хп в канонической задаче имеется In -\- 2 входных полюса, на которые подаются сигналы хг, х%, . . ., хп, ж,, хг, . . ., хп, и, 1. Число выходных полюсов может быть произвольным, однако, разумеется, можно считать, что оно не превосхо- превосходит числа всех булевых функций от п переменных, то есть 2s". В качестве логических элементов в канонической задаче используются лишь двухвходовые совпадения и разделения. При решении канонической задачи комбинационного синтеза на практике достаточно хорошие результаты по- получаются при применении так называемого метода каска- каскадов, принадлежащего Г. Н. П о в а р о в у1). Этот метод является уточнением метода,' предложенного ранее К.Ш енноном'). Первоначально он был развит примени- применительно к релейно-контактным схемам. Мы дадим несколько иную интерпретацию этого метода, ориентирующуюся ') Г. Н. Поваров, Математическая теория синтеза кон- контактных A,*)-полюсников, ДАН СССР, т. 100, №5, 1955, стр. 909—912. *) С. Е. S h a n n о n, The synthesis of two-terminal switching circuits. Bell. System. Tech. J., v. 28, 1949, p. 59—98.
318 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V на использование двухвходовых совпадений и разде- разделений. Метод каскадов основывается на следующей формуле булевой алгебры, имеющей место для произвольной буле- булевой функции f{xx,xt, ..., хп): /(*„ хг, ..., хп) = =xj(xt, xt, .. ., з„_„ l)vxj(xlfxt, ...,хп_х, 0). A) Справедливость этой формулы легко проверяется не- непосредственной подстановкой в ее левую и правую часть значений хп = О и хп — 1. Предположим теперь, что перед нами поставлена задача синтеза комбинационной схемы, выходными функциями которой служат функции системы т булевых функций /,,/,,...,/, от переменных хх, ..., хп. Применим формулу A) к каждой из функций ft (i = 1, ..., т): Ji(%l, • ¦ • , хп_1. хп)= ^ ^ где i = 1, ..., п. Если построить комбинационную схему, выходными функциями которой будут функции от га — 1 переменных /Да:,,..., хп_1, 1), /, (а:,, ..., ?„_,, 0), где 1 = 1, ..., т, то искома^ схема с выходными функциями /Да:,, ..., хп_1, хп), где i = 1, ..., т, может быть легко по- построена с помощью двухвходовых совпадений и двухвходо- двухвходовых разделений, реализующих функции вида ф,а;п v ф2ж„. Назовем участок схемы, реализующий эти функции последним каскадом искомой комбинационной схемы. Опи- Описанный прием выделения последнего каскада комбинаци- комбинационной схемы позволяет сводить задачу синтеза этой схемы к задаче синтеза схемы, имеющей в качестве своих выход- выходных функций булевы функции от меньшего числа перемен- переменных. Осуществляя такое сведение последовательно га — 2 раза, мы сведем исходную задачу синтеза к задаче синтеза схемы, реализующей некоторые булевы функции от двух переменных. Эта же последняя задача решается непо- непосредственно с помощью образования совпадений сигналов хх, х1 с сигналами хг, ххъ последующих разделений обра- образующихся таким образом сигналов. § 1] НЕКОТОРЫЕ МЕТОДЫ РЕШЕНИЯ КАНОНИЧ. ЗАДАЧИ 319 В итоге мы получаем метод решения канонической задачи комбинационного синтеза, представляющий схему, выходные функции которой зависят от п переменных, в виде объединения последовательно включенных п — 1 каскадов. Заметим, что тот же метод в применении к вентильным (в частности, к релейно-контактным) схемам более естественно интерпретировать таким образом, что соответствующая схема разбивается не на п — 1, а нал каскадов. В качестве примера синтеза с помощью метода каскадов рассмотрим синтез комбинационной схемы с выходными функциями: fn=X1 + Xt+...+Xn, Применяя формулу A), мы получим, что /n = ^n-ia'nv/n- А' 8п =fn -\Xn^Sn-\Xni где /„_,=*, Вб б . . .+«„ а ?„_,= .. .+*„-, „,,г „„ ?„,,+,+„,+ Вообще, обозначая через /,- и gt функции хх-\-хг-\-. . .-\-xt и а:,+а:4+• • •+Я/+1. соответственно, (г = 2, 3 .... п), мы получим следующие соотношения; g2=a;,a;2va;Ia;2, где i=3, 4, .. ., п. Таким образом, приходим к схеме из га — 1 каскадов, каждый каскад которой состоит из четырех двухвходовых совпадений и двух двухвходовых разделений. Вся схема в целом содержит, следовательно, 4(га — 1) совпадений и 2(га — 1) разделений. Основываясь на методе, аналогичном методу каскадов, К. Шеннон1) предложил способ оценки сложности ') См. его работу, указанную в примечании 2 на стр. 317.
320 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V комбинационной схемы, реализующей любую заданную булеву функцию от п переменных. Схема, предложенная Шеннонощ, основана на объединении двух схем, первая из которых называется универсальным многополюсником, а вторая — обратным логическим деревом. Универсальным многополюсником от п переменных мы будем называть любую комбинационную схему, выходными функциями которой служат все булевы функции от п переменных. Следующий результат представляет собой небольшую модификацию известного результата К. Шеннона1). 1.1. Для любого натурального числа га^2 можно по- построить универсальный многополюсник от п переменных хх, ..., xnl использующий в качестве входных сигналов сигналы 0, 1, хх, ..., хп, хх, ..., хп и содержащий не более 2-22"—28 двухвходовых совпадений и не более 2г"—10 двухвходовых разделений. Доказательство теоремы 1.1 проводится индукцией по числу переменных п. При п — 2 мы имеем 22*= 16 раз- различных булевых функций от двух переменных хх и хг. Из них шесть функций, а именно функции 0, 1, хх, х%, хх, хх совпадают с соответствующими входными сигналами и не требуют, следовательно, для своего построения ни- никаких логических элементов. Остальные десять функций можно представить в виде хххгчхххг, xx\ixz, xxvxt, xxvxt, xxvxt. Учитывая, что пятая и шестая функции представ- представляются в виде дизъюнкций второй с третьей и первой с четвертой функцией, мы приходим к выводу, что для по- построения универсального многополюсника, в случае двух переменных достаточно четырех (двухвходовых) совпаде- совпадений и шести (двухвходовых) разделений. Таким образом, при п = 2 оценки, приведенные в теореме 1.1, справед- справедливы. Предположим теперь, что нами уже доказана справед- справедливость оценок С„<2-22" — 28 и Рп<22"—10 для числа ') См. его работу, указанную в примечании 2 на стр. 317. §1] НЕКОТОРЫЕ МЕТОДЫ РЕШЕНИЯ КАНОНИЧ. ЗАДАЧИ 321 совпадений Сп и числа разделений Рп в универсальном многополюснике при п = к. Докажем, что эти же оценки имеют место и при п = k+i. Прежде всего заметим, что универсальный многополюс- многополюсник для к + 1 переменных можно построить из универ- универсального многополюсника для к переменных с помощью использования формулы f{xx, . . .,xk,xk+x)=xk+1f(xx....,xk,l)\/xk+j(xl, ...,хк,0), справедливой для каждой из 22*+1 булевых функций от к + 1 переменных. Эта формула показывает, что пере- переход от универсального многополюсника для к перемен- переменных к универсальному многополюснику для ?+1 перемен- переменных может быть выполнен с помощью добавления в схе- схему к-то каскада, содержащего 2-22*+1 (двухвходовых) совпадений и 22 +1 (двухвходовых) разделений. Возможно, однако, и более экономное построение к-то каскада. Действительно, ровно 22Й булевых функ- функций от к + 1 переменных может быть представлено в виде xk+x y(xx, ..., xk), и ровно 22* функций в виде xk + xty(xx,...,xk). Ясно, что среди этих функций нет одинако- одинаковых. Учитывая наличие функций с такими разложениями, мы можем при построении А;-го каскада схемы универсаль- универсального многополюсника от к + 1 переменных сэкономить 2 ¦ 22* совпадений (по одному на каждой функции) и 2-22* раз- разделений. Таким образом, мы имеем следующие соотношения: Cft+I«?ft+ 2• 2**+I -2 ¦ 2** , Pk+l < PA+2'ft+I _ 2-2** . B) Поскольку Cft«s2.22t—28, Pft<22'—10, то из соотно- соотношений B) мы получаем соотношения: ft+I 2.2'H'-28, Тем самым совершен требуемый переход от к к к + 1, и закончено доказательство теоремы '\ ') Легко видеть, что при п>2 оценка, полученная нами для ?игла разделений Рп, является сильно завышенной. 21 В. М. Глушков
322 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V Рассмотрим теперь одно обобщение тождества A). Пусть /(а:,, ..., хп) — произвольная булева функция от га переменных, am — произвольное натуральное число, меньшее чем п. Непосредственной проверкой с помощью подстановки различных значений переменных хт+1, хт+г, ..., хП может быть проверена справедливость следу- следующего соотношения: /(*„_. ¦;_х„) = ха,1хх „,+>¦¦ -x~J{xx хт, 0,0, .... 0)v Vxm+ixm+*- ¦¦xn-ixnf(xi хт> 0, 0, . . .. 0, l)v... vs. *« + . ¦•¦*»/(*, Хт> I- 1, •¦-. Для реализации соотношения C) может быть построена специальная комбинационная схема, называемая обрат- обратным логическим деревом. Эта схема имеет га — т каскадов. В первом каскаде входными сигналами служат ат • -. aB), а выходными сигналами — функции вида (a;,, . . ., xm, 0, OLm+l, . . ., OLn) v Vxm + \l ixi' " " •> xmi *> a* + i1 ••¦» ап)' Здесь через dm + l, ат+г, ¦¦-, а„ обозначен произвольный набор значений переменных хт+1, хт+1, ..., хп. Всего в первом каскаде будет содержаться 2"'т двухвходовых совпадений и -%.2"'т двухвходовых разделений. Выходные сигналы первого каскада, число которых равно -g . 2"~т, принимаются вместе с сигналами хт+г и хт+г за входные сигналы второго каскада, который строится точно таким же образом, как и первый каскад. Продолжая подобным образом, мы получим на выходе (га — т)-го каскада заданную функцию f{xx, ..., хп). Общее число затрачиваемых на построение всей схемы (состоящей из « — m каскадов) двухвходовых совпадений и разделений равно соответственно 2» — | l] НЕКОТОРЫЕ МЕТОДЫ РЕШЕНИЯ КАНОНИЧ ЗАДАЧИ 323 Первое из этих чисел, очевидно, равно 2-2"~("—2, а вто- второе 2"-"—1. Функции /(а:,, .... хт, am+I, ..., aj, использованные при осуществлении вышеприведенного построения, можно получить в качестве выходных функций (возможно, не всех) универсального многополюсника от т переменных. Объединяя оценки для числа совпадений и разделений в универсальном многополюснике (теорема 1.1) с только что полученными оценками для числа совпадений и раз- разделений в обратном логическом дереве, мы приходим к следующему результату. 1.2. Любая булева функция /(а:,, ..., хп) от га пере- переменных при п^г2 может быть реализована как выходная функция комбинационной схемы, входными сигналами которой служат0, 1, хх, ..., хп, хх,..., хп и которая содер- содержит не более чем 2-B*m-\-2"~m)—30 двухвходовых совпаде- совпадений и не более чем 22(Я+2п~т—11 двухвходовых разделений (т — любое натуральное число, такое, что 2<;т^и). Заметим, что приведенные в теоремах 1.1 и 1.2 оценки числа совпадений и особенно оценки числа разделений могут быть улучшены. Однако мы не будем стремиться к возможным улучшениям, поскольку нашей целью является, в первую очередь, не получение оценок, а нахождение практически удобных методов синтеза комбинационных схем. Нетрудно убедиться в том, что построения, приме- примененные при доказательстве теорем 1.1 и 1.2, представляют собой разновидности метода каскадов. Из теоремы 1.2 можно получить принадлежащую К.Шеннону асимптотическую оценку сложности ком- комбинационных схем, реализующих булевы функции от п переменных. Для этой цели заметим, что при и>4 оценки, приведенные в теореме 12, принимают достаточно хоро- хорошие (с точки зрения их величины) значения в том случае, если выбрать значение т равным целой части числа !og2(ra — 21og2«): п — 2 log, л)]. В этом случае j (п — 2log, «)<2m < п — 2 log,н, И*
824 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V из чего следует, что -5- (л — 2 log, л) 1 — " '"Вг л Здесь через е„ обозначена величина, стремящаяся к нулю при п-- оо. Используя последнее из выведенных соотно- соотношений, а также оценки, полученные в теореме 1.2, мы получим следующую асимптотическую оценку. 1.3. Любая булева функция f(xt, ..., хп) отп переменных (га>4) может быть реализована как выходная функция комбинационной схемы, входными сигналами которой слу- служат 0,1, хх, ..., хп, хх, ..., хп и которая содержит не более чем A + еп) двухвходовых совпадений и не более чем 2"+' A + е„) двухвходовых разделений, причем величина е„ стремится к нулю при п-юо. Нетрудно заметить, что оценка, определяемая усло- условиями теоремы 1.3, останется справедливой и в том слу- случае, если из числа входных сигналов будут исключены 0 и 1. При решении канонической задачи синтеза в ряде слу- случаев оказывается удобным использовать, кроме метода кас- каскадов, также метод, основанный на совместной миними- минимизации систем булевых функций. Имея в виду изложение этого метода, мы введем, прежде всего понятие простой импликанты системы булевых функций. Простой импликантой множества S булевых функций /,, ..., fm от переменных хх, ..., хп называется всякое эле- элементарное произведение р, составленное из этих перемен- переменных и их отрицаний, которое удовлетворяет следующему условию: произведение р является импликантой некоторых функций fit, ..., fitc множества S, а никакая собственная часть этого произведения уже не является импликантой хотя бы для одной из этих функций. В силу приведенного определения, простые импликанты каждой из функций множества S являются в то же время простыми импликантами этого множества. НЕКОТОРЫЕ МЕТОДЫ РЕШЕНИЯ КАНОНИЧ ЗАДАЧИ 325 Из приведенного определения непосредственно выте- вытекает также следующее, более общее предложение. 1.4. Простые импликанты всевозможных произведений fiji2 ••• Ы (te*l) булевых функций из заданного мно- множества S булевых функций, и только они, являются про- простыми импликантами множества S. Предложение 1.4 сводит задачу отыскания простых импликант любого (конечного) множества булевых функ- функций к уже решенной в предыдущей главе задаче отыскания простых импликант одной булевой функции. По аналогии с § 1 предыдущей главы естественно систему простых им- импликант множества S булевых функций называть пол- полной, если входящие в нее простые импликанты накры- накрывают все единицы функций множества S. Полной будет очевидно, система всех простых импликант множе- множества S. Для целей синтеза комбинационных схем имеют особо важное значение приведенные системы про- простых импликант заданного множества S булевых функ- функций, т. е. такие полные системы простых импликант, ко- которые перестают быть полными при выбрасывании из них любой простой импликанты. Если построить комбинацион- комбинационную схему, выходные функции которой совпадают с функ- функциями, составляющими некоторую приведенную систему простых импликант заданного множества S булевых функций, то каждая из функций множества S может быть получена из выходных функций этой схемы с помощью одних лишь разделений. Комбинационную схему, у которой все совпадения предшествуют разделениям, мы будем называть канониче- канонической двухступенчатой схемой. Все совпадения образуют при этом первую, а все разделения — вторую ступень этой схемы. При построении канонических двухступенча- двухступенчатых схем на практике часто употребляют не двухвходовые, а многовходовые совпадения и разделения. Синтез таких схем производится в два этапа. На первом этапе выбирают ту или иную полную систему простых импликант множества выходных функций, которые требуется реализовать в син- синтезируемой схеме, и строят первую ступень схемы (на сов- совпадениях), реализующую все импликанты выбранной си- системы. На втором этапе строят вторую ступень схемы,
326 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V производя необходимые разделения полученных простых импликант. Нетрудно убедиться в том, что для получения канони- канонических двухступенчатых схем с минимальным числом эле- элементов необходимо пользоваться приведенными системами простых импликант. Как правило, число таких систем бывает достаточно большим, что затрудняет выбор наибо- наиболее экономной схемы с помощью простого перебора. По- Поэтому на практике ограничиваются обычно выбором одной из таких приведенных систем,— именно такой, в которой каждая из входящих в нее простых импликант накрывает наибольшее возможное число единиц (не накрытых дру- другими импликантами) исходного множества S булевых функций. В ряде случаев ограничиваются системой, состоящей из некоторых приведенных систем простых импликант каж- каждой из функций множества S. Ясно, что такая система будет непременно полной (хотя и не обязательно приведенной). Рассмотрим действие описанных методов синтеза на примерах. Пример 1. Построить комбинационную схему, имеющую в качестве своих выходных функций (частичные) булевы функции /, и /,, задаваемые следующими картами Карнау: \ X 0 0 1 1 ги У \^ 0 1 1 0 Таб л 00 — 1 1 01 1 0 0 — ица 1 11 1 0 0 1 VA Ю 1 ~ти 0 Таблица V.2 х. ги 0 0 0 1 1 1 1 0 00 0 1 0 0 01 11 1 — 1 1 0 — 1 - 10 1 1 0 0 |1] НЕКОТОРЫЕ МЕТОДЫ РЕШЕНИЯ КАНОНИЧ. ЗАДАЧИ 327 Решение. Пользуясь картами Караау, нетрудно найти все простые импликанты множества булевых функций (/,, /,). Мы выпишем лишь существенные простые импликанты, т. е. такие простые импликанты, которые накрывают хотя бы одну единицу (см. гл. IV, § 1): i — XZU, ,=х z, p^zu, Импликанта рх накрывает две единицы (функции /,), импликанта pt — три единицы (функции /,), импликанта р, — пять единиц (три единицы функции /, и две единицы функции /8), импликанта pt — две единицы (функции /,), импликанта ръ — три единицы (одну единицу функции /, и две единицы функции /,), импликанта pt — четыре единицы (функции /,), импликанта р1 — три единицы (функции /2), импликанта ps — одну единицу (функции /,), импликанта pt — три единицы (функции /2), импли- импликанта р1а — три единицы, (две единицы функции /, и одну единицу функции /2), импликанта ри — три единицы (одну единицу функции /, и две единицы функции /,). В приведенную систему простых импликант естественно включить импликанты р, и pt, накрывающие наибольшее число единиц (соответственно пять и четыре единицы). Остальные импликанты можно выбрать различными спо- способами. Один из наиболее экономных способов приводит к системе, состоящей из простых импликант pv pt, /?s, pt. Исходные булевы функции представятся тогда в виде Из этого приведенного представления следует, что вторая ступень канонической двухступенчатой схемы, имеющей функции /, и /, в качестве своих выходных функций, может быть построена из четырех двухвходовых
328 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V разделений. Поскольку px=zu, pt=yu, pt=xzu, pt=xy, то для построения первой ступени этой схемы достаточно, как нетрудно убедиться, пяти двухвходовых совпадений. 2 Т2 Ш у Соответствующая схема изображена на рис. 11 (Р обозна- обозначает разделение, а С — совпадение). Применение метода каскадов к функциям /,=zuv yuvxzu, ft=yu\jxy\jxzu приводит к появлению промежуточных функций /,(z, у, z)=^fl(x, у, z, 0)=zvz, fAx' У.-*)=Л(*. У' z< 4)-У. ft(x, у, z)=f,(x, у, z, 0)=xpvz), f,(x, у, z)=f2(x, у, z, l)=xvy, fAx> У) =/•(*. У. 0)=ху. §1] НЕКОТОРЫЕ МЕТОДЫ РЕШЕНИЯ КАНОНИЧ. 8АДАЧИ 329 Система уравнений, описывающая схему; построенную по методу каскадов, представится, очевидно, в виде: Для реализации соответствующей схемы достаточно, как легко проверить, пяти двухвходовых совпадений (для образования функции ху, xz, /,и, /,и, /4и, /,и) и пяти двухвходовых разделений. Таким образом, схема, постро- построенная по методу каскадов, в данном случае оказалась менее экономной, чем ранее построенная каноническая двухступенчатая схема. Пример 2. Построить комбинационную схему, имею- имеющую в качестве своих выходных функций булевы функ- функции ft =х-\-у+г =xyz\ix yzvxyzvxyz, f t=xyzvxyz\jxyt\jxyz=xy\jxz\jyz. Решение. Простыми импликантами системы S буле- булевых функций /, и /, будут все простые импликанты функ- функции /, (т. е. px=xyz, pt=xyz. pt=xyz,pt=xyz), все про- простые импликанты функции /, (т. е. р,=ху, pt=xz, /?,= =yz) и все простые импликанты функция /,/,. Поскольку последняя функция равна, очевидно, xyz, то ее единст- единственной простой импликантой является уже выписанная ранее импликанта рА. Система импликант рх—/>7 является, как нетрудно видеть, приведенной. Соответствующая ей каноническая двухступенчатая схема может быть построена с помошью 10 двухвходовых совпадений и 5 двухвходовых разделе- разделений (одно совпадение экономится за счет того, что при образовании импликанты xyz попутно получается одна из импликант ху, xz, yz).
330 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. \ По методу каскадов получаем следующие промежу- промежуточные функции: /.(*> У) =/,(*, У, O)=~( /«(*. V)=fAx> У* l)= Так как » y)=fAx> У> l)= /i=/»zv/4z, ft=ftzvftz, то отсюда следует возможность построения требуемой схемы с помощью 7 двухвходовых совпадений и 5 двух- двухвходовых разделений. Соответствующая схема изображена Рис. 12. на рис. 12. Заметим, что в данном случае схема, построен- построенная по методу каскадов, оказалась более экономной, чем каноническая двухступенчатая схема. § 2. Методы канонического синтеза некоторых специальных комбинационных схем При синтеза цифровых автоматов часто приходится иметь дело с некоторыми специальными типами комби- комбинационных схем. Одним из таких типов являются так называемые дешифраторные схемы или просто дешифра- дешифраторы. Дешифратором для п переменных xv ..., хп называется комбинационная схема, выходными функциями которой §2] КАНОНИЧЕСКИЙ СИНТЕЗ НЕКОТОРЫХ СХЕМ 331 служат различные конституенты единицы xlxt...xn, ххх%... В настоящем параграфе мы будем рассматривать только полные дешифраторы, т. е. дешифраторы, реализующие все конституенты единицы (для данных переменных а:,, .... хп). Существует три основных способа построения дешиф- раторвых схем при условии использования в качестве входных сигналов переменных хх, хг, ..., хп и их отри- отрицаний a:,, xt, ..., хп. Мы будем называть эти способы соответственно матричным, пирамидальным и прямоуголь- прямоугольным. Матричный дешифратор представляет собою частный случай, описанный в предыдущем параграфе канонической двухступенчатой схемы. Вследствие того, что каждая из выходных функций имеет в этом случае единственную простую импликанту, вторая ступень в схеме отсутствует, а сама схема представляет собою простое объединение не связанных между собою схем, каждая из которых имеет в качестве своей выходной функции какую-либо конституенту единицы. Поскольку конституента единицы от п переменных требует для своего построения п —1 двухвходовых совпа- совпадений, а общее число конституент равно 2", то мы прихо- приходим к следующему выводу. 2.1. Полный матричный дешифратор для п перемен- переменных требует для своего построения (п — 1J" двухвходо- двухвходовых совпадений. Пирамидальный дешифратор строится по методу каскадов. Первый каскад пирамидального де- дешифратора состоит из четырех двухвходовых совпадений, образующих на выходах все четы"ре конституенты единицы: от двух переменных. Выходные сигналы первого каскада служат входными сигналами второго каскада, имеющего, кроме того, входные сигналы xt и хг. Второй каскад со- состоит из 8 двухвходовых совпадений, образующих на выходах все 8 конституент единицы от трех перемен- переменных. На следующем каскаде число совпадений снова
332 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V удваивается, а на его выходах образуются все конститу- енты единицы от четырех переменных. Продолжая подобным образом, мы получим на выхо- выходах (п — 1)-го каскада, построенного из 2я двухвходовых совпадений, все конституенты единицы от п переменных. Поскольку 4+8+...+2"=2Bл—2), то мы приходим к следующему выводу. 2.2. Полный пирамидальный дешифратор требует для своего построения 2B"—2) двухвходовых совпадений. Прямоугольный способ построения дешифраторов осуществляет сведение задачи построения дешифратора для п переменных к задаче построения двух дешифраторов для т и для п — т переменных соответственно (где т ~ 1, 2, ..., п — 1). Для осуществления такого сведения доста- достаточно заметить, что любая конституента единицы от пере- переменных а:,, ..., хп может быть представлена в виде произ- произведения двух конституент единицы от переменных хх% ..., хт и от переменных хт+х, ..., хп соответственно. Чтобы получить таким способом все 2" конституент единицы от п переменных, нужно иметь, очевидно, 2" двухвходовых совпадений и два полных дешифратора для тип — т переменных соответственно. Сформулируем этот результат в виде следующей теоремы. 2.3. Полный дешифратор для п переменных можно построить из 2" двухвходовых совпадений и двух полных дешифраторов для т и для п — т переменных соответ- соответственно. Здесь т — любое натуральное число, меньшее чем п. Теорема 2.3 дает возможность осуществлять последова- последовательное сведение задачи синтеза полного дешифратора к вадаче синтеза полных дешифраторов для все меньшего и меньшего числа переменных. Замечая, что полный де- дешифратор для двух переменных может быть построен на четырех двухвходовых совпадениях, а полный дешиф- дешифратор для одного переменного вообще не требует для своего построения никаких совпадений, мы — в соот- соответствии с описанной методикой — получаем простой способ подсчета числа совпадений, необходимых для син- синтеза полного дешифратора в случае любого числа пере- переменных. Предположим, что нам необходимо синтезировать пол- полный дешифратор для 7 переменных. Применяя теорему 2] КАНОНИЧЕСКИЙ СИНТЕЗ НЕКОТОРЫХ СХЕМ 333 2.3 и обозначив через Сп число двухвходовых совпадений в полном дешифраторе для п переменных,"мы получим: <74=2«+С,+С,=16+4+4=24, Таким образом С,=2'+24+12= 164. Разумеется, число совпадений, из которых строится де- дешифратор, зависит от способа, которым осуществляется сведение задачи синтеза дешифратора к задачам синтеза дешифраторов для меньшего числа переменных. Если в рассмотренном только что примере вместо разбиения семерки на сумму 4+3 разбить ее на сумму 5+2, то число совпадений в синтезируемом дешифраторе окажется иным: ,= 36+<7„ Отсюда будет следовать, что С, = 132+ 36+ 12 = 180. Нетрудно понять, что самым экономным (с точки зре- зрения необходимого числа совпадений) является такой способ построения дешифратора, при котором число пере- переменных в дешифраторе разбивается каждый раз на два равных слагаемых или на два слагаемых, отличающихся друг от друга на единицу. Именно такой способ построе- построения дешифраторов мы будем называть в дальнейшем пря- прямоугольным. Ясно, что, применяя разбиения числа п переменных на слагаемые 1 и п — 1, мы придем к опи- описанному выше пирамидальному способу построения деши- дешифраторов. Для сравнения различных способов построения деши- дешифраторов, описанных в настоящем параграфе, мы приведем таблицу (см. табл. V.3), показывающую зависимость числа двухвходовых совпадений, необходимых для построения
334 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V полного дешифратора, от типа дешифратора и от числа переменных. ^^-^_^ Число пере- ^-^^ менных Тип деши- ^~"^\^.^ фратора ~\^ Пирамидальный .... Прямоугольный .... 1 0 0 0 2 4 4 4 3 12 12 4 48 28 24 5 60 48 в ЗЯО 124 88 Таб ли 7 7R8 252 164 8 179? 508 304 па 9 40% 1020 584 V.'6 10 2044 1120 Рассмотрим теперь вопрос о синтезе комбинационных схем, выходными функциями которых служат так назы- называемые симметричные булевы функции. Булева функция называется симметричной, если ее зна- значения не меняются при любой перестановке ее аргументов. Непссредственно из этого опрэделения вытекает следую- следующее свойство симметричных булевых функций. 2.4. Если совершенная д.н.ф. симметричной функции от п переменных содержит конституенту единицы, в которой ровно т переменных (О^т^п) входят с отрица- отрицаниями, то она содержит и все другие конституенты еди- единицы, обладающие тем же самым свойством. При изучении симметричных булевых функций важную роль играют так называемые базовые симметричные бу- булевы функции, то есть такие булевы функции, у которых в^е конституенты единицы, составляющие совершенную д.н.ф. данной функции, получаются из одной какой-ни- какой-нибудь конституенты с помощью применения к ней всевоз- всевозможных перестановок переменных. Базовая симметрич- симметричная функция однозначно определяется двумя параметрами, а именно числом переменных п и числом А переменных, входящих в какую-нибудь конституенту единицы совер- совершенной д.н.ф. базовой функции в обычном (неинверсном) виде. Число А, очевидно, будет одним и тем же для всех конституент единицы, составляющих совершенную д.н.ф. базовой функции, и мы будем называть его индексом со- ответстиующей функции. §2] КАНОНИЧЕСКИЙ СИНТЕЗ НЕКОТОРЫХ СХЕМ 335 Условимся через S"k обозначать базовую симметричную булеву функцию от п переменных, имеющую индекс к. Для любого данного числа переменных п имеется ровно ге+1 базовых симметричных булевых функций S", ??,..., б1™. Например, для п = 3 имеется четыре базовых симметричных функции: S\ = х yzvxyzvxyz, S\ = xyzyxyz\/xyz, S\=xyz. Из определения симметричных и базо- базовых симметричных булевых функций немед- леннэ вытекает справедливость следующего предложения. 2.5. Любая симметричная булева функция представ- представляется в виде дизъюнкции однозначно определяемых этой функцией базовых симметричных булевых функций. Действительно, если в совершенной д.н.ф. данной симметричной булевой функции / имеются лишь такие конституенты единицы, которые содержат А,, А,, ..., Am_, или кт неотрицаемых букв, то функция / совпадает, очевидно, с дизъюнкцией базовых симметричных функций, имеющих индексы А,, А,, ..., кт *). Теорема 2.5 позволяет ввести сокращенные обо- обозначения симметричных булевых функций. Именно, ус- условимся через iSfti,/,t,...,km (т^1) обозначать симметричную булеву функцию от п переменных, представляющуюся в виде дизъюнкции базовых симметричных булевых функций ??,Л2, ••..??„• Легко видеть, что функция 6*0,1,...,„ тож- тождественно равна единице. Тождественный нуль также при- принадлежит к числу симметричных булевых функций. Его естественно считать дизъюнкцией пустого множества базо- базовых симметричных булевых функций и обозначать через 3"ф @ — символ, обозначающий пустое множество). После этого дополнения введенная символика будет охва- охватывать все симметричные булевы функции. *) Тождественный нуль считается при атом дизъюнкцией иу- стого множества базовых симметричных функций.
336 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V §2] КАНОНИЧЕСКИЙ СИНТЕЗ НЕКОТОРЫХ СХЕМ 337 Заметим еще, что в том случае, когда это не вызывает недоразумений,— в частности, в случае явного задания аргументов функции — верхний индекс га, обозначающий число переменных в символах симметричных булевых функций, обычно опускается. Базовым симметричным многополюсником для га пере- переменных хх, ..., хп мы будем называть многополюсник, имеющий в качестве своих выходных функций все базовые симметричные функции от п переменных, а в качестве своих входных сигналов — сигналы хх, ..., хп, хх, ..., хп. Справедливо следующее предложение. 2.6. Базовый симметричный многополюсник для п пе- переменных может быть построен {для любого п = 1, 2 ...) из (п-\-2)(п — 1) двухвходовых совпадений и -?п{п — 1) двухвходовых разделений. Действительно, предложение 2.6 справедливо при га = 1, поскольку обе базовые симметричные функции от одной переменной (х и х) могут быть реализованы без использования совпадений и разделений. Допустим те- теперь, что предложение 2.6 справедливо для значения п — — т, и будем доказывать его справедливость при п — = т-\-\. Нетрудно убедиться в справедливости следующих соотношений: S™ ' = xm^.,S^, S?+l = xm+lS? ^l (ft = l, ..., щ), Эти соотношения показывают, что можно построить базовый симметричный многополюсник для m-\-i пере- переменных из базового симметричного многополюсника для т переменных, присоединяя к нему каскад, состоящий из 2т-\-2 двухвходовых совпадений и из т двухвходовых разделений. Поскольку (яг-1-2) (яг — lL-2m + 2 = (jn-}-3) m, (т1L то предложение 2.6 справедливо и для п = пг+1. Тем самым доказательство этого предложения завершено. Базовый симметричный многополюсник можно приме- применить при построении схемы двоичного сумматора. В каж- каждом разряде сумматора (за исключением самого млад- младшего) имеется три входных переменных: (перенос из предыдущего разряда и два одноименных раз- разряда слагаемых). Задача состоит в построении функций zk и pk, то есть в построении соответствующего (А-го) разряда суммы и осуществлении переноса в следующий разряд. Для возможности построения схемы на одних совпадениях и разделениях необходимо образовать также функцию pk (отрицание переноса). Приступая к решению этой задачи, обратим внимание на то, что в младшем разряде перенос из предыдущего разряда отсутствует, а в старшем разряде отсутствует необходимость строить функции pk и pk. Заметив это обстоятельство, выпишем следующие, легко проверяемые соотношения: Pl=So,i (*,.У,). ** = 51.. (/>*-i. **. У*) (ft = 2, 3, ...,n). />* = ?,,, (/>*-i. **. У*) (* = 2, 3, ..., я—1), P* = "S..i (/>*-,. **. У») (A=2. 3> • • -, n-1). Учитывая эти соотношения и используя предложение 2.6, мы приходим к заключению, что первый разряд сум- сумматора можно построить из четырех (двухвходовых) сов- совпадений и двух (двухвходовых) разделений. На каждый из следующих га — 2 разрядов потребуется по 10 совпаде- ний и ~ +3 = 6 разделений. Последний (га-й) разряд требует 8 совпадений и 3 разделения. Теперь нетрудно подсчитать, что га-разрядный двоич- двоичный сумматор (для сложения неотрицательных чисел) может быть построен из Юга — 8двухвходовых совпадений и 6га — 7 двухвходовых разделений. 22 в м.
338 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V Заметим, что найденное решение не является самым экономным. Действительно, применяя метод каскадов, можно легко построить схему произвольного (к-го) раз- разряда сумматора, используя лишь 9 двухвходовых совпа- совпадений и 6 двухвходовых разделений. Соответствующее построение может быть получено на базе примера 2 пре- предыдущего параграфа, ибо, как нетрудно заметить, рас- рассмотренные в этом примере функции /, и /2 совпадают (с точностью до обозначений переменных) с рассмотренными выше функциями zk и pk. Для получения функции pk к схеме, построенной в примере 2, достаточно присоеди- присоединить два совпадения и одно разделение для реализации функции az v bz (в которой функции а = х\уиЬ = ху уже были построены в схеме, рассмотренной в примере 2 и изображенной на рис. 12). § 3. Общие методы синтеза вентильных схем Как уже отмечалось в гл. III, вентилем называется двухвходовой элемент, реализующий на выходе (логи- (логическое) произведение своих входных сигналов. При этом один из входных сигналов (называемый управляющим) обязательно должен совпадать с какой-либо из основных переменных х,, ..., х„ или их отрицаний х,, ..., х„, пода- подаваемых на входные полюсы всей (состоящей из вентилей) схемы. Последнее обстоятельство делает естественным рассмотрение вентиля как устройства, осуществляющего или не осуществляющего передачу сигнала от своего вход- входного узла к выходному, в зависимости от того, равно или не равно единице значение его управляющего входного сигнала. В соответствии с этим на схемах принято обычно изображать вентиль как элемент с одним входом и одним выходом, а управляющий сигнал относить к характери- характеристике самого вентиля, не указывая явно соответствующий ему входной канал. Тем самым оказывается возможным говорить о вентилях х,-, х,- (i = 1, 2, ...). Обычно исполь- используется обозначение вентилей с помощью кружочков, внутри которых проставляются обозначения их управ- управляющих входных сигналов. §3] ОБЩИЕ МЕТОДЫ СИНТЕЗА ВЕНТИЛЬНЫХ СХЕМ 339 Напомним, что обычный (односторонний) вен- вентиль не может пропускать сигналов со своего выхода на вход. В отличие от него, так называемый двусторон- двусторонний вентиль может пропускать сигналы как в прямом направлении (от входа к выходу), так и в обратном на- направлении (от выхода к входу). Закон прохождения сиг- сигнала как в прямом, так и в обратном направлении совер- совершенно одинаков: сигнал проходит через вентиль тогда и только тогда, когда значение сигнала, управляющего вентилем, равно единице. Вход и выход двустороннего вентиля оказываются, таким образом, совершенно рав- равноправными, ввиду чего такой вентиль называют иногда также симметричным. В соответствии со сказанным, мы будем при изучении вентильных схем различать два рода сигналов, а именно, управляющие и вентильные сигналы. Управляющие сиг- сигналы совпадают с основными переменными или их отри- отрицаниями; они подаются на входы, управляющие вентилем. Вентильными сигналами называются сигналы, подающиеся на вторые входы вентилей, и сигналы, возникающие на выходах вентилей. В электронных схемах управляющие сигналы являются обычно сигналами потенциального типа, а вентильные сигналы — сигналами импульсного типа. Мы будем счи- считать в дальнейшем, что для вентильных сигналов имеет место так называемое естественное разделе- разделение (см. гл. III). Иными словами, при одновременном приходе в тот или иной узел схемы нескольких вентиль- вентильных сигналов фактически возникающий в узле сигнал является дизъюнкцией всех этих сигналов. В изолиро- изолированном узле (то есть в узле, не подсоединенном ни к чему) возникает всегда нулевой-вентильный сигнал. При построении теории вентильных схем мы будем исключать из рассмотрения управляющие узлы, то есть узлы, на которые подаются управляющие сигналы. Все узлы, о которых будет идти речь в этом параграфе, являются вентильными узлами, то есть такими узлами, на которые передаются только вентильные сиг- сигналы. Обычная вентильная схема имеет один (вентиль- ный) входной полюс, на который подается вен- гильиый сигнал, равный (тождественно) единице. Вентиль- 22*
340 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ Ц'л. V ный сигнал, возникающий в любом (вентильном) узле вентильной схемы, представляет собой некоторую булеву функцию от управляющих сигналов этой схемы. Часть узлов схемы рассматривается в качестве ее выходных (вентильных) полюсов. Возникающие в этих полюсах вентильные сигналы рассматриваются в качестве выходных сигналов схемы, а соответствую- соответствующие этим сигналам булевы функции (от управляющих сигналов) считаются выходными функциями схемы. Все (вентильные) узлы вентильной схемы нумеруются натуральными числами, причем н< м >р единица при- присваивается обычно тому узлу, который отождествляется с (вентильным) входным полюсом схемы. Зафиксировав некоторую (любую) пару (i,f) узлов вентильной схемы, рассмотрим множество всех вентилей, (вентильные) входы которых подсоедш ены к i-му узлу, а выходы — к /-му узлу. Пусть х,, х2, ..., хт представляют собой управляющие сигналы всех вентилей этого мно- множества (xt, как обычно, обозначает либо х,-, либо х,). Булева функция ftl — ar, v x, v ... v хт называется функ- функцией непосредственной связи от 1-го узла к /-му узлу. Функции fu мы будем, по определению, считать равными единице, а дизъюнкцию пустого множества термов при- принимать, как всегда, равной нулю. Если п — число всех (вентильных) узлов схемы, то квадратная матрица n-го порядка ||/,^| называется мат- матрицей непосредственных связей этой схемы. Если на i-й узел вентильной схемы подать вентиль- вентильный сигнал, тождественно равный единице, то вентиль- вентильный сигнал, возникающий на /-м узле схемы, будет не- некоторой булевой функцией от управляющих сигналов схемы. Эта функция называется функцией полной связи от j-ro узла к /-му узлу и обозначается через F^. Квад- Квадратная матрица Ц^уЦ, составленная из функций полной связи между всеми узлами схемы, называется матрицей полных связей этой схемы. Для схем, составленных из двусторонних (симметрич- (симметричных) вентилей, как матрица непосредственных связей, так и матрицы полных связей будут, очевидно, симмет- S3] ОБЩИЕ МЕТОДЫ СИНТЕЗА ВЕНТИЛЬНЫХ СХЕМ 341 ричными. Иными словами, для любых узлов i и / справед- справедливо , что fij—fjt< Рц — Рц- Для булевых матриц, т. е. для квадратных матриц, элементами которых служат булевы функции, естест- естественным образом можно определить операцию умножения и возведения в степень. Если А = Ца^Ц и В = ||Р,у|| являются двумя квадратными булевыми матрицами од- одного и того же порядка п, то их произведением С = ||у,у|| является квадратная булева матрица порядка п, произ- произвольный элемент которой определяется по формуле Y.v = а/.Р./ v а,-A, v... v а/вря/. Теперь нетрудно определить степени произвольной квадратной булевой матрицы А: *л • ¦-- .lx Л j Л ¦ ¦-- Л *л } • • • ¦ ** ' ** **¦ } • • • Справедливо следующее предложение, принадлежащее А. Г. Лунцу'). 3. 1. Для любой вентильной схемы с п вентильными узла ии (п—1)-я степень (а также любая большая степень) матрицы непосредственных связей этой схемы совпадает с матрицей ее полных связей. Доказательство теоремы 3.1 мы начнем с рассмотрения произвольной пары узлов [i, f) заданной вентильной схемы. Сигнал, поданный на /-Й узел, может быть передан на /-Й узел непосредственно в том случае, если имеется вентиль, входной канал которого подсоединен к i-му, а выходной канал — к /-му узлу схемы. Возможна, однако, и такая передача сигнала от /-го к /-му узлу, при которой этот сигнал проходит через некоторые другие узлы. Ясно, что сигнал, фактически передающийся от i-ro к /-му узлу, будет дизъюнкцией всех таких сигналов. Рассматривая вместо самих сигналов соответствующие им булевы функции, мы приходим к выводу, что функция полной связи F(j от /-го узла к /-му узлу представима ') А. Г. Лун ц, Приложение матричной булевой алгебры к анализу и синтезу рэлейио-контактиых схем, ДАН СССР, т. 70, № 3, 1950, стр. 421—423.
342 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V ОБЩИЕ МЕТОДЫ СИНТЕЗА ВЕНТИЛЬНЫХ СХЕМ 343 в виде дизъюнкци й всевозможных произведений функций непосредственных связей ftj, имеющих вид р=//*,/мЛл .••/*„_ ,ftm/w (те S* 0). Нетрудно убедиться в том, что можно ограничиться при этом только такими произведениями, которые содержат не более чем п—1 сомножителей. Действительно, если про- произведение содержит га или более сомножителей, то тга—1, и из п +1 индексов i, к1, ^ ..., &„_,, / хотя бы два индекса будут одинаковыми. Благодаря принятому способу индек- индексации в произведении р найдется в этом случае группа стоящих рядом сомножителей такая, что первый индекс первого из сомножителей группы совпадает со вторым ин- индексом последнего из сомножителей этой же группы (не ис- исключено, что оба эти сомножителя совпадают между собой). Ясно, что, исключив из произведения р указанную группу сомножителей, мы придем к произведению того же самого типа, что и произведение р, но содержащему мень- меньшее число сомножителей. Если это число превышает га—1, то процесс исключения сомножителей можно повторять до тех пор, пока мы не придем к произведению q, длина ко- которого (то есть число его сомножителей) окажется не пре- превосходящей га—1. Поскольку произведение q очевидным образом поглощает произведениер (ибоpvq=q), то в опи- описанной выше дизъюнкции и в самом деле можно ограни- ограничиться лишь теми произведениями, длина которых мень- меньше или равна п—1. Поскольку функция ftl тождественно равна единице, то любое произведение p=fik, •¦¦fh,,j> имеющее меньше, чем л—1 сомножителей, можно заменить равным ему произведением fu f^p, имеющим ровно п—1 сомножи- сомножителей. Нетрудно доказать посредством индукции, что эле- элементами atj матрицы Ат, представляющей собою яг-ую степень матрицы А = \\ft/\\ непосредственных связей любой вентильной схемы, будут всевозможные произведения /и, /м, -/у. состоящие из те сомножителей. В силу всего сказанного мы делаем вывод, что матрица Ап~1 сов- совпадает с матрицей полных связей рассматриваемой вен- вентильной схемы. Поскольку те же самые рассуждения мож- можно повторить для любого показателя пг^гп—1, теорема 3.1 полностью доказана. Доказанная теорема позволяет относительно простым способом — с помощью возведения в степень булевых матриц — производить анализ вентильных схем, то есть определять выходные функции этих схем. Действительно, матрица непосредственных связей вентильной схемы явля- является непосредственным отражением структуры этой схемы и может быть найдена по заданной схеме тривиальным об- образом. Возводя матрицу непосредственных связей в сте- степень га—1 (га есть порядок матрицы), мы в числе элементов строки матрицы, полученной в результате возведения в степень, получим все выходные функции схемы. Рис. 13. Рассмотрим в качестве примера вентильную схему, со- состоящую из односторонних вентилей, которая изображена на рис. 13. Из этого рисунка находим матрицу непосредственных связей схемы: 1 0 0 0 хыу 1 0 0 X Z 1 0 0 г У 1 Для решения задачи анализа в рассматриваемом слу- случае достаточно найти третью степень матрицы 4. Осу- Осуществляя последовательное умножение матрицы А на
344 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V самое себя, находим: А* = где 1 0 0 0 хму 1 0 0 а % 1 0 Ь с У 1 a = xv (xv y)z = xv z, b = (x v у) z v xy = z v ху, 1 х у у d e О 1 z / О 0 1 у 0 0 0 1 где e=(xvy)z v ay vb = Если входным полюсом схемы является узел 1, а выходными полюсами — узлы 3 и 4, то выходными функциями схемы являются два последних элемента первой строки матрицы полных связей А': Нетрудно показать, что эти выходные функции можно реализовать с помощью гораздо более простой вентильной схемы, чем схема, изображенная на рис. 13 (сложность вентильной схемы принято оценивать числом входящих в нее вентилей). Теорема 3. 1 позволяет также осуществить некоторый специальный подход к проблеме синтеза вентильных схем. Действительно, задача синтеза вентильной схемы, имею- имеющей заданные выходные функции Ft, Ft, ..., Fk от пере- переменных х,, ..., хт, сводится с помощью теоремы 3.1 к сле- следующей задаче. Требуется найти булеву матрицу А= \\fif\\ порядка п^к 4- 1. все диагональные элементы которой (f(t) равны единице, все остальные ее элементы представляют собою произвольные элементарные дизъюнкции (дизъюнкции пе- S3] ОБЩИЕ МЕТОДЫ СИНТЕЗА ВЕНТИЛЬНЫХ СХЕМ 345 ременных х,, ..., хп и их отрицаний), в том числе тождест- тождественный нуль, отличающуюся тем, что при возведении этой матрицы в (п—1)-ю степень некоторые элементы первой строки матрицы А"'1 совпадают с заданными функциями F,,Ft, ...,Fk. Непосредственное решение этой задачи представляет собою значительные трудности. Более удобно поэтому воспользоваться методом последовательного восстановления узлов, предложенным Ф. Хоном и Шислером1). Для того чтобы лучше понять этот метод, рассмотрим пред- предварительно задачу последовательного исключения узлов в вентильных схемах. Пусть нам дана произвольная вентильная схема, за- заданная с помощью своей матрицы непосредственных связей А = \\fij\, и пусть п есть порядок этой матрицы (число уз- узлов схемы). Поставим задачу исключить из схемы какой- либо узел, например т-п, и найти матрицу В= ||^у|| (/', /=1. 2, ..., т—1, т -f-lf ..., л) непосредствен- непосредственных связей схемы с исключенным т-ш узлом. Произвольный элемент gtj этой матрицы представляет собой булеву функцию, выражающую сигнал в /-музле при условии, что в i-n узел подается сигнал, тождественно равный единице, а через все остальные узлы, кроме /-го, /-го и исключенного m-го узла, передача информации не производится (этого мО(Кно достичь, производя отключение входных и выходных каналов вентилей от всех таких узлов). Непосредственно из этого определения вытекает соот- соотношение 8ij=fijVftmfmp A) решающее задачу исключения из схемы лг-го узла. По аналогии с задачей исключения одного узла вен- вентильной схемы можно поставить задачу исключения про- произвольного множества узлов М={т1, тг, ..., mk). Функци- Функцией непосредственной связи i-ro узла с /-м узлом вентильной схемы с исключенным множеством М узлов мы будем ') F. Е. Н о h n, L. R. S с h i s s 1 е г, Boolean matrices and the design of combinational relay switching circuits. Bell. System Tech., v. 34, 1955, p. 177-202.
346 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V называть булеву функцию, выражающую сигнал в /-м узле при условии, что в /-й узел подается сигнал, тождественно равный единице, а от всех узлов, кроме /-го, /-го и узлов множества М, отсоединены входные и выходные каналы всех подсоединенных к ним вентилей. Матрица ЦЛ^Ц порядка п— к, где индексы / и / при- принимают любые значения от единицы до га, не входящие в множество М, называется матрицей непосредственных связей рассматриваемой схемы с исключенным множеством узлов М. Нетрудно убедиться в том, что формула A) справедли- справедлива и для того случая, когда ||//у-|| представляет собой мат- матрицу непосредственных связей вентильной схемы с иск- исключенным множеством М узлов, a ||g,y|| является матри- матрицей непосредственных связей той же схемы, из которой исключен, кроме узлов множества М, еще и яг-й узел. Сделанное замечание позволяет использовать формулу A) для решения задачи анализа вентильных схем. Действи- Действительно, после (последовательного) исключения всех узлов любой данной вентильной схемы, кроме какой-либо пары узлов / и /, возникающая матрица (второго порядка) непосредственных связей полученной схемы с исключен- исключенными узлами будет, очевидно, иметь в качестве своих не- недиагональных элементов функции полной связи от /-го узла к /-му и от /-го узла к /-му. В качестве примера рассмотрим применение метода исключения узлов к задаче нахождения функции полной связиFtiот 1-го узла к 4-му в вентильной схеме, изображен- изображенной на рис. 13. Матрица непосредственных связей этой схемы имеет вид А = После исключения второго узла мы приходим к мат- матрице: 111 а Ъ\ Ах= 0 1 с\ О 0 1 1 0 0 0 хму 1 0 0 X Z 1 0 0 z У 1 § 3] ОБЩИЕ МЕТОДЫ СИНТЕЗА ВЕНТИЛЬНЫХ СХЕМ 347 где b = z(z_yy), i После исключения третьего (в матрице At — второго) столбца мы приходим к матрице: 11 6 v ас | О 1 Таким образом, искомая функция Flt равна b v ac^=z (x v i При исключении узлов на каждом этапе такого исклю- исключения осуществляется переход от некоторой булевой мат- матрицы А к булевой матрице В, имеющей порядок на едини- единицу ниже. Нетрудно убедиться в том, что этот переход осу- осуществляется на основе следующего правила. 3.2. Для получения матрицы В в матрице А вычерки- вычеркивается строка и столбец, соответствующие исключаемому узлу, а к любому из остающихся элементов ftJ- добавляется новый дизъюнктивный член, равный произведению элемента исключаемой строки, стоящего в одном столбце с элемен- элементом ftJ; и элемента исключаемого столбца, стоящего в од- одной строке с элементом f,j. Операция исключения (строки и столбца), описываемая правилом 3.2, применима к любой булевой матрице. Естественно определить обратную ей операцию, которую мы будем называть операцией расширения. Операция рас- расширения заключается в окаймлении данной булевой мат- матрицы А новой строкой и новым столбцом так, чтобы после их исключения (по правилу 3.2) получалась снова исход- исходная матрица А. Операция расширения неоднозначна. Так, например, в результате расширения матрицы 11 xyvzuj О 1
348 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V могут быть получены существенно различные матрицы: II ху zfl 111 zu О О 1 и о о 1 У Применяя к произвольной булевой матрице А последо- последовательно несколько раз операцию расширения, мы всегда можем аривести эту матрицу к а геменпарно дизъюнктивной форме, то есть, иными словами, превратить ее в такую матрицу, элементами которой являются элементарные дизъюнкции (включая константу н у л ь) и константа единица. В самом деле, запишем каждый элемент ftJ матрицы в конъюнктивной нормальной форме. Те из элементов, для которых конъюнктивная нормальная форма состоит более чем из одного сомножителя, разобьем на два сомножителя: Jij—iihip каждый из которых представляется конъюнк- конъюнктивной нормальной формой, имеющей меньшее число со- сомножителей, чем элемент (булева функция) /,у. Теперь нетрудно убедиться в том, что можно произвести расшире- расширение матрицы А, заменяя элемент jtj нулем и вводя новую строку, имеющую на i-м месте элемент gtj и новый столбец, имеющий на i-м месте элемент htj. Все остальные элементы добавляемой строки и добавляемого столбца, за исключе- исключением элемента, стоящего на пересечении добавляемой стро- строки и добавляемого столбца, принимаются равными нулю; что же касается этого последнею элемента, то его мы примем равным единице. Применяя описанное построение для всех элементов матрицы А, мы расширим эту матрицу до матрицы В, у которой максимальное число сомножителей в к. н. ф. для всех элементов матрицы будет меньше соответствую- соответствующего числа для матрицы А. Если это число (для матрицы В) не равно единице, процесс повторяется; повторение про- происходит до тех пор, пока все элементы матрицы не превра- превратятся либо в элементарные дизъюнкции (включая нуль), либо в константу единица. Введем следующее определение. 3. 3. Квадратная булева матрица называется правиль- правильной, если все элементы ее главной диагонали равны единице. 3J ОБЩИЕ МЕТОДЫ СИНТЕЗА ВЕНТИЛЬНЫХ СХЕМ 349 Правильная квадратная булева матрица называется вен- вентильной, если все ее элементы, не стоящие на главной диаго- диагонали, являются элементарными дизъюнкциями (включая константу нуль). Ясно, что всякая вентильная матрица может рассмат- рассматриваться как матрица непосредственных связей некоторой вентильной схемы, и наоборот. Проведенное выше построение обеспечивает при каж- каждом расширении получение из правильной матрицы опять- таки правильной матрицы; но тогда ясно, что на заключи- заключительном этапе этого построения всякий раз будет полу- получаться вентильная матрица, как только исходная матрица оказывается правильной. Тем самым нами доказано следующее предложение. 3. 4. В результате конечного числа расширений любая правильная квадратная булева матрица может быть пре- превращена в вентильную матрицу. Теорема 3.4 дает возможность построить упомянутый выше алгоритм синтеза вентильных схем методом последо- последовательного восстановления узлов. Первым шагом в этом ал- алгоритме является нахождение матрицы непосредственных связей искомой схемы, из которой исключены все узлы, кроме входного и выходного полюсов. Такая матрица (кото- (которую мы обозначим буквой А) может быть построена мно- многими различными способами. Наиболее простой способ состоит в следующем. Если /, fk представляют собой выходные функции, которые должна реализовать искомая схема, то в качестве матрицы А можно выбрать матрицу: 1 U U ••• /* 0 1 0 ... 0 0 0 1 ... 0 0 0 0 Легко видеть, что эта матрица обладает тем свойством, что при применении к ней операции исключения узлов элементы ее первой строки не меняются, так что в резуль- результате исключения всех узлов, кроме входного полюса и i-ro
350 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V выходного полюса, она превращается в матрицу Это означает, очевидно, что схема, соответствующая мат- матрице А, имеет в качестве выходных функций заданные функции /,, ...,/*. Построенная нами матрица А является правильной квадратной булевой матрицей. Применяя к ней несколько раз операцию расширения, мы на основании теоремы 3.4 через конечное число шагов придем к вентильной матрице В. Принимая матрицу В в качестве матрицы непосредствен- непосредственных связей некоторой вентильной схемы С, мы приходим к выводу, что эта схема имеет своими выходными функция- функциями заданные функции/,, ..., fk. Действительно, в силу опи- описанного построения, оказывается возможным с помощью последовательного исключения всех узлов, кроме входного полюса и любого выходного полюса i, привести эту матри- 1 /II цу к виду ^ у . На основании описанного выше алго- алгоритма анализа это означает, что функция fl является i-ii выходной функцией схемы С. Процесс нахождения матрицы В с помощью последова- последовательных расширений матрицы А представляет собою второй (заключительный) шаг алгоритма Хона для син- синтеза вентильных схем. Легко видеть теперь, что на первом шаге алгоритма в качестве матрицы А можно выбрать любую устойчи- устойчивую булеву матрицу (к-\- 1)-го порядка, т. е. такую пра- правильную квадратную булеву матрицу, первая строка кото- которой состоит из единицы и заданных выходных булевых функций /,,..., Д. и не меняется при возведении матрицы А в квадрат. Действительно, если какая-либо строка матрицы не изменилась при возведении матрицы в квадрат, то она сохранится неизменной в более высоких степенях этой матрицы. Но тогда, в силу теоремы 3.1, функции /,. /2.--м/« будут выходными функциями схемы, задаваемой матрицей А. Продемонстрируем работу описанного алгоритма на примере. Предположим, что нам необходимо построить вентильную схему (из односторонних вентилей), имеющую в качестве своих выходных функций две булевы § 3] ОБЩИЕ МЕТОДЫ СИНТЕЗА ВЕНТИЛЬНЫХ СХЕМ функции: f1=xyvxz, 351 В соответствии с описанным выше алгоритмом, на первом шаге выпишем какую-нибудь устойчивую булеву матрицу, первая строка которой совпадает со стро- строкой 1, /,, /2, например матрицу 1 0 0 /, 1 0 /J 0 = 1 1 0 0 ху у xz 1 0 xz у ху 0 1 Применяя к матрице А процесс расширения (восста- (восстановления узлов), мы приведем ее сначала к виду 1 xz ху х 0 10 0 0 0 10 0 у z 1 а затем к виду 1 0 0 х х 0 10 0 0 0 0 10 0 z 1 0 у о 1 0 у 0 г Матрица А2 является вентильной. Ей соответствует вентильная схема, изображенная .на рис. 14. Символом 0 на этой схеме обозначен входной полюс, а символами 1 и 2—выходные полюсы, реализующие соответственно функции /, и /2. Отметим, что в процессе расширения матриц А и А1 мы осуществляли каждый раз одновременное расщепление двух произведений, что было возможно благодаря наличию у этих произведений общего Множителя (в первом случае х, а во втором х). Ясно, что такое одновременное расщепление приводит к более экономному расходованию вентилей.
352 МЕТОДЫ ПОСТРОВНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. Т При анализе и синтезе схем из симметричных вентилей оказываются применимыми те же самые приемы, что и в случае односторонних вентилей. Необходимо лишь всякий раз дополнительно заботиться о том, чтобы все получаю- получающиеся матрицы были симметричными. В случае алгоритма анализа (исключения узлов) из симметричной матрицы мо- могут возникать только симметричные матрицы. Что же Рис. 14. касается алгоритма синтеза, то сохранение свойства сим- симметричности матриц в этом случае должно контролировать- контролироваться на каждом шаге алгоритма. Заметим, что самой простой устойчивой симметричной булевой матрицей, имеющей 1 ваданную первую строку 1, 1 /, 1 О /, fk, является матрица О 1 /* О о о 1 /* Применим описанный алгоритм синтеза к синтезу схемы из двухсторонних вентилей, реализующей выход- выходные функции /,=??/vz и ft=xzv у. В качестве исходной устойчивой матрицы выберем матрицу А = 1 xyvz XZM у xyvz 1 0 xzvy 0 1 14] НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ 353 Применяя к ней процесс расширения (с учетом необ- необходимости получения симметричной матрицы) мы при- придем к матрице 1 У X z 1 0 У У 0 1 z X У z 1 Матрица В — вентильная. Ей соответствует вентильная схема, изображенная на рис. 15. Символом 0 на этом рисун- Рис. 15. ке обозначен входной полюс, а символами 1 и 2 — выходные полюсы, реализующие соот- соответственно функции /, и /,. Заметим также, что на рис. 15 двусторонние вентили обозначены так, как принято обыч- обычно обозначать релейные контакты. Как уже отмечалось выше, электромагнитные реле представляют собой наиболее употребительный вид двусторонних вентилей. Поэтому такое обозначение является вполне оправданным. § 4. Некоторые дополнительные приемы синтеза и минимизации вентильных схем При синтезе вентильных схем оказывается примени- применимым, очевидно, метод каскадов, описанный в § 1 настоящей главы. Возможность его применения обуслов- обусловливается тем обстоятельством, что в каждом каскаде схемы, построенной с помощью этого метода, применяются лишь такие совпадения, которые осуществляют умножение выходных сигналов предыдущего каскада на сигналы, со- соответствующие основным переменным или их отрицани- отрицаниям. Такие совпадения могут быть очевидным образом реа- реализованы с помощью вентилей. Что же касается разделе- разделений, то в вентильных схемах необходимость в них отпадает ввиду наличия естественного разделения сигналов. Таким образом, возникает возможность интерпретации всех результатов, полученных в § 1 настоящей главы, на 23 В. И. Глушков
354 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V языке вентильных схем. Для осуществления такой интер- интерпретации достаточно заменить каждое двухвходовое совпа- совпадение соответствующим (односторонним) вентилем, а каж- каждое разделение — простым соединением входных каналов этого разделения в одном узле схемы. Различие получается лишь в первом каскаде: в канонической задаче синтеза (с помощью двухвходовых совпадений и разделений) в первом каскаде схемы реализуются функции двух пере- переменных, например, функции х,х2 и х,ух2. В случае вентиль- вентильной интерпретации этот каскад более естественно разбить на два каскада: в первом образуются в виде вентильных сигналов необходимые функции одной переменной (в дан- данном случае функции х, их,), во втором, с помощью венти- вентилей хг и хг, из этих функций образуются необходимые фун- функции от двух переменных (в данном случае хххг и х, v хг). В случае двусторонних вентилей возникает дополни- дополнительная трудность, связанная с возможностью обратной передачи сигналов из последующих каскадов в предыду- предыдущие. Необходимо поэтому всякий раз проверять, не приве- приведет ли такая передача к искажению окончательных выход- выходных сигналов схемы. При построении универсального вентильного многопо- многополюсника для га переменных (то есть вентильной схе- схемы, имеющей в качестве выходных функций все булевы функции от га переменных) переход от i-го каскада к (i -f- 1)-му выполняется точно так же, как и в § 1: в (i-f-l)-M каскаде требуется не более 2 •22*—22'вентилей. Ясно также, что первый каскад требует всего двух вен- вентилей: х, и х,. Так как 2=2-21'—6, то, рассуждая так же, как и в § 1, мы придем к следующему предложению. 4. 1. Универсальный вентильный многополюсник для п переменных может быть построен с помощью не более чем 2-22'— 6 вентилей. Заметим, что предложение 4. 1 остается справедливым не только для односторонних, но также и для двусторон- двусторонних вентилей. Точно так же, как и в § 1, устанавливается асимптоти- асимптотическая оценка Шеннона. 4. 2. Любая булева функция от п переменных может быть реализована в качестве выходной функции вентильной §4] некоторые дополнительный приемы 355 2»+t схемы, состоящей из — A + «J вентилей; е„ обозна- обозначает здесь положительную величину, стремящуюся к нулю при п -*• оо. Схема, о которой идет речь в теореме 4.2, получается с помощью объединения универсального вентильного многополюсника для т{т<^п) переменных с вентильным (обратным) деревом для п—т переменных, строящимся по аналогии с соответствующей схемой для случая канониче- канонической задачи синтеза. Теорема 4. 2 также справедлива не только для односторонних, но и для двусторонних вен- вентилей. Нетрудно убедиться в том, что с помощью вентилей нельзя реализовать прямоугольный способ построения де- шифраторных схем, поскольку при этом необходимо было бы осуществлять совпадение двух сигналов, получающих- получающихся на выходах вентилей. Что же касается других способов построения дешифраторов (матричного и пирамидального), то оба они могут применяться и в случае вентильных схем. При матричном способе каждая конституента единицы строится отдельно и в случае дешифраторов для п перемен- переменных требует, очевидно, п вентилей. Поскольку общее число конституент равно 2", то для построения вентильного де- дешифратора от п переменных матричным способом требует- требуется п2" вентилей. При пирамидальном способе в первом каскаде схемы строятся конституенты единицы х, и х, для одной перемен- переменной, во втором каскаде — для двух переменных, и т. д. Число вентилей, используемых в каждом каскаде, равня- равняется при этом числу выходных каналов этого каскада. Та- Таким образом, общее число вентилей, которые требуются для построения дешифратора от га'переменных пирамидаль- пирамидальным способом, равно 2'+ 28+ 2' + ... + 2"=2n+1—2. В t-м каскаде каждый выходной сигнал предыдущего каскада в этой схеме направляется на два вентиля xt и xt, в резуль- результате чего из каждой конституенты единицы от i—1 перемен- переменных в 1-м каскаде образуются две конституенты единицы от i переменных. Заметим, наконец, что с помощью вентилей нетруд- нетрудно построить базовый симметричный многополюсник. 23*
356 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V Произвольный (t-й) каскад этого многополюсника строится с помощью 2i вентилей и имеет i+1 выходных функций, которые мы обозначим через /о, f\ f\. Связи между кас- каскадами задаются следующими уравнениями: fl.l=xifiZ\yxtfiZ\. n Поскольку 22i=n(n+l), то мы приходим к следую- щему предложению. 4.3. Для любого натурального числа п можно по- построить базовый симметричный многополюсник от п переменных в виде вентильной 6 схемы, насчитывающей п(п-\-1) х вентилей. 3 На рис. 16 изображен вен- гильный базовый симметричный шогополюсникдля случая трех О х, хг , х (временных. Из рассмотрения ^ ^^ 3 этои схемы нетрудно усмотреть, х, 2 jx>^^~х3 чт0 сигнал, попавший в какой- ^^ либо выходной канал /-го каска- Хг , х ¦^ да многополюсника, не может S^' * попасть отсюда в другой выход- ной канал того же каскада че- рез предыдущие каскады. Дей- Действительно, для этого сигнал Рис. 16. должен обязательно пройти по- последовательно через пару вен- вентилей хр х(, что невозможно, так как когда один из этих вентилей открыт (пропускает сигнал), другой обязатель- обязательно закрыт и, следовательно, пропустить сигнал, про- прошедший через первый вентиль, не может. Приведенные соображения показывают, что базовые симметричные многополюсники можно строить абсолютно х S4J НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ 357 одинаковым сгособом как на односторонних, так и на дву- двусторонних вентилях. То же самое относится, как нетрудно проверить, также и к дешифраторным схемам. Рассмотрим теперь некоторые способы, позволяющие упрощать уже построенные вентильные схемы. В ряде слу- случаев достаточно хорошие результаты дает следующий част-: ный прием упрощения матриц непосредственных связей вентильных схем. Введем в рассмотрение три узла схемы i, /, к и функции непосредственных связей fu, fjk, fik меж- между этими узлами. При исключении /-го узла функция flh заменится функцией /«v/,-///*- Отсюда непосредственно вытекает справедливость следующего предложения. 4.4. Если функция непосредственной связи fik i-го узла вентильной схемы с k-м узлом представляется в виде дизъюнкции двух членов /цс—Рцс^ЯиС' один из которых (например, qik) является импликантой произведения fijfjk функций непосредственных связей i-го с j-м и j-го с к-м узлами заданной схемы (/ — произвольный узел), то замена функции fik функцией plk в матрице непосредственных связей этой схемы не изменит функции полной связи i-го узла с к-м. Для быстрого нахождения элементов fy, fjk, fik мат- матрицы непосредственных связей можно воспользоваться тем очевидным обстоятельством, что эти три элемента можно рассматривать как три вершины прямоугольника, четвертая вершина которого (противоположная вершине с элементом fik) расположена на главной диагонали мат- матрицы. Перебирая все такие прямоугольники, мы с помощью теоремы 4.4 можем в ряде случаев осуществить значитель- значительное упрощение заданной вентильной схемы. Рассмотрим в качестве примера схему из односторонних вентилей, заданную матрицей непосредственных связей А = 1 х у хму 0 10 х 0 0 1 у 0 0 0 1 В функции хуу первый член является импликантой произведения хх=х, а второй — импликантой произве- произведения уу=у- Поскольку тройки (х, х, хуу), (у, у, хуу)
358 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V элементов матрицы А образуют, каждая, три вершины прямоугольника с четвертой вершиной на главной диаго- диагонали, мы можем, на основании теоремы 4. 4, заменить функцию хму нулем, не изменив функции полной связи первого узла схемы с четвертым. Заметим, однако, что описанный прием упрощения матриц непосредственных связей применим далеко не всегда. Он не позволяет, например, осуществить упрощение схемы, изображенной на рис. 13, хотя эта схема допускает, как указывалось в предыдущем параграфе, большие упро- щепия. Мы опишем поэтому общий прием упрощения матриц непосредственных связей вентильных схем, позволяющий находить в некотором смысле наипростейшие схемы. Этот прием (описанный ранее Хэмфри1)) основан на после- последовательной минимизации каждого элемента матрицы не- непосредственных связей вентильной схемы (обычной или с исключенными узлами). Обозначим через 6 произвольный элемент матрицы непо- непосредственных связей заданной вентильной схемы и поста^ вим задачу минимизировать этот элемент, сохраняя функ- функцию полной связи F между какой-нибудь фиксированной парой узлов. Рассматривая в процессе преобразований элемент б как отдельную букву, мы всегда можем предста- представить функцию F в виде F=ab\i§, где а и {5 — выражения бу- булевой алгебры, не содержащие буквы 6. Рассматривая теперь снова букву б в ее первоначаль- первоначальном значении (как функцию основных переменных хх, хг, ...), заменим ее новой функцией Я,. Условие сохранения значения функции F дает нам: a6vp=a^vP или (a6v{5) + -t-(aA,vP)=O, что эквивалентно соотношению (a6vP)(aXvP)v v(a6vP)(a^vp)=0. Из последнего соотношения мы получа- получаем, что аА,6р\аХбр=О, из чего, очевидно, следует справед- справедливость двух равенств: а1бр=0 и аЯб{5 = 0. A) Считая, что OsgO, 0^1,1^1, определим отношение нера- неравенства для пар булевых функций, полагая /,<[/s в том и ') W. S. Humphrey, Switching circuits with computer applications. Me. Grow. Hill Book Co. inc., 1958. НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ 359 только в том случае, когда это неравенство справедливо для значений функций /, и /, на любом наборе значений их аргументов. Ясно, что отношение /,^/, эквивалентно тому, что функция /, является импликантой функции /г. Заметим теперь, что из равенства нулю произведения fjt вытекает справедливость неравенства /,^Д. Действи- Действительно, на всех наборах, на которых значения функции /, равны 1, значения функции /2 должны быть равны 0, и, следовательно, функция /, обращается на всех этих набо- наборах в единицу. Применяя это замечание к полученным выше соотноше- соотношениям аЯ6р=О и аЯ,бр=О (см. A)), мы получаем из первого соотношения неравенство абр<Я,=Я,, а из второго — не- неравенство ^5^a6p=av6vP- Объединяя оба эти неравенст- неравенства, мы находим пределы, в которых может изменяться рассматриваемый элемент X матрицы непосредственных связей: ' В случае, когда необходимо сохранить не одну функцию полной связи, а несколько, требуется, чтобы функция X удовлетворяла нескольким неравенствам вида B),—по од- одному неравенству на каждую функцию полной связи. Не- Нетрудно проверить, что получаемая таким образом систе- система неравенств эквивалентна одному неравенству вида Дизъюнкция в левой части и произведение в правой части соотношения C) распространяются на все неравен- неравенства системы, заменяемой этим соотношением. Соотношение C) позволяет решать задачу минимизации матриц непосредственных связей вентильных схем (обычных или с исключенными узлами) при условии сохранения функ- функций полной связи между некоторыми заданными узлами. Действительно, используя это соотношение, можно, очевидно, в конечное число шагов привести матрицу не- непосредственных связей заданной вентильной схемы к тако- такому виду, что замена любого элемента 6 этой матрицы функ- функцией X, требующей для своей реализации меньшего числа
H60 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Г;-. V вентилей, чем функция б, приведет к изменению заданного множества М функций полных связей схемы. Матрицу непосредственных связей вентильной схемы, удовлетворяющую последнему условию, естественно на- назвать тупиковой (по отношению к множеству М). Ясно, что матрица непосредственных связей, задающая наиболее экономную вентильную схему с заданным множеством М функций полной связи, относится к числу тупиковых. Нахождение такой минимальной матрицы связано, одна- однако, с громоздким перебором, в связи с чем на практике при минимизации вентильных схем обычно ограничивают- ограничиваются нахождением какой-либо тупиковой матрицы. Продемонстрируем процесс минимизации вентильной схемы на примере схемы, изображенной на рис. 13 (см. предыдущий параграф). Мы будем минимизировать эту схе- схему при условии сохранения функций полной связи Fl3 и FXi (между первым и третьим и между первым и четвертым узлами). Минимизируемая схема задается матрицей непосредст- непосредственных связей: 1 xv у I- О О 1 z О О О О 1 у О 1 Попробуем прежде всего заменить элемент 6 = xvy этой матрицы более простым элементом Я. Исключая второй узел, приведем матрицу А к виду: Ах = 1 0 0 z6 vx 1 0 16 У 1 Исключение дополнительно третьего узла приводит к матрице А.=\ 0 а исключение четвертого узла — к матрице 1 zfl v xj 0 1 Г. § 4] НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ 361 Отсюда следует, что Вводя обозначения a, = z, $х = х, a2 = ?/vz, $г = и применяя соотношение C), мы получим: «.P.* va,M<Я<(о, v р, v б)(о, v р, v б) или, после подстановки значений а,, аа, р,, Р2 и б и упрощений: х v yz sg Я < 1. Наиболее простое решение будет, очевидно, если при- придать значение Я = 1. Поело этого второй узел в схеме делается излишним. Исключая этот узел, мы получаем схему, задаваемую матрицей 1 z\ix zll В= 0 1 \\ 0 0 у\\, (чтобы получить ее, достаточно в матрицу Ах подставить значение 6 = 1). Обозначая теперь через б элемент у матрицы В, мы получим, что В этом случае мы имеем, очевидно: Применение формулы C) дает: Ovzy <Я<1-(у vz). Так как в качестве Я нельзя выбрать ни нуль, ни единицу, то дальнейшее упрощение элемента у матрицы В оказывается невозможным. Аналогично, обозначая бук- буквой Я значение, которым можно заменить элемент z v x, мы придем к выводу, что zvi<i<zv^, то есть что Я = г vx- Повторяя то же самое для элемента г, мы придем к соотношению (х v у) z < Я «? z v у (z v х) = у v z.
362 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V Это соотношение показывает что дальнейшее упроще- упрощение (замена константой) элемента z также невозможно. Следовательно, матрица В является тупиковой. Вентильная схема, соответствующая матрице В, сос- состоит из четырех вентилей. Нетрудно показать, что задан- заданные функции FitVL Flt невозможно реализовать менее чем четырьмя вентилями. Таким образом, найденная вентиль- вентильная схема не только тупиковая, но и минимальная. В заключение рассмотрим еще один прием синтеза вентильных схем, принадлежащий Ф. Свобод е1); этот прием оказывается удобным для реализации с помощно цифровых автоматов. По методу Ф. Свободы каж- каждому узлу схемы сопоставляется функция F(xt хп) входных переменных схемы, значениями которой могут служить четыре величины, обозначаемые символами 0,1, /, -. Функция F\ узла / принимает значение / на всех тех и только тех наборах значений переменных, при которых происходит передача сигнала от входного полюса схемы к данному узлу. Функция Ft принимает значение 0 на всех тех наборах значений входных переменных хх,..., хп, при которых осуществляется передача сигнала от данного (i-то) узла хотя бы к одному из выходных полюсов схемы, на котором в этот момент должен возникать нулевой вы- выходной сигнал. Функция F( принимает значение 1 на всех тех наборах, на которых ее значение отлично от / иотО и при которых осуществляется передача сигнала от дан- данного (/-го) узла к одному или нескольким из выходных полюсов схемы, в которых при этих условиях должен воз- возникать единичный выходной сигнал. Функция Ft принима- принимает (безразличное) значение -^ во всех остальных случаях. Процесс синтеза осуществляется с помощью двух опе- операций, называемых со, и со2. Операция со, состоит во введе- введении в схему нового узла, соединяемого с помощью какого- либо вентиля с одним из старых узлов. В случае односто- односторонних вентилей элементарная ветвь должна включаться таким образом, чтобы обеспечивать передачу сигналов от нового узла к старому, а не наоборот. *) Ф. С в о б о д а, Синтез релейных схем при помути машины. Авт. и телемех., т. 18, № 3, 1957, стр. 240—255, НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ 363 Таблица V.4 Операция со2 состоит в соединении каким-либо венти- вентилем двух уже имеющихся в схеме узлов. В начальный момент синтеза на схеме изображается только входной полюс и все выходные полюсы синтезируе- синтезируемой схемы, не соединенные никакими вентилями. Функция входного узла (полюса) при этом тождественно равна /, а функции выходных узлов (полюсов) совпадают с задан- заданными выходными функциями схемы. На каждом этапе синтеза выполняется одна из операций со, или со,, в ре- результате чего происходит изменение функций некоторых узлов (за исключением функции входного узла, которая остается все время постоянной). Процесс синтеза считается оконченным, когда для всех функций выходных узлов схемы все значения 1 превратятся в значения /. Для определения порядка выполнения операций и вида присоединяемых вентилей определяются два типа вспомо- вспомогательных функций входных перемен- переменных х,, ..., хп. Функция первого типа, которую мы будем обозначать через <р,, сопоставляется каждому узлу / схемы, Ее значения определяются исключитель- исключительно значениями функции соответствую- соответствующего узла и могут быть найдены с помо- помощью табл.V.4, Функция второго типа ip,, сопостав- сопоставляется каждой упорядоченной паре (/,/) узлов схемы. Ее значения определяют- определяются по значениям функций узлов / и / в соответствии с табл. V. 5. При этом следует пользоваться двумя различными функциями %,- и г|'{> соответственно тому, употребляем ли мы для построения схемы одно- односторонние или двусторонние вентили. Соединять вентилем xk (xk или xk) i-й узел схемы с /-м узлом можно только в тех случаях, когда на всех набо- наборах, на которых функция 1р,у равна нулю, значение хк также равно нулю. Вентили, удовлетворяющие этому условию, называются допустимыми. Назовем индексом вентиля xk по отношению к паре уз- узлов (/, /) число всех наборов, на которых функции ty^ и xk одновременно обращаются в единицу. Индексом вентиля xt Fi 0 1 I fi 0 1
364 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ [Гл. V Таблица V.5 FiFj 00 01 0/ 0~ 10 11 1/ f %¦ ^, 0 1 — 0 0 0 1 1 /0 /1 II I~ ~0 ~1 ~/ 0 1 ^^ ^, ^^, ^, «V 0 1 ^^, -^ по отношению к одному узлу / называется число всех на- наборов, на которых функции ср, и xft одновременно обраща- обращаются либо в нуль, либо в единицу. Порядок выполнения операций в процессе синтеза опре- определяется следующим правилом. Сначала выполняется операция (о2 с помощью допустимых вентилей,— причем в первую очередь осуществляются соединения пар узлов вентилями, имеющими наибольший возможный индекс. Лишь только при невозможности выполнения операции со2 (то есть при отсутствии новых, еще не включенных допу- допустимых вентилей для всех пар узлов) выполняется опе- операция со,. При выполнении этой операции также следует следить за тем, чтобы в первую очередь осуществлялось подсоединение нового узла таким вентилем xk и к такому узлу i, что индекс вентиля xk по отношению к этому узлу является максимальным (при нескольких возможностях предпочтение отдается тем вентилям, индекс которых скла- складывается из большого числа наборов, на которых имеет место совпадение единиц функций ф,и xk). После выпол- выполнения операции со, снова делают все возможные опе- операции сог. Нетрудно усмотреть, что при употреблении в процессе выполнения операции со, лишь допустимых вентилей мы никогда не придем к схеме, дающей единичные выходные сигналы тогда, когда она должна давать нулевые выходные сигналы. Вместе с тем, из определения функций ср, и ip,. § 43 НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ 365 непосредственно следует, что выполнение операций со, и со2 приближает нас к построению схемы, реализующей каждый заданный единичный выходной сигнал. Что же ка- касается выбора для операций со, и со, вентилей максималь- максимального индекса, то это правило является эмпирическим и может быть оправдано лишь соображениями, носящими чисто качественный характер. Нетрудно понять, ^напри- мер, что выполнение операций со, и сог с вентилями, индекс которых равен нулю, нисколько не приближает нас к по- построению желаемой схемы. Продемонстрируем работу описанного алгоритма син- синтеза на простом примере. Предположим, что нам необ- необходимо построить вентильную схему, состоящую из дву- двусторонних вентилей и реализующую две выходные функции б и/?, значения которых задаются табл. V.6 (такая схема называется вентильным полусумматором). X 0 0 1 1 Таблица V 0 1 0 1 8 0 1 1 0 V.6 р 0 0 0 1 В процессе синтеза удобно все встречающиеся функции задавать векторами их значений на естественным образом упорядоченных наборах значений входных переменных х и у. На первом шаге синтеза мы первоначально имеем три узла: входной узел 1 с функцией (III1) и два выходных узла 2 и 3 с функциями (ОНО) и @001) соответственно. Функции 1|>/у. для пар узлов имеют при этом вид ^, = @110), ^, = @001), 1|)и = (^000). Выпишем еще функции, реализуемые вентилями: я = @011), г = A100), у = @101), р = A010).
366 МЕТОДЫ ПОСТРОЕНИЯ КОМБИНАЦИОННЫХ СХЕМ (Гл. V Теперь очевидно, что ни для одной пары узлов ни один из вентилей не является допустимым. Операция со2 ока- оказывается поэтому невозможной. Необходимо применить операцию со,, то есть произвести вставку нового, четвер- четвертого узла. Для выбора окончательного вида операции заметим, что по отношению к узлу 1 все вентили имеют индекс-0. По отношению к узлу 2 все вентили имеют ин- индекс 2, а по отношению к узлу 3 вентили х и у имеют ин- индекс 3, а вентили х ту — индекс 1. Таким образом, лучше всего новый узел 4 соединить с узлом 3 вентилем х или вентилем у. Выберем любую из этих возможностей; например, бу- будем вставлять вентиль х. После осуществления этой опе- операции функции узлов представятся в виде Операция со, оказывается возможной в применении к парам узлов A,4), '4,2) и C,4). Соответствующие функции имеют вид: *14=(—01), ч»«=^(-—оо). ч>„=(—11)- Индекс 2 имеет вентиль у по отношению к паре A,4) и вентиль х по отношению к паре D,2). Первый вентиль оказывается более предпоч- предпочтительным, так как он осу- осуществляет совпадение еди- единиц, тогда как второй — толь- только совпадение нулей. Одна- Однако оказывается возможным после включения первого вентиля включить также и второй. Рис. 17. р После этого функции узлов приобретают вид F, = @00I), Ft Операция ш, снова оказывается невозможной. Новый узел  целесообразно соединить вентилем х с узлом 2, по отно- отношению к которому этот вентиль имеет индекс 2. Осуществ- Осуществляя это соединение, мы получим в качестве функции 4] НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ПРИЕМЫ 367 пятого узла функцию ^,=(-N.-^10). Функции остальных узлов при этом, очевидно, сохраняются. Функция tpls имеет вид tpls =(-^.-^10), из чего видно, что вентиль у по отношению к паре узлов A,5) имеет индекс 2. Осуществляя соединение этих узлов вентилем у, мы придем к следующим функциям узлов: Тем самым процесс синтеза оказывается законченным. Полученная в результате этого процесса вентильная схема изображена на рис. 17.
ГЛАВА VI НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ ЦИФРОВЫХ АВТОМАТОВ § 1. Потенциальные и импульсные сигналы. Основные типы схем цифровых автоматов Целью настоящего параграфа, как и всей гл."VI, яв- является изложение некоторых, самых простейших сведе- сведений о возможных искажениях сигналов в схемах цифровых автоматов. Эти сведения ни в коей мере не претендуют на то, чтобы полностью заменить инженерный расчет элемен- элементов и схем. Их назначение состоит лишь в том, чтобы дать некоторое представление о проблемах, возникающих после окончания логического структурного синтеза автомата. Заметим, однако, что уже на этом уровне возникает мно- много интересных математических задач, имеющих большое значение для целей практического синтеза цифровых авто- автоматов из реальных (неидеализированных) элементов. В предыдущих главах мы имели дело с абстрактными алфавитными (в частности, с абстрактными двоичными) сигналами, которые считались возникающими лишь в определенные моменты времени, совокупность которых называлась нами дискретным автоматным временем. В настоящей главе мы будем рассматривать так называемые абстрактные физические сигналы, представляющие собой некоторые вещественные функции f(t) обычного (непре- (непрерывного) времени, заданные на положительной полуоси (О, +оо). Эти функции возникают следующим образом: в каждой точке реальной (физической) схемы автомата, участвую- участвующей в передаче или хранении сигналов, эти сигналы пред- стьхляются в виде той или иной физической величины §1] ОСНОВНЫЕ ТИПЫ СХЕМ ЦИФРОВЫХ АВТОМАТОВ 369 (электрическое напряжение, сила тока, напряженность магнитного поля и т. п.). Каждая такая величина, вообще говоря, изменяет свое значение в процессе работы авто- автомата и может, следовательно, быть представлена в виде некоторой функции времени. Эта функция и называется абстрактным физическим сигналом в данной точке. Тер- Термином «абстрактный» в данном случае подчеркивается то обстоятельство, что мы отвлекаемся от реальной физиче- физической природы сигнала и интересуемся лишь процессом его изменения с течением времени. В соответствии с видом функций, определяющих абст- абстрактные физические сигналы, эти сигналы подразделя- подразделяются на два больших класса, которые принято называть потенциальными и импульсными сигналами. Опишем сначала так называемые идеальные импульсные и потенциальные сигналы. В целях осуществления такого описания выделим на оси времени точки, соответствую- соответствующие последовательным моментам дискретного автоматного времени; эти точки мы будем называть переходными или тактирующими. Промежуток времени между любыми двумя соседними переходными точками назовем тактом. Идеальным импульсным сигналом называется абстракт- абстрактный физический сигнал, представляемый функцией, кото- которая равна нулю во всех точках, отличных от переходных точек. Идеальным потенциальным сигналом называется абстрактный физический сигнал, представляемый функци- функцией, которая остается постоянной в течение каждого временного такта и значения которой в переходных точках не определены. При двоичной системе кодирования сигналов (то есть в двоичном структурном алфавите) для идеальных потенциальных сигн а.л о в считаются воз- возможными только два каких-нибудь значения а и Ь, назы- называемые уровнями сигналов. Одно из этих значений отождествляется с нулевым сигналом, другое — с единич- единичным. Идеальные импульсные системы сиг- сигналов в двоичном структурном алфавите могут быть двух типов. К первому типу относятся такие системы, в которых нулевому сигналу в любой данный переходной момент времени соответствует нулевое значение функции (отсут- (отсутствие импульса), а единичному сигналу—некоторое наперед 24 в. М. Глуипкш
370 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI заданное фиксированное ненулевое значение а (наличие положительного или отрицательного импульса с амплиту- амплитудой, равной |а|). В системах второго типа нулевой сиг- сигнал кодируется импульсом одной полярности, а единич- единичный сигнал — импульсом другой полярности (однако, как правило, той же самой амплитуды); иначе говоря, в системах этого типа нулевому сигналу соответствует зна- значение функции с определенным знаком (скажем, с отрица- отрицательным), а единичному сигналу — значение функции с противоположным знаком. Чтобы избежать недоразумений, заметим сразу же, что все сказанное относится к представлению сигналов в каждой отдельной точке схемы. Существуют такие систе- системы кодирования сигналов, при которых нулевой и единич- единичный сигналы кодируются абстрактными физическими сиг- сигналами в двух параллельных каналах. Такие системы кодирования естественно называть бинарными. В ряде случаев они обладают существенными преимуществами по сравнению с обычными (монарными) системами ко- кодирования. В реальных схемах цифровых автоматов не представ- представляется, разумеется, возможным использовать потенциаль- ныр или импульсные сигналы, имеющие описанную выше /; *РТ и 2 -*• \ i \j ЯГ 1 / * 5 1 1л w ! • I 2 i— i : з t • Я б) Рис. 18. идеальную форму. Вместе с тем в большинстве случаев нецелесообразно учитывать абсолютно все возможные отличия реальных сигналов от идеальной формы. В связи с этим в практических приложениях теории обычно пред- предполагается, что абстрактные физические потенциальные и импульсные сигналы имеют вид, указанный соответственно на рис. 18, а и б. Временные интервалы р ж qua этом рисунке называют- называются соответственно длиной переднего фронта и длиной ; 1] ОСНОВНЫЕ ТИПЫ СХЕМ ЦИФРОВЫХ АВТОМАТОВ 371 заднего фронта потенциального и импульсного сигнала, интервал t — длительностью импульса, а интервал s — вре- временем запаздывания импульса. Отношение времени такта к длительности импульса называют коэффициентом скваж- скважности или просто скважностью импульса. Все введенные величины могут изменяться при переходе от одного такта к другому, а также от одной точки схемы к другой. Уровни потенциальных сигналов (и и v) и амплитуда импульсных сигналов w также меняются. Однако все указанные изме- изменения могут происходить только в некоторых, заранее определенных пределах. При выходе за эти пределы сиг- сигнал утрачивает свое значение, то есть, иными словами, не отождествляется ни с каким абстрактным алфавитным сигналом. Проведенная классификация абстрактных физических сигналов позволяет провести классификацию схем цифро- цифровых автоматов по характеру сигналов, которые в них используются. По этому признаку можно выделить три основных типа схем: потенциальное., импульсные и им- пулъсно-потенциалъные. В потенциальных схемах упо- употребляются только сигналы потенциального типа, в импульсных схемах — только сигналы импульсного ти- типа, в импульсно-потенциальных схемах используются как импульсные, так и потенциальные сигналы. Необходимость сохранения параметров, характеризую- характеризующих абстрактные физические сигналы, в заданных преде- пределах накладывает ряд ограничений на схемы; часть этих ог- ограничений одинакова для схем всех трех указанных типов. Оказывается прежде всего, 4tj всякий реальный элемент, генерирующий тот или иной выходной сигнал, обладает вполне определенной нагрузочной способностью, не позво- позволяющей подсоединять выходной канал этого элемента к неограниченно большому числу -входных узлов других элементов. На том уровне, которым ограничивается рас- рассмотрение вопросов надежности в настоящей главе, до- достаточно в качестве характеристики нагрузочной способ- способности элементов рассматривать так называемый коэффи- коэффициент разветвления. Под коэффициентом разветвления любого логического элемента в схеме автомата понимается наибольшее ко- количество входных узлов других элементов, которое можно 24*
372 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI подсоединить к выходу данного элемента без того, чтобы вызвать искажения сигналов, превышающие заданные гра- границы. Эти границы, а с ними и коэффициент разветвле- разветвления, обычно зависят от размера такта, увеличиваясь с его увеличением. Таким- образом, за счет уменьшения скорости работы схемы, вообще говоря, можно увеличивать коэф- коэффициент разветвления. Заметим еще, что входные каналы различных элемен- элементов могут представлять собою различные нагрузки для выходного канала любого данного элемента. В связи с этим при подсчете числа входных каналов, которые до- допустимо подсоединять к данному выходному узлу, можно употреблять весовые коэффициенты (веса) этих кана- каналов. Сумма весов входных каналов, подсоединяемых в схеме к выходному узлу, не должна превышать коэффици- коэффициента разветвления для этого узла. Необходимость учета коэффициента разветвления вво- вводит дополнительные трудности в задачу синтеза схем. Заметим, например, что в схеме пирамидального дешифра- дешифратора выходной канал элемента, генерирующего последнюю (п-ю) переменную хп, нагружается 2""'входными канала- каналами двухвходовых совпадений или вентилей, составляющи- составляющими половину последнего каскада схемы. При малом коэф- коэффициенте разветвления построение пирамидальных деши- дешифраторов становится невозможным уже для относительно небольшого числа переменных. Выход из положения находят обычно в том, что в схе- схему автомата, наряду с логическими и запоминающими элементами, вводятся вспомогательные элементы, единст- единственной задачей которых является увеличение коэффициен- коэффициента разветвления. Эти элементы не несут никаких логиче- логических функций и лишь повторяют на своих выходных узлах сигналы, подаваемые на их входные узлы. В связи с этим такие элементы называют повторителями. Принято различать три вида повторителей, которые мы будем называть соответственно простыми повтори- повторителями, усилителями и формирователями. Простые по- повторители усиливают лишь мощность сигнала, увеличивая тем самым коэффициент разветвления. Что же касается различных параметров, характеризующих качество по- повторяемого сигнала (амплитуда или уровень сигнала п ОСНОВНЫЕ ТИПЫ СХЕМ ЦИФРОВЫХ АВТОМАТОВ 373 крутизна фронтов), то они либо не изменяются в резуль- результате повторения, либо даже ухудшаются. Простые повто- повторители употребляются в схемах (или частях схем), ис- использующих сигналы потенциального типа. Будучи по- построенными на электронных лампах, они называются обычно катодными повторителями, а на транзисторах — эмиттерными повторителями. В этих названиях под- подчеркнуты некоторые особенности схемной реализации со- соответствующих элементов. Усилители служат для такого повторения входных сигналов, при котором восстанавливаются до нормальных значений их амплитуды или уровни. Попутно может про- происходить также увеличение коэффициента разветвления, однако соблюдение этого условия для повторителей рас- рассматриваемого типа не обязательно. В зависимости от ви- вида своих входных и выходных сигналов усилители делятся на потенциальные и импульсные. Потенциальные усилители обычно объединяются в одной схеме с инверторами и называются поэтому инверти- инвертирующими усилителями. При подаче на вход инвертирую- инвертирующего усилителя потенциального сигнала, соответствую- соответствующего нулю или единице, на выходе его появляется потен- потенциальный сигнал нормального уровня, отвечающий, соответственно, единице или нулю. Потенциальные инвер- инвертирующие усилители обычно не увеличивают коэффициент разветвления и употребляются поэтому в комбинации с обычными повторителями. Импульсные усилители не только восстанавливают амп- амплитуду (импульсных) сигналов до нормальной величины, но и увеличивают, как правило, коэффициент разветвле- разветвления. Часто импульсные усилители объединяются в одной схеме с вентилями, которые называются в этом случае усиливающими вентилями. Обычные усилители (потенциальные и импульсные) восстанавливают лишь уровень или амплитуду сигнала. Если же усилитель, кроме этого, восстанавливает до нор- нормальной величины длительность переднего и заднего фронтов, то его принято называть формировате- формирователем. Название это связано с тем, что формирователь восстанавливает правильную форму сигнала по сиг- сигналу того же типа (нулевому или единичному), имеющему
374 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI искаженную форму (но остающемуся при этом в допусти- допустимых пределах изменений). В электронных схемах обычно употребляются импульсные формирователи. Иногда им- импульсный формирователь объединяется в одном элементе с так называемым дифференцирующим устройством. Этот элемент осуществляет дифференцирование сиг- сигналов потенциального типа, формируя на выходе стандарт- стандартный импульсный сигнал в те моменты времени, когда ме- меняется уровень потенциального сигнала на его входе (при уменьшении уровня входного сигнала формируется отри- отрицательный импульса при увеличении — положительный). Рассмотрим теперь основные типы запоминающих и логических элементов, из которых строятся схемы совре- современных цифровых автоматов. При этом, в соответствии с принятым уровнем абстракции, мы не будем обсуждать здесь фактические способы реализации этих элементов, а лишь характер их функционирования и тип входных и выходных сигналов. Одним из наиболее употребительных на практике за- запоминающих элементов является потенциальный триггер. По характеру функционирования различают три типа триггеров, а именно: триггеры со счетным входом, тригге- триггеры с раздельными входами и комбинированные триггеры. Описание их работы на уровне алфавитных структурных сигналов было дано в гл. 111. Теперь необходимо отме- отметить лишь, что все входные сигналы в потенциальных триггерах являются импульсными, а выходные — по- потенциальными. Как правило, потенциальный триггер об- обладает двумя выходными каналами — прямым и инверс- инверсным, причем сигналы в этих двух каналах всегда имеют противоположные значения (если в нулевом канале воз- возникает нулевой сигнал, то в инверсном в это время воз- возникает единичный сигнал, и наоборот). Вторым широко употребляющимся на практике запо- запоминающим элементом является элемент задержки. В по- потенциальном элементе задержки как входной, так и вы- выходной сигнал являются сигналами потенциального типа, в импульсном элементе задержки оба эти сигнала — им- импульсные. Потенциальный элемент задержки может иметь либо один, либо два выходных канала. В последнем слу- случае по одному из каналов выдается задержанный на один ii] ОСНОВНЫЕ ТИПЫ СХЕМ ЦИФРОВЫХ АВТОМАТОВ 375 такт входной сигнал, а по другому — его инверсия. Вме- Вместо простого импульсного элемента задерж'ки часто упо- употребляется функциональный импульсный элемент задерж- задержки. Такой элемент имеет несколько импульсных входных каналов а:,, ..., хп и один импульсный выходной канал, сигнал на котором возникает в тактирующий момент вре- времени, непосредственно следующий за приходом сигналов а;,, ..., хп (предполагается, что все эти сигналы приходят в течение одного такта). Этот сигнал будет единичным или нулевым в зависимости от того, чему — единице или нулю,— равна некоторая, характеризующая выбранный элемент, булева функция f(xt, ..., хп). Принято говорить при этом, что соответствующий элемент реализует эту функцию с задержкой на один такт. Функциональные элементы задержки представляют собой соединение в одном элементе логического и запоми- запоминающего элемента. К числу чисто логических элементов, широко употребляющихся на практике, принадлежат потенциальные двухвходовые, трех- входовые — и вообще многовходовые сов- совпадения и разделения. Как входные, так и выходные сигналы у этих элементов являются сигналами потенциального типа. Во многих случаях употребляется также потенциальный инвертор, осуществляющий пре- преобразование потенциального входного сигнала в потенци- потенциальный выходной сигнал, имеющий противоположное значение (в смысле двоичных сигналов). Широкое употребление в схемах цифровых автоматов находят также импулъсно-потенциалъные вентили, то есть такие вентили, в которых управляющие входные сиг- сигналы являются потенциальными, а вентильные входные и выходные сигналы — импульсными. Существуют также потенциально-потенциальные вентили, у которых все сигналы (как входные, так и выходные) являются потен- потенциальными. Все описанные элементы допускают самые различные конкретные воплощения. Для начальной ориентировки читателя в этом вопросе отметим, что повторители, усили- усилители, формирователи, потенциальные триггеры и потенци- потенциальные инверторы обычно изготовляются на основе лам- ламповых и транзисторных схем, потенциальные совпадения
376 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI и разделения реализуются чаще всего с помощью по- полупроводниковых диодов и сопротивлений. Функцио- Функциональные импульсные элементы задержки строятся с ис- использованием магнитных сердечников (а в ряде случаев также и электронных ламп и транзисторов), импульсно- потенциальные вентили собираются чаще всего из им- импульсных трансформаторов и полупроводниковых диодов. Что же касается потенциально-потенциальных вентилей, то в комбинации с потенциальным элементом задержки они воплощаются в обычных электромагнитных реле и их различных электронных аналогах. Рассмотрим теперь основные типы схем цифровых автоматов, использующих перечисленные элементы, имея в виду выявить возможные источники искажений сигналов в этих схемах. Прежде всего необходимо отметить чисто потенциальные схемы. В качестве запоминающих элемен- элементов в таких схемах используются обычно потенциальные элементы задержки, все сигналы, в том числе и внешние (входные и выходные), являются потенциальными. Для построения комбинационной части чисто потенциальных схем употребляются два способа: способ, основанный на применении потенциальных совпадений, разделений и инверторов, и способ, основанный на применении потен- пиально-потенциальных вентилей. Первый способ (он применяется в случае электронных схем) предполагает использование элементов задержки с одним выходом, вто- второй способ (который применяется в случае схем, состав- составленных из электромагнитных реле) предполагает исполь- использование элементов задержки с двумя выходами. Потенциальные схемы могут быть построены как на принципе естественного тактирования (асинхронные схе- схемы), так и на принципе принудительного тактирования (синхронные схемы). При естественном тактировании вы- выходы запоминающих элементов (элементов задержки) че- через схему обратной связи (составленную из логических элементов) управляют своими собственными входами. Это обстоятельство создает возможность неправильного срабатывания схемы за счет явления, получившего в ли- литературе название «гонок» *). ') См. S. Н. С a I d w e I I, Switching circuits and logical de- design. John. Willey and son inc., 1958. §1] ОСНОВНЫЕ ТИПЫ СХЕМ ЦИФРОВЫХ АВТОМАТОВ 377 Суть явления гонок состоит в следующем: элементы за- задержки, употребляющиеся в схеме в качестве запоминаю- запоминающих элементов, имеют различные (хотя обычно и доста- достаточно близкие друг другу) времена срабатывания. Раз- Различны также задержки сигналов (то есть длины передних фронтов), поступающих на входные каналы элементов задержки по логическим цепям, имеющим неодинаковую длину. Если по условиям срабатывания (таблице перехо- переходов) автомата в какой-то момент времени должны изме- изменить свое состояние сразу несколько запоминающих элементов, то между элементами начинаются гонки. Тот элемент, который выиграет эти гонки, т. е. из- изменит свое состояние раньше, чем другие элементы, может через цепь обратной связи изменить сигналы на входах некоторых запоминающих элементов до того, как другие участвующие в гонке элементы изменят свое со- состояние. Это, как нетрудно понять, может вызвать пере- переход автомата совсем не в то состояние, которое предусмот- предусмотрено таблицей переходов автомата. Проблема устранения возможности неправильного функционирования схемы за счет описанного явления но- носит название проблемы гонок. Проблему гонок можно решить за счет точного согласования времени пе- передачи сигналов по цепям обратной связи с временем полного изменения состояний запоминающих элементов, которое для краткости в дальнейшем будет называться временем их переброса. Более радикальным является та- такое решение этой проблемы, которое исключает необходи- необходимость одновременного изменения состояний сразу у нескольких запоминающих эле- элементов. С этой целью достаточно, очевидно, применить такое кодирование состояний заданного автомата, при котором (двоичные) коды любых двух соседних состояний (состояний, переходящих одно в другое под воздействием какого-нибудь входного сигнала) отличаются друг от друга не более чем одним разрядом. Условимся называть такое кодирование противогоночным. Нетрудно понять, что противогоночное кодирование оказывается возможным далеко не во всех случаях. Дейст- Действительно, если имеется три различных состояния а, Ь, с и три (необязательно различных) входных сигнала х, у, г
378 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI таких, что ax—b, Ьу=с, сг=а, то противогоночное кодиро- кодирование состояний а, Ь, с невозможно, поскольку код состоя- состояния с неизбежно будет отличаться от кода состояния а в двух разрядах, если коды состояний а, Ьи коды состоя- состояний Ь, с отличаются между собой в одном разряде. Этот пример показывает, что возможность противогоноч- ного кодирования должна обеспечиваться еще на этапе абстрактного синтеза автомата. Для асинхронных автоматов, то есть таких автоматов, у i оторых время такта определяется скоростью переброса различных его запоминающих элементов, су- существенным (для обеспечения правильной работы авто- автомата) являе ся также согласование изменения (потенци- (потенциальных) входных сигналов с переходами автомата из од- одного состояния в другое. Такое согласование осуществляется обычно за счет того, что входной сигнал х заменяется входным сигналом у лишь тогда, когда автомат находится встабильном, относительно х, состоянии а, то есть когда ах=а. Ясно, что в этом случае отпадает необходимость точного согласо- согласования момента изменения входного сигнала с переходами автомата из одного состояния в другое, поскольку начиная с некоторого момента времени и вплоть до изменения входного сигнала автомат будет пребывать в одном и том же состоянии а. Назовем описанный прием стандартным приемом согласования асинхронного автомата с изменения- изменениями входных сигналов. Необходимость решения проблемы гонок и проблемы согласования переходов автомата из одного состояния в другое с изменениями входных сигналов отпадает при вве- введении принудительного тактирования автомата, то есть при превращении автомата в синхронный авто- автомат. Для потенциальных схем принудительное тактиро- тактирование осуществляется обычно за счет удвоения числа за- запоминающих элементов и введения специального такти- тактирующего генератора. Предположим, что по условиям работы автомата для него достаточно иметь п запоминающих элементов. В таком случае, кроме этих п элементов, составляющих пер- первую ступень запоминания, в автомат вво- вводятся еще п запоминающих элементов, составляющих ОСНОВНЫЕ ТИПЫ СХЕМ ЦИФРОВЫХ АВТОМАТОВ 379 вторую ступень запоминания. Тактирую- Тактирующий генератор вырабатывает два управляющих напряже- напряжения, сменяющих друг друга с вполне определенной часто- частотой. Моменты изменения этих напряжений и будут такти- тактирующими (переходными) моментами. Элементы задержки, составляющие обе ступени запоминания, управляются напряжениями, вырабатываемыми тактирующим генера- генератором, и осуществляют задержку сигналов как раз на время одного такта. Во все нечетные такты (время действия первого управ- управляющего напряжения) осуществляется передача инфор- информации (без ее изменения) из первой ступени запоминания во вторую. Выходы элементов второй ступени через ком- комбинационную схему обратной связи связаны со входами элементов первой ступени. Через эту схему во все четные такты (время действия второго управляющего напряже- напряжения) осуществляется передача информации (с попутным ее преобразованием) из второй ступени запоминания в пер- первую. Изменение входных сигналов происходит лишь в тактирующие моменты времени. Очевидно, что описанный способ организации цирку- циркуляции информации полностью исключает опасность не- неправильного срабатывания автомата в результате гонок. Для асинхронных потенциальных схем, использую- использующих запоминающие элементы с двумя выходами, имеется еще одна опасность неправильного срабатывания, связан- связанная с неодновременностью установления сигналов на пря- прямом и на инверсном выходе после перехода запоминающе- запоминающего элемента из одного состояния в другое. В результате указанной неодновременности в какой-то момент времени может оказаться, что некоторая переменная хи ее инвер- инверсия х принимают одинаковые значения. Проблема устра- устранения источников возникновения подобных ситуаций но- носит название проблемы риска '). Дальнейшее уточнение этой проблемы и разбор методов ее решения будет произве- произведен в следующем параграфе. А сейчас мы отметим еще од- одну проблему, связанную с надежностью потенциальных ') См. D. A. Huffman, The design and use of hazard-free switching networks. Journ. Ass. Сотр. Machinery, v. 4, № 1, 1957, p. 47-62.
380 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ |Гл. VI схем. Дело заключается в том, что обычно употребляю- употребляющиеся потенциальные совпадения и разделения снижают на выходе разницу уровней нулевого и единичного сигналов по сравнению с Сигналами на своих входах. Поэтому многоступенчатые потенциальные комбинаци- комбинационные схемы, составленные из совпадений и разделений, оказываются относительно мало надежными, в силу чего на практике ограничиваются часто двуступенча- т ы м и схемами, причем первая ступень обычно строится из многовходовых совпадений, выходы которых подсоеди- подсоединяются к входам разделений, составляющих вторую ступень схемы. Нетрудно понять, что подобные схемы соответствуют представлению их выходных функций в дизъюнктивных нормальных формах (каждое совпадение, составляющее первую ступень, реализует одно из входящих в эти формы элементарных произведений). Возможно, разумеется, строить двуступенчатые схемы, в которых разделения предшествуют совпадениям. Такие схемы соответствуют представлению их выходных функций в конъюнктивных нормальных формах. Переходим теперь к рассмотрению импульсно- потенциальных схем автоматов. В ка- качестве запоминающих элементов в таких схемах употребля- употребляются обычно потенциальные триггеры. В наших рассмот- рассмотрениях мы будем предполагать, что входные сигналы всей схемы в целом являются сигналами потенциального типа. Подобное предположение не нарушает общности рас- рассуждения, поскольку импульсный сигнал всегда можно превратить в потенциальный, подавая его на триггер для запоминания. Мы будем различать три вида импульсно-потенциаль- ных схем: схемы с потенциальной логикой, схемы с импульс- импульсной (вентильной) логикой и комбинированные схемы. В схемах с потенциальной логикой вся комбинацион- комбинационная часть схемы (реализующая функции возбуждения и выходные функции) строится * обычно на потенциальных совпадениях и разделениях с добавлением в ряде случаев еще и потенциальных инверторов. На входах триггеров ставятся вентили, работающие в режиме преобразователя потенциального сигнала в импульсный. Это означает, что на их вентильные входы подаются в каждый тактирую- § О ОСНОВНЫЕ ТИПЫ СХЕМ ЦИФРОВЫХ АВТОМАТОВ 381 щий момент импульсы от внешнего источника (гене- (генератора синхронизирующих импуль- о о в). На управляющие входы вентилей подаются выход- выходные (потенциальные) сигналы схемы обратной связи авто- автомата. Выходные сигналы схемы являются потенциальными. В случае необходимости эти сигналы можно превратить в импульсные: стоит лишь использовать их в качестве уп- управляющих сигналов вентилей, работающих в режиме преобразования потенциальных сигналов в импульсные. Учет надежности для схем этого вида, на принятом уровне абстракции, ограничивается соблюдением заданных значений коэффициента разветвления и недопущением превышения заданного числа ступеней в потенциальных комбинационных схемах. Заметим, впрочем,что использо- использование потенциальных инверторов дает возможность восста- восстанавливать нормальную разность уровней нулевого и еди- единичного сигналов и использовать вследствие этого много- многоступенчатые схемы. В импульсно-потенциальных схемах с импульс- импульсной логикой комбинационная часть схемы стро- строится на импульсно-потенциальных вентилях, управляемых выходными сигналами триггеров и входными сигналами схемы. Выходные (импульсные) сигналы этой схемы на- направляются непосредственно на входы триггеров и на вы- выходные полюсы автомата. Если выходные сигналы должны быть потенциальными, то полученные импульсные вы- выходные сигналы направляются на входы специально вво- вводимых для этой цели триггеров, которые осуществляют преобразование их в одноименные сигналы потенциаль- потенциального типа. Кроме вентилей в комбинационной части схемы обычно используются также импульсные усилители и формирователи. На вентильный вход комбинационной схемы подаются импульсы от тактирующего генератора. Учет надежности в данном случае не ограничивается лишь одним соблюдением заданных значений коэффициен- коэффициента разветвления. Необходимо учитывать также еще две возможности неправильного функционирования автома- автоматов. Первая возможность — это возможность многократ- многократного переброса триггера под влиянием импульсных сиг- сигналов, прошедших через вентильную схему различными путями, получивших в результате этого различные
382 некоторый проблемы нади жности [Гл. VI задержки и воспринимающиеся на выходе триггера как несколько пришедших друг за другом импульсов. Ясно, что такая возможность имеется лишь при работе триггера в режиме счетного входа, так как в триггере с раздельными входами приход нескольких импульсов по одному и тому же входному каналу вызывает тот же эф- эффект, что и приход одного импульса. В случае же триггеров со счетным входом устранение возможности неправильно- неправильного срабатывания может быть произведено за счет введе- введения в схемы дополнительных вентилей, устраняющих возможность прихода в один и тот же (вентильный) вы- выходной узел нескольких импульсов в течение одного так- такта. Пример такого устранения будет приведен в следующем параграфе. Вторая возможность неправильного срабатывания схем с импульсной логикой заключается в неодновременном перебросе триггеров: на некоторые из триггеров импульсы могут прийти по коротким цепям с малой задержкой и вызвать переброс этих триггеров в тот момент времени, когда еще не закончилось прохождение импульсов по более длинным путям; в результате этого может произойти ошибка в передаче этих отставших импульсов по заключи- заключительным участкам их путей. Устранение этой опасности производится с помощью введения дополнительных задержек импульсов на входах триггеров, исключающих возможность переброса тригге- триггеров до окончания процесса распространения импульсов по всем цепям рассматриваемой вентильной схемы. Другой способ устранения описанной опасности заключается в удвоении числа триггеров и в образовании двух ступеней запоминания,— подобно тому, как это было сделано вы- выше в случае потенциальных схем. В рассматриваемом случае вентильная схема становится управляемой лишь триггерами второй ступени; при этом в нечетные такты осуществляется передача информации от первой ступени ко второй, а в четные — от выходов второй ступени через вентильную схему к входам первой ступени. В комбинированных импульсн о-по- о-потенциальных схемах комбинационная часть выполняется частично на потенциальных элементах (совпа- (совпадениях и разделениях), частично — на импульсно-потен- 2] ПРОБЛЕМА РИСКА 383 циальных вентилях. Учет надежности в этом случае вклю- включает в себя все факторы, которые приходилось учитывать в двух уже описанных видах импульсно-потенциальных схем. Последний тип схем — это чисто импульсные схемы. Все сигналы в такого рода схемах, в том числе входные и выходные сигналы всей схемы в целом, явля- являются импульсными сигналами. Наиболее часто импульс- импульсные схемы строятся из описанных выше функциональных импульсных элементов задержки, представляющих собою объединение в одном элементе как запоминающего, так и логического элемента. Элементы выбираются таким об- образом, чтобы реализуемые ими булевы функции (без учета задержки) составляли бы функционально полную (см. гл. III) систему булевых функций. Моменты появления выходных сигналов на элементах определяются специаль- специальным тактирующим генератором. Функции возбуждения и выходные функции автомата реализуются в этом случае с помощью суперпозиции вы- выбранных элементов. При этом необходимо следить за тем, чтобы задержки, с которыми реализуются все эти функции, были одинаковыми. Если задержки оказываются различ- различными, то они выравниваются посредством включения в схему дополнительных (нефункциональных) элементов задержки. В соответствии с тем, на сколько тактов за- задерживается образование сигналов для функций возбуж- возбуждения автомата, каждый такт работы данного автомата рас- расщепляется на соответствующее число тактов, в течение которых завершается полный цикл обращения информа- информации по цепи обратной связи. Учет надежности, на принятом уровне абстракции, ог- ограничивается выполнением условия, чтобы коэффициент разветвления в схеме не превышал заданной величины. § 2. Проблема риска. Примеры синтеза схем с учетом простейших соображений над; жности Как уже сообщалось в предыдущем параграфе, пробле- проблема риска возникает в потенциальных асинхронных схе- схемах,— в частности в схемах, построенных из электро- электромагнитных реле.
384 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI Рассмотрим произвольную асинхронную потенциаль- потенциальную схему, имеющую п запоминающих элементов (потен- (потенциальных элементов задержки). Пусть yi=ji(xi хп, о,, ..., ат), где i=l, ..., п, представляют собой канониче- канонические уравнения этой схемы. Здесь а, ат— входные сигналы автомата, а х,, ..., хп— выходные сигналы его памяти. Вследствие различной длительности переходных процессов в выходных цепях запоминающих элементов может случиться, что в течение какого-то (обычно весьма короткого) времени на прямом и инверсном выходе одного и того же элемента появятся одноименные сигналы (нуле- (нулевые или единичные). При этом имеется возможность полу- получения неправильного сигнала на входах запоминающих элементов и связанный с нею риск неправильного срабаты- срабатывания этих элементов. Нетрудно понять, что применительно к запоминающим элементам, которые в наступающем такте должны изме- изменить свое состояние, получение неправильного входного сигнала в начале такта не приведет к неправильному сра- срабатыванию. В самом деле, под влиянием этого неправиль- неправильного сигнала элемент может либо сохранить свое прзжнее состояние, либо перейти в противоположное состояние. Поскольку в течение рассматриваемого такта состояние элемента так или иначе должно измениться, то в первом случае произойдет лишь некоторая затяжка этого изме- изменения, а во втором изменение произойдет тогда, когда это требуется, а именно в начале такта. Таким образом, риск неправильного срабатывания имеет место лишь для тех запоминающих элементов, ко- которые должны сохранять свое состояние в течение рассмат- рассматриваемого такта. Если это состояние — единичное, то говорят о риске в единице, если нулевое — тоориске в нуле. Предположим, что схема построена на основе противо- гоночного кодирования состояний. Иными словами, в те- течение каждого такта работа схемы изменяет состояние лишь одного элемента. Для проверки наличия риска в такой схеме достаточно, очевидно, подвергнуть все цепи, реализующие входные функции памяти автомата (функции возбуждения) um) U = п), ПРОБЛЕМА РИСКА 385 следующей проверке: если функция ft не меняет своего значения при изменении значения какого-либо своего ар- аргумента xt или а^ на противоположное (при каких-либо фиксированных значениях остальных аргументов), то проверяется, не изменит ли функция /, своего значения, если в ее конкретное представление fi==F,{xt, х, х„, х„, а, а, ат, ат), реализуемое заданной схемой, подставить одно и то же значение @ или 1) как для самого изменяющегося аргу- аргумента, так и для его инверсии (сохраняя неизменными зна- значения всех остальных переменных). Если такое измене- изменение имеет место, то говорят, что при принятом представ- представлении функции ft имеется риск по соответствующему аргументу, причем при изменении значения функции }( с 0 на 1 говорят о риске в нуле, а при изменении значе- значения }(с 1 на 0 — о риске в единице. Представление функ- функции /, называется свободным от риска, если при этом представлении не имеется риска ни по одному из аргу- аргументов. Ясно, разумеется,что о риске мы будем говорить лишь применительно к тем схемам, которые имеют в качестве своих входных сигналов не только значения соответствую- соответствующих переменных, но и их отрицаний. Рассмотрим в качестве примера функцию / от трех переменных, заданную следующей формулой (отражающей структуру соответствующей схемы): f^xysixz. Примени- Применительно к этому представлению речь может итти лишь о риске по переменной х. Нетрудно усмотреть, что функцит / сохраняет значение 1 при изменении значения х в слу- случае, когда у=1 и 2=1, и сохраняет значение 0, когда у=0, 2=0. При одновременном обращении в нуль х и х выбранное представление дает для функции / нулевое значение для любых значений у и 2, в том числе и для зна- значений у=1, 2=1. Иными словами, при принятом представ- представлении имеется риск в единице по переменной х. В то же время при других представлениях этой функции, напри- например при представлении f—xyyxzvyz, риск по переменной х (как, впрочем, и по всем остальным переменным) отсут- отсутствует. 25 В. М. Глупшов
386 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI Нетрудно удостовериться в справедливости следующе- следующего предложения. 2. 1. При представлении булевой функции произволь- произвольной дизъюнктивной нормальной формой отсутствует риск в нуле, а при представлении произвольной конъюнк- конъюнктивной нормальной формой — риск в единице. В самом деле, для любой переменной х произвольную д.н.ф. заданной функции / можно представить в виде }=Ax\jBx\iC, где А, В н С — булевы функции, не зави- зависящие от х. Если при каких-то фиксированных значениях всех переменных, отличных от х, функция / равна нулю как при х=0, так и при х=1, то это означает, очевидно, одновременное равенство нулю соответствующих значений функций А, В, С. Но тогда /=0 при любом выборе значе- значений для х и х, в том числе и значений х=1, х=1 или х=0, х—0. Тем самым отсутствие риска в нуле доказано. Дока- Доказательство отсутствия риска в единице для случая к.н.ф. проводится точно таким же образом. Хотя всякое представление булевой функции в виде д.н.ф. свободно от риска в нуле, разобранный выше при- пример показывает, что остается все же возможность риска в единице. Оказывается, однако, что справедливо следую- следующее предложение. 2. 2. Представления булевых функций в виде сокра- сокращенных д.н.ф. и сокращенных к.н.ф. свободны от риска (как в нуле, так и в единице) по всем переменным. Действительно, пусть, независимо от выбора значения какой-либо переменной х, существует такой набор значе- значений остальных переменных, при котором заданная булева функция / равна единице. Это означает, очевидно, что в совершенной д.н.ф. функции / имеются две соседние кон- ституенты единицы хр и хр. С помощью метода Квайна или Блейка отсюда непосредственно выводится, что функ- функция / обладает простой импликантой, не зависящей от х. Эта импликанта сохраняет свое значение независимо от выбора значений для х и х. Поскольку она обязательно содержится в сокращенной д.н.ф. функции /, то эта форма свободна от риска в единице по переменной х. Ввиду про- произвольности выбора х и в силу предложения 2. 1 очевид- очевидно, что сокращенная д.н.ф. свободна от риска (как в нуле, 2] ПРОБЛЕМА РИСКА 387 так и в единице) по всем переменным. Доказательство предложения 2. 2 для случая сокращенной к.в.ф. произ- производится точно таким же способом. Доказанная теорема вместе с разобранным выше при- примером показывает, что при синтезе асинхронных потен- потенциальных схем по соображениям надежности иногда це- целесообразно отказываться от реализации минимальных представлений булевых функций и пользоваться пред- представлениями в виде сокращенных д.н.ф. и к.н.ф. Рассмотрим теперь примеры синтеза схем автоматов с учетом тех соображений надежности, которые были рас- рассмотрены в настоящем и в предыдущем параграфе. Пример 1. Построить асинхронную потенциаль- потенциальную схему на двусторонних потенциальных вентилях и потенциальных элементах задержки с двумя выходами для автомата Мура, заданного следующей отмеченной табли- таблицей переходов VI. 1: Таблица VI. 1 Таблица VI. 2 0 1 0 0 0 1 1 1 2 1 1 2 2 3 0 3 0 3 0 1 00 00 01 01 11 01 11 11 10 10 00 10 Коэффициент разветвления выбранных элементов предполагается настолько большим, что его влияние учи- учитывать не нужно (это всегда можно предполагать в случае, когда схема не слишком велика, а элементами являются электромагнитные реле). Решение. Применим противогоночное кодирова- кодирование состояний автомата. Такое кодирование может быть сделано, например, следующим образом: 0=00, 1=01, 2=11, 3 = 10. В силу теоремы 8. 1 из § 8 гл. III таблица возбуждений автомата совпадает с его структурной таблицей переходов, то есть, иными словами, имеет вид, показанный в табл. VI. 2. Обозначая состояния элементов памяти буквами х и у, входной сигнал автомата буквой а, выходной сигнал 25*
3S8 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI буквой г, а функции возбуждения буквами /, и /,, мы по- получим представления функций г, /, и /, картами Карнау, показанные соответственно в табл. VI. 3, VI. 4, VI. 5. Таблица VI. 3 Таблица VI. 4 Таблица VI. 5 N. а ху \^ 00 01 и 10 0 0 1 1 0 1 0 1 1 0 \ XV \ 00 01 11 10 0 0 1 1 0 1 0 0 1 1 Nv a N. XII \_ 00 G1 11 10 0 0 1 1 0 1 1 1 0 0 С помощью построенных карт находим минимальные дизъюнктивные нормальные формы соответствующих функций: z = y, fJ=yavxa, ft=xavya. Для устранения риска необходимо перейти к сокращен- сокращенным д.н.ф.: = x(avy)vya, [г=ху v xav ya — x(av у) v ya. Схема автомата, реализующая найденные представ- представления, изображена на рис. 19. Построенная вентильная схема имеет шесть вентиль- вентильных узлов и задается следующей матрицей непосредст- непосредственных связей: 1 х 0 У_ X 0 X 1 а\у 0 0 0 0 avy 1 а 0 0 у 0 а 1 0 а X 0 0 0 1 avy 0 0 0 а avy 1 §2] ПРОБЛЕМА РИСКА 389 Исключение второго и пятого узлов лриводит к матрице 1 x(avy) у x(avy) x{avy) I a 0 у а 1 а x(avy) 0 а 1 .4.= Продолжая исключение, мы приходим к матрицам 1 F..II 1 А -I Л. 1 где Fls=x(avy)vya, Fli=yvxa(avy)vxa(av y)=y, Fl, = x(avy)vya представляют собой функции полной связи от узла 1 к узлам 3,4,6. Поскольку эти функции совпадают с задан- заданными функциями /,, г, Д. то схема, изображенная на рис. 19, действительно решаем поставленную задачу. х х Рис. 19. • В случае употребления двусторонних вентилей всегда является желательной проверка, аналогичная только что проведенной, поскольку при синтезе схемы в этом случае могут образоваться ложные пути, приводящие к ошибоч- ошибочным значениям сигналов в выходных узлах. Посмотрим, как выглядела бы схема только что по- построенного автомата при реализации ее на потенциальных триггерах со счетными входами, двухвходовых потенци-
390 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI альных совпадениях и разделениях и импульсно-потен- циальных вентилях. В силу теоремы 8. 2 из § 8 гл. III таблица возбуждений автомата (при принятой выше системе кодирования) примет вид, показанный на табл. VI. 6, Таблица VI. 6 0 1 00 00 01 01 10 00 11 00 01 10 10 00 а карты К а р н а у для функций возбуждения /, и /, вид, представленный в табл. VI. 7 и VI. 8. Таблица VI. 8 Таблица VI. 7 N. а ху \ 00 01 11 10 0 0 1 0 1 1 0 0 0 0 N. а N. ху \ 00 01 11 10 0 0 0 0 0 1 1 0 1 0 Учитывая, что выходная функция z сохраняет своз старое значение, мы получаем следующие представления для интересующих нас функций: a, = (x'y v xy)a. Полученные представления приводят к схеме автома- автомата, изображенной на рис. 20 (на этом рисунке СИ обозна- обозначает канал, по которому передаются синхронизирующие импульсы от тактирующего генератора, Г, и Г, обозначают триггеры, а В — вентили). Если допустить использование наряду с совпадени- совпадениями и разделениями тауже потенциального инвертора, то в полученной схеме можно заменить два совпадения и §2] ПРОБЛЕМА РИСКА 391 разделения, реализующие функцию xyvxy одним инверто- инвертором, поскольку, как нетрудно заметить, xyvxy=xyvxy. Пример 2. Построить схему n-разрядного двоич- двоичного параллельного сумматора, используя в качестве запоминающих элементов потенциальные триггеры со счетными входами, а в качестве логических элементов — односторонние импульспо-потенпиальные вентили. Решение. Для запоминания двух слагаемых ис- используем In триггеров со счетными входами, /-й разряд первого числа обозначим через х{, а /-й разряд второго чис- числа — через у(. Через pt обозначим (двоичный) перенос из (i— 1)-го разряда bi-й разряд (/=1,..., п).Условимся также i-й разряд суммы г, получать в триггере, в котором хранится i-й разряд второго слагаемого (у,). Сумматор с таким свой- свойством естественно называть накапливающим, поскольку, подавая на триггеры х,, ...,?„ одно слагаемое за другим и запоминая вначале на триггерах у', ..., уп число 0, мы бу- будем накапливать на триггерах ух, yt, ..., уп сумму всех этих слагаемых. Для г-го разряда суммы zt имеется следующее очевидное уравнение: г—х^ yt+ Pt (/»=1, .... п). Функция воз- возбуждения /, триггера у{ (сигнал, подаваемый на его счет- счетный вход) будет выражаться следующим образом (см. теорему 8. 2 из § 8 гл. Ill):
392 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI В каждом разряде (кроме самого старшего) необходи- необходимо образовать еще две функции — функцию р1+1 переноса из /-го разряда в (i+ 1)-й разряд и ее отрицание pUl, поскольку соответствующие этим функциям сигналы ис- используются в следующем (/+ 1)-м разряде. Нетрудно понять, что функция переноса имеет следующее выраже- выражение: pi+l=xiyivxip,wyipi (i = l, 2. ... , п— 1). B) Функция отрицания перевеса представится в виде: Pi+i = xiyi4Xipi\i~yipi A=1, 2, ... , п — 1). C^ Вентильная схема, реализующая найденные представ- представления функций /,, pl+i и р1+1, изображена на рис. 21. \СИ.- Put Xi Через СИ на этом рисунке обозначены входные каналы схемы, подсоединенные к генератору синхронизи- синхронизирующих импульсов. С функциональной точки зрения это означает, что на входы СИ подается сигнал, тождественно равный единице. Несмотря на то, что построенная схема правильна с чисто логической точки зрения, она, тем не менее, совер- совершенно неудовлетворительна с точки зрения элементарных требований надежности. Дело не только в том, что при прохождении через нмпульсно-потенциальные вентили обычной конструкции (например, диодно-трансформатор- 2] ПРОБЛЕМА РИСКА 393 ные) импульсы сильно ослабляются и требуют поэтому последующего усиления, дело также в том, что при вы- выбранной схеме сумматора имеется опасность неправильно- неправильного срабатывания триггеров за счет того, что по каналам }t в течение одного такта работы схемы может прийти не- несколько сигналов. Действительно, если *l-=yf=p/=l, то на выход pl+i схемы, изображенной на рис. 21, приходят два различных сигнала: от входного канала р( (через параллельно соеди- соединенные вентили xt и yj) и от входного канала СИ (через последовательно соединенные вентили xi и yt). При до- достаточно большом числе разрядов в сумматоре сигнал, приходящий со стороны входа рг может иметь значитель- значительную задержку во времени по сравнению с сигналом, по- поступающим непосредственно от генератора СИ через вен- вентили х{, г/,-; если, например, yi=xi=l, yt = ys=. . .=г/,-_1=1, *, = *, = .. . = xi_1=0, то сигнал, приходящий на выход р1+1 со стороны входа ри приходит через / последовательно соединенных вентилей У,< У г' •••• !//> в то время как сигнал от СИ в i-м разряде (при Х1=У[=\) попадает на выход р1+1, проходя лишь че- через два вентиля х1 и у(. В результате на выход //+1 (/ + + 1)-го разряда может прийти не один импульс, а два, вызвав двойной переброс триггера у1+1. Может случиться также, что эти два импульса сольются в один импульс неправильной формы, который вообще не перебросит триг- триггер IW Из сказанного ясно, что для достижения большей на- надежности схема, изображенная на рис. 21, должна быть переделана так, чтобы не допускать поступления в одну и ту же точку схемы импульсов, прошедших через цепи, которые значительно отличаются друг от друга по длине. Этой цели можно достичь двумя различными путями: во- первых, для функций pi+1 и pUl вместо представлений B) и C) можно вводить следующие представления: =*.#/ v хд, (х,р, v ytPi) = (*, v у,) (х, v у,) pt, D) E)
394 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI во-втормх, для этих функций можно вводить и пред- представления такого рода: Р/+1 = xiPt v У fit = (х, v yt) Pi v F) Pi+i — x~iytPiyxi'piyyi~pt = (x,vy,)p~ivx, ytpt. G) Представления D) и E) запрещают прохождение сигна- сигналов на выходы р1+1, р1+1 со стороны входов р{ и рг если на них поступают сигналы со стороны входов СИ i-то разряда. Представления F) и G), наоборот, запрещают прохождение сигналов на выходы р1+1, р1+1 со стороны входов СИ /-го разряда, если на них поступают сигналы со стороны входов Pi и рг Схема i-ro разряда (при 1<7<уг) сумматора, соответ- соответствующая представлениям F) и G), изображена на рис. 22. Эта схема столь же экономна с точки зрения числа вен- вентилей, используемых в одном разряде, что и схема, изо- изображенная на рис. 21 A0 вентилей на разряд), но в отли- отличие от последней имеет то свойство, что в каждую точку ¦ схемы сигнал (импульс) может попасть через цепочку вентилей, имеющую строго определенную длину (завися- (зависящую от кодов хпхп_1 ... ZjH УпУп-х---Ух). В каждом разряде ИМПуЛЬС ПРОХОДИТ ПО ОДНОМУ ИЗ Путей Pi~*Puv Pi^Pin 12] ПРОБЛЕМА РИСКА 895 (через вентильную цепь длины 1), либо по одному из путей Pi-+Pi+i> Pi~*Pi+\ (через вентильную цепь длины 2). Поскольку рх=0, то первый разряд сумматора может быть упрощен. Может быть существенно сокращен также последний (n-й) разряд. Этв можно сделать за счет отбра- отбрасывания цепей, формирующих сигналы рп+1 и рп+1. Соот- Соответствующие упрощенные схемы изображены на рис. 2?. Рис. 23. С учетом указанных упрощений весь п-разрядный сумматор требует для своего построения 10(п—2)+ 5 + + 2=10п—13(пзг2) вентилей. Разумеется, при его по- построении необходимы также усилительные элементы. Обычно в схемах такого рода импульсный усилитель ста- ставится после каждого вентиля. Коэффициент разветвле- разветвления описанной схемы не превосходит 3 для каждого из двух выходов триггера х( и 2 для каждого из двух выходов триггера уг Задержку импульсного сигнала в вентильных схемах принимают обычно равной сумме задержек в последова- последовательно проходимых этим сигналом вентилях и усилитель- усилительных элементах. Считая, что задержка сигнала одним вен- вентилем, снабженным усилителем .на выходе, равна т, мы приходим к выводу, что максимальная задержка, которую может претерпеть импульс СИ на выходе /„ последнего разряда описанной схемы n-разрядного сумматора (на входе триггера уп), равна Bп—1) т. Такая задержка будет иметь место при сложении двух чисел вида 010101...01. При этом в каждом разряде импульс будет переходить из цепи переноса в цепь отрицания переноса, либо наоборот. Описанный сумматор осуществляет сложение в тече- течение одного такта. В ряде случаев оказывается целесооб-
396 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI разным применять двухтактные сумматоры. Такие сумматоры на первом такте обычно осуществляют пораз- поразрядное сложение чисел, а во втором такте реализуют пере- переносы. Возможны, разумеется, и другие варианты. Пример 3. Построить импульсную схему на функ- функциональных элементах с задержкой, реализующих функ- функцию ху, для автомата Мура А, заданного отмеченной таб- таблицей переходов VI. 9. Таблица VI. 9 0 1 001 012 101 212 Таблица VI. 10 0 1 00 01 10 01 00 01 10 01 10 Решение. Закодируем состояния автомата следую- следующим образом: 0=00, 1=01, 2=10. В таком случае физи- физическая таблица переходов и совпадающая с ней, в силу тео- теоремы 8. 1 гл. III, таблица возбуждений примет вид, пред- представленный в табл. VI. 10. Обозначая буквами хну состояния двух элементов па- памяти автомата (элементов задержки), буквой а — входной сигнал, буквой z — выходной сигнал и предполагая, что /, и /, суть функции возбуждения элементов х ту, мы при- придем к картам Карнау для функций z, /,, /,, изображенным соответственно на табл. VI. 11, VI. 12 и VI. 13. Таблица VI. И Таблица VI. 12 TaблицaVI. 13 "Ч а N. ху \ч 00 01 11 10 0 0 0 1 1 0 0 — 1 Ч- а ч. ху \ 00 01 11 10 0 0 0 0 1 1 0 1 N\ a N. ху \ 00 01 11 10 0 1 0 1 1 0 1 0 12] ПРОБЛЕМА РИСКА 397 Отсюда нетрудно получить следующие представления для функция z, /, и /,: z = x, f\=ya, ft = yavya. Предположим, что имеет место естественное разделе- разделение сигналов. В таком случае функцию ft можно полу- получить следующим образом через функцию ху и констан- константу 1: С помощью полученного представления функция /, реа- реализуется с задержкой на два такта. С той же задержкой необходимо реализовать также функцию /,. Это нетрудно сделать, используя представление /, = (aj/)O. Рис. 2\. Считая, что на изолированном узле возникает нулевой сигнал, а единичный сигнал имеется в нашем распоряже- распоряжении в качестве выходного сигнала тактирующего генера- генератора, мы приходим к схеме, изображенной на рис. 24. На этом рисунке стрелкам с зачерненными концами соответствуют запрещающие входы элементов ху (т. е. входы для сигнала у в случае функции ху), а стрелкам с незачерненными концами — обычные (разрешающие) вхо- входы (то есть входы для сигнала х в случае функции ху). Элементы, обозначенные буквами х и у, являются за- запоминающими, а элементы, обозначенные цифрами 1, 2, 3, 4, б, выполняют роль логических элементов.
398 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ №л. VI Поскольку сигналы в цепи обратной связи автомата со- совершают полный цикл за три такта, внешний т а к i работы автомата (то есть минимальное время, необходи- необходимое для изменения входных и выходных сигналов) равен трем его внутренним тактам. С точки зрения внутренней тактировки автомата все его внешние сигналы (входные и выходные) представляются словами, в которых каждая буква выписывается трижды. Заметим, что коэффициент разветвления в схеме, изо- изображенной на рис. 24, не превосходит 2, то есть не превы- превышает минимального значения, при котором еще возможно построение схем достаточно большой сложности. § 3. Проблема синтеза надежных схем из ненадежных элементов Все методы синтеза схем цифровых автоматов, которые были описаны до сих пор, исходят из задачи наиболее экономного расходования элементов (как запоминающих, так и логических). Ясно, что достижение максимальной экономии элементов предъявляет высокие требования к надежности работы каждого элемента. По самому определению наиболее экономной схемы она долж- должна обладать тем свойством, что выход из строя любого ее элемента вызывает выход из строя всей схемы в целом. Действительно, наличие элементов, которые мо>ьно исклю- исключить, не нарушая работы схемы, означает, что эта схема не является минимальной с точки зрения числа элементов, израсходованных для ее построения. Мы будем различать два вида неисправностей элемен- элементов цифровых автоматов. Неисправность первого вида, на- называемая отказом, состоит в том, что начиная с некоторого момента времени и во все последующие моменты времени элемент перестает функционировать или функциони- функционирует неверно. Чтобы снова заставить правильно функцио- функционировать отказавший элемент, его необходимо отремонти- отремонтировать или заменить новым, исправным элементом. Второй вид неисправности — это мгновенная самоустраняю- самоустраняющаяся неисправность, называемая обычно сбоем. Наступ- Наступление сбоя означает, что элемент не сработал или непра- неправильно сработал в течение одного такта работы автомата, g3] НАДЕЖНЫЕ СХЕМЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ 399 но отсюда никоим образом не следует, что возникшая та- таким образом мгновенная неисправность сохранится на протяжении последующих тактов. Мы будем предполагать, что сбои элемента в различные моменты времени наступают независимо друг от друга. Это предположение достаточно хорошо оправдывается на практике. Из этого предположения получится, что до- достаточно хорошую характеристику надежности работы элементов до их отказа может дать вероятность сбоя каждого элемента. Мы будем исходить из допущения, что эти вероятности остаются постоянными в течение достаточно большого промежутка времени. При этом допущении вероятность сбоя элемента может быть определена как математическое ожидание отношения чис- числа тактов, в течение которых имел место сбой рассматри- рассматриваемого элемента, к общему числу тактов N, в течение ко- которых производилась регистрация сбоев (при N^oo). Для двоичных элементов принято различать сбой в ну- нуле (состоящий в том, что элемент выдает единичный сигнал вместо нулевого) и сбой в единице (состоящий в том, что элемент выдает нулевой сигнал вместо единичного). Соответственно этому для каждого элемента определяются вероятности его сбоя в нуле и в единице. Предположим, что схема из п элементов сбивается (не- (неверно функционирует) всякий раз, когда происходит сбой хотя бы одного составляющего ее элемента (это будет обычно иметь место, как было отмечено выше, для схем с минимальным числом элементов). Если все 3j.eменты имеют одну и ту же вероятность сбоя р, то вероятность сбоя всей схемы в целом будет равна, очевидно, 1—A— р)"Щ qn. Нетрудно понять, что даже для высоко надежных элемен- элементов (отличающихся тем, что их вероятность р очень мала) при достаточно большом числе п элементов в схеме авто- автомата вероятность сбоя этого автомата (т. е. величина qn) будет весьма велика; это означает, что автомат будет работать чрезвычайно ненадежно. Современные сложные электронные цифровые автоматы состоят из многих тысяч логических и запоминающих эле- элементов, требования же к надежности их работы чрезвы- чрезвычайно высоки (вероятность сбоя автомата должна иметь по- порядок не выше одной миллиардной или даже еще меньше).
400 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI Это накладывает еще более высокие требования на на- надежность элементов, вероятность сбоя которых не долж- должна в бодьшинстве случаев превосходить 10~1а—105. В ряде случаев требования к надежности элементов оказы- оказываются практически невыполнимыми, и тогда возникает проблема построения высоконадежных схем из относи- относительно ненадежных элементов. Методы, на которых основано решение этой проблемы, сводятся к дублированию одних элементов другими, к многократному повторению, к автоматическому контролю и к исправлению работы отдельных участков схемы или всей схемы в целом. Несмотря на общность природы всех этих методов, конкретные особенности их применения в значительной мере определяются спецификой элементов, из которых строится схема. Мы опишем ниже более под- подробно случай вентильных схем, рассмотренный (на при- примере релейно-контактных схем) К. Шенноном и Э. My ром1). Предположим, что выполняются следующие условия: 1. Сбои одного и того же вентиля в различные проме- промежутки времени независимы друг от друга, 2. Сбои различных вентилей схемы независимы друг от друга. 3. Вероятности сбоев в нуле и в единице одинаковы для всех вентилей, не зависят от выбора схемы и не меняются с течением времени (первую из этих вероятностей мы будем обозначать буквой а, вторую буквой Ь). Как мы уже отмечали выше, первое условие оказывает- оказывается достаточно близким к действительному положению де- дела с реальными автоматами8). Что касается второго и треть- третьего условия, то их применимость к реальным схемам циф- цифровых автоматов может быть оправдана лишь с некоторым приближением. Тем не менее мы в дальнейших рассуждени- рассуждениях будем предполагать выполненными все три условия. Поставим теперь задачу построения таких схем, кото- которые выполняют работу одного вентиля, но обладают более ') Е. F. М о о г е, С. Е. S h a n n о n, Reliable circuits using less reliable relays. J. Franklin Inst., v. 262, № 3, 1956, p. 191—208, № 4, p. 281—297 (русский перевод: Кибернетический сборник № 1, ИЛ, М., 1960, стр. 109—148). *) Старение элементов здесь в расчет не принимается. § 3J НАДЕЖНЫЕ СХЕМЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ 401 высокой надежностью, чем отдельный вентиль. С этой целью рассмотрим произвольную вентильную схему с одним входным и с одним выходным полюсом, составлен- составленную из вентилей, управляемых одним и тем же сигналом х. Любую такую схему мы условимся называть специальной вентильной схемой. Ясно, что специальная вентильная схема является аналогом обыкновенного вентиля и может замещать любой из вентилей в произвольной вентильной схеме. Операцию замещения всех вентилей какой-либо вентильной схемы S специальной вентильной схемой Р мы договоримся на- называть подстановкой схемы Р в схему S. В ре- результате подстановки специальной вентильной схемы в любую другую специальную вентильную схему снова возникает некоторая специальная вентильная схема. Если выходной полюс специальной вентильной схемы St присоединить к входному полюсу другой специальной вентильной схемы S^, управляемой тем же самым сигналом х, что и схема iS'1, то возникающая таким образом вентиль- вентильная схема S также будет специальной вентильной схемой, в этом случае говорят, что схема S получена в результате последовательного соединения схем^ и^2. Если произвести отождествление входных полюсов схем Sx и Sz, а также их выходных полюсов, то полученная вентильная схема снова будет специальной, в этом случае говорят, что она получена в результате параллельного соединения схем S. и St. Для каждой специальной вентильной схемы можно определить функцию h(p), определяющую вероятность пропускания сигнала этой схемой (от входного полюса к выходному полюсу), зависящую от вероятности р про- пропускания (импульсного) сигнала любым наугад выбран- выбранным, вентилем схемы. Согласно принятым выше условиям, вероятность р не зависит от выбора вентиля и может при- принимать лишь два значения, а именно значение а при нуле- нулевом управляющем сигнале и значение 1—b при единичном управляющем сигнале. Определенную таким образом функцию h(p) мы усло- условимся называть функцией вероятности пропускания сигна- сигнала соответствующей специальной вентильной схемы или, кратко, h-функцией этой схемы. 26 в. М. Глушков
402 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ VI Справедливо следующее предложение '). 3. 1. Функция h(p) вероятности пропускания сигнала в произвольной специальной вентильной схеме S, состоящей из т вентилей, может быть представлена в виде т h{p)= ^Апр"{1-рГ-п, где А п обозначает число способов, которыми в схеме S может быть выбрано п вентилей так, чтобы схема пропускала сиг- сигнал от входного полюса к выходному при условии, что все выбранные вентили пропускают, а все остальные вентили схемы не пропускают (импульсный) сигнал. Справедливость предложения 3. 1 вытекает из того, что в соответствии с принятыми выше условиями вероят- вероятность пропускания импульсов любыми п вентилями рав- равна р", а вероятность непропускания импульсов осталь- остальными т—п вентилями равна A—р)т'п. Рассмотрим теперь две специальные вентильные схемы Sx и St с функциями вероятности пропускания сигнала (h-функциями), равными пг(р) и пг(р) соответственно. Предполагая, что эти схемы управляются одним и тем же сигналом х, нетрудно доказать, что /г-функция схемы, по- полученной в результате последовательного соединения схем Sl и Sz, будет равна hx(p) пг(р). Действительно, получен- полученная схема будет пропускать сигнал в том и только в том случае, когда сигнал пропускается как схемой Slt так и схемой St; поэтому вероятность пропускания сигнала схемой S будет равна произведению вероятностей про- пропускания сигналов схемами St и St.. При параллельном соединении схем Sl и St следует, очевидно, перемножать вероятности непропуска- непропускания сигналов 1—hA(p)n 1—ht(p). Наконец, при подста- подстановке схемы S2 в схему St роль вероятности р для схемы iS1, после этой подстановки будет играть вероятность пг(р), так что вероятность пропускания сигнала схемой, построенной таким образом, будет равна пх(пг(р)). Итак, мы доказали следующее предложение. ') См. работу Шейнина и нии 1 на стр. 400. укаладцую в примеча- примеча§3] НАДЕЖНЫЕ СХЕМЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ 403 3. 2. Пусть S1 и 52 являются двумя произвольными специальными вентильными схемами, управляемыми одним и тем же сигналом х, a ht(p) и пг(р) представляют собой h-функции (функции вероятности пропускания сигнала) этих схем. Тогда h-функции схем, полученных из схем St и St в результате их последовательного соединения, парал- параллельного соединения и подстановки схемы St в схему St равны соответственно ht(p) h2(p), I—A—hx(p)) A—пг(р)) и /г,(Л2Ы). Если вероятности сбоев в нуле и в единице для венти- вентилей достаточно малы, то можно строить специальные вен- вентильные схемы, имитирующие вентиль сколь угодно вы- высокой надежности, с помощью следующей конструкции. Следует построить специальную вентильную схему S, для которой /г-функция h(p) была бы меньше р в некоторой окрестности нуля и больше р в некоторой окрестности еди- единицы. Осуществляя многократную подстановку такой схемы в себя, мы можем получить, очевидно, схему, ими- имитирующую вентиль сколь угодно высокой надежности, если вероятности а и 1—b исходных вентилей находились в указанных окрестностях нуля и единицы. Схему S мы будем называть базовой схемой, а процесс многократной подстановки этой схемы в себя, при котором возникают схемы с /г-функциями h(h(.. .h(p))) — итерацией этой схемы. В качестве базовых схем можно выбрать схемы <S'1 ==<5'1(/, w) и S2=S2(l, w), получаемые следующим образом. Схема 5", представляет собой параллельное соединение w групп, каждая из которых состоит из / последовательно соеди- соединенных друг с другом вентилей. Схема St, двойственная схеме iS\, представляет собой последовательное соединение I групп, каждая из которых состоит из w параллельно сое- соединенных друг с другом вентилей. Из теоремы 3. 2 непо- непосредственно вытекает следующее предложение. 3. 3. Функции вероятности пропускания сигналов схем $\(l, w) и S (I, w) равны соответственно 1—A—p')w и A-(\-рГI. В окрестности нуля /г-функции схем St и S^ прибли- приближенно равны wpl viw'p1,то есть имеют порядок р1. В окрест- окрестности единицы эти функции допускают приближенные представления вида 1—ГA— p)w и l—l(l—p)w. Изучении 26*
404 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI этих представлений показывает, что как схема St, так и схема St могут быть использованы в качестве базовых схем при условии достаточно высокой исходной надежно- надежности вентилей. К. Шеннон и Э. Мур в работе «Надежные схе- схемы из ненадежных реле» ') используют в качестве базовой схемы схему из двусторонних вентилей, изображенную на рис. 25. Мы будем называть эту схему основной базовой Вход X Выход Рис. 25. схемой; /г-функция этой схемы может быть представлена (на основании теоремы 3. 1) в виде »' —9/Л h р) = 8рг — 6р4 — 1-/>)]• A) Поскольку входящее в формулу A) выражение в квадратных скобках положительно при 0<^/><^1, то имеет место оценка: h(p)^8p\ B) справедливая для всех возможных значений р @ ^р ^ 1). Обозначая через h (p) функцию схемы, полученной в ре- результате fe-кратной итерации основной базовой схемы S, мы сможем вывести из неравенства B) для этой функ- функции следующую очевидную оценку: то мы Поскольку 1 ') См. русский перевод в «Кибернетическом сборнике», № 1, ИЛ, М., 1960, стр. 109-148. J3] НАДЕЖНЫЕ СХЕМЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ 405 получаем оценку C) Нетрудно проверить, что /г-функция h(p) основной ба- базовой схемы удовлетворяет соотношению 1—h(p)=h(i—р). Из этого соотношения и неравенства B) мы получаем не- неравенство 1—h(p)^8(l—р)', а из последнего неравенства точно таким же приемом, какой был применен при выводе соотношения C), мы получаем неравенство D) Из неравенств C) и D) без труда выводится оценка д; я числа вентилей, с помощью которых можно построить специальную вентильную схему, обладающую заданной степенью надежности. Действительно, предположим, что мы располагаем вентилями, вероятность сбоя которых в нуле равна а0, а в единице — Ро. Допустим, что нам необ- необходимо построить специальную вентильную схему (за- (заменяющую один вентиль), имеющую вероятность сбоя в нуле не более чем а, а вероятность сбоя в единице не бо- более чем р. Используем в качестве такой схемы Л-кратпую итерацию основной базовой схемы. Тогда, поскольку вероятности сбоя в нуле и в единице для этой схемы не должны превосходить а и р, мы можем найти необхо- необходимое число итераций к как наименьшее целое число, для которого одновременно удовлетворяются два нера- неравенства: ft<ft)(a0)<cc, l-/l'*)(l_po)<p. E) Используя соотношения C) и D), мы можем заменить эти неравенства следующими неравенствами: JL = F) Неравенства F) могут быть решены относительно к .1 о . 1 при ао<^-т=- и Ро^ г?-=, то есть в том случае, если исход- исходные вентили, использованные для построения схемы, обла- обладают достаточной (хотя, может быть, и не слишком
406 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI высокой) надежностью (то есть вероятность их сбоя как в нуле, так и в единице не превосходит —?=^=0,353). Чтобы не производить двойного логарифмирования при определении к, воспользуемся неравенством F) сразу для определения числа вентилей 7V в специальной вен- вентильной схеме, обеспечивающей заданную надежность (вероятность сбоя в нуле не выше чем а, а вероятность сбоя в единице не выше чем Р). Число вентилей в основной базовой схеме равно 9 и увеличивается в 9 раз при каждой очередной итерации. Таким образом, после Л-кратной итерации мы будем иметь 9* вентилей. Обозначая это число буквой 7V, мы приходим к выводу, что Зк=1 Из неравенств F) теперь можно вывести неравенства: У G) Эти неравенства, однако, не могут быть непосредствен- непосредственно использованы для оценки необходимого числа контак- контактов, поскольку при принятых нами допущениях это число должно обязательно быть целой степенью девятки. Необходимо поэтому произвести округления правых ча- частей неравенств G) до ближайших больших целых степе- степеней девяток. В качестве более грубых оценок можно при- применить, очевидно, простое умножение правых частей.этих неравенств на 9. В результате мы приходим к оценкам: . (8) Само собою разумеется, что неравенства G) и (8) можно (и нужно) применять лишь в том случае, когда 0 < и °<P<P< Из проведенных нами рассуждений может быть сде- сделан следующий вывод. 3.4. Если вероятности сбоев вентилей в нуле и в единице не превосходят ¦ = 0,353, то из этих вентилей может быть построена специальная вентильная схема, заменяю- заменяющая собою один вентиль и имеющая сколь угодно высокую наперед заданную надежность. •S3] НАДЕЖНЫЕ СХЕМЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ 407 Заметим, что количественное ограничение, наклады1 каемое теоремой 3.4 на надежность исходных вентилей, не является строго обязательным. К. Шеннон и Э. М у р в упоминавшейся выше работе показали, что можно построить вентильную схему сколь угодно высокой надежности, если вероятности сбоев в нуле и в единице (а0 и Ро) для исходных вентилей удовлетворяют соотно- соотношению 0<ао<^1—Ро«?1. Ясно, что такое условие является не только достаточным, но и необходимым для возможно- возможности построения правильно и надежно функционирующей вентильной схемы. Построение надежных схем из ненадежных элементов не является, разумеется, исключительной привилегией вентильных схем. Такие построения (основанные на ана- аналогичных идеях) можно осуществлять для схем, построен- построенных из любых элементов. В литературе, кроме вентиль- вентильных схем, исследован также случай схем, составленных из функциональных элементов задержки специального вида'). Необходимо отметить, однако, что возможность увели- увеличения надежности схем за счет описанных приемов не сле- следует преувеличивать. Как правило, на практике, следуя по пути Шеннона — Мура — Неймана, можно добиться существенного,— но не беспредельного — увели- увеличения надежности схем. Причина этого явления заклю- заключается в том, что описанные методы увеличения надежно- надежности не учитывают влияния многих факторов, оказываю- оказывающих существенное влияние на надежность, например, не учитывают увеличения вероятности сбоя элементов при увеличении коэффициента разветвления схемы. Не- Нетрудно видеть, что метод Шеннона — Мура приво- приводит к значительному увеличению, коэффициента разветв- разветвления: входной сигнал х, управляющий в первоначальной схеме п вентилями, после ^-кратной подстановки в эту схему основной базовой схемы должен управлять уже п-9* вентилями. Ясно, что подобное увеличение коэффи- коэффициента разветвления не может не сказаться на надежно- надежности схемы. ') См. Дж. Нейман, Вероятностная логика и синтез на- надежных организмов из ненадежных компонент. Сб. «Автоматы». ИЛ, М., 1956, стр. 68-139.
408 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI Среди других неучтенных факторов необходимо отме- отметить также ненадежность в соединениях элементов между собой, взаимозависимость сбоев в различных элементах и т. д. Значительное увеличение надежности на основе опи- описанных выше методов требует значительного увеличения числа элементов. Например, для увеличения надежности работы вентиля с 1—10"9до 1—10~10 (то есть для уменьше- уменьшения вероятности сбоев в нуле и в единице с 10"* до 10~10) необходимо, согласно неравенствам G), заменить его - г /logA0-lol/'8)\2 р./10—0,45\2 схемой, содержащей К I —— r-=L ) =К( „ . ' ) = u V log A0-«/8) J ^6—0,45 J = 2,95K—9 вентилей (здесь К — коэффициент, с помощью которого осуществляется округление до ближайшей сте- степени девятки). Таким образом, в рассматриваемом случае будет иметь место девятикратное усложнение схемы. Если при той же надежности вентиля поставить задачу увели- увеличить надежность схемы до величины 1—10"*°, то для это- этого потребуется усложнение схемы уже в 81 раз. Можно, правда, несколько уменьшить размеры требуемого увели- увеличения сложности схем, если в рассмотренных примерах воспользоваться базовой схемой, состоящей из меньшего числа вентилей, чем основная базовая схема. Тем не ме- менее это увеличение останется еще весьма значительным. В реально существующих схемах цифровых автоматов употребляются обычно другие методы увеличения надеж- надежности работы схем. Наиболее употребительным из этих методов является простое дублирование схемы автомата или некоторых ее наиболее важных частей. Самое простое решение вопроса заключается в том, чтобы поставить ря- рядом несколько совершенно идентичных между собой авто- автоматов и считать правильными лишь те результаты, кото- которые выдаются одновременно всеми или определ-енной ча- частью этих автоматов. Такое дублирование можно, разумеется, осуществить не пространственным, а временным путем, то есть, иными словами, производить многократную прогонку входного слова (условия задачи) через один и тот же автомат и при- принимать в качестве верных лишь достаточно часто повторяю- повторяющиеся результаты. При условии независимости распреде- распределения сбоев во времени такой метод, очевидно, вполне эк- § 3] НАДЕЖНЫЕ СХЕМЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ 409 вивалентен методу физического (пространственного) дуб- чирования автоматов. С целью увеличения надежности цифровых автоматов употребляются также специальные методы кодирования, позволяющие автоматически обнару- кивать — и даже исправлять — ошибки, получающиеся } результате сбоев. В большинстве современных цифровых автоматов ин- информация естественно делится на слова (в двоичном ал- алфавите), имеющие вполне определенную длину. Добав- тяя в коды этих слов новые разряды, можно использовать ix для хранения информации, позволяющей обнаруживать г исправлять ошибки в коде, возникающие в результате ;боев. Подобные удлиненные коды являются избыточ- избыточными,.™ есть содержат большее число разрядов, чем то, которое действительно необходимо для представления имеющейся информации. Различают избыточные коды с обнаружением ошибок i избыточные коды с исправлением ошибок. Коды с исп рав- равнением ошибок называются также самокорректирующи- самокорректирующимися кодами. Простейший избыточный код с обнаружением эдной ошибки (ошибки в одном разряде) может эыть получен следующим образом. К обычному двоично- двоичному коду р длины п прибавляется дополнительный двоич- двоичный разряд х, в который помещается нуль или единица гак, чтобы сумма по модулю 2 всех разрядов получен- полученного таким образом кода q=px длины пг\-1 была равна нулю. Неравенство нулю этой суммы будет свидетельст- свидетельствовать, очевидно, о том, что имеется ошибка в нечетном числе разрядов кода q (не исключая и дополнительного разряда х). Поскольку одновременное появление несколь- нескольких ошибок (при предположении о независимости сбоев) гораздо менее вероятно, чем появление одной ошибки, го указанная ситуация (неравенство нулю поразрядной суммы) будет практически возникать в тех и только в тех случаях, когда код ошибочен. Более интересными являются самокорректирующиеся коды, позволяющие не только обнаруживать, но и исправ- исправлять ошибки, возникающие в результате сбоев. Рас- Рассмотрим в качестве примера простейший коде
410 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI исправлением одной ошибки, называе- называемый обычно кодом Хэмминга '). Кодом Хэмминга (с исправлением одной ошибки) назы- называется двоичный код хтхт_1. . ,х1, в котором фиксирована некоторая нумерация разрядов, acyMMhixii-\-Xi2-\-...-\-xir (по модулю два) некоторых (определяемых ниже) групп разрядов равны нулю. Мы примем нумерацию разрядов кода справа налево, а группы разрядов, о которых идет речь в опре- определении кода Хэмминга, определим следующим образом: в i-ю группу отнесем все те разряды, номера которых в двоичном представлении имеют единицу в i-м разряде (считая справа налево). Таким образом, первую группу составят разряды с номерами 1,3, 5, 7,..., вторую группу— разряды с номерами 2,3, 6, 7,..., третью группу — разряды с номерами 4, 5, 6, 7,... и т. д. Ясно,что наименьший номер, попадающий в i-ю груп-: пу, будет всегда равен 2'. Следовательно, если число 2' превышает число разрядов в коде, то г-я группа разрядов этого кода будет пустой (не будет содержать ни одного разряда). В последующем мы будем исключать из рас- рассмотрения пустые группы и будем иметь дело исключи- исключительно с непустыми группами разрядов. Сумму по модулю два всех разрядов i-й группы рассматриваемого кода х=хтхт_1...х1 мы условимся обозначать через at(x). Рассмотрим теперь произвольный л-разрядный двоич- двоичный код хпхп_1...х1. Добавим к нему р новых (двоичных) разрядовхп+рхп+р_1...хп + 1, выбирая в качестве р наимень- наименьшее целое положительное число, удовлетворяющее нера- неравенству >f + . (9) Ясно, что такое неравенство всегда имеет решение. По- Потребуем теперь, чтобы построенный нами (я-|-/^-разряд- (я-|-/^-разрядный код был кодом Хэмминга. Это означает, что зна- значения xn .,xn ni1n+p добавляемых разрядов должны быть выбраны так, чтобы удовлетворялись соотношениям: о1(х) = 0, а,(дс) = О, .... a,(*) = 0. A0) ') A. W. Hamming, Error detecting and error correcting со des. Bell System. Tech. J., v. 29, № 2, 1950, p. 147—160. §3] НАДЕЖНЫЕ СХЕМЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ 411 Из неравенства (9) и сделанного выше замечания от- относительно пустых групп разрядов вытекает, что р-я группа разрядов кода х будет непустой, а (р-{-1)-я и все последующие группы разрядов непременно пусты. Поэтому в системе A0) будет ровно р уравнений. Нетрудно пока- показать, что из этих уравнений всегда (и притом однозначным образом) могут быть определены значения всех добавляе- добавляемых разрядов хп + 1,... , хп+р. Ввиду роли, которую играют эти разряды, мы условимся называть их вспомога- вспомогательными, а разряды хп,..., хх— основными разрядами кода х. Суммы (по модулю два) о1 = а1(х),...,ор=ор(х) мы на- назовем контрольными суммами кода х, а двоичный код а а...а,, составленный из этих кодов,— контрольным кодом кода х. Для построенного нами кода Хэммингас исправ- исправлением одной ошибки справедливо следующее предло- предложение. 3.5. Если в коде Хэмминга (с исправлением одной ошиб- ошибки) возникла единственная ошибка в каком-либо разряде (безразлично, в основном или во вспомогательном), то конт- контрольный код полученного ошибочного кода будет совпадать с двоичным представлением номера разряда, в котором возникла ошибка. В самом деле, ошибка в k-м разряде кода Хэмминга превратит в единицы все те и только те контрольные сум- суммы ор которые содержат в своем составе k-й разряд кода х, остальные же контрольные суммы останутся нулями. В силу принятого выше определения групп разрядов i-я группа разрядов, составляющая контрольную сумму оп тогда и только тогда содержит k-й разряд, когда в двоич- двоичном представлении числа к на i-м месте стоит единица. Из сопоставления этих двух утверждений немедленно вы- вытекает справедливость теоремы 3.5. Благодаря тому, что коды, с которыми мы имеем дело, являются двоичными, знание разряда, в котором возникла ошибка, позволяет исправить эту ошибку. Для этой цели достаточно заменить цифру @ или 1), стоящую в указанном разряде, на противоположную. При построе- построении схем автоматов, оперирующих с кодами X э м м и н- г а, в них включают специальные корректирующие схемы,
412 НЕКОТОРЫЕ ПРОБЛЕМЫ НАДЕЖНОСТИ [Гл. VI которые производят подсчет контрольных сумм и авто- автоматическое исправление возникшей (одиночной) ошибки в соответствии с только что описанным правилом. В ряде случаев не делают специальных корректирующих схем, а для исправления ошибок в кодах вводят дополнительные такты работы автомата. Метод исправления при этом ос- остается прежним (через вычисление контрольных сумм). В связи с описанными возможностями автоматического исправления (одиночной) ошибки в кодах Хэмминга, эти коды принято. называть самокорректирую- самокорректирующимися. Рассмотрим процесс построения кода Хэмминга и исправления возникающей (одиночной) ошибки на примере. Предположим, что первоначальный код х имел вид х= 101100. Поскольку длина этого кода равна 6, из неравенства (9) мы находим, что число вспомогательных разрядов должно быть наименьшим натуральным числом, удовлетворяющим неравенству 2^^7+р. Отсюда легко находится значение /?=4. Таким образом, для построения требуемого кода необходимо иметь четыре вспомогатель- вспомогательных разряда. Обозначим эти разряды через у^угугуг. Тогда код Хэмминга, соответствующий коду х, бу- будет иметь вид y=yj/,yiy1i0110O=ytiytytylxtx.xtx,xtxl, где значения вспомогательных разрядов определяются из уравнений (сложение здесь понимается как сложение по модулю два): + 1=0, Из этих уравнений находим решение: Таким образом, искомый код Хэмминга будет иметь вид ?/ = 0110101100. Предположим теперь, что в результате ошибки в седь- седьмом разряде этот код превратился в код 0111101100 = у'. § 3] НАДЕЖНЫЕ СХЕМЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ 413 Найдем контрольные суммы: Контрольный код ояагага1 равен 0111. Поскольку 0111 есть не что иное, как двоичное представление числа 7, то в результате проверки обнаруживается, что ошибка возникла в седьмом разряде, что и имело место на самом деле. Заметим, что благодаря произвольности порядка ну- нумерации разрядов, совершенно безразлично, каким обра- образом будут размещены вспомогательные разряды по отно- отношению к основным. Можно, в частности, приписывать вспомогательные разряды не слева от основных, как было сделано выше, а справа. Нетрудно произвести обобщение введенных кодов, С этой целью рассмотрим понятие расстояния между дву- двумя двоичными кодами равной длины, определив его как сум- суммарное число разрядов, в которых эти коды различаются между собой. Например, расстояние между кодами ОНО и ООН равно, согласно этому определению, двум, а расстоя- расстояние между кодами 010 и 011—единице. Систему двоичных кодов равной длины назовем системой кодов ранга п, если расстояние между любыми двумя различными ко- кодами этой системы не меньше чем п, причем существует пара различных кодов, расстояние между которыми в точности равно п. Если в автомате употребляется система кодов ранга 2, то она дает возможность, очевидно, обнаруживать одиночную ошибку; система кодов ранга 3 поз- позволяет исправлять одиночную ошибку; си- система кодов ранга 4 дает возможность исправления одиночной и обнаружения двойной ошибки: при употреблении системы кодов ранга 5 мож- можно исправлять двойную ошибку, и т. д.
ГЛАВА Vli АЛГОРИТМИЧЕСКАЯ СТРУКТУРА СОВРЕМЕННЫХ УНИВЕРСАЛЬНЫХ ЦИФРОВЫХ МАШИН § 1. Принцип программного управления. Блок-схема универсального программного автомата Развитые в предыдущих главах методы синтеза схем автоматов с памятью оказываются пригодными в основном для синтеза автоматов с относительно небольшим числом состояний. В случае синтеза сложных автоматов приме- применению этих методов предпосылается обычно еще один этап, называемый этапом блочного синтеза. Смысл этого этапа заключается в том, что на основе знания алгоритма, который должен быть реализован синтезируемым автома- автоматом, схема автомата разбивается на ряд отдельных участ- участков, называемых блоками, и производится определение условий работы этих блоков (то есть определение реали- реализуемых ими алгоритмов, или логических функций). Одновременно с этим обычно производится циклирова- ние работы отдельных блоков; циклирование блоков состоит в том, что автоматное время для каждого блока раз- разбивается на группы тактов. Условия работы блока опре- определяются таким образом, чтобы они повторялись на каж- каждой из этих групп. Более точно, реализуемое блоком отоб- отображение определяется лишь на тех входных словах, которые воспринимаются блоком в течение одного цикла. На протяжении каждого из следующих циклов блок бу- будет реализовать то же самое отображение, что и в первом цикле, хотя и с другой, вообще говоря, входной инфор- информацией. Поскольку разбиение на блоки и циклирование работы автомата осуществляется на основе свойств реализуемого ПРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ 415 автоматом алгоритма, этап блочного синтеза (вместе с циклированием) автомата называют обычно также эта- этапом алгоритмического синтеза. С этапом блочного синтеза мы фактически уже встречались выше, мы имели с ним дело, например, при синтезе схемы параллельного сум- сумматора в предыдущей главе (§ 2, пример 2). В этом при- примере блоками являются схемы отдельных разрядов сум- сумматора, а рабочий цикл состоит из одного такта, поскольку в каждом новом такте схема осуществляет новое сло- сложение. Как уже отмечалось выше, при создании надлежа- надлежащих условий для работы параллельных сумматоров чаще всего употребляется рабочий цикл, состоящий из двух тактов: такта поразрядного сложения и такта реализации переносов. При синтезе особо сложных автоматов этап блочного синтеза может быть многоступенчатым. Это значит, что после первого разбиения на блоки и циклиро- вания к каждому из построенных блоков (или к некоторым из них) снова применяется прием разбиения на блоки и циклирования и т. д. В соответствии с этим различаются блоки и циклы первой ступени, второй ступени и т. д. Счет ступеней оказывается удобным производить в на- направлении, обратном процессу их фактического получе- получения, то есть, иначе говоря, блоками и циклами первой ступени считать не самые крупные, а самые мелкие блоки и циклы. Этап блочного синтеза при синтезе различных цифро- цифровых автоматов варьируется в очень широких пределах. Общих методов блочного синтеза (применительно к циф- цифровым автоматам произвольного назначения) в настоящее время не существует. В настоящей' главе мы опишем про- процесс блочного синтеза применительно лишь к одному клас- классу автоматов, наиболее широко распространенному в настоящее время, а именно к классу универсальных про- программных автоматов, известных обычно под именем уни- универсальных цифровых вычислительных машин с программ- программным управлением. В основу этих автоматов положен так называемый принцип программного управления, использующий опе- рационно-адресную организацию управления алгоритми- алгоритмическим процессом.
416 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII Суть этого принципа заключается в следующем. Инфор- Информация, с которой оперирует автомат, разделяется на две части: на собственно входную информа- информацию и на информацию об алгоритме, который должен быть реализован рассматриваемым авто- автоматом. Информация об алгоритме называется обычно программой. Хотя всю информацию, воспринимаемую ав- автоматом, можно считать одним словом, при ко- командно-адресной организации управления эту информа- информацию делят на более мелкие слова. В соответствии с при- принадлежностью информации к одному из двух описанных выше видов различают информационные слова (называемые ь дальнейшем просто словами или числами) и программные слова (называемые обычно командами или приказами). Чаще всего все слова (а равным образом и все команды; в автомате имеют одинаковую длину; обычно стремятся к тому, чтобы эта длина была одинаковой для информацион- информационных слов и для команд. Каждое слово (как информацион- информационное, так и программное) хранится в определенной части памяти (то есть в определенной группе запоминающих элементов) автомата, называемой ячейкой памяти. Ячей- Ячейки памяти, а следовательно, и содержащиеся в них слова, нумеруются натуральными числами, называемыми . адре- адресами этих ячеек. Каждая команда осуществляет элементарный акт пре- преобразования информации, называемый операцией. Опера- Операция выполняется с одним или с несколькими словами (ин- (информационными или программными), задаваемыми своими адресами. В соответствии с этим код команды (программное слово) составляется из двух частей — операционной и адресной. В операционной част.и указывается код (ус- (условный номер) операции, выполняемой данной командой, в адресной части — адреса слов, над ко- которыми должна выполняться данная операция. В соот- соответствии с числом этих адресов различают одноадресные, двухадресные, трехадресные и четырехадресные команды. Команды с числом адресов, большим, чем четыре, на прак- практике обычно не используются. При построении автоматов, реализующих вычислитель' ные алгоритмы, одним из наиболее употребительных типов i 1] ЦРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ 417 операций являются обычные арифметические операции: сложение, вычитание, умножение и деление. Каждая из таких операций выполняется над двумя информацион- информационными словами (числами), а ее результатом является одно информационное слово. Для указания ячеек, в которых должны храниться эти слова, необходимо иметь три адреса. Таким образом, для вычислительных алгоритмов пред- представляется целесообразным иметь по крайней мере трех- трехад ресную систему команд. В действительности, кроме выполнения самих опера- операций, необходимо обеспечить еще определенный порядок следования команд. Различают два вида такого порядка: естественный и принудительный. При естественном по- порядке следования команд после выполнения каждой оче- очередной команды выполняется команда, расположенная в следующей по порядку ячейке памяти, то есть в ячейке памяти, адрес которой на единицу больше адреса выполненной команды. В случае принудитель- принудительного порядка следования команд адрес ячейки, в которой хранится следующая команда, указывается в адресной части предыдущей (выполняемой) команды. В соответствии со сказанным, для выполнения вычис- вычислительных алгоритмов целесообразно иметь либо трехад- ресную систему команд (с естественным порядком следо- следования), либо четырехадресную систему команд (с принуди- принудительным порядком следования). В последнем случае четвертый адрес в команде используется для указания адреса следующей команды программы. Обычный рабочий цикл программного автомата, имею- имеющего трех- или четырехадресную систему команд, состоит из следующих шагов: 1) выборка из памяти первого информационного сло- слова А (по первому адресу команды); 2) выборка из памяти («чтение») второго информацион- информационного слова В (по второму адресу команды); 3) выполнение операции над выбранными словами А и В в соответствии с кодом операции выполняемой коман- команды и получение результата операции,— некоторого сло- слова С; 4) запись результата (то есть слова С) в память (по третьему адресу команды); 27 В. М. Глушков
4i8 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII 5) выборка из памяти следующей команды (в случае трехадресной системы эта выборка производится из сле- следующей по порядку ячейки памяти, в случае четырех- четырехадресной системы — из той ячейки памяти, которая ука- указана в четвертом адресе выполняемой команды). В ряде случаев более удобно считать, что рабочий цикл автомата начинается с выборки из памяти той команды, которая должна выполняться на последующих шагах этого цикла. В случае команд меньшей адресности (т. е. одноадресных или двухадресных) этот цикл выполняется с помощью нескольких команд. Рабочий цикл автомата в этом случае занимает лишь некоторую часть описанного цикла. Так, в случае одноадресной системы команд с есте- естественным порядком их следования в течение одного обыч- обычного рабочего цикла выполняется либо чтение, либо за- запись (в соответствии с кодом операции) информационного слова в память автомата (по адресу, указанному в коман- команде) и выборка следующей по порядку команды. Опи- Описанный выше нормальный трехадресный цикл может быть выполнен, очевидно, в течение трех одноадресных циклов. Важной особенностью современных универсальных программных автоматов является наличие у них таких операций, которые позволяют изменять команды про- программы (точнее, их адресную часть), а также менять по- порядок следования команд в зависимости от результатов, полученных после выполнения операций над информацион- информационными словами. Операции первого вида принято называть операциями переадресации, а операции второго вида — операциями условного перехода. Будем для определенности, рассматривать какую- нибудь одну возможную реализацию этих операций. Опе- Операцию переадресации можно задать трехад- трехадресной командой, в первом адресе которой указывается адрес переадресуемой команды, во втором — константа переадресации, состоящая из трех отдельных констант (для всех трех адресов переадресуемой команды), а на месте третьего адреса записывается адрес ячейки, в кото- которую направляется переадресованная команда. На прак- практике удобно пользоваться различными константами переад- переадресации, однако для целей настоящего параграфа доста- ПРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ 419 точно рассматривать переадресации (то есть изменения адресов команд) лишь на ±1. Операцию условного перехода мы также будем задавать трехадресной командой. При вы- выполнении этой команды, слово, выбранное на основании первого адреса команды, сравнивается со словом, вы- выбранным на основании ее вторэго адреса. В случае несов- несовпадения выбранных слов выбирается следующая по по- порядку команда, а в случае совпадения — команда, на- находящаяся в ячейке, адресом которой служит третий адрес команды условного перехода. Определенную таким образом операцию мы будем называть операцией условного перехода по точному совпадению слов. Для построения универсальных программных автома- автоматов большое значение имеют еще три операции, а именно операции пересылки, ввода и вывода. Операция пересылки может быть реализована в виде двухадресной команды, при выполнении которой слово из ячейки с адресом, равным первому адресу команды, пересылается в ячейку с адресом, равным второму адресу команды. В случае большего числа адресных мест в ко- команде остальные адреса не используются. Операция ввода может быть реализована вообще без использования адресов. При выполнении этой операции информация (в виде последовательности слов), подаваемая на специальное вводное устройство, записы- записывается в последовательно расположенные ячейки памяти (начиная с некоторой ячейки). Обычно оказывается целе- целесообразным использовать адресную часть команды для указания ячейки, в которую помещается первое вводи- вводимое слово. Операция вывода состоит в выводе из автомата через спе- специальное выводное устройство последова- последовательно, слово за словом, содержимого всех ячеек памяти автомата, адреса которых заключены между двумя за- заданными числами а и Ь. Эти числа указываются в двух адресах команды, реализующей операцию вывода. Для наших целей более удобно считать, что операция вывода состоит в выводе содержимого всех ячеек памяти, начиная с ячейки заданного адреса, вплоть до ячейки, в которой записано определенное слово, чаще всего (при 27*
420 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII двоичном структурном алфавите) слово, состоящее из од^ них нулей. Такую операцию вывода легко реализовать с помощью обычной команды вывода (с указанием границ а и Ь выводимого массива ячеек), а также команд переадре- переадресации и условного перехода. Память в автомате предполагается устроенной таким образом, что при выборе (считывании) слбва из какой- либо ячейки памяти информация в этой ячейке не раз- разрушается, так что выборка слова из любой данной ячейки может осуществляться неограниченное число раз, коль скоро это слово было помещено в ячейку. При записи в ячейку нового слова содержавшаяся в ней ранее инфор- информация уничтожается. Программным автоматом мы будем называть цифровой автомат, основанный на принципе программного управле- управления в том виде, в каком он был изложен выше, и имеющий в числе своих операций операции ввода и вывода. В произ- произвольных программных автоматах набор операций, реализуемых автоматом, не обязан, вообще говоря, со- содержать описанные выше операции переадресации, услов- условного перехода и пересылки. Наличие этих операций ока- оказывается существенным лишь для универсальности ав- автомата. 1.1. Говорят, что программный автомат универсален, или, более точно, что он обладает универсальным набором операций, если любой алгоритм может быть представлен в виде конечного набора выполняемых этим автоматом ко- команд (программы работы автомата) и фактически реа- реализован им при условии игнорирования ограничений, на- накладываемых конечностью объема памяти (числа ячеек па- памяти) автомата. Реализация алгоритма автоматом, о которой идет речь в приведенном определении, предусматривает возмож- возможность изменения кодирования входной и выходной ин- информации, в частности возможность записи входной и выходной информации в каком-либо фиксированном (не зависящем от выбора алгоритма) алфавите. Точный смысл термина «реализация алгоритма» может быть определен следующим образом. Если дан произвольный алгоритм ср, то его можно с помощью простейших побуквенных преобразований вход- II] ПРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ 421 ной и выходной информации (см. главу 1, §-2) преобразо- преобразовать в алгоритм ij) так, что, вводя в данный программный автомат А информацию об алгоритме ty (состоящую из конечного числа команд и информационных слов и зависящую только от алгоритма ty) и любое входное слово р алгоритма ¦ф, которое преобразуется алгоритмом ij> во вполне опреде- определенное выходное слово q=ty(p), мы всегда через конечное число циклов работы автомата получим слово q на выходе вывод- выводного устройства автомата А. При этом мы, не взирая на фактический объем памяти автомата А, предполагаем, что этот объем достаточен для того, чтобы поместить как программу работы автомата, так и всю необходимую для его работы информацию (входное слово р, выходное слово q и всю промежуточную информацию, которая возникает в процессе работы автомата). Подчеркивая зависимость программы только от алгоритма ij), мы исключаем тем самым возможность зави- зависимости ее от вида входного слова р. Ясно, что если бы мы не исключили указанную зависимость, то существовала бы возможность строить тривиальные программы, дающие верный ответ лишь для данного входного слова р (или не- некоторого множества входных слов), в то время как нам требуется такая программа, которая обеспечивала бы по- получение правильного ответа для любого входного слова, принадлежащего области определения алгоритма ty. Упо- Упомянутые выше тривиальные программы можно было бы строить, вводя вместе со словом р соответствующее ему выходное слово q=ty(p). Программа в таком слу- случае могла бы состоять из одной единственной команды вывода. С учетом всех сделанных замечаний оказывается спра- справедливым следующее важное предложение. 1.2. Программный автомат является универсальным, если в набор его операций, кроме операций ввода и вывода, входят также операции пересылки, переадресации на ± 1 и условного перехода по точному совпадению слов. Полное доказательство предложения 1.2 с изложением всех входящих в него подробностей достаточно громоздко. Мы ограничимся поэтому лишь тем, что наметим общий ход этого доказательства, изложив наиболее существен- существенные его стороны.
422 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII ПРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ 423 Прежде всего, имея в виду замечание, сделанное в кон- конце § 3 гл. 1, мы можем предполагать при реализации ал- алгоритмов в автомате, что все эти алгоритмы являются нормальными алгоритмами Маркова. Поскольку при определении реализации алгоритмов в ав- автомате предусматривалась возможность произвольного перекодирования входной и выходной информации, мы можем предполагать, что все алгоритмы, о которых будет итти речь, имеют фиксированный входной и выходной алфавит х=(х1, хг,...,хп). Мы будем предполагать также, что размер ячеек па- памяти рассматриваемого автомата достаточен для того, чтобы в ней могло помещаться 2га+4 различных кода, а именно коды, представляющие га букв ж,,..., хп, и спе- специально вводимых дубликатов х1,..., хп этих букв, три кода, представляющих используемые при записи нор- нормальных алгоритмов знаки (стрелку, стрелку с точкой, знак раздела между формулами подстановок) и специаль- специальный пустой код (состоящий из нулей), заполняющий ячейки, в которые не записывалась никакая информация. Заметим, впрочем, что если размер ячеек окажется не- недостаточным для помещения указанных кодов, каждый такой код может быть помещен в нескольких соседних ячейках. С некоторым усложнением доказательство тео- теоремы 1.2 может быть проведено и в этом случае. Пусть нам задан теперь произвольный (нормальный) алгоритм ф (в алфавите х) и произвольный программный автомат А, в набор операций которого входят операции пе- пересылки, переадресации на ±1 и условного перехода по точному совпадению слов. Разобьем память автомата А (предполагаемую неограниченной) на пять частей, в пер- первую из которых введем программу работы автомата (оп- (определяемую ниже), во вторую — таблицу подстановок алгоритма ф (см. главу 1, §3), а в третью — произвольное слово р во входном алфавите (х) алгоритма ф. Будем предполагать, что первая часть памяти включает в себя все ячейки с адресами от гао+1 до га,, вторая — все ячейки с адресами от га,+1 до га2, а третья — все ячейки с адре- адресами от га,+1 до га,. В четвертую часть памяти, включаю- включающую в себя ячейки с адресами от 1 до га0, мы введем неко- некоторые постоянные коды, общие для всех алгоритмов ф (коды всех букв я, хп и из дубликатов, коды стрелки, стрелки с точкой, знака раздела и пустой" код). Пятая часть памяти, состоящая из ячеек с адресами от га,+ 1- до оо, вначале заполняется пустыми (нулевыми) кодами. Мы будем предполагать также, что пустые коды помещены в ячейках с адресами га0, га,, га,, га,, лежащих на границах выделенных частей памяти. Таблица подстановок алгоритма ф и входное слово р выписываются (начиная с ячеек nt+i и nt-ti) последова- последовательно, буква за буквой и подстановка за подстановкой в следующие друг за другом ячейки памяти. В каждую ячейку помещается по одной букве, включая символы стрелки, стрелки с точкой и знаки раздела между подста- подстановками. Поясним теперь способ составления программы для реализации алгоритма ф. Для определенности допустим, что мы имеем дело с трехадресной системой команд, работающей в условиях естественного следования команд. В программе, реализующей алгоритм ф, первой, после команд ввода информации, будет стоять команда Кг уст ловного перехода по точному совпадению слова, называем мая для краткости командой У П. Эта команда должна осуществлять сравнение кодов в ячейках с адресами га, + 1 и nt-\-\ (первой б>квы первой подстановки алгоритма ц> и первой буквы входного слова). Следующей должна стоять команда Кг переадресации второго адреса предыдущей команды на +1 и еще некоторые команды переадресации» а вслед за ними команда УП К:, сравнивающая два кода, выбираемые из какой-либо одной ячейки, и осуществляю- осуществляющая поэтому безусловный переход к команде, указанной по ее третьему адресу. В качестве такой команды должна фигурировать, очевидно, переадресованная команда Kti с тем, чтобы автомат после неудачи первого сравнения стал сравнивать первую букву первой подстановки алгоритма ф со второй буквой входного слова р. В случае удачи первого сравнения, выполненного командой JsT,, мы долж- должны по третьему адресу этой команды отправляться к ко- команде Кг осуществляющей сравнение кода в ячейке гаг+1 с кодом буквы я,, запасенном в одной из постоянных ячеек четвертой части памяти.
424 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII Вслед за этой командой должны стоять команды, осу- осуществляющие аналогичные сравнения кода в ячейке /г,+1 с кодами букв хг,..., хп. В случае удачи любого из этих сравнений (скажем, с буквой xk) должна осуществляться команда пересылки кода xk (дубликата буквы xk, запасен- запасенного в одной из ячеек четвертой части памяти) в ячейку с адресом «,+1. При этом как упомянутые команды срав- сравнения, так и команды пересылок должны переадресовы- переадресовываться (во втором адресе на +1) командами переадресации, расположенными непосредственно вслед за командой Kt. Продолжая подобным образом, мы можем построить программу, состоящую из конечного числа команд пере- пересылки, переадресации и условного перехода, которая находит первое вхождение левой части первой формулы из таблицы подстановок алгоритма ф и заменяет все бук- буквы этого вхождения их дубликатами. Затем, используя аналогичные приемы, можно пост- построить программу, заменяющую найденное вхождение ле- левой части формулы подстановки ее правой частью. При этом необходимо осуществлять раздвигание частей слова, предшествующих этому вхождению и следующих за ним. Нетрудно понять, что все указанные преобразования мож- можно осуществить, пользуясь только операциями пересыл- пересылки, переадресации и условного перехода. В случае отсутствия вхождения левой части первой формулы таблицы подстановок во входное слово все команды первой программы, за исключением команд, пер- первые адреса которых относятся к четвертой зоне памяти (от 1 до п0), должны быть переадресованы по первому ад- адресу на величину, равную количеству букв в первой фор- формуле (включая стрелку и знак раздела). Такая переадре- переадресация может быть выполнена с помощью конечного числа переадресаций на +1. В результате мы будем иметь воз- возможность повторить с помощью уже построенной части программы поиск вхождения левой части второй формулы и замену этого вхождения правой частью формулы. Если не ставить себе целью экономное расходование команд, можно составить программу, отводя отдельную команду УП для сравнения каждой буквы из левых ча- частей нодстановок (переадресуемой) с буквой входного слова и тем самым избежать переадресаций во всех зонах ПРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ 425 памяти, кроме третьей. Переадресации же в третьей зоне принципиально нельзя избежать, поскольку входное слово может иметь сколь угодно большую длину. Если не использовать переадресации, то на все возможные срав- сравнения потребовалось бы в таком случае бесконечное чис- число команд. Проведенные рассуждения дают читателю достаточное понятие о том, каким образом может быть построена пол- полная программа, выполняющая работу заданного нормаль- нормального алгоритма ср. Заметим, что такая программа будет состоять исключительно из команд пересылки, переадре- переадресации и условного перехода. Лишь в начале и в конце программы будут стоять команды, обеспечивающие соот- соответственно ввод и вывод информации из автомата. Мы мо- можем, следовательно, считать теорему 1.2 доказанной. Хотя теорема 1.2 и показывает, что свойство универ- универсальности достигается посредством использования весьма ограниченного набора операций, тем не менее при построе- построении реальных универсальных программных автоматов стремятся обычно к расширению этого набора. Такое рас- расширение осуществляется прежде всего за счет арифмети- арифметических операций. В набор операций вводятся обычно так- также различные логические операции, например пораз- поразрядное логическое умножение и поразрядная дизъюнкция (двоичных) кодов: (х„ хг, ... ,xn)-(yvy2, ... . уп) = (хлуу, хгуг. ... , хпу „), (Х„ Хг, ... , Zn)v(y,, Уг yn) = (x^yi,X1vyt,. . .,Xnvyn). Весьма полезными оказываются различные операции сдвига кодов: правый сдвиг, преобразующий код (xt, xt,..., хп) в код @, я,, xt,...,xn_l),левый сдвиг, преобра- преобразующий код (.г,, хг,...,ха) в код (хг,хг,...,хп,0), левый и пра- правый циклические сдвиги, преобразующие код (ж,, хг,..., хп) соответственно в коды (х2, хг,...,хп, xj и (xn,xt, ,...,xn_j и др. Для того чтобы не держать в рабочем режиме автомат после того, как он выдаст всю предусмотренную в про- программе информацию, имеется специальная команда, вы- выключающая автомат. Эта команда получила в литературе по электронным вычислительным машинам название ко- команды останова. Наконец, в больших универсальных
426 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII программных автоматах обычно существует память двух видов: оперативная память, имеющая относительно не- небольшой объем и отличающаяся относительно высоким быстродействием, и внешняя память, имеющая значитель- значительно больший объем, но значительно меньшую скорость действия. В соответствии с этим в набор операций автомата включаются операции, осуществляющие обмен инфор- информацией между оперативной и внешней памятью (в одну и в другую сторону). Команды тако- такого обмена имеют почти такую же структуру, как и команды ввода и вывода. Различие состоит лишь в необходимости указания граничных адресов передаваемой информации не только в оперативной, но и во внешней памяти. Блок-схема современных универсальных программных автоматов состоит из пяти основных блоков: 1) запоми- запоминающего устройства (ЗУ), арифметического устройства (АУ), 3) устройства управления (УУ), 4) вводного устрой- устройства (ввод) и 5) выводного устройства (вывод). Как уже отмечалось выше, в больших универсальных автоматах запоминающее устройство разбивается на два блока: 1) оперативное запоминающее устройство (ОЗУ) и 2) внешнее запоминающее устройство (ВЗУ). Каждый из указанных блоков имеет свое особое назна- назначение и выполняет определенные функции в работе уни- универсального программного автомата. Назначение уст- устройства управления состоит в координации действий всех остальных устройств автомата. В син- синхронных автоматах в состав устройства управления входит обычно тактирующий генератор, за- задающий (с какой-либо постоянной частотой) моменты из- изменения состояний отдельных устройств автомата. Ча- Частота сигналов, выдаваемых этим генератором, называется рабочей частотой рассматриваемого универсального ав- автомата. В современных быстродействующих универсаль- универсальных электронных цифровых машинах эта частота изме- измеряется сотнями тысяч и даже миллионами герц (колебаний в секунду). Оперативное запоминающее уст- устройство служит для запоминания (записи) и хра- хранения информации (информационных и программных слов) и характеризуется возможностью быстрого.. извлечения ПРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ 427 (чтения) записанной информации и пересылки ее в дру- другие блоки в соответствии с сигналами, поступающими из УУ. В настоящее время наиболее употребительными яв- являются оперативные запоминающие устройства, по- построенные на миниатюрных магнитных (ферритовых) кольцах. Внешнее запоминающее устройст- в о служит резервом для оперативного запоминающего устройства; оно получает из оперативного запоминающего устройства информацию, предназначенную для относи- относительно длительного хранения, и передает в оператив- оперативное запоминающее устройство ту информацию, которая требуется в соответствии с сигналами, поступающими из УУ. Обычно обмен информации между ОЗУ и ВЗУ осу- осуществляется не посредством пересылки одиночных слов, а посредством передачи целых групп слов, называемых массивами. Внешние запоминающие устройства реальных автоматов изготавливаются обычно в виде магнитных лент и магнитных барабанов. Арифметическое устройство служит для выполнения арифметических, а также логических, операций над информационными словами, поступающими в него из ОЗУ по сигналам, вырабатываемым УУ. Резуль- Результаты этих операций с помощью других сигналов УУ пе- передаются на хранение в ОЗУ. Устройство ввода осуществляет (по соот- соответствующему сигналу УУ) ввод информации (информа- (информационных и программных слов), запасенной вне автомата на специальных карточках или лентах, снабженных от- отверстиями (так называемые перфорированные карты, или, коротко, перфокарты и перфорированные ленты, или, коротко, перфоленты). Эта информация поступает в ОЗУ либо непосредственно, либо после предварительного про- прохождения через АУ. Необходимость пропускания ин- информации через АУ вызывается тем обстоятельством, что числовая информация вне машины представляется обычно в привычной для человека десятичной системе счисления, а внутри машины — чаще всего в двоичной системе. Про- Пропуская числовую информацию через АУ, мы получаем возможность попутно преобразовать ее из одной системы счисления в другую.
428 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Га. VII Устройство вывода служит для автомати- автоматического печатания (по соответствующему сигналу УУ) информации, накопленной в тех или иных ячейках ОЗУ. Печатание может носить буквенный, цифровой или комби- комбинированный (буквенно-цифровой) характер. При выводе числовой информации ее также можно пропускать через АУ для автоматического перевода в десятичную систему счисления. Современные цифровые автоматы кроме выво- вывода в виде печатного текста имеют еще и другие выводные устройства, позволяющие выводить информацию на пер- перфокартах, перфолентах и т. п. ВЗУ ОЗУ АУ Ввод Вывод Устройство управления Рис. 2Ь. Обозначая направление передачи информации от од- одного блока к другому с помощью стрелок, мы можем пред- представить блок-схему универсального программного авто- автомата так, как это изображено на рис. 26. Стрелки, иду- идущие на этом рисунке от У У к другим блокам, означают направление передачи соответствующих управляющих сигналов. Стрелка, идущая из ОЗУ в УУ, соответствует передаче команд из ОЗУ в УУ, где они подвергаются рас- расшифровке и исполнению. Назначение обратной связи от АУ к УУ будет объяснено ниже (в § 3). Заметим, что хотя каждый канал передачи информации от одного блока к другому обозначен на рис. 26 одной линией, в дейст- действительности, однако, за ним может скрываться целый ряд параллельных каналов. Возможны два различных способа передачи инфор- информационных и программных слов между блоками ав- автомата. При одном способе передачи слов для передачи ПРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ 429 каждого разряда кода слова используется отдельный фи- физический канал (называемый обычно шиной), так что пе- передача всех разрядов кода производится одновременно. При другом способе передачи слов все разряды кода пе- передаются по одному и тому же физическому каналу (ши- (шине) последовательно, один за другим. Программные автоматы, в которых осуществлен пер- первый способ передачи кодов, называются параллельными, а автоматы, в которых имеет место второй способ передачи кодов, называются последовательными. Возможна, разу- разумеется, и смешанная (параллельно-последовательная) си- система передачи кодов в автомате. Скорость работы универсальных программ- программных автоматов измеряется обычно числом рабочих циклов, выполняемых автоматом в течение одной секунды. Часто различные рабочие циклы (например, циклы, соответ- соответствующие командам сложения и умножения) имеют раз- различную длительность, поэтому при определении быстро- быстродействия автомата прибегают к подсчету среднего числа циклов (команд), выполняемых им в еди- единицу времени. При этом в большинстве случаев не учитывают команд ввода, вывода и обмена информацией между ОЗУ и ВЗУ, предполагая, что машина (автомат) работает все время с оперативным запоминающим уст- устройством. Быстродействие универсального автомата, подсчитан- подсчитанное при условии работы автомата с оперативным запоми- запоминающим устройством и выраженное средним числом опе- операций (команд), выполняемых автоматом в течение одной секунды, мы будем называть номинальным быстродей- быстродействием этого автомата. {¦ Номинальное быстродействие не определяет, как пра- правило, реального времени, которое необходимо затратить, решая с помощью универсального автомата ту или иную задачу. Для подсчета реального времени решения за- задачи нужно учитывать время, затрачиваемое на ввод и на вывод информации, потери времени за счет обращения к внешнему запоминающему устройству (работающему значительно медленнее, чем ОЗУ), потери времени на мно- многократное повторение решения для получения ответа с заданной степенью надежности (в случав недостаточной
430 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА 1Гл. VII надежности автомата) и, наконец, средние потери времени (приходящиеся на данную задачу) за счет таких факто- факторов, как профилактический ремонт И устранение возни- возникающих в процессе работы неисправностей. Необходимо, далее, учитывать различную сложность операций, выполняемых автоматом. Устанавливая те или иные весовые коэффициенты для различных операций, мы получаем возможность выражать все операции через какую-нибудь одну операцию (например, сложение), при- принимаемую в качестве стандартной операции. Быстродействие универсального автомата, выраженное числом выполняемых им в единицу времени (секунду) стандартных операций и учитывающее все указанные вы- выше потери времени, мы будем называть эффективным быстродействием этого автомата. Нетрудно понять, что определенное таким образом эф- эффективное быстродействие зависит от задачи, которая ре- решается автоматом. Для определения среднего эффектив- эффективного быстродействия автомата можно воспользоваться следующим приемом. Прежде всего выделяются: конечное множество М типовых задач i?, ,..., Rn, которые должен решать рассматриваемый автомат А, эффективные быстро- быстродействия я,, vt, ...,vn автомата Л по каждой из этих задач и вероятности /?,, ..., рп введения в автомат каждой из данных задач i?,,...,Rn (равные процентам времени, за- занимаемого каждой из них в общем времени работы ав- автомата Л). Далее предполагается, чтоpl-\-pi-\-...-\-pn-=i, тогда среднее эффективное быстродействие v автомата А на множестве задач М определяется по формуле J_ Р± I ?г I 1 Рп „ — и т„ т •••т« • A) Среднее эффективное быстродействие представляет со- собою универсальный критерий эффек- эффективности программного автомата, ибо он опреде- определяет фактическую его производительность (при решении задач данного класса) и характеризует усредненным об- образом все блоки автомата. Весьма часто случается, что автомат с меньшим номинальным быстродействием, по об- обладающий большим объемом оперативной памяти, ббль- шей скоростью ввода и вывода или ббльшей надежностью, § 2] ПРИНЦИПЫ ПОСТРОЕНИЯ АРИФМЕТИЧ. УСТРОЙСТВ 431 имеет бблыпее среднее эффективное быстродействие, чем более скоростной — в смысле номинального быстродей- быстродействия — автомат. В ряде случаев оказывается целесообразным относить среднее эффективное быстродействие универсального программного автомата на единицу оборудования, затра- затраченного на его изготовление. Получаемый таким образом критерий цены эффективного быстродействия позволяет сравнивать между собой эффективность самых различных автоматов '). % 2. Принципы построения арифметических устройств Вопрос о различных способах построения арифметиче- арифметических устройств универсальных программных автоматов является одним из наиболее разработанных вопросов тео- теории таких автоматов. Ему посвящено большое число ра- работ различных авторов, среди которых мы укажем лишь монографии Р. К. Ричардса2) и М. А. Карцева*). Настоящий параграф не преследует цели дать сколько- нибудь полное изложение полученных в этой области ре- результатов или законченную классификацию различных типов арифметических устройств. Цель настоящего па- параграфа более скромная. Она заключается в том, чтобы на примере арифметического устройства какого-либо одного типа изложить некоторые общие принципы, поз- позволяющие уяснить себе методы организации переработки информации в современных универсальных программных автоматах, предназначенных для реализации вычисли- вычислительных алгоритмов. Арифметические устройства современных универсаль- универсальных программных автоматов составляются из сумматора того или иного типа и одного или нескольких регистров. Регистр представляет собою совокупность запоминающих ') Более подробно об этом критерии см. В. М. Г л у ш к о в, Два универсальных критерия эффективности вычислительных ма- машин. ДАН УССР, №4, 19Ю, стр. 477—481. г) Р. К. Ричарде, Арифметические операции на цифровых вычислительных машинах, ИЛ, М., 1957. s) M. А. Карцев, Арифметические устройства электрон- электронных цифровых машин, Физматгиз, М., 1958.
432 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА 1Гл. VII элементов, предназначенных для запоминания одного сло- слова, которые упорядочиваются в соответствии с принятым порядком расположения букв (разрядов) в слове. В ре- регистрах АУ запоминаются информационные слова, рас- рассматривающиеся обычно как числа, в других регистрах (прежде всего в регистрах УУ) могут запоминаться также и программные слова — команды. На практике наиболее употребительны регистры, состоящие из триггеров; та- такие регистры называются триггерными регистрами. Арифметические устройства в зависимости от характера их работы делятся на два больших класса: на класс п о- следовательных арифметических устройств и класс параллельных арифметических устройств. В так называемых последовательных арифметических устройствах арифметические операции выполняются по- последовательно, разряд за разрядом; в так называемых па- параллельных арифметических устройствах арифметические операции со всеми разрядами производятся одновременно. В последовательных АУ используются одноразрядные сумматоры, в параллельных — многоразрядные сумма- сумматоры (подобные сумматору, построенному нами в примере 2 из § 2 предыдущей главы). Регистры последовательных АУ также обычно не- несколько отличаются от регистров параллельных АУ. От- Отличие это состоит в том, что в параллельных АУ входные и выходные каналы каждого запоминающего элемента, входящего в состав регистра, подключаются к узлам схем, расположенным за пределами регистра, чем обеспечивает- обеспечивается возможность одновременной записи и чтения информа- информации во всех разрядах регистра. Регистры, обладающие таким свойством, мы будем называть параллельными ре- регистрами. Регистры последовательного АУ воспринимают ин- информацию через один (например, младший) разряд (на- (называемый входным разрядом) и выдают ее также через один (например, старший) разряд (называемый входным разря- разрядом). Только эти два разряда, которые мы назовем внеш- внешними, находятся в связи со схемами, расположенными вне регистра. Что же касается внутренних разрядов, то они вступают в связь друг с другом, так сказать, в виде це- цепочки; по этой цепочке сигналы могут передаваться (с за- ?2] ПРИНЦИПЫ ПОСТРОЕНИЯ АРИФМЕТИЧ. УСТРОЙСТВ 433 держкой на один такт в каждом разряде) в направлении от входного разряда к выходному. Регистры, построенные по такому принципу, мы назовем последовательными. Необходимо подчеркнуть, что способность передавать информацию от разряда к разряду не является исключи- исключительной принадлежностью лишь последовательных ре- регистров. Возможность осуществления сдвигов ин- информации вдоль регистра предусматривается обычно и в некоторых параллельных регистрах, которые называют- называются в этом случае сдвиговыми регистрами. Для случая чис- числовых кодов мы условимся, что справа располагаются младшие разряды, а слева — старшие. В соответствии с этим сдвиг в сторону младших разрядов носит название правого сдвига, а в сторону старших разрядов — левого сдвига. При проектировании арифметического устройства пер- первой основной задачей, после определения типа устройства, является определение числа регистров и выбора так назы- называемых микроопераций. Под микрооперацией мы будем понимать процесс переработки информации в автомате или в какой-либо его части, происходящий за время одного такта работы автомата (промежуток между двумя после- последовательными моментами дискретного автоматного вре- времени). Поскольку в теории вычислительных автоматов в понятие такта вкладывается обычно другой смысл, мы, чтобы избежать путаницы, будем для обозначения ука- указанного (элементарного) промежутка времени на протя- протяжении настоящего и последующего параграфа употреб- употреблять термин «м и к р о т а к т». Обычно принято все арифметические операции в па- параллельных АУ составлять из микрооперации суммиро- суммирования (раскладываемой в большинстве случаев на две микрооперации — операции поразрядного сложения и опе- операции реализации переносов), а также микроопераций сдвига и передачи кодов с одного регистра на другой. Сущест- Существует много различных способов разложения арифметиче- арифметических операций на отдельные микрооперации. Ниже мы рассмотрим в качестве примера лишь один из таких способов. Общая тенденция при выборе набора микроопераций арифметического устройства заключается в максимальном 28 В. М. Глушков
434 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII уменьшении числа различных микроопераций, посколь- поскольку введение каждой новой микрооперации связано с до- дополнительными затратами оборудования. В то же вре- время набор операций (команд), составляемых из выбранных микроопераций, стремятся сделать, по возможности, бо- более широким, поскольку наличие большего числа опера- операций, как правило, упрощает постановку задач для конст- конструируемого универсального автомата (то есть упрощает программирование). В борьбе между этими двумя противоположными тен- тенденциями выработалась такая методика выполнения ариф- арифметических операций, которая использует, в возможно большей степени, одни и те же микрооперации для осу- осуществления различных арифметических операций. Для успеха этой методики существенное значение имеют спе- специальные системы кодирования, облегчающие выполне- выполнение операций над отрицательными числами. Мы рассмотрим одну из самых распространенных систем кодирования, известную под названием системы обрат- обратных кодов. Хотя эту систему кодирования можно применять для произвольных систем счисления, мы ограничимся лишь двоичной системой. Обычный код — называемый прямым кодом — «-раз- «-разрядного двоичного числа х=хпхп_,...хх строится с помощью прибавления к нему (га+1)-го двоичного разряда хп+1, на- называемого знаковым разрядом. В случае, если число х является положительным, в знаковом разряде ставится О, если же это число является отрицательным, то в знаковом -разряде ставится 1. Обратный код для положительных чисел совпадает с прямым кодом; что же касается отрицательного числа 1хпхп_1...хх, то его сбратный код получается из прямого кода заменой ци^ры каждого из разрядов хп хп_х...хх противоположной ей цифрой хг. Число нуль имеет два обратных кода, первый из которых состоит из одних ну- нулей, а второй — из одних единиц. Условимся в качестве обратного кода нуля фиксировать всегда код, состоя- состоящий из одних единиц. Иными словами, при использова- использовании, обратного кода нуль будет считаться отрицатель- отрицательным числом. |2] ПРИНЦИПЫ ПОСТРОЕНИЯ АРИФМЕТИЧ. УСТРОЙСТВ 435 Для обратных кодов вводится специальная операция, называемая циклическим сложением, для обозначения ко- которой мы введем специальный символ (J). Смысл этой операции заключается в следующем. Все п-\-1 разрядов обратного кода (включая знаковый разряд) рассматри- рассматриваются как совершенно равноправные; правило сложения этих кодов в случае циклического сложения остается обыч- обычным (поразрядное сложение и образование переносов из младших разрядов в старшие); отличие циклического сло- сложения от обычного состоит лишь в том, что в случае образования сигнала переноса в (/г+1)-м (знаковом) разряде сигнал переноса не теряется, а направляется сно- снова в младший разряд кода суммы для осуществления пов- повторного сложения; образование сигнала переноса послед- последнего рода носит название циклического переноса. Заметим, что циклический перенос может вызвать, в свою очередь, образование новых переносов из млад- младших разрядов в старшие вплоть до знакового разряда. Поэтому возникает вопрос о корректности определения операции циклического переноса. Иначе говоря, необхо- необходимо проверить, не будет ли определенный нами про- процесс переноса осуществляться неограниченно долго, так что сигнал переноса снова и снова будет пробегать весь путь от младшего разряда до знакового и обратно. Нетрудно, однако, убедиться в том, что такая опасность полностью исключена. Пусть нам даны два произволь- произвольных (п+1)-разрядных двоичных кода х=хп+1 хп...х1 и У=Уп+1Уп---У1- Если при циклическом сложении этих кодов сигнал переноса не возникает ни в одном из разрядов, то процесс циклического сложения вполне оп- определен. Предположим теперь, что перенос возникает впервые в 1-й разряде (считая справа). Это означает, оче- очевидно, что z/=i/1=l. Поскольку переносу, из (/—1)-го раз- разряда в j-й отсутствует (в силу выбора i), ясно, что в ре- результате сложения кодов еще до реализации циклического переноса в j-м разряде суммы будет получен нуль. Теперь очевидно, что переносы из младших разрядов, возникшие под влиянием циклического переноса, не могут распро- распространиться дальше г'-го разряда. Тем самым корректность определения операции циклического сложения полностью оправдана. 28*
436 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VH При осуществлении сложения чисел в автомате мы бу- будем предполагать коды этих чисел нормализованными '); это значит, что если t-й разряд кода одного слагаемого соот- соответствует какому-либо двоичному разряду, то t-й разряд кода остальных слагаемых соответствует тому же самому разряду. Для последующих рассуждений можно предпо- предполагать, что i-му разряду кода соответствует j-й двоичный разряд, то есть, иными словами, что все рассматриваемые числа являются целыми двоичными числами. Как уже было отмечено выше, обычно в машине фиксируется опре- определенная длина информационного слова (называемая разрядностью машины). В соответствии с этим для пред- представления чисел, с которыми оперирует машина, устанав- устанавливается некоторое определенное число разрядов п. Если результат той или иной операции оказывается занимаю- занимающим большее чем п число разрядов, то некоторые его раз- разряды (обычно старшие) теряются. В таком случае при- принято говорить, что имеет место переполнение разрядной сетки, в результате чего, разумеется, возникает ошибка в вычислениях. При построении универсальных автома- автоматов — и программ для них — принимаются различные меры, чтобы избежать переполнения разрядной сетки. В случае, если выход из имеющегося числа разрядов все же будет иметь место, предусматривается автоматиче- автоматическая остановка машины с соответствующей сигнализацией. При принятом обычно (при ручном счете) способе сло- сложения чисел различных знаков приходится пользоваться различными правилами в зависимости от характера соче- сочетания знаков слагаемых. В вычислительных автоматах по- подобное обстоятельство является нежелательным и должно рассматриваться как недостаток принятой методики сло- сложения. Этот недостаток полностью устраняется при поль- пользовании обратным кодом, что вытекает из следующего важного предложения. 2.1. В результате циклического сложения обратных кодов (нормализованных) чисел любых знаков получается обратный код (алгебраической) суммы этих чисел, при ус- условии, что не имеет места переполнение разрядной сетки. ') В применении к вычислительным машинам понятие норма- нормализованного кода обычно употребляется в несколько более узком смысле. 52] ПРИНЦИПЫ ПОСТРОЕНИЯ АРИФМВТИЧ. УСТРОЙСТВ 437 Признаком переполнения разрядной сетки при цикличе- циклическом сложении является получение отрицательной суммы при положительных слагаемых и положительной суммы при отрицательных слагаемых. Доказательству сформулированного предложения мы предпошлем два замечания. Первое замечание состоит в том, что обратный код у = \хп...хх отрицательного двоич- двоичного (целого) числа — х=—хп...z, можно трактовать как прздставление в обычном двоичном коде числа 2И+2—х—1. Действительно, сложение кодов у и -\-х по обычным пра- правилам сложения приводит, как легко проверить, к (п-\-\)- разрядному коду, состоящему из одних лишь единиц. Нетрудно понять, что такой код представляет собою число 2"+2—1. Второе замечание относится к характеру цикличе- циклического сложения. Ясно, что при отсутствии циклического пе- переноса это сложение ничем не отличается от обычного сло- сложения (п-\-\)-разрядных кодов. При наличии циклического переноса результат циклического сложения будет на 2"+*—1 меньше результата обычного сложения соответ- соответствующих кодов, поскольку при этом теряется одна единица (и-*-2)-го разряда и приобретается (за счет циклического переноса) одна единица первого (младшего) разряда. На- Наличие циклического переноса легко устанавливается по величине обычной суммы рассматриваемых кодов: цикли- циклический перенос имеет, очевидно, место тогда и только тогда, когда эта сумма больше или равна 2"+*. Для доказательства теоремы 2.1 рассмотрим различные случаи, которые могут встретиться при сложении. Первый случай имеет место тогда, когда оба слагаемые х и у поло- положительны. Ясно, что в этом случае циклический перенос отсутствует, а перенос в знаковый разряд будет иметь место лишь в случае переполнения разрядной сетки. Спра- Справедливость утверждения, составляющего содержание тео- теоремы 2.1, для этого случая очевидна. Второй случай имеет место тогда, когда оба слагаемых отрицательны (то есть имеют вид—хи—у). Обозначая через х' и у' обратные коды чисел —х и —у, мы получим, очевидно, что х'®у' = 2"+2 — х — 1 + 2n+1 — у — 1 — B"+1 — 1) =
438 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ГГл. VII где через (х-\-у)' обозначен обратный код суммы (—х)-\-(—у).Мы применилиздесьвтороеиз сделанных выше замечаний, поскольку наличие единиц в старших разрядах кодов х' и у' обеспечивает наличие циклического переноса. Если отбросить в кодах х' и у' знаковые разряды, то получатся, очевидно, коды чисел х" = 2"+г—2n+1—х—1 и у"=2п+г—2n+1—у—1. Перенос в знаковый разряд будет иметь место в том и только в том случае, когда сумма этих чисел и единицы циклического переноса больше или рав- равна 2n+I: + 1 = 2n+1 — {х -(- у) — 1 ^ 2n+1 или, что равносильно этому же, когда z+j/^2n+1—1. Иными словами, перенос в знаковый разряд отсутствует в том и только в том случае, когда имеет место перепол- переполнение разрядной сетки. В этом случае при циклическом сложении в знаковом разряде возникнет н у л ь, то есть, иначе говоря, сложение отрицательных чисел приведет к положительному результату. В случае же отсутствия пе- переполнения разрядной сетки циклическое сложение приведет, как следует из проведенных рассуждений, к пра- правильному результату. Следовательно, теорема 2.1 оказы- оказывается справедливой и при сложении двух отрицательных чисел. Рассмотрим теперь случай, когда одно слагаемое (на- (например, —х) отрицательно, а второе (у) положительно. Обратный код у' положительного числа у совпадает с двоич- двоичным представлением этого числа, а обратный код х' отри- отрицательного числа — х представляет двоичное число 2"+2— —х—1. Ясно, что переполнения разрядной сетки в этомслу- чае быть не может. Циклический перенос будет иметь ме- место тогда и только тогда, когда еще до реализации цикли- циклического переноса имел место перенос в знаковый раз- разряд. Очевидно, это случится лишь в том случае, если 2"+»_2"+1 — х — 1+у^2п+\ Последнее неравенство равносильно неравенству у—х 5*1. Это значит, что циклический перенос будет иметь место лишь в случае положительной суммы (напомним, что, в силу принятого выше соглашения, нуль считается отри- отрицательным числом). {2] ПРИНЦИПЫ ПОСТРОЕНИЯ АРИФМЕТИЧ. УСТРОЙСТВ 439 Таким образом, рассматриваемый случай разбивается на два подслучая в зависимости от того, будет ли сумма (—х) -\- у положительна или отрицательна. В первом под- случае мы будем иметь: Во втором подслучае мы получим: Поскольку в этом подслучае —z+j/s^O, то результат циклического сложения будет равняться обратному коду суммы —х+у, что и требовалось доказать. Таким образом, в результате рассмотрения всех воз- возможных случаев справедливость теоремы 2.1 полностью доказана. Теорема 2.1 позволяет (при условии использования об- обратных кодов) выполнять сложение положительных и от- отрицательных чисел единообразным приемом, осуществляя, например, передачу этих чисел обратным кодом на на- накапливающий параллельный сумматор с циклическим пе- переносом из старшего разряда в младший. Схема такого сумматора может быть построена точно так же, как и схе- схема обычного двоичного параллельного сумматора, рас- рассмотренного нами в примере 2 из % 2 гл. VI (см. рис 22). Различие состоит лишь в том, что все разряды сумматора с циклическим переносом должны быть совершенно иден- идентичны друг другу, а выходной сигнал Рп^ (или рп + 1) последнего разряда сумматора должен быть использован для установки в нуль всех триггеров z,(i= I, ..., п) и через задержку (на время переброса триггеров xt) импульс с вы- выхода рп + 1 должен подаваться на вход pt первого разряда сумматора. Таким образом может быть построено параллельное Арифметическое устройство с одним регистром х, воспри- воспринимающим последовательно, один за одним, обратные коды слагаемых и передающее их на второй регистр у, накапливающий обратный код суммы всех этих слагаемых. Этот второй регистр, вместе с соответствующей комбина- комбинационной схемой, мы и булрм называть накапливающим сум- сумматором. В описанном примере прибавление каждого
440 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII нового слагаемого осуществляется в один микротакт, в связи с чем сумматор называется однотактным. Операция сложения двух слагаемых при использо- использовании только что описанного АУ может быть составлена из следующих микроопераций: 1) передача (обратного) кода первого слагаемого из ЗУ в регистр х; 2) передача кода с регистра х на сумматор у; 3) передача (обратного) кода второго слагаемого из ЗУ в регистр х\ 4) передача кода с регистра х на сумматор у (собственно суммирование)*, 5) передача полученной суммы из сумматора в ЗУ. Указанная последовательность микроопераций пред- представляет собою одну из возможных микропрограмм для операции сложения (алгебраического). Заметим, что пер- первой микрокоманде (микрооперации) выписанной выше мик- микропрограммы обычно предпосылается микрооперация очистки регистров АУ (включая сумматор), то есть посыл- посылка импульса, устанавливающая триггеры всех регистров АУ в нулевое состояние. В случае необходимости выполнения в АУ операции вычитания необходимо иметь еще микрооперацию инвертирования кода, позволяющую превращать обрат- обратный код положительного числа а в обратный код отрица- отрицательного числа —а. Для этой цели достаточно, очевидно, инвертировать (заменить 0 на 1, а 1 на 0) каждый разряд первого кода. Микрооперацию инвертирования кода мож- можно осуществлять на одном из регистров АУ, то есть ин- инвертировать код, заполненный на этом, регистре, а запо- запоминание результата инвертирования осуществлять на том же самом регистре. Чаще всего, однако, процесс инвертирования предпо- предпочитают совмещать с процессом передачи кода. Для этой цели вводят два типа микроопераций передачи ко- кодов: обычную передачу кода и передачу инвертированного кода. Микрооперация инвертирования кода весьма близка к микрооперации преобразования прямого кода в обрат- обратный и наоборот (в этом случае инвертирование не затраги- затрагивает знакового разряда). Поэтому, если в автомате ис- . S2] ПРИНЦИПЫ ПОСТРОЕНИЯ АРИФМЕТИЧ. УСТРОЙСТВ 441 пользуется (как это часто случается) как прямой, так в обратный код, то возникает необходимость в д в у х раз- различных микрооперациях для передачи чисел: микроопе- микрооперации передачи чисел, сопровождаюи+ейся изменением типа кода (с прямого на обратный и наоборот) и микрооперации передачи чисел без изменения типа кода. Первую из этих микроопераций называют обычно передачей числа обрат- обратным кодом, а вторую — передачей числа прямым кодом. Заметим, что при употреблении прямых кодов операция инвертирования кода сводится к инвертированию одного лишь знакового разряда. Г—т»{?) »—> Как уже отмечалось выше, на практике применяются чаще всего не однотактные, а двухтактные накапливающие (параллельные) сумматоры, раскладывающие акт сложе- сложения на две микрооперации — поразрядного сложения и реализации переноса. При использовании таких сумма- сумматоров лишь для сложения и вычитания, кроме регистра самого сумматора, в АУ необходимо иметь еще один регистр для хранения второго слагаемого (первое слагаемое хра- хранится при этом в самом сумматоре). Произвольный (i-й) разряд одного из возможных ва- вариантов двухтактного накапливающего сумматора им- пульсно-потенциального типа изображен на рис. 27. На этом рисунке буквами у( и xt обозначены i-e разряды пер- первого и второго слагаемого, буквы Т, С и В обозначают
442 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гд VII соответственно потенциальный триггер, потенциальное сов- совпадение и импульсно-потенциальный вентиль, а буквы а и Ь обозначают входные каналы, на которые подаются импульсы от устройства управления микрооперациями в момент, когда необходимо выполнить поразрядное сло- сложение и соответственно реализацию переноса. Через ft обозначен счетный вход триггера <-го разряда (г/() сумма- сумматора. Входы триггера /-го разряда регистра (х() и усили- усилители в цепи р, на рисунке не обозначены. В первом такте работы схемы, изображенной на рис. 27, импульс приходит лишь на вход а. Благодаря этому в триггере 7\ образуется сумма (по модулю два) z(=Xi+yt. Во втором такте импульс приходит на вход Ь и, при нали- наличии переноса из предыдущего разряда, также на вход рг На выходах триггера Г, к этому моменту устанавлива- устанавливаются сигналы 2,. и 2,., так что на выходе pl+i возникает импульсный сигнал, выражаемый булевой функцией pt + l=ZiP(V ?,*/• а в триггере 7", запоминается /-й разряд суммы (с учетом переноса): si=zj-\-pi=xi-\-yi-\-pi. Посколь- Поскольку z^Xt+y^ix^y,) (fivyj, a li=xiyl v х(у,, то pl+l = —*ili v Pi(X( v У/) (xt v У/), что совпадает с выражением для функции переноса, которое дает формула D) из § 2 предыдущей главы. Для выполнения микрооперации ин- инвертирования кода на регистре, по- построенном из триггеров со счетными входами, достаточно, очевидно, подать импульс на входы всех триггеров. То же самое нужно проделать и при вы- выполнении микрооперации перевода хра- хранящегося на регистре прямого кода в обратный и наоборот (только в этом случае не следует подавать импульс на триггер, запоминающий знаковый разряд). Заметим, что при употребле- употреблении триггеров с раздельными входами нетрудно по- построить аналог счетного входа с помощью простой схемы, использующей всего два вентиля (на каждый триггер). Соответствующая схема изображена на рис. 28. При по- подаче импульса на вход схемы изображенный на ней триг- Рис. „S { 2] ПРИНЦИПЫ ПОСТРОЕНИЯ АРИФМЕТИЧ. УСТРОЙСТВ 443 гер будет изменять свое состояние на противоположное, то есть работать в режиме счетного входа. Рассмотренные до сих пор микрооперации достаточны для реализации простейших арифметических операций — сложения и вычитания. При переходе к более сложным операциям (умножения и деления) необходимо ввести еще микрооперации сдвига кода на регистрах. Схема сдвигового регистра наиболее просто осуществ- осуществляется на триггерах с раздельными входами, требуя при этом затраты всего двух вентилей на каждый разряд ре- регистра (для сдвига в одном направлении). Схема двух соседних разрядов сдвигового регистра, осуществляющего сдвиг кода вправо, изображена на рис. 29. Рис. 2д. Подача импульса на вход (а) схемы, изображенной на этом рисунке, переводит триггер Т( в то состояние, в ко- котором перед этим находился триггер Ti+l. Рассмотрим теперь одну из возможных схем реализации операции умножения. Предположим, для определенности, что речь идет об умножении правильных двоичных га-знач- ных дробей, причем результат умножения также должен быть округлен до п двоичных разрядов. При таком пред- предположении исключается возможность выхода из имеюще- имеющегося числа разрядов, поскольку при перемножении пра- правильных дробей в результате снова получается правиль- правильная дробь. Случай умножения целых двоичных чисел отличается от рассматриваемого лишь некоторыми второ- второстепенными деталями.
444 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII Выполнение операции умножения можно осуществить на арифметическом устройстве, которое кроме сумматора имеет еще два регистра, предназначенных для хранения множимого и множителя. Регистр самого сумматора слу- служит для хранения сумм частичных произведений. На нем получается также и окончательный результат. На регистре множителя и на сумматоре можно реализовать микроопе- микрооперацию правого сдвига. Микропрограмма умножения стро- строится с помощью чередования микроопераций передачи множимого на сумматор (сложения его ,с ранее получен- полученной суммой частичных произведений), сдвига (без знако- знакового разряда) вправо кода на сумматоре и сдвига (без зна- знакового разряда) вправо кода на регистре множителя. Первая из этих микроопераций должна, очевидно, осу- осуществляться лишь в том случае, когда в младшем раз- разряде множителя стоит единица. Для этой цели сигнал с выхода триггера младшего разряда регистра множителя должен передаваться в устройство, осуществляющее управ- управление последовательностью микроопераций. После га-крат- га-кратного повторения указанной последовательности микроопе- микроопераций на сумматоре будет получен, как нетрудно видеть, код (округленного) произведения, знак которого совпа- совпадает со знаком множимого. Для получения истинного знака произведения необходимо в заключение выполнить еще одну микрооперацию, осуществив сложение (по моду- модулю 2) знаковых разрядов содержимого сумматора и ре- регистра множителя. Такая микрооперация выполняется на обычном одноразрядном сумматоре без использования сигнала переноса на его входе. Такой сумматор без пере- переноса на% входе называется обычно полусумматором. При наличии счетного входа в триггере знакового разряда сум- сумматора такой полусумматор требует всего один вентиль, управляемый выходным сигналом знакового разряда ре- регистра множителя. На этот вентиль должен быть подан импульс от устройства управления микрооперациями в момент, когда необходимо выполнить микрооперацию сложения знаков множителя и произведения. Блок-схема АУ, на котором можно выполнять опера- операции сложения, вычитания и умножения, показана на рис. 30. Это АУ должно иметь следующий набор микро- микроопераций: §21 ПРИНЦИПЫ ПОСТРОЕНИЯ АРИФМЕТИЧ. УСТРОЙСТВ 445 1) передача числа из ЗУ на регистр Рх; 2) передача числа из ЗУ на регистр Pt; 3) передача числа из сумматора в ЗУ; 4) передача числа из регистра Рх в сумматор (сумми- (суммирование); 5) сдвиг кода (без знакового разряда) на сумматоре вправо; 6) сдвиг кода (без знакового разряда) на регистре Р% вправо; 7) сложение знаковых разрядов на сумматоре и ре- регистре Р2; 8) инвертирование кода на регистре Р,; 9) очистка АУ (установка всех регистров в нуль); 10) очистка регистра Рх. В случае двухтактного сумматора четвертая микроопе- микрооперация расщепляется на две микрооперации — поразряд- поразрядного сложения и реали- зации переносов. В слу- . * > чае необходимости вы- 1 полнения других опера- операций (например, деле- деления) указанный набор микроопераций должен быть, вообще говоря, пополнен. Каждой из перечисленных микро- микроопераций на блок-схеме АУ соответствует стрел- ка с номером микроопе- микрооперации. Выходящая из регистра Р2 стрелка, помеченная буквой q, обозначает упомянутый выше сигнал обратной связи из младшего разряда этого регистра в устройство управления микрооперациями. Все сигналы, управляющие микрооперациями, в рас- рассматриваемом случае предполагаются импульсными, а сигнал обратной связи q — потенциальным. На каждую микрооперацию затрачивается один физический импульс- импульсный канал от устройства управления микрооперациями. Управление всеми микрооперациями, кроме микроопе- микроопераций 1), 2) и 3), было уже описано выше. Что же касается этих последних микроопераций, то они могут быть Ь-г Рис. 30.
446 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА IT». VIj реализованы следующим образом. Число, передаваемое из ЗУ, хранится на специальномтриггерном выходном реги- регистре ЗУ, который мы обозначим через Я,. Выходной сигнал каждого разряда этого регистра управляет двумя венти- вентилями, на которые подаются импульсы, управляющие мик- микрооперациями 1) и 2). Выход первого вентиля подсоеди- подсоединен к единичному входу триггера соответствующего раз- разряда регистра Я,, выход второго — к единичному входу триггера соответствующего разряда регистра Рж. Анало- Аналогичным образом строится управление передачей числа из сумматора в регистр Pt. При описанной организации управления микроопера циями перед передачей числа на какой-либо регистр этот регистр должен быть предварительно очищен (установлен в нуль). Заметим также, что с целью уменьшения числа каналов связи АУ с ЗУ, по которому передаются коды чисел (эти каналы называются кодовыми шинами), целе сообразно либо иметь несколько иную, более сложную систему управления микрооперациями, либо осуществлять передачу чисел из ЗУ лишь на один регистр АУ, добавляя микрооперации передачи кодов с одного регистра на дру- другой внутри АУ. Приведем в качестве примера последовательность мик роопераций (микропрограмму) для управления операция ми в блок-схеме АУ, изображенной на рис. 30, без учета микроопераций, необходимых для управлениядругимибло- ками машины. При этом будем предполагать, что все чис ла в машине представляются обратными кодами, но в рр- гистр Я, число передается прямым кодом. Микропрограмма сложения двух чисел: 9, 1,4, 10, 1,4,3. Микропрограмма вычитания двух чисел: 9,1,4,10,1,8,4,3. Микропрограмма умножения двух л-р азрядных чисел: 9, 1, 2, 4 (если 9=1), 5, 6,..., 4 (если ?=1), 5, 6, 7, 3, п раз 13] ОРГАНИЗАЦИЯ УПРАВЛЕНИЯ 447 Заметим, что в микропрограмме умножения можно сов- совместить во времени (в одной микрокоманде) выпол- выполнение двух микроопераций, а именно, микроопераций 5) и 6). Ясно также, что последний (ге-й) раз микрооперацию 6) сдвига на регистре Р% можно не выполнять. § 3. Организация управления универсальным програ» иным автоматом В предыдущем параграфе был рассмотрен вопрос об организации управления арифметическими операциями в АУ. Целью настоящего параграфа является рассмотре- рассмотрение вопроса об организации управления переработкой информации во всем универсальном программном автомате в целом. Как и раньше, мы рассмотрим более подробно лишь один из возможных вариантов такой организации, дающий представление об основных проблемах, которые возникают в этой области, а также об общих принципах их решения. С целью упрощения задачи мы полностью исключим из рассмотрения вопросы управления внешним запоминаю- запоминающим устройством, вводом и выводом, а также вопросы ра- рациональной организации переадресации команд (группо- (групповые операции, индекс-регистры и т. п.), хотя, используя развиваемые далее общие принципы, не представляет особого труда дать решение и этих вопросов. Поскольку в организации управления всем автоматом большая роль принадлежит оперативному запоминающе- запоминающему устройству (ОЗУ), необходимо прежде всего остано- остановиться на некоторых деталях его строения. Всякое опера- оперативное запоминающее устройство состоит из собственных запоминающих элементов, образующих ячейки памяти, из дешифратора адреса и двух регистров, называемых — один регистром числа (или кодовым регистром), а другой — регистром адреса. Каждая ячейка ОЗУ представляет собою регистр, в котором хранится одно информационное или командное слово. Одна ко лишь в самых первых программных авто- автоматах в качестве ячеек ОЗУ использовались обычные триг- герные регистры. В настоящее время эти ячейки орга- организуются гораздо более экономными способами. При
448 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл, VU этом регистр, представляющий собою ячейку ОЗУ, ко- коренным образом отличается от триггерного регистра не только по своей конструкции, но и по характеру своего функционирования. Основное различие заключается в том, что информация в запоминающих ячейках ОЗУ хранится обычно в таком виде, что она не может быть непосредственно использована для управления комбинационными схемами (особенно потенциальными), как это имеет место в случае информации, хранящейся в триггерном регистре. Для того чтобы выступить в такой роли, информация, записан- записанная в той или иной ячейке ОЗУ, должна быть предвари- предварительно считана, то есть передана на триггерный или иной регистр, имеющий выходы, которые могут непос- непосредственно использоваться для управления ком- комбинационными схемами. Регистры, обладающие такими свойствами, естественно назвать управляющими, актив- активными или открытыми регистрами, в противоположность закрытым (неуправляющим) регистрам, которыми явля- являются ячейки ОЗУ. После записи информации в закрытый регистр (ячейку ОЗУ) она временно как бы исчезает из поля зрения актив- активной зоны автомата и снова попадает в него лишь после ее считывания и передачи на управляющий регистр. Р е- гистр числа в ОЗУ как раз и представляет собою такой активный (управляющий) регистр, на который по- попадает каждое слово (информационное или программное) непосредственно после его считывания из любой ячейки ОЗУ или непосредственно перед его записью в произвольную ячейку ОЗУ. Для определения того, из какой именно ячейки ОЗУ нужно считать или в какую именно ячейку нужно запи- записать слово, хранящееся на регистре числа, служит р е- гистр адреса и дешифратор адреса ОЗУ. Регистр адреса представляет собою активный (уп- (управляющий) регистр, предназначенный для запоминания адреса ячейки ОЗУ, из которой нужно считать или в ко- которую нужно записать информацию. Выходные сигналы запоминающих элементов регистра адреса поступают на входные узлы дешифратора адреса, а выходные сигналы дешифратора используются для того, чтобы открыть путь 18] ОРГАНИЗАЦИЯ УПРАВЛЕНИЯ 449 управляющим сигналам считывания или записи в выбранную ячейку ОЗУ. ' Сигналы считывания и сигналы записи осуществляют передачу кода слова из выбранной ячейки памяти в ре- регистр числа и наоборот. Мы условимся считать, что в са- самом ОЗУ выполняются лишь эти две микрооперации — передача кода из выбранной ячейки в регистр числа (м и к-, рооперация считывания) и обратная пе- передача кода из регистра числа в ячейку (микроопе- (микрооперация записи), а также микрооперация очистки регистров ОЗУ, состоящая в установ ке на нуль регистра числа и регистра адреса. Микроопе- Микрооперации же обмена кодами между регистрами ОЗУ и дру- другими блоками автомата мы будем относить к тем блокам, с которыми этот обмен осуществляется. Разъяснение технических подробностей устройства со- современных ОЗУ не входит в задачу настоящей книги. При желании читатель может представлять себе ячейки ОЗУ в виде обычных триггерных регистров. В этом случае нетрудно представить себе полную схему всего ОЗУ. Действительно, предположим, что регистры числа и ре- регистры адреса построены на обычных потенциальных триггерах, а дешифратор адреса — на потенциальных сов- совпадениях и разделениях, что выходные сигналы деши- дешифратора носят потенциальный характер, а число их рав- равняется числу ячеек памяти (оперативного запоминающего устройства). Каждый из этих сигналов используется как управляю- управляющий сигнал для вентилей записи, установленных на вхо- входах всех триггеров данной ячейки (регистра) памяти, соответствующей этому сигналу. Управляющий сигнал записи проходит через вентили, управляемые выходными сигналами триггера регистра числа (РЧ), а отсюда уже га импульсных сигналов, несущих га-разрядный код числа из РЧ, поступают на соответствующие входы вентилей записи. Каждый из этих сигналов поступает од- одновременно на вентили записи соответствующего разряда всех ячеек памяти, но проходит лишь через вентиль той ячейки, которая выбрана дешифратором. Разумеется, в этом случае перед записью необходимо произвести очи- очистку выбранной ячейки. 28а В. М. Глушков
450 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII Аналогичным образом можно осуществить также счи- считывание кода из выбранной ячейки: импульс считывания подается на вентили, управляемые выходными сигналами дешифратора, и через тот (единственный) вентиль, который будет открыт в данный момент, поступает на входы вен- вентилей, управляемых выходными сигналами триггеров вы- выбранной дешифратором ячейки памяти. Выходы этих вен- вентилей подсоединены к входам триггеров (соответствующих разрядов) регистра числа, куда и передается код из вы- выбранной ячейки. Ясно, что перед считыванием регистр числа должен быть очищен (установлен на нуль). Описанная схема ОЗУ, как уже отмечалось выше, чрез- чрезвычайно неэкономична и в настоящее время при построе- построении ОЗУ большой емкости не применяется. Поэтому мы не будем иллюстрировать произведенное описание рисун- рисунками соответствующих схем. Заметим, однако, что прове- проведенное выше описание дает известное представление о спе- специфике проблем, возникающих при конструировании и организации функционирования современных схем ОЗУ. Наибольшую трудность при этом представляет не построе- построение самих ячеек ОЗУ, а организация их коммутирования (выборки), поскольку дешифраторы с большим числом выходных каналов оказываются чрезвычайно громоздкими. Переходя к описанию методов синтеза устройств управления универсальных программных автома- автоматов, рассмотрим прежде всего одно важное устройство, входящее в качестве составной части почти во все сущест- существующие схемы УУ. Речь идет о так называемом импульс- импульсном счетчике. Таблица VII. 1 0 и 1 1 2 2 2 3 3 3 4 ... n—i n—i п п п 1 Импульсным счетчиком, или счетчиком импульсов по модулю п, называется цифровой автомат Мура с п состоя- состояниями, имеющий один физический импульсный входной ОРГАНИЗАЦИЯ УПРАВЛЕНИЯ 451 «анал и задаваемый таблицей переходов VII.1. Наличие импульса во входном канале обозначено в таблице вход- входным сигналом и, а отсутствие импульса — сигналом 0. Каждому выходному сигналу счетчика должен соответ- соответствовать свой собственный выходной сигнал. Схемы счетчиков существенно зависят от принятого способа кодирования их состояний. В счетчике с естествен- естественным кодированием состояний последовательные (перехо- (переходящие друг в друга под действием одного имгульса) состояния кодируются обычными двоичными кодами по- последовательных целых неотрицательных чисел, начиная с нуля: 00...00, 00...01,00...10,00...11. При этом число разрядов кода выбирается наименьшим, то есть равным наименьшему целому числу т, которое больше или равно двоичному логарифму числа п состоя- состояний автомата: m=min k. где k 5= log2 n. В так называемом кольцевом счетчике с п состояниями последовательные состояния кодируются га-разряднымв двоичными кодами, каждый из которых состоит из п—1 нулей и одной единицы: 100...0, 010...0,001...0,...,000...01. Схемы кольцевых счетчиков по сравнению со счетчиками с естественным кодированием состояний содержат больше запоминающих, но зато, как правило, меньше логических элементов. Договоримся в дальнейшем, в .целях краткости, если не оговорено противное, понимать под термином «счетчик» импульсный счетчик с естественным кодированием со- состояний. Покажем, как может быть построена схема счет- счетчика по модулю п с использованием импульсно-потен- циальной логики. Основу счетчика составляет т-разряд- ный регистр на потенциальных триггерах. Для упрощения рассуждений предположим, что каждый триггер имеет как счетный вход (обозначаемый буквой /), так и раздель- раздельные входы (обозначаемые цифрами 0 и 1) для установки 286 В. М. Глушков
452 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VII триггера, соответственно в 0 и 1. Каждый из этих трех входов снабжается индексом, соответствующим номеру (от 1 до т) рассматриваемого триггера, так что входы /-го триггера обозначаются через 0,, \t и /,- соответственно. Состояния триггеров мы будем обозначать через ж,,..., хт. Введем еще обозначение Кп для (п—1)-й конституенты единицы от переменных ж,,..., хп, обозначение Кп— для ее отрицания и обозначение р для входного канала, по которому подаются считываемые счетчкком импульсы. Потенциальный сигнал, равный К п, можно образовать с помощью m-входового совпадения соответствующих вы- выходных сигналов (х( и х(), составляющих счетчик тригге- триггеров, а потенциальный выходной сигнал, равный Кп,— с помощью m-входового разделения. Заменяя, для про- простоты, указанные совпадение и разделение их выходными сигналами, мы получаем схему счетчика по модулю п, Хт Т 1Хт Г, "' О, /f \Ka -®*—I Рис. 31. изображенную на рис. 31. В этой схеме верхний ряд вен тилей образует цепь, вполне аналогичную той цепи реа- реализации переноса, возникшего в самом младшем разряде, в схеме сумматора, изображенной на рис. 27 из § 2 настоя- настоящей главы. С помощью этой цепи поступление каждого нового импульса на вход р вызывает увеличение на еди- единицу двоичного кода, хранящегося на триггерах Г, — Тт. Как только этот код достигает значения п—1, открывается вентиль Кп, и очередным поступившим импульсом р все триггеры перебрасываются в нулевое состояние. Вентиль Кп в этот момент будет закрыт, так что распространение импульса по верхней цепи, которое могло бы помешать установке триггеров на нуль, исключается. $з] ОРГАНИЗАЦИЯ УПРАВЛЕНИЯ 453 В ряде случаев счетчики строятся таким образом, что в процессе работы они никогда не достигают максималь- максимального значения (п—1) запоминаемого ими кода. Тогда цепь автоматического сброса в нуль и вентили Кп, Кп стано- становятся излишними. Такие упрощенные счетчики "мы бу- будем называть незамкнутыми,— в противоположность замкнутому, или циклическому, счетчику, о котором шла речь выше. Заметим, что как циклические, так и незамк- незамкнутые счетчики допускают возможность установки их в нулевое состояние вручную за счет посылки специаль- специального импульса с пульта управления. Следуя принятому нами методу изложения, мы рас- рассмотрим теперь общие проблемы синтеза УУ в связи с ка- каким-либо частным примером. Предположим, что требуется построить трехадресный универсальный программный автомат с естественным по- порядком следования ко- команд, у которого г-я команда программы за- запоминается в (а+/)-й ячейкепамяти (/=1,2,.., а—любое неотрицатель- неотрицательное число). Будем счи- считать, что ОЗУ и АУ это- этого автомата построены в соответствии с принци- пами, изложенными в настоящем параграфе, в I 13 1—- Регистр адреса \ Дешифратор адреса. \ Ячейки ОЗУ //T W Регистр числа 1 Рис. 32. частности, что они име- имеют импульсное управле- управление микрооперациями. В качестве АУ для нашего автомата примем АУ, изоб- изображенное на рис. 30 (со всеми указанными микроопера- микрооперациями), дополнив его кроме потенциального сигнала об- обратной связи q потенциальным сигналом обратной связи р, принимающим значения, запоминаемые в знаковом разряде сумматора. Блок-схема ОЗУ, которую мы применим в нашем авто- автомате, изображена на рис. 32. Стрелками на этом рисунке показаны направления передачи информации. Стрелкам с номерами 11, 12, 13 соответствуют микрооперации
454 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл VII записи, считывания и очистки регистров ОЗУ. Только эти микрооперации считаются микроопера- микрооперациями собственно ОЗУ. Задачей устройства управления является, во-первых, управление последовательностью микроопераций в АУ и в ОЗУ, а во-вторых, управление последовательностью собственных микроопераций. Для установления на- набора микроопераций УУ зафиксируем прежде всего коли- количество и характер работы используемых в нем регистров. Важнейшим из регистров УУ (и всего автомата в целом) является так называемый регистр команд (РК). При трех- адресной системе команд этот регистр составляется фак- фактически из четырех регистров: регистра операций (РО), на котором запоминается код операции выполняемой команды, а также регистров первого, второго и третьего адреса (РА,, РА2, РА3), на которых запоминается соответ- соответственно первый, второй и третий адреса выполняемой команды. Важной составной частью УУ является также счетчик команд (СК), служащий для запоминания адреса ячейки ОЗУ, из которой должна извлекаться очередная команда программы. Наконец, имеется еще регистр микроопераций (РМО), заменяемый иногда счетчиком микротактов (СМТ). О назначении этих устройств мы скажем ниже. Счетчик микротактов осуществляется всегда как циклический (замкнутый) счетчик; что же касается счетчика команд, то он может быть и незамкнутым. Как следует из общего описания принципа программ- программного управления, сделанного в § 1 настоящей главы, управляющее устройство (УУ), чтобы обеспечить управ- управление работой всех устройств (включая и самого себя), должно осуществлять автоматическую выборку команд из ОЗУ, а также их расшифровку и выполнение. С этой целью в набор микроопераций самого УУ должны быть включены следующие микрооперации: 14) передача кода (программного слова) из регистра числа ОЗУ на регистр команд; 15) передача первого адреса из РА в регистр адреса ОЗУ; 16) передача второго адреса из РА в регистр адреса ОЗУ; ОРГАНИЗАЦИЯ УПРАВЛЕНИЯ 455 . 17) передача третьего адреса из РА в регистр адреса ОЗУ; . 18) посылка импульса в счетчик команд (увеличение номера команды на 1); 19) очистка регистра команд и регистра микроопераций; 20) передача третьего адреса из РА в счетчик команд; 21) передача содержимого счетчика команд на регистр адреса ОЗУ. Микрооперация 20 дает возможность реализовать опе- операцию условного перехода. Для организации управления последовательностью микроопераций строится конечный автомат М, памятью которого служит регистр микроопераций. Выходные сиг- сигналы этого автомата представляют собою не что иное, как импульсы управления микрооперациями, посылаемые по одному или одновременно по нескольким из введенных выше двадцати одного канала управления микроопера- микрооперациями (с изменением набора микроопераций меняется, вообще говоря, и число этих каналов). Входными сигналами автомата М служат потенциаль- потенциальные сигналы обратной связи, подаваемые из АУ (в нашем примере сигналы р и q), выходные сигналы триггеров ре- регистра операций (операционные вход ы). Кро- Кроме того, имеется один импульсный тактирующий вход, задающий тактировку (разбиение времени на микротакты) для автомата М и всего универсального программного автомата в целом. В нашем примере мы рассмотрим слу- случай синхронного автомата, у которого импульсные тактирующие сигналы вырабатываются специальным син- синхронизирующим генератором, работающим с постоянной частотой. Нетрудно понять, что характер входных и выходных сигналов автомата М связан со спецификой рассматри- рассматриваемого примера. Вовсе необязательно, разумеется, чтобы выходные сигналы были импульсными, а входные — потен- потенциальными. Необязательным является и применение син- синхронизирующего генератора. Можно построить автомат М как асинхронный автомат, который, выдав выходной сигнал для производства очередной микрооперации, ждет ответ- ответного сигнала от соответствующего устройства, свидетель- свидетельствующего об окончании выполнения микрооперации.
456 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VJi Эти ответные сигналы и будут играть роль тактирующих сигналов. Длительность микротактов в этом случае бу- будет, вообще говоря, уже неодинаковой. Задача организации управления микрооперациями лю- любого универсального программного автомата Q есть за- задача синтеза соответствующего автомата М, который мы будем называть микропрограммным блоком, или микро- микропрограммным подавтоматом автомата Q. Синтез микро- микропрограммного блока в общем случае осуществляется с по- помощью методов синтеза автоматов, развитых в предыду щих главах. Применительно же к рассматриваемому примеру мы используем сейчас один специальный метод синтеза, пред- предложенный Уилксом и Стринджером1). Этот метод приводит к весьма прозрачной— хотя далеко не к самой экономной — схеме микропрограммного блока. Основу схемы Уилкса — Стринджера состав- составляют две диодные матрицы, называемые А-матрицей и В-матрицей. Каждая из этих матриц состоит из некоторо- некоторого числа вертикальных и некоторого числа го- горизонтальных шин (проводников), по которым осуществляется передача импульсов. Импульсы с выходов специального микропрограммного дешифратора посту- поступают на горизонтальные шины А -матрицы, причем в каж- каждый данный момент дешифратор открывает путь импуль- импульсам только на одну из горизонтальных шин. С этой шины, которую мы будем называть выбранной, через спе- специальные элементы, пропускающие импульсы только в одном направлении (так называемые диод ы), импуль- импульсы поступают на одну или несколько вертикальных шин Л-матрицы. Каждая из таких вертикальных шин управ- управляет какой-нибудь одной микрооперацией: от нее по шине управления соответствующей микрооперацией импульс поступает в тот блок автомата, в котором эта микро- микрооперация должна быть в данный момент выполнена. Каждая горизонтальная шина А -матрицы соединена с одной или с двумя горизонтальными шинами Б-матрицы, ') М. V. W i I k e s, J. В. S t r i n g e r, Microprogramming and the design of the control circuits in an electronic digital compu- computer. Proc. Cambridge Philos. Soc, v. 49, № 4 : 2, 1953, p. 230—238. ОРГАНИЗАЦИЯ УПРАВЛЕНИЯ 457 причем в первом случае соединение осуществляется не- непосредственно, а во втором случае — через ввнтили, один из которых управляется каким-нибудь потенциальным сигналом обратной связи (в нашем примере сигналом р или q), а другой — отрицанием (инверсией) этого сигна- сигнала. В любом случае импульс с выбранной горизонтальной шины Л-матрицы попадает в точности на одну горизон- горизонтальную шину Б-матрицы, которую в этом случае мы так- также будем называть выбранной. Вертикальные ши- шины Б-матрицы группируются в пары; каждая пара шин подсоединяется к входам (нулевому и единичному) ка- какого-либо (своего для каждой пары) триггера регист ра пик роопераций. Таким образом, число пар вертикальных шин в Б-мат- рице равно числу разрядов (двоичных) в регистре микро- микроопераций. Каждая горизонтальная шина через диод соеди- ¦ язтся с одной из шин (нулевой или единичной) каждой пары вертикальных шин. Через эти диоды импульс с вы- выбранной горизонтальной шины поступает на вертикальные шины и устанавливает на регистре микроопераций новый код, определяемый способом включения диодов между выбранной горизонтальной шиной и соответствующими вертикальными шинами (то есть тем, подсоединены ли они к нулевым или к единичным шинам). Дешифратор микроопераций управляется выходными сигналами триггеров регистра операций и регистра мик- микроопераций. Комбинация кодов на этих регистрах полно- полностью определяет, какая из горизонтальных шин Л-мат- рицы будет выбрана в настоящий момент. Сам дешифратор может быть выполнен на потенциальных элементах совпа дення по любой из схем, рассматривавшихся выше (см. § 2, гл. V). Каждый из выходов этого дешифратора управ- управляет вентилем, выход которого подсоединен к соответ- соответствующей горизонтальной шине А -матрицы. На импульсные входы всех этих вентилей непрерывно подаются синхронизирующие импульсы (СИ) от тактирую- тактирующего генератора,/Однако в каждый данный момент очеред- очередной синхронизирующий импульс может пройти только через один вентиль, выбранный дешифратором в соот- соответствии с кодами, установленными на регистрах опера- операций и микроопераций. Дешифратор микроопераций можно,
458 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VIJ разумеется, строить и из одних лишь вентильных элемен- элементов, не употребляя потенциальных элементов. На рис. 33 схематически изображен описанный нами микропрограммный блок. Для простоты мы изобразили матрицы А и В со сравнительно небольшим числом вер- вертикальных и горизонтальных шин. На практике число шин А- матрица Си /1 В-матрица 31 Импулосо! микроопераций ijhc. 33. бывает обычно значительно большим. Так, в рассматри- рассматриваемом нами примере число вертикальных шин Л-матрицы должно быть равно 21 (то есть числу различных микро- микроопераций). Точками на матрицах А и В в схеме, изоб- изображенной на рис. 33, показаны места включения ди- диодов, соединяющих горизонтальные шины с верти- вертикальными. Из рассмотрения рис. 33 видно, что в матрицах А и В диоды нельзя заменить простыми соединениями горизон- горизонтальных и вертикальных шин, так как при этом могут возникнуть ложные импульсы микроопераций. В самом 13] ОРГАНИЗАЦИЯ УПРАВЛЕНИЯ 459 деле, при поступлении импульса на вторую (сверху) го- горизонтальную шину импульсы, согласно задуманному плану соединений, должны передавать лишь на 3-ю и 4-ю вертикальные шины. Однако при непосредственном соединении шин импульс с 3-й вертикальной шины пере- перешел бы на 3-ю горизонтальную шину, а с нее распростра- распространился бы на 1-ю и на 5-ю вертикальные шины. Назначение диодов как раз и состоит в том, чтобы, про- пропуская беспрепятственно импульсы с горизонтальных шин на вертикальные, лишить их возможности обратного перехода на горизонтальные шины. Ясно, что при соеди- соединении шин диодами импульсы будут переходить на те и только на те вертикальные шины, которые соединены с вы- выбранной горизонтальной шиной. Меняя эти соединения, можно менять микропрограмму автомата, то есть изменять последовательности микроопераций, соот- соответствующих любому данному коду на регистре операций. Таким образом, можно, в частности, не меняя схему всего автомата в целом, путем одного лишь пересоединения дио- диодов в матрицах А я В изменить набор операций данного программного автомата. Каждая горизонтальная шина А -матрицы соответст- соответствует одной микрокоманде микропрограммы (мно- (множеству микроопераций, выполняемых за один микротакт), а соединенная с ней горизонтальная шина Б-матрицы опре- определяет микрокоманду, которая будет выполняться в те- течение следующего микротакта. Наличие вентилей, управ- управляемых сигналами обратной связи (р и д), исходящими из АУ, позволяет осуществлять в микропрограмме раз- разветвления, то есть производить выбор в качестве следующей команды одной из двух команд в зависи- зависимости от значения соответствующего сигнала обратной связи. При построении микропрограммы можно различным образом строить начало (и соответственно также конец) рабочего цикла машины. Можно начинать каждый цикл с момента, когда код очередной команды уже хранится на регистре команд (РК) и заканчивать его выборкой из ОЗУ и передачей на РК очередной команды. Но мы при- примем сейчас другой вариант, отличающийся тем, что ра- рабочий цикл машины начинается с выборки из ОЗУ и
460 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА [Гл. VTI передачи на РК очередной команды программы, а заканчи- заканчивается изменением содержимого счетчика команд (то есть установкой на нем адреса следующей команды) и очисткой АУ регистра команд, регистра микроопераций и обоих рзгистров ОЗУ. В начале работы адрес ячейки, в которой хранится первая команда программы, устанавливается на счет- счетчике команд вручную, все же остальные циклы выпол- выполняются машиной автоматически до тех пор, пока в каком- либо из рабочих циклов ей не встретится команда «останов». Приняв код этой команды на РК, машина автоматически останавливается. Возможна также оста- остановка машины по специальному сигналу АУ, выдаваемому в случае выхода из используемого числа разрядов. Приведем теперь полные микропрограммы для неко- некоторых операций, в которых учтены микрооперации, вы- выполняемые в течение полного рабочего цикла выполнения данной операции во всех блоках машины. Для компакт- компактности записи микропрограмм используем обозначение мик- микроопераций номерами, фиксированными в настоящем и в предыдущем параграфе. Микрооперации, выполняемые за один микротакт (то есть совместимые во времени), мы будем заключать в скобки. Напомним, что выполнение микропрограммы каж- каждой операции (команды) начинается при нулевом запол- заполнении АУ, регистра команд, регистра микроопераций и обоих регистров ОЗУ и при наличии адреса соответствую- соответствующей команды в счетчике команд. Микропрограмма сложения двух чисел (втрехадресной системе): B1) A2) A4) A3) A5) A2) A) D,13) A6) A2,10) A) A3,4) A7,3) A1,5) A8, 13, 19) (выполняется за 19 мик- микротактов). Микропрограмма условного пере- перехода по неравенству двух чисел: B1) A2) A4) A3) A5) A2) A) D,13) A6) A2,10) A) A3,8) D), если р=0, то A8, 9, 19), а если /> = 1, то B0, 9, 19). Команда условного перехода по неравенству выпол- выполняется, в силу приведенной микропрограммы, за 14 мик- микротактов. Суть этой команды состоит в том, что из числа а, §31 ОРГАНИЗАЦИЯ УПРАВЛЕНИЯ 461 хранящегося в ячейке по первому адресу команды, вы- вычитается число Ь, хранящееся по второму адресу команды. Если эта разность положительная (а^>6), то выполняется следующая по порядку команда, если же разность этих чисел не положительна (а^Ь), то следующая команда из- извлекается из ячейки с адресом, указанным в третьем ад- адресе команды. Заметим, что условный переход по совпа- совпадению (равенству) двух чисел, о котором говорилось в § 1 настоящей главы, может быть выполнен в результате последовательного выполнения двух команд условного перехода по неравенству. Отметим еще некоторые особенности организации мик- микропрограммного управления в универсальных программ- программных автоматах. Описанные выше микропрограммы исходят из того, что на выполнение любой из имеющихся 21 микроопера- микрооперации отводится одно и то же время (время одного микро- микротакта). В действительности, однако, различные микроопе- микрооперации требуют различного времени для своего выполне- выполнения. Действуя, как было описано выше, мы должны время микротакта определять по самой длительной микроопера- микрооперации. Тем самым мы искусственно снижаем рабочую ча- частоту и понижаем, следовательно, быстродействие автомата. Выход из этого положения заключается в том, чтобы осуществлять длительные микрооперации в течение н .е- скольких микротактов. В микропрограмме для этой цели вводятся пустые микрокоманды. При выполне- выполнении такой микрокоманды импульс поступает на шину А -матрицы, не соединенную с вертикальными шинами, в результате чего не выполняется ни одна из микроопера- микроопераций, за исключением изменения содержимого регистра микроопераций через Б-матрицу. . Выделение необходимого времени для производства длительной микрооперации производится с помощью до- дописывания в микропрограмме после соответствующей ей команды необходимого числа пустых микрокоманд. Мож- Можно, разумеется, вместо пустых микрокоманд использовать для той же цели (полностью или частично) микрокоманды других микроопераций микропрограммы, совместимых во времени с рассматриваемой длительной микрооперацией. 29 В. М. Глушнов
462 АЛГОРИТМИЧЕСКАЯ СТРУКТУРА vtt Из указанного выше набора микроопераций к числу дли- длительных микроопераций относятся обычно считывание и запись в ОЗУ, а также микрооперация суммирования (точнее, реализация переносов). В силу указанных соображений оказывается целесооб- целесообразным уточнить ранее введенное понятие микрооперации, называя микрооперацией действие, производимое в универ- универсальном программном автомате, одним импульсом, посы- посылаемым по любому выходному каналу микропрограммног блока. С точки зрения указанного выходного канала мик- микрооперация, как и при прежнем определении, будет вы- выполняться фактически за один микротакт (ибо до конца выполнения микрооперации изменений состояния этого канала не происходит), однако с точки зрения всей машины в целом она требует для своего выполнения нескольких микротак'тов. При описанном способе построения микропрограммного блока время рабочего цикла автомата будет, вообще го- говоря, различным для различных операций. В ряде слу- случаев, особенно когда имеют дело с операциями примерно одинаковой длительности, идут на то, чтобы уравнять время рабочего цикла для всех операций (ориентируясь, разумеется, ыа самую длительную операцию). В этом случае в микропрограммном блоке можно обой- обойтись без fi-матрицы, заменив регистр микроопераций счетчиком микротактов. Этот счетчик осуществляет счет по модулю п (где п — число микротактов в рабочем цикле) импульсов, подаваемых на его вход непосредственно с вы- выхода тактирующего генератора. Матрица А остается точ- точно такой же, как и раньше, а управления дешифратором микроопераций по-прежнему осуществляется выходными сигналами триггеров регистра операций и счетчика мик- микротактов, к которым присоединяются теперь еще сигна- сигналы обратной связи от АУ (р и q в нашем примере). Для согласования длительности микропрограмм различ- различной длины употребляются, как и выше, пустые микро- микрокоманды. В заключение отметим, что методы синтеза сложных автоматов, развитые в настоящей главе, применимы лишь к одному из классов автоматов, а именно к классу авто- автоматов с программным управлением, имеющим, к тому же, §3] Организация УйравЛВНйй 463 вполне определенную алгоритмическую (блочную) струк- структуру. При построении различного рода специализирован- специализированных цифровых автоматов эти методы часто оказываются непригодными, так как приводят к неоправданно сложным схемам. Они никоим образом не отменяют общих методов, развитых в предыдущих главах, равно как не отменяют и необходимости поиска новых методов блочного синтеза, основанных на алгоритмических структурах, отличных от алгоритмических структур универсальных программ- программных автоматов.
ЛИТЕРАТУРА А н г е р С. (Unger S. H.), Hazards and delays in asynchronous se- sequential switching circuits. IRE Trans., v. CT-6, 1959, p. 12—25. Ауфенкамп Д. (Aufenkamp D. D.), Analysis of sequential machines, II. IRE Trans., v. EC-7, №4, 1958, p. 299—306 (русск. перев. в периодическом сборнике переводов иностран- иностранных статей «Математика», 1959, № 3 : 6, стр. 145—158). Ауфенкамп Д. и X о н Ф. (Aufenkamp D. D. and Hohn F. E.), Analysis of sequential machines, IRE Trans., v. EC-6, № 4, 1957, p. 276—285 (русск. перев. в периодическом сборнике пере- переводов иностранных статей «Математика», 1959, №3:3, стр. 129—146). Базилевский Ю. Я., Вопросы теории временных логиче- логических функций. Вопросы теории математических машин, сб. 1, Физматгиз, М., 1958, стр. 9—37. Бёркхарт В. (Burkhart W. H.), Theorem minimization, Proc. Ass. Сотр. Mach., May, №2and 3, 1952, p. 259—263. Б ёр кс A. (Burks A. W.), The logic of fixed and growing auto- automata. Intern. Sympos. on the Theory of Switching (Proc. 1957), 1959, v. 1, p. 147—188. БёрксА. иВанг X. (Biirks A. W. and Wang H.), The logic of automata. J. Ass. Сотр. Mach., 4, 1957, №2, p. 193—218, N3, p. 279-297. Бёркс А. и Копи Дж. (Burks A. W. and Copi J. M.), The logical design on an idealized general purpose computer. J. Frankl. Inst., v. 261, 1956, p. 299—314, 421—436. Бёркс А. и Райт Дж. (Burks A. W. and Wright J. В.), Theory of logical nets. Proc. IRE, 1953, v.41, N10, p. 1357—1365. Б л е й к A. (Blake A.), Canonical expression in Boolean Algebra, Dissertation, Chicago, 1937. В е й ч E. (Veitch E. W.), A chart method for simplifying truth functions. Proc. Ass. Сотр. Mach., 1952, May, № 2, and 3, p. 127—133. Гаврилов М. А., Теория релейно контактных схем. Изд-во АН СССР, М., 1950. Гинзбург С. (Ginsburg S.), On the reduction of superfluous states in a sequential machine. J. Ass. Сотр. Mach., 1959, v. 6, N 2, p. 259-282. Его же, A.technique for the reduction of a given machine to a minimal-state machine, IRE Trans., v. EC-8, N 3, 1959, p. 346-355. ЛИТЕРАТУРА 465 A synthesis technique for minimal state sequential machines, IRE Trans., v. EC-8, № 1, p. 13—24 (русск. перев. в периодиче- периодическом сборнике переводов иностранных статей «математика* 1960, №4:4, стр. 145-168). A synthesis of minimal state machines, IRE Trans., v. EC-8 № 4 1959, p. 441-448. Гланц (Glantz H. Т.), A note of microprogramming J Ass Сотр. Mach., v. 3, № 2, 1956, p. 77-84. Глушков В. М., Об одном алгоритме синтеза конечных автома- автоматов. Укр. матем журнал, т. 12, № 2, 1960, стр. 147—156. Два универсальных критерия эффективности вычислительных машин. ДАН УССР, № 4, 1960, стр. 477—481. Об одном методе анализа абстрактных автоматов. ДАН УССР т. 12, № 9, 1960, стр. 1151—1154. Некоторые проблемы синтеза цифровых автоматов. Вычислит, математика и матем. физика, т. I, № 3, 1961, 371—411. Жегалкин И. И., О технике вычисления предложений в сим- символической логике. Матем. сб., т. 34, 1927, стр. 9—28. Закревский А. Д., Операторный метод синтеза алгоритми- алгоритмических систем. Изв. высш. учебн. заведений, Радиофизика, т. 2, № 2, 1959, стр. 306-315. К синтезу логических многополюсников. Изв. высших учебн. заведений, Радиофизика, т. 2, № 5, 1959, стр. 814—817. Игонне, Греа (Higonnet R. Grea R.), Etude logique des circuits electriques et des systemes binaires, Paris, 1955. К а р д о (Cardot C), Quelques resultals sur Fapplication de l'algebra de Bool a la synthese cirquits a relais. Annales des Telecommunications, v. 7, № 2, 1952. К а р н а у (Karnaugh M.), The map method for synthesis of combinational logic circuits, Trans. AIEE, v. 72, № 1, 1953 p. 593—599. Карцев М. А., Арифметические устройства электронных цифровых машин. Физматгиз, М., 1958. Кафенгст (Kaphengst H.), Eine abstrakte programmgeste- uerte Rechenmaschine, Zeitschr. fur mathematische Logik and Grundlagen der Mathematik, B. 5, № 3—4, 1959, S. 366— 379. К в а й н (Quine W. V.), The problem of simplifying of truth func- functions, Amer. Math. Monthly, v. 59, №8, 1952, p. 521—531. A way lo simplify truth functions. Amer. Math. Monthly, v. 62, 1955, p. 627—631. On cores and prime implicants of truth functions. Amer. Math. Monthly, v. 66, № 9, 1959, p. 755-760. Кейстер, Ричи, Уошборн (Keisler W., Ritchie A. E., Washburn S. N.) The design of switching circuits, New York, 1951. Китов А. И. и Криницкий Н. А., Электронные цифро- цифровые машины и программирование. Физматгиз, М., 1959. К л и н и С. К., Представление событий в нервных сетях и конеч- конечных автоматах. Сб. «Автоматы» под редакцией К. Э. Шеннона и Дж. Маккарти, ИЛ, М., 1956, стр. 15—67.
466 ЛИТЕРАТУРА Колдуэлл (Caldwell S. H.), Switching circuits and logical design, New York, 1958. Коллектив авторов вычислительной ла- лаборатории Гарвардского у н-т а, Синтез электронных вычислительных н управляющих схем. ИЛ, М., 1954 (перев с изд.: Cambridge, 1951). Кобривский Н. Е., Трахтенброт Б. А., О построе нии общей теории логических сетей. Сб. «Логические иссле дования», Изд. АН СССР, М., 1959, стр. 352—378. Копи, Элгот, Райт (Copi J. M., Elgot С, Wright J. В.), Realization of events by logical nets, J. Ass. Сотр. Mach., v. 5, №2, p. 181-196. Лебедеве. А., Мельникове А., Общее описание БЭСМ и методика выполнения операций. Физматгиз, М., 1959. Л у н ц А. Г., Приложение матричной булевской алгебры к ана- анализу и синтезу релейно-контактных схем. ДАН СССР, т. 70, № 3, 1950, стр. 421—423. Синтез и анализ релейно-контактных схем с помощью харак- характеристических функций. ДАН СССР, т. 75, № 2, 1950, стр. 201—204. Алгебраические методы анализа и синтеза контактных схеи. Изв. АН СССР (сер. матем), т. 16, 1952, стр. 405—426. Л у п а н о в О В., О возможностях синтеза схем из разнообраз- разнообразных элементов ДАН СССР, т. 103, 1955, стр. 561—563. Об одном методе синтеза схем. Изв. высш. учебн. заведений, Радиофизика, 1958, № 1, стр. 122—140. Мак-Класки (Me. Cluskey E.), Minimizations of boolean func- functions. Bell system Techn. J., v. 35, № 6, 1956, p. 1417—1444. Iterative combinational switching networks-general design considerations. IRE Trans., v. EC-7, 1958, p. 285—291. Мак-Нотон, Ям ада (McNaugbton R. F., Jamada H.), Regular expressions and stale graphs for automata, IRE Trans., v. EC-9, № 1, 1960, p. 39—48. Марков А. А., Теория алгорифмов. Труды матем. ин-та им. В. А. Стеклова, т. 42, Изд. АН СССР, М., 1954. Медведев Ю. Т., О классе событий, допускающих представ- представление в конечном автомате. Сб. «Автоматы», под редакцией К. Э. Шеннона и Дж. Маккарти, ИЛ,М., 1956, стр. 385—401. Мерсе р (Mercer D. J.), Micro-programming, J. Ass. Сотр. Mach., v. 4. 1957, p. 157—171. Мили (Mealy G. H.), A method for synthesizing sequential cirquits. Bell system Techn. J., v. 34, 1955, p. 1045— 1079. M о й с и л Г. К., Об упрощении цепей с транзисторами, электрон- электронными лампами и криотронами. Rev. de math, pures et appl. Akad., RPR, v. 4, № 4, 1959, p. 497—554. M у p, Умозрительные эксперименты с последовательностными машинами. Сб. «Автоматы», под редакцией К. Э. Шеннона и Дж. Маккарти ИЛ, 1956, стр. 179—212. Мури Шевнон (Moore E. F., Shannon С. Е.), Reliable circuits using less reliable relays, J. Franklin Inst., ЛИТЕРАТУРА 467 v. 262, № 3, 1956, p. 191—208, № 4, p. 281-297 (русск. перев. в кп.: «Кибернетический сборник», № 1, ИЛ, М.. 1960 стр. 109-148). . Мюллер (Muller D. E.), A theory of asynchronous circuits. Сб. Internet. Symp. on the Theory of switching (Proc. 1957), 1959, v. 1, p. 204-243. Незервуд (Nelherwood D. S.), Minimal sequential mashi- nes, IRE Trans., v. EC-8, № 3, 1959, p. 339-345. Нельсон (Nelson R. J.), Simples! normal (ruth functions. J. Symb. Logic, v. 20, № 2, 1955, p. 105—108. Weak simplest normal truth functions, J symb. Logic, v. 20, №3, 1955, p. 232—234. H e й м а в Дж. (von Neumann John), The general and logical theory of automata. Celebral mechanisms in behavior. New York, 1951, p. 1—41 (русск. перев. под названием «Общая и логическая теория автоматов» в кн.: А Тьюринг, Моя.ет ли машина мыслить?, Физматгиз, М., 1960, стр. 59—101). Вероятностная логика и синтез надежных организмов из ненадежных компонент. Сб. «Автоматы» под редакцией К. Э. Шеннона и Дж Маккарти, ИЛ, М., 1953, стр. 68—139. Петрик (Petrick S. R.), A direct decomposition of the irre- dumlanl forms of a boolean function from Hie set of prime- implicants, Techn. reports Air Force Cambridge Research Center, 1956, p 56—110. Поваров Г. Н., О синтезе контактных многополюсников. ДАН СССР, т. 94, № 6, 1954, р. 1075-1078. Математическая теория синтеза контактных A,/г)-полюсников. ДАН СССР, т. 100, № 5, 1955, стр. 909—912. О методике анализа симметрических контактных схем. Авто- Автоматика и телемеханика, т. 16, 1955, стр. 364—366. К математической теории синтеза контактных A,А)-полю- сников. ДАН СССР, т. 111, № 1, 1956, стр. 102—104. Пол, Ангер (Paull М. С, Unger S. H.), Minimizing the number of states in incompletely specified sequential swit- switching functions. IRE Trans., v. EC-8, № 3, p. 356—367. Поспелов Д. А., Синтез схем, работа которых описывается временными булевыми функциями. Автоматика и телемеха- телемеханика, т. 21, № 10, 1960, стр. 1410—1413. Пост (Post E.), Introduction to a general theory of elemen- elementary propositions. Amer. J. Math., v. 43, 1921, p. 163— 185. Ричарде Р. К. (Richards R. К.). Арифметические операции на цифровых вычислительных машинах. ИЛ, М., 1957. Элементы и схемы цифровых вычислительных машин, ИЛ, М„ 1961. Свобода Ф., Синтез релейных схем при помощи машин. Ав- Автоматика и телемеханика, т. 18, № 3, 1957, стр. 240— 255. Трахтенброт Б. А., Синтез логических сетей, операторы которых описаны средствами исчисления одноместных пре- предикатов. ДАН СССР, т. 118, № 4, 1958.
468 ЛИТЕРАТУРА Уилкс (Wilkes M. V.), Microprogramming, Proc. East. Joint. Comput Conf., v. NT-114, New York, 1959, p. 18—20. Уилкс, Стринджер (Wilkes M. V., Stringer J. В.), Microprogramming and the design of the control circuits in an electronic digital computer. Proc. Cambridge Philos. Soc, v. 49, №4:2, 1953, p. 230—238. Ф и с т е р (Phister M.), Logical design of digital computers, New York, 1957. X а ф м е н Д. (Huffman D. A.), The synthesis of sequential switching circuits, Journal of the Franklin Inst., v. 257, № 3 and 4, 1954, p. 161—190, 275—303. The design and use of hazard-free switching networks. Journ. Ass. Сотр. Machinery, v. 4, № 1, 1957, p. 47—62. X о н (Hohn F. E.), A matrix method for the design of relay circuits. IRE Trans., v. CT-2, №2, 1955, p. 154-161. Some mathematical aspects of switching. Amer. Math. Monthly, v. 62, № 2, 1955, p. 75—90. 2ЛНегтта1 contact networks. Internet, sympos. on the theory of switching (Proc. 1957), v. 2, 1959, p. 51-58. Хон и Шислер (Hohn F. E., Schissler L. R.)i Boolean martices and the design of combinational relay switching cir- circuits, Bell system. Techn. J., v. 34, 1955, p. 177—202. X э м м и н г (Hamming A. W.), Error detecting and error cor- correcting codes. Bell system Techn. J., v. 29, № 2, 1950, p. 147— 160. Хэмфри (Humphrey W. S.), Switching circuits with computer applications, New York, 1958. Ц е т л и н М. Л., Матричный метод анализа и синтеза электронно- импульсных и релейно-контактных (непримитивных) схем, ДАН СССР, т. 117, № 6, 1957, стр. 979—892. О композиции и разбиениях непримитивных схем. ДАН СССР, т. 118, № 3, 1958, стр. 488-491. О непримитивных схемах. Проблемы кибернетики, вып. 1, Физматгиз, М., 1958, стр. 23—45. Ц е т л и н М. Л., Э й д у с Г. С, Алгебраический метод синтеза схем на триггерных ячейках. Изв. высш. учебн. заведений, Радиофизика, т. 1, № 5—6, стр. 166—176. Шеннон К. (Shannon С. Е.). A symbolic analysis of relay and switching circuits, Trans. A1EE, v. 57, 1938, p. 713—723. The synthesis of two-terminal switching circuits. Bell. System. Techn. J., v. 28, 1949, p. 59—98. Шестаков В. И., Алгебра двухполюсных схем, построенных исключительно из двухполюсников. Алгебра Л-схем. ЖТФ, т. 11, № 6, 1941, стр. 532. Алгебраический метод синтеза автономных систем двухпозици- онншх реле. Автоматика и телемеханика, т. 15, № 4, 1954, стр. 310—324. Алгебраический метод синтеза многотактных релейных систем. ДАН СССР, т. 99, № 6, 1954, стр. 987—990. Шуберт (Schubert E. I.), Matrix analysis of logical networks. Commun. and Electronics, № 35, 1958, p. 10—13. ЛИТЕРАТУРА 469 Matrix synthesis of high-speed logic. Commun. and Electronics № 41, 1959, p. 4-8. Matrix algebra of sequential logic, Commun. and Electronics, №46, I960, p. 1074-1079. Simultaneous logical equations Matrix logic, III. Commun and Electronics, № 46, 1960, p. 1080—1083. Эйнгорин М. Я., О системах уравнений алгебры логики и синтеза дискретных управляющих схем с обратными связями. Изв. высш. учебн. заведений, Радиофизика, т. 1, № 2, 1958, стр. 169—184. Яблонский СВ., О полных системах функций алгебры ло- логики, УМН, т. 7:5 E1), 1952, стр. 197. Функциональные построения в А-значной логике. Труды матем. ин-та им. В. А. Стеклова, т. 51, 1958, стр. 5—142.
ИМЕННОЙ УКАЗАТЕЛЬ Абрахам (Abraham P. W.) 282 Ангер (Unger S. Н.) 464, 467 Ауфенкамп (Aufenkampf D. D.) 10, 142, 158, 464 Базилевский Ю. Я. 464 Бёркс (Burks A. W.) 464 Бёркхарт (Burkhart W. Н.) 308, 464 Блейк (Blake A.) 13, 292, 298, 311, ?Л2, 464 Буль Дж. (Boole G.) 191 Ванг (Wang H.) 464 Вейч (Veitch E. W.) 302, 303, 464 Гаврилов М. А. 464 Гинзбург (Ginsburg S.) 464 Гланц (Glantz H. Р.) 465 Глушков В. М. 10, 14, 431 Греа (Grea R.) 465 Жегалкин И. И. 200, 207, 465 Закревский А. Д. 465 Игонне (Higonnet R.) 465 Кардо (Cardot С.) 465 Карнау (Karnaugh M.) 13, 302, 303, 312, 465 Карцев М. А. 431, 465 Кафенгст (Kaphengst H.) 465 Квайн (Quine W. О.) 13, 14, 265, 270, 278, 281, 311, 312, 465 Кейстер (Keister W.) 465 Китов А. И. 465 Клини (Kleene S. С.) 9, 67, 75,465 Кобринский Н. Е. 466 Колдуэлл (Caldwell S.H.K78,466 Копи (Copi J. M.) 464, 466 Криницкий Н. А. 465 Кузнецов А. В. 243 Лебедев С. А. 466 Лунц А. Г. 341, 466 Лупанов О. Б. 466 Мак-Класки (Me. Cluskey) 278, 282, 466 Мак-Нотон (Me. Naughton R. F.) 466 Марков А. А. 28, 466 Медведев Ю. Т. 466 Мельников В. А. 466 Мерсер (Mercer D. J.) 466 Мили (Mealy G. Н.) 9, 53, 158, 467 Мойсил (Moisil Gr. G.) 467 Морган де A. (De Morgan A.) 202 Мур (Moore E. F.) 9, 13, 53, 400, 402, 404, 407, 467 Мюллер (Muller D. Е.) 467 Незервуд (Netherwood D. S.) 467 Нейман (von Neumann John) 9, 407, 467 Нельсон (Nelson R. J.) 297, 311, 312, 467 Нордаль (Nordal J. G.) 282 Петрик (Petrick S. R.) 273, 467 Поваров Г. Н. 13, 199, 317, 467 Пол М. (Paull M. С.) 467 Поспелов Д. А. 467 Пост (Post E.) 238, 467 ИМЕННОЙ УКАЗАТЕЛЬ 471 Райт (Wright J. В.) 464, 466 Ричарде (Richards R. К.) 431, 467 Ричи (Ritchie A. E.) 465 Хэмминг (Hamming A. W.) 410, 468 Хэмфри (Humphrey W. S.) 358, 468 Свобода (Svoboda F.) 362, 467 Цетлин М. Л. 468 Стринджер (Stringer J. В.) 14, 456, 468 Трахтентброт Б. А. 466, 467 Уилкс (Wilkes M. V.) 9, 14, 456, 467, 468 Уошборн (Woshburn S. Н.) 465 Фистер (Phister M.) 468 Хафмен (Huffman D. А.) 9, 53, 379, 467 Хон (Honn F. Е.) 10, 142, 158, 345, 468 Шеннон (Shannon С. Е.) 9, 13, 198, 317, 319, 320, 323, 354, 400, 402, 404, 407, 467, 468 Шестаков В. И. 9, 468 Шислер (Schissler L. R.) 345, 468 Шуберт (Schubert E. J.) 468 Эйдус Г. С. 468 Эйнгорин М. Я. 469 Элгот (Elgot С.) 466 Яблонский С. В. 13, 199, 243, 277, 469 Ямада (Jamada H.) 466
предметный указатель Абстрактная теория автоматов 10, 13, 34, 35 абстрактный сигнал 368—371 — синтез 8 автоматное множество событий 60, 61, 62, 69 — отображение 51—61 — — с конечной областью оп- определения 53 автоматы второго рода 34, 36 — Мили 34, 39, 42, 100,103, 111, 166 — Мура 34, 39, 42, 99, 102, 109, 166 — первого рода 34, 36, 166 алгебра событий 62, 63, 64 алгоритм 13, 27 — Квайна 281 — Мак-Класки 282 алгоритмический синтез 415 алфавит отметок 70 алфавитный оператор 27 арифметическое устройство 427 асинхронный автомат 32 ассоциативности закон 201, 207 Базовая схема 403 безинверсная форма выражения 206 бесконечный автомат 39 бинарная система кодирования 370 блок-схема ЦВМ 426 булевый (двоичный) набор 192 быстродействие автомата 429 — — эффективное 430 — — — среднее 430 Вводное устройство 427 вектор входной 169 — выходной 169 — структурного алфавита 169 векторная функция выходов 181 вентиль 234, 338 — двусторонний 235, 339 — допустимый 363 — импульсно-потенциальный 375 — односторонний 235, 339 вентильный сигнал 339 — входной полюс 235 — узел 339 вертикальная шина 456 весовой коэффициент 372 внешняя память 426 всеобщее событие 65 входной сигнал 33, 36 — узел 168, .171 выводное устройство 428 вырожденная функция 194 выходной сигнал 37 — узел 168, 171 Горизонтальная шина 456 граф абстрактного автомата 40, 41 Двоичное кодирование 24 двоичный алфавит 24 дешифратор 330 — адреса 448 — микроопераций 457 — пирамидальный 331 — полный 331 — прямоугольный 332, 333 диаграмма Вейча 303 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 473 дизъюнктивное представление таблицы 273 дискретный (цифровой) автомат 7, 27 дистрибутивности закон 202, 207 дополнение события 65 достижимое состояние автомата 49 Естественное разделение сиг- сигналов 173, 235, 339 естественный нулевой сигнал 170, 235 Закон функционирования авто- автомата 37 закрытый (не управляющий) ре- регистр 448 замкнутый (циклический) счет- счетчик 453 запоминающее устройство 426, 427 запрещенное состояние 48 знаковый разряд 434 Идеальный импульсный (потен- (потенциальный) сигнал 369 идемпотентности закон 204, 207 избыточный код 409 изоморфное отображение 38 изоморфный абстрактный авто- автомат 38 импликанта 265 — простая 265, 277, 324 — существенная простая 277 импликация 196 имплицента булевой функции 308 — — — простая 309 импульсная схема 371 импульсно-потенциальная схема 371 импульсный сигнал 369 импульсный счетчик 450 импульсный усилитель 373 — формирователь 373 — элемент задержки 374 инвертирующий усилитель 373 инвертор 230 индекс целого числа 282 интерпретация .автомата 39, 42 итерация 403 Каноническая двухступенчатая схема 325 канонический метод структур- структурного синтеза 181 — полином 218 каноническое множество собы- событий 61, 69 — разбиение множества 73 — уравнение 8, 186 карты Карнау 303, 312 квадратная автоматная матрица 43 код команды 416 — Хэмминга 410 кодирование абстрактных сиг- сигналов 169 — состояний автомата 184 кольцевой счетчик 451 команда (приказ) 416 комбинационная схема 35, 181, 222 комбинационный синтез 8 — (логический) элемент 181 комбинированная схема 35, 380 комбинированный триггер пер- первого (второго) рода 259 коммутативности закон 201, 207 комплекс регулярных выраже- выражений 106 конечный автомат 39 контрольная сумма кода 411 контрольный код кода 411 корректирующая схема 411 кортеж 192 коэффициент разветвления ло- логического элемента 371 Левый сдвиг 433 линейная функция 240 Максимальный инвариантный класс 151 матрица непосредственных свя- связей 340 — полных связей 340 матричный дешифратор 331 метод каскадов 317
474 метод последовательного при- приведения 59 — стандартного приведения 59 микрооперация 433, 462 — записи 448, 449 — инвертирования кода 440 — обычной передачи кода 440 — очистки регистров АУ 440 ОЗУ 449 — передачи кодов с одного ре- регистра на другой 433 — — числа без изменения типа кода 441 — — — обратным кодом 441 — — — прямым кодом 441 — поразрядного сложения 441 — реализации переносов 441 — сдвига 433, 443 — сложения знаков 444 — суммирования 433 — считывания 448, 449 микропрограмма 440 микропрограммный дешифратор 456 — подавтомат 456 микротакт 433 минимальная нормальная форма дизъюнктивная 269 конъюнктивная 308, 310 минимальное накрытие функции 301, 310 многочлен 65 монотонная функция 241 Надежностный синтез 8 Накапливающий сумматор 391, 439 начальный комплекс 82 невырожденная функция 194 недостижимое состояние авто- автомата 49 нерасщепляемая система обоб- обобщенных классов 157 нормализованный код 436 нормальная форма дизъюнктив- дизъюнктивная 211 — — конъюнктивная 211 нормальный алгоритм 28, 30 Область запрета автоматного отображения 51 область определения булевой функции 192 обобщенное конъюнктивное склеивание 311 обобщенные столбцы 156 обратный код 434 общий алгоритм минимизации 157 — способ композиции автоматов 171 однотактный сумматор 440 одночлен (терм) 65 одноэлементное событие 65 ослабленная функциональная полнота 238 оперативная память 426 операция 416 — ввода 419 — вывода 419 — вычитания 440 — исключения 347 — неполного склеивания 278, 280, 311 — обобщенного склеивания 311 — отождествления мест 107 — переадресации 418 — пересылки 419 — пополнения 56, 65 — расширения 84, 85, 86, 347 — расщепления классов 139 — сдвига 425 — условного перехода 418 — элементарного поглощения термов 274, 280, 312 основная базовая схема 404 основные места комплекса 107 — — — квазиподобные 111 — — — подобные 107 — — — соответственные 107 — тождества алгебры Жегал- кина 207 отображение, индуцированное абстрактным автоматом 37 отрицание дизъюпкции 196 — импликации 196 — конъюнкции 196 Параллельное арифметическое устройство 432 параллельный автомат 429 — регистр 432 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 475 переключательная функция ло- логического элемента 191, 223 пересечение событий 65 перфокарта 427 перфолента 427 поглощения закон 203 полная система импликант 266 — — имплицент 309 полусумматор 444 пополнение события 65 последовательное арифметиче- арифметическое устройство 432 последовательный автомат 429 — регистр 433 потенциальная схема 371 потенциальный сигнал 369 — триггер 374 — элемент задержки 374 правило двойного отрицания 201 — де-Моргана 202 — объединения совместимых столбцов 153 правильная квадратная булева матрица 348- — — — — вентильная 348 — композиция автоматов 176 — система переключательных функций 227 — структурная система 224 — схема '176 правый сдвиг 433 предзапрещенное слово 118 приведение к дизъюнктивной (конъюнктивной) нормальной форме 216 проблема гонок 377 — риска 379, 383 — факторизации 307 программа ЦВМ 416 программный автомат 420 простейшее или побуквенное преобразование 23 простой повторитель 372 — — катодный 373 — — эмиттерный 373 пустая микрокоманда 461 пустой комплекс 82 путь 81 — простой 81 Разделение 179, 230 разрядность машины 436 ранг комплексов* 84 — накрытия 301 расщепление системы обобщен- ных i-классов 156 регистр 431 — адреса 447, 448 — команд 454 — микроопераций 454 — операций 454 — сдвиговый 433, 443 — числа 447, 448 регулярное выражение 66 — событие 66 Свойство полноты системы тож- тождеств 218 связный автомат 47 синхронизирующий генератор 455 — импульс 457 синхронный автомат 455 система инвариантных классов 151 — обратных кодов 434 — переключательных уравне- уравнений 223 — уравнений непосредственных связей 223 — функций непосредственных связей 225 скважность импульса 371 совершенная нормальная форма дизъюнктивная 215 — — — конъюнктивная 215 совместимые состояния 137 — столбцы 153 — — обобщенные 156 совпадение 230 сокращенная нормальная форма дизъюнктивная 267, 278 — — — конъюнктивная 309 стандартная операция 56, 430 — теория автоматов 34, 35, 165 структурное состояние автомата 179 структурный алфавит автомата 168 — синтез 8
476 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ ступенчатая система переклю- переключательных функций 226 сумматор 431 суперпозиция автоматов 177 — булевых функций 197 схема обратных связей 186 — с импульсной логикой 380, 381 — с потенциальной логикой 380 счетчик микротактов 454, 462 — с естественным кодированием состояний 451 Теорема об ослабленной функци- функциональной полноте 246 — о структурной полноте 184 — о функциональной полноте 243 тип путей 81 триггерный регистр 432 тупиковая матрица 360 — форма дизъюнктивная 268 — — — нормальная 278 — — конъюнктивная нормаль- нормальная 309 Узел нулевой ступени 225 — первой ступени 226 универсальный критерий эффек- эффективности 430 — многополюсник 320 — — вентильный 354 — программный автомат 420 управляющий вход вентиля 235 — (открытый) регистр 448 — сигнал 339, 449 — узел 339 усилитель 373 — импульсный 373 — потенциальный 373 условие автоматности отобра- отображения 43 условие корректности постр ния схемы 173 — однозначности 45 — полной определенности — полноты 47 устройство управления 421 Формирователь 373 функциональная полнота 11 функция выходов 152 — непосредственной связи — неравнозначности 196 — переходов 151 — полной связи 340 — равнозначности 196 — разделения 196 — самодвойственная 239 — совпадения 195 Цена эффективного быстрое ствия 431 циклическая цепь 174 циклический перенос 435 циклическое сложение 435 Частичное отображение 22 частичный автомат 45, 16 Шина 429 штрих Шеффера 196, 249 Элементарная дизъюнкция элементарное произведение — событие 66 элементарный канал входной — — выходной 168 — сигнал 168 Этап блочного синтеза 414 — циклирования 414 Ячейка памяти 416