Способы минимизации логических функций правило составления карты карно

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

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

В связи с этим, возникает задача минимизации логических функций в некотором классе формул. В частности, в классах ДНФ и КНФ.

Минимальная ДНФ Такая ДНФ, которая содержит наименьшее общее число вхождений переменных по сравнению со всеми равносильными ей ДНФ. Минимальная КНФ Такая КНФ, которая содержит наименьшее общее число вхождений переменных по сравнению со всеми равносильными ей КНФ.

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

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

\[ \;\overline\;x_2x_3x_4 \vee \;\overline\;x_2\;\overline\;x_4 = \;\overline\;x_2x_4 (x_3 \vee\;\overline\;) = \;\overline\;x_2x_4 \mathbin<\&>1 = \;\overline\;x_2x_4. \]

Аналогично для КНФ:

\[ (\;\overline\;\vee x_2\vee x_3\vee x_4) (\;\overline\;\vee x_2\vee\;\overline\;\vee x_4) = \;\overline\;\vee x_2\vee x_4\vee x_3\;\overline\; = \;\overline\;\vee x_2\vee x_4\vee 0 = \;\overline\;\vee x_2\vee x_4. \]

Возможность поглощения следует из очевидных равенств

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

Минимизирующие карты Карно

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

Карты Карно можно рассматривать как определенную плоскую развертку n-мерного булева куба.

Карты Карно были изобретены в 1952 Эдвардом В. Вейчем и усовершенствованы в 1953 Морисом Карно, физиком из «Bell Labs», и были призваны помочь упростить цифровые электронные схемы.

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

Булевы функции \(N\) переменных, представленные в виде СДНФ или СКНФ, могут иметь в своём составе \(2^N\) различных элементарных членов.

Элементарные члены СДНФ или СКНФ образуют структуру, топологически эквивалентную \(N\) -мерному кубу. Действительно, если рассматривать набор значений функции \(x_1,\,\ldots,\,x_N\) как \(N\) -мерный вектор \(\\) , мы получим набор точек, лежащих на ортах \(N\) -мерной системы координат, и удаленных друг от друга на \(1\) . Другими словами, мы получим \(N\) -мерный гиперкуб с ребром \(1\) .

Например, для функции двух переменных, заданной таблицей истинности:

Источник

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

Зачем это нужно?

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

Читайте также:  Педагогика способы обучения это

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

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

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

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

Карты Карно были изобретены в 1952 Эдвардом В. Вейчем и усовершенствованы в 1953 Морисом Карно, физиком из «Bell Labs», и были призваны помочь упростить цифровые электронные схемы.

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

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

Возможность поглощения следует из очевидных равенств

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

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

На рисунке изображена простая таблица истинности для функции из двух переменных, соответствующий этой таблице 2-мерный куб (квадрат), а также 2-мерный куб с обозначением членов СДНФ и эквивалентная таблица для группировки термов:

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

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

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

Читайте также:  Способы выражения составного глагольного сказуемого упражнения

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

Аналогичным образом можно работать с функциями четырёх, пяти и более переменных. Примеры таблиц для N=4 и N=5 приведены на рисунке. Для этих таблиц следует помнить, что соседними являются клетки, находящиеся в соответственных клетках крайних столбцов и соответственных клетках верхней и нижней строки. Для таблиц 5 и более переменных нужно учитывать также, что квадраты 4х4 виртуально находятся друг над другом в третьем измерении, поэтому соответственные клетки двух соседних квадратов 4х4 являются сосоедними, и соответствующие им термы можно склеивать.

Карта Карно может быть составлена для любого количества переменных, однако удобно работать при количестве переменных не более пяти. По сути Карта Карно — это таблица истинности составленная в 2-х мерном виде. Благодаря использованию кода Грея в ней верхняя строка является соседней с нижней, а правый столбец соседний с левым, т.о. вся Карта Карно сворачивается в фигуру тор (бублик). На пересечении строки и столбца проставляется соответствующее значение из таблицы истинности. После того как Карта заполнена, можно приступать к минимизации.

