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

DisMathTPU

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

61

7) Преобразуем сокращенную ДНФ в совершенную ДНФ . Используем закон расклеивания неполных конъюнкций, подчеркнем конъюнкции, совпадающие с получеными ранее, и по закону идемпотентности удалим их:

y z _ x y _ y z _ x z _ 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 _ 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 _ x y z _ x y z = СовДНФ.

K1 K2 K3 K4 K5 K6

8) Построим кратчайшую ДНФ по матрице Грея . Для этого выделим на матрице минимальное число максимальных интервалов, образующих достаточное множество, и по нему построим кратчайшую ДНФ.

 

I1

z

y

 

 

 

 

 

6

-I2

КратДНФ = y z

x y

_

x z:

x

 

 

-I3

K1

_ K2

K3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

70) Преобразуем кратчайшую ДНФ в совершенную ДНФ .

y z _ x y _ x z = x y z _ x y z _ x y z _ x y z _ x y z _ x y z = СовДНФ: K1 K2 K5 K6 K4 K3

Здесь конъюнкциям присвоены номера из совершенной ДНФ задачи 7),

сравнение показывает, что совершенные ДНФ совпали.

400) Построим матрицу Грея по совершенной ДНФ . Каждая полная

конъюнкция задается точкой, которая на матрице обозначена номером конъюнкции в совершенной ДНФ.

y

z

2

 

5

6

1

3

4

 

x

Вывод. Матрицы Грея, полученные при решении задач 2), 4), 40), 400),

совпадают, следовательно, ошибок при выполнении контрольной работы не было (кроме, может быть, неправильной расстановки скобок).

11.Минимизация булевых функций.

Âпредыдущем разделе мы познакомились с различными типами ДНФ

èнаучились их находить визуально по матрице Грея. Перейдем к изуче- нию формальных методов построения сокращенной, безызбыточных, минимальных и кратчайших ДНФ булевой функции, заданной совершенной или произвольной ДНФ.

62

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

Пример. Рассмотрим мажоритарную функцию.

 

 

z y

СовДНФf = x y z

 

x y z

 

x y z

 

x y z

 

 

 

КратДНФf = x y

_

x z

y z

_

 

 

 

 

 

 

_

 

 

 

 

_ _

 

 

 

 

x

Нарисуем схемы по совершенной и кратчайшей ДНФ. Логические элементы изобразим в виде соответственно обозначенных прямоугольников.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tBZZ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

Z

 

 

 

"

 

B

 

Z""

 

 

B

 

 

 

 

"ZZ

 

 

y

 

B

"

 

 

 

 

Z

 

"

"B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tbbbB

 

 

 

 

 

 

 

 

 

 

 

 

B b

 

 

 

 

 

 

 

B bb

b

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

z t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^

 

AA

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AA

 

 

 

 

tJJ

^

JJ

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^

 

 

A

 

 

 

 

 

JJ

 

 

 

 

 

 

QQ A

 

 

 

y

 

 

 

JJ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q

 

-

 

 

 

J

 

 

 

 

-

 

 

 

 

 

 

_

 

f

 

 

tJJ

^

 

 

_

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^

 

 

 

 

 

 

z

 

JJ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tPPP

^

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Схема, построенная по кратчайшей ДНФ (справа), оказалась проще: она содержит меньше элементов.

Интерес к сокращенной ДНФ вызван тем, что она является промежуточной при построении кратчайших, минимальных и безызбыточных ДНФ.

Безызбыточные ДНФ интересны как сами по себе, так как часто оказываются близкими к оптимальным, так и тем, что среди них находятся все минимальные и простые кратчайшие ДНФ.

Определение. Минимизировать булеву функцию это значит построить ее кратчайшую или минимальную ДНФ или все кратчайшие или все минимальные ДНФ (постановка задачи уточняется дополнительно).

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

63

Первый этап: найдем все простые импликанты функции, то есть конъюнкции ее сокращенной ДНФ.

Второй этап: из сокращенной ДНФ выделим конъюнкции искомых ДНФ (кратчайших или минимальных).

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

ßçûê ÄÍÔ

Язык интервалов

 

 

полная

точка

конъюнкция-импликанта

 

 

 

