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

Лекция дискрет 13

.pdf
Скачиваний:
6
Добавлен:
11.03.2016
Размер:
1.64 Mб
Скачать

w

x

y

z

 

f(w,x,y,z)

 

f (w, x , y, z) =

 

 

 

 

 

 

 

= ( w & x & y & z)

0

1

0

1

 

1

 

0

1

1

0

 

1

 

( w & x & y & z)

0

1

1

1

 

1

 

( w & x & y & z)

1

0

0

1

 

1

 

(w & x & y & z)

1

0

1

0

 

1

 

(w & x & y & z)

 

 

 

 

 

 

 

(w & x & y & z)

1

0

1

1

 

1

 

1

1

0

1

 

1

 

(w & x & y & z)

 

 

 

 

 

 

 

(w & x & y & z)

1

1

1

0

 

1

 

1

1

1

1

 

1

 

(w & x & y & z)

 

 

 

 

 

 

 

 

Приведение к СДНФ функции, представленной формулой 1) Приводим к булевскому виду:

(A)

(F)

f(x,y,z) = (((¬x y) ¬z) y) & ¬x =

= ((((¬x y)&(x ¬y)) ¬z) y) & ¬x =

(3.2.8)

=(¬((¬x y)&(x ¬y)) ¬z y) & ¬x =

2)С помощью (3.2.6) и (3.2.8) отрицания – до переменных:

(3.2.8) (3.2.8)

= (¬ (¬x y) ¬(x ¬y) ¬z y) & ¬x =

(3.2.6) (3.2.6)

= ((¬ ¬x&¬y) (¬x&¬¬y) ¬z y) & ¬x =

3) Раскрытие скобок:

= ((x&¬y&¬x) (¬x&y&¬x) (¬z&¬x) (y&¬x) = (¬x&y) (¬z&¬x) (y&¬x)= (¬x & y) (¬x & ¬z) =

4) Полученная ДНФ «расщеплением» - (3.3.1а) и (3.3.2) в обратную сторону - приводится к СДНФ:

(¬x&y) (¬x&¬z) =

=(¬x&y&z) (¬x&y&¬z) (¬x&y&¬z) (¬x&¬y&¬z) =

=(¬x&y&z) (¬x&y&¬z) (¬x&¬y&¬z)

Th.3.3.1 Для любых двух эквивалентных формул F1 и F2 существует эквивалентное преобразование F1 в F2, при этом достаточно использовать соотношения (3.2.1) – (3.2.10)

Доказательство Th.3.3.1

1)Преобразуем F1 и F2 в СДНФ. Так как F1 F2, их СДНФ совпадают как СДНФ одной и той же функции.

2)Проведя преобразование F2 к СДНФ в обратную сторону,

получаем цепочку F1 СДНФ F2, в которой использованы только исходные соотношения (3.2.1) – (3.2.10) и полученные из них «полезные соотношения» (3.3.1) – (3.3.5).

Доказано Th.3.3.1

f (x1, x2, … , xm, xm+1, … , xn) =

 

 

 

5) Построение СКНФ

 

 

 

 

 

 

 

=

& (x1α1

xmαm f (α1, … , αm, xm+1, … , xn)) ()

 

α1...αm

 

 

 

 

 

 

 

 

 

 

В равенстве () положим m = n:

 

 

 

(▲▲▲)

 

 

 

) = &

 

 

 

 

 

 

 

f (x

, … , x

 

 

σ1

 

 

σn)

 

 

 

 

 

