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

Уч.пособие-по-ОДМ-2012

.pdf
Скачиваний:
54
Добавлен:
10.05.2015
Размер:
2.36 Mб
Скачать

Это означает, что существует хотя бы один набор αe = (α1, . . . , αn) та-

кой, что f(α1, . . . , αn) ≠ f(α1, . . . , αn) f(α1, . . . , αn) = f(α1, . . . , αn).

В наборе αe = (α1, . . . , αn), αi {0, 1} заменим все αi = 1 на x1 = x, а все αi = 0 - на x0 = x.

Полученная функция одной переменной φ(x) = f(x 1 , . . . , x n ) является константой.

Проверим это. Так как x = x α 1, то

{0 = 0 α 1 = α 1 = α 1 = 1 α 1 = α 0 = α

φ(0) = f(0 1 , . . . , 0 n ) = f(α1, . . . , αn) = f(α1, . . . , α.n) =

= f(1 1 , . . . , 1 n ) = φ(1).

Так как φ(0) = φ(1), то φ(x) ≡ const.

В

.

 

Пример 7.8. Получить из функций

см. алгоритмБарашев3).

e

б)

e

а) f1 = (0011 0111);

f2 = (0110 0110)

 

константу каким-либо способом .

 

С

 

Решение.

 

 

 

 

а) Несамодвойственность функции f1 = (0011 0111) установлена в

примере 7.6, п. а) .

 

Унучек0 0 1 0

наборов, на которой

Найдем хотя бы одну пару противоположныхe

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

x1

x2

x3

 

f1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

1

 

1

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

 

0

 

МИРЭА

1

0

1

1

 

 

 

 

 

 

1

1

0

1

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

121

Такой парой наборов являются наборы (010) и (101): f1(0, 1, 0) = f1(1, 0, 1) = 1. Значение функции на этих наборах равно 1, поэтому по лемме S мы можем получить только константу 1.

Из пары противоположных наборов α1 = (010) и α2 = (101) выбираем тот, в котором количество единиц больше, то есть набор α2 = (101).

Все единицы в этом наборе заменяем e

 

 

e

 

 

 

 

 

e

Получаем набор γ = (x,

 

 

 

 

 

 

 

 

 

 

 

x, x).

 

 

 

 

 

Найденная функция одной переменной - искомая функция "тожде-

ственная единица": φ(x) = f1(x,

x, x) 1. Докажем это.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так как

φ(0) = f1(0, 0, 0) = f1(0, 1, 0) = 1

, то таблица истинности

 

 

 

 

 

 

 

 

 

 

 

 

 

φ(1) = f1(1, 1, 1) = f1(1, 0, 1) = 1

 

 

 

 

 

 

.

 

 

x

φ(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

полученной функции φ(x) совпадаетПс таблицей

 

 

 

 

 

0

 

1

 

 

 

 

 

истинности функции f(x)

1, то есть φ(x)

1.

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

.

 

 

 

б) f2 = (0110 0110) / S - см. пример 7.7, п. а) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В

 

 

 

 

 

Не обязательно противоположные наборы искать по таблице ис-

тинности.e

Просмотр вектора значений функции дает тот же результат:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

f

= (0110 0110).

С

 

 

 

 

 

 

 

 

 

 

 

 

 

e2

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

на функцию x, все нули - на x.

Барашев СамодвойственностьУнучекнарушается на паре крайних наборов (000) и

(111), так как f2(0, 0, 0) = fМИРЭА2(1, 1, 1) = 0.

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

большего количества единиц, то есть на наборе α2 = (111). Опять

заменим

 

 

 

x,

 

нули - на

x, получим набор γ = (x, x, x).

 

все единицы на

 

все

 

φ(0) = f2(0, 0, 0)e= 0

.

φ(x) = f2(x, x, x)

0, так как

φ(1) = f2(1, 1, 1) = 0

 

 

 

 

 

 

 

Замечание 7.7. Самодвойственность функции f2 нарушается на всех парах противоположных наборов.

