Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

METOD_12

.pdf
Скачиваний:
16
Добавлен:
21.05.2015
Размер:
206.87 Кб
Скачать

13

Для упрощения преобразований полезно использовать формулы поглощения и склеивания:

u uv = u, uv uv = u.

(4.14)

В приведенных ниже примерах при проведении эквивалентных преобразований над знаком равенства записываются номера используемых формул.

Пример

1. Для функции f(x, y, z) = (x y) → x|z построим днф

и кнф:

 

 

 

 

 

 

 

 

(x y)

→ x| z

(4:5)

 

(4:8)

 

 

(4:6)

(4:6)

= x y x| z = x y x

z = (x ↔ y) x

z =

= x y xy x z = xy x z.

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

xy x z = (x x z)(y x

(4:13)

z) = x y z.

Пример 2. Для функции f(x, y, z) = x z ↔ xy построим днф и кнф:

 

(4:6)

 

 

 

 

 

(4:9;4:12)

 

(4:13)

 

 

 

 

 

 

 

x z ↔ xy = x z xy x z

xy

=

x z xy (x z)(x

y) =

= (x z)(x y).

Полученное выражение представляет собой конъюнкцию различных элементарных дизъюнкций x y и x z и потому является конъюнктивной нормальной формой рассматриваемой функции.

Заметим, что для каждой булевой функции существует не одна дизъюнктивная и не одна конъюнктивная нормальные формы. Производя разными способами дистрибутивные операции, мы можем прийти к различным нормальным формам. Пусть, например, функция φ(x, y, z) задается формулой x yz . Эта формула представляет собой днф. Однако её можно привести дистрибутивными операциями и к другой нормальной форме. Применив второй дистрибутивный закон, получим кнф

K = (x y)(x z).

Применив к этой формуле первый дистрибутивный закон, получим

D = x yx xz yz.

Эта формула также является днф функции φ(x, y, z) . Конечно, различные нормальные формы различны лишь по виду. Все они реализуют одну и ту же функцию. В случае произвольной булевой функции f(x1, x2, . . . , xn) её нормальные формы на наборе (α1, α2, . . . , αn)

14

принимают одно и то же значение, равное f(α1, α2, . . . , αn) . В следующем параграфе мы выделим среди нормальных форм так называемые совершенные нормальные формы: дизъюнктивную и конъюнктивную.

 

 

Упражнения

 

 

 

4.1. По

данному

набору

(α1, α2, . . . , αn)

значений

переменных

x1, x2, . . . , xn построить элементарную

конъюнкцию,

истинную

только для этого набора значений.

 

 

 

4.2. По

данному

набору (α1, α2, . . . , αn)

значений

переменных

x1, x2, . . . , xn

построить

элементарную

дизъюнкцию,

ложную

только для этого набора значений переменных.

 

 

4.3.С помощью эквивалентных преобразований привести к днф формулы:

1)(x yz)(x z) ;

2)((x1 x2x3x4)(x2 x4) → x1x3x4) (x1 x4) ;

3)(x ↓ z) (y → z) xy ;

4)(x1x2 → x3x4)|(x1 → x3) ;

5)(x (x ↔ y)) → x y .

4.4.С помощью эквивалентных преобразований привести к кнф формулы:

1)x → yz ;

2)((x1x2 x3) → x4) → x1 ;

3)((x1| x2) → x3) ↔ x1x4 ;

4)((xyz ↔ (y z))y) ↓ x ;

5)¬ (x ↔ yz) (x (y → z)) .

4.5.Пусть X1, . . . , Xm, U1, . . . , Un – произвольные формулы алгебры ло-

гики. Доказать следующие эквивалентности:

1)

X1X2 . . . Xm U1U2 . . . Un = i=1;:::;m j=1;:::;n

(Xi Uj) ;

2)

(X1 X2 . . . Xm) (U1 U2 . . . Un) = i=1;:::;m j=1;:::;n XiUj .

4.6. С помощью второго дистрибутивного закона преобразовать днф в кнф:

1) xy yz xz ;

15

2)xyz xyz xyz ;

3)x1x2 x2x3 x4x3 x2 .

§5. Совершенные нормальные формы

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

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

f(x1, x2, . . . , xn) = x1 1 x2 2 . . . xnn . (5.1)

f( 1; 2;:::; n)=1

Вдальнейшем для сокращения записи формул знак конъюнкции в (5.1) будем опускать.

Дизъюнктивная нормальная форма (5.1) называется совершенной (сднф). Как следует из (5.1) совершенная нормальная форма отличается от обычной днф тем, что каждое её слагаемое содержит либо переменную xi , либо её отрицание xi для всех i = 1, . . . , n .