(x

x

 

 

1

n

 

f(σ1,…,σn) = 0

1

 

 

n

 

 

 

 

 

 

 

 

 

 

 

Здесь: конъюнкция берётся по всем наборам значений переменных (σ1,…,σn), для которых выполнено f(σ1,…,σn) = 0

Равенство (▼▼▼) совершенная конъюнктивная нормальная форма (СКНФ) функции f (x1, … , xn)

Из (▼▼▼) очевидно: не имеет СКНФ единственная функция – та, для которой f (x1, … , xn) 1, т.е. константа 1

(напоминание - из § 3.1)

Пример построения СКНФ для

f (w, x, y, z) = (w x) & (y z)

f (x

, … , x

) =

&

(x σ1

… x

 

σn)

 

 

(▲▲▲)

 

1

 

 

n

 

f(σ1,…,σn) = 0

1

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

x

y

z

f(w,x,y,z)

 

 

w

x

y

z

f(w,x,y,z)

0

0

0

0

0

 

 

1

 

0

0

0

0

0

0

0

1

0

 

 

1

 

0

0

1

1

0

0

1

0

0

 

 

1

 

0

1

0

1

0

0

1

1

0

 

 

1

 

0

1

1

1

0

1

0

0

0

 

 

1

 

1

0

0

0

0

1

0

1

1

 

 

1

 

1

0

1

1

0

1

1

0

1

 

 

1

 

1

1

0

1

0

1

1

1

1

 

 

1

 

1

1

1

1

w

x

y

z

 

f(w,x,y,z)

 

f (w, x , y, z) =

 

 

 

 

 

= (w x y z) &

0 0 0

0

 

0

 

 

 

 

 

 

 

 

& (w x y z) &

0

0

0

1

 

0

 

0

0

1

0

 

0

 

& (w x y z) &

 

 

 

 

 

 

 

& (w x y z) &

0

0

1

1

 

0

 

 

 

 

 

 

 

 

& (w x y z) &

0

1

0

0

 

0

 

 

 

 

 

 

 

 

& ( w x y z) &

1

0

0

0

 

0

 

1

1

0

0

 

0

 

& ( w x y z)

 

 

 

 

 

 

 

 

Приведение к СКНФ функции, представленной формулой

Функция f представлена

 

Функция, представленная

 

формулой F, которая

 

формулой ¬F (если это не

приведена к СДНФ:

 

Const=0), также имеет СДНФ:

h = k1 k2 … km

 

g = q1 q2 … qn

 

 

 

F = ¬¬F = ¬(¬F) = ¬g = ¬(q1 q2 … qn) =

=¬(q1 (q2 … qn)) = ¬q1 & ¬(q2 … qn) =

=¬q1 & ¬(q2 (q3 … qn)) = ¬q1 & ¬q2 & ¬(q3 … qn) =

…………………………..

=¬q1 & ¬q2 & … & ¬qn-2 & ¬(qn-1 qn) =

=¬q1 & ¬q2 & … & ¬qn-2 & ¬qn-1 & ¬qn

Пример

Привести к СКНФ f(x,y,z) = ¬((¬x & y) (¬x & ¬z))

1)Приводим к СДНФ ¬f(x,y,z) = ¬¬((¬x & y) (¬x & ¬z)) =

=(¬x & y) (¬x & ¬z) = …

= (¬x&y&z) (¬x&y&¬z) (¬x&¬y&¬z)

2)Берём отрицание полученной CДНФ и приводим к

КНФ, затем с помощью (3.3.1b) в обратную строну – к

СКНФ: ¬((¬x&y&z) (¬x&y&¬z) (¬x&¬y&¬z)) =

=¬(¬x&y&z) & ¬(¬x&y&¬z) & ¬(¬x&¬y&¬z) = … … = (x ¬y ¬z) & (x ¬y z) & (x y &z)

Четыре студентки – Алла, Бэлла, Валя и Галя – посещают университет по очереди и ведут общий конспект. Необходимо составить на следующую неделю график посещения, учитывая, что:

1.В понедельник – стипендия, пойдут все. Зато в субботу

– день курсового проектирования, никто не пойдёт

2.Валя и Галя не смогут пойти на занятия во вторник

3.Если Валя пойдёт в среду или Галя в четверг, то Бэлла готова сходить на занятия в пятницу

4.Если Алла не пойдёт в четверг, то Бэлла согласна посетить университет в среду

5.Если Алла или Галя будут на занятиях в среду, то Валя сможет пойти в пятницу

6.Если Галя в пятницу вместо занятий пойдёт на свадьбу сестры, то Алле придётся пойти в университет во вторник, а Вале – в четверг

Взадаче использованы 24 переменных утверждения вида «Студентка Х посетила занятия в k-ый день недели»:

Xk XА, Б, В, Г}, k 1, 2, 3, 4, 5, 6}

1.В понедельник – стипендия, пойдут все. Зато в субботу – день курсового проектирования, никто не пойдёт

2.Валя и Галя не смогут пойти на занятия во вторник

3.Если Валя пойдёт в среду или Галя в четверг, то Бэлла готова сходить на занятия в пятницу

4.Если Алла не пойдёт в четверг, то Бэлла согласна посетить университет в среду

A1 & Б1 & В1 & Г1

¬A6 & ¬Б6 & ¬В6 & ¬Г6

или ¬ (A6 Б6 В6 Г6)

¬В2 & ¬Г2

3 Г4) Б5

¬A4 Б3