Как найти мднф онлайн

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

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

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

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

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

¬

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

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

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

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

Если схему необходимо построить по заданной таблице истинности, то используйте этот калькулятор (иногда задается просто строка, например, 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

Номер входа

Текст

РазмерЦвет

Линия

ТолщинаЦвет

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

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

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

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

Математическая логика по-шагам

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

Примеры логических выражений

  • С применением отрицания
  • (A⇒B)⇒¬(B⇒A)
  • Сложение логических выражений
  • (A⊕B)∨(A⊕C)
  • Со знаком «эквивалентно»
  • (A⇒B)∨(B⇔C)
  • Со знаком «следствие»
  • ((A⇒B)⇒(A|C))⇒(¬B⇒¬C)
  • Не-или
  • (A⇒B)∧(A↓C)
  • С применением конъюкции и дизъюнкции
  • (A∨B)∨C ⇒ (A∨B)∧(A∨C)
  • С применением Не-и и Не-или
  • 0↓1|a|b|c|1↓0

Поддерживаемые символы в логических выражениях

Здесь указаны символы, которые стоит указывать при вводе логической формулы в калькулятор

¬a
— отрицание
a⇒b
— импликация
a∧b
— конъюкция
a∨b
— дизъюнкция
a⇔b
— эквиваленция
a⊕b
— сложение по модулю 2 (
Исключающее или)
a|b
— Не-и (штрих Шеффера)
a↓b
— Не-или (стрелка Пирса)
a⊙b
— XNOR gate (
Исключающее ИЛИ с инверсией)

В калькуляторе вы можете упростить выражения, содержащие следующие операции:
NOT, XOR, AND, OR, NAND, NOR, NOT, XNOR

The online calculator allows you to quickly build a truth table for an arbitrary Boolean function or its
vector, calculate perfect disjunctive and perfect conjunctive normal forms, find function representation in the form of the Zhegalkin polynomial, build a K-Map (Karnaugh Map), and classify the function by classes of Post (Post Emil Leon).

How to use the calculator

  1. Enter in the field logic function (for example, x1 ∨ x2) or its vector (for example, 10110101)
  2. Specify the actions to be performed using the switches
  3. Specify whether the output of the solution is required by the «With solution (By the steps)» switch
  4. Click the «Let’s go» button

Symbols used

As variables, the letters of the Latin alphabet are used, as well as numbers written after the letter (variable index).
Thus, the variable names will be: a,
x, a1, B, X, X1, Y1, A123
and so on.

To record logical operations you can use
both normal keyboard characters (*, +, !, ^,
->, =), and symbols established in literature (, ,
¬, , , ). If your keyboard does not have the desired
operation symbol, then use the calculator keyboard (if it is not visible, press «Show Keyboard»),
where both all logical operations and a set of the most commonly used variables are available.

To change the order of operations round brackets are used ().

The designations of logical operations

  • AND: & *
  • OR: +
  • NOT: ¬ !
  • Exclusive OR (XOR): ^
  • Implication: -> =>
  • Equivalence: = ~ <=>
  • Schaeffer stroke: |
  • Pierce Arrow:

What the calculator can do

  • Build a truth table of the function
  • Build a truth table by a binary vector
  • Construct a perfect conjunctive normal form (CNF)
  • Construct a perfect disjunctive normal form (DNF)
  • Construct the Zhegalkin polynomial (by Pascal, triangle, and undefined coefficients methods)
  • Determine whether a function belongs to each of the five Post’s classes
  • Build K-Map (Karnaugh Map)
  • Minimize CNF and DNF
  • Looking for fictitious variables

What is a Boolean function

Boolean function f(x1, x2, ... xn) — is any function of n variables x1, x2, … xn,
in which its arguments take one of two values:
either 0 or 1, and the function itself takes values 0 or 1.
That is, it is a rule by which an arbitrary set of zeros and ones is assigned the value 0 or 1.
Read more about Boolean functions on Wikipedia.

What is a truth table?

Truth table — is a table describing a logical function,
namely reflecting all values of the function for all possible values of its arguments.
The table consists of n+1 columns and 2n rows, where n is the number of variables used.
The first n columns contain all possible values of arguments (variables) of the function,
and the n+1th column contains values of the function that it takes on a given set of arguments.

Quite often there is a variant of the table in which the number of columns is equal to n + the number of logical
operations. In such a table also the first n columns are filled with sets of arguments, and the remaining columns
are filled with values of subfunctions included into the record of the function, which allows to simplify the calculation of the final
value of the function at the expense of already intermediate calculations.

Logical operations

A logical operation is an operation on statements that allows you to make new statements by combining
simpler ones. Conjunction (∧ or &), disjunction (∨ or |) are commonly referred to as basic operations,
implication (→), negation (¬), equivalence (=), exclusive OR (⊕).

Truth table of logical operations

How to set a logic function

There are many ways to specify a Boolean function:

  • truth table
  • characteristic sets
  • value vector
  • Gray’s matrix
  • formulas

Let’s look at some of them:

To define a function by a vector of values, you must write a vector of 2n zeros and ones,
where n is the number of arguments on which the function depends.
For example, a function of two arguments can be defined as follows: 0001 (AND operation), 0111 (OR operation).

To define a function as a formula, you need to write a mathematical expression consisting of function arguments and logical operations.
For example, we can specify the following function: a∧b ∨ b∧c ∨ a∧c

Ways to represent a Boolean function

You can use formulas to get a huge variety of functions, and with different formulas
you can get the same function. Sometimes it can be very useful to know how to construct a particular function,
using only a small set of given operations, or using as few arbitrary operations as possible.
Let’s look at the basic ways of defining Boolean functions:

  • Perfect disjunctive normal form (DNF)
  • Perfect conjunctive normal form (CNF)
  • Algebraic Normal Form (ANF, Zhegalkin polynomial)

Disjunctive normal form (DNF)

A simple conjunction is a conjunction of some finite set of variables,
or their negations, with each variable occurring no more than once.
A disjunctive normal form (DNF) is a disjunction of simple conjunctions.
A perfect disjunctive normal form (DNF) is a DNF with respect to some given finite set of variables,
each conjunction of which includes all variables of this set.
For example, DNF is the function ¬abc ∨ ¬a¬bc
∨ ac, but it is not a disjunctive normal form because the last conjunction lacks the variable b.

Conjunctive normal form (CNF)

A simple disjunction is a disjunction of one or more variables, or their negations,
with each variable included no more than once.
Conjunctive normal form (CNF) is a conjunction of simple disjunctions.
A perfect conjunctive normal form (CNF) is a CNF with respect to some given finite set of variables,
each disjunction of which includes all variables of this set.
For example, the CNF is the function (a ∨ b) ∧ (a ∨ b ∨ c),
but it is not an SNF because the first disjunction lacks the variable c.

Algebraic Normal Form (ANF, Zhegalkin polynomial)

Algebraic normal form, Zhegalkin polynomial is a form of representation of logical function in the form of polynomial with coefficients of 0 and 1, where conjunction operation is used as product and exclusive OR is used as addition.
Examples of Zhegalkin polynomials: 1, a, a⊕b, ab⊕a⊕b⊕1

Algorithm for constructing an DNF for a Boolean function

  1. Construct a truth table for the function
  2. Find all sets of arguments on which the function takes value 1
  3. Write simple conjunctions for each of the sets according to the following rule: if in a set the variable
    takes value 0, it enters the conjunction with negation, otherwise without negation
  4. Combine all simple conjunctions with a disjunction

Algorithm of CNF construction for a Boolean function

  1. Build a truth table for the function
  2. Find all sets of arguments on which the function takes the value 0
  3. Write simple disjunctions for each of the sets according to the following rule: if in a set the variable
    takes value 1, it enters the disjunction with negation, otherwise without negation
  4. Combine all simple disjunctions with a conjunction

Algorithm for constructing the Zhegalkin polynomial of a Boolean function

There are several methods of constructing the Zhegalkin polynomial, in this article we will consider the most convenient and simple
of all.

  1. Construct a truth table for the function
  2. Add a new column to the truth table and write in 1, 3, 5… cells of the values from the same rows
    of the previous column of the truth table, and to the values in lines 2, 4, 6… add modulo two
    values from correspondingly 1, 3, 5… lines.
  3. Add a new column to the truth table and overwrite the values of 1, 2, 5, 6, 9, 10…
    lines, and to 3, 4, 7, 8, 11, 12… lines add the overwritten values similarly to the previous point.
  4. Repeat each time doubling the number of transferred and added elements until the length equals the number of rows in the table.
  5. Write out Boolean sets where the value of the last column is one
  6. Write the names of variables corresponding to the set instead of the ones in the sets (for the zero set write
    one) and join them using the exclusive OR operation.

Examples of constructing different representations of logical functions

Let us construct perfect disjunctive and disjunctive normal forms and the Zhegalkin polynomial
for the function of three variables F = ¬ab∨¬bc∨ca

1. Let’s build a truth table for the function


Construction of a perfect disjunctive normal form:

Let’s find the sets on which the function takes a true value: { 0, 0, 1 } { 0, 1, 0 }
{ 0, 1, 1 } { 1, 0, 1 } { 1, 1, 1 }

Let us match the found sets with elementary conjunctions for all variables, and if a variable
in the set takes value 0, it will be written with negation:

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

Combine conjunctions using disjunction and get a perfect disjunctive normal form:

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


Construction of a perfect conjunctive normal form:

Find the sets on which the function takes a false value: { 0, 0, 0 } { 1, 0, 0 }
{ 1, 1, 0 }

Let us match the found sets with elementary disjunctions for all variables, and if a variable
in the set takes value 1, it will be written with negation:

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

Combine disjunctions with conjunctions and obtain a perfect conjunctive normal form:

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


Construction of the Zhegalkin polynomial:

Add a new column to the truth table and write in lines 1, 3, 5, and 7 the values from the same lines
in the previous column of the truth table, and add the values in lines 2, 4, 6 and 8 modulo 2 with the values
from lines 1, 3, 5, and 7 correspondingly:

Add a new column to the truth table and write in lines 1 and 2, 5 and 6 the values from the same lines
of the previous column in the truth table, and add the values in lines 3 and 4, 7 and 8 modulo 2 with the values
from lines 1 and 2, 5 and 6 correspondingly:

Add a new column to the truth table and write in rows 1, 2, 3, and 4 the values from the same rows of the previous
column of the truth table, and add the values in lines 5, 6, 7 and 8 modulo 2 with the values from
correspondingly in lines 1, 2, 3, and 4:

The final result is the following table:

Write out the sets, on which the resulting vector takes a unit value, and instead of the units in the sets write
the names of variables corresponding to the set (for the zero set write one):

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

Combining these conjunctions using the exclusive or operation, we obtain the Zhegalkin polynomial:
c⊕b⊕bc⊕ab⊕abc

Минимальной ДНФ (МДНФ) функции F(X1, … ,Xn) называется ДНФ, реализующая функцию F и содержащая минимальное число символов переменных по сравнению со всеми другими видами ДНФ, реализующими функцию F.

Если для всякого набора = (A1, …, An) значений переменных условие G( )=1 влечёт , то функция G называется частью функции F (или функция F накрывает функцию G). Если при этом для некоторого набора = (C1, …, Cn) функция G( )=1, то говорят, что функция G накрывает единицу функции F на наборе (или что G накрывает конституенту единицы функции F). Заметим, что конституента единицы функции F есть часть функции F, накрывающая единственную единицу функции F.

Элементарная конъюнкция K называется импликантом функции F, если для всякого набора =(A1, …, An) из 0 и 1 условие K( )=1 влечет F( )=1.

Импликант K функции F называется простым, если выражение, получающееся из него выбрасыванием любых множителей, уже не импликант функции F.

Ясно, что всякий импликант функции F есть часть функции F.

Теорема. Всякая функция реализуется дизъюнкцией всех своих простых имликант (ПИ).

Доказательство. Пусть F(X1, …, Xn) есть функция, а A = K1 v… v Km – дизъюнкция всех ее простых импликант. Пусть = (A1, …, An) – произвольный набор длины N из 0 и 1.

Если A( ) = 1, то найдется дизъюнктивное слагаемое Ki ( ) = 1, что влечет F( ) = 1, ибо Ki есть импликант функции F.

Если F( ) = 1, то в СДНФ для функции F найдется элементарная конъюнкция K, равная на этом наборе единице. Один из простых имликантов Kj функции F получается выбрасыванием некоторых множителей из K и потому Kj( ) = 1, а тогда A( ) = 1.

Следовательно, F = A. Теорема доказана.

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

Пусть A и B – произвольные формулы. Из свойств булевых операций вытекают следующие обратимые правила преобразования ДНФ:

1) – полное склеивание (развертывание);