На основании представления (5.1) сформулируем следующий алгоритм построения сднф, основанный на применении таблиц истинности:

построить таблицу истинности функции f ;

в таблице выделить наборы, на которых функция f принимает значение 1;

каждому такому набору (α1, α2 . . . , αn) поставить в соответствие элементарную конъюнкцию

x 1 x 2

. . . x n ,

(5.2)

1 2

n

 

которая только на этом наборе принимает значение 1;

найденные элементарные конъюнкции объединить знаком дизъюнкции, – полученная формула является совершенной дизъюнктивной нормальной формой функции f .

16

Для тех функций, которые заданы в виде формул, сднф можно также построить используя равенства (4.5)-(4.11) предыдущего параграфа. При этом если какая-либо элементарная конъюнкция K в полученной днф не будет содержать переменную xl , её нужно заменить на две элементарные конъюнкции

K = Kxl Kxl.

(5.3)

Этот процесс нужно продолжать до тех пор пока все элементарные конъюнкции будут содержать все переменные xi или их отрицания xi . После этого удалить лишние элементарные конъюнкции, оставив из нескольких одинаковых одну:

u u = u.

(5.4)

Теорема 2. Для каждой булевой функции отличной от тождественной 1, существует и единственно (с точностью до порядка сомножителей) следующее представление в виде конъюнктивной нормальной формы

f(x1, x2, . . . , xn) =

 

 

x1 1 x2 2 . . . xnn .

(5.5)

;:::; )=0

(

)

 

f( 1; 2

n

 

Конъюнктивная нормальная форма (5.5) называется совершенной (скнф).

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

построить таблицу истинности функции f ;

в таблице выделить наборы, на которых функция f принимает значение 0;

каждому такому набору (α1, α2, . . . , αn) поставить в соответствие элементарную дизъюнкцию

x1 1 x2 2 . . . xnn ,

(5.6)

которая только на этом наборе принимает значение 0;

найденные элементарные дизъюнкции объединить знаком конъюнкции, – полученная формула, согласно теореме 2, является совершенной конъюнктивной нормальной формой функции f .

Совершенная конъюнктивная нормальная форма отличается от обычной кнф тем, что каждый её сомножитель содержит переменную xi или её отрицание xi для всех i = 1, . . . , n . Этот факт дает возможность сформулировать ещё один алгоритм построения скнф (его применяют в случае, когда функция f задана формулой):

17

построить кнф функции f ;

если какой либо сомножитель D кнф не содержит переменной xl его нужно заменить двумя:

D = (D xl)(D xl);

(5.7)

этот процесс продолжать до тех пор пока все сомножители не будут содержать все переменные xi или их отрицание xi, i = 1, . . . , n ;

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

u u = u.

(5.8)

Полученный кнф будет совершенной.

Рассмотрим пример построения сднф и скнф двумя способами. Пусть f(x, y, z) = (x yz)| (y → zx) .

Построим таблицу истинности.

x

y

z

yz

x yz

zx

y → zx

x yz)| (y → zx)

0

0

0

0

0

0

1

1

0

0

1

0

0

0

1

1

0

1

0

0

0

0

0

1

0

1

1

1

1

0

0

1

1

0

0

0

1

0

1

0

1

0

1

0

1

1

1

0

1

1

0

0

1

0

0

1

1

1

1

1

0

1

1

1

Выделим наборы, на которых f(x, y, z) принимает значение 1: (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,1,0), (1,1,1); этим наборам соответствуют элементарные конъюнкции xyz, xyz, xyz, xyz, xyz, xyz , объединив которые знаком дизъюнкции, получим

xyz xyz xyz xyz xyz xyz − сднф.

Для построения скнф выделим наборы на которых функция f(x, y, z) принимает значение 0: (1,0,0), (1,0,1). Им соответствуют элементарные дизъюнкции, которые только на этих наборах принимают значение 0: x y z, x y z . Объединив их знаком конъюнкции, мы получим скнф, реализующую данную функцию f :

f = (x y z)(x y z).

18

Применим теперь для построения сднф и скнф метод эквивалентных преобразований

(x yz)| (y → zx) = ¬ (x yz) ¬ (y → zx) = (x ↔ yz) ¬ (y zx) = = xyz x yz yzx = xyz x(y z) y(z x) = xyz xy xz yz yx =

мы получили дизъюнктивную нормальную форму; продолжим преобразования, используя (5.3)-(5.4)

= xyz xyz xyz xyz xyz xyz xyz xyz xyz = = xyz xyz xyz xyz xyz xyz − сднф.

Построим скнф