Пример 7.9. Выразить из функции fe = (1100 1101 0011 1101) константу всеми возможными способами.

Решение.

122

Проверим, что f / S, применяя второй алгоритм определения самодвойственности функции:

(1 1 0 0 1 1 0 1 | 0 0 1 1 1 1 0 1)

←−−−−−−−−−−

(1 0 1 1 1 1 0 0)

(1 0 1 1

1 1 0 0)

(0 1 0 0

0 0 1 1)

(1 1 0 0 1 1 0 1) ̸≡(0 1 0 0 0 0 1 1) f / S.

Самодвойственность нарушена, можно применять лемму S. Для

удобства изображения отметим на рисунке только те наборы, на которых нарушается самодвойственность.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

f = (1100 1101 0011 1101)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так как по условию задачи нужно выразить константу.всеми воз-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В

 

 

 

 

 

 

 

 

 

 

 

 

можными способами, то берем все 8 наборов, на которых нарушается

самодвойственность:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

f(0000) = f(1111) = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f(0100) = f(1011) = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f(0101) = f(1010) = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f(0110) = f(1001) = 0

 

 

 

 

 

 

 

 

 

 

 

 

α1 = (0000)

γ1 = (

 

 

 

 

 

 

 

 

φ1(x) = f(

 

 

 

 

 

 

 

 

 

x, x, x, x)

x, x, x, x) 1

α2 = (1111)

γ2 = (x, x, x, x)

φ2(x) = f(x, x, x, x) 1

α

 

γ

 

 

 

 

 

 

 

 

φ

 

x

 

f

 

 

 

 

 

 

)

 

= (0100)

x, x, x, x

)

 

3

) =

x, x, x, x

1

e3

e3

= (

 

 

 

 

 

 

 

 

 

 

 

(

(

 

 

 

 

 

 

 

 

α

 

γ x,

 

 

 

 

 

φ

 

x

 

f x,

 

 

)

 

= (1011)

x, x, x

)

 

4

) =

x, x, x

1

e4

e4

