ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.04.2021

Просмотров: 1351

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

33

§12.

Полнота и замкнутые классы. Критерий Поста

Система (множество булевых функций) называется полной в Б , ес-

ли её замыкание совпадает с множеством всех булевых функций.

Система булевых функций называется базисом, если она полна и

любая её подсистема не является полной в Б .

Теорема (критерий Поста).

Для того, чтобы система булевых

функций

F

=

{

f

1

, f

2

, . . .

}

была полной в Б , необходимо и достаточно,

чтобы она целиком не содержалась ни в одном из замкнутых классов

T

0

, T

1

, S, M, L

.

Задача 1.

Дана булева функция

f

. Исследовать её принадлеж-

ность каждому из классов

T

0

, T

1

, S, M, L

.

Алгоритм решения задачи о принадлежности функции

f

классам

T

0

, T

1

, S, M, L

:

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

f

;

– если значение функции в первой строке таблицы равно 0

(

f

(0

,

0

, . . . ,

0) = 0

), то

f

T

0

, иначе

f

/ T

0

;

– если значение функции в последней строке таблицы равно 1

(

f

(1

,

1

, . . . ,

1) = 1

), то

f

T

1

, иначе

f

/ T

1

;

– если

в

таблице

истинности

можно

указать

пару

проти-

воположных

наборов

(

α

1

, α

2

, . . . , α

n

)

и

( ¯

α

1

,

¯

α

2

, . . . ,

¯

α

n

)

,

на

которых

функция

f

принимает

одинаковые

значения

(

f

(

α

1

, α

2

, . . . , α

n

) =

f

( ¯

α

1

,

¯

α

2

, . . . ,

¯

α

n

)

), то

f

/ S

, иначе

f

S

;

– если в таблице истинности можно указать наборы

(

α

1

, α

2

, . . . , α

n

)

и

(

β

1

, β

2

, . . . , β

n

)

, такие, что

α

1

β

1

, α

2

β

2

, . . . , α

n

β

n

и

f

(

α

1

, α

2

, . . . , α

n

) = 1

, f

(

β

1

, β

2

, . . . , β

n

) = 0

, то

f

/ M

, иначе

f

M

;

– для проверки принадлежности функции

f

классу

L

нужно по-

строить её полином Жегалкина; если степень ПЖ не превосходит 1
(

a

12

=

a

13

=

. . .

=

a

12

...n

=0

), то

f

L

, иначе

f

/ L

.

Задача 2.

Дана система булевых функций

F

=

{

f

1

, f

2

, . . .

}

. Иссле-

довать полноту этой системы функций и, если она полна, выделить из
неё базис.

Алгоритм исследования полноты системы булевых функций:

– построить таблицу, число строк в которой равно числу функций в

F

, а число столбцов равно 5 по числу основных замкнутых классов;


background image

34

– проверить принадлежность функции

f

1

классу

T

0

и поставить на

пересечении соответствующих

f

1

и

T

0

строки и столбца знак "

+

",

если

f

1

T

0

, и знак "

", если

f

1

/ T

0

;

– если на предыдущем шаге в результате исследования получен знак

"

+

", то продолжить исследование по "вертикали"проверить при-

надлежность функции

f

2

классу

T

0

и т.д., если же на предыдущем

шаге получен знак "

", то продолжать исследования по горизон-

тали – проверить принадлежность функции

f

1

классу

T

1

и т.д.;

– исследование заканчивается, если выполнено одно из двух условий:

1) в каждом столбе таблицы стоит по крайней мере один знак "

",

либо 2) в одном из столбцов таблицы стоят знаки "

+

".

В первом случае система функций

F

целиком не содержится ни в

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

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

чить по числу функций множество подсистем системы

F

:

{

f

1

}

,

{

f

2

}

, . . . ,

{

f

1

, f

2

}

, . . .

(12

.

1)

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

Пример 1.

Для функции

f

= (

x

¯

y

)

