Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП Логика ТЕОРИЯ 2012-весна.doc
Скачиваний:
20
Добавлен:
04.09.2019
Размер:
1.24 Mб
Скачать

Минимизация логической функции

Общей задачей минимизации логических функций является отыскание минимальной дизъюнктивной нормальной формы (МДНФ), т.е. логической формы, содержащей минимально возможное число букв и их инверсий. Например, СДНФ (7) содержит 6*4=24 буквы.

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

Существуют следующие методы минимизации логических функций:

  1. Метод перебора.

  2. Метод Квайна.

  3. Метод Карно.

  4. Метод Вейча.

  5. Метод Мак-Класки.

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

Минимизация логической функции методом Карно

В методе Карно используются карты (диаграммы) Карно, свойства которых основаны на теореме полного склеивания.

Понятие карты Карно

Карта Карно изображается в виде четырехугольника, разделенного на квадраты (клетки). Количество клеток карты равно числу наборов таблицы истинности логической функции (ЛФ). Изображение ЛФ картами Карно является более компактным.

Каждая клетка карты Карно соответствует определенному набору таблицы истинности. В каждую клетку записывается значение функции соответствующего набора.

Аргументы функции располагаются по внешним сторонам карты, напротив ее столбцов и строк. Значение каждого аргумента относится ко всему столбцу или строке.

Каждый аргумент делит карту Карно на две равные части:

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

  2. В другой половине, значение аргумента равно нулю (инверсное значение аргумента).

Правило составления карты Карно

Карта Карно строится по следующему правилу:

  1. Строится карта с числом клеток 2n, где n – ранг функции.

  2. По внешним сторонам карты определенным образом располагаются аргументы. При n>2 (n=3, 4, 5) аргументы располагаются с перекрытием.

  3. Для каждого набора таблицы истинности отыскивается клетка карты.

  4. В найденную клетку записывается значение функции для данного набора.

Свойства карты Карно

Клетки карты, отличающиеся значением только одной переменной, называются соседними. К соседним клеткам применима теорема полного склеивания: «два логических выражения одного ранга, отличающиеся вхождением только одной переменной, склеиваются по этой переменной».

Каждая клетка карты Карно имеет четыре соседние клетки: верхнюю, нижнюю, левую и правую.

Порядок выполнения работы

Для минимизации функции F методом Карно даны три задания:

  1. Схема расположения аргументов карты Карно.

  2. Значения аргументов для заданной схемы.

  3. Переключательная функция F.

Схема расположения аргументов карты Карно показана на рис. 7. Значения аргументов для заданной схемы приведены в таблице 4.

1

2

4

3

Рис. 7 - Схема расположения номеров аргументов карты Карно

Таблица 4 Значения аргументов для заданной схемы.

вар

схемы

Номер аргумента

1

2

3

4

0

0

X3

X2

X1

X0

Запишем аргументы Х3210 в карте Карно в соответствии с таблицей 4.

Х3

Х2

Х0

Х1

Рис. 8 - Схема расположения аргументов карты Карно

Каждой клетке карты Карно можно поставить в соответствие набор таблицы истинности. Аргументы функции располагаются по внешним сторонам карты напротив ее столбцов и строк. Значение аргументов Х3 и Х2 относится ко всем столбцам, а значение аргументов Х1 и Х0 относится ко всем строкам таблицы. Каждый аргумент делит карту на две равные части: в одной части аргументы равны единице (прямое значение), в другой – нулю (инверсное значение). Значения аргументов определяется внешними скобками (линиями). Восемь аргументов, расположенные напротив каждой скобки, принимают прямое значение. Остальные восемь аргументов принимают инверсное значение.

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

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

Запишем в клетки функцию с учетом значений аргументов, расположенных на внешних сторонах карты.

Х3

Х2

Х0

Х1

Рис. 9 - Схема расположения функции в карте Карно

Определим для каждой функции номер набора: аргумент, входящий в функцию с инверсией, принимает нулевое значение; аргумент, входящий в функцию без инверсии, принимает единичное.

Например, функция соответствует набору 10102=1010.

Полученные номера наборов занесем в клетки карты Карно, как показано на рис. 10.

Х3

Х2

0

4

12

8

Х0

1

5

13

9

Х1

3

7

15

11

2

6

14

10

Рис. 10 - Нумерация клеток карты Карно

У каждой клетки есть четыре соседние клетки: верхняя, левая, нижняя и правая.

Рассмотрим следующие сочетания клеток:

10 -11

(9)

10-14

(10)

10-8

(11)

10-2

(12)

Вывод: у клетки номер 1010 есть четыре соседние клетки: 11, 14, 8 и 2.

Запишем в клетки карты Карно значения функции в соответствии с заданием , при i = 2, 8, 9, 12, 13, 14 (функция принимает единичное значение на наборах 2, 8, 9, 12, 13, 14, а на остальных наборах - нулевое значение).

Х3

Х2

0

0

1

1

Х0

0

0

1

1

Х1

0

0

0

0

1

0

1

0

Рис. 11 - Карта Карно функции , при i = 2, 8, 9, 12, 13, 14.

Определение по карте Карно конечных конъюнкций выполняется по следующим правилам:

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

  2. Число единиц в контуре должно выражаться числами 20=1, 21=2, 22=4, 23=8 и т.д.

  3. Единичные контуры не должны содержать внутри себя нулей.

  4. Построение единичного контура следует начинать с единиц, которые могут войти только в один единственный контур.

  5. Одна и та же единица может входить в несколько единичных контуров.

  6. Единичные контуры могут накладываться друг на друга.

  7. Единичные контуры могут содержать разрыв на границе карты.

  8. Каждой единичной клетке соответствует исходная конъюнкция (конституент единицы) соответствующего набора.

  9. Увеличение размеров единичного контура приводит к уменьшению длины конечной конъюнкции.

  10. В единичном контуре, объединяющем две клетки, один из аргументов, меняющий свое значение, не входит в конечную конъюнкцию.

  11. В единичном контуре, объединяющем более двух клеток, в конечную конъюнкцию не входят аргументы, чьи границы пересекаются площадью, ограниченной данным контуром.

  12. Единичные клетки должны объединяться в наибольшие контуры.

  13. Количество контуров должно быть минимальным.

В соответствии с изложенными правилами получаем три единичных контура (рис. 12).

Рис. 12 - Карта Карно с выделенными единичными контурами.

Для выделенных контуров записываем конечные конъюнкции , где i – номер контура; j – длина конъюнкции (количество букв):

(13)

(14)

(15)

Из конечных конъюнкций составляем выражение:

(16)

Подставляем в (16) значения конечных конъюнкций из (13), (14) и (15) получаем ДНФ:

(17)

Выражение (17) является сокращенной ДНФ, содержащей 9 букв.

Исходная СДНФ (7) содержала 24 буквы. В результате минимизации функция сокращена в 2,6 раз (24/9).