Тверской государственный университет
Опубликован: 21.08.2007 | Доступ: свободный | Студентов: 3170 / 268 | Оценка: 4.08 / 3.92 | Длительность: 15:40:00
ISBN: 978-5-9556-0110-6
Специальности: Программист, Математик
Лекция 4:

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

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >

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

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

Определение 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), заданную следующей таблицей.

Таблица 4.1. Функция 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,, будем называть слагаемыми.

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

  1. Если в логическом произведении один из сомножителей равен 0, то и все произведение равно 0.
  2. Если в логической сумме одно из слагаемых равно 1, то и вся сумма равна 1.
  3. Если в логическом произведении n >= 2 и есть сомножитель, равный 1, то его можно вычеркнуть.
  4. Если в логической сумме 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.

  1. Предложите процедуру, которая по произвольной элементарной конъюнкции строит эквивалентную ей совершенную ДНФ.
  2. Предложите процедуру, которая по произвольной элементарной дизъюнкции строит эквивалентную ей совершенную КНФ.

Задача 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)
< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Елена Алексеевская
Елена Алексеевская

Это в лекции 3.

Татьяна Дембелова
Татьяна Дембелова

Почему в вводной лекции курса Основы дискретной математики одним из свойств отношения частичного порядка упоминается антирефлексивность? Посмотрела в других источниках, там -0  рефлексивность... http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B0