элементарная

допустимый интервал

конъюнкция-импликанта

 

 

 

простая импликанта

максимальный интервал

 

 

ÄÍÔ

достаточное множество интервалов

 

 

совершенная ДНФ

множество всех точек

 

 

сокращенная ДНФ

множество всех максимальных

 

интервалов

 

 

кратчайшая ДНФ

достаточное множество из минимального

 

числа максимальных интервалов

 

 

минимальная ДНФ

достаточное множество максимальных

 

интервалов с минимальной суммой рангов

 

 

безызбыточная ДНФ

достаточное множество максимальных

 

интервалов, которое при удалении любого

 

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

 

 

11.1. Получение сокращенной ДНФ первый этап минимизации

Изучим два метода получения сокращенной ДНФ, но прежде вспомним законы поглощения и склеивания конъюнкций и добавим к ним закон неполного склеивания.

Закон поглощения:

K1 _ K1K2 = K1.

Закон склеивания:

xK _

 

 

 

 

xK = K.

Закон неполного склеивания :

xK _

 

 

 

 

xK = xK _ xK _ K.

Закон обобщенного склеивания : xK1 _ xK2 = xK1 _ xK2 _ K1K2:

Очевидно, что закон неполного склеивания следует из закона обобщенного склеивания (при K1 = K2 = K), а закон склеивания из закона неполного склеивания (если в последнем выполнить поглощения конъюнкций).

64

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

Закон поглощения говорит о том, что если объединение двух интервалов I è I0 совпадает с I, то интервал I0 содержится в интервале I (поглощается

им). Значит, поглощаемый вектор должен получаться из поглощающего заменой некоторых его внутренних компонент ( ) на внешние (0 или 1).

= 1 0

Пример. В паре троичных векторов = 0 1 0 1 вектор поглощает- ся вектором .

Закон склеивания объединяет два соседних интервала в один. Напомним, что соседние интервалы совпадают по номерам внешних компонент, но различаются по значению ровно одной из них (ортогональной). При склеивании получается интервал, который отличается от исходных лишь в ортогональной компоненте она становится внутренней (операция склеивания соседних интервалов уже рассматривалась в подразделе 2.2.3).

Пример. Результатом склеивания соседних векторов и является вектор :

= 0 0 1 ;

= 0 1 1 ;

= 0 1 :

Закон неполного склеивания объединяет два соседних интервала и добавляет к результату исходные интервалы.

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

Закон обобщенного склеивания объединяет соседние части двух смежных интервалов. Смежные интервалы могут не совпадать по номерам внешних компонент, но должны быть ортогональны ровно по одной из них. Результатом обобщенного склеивания являются три интервала: два исходных

èтретий, который строится следующим образом:

компоненты, по которым исходные векторы совпадают, сохраняют свои значения;

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

ортогональная компонента становится внутренней.

Пример. Результатом обобщенного склеивания смежных векторов и

являются векторы , и :

= 0 0 1 0 1 ;

= 1 0 1 0 1 ;

= 0 1 0 0 1 1 :

65

11.1.1. Теорема Квайна и алгоритм Квайна МакКласки

Первый метод построения сокращенной ДНФ булевой функции основан на следующей теореме.

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

Опираясь на теорему Квайна, МакКласки сформулировал алгоритм, который организует построение сокращенной ДНФ более эффективно, чем это предложено в теореме.

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

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

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

Алгоритм Квайна МакКласки.

Начало. Задана совершенная ДНФ булевой функции.

Шаг 1. Построим список всех точек функции (булевых векторов) и упорядочим их по неубыванию числа единиц веса.

Шаг 2. Разобьем список на подмножества (классы) векторов одинакового веса. Обозначим через Ci класс векторов веса i.

Шаг 3. Выполним неполные склеивания всех соседних векторов классов Ci è Ci+1, i = 0; 1; : : : ; n 1. Участвующие в склеивании векторы ( и )

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

нем подобные.

Шаг 4. Если новый список векторов не пуст, возвратимся с ним на шаг 2 (заметим, что троичные векторы списка оказываются уже упорядоченными по числу единиц).