2) – неполное склеивание;

3) – обобщенное склеивание;

4) – поглощение;

5) – идемпотентность ( удаление дублирующих членов).

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

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

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

1. Получить СДНФ функции F.

2. Провести все операции неполного склеивания.

3. Провести все операции поглощения.

Пример 1. Построим сокращенную ДНФ для функции, приведенной в таблице 3.1.

Таблица 3.1

X

Y

Z

T

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

F

1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1

1. Строим СДНФ функции F:

. Пронумеруем дизъюнктивные члены в полученной СДНФ в порядке от 1 до 11.

2. Проводим все операции неполного склеивания.

Первый этап склеивания в таблице 3.2.

После первого этапа склеиваний (и возможных поглощений) получаем, что

Пронумеруем дизъюнктивные члены в полученной ДНФ в порядке их следования от 1 до 15.

Второй этап склеиваний в таблице 3.3.

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

Таблица 3.2

Слагаемые

Склеивание по

Результат

1,2

T

1,3

Z

1,6

X

2,4

Z

2,5

Y

3,4

T

3,7

X

5,9

X

6,7

Z

6,8

Y

7,10

Y

8,9

T

8,10

Z

9,11

Z

Xyt

10,11

T

Xyz

Таблица 3.3

Слагаемые

Склеивание по

