Как составить карту карно онлайн

Users may refer the below rules & step by step procedure to learn how to find the minimum sum of products for the Boolean expression using 3 variables A, B & C. Users can use this KMap/Karnaugh’s map calculator for 3 variables to verify the results of K-map or to generate the work for any corresponding input values to learn how to solve Karnaugh’s map manually.

step 1 When using KMAP solver, generally users should be careful while placing the min-terms because, addressing the min-terms of KMAP table is bit different and is based on the Gray-code method. For, three variables the address of the rows are

In Binary Form

Row 1: 000, 001, 011, 010
Row 2: 100, 101, 111, 110

In Decimal Form

Row 1: 0, 1, 3, 2
Row 2: 4, 5, 7, 6

three variables karnaugh's map (k-map) cell addressing

Three variables Karnaugh’s map (KMap) input cell addressing
In Variable (A, B & C) Form

Row 1: ABC, ABC, ABC, ABC
Row 2: ABC, ABC, ABC, ABC

step 2 Write the Boolean expression in the SOP form. Place 1 for those positions and 0s for everything else.

step 3 Group the 1s. The counting of 1s in the group should be in the form of 23, 22 and 21. Therefore you can’t group single 1s, three 1s or five 1s or six 1s or seven 1s. The possible combinations of grouping are eight 1s, four 1s and two 1s together.

step 4 Check for eight 1s group and encircle the combination, if any.

step 5 Check for four 1s and encircle the combination of four 1s, if any. When combining 4 1s the last column and first column considered adjacent to each other. Similarly, the last row and first row considered adjacent to each other. The four corner cells of the KMAP table also considered as adjacent to each other.

step 6 Check for two 1s and encircle the combination, if any.

step 7 Find the appropriate product term for each combinations.

step 8 Add all the product terms brings the Minimum SOP of the given Boolean expression

Редактор схемы логических элементов

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

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

Если схему необходимо построить по заданной таблице истинности, то используйте этот калькулятор (иногда задается просто строка, например, f=10001011).

  • Ввод данных
  • Параметры схемы
  • Решение
  • Видеоинструкция
  • Оформление Word

Количество переменных
Стандарт изображений элементов
Инверсные входы

INV

AND

NAND

OR

NOR

XOR

MOD

IF

Размеры графического полотна

Ширина
Высота

Созданную логическую схему можно сохранить в форматах docx и png (меню Действия).

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

Здесь будет показано решение

Инструкция к сервису

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

Чтобы соединить элементы, их необходимо предварительно выбрать (один клик мыши по объекту), а затем нажать на кнопку Соединить. Для соединения с переменной xi нажмите на соответствующее ей название.

Построенную схему можно сохранить в формате docx или png.

Булевы функции

С помощью этого калькулятора по булевой функции строится таблица истинности, определяются свойства функции и другие параметры (см. вкладку Параметры решения). При этом вводится только само логическое выражение без префикса. Например, при f(x,y,z) = x → y!z, ввести необходимо только x → y!z.

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

(...) – ввод скобок, x -отрицание (NOT, !, ¬), & – логическое И, AND, ∧, *, v – логическое ИЛИ, OR, ∨, = – эквивалентность, ˜, ≡, ↔, – сумма по модулю 2, | – штрих Шеффера, И-НЕ, AND-NOT, – стрелка Пирса, ИЛИ-НЕ, OR-NOT, – обратная импликация.

Для вложенного отрицания необходимо использовать знак !. Например, x v y = !(x v y) или x v y = x v !y

По найденной таблице истинности можно определить логические значения высказываний, например, при x=0, y=0, z=1

Чтобы проверить высказывание на истинность или ложность, функцию необходимо вводить без знака равно (=). Например, A+BA&B=1, необходимо ввести A+BA&B. Если в результате преобразований получится, что f=1, то высказывание истинно, если f=0 – ложно.

Логические (функциональные) элементы {v,&, ¬} являются наиболее распространенными: в силу полноты системы любую булеву функцию (БФ) можно представить в виде суперпозиции дизъюнкции, конъюнкции и отрицания. В качестве функциональных элементов (ФЭ) можно рассматривать любые булевы функции, при этом их можно соединять друг с другом, подавая выходы одних элементов на входы других (суперпозиция БФ).

