Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diskretnaya_matematika / 4.Краткий конспект лекций.doc
Скачиваний:
106
Добавлен:
19.05.2015
Размер:
709.12 Кб
Скачать

4.4 Минимизация функций в классе днф

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

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

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

`x2 (x1,x2,x3)=x1x2x3Úx1x2` x3 Úx1`x2x3Ú x1`x2`x3 Ú`x1x2x3.

Преобразуем эту СДНФ. Добавим еще один конъюнктивный член x1x2x3. Это добавление не меняет данной функции, так как xÚx=x,

f(x1,x2,x3)=x1x2x3Úx1x2`x3Úx1`x2x3Úx1`x2`x3Úx1x2x3Ú`x1x2x3.

Преобразуем это выражение, используя равенства: a`b Ú ab=a (операция склеивания) и a×bÚa=a, a×bÚ`a=bÚ`a (операция поглощения).

Получим:

f(x1,x2,x3)=x1x2(x3Ú`x3x1`x2(x3Ú`x3x2x3(x1Ú`x1)=x1x2Úx1`x2Úx2x3.

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

f(x1,x23)=x1(x2Ú`x2x2x3=x1Úx2x3.

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

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

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

Данный метод минимизации применим для функций с числом переменных не более 6 и удобен для ручной минимизации, когда человек видит те комбинации, которые можно объединить вместе. Рассмотрим его на конкретном примере.

Пример 2. Рассмотрим функцию

f1(x1,x2,x3)=x1x2x3Úx1x2`x3Úx1`x2x3Úx1`x2`x3Ú`x1x2x3.

Множество переменных разобьем на две группы. Одной группе сопоставим строки таблицы, второй — столбцы, так чтобы каждой клетке соответствовала комбинация переменных из этих групп. Карта Карно для нее имеет вид табл. 4.6.

Таблица 4.6

x1x2/x301000115111211101413

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

Для нашего случая 00®01®11®10 (при каждом последующем переходе изменяется только подчеркнутый символ). Аналогично именуются столбцы таблицы.

Заполнение карты производится по таблице соответствия исходной функции. В примере конъюнкции x1x2x3 соответствует клетка 11/1, а x1x2`x3 клетка 11/0 и т.д. В данной таблице каждая единица имеет порядковый индекс, который соответствует порядковому номеру данной компоненты в исходной функции (расстановка этих индексов совершенно не обязательна и здесь приведена для лучшего понимания).

Для минимизации необходимо попарно “склеить” рядом стоящие единицы, имеющие хотя бы одну общую компоненту. При этом надо стремиться “склеить” в один набор как можно больше клеток. В данном примере мы можем “склеить” 11,12,13,14 вместе. Это запишется как x1,так как содержимое всех этих клеток зависит только от x1 и не меняется при изменении x2 или x3. На следующем шаге склеим 11 и 15. В результате получим x2x3. Рассуждения аналогичны: при изменении x1 изменения ячеек с 11 и 15 не происходит.

Результирующей минимальной записью исходной функции будет

f(x1,x2,x3)=x1Úx2x3.

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

f2(x1,x2,x3,x4,x5)=x1`x2`x3`xx1`x2`x3x4Ú`x1x2x3x4Ú`x2x1`x5.

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

Таблица 4.7

x4x5\x1x2x3

000

001

011

010

110

111

101

100

00

14

11,4

01

11

11

13

12

10

13

14

12,4

Если в конъюнкции переменная не присутствует, то 1 ставится во все клетки, удовлетворяющие присутствующим переменным. Так, например, первой конъюнкции соответствует две клетки: 100/00 и 100/01.

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

f2(x1,x2,x3,x4,x5)=x1`x2`x3Ú`x1x2x3x4Ú`x2x1`x5.

Пример 4. Рассмотрим функцию

f3(x1,x2,x3)=x1x2`x3Úx1`x2x3Úx1`x2`x3Ú`x1x2x3Ú`x1x2`x3Ú`x1`x2x3.

Таблица 4.8

x1x2/x3

0

1

00

1

01

1

1

11

1

10

1

1

По карте Карно табл.4.8 видно, что для данной функции существует две минимальных формы:

f(x1,x2,x3)=`x1x3Úx2`x3Úx1`x2,

f(x1,x2,x3)=`x1x2Ú`x2x3Úx1`x3.