22
Министерство образования и науки Российской Федерации ФГАОУ ВПО «УрФУ имени первого Президента России Б.Н.Ельцина» В.П. Битюцкий, С.В. Григорьева МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ Учебное электронное текстовое издание Подготовлено кафедрой «Информационные технологии» Научный редактор: к.т.н., доц. С.П. Трофимов Методическое пособие для студентов направления 230100 «Информатика и вычислительная техника». Приводятся необходимые понятия теории минимизации пе- реключательных функций, соотношения, на основе которых по- строены методы минимизации, реализация этих методов в форме алгебраических преобразований, карт Карно. Особое внимание уделено методу Квайна–Мак-Класки, который широко использу- ется для программной реализации минимизации. Рассмотрены во- просы реализации системы функций схемой, содержащей мини- мальное число элементов. УрФУ, 2012 Екатеринбург

МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

Министерство образования и науки Российской Федерации

ФГАОУ ВПО «УрФУ имени первого Президента России Б.Н.Ельцина»

В.П. Битюцкий, С.В. Григорьева

МИНИМИЗАЦИЯ

ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ

Учебное электронное текстовое издание

Подготовлено кафедрой «Информационные технологии»

Научный редактор: к.т.н., доц. С.П. Трофимов

Методическое пособие для студентов направления 230100

«Информатика и вычислительная техника».

Приводятся необходимые понятия теории минимизации пе-

реключательных функций, соотношения, на основе которых по-

строены методы минимизации, реализация этих методов в форме

алгебраических преобразований, карт Карно. Особое внимание

уделено методу Квайна–Мак-Класки, который широко использу-

ется для программной реализации минимизации. Рассмотрены во-

просы реализации системы функций схемой, содержащей мини-

мальное число элементов.

УрФУ, 2012

Екатеринбург

Page 2: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

2

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ ........................................................................................................................ 3

ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ ........................................................................................ 4

1.1. Определение функции ............................................................................................ 4 1.2 Представление функции ......................................................................................... 4

МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ ................................. 6

2.1. Минимизация в классе ДНФ .................................................................................. 6 2.1.1. Алгебраические соотношения ......................................................................... 6 2.1.2. Тупиковые нормальные формы ....................................................................... 6

2.1.3. Метод минимизации по картам Карно........................................................... 7 2.1.4. Выполнение минимизации по картам Карно ................................................. 9

2.1.5. Минимизация частичных функций ............................................................... 10

2.1.6. Метод Квайна–Мак-Класки ........................................................................... 10 2.2. Конъюнктивные нормальные формы .................................................................. 13 2.3. Минимизация системы функций ......................................................................... 14

2.3.1. Скобочные формы .......................................................................................... 14 2.3.2. Системы функций ........................................................................................... 14

ЗАДАЧИ И УПРАЖНЕНИЯ .......................................................................................... 16

3.1. Минимизация функций ......................................................................................... 16 3.1.1. Минимизация алгебраическим методом. ..................................................... 16 3.1.2. Минимизация по картам Карно. .................................................................... 16

3.1.3. Минимизация методом Квайна–Мак-Класки. ............................................. 17 3.2. Минимизация системы функций ......................................................................... 18

3.3. Ответы ................................................................................................................... 19

ЛИТЕРАТУРА ................................................................................................................. 21

Page 3: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

3

ВВЕДЕНИЕ

Одной из основных задач при использовании переключательных функций (функций ал-

гебры логики (ФАЛ)) является задача получения минимального представления функции в ви-

де формулы, соответствующей этой ФАЛ. С формульным представлением мы имеем дело

чаще всего во многих практических задачах, когда информация представлена в виде множе-

ства ФАЛ. Такое представление является более понятным, потому что несет в себе семанти-

ческую нагрузку: мы понимаем, что такое базовые функции И, ИЛИ, НЕ, РАВНОЗНАЧ-

НОСТЬ, и др, и это понимание переносим на всю функцию.

Задача минимизации связана, во-первых, с реализацией устройств, представленными

множеством функций алгебры логики. При этом минимизации будет соответствовать мини-

мизация числа (логических) элементов в реализации. Минимальное представление, во-

вторых, более понятно для анализа функции, так как не содержит ничего лишнего в пред-

ставлении. Поэтому первым этапом решения любой задачи является минимизация условия

задачи, и очень часто в виде такого условия выступает описание через множество ФАЛ.

Задачи минимизации рассматриваются в дисциплине «Дискретная математика», со-

вместная минимизация функций в различных базисах – в дисциплине «Теория автоматов».

Page 4: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

4

1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ

1.1. Определение функции Булевой (логической) переменной называют переменную, принимающую значение из

множества {0,1}. Название «логическая» следует из того, что её значения трактуются чаще

всего как «истина» (для 1) и «ложь» (для 0).

Функцией алгебры логики (от n переменных называют однозначное отображение мно-

жества всевозможных наборов значений n булевых переменных в множество {0,1}.

Для этой функции также используется названия переключательная функция, потому

что такими функциями описываются дискретные управляющие и вычислительные устройст-

ва, которые реализуются через элементы, называемые переключательными. Эти элементы

имеют как на входе так и на выходе сигналы, принимающие значения или 0 или 1. В совре-

менных устройствах значению 0 соответствует значение напряжение 0v («земля»), значению

1 – +5v.

1.2 Представление функции Функцию алгебры логики можно описать таблицей из n+1 столбцов и 2

n строк. Эта таб-

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

соответствующее им значение функции.

Наборы значений переменных располагают в порядке воз-

растания двоичного числа, сопоставленного набору (лексико-

графический порядок), как в примере табл.1 для n = 3.

Число всевозможных наборов значений переменных N=2n.

Число различных функций, которые могут быть записаны в таб-

лице, равно 2N. От <000…0> до <111…1>.

Здесь в скобках представлены вектора длины 2N. Эту таб-

лицу можно «свернуть» в матрицу размером kn1

x kn2

, где n1+n2 =

n. В нашем примере это будет матрица размером 21x2

2=2х4

(табл. 2).

Если функция имеет только значения 0 и 1, то зачем запи-

сывать всю таблицу? Перечислим те наборы, на которых функ-

ция принимает значение 1. Второй способ описания функции

состоит в том. что перечисляются наборы значений, на которых

функция равна 1 (множество Т1), или равна 0 (множество Т0).

Для приведённого примера функцию можно представить

как Т1={001,010,100}. Если для описания использовать множе-

ство T0, то описание будет иметь вид: T0= {000, 011, 101,110, 111}.

Какую форму принять? Можно взять то множество, где число наборов меньше, в дан-

ном случае это будет множество T1.

Иногда единичным значениям приписывается некоторый инженерный смысл. Напри-

мер, единичным значениям сопоставлены условия включения двигателя, в этом случае по-

лезно знать эти условия, и тогда функцию представим множеством Т1 независимо от размера

этого множества.

Третий способ описания – представление функ-

ций в виде вектора. Так как порядок перечисления на-

боров входных переменных установлен, то достаточно

указать только столбец функции. Для приведенного

примера это будет вектор <01101000>. Длина вектора

равна 2n, по длине определяется число переменных,

после чего можно легко получить запись функции в

виде таблицы. Для нашего примера длина вектора 8,

значит n = 3. Из этого следует, что при записи функ-

Page 5: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

5

ции важно соблюдать лексикографический порядок в перечислении наборов значений вход-

ных переменных.

Четвертый способ представления функций – формульный, когда функции сопоставля-

ется запись в виде формулы через простейшие функции. Вводится множество функций, на-

зываемые простейшими. Они приведены в табл. 3.

Функции называются: & – конъюнкция (И), v – дизъюнкция (ИЛИ), – сложение по

модулю 2 (неравнозначность),

импликация (если a, то b),

равнозначность (эквивалентность),

a – инверсия a (НЕ a).

Вместо a&b можно писать a b= a b=

ab, вместо a – a.

Через эти функции можно выразить

любую функцию в виде формулы.

Пример. a (b c) v a& ( b c).

Этой формулой представлена функция

из предыдущего примера.

Любую функцию можно описать формулой, используя только функции из множества

{&, v, }. Этот базис называется булевым или каноническим. Функции базиса называют еще

элементами, так как формуле однозначно сопоставляется схема из элементов, реализующих

эти функции [2].

Другой базис, в котором мы будем представлять функции, базис { (a v b)} или базис

{{ (a & b)}. Эти базисы называются монофункциональными (содержащие единственный

элемент).

Задача минимизации – задача получения минимальной по числу элементов формулы

для функции в принятом базисе.

Получение минимальной формулы является первым этапом при построении схемы,

реализующей множество заданных функций [2].

Page 6: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

6

2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ

2.1. Минимизация в классе ДНФ

2.1.1. Алгебраические соотношения

Во всех методах минимизации функций, представленных каноническом базисе, исполь-

зуются следующие операции.

1. f a v f a = f.

Здесь f некоторая формула. Это равенство поясняется следующим образом: (f a v f a)

= f (a v a) = f. При этом используется свойство дистрибуции операций конъюнкции и дизъ-

юнкции, свойство констант a a = 1, f 1 = f [1]. Формула представляет операцию, назы-

ваемую операцией склеивания по переменной, в данном случае переменной a. Использование

этой операции при минимизации функций сокращает число элементов в ней на 4+ f , где f -

число переменных в функции f.

Пример. a b c v a b c = b c . В исходной функции используется 10 элементов (5 ин-

версий, 4 конъюнкции и 1 дизъюнкция), в результате – 3 элемента (2 инверсии, 1 конъюнк-

ция). В функции f = b c 3 элемента, сокращение на 10 -3 =7 элементов.

2. f a v f = f.

Это равенство следует из того, что функция f уже содержит f a ( f = f a v f a). Эта

операция называется операцией поглощения. Сокращение в числе элементов при этом со-

ставляет 2+ f элементов.

3. f a v a = f v a.

Справедливость этого равенства следует из следующего:

f a v a = f a v f a v f a = f a v f a v f a = f v a. Сокращение при ис-

пользовании этой операции – 1 элемент.

Во многих случаях сложность ДНФ оценивают числом входящих в нее букв.

2.1.2. Тупиковые нормальные формы

Любая функция алгебры логики может быть записана в виде СДНФ [1]. Запись в СДНФ

является самой сложной из ДНФ [1].

Пример. Пусть задана СДНФ

b (a,b,c)=abc ab c a bc a b c abc.

Преобразуем эту СДНФ. Добавим еще один конъюнктивный член abc. Это добавление

не меняет данной функции, так как x x=x,

f(a,b,c)=abc ab c a bc a b c abc abc.

Преобразуем это выражение, используя описанные в предыдущем разделе операции.

Получим:

f(a,b,c) = a b(c c) a b (c c) b c(a a)=a b a b b c.

Аналогично предыдущему делаем дальнейшие преобразования:

f(a,b,c) = a (b b) b c = a b c.

Если к исходной ДНФ применять в произвольном порядке описанные в предыдущем

разделе преобразования, то наступит момент, когда эти преобразования окажутся уже невоз-

можными. В этом случае получим ДНФ, которую называют тупиковой ДНФ (ТДНФ).

Минимальная ДНФ содержится среди ТДНФ. Получая всевозможные тупиковые ДНФ

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

личина необходимого перебора определяется количеством функций в классе тупиковых

ДНФ. Для функции алгебры логики, зависящей от числа аргументов, больше 10, может быть

очень большой. Поэтому на практике часто ограничиваются в этом случае получением пер-

вой тупиковой формы.

Метод минимизации записанной в ДНФ функции, основанный на алгебраических пре-

образованиях с использованьем операций из раздела 2.1, назовем алгебраическим.

Page 7: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

7

При минимизации удобно использовать описание функции в виде перечисления мно-

жества значений Т1 – множество единичных наборов. Номера наборов необходимо записы-

вать в виде двоичных номеров. Так, функцию, приведенную в начале данного раздела пред-

ставим в виде Т1={111, 110, 101, 100, 011}. Две конъюнкции можно склеить только тогда,

когда им составлены двоичные наборы, отличающие только в одной позиции – значением

одной переменной. Такие наборы называются соседними. Соседние наборы склеиваются по

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

дут, например, наборы 111 и 110, что соответствует конъюнкциям abc и ab c. Полученную в

результате склеивания конъюнкцию обозначим как 11~, где символом ~ обозначено отсутст-

вие переменной c, или, что то же самое, произвольное значение этой переменной (хоть 0,

хоть 1).

2.1.3. Метод минимизации по картам Карно

Данный метод минимизации применим для функций с числом переменных не более 6 и

удобен для ручной минимизации, когда человек видит те комбинации, которые можно объе-

динить вместе. Для этого запишем таблицу в виде матрицы размером l1xl2, где все перемен-

ные разбиты на две, по возможности, равные группы, l1 и l2, соответственно, множества все-

возможных наборов значений переменных первой и второй группы. Эти наборы упорядочим

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

четырех переменных

a, b, c и d. Сопоставим столбцам наборы значений переменных a и b, строкам – пере-

менных c и d, так чтобы каждой клетке соответствовала комбинация переменных из этих

групп и соседние наборы располагаются рядом. Соседние наборы для рассматриваемого

случая 00 01 11 10 (при каждом последующем переходе изменяется только подчеркну-

тый символ). При этом первый и последний наборы также оказываются соседними. Эта таб-

лица называется картой Карно.

В качестве примера рассмотрим функцию, заданную множеством единичных наборов

T1 = {00, 01, 03, 05, 07, 10, 11, 12, 16, 17}, где значения наборов представлено в восьмерич-

ном виде. Переведем эти значения в двоичный вид: 0000, 0001, 0011, 0101, 0111, 1000, 1001,

1010, 1110, 1111.

Карта Карно приведена в виде табл. 4

Заполнение карты производится по табличному опи-

санию исходной функции. В примере конъюнкции 0000 со-

ответствует клетка 00/00, а 0111 клетка 01/11 и т.д. В дан-

ной таблице каждая единица имеет порядковый индекс, ко-

торый соответствует порядковому номеру данной компо-

ненты в исходной функции (расстановка этих индексов со-

вершенно не обязательна и здесь приведена для лучшего

понимания).

Для минимизации необходимо попарно cклеить рядом

стоящие единицы, имеющие хотя бы одну общую компоненту. Общими будут компоненты,

заполняющие прямоугольник размером 2i

х

2j. При этом нужно не забывать, что крайние

строки и крайние столбцы также соседние, поэтому можно объединять, например ячейки с

единицами 11, 12, 16 и 17, результатом чего будет конъюнкция b c. Действительно, после

объединения 11 и 12 получим конъюнкцию a b c (от d не зависти, так как эта переменная

принимает значение как 1, так и 0), объединение 16 17, дает конъюнкцию a b c, которая

склеивается с первой конъюнкцией и дает результат b c. Нужно стремиться «склеить» в

один набор как можно больше клеток. Склеиваем далее 12, 13, 14 и 15, получаем конъюнкцию

a d. 18 можно склеить с 16 или с 110. В первом случае получим конъюнкцию (a b d), во

втором случае (a с d). Предпочтение отдаем второму решению, где меньше инверсий. Ос-

тается непокрытой только 19. Здесь также два варианта – склеить ее с 110 или с 15. В первом

Page 8: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

8

случае конъюнкция будет не зависеть от переменной d и будет равна a b c, во втором слу-

чае – от переменной a, и будет равна b c d. Оба случая равнозначны. В результате полу-

чим формульное представление функции

f = b c v b d v a с d v a b c или

f = b c v b d v a с d v b c d.

С точки зрения сложности ДНФ оба представления имеют одну и ту же сложность.

Как указывалось выше, сложность формульного представления можно оценивать чис-

лом символов переменных в формуле. Для полученного решения эта оценка будет равной 10.

Будем в дальнейшем пользоваться такой оценкой.

Для функций от 5 и 6 переменных, когда столбцы для 5 переменных и столбцы и стро-

ки для 6 переменных именуются наборами значений трех переменных. В этом случае поря-

док может быть таким: 000 001 011 010 110 111 101 100 Снова крайние наборы

соседние, любую пару соседних наборов тоже можно склеить. Однако склеить 4 подряд рас-

положенных наборов возможно не всегда. При склеивании четырех наборов должны сокра-

титься две переменные, т.е. во всех этих наборах только одна переменная должна сохранять

постоянное значение. Например, для наборов 000, 001, 011, и 010 такой переменной являет-

ся первая переменная, Если эти переменные a, b и c, то этим наборам будет сопоставлена

(вырожденная) конъюнкция a. Для рядом расположенных наборов 001, 011, 010 и 110 та-

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

конъюнкции . a c и b c, которые, как видно, соседними не являются. Это первая слож-

ность при минимизации функций 5 и 6 переменных.

Вторая сложность состоит в том, что некоторые несоседние наборы являются соседни-

ми и их можно склеивать. Примером может служить множество наборов 000 и 010, наборы

001 и 101, наборы 011и 111. Четыре набора 001, 011, 111 и 101 так же склеиваются в набор,

соответствующий конъюнкции c.

Пример. Минимизируем функцию пяти переменных:

Карта Карно для нее приведена в табл.5.

Если в конъюнкции переменная не присутствует, то 1 ставится во все клетки, удовле-

творяющие присутствующим переменным. Так, например, первой конъюнкции (a b c d) со-

ответствует две клетки: 100/00 и 100/01 с различными значениями переменной e, что обозна-

чено как 11,5 и 11, четвертой конъюнкции a b с e – клетки 101/00, 101/10.

Минимизация приводит к формуле

.

Соответствующие покрытия показаны в табл. 6

Page 9: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

9

2.1.4. Выполнение минимизации по картам Карно

В первую очередь при минимизации по картам Карно проводится поиск наибольших по

площади прямоугольников, заполненных единицами, которые можно склеить в одну конъ-

юнкцию. Таким образом на каждом шаге покрывается возможно большее число единиц. Ес-

ли на очередном шаге минимизации возможно использовать уже покрытые единицы, чтобы

получить более короткую конъюнкцию, это нужно сделать. Однако при этом могут возник-

нуть ситуации, когда все единицы некоторой конъюнкции будут покрыты другими конъ-

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

примером минимизации функции пяти переменных, приведенной в табл. 7.

Минимизацию начинаем со склеивания единиц в конъюнкцию deb. Эти единицы обо-

значены в табл. 8 как 116115117118 . Это самый большой прямоугольник, содержащий 4 едини-

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

первом прямоугольнике, значит такие склеивание нужно делать – при каждом склеивании

экономится одна переменная. Но в итоге первая конъюнкция оказывается покрытой после-

дующими конъюнкциями.

Значит, эта конъюнкция будет лишней, и минимальная ДНФ будет иметь вид:

a c de v abce v ab c d v ac de.

Пример. Найдем минимальную ДНФ для функции,

представленной в табл. 9. Решением будет формула b c d

v ab c V ac d v a bcd. Сложность этой функции состав-

ляет 13. Сравните эту функцию с функцией, представлен-

ной табл.4. Видно, что эта функция является инверсией

функции из табл.4. Формула из табл.4 содержит 10 букв,

добавив еще один символ инверсии над всей формулой,

получим решение сложности 11, то есть решение будет

проще, хотя уже не в чистом виде ДНФ.

Page 10: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

10

2.1.5. Минимизация частичных функций

Функция называется частичной, или неполностью определенной, если ее значения мо-

гут быть не только 0 и 1, но и неопределенное значение, обозначаемое в таблице и в картах

Карно символом «-» или «~». Будем пользоваться первым символом.

Семантика понятия «неопределенность» может быть двоякой. В первом случае неопре-

деленность предполагает, что на практике такой набор значений входных переменных не

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

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

используется. В обоих случаях частичной функции сопоставляется 2k

различных полностью

определенных функций, где k – число неопределенных наборов значений входных перемен-

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

сложность. Частичная функция в случае задания в виде перечисления множеств значений T1

или T0, еще множества неопределенных значений T~ , и для определения функции необхо-

димо задать любые два множества из этих множеств, например, T1 и T~.

Пример. Частичная функция определена табл. 10. Эта функция

может быть реализована одной из 22

= 4 полностью определенными

функциями. Единичным значениям функций в СДНФ будет сопостав-

лены конъюнкции a bc, a b c, abc, или в «двоичном представлении»

– 001, 010, 111. Неопределенности представлены конъюнкциями a b c

и a bc или 000 и 111. Видно, что единичные наборы не являются со-

седними между собою, но первую конъюнкцию можно сократить на

переменную c, если склеить ее с первой неопределенной конъюнкцией.

С последней неопределенной конъюнкцией можно склеить и послед-

нюю определенную. При этом из конъюнкции удалится переменная b.

Вторая определенная конъюнкция также склеивается с первой неопре-

деленной, в результате чего удаляется переменная b. Результатом бу-

дет функция a b v a c v ac, или в векторном виде <11100101>. Вто-

рым вариантом будет вариант, когда первая конъюнкция описания функции склеивается с

последней конъюнкцией неопределенных значения, тогда результатом будет формула b c

v a c v ac.

2.1.6. Метод Квайна — Мак-Класки

Рассматриваемый метод пригоден для любого числа переменных (практически

не более 10), допускает возможность построения компьютерной программы минимизации.

Рассмотрим вначале случай, когда функция представляется в виде множества единич-

ных наборов T1, каждая конъюнкция которой переведена в двоичные вектора. Заметим, что

склеивание можно проводить только между наборами, которые отличаются между собой

только в одном разряде, и, значит, число единиц в этих наборах будет отличаться на едини-

цу. Например, набору a b c d e соответствует вектор 01011, в котором 3 единицы, а сосед-

нему с ним по переменной a набору a b c d e с – вектор 11011 с числом единиц 4.

На первом этапе разделим все наборы на группы по числу единиц в них. По сказанному

выше, склеиваться могут только наборы из соседних групп, поэтому последовательно прово-

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

получаем вектора в троичном представлении, где используется символ ~ как символ неопре-

деленного значения. Так после склеивания конъюнкций, приведенных в начале параграфа, на

втором уровне получим вектор ~1011. В результате проведенных склеиваний на втором

уровне после склеивания наборов из групп, содержащих i и (i+1) единиц, получим группу,

все элементы которой содержат i единиц. На следующих этапах снова сравниваем вектора из

соседних групп, склеиваем отличающиеся только в одной позиции вектора. Это отличие мо-

жет быть только в том, что в некотором разряде одного вектора стоит 0, в этом же разряде

Page 11: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

11

второго вектора стоит 1, а все остальные разряды совпадают полностью, с учетом

и символов ~. Так, если на втором уровне в группе с тремя единицами получили вектор

~1011, а в группе с число единиц два получили вектор ~1010, то их склеиваем и получаем на

третьем уровне в группе с двумя единицами вектор ~101~. Эту операцию продолжаем, пока

возможно. В результате на r-м уровне получим вектора, число символов ~ в которых равно

(r-1). Такую операцию проводим, пока возможно.

Пример.

Функция от 4-х переменных представлена как Т1= {0011, 0100, 0101, 0111, 1001, 1101,

1110, 1111}.

Разобьем конъюнкции, представленные наборами, на группы в зависимости от числа

единиц в представлении:

Здесь подчеркнуты конъюнкции, которые не «ушли» на следующий уровень.

На следующем этапе строим таблицу покрытия. Столбцы таблицы именованы вектора-

ми, сопоставленными исходному описанию функции. Для рассматриваемого примера табли-

ца имеет вид табл. 11.

Необходимо выбрать минимальное число строк, покрывающих все столбцы. Начинает-

ся решение задачи с выбора столбцов, содержащих единственную отметку. Таким является

столбец 0011: в решении необходимо взять конъюнкцию 0~11, иначе конъюнкция 0011 по-

крыта не будет (не войдет в решение). Но выбор конъюнкции 0~11 покрывает и конъюнкцию

0111. отмечаем эти два столбца (см. табл.12).

Page 12: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

12

Таким же образом поступаем с конъюнкцией 0100, 1001 и 1110, которые требуют в ре-

шение, соответственно, конъюнкции 010~, 1~01 и 111~. Но первая покрывает еще и 0101,

вторая – 1101, третья – 1111. В результате все исходные конъюнкции оказываются покрыты-

ми. Решение найдено, функция будет иметь минимальную ДНФ в виде

Заметим, что в этом примере самая короткая конъюнкция (~1~1), покрывающая наи-

большее число исходных конъюнкций, в решение не вошло.

Page 13: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

13

2.2. Конъюнктивные нормальные формы

Кроме ДНФ используется еще одна нормальная форма – конъюнктивная нормальная

форма (КНФ).

Элементарной дизъюнкцией называется дизъюнкция, в которую каждая переменная

входит не более одного раза.

Конъюнкция элементарных дизъюнкций называется конъюнктивной нормальной фор-

мой (КНФ).

КНФ, в которой каждая дизъюнкция содержит все переменные, называется совершен-

ной конъюнктивно нормальной формой (СКНФ).

СКНФ строится по нулевым наборам описания функции Т0. Каждому

нулевому набор таблицы истинности в СКНФ представлен дизъюнкцией, где

переменная включены в прямой форме, если она в этом наборе имеет значе-

ние 0, в инверсной форме, если значение переменной в наборе равно 1.

Представление функции в СКНФ единственное.

Пример. Функция f представлена в табличном виде (табл.13). В СКНФ

функция будет иметь вид: f = (a V b V c) (a V b V c) ( a V b V c).

Также как в ДНФ, эту запись можно минимизировать, используя опера-

цию склеивания. Дизъюнкции, сопоставленные соседним наборам, склеива-

ются по той переменной, которой они различаются. Для приведенного при-

мера соседними будут наборы <001> и <101>. Склеивая их по переменной a

получим набор <-01>, в котором символ «-» означает «что угодно». Этому

набору будет сопоставлена дизъюнкция (b V c). После применения этой опе-

рации к рассматриваемой СКНФ получим конъюнктивную нормальную фор-

му для функции

f = (b V c) (a V b V c).

В разделе 2.1.4 в примере, представленном таблицей 9, получено решение, содержащее

11 элементов. Решение в виде КНФ будет содержить 10 букв

f = (b V c) (b V d) ( a V с V d) ( b V c V d).

Значит при минимизации необходимо рассматривать, наряду с минимизацией в рамках

ДНФ, минимизацию в КНФ,

Таблица 13

a b c f

0 0 0 1

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1 1

Page 14: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

14

2.3. Минимизация системы функций

2.3.1. Скобочные формы

Минимизация в рамках Дизъюнктивных Нормальных Форм является первым этапом в

нахождении простейшего представления функций для их последующей реализации в виде

схем, когда элементам схемы сопоставлены функции конъюнкции (элемент ИЛИ) дизъюнк-

ции (элемент И) и инверсии (элемент ИНВЕРТОР). Дальнейшая минимизация связана с по-

лучением скобочных форм, когда находятся в схеме общие части, которые выносятся за

скобки с учетом свойств дистрибуции конъюнкции относительно дизъюнкции и дизъюнкции

относительно конъюнкции.

Рассмотрим в качестве примера последнюю функцию, полученную после минимизации

методом Квайна–Мак-Класки.

Сложность этой функции (в числе символов переменных) равна 12. Однако если из

первых двух конъюнкций вынести общий сомножитель a а из двух последних – a, то полу-

чим формулу f = a(cd V cb) V a( cd V bc). Сложность этой формулы будет уже 10.

В общем случае может существовать множество таких преобразований, из которых не-

обходимо выбрать вариант, имеющий минимальную сложность. Выше (с.12) говорилось о

том, что инверсия функции после минимизации может иметь меньше элементов, в этом слу-

чае можно реализовать инверсию функции а потом добавить еще один элемент.

2.3.2. Системы функций

Очень часто схема должна реализовать не одну функцию, а систему функций. В этом

случае желательно получить минимальное представление всей системы, в которой исполь-

зуются минимальное число используемых операторов. Здесь существуют различные способы

минимизации. Во-первых, при представлении одной функции нужно учитывать возмож-

ность использовать подформулы, полученные в формулах, полученные при представлении

других функций.

Пример. Система функций содержит две функции F ={f1= a b V ba, f2 =abc}.

Преобразуем первую функцию, конъюнкцию 3 используем во второй функции:

Сложность оценивается в 5 элементов: 3 конъюнкции, 1 дизъюнкция и одна инверсия.

Второй способ связан с тем, что проводится анализ функций на предмет того, можно ли

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

таких операций можно использовать, например, умножение на переменную или ее инверсию.

Пример.

После минимизации функций получим

Реализация этой пары функций потребует: для первой функции 3 элемента (одну конъ-

юнкцию, одну инверсию и одну дизъюнкцию), для второй функции – 5 элементов (одну

конъюнкцию, две инверсии и две дизъюнкции), итого 8 элементов.

Page 15: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

15

Но есть решение, требующее только 6 элементов.

Построим функцию

Ее реализация требует 4 элемента: две дизъюнкции, одну конъюнкцию и одну инвер-

сию.

Преобразуем эту функцию:

Помножим ее по операции конъюнкция на переменную x:

Таким образом, если построить f2 (4 элемента), затем с помощью

умножения на x (еще один элемент) получить f1, и через инверсию (еще

один элемент) получить f2 то решение будет содержать 6 элементов!

Запишем рассмотренную пару функций в виде табл.13. Из таблицы

видно, что функция f1 равна инверсии функции f2 на половине таблицы,

где переменная x равна 1. Отсюда и вытекают используемые соотноше-

ния.

Таблица 14

x y z f1 f2

0 0 0 0 1

0 0 1 0 1

0 1 0 0 1

0 1 1 0 0

1 0 0 1 0

1 0 1 1 0

1 1 0 0 1

1 1 1 1 0

Page 16: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

16

3. ЗАДАЧИ И УПРАЖНЕНИЯ

3.1. Минимизация функций

3.1.1. Минимизация алгебраическим методом.

Используя соотношения склеивания и поглощения получите тупиковую ДНФ для при-

веденных функций.

f = <1100010100101010>;

f = <0101011100101010>;

f = <0100011000101100>;

f = <0011101011010101>;

f = <1010100011010101>;

f = <10111100111010011>:

f = <010001~10001~101010001~100011101>;

f = <00~010110001~1010110010100~01101>;

f = <101110~~111000101~~11010111~0010>;

f: T1= {00100, 00011, 10101, 00111, 01001, 10110, 10001, 10111};

f: T1={0001, 0101,1010, 0111, 1100, 1110};

f = (a c d a d) b c;

f = (b a b) V b a c;

f = b ( a ~ d) V c( a d);

f = b a V b c V c a V bd;

f = (b c d b d) a c;

f = (a b a) V a b c;

f = a ( b ~ d) V c( b d);

f = a b V a c V c b V ad;

f = (a V c) a V c b d.

3.1.2. Минимизация по картам Карно.

Постройте карту Карно для следующих функций и найдите минимальную форму.

f = <1100010100101010>;

f = <0101011100101010>;

f = <0100011000101100>;

f = <1100010001011001>;

f = <110001011~~1110101000~~1000~~101>;

f = <01000101000110010100110110010101>;

f = <0000101~0~0101010~10010~~0000110>;

f = <000110110~01011100101101001~~~01>;

f: T1 = {0001, 0101, 1010, 0111, 1100, 1110};

f: T1= {0000, 0100, 1000, 0110, 1100, 1111};

f: T1 = {0001, 1100, 0011, 1110, 1010, 1101};

f: T1 = {0010, 0100, 0101, 0111, 1011, 1101};

f:T1 = {00100, 00011, 10101, 00111, 01001, 10110, 10001, 10111};

f:T1 = {00000, 00001, 00101, 00111, 01001, 10100, 10001, 10111};

f: T1 = {00001, 00011, 01001, 00101,10100, 10011, 10001, 10101};

f: T1 = {00100, 00101, 00111, 01111, 01100,11100, 11111, 10001};

f:T1 = {00000, 00010, 001101, 00111, 01001, 10100, 10001, 10111};

f: T1 = {00001, 00010, 00110, 001101,10100, 11011, 11001, 11101};

f: T1= {00100, 00101, 00111, 01111, 01100,11100, 11111, 10001};

f: T1 = {00010, 00100, 00110, 01000, 01010, 01011, 01101,10011}.

Page 17: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

17

3.1.3. Минимизация методом Квайна–Мак-Класки

Минимизировать функции, используя метод Квайна–Мак-Класки. Для этого предвари-

тельно описания функции необходимо представить в виде множества Т1.

f = <0011101100111011>;

f = <0000010111000101>;

f = <1101110000110011>;

f = <1111000110111011;>;

f = <0001111001000101>;

f =<0101010111001101>;

f: T1 = {00111, 10111, 01111, 01110, 11000, 11001, 11111, 11011, 11101, 11100, 11110};

f: T1 = {00101, 01101, 01111, 01011, 11010, 11101, 11111, 10101, 10010},

f: T1 = {00000, 00011, 01000, 00100, 00111, 00101, 10011, 11001, 10101};

f =<00110010000000100011001011111111>;

f = <00000001111111110000000100110001>;

f = <00100010010101111111110001100001>;

f = <10010110000011000101101011000011>;

f = <00000001111111000101011000111101>;

f: T1 = {00001, 11010, 10011, 11111, 11001, 10001, 10010, 01010, 01100}, T~ = {00011,

01011, 11111, 11001, 11011, 01111, 011011};

f: T1 = {00000, 00001, 00010, 11010, 10110, 10101, 10100, 00011, 00100, 00101, 10101,

10001, 10010, 10000,10011, 01000, 01010, 01001, 01100, 01011, 01101};

f = (b a c) d e;

(((d a V be) c) d a);

f = (a d) (a V b);

f = (d (c e ab)) (d b).

Page 18: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

18

3.2. Минимизация системы функций

В базисе элементов {2-И, 2-ИЛИ, НЕ} построить схему для заданной пары функций (в

скобках – число элементов в схеме).

Page 19: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

19

3.3. Ответы

Приведены решения задач предыдущего раздела. Цифрами указаны номера элементов

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

Page 20: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

20

Page 21: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

21

ЛИТЕРАТУРА

1. Горбатов В.А. Теория автоматов: Учебник для студентов втузов. / В.А Горбатов, А.В.

Горбатов, М.В. Горбатова. – М.: АСТ Издательство, 2008. – 559 c.

2. Карпов Ю.Г. Теория автоматов. СПБ.: Изд.дом ПИТЕР, 2002.

3. Богомолов А.М, Салий В.Н. Алгебраические основы теории дискретных систем. М.:

Наука, 1998.

4. Баранов С.И. Синтез микропрограммных автоматов. М.: Энергия, 1985.

5. Поспелов Д.А. Логические методы анализа и синтеза схем. М.: Энергия, 1974.

6. Брукшир Д. Г. Введение в компьютерные науки. Общий обзор/ Д. Г. Брукшир. М.:

Издательский дом «Вильямс», 2001. – 688 с.

Page 22: МИНИМИЗАЦИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ...6 2. МИНИМИЗАЦИИ ФУНКЦИЙ В КАНОНИЧЕСКОМ БАЗИСЕ 2.1. Минимизация

Учебное электронное текстовое издание

Битюцкий Валерий Петрович

Григорьева Светлана Валерьевна

МИНИМИЗАЦИЯ

ПЕРЕКЛЮЧАТЕЛЬНЫХ ФУНКЦИЙ

Подготовка к публикации Н.В. Лутова

Компьютерная верстка авторская

Рекомендовано Методическим советом

Разрешен к публикации 12.11.2012

Электронный формат – pdf

Объем 2,01 уч.-изд. л.

620002, Екатеринбург, ул. Мира, 19

Информационный портал УрФУ

http://www.ustu.ru