Результат

1, 6

Z

2, 4

T

2, 8

X

3, 7

Z

8, 13

Y

X

10, 11

Z

X

12, 15

Z

Xy

13, 14

T

Xy

Метод Блейка

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

Пример 2. Построить сокращенную ДНФ по ДНФ D функции F(X,Y,Z), где

После первого этапа получаем:

После второго этапа получаем сокращенную ДНФ:

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

(метод Нельсона)

Пусть F(X1, … , Xn) есть некоторая функция алгебры логики. Построим для F некоторую КНФ. Осуществим далее следующие преобразования.

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

2. В полученном выражении удалим нулевые дизъюнктивные слагаемые.

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

В результате проведенных операций получим сокращенную ДНФ функции F. Покажем это.

Для каждой элементарной дизъюнкции D в КНФ и каждой элементарной конъюнкции K в сокращенной ДНФ (сокр. ДНФ) существует некоторый множитель вида X из K, содержащийся в D, т. е.

» DÎ ДНФ » K Î сокр. ДНФ $ Xa Î K (XaÎ D).

Допустим противное: в КНФ существует элементарная конъюнкция D, в сокращенной ДНФ существует элементарная конъюнкция K, для которой всякий множитель вида Xa из K не входит в D. Не уменьшая общности возьмем для простоты

