Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие по А и ЛО ВТ.doc
Скачиваний:
43
Добавлен:
24.02.2016
Размер:
4.95 Mб
Скачать

Метод Блейка - Порецкого

Метод позволяет получать сокращенную ДНФ булевой функции f из ее произвольной ДНФ. Базируется на применении формулы обобщенного склеивания:

,

справедливость которой легко доказать. Действительно,

Следовательно,

В основу метода положено следующее утверждение: если в произвольной ДНФ булевой функции f произвести все возможные oбобщенные склеивания, а затем выполнить все поглощения, то в результате получится сокращенная ДНФ функции f.

Рассмотрим пример. Пусть булева функция f задана произвольной ДНФ.

Необходимо используя метод Блейка – Порецкого получить сокращенную ДНФ функции f. Проводим обобщенные склеивания. Легко видеть, что первый и второй элемент исходной ДНФ допускают обобщенное склеивание по переменной х1. В результате склеивания получим:

Первый и третий элемент исходной ДНФ допускают обобщенное склеивание как по переменной х1, так и по х2. После склеивания по x1имеем:

После склеивания по x2имеем:

Второй и третий элемент ДНФ допускают обобщенное склеивание по переменной х2. После склеивания получаем:

Выполнив последнее обобщенное склеивание, приходим к ДНФ:

После выполнения поглощений получаем:

Попытки дальнейшего применения операции обобщенного склеивания и поглощения не дают результата. Следовательно, получена сокращенная ДНФ функции f. Далее задача поиска минимальной ДНФ решается с помощью импликантной матрицы точно так же, как в методе Квайна.

Метод минимизирующих карт Карно (Вейча)

При минимизации логической функции от небольшого числа переменных удобным является графический метод представления функции с помощью диаграмм (карт) Вейча и их разновидности - Карно. Карта Вейча представляет собой развертку n-мерного куба на плоскости. При этом вершины куба представляются клетками карты, каждой из которых поставлена в соответствие конститутиента единицы или нуля. Переменные, обозначающие клетки диаграммы, расставляются таким образом, чтобы наборы, записанные в двух смежных клетках, имели кодовое расстояние, равное единице. Поскольку такие наборы располагаются в смежных клетках, они получили названиесоседних наборов. В клетку карты, соответствующую конститутиенте единицы, заносится 1 иначе 0. Таким образом, для минимизации функции она должна быть представлена в форме СДНФ. Минимизация булевой функции с использованием карт в дизъюнктивной (конъюнктивной) форме заключается в объединении единичных (нулевых) клеток в контуры, каждому такому контуру соответствует простая импликанта.

Можно сформулировать следующие правила минимизации:

  • количество клеток карты в одном контуре должно быть равно 2n;

  • для контура, содержащего 2n, клеток должно бытьnосей симметрии;

  • количество контуров должно быть минимально;

  • число единиц в контуре должно быть максимально;

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

х2

x1

1

1

1

1

1

х3

Рис. 15. Карта Вейча для fСДНФ

На рис. 15 показана заполненная карта Вейча, соответствующая функцииfСДНФ. На карте обозначены четыре контура, каждый из которых содержит по две клетки. Контур 2 можно считать лишним, так как он покрывает клетки уже покрытые двумя другими контурами (1 и 3). Аналогично можно считать лишним контур 3 (покрывается контурами 2 и 4). Здесь возможны несколько тупиковых форм ФАЛ. Таким образом, по данной карте может быть получена одна из тупиковых форм:

Если функция задана в форме ДНФ, то не обязательно ее приводить к форме СДНФ, что является одним из преимуществ карты Вейча. Для этого рассматривается каждый дизъюнктивный член функции в отдельности, и в соответствующие ему клетки карты заносятся единицы.

x2

x1

1

1

x4

1

1

1

1

1

1

x3

Рассмотрим сказанное на примере функции

fДНФ=x1x2+ x1x2x3+ x1x2x3x4+ x1x2x3x4

Первому члену ДНФ поставлены в соответствие четыре клетки карты, второму – две клетки, третьему и четвертому по одной клетке соответственно.

Далее объединение единиц в контуры и выбор их минимального числа осуществляется рассмотренным выше методом.

Рис. 16. Карта Вейча

x2

x1

1

0

1

1

x4

1

0

1

1

1

0

0

1

1

0

0

1

x3

Рис. 17. Карта для инверсии функции

Если выбраны самые большие контуры и использовано по возможности, меньшее их число, то будет получена самая простая дизъюнктивная нормальная форма. Дальнейшее упрощение можно получить за счет выполнения скобочных преобразований. Выражению с меньшим числом вхождений букв соответствует схема, имеющая меньшее число входов элементов, так что упрощение функций ведет к упрощению реализующих их схем.

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

00

01

11

10

00

0000

0001

0011

0010

01

0100

0101

0111

0110

11

1100

1101

1111

1110

10

1000

1001

1011

1010

Рис. 18. Структура карты Карно

Если логическая функция задана таблицей истинности, то более удобной для графического представления функции является карта Карно. В отличие от карты Вейча в карте Карно строки и столбцы закодированыr-разрядным кодом Грея. Код Грея – двоичный код, в котором рядом стоящие коды – соседние (их кодовое расстояние равно единице). В карте Карно каждой клетке соответствует код состоящий из кода строки и кода столбца (рис. 18).

На рис. 19 показано соответствие клеток карты Карно и строк таблицы истинности. При этом в карте рис. 19 б показаны координаты единичных и нулевых значений функции, а на карте рис. 19 в показано соответствие строк таблицы истинности и ячеек карты.

x1

x2

x3

f

0

0

0

0

1

1

0

0

1

1

2

0

1

0

0

3

0

1

1

0

4

1

0

0

0

5

1

0

1

1

6

1

1

0

1

а)

7

1

1

1

0


00

01

11

10

0

0

1

3

2

1

4

5

7

6