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

Таблица 4

Конституенты, соответствующие горизонтально расположенной паре единиц в левой части таблицы 4, склеиваются по переменной x3 и порождают элементарное произведение, состоящее из двух букв: х1х23 v x1x2x3 = x1x2

То же справедливо и для вертикально расположенной пары единиц в правой части таблицы 4, склеивающихся по переменной x2 и порождающих элементарное произведение из двух букв: 1х23 v /x1/x2/x 3 = /x1/x3

Важной особенностью диаграмм Карно-Вейча является то, что столбцы и строки, расположенные по краям диаграммы, считаются соседними. Для приведенного выше примера, данное утверждение означает, что имеет место склеивание по переменной x1, в результате которого, следуя указанному правилу, получаем элементарное произведение x2/x3.

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

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

На диаграммах Карно-Вейча они тоже располагаются рядом.

Общее правило склеивания на диаграммах Карно-Вейча можно сформулировать следующим образом:

- склеиванию подлежат прямоугольные конфигурации, заполненные единицами и содержащие число клеток, являющееся степенью числа 2;

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

Для переключательной функции от n переменных и при количестве склеиваемых наборов М, число m оставшихся в элементарном произведении переменных определяется из формулы m = n - log2M.

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

Как правило, вдоль границ диаграммы Карно-Вейча по вертикали разме-щают переменные x1 и x2, а по горизонтали ˗ переменные x3 и x4. Пары пере-меных выписываются в порядке (00), (01), (11), (10) (с применением кода Грея). Далее в таблицу заносят значения функции для данных значений переменных.

Для функции обобщенного вида f = (f0000 f0001 f0010 f0011 f0100 f0101 f0110 f0111 f1000 f1001 f1010 f1011 f1100 f1101 f1110 f1111), получим следующий промежуточный результат:

 

  x3
x4
x1 x2    
  f0000 f0001 f0011 f0010
  f0100 f0101 f0111 f0110
  f1100 f1101 f1111 f1110
  f1000 f1001 f1011 f1010

 

На полученной карте Карно-Вейча, находим все максимально возможные блоки единиц вида 2k × 2l; где k, l ∈ N, учитывая следующее: карта является закольцованной; блоки могут пересекаться, но не должны включать друг друга.

Для каждого блока, выписываем вектор, в котором размещаем: знак «–», если переменная в пределах блока меняла значение; значение переменной (0 либо 1), если переменная в пределах блока не меняла значения.

Для тех позиций вектора i, в которых стоит знак σ ∈ {0, 1}, в элементарную кон`юнкцию добавляется xiσ.

Дизъюнкция всех полученных элементарных кон`юнкций и является сокращённой ДНФ.

Пдведем итоги рассмотренной информации о методе Карно-Вейча.

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

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

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

Рассмотрим пример применения изложенных выше соображений, найдя для функции f = (1010 0110 0111 1101) сокращённую ДНФ.

Для решения задачи, построим следующую карту Карно-Вейча:

 

 

На основании карты Карно-Вейча, получим следующие блоки:

(0 0 − 0) = /x1 /x2 /x4; (0 − 1 0) = /x1 x3 /x4; (− 0 1 0) = /x2 x3 /x4;

(− 1 0 1) = x2/x3 x4; (1 1 0 −) = x1 x2 /x3; (1 0 1 −) = x1 /x2 x3;

(1 − − 1) = x1x4

В результате, получаем сокращённую ДНФ следующего вида:

/x1 /x2 /x4 ∨ /x1 x3 /x4 ∨ /x2 x3 /x4 x2/x3 x4 x1 x2 /x3 x1 /x2 x3 x1x4.