Область определения БФ E – конечное множество, поэтому БФ можно задать с помощью таблицы истинности, содержащей |E|=2n строк. Столбец значений БФ при этом представляет собой двоичное слово длиной 2n. Поэтому количество различных БФ n переменных равно 22n.

  • Отрицание, ¬

    x f

    0 1

    1 0

  • Конъюнкция, &

    x y f

    0 0 0

    0 1 0

    1 0 0

    1 1 1

  • Дизъюнкция, v

    x y f

    0 0 0

    0 1 1

    1 0 1

    1 1 1

  • Сумма по модулю 2, x⊕y

    x y f

    0 0 0

    0 1 1

    1 0 1

    1 1 0

  • Стрелка Пирса, x↓y

    x y f

    0 0 1

    0 1 0

    1 0 0

    1 1 0

  • Эквивалентность, x↔y

    x y f

    0 0 1

    0 1 0

    1 0 0

    1 1 1

  • Импликация, x→y

    x y f

    0 0 1

    0 1 1

    1 0 0

    1 1 1

  • Штрих Шеффера, x|y

    x y f

    0 0 1

    0 1 1

    1 0 1

    1 1 0

Другие БФ строятся из элементарных с помощью суперпозиций функций.

Основные равносильности логики высказываний

Название Формула
Закон исключенного третьего X v !X ≡ И
Закон противоречия X & !X ≡ Л
Закон коммутативности X & Y ≡ Y & X
X v Y ≡ Y v X
Закон ассоциативности (X & Y)&Z ≡ X&(Y&Z)
(X v Y) v Z ≡ X v (Y v Z)
Закон дистрибутивности X&(Y v Z) ≡ X&Y v X&Z
X v Y&Z ≡ (X v Y)&(X v Z)
Закон двойного отрицания !!X ≡ X
Закон идемпотентности X&X ≡ X, X v X ≡ X
Законы де Моргана !(X v Y) ≡ !X & !Y
!(X & Y) ≡ !X v !Y
Закон поглощения X v X&Y ≡ X
X&(X v Y) ≡ X
Законы склеивания (X & Y)v(X & !Y) ≡ X
(X v Y)&(X v !Y) ≡ X
Замена импликации X → Y ≡ !X v Y
Замена эквиваленции X = Y ≡ X&Y v !X&!Y

Пример. Упростите выражение: (x˅y˅z)→(x˅y)*(x˅z)

Упростим функцию, используя основные законы логики высказываний.

Замена импликации: A → B = !A v B

Для нашей функции:

(x v y v z)→((x v y) (x v z)) = x v y v z v (x v y) (x v z)

Упростим функцию, используя законы де Моргана: !(A v B) = !A & !B

Для нашей функции:

x v y v z = x y z

По закону дистрибутивности:

(x v y) (x v z) = x v x z v y x v y z

получаем:

f = x y z v x v x z v y x v y z

После элементарных преобразований получаем:

f = x y z v x v x z v y x v y z = x y z v x v y z

f = y z v y z v x

Минимизация булевых функций

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

Сократить БФ можно, применяя некоторые равносильности логики высказываний:

  1. Kx v K ≡ K – тождество поглощения;
  2. Kx v Kx ≡ K – тождество склеивания;
  3. Kx v Ky ≡ K(xvy) – дистрибутивный закон,

где K– элементарная конъюнкция. Большинство методов минимизации БФ основываются на первых двух тождествах. А третье – дистрибутивный закон – уменьшает количество букв в формуле, но выводит формулу из класса ДНФ.
При минимизации БФ используют различные термины (и обозначения) для полных элементарных конъюнкций (ПЭК). Наиболее часто используются термины «минтерм» и «конституента единицы». (Для полных элементарных дизъюнкций (ПЭД) используются термины «макстерм» и «конституента нуля»). Слово «конституента» означает «составляющая», а название «минтерм» исходит из определения конъюнкции, как минимального значения ее операндов. При этом используются обозначения mi – для минтерма и Mi – для макстерма. Номер i соответствует двоичной записи той оценки переменных, для которой mi=1.

