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

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

Введите логическую функцию — калькулятор построит её таблицу истинности, нарисует карту Карно с пронумерованными группами единиц и выдаст минимальную дизъюнктивную нормальную форму (МДНФ), найденную методом Квайна — Мак-Класки. Ниже разобрано, как получить тот же ответ вручную: два примера с решением на 3 и на 4 переменные и таблица склеивания минтермов.

Введите формулу — таблица построится сразу.

Примеры: A ∧ B, A ∨ ¬B, (A → B) ∧ (B → C), закон де Моргана, A ⊕ B ⊕ C

Какие знаки можно вводить

ОперацияЗнаки вводаОписание
НЕ (отрицание)¬ ! ~ NOTменяет значение на противоположное
И (конъюнкция)∧ & * ANDистинно, когда истинны оба
ИЛИ (дизъюнкция)∨ | + ORложно, когда ложны оба
XOR (исключающее ИЛИ)⊕ ^ XORистинно, когда операнды различны
Штрих Шеффера (И-НЕ)↑ NANDложно только когда истинны оба
Стрелка Пирса (ИЛИ-НЕ)↓ NORистинно только когда ложны оба
Импликация→ ->ложно только при 1 → 0
Эквивалентность↔ ≡ <->истинно, когда операнды равны
Переменные / константыA B C D … 1 0буквы — переменные, 1 — истина, 0 — ложь

Приоритет: НЕ → И / И-НЕ → XOR → ИЛИ / ИЛИ-НЕ → импликация → эквивалентность. Меняйте порядок скобками. Регистр и пробелы не важны.

Карта Карно онлайн: как её читать

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

Калькулятор выше рисует карту сам: цифра в клетке — значение функции, верхний индекс — номера групп, в которые эта клетка вошла. Под картой перечислены сами группы и их термы.

Пример 1: минимизация функции трёх переменных

Минимизируем F = (A ∧ B) ∨ (¬A ∧ C) ∨ (B ∧ C) — эта функция стоит в поле калькулятора по умолчанию. Три переменные, значит 2³ = 8 наборов.

№ABCA ∧ B¬A ∧ CB ∧ CF
00000000
10010101
20100000
30110111
41000000
51010000
61101001
71111011

Единицы стоят на наборах 1, 3, 6, 7 — это минтермы функции. СДНФ по ним получается длинной: (¬A ∧ ¬B ∧ C) ∨ (¬A ∧ B ∧ C) ∨ (A ∧ B ∧ ¬C) ∨ (A ∧ B ∧ C) — 12 букв. Перенесём единицы на карту Карно: строки размечены переменной A, столбцы — парой BC в коде Грея.

A \ BC00011110
0011110
1001212

Видны две группы по две клетки:

F = (¬A ∧ C) ∨ (A ∧ B) — 4 буквы вместо 12 в СДНФ и вместо 6 в исходной записи.

Обратите внимание: третье слагаемое исходной формулы, B ∧ C, в ответ не вошло — оно оказалось лишним. На карте ему соответствует вертикальная пара в столбце 11, целиком накрытая группами 1 и 2. Это закон склеивания следствий (правило консенсуса): (A ∧ B) ∨ (¬A ∧ C) ∨ (B ∧ C) = (A ∧ B) ∨ (¬A ∧ C). Такие лишние термы вручную заметить трудно, а карта показывает их сразу.

Метод Квайна — Мак-Класки: тот же ответ таблицей

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

Шаг 1. Склеивание. Выписываем минтермы в двоичном виде и попарно ищем те, что отличаются ровно в одном разряде: их объединяем, а различающийся разряд заменяем прочерком. Правило склеивания — X ∧ Y ∨ X ∧ ¬Y = X.

МинтермыABCСклейкаРезультатТерм
1, 3001, 011разряд B0 – 1¬A ∧ C
3, 7011, 111разряд A– 1 1B ∧ C
6, 7110, 111разряд C1 1 –A ∧ B

Дальше склеивать нечего: прочерки у всех трёх термов стоят в разных разрядах, а склеивать можно только термы с одинаковым расположением прочерков. Значит, получены все простые (первичные) импликанты: ¬A ∧ C, B ∧ C, A ∧ B.

Шаг 2. Таблица покрытия. Отмечаем, какой импликант какие минтермы накрывает.

Импликант1367
¬A ∧ C××
B ∧ C××
A ∧ B××

Шаг 3. Выбор покрытия. Минтерм 1 накрывает только ¬A ∧ C, минтерм 6 — только A ∧ B. Импликант, оставшийся единственным хозяином хотя бы одного минтерма, называется существенным и обязан войти в ответ. Эти два импликанта уже накрывают все четыре минтерма (1, 3, 6, 7), поэтому B ∧ C отбрасываем:

F = (¬A ∧ C) ∨ (A ∧ B) — тот же результат, что дала карта Карно.

Пример 2: минимизация функции четырёх переменных

Возьмём F = (¬B ∧ ¬D) ∨ (A ∧ B ∧ C). Переменных четыре, наборов 2⁴ = 16.