= (

 

 

 

 

 

 

 

 

 

 

 

(

(

 

 

 

 

 

 

 

 

 

Барашев

 

 

 

 

 

 

 

 

 

 

 

 

 

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α

= (0101)

γ x, x, x, x

)

 

 

φ

5

x

) =

f x, x, x, x

1

e5

e5

= (

 

 

 

 

 

 

 

 

 

 

 

(

(

 

 

 

 

 

 

 

 

α

 

γ x,

 

 

 

 

 

 

φ

 

x

 

f x,

 

 

 

)

 

= (1010)

x, x, x

)

 

2

) =

x, x, x

1

e6

e6

= (

 

 

 

 

 

 

 

 

 

 

 

(

(

 

 

 

 

 

 

 

 

α

 

γ

 

 

 

 

 

 

φ

 

x

 

f

 

 

 

)

 

= (0110)

x, x, x, x

)

 

7

) =

x, x, x, x

0

e7

e7

= (

 

 

 

 

 

 

 

 

 

 

 

(

(

 

 

 

 

 

 

 

 

α

 

Унучекγ x, x, x, x φ

x

 

f x, x, x, x

 

 

 

e8

= (1001)

e8

= (

 

 

 

 

 

 

 

 

 

)

 

 

 

8

(

) =

(

 

 

 

 

 

 

 

 

)

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

e

МИРЭА

 

 

e

 

e

 

 

 

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

123

7.4Класс M монотонных функций

Определение 7.7. Для наборов α = (α1, . . . , αn) и β = (β1, . . . , βn)

 

e

 

 

 

 

 

 

 

 

 

α1

6 β1

 

 

 

e

предшествует

выполнено отношение предшествования (набор e

 

β

 

 

 

 

 

 

 

неравенства

 

 

 

α

 

 

 

 

набору

 

), если выполнены

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α2 6 β2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

αn 6 βn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П

 

 

 

 

Операция предшествования

обозначается следующим образом:

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α 4 β.

 

 

 

 

 

 

 

 

 

 

0

6

0

 

 

 

 

e

 

e

 

 

 

В

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Например,

α

 

 

 

 

 

, β

 

(1010111).

 

 

 

 

 

 

 

 

 

 

 

= (1010001)

 

 

=

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Барашев

 

 

 

 

 

 

 

 

 

 

 

 

1

6

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

С

 

 

 

 

 

 

 

 

 

 

6

 

 

e

 

 

e

 

 

 

 

 

 

 

 

 

 

 

Так как

0 6 1

то

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0 ,

 

α

 

 

β.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

6

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Унучекни отношение β α (так как β1 = 1 > 0 = α1).

α2 = 1 > 0 = βe2),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

МИРЭА

 

e

 

e

Замечание 7.8. Очевидно, что если

e

4 e

e 4

e

то

4

α

γ,

α

γ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

β,

β

 

 

 

Замечание 7.9. Не любые пары наборов находятся в отношении пред-

шествования.

 

e

 

 

 

 

 

ни

 

4

 

 

Например, α = (010), β = (101).

e

 

e

 

Не выполнено

 

4

 

(так как

 

отношение предшествования

α

 

β

e e

Замечание 7.10. Следование в таблице истинности является необходимым, но не достаточным условием предшествования наборов.

Подтверждением этому является пример из замечания 7.9. Набор αe

e e e

расположен в таблице истинности раньше набора β, но α β.

124

Определение 7.8. Функция f(x) называется монотонной, если для

e

 

6

 

 

e

e

4

e

любых наборов α = (α1

, . . . , αn)

и β = (β1

, . . . , βn) таких, что α

β

 

e

 

e(

e

 

 

 

 

выполнено неравенство f(α)

 

)

.

 

 

 

 

 

 

f

 

β

 

 

 

Замечание 7.11. Очевидно, что функции одной переменной 0, 1, x являются монотонными, а f(x) = x - немонотонная функция, так как

(0) 4 (1), но f(0) = 1 > 0 = f(1).

 

 

.

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

 

 

П

7.4.1 Алгоритм 1 определения монотонности булевой функ-

ции

.

В

 

 

 

1.Находим носитель функции Nf = e Bn | f(σe) = 1}.

2.Для каждого набора σ из носителя находим соответствующий ему класс монотонности, в который помещаем все наборы длины n, которым предшествует набор σ :

σNf 7→M = e Bn | σe 4 αe}.

3.Проверяем, является ли класс монотонности M подмножеством носителя. Если да, алгоритм продолжаем (переход к пункту 2).

4.Если для всех классов M выполнено условие M Nf , то функция f(xe) монотонна (f(xe) M).

Как только встречается набор αe такой, что σe 4 α,e но f(αe) / Nf ,

алгоритм прекращает свою работу. Функция f(xe) немонотонна, так как не выполняется определение монотонной функции:УнучекМИРЭА .

σe 4 α,e

но

f(σe) = 1 > 0 = f(αe) .

| {z } | {z }

т.к.e Nf т.к.e=Nf

Пример 7.10. Являются ли функции

125

а) fe1 = (0011 0111)

б) fe2 = (1010 1010)

в) fe3 = (0101 1011)

монотонными?

Решение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

 

 

f1

= (0011 0111)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выпишем наборы, на которых значение функции равно 1:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nf1 = {(010), (011), (101), (110), (111).}.

 

 

 

 

 

 

 

2. Рассмотрим набор σ1 = (010) Nf1 .

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M

 

 

,

,

 

,

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

σ1 7→e 1

= {(010) (011) (110) (111)}

 

 

 

 

 

 

 

 

 

 

В класс

M

 

поместим все наборы, которым предшествует.

набор

 

 

1

e

 

 

 

 

 

В3

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Так

Барашевкак все наборы из класса M 1 принадлежат носителю, про-

 

e

 

= (010),

 

 

 

 

 

1e

 

,

 

4

 

 

 

0

 

α1

 

σ

1

то есть все наборы

α

B

для

которых выполняются

 

 

 

 

 

 

 

 

 

 

 

 

