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

DisMathTPU

.pdf
Скачиваний:
65
Добавлен:
29.05.2015
Размер:
753.61 Кб
Скачать

11

2.2.3. Соседние интервалы

Рассмотрим два интервала булева пространства Bn: I1( 1; 1) è I2( 2; 2).

Определение. Интервалы I1, I2 называют соседними (соседями), если

они совпадают по номерам внешних компонент, но различаются по значе- нию одной из них; ее называют ортогональной компонентой, а интервалы

I1, I2 соседями по данной компоненте.

Примеры. Рассмотрим три пары интервалов:

I

= 0 1

 

;

I0

= 0 1

 

;

I00

= 0 1

 

;

 

 

 

1

 

 

1

 

 

1

 

 

 

 

 

 

I

= 1 1

 

; I0

= 1 0

 

; I00

= 0

 

1:

 

 

 

2

 

 

2

 

 

2

 

 

 

 

 

 

Интервалы I1 è I2

являются соседями (по первой компоненте), I10

è I20

íå

являются соседями (различаются по двум внешним компонентам),

I100

è I200

также не соседи (различаются по номерам внешних компонент).

Утверждение о соседних интервалах. Два соседних интервала ранга r (размерности s) не пересекаются, а их объединение образует интервал

ранга r 1 (размерности s + 1).

Доказательство. Рассмотрим соседние интервалы I1 è I2 в пространстве Bn. Они не пересекаются, так как их ортогональная компонента во

всех векторах одного интервала равна 0, а в векторах другого равна 1. Следовательно, мощность их объединения I равна