№ABCD¬B ∧ ¬DA ∧ B ∧ CF
00000101
10001000
20010101
30011000
40100000
50101000
60110000
70111000
81000101
91001000
101010101
111011000
121100000
131101000
141110011
151111011

Единицы — на наборах 0, 2, 8, 10, 14, 15. Карта на четыре переменные: строки размечены парой AB, столбцы — парой CD, обе — в коде Грея.

AB \ CD00011110
00110011
010000
11001212
10110011

F = (¬B ∧ ¬D) ∨ (A ∧ B ∧ C) — 5 букв против 24 в СДНФ из шести полных минтермов. Здесь исходная запись уже была минимальной, и минимизация это подтвердила: так тоже бывает, и калькулятор об этом сообщает.

Группа из клеток 10 и 14 (терм A ∧ C ∧ ¬D) тоже является простым импликантом, но в минимальное покрытие не входит: обе её клетки уже накрыты группами 1 и 2. Простых импликантов у функции всегда не меньше, чем термов в МДНФ, — лишние отсеиваются на шаге покрытия.

Что выбрать: карту Карно или Квайна — Мак-Класки

Оба метода дают один и тот же результат — минимальную ДНФ, — и отличаются только формой записи.

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

Теория и пояснения

Минимизация логической функции — это поиск её самой короткой равносильной записи, то есть формы с наименьшим числом вхождений переменных. Исходной точкой служит таблица истинности: по строкам, где функция равна 1, выписывается СДНФ, а затем полные минтермы склеиваются между собой по правилу X ∧ Y ∨ X ∧ ¬Y = X — два набора, различающиеся ровно в одном разряде, дают один терм без этой переменной. Термы, которые больше не склеиваются, называются простыми импликантами; из них выбирают минимальное покрытие всех единичных наборов, и результат называется минимальной дизъюнктивной нормальной формой, МДНФ. Наглядно склейку выполняет карта Карно: таблица истинности разворачивается в прямоугольник с заголовками в коде Грея, единицы объединяются в прямоугольники из 2, 4 или 8 клеток, и каждый прямоугольник даёт один терм — переменные, меняющиеся внутри группы, выпадают. Карта замкнута в кольцо, поэтому склеиваются и клетки у противоположных краёв, включая четыре угла. Формальный аналог карты — метод Квайна — Мак-Класки: те же склейки, но в виде таблиц, зато без ограничения на число переменных. Калькулятор на этой странице выполняет минимизацию именно методом Квайна — Мак-Класки: он строит таблицу истинности введённой формулы, находит все простые импликанты, отбирает существенные, добирает остаток и выводит строку «Упрощённое выражение (МДНФ)», а рядом рисует карту Карно с пронумерованными группами, чтобы результат можно было сверить с ручным решением. Если функция тождественно истинна, минимальная форма равна константе 1, если тождественно ложна — константе 0. У функции может быть несколько тупиковых ДНФ одинаковой длины, поэтому ответ, отличающийся от выданного, тоже бывает верным — проверить это можно сравнением таблиц истинности двух записей.

Частые вопросы

Как минимизировать логическую функцию онлайн?

Введите формулу в поле выше — калькулятор построит таблицу истинности, нарисует карту Карно с группами единиц и выведет строку «Упрощённое выражение (МДНФ)». Это и есть минимальная форма функции: равносильная исходной, но с наименьшим числом букв. Всё считается в браузере, регистрация не нужна.

Что такое карта Карно и как ей пользоваться?

Карта Карно — это таблица истинности, развёрнутая в прямоугольник с заголовками в коде Грея (00, 01, 11, 10), так что соседние клетки отличаются ровно одной переменной. Единицы объединяют в прямоугольники из 1, 2, 4 или 8 клеток — как можно крупнее и как можно меньшим числом групп. В каждой группе оставляют переменные, которые не меняются, и соединяют полученные термы знаком ИЛИ.

Как работает метод Квайна — Мак-Класки?

В три шага. Сначала склеивание: минтермы, отличающиеся ровно в одном разряде, объединяются, а этот разряд заменяется прочерком; склейки повторяются, пока возможны. Несклеившиеся термы — простые импликанты. Затем строится таблица покрытия, и из импликантов выбирается минимальный набор, накрывающий все единичные наборы: сначала существенные, потом остаток.

Для скольких переменных строится карта Карно?

Плоская карта наглядна для 2, 3 и 4 переменных — калькулятор рисует её именно в этих случаях. Для 5 и более переменных карту пришлось бы разбивать на слои, поэтому там пользуются методом Квайна — Мак-Класки: он даёт тот же результат при любом числе переменных и работает в калькуляторе всегда.

Что такое простые и существенные импликанты?

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

Чем МДНФ отличается от СДНФ?

СДНФ содержит по одному полному терму на каждый единичный набор, и в каждом терме участвуют все переменные — форма единственная, но длинная. МДНФ получается из СДНФ склеиванием и содержит наименьшее возможное число букв. Например, СДНФ из четырёх полных термов на 12 букв может свернуться в МДНФ из двух термов на 4 буквы.

Почему мой ответ отличается от ответа калькулятора?

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

Можно ли минимизировать до КНФ (МКНФ)?

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