Положим X1 = A1, …, Xk=Ak, Xk+1 = Ck+1 ¹ Ak+1, …, Xr = Cr ¹ Ar. Тогда K(A1, …, Ak) = 1, и потому F (A1, …, Ak, Ck+1, …, Cr ) = 1. С другой стороны, D(Ck+1,…, Cr) = 0, и потому F (A1, …, Ak, Ck+1, …, Cr ) = 0. Противоречие.

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

Так как содержатся в K разных скобках КНФ, а всякая другая скобка, отличная от указанных K скобок, содержит хотя бы один элемент вида X из K, то при раскрытии скобок имеем простой импликант K. После проведения всех операций поглощения и удаления дублирующих множителей, останутся только простые импликанты из сокращенной ДНФ, ибо если предположить наличие в результате хотя бы одного дизъюнктивного слагаемого, отличного от всех простых импликантов сокращенной ДНФ, то можно подобрать такие значения переменных функции F, на которых все простые импликанты примут значение 0, а это дополнительное слагаемое – значение 1, чего быть не может.

Пример 3. Построим сокращенную ДНФ этим способом для функции

F = (1111010010101111) из примера 1 :

Сокращенная ДНФ для функции

Что, естественно, совпадает с результатом примера 1.

Пример 4. Построить сокращенную ДНФ по заданной КНФ