Конец. Выписав из всех списков неотмеченные векторы, получим множество всех максимальных интервалов, оно задает сокращенную ДНФ исходной функции.

66

Пример. Продемонстрируем выполнение алгоритма, для наглядности сопровождая его шаги матрицами Грея.

Начало. Задана совершенная ДНФ булевой функции:

СовДНФ = a b c d _ a b c d _ a b c d _ a b c d _ a b c d _ a b c d _ a b c d:

Шаги 1, 2. Совершенную ДНФ представляем списком точек, упорядо-

чиваем их по весу и разбиваем на классы.

 

 

 

 

 

 

 

Список 0

Список 0 (упорядоченный)

 

 

 

 

 

 

c

 

 

 

 

 

 

0

0

0

0

 

C0

 

 

 

 

 

 

 

 

 

 

 

 

 

1)

0 0

0 0

 

 

 

 

 

 

 

d

 

 

 

 

 

 

 

0

1

0

1

 

C2

2)

0 1

0 1

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

3

 

 

0

1

1

1

 

C3

3)

0 1

1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

7

6

 

1

1

0

1

 

 

4)

1

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

1

1

1

1

 

 

5)

1

1

0

1

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

0

 

 

6)

1

1

1

0

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

1

1

 

C4

7)

1 1

1 1

 

 

 

 

 

 

 

 

Шаг 3. Выполняя неполные склеивания векторов из классов C2 è C3, à затем C3 è C4, и отмечая в упорядоченном списке 0 склеиваемые векторы символом , получаем список 1 список интервалов, состоящих из двух

точек. Справа в новом списке указаны номера векторов участников склеивания. Интервалы списка изображены на двух матрицах Грея.

 

Список 0

 

 

 

Список 1

C0

1)

0

0

0

0

 

1)

0

1

1 (2,3)

C2

2)

0

1

0

1

 

2) 1

0

1

(2,5)

C3

3)

0

1

1

1

 

3) 1

1

1

(3,7)

 

4)

1

0

1

1

 

4)

1

1

1

(4,7)

 

5)

1

1

0

1

 

5)

1

1

1

(5,7)

 

6)

1

1

1

0

 

6)

1

1

1

(6,7)

C4

7)

1

1

1

1

 

 

 

 

 

 

 

 

 

 

c

 

 

 

 

d

 

 

- 1

 

 

 

 

4

 

 

 

 

 

 

 

-

 

b

?

 

 

a

5

 

 

 

c

d

-- 36

b

a 2?

Шаг 4. Список 1 не пуст, поэтому идем на шаг 2 (так как склеивания производились в строгом порядке сверху вниз , векторы в новом списке уже упорядочены по весу).

Шаги 2, 3. Разбиваем полученный список на классы C2, C3. Выполняя склеивания векторов из классов C2 è C3, получаем список интервалов, состоящих из четырех точек (список 2). Приводим в нем подобные.

67

 

Список 1

 

 

 

Список 2

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

C2

1)

0

1

 

1

 

 

(1,5)

 

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) 1 1(

 

 

 

 

 

 

 

 

2)

 

1

0

1

 

2)

 

 

 

 

 

 

 

 

 

