Минимизация с использованием карт Карно

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

х2

       
 
x1
    Минимизация с использованием карт Карно - student2.ru
 


Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru      
     

Минимизация с использованием карт Карно - student2.ru

х3

Рис. 5.10. Области карты Карно

На рис. 5.10 заштрихованная область со штрихом с наклоном влево соответствует истинным значениям х1, где отсутствует данная штриховка значения х1-ложные; заштрихованная область со штрихом с наклоном вправо соответствует истинным значениям х2, в остальных ячейках карты значения х2- ложные. Изображенная на рисунке единица соответствует вершине гиперкуба Минимизация с использованием карт Карно - student2.ru .

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

1. Число ячеек карты соответствует всем возможным комбинациям входных аргументов булевой функции, т.е. равно 2k, где Минимизация с использованием карт Карно - student2.ru - число аргументов.

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

При минимизации функции с помощью карт Карно поступают следующим образом.

1. Минимизируемую функцию представляют на карте Карно, для этого помечают единицами ячейки карты, соответствующие 0-кубам.

2. Отыскивают группы смежных единиц с числом единиц в группе 2, 4, 8, …, 2m, где m=1, 2, 3,… . Две смежные единицы образуют 1-куб, четыре смежные единицы – 2-куб, восемь смежных единиц 3-куб и т.д. Одна, одиночная единица соответствует 0-кубу.

3. Отдавая предпочтение группам с небольшим количеством единиц, пытаются покрыть все единицы минимальным количеством групп. Группы могут пересекаться. Следует учитывать, что края карты считаются склеенными. По найденному покрытию записывается минимальная форма как дизъюнкция Минимизация с использованием карт Карно - student2.ru -кубов, соответствующих выделенным группам смежных единиц.

Пример 5.20.

Функция трех переменных задана в СДНФ и представлена на карте Карно (рис. 5.11).

Минимизация с использованием карт Карно - student2.ru

 
 
х2

Минимизация с использованием карт Карно - student2.ru

x1

Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru 1 1 -1  
Минимизация с использованием карт Карно - student2.ru 1 3 2 1   Минимизация с использованием карт Карно - student2.ru 3 1

х3
Минимизация с использованием карт Карно - student2.ru

Рис. 5.11. Определение групп смежных единиц

В данном случае можно выделить три группы по две смежные единицы, которые покрывают все вершины гиперкуба. 1-я группа соответствует истинным значениям переменных х1 и х3 (переменная х2 в одной единице группы истинна, в другой – ложна), следовательно, соответствует терму минимальной формы х1 х3, аналогично 2-я группа соответствует х2 х3 и 3-я группа Минимизация с использованием карт Карно - student2.ru (3-я группа построена с учетом склеивания краев карты Карно).

Минимизация с использованием карт Карно - student2.ru .

Пример. 5.21. Минимизация с использованием карт Карно - student2.ru (рис. 5.12).

 
 
х2

Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru

х1

Минимизация с использованием карт Карно - student2.ru 1 1 1  
    1

Минимизация с использованием карт Карно - student2.ru

х3

Рис. 5.12. «Одиночная» единица

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

Минимизация с использованием карт Карно - student2.ru .

Пример 5.22.

Дана функция четырех переменных (рис. 5.13):

Минимизация с использованием карт Карно - student2.ru

       
  Минимизация с использованием карт Карно - student2.ru
    Минимизация с использованием карт Карно - student2.ru
 


Минимизация с использованием карт Карно - student2.ru 4

х1
Минимизация с использованием карт Карно - student2.ru 1 1

3 1 1 4
1 1 2  
х4
Минимизация с использованием карт Карно - student2.ru

Минимизация с использованием карт Карно - student2.ru 1    
4 1     Минимизация с использованием карт Карно - student2.ru 4 1

Минимизация с использованием карт Карно - student2.ru

х3

Рис 5.13. Минимизация функции четырех переменных

Минимизируя, получим: Минимизация с использованием карт Карно - student2.ru .

Метод карт Карно обычно применяется для минимизации функций до пяти переменных. Карты Карно пяти переменных приводятся на рис. 5.14.Для данной карты помеченные области и прилегающие к ним считаются смежными (помеченная область соответствует x2 x3).

           
    Минимизация с использованием карт Карно - student2.ru
      Минимизация с использованием карт Карно - student2.ru
 
  Минимизация с использованием карт Карно - student2.ru
 

              Минимизация с использованием карт Карно - student2.ru
  Минимизация с использованием карт Карно - student2.ru       Минимизация с использованием карт Карно - student2.ru  

х3

               
     
х4

       

х5
Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru

Рис. 5.14. Карты Карно для функции пяти переменных

Пример 5.23. Функция пяти переменных представлена на карте (рис. 5.15).

               
  Минимизация с использованием карт Карно - student2.ru   Минимизация с использованием карт Карно - student2.ru
 
    Минимизация с использованием карт Карно - student2.ru
      Минимизация с использованием карт Карно - student2.ru
 


х1
Минимизация с использованием карт Карно - student2.ru

Минимизация с использованием карт Карно - student2.ru 1      
  Минимизация с использованием карт Карно - student2.ru 1     Минимизация с использованием карт Карно - student2.ru  

Минимизация с использованием карт Карно - student2.ru

х3

           
Минимизация с использованием карт Карно - student2.ru 1          

Минимизация с использованием карт Карно - student2.ru

х5
х4

 
  Минимизация с использованием карт Карно - student2.ru

Рис. 5.15. Минимизация функции пяти переменных

Минимизация с использованием карт Карно - student2.ru .

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

Пример 5.24.Функция трех переменных Минимизация с использованием карт Карно - student2.ru представлена на карте (рис 5.16).

       
    Минимизация с использованием карт Карно - student2.ru
 
х1
 


Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru 0 0 Минимизация с использованием карт Карно - student2.ru 0
1

Минимизация с использованием карт Карно - student2.ru

х3

Рис. 5.16. Минимизация «по нулям»

Минимизация не полностью определенных булевых функций

Определение 28. Не полностью определеной булевой функцией будем называть булеву функцию, значения которой не заданы для некоторых наборов аргументов.

Пусть булева функция Минимизация с использованием карт Карно - student2.ru не определена на Минимизация с использованием карт Карно - student2.ru наборах аргументов, данной функции можно поставить в соответствие Минимизация с использованием карт Карно - student2.ru булевых функций. Полностью определенная булева функция Минимизация с использованием карт Карно - student2.ru считается эквивалентной функции Минимизация с использованием карт Карно - student2.ru в том случае, если ее значения совпадают со значениями Минимизация с использованием карт Карно - student2.ru , где Минимизация с использованием карт Карно - student2.ru определена.

Введем в рассмотрение две функции Минимизация с использованием карт Карно - student2.ru и Минимизация с использованием карт Карно - student2.ru . Минимизация с использованием карт Карно - student2.ru на тех наборах, где Минимизация с использованием карт Карно - student2.ru не определена; Минимизация с использованием карт Карно - student2.ru , где Минимизация с использованием карт Карно - student2.ru не определена. Для использования метода Квайна-Мак-Класки для минимизации не полностью определенных функций докажем теорему.

Теорема 10. Минимальная ДНФ не полностью определенной булевой функции совпадает с дизъюнкцией самых коротких импликант Минимизация с использованием карт Карно - student2.ru , которые совместно покрывают все 0-кубы функции Минимизация с использованием карт Карно - student2.ru и ни одна из которых (импликант) не является избыточной.

Доказательство: Рассмотрим какую-либо эквивалентную функцию Минимизация с использованием карт Карно - student2.ru . Очевидно, что для любой функции Минимизация с использованием карт Карно - student2.ru , т.е. любая импликанта функции Минимизация с использованием карт Карно - student2.ru будет всегда поглощать импликанты функции Минимизация с использованием карт Карно - student2.ru либо совпадать с ней. Из этого следует, что импликанты функции Минимизация с использованием карт Карно - student2.ru будут являться более короткими по длине. Так же очевидно, что из всех эквивалентных булевых функций Минимизация с использованием карт Карно - student2.ru имеем наименьшее количество 0-кубов, т.е. Минимизация с использованием карт Карно - student2.ru . Таким образом, используя Минимизация с использованием карт Карно - student2.ru для нахождения покрывающих импликант и покрывая 0-кубы из Минимизация с использованием карт Карно - student2.ru , мы найдем минимальное покрытие для функции Минимизация с использованием карт Карно - student2.ru .

Теорема доказана.

Не полностью определенная булева функция задается двумя множествами: множеством истинных значений Минимизация с использованием карт Карно - student2.ru и множеством неопределенных значений Минимизация с использованием карт Карно - student2.ru . Рассмотрим пример минимизации не полностью определенной функции методом Квайна-Мак-Класки.

Пример 5.25.

Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru 0 0 0 1 0 0 0 0

Минимизация с использованием карт Карно - student2.ru
0 0 1 0 Минимизация с использованием карт Карно - student2.ru 0 1 0 0

1 0 0 0 1 0 0 1

1 1 1 0

1 1 1 1

Отсюда Минимизация с использованием карт Карно - student2.ru

Минимизация с использованием карт Карно - student2.ru

Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru 0 0 0 0 0 Минимизация с использованием карт Карно - student2.ru

1 0 0 0 1 Минимизация с использованием карт Карно - student2.ru

2 0 0 1 0 Минимизация с использованием карт Карно - student2.ru

Минимизация с использованием карт Карно - student2.ru
3 0 1 0 0 Минимизация с использованием карт Карно - student2.ru

4 1 0 0 0 Минимизация с использованием карт Карно - student2.ru

5 1 0 0 1 Минимизация с использованием карт Карно - student2.ru

6 1 1 1 0 Минимизация с использованием карт Карно - student2.ru

7 1 1 1 1 Минимизация с использованием карт Карно - student2.ru

Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru 1 0 0 0 х 0 – 1 Минимизация с использованием карт Карно - student2.ru

Минимизация с использованием карт Карно - student2.ru
Минимизация с использованием карт Карно - student2.ru
2 0 0 х 0 0 – 2

3 0 х 0 0 0 – 3

Минимизация с использованием карт Карно - student2.ru
4 х 0 0 0 0 – 4 Минимизация с использованием карт Карно - student2.ru

5 х 0 0 1 1 – 5 Минимизация с использованием карт Карно - student2.ru

6 1 0 0 х 4 – 5 Минимизация с использованием карт Карно - student2.ru

7 1 1 1 х 6 – 7

Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru 0 0 х 0

Минимизация с использованием карт Карно - student2.ru
0 х 0 0

1 1 1 х

х 0 0 х

Таблица 5.4

  0 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1
0 0 х 0   1      
0 х 0 0          
1 1 1 х       1 1
х 0 0 х 1   1    

В данном случае вторая строка, соответствующая импликанте 0х00, вычерчивается, остальные импликанты существенные, таким образом:

Минимизация с использованием карт Карно - student2.ru Минимизация с использованием карт Карно - student2.ru 0 0 х 0

Минимизация с использованием карт Карно - student2.ru 1 1 1 х .

х 0 0 х

Минимизация с использованием карт Карно - student2.ru .

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

Неопределенные значения наносятся на карту Карно и помечаются знаком, отличным от «0» и «1», например «–». Ячейки, соответствующие неопределенным значениям, могут быть использованы для создания групп смежных единиц (или нулей), при этом необходимо покрыть только истинные значения (или только ложные при нахождении минимальной формы по нулям). Ячейки, соответствующие неопределенным значениям, могут и не включаться в группы. Другими словами, с ячейками, помеченными «– », можно поступать как нам удобно, если удобно – включаем в группу, если нет – не включаем.

Пример 5.26. Не полностью определенная функция четырех переменных задана на карте Карно (рис. 5.17), произвести ее минимизацию.

 
  Минимизация с использованием карт Карно - student2.ru


Минимизация с использованием карт Карно - student2.ru

х1
Минимизация с использованием карт Карно - student2.ru 1

1 1 -
Минимизация с использованием карт Карно - student2.ru 1 1  

х3
Минимизация с использованием карт Карно - student2.ru

- - -
1 -  

Минимизация с использованием карт Карно - student2.ru

х4

Рис. 5.17. Минимизация не полностью определенной функции

по карте Карно

Минимизация с использованием карт Карно - student2.ru .

В данном случае одно неопределенное значение не входит ни в одну из групп. Данная функция не зависит от x4.

Наши рекомендации