(

x

z

)

определить её

принадлежность каждому из классов

T

0

, T

1

, S, M, L

.

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

x y z

¯

y x

¯

y x

z

(

x

¯

y

)

(

x

z

)

0

0 0 1

0

0

1

0

0 1 1

0

1

1

0

1 0 0

0

0

1

0

1 1 0

0

1

1

1

0 0 1

1

1

1

1

0 1 1

1

0

0

1

1 0 0

0

1

1

1

1 1 0

0

0

1

Из анализа построенной таблицы следует:

f

/ T

0

,

так как

f

(0

,

0

,

0) = 1;

f

T

1

,

так как

f

(1

,

1

,

1) = 1;


background image

35

f

/ S,

так как

f

(1

,

1

,

0) =

f

(0

,

0

,

1);

f

/ M,

так как

f

(0

,

0

,

0) = 1

, f

(1

,

0

,

1) = 0

.

Для определения принадлежности функции

f

классу

L

, построим

ПЖ. Система уравнений для неопределенных коэффициентов имеет вид:

a

0

=

1

a

0

a

3

=

1

a

0

a

2

=

1

a

0

a

1

=

1

a

0

a

2

a

3

a

23

=

1

a

0

a

1

a

2

a

12

=

1

a

0

a

1

a

3

a

13

=

0

a

0

a

1

a

2

a

3

a

12

a

13

a

23

a

123

= 1,

откуда находим:

a

1

=

a

2

=

a

3

=

a

12

=

a

23

= 0

, a

0

=

a

13

=

a

123

= 1

;

ПЖ

=

xyz

xz

1

. Следовательно,

f

/ L

.

Пример 2.

Исследовать полноту системы функций

F

=

{

¯

x

y

;

x

yz

;

y

¯

x

}

и, если она полна, выделить базис.

В соответствии с сформулированным выше алгоритмом решение со-

стоит из следующих шагов:

f

1

(0

,

0) = ¯

0

0 = 1

,

f

1

/ T

0

;

f

1

(1

,

1) = ¯

1

1 = 1

,

f

1

T

1

;

f

2

(1

,

1) = 1

1 = 1

,

f

2

T

1

;

f

3

(1

,

1) = 1

¯

1 = 0

,

f

3

/ T

1

.

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

f

3

:

x y

¯

x y

¯

x

0

0

1

1

0

1

1

1

1

0

0

1

1

1

0

0

Из таблицы следует

f

3

(0

,

1) =

f

3

(1

,

0)

, поэтому функция

f

3

/ S

.

Далее

f

3

(0

,

0) = 1

,

f

3

(1

,

1) = 0

, поэтому функция

f

3

/ M

.

Построим полином Жегалкина для функции

f

3

:

f

3

(

x, y

) =

y

¯

x

= ¯

y

¯

x

= (

x

y

) =

xy

1 =

ПЖ

,

откуда следует

f

3

/ L

, так как степень полинома Жегалкина равна 2.

По результатам исследований построим таблицу


background image

36

Классы функций

T

0

T

1

S

M

L

f

1

= ¯

x

y

+

f

2

=

x

yz

+

f

3

=

y

¯

x

− − − −

В каждом столбце таблицы стоит знак "

", откуда следует, что

данная система является полной. Каждая из функций

f

1

и

f

2

и обе

они вместе не могут быть базисом в Б , так как принадлежат классу

T

1

.

Функция

f

3

является базисом, так как в дополнение к проделанному

анализу

f

3

(0

,

0) = 1

и

f

3

/ T

0

.

Ответ:

система

F

полная; функция

{

f

3

}

является базисом на мно-

жестве всех булевых функций.

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

12.1.

Исследовать принадлежность функции

f

классам

T

0

, T

1

, S, M, L

.

а)

f

= (

x

y

)

z

;

б)

f

= (

x

|

y

)

(

x

z

)

;

в)

f

=

¬

(

x

y

)