jIj = jI1 [ I2j = jI1j + jI2j jI1 \ I2j = 2s + 2s 0 = 2s+1;

то есть она оказывается целой степенью двойки ( s + 1-й). Количество компонент в векторах множества I, претендующих быть внутренними, тоже

равно s + 1, òàê êàê ê s внутренним компонентам интервалов I1 è I2 äî- бавляется еще одна, ортогональная, компонента. Это равенство означает, согласно алгоритму, что множество I образует интервал размерности s + 1

(ранга r 1, òàê êàê r + s = n ).

Определение. Операцию объединения двух интервалов I1 è I2, сосед- íèõ ïî i-й компоненте, назовем склеиванием интервалов по i-й компоненте, а результат их склеивания I = I1 [ I2 расширением каждого из интерва- ëîâ I1 è I2 по i-й компоненте.

I1 = 0 0 1

Пример. Соседние интервалы I2 = 0 1 1 ранга 3 склеиваются, образуя интервал I = 0 1 ранга 2 (он является расширением интервалов I1 è I2 по третьей компоненте).

12

Очевидно, что на матрице в коде Грея соседние по i-й компоненте интер-

валы располагаются симметрично относительно оси симметрии этой компоненты.

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

компоненты.

 

 

 

 

 

4 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.3. Упражнения

Упр.1. Перечислить булевы векторы, образующие следующие интервалы: I1(0001; 1001); I2(01010; 11011); I3(0000; 1100); I4(000; 111): Задать эти интервалы на матрице Грея и вычислить их ранги.

Упр.2. Перечислить все интервалы ранга 1 в булевом пространстве B3, представив их троичными векторами.

Упр.3. Перечислить все интервалы в пространстве B5, первая и четвер-

тая компоненты которых являются внешними, а все остальные внутренними. Представить интервалы на матрице Грея.

Упр.4. Являются ли следующие множества булевых векторов интервалами, и если да, то какими троичными векторами они представляются?

A1 = 00000 A2 = 01100 A3 = 0101 A4 = 0001 A5 = 10011

00001

01101

1011

0101

01000

00100

1101

 

 

00101

0001

 

Упр.5. Образуют ли интервал векторы, выделенные на матрице Грея? Если да, то представить интервал троичным вектором и найти границы.

1 2

4 3

1 2

 

 

 

 

4 3

 

 

 

 

 

 

 

 

 

 

 

4 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

 

 

 

 

 

 

4 3

 

 

 

 

 

 

4 3

 

 

 

 

 

 

 

 

 

 

 

4 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

1 2

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Упр.6. Найти на матрице Грея все интервалы, соседние для I = 1 0 0 .

3. Булевы переменные, булевы функции, фиктивные переменные

3.1. Булевы переменные

Определение. Булева переменная это переменная со значениями из булева множества B = f0; 1g.

Обозначаются булевы переменные символами: a; b; c; : : : ; x; y; z, или теми же символами с индексами: x1; x2; : : : ; xn.

Определение. Последовательность значений a1; a2; : : : ; an булевых пе-

ременных назовем набором значений переменных (или просто набором) и будем перечислять их без запятых.

Пример. Набор a1a2a3a4a5a6 = 010100.

3.2. Булевы функции

Дадим два эквивалентных определения булевой функции. Определение 1. Функцию f(x1; x2; : : : ; xn) назовем булевой, если она

сама и ее аргументы принимают значения 0 и 1.

Определение 2. Булевой функцией f(x1; x2; : : : ; xn) назовем однознач- ное отображение булева пространства Bn в булево множество B, òî åñòü

f : Bn ! B:

Пример. Булева функция двух аргументов, принимающая на наборах 01 и 11 значение 0, а на наборах 00 и 10 значение 1:

 

 

'P$

 

 

 

 

 

 

 

 

 

2

 

01

r

 

 

P

 

0

 

 

f :

2

 

 

 

 

 

 

 

 

 

 

10 r

 

P

 

P-qr

1

 

 

 

B

 

 

00 P

 

PP

 

 

-

r

 

 

B

 

B ! B

 

 

11 r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&%

 

 

14

Определение. Булевы функции равны,

f1(x1; : : : ; xn) = f2(x1; : : : ; xn);

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

3.3.Способы задания булевых функций

1)Задание булевой функции таблицей истинности. Так называется таблица, состоящая из двух частей: в левой части перечисляются все наборы значений аргументов (булевы векторы пространства Bn) â åñòå-

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

 

x1 x2 : : : xn

f(x1; x2; : : : ; xn)

0

0

0

. . . 0

f(0; 0; : : : ; 0)

1

0

0

. . . 1

f(0; 0; : : : ; 1)

. . .

. . . . . . . . . . . .

. . .

a

a1 a2 . . .

an

f(a1; a2; : : : ; an)

. . .

. . . . . . . . . . . .

. . .

2n 1

1

1

. . .

1

f(1; 1; : : : ; 1)

Пример. Рассмотрим булеву функцию трех аргументов, называемую мажоритарной (или функцией голосования): она принимает значение 1 на тех и только тех наборах, в которых единиц больше, чем нулей (majorбольший).

x1 x2 x3

f(x1; x2; x3)

 

0

0

0

0

 

0

0

1

0

 

0

1

0

0

 

0

1

1

1

 

1

0

0

0

 

1

0

1

1

 

1

1

0

1

 

1

1

1

1

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

15

Пример. Таблица истинности для f1(x1; x2), f2(x1; x2) è f3(x1; x2).

x1 x2

f1(x1; x2)

f2(x1; x2)

f3(x1; x2)

 

0

0

0

0

1

 

0

1

0

1

0

 

1

0

1

1

1

 

1

1

1

0

1

Теорема о числе булевых функций. Число различных булевых функций, зависящих от n переменных, равно 22n.

Доказательство. Каждая булева функция определяется своим столбцом значений. Столбец является булевым вектором длины m = 2n, ãäå n

число аргументов функции. Число различных векторов длины m (а значит

èчисло булевых функций, зависящих от n переменных) равно 2m = 22n.

2)Задание булевой функции характеристическими множествами. Так называются два множества:

Mf1, состоящее из всех наборов, на которых функция принимает значе- ние 1, то есть Mf1 = f 2 Bn : f( ) = 1g;

Mf0, состоящее из всех наборов, на которых функция принимает значе- ние 0, то есть Mf0 = f 2 Bn : f( ) = 0g:

Пример (мажоритарная функция).

Mf1 = f011; 101; 110; 111g; Mf0 = f000; 001; 010; 100g.

3) Задание булевой функции вектором ее значений.

'f = f(0; 0; : : : ; 0)f(0; 0; : : : ; 1) : : : f(1; 1; : : : ; 1).

Пример (мажоритарная функция).