После раскрытия скобок имеем:

После второго этапа получаем сокращенную ДНФ:

Тупиковой ДНФ ( ТДНФ) функции F называется такая ДНФ ее простых импликант, из которых нельзя выбросить ни одного импликанта, не изменив функции F.

Теорема. Всякая минимальная ДНФ некоторой функции является ее тупиковой ДНФ.

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

Вывод. Для получения МДНФ функции F необходимо построить все ТДНФ функции F и выбрать из них те, которые содержат минимальное число букв.

Построение всех тупиковых ДНФ.

Пусть F(X1, …, Xn) есть функция алгебры логики.

1. Построим СДНФ функции F, и пусть P1, P2, …,Pn есть ее коституенты единицы).

2. Построим сокращенную ДНФ функции, F и пусть K1, K2, …, Km – ее простые импликанты.

3. Построим матрицу покрытий простых импликант функции F ее конституентами единицы (табл. 3.4), полагая, что

+, если каждый множитель в Ki является множителем в Pj; (Pj есть Aij= часть для Ki ); Æ в противном случае.

Таблица 3.4

N

P1 P2 … PjPn

K1

K2

Ki

Km

A11 a12 … a1J …a1N

A21 a22 … a2J … a2N

Ai1 ai2 … aij … ain

Am1 am2… amj … amn

4. Для каждого столбца J ( 1 £ J £ N ) найдем множество Ej всех тех номеров I строк, для которых Aij = 1. Пусть Составим выражение Назовем его решеточным выражением. Это выражение можно рассматривать как формулу, построенную в свободной дистрибутивной решетке с образующими 1, 2, …,M и с операциями & и Ú .

5. В выражении A раскроем скобки, приведя выражение A к равносильному выражению где перечислены все конъюнкции элементы которой взяты из скобок 1,2,…,N соответственно в выражении A.

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

Утверждение. Каждая элементарная конъюнкция I1&I2&…&Ir в С дает ТДНФ для F . Все ТДНФ для функции F исчерпываются элементарными конъюнкциями в выражении С.

Пример 5. Сокращенная ДНФ для функции F = (1111010010101111) имеет вид

Для функции F построим все минимальные ДНФ.

1. Строим матрицу покрытий (таблица 3.5).

Таблица 3.5

Конституенты единицы функции F

N

ПИ

X `X `X `X `X X X X X X X

Y `Y `Y `Y y `Y `Y y y y y

Z `Z z z `Z `Z z `Z `Z z z

T t `T t t `T `T `T t t t

1

2

3

4

5

6

x y

`X`Y

`Y`T

x`T

`X`Z t

y`Z t

+ + + +

+ + + +

+ + + +

+ + + +

+ +

+ +

2. Строим решеточное выражение (по столбцам таблицы).

E = (2Ú3)(2Ú5)(2Ú3)2(5Ú6)(3Ú4)(3Ú4)(1Ú4)(1Ú6)(1Ú4)(1) = (2Ú3)(2Ú5)(5Ú6)(3Ú4)(1Ú4)(1Ú6)12 = (5Ú6)(3Ú4)(1)(2) = 1235Ú1245Ú1236Ú1246.

3. Строим все тупиковые ДНФ функции F:

