Основы дискретной математики

Эквивалентность формул и нормальные формы

Разбить на страницы
Показывать лекцию целиком

Эквивалентность булевых формул

Определение 4.1. Булевы формулы $$\Phi$$ и $$\Psi$$ называются эквивалентными, если соответствующие им функции $$f_{\Phi }$$ и $$f_{\Psi }$$ равны.

Обозначение: $$\Phi \equiv \Psi$$. Эквивалентные формулы называют также тождественно равными, а выражения вида $$\Phi \equiv \Psi$$ логическими тождествами .

Основные эквивалентности (тождества)

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

Пусть $$\hat{}$$ - это одна из функций $$\wedge , \vee , +$$. Для этих трех функций выполнены следующие две эквивалентности ( законы ассоциативности и коммутативности ).

  • Ассоциативность:$$((X_1 \circ X_2) \circ X_3) \equiv (X_1 \circ(X_2 \circ X_3))$$
  • Коммутативность:$$(X_1 \circ X_2) \equiv (X_2 \circ X_1 )$$
  • Дистрибутивные законы:$$\begin{array}{l} ((X_1 \vee X_2) \wedge X_3) \equiv ((X_1 \wedge X_3)\vee (X_2 \wedge X_3))\\ ((X_1 \wedge X_2) \vee X_3) \equiv ((X_1 \vee X_3)\wedge (X_2 \vee X_3))\\ ((X_1 + X_2) \wedge X_3) \equiv ((X_1 \wedge X_3)+ (X_2 \wedge X_3))\end{array}$$
  • Двойное отрицание: $$\neg (\neg X) \equiv X$$
  • Законы де Моргана (внесение отрицания внутрь скобок):$$\begin{array}{c} \neg (X_1 \vee X_2) \equiv (\neg X_1 \wedge \neg X_2)\\ \neg (X_1 \wedge X_2) \equiv (\neg X_1 \vee \neg X_2) \end{array}$$
  • Законы упрощения:$$\begin{array}{c} (X \wedge X) \equiv X \hspace{20mm} (X \vee X) \equiv X \\ (X \wedge \neg X) \equiv 0 \hspace{20mm} (X \vee \neg X) \equiv 1 \\ (X \wedge 0) \equiv 0 \hspace{20mm} (X \vee 0) \equiv X \\ (X \wedge 1) \equiv X \hspace{20mm} (X \vee 1) \equiv 1 \end{array}$$
  • Некоторые законы упрощения имеют собственные названия: эквивалентности в первой строке называются законами идемпотентности, $$(X \wedge \neg X) \equiv 0$$ - это закон противоречия, $$(X \vee \neg X) \equiv 1$$ - это закон исключенного третьего. Эквивалентности в двух последних строках иногда называют законами 0 и 1.

    Следующие две эквивалентности позволяют выразить импликацию и сложение по модулю 2 через дизъюнкцию, конъюнкцию и отрицание.

    $$(X_1 \rightarrow X_2) \equiv (\neg X_1 \vee X_2)$$ $$(X_1 + X_2) \equiv (( X_1 \wedge \neg X_2)\vee (\neg X_1\wedge X_2))$$

    Проверку правильности этих эквивалентностей оставляем читателям (см. задачу 4.1).

    Эквивалентные преобразования формул

    Соглашения об упрощенной записи формул.

  • Законы ассоциативности показывают, что значения формул, составленных из переменных и одних операций конъюнкции, не зависят от расстановки скобок. Поэтому вместо формул $$((X_{1} \wedge X_{2}) \wedge X_{3})$$ и $$(X_{1} \wedge (X_{2} \wedge X_{3}))$$ мы будем для упрощения писать выражение $$(X_{1} \wedge X_{2} \wedge X_{3})$$, которое не является формулой, но может быть превращено в нее с помощью расстановки скобок. Аналогично, будем использовать выражения $$(X_{1} \vee X_{2} \vee X_{3})$$ и (X1 + X2 + X3) для сокращения формул, состоящих из одних дизъюнкций или одних сложений по модулю 2, соответственно.
  • Если внешней функцией в формуле является одна из функций $$\wedge , \vee , +, \to$$, то внешние скобки в записи формулы можно опустить.
  • Таким образом, с использованием этих соглашений формула

    $$(((X \vee Y)\vee(Z \wedge \neg X))\rightarrow ((Y + Z)+\neg X))$$

    может быть записана как

    $$(X \vee Y \vee (Z \wedge \neg X))\rightarrow (Y + Z+\neg X).$$

    Из определения эквивалентности формул непосредственно следует Принцип замены эквивалентных подформул:

    пусть формула $$\alpha$$ является подформулой формулы $$\Phi,$$ формула $$\alpha '$$ эквивалентна $$\alpha$$ и формула $$\Phi '$$ получена из $$\Phi$$ посредством замены некоторого вхождения $$\alpha$$ на $$\alpha '$$. Тогда $$\Phi '$$ эквивалентна $$\Phi,$$ т.е. $$\Phi ' \equiv \Phi$$.

    Применяя этот принцип и используя основные тождества, можно находить для заданной формулы другие эквивалентные ей формулы. Часто это может приводить к существенному упрощению исходной формулы. Например, если в формуле $$((X \wedge 0)\vee Y)$$ заменим на основании тождеств (6) подформулу $$(X \wedge 0)$$ на 0, то получим эквивалентную формулу $$(0 \vee Y)$$. По закону коммутативности (2) эта формула эквивалентна формуле $$(Y \vee 0)$$, которая, в свою очередь, по одному из тождеств группы (6) эквивалентна формуле Y. Эту цепочку эквивалентных преобразований можно записать также следующим образом:

    $$((X \wedge 0)\vee Y) \underset{(6)}{\equiv}(0 \vee Y)\underset{(2)}{\equiv} (Y \vee 0)\underset{(6)}{\equiv} Y$$

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

    Выведем еще несколько важных логических тождеств, позволяющих проводить упрощения сложных формул. Их называют законами поглощения.

  • $$X \vee (X \wedge \Phi){\equiv}X$$

    Действительно,

    $$X \vee (X \wedge \Phi) \underset{(6)}{\equiv} (X \wedge 1) \vee(X \wedge \Phi) \underset{(3)}{\equiv} X \wedge (1 \vee \Phi) \underset{(2,6)}{\equiv} X \wedge 1 \underset{(6)}{\equiv}X$$
  • $$(X \wedge \Phi) \vee (\neg X \wedge \Phi) {\equiv} \Phi$$ Действительно,$$(X \wedge \Phi) \vee (\neg X \wedge \Phi) \underset{(3)}{\equiv} (X \vee \neg X) \wedge \Phi \underset{(6)}{\equiv} 1 \wedge \Phi \underset{(6)}{\equiv} \Phi$$
  • $$(X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3) \vee ( X_2 \wedge X_3) {\equiv} (X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3)$$ Действительно,$$(X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3) \vee ( X_2 \wedge X_3)\underset{(2,6)}{\equiv} \\ (X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3) \vee (X_1 \vee \neg X_1)\wedge ( X_2 \wedge X_3)\underset{(3,2)}{\equiv}\\ ((X_1 \wedge X_2) \vee (X_1 \wedge X_2 \wedge X_3)) \vee ((\neg X_1 \wedge X_2 )\vee (\neg X_1 \wedge X_2 \wedge X_3)) \underset{(3)}{\equiv}\\ ((X_1 \wedge X_2) \wedge (1 \vee X_3)) \vee ((\neg X_1 \wedge X_2 ) \wedge (1 \vee X_3)) \underset{(6)}{\equiv}\\ ((X_1 \wedge X_2) \wedge 1) \vee ((\neg X_1 \wedge X_2 ) \wedge 1 ) \underset{(6)}{\equiv}\\ (X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3)$$
  • Дизъюнктивные и конъюнктивные нормальные формы

    Определение ДНФ и КНФ

    В этом разделе мы интересуемся представлением произвольной булевой функции посредством формул специального вида, использующих только операции $$\wedge,$$ $$\vee$$ и $$\neg.$$

    Пусть $$\mathbf{X}=\{X_1,\ldots, X_n\}$$ - это множество пропозициональных переменных. Введем для каждого i=1,...,n обозначения: $$X_i^0= \neg X_i$$ и $$X_i^1= X_i$$. Формула $$X_{i_1}^{\sigma_1}\wedge X_{i_2}^{\sigma_2}\wedge \ldots \wedge X_{i_k}^{\sigma_k}(X_{i_1}^{\sigma_1}\vee X_{i_2}^{\sigma_2}\vee \ldots \vee X_{i_k}^{\sigma_k}) $$, в которой $$\sigma_{i_j} \in \{0,1\}$$ и все переменные разные, т.е. $$X_{i_j} \neq X_{i_r}$$ при $$j \neq r$$, называется элементарной конъюнкцией ( элементарной дизъюнкцией ).

    Определение 4.2. Формула $$\mathcal{D}$$ называется дизъюнктивной нормальной формой (ДНФ), если она является дизъюнкцией элементарных конъюнкций, т.е. имеет вид $$\mathcal{D}= K_1 \vee K_2\vee \ldots \vee K_r$$, где каждая формула $$K_j\ ( j=1,...,r)$$ - это элементарная конъюнкция . $$\mathcal{D}$$ называется совершенной ДНФ, если в каждую из ее конъюнкций $$K_j$$ входят все $$n$$ переменных из $$\mathbf{X}$$. Аналогично, формула $$\mathcal{C}$$ называется конъюнктивной нормальной формой (КНФ), если она является конъюнкцией элементарных дизъюнкций, т.е. $$\mathcal{C}= D_1 \vee D_2\vee \ldots \vee D_r$$, где каждая формула Dj (j=1,...,r) - это элементарная дизъюнкция . Она является совершенной КНФ, если в каждую Dj входят все n переменных из $$\mathbf{X}$$.

    Совершенные ДНФ и КНФ

    Рассмотрим произвольную булеву функцию f(X1,...,Xn) , зависящую от переменных из $$\mathbf{X}$$. Oбозначим через Nf+ множество наборов значений переменных, на которых f принимает значение 1, а через Nf- множество наборов, на которых f принимает значение 0, т.е. $$N_f^+= \{(\sigma_1,\ldots, \sigma_n)\ |\ f(\sigma_1,\ldots, \sigma_n)=1\} $$ и $$N_f^-= \{(\sigma_1,\ldots, \sigma_n)\ |\ f(\sigma_1,\ldots, \sigma_n)=0\}$$.

    Определим по этим множествам две формулы:

    $$\mathcal{D}_f = \bigvee_{(\sigma_1,\ldots, \sigma_n)\in N_f^+} X_1^{\sigma_1}\wedge X_2^{\sigma_2}\wedge \ldots \wedge X_n^{\sigma_n}$$

    и

    $$\mathcal{C}_f = \bigwedge_{(\sigma_1,\ldots, \sigma_n)\in N_f^-} (X_1^{\neg\sigma_1}\vee X_2^{\neg\sigma_2}\vee \ldots \vee X_n^{\neg\sigma_n})$$

    Теорема 4.1.

  • Если функция f не равна тождественно 0, то формула $$\mathcal{D}_f$$ - это совершенная ДНФ, задающая функцию f.
  • Если функция f не равна тождественно 1, то формула $$\mathcal{C}_f$$ - это совершенная КНФ, задающая функцию f.
  • Доказательство получается непосредственным вычислением значения каждой из указанных формул с учетом того, что для любого $$\sigma \in \{ 0, 1\}$$ имеют место равенства: $$1^{\sigma } = \sigma$$ и $$0^{\sigma } = \neg \sigma$$ (см. задачу 4.4).

    Следствие 4.1.1. Каждая булева функция может быть задана формулой, содержащей переменные и функции конъюнкции, дизъюнкции и отрицания.

    Приведенные выше формулы для $$\mathcal{D}_f$$ и $$\mathcal{C}_f$$ позволяют эффективно строить совершенные ДНФ и КН по табличному представлению функции f (Каким образом?). Можно ли получить такие специальные представления по произвольной формуле, задающей f, не выписывая ее полной таблицы? Приводимая ниже процедура позволяет это сделать, используя основные эквивалентности формул.

    Процедура Приведение к совершенной ДНФ

    Вход: формула $$\Phi,$$ включающая функции $$\neg , \wedge , \vee , \to$$ и +.

  • Используя эквивалентность (7), заменить все вхождения функции $$\to$$ в $$\Phi$$ на $$\neg , \wedge$$ и $$\vee,$$ затем использовать эквивалентность (8) для замены всех вхождений функции + на $$\neg , \wedge$$ и $$\vee.$$
  • Используя законы де Моргана (5) и снятия двойного отрицания (4), внести все знаки отрицания внутрь скобок так, чтобы все оставшиеся отрицания находились непосредственно перед переменными.
  • Получившаяся после шага (2) формула $$\Phi^\prime$$ имеет одну из двух форм:
  • $$\Phi^\prime = \Phi_1 \wedge \Phi_2$$ или
  • $$\Phi^\prime = \Phi_1 \vee \Phi_2$$.
  • Поскольку каждая из формул $$\Phi _{1}$$, $$\Phi _{2}$$ имеет меньшую глубину, чем формула $$\Phi '$$, то предположим по индукции, что для них уже построены эквивалентные ДНФ $$D_1=K_1^1 \vee K_1^2\vee \ldots \vee K_1^r$$ и $$D_2=K_2^1 \vee K_2^2\vee \ldots \vee K_2^s$$, соответственно.

    Тогда в случае (а) имеем:

    $$\Phi^\prime \equiv (K_1^1 \vee \ldots \vee K_1^r)\wedge (K_2^1 \vee \ldots \vee K_2^s)\underset{(3)}{\equiv}\\(K_1^1\wedge K_2^1)\vee \ldots \vee (K_1^i\wedge K_2^j)\vee \ldots \vee (K_1^r\wedge K_2^s)$$

    Каждый член $$(K_1^i\wedge K_2^j)$$ этой дизъюнкции представляет собой конъюнкцию переменных и их отрицаний. Применяя эквивалентности групп (1), (2) и (6), можно удалить из нее повторения переменных, после чего она превратится в некоторую элементарную конъюнкцию или константу. Проделав такие преобразования со всеми парами (i,j), 1 <= i <= r, 1 <= j <= s, и удалив, если потребуется, константы 0, мы получим ДНФ, эквивалентную исходной формуле $$\Phi.$$

    В случае (б) формула $$\Phi^\prime \equiv (K_1^1 \vee K_1^2\vee \ldots \vee K_1^r)\vee (K_2^1 \vee K_2^2\vee \ldots \vee K_2^s)$$ сама уже является ДНФ.

  • Используя эквивалентности групп (1), (2) и (6), удалить из получившейся после шага (3) формулы повторные вхождения одинаковых конъюнкций.
  • Пусть после шага (4) получилась ДНФ $$\Phi^{\prime\prime}= K_1 \vee K_2 \vee \ldots \vee K_m$$. Чтобы получить эквивалентную совершенную ДНФ, построим для каждой Ki (i=1,..., m) , эквивалентную совершенную ДНФ (см. задачу 4.5),заменим ею Ki , а затем устраним повторения одинаковых конъюнкций.
  • Из формулировок эквивалентностей (7) и (8) непосредственно вытекает

    Предложение 4.1. На этапе (1) процедуры при последовательном выполнении преобразований (7), а затем - (8), до тех пор, пока ни одно из них не применимо, полученная в результате формула не будет содержать функций $$\to$$ и +.

    Доказательство этого предложения оставляем в виде упражнения (см. задачу 4.7).

    Следующее утверждение гарантирует корректность этапа (2).

    Предложение 4.2. На этапе (2) процедуры при любом порядке выполнения преобразований групп (4) и (5) до тех пор, пока ни одно из них не применимо, в полученной в результате формуле все знаки отрицания будут стоять непосредственно перед переменными.

    Перед доказательством этого утверждения введем некоторые обозначения. Напомним, что в определениях 3.2 и 3.3 для каждой формулы $$\Phi$$ была определена ее глубина $$dep(\Phi )$$. Например, формула $$\Phi =\neg (X+Y)\to (\neg (X \vee \neg Z)\wedge Y)$$, построенная над системой $$F=\{ \vee , \wedge , \neg , \to , +\}$$, имеет глубину $$dep(\Phi )=5$$.

    Пусть $$\Phi$$ - это формула над $$F=\{ \vee , \wedge , \neg \}$$. Определим для каждой ее "отрицательной" подформулы вида $$\neg (\Psi )$$ высоту $$h(\neg (\Psi ))$$ как $$3^{dep(\Psi )}-1$$. И пусть высота всей формулы $$H(\Phi )$$ равна сумме высот всех ее отрицательных подформул. Например, для приведенной выше формулы $$\Phi$$ ее высота равна $$H(\Phi )= h(\neg (X+Y)) +h(\neg (X \vee \neg Z))+ h(\neg Z) = (3^{1}-1) + (3^{2}-1) +(3^{0}-1) = 10$$.

    Доказательство предложения 4.2 проведем индукцией по высоте формул.

    Базис индукции. Если $$H(\Phi )=0$$, то либо в $$\Phi$$ нет отрицаний, либо все отрицания находятся непосредственно перед переменными. Следовательно, $$\Phi$$ удовлетворяет требованию предложения 4.2.

    Шаг индукции. Предположим, что при n <= k для всех формул высоты n Предложение 4.2 выполнено. Пусть $$\Phi$$ - произвольная формула высоты $$H(\Phi )= k+1$$. Докажем наше утверждение для нее. Поскольку $$H(\Phi )\ge 1$$, то $$\Phi$$ содержит хотя бы одну отрицательную подформулу $$\neg (\Psi )$$, у которой $$h(\neg (\Psi ))\ge 1$$ и, следовательно, $$dep(\Psi ) \ge 1$$. К такой формуле обязательно можно применить либо снятие двойного отрицания (4), либо один из законов де Моргана (5). ( Объясните почему.) Пусть $$\neg (\Psi )$$ - это та подформула $$\Phi,$$ которая на (2)-ом этапе процедуры первой заменяется на эквивалентную формулу $$\Psi '$$ в соответствии с одной из указанных эквивалентностей. Пусть $$\Phi '$$ - это формула, получившаяся в результате этой замены из $$\Phi.$$ Нетрудно проверить (проделайте эту проверку!), что при любом из преобразований (4), (5) $$H(\Psi ') < H(\neg (\Psi ))$$ и, следовательно, $$H(\Phi ') < H(\Phi )$$. Тогда $$H(\Phi ')\le k$$ и по предположению индукции применение эквивалентностей (4), (5) в произвольном порядке приведет в конце концов к формуле, у которой все отрицания будут стоять непосредственно перед переменными. Тем самым, предложение 4.2 выполнено при n=k+1, что завершает индукционный шаг и все доказательство.

    Рассмотрим применение процедуры приведения к совершенной ДНФ на примере.

    Пример 4.1. Пусть формула $$\Phi= ((\neg X\vee Z) \rightarrow (Y \rightarrow (X + Z)))$$.

    На (1)-ом этапе процедуры получаем следующую цепочку эквивалентностей:

    $$\Phi \underset{(7)}{\equiv} \neg (\neg X\vee Z) \vee (Y \rightarrow (X + Z))\underset{(7)}{\equiv} \neg (\neg X\vee Z) \vee (\neg Y \vee (X+Z)) \underset{(8)}{\equiv}\\ \neg (\neg X\vee Z) \vee (\neg Y \vee ((X \wedge \neg Z) \vee (\neg X \wedge Z))).$$

    На (2)-ом этапе вносим отрицание внутрь первой скобки и получаем формулу

    $$\Phi^\prime=(\neg \neg X \wedge \neg Z)\vee (\neg Y \vee ((X \wedge \neg Z) \vee (\neg X \wedge Z)))$$

    Устранив двойное отрицание, получим

    $$\Phi^{\prime\prime}=( X \wedge \neg Z)\vee (\neg Y \vee ((X \wedge \neg Z) \vee (\neg X \wedge Z))).$$

    Нетрудно видеть, что это уже ДНФ. Удалим на (4)-ом этапе повторное вхождение первой конънкции и получим ДНФ

    $$\Phi_1=( X \wedge \neg Z)\vee \neg Y \vee(\neg X \wedge Z)$$

    Эта ДНФ не является совершенной, так как в каждую из ее трех конъюнкций входят не все переменные. Построим на этапе (5) для них эквивалентные совершенные ДНФ (используя решение задачи 4.5).

    $$\begin{array}{l} (X \wedge \neg Z)\equiv ( X \wedge Y\wedge \neg Z)\vee ( X \wedge\neg Y \wedge \neg Z),\\ \neg Y \equiv (X\wedge \neg Y \wedge Z)\vee (X\wedge \neg Y \wedge \neg Z)\vee (\neg X\wedge \neg Y \wedge Z)\vee (\neg X\wedge \neg Y \wedge \neg Z),\\ (\neg X \wedge Z) \equiv (\neg X\wedge Y \wedge Z)\vee (\neg X\wedge \neg Y \wedge Z). \end{array}$$

    Подставив эти формулы в $$\Phi _{1}$$ и устранив повторения конъюнкций, получим совершенную ДНФ, эквивалентную исходной формуле $$\Phi:$$

    $$\Phi_2=( X \wedge Y\wedge \neg Z)\vee ( X \wedge\neg Y \wedge \neg Z) \vee (X\wedge \neg Y \wedge Z)\vee \\ (\neg X\wedge \neg Y \wedge Z)\vee (\neg X\wedge \neg Y \wedge \neg Z)\vee (\neg X\wedge Y \wedge Z).$$

    Мы видим, что ДНФ $$\Phi _{1}$$, полученная после 4-го этапа, выглядит существенно проще, т.е. является более короткой, чем совершенная ДНФ $$\Phi _{2}$$. Однако совершенные ДНФ и КНФ обладают важным свойством единственности, которое следует из их конструкции в теореме 4.1.

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

    Это следствие позволяет предложить следующую процедуру для проверки эквивалентности формул $$\Phi$$ и $$\Psi.$$

  • Построить для $$\Phi$$ и $$\Psi$$ эквивалентные совершенные ДНФ $$\Phi '$$ и $$\Psi '$$ используя процедуру приведения к совершенной ДНФ.
  • Упорядочить в соответствии с нумерацией переменных X вхождения переменных в каждую конъюнкцию, а затем лексикографически упорядочить между собой конъюнкции, входящие в $$\Phi '$$ и $$\Psi '$$. Пусть в результате получатся совершенные ДНФ $$\Phi ''$$ и $$\Psi ''$$
  • Если $$\Phi '' = \Psi ''$$, то выдать ответ "Да", иначе - ответ "Нет".
  • Замечание. Аналогичную процедуру можно построить с использованием совершенных КНФ.

    Сокращенные ДНФ

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

    Напомним, что мы рассматриваем булевы функции над переменными $$\mathbf{X}=\{X_1,\ldots, X_n\}$$. С каждой элементарной конъюнкцией $$K=X_{i_1}^{\sigma_1}\wedge X_{i_2}^{\sigma_2}\wedge \ldots \wedge X_{i_k}^{\sigma_k} $$ связано множество $$N_K^+$$ наборов переменных, на которых K принимает значение 1. Нетрудно понять, что это множество содержит 2(n-k) наборов, в которых каждая из входящих в K переменных $$X_{i_r}\ (1 \leq r\leq k)$$ имеет фиксированное значение $$\sigma _{r}$$, а значения остальных (n-k) переменных произвольны.

    Определение Пусть f - произвольная булева функция над $$\mathbf{X}$$. Элементарная конъюнкция K называется допустимой для f, если $$N_K^+ \subseteq N_f^+$$.

    Элементарная конъюнкция K называется максимальной для f, если для любой элементарной конъюнкции L из условия $$N_K^+ \subseteq N_L^+\subseteq N_f^+$$ следует, что $$N_K^+ = N_L^+$$.

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

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

    Примером сокращенной ДНФ является формула $$\Phi_1=( X \wedge \neg Z)\vee \neg Y \vee (\neg X \wedge Z)$$ из примера 4.1.

    Сокращенную ДНФ можно получить из произвольной ДНФ D, используя процедуру, называемую методом Блейка.

  • Применять, сколько возможно, закон поглощения

    (П3): $$(X\wedge K_1) \vee (\neg X \wedge K_2) \equiv (X\wedge K_1) \vee (\neg X \wedge K_2) \vee (K_1\wedge K_2) $$

    слева направо при условии, что конъюнкция $$(K_{1} \wedge K_{2})$$ непротиворечива, т.е. не содержит одновременно некоторую переменную и ее отрицание. (Заметим, что на этом этапе число элементарных конъюнкций в ДНФ, вообще говоря, увеличивается).
  • Применять, сколько возможно, правило поглощения

    (П1): $$X \vee (X\wedge K) \equiv X$$.

    Затем удалить повторные вхождения конъюнкций.
  • Теорема 4.2. В результате применения метода Блейка к произвольной ДНФ через конечное число шагов будет получена эквивалентная ей сокращенная ДНФ.

    Доказательство Пусть после (1)-го этапа процедуры ДНФ D функции f преобразовалась в эквивалентную ДНФ D1 . Покажем, что для всякой допустимой для f элементарной конъюнкция K в D1 найдется такая конъюнкция K', что $$N_K^+ \subseteq N_{K'}^+$$. Доказательство проведем возвратной индукцией по числу переменных в K.

    Базис индукции. Пусть K содержит все n переменных из $$\mathbf{X}$$. Тогда $$N_K^+$$ состоит из единственного набора и, поскольку $$N_K^+ \subseteq N_{D_1}^+$$, то в $$D_1$$ сущетсвует конъюнкция K', для которой $$N_K^+ \subseteq N_{K'}^+$$.

    Шаг индукции. Пусть для некоторого k < n утверждение верно для всех допустимых для f конъюнкций, содержащих не менее (k+1) -ой переменной. Докажем, что оно верно и для допустимых конъюнкций с k переменными.

    Пусть допустимая для f элементарная конъюнкция K содержит k переменных и пусть $$X \in \mathbf{X}$$ - переменная, не входящая в K. Тогда обе элементарные конъюнкции $$K_1=(X \wedge K)$$ и $$K_2=(\neg X \wedge K)$$ являются допустимыми для f и по предположению индукции для них в $$\Phi _{1}$$ найдутся такие $$K_1^{\prime}$$ и $$K_2^{\prime}$$, что $$N_{K_1}^+ \subseteq N_{K_1'}^+$$ и $$N_{K_2}^+ \subseteq N_{K_2'}^+$$. Если хотя бы одна из них не содержит X, то ее можно выбрать в качестве K'. В противном случае, их можно представить в виде $$K_1^{\prime}= (X \wedge K_1^{\prime\prime})$$ и $$K_2^{\prime}= (\neg X \wedge K_2^{\prime\prime})$$. При этом $$N_{K}^+ \subseteq N_{K_1"}^+$$ и $$N_{K}^+ \subseteq N_{K_2"}^+ $$. Поскольку все преобразования вида (П3) выполнены, то D1 тогда содержит и конъюнкцию $$K^{\prime}= (K_1^{\prime\prime}\wedge K_2^{\prime\prime})$$, для которой $$N_{K}^+ \subseteq N_{K'}^+$$.

    Заметим, что если K максимальна для f, то $$N_{K}^+ = N_{K'}^+$$. Таким образом, все максимальные конъюнкции входят в D1 .

    Теперь, чтобы завершить доказательство теоремы, нужно показать, что на этапе (2) из D1 будут удалены все немаксимальные элементарные конъюнкции. (Докажите это индукцией по числу немаксимальных конъюнкций в D1 .)

    Пример 4.2. Применим метод Блейка к совершенной ДНФ функции f(X1,X2,X3) , принимающей значение 1 на наборах множества $$N_f^+=\{(001), (010), (011), (101)\}$$.

    Ее совершенная ДНФ $$D= (\neg X_1\wedge \neg X_2 \wedge X_3)\vee (\neg X_1\wedge X_2 \wedge \neg X_3)\vee (\neg X_1\wedge X_2 \wedge X_3)\vee ( X_1\wedge \neg X_2 \wedge X_3)$$.

    После применения преобразований (П3) на (1)-ом этапе получим

    $$D_1= (\neg X_1\wedge \neg X_2 \wedge X_3)\vee (\neg X_1\wedge X_2 \wedge \neg X_3)\vee (\neg X_1\wedge X_2 \wedge X_3)\vee\\ ( X_1\wedge \neg X_2 \wedge X_3)\vee (\neg X_2\wedge X_3) \vee (\neg X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3)$$

    После поглощений (П1) на втором этапе останется сокращенная ДНФ

    $$D_2=(\neg X_2\wedge X_3) \vee (\neg X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3).$$

    Заметим, что она не является самой короткой ДНФ для f, т.к. $$D_2\equiv (\neg X_2\wedge X_3) \vee (\neg X_1 \wedge X_2) $$.

    Многочлены Жегалкина

    Многочлены Жегалкина являются еще одним интересным подклассом формул, позволяющим однозначно представлять булевы функции.

    Определение 4.4. Многочленами Жегалкина назваются формулы над множеством функций FJ={ 0, 1, *, +} (здесь * - это другое обозначение конъюнкции).

    Таким образом, каждый многочлен Жегалкина (возможно, после раскрытия скобок и "приведения" подобных членов) представляет сумму (по модулю 2) положительных (монотонных) элементарных конъюнкций (т.е. элементарных конъюнкций без отрицаний). Поскольку для + и * справедливы законы ассоциативности, мы будем при записи многочлена Жегалкина опускать скобки, считая, что * связывает аргументы сильнее, чем +

    Нетрудно проверить, что справедливы следующие эквивалентности:

    $$\begin{array}{lrcl} (J1) \neg X \equiv (X+ 1),\\ (J2) (X_1 \wedge X_2) \equiv (X_1*X_2),\\ (J3) (X_1 \vee X_2) \equiv (X_1*X_2 + X_1 +X_2),\\ (J4) (X_1 + X_2)*(X_3 + X_4) \equiv (X_1*X_2 + X_1*X_3 + X_2*X_3 + X_2*X_4) . \end{array}$$

    Из этих эквивалентностей и теоремы 4.1 легко получить первую часть следующего утверждения.

    Теорема 4.3. Для любой булевой функции существует задающий ее многочлен Жегалкина. Он единственен с точностью до перестановок слагаемых и порядка переменных в конъюнкциях.

    Доказательство Существование такого многочлена следует из того, что для любой ДНФ или КНФ можно с помощью указанных эквивалентностей найти эквивалентный многочлен Жегалкина: (J1)-(J3) позволяют заменять все вхождения $$\neg , \wedge$$ и $$\vee$$ на + и *, а (J4) - перемножать получившиеся после такой замены многочлены.

    Для доказательства единственности представления подсчитаем число различных многочленов Жегалкина от $$n$$ переменных. Каждая положительная элементарная конъюнкция имеет вид Xi1 * ... * Xik , где 1 <= i1 < ... < ik <= n . Таких конъюнкций столько же, сколько подмножеств множества $$\mathbf{X}=\{X_1,\ldots, X_n\}$$, т.е. 2n . (Конъюнкция, соответствующая пустому подмножеству переменных равна 1). Упорядочим их произвольным образом (например, лексикографически): $$K_1, K_2,\ldots, K_{2^n}$$. Tогда каждый многочлен Жегалкина единственным образом можно представить как сумму

    $$\alpha_1 * K_1 + \alpha_2 * K_2 +\ldots +\alpha_{2^n} *K_{2^n},$$

    где каждый из коэффициентов $$\alpha _{i}$$ равен 0 или 1. Следовательно, число многочленов Жегалкина равно $$2^{2^n}$$, т.е. числу всех булевых функций от n переменных. Поэтому каждая функция задается в точности одним многочленом Жегалкина.

    Пример 4.3. Пусть функция f(X1,X2,X3) задается ДНФ $$\Phi= (X_1\wedge \neg X_2) \vee (\neg X_1\wedge X_2 \wedge \neg X_3)$$. Найдем полином Жегалкина, который также задает эту функцию.

    Сначала заменяем $$\wedge$$ на *, а затем,применяя эквивалентность (J1), устраняем отрицания и получаем:

    $$\Phi \equiv X_1 * (X_2+1) \vee (X_1+1)* X_2 *(X_3+1).$$

    Перемножив по правилам (J4), получим:

    $$\Phi \equiv (X_1*X_2+X_1) \vee (X_1* X_2 *X_3 + X_1*X_2 + X_2*X_3+ X_2)$$

    Эквивалентность (J3) позволяет устранить $$\vee:$$

    $$\Phi \equiv (X_1*X_2+X_1) *(X_1* X_2 *X_3 + X_1*X_2 +\\+ X_2*X_3+X_2)+ (X_1*X_2+X_1) + \\+(X_1* X_2 *X_3 + X_1*X_2 + X_2*X_3+X_2).$$

    Снова, используя (J4), перемножим первые две скобки и устраним повторения переменных в конъюнкциях:

    $$\Phi \equiv (X_1* X_2 *X_3 + X_1*X_2 +X_1*X_2*X_3+\\+X_1* X_2 *X_3 +X_1*X_2 +X_1* X_2 *X_3 +X_1*X_2 +X_1*X_2 )+\\+ (X_1*X_2+X_1) + (X_1* X_2 *X_3 + X_1*X_2 + X_2*X_3+X_2).$$

    Упростим эту сумму, используя эквивалентности: $$X + X \equiv 0$$ и $$X + 0 \equiv X$$. В результате получим многочлен Жегалкина

    $$P(X_1,X_2,X_3)= X_1 +X_2+ X_2*X_3 + X_1*X_2*X_3$$

    эквивалентный исходной ДНФ $$\Phi.$$

    Если функция f(X1, ..., Xn) задана таблично, то для построения реализующего ее многочлена Жегалкина можно применить метод неопределенных коэфициентов. Сопоставим i -ому набору значений переменных $$\sigma_i=(\sigma_i^1, \ldots, \sigma_i^n)$$ в таблице положительную конъюнкцию $$K_i=\bigwedge_{\sigma_i^j=1} X_j$$ переменных, равных 1 в этом наборе. В частности, K1 - пустая конъюнкция, K2 = Xn, K3 = Xn-1, K4 = (Xn * Xn-1). и т.д. Тогда для получения нужного многочлена Жегалкина достаточно определить все коэффициенты $$\alpha _{i},\ i = 1, \dots , 2^{n}$$, в выражении

    $$f(X_1, \ldots, X_n)=\alpha_1 * K_1 + \alpha_2 * K_2 +\ldots +\alpha_{2^n} *K_{2^n},$$

    Подставляя в это равенство значения переменных из набора $$\sigma _{i},\ i = 1, \dots , 2^{n}$$, мы получим 2n линейных уравнений относительно 2n неизвестных коэффициентов $$\alpha _{i}$$. Решив эту систему, получим требуемый многочлен Жегалкина. Эта система треугольная и легко решается "сверху-вниз": каждое $$\alpha _{i}$$ определяется по значениям $$\alpha _{1}, \dots , \alpha _{i-1}$$ из уравнения, соответствующего набору $$\sigma _{i}$$.

    Пример 4.4. Рассмотрим в качестве примера функцию f(X1, ..., Xn), заданную следующей таблицей.

    Функция f(X1, X2, X3)
    X1 X2 X3 f(X1, X2, X3)
    0 0 0 1
    0 0 1 0
    0 1 0 0
    0 1 1 0
    1 0 0 1
    1 0 1 0
    1 1 0 0
    1 1. 1 1

    Многочлен Жегалкина для нее (как и для любой функции от 3-х переменных) представляется в виде

    $$p(X_1, X_2, X_3)=\alpha_0 + \alpha_1 * X_1 +\alpha_2*X_2 +\alpha_3 * X_3 + \alpha_{12} *X_1*X_2 +\\+ \alpha_{13}*X_1*X_3 +\alpha_{23}*X_2*X_3 + \alpha_{123}*X_1*X_2*X_3$$

    В этом представлении в индексах у коэффициентов $$\alpha$$ перечислены переменные, входящие в соответствующие конъюнкции.

    Последовательно подставляя значения переменных и f из таблицы, получаем:

    $$\begin{array}{l} p(0,0,0)=\alpha_0=1;\\ p(0,0,1)=\alpha_0 + \alpha_3=0\ \Rightarrow \alpha_3 = 1;\\ p(0,1,0)=\alpha_0 +\alpha_2=0 \ \Rightarrow \alpha_2 = 1;\\ p(0,1,1)=\alpha_0 +\alpha_2 + \alpha_3+ \alpha_{23}=0 \ \Rightarrow \alpha_{23} = 1;\\ p(1,0,0)=\alpha_0 +\alpha_1=1 \ \Rightarrow \alpha_1 = 0;\\ p(1,0,1)=\alpha_0 +\alpha_1 + \alpha_3+ \alpha_{13}=0 \ \Rightarrow \alpha_{13} = 0;\\ p(1,1,0)=\alpha_0 +\alpha_1 + \alpha_2+ \alpha_{12}=0 \ \Rightarrow \alpha_{12} = 0;\\ p(1,1,1)=\alpha_0 +\alpha_1 + \alpha_2+ \alpha_3+\alpha_{12}+\alpha_{13}+\alpha_{23} +\alpha_{123}=1 \ \Rightarrow \alpha_{123} = 1.\\ \end{array}$$

    Следовательно, функция f(X1, X2, X3) представляется многочленом Жегалкина

    $$p_f(X_1, X_2, X_3)=1 + X_3 +X_2 +X_2*X_3 +X_1*X_2*X_3.$$

    Задачи

    Задача 4.1. Проверьте все приведенные в лекции 4 эквивалентности (1) - (8), непосредственно вычисляя функции, представляемые их левыми и правыми частями.

    Задача 4.2. Назовем логическим произведением формулу вида $$\Phi_1 \wedge \Phi_2 \wedge \ldots \wedge \Phi_n$$ (в этом выражении использованы соглашения о сокращении записи!). Ее подформулы $$\Phi_i, 1 \leq i \leq n$$, , будем называть сомножителями. Аналогично, логической суммой назовем формулу вида $$\Phi_1 \vee \Phi_2 \vee \ldots \vee \Phi_n.$$ Ее подформулы $$\Phi_i, 1 \leq i \leq n$$,, будем называть слагаемыми.

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

  • Если в логическом произведении один из сомножителей равен 0, то и все произведение равно 0.
  • Если в логической сумме одно из слагаемых равно 1, то и вся сумма равна 1.
  • Если в логическом произведении n >= 2 и есть сомножитель, равный 1, то его можно вычеркнуть.
  • Если в логической сумме n >= 2 и есть слагаемое, равное 0, то его можно вычеркнуть.
  • Задача 4.3. Используя основные тождества, доказать эквивалентность следующих пар формул.

  • $$\neg (X \vee \neg Y)\wedge (X \to \neg Y)$$ и $$(\neg X \wedge Y);$$
  • $$\neg [(X \wedge \neg Y) \to (\neg X \vee Z)]$$ и $$(X \wedge \neg Y \wedge \neg Z)$$ ;
  • $$(X + Y)\to (X \wedge \neg Y)$$ и $$(\neg X \wedge \neg Y) \vee X$$.
  • Задача 4.4. Докажите теорему 4.1, проверив, что для любого набора значений аргументов $$\sigma_1, \ldots , \sigma_n$$ выполнены равенства $$f( \sigma_1, \ldots , \sigma_n) = \mathcal{D}_f( \sigma_1, \ldots , \sigma_n)$$ и $$f( \sigma_1, \ldots , \sigma_n) = \mathcal{C}_f( \sigma_1, \ldots , \sigma_n) $$.

    Задача 4.5.

  • Предложите процедуру, которая по произвольной элементарной конъюнкции строит эквивалентную ей совершенную ДНФ.
  • Предложите процедуру, которая по произвольной элементарной дизъюнкции строит эквивалентную ей совершенную КНФ.
  • Задача 4.6. Докажите, что для любого k <= n каждую булеву функцию $$f \in \mathcal{P}_n$$ можно представить в виде

    $$f(X_1, \ldots, X_k, X_{k+1}, \ldots , X_n) = \\ \bigvee_{(\sigma_1, \ldots, \sigma_k)\in B^k} X_1^{\sigma_1} \wedge \ldots X_k^{\sigma_k} \wedge f(\sigma_1, \ldots, \sigma_k, X_{k+1}, \ldots , X_n)$$

    Такое представление называется разложением $$f$$ по $$X_1, \ldots, X_k$$. При k=n из него получается совершенная ДНФ из теоремы

    Задача 4.7. Докажите предложение 4.1, используя индукцию по общему количеству функций $$\to$$ и + в формуле.

    Задача 4.8. Как изменить (3)-ий, (4)-ый и (5)-ый этапы процедуры "Приведение к совершенной ДНФ ", чтобы в результате получить процедуру "Приведение к совершенной КНФ ", которая по произвольной формуле строит эквивалентную совершенную КНФ.

    Задача 4.9. Найти эквивалентные сокращенные ДНФ и доказать эквивалентность следующих пар формул:

  • $$\Phi = ( ((\neg X \wedge \neg Y) \to \neg Z)\wedge ( X\to Y)), \Psi = ((1+ Y) \to (\neg X\wedge (1+ Z)))$$.
  • $$\Phi = (\neg ((X_{1} \to X_{2}) \vee \neg ( X_{2} \to X_{1}))\wedge X_{3}), \Psi = \neg ( (X_{1} \wedge X_{3}) \to X_{2})$$.
  • $$\Phi = \neg (\neg X \wedge Y \wedge \neg Z) \to ((Y+1)\wedge ((X+1)\to \neg (\neg U \vee \neg Z))),\Psi = (\neg X \vee Y) \to ((\neg U \vee Y \vee Z) \to (\neg (X \vee \neg Y) \wedge \neg Z))$$.
  • Задача 4.10. Используя основные эквивалентности, найти эквивалентные многочлены Жегалкина и доказать эквивалентность следующих формул:

    $$\Phi= ( ( Z \wedge(X \rightarrow Y) )\vee \neg (\neg X \rightarrow Z)),\ \ \ \Psi = (X \rightarrow ( Y\wedge Z ))$$

    Задача 4.11. Найти сокращенную дизъюнктивную нормальную форму и многочлен Жегалкина (методом неопределенных коэффициентов) для следующих функций от трех аргументов. Считаем, что наборы их аргументов упорядочены лексикографически и значения на них задаются последовательностью 8 нулей и единиц.

  • f=(0010 1100)
  • f=(1110 1100)
  • f=(1100 0011)
  • f=(0110 1011)
  • Страницы:

    Эквивалентность булевых формул

    Определение 4.1. Булевы формулы $$\Phi$$ и $$\Psi$$ называются эквивалентными, если соответствующие им функции $$f_{\Phi }$$ и $$f_{\Psi }$$ равны.

    Обозначение: $$\Phi \equiv \Psi$$. Эквивалентные формулы называют также тождественно равными, а выражения вида $$\Phi \equiv \Psi$$ логическими тождествами .

    Основные эквивалентности (тождества)

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

    Пусть $$\hat{}$$ - это одна из функций $$\wedge , \vee , +$$. Для этих трех функций выполнены следующие две эквивалентности ( законы ассоциативности и коммутативности ).

  • Ассоциативность:$$((X_1 \circ X_2) \circ X_3) \equiv (X_1 \circ(X_2 \circ X_3))$$
  • Коммутативность:$$(X_1 \circ X_2) \equiv (X_2 \circ X_1 )$$
  • Дистрибутивные законы:$$\begin{array}{l} ((X_1 \vee X_2) \wedge X_3) \equiv ((X_1 \wedge X_3)\vee (X_2 \wedge X_3))\\ ((X_1 \wedge X_2) \vee X_3) \equiv ((X_1 \vee X_3)\wedge (X_2 \vee X_3))\\ ((X_1 + X_2) \wedge X_3) \equiv ((X_1 \wedge X_3)+ (X_2 \wedge X_3))\end{array}$$
  • Двойное отрицание: $$\neg (\neg X) \equiv X$$
  • Законы де Моргана (внесение отрицания внутрь скобок):$$\begin{array}{c} \neg (X_1 \vee X_2) \equiv (\neg X_1 \wedge \neg X_2)\\ \neg (X_1 \wedge X_2) \equiv (\neg X_1 \vee \neg X_2) \end{array}$$
  • Законы упрощения:$$\begin{array}{c} (X \wedge X) \equiv X \hspace{20mm} (X \vee X) \equiv X \\ (X \wedge \neg X) \equiv 0 \hspace{20mm} (X \vee \neg X) \equiv 1 \\ (X \wedge 0) \equiv 0 \hspace{20mm} (X \vee 0) \equiv X \\ (X \wedge 1) \equiv X \hspace{20mm} (X \vee 1) \equiv 1 \end{array}$$
  • Некоторые законы упрощения имеют собственные названия: эквивалентности в первой строке называются законами идемпотентности, $$(X \wedge \neg X) \equiv 0$$ - это закон противоречия, $$(X \vee \neg X) \equiv 1$$ - это закон исключенного третьего. Эквивалентности в двух последних строках иногда называют законами 0 и 1.

    Следующие две эквивалентности позволяют выразить импликацию и сложение по модулю 2 через дизъюнкцию, конъюнкцию и отрицание.

    $$(X_1 \rightarrow X_2) \equiv (\neg X_1 \vee X_2)$$ $$(X_1 + X_2) \equiv (( X_1 \wedge \neg X_2)\vee (\neg X_1\wedge X_2))$$

    Проверку правильности этих эквивалентностей оставляем читателям (см. задачу 4.1).

    Эквивалентные преобразования формул

    Соглашения об упрощенной записи формул.

  • Законы ассоциативности показывают, что значения формул, составленных из переменных и одних операций конъюнкции, не зависят от расстановки скобок. Поэтому вместо формул $$((X_{1} \wedge X_{2}) \wedge X_{3})$$ и $$(X_{1} \wedge (X_{2} \wedge X_{3}))$$ мы будем для упрощения писать выражение $$(X_{1} \wedge X_{2} \wedge X_{3})$$, которое не является формулой, но может быть превращено в нее с помощью расстановки скобок. Аналогично, будем использовать выражения $$(X_{1} \vee X_{2} \vee X_{3})$$ и (X1 + X2 + X3) для сокращения формул, состоящих из одних дизъюнкций или одних сложений по модулю 2, соответственно.
  • Если внешней функцией в формуле является одна из функций $$\wedge , \vee , +, \to$$, то внешние скобки в записи формулы можно опустить.
  • Таким образом, с использованием этих соглашений формула

    $$(((X \vee Y)\vee(Z \wedge \neg X))\rightarrow ((Y + Z)+\neg X))$$

    может быть записана как

    $$(X \vee Y \vee (Z \wedge \neg X))\rightarrow (Y + Z+\neg X).$$

    Из определения эквивалентности формул непосредственно следует Принцип замены эквивалентных подформул:

    пусть формула $$\alpha$$ является подформулой формулы $$\Phi,$$ формула $$\alpha '$$ эквивалентна $$\alpha$$ и формула $$\Phi '$$ получена из $$\Phi$$ посредством замены некоторого вхождения $$\alpha$$ на $$\alpha '$$. Тогда $$\Phi '$$ эквивалентна $$\Phi,$$ т.е. $$\Phi ' \equiv \Phi$$.

    Применяя этот принцип и используя основные тождества, можно находить для заданной формулы другие эквивалентные ей формулы. Часто это может приводить к существенному упрощению исходной формулы. Например, если в формуле $$((X \wedge 0)\vee Y)$$ заменим на основании тождеств (6) подформулу $$(X \wedge 0)$$ на 0, то получим эквивалентную формулу $$(0 \vee Y)$$. По закону коммутативности (2) эта формула эквивалентна формуле $$(Y \vee 0)$$, которая, в свою очередь, по одному из тождеств группы (6) эквивалентна формуле Y. Эту цепочку эквивалентных преобразований можно записать также следующим образом:

    $$((X \wedge 0)\vee Y) \underset{(6)}{\equiv}(0 \vee Y)\underset{(2)}{\equiv} (Y \vee 0)\underset{(6)}{\equiv} Y$$

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

    Выведем еще несколько важных логических тождеств, позволяющих проводить упрощения сложных формул. Их называют законами поглощения.

  • $$X \vee (X \wedge \Phi){\equiv}X$$

    Действительно,

    $$X \vee (X \wedge \Phi) \underset{(6)}{\equiv} (X \wedge 1) \vee(X \wedge \Phi) \underset{(3)}{\equiv} X \wedge (1 \vee \Phi) \underset{(2,6)}{\equiv} X \wedge 1 \underset{(6)}{\equiv}X$$
  • $$(X \wedge \Phi) \vee (\neg X \wedge \Phi) {\equiv} \Phi$$ Действительно,$$(X \wedge \Phi) \vee (\neg X \wedge \Phi) \underset{(3)}{\equiv} (X \vee \neg X) \wedge \Phi \underset{(6)}{\equiv} 1 \wedge \Phi \underset{(6)}{\equiv} \Phi$$
  • $$(X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3) \vee ( X_2 \wedge X_3) {\equiv} (X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3)$$ Действительно,$$(X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3) \vee ( X_2 \wedge X_3)\underset{(2,6)}{\equiv} \\ (X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3) \vee (X_1 \vee \neg X_1)\wedge ( X_2 \wedge X_3)\underset{(3,2)}{\equiv}\\ ((X_1 \wedge X_2) \vee (X_1 \wedge X_2 \wedge X_3)) \vee ((\neg X_1 \wedge X_2 )\vee (\neg X_1 \wedge X_2 \wedge X_3)) \underset{(3)}{\equiv}\\ ((X_1 \wedge X_2) \wedge (1 \vee X_3)) \vee ((\neg X_1 \wedge X_2 ) \wedge (1 \vee X_3)) \underset{(6)}{\equiv}\\ ((X_1 \wedge X_2) \wedge 1) \vee ((\neg X_1 \wedge X_2 ) \wedge 1 ) \underset{(6)}{\equiv}\\ (X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3)$$
  • Дизъюнктивные и конъюнктивные нормальные формы

    Определение ДНФ и КНФ

    В этом разделе мы интересуемся представлением произвольной булевой функции посредством формул специального вида, использующих только операции $$\wedge,$$ $$\vee$$ и $$\neg.$$

    Пусть $$\mathbf{X}=\{X_1,\ldots, X_n\}$$ - это множество пропозициональных переменных. Введем для каждого i=1,...,n обозначения: $$X_i^0= \neg X_i$$ и $$X_i^1= X_i$$. Формула $$X_{i_1}^{\sigma_1}\wedge X_{i_2}^{\sigma_2}\wedge \ldots \wedge X_{i_k}^{\sigma_k}(X_{i_1}^{\sigma_1}\vee X_{i_2}^{\sigma_2}\vee \ldots \vee X_{i_k}^{\sigma_k}) $$, в которой $$\sigma_{i_j} \in \{0,1\}$$ и все переменные разные, т.е. $$X_{i_j} \neq X_{i_r}$$ при $$j \neq r$$, называется элементарной конъюнкцией ( элементарной дизъюнкцией ).

    Определение 4.2. Формула $$\mathcal{D}$$ называется дизъюнктивной нормальной формой (ДНФ), если она является дизъюнкцией элементарных конъюнкций, т.е. имеет вид $$\mathcal{D}= K_1 \vee K_2\vee \ldots \vee K_r$$, где каждая формула $$K_j\ ( j=1,...,r)$$ - это элементарная конъюнкция . $$\mathcal{D}$$ называется совершенной ДНФ, если в каждую из ее конъюнкций $$K_j$$ входят все $$n$$ переменных из $$\mathbf{X}$$. Аналогично, формула $$\mathcal{C}$$ называется конъюнктивной нормальной формой (КНФ), если она является конъюнкцией элементарных дизъюнкций, т.е. $$\mathcal{C}= D_1 \vee D_2\vee \ldots \vee D_r$$, где каждая формула Dj (j=1,...,r) - это элементарная дизъюнкция . Она является совершенной КНФ, если в каждую Dj входят все n переменных из $$\mathbf{X}$$.

    Совершенные ДНФ и КНФ

    Рассмотрим произвольную булеву функцию f(X1,...,Xn) , зависящую от переменных из $$\mathbf{X}$$. Oбозначим через Nf+ множество наборов значений переменных, на которых f принимает значение 1, а через Nf- множество наборов, на которых f принимает значение 0, т.е. $$N_f^+= \{(\sigma_1,\ldots, \sigma_n)\ |\ f(\sigma_1,\ldots, \sigma_n)=1\} $$ и $$N_f^-= \{(\sigma_1,\ldots, \sigma_n)\ |\ f(\sigma_1,\ldots, \sigma_n)=0\}$$.

    Определим по этим множествам две формулы:

    $$\mathcal{D}_f = \bigvee_{(\sigma_1,\ldots, \sigma_n)\in N_f^+} X_1^{\sigma_1}\wedge X_2^{\sigma_2}\wedge \ldots \wedge X_n^{\sigma_n}$$

    и

    $$\mathcal{C}_f = \bigwedge_{(\sigma_1,\ldots, \sigma_n)\in N_f^-} (X_1^{\neg\sigma_1}\vee X_2^{\neg\sigma_2}\vee \ldots \vee X_n^{\neg\sigma_n})$$

    Теорема 4.1.

  • Если функция f не равна тождественно 0, то формула $$\mathcal{D}_f$$ - это совершенная ДНФ, задающая функцию f.
  • Если функция f не равна тождественно 1, то формула $$\mathcal{C}_f$$ - это совершенная КНФ, задающая функцию f.
  • Доказательство получается непосредственным вычислением значения каждой из указанных формул с учетом того, что для любого $$\sigma \in \{ 0, 1\}$$ имеют место равенства: $$1^{\sigma } = \sigma$$ и $$0^{\sigma } = \neg \sigma$$ (см. задачу 4.4).

    Следствие 4.1.1. Каждая булева функция может быть задана формулой, содержащей переменные и функции конъюнкции, дизъюнкции и отрицания.

    Приведенные выше формулы для $$\mathcal{D}_f$$ и $$\mathcal{C}_f$$ позволяют эффективно строить совершенные ДНФ и КН по табличному представлению функции f (Каким образом?). Можно ли получить такие специальные представления по произвольной формуле, задающей f, не выписывая ее полной таблицы? Приводимая ниже процедура позволяет это сделать, используя основные эквивалентности формул.

    Процедура Приведение к совершенной ДНФ

    Вход: формула $$\Phi,$$ включающая функции $$\neg , \wedge , \vee , \to$$ и +.

  • Используя эквивалентность (7), заменить все вхождения функции $$\to$$ в $$\Phi$$ на $$\neg , \wedge$$ и $$\vee,$$ затем использовать эквивалентность (8) для замены всех вхождений функции + на $$\neg , \wedge$$ и $$\vee.$$
  • Используя законы де Моргана (5) и снятия двойного отрицания (4), внести все знаки отрицания внутрь скобок так, чтобы все оставшиеся отрицания находились непосредственно перед переменными.
  • Получившаяся после шага (2) формула $$\Phi^\prime$$ имеет одну из двух форм:
  • $$\Phi^\prime = \Phi_1 \wedge \Phi_2$$ или
  • $$\Phi^\prime = \Phi_1 \vee \Phi_2$$.
  • Поскольку каждая из формул $$\Phi _{1}$$, $$\Phi _{2}$$ имеет меньшую глубину, чем формула $$\Phi '$$, то предположим по индукции, что для них уже построены эквивалентные ДНФ $$D_1=K_1^1 \vee K_1^2\vee \ldots \vee K_1^r$$ и $$D_2=K_2^1 \vee K_2^2\vee \ldots \vee K_2^s$$, соответственно.

    Тогда в случае (а) имеем:

    $$\Phi^\prime \equiv (K_1^1 \vee \ldots \vee K_1^r)\wedge (K_2^1 \vee \ldots \vee K_2^s)\underset{(3)}{\equiv}\\(K_1^1\wedge K_2^1)\vee \ldots \vee (K_1^i\wedge K_2^j)\vee \ldots \vee (K_1^r\wedge K_2^s)$$

    Каждый член $$(K_1^i\wedge K_2^j)$$ этой дизъюнкции представляет собой конъюнкцию переменных и их отрицаний. Применяя эквивалентности групп (1), (2) и (6), можно удалить из нее повторения переменных, после чего она превратится в некоторую элементарную конъюнкцию или константу. Проделав такие преобразования со всеми парами (i,j), 1 <= i <= r, 1 <= j <= s, и удалив, если потребуется, константы 0, мы получим ДНФ, эквивалентную исходной формуле $$\Phi.$$

    В случае (б) формула $$\Phi^\prime \equiv (K_1^1 \vee K_1^2\vee \ldots \vee K_1^r)\vee (K_2^1 \vee K_2^2\vee \ldots \vee K_2^s)$$ сама уже является ДНФ.

  • Используя эквивалентности групп (1), (2) и (6), удалить из получившейся после шага (3) формулы повторные вхождения одинаковых конъюнкций.
  • Пусть после шага (4) получилась ДНФ $$\Phi^{\prime\prime}= K_1 \vee K_2 \vee \ldots \vee K_m$$. Чтобы получить эквивалентную совершенную ДНФ, построим для каждой Ki (i=1,..., m) , эквивалентную совершенную ДНФ (см. задачу 4.5),заменим ею Ki , а затем устраним повторения одинаковых конъюнкций.
  • Из формулировок эквивалентностей (7) и (8) непосредственно вытекает

    Предложение 4.1. На этапе (1) процедуры при последовательном выполнении преобразований (7), а затем - (8), до тех пор, пока ни одно из них не применимо, полученная в результате формула не будет содержать функций $$\to$$ и +.

    Доказательство этого предложения оставляем в виде упражнения (см. задачу 4.7).

    Следующее утверждение гарантирует корректность этапа (2).

    Предложение 4.2. На этапе (2) процедуры при любом порядке выполнения преобразований групп (4) и (5) до тех пор, пока ни одно из них не применимо, в полученной в результате формуле все знаки отрицания будут стоять непосредственно перед переменными.

    Перед доказательством этого утверждения введем некоторые обозначения. Напомним, что в определениях 3.2 и 3.3 для каждой формулы $$\Phi$$ была определена ее глубина $$dep(\Phi )$$. Например, формула $$\Phi =\neg (X+Y)\to (\neg (X \vee \neg Z)\wedge Y)$$, построенная над системой $$F=\{ \vee , \wedge , \neg , \to , +\}$$, имеет глубину $$dep(\Phi )=5$$.

    Пусть $$\Phi$$ - это формула над $$F=\{ \vee , \wedge , \neg \}$$. Определим для каждой ее "отрицательной" подформулы вида $$\neg (\Psi )$$ высоту $$h(\neg (\Psi ))$$ как $$3^{dep(\Psi )}-1$$. И пусть высота всей формулы $$H(\Phi )$$ равна сумме высот всех ее отрицательных подформул. Например, для приведенной выше формулы $$\Phi$$ ее высота равна $$H(\Phi )= h(\neg (X+Y)) +h(\neg (X \vee \neg Z))+ h(\neg Z) = (3^{1}-1) + (3^{2}-1) +(3^{0}-1) = 10$$.

    Доказательство предложения 4.2 проведем индукцией по высоте формул.

    Базис индукции. Если $$H(\Phi )=0$$, то либо в $$\Phi$$ нет отрицаний, либо все отрицания находятся непосредственно перед переменными. Следовательно, $$\Phi$$ удовлетворяет требованию предложения 4.2.

    Шаг индукции. Предположим, что при n <= k для всех формул высоты n Предложение 4.2 выполнено. Пусть $$\Phi$$ - произвольная формула высоты $$H(\Phi )= k+1$$. Докажем наше утверждение для нее. Поскольку $$H(\Phi )\ge 1$$, то $$\Phi$$ содержит хотя бы одну отрицательную подформулу $$\neg (\Psi )$$, у которой $$h(\neg (\Psi ))\ge 1$$ и, следовательно, $$dep(\Psi ) \ge 1$$. К такой формуле обязательно можно применить либо снятие двойного отрицания (4), либо один из законов де Моргана (5). ( Объясните почему.) Пусть $$\neg (\Psi )$$ - это та подформула $$\Phi,$$ которая на (2)-ом этапе процедуры первой заменяется на эквивалентную формулу $$\Psi '$$ в соответствии с одной из указанных эквивалентностей. Пусть $$\Phi '$$ - это формула, получившаяся в результате этой замены из $$\Phi.$$ Нетрудно проверить (проделайте эту проверку!), что при любом из преобразований (4), (5) $$H(\Psi ') < H(\neg (\Psi ))$$ и, следовательно, $$H(\Phi ') < H(\Phi )$$. Тогда $$H(\Phi ')\le k$$ и по предположению индукции применение эквивалентностей (4), (5) в произвольном порядке приведет в конце концов к формуле, у которой все отрицания будут стоять непосредственно перед переменными. Тем самым, предложение 4.2 выполнено при n=k+1, что завершает индукционный шаг и все доказательство.

    Рассмотрим применение процедуры приведения к совершенной ДНФ на примере.

    Пример 4.1. Пусть формула $$\Phi= ((\neg X\vee Z) \rightarrow (Y \rightarrow (X + Z)))$$.

    На (1)-ом этапе процедуры получаем следующую цепочку эквивалентностей:

    $$\Phi \underset{(7)}{\equiv} \neg (\neg X\vee Z) \vee (Y \rightarrow (X + Z))\underset{(7)}{\equiv} \neg (\neg X\vee Z) \vee (\neg Y \vee (X+Z)) \underset{(8)}{\equiv}\\ \neg (\neg X\vee Z) \vee (\neg Y \vee ((X \wedge \neg Z) \vee (\neg X \wedge Z))).$$

    На (2)-ом этапе вносим отрицание внутрь первой скобки и получаем формулу

    $$\Phi^\prime=(\neg \neg X \wedge \neg Z)\vee (\neg Y \vee ((X \wedge \neg Z) \vee (\neg X \wedge Z)))$$

    Устранив двойное отрицание, получим

    $$\Phi^{\prime\prime}=( X \wedge \neg Z)\vee (\neg Y \vee ((X \wedge \neg Z) \vee (\neg X \wedge Z))).$$

    Нетрудно видеть, что это уже ДНФ. Удалим на (4)-ом этапе повторное вхождение первой конънкции и получим ДНФ

    $$\Phi_1=( X \wedge \neg Z)\vee \neg Y \vee(\neg X \wedge Z)$$

    Эта ДНФ не является совершенной, так как в каждую из ее трех конъюнкций входят не все переменные. Построим на этапе (5) для них эквивалентные совершенные ДНФ (используя решение задачи 4.5).

    $$\begin{array}{l} (X \wedge \neg Z)\equiv ( X \wedge Y\wedge \neg Z)\vee ( X \wedge\neg Y \wedge \neg Z),\\ \neg Y \equiv (X\wedge \neg Y \wedge Z)\vee (X\wedge \neg Y \wedge \neg Z)\vee (\neg X\wedge \neg Y \wedge Z)\vee (\neg X\wedge \neg Y \wedge \neg Z),\\ (\neg X \wedge Z) \equiv (\neg X\wedge Y \wedge Z)\vee (\neg X\wedge \neg Y \wedge Z). \end{array}$$

    Подставив эти формулы в $$\Phi _{1}$$ и устранив повторения конъюнкций, получим совершенную ДНФ, эквивалентную исходной формуле $$\Phi:$$

    $$\Phi_2=( X \wedge Y\wedge \neg Z)\vee ( X \wedge\neg Y \wedge \neg Z) \vee (X\wedge \neg Y \wedge Z)\vee \\ (\neg X\wedge \neg Y \wedge Z)\vee (\neg X\wedge \neg Y \wedge \neg Z)\vee (\neg X\wedge Y \wedge Z).$$

    Мы видим, что ДНФ $$\Phi _{1}$$, полученная после 4-го этапа, выглядит существенно проще, т.е. является более короткой, чем совершенная ДНФ $$\Phi _{2}$$. Однако совершенные ДНФ и КНФ обладают важным свойством единственности, которое следует из их конструкции в теореме 4.1.

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

    Это следствие позволяет предложить следующую процедуру для проверки эквивалентности формул $$\Phi$$ и $$\Psi.$$

  • Построить для $$\Phi$$ и $$\Psi$$ эквивалентные совершенные ДНФ $$\Phi '$$ и $$\Psi '$$ используя процедуру приведения к совершенной ДНФ.
  • Упорядочить в соответствии с нумерацией переменных X вхождения переменных в каждую конъюнкцию, а затем лексикографически упорядочить между собой конъюнкции, входящие в $$\Phi '$$ и $$\Psi '$$. Пусть в результате получатся совершенные ДНФ $$\Phi ''$$ и $$\Psi ''$$
  • Если $$\Phi '' = \Psi ''$$, то выдать ответ "Да", иначе - ответ "Нет".
  • Замечание. Аналогичную процедуру можно построить с использованием совершенных КНФ.

    Сокращенные ДНФ

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

    Напомним, что мы рассматриваем булевы функции над переменными $$\mathbf{X}=\{X_1,\ldots, X_n\}$$. С каждой элементарной конъюнкцией $$K=X_{i_1}^{\sigma_1}\wedge X_{i_2}^{\sigma_2}\wedge \ldots \wedge X_{i_k}^{\sigma_k} $$ связано множество $$N_K^+$$ наборов переменных, на которых K принимает значение 1. Нетрудно понять, что это множество содержит 2(n-k) наборов, в которых каждая из входящих в K переменных $$X_{i_r}\ (1 \leq r\leq k)$$ имеет фиксированное значение $$\sigma _{r}$$, а значения остальных (n-k) переменных произвольны.

    Определение Пусть f - произвольная булева функция над $$\mathbf{X}$$. Элементарная конъюнкция K называется допустимой для f, если $$N_K^+ \subseteq N_f^+$$.

    Элементарная конъюнкция K называется максимальной для f, если для любой элементарной конъюнкции L из условия $$N_K^+ \subseteq N_L^+\subseteq N_f^+$$ следует, что $$N_K^+ = N_L^+$$.

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

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

    Примером сокращенной ДНФ является формула $$\Phi_1=( X \wedge \neg Z)\vee \neg Y \vee (\neg X \wedge Z)$$ из примера 4.1.

    Сокращенную ДНФ можно получить из произвольной ДНФ D, используя процедуру, называемую методом Блейка.

  • Применять, сколько возможно, закон поглощения

    (П3): $$(X\wedge K_1) \vee (\neg X \wedge K_2) \equiv (X\wedge K_1) \vee (\neg X \wedge K_2) \vee (K_1\wedge K_2) $$

    слева направо при условии, что конъюнкция $$(K_{1} \wedge K_{2})$$ непротиворечива, т.е. не содержит одновременно некоторую переменную и ее отрицание. (Заметим, что на этом этапе число элементарных конъюнкций в ДНФ, вообще говоря, увеличивается).
  • Применять, сколько возможно, правило поглощения

    (П1): $$X \vee (X\wedge K) \equiv X$$.

    Затем удалить повторные вхождения конъюнкций.
  • Теорема 4.2. В результате применения метода Блейка к произвольной ДНФ через конечное число шагов будет получена эквивалентная ей сокращенная ДНФ.

    Доказательство Пусть после (1)-го этапа процедуры ДНФ D функции f преобразовалась в эквивалентную ДНФ D1 . Покажем, что для всякой допустимой для f элементарной конъюнкция K в D1 найдется такая конъюнкция K', что $$N_K^+ \subseteq N_{K'}^+$$. Доказательство проведем возвратной индукцией по числу переменных в K.

    Базис индукции. Пусть K содержит все n переменных из $$\mathbf{X}$$. Тогда $$N_K^+$$ состоит из единственного набора и, поскольку $$N_K^+ \subseteq N_{D_1}^+$$, то в $$D_1$$ сущетсвует конъюнкция K', для которой $$N_K^+ \subseteq N_{K'}^+$$.

    Шаг индукции. Пусть для некоторого k < n утверждение верно для всех допустимых для f конъюнкций, содержащих не менее (k+1) -ой переменной. Докажем, что оно верно и для допустимых конъюнкций с k переменными.

    Пусть допустимая для f элементарная конъюнкция K содержит k переменных и пусть $$X \in \mathbf{X}$$ - переменная, не входящая в K. Тогда обе элементарные конъюнкции $$K_1=(X \wedge K)$$ и $$K_2=(\neg X \wedge K)$$ являются допустимыми для f и по предположению индукции для них в $$\Phi _{1}$$ найдутся такие $$K_1^{\prime}$$ и $$K_2^{\prime}$$, что $$N_{K_1}^+ \subseteq N_{K_1'}^+$$ и $$N_{K_2}^+ \subseteq N_{K_2'}^+$$. Если хотя бы одна из них не содержит X, то ее можно выбрать в качестве K'. В противном случае, их можно представить в виде $$K_1^{\prime}= (X \wedge K_1^{\prime\prime})$$ и $$K_2^{\prime}= (\neg X \wedge K_2^{\prime\prime})$$. При этом $$N_{K}^+ \subseteq N_{K_1"}^+$$ и $$N_{K}^+ \subseteq N_{K_2"}^+ $$. Поскольку все преобразования вида (П3) выполнены, то D1 тогда содержит и конъюнкцию $$K^{\prime}= (K_1^{\prime\prime}\wedge K_2^{\prime\prime})$$, для которой $$N_{K}^+ \subseteq N_{K'}^+$$.

    Заметим, что если K максимальна для f, то $$N_{K}^+ = N_{K'}^+$$. Таким образом, все максимальные конъюнкции входят в D1 .

    Теперь, чтобы завершить доказательство теоремы, нужно показать, что на этапе (2) из D1 будут удалены все немаксимальные элементарные конъюнкции. (Докажите это индукцией по числу немаксимальных конъюнкций в D1 .)

    Пример 4.2. Применим метод Блейка к совершенной ДНФ функции f(X1,X2,X3) , принимающей значение 1 на наборах множества $$N_f^+=\{(001), (010), (011), (101)\}$$.

    Ее совершенная ДНФ $$D= (\neg X_1\wedge \neg X_2 \wedge X_3)\vee (\neg X_1\wedge X_2 \wedge \neg X_3)\vee (\neg X_1\wedge X_2 \wedge X_3)\vee ( X_1\wedge \neg X_2 \wedge X_3)$$.

    После применения преобразований (П3) на (1)-ом этапе получим

    $$D_1= (\neg X_1\wedge \neg X_2 \wedge X_3)\vee (\neg X_1\wedge X_2 \wedge \neg X_3)\vee (\neg X_1\wedge X_2 \wedge X_3)\vee\\ ( X_1\wedge \neg X_2 \wedge X_3)\vee (\neg X_2\wedge X_3) \vee (\neg X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3)$$

    После поглощений (П1) на втором этапе останется сокращенная ДНФ

    $$D_2=(\neg X_2\wedge X_3) \vee (\neg X_1 \wedge X_2) \vee (\neg X_1 \wedge X_3).$$

    Заметим, что она не является самой короткой ДНФ для f, т.к. $$D_2\equiv (\neg X_2\wedge X_3) \vee (\neg X_1 \wedge X_2) $$.

    Многочлены Жегалкина

    Многочлены Жегалкина являются еще одним интересным подклассом формул, позволяющим однозначно представлять булевы функции.

    Определение 4.4. Многочленами Жегалкина назваются формулы над множеством функций FJ={ 0, 1, *, +} (здесь * - это другое обозначение конъюнкции).

    Таким образом, каждый многочлен Жегалкина (возможно, после раскрытия скобок и "приведения" подобных членов) представляет сумму (по модулю 2) положительных (монотонных) элементарных конъюнкций (т.е. элементарных конъюнкций без отрицаний). Поскольку для + и * справедливы законы ассоциативности, мы будем при записи многочлена Жегалкина опускать скобки, считая, что * связывает аргументы сильнее, чем +

    Нетрудно проверить, что справедливы следующие эквивалентности:

    $$\begin{array}{lrcl} (J1) \neg X \equiv (X+ 1),\\ (J2) (X_1 \wedge X_2) \equiv (X_1*X_2),\\ (J3) (X_1 \vee X_2) \equiv (X_1*X_2 + X_1 +X_2),\\ (J4) (X_1 + X_2)*(X_3 + X_4) \equiv (X_1*X_2 + X_1*X_3 + X_2*X_3 + X_2*X_4) . \end{array}$$

    Из этих эквивалентностей и теоремы 4.1 легко получить первую часть следующего утверждения.

    Теорема 4.3. Для любой булевой функции существует задающий ее многочлен Жегалкина. Он единственен с точностью до перестановок слагаемых и порядка переменных в конъюнкциях.

    Доказательство Существование такого многочлена следует из того, что для любой ДНФ или КНФ можно с помощью указанных эквивалентностей найти эквивалентный многочлен Жегалкина: (J1)-(J3) позволяют заменять все вхождения $$\neg , \wedge$$ и $$\vee$$ на + и *, а (J4) - перемножать получившиеся после такой замены многочлены.

    Для доказательства единственности представления подсчитаем число различных многочленов Жегалкина от $$n$$ переменных. Каждая положительная элементарная конъюнкция имеет вид Xi1 * ... * Xik , где 1 <= i1 < ... < ik <= n . Таких конъюнкций столько же, сколько подмножеств множества $$\mathbf{X}=\{X_1,\ldots, X_n\}$$, т.е. 2n . (Конъюнкция, соответствующая пустому подмножеству переменных равна 1). Упорядочим их произвольным образом (например, лексикографически): $$K_1, K_2,\ldots, K_{2^n}$$. Tогда каждый многочлен Жегалкина единственным образом можно представить как сумму

    $$\alpha_1 * K_1 + \alpha_2 * K_2 +\ldots +\alpha_{2^n} *K_{2^n},$$

    где каждый из коэффициентов $$\alpha _{i}$$ равен 0 или 1. Следовательно, число многочленов Жегалкина равно $$2^{2^n}$$, т.е. числу всех булевых функций от n переменных. Поэтому каждая функция задается в точности одним многочленом Жегалкина.

    Пример 4.3. Пусть функция f(X1,X2,X3) задается ДНФ $$\Phi= (X_1\wedge \neg X_2) \vee (\neg X_1\wedge X_2 \wedge \neg X_3)$$. Найдем полином Жегалкина, который также задает эту функцию.

    Сначала заменяем $$\wedge$$ на *, а затем,применяя эквивалентность (J1), устраняем отрицания и получаем:

    $$\Phi \equiv X_1 * (X_2+1) \vee (X_1+1)* X_2 *(X_3+1).$$

    Перемножив по правилам (J4), получим:

    $$\Phi \equiv (X_1*X_2+X_1) \vee (X_1* X_2 *X_3 + X_1*X_2 + X_2*X_3+ X_2)$$

    Эквивалентность (J3) позволяет устранить $$\vee:$$

    $$\Phi \equiv (X_1*X_2+X_1) *(X_1* X_2 *X_3 + X_1*X_2 +\\+ X_2*X_3+X_2)+ (X_1*X_2+X_1) + \\+(X_1* X_2 *X_3 + X_1*X_2 + X_2*X_3+X_2).$$

    Снова, используя (J4), перемножим первые две скобки и устраним повторения переменных в конъюнкциях:

    $$\Phi \equiv (X_1* X_2 *X_3 + X_1*X_2 +X_1*X_2*X_3+\\+X_1* X_2 *X_3 +X_1*X_2 +X_1* X_2 *X_3 +X_1*X_2 +X_1*X_2 )+\\+ (X_1*X_2+X_1) + (X_1* X_2 *X_3 + X_1*X_2 + X_2*X_3+X_2).$$

    Упростим эту сумму, используя эквивалентности: $$X + X \equiv 0$$ и $$X + 0 \equiv X$$. В результате получим многочлен Жегалкина

    $$P(X_1,X_2,X_3)= X_1 +X_2+ X_2*X_3 + X_1*X_2*X_3$$

    эквивалентный исходной ДНФ $$\Phi.$$

    Если функция f(X1, ..., Xn) задана таблично, то для построения реализующего ее многочлена Жегалкина можно применить метод неопределенных коэфициентов. Сопоставим i -ому набору значений переменных $$\sigma_i=(\sigma_i^1, \ldots, \sigma_i^n)$$ в таблице положительную конъюнкцию $$K_i=\bigwedge_{\sigma_i^j=1} X_j$$ переменных, равных 1 в этом наборе. В частности, K1 - пустая конъюнкция, K2 = Xn, K3 = Xn-1, K4 = (Xn * Xn-1). и т.д. Тогда для получения нужного многочлена Жегалкина достаточно определить все коэффициенты $$\alpha _{i},\ i = 1, \dots , 2^{n}$$, в выражении

    $$f(X_1, \ldots, X_n)=\alpha_1 * K_1 + \alpha_2 * K_2 +\ldots +\alpha_{2^n} *K_{2^n},$$

    Подставляя в это равенство значения переменных из набора $$\sigma _{i},\ i = 1, \dots , 2^{n}$$, мы получим 2n линейных уравнений относительно 2n неизвестных коэффициентов $$\alpha _{i}$$. Решив эту систему, получим требуемый многочлен Жегалкина. Эта система треугольная и легко решается "сверху-вниз": каждое $$\alpha _{i}$$ определяется по значениям $$\alpha _{1}, \dots , \alpha _{i-1}$$ из уравнения, соответствующего набору $$\sigma _{i}$$.

    Пример 4.4. Рассмотрим в качестве примера функцию f(X1, ..., Xn), заданную следующей таблицей.

    Функция f(X1, X2, X3)
    X1 X2 X3 f(X1, X2, X3)
    0 0 0 1
    0 0 1 0
    0 1 0 0
    0 1 1 0
    1 0 0 1
    1 0 1 0
    1 1 0 0
    1 1. 1 1

    Многочлен Жегалкина для нее (как и для любой функции от 3-х переменных) представляется в виде

    $$p(X_1, X_2, X_3)=\alpha_0 + \alpha_1 * X_1 +\alpha_2*X_2 +\alpha_3 * X_3 + \alpha_{12} *X_1*X_2 +\\+ \alpha_{13}*X_1*X_3 +\alpha_{23}*X_2*X_3 + \alpha_{123}*X_1*X_2*X_3$$

    В этом представлении в индексах у коэффициентов $$\alpha$$ перечислены переменные, входящие в соответствующие конъюнкции.

    Последовательно подставляя значения переменных и f из таблицы, получаем:

    $$\begin{array}{l} p(0,0,0)=\alpha_0=1;\\ p(0,0,1)=\alpha_0 + \alpha_3=0\ \Rightarrow \alpha_3 = 1;\\ p(0,1,0)=\alpha_0 +\alpha_2=0 \ \Rightarrow \alpha_2 = 1;\\ p(0,1,1)=\alpha_0 +\alpha_2 + \alpha_3+ \alpha_{23}=0 \ \Rightarrow \alpha_{23} = 1;\\ p(1,0,0)=\alpha_0 +\alpha_1=1 \ \Rightarrow \alpha_1 = 0;\\ p(1,0,1)=\alpha_0 +\alpha_1 + \alpha_3+ \alpha_{13}=0 \ \Rightarrow \alpha_{13} = 0;\\ p(1,1,0)=\alpha_0 +\alpha_1 + \alpha_2+ \alpha_{12}=0 \ \Rightarrow \alpha_{12} = 0;\\ p(1,1,1)=\alpha_0 +\alpha_1 + \alpha_2+ \alpha_3+\alpha_{12}+\alpha_{13}+\alpha_{23} +\alpha_{123}=1 \ \Rightarrow \alpha_{123} = 1.\\ \end{array}$$

    Следовательно, функция f(X1, X2, X3) представляется многочленом Жегалкина

    $$p_f(X_1, X_2, X_3)=1 + X_3 +X_2 +X_2*X_3 +X_1*X_2*X_3.$$

    Задачи

    Задача 4.1. Проверьте все приведенные в лекции 4 эквивалентности (1) - (8), непосредственно вычисляя функции, представляемые их левыми и правыми частями.

    Задача 4.2. Назовем логическим произведением формулу вида $$\Phi_1 \wedge \Phi_2 \wedge \ldots \wedge \Phi_n$$ (в этом выражении использованы соглашения о сокращении записи!). Ее подформулы $$\Phi_i, 1 \leq i \leq n$$, , будем называть сомножителями. Аналогично, логической суммой назовем формулу вида $$\Phi_1 \vee \Phi_2 \vee \ldots \vee \Phi_n.$$ Ее подформулы $$\Phi_i, 1 \leq i \leq n$$,, будем называть слагаемыми.

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

  • Если в логическом произведении один из сомножителей равен 0, то и все произведение равно 0.
  • Если в логической сумме одно из слагаемых равно 1, то и вся сумма равна 1.
  • Если в логическом произведении n >= 2 и есть сомножитель, равный 1, то его можно вычеркнуть.
  • Если в логической сумме n >= 2 и есть слагаемое, равное 0, то его можно вычеркнуть.
  • Задача 4.3. Используя основные тождества, доказать эквивалентность следующих пар формул.

  • $$\neg (X \vee \neg Y)\wedge (X \to \neg Y)$$ и $$(\neg X \wedge Y);$$
  • $$\neg [(X \wedge \neg Y) \to (\neg X \vee Z)]$$ и $$(X \wedge \neg Y \wedge \neg Z)$$ ;
  • $$(X + Y)\to (X \wedge \neg Y)$$ и $$(\neg X \wedge \neg Y) \vee X$$.
  • Задача 4.4. Докажите теорему 4.1, проверив, что для любого набора значений аргументов $$\sigma_1, \ldots , \sigma_n$$ выполнены равенства $$f( \sigma_1, \ldots , \sigma_n) = \mathcal{D}_f( \sigma_1, \ldots , \sigma_n)$$ и $$f( \sigma_1, \ldots , \sigma_n) = \mathcal{C}_f( \sigma_1, \ldots , \sigma_n) $$.

    Задача 4.5.

  • Предложите процедуру, которая по произвольной элементарной конъюнкции строит эквивалентную ей совершенную ДНФ.
  • Предложите процедуру, которая по произвольной элементарной дизъюнкции строит эквивалентную ей совершенную КНФ.
  • Задача 4.6. Докажите, что для любого k <= n каждую булеву функцию $$f \in \mathcal{P}_n$$ можно представить в виде

    $$f(X_1, \ldots, X_k, X_{k+1}, \ldots , X_n) = \\ \bigvee_{(\sigma_1, \ldots, \sigma_k)\in B^k} X_1^{\sigma_1} \wedge \ldots X_k^{\sigma_k} \wedge f(\sigma_1, \ldots, \sigma_k, X_{k+1}, \ldots , X_n)$$

    Такое представление называется разложением $$f$$ по $$X_1, \ldots, X_k$$. При k=n из него получается совершенная ДНФ из теоремы

    Задача 4.7. Докажите предложение 4.1, используя индукцию по общему количеству функций $$\to$$ и + в формуле.

    Задача 4.8. Как изменить (3)-ий, (4)-ый и (5)-ый этапы процедуры "Приведение к совершенной ДНФ ", чтобы в результате получить процедуру "Приведение к совершенной КНФ ", которая по произвольной формуле строит эквивалентную совершенную КНФ.

    Задача 4.9. Найти эквивалентные сокращенные ДНФ и доказать эквивалентность следующих пар формул:

  • $$\Phi = ( ((\neg X \wedge \neg Y) \to \neg Z)\wedge ( X\to Y)), \Psi = ((1+ Y) \to (\neg X\wedge (1+ Z)))$$.
  • $$\Phi = (\neg ((X_{1} \to X_{2}) \vee \neg ( X_{2} \to X_{1}))\wedge X_{3}), \Psi = \neg ( (X_{1} \wedge X_{3}) \to X_{2})$$.
  • $$\Phi = \neg (\neg X \wedge Y \wedge \neg Z) \to ((Y+1)\wedge ((X+1)\to \neg (\neg U \vee \neg Z))),\Psi = (\neg X \vee Y) \to ((\neg U \vee Y \vee Z) \to (\neg (X \vee \neg Y) \wedge \neg Z))$$.
  • Задача 4.10. Используя основные эквивалентности, найти эквивалентные многочлены Жегалкина и доказать эквивалентность следующих формул:

    $$\Phi= ( ( Z \wedge(X \rightarrow Y) )\vee \neg (\neg X \rightarrow Z)),\ \ \ \Psi = (X \rightarrow ( Y\wedge Z ))$$

    Задача 4.11. Найти сокращенную дизъюнктивную нормальную форму и многочлен Жегалкина (методом неопределенных коэффициентов) для следующих функций от трех аргументов. Считаем, что наборы их аргументов упорядочены лексикографически и значения на них задаются последовательностью 8 нулей и единиц.

  • f=(0010 1100)
  • f=(1110 1100)
  • f=(1100 0011)
  • f=(0110 1011)
  • Вернуться к учебному плану