z

;

г)

f

= (

xy

¯

z

)

x

;

д)

f

= (

xyz

x

)

|

z

;

е)

f

= (

x

y

¯

z

)

¯

x

;

ж)

f

= (

x

y

)

zy

.

12.2.

Исследовать полноту системы булевых функций

F

и, если она

полна, построить базис:

а)

F

=

{

(

x

y

)

¯

z

;

x

y

; ¯

xyz

}

;

б)

F

=

{

xy

¯

z

;

x

y

z

; ¯

xy

}

;

в)

F

=

{

x

(

y

z

); ¯

x

yz

;

xy

}

;

г)

F

=

{

(

x

|

y

)

z

;

x

y

z

);

x

y

}

;

д)

F

=

{

(

x

z

)

¯

y

; (

x

y

)

¯

z

;

x

y

}

;

е)

F

=

{

¯

x

(

y

z

); (

x

|

y

)

|

¯

x

; ¯

x

¯

y

}

;

ж)

F

=

{

xy

¯

z

;

xy

z

1; 1

}

.


background image

37

§13. Построение минимальных и кратчайших дизъюнктивных

нормальных форм

1.

Постановка задачи.

Сднф, которая строится по таблице ис-

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

f

(

x, y, z

)

, заданной набором своих значений

(01101110)

, сднф

= ¯

x

¯

yz

∨ ∨

¯

xy

¯

z

x

¯

y

¯

z

x

¯

yz

xy

¯

z

; после элементарных

преобразований получаем днф

= ¯

y

¯

z

x

¯

y

¯

yz

. Если в первой из формул

мы имеем 15 литералов и 5 элементарных конъюнкций, то во второй – 6
литералов и 3 элементарных конъюнкции.

С целью уточнения проблемы минимизации и формулировки алго-

ритмов е¨

е решения введем следующие определения.

Определение

1.

Переменная

x

i

, i

=

1

, . . . , n

, называется

фиктивной переменной булевой функции

f

(

x

1

, x

2

, . . . , x

n

)

, если значе-

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

x

1

, x

2

, . . . , x

i

1

, x

i

+1

, . . . , x

n

имеем

f

(

x

1

, x

2

, , x

i

1

,

1

, x

i

+1

, . . . , x

n

) =

f

(

x

1

, x

2

, . . . , x

i

1

,

1

, x

i

+1

, . . . , x

n

)

.

Wеременная

x

i

, которая не является фиктивной для функции

f

,

называется существенной переменной данной функции; в этом случае
говорят, что функция

f

существенно зависит от переменной

x

i

.

Определение 2.

Булеву функцию

g

называют импликантой бу-

левой функции

f

, если для любых наборов

(

α

6

, α

2

, . . . , α

n

)

E

n

значений переменных, от которых зависят эти функциy, из равенства

g

(

α

1

, α

2

, . . . , α

n

) = 1

следует равенство

f

(

α

1

, α

2

, . . . , α

n

) = 1

, другими

словами,

N

g

N

f

(см. стр. 5 настоящего пособия).

Если сднф реализует функцию

f

, то любая е¨

е элементарная конъ-

юнкция будет импликантой

f

. Следует отметить, что если

g

1

и

g

2

им-

пликанты

f

, то их дизъюнкция также является импликантой

f

. Дей-

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

N

g

1

N

f

и

N

g

2

N

f

, то

N

g

1

g

2

N

f

. Последнее

означает, что функция

g

0

g

2

– импликанта

f

.

Определение 3.

Днф называется минимальной, если она содержит

наименьшее число литералов среди всех днф, реализующих функцию

f

.

Отметим, что число литералов в днф равно сумме рангов всех е¨

е

элементарных конъюнкций.

Пример 1.

Днф

xyz

x

¯

yz

xy

¯

z

x

¯

y

¯

z

не является минимальной,

так как е¨

е можно преобразовать к эквивалентной днф, не содержащей