Если необходимо получить минимальную ДНФ, то в Карте рассматриваем только те клетки которые содержат единицы, если нужна КНФ, то рассматриваем те клетки которые содержат нули. Сама минимизация производится по следующим правилам (на примере ДНФ):

  1. Объединяем смежные клетки содержащие единицы в область, так чтобы одна область содержала 2 n (n целое число = 0…) клеток(помним про то что крайние строки и столбцы являются соседними между собой), в области не должно находиться клеток содержащих нули;
  2. Область должна располагаться симметрично оси(ей) (оси располагаются через каждые четыре клетки);
  3. Не смежные области расположенные симметрично оси(ей) могут объединяться в одну;
  4. Область должна быть как можно больше, а кол-во областей как можно меньше;
  5. Области могут пересекаться;
  6. Возможно несколько вариантов накрытия.

Далее берём первую область и смотрим какие переменные не меняются в пределах этой области, выписываем конъюнкцию этих переменных, если неменяющаяся переменная нулевая, проставляем над ней инверсию. Берём следующую область, выполняем то же самое что и для первой, и т. д. для всех областей. Конъюнкции областей объединяем дизъюнкцией.
Например(для Карт на 2-ве переменные):

Источник

7.4. Минимизация логических функций с использованием карт Карно

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

Читайте также:  Промывка системы отопления гидропневматическим способом инструкция

Основой принципа метода минимизации с использованием карт Карно является распределительный закон и тождества (7.1) и (7.4), вследствие которых сумма комбинаций переменных двух соседних клеток может быть заменена одним произведением, содержащим на одно переменное меньше. Если соседними являются четыре комбинации переменных, то их сумма может быть заменена одним произведением, содержащим уже на две переменные меньше.

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

.

Рисунок 7.10. Карты Карно функций для двух (а),

трех (б) и четырех (в) переменных в комбинации

Каждое слагаемое формулы логической функции вносится в соответствующую клетку карты Карно, как показано на рис. 7.10. Вместо самой комбинации каждого слагаемого формулы в соответствующую клетку вносится заменяющий ее символ «1». В оставшиеся незаполненные клетки карты вносятся символы «0». На рис. 7.11 приведена карта Карно, отражающая формулу (7.13), полученную при решении задачи в предыдущем разделе.

Рисунок 7.11. Карта Карно, отражающая формулу (7.13)

После заполнения карты Карно проводится объединение соседних клеток, содержащих одинаковые символы, в группы с числом клеток, равным 2 n . Такие группы клеток должны располагаться либо в одной строке, либо в одном столбце. При этом клетки на противоположных границах карты также считаются принадлежащими к одной строке или к одному столбцу соответственно. Например, клетки с комбинациями переменных и на рис. 7.10.в принадлежат одному столбцу. Целесообразно иметь минимальное число групп с наибольшим количеством клеток. На рис. 7.11 сплошными контурами отмечены группы с символами «1», а пунктиром – группы с символами «0».

Последним этапом процесса минимизации логической функции является представление ее формулы на базе выделенных групп наибольшей карты Карно. Эта формула может быть получена двояким образом. Она представляется в виде суммы слагаемых, являющихся комбинациями логических переменных, входящих либо в группы с символами «1», либо в группы с символами «0». В последнем случае получается формула для инверсного значения искомой функции.

Выделенные на карте Карно рис. 7.11 две группы с символами «1», позволяют записать формулу:

которая совпадает с формулой (7.14). Выделение на этой карте двух групп с символами «0» дает:

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

Следует отметить, что не всегда минимизация логической функции с использованием групп с символами «1» и «0» дает одинаковые формулы, хотя они являются равнозначными. Техническая их реализация также будет различной. Полученные различными способами формулы с использованием алгебры логики могут быть преобразованы к одному виду, что не всегда можно просто осуществить.

Источник

Оцените статью
Разные способы