xyz x yz yzx = x yz (xyz yzx) = x(y z) y(xz xz) = x(y z) y =

 

 

 

 

 

 

= (x y)(y z y) = x y − кнф;

на основании (5.6) имеем

 

 

 

 

 

 

 

 

 

 

 

 

f = x y = (x y z)(x y z) скнф.

 

Пример

2.

Построить

сднф и

скнф,

реализующих функцию

(x yz) (xy → z) .

 

 

 

 

 

 

 

 

 

 

Построим таблицу истинности.

 

 

 

 

 

 

 

 

x

y

z

y

z

yz

x yz

xy

xy → z

(x yz) (xy → z)

 

 

0

0

0

1

 

1

 

0

 

0

 

0

 

1

 

0

 

 

0

0

1

1

 

0

 

1

 

1

 

0

 

1

 

0

 

 

0

1

0

0

 

1

 

0

 

0

 

0

 

1

 

0

 

 

0

1

1

0

 

0

 

0

 

0

 

0

 

1

 

0

 

 

1

0

0

1

 

1

 

0

 

1

 

0

 

1

 

0

 

 

1

0

1

1

 

0

 

1

 

1

 

0

 

1

 

0

 

 

1

1

0

0

 

1

 

0

 

1

 

1

 

1

 

0

 

 

1

1

1

0

 

0

 

0

 

1

 

1

 

0

 

0

 

Исследуемая функция является противоречием, так как на всех наборах принимает значение 0. Она не имеет реализующей её сднф, а скнф состоит из восьми сомножителей и имеет следующий вид

f = (x y z)(x y z)(x y z)(x y z)(x y z)(x y z)(x y z)(x y z).

Методом эквивалентных преобразований скнф для тождественно ложной функции можно получить используя (5.7) следующем образом:

0 = x x = (x y)(x y)(x y)(x y) =

= (x y z)(x y z)(x y z)(x y z)(x y z)(x y z)(x y z)(x y z).

19

Задачи и упражнения

5.1. Построить сднф и скнф для следующих функций (для функций, заданных формулами, предварительно построить таблицы истинности):

а) (x y) → yz ;

б) f = (01101100) ;

в) ((x → y) ↔ z)| xyz ;

г) f = (0100110000110010) ;

д) (x → y)(x y)(x ↔ y)(y| x) ;

е) (x y) (z x) ;

ж) (x| z) (yz) ;

и) (x ↔ z) (x → y) ;

к) (xy → z) x ;

л) ¬ (xyz) (x|y) ;

м) (x → z) (x y) ;

н) x ↔ (x yz) .

5.2. Преобразовать заданные днф в совершенные:

а) xy yz xy ;

б) x1 x2x3 x1x2x4 ;

в) x xyz xy ;

г) xy xyz y xy ;

д) x1x2 x2x3 x3x1 .

5.3. Преобразовать заданные кнф в совершенные:

а) (x y)(z y)z ;

б) (u v)(u v w)(u v) ;

в) (x1 x2)(x2 x3)(x3 x4) ;

г) (x y)(x z)y ;

д) (x1 x2)(x1 x3 x4) .

5.4. Построить сднф и скнф следующих функций при помощи эквивалентных преобразований:

а) ((x → y) z) (x (y → z)) ;

20

б) (x1 x2) (x3 x4) ;

в) ((x z) → y) ((x| y) y) ;

г) (y ↔ z)(z ↔ x)(x y) ;

д) (x1| x2) (x3| x4) .

5.5.Построить формулу функции от трех переменных, которая принимает значение 1 в том и только в том случае, когда равно две переменные равны нулю.

5.6.Построить формулу функции от трех переменных, которая принимает такое же значение, как и большинство (или меньшинство) переменных.

5.7.Доказать, что функция от n переменных f(x1, x2, . . . , xn) = 1 тогда

итолько тогда, когда её сднф содержит 2n попарно не эквивалентных элементарных конъюнкций.

5.8.Доказать, что функция от n переменных f(x1, x2, . . . , xn) = 0 тогда

итолько тогда, когда её скнф содержит 2n попарно не эквивалентных элементарных дизъюнкций.

5.9.По скнф формулы U построить

а) сднф двойственной формулы U ;

б) скнф формулы ;

U

в) сднф формулы .

U

5.10. По сднф формулы U и сднф формулы V построить

а) скнф и сднф формулы U V ;

б) скнф и сднф формулы U V ;

в) скнф и сднф формулы U → V .

5.11. Найти длину совершенной днф функции f(x1, x2, . . . , xn) :

а) f(x1, x2, . . . , xn) = x1 x2 . . . xn ;