Метод карт Карно

Склеить можно как целиком всю карту, либо только выделенные единицы (меню Операции).




Количество переменных
Сетка

После минимизации можно получить логическую схему функции и построить таблицу истинности (кнопка Далее)

Этот метод используется для БФ не более, чем с шестью аргументами и основан на тождестве склеивания: Kx v Kx ≡ K – две элементарные конъюнкции (ЭК) склеиваются, если они отличаются только знаком инверсии одного аргумента. Чтобы облегчить нахождение таких пар (четверок, восьмерок,…) склеивающихся ЭК, используют специальное представление БФ в виде таблицы – карты Карно (другое название – диаграмма Вейча). Чтобы заполнить карту Карно необходимо щелкнуть левой кнопкой мышки на соответствующую ячейку.

Карта Карно обладает той особенностью, что две ПЭК, соответствующие соседним клеткам карты, отличаются знаком инверсии только одного аргумента, т.е. их можно склеивать. Причем соседними являются не только клетки, например, с номерами 1 и 3, но и клетки с номерами 12 и 8, 12 и 4, т.е. карту можно «сворачивать» в цилиндр, соединяя горизонтальные (вертикальные) ее границы.

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

Минимизая функции через равносильные преобразования

см. таблицу равносильных преобразований

Алгоритм минимизии логической функции

  1. Замена импликации и эквиваленции.
  2. Упрощение функции через законы де Моргана.
  3. Раскрытие скобок, используя законы поглощения, исключенного третьего, противоречия.
  4. Минимизация через закон дистрибутивности.

Алгоритм Куайна построения сокращенной ДНФ

  1. Получить СДНФ функции.
  2. Провести все операции неполного склеивания.
  3. Провести все операции поглощения.

Построение логической схемы по таблице истинности

По заданной СДНФ (по таблице истинности) определяются существенные и фиктивные переменные, полином Жегалкина и принадлежность классам T0,T1, S, M, L. Также можно создать новую логическую схему (если не выбран пункт Строить новую схему при минимизации булевой функции). Если вычисления происходят по исходной схеме и она понадобится в дальнейшем, то ее можно предварительно сохранить (меню Действия/Сохранить).

Название переменных можно изменить. Для этого их необходимо выбрать (первая строка таблицы).

Количество переменных
Ввести как вектор значений (в виде строки)

a b c f
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

Для установки параметров решения, необходимо нажать Далее.

Пример. Найдите СДНФ(А) и СКНФ(А) с помощью равносильных преобразований и таблицы истинности, если A = xvyv(x→y)&x

Таблица истинности

x y x y xvy xvy x→y (x→y)&x xvyv(x→y)&x
0 0 1 1 1 0 1 0 0
0 1 1 0 1 0 1 0 0
1 0 0 1 1 0 0 0 0
1 1 0 0 0 1 1 1 1

Упростим функцию, используя основные законы логики высказываний.

Замена импликации

A → B = !A v B

Для нашей функции:

x→y = x v y

f = x v y v (x v y) x

Упростим функцию, используя законы де Моргана онлайн.

!(A v B) = !A & !B

!(A & B) = !A v !B

Для нашей функции:

x v y = x y

f = x y v (x v y) x

По закону дистрибутивности:

x x = 0

(x v y) x = y x

x y v (x v y) x = x y v y x

f = x y

Используя равносильные преобразования, найдем СДНФ(А).

СДНФ(А) = x y

Используя равносильные преобразования, найдем СДНФ(А).

1. Для получения элементарных дизъюнкций используем закон дистрибутивности XvYZ=(XvY)(XvZ).

2. Закон исключенного третьего Xv!X=1. При этом элементарную дизъюнкцию можно отбросить (в силу равносильности C & 1 = C).

3. По закону поглощения XvXYZ = X

A = x y

Из КНФ А путем равносильных преобразований получаем СКНФ А, последовательно добиваясь выполнения четырех свойств СКНФ А.

