Тема 5. Минимизация дизъюнктивных нормальных форм.
Элементарная конъюнкция, ранг элементарной конъюнкции.
Пусть задан алфавит переменных 𝑋 = {𝑥1, 𝑥2, ... , 𝑥n}.
Напомним,
что формулу вида
где для любого 𝑖 𝜎i равно 0 или 1 и все переменные разные (𝑖v ≠ 𝑖µ, если 𝜈 ≠ 𝜇), называют элементарной конъюнкцией ранга r над множеством X.
Константу 1 считают элементарной конъюнкцией ранга 0.
Дизъюнктивная нормальная форма (ДНФ), сложность ДНФ.
Формулу вида 𝐷 = 𝐾1 ∨ 𝐾2 ∨. . .∨ 𝐾s (𝐾i ≠ 𝐾j при 𝑖 ≠ 𝑗), где через 𝐾i (𝑖 = 1,2,..., 𝑠) обозначены элементарные конъюнкции над множеством X, называют дизъюнктивной нормальной формой над множеством X.
Сумма рангов конъюнкций, входящих в ДНФ, называется сложностью ДНФ.
Например, 𝐷1 = 𝑥1 ⋅ 𝑥2 ∨ 𝑥̄1 ⋅ 𝑥̄2 ⋅ 𝑥3 ∨ 𝑥1 - ДНФ сложности 6; 𝐷2 = 𝑥1 ∨ 𝑥̄1 ⋅ 𝑥̄2 ⋅ 𝑥3 - ДНФ сложности 4; 𝐷3 = 𝑥1 ∨ 𝑥̄2 ⋅ 𝑥3 - ДНФ сложности 3 над множеством 𝑋 = {𝑥1, 𝑥2, 𝑥3}.
Заметим, что формулы 𝐷1,𝐷2,𝐷3 равносильны и, следовательно, реализуют одну и ту же функцию 𝑓(𝑥1, 𝑥2, 𝑥3). Таким образом, одна и та же функция может быть задана несколькими ДНФ, причем эти ДНФ могут иметь различную сложность.
Минимальная ДНФ.
Опр. ДНФ, имеющая по сравнению с другими ДНФ, задающими данную функцию, наименьшую сложность, называется минимальной ДНФ данной функции.
Так, для функции 𝑓(𝑥1, 𝑥2, 𝑥3), реализуемой рассмотренными выше ДНФ 𝐷1, 𝐷2, 𝐷3, дизъюнктивная нормальная форма 𝐷3 = 𝑥1 ∨ 𝑥̄2 ⋅ 𝑥3 является минимальной.
Задача минимизации ДНФ формулируется так: для всякой булевой функции 𝑓(𝑥1, 𝑥2,..., 𝑥3) найти представление в виде минимальной ДНФ. Задачу минимизации ДНФ можно решить методом полного перебора, организовав его следующим образом.
1. Построить все ДНФ над множеством 𝑋 = {𝑥1, 𝑥2,..., 𝑥3}.
Число различных элементарных конъюнкций над алфавитом из 𝑛 переменных равно 3n. При построении произвольной ДНФ каждую из этих конъюнкций можно в нее либо включить, либо не включить. Значит, всего можно составить 23^n − 1 ДНФ (вычтя из 23^n единицу, мы учли, что если не включить в строящийся объект ни одну из элементарных конъюнкций, то ДНФ не образуется).
2. Отобрать из построенных ДНФ те, которые задают функцию 𝑓.
Заметим, что для всякой булевой функции 𝑓(𝑥1, 𝑥2,..., 𝑥n), тождественно отличной от нуля, есть, по крайней мере, одна представляющая ее ДНФ - это СДНФ.
3. Для каждой отобранной ДНФ определить сложность; ДНФ наименьшей сложности и есть искомые минимальные ДНФ функции 𝑓.
Импликанта, простая импликанта. Сокращенная ДНФ.
Опр. Элементарная конъюнкция называется импликантой функции 𝑓(𝑥1, 𝑥2,..., 𝑥n), если на любом наборе (𝛼1, 𝛼2,..., 𝛼n), на котором эта элементарная конъюнкция равна 1, функция 𝑓 также обращается в 1.
Заметим, что любая элементарная конъюнкция, входящая в СДНФ функции, является импликантой этой функции.
Опр. Будем называть импликанту функции 𝑓 простой, если элементарная конъюнкция, получающаяся из нее удалением любой из букв, уже не является импликантой 𝑓.
Опр. Дизъюнкция всех простых импликант функции называется сокращенной ДНФ функции.
Например, для функции 𝑓(𝑥, 𝑦) = 𝑥 → 𝑦 (см. пример 3) сокращенная ДНФ имеет вид 𝑥̄∨ 𝑦. Из определения сокращенной ДНФ непосредственно следует, что сокращенная ДНФ у функции единственна.
Справедливо следующее утверждение: сокращенная ДНФ функции𝑓(𝑥1, 𝑥2,..., 𝑥n) задает функцию 𝑓(𝑥1, 𝑥2,..., 𝑥n).
Более того, оказывается, что почти всегда можно реализовать функцию дизъюнкцией лишь некоторых (не всех!) простых импликант. В связи с этим уместно ввести понятие тупиковой ДНФ
Тупиковая ДНФ.
Опр. Тупиковой ДНФ функции называется такая реализующая ее дизъюнкция простых импликант, из которой нельзя удалить ни одну простую импликанту так, чтобы полученная после удаления ДНФ все еще задавала функцию.
Имеет место следующий теоретический факт: минимальная ДНФ функции является тупиковой ДНФ.
Представление булевой функции в виде сокращенной, тупиковой и минимальной ДНФ.