б)

f(x1, x2, . . . , xn) = (x1 x2 . . . xn)(x1 x2 . . . xn) ;

в)

f(x1, x2, . . . , xn) = (x1 x2 x3)(x1 x2 x3) x4 x5 . . . xn .

21

§6. Полином Жегалкина

Определение. Пусть x1, x2, . . . , xn – булевы переменные. Монотонной конъюнкцией, составленной из переменных x1, x2, . . . , xn , называется элементарная конъюнкция вида

KM = xi1 xi2 . . . xir ,

(6.1)

где {i1, i2, . . . , ir} {1, 2, . . . , n}, число r – ранг монотонной конъюнкции.

Из определения следует, что число монотонных конъюнкций, состав-

ленных из переменных x1, x2, . . . , xn , равно числу подмножеств множества {1, 2, . . . , n}, а именно 22n .

При n = 3 мы имеем следующие монотонные конъюнкции, составленные из переменных x, y, z : 1; x; y; z; xy; xz; yz; xyz .

Определение. Полиномом Жегалкина (ПЖ) от переменных x1, x2, . . . , xn называется сумма по модулю 2 различных монотонных конъюнкций, составленных из этих переменных:

P (x1, x2, . . . , xn) = KM1 KM2 . . . KMl ,

(6.2)

где 0 ≤ l ≤ 22n .

Наибольший из рангов элементарных конъюнкций, входящих в полином Жегалкина, называется его степенью.

В случае 3-х переменных имеем:

P (x, y, z) = a0 a1x a2y a3z a12xy a13xz a23yz a123xyz, (6.3)

здесь a0, a1, a2, a3, a12, a13, a23, a123 – коэффициенты полинома P (x, y, z) , каждый из которых принимает одно из двух значений 0 или 1.

В случае n -переменных x1, x2, . . . , xn полином P (x1, x2, . . . , xn) может быть записан в виде

{

}

 

 

P (x1, x2, . . . , xn) =

 

ai1 i2 ::: is xi1 xi2 . . . xis ,

(6.4)

i1;i2;:::;is {1;2;:::;n}

где ai1 i2 ::: is {0, 1} – коэффициенты полинома Жегалкина.

Каждый полином Жегалкина однозначно задается набором своих

коэффициентов

 

(a0, a1, a12, a13, a23, a123, . . . , ai1 i2 ::: is , . . . , a12:::n).

(6.5)

Длина этого набора равна 2n , состоит он из нулей и единиц. Отсюда сле-

n 2n

дует, что число полиномов Жегалкина от n переменных равно A2 = 2 и совпадает с числом булевых функций от n переменных.

22

Теорема. Для каждой булевой функции существует и единственно до порядка слагаемых её представление в виде полинома Жегалкина

{

}

 

f(x1, x2, . . . , xn) =

 

ai1 i2 ::: is xi1 xi2 . . . xis .

i1;i2;:::;is {1;2;:::;n}

Алгоритм построения ПЖ методом неопределенных коэффициентов.

построить таблицу истинности данной функции f ;

записать общий вид полинома Жегалкина (см. (6.3));

– исходя из

того, что данная функция и

её ПЖ принима-

ют одинаковые значения на всевозможных наборах перемен-

ных, в них входящих, составим систему уравнений для коэф-

фициентов

a0, a1, a2, . . . , a12:::n . В случае трех переменных имеем:

 

a0

= f(0, 0, 0)

 

a0 a1 = f(1, 0, 0)

 

a0 a2 = f(0, 1, 0)

 

a0 a3 = f(0, 0, 1)

 

a0 a1 a2 a12 = f(1, 1, 0)

 

a0 a1 a3 a13

= f(1, 0, 1)

 

a0 a2 a3 a23

= f(0, 1, 1)

a0 a1 a2 a3 a12 a13 a23 a123

=

f(1, 1, 1)

Решаем

эту систему "сверху

вниз";

найденные коэффициенты

a0, a1, a2, . . . , a123 подставляем в

формулу

(6.3) и

получаем

ПЖ за-

данной функции f .

 

 

 

 

 

 

Алгоритм построения ПЖ методом эквивалентных преобразований.

 

Этот

метод применяется

в том

случае,

когда

функция

 

f(x1, x2, . . . , xn) задана в виде формулы алгебры логики.

 

 

предварительно выразим данную функцию через , , ¬ при помощи равносильностей (4.5)-(4.11);

выразим через и ¬:

x y = x y;

в полученном выражении проведем преобразования, выразив операцию ¬ через :

u = u 1;

– раскроем скобки в полученном выражении:

w(u v) = wu wv;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]