e

= (010)

 

e

 

 

 

 

 

 

 

 

1

6

α2

 

отношения предшествования σ

 

 

α = (α , α , α ).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С

 

 

 

 

 

 

0 6 α3

 

Это значит, что должны выполняться неравенства

 

 

 

 

6 .

 

 

 

 

 

 

 

 

 

Унучек

 

 

 

 

1

{0, 1}

 

 

 

Аналогично,

 

 

 

 

 

 

 

 

 

 

 

α2

 

 

 

 

e МИРЭА1

 

 

 

1

 

 

 

 

 

 

Очевидно, что неравенства будут верны для

 

α

 

 

 

 

1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α3

{0,}1

}

 

 

 

Все

 

 

 

 

 

 

α,

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

возможные наборы

e

которые

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

числены в классе M 1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

должаем работу алгоритма.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. Возьмем следующий набор носителя σ2 = (011).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

σ2 7→M 2 = {(011)e, (111)}.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

e

 

 

 

 

0 6 β

 

 

 

β

 

 

{0, 1}

 

 

 

σ2

= (011) 4

β = (β1, β2, β3)

 

 

1 6 β2

 

 

β2 = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 6 β3

 

β3 = 1

 

 

126

5. M 2 Nf1 , значит, берем следующий набор носителя σe3 = (101). σe3 7→M 3 = {(101), (111)} Nf1 .

6. Аналогично e4 =

σ4

7→M 4 = {(110), (111)} Nf1 .

 

 

 

 

 

 

 

 

σ

 

(110);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7. Последний набор eносителя σ5 = (111).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

σ5 7→M e5 = {(111)} Nf1 .

 

 

 

 

8. Так как все классыeмонотонности M

 

Nf1

, то f1(x)

M (функ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П

 

 

 

 

 

ция f1 монотонна).

 

 

 

 

 

 

 

 

 

 

 

.e

 

 

б) f2 = (1010 1010)

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

1.

e

 

 

 

 

Nf2 =

{

(000), (010), (100), (110) .

 

.все наборы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

2.

Возьмем

набор

σ

 

=

(000)

 

N

 

 

 

и

найдем

 

 

1

2

 

3

 

1

 

 

 

 

Вf2

 

 

 

 

 

 

 

 

 

 

Барашев

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α = (α , α , α ), которым предшествует набор σ :

 

 

 

 

 

 

1

 

 

4

 

 

e

 

 

 

 

 

 

0

6

α1

1

 

α1

0, 1

 

 

e

 

 

 

e

 

1 2

3

 

1

 

 

 

6

 

 

2

2 { }

 

 

σ

 

= (000)

 

α = (α , α , α )

 

 

 

0

 

 

α

 

e

 

α

0, 1

,

 

e

 

 

0 6 α3

 

 

{0, 1}

 

 

 

 

 

 

 

 

 

 

 

 

α3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{ }

 

 

то есть в класс монотонности M

 

попадают все возможные дво-

 

ичные наборы длины 3:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M 1 = B3 = {(000), (001), (010), (011), (100), (101), (110), (111)}.

3.Набор αe1 = (001) M 1 , но αe1 = (001) / Nf2 , значит, функция f2 немонотонна, поскольку σe1 = (000) 4 αe1 = (001),

при этом f2(000) = 1 > 0 = f2(001).

в)

1.e2 = (0101

NfУнучек3 = (001), (011), (100), (110), (111) .

 

f

1011)

МИРЭА

 

 

 

 

{

}

2.σe1 = (001) 7→M 1 = {(001), (011), (101), (111)}.

3.

e

 

 

 

 

 

 

 

1

 

4

1

но

σ1

= (001)

 

Nf3

 

 

 

 

f3(001) = 1,

 

α1

= (101) /

Nf3

 

f3(101)

= 0, определение монотон-

 

 

 

 

 

 

 

 

e

 

e

= (101),

 

 

ной функции не выполнено: σ

 

= (001)

α

 

 

но

f

(001) > f

