Как правильно создать минимальную дизъюнктивную нормальную форму (МДНФ) — пошаговая инструкция, примеры, простые объяснения

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

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

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

Далее рассмотрим пример. Пусть дана булева функция F(x, y, z) = x'y' + xy'z + xyz'. Построим таблицу истинности:

xyzF
0000
0011
0100
0111
1000
1011
1101
1110

Как создать МДНФ пошагово

Как создать МДНФ пошагово

Чтобы создать МДНФ, следуйте следующим шагам:

  1. Запишите исходное логическое выражение. Оно может быть представлено в виде таблицы истинности или булевой алгебры.
  2. Запишите конъюнкции, соответствующие всем возможным наборам переменных, при которых выражение принимает значение 1.
  3. Для каждого набора переменных, при которых выражение принимает значение 1, запишите дизъюнкцию всех переменных этого набора.
  4. Объедините все дизъюнкции, записанные на предыдущем шаге, с помощью операции ИЛИ.

Вот пример создания МДНФ:

Дано логическое выражение: (A ИЛИ B) И (A ИЛИ НЕ B)

  1. Построим таблицу истинности для данного выражения:
AB(A ИЛИ B) И (A ИЛИ НЕ B)
000
010
101
111
  1. Наборы переменных при которых выражение принимает значение 1: (1, 0), (1, 1)
  2. Дизъюнкции переменных для каждого набора: A И (НЕ B), A
  3. МДНФ: (A И (НЕ B)) ИЛИ A

Теперь у вас есть МДНФ для данного логического выражения.

Определение МДНФ и ее цель

Определение МДНФ и ее цель

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

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

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

Логическая функцияЭквивалентная МДНФ
F(A, B, C) = A'BC + A'B'C + AB'C + ABC'F(A, B, C) = A'B + BC' + AC'
F(A, B, C) = (A + B)(B' + C')(A' + C)F(A, B, C) = AB' + ABC + AB'C'

Шаг 1: Определение таблицы истинности

Шаг 1: Определение таблицы истинности

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

Например, для данной функции мы можем иметь следующую таблицу истинности:

ABC
001
010
100
111

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

Шаг 2: Выделение наборов, на которых функция истина

Шаг 2: Выделение наборов, на которых функция истина

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

Процесс выделения наборов заключается в следующем:

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

Пример:

АВСF
0000
0011
0101
0111
1000
1011
1101
1110

В данном примере функция F принимает значение "1" в строках 2, 4, 6 и 7. Следовательно, наборы переменных, соответствующие этим строкам, образуют МДНФ:

F = (¬A · ¬B · C) + (¬A · B · C) + (A · ¬B · C) + (A · B · ¬C)

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

Шаг 3: Запись наборов в виде конъюнкции

Шаг 3: Запись наборов в виде конъюнкции

После того как мы получили все наборы, осталось записать их в виде конъюнкции, чтобы получить МДНФ. Конъюнкция представляет собой логическую операцию "И", которая объединяет несколько условий.

Для каждого набора условий создадим конъюнкцию, используя операцию "И". Начнем со списков, содержащих условия 1 и 0. Для условия 1 создадим конъюнкцию из переменных, равных 1, и записываем их в формате переменная = 1. Например, если получен набор (1, 0, 1), то мы записываем A = 1, B = 0, C = 1. Для условия 0 создадим конъюнкцию из переменных, равных 0, и записываем их в формате переменная = 0. Например, если получен набор (0, 1, 0), то мы записываем A = 0, B = 1, C = 0.

Далее обработаем списки, содержащие условия '-', которые означают, что переменная может быть либо 1, либо 0. Для каждой переменной создадим конъюнкцию из двух частей: переменная = 1 и переменная = 0, используя операцию "ИЛИ". Например, если получен набор (1, -, 0), то мы создаем конъюнкцию A = 1 ИЛИ A = 0, аналогично для остальных переменных.

После записи всех конъюнкций объединяем их в одну конъюнкцию, используя операцию "И". Таким образом, получаем МДНФ, которая представляет собой набор конъюнкций, объединенных операцией "И".

Шаг 4: Сокращение конъюнкции

Шаг 4: Сокращение конъюнкции

На этом шаге мы будем сокращать конъюнкцию, то есть упрощать ее до наименьшего количества литералов.

1. Переберите все импликанты и объедините их в конъюнкцию.

2. Просмотрите конъюнкцию и найдите литералы, которые встречаются только в одной конъюнкции.

3. Уберите эти литералы из конъюнкции, так как они не участвуют в формировании МДНФ.

4. Повторите шаги 2 и 3, пока конъюнкция не будет далее сокращаться.

Пример:

Дана конъюнкция: (A ∨ B ∨ ¬C) ∧ (A ∨ ¬B ∨ C) ∧ (A ∨ B ∨ C)

Сначала объединяем импликанты в конъюнкцию:

(A ∨ B ∨ ¬C) ∧ (A ∨ ¬B ∨ C) ∧ (A ∨ B ∨ C)

Затем рассматриваем каждый литерал отдельно:

А: встречается во всех конъюнкциях

B: встречается во всех конъюнкциях

C: встречается только в первой конъюнкции

Убираем литерал C из конъюнкции:

(A ∨ B) ∧ (A ∨ ¬B ∨ C) ∧ (A ∨ B ∨ C)

Повторяем шаги 2 и 3:

А: встречается во всех конъюнкциях

B: встречается во всех конъюнкциях

C: встречается только во второй конъюнкции

Убираем литерал C из конъюнкции:

(A ∨ B) ∧ (A ∨ ¬B) ∧ (A ∨ B ∨ C)

Последнюю конъюнкцию уже нельзя сократить, так как она содержит все литералы.

Таким образом, получаем МДНФ: (A ∨ B) ∧ (A ∨ ¬B).

Примеры МДНФ

Примеры МДНФ

Приведем несколько примеров МДНФ:

  • Пусть имеется функция f(A, B, C) = (!A && B && !C)
Оцените статью