'f = 00010111.

4) Задание булевой функции матрицей Грея. Булево пространство задается матрицей Грея, и наборы (клетки матрицы), на которых булева функция f(x1; : : : ; xn) принимает значение 1, отмечаются и называются точками.

Пример (мажоритарная функция).

3 2

1

16

5) Интервальный способ задания булевой функции. Булеву функцию f(x1; : : : ; xn) можно задать множеством интервалов If = fI1; I2; : : : ; Ikg,

объединение которых образует характеристическое множество Mf1, òî åñòü I1 [I2 [: : : [Ik = Mf1: Множество интервалов If называется достаточным

для функции f(x1; : : : ; xn).

Пример. Мажоритарная функция может быть задана достаточным множеством If = fI1; I2; I3g интервалов:

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

3

I2

= 1 1

 

 

 

 

 

 

 

 

 

I1

= 1 0 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I3 = 1 1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

? ?

 

 

 

 

 

 

 

 

 

?

 

 

 

 

 

 

I1 I2 I3

 

 

 

 

Здесь интервалы представлены троичными векторами и изображены на матрице Грея.

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

Пример. Зададим мажоритарную функцию другим достаточным множеством If0 = fI1; I2; I3; I4g интервалов:

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3- I1

I2

= 1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I1

= 0 1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I3

=

 

1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

?

?

 

 

 

 

 

1

 

 

 

 

 

 

 

I4

= 1 1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I2 I3 I4

 

 

 

 

 

 

 

Очевидно, что это множество интервалов избыточно: первый интервал (011) можно удалить.

Определение. Интервал назовем допустимым для булевой функции, если на всех его наборах функция равна 1.

Примеры. I1 = 1 1 допустимый интервал для мажоритарной функции, I2 = 1 0 не допустимый.

3 2

- I1

1?

I2

Определение. Интервал I назовем максимальным для булевой функ-

öèè f(x1; : : : ; xn), если он является допустимым для этой функции, и не существует другого допустимого интервала I0, такого что I I0.

17

Пример. I1 = 1 1 является максимальным интервалом для мажоритарной функции, а допустимый интервал I2 = 111 не является максималь-

íûì, òàê êàê I2 I1.

3 2

- I1

1?

I2

Пример. Зададим мажоритарную функцию множеством If00 = fI1; I2; I3g

âñåõ ìàêñèìàëьных интервалов.

 

 

 

 

 

3

2

 

I1

= 1 1

 

 

 

- I1

I2

= 1 1

 

 

 

 

 

-

I2

I3

= 1

 

 

 

 

 

 

1

 

1

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I3

 

 

 

 

 

 

 

 

 

Определение. Точку булевой функции f(x1; : : : ; xn) назовем ядерной,

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

Пример. Для мажоритарной функции ядерными точками являются 011 (принадлежит только интервалу 1 1), 101 (принадлежит только интервалу 1 1) è 110 (принадлежит только интервалу 1 1 ). Все максимальные интервалы этой функции являются ядерными.

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

6) Задание булевой функции формулами будет рассмотрено несколько позже.

3.4. Фиктивные переменные

Определение. Говорят, что булева функция f(x1; : : : ; xi; : : : ; xn) существенно зависит от переменной xi, если выполняется условие

f(x1; : : : ; xi 1; 0; xi+1; : : : ; xn) 6= f(x1; : : : ; xi 1; 1; xi+1; : : : ; xn):

В этом случае также говорят, что переменная xi существенная, в против- ном случае ее называют фиктивной переменной.

18

Пример. Рассмотрим булеву функцию f(x1; x2; x3) и исследуем ее переменные x1 è x3.

x1 x2 x3

f(x1; x2; x3)

 

x2 x3

f(0; x2; x3) 6= f(1; x2; x3)

 

0

0

0

0

0

0

0

 

1

 

0

0

1

0

0

1

0

 

1

 

0

1

0

1

1

0

1

 

0

 

0

1

1

1

1

1

1

 

0

 

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

1

1

 

x1 x2

f(x1; x2; 0) = f(x1; x2; 1)

 

1

1

0

0

0

0

0

 

0

 

1

1

1

0

0

1

1

 

1

 

 

 

 

 

1

0

1

 

1

 

 

 

 

 

1

1

0

 

0

 

Из таблиц истинности видно, что переменная

x1 функции f(x1; x2; x3)

существенная, так как f(0; x2; x3) 6= f(1; x2; x3). Переменная x3 фиктивная, òàê êàê f(x1; x2; 0) = f(x1; x2; 1).

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

Алгоритм распознавания фиктивной переменной по таблице истинности.

Для переменной x1 сравниваются половины столбца значений функции: верхняя и нижняя, так как именно в верхней половине x1 = 0, а в нижней x1 = 1, если они совпадают, то переменная x1 фиктивна;

для переменной x2 сравниваются четвертины столбца в каждой половине, так как именно в верхних четвертинах x2 = 0, а в нижних x2 = 1, если четвертины в каждой половине совпадают, то переменная x2 фиктивна;

и так далее (за четвертинами следуют 1/8, 1/16, . . . ).

Пример. Для булевой функции из предыдущего примера переменная x1 существенна, так как верхняя половина столбца значений функции ( 0011) не равна нижней половине (1100). Переменная x2 существенна, так как четвертины уже в первой половине различаются ( 00 è 11). Переменная x3 фиктивна, так как осьмушки во всех четвертинах равны (0 и 0, 1 и 1, 1 и 1, 0 и 0).

Выявление фиктивных переменных можно ускорить, используя следующее очевидное утверждение.

19

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

Алгоритм удаления фиктивной переменной xi состоит в вычер- кивании из таблицы истинности всех строк, в которых xi = 0 (или всех строк, в которых xi = 1), и столбца xi.

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

x1 x2 x3

f(x1; x2; x3)

 

x1 x2

f(x1; x2)

 

0

0

0

0

0

0

0

 

0

0

1

0

0

1

1

 

0

1

0

1

1

0

1

 

0

1

1

1

1

1

0

1

0

0

1

 

 

 

 

 

1

0

1

1

 

 

 

 

 

1

1

0

0

 

 

 

 

 

1

1

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если переменная xi функции f(x1; : : : ; xn) фиктивна, то на наборах, соседних по i компоненте, функция принимает одинаковые значения. Отсюда

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

Алгоритм распознавания фиктивной переменной по матрице Грея (основан на свойстве симметрии кода Грея).

Переменная фиктивна тогда и только тогда, когда точки на матрице расположены симметрично относительно осей этой переменной. Упрощенная матрица это одна из ее симметричных половин.

Пример (функция та же и представлена на левой матрице). Переменная x3 функции фиктивна. Справа показан результат ее удаления.

 

 

 

 

3 2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

20

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

Пример. Рассмотрим функции f1(x1; x2) è f2(x1; x2). Удалив фиктивную переменную x1 функции f1(x1; x2) и фиктивную переменную x2 ôóíê- öèè f2(x1; x2), получим равные функции f1(x2) = f2(x1) = f(x). Значит, исходные функции равны с точностью до фиктивных переменных.

x1 x2

f1(x1; x2)

f2(x1; x2)

 

x2

f1(x2)

 

x1

f2(x1)

 

0

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

 

0

1

1

0

1

1

1

1

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.5. Элементарные булевы функции

Рассмотрим все булевы функции двух и менее аргументов. При n = 0 имеем две функции: константу 0 и константу 1.

Ïðè n = 1 имеем четыре функции:

x

f0

f1

f2

f3

0

0

0

1

1

1

0

1

0

1

 

 

 

 

 

Функции f0(x) è f3(x) зависят от x несущественно, поэтому равны двум рассмотренным ранее функциям. Введем названия и обозначения для осталь-

ных двух функций:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f1(x)

=

x тождественная функция (читается x ),

 

 

 

 

f2(x)

=

 

 

функция отрицания (инверсия, НЕ ) (читается не x ).

x

 

Ïðè n = 2 имеем 16 функций:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1 x2

f0

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

f11

f12

f13

f14

f15

 

0

0

0

 

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

 

0

1

0

 

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

 

1

0

0

 

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

 

1

1

0

 

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^

,!

 

-

 

 

_

#

 

 

 

 

!

=

 

 

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