(101)

 

f

3

/ M.

 

 

 

 

 

e

3

 

3

 

 

 

 

 

 

 

 

 

127

Замечание 7.12. Количество наборов в классе монотонности M равно 2k, где k - количество нулей в наборе σ.

Замечание 7.13. Классу монотонности, соответствующему набору

из всех нулей, принадлежатn

все двоичные наборы σ

Bn,

то есть

σ = (0, 0, . . . , 0)

7→M = B

(так как набор σ = (0, 0, . . . , 0) предше-

ствует всем булевым наборам длины n).

 

векторе значений функции

e

Вывод 1:

Если

f(0, 0, . . . , 0) = 1

и в

 

 

 

 

 

 

 

e

 

 

 

 

есть хоть один ноль, то функция f(x) немонотонна.

 

 

 

 

Монотонность нарушается, по

крайней

мере,

на

паре

наборов

σ = (0, 0, . . . , 0)

 

 

α

 

 

что f(α) = 0.

П

 

 

 

 

 

и наборе

 

таком,

e

 

 

 

.

.

 

Замечаниеe

7.14. Набор,e

 

 

 

 

 

 

 

 

 

состоящий изeвсех единиц, принадлежит

 

 

 

 

 

 

 

 

 

 

В

 

 

 

 

классам монотонности всех двоичных наборов, поскольку все булевы

наборы предшествуют набору из всех единиц.

 

 

 

 

 

Вывод 2: Если f(1, 1, . . . , 1) = 0 и в векторе значений.функции

 

Барашев

 

немонотонна.

 

 

есть хоть одна единица, то функция f(x)

 

 

e

Монотонность нарушается, по

крайней

мере,

на

паре

наборов

σ = (1, 1, . . . , 1)

и наборе

α

таком, что fe(α) = 1.

 

7.4.2 Алгоритм 2 определения монотонности булевой функции

1.Делим вектор значений функции f(xe) = (α0α1 . . . α2n1) на две

равные части. Получаем два набора αe0 = (α0α1 . . . α2n−11) и

αe1 = (α2n−1 α2n−1+1 . . . α2n1).

2.Если отношение предшествования αe0 4 αe1 для полученных векторов αe0 и αe1 не выполнено, то функция не является монотонной.

3.В противном случае каждый из векторов αei0 , i0 {0, 1} делим на две равные части; получаем наборы αei0i1 , i0 {0, 1}, i1 {0, 1}, длина которых равна половине длины наборов αei0 , и проверяем, выполнено ли отношение предшествования у полученных пар векторов αei00 4 αei01; i0 {0, 1}.

Если не выполнено хотя бы одно из отношений αei00 4 αei01, то функция не принадлежит классу монотонных функций.УнучекМИРЭА

128

4. Иначе опять делим двоичные векторы пополам и

так да-

лее. Алгоритм прекращает свою работу в двух

случаях:

либо для полученных наборов не выполнено отношение

предшествования

(f(x)

/ M), либо длина всех

векторов

e

 

 

 

 

 

 

= 0, . . . , n − 1 равна 1. Если отношение

αi0i1:::in−1 , ik {0, 1}, k

предшествования

выполняется для всех пар наборов (включая

e

 

 

 

 

наборы единичной длины), функция монотонна.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

Пример 7.11. Исследовать функции из примера 7.10 на монотонность

Решение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

f1

= (0011 0111)

 

 

 

 

 

 

 

В

 

 

 

 

.

 

Делим вектор значений функции пополам:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α0 = (0011), α1 = (0111).

 

А

 

 

 

 

Барашев

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

2. Так как

(0011)

4

(0111) (покоординатно выполнено неравенство

 

 

 

e

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

αi0 6 αi1 ), то делим наборы α0 и α1 пополам.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

= (00)

 

 

 

 

 

 

 

 

3.

 

 

 

α0 = (0011)

 

α

 

 

; (00) 4 (11)

 

 

 

 

 

e