((1(((1 (2,3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4)

1

 

1

1

 

 

 

 

 

 

C3 3)

1

1

1

 

 

 

 

 

 

 

 

 

 

 

5)

1

 

 

1

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6)

1

1

1

 

 

 

 

 

 

 

 

 

 

Шаг 4. Список 2 не пуст, но дальнейшее склеивание невозможно, поэтому список 3 окажется пустым, идем на конец.

Конец. Выписываем из всех списков неотмеченные векторы. Они задают

сокращенную ДНФ:

 

 

 

 

 

 

 

 

I1

 

 

 

 

 

 

 

c

 

I1 = 0 0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I2

= 1

 

1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- I4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I3

= 1 1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

I4

=

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I2

 

 

 

 

 

 

 

СокрДНФ =

 

b

 

d _ a c d _ a b c _ b d:

 

 

 

 

 

 

 

a

c

 

 

 

 

 

 

 

 

 

 

 

K1

 

K2 K3

K4

 

 

 

 

 

 

 

 

 

11.1.2. Теорема Блейка и алгоритм Блейка Порецкого

Второй метод построения сокращенной ДНФ булевой функции основан на следующей теореме.

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

Рассмотрим основанный на теореме Блейка алгоритм, который организует поиск сокращенной ДНФ эффективнее, чем это предложено в теореме.

Алгоритм Блейка Порецкого.

Начало. Задана произвольная ДНФ булевой функции.

Шаг 1. Построим список троичных векторов, представляющих конъюнкции ДНФ. Удалим из списка все векторы, поглощаемые другими. Если останется лишь один вектор, пойдем на конец. Иначе обозначим второй из оставшихся векторов через .

68

Шаг 2. Найдем для вектора очередной смежный вектор среди векторов, расположенных в списке выше . Если такого вектора нет, то идем на шаг 5. Иначе обобщенно склеим и и полученный вектор припишем к списку последним.

Шаг 3. Если вектор поглощается хотя бы одним вектором из списка, то удалим (в частном случае может совпадать с одним из векторов списка, тогда удалим именно приписанный вектор , иначе произойдет "зацикливание"алгоритма, так как вектор будет вновь появляться в списке) и идем на шаг 2. Если вектор не поглощается, то удалим все векторы, поглощаемые им.

Шаг 4. Если вектор не удален, то идем на шаг 2.

Шаг 5. Если вектор был не последним в списке, то выберем в качестве нового следующий по списку вектор и вернемся на шаг 2.

Конец. Неудаленные векторы задают сокращенную ДНФ функции.

Алгоритм Блейка-Порецкого отличается от рассмотренного ранее алгоритма Квайна-МакКласки прежде всего тем, что оперирует с произвольной ДНФ, в то время как алгоритм Квайна-МакКласки требует на входе совершенную ДНФ. Конечно, можно перейти от произвольной ДНФ к совершенной, как показано в подразделе 8.2, но она может быть очень длинной, и применение алгоритма Квайна-МакКласки станет неэффективным.

Пример. Продемонстрируем алгоритм Блейка-Порецкого, сопровождая его выполнение матрицами Грея.

Начало. Задана произвольная ДНФ функции из примера к алгоритму Квайна МакКласки:

ÄÍÔ = a b c d _ a b c d _ a b c d _ a b d _ a b c _ a c d:

Шаг 1. ДНФ представляем списком векторов и нумеруем их.

1)

0 0

0

0

1YHH

 

 

d

c

4

2) 1 1

0

1

 

 

 

3) 1 0

1

1

 

 

 

 

-

5

4)

0 1

 

1

 

 

 

-

 

5)

1 1

1

 

b

H

 

 

 

 

 

 

 

 

 

H

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

2

 

jH

 

 

6)

1

1

1

 

?6

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

69

1) 0 0

0

0

 

 

 

 

 

c

 

 

 

c

 

2) 1 ((((((

 

 

 

 

d

1YH

 

 

d

4

(3) 1 0

1

1

 

 

 

 

 

 

 

 

5

1

0

1

 

 

 

 

 

H

 

 

-

 

4) 0 1

 

1

 

 

 

 

 

 

 

((

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

5) 1 1

1

 

b

 

H

 

 

b

 

 

 

 

 

 

 

 

 

 

H

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

Hj

a

 

 

 

 

 

 

6) 1 1

1

 

 

?6

 

3

 

 

 

?6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шаг 2. Для нет смежного вектора среди предыдущих, идем на шаг 5. Шаг 5. Так как вектор был не последним в списке, то в качестве новогорассматриваем следующий по списку (четвертый) вектор (см. ниже) и

возвращаемся на шаг 2.

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

ет склеивание).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1)

0

0

0

0

 

 

 

 

 

 

c

 

 

 

 

 

c

2) 1 1

0

1

 

 

 

 

 

d

1YHH

 

 

d

 

4) 0

1

 

1

 

 

 

 

 

 

-

 

 

 

 

-

5)

1

1

 

 

 

 

 

 

 

 

- 5

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6)

1

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

(4,2)

a

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

?

 

 

? ?

 

 

 

 

1

0

 

 

b

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

7)

 

 

 

 

 

 

 

 

 

7

6

 

 

 

Шаг 3. Вектор не поглощается ни одним вектором, поэтому остается