1. Если элементарная дизъюнкция В, входящая в КНФ А, не содержит переменную xi, тогда заменяем В на Bv(xi & !xi) = (B v xi)(B v !xi)

2. Если в некоторую элементарную дизъюнкцию В переменная xi входит дважды, то лишнюю переменную нужно отбросить, так как xi v xi = xi.

3. Если КНФ А содержит две одинаковых элементарных дизъюнкций, то одну можно отбросить, так как B & B = B

4. Если в элементарную дизъюнкцию входит пара xi v !xi, то ее можно отбросить так как xi v !xi=1, а истинное высказывание из конъюнкции можно выбросить (в силу равносильности C & 1 = C).

A = (x v y y) (y v x x) = (x v y) (x v y) (y v x) (y v x)

A = (x v y) (x v y) (y v x) (y v x)

СКНФ(А) = (x v y) (x v y) (x v y)

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

1. Каждое логическое слагаемое формулы содержит все переменные, входящие в функцию F(x1,x2,…xn).

2. Все логические слагаемые формулы различны.

3. Ни одно логическое слагаемое не содержит переменную и её отрицание.

4. Ни одно логическое слагаемое формулы не содержит одну и ту же переменную дважды.

F = x y

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

1. Все элементарные дизъюнкции содержат все переменные, входящие в функцию F(x1,x2,…xn).

2. Все элементарные дизъюнкции различны.

3. Каждая элементарная дизъюнкция содержит переменную один раз.

4. Ни одна элементарная дизъюнкция не содержит переменную и её отрицание

F = (x v y) (x v y) (x v y)

Список литературы

  1. Нефедов В.Н., Осипова В.А. Курс дискретной математики. М.,1992.
  2. Бауэр Ф.Л., Гооз Г. Информатика. Вводный курс: Часть 2, М.: Мир, 1990.
  3. Горбатов В.А. Основы дискретной математики. – М.: Высш. школа, 1986. – 312 с.

Количество входов

Текст

РазмерЦвет

Линия

ТолщинаЦвет

пунктирная – – – –

Размеры в px и фон

wh

Номер входа

Текст

РазмерЦвет

Линия

ТолщинаЦвет

пунктирная – – –

Введите название переменных

Введите название переменных

Количество входов у элемента

Построение таблицы истинности. СДНФ. СКНФ. Полином Жегалкина.

Онлайн калькулятор позволяет быстро строить таблицу истинности для произвольной булевой функции или её вектора, рассчитывать совершенную дизъюнктивную и совершенную конъюнктивную нормальные формы, находить представление функции в виде полинома Жегалкина, строить карту Карно и классифицировать функцию по классам Поста.

Калькулятор таблицы истинности, СКНФ, СДНФ, полинома Жегалкина

введите функцию или её вектор

Скрыть клавиатуру

¬

0

1

a

b

c

x

y

z

(

)

X1

X2

X3

X4

X5

X6

Показать настройки

Таблица истинности

СКНФ

СДНФ

Полином Жегалкина

Классификация Поста

Минимизация, карта Карно

Фиктивные переменные

С решением

Построить

Построено таблиц, форм:

Как пользоваться калькулятором

  1. Введите в поле логическую функцию (например, x1 ∨ x2) или её вектор (например, 10110101)
  2. Укажите действия, которые необходимо выполнить с помощью переключателей
  3. Укажите, требуется ли вывод решения переключателем “С решением”
  4. Нажмите на кнопку “Построить”

Видеоинструкция к калькулятору

Используемые символы

В качестве переменных используются буквы латинского и русского алфавитов (большие и маленькие), а также цифры, написанные после буквы (индекс переменной). Таким образом, именами переменных будут: a, x, a1, B, X, X1, Y1, A123 и так далее.

Для записи логических операций можно использовать
как обычные символы клавиатуры (*, +, !, ^, ->, =), так и символы, устоявшиеся в литературе (, , ¬, , , ). Если на вашей клавиатуре отсутствует нужный символ операции, то используйте клавиатуру калькулятора (если она не видна, нажмите “Показать клавиатуру”), в которой доступны как все логические операции, так и набор наиболее часто используемых переменных.

Для смены порядка выполнения операций используются круглые скобки ().

Обозначения логических операций

  • И (AND): & *
  • ИЛИ (OR): +
  • НЕ (NOT): ¬ !
  • Исключающее ИЛИ (XOR): ^
  • Импликация: -> =>
  • Эквивалентность: = ~ <=>
  • Штрих Шеффера: |
  • Стрелка Пирса:

Что умеет калькулятор

  • Строить таблицу истинности по функции
  • Строить таблицу истинности по двоичному вектору
  • Строить совершенную конъюнктивную нормальную форму (СКНФ)
  • Строить совершенную дизъюнктивную нормальную форму (СДНФ)
  • Строить полином Жегалкина (методами Паскаля, треугольника, неопределённых коэффициентов)
  • Определять принадлежность функции к каждому из пяти классов Поста
  • Строить карту Карно
  • Минимизировать ДНФ и КНФ
  • Искать фиктивные переменные

Что такое булева функция

Булева функция f(x1, x2, ... xn) — это любая функция от n переменных x1, x2, … xn, в которой её аргументы принимают одно из двух значений: либо 0, либо 1, и сама функция принимает значения 0 или 1. То есть это правило, по которому произвольному набору нулей и единиц ставится в соответствие значение 0 или 1. Подробнее про булевы функции можно посмотреть на Википедии.

Что такое таблица истинности?

Таблица истинности — это таблица, описывающая логическую функцию, а именно отражающую все значения функции при всех возможных значениях её аргументов. Таблица состоит из n+1 столбцов и 2n строк, где n – число используемых переменных. В первых n столбцах записываются всевозможные значения аргументов (переменных) функции, а в n+1-ом столбце записываются значения функции, которые она принимает на данном наборе аргументов.

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

Логические операции

Логическая операция — операция над высказываниями, позволяющая составлять новые высказывания путём соединения более простых. В качестве основных операций обычно называют конъюнкцию (∧ или &), дизъюнкцию (∨ или |), импликацию (→), отрицание (¬), эквивалентность (=), исключающее ИЛИ (⊕).

Таблица истинности логических операций

Как задать логическую функцию

Есть множество способов задать булеву функцию:

  • таблица истинности
  • характеристические множества
  • вектор значений
  • матрица Грея
  • формулы

Рассмотрим некоторые из них:

Чтобы задать функцию через вектор значений необходимо записать вектор из 2n нулей и единиц, где n – число аргументов, от которых зависит функция. Например, функцию двух аргументов можно задать так: 0001 (операция И), 0111 (операция ИЛИ).

Чтобы задать функцию в виде формулы, необходимо записать математическое выражение, состоящее из аргументов функции и логических операций. Например, можно задать такую функцию: a∧b ∨ b∧c ∨ a∧c

Способы представления булевой функции

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

  • Совершенная дизъюнктивная нормальная форма (СДНФ)
  • Совершенная конъюнктивная нормальная форма (СКНФ)
  • Алгебраическая нормальная форма (АНФ, полином Жегалкина)

Совершенная дизъюнктивная нормальная форма (ДНФ)

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

Например, ДНФ является функция ¬abc ∨ ¬a¬bc ∨ ac, но не является СДНФ, так как в последней конъюнкции отсутствует переменная b.

Совершенная конъюнктивная нормальная форма (КНФ)

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

Например, КНФ является функция (a ∨ b) ∧ (a ∨ b ∨ c), но не является СДНФ, так как в первой дизъюнкции отсутствует переменная с.

Алгебраическая нормальная форма (АНФ, полином Жегалкина)

Алгебраическая нормальная форма, полином Жегалкина — это форма представления логической функции в виде полинома с коэффициентами вида 0 и 1, в котором в качестве произведения используется операция конъюнкции, а в качестве сложения — исключающее ИЛИ.

Примеры полиномов Жегалкина: 1, a, a⊕b, ab⊕a⊕b⊕1

Алгоритм построения СДНФ для булевой функции

  1. Построить таблицу истинности для функции
  2. Найти все наборы аргументов, на которых функция принимает значение 1
  3. Выписать простые конъюнкции для каждого из наборов по следующему правилу: если в наборе переменная принимает значение 0, то она входит в конъюнкцию с отрицанием, а иначе без отрицания
  4. Объединить все простые конъюнкции с помощью дизъюнкции

Алгоритм построения СКНФ для булевой функции

  1. Построить таблицу истинности для функции
  2. Найти все наборы аргументов, на которых функция принимает значение 0
  3. Выписать простые дизъюнкции для каждого из наборов по следующему правилу: если в наборе переменная принимает значение 1, то она входит в дизъюнкцию с отрицанием, а иначе без отрицания
  4. Объединить все простые дизъюнкции с помощью конъюнкции

Алгоритм построения полинома Жегалкина булевой функции

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

  1. Построить таблицу истинности для функции
  2. Добавить новый столбец к таблице истинности и записать в 1, 3, 5… ячейки значения из тех же строк предыдущего столбца таблицы истинности, а к значениям в строках 2, 4, 6… прибавить по модулю два значения из соответственно 1, 3, 5… строк.
  3. Добавить новый столбец к таблице истинности и переписать в новый столбец значения 1, 2, 5, 6, 9, 10… строк, а к 3, 4, 7, 8, 11, 12… строкам аналогично предыдущему пункту прибавить переписанные значения.
  4. Повторить действия каждый раз увеличивая в два раза количество переносимых и складываемых элементов до тех пор, пока длина не станет равна числу строк таблицы.
  5. Выписать булевы наборы, на которых значение последнего столбца равно единице
  6. Записать вместо единиц в наборах имена переменных, соответствующие набору (для нулевого набора записать единицу) и объединить их с помощью операции исключающего ИЛИ.

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

Построим совершенные дизъюнктивную и дизъюнктивную нормальные формы, а также полином Жегалкина для функции трёх переменных F = ¬ab∨¬bc∨ca

1. Построим таблицу истинности для функции


Построение совершенной дизъюнктивной нормальной формы:

Найдём наборы, на которых функция принимает истинное значение: { 0, 0, 1 } { 0, 1, 0 } { 0, 1, 1 } { 1, 0, 1 } { 1, 1, 1 }

В соответствие найденным наборам поставим элементарные конъюнкции по всем переменным, причём если переменная в наборе принимает значение 0, то она будет записана с отрицанием:

K1: { 0, 0, 1 } — ¬a¬bc
K2: { 0, 1, 0 } — ¬ab¬c
K3: { 0, 1, 1 } — ¬abc
K4: { 1, 0, 1 } — a¬bc
K5: { 1, 1, 1 } — abc

Объединим конъюнкции с помощью дизъюнкции и получим совершенную дизъюнктивную нормальную форму:

K1 ∨ K2 ∨ K3 ∨ K4 ∨ K5 = ¬a¬bc ∨ ¬ab¬c¬abc ∨ a¬bc ∨ abc


Построение совершенной конъюнктивной нормальной формы:

Найдём наборы, на которых функция принимает ложное значение: { 0, 0, 0 } { 1, 0, 0 } { 1, 1, 0 }

В соответствие найденным наборам поставим элементарные дизъюнкции по всем переменным, причём если переменная в наборе принимает значение 1, то она будет записана с отрицанием:

D1: { 0, 0, 0 } — a∨b∨c
D2: { 1, 0, 0 } — ¬a∨b∨c
D3: { 1, 1, 0 } — ¬a¬b∨c

Объединим дизъюнкции с помощью конъюнкции и получим совершенную конъюнктивную нормальную форму:

D1 ∧ D2 ∧ D3 = (a∨b∨c) ∧ (¬a∨b∨c) ∧ (¬a¬b∨c)


Построение полинома Жегалкина:

Добавим новый столбец к таблице истинности и запишем в 1, 3, 5 и 7 строки значения из тех же строк предыдущего столбца таблицы истинности, а значения в строках 2, 4, 6 и 8 сложим по модулю два со значениями из соответственно 1, 3, 5 и 7 строк:

Добавим новый столбец к таблице истинности и запишем в 1 и 2, 5 и 6 строки значения из тех же строк предыдущего столбца таблицы истинности, а значения в строках 3 и 4, 7 и 8 сложим по модулю два со значениями из соответственно 1 и 2, 5 и 6 строк:

Добавим новый столбец к таблице истинности и запишем в 1 2, 3 и 4 строки значения из тех же строк предыдущего столбца таблицы истинности, а значения в строках 5, 6, 7 и 8 сложим по модулю два со значениями из соответственно 1, 2, 3 и 4 строк:

Окончательно получим такую таблицу:

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

{ 0, 0, 1 } — c, { 0, 1, 0 } — b, { 0, 1, 1 } — bc, { 1, 1, 0 } — ab, { 1, 1, 1 } — abc

Объединяя полученные конъюнкции с помощью операции исключающего или, получим полином Жегалкина: c⊕b⊕bc⊕ab⊕abc

Users may refer the below rules & step by step procedure to learn how to find the minimum sum of products for the Boolean expression using 3 variables A, B & C. Users can use this KMap/Karnaugh’s map calculator for 3 variables to verify the results of K-map or to generate the work for any corresponding input values to learn how to solve Karnaugh’s map manually.

step 1 When using KMAP solver, generally users should be careful while placing the min-terms because, addressing the min-terms of KMAP table is bit different and is based on the Gray-code method. For, three variables the address of the rows are

In Binary Form

Row 1: 000, 001, 011, 010
Row 2: 100, 101, 111, 110

In Decimal Form

Row 1: 0, 1, 3, 2
Row 2: 4, 5, 7, 6

three variables karnaugh's map (k-map) cell addressing

Three variables Karnaugh’s map (KMap) input cell addressing
In Variable (A, B & C) Form

Row 1: ABC, ABC, ABC, ABC
Row 2: ABC, ABC, ABC, ABC

step 2 Write the Boolean expression in the SOP form. Place 1 for those positions and 0s for everything else.

step 3 Group the 1s. The counting of 1s in the group should be in the form of 23, 22 and 21. Therefore you can’t group single 1s, three 1s or five 1s or six 1s or seven 1s. The possible combinations of grouping are eight 1s, four 1s and two 1s together.

step 4 Check for eight 1s group and encircle the combination, if any.

step 5 Check for four 1s and encircle the combination of four 1s, if any. When combining 4 1s the last column and first column considered adjacent to each other. Similarly, the last row and first row considered adjacent to each other. The four corner cells of the KMAP table also considered as adjacent to each other.

step 6 Check for two 1s and encircle the combination, if any.

step 7 Find the appropriate product term for each combinations.

step 8 Add all the product terms brings the Minimum SOP of the given Boolean expression

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

Время на прочтение
5 мин

Количество просмотров 368K

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

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

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

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

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

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

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

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

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

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

image

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

image

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

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

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

image

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

image

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

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

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

image

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

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

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

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

Karnough map 2 1 1.PNG Karnough map 2 1 2.PNG Karnough map 2 1 3.PNG Karnough map 2 1 4.PNG Karnough map 2 1 5.PNG Karnough map 2 1 6.PNG Karnough map 2 1 7.PNG Karnough map 2 1 8.PNG
overline{X1} overline{X2} overline{X1} X2 X1 X2 X1 overline{X2} overline{X2} overline{X1} {X2} {X1}
Karnough map 2 1 9.PNG Karnough map 2 1 10.PNG Karnough map 2 1 11.PNG Karnough map 2 1 12.PNG Karnough map 2 1 13.PNG Karnough map 2 1 14.PNG
S1vee S2 = S1vee S2 = S1vee S2 = S1vee S2 = S1vee S2 = S1vee S2 =
=X1X2vee =X1overline{X2}vee =X2vee X1 =X1veeoverline{X2} =overline{X1}veeoverline{X2} =X2vee overline{X1}
veeoverline{X1} overline{X2} veeoverline{X1}X2

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

Добавить комментарий