00

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7→{ α01

= (11)

 

С

 

 

 

 

 

 

 

 

 

e Унучекα010 = (1)

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

e

 

= (01)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α10

 

; (01) 4 (11)

 

 

 

 

 

α1 = (0111)

 

e

 

= (11)

 

 

 

 

 

 

α10

= (01)

 

7→{ α11

 

 

 

 

 

 

 

 

 

Так

 

 

МИРЭАe ; (0) 4 (1)

 

0, 1 отно-

 

 

 

как

e

 

 

 

 

 

 

e

 

 

i0i1

 

 

 

0

{

 

}

 

1

{

}

 

шение предшествования выполняется, делим наборы длины 2 еще

 

раз пополам.

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

4. Получаем 8 наборов длины 1:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α00 = (00) 7→{

e

 

= (0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α000

 

;

(0) 4 (0)

 

 

 

 

 

 

 

α001 = (0)

 

 

 

 

 

 

 

 

α01

= (11)

 

 

e

 

 

 

 

 

;

(1) 4 (1)

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

7→{ α011 = (1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7→{

e

 

= (0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

α101 = (1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

= (1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α110

 

 

 

(1) 4 (1)

 

 

 

 

 

 

 

e

= (11)

 

 

e

 

 

 

 

 

;

 

 

 

 

 

 

 

α11

7→{

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α111 = (1)

 

 

 

 

 

 

 

 

 

 

129

 

Так

 

как

 

 

 

для

 

 

всех

 

 

 

пар

 

 

векторов

 

αi0i1i2 ,

i0 {0, 1}, i1

{0, 1}, i2 {0, 1} отношение пред-

 

шествования выполнено, функция f

 

монотонна.

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

f

 

 

1010)

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

б)

1. e2

= (1010 α0 = (1010), α1 = (1010);

 

 

(1010) 4 (1010)

 

 

 

 

 

 

 

 

 

 

 

e

e

 

= (10)

 

 

 

 

 

 

 

 

 

 

2.

 

 

α

= (1010)

α00

;

(10) 4 (10)

 

 

 

 

 

e0

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

7→{ α01 = (10)

 

(10) 4.(10)

 

 

 

 

 

 

 

 

 

 

 

e

 

= (10)

 

 

 

 

 

 

 

 

 

 

 

 

α10

;

 

 

 

 

 

 

α1 = (1010)

 

e

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

7→{ α11 = (10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α000 = (1)

 

 

 

 

 

 

 

 

 

 

 

3.

 

 

e

 

 

 

 

 

e

 

 

 

 

 

;

(1)

 

(0)

 

 

 

 

 

 

 

α00 = (10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7→{ α001 = (0)

 

̸4

 

 

 

 

 

 

Так как отношение

предшествования не выполнено, алгоритм пре-

 

 

 

 

e

 

 

 

 

 

 

 

 

 

А

 

 

 

кращает работу; функция fe2 немонотонна.

 

 

 

 

в)

f3 = (0101 1011)

 

 

 

 

e

 

 

 

В

 

.

.

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С

 

 

 

 

 

 

 

 

 

α0 = (0101), α1 = (1011); (0101)

4

(1011)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

̸

 

 

 

 

 

 

 

Так

как

отношение предшествования не выполнено во второй

коорди-

 

 

e

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Барашев

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нате,

 

 

 

Унучек

 

 

 

 

 

 

 

 

 

 

 

Теорема

 

 

 

 

 

МИРЭА

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

смотрим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. f(x) = x M (см. замечание 7.11).

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Любая суперпозиция F = f(f1, . . . , fm) монотонных функций

 

f, f1, . . . , fm также

 

является монотонной

функцией. Докажем,

 

 

f1, . . . , fm M

e

 

 

 

 

e

 

6

 

 

 

 

 

e

 

 

 

 

 

 

 

 

e

β

 

β

 

 

 

f β , . . . f

 

 

f β

.

 

 

 

 

 

 

 

α

f α

 

 

α

 

 

 

 

 

α, e :

 

4 e

 

1( )

1(e)

 

 

m( ) 6

m(e)

 

130