в списке. Удаляется второй вектор как поглощаемый вектором

.

1)

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

 

H

 

 

 

 

 

 

 

 

 

 

d

 

 

 

(2)((1(1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(((((

 

 

 

 

 

 

 

 

 

 

 

 

1YH

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

4)

0

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5)

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6)

1

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

a

 

 

 

 

? ?

 

 

 

 

 

 

 

7)

1

0

1

 

 

 

2

 

 

 

 

 

 

 

 

7

6

 

 

 

 

 

 

 

 

 

 

Шаг 4. Так как вектор не был удален, идем на шаг 2.

Шаги 2, 5. Так как для вектора перебраны все предыдущие, то идем на шаг 5. Так как был не последним в списке, то в качестве нового

рассматриваем пятый вектор (см. следующую страницу) и возвращаемся на шаг 2.

Шаги 2 4. Вектор не смежен первому, но смежен четвертому вектору. Обобщенно склеиваем и и записываем результат в список восьмым.

70

Вектор не поглощается ни одним вектором, поэтому остается в списке. Вектор не поглощает ни один вектор, в том числе . Идем на шаг 2.

1)

0

0

0

0

 

 

 

 

c

 

1YHH

 

d

c

 

4) 0

1 1

 

 

 

-

- 8

5) 1

1

1

 

 

 

-

 

 

 

-

 

 

 

 

 

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

6) 1

 

1

 

 

 

 

 

-

 

 

 

 

 

 

-

 

1

1

 

 

 

 

 

 

 

 

 

7)

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

(5,4)

a

 

 

 

 

a

 

 

 

 

 

 

 

1

 

 

 

 

 

? ?

 

 

 

8)

 

 

 

 

 

b

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

6

 

 

 

 

Шаги 2, 5. Для вектора перебраны все предыдущие, поэтому новымстановится шестой вектор, идем на шаг 2.

Шаги 2 3. Вектор смежен четвертому вектору (см. ниже). Обобщенно склеиваем и и записываем результат в список девятым. Векторсовпадает с восьмым вектором, то есть поглощается им, поэтому тут же удаляем вектор из списка. Идем на шаг 2.

 

1)

0

0

0

0

 

 

 

c

 

1

 

 

 

c

 

5) 1

1

1

 

 

 

 

 

 

d

 

 

 

-

 

-

4) 0

1 1

 

 

 

d

 

 

YHH

 

 

 

 

 

 

 

- ,8

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6)

1

 

1

1

 

 

 

 

 

 

 

 

-

7)

 

0

1

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

8)

 

1

1(((

a

?

 

 

a

 

 

? ?

 

 

 

 

 

 

1

 

b

 

 

 

 

b

 

 

 

 

 

((

((((

1

(6,4)

 

 

 

 

 

 

7

 

 

 

1

1

 

 

 

 

 

 

 

 

9)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

4

5

Шаги 2, 5. Для вектора больше нет смежных среди предыдущих, поэтому новым будет седьмой вектор, идем на шаг 2.

Шаги 2 4. Вектор смежен пятому вектору . Обобщенно склеиваем их и записываем результат в список десятым. Вектор не поглощается

ни одним из предыдущими векторов списка и не поглощает ни один вектор, поэтому идем на шаг 2.

 

1)

0

0

0

0

 

 

 

 

 

c

 

 

 

 

 

 

c

 

5) 1

1

1

 

 

 

 

 

 

d

 

1

 

d

-

 

 

4) 0

1 1

 

 

 

 

 

 

 

HYH

 

 

 

- 8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6)

1

 

1

1

 

 

 

-

 

 

 

 

 

 

4

 

7)

 

0

1

 

 

 

 

 

 

 

 

 

 

 

- 5

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

a

 

 

 

 

 

 

 

8) 1 1 1

? ?

 

 

 

b

? ? ?

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

10) 1

1

1 (7,5)

 

 

 

 

 

 

 

10 6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шаги 2 3. Вектор смежен шестому вектору . Обобщенно склеиваем их и записываем результат в список одиннадцатым. Вектор совпадает с десятым вектором, поэтому тут же удаляем из списка. Идем на шаг 2.

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