Упрощатель булевой алгебры

Используйте A, B, C... для переменных.

Для булевого выражения — A·B + A·¬B + ¬A·B или таблицы истинности с минтермами — этот упрощатель возвращает минимальную форму sum-of-products с помощью алгоритма Quine-McCluskey, плюс визуализацию карты Карно для максимум шести переменных. Он показывает каждый шаг (prime implicants, essential prime implicants, covering table), поэтому полезен не только для домашки, но и для аудита того, что выбрал минимизатор внутри вашего synthesis tool.

Как выполняется булево упрощение

  1. 1

    Введите выражение или минтермы

    Используйте операторы · (AND), + (OR), ' или ¬ (NOT), ⊕ (XOR). Или вставьте индексы минтермов вроде m(0,1,3,7).

  2. 2

    Генерируется таблица истинности

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

  3. 3

    Quine-McCluskey находит prime implicants

    Минтермы группируются и итеративно объединяются. Соседние группы, отличающиеся одной переменной, сливаются, пока дальнейшие сокращения невозможны.

  4. 4

    Essential implicants покрывают функцию

    Таблица покрытия по методу Petrick выбирает минимальный набор prime implicants. Результат — упрощенная SOP. POS-форма выводится из дополнения.

Поддерживаемая запись операторов

Операция Допустимые символы
AND ·, *, &, , пробел
OR +, |,
NOT \', ¬, !, ~, надчёркивание (A с надчёркиванием отображается как A\')
XOR , ^
Константы 0, 1

Пример

Ввод: A·B + A·¬B + ¬A·B

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

A B F
0 0 0
0 1 1
1 0 1
1 1 1

Minterms: m(1, 2, 3). Минимальная SOP сокращается до A + B (OR двух переменных). Упрощатель проходит шаги:

  1. Группирует минтермы по количеству единиц
  2. Объединяет соседние пары: (1,3) → -B, (2,3) → A-
  3. Таблица покрытия показывает, что оба essential — итоговая форма: A + B

Зачем минимизировать

  • Меньше вентилей: каждый AND/OR-терм стоит кремния или ресурсов FPGA (LUT).
  • Короче critical path: меньшая логика обычно означает меньшую задержку распространения.
  • Меньше энергопотребление: меньше переключающихся узлов.

Ограничения алгоритма

  • Количество переменных: Quine-McCluskey в худшем случае растет как O(3^n / n). Инструмент уверенно обрабатывает до 8 переменных; дальше используйте эвристические минимизаторы в стиле Espresso (гарантированной минимальности не будет, зато это выполнимо).
  • Don't-care terms: добавляйте их синтаксисом d(indices), чтобы получать более короткие результаты, когда некоторые входные комбинации невозможны.

Часто задаваемые вопросы

Sum-of-products — это OR-of-ANDs (например, AB + CD); product-of-sums — AND-of-ORs (например, (A+B)(C+D)). Функция та же, структура другая. Упрощатель возвращает обе формы — выбирайте ту, которая подходит downstream tool.

Да. Вводите их как d(index1, index2, ...) рядом с минтермами. Минимизатор считает их “свободными” и назначает то значение, которое дает меньший результат.

Оба дают минимальную стоимость, если выбрать правильно, но K-maps зависят от того, заметил ли человек самые большие возможные группы. Quine-McCluskey детерминирован и всегда находит optimum.

XOR перед минимизацией разворачивается в AND/OR/NOT. Вы получите эквивалентную SOP, но XOR-структура потеряется. Для оптимизации с сохранением XOR нужен другой алгоритм (Reed-Muller).

Сопутствующие инструменты

Генератор случайных цветовых палитр

Создавайте случайные палитры из 2–15 цветов, выбирайте яркий, пастельный, приглушенный или темный стиль и копируйте HEX-коды или CSS-переменные.

Конвертер BBCode в HTML

Преобразуйте BBCode (разметку форумов) в чистый HTML. Поддерживает теги форматирования, списки, цитаты, код, изображения, ссылки и таблицы.

Выбор цвета HEX

Выберите цвет визуально и получите значения HEX, RGB, HSL, HSV и CMYK, а также контраст на белом и чёрном фоне.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Форматировщик JSON

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

Генератор случайных цветов

Создавайте от 1 до 50 случайных HEX-цветов с образцами для просмотра, копирования и использования в CSS, тестах или подборе палитр.