простые импликанты 1,2,3,5;

простые импликанты 1,2,4,5;

простые импликанты 1,2,3,6;

простые импликанты 1,2,4,6.

4. Все найденные ТДНФ являются минимальными ДНФ.

Алгоритм минимизации функций в классе ДНФ

1. Строим СДНФ функции F.

2. Строим сокращенную ДНФ функции F.

3. С помощью матрицы покрытий и решеточного выражения строим все ТДНФ функции F.

4. Среди построенных ТДНФ выбираем все минимальные дизъюнктивные нормальные формы функции F.

Алгоритм минимизации функций в классе КНФ

Чтобы построить все минимальные КНФ (МКНФ) функции F, следует построить все МДНФ функции `F и взять от каждой из них отрицание, для чего заменить знаки & на Ú , а Ú на & ( сохранив первоначальное распределение скобок) и над каждой буквой поставить знак отрицания. Полученные КНФ для функции F будут минимальными. В самом деле, если бы для F существовала КНФ с меньшим числом букв, то ее отрицание дало бы для `F ДНФ с меньшим числом букв, чем в любой из минимальных ДНФ для `F. Противоречие с их минимальностью.

Алгоритм минимизации функций в классе нормальных форм

Пусть F – функция алгебры логики.

1. Строим все МДНФ функции F.

2. Строим все МКНФ функции F.

3. Из построенных минимальных форм выбираем простейшие ( по числу букв).

Пример 6. В классе нормальных форм минимизировать функцию F=(01011110).

1. Строим СДНФ для функции F :

2. Строим сокращенную ДНФ функции F:

3. Строим матрицу покрытий (таблица 3.6).

Таблица 3.6

N

ПИ

`X`Y z `X y z x`Y`Z x`Y z x y`Z

1

2

3

4

`X z

`Y z

X`Y

x`Z

+ +

+ +

+ +

+ +

Решеточное выражение E = ( 1 Ú 2 ) 1 (3 Ú 4 ) 4 = 134 Ú 124.

4. Строим все тупиковые ДНФ функции F :

5. Обе построенные ТДНФ являются минимальными.

6. Повторяем эти этапы для функции `F.

СДНФ :

Сокращенная ДНФ :

Строим матрицу покрытий (таблица 3.7).

Таблица 3.7

N

ПИ

X`y`z `x y`z x y z

1

2

`x`z

X y z

+ +

+

Решеточный многочлен E = 112 = 12. Единственная тупиковая ДНФ (она же минимальная) для функции Минимальная КНФ функции Из построенных МДНФ и МКНФ выбираем простейшую

Пример 7. В классе нормальных форм минимизировать функцию F=(11011011).

1. СДНФ:

2. Сокращенная ДНФ : =

3. Строим матрицу покрытий (таблица 3.8).

Таблица 3.8

N

ПИ

`X`Y`Z `X`Y z `X Y z x`Y`Z X y`Z x y z

1

2

3

4

5

6

X y

X`Z

Y`Z

`X z

Y z

`X`Y

+ +

+ +

+ +

+ +

+ +

+ +

E = ( 3 Ú 6 ) ( 4 Ú 6 ) ( 4 Ú 5 ) ( 2 Ú 3 ) ( 1 Ú 2 ) ( 1 Ú 5 ) = 1246 Ú 1356 Ú 134 Ú 256 Ú 2345.

4. Тупиковые ДНФ функции F :

5. Минимальные ДНФ функции F :

6. Повторяем указанные выше этапы для функции `F .

СДНФ :

Сокращенная ДНФ :

Построенная сокращенная ДНФ функции `F является для нее тупиковой и минимальной.

Минимальная КНФ функции

Построенные МДНФ и МКНФ имеют одно и то же число букв; все они составляют минимальные формы для F :

< Предыдущая   Следующая >

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Телефон по умолчанию это как исправить
  • Как новичку программисту найти работу
  • Как найти ликвидацию предприятия
  • Как составить тренировку по фитнесу
  • Как исправить косолапие дома

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии