Карты Карно. Диаграммы Вейча

Минимизировать нормальные формы можно различными способами. Одним

из таких методов являются карты Карно для ДНФ и диаграммы Вейча ― для КНФ.

Минимальная или сокращенная нормальная форма получается из совершенной дизъюнктивной (конъюнктивной) нормальной формы удалением некоторых элементарных конъюнкций (дизъюнкций).

Тупиковой нормальной формой называется ДНФ(КНФ), из которой уже нельзя

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

Для представления булевой функции в таком виде необходимо сначала представить ее в совершенной форме, а только затем минимизировать до тупиковой формы. Карты Карно являются одним из наиболее удобных способов минимизации. Они впервые появились в одной из статей Мориса Карно в 1953г. Это специальные таблицы, дающие возможность упростить процесс поиска минимальной формы булева выражения с помощью графического представления для Карты Карно. Диаграммы Вейча - 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 Карты Карно. Диаграммы Вейча - 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                  

а для Карты Карно. Диаграммы Вейча - 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 Карты Карно. Диаграммы Вейча - student2.ru                  

При заполнении карт Карно необходимо, чтобы каждые две соседние клетки отличались лишь значением одной переменной.

Для построения минимальной ДНФ производится «склеивание» единиц. Скле-иваются только соседние клетки, которые отличаются значением одной переменной.

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

Алгоритм «склеивания» при помощи карт Карно имеет следующий вид:

1. Привести булеву функцию к ДНФ или СДНФ.

2. Нанести единицы на карту Карно.

3. Объединить соседние единицы контурами, охватывающими Карты Карно. Диаграммы Вейча - student2.ru

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

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

5. Объединить оставшиеся члены оставшиеся члены (по одному в каждом контуре) функцией ИЛИ, т.е. дизъюнкцией.

6. Записать полученное упрощенное булево выражение в ДНФ.

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

Карты Карно. Диаграммы Вейча - 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 и

Карты Карно. Диаграммы Вейча - 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 Карты Карно. Диаграммы Вейча - 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 , Карты Карно. Диаграммы Вейча - 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    
Карты Карно. Диаграммы Вейча - 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 Карты Карно. Диаграммы Вейча - 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
Карты Карно. Диаграммы Вейча - 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 .

Решение. Объединим единицы в контуры по два элемента. Получилось два

контура, один из которых дает Карты Карно. Диаграммы Вейча - 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
Карты Карно. Диаграммы Вейча - 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    

Убираем инвертируемые переменные в квадрате Карты Карно. Диаграммы Вейча - student2.ru и Карты Карно. Диаграммы Вейча - student2.ru . Получим общую переменную Карты Карно. Диаграммы Вейча - student2.ru . Рассмотрим теперь единицы, попавшие в контур на пересечении 1, 2 столбца и первой строки. Уберем инвертируемую пару Карты Карно. Диаграммы Вейча - 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
Карты Карно. Диаграммы Вейча - student2.ru    
Карты Карно. Диаграммы Вейча - student2.ru      

Объединяем пары единиц в контуры и получаем Карты Карно. Диаграммы Вейча - student2.ru .

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

Пример. Минимизировать функцию

Карты Карно. Диаграммы Вейча - student2.ru .

Решение. Вычислим значения функции на все восьми наборах, выберем нулевые интерпретации и нанесем их на карту. Тогда

Карты Карно. Диаграммы Вейча - student2.ru

х|yz
     
 

Упрощенный вариант булевой функции имеет вид

Карты Карно. Диаграммы Вейча - student2.ru .

Проверка.

Карты Карно. Диаграммы Вейча - student2.ru

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