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

Пак Г.К. - Дискретная математика

.pdf
Скачиваний:
219
Добавлен:
01.05.2015
Размер:
1 Мб
Скачать
☆

(2)x 0, y 0 заменяем единицы записи x на +,

(3)стираем первый + слева, находим последний блок единиц и применяем программу удвоения,

(4)повторяем эту операцию до тех пор, пока не исчезнут +,

(5)стираем один блок единиц,

(6)применяем программу сжатия.

x2 (1) применяем программу удвоения,

(2)применяем программу xy .

x = наибольшее y такое, что y2 x, y 1 2 x:

(1)от x справа печатаем y = 1,

(2)дублируем x и y,

(3)возводим y + 1 в квадрат,

(4)вычисляем y 1 2 x ,

(5)если y 1 2 x 0 , то стираем все, кроме y. Конец.

(6)если y 1 2 x = 0, то в оригинале заменяем y на y + 1 и переходим к (2).

7.9.Канторовские нумерации

Множество 02 a,b |a,b 0 можно занумеровать с по-

мощью функции C(x, y) 1 2 3 (x y) x, т.е.

C(x, y) (x y)(x y 1) x.

 

 

2

 

ТЕОРЕМА. Отображение C : 02

0 – биекция.

 

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

Найдем максимальное натуральное m

 

 

x n (0 1 2 m),

такое, что 0 1 2 m n и положим

 

 

 

y m x.

Тогда C(x, y) (1 2 m) n (0 1 m) n, т.е.

n x, y : C(x, y) n.

 

 

 

 

 

 

. Пусть для опре-

Пусть C(x, y) C(x

, y ) но x, y x , y

деленности x y x y.Тогда

C(x, y) (0 1 2 x y) x 0 x y (x y 1)(x y) x 0 1 2 x y x C(x , y ). Противоречие.

Отсюда x y x y 0 (x y) x 0 1 (x y ) x

 

 

 

 

a

a

 

 

 

x x

y y .

 

Замечание. Канторовская нумерация вычислима по Тьюрингу.

81

Упражнения

1.Найти пару x, y c номером 20.

2.Найти номер пары 4, 2.

Решение (1). 0 1 2 3 4 5 20 x y 5, x 20 15 5 y 0.

Ответ: 5, 0.

С(x, y) n,

то l(n) x левая проекция, r(n) y правая,т.е.

 

1

 

1

 

1

 

8n 1

8n 1

(n) n

 

 

 

 

 

 

 

 

 

.

2

 

2

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример. Найти проекцию числа 121.

Решение. С(1, 14) = 121 (121) 1,

r(121) 14.

 

 

 

 

Канторовская нумерация троек, n-ок вводится по правилу

 

 

 

C3 (x, y,z) C(x,C(y, z))

 

 

 

 

или С2(x ,x

2

) C(x ,x

),Cn 1(x , ,x

n 1

) C(x ,Cn (x

2, ,

x

n 1

)).

1

1 2

1

 

1

 

 

Пример.

С(1, 4, 0) = 121. Это следует из того, что С(1, 14) = 121 и С(4, 0) = 14.

 

 

 

 

 

k

 

| xi 0,n 0 занумеруем по фор-

Множество 0

0

x1, ,xn

 

 

 

 

k 1

 

 

 

 

муле C

 

(x , , x

) C(n,Cn (x

, , x

)).

 

1

n

 

1

 

n

 

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

Пример. C (14) C(1,14) 121.

7.10. Нумерация машин Тьюринга

Поставим в соответствие каждой команде программы МТ пятерку чисел i, j, i , j , k , где k = 0, если в команде стоит М, k = 1, если Л, k = 2, если П. Тогда каждая команда МТ получает канторовский номер С5

(i, j, i , j , k) = n; k1 – n1, k2 – n2, … , ks – ns; s = n(m – 1).Машина Тьюринга получает номер N = C (n1, n2, … , ns).

7.11. Универсальная машина Тьюринга

Занумеруем все машины Тьюринга, вычисляющие одноместные функции. Универсальная машина Тьюринга МУ работает так над парой n, x так:

–если n – номер МТ, вычисляющей f, то на выходе имеем f(x),

–если n – не номер МТ, то машина останавливается. Описание МУ. На ленте записаны числа n и x.

(1)Находим число s(n) команда в машине Mn с номером n.

(2)Находим номер каждой команды n1, n2, … , ns.

(3)Раскодируем номера команд и запишем на ленте эти команды. На лентевозникнет ситуация

82

q1**

 

К1

0

К2

…

K

X

 

 

5 яч.

 

5 яч.

 

5 яч.

 

 

(4)Если в состоянии qi управляющее устройство находится над симво-

лом pj , то после этого программа ищет команду К, у которой левая часть qi , pj . После этого управляющее устройство возвращается на то место, откуда начался поиск команды. Здесь состояние qi отно-

сится к Mn , состояние qi* относится к МУ и используется при деко-

дировании номера n,q** – состояние МУ при вычислении f (x) .

7.12. Алгоритмическая неразрешимость проблемы самоприменимости

Проблема самоприменимости заключается в построении алгоритма, позволяющеговыяснить, применима ли МТ к своемуномеру.

ТЕОРЕМА. Проблема самоприменимости алгоритмически неразрешима. Доказательство. Допустим, что существует алгоритм, позволяющий выяснить, применима ли МТ к своему номеру. Обозничим через МС машину Тьюринга, разрешающую этот алгоритм, и пусть МС печатает, если машина Mn применима к n, в противном случае. Пусть

~

МС зацикливается, если МС выдает и совпадает с МС в остальных

~~

случаях, и пусть æ – номер МС. Допустим МС самоприменима. Тогда

~

МС (æ)= , а следовательно, МС при работе над æ зацикливается. Если

~

~

же допустим, что МС не самоприменима, то МС(æ) = , т.е.

МС при-

менима к своему номеру, т.е. самоприменима. Противоречие. ■

 

7.13. Рекурсивные функции

Рассматриваются частичные числовые функции f 0n 0 . Функция f называется всюду определенной, если она определена на всем множестве 0n . Следующиевсюдуопределенныефункции называютсяпро-

стейшими:

 

s(x) x 1

– функция следования,

0(x) 0

нулевая функция,

n

(x , , x

n

) x

m

– селекторная функция, т.е. функция выбора аргумента.

m

1

 

 

 

 

 

 

Функция (x1, ,xn) (f1(x1, ,xn), , fm(x1, ,xn))

получена из функ-

ций

, f1, , fn, с

помощью оператора

суперпозиции. Функция

 

 

 

 

 

 

 

 

 

83

f (x1, , xn , y) получается из функций (x1, ,xn), (x1, ,xn,y,z) с помощьюоператорапримитивнойрекурсии,еслионаможетбытьзаданасхемой:

f (x1, ,xn,0) (x1, ,xn ),

f (x1, ,xn, y 1) (x1, ,xn, y, f (x1, ,xn, y)),y 0.

Её обозначение R( n, n 2) f n 1. При n = 0 схема примитивной

рекурсии имеет вид: f (0)

a

 

 

 

 

 

 

 

 

 

f (y 1) (y, f (y)), y 0,

 

 

 

 

где a – постоянная одноместная функция, равная a. Тогда имеем

 

 

 

 

 

 

 

 

 

 

 

 

y

 

0

 

1

 

2

 

3

 

 

…

f (y)

a

 

(1,a)

(1, (0,a))

 

(2, f (2)) (2, (1, (0,a)))

 

…

 

Будем говорить, что функция y f (x1, ,xn)получается из функ-

ции

 

с помощью

оператора

минимизации по

переменной x

( оператор),

если

f (x1, , xn ) определено

и равно

y

(x1, ,xn,0) 0, , (x1, ,xn,y 1) 0,

(x1, ,xn, y) 0.

Обозначение: f (x1, , xn ) y (x1, , xn , y) 0.

Функция f называется примитивно рекурсивной, если она может быть получена из простейших функций с помощью конечного числа применений операторов суперпозиции С и примитивной рекурсии R. Множество всех примитивно рекурсивных функций обозначается как Kпрф . Функция называется частично рекурсивной, если она может быть

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

ТЕОРЕМА. Kчрф KВ – классвсех функций, вычислимых поТьюрингу.

Доказательство. Приведем машины Тьюринга для простейших функций:

mn xm

q

…

q

q

m

 

q

…

q

n

q

n 1

q

n 2

q

n 3

 

 

1

 

m 1

 

 

m 1

 

 

 

 

 

 

 

0

0Rq2

…

0Rqm

0Rqm 1

0Rqm 2

…

0Lqn 1

0Lqn 1

0Rqn 2

 

 

 

 

1

0Rq1

…

0Rqm 1

1Rqm

0Rqm 1

…

0Rqn

1Lqn 2

1Rqn 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0(x) 0

 

q1

 

q2

 

 

 

s(x) x 1

 

q1

 

 

q2

0

 

 

1Sq2

 

 

 

 

 

 

 

0

 

 

 

1Sq2

 

 

 

 

1

 

 

0Rq1

 

 

 

 

 

 

 

1

 

 

 

1Lq1

 

 

 

 

Остальные выкладки доказательства опустим.

84

ГЛАВА 8. МИНИМИЗАЦИЯБУЛЕВЫХФУНКЦИЙ

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

всех различных булевых функций от x1, ,xn равно 22n , а число ДНФ от этих же переменных равно 23n , т.е. “в среднем” на булевых функций

((3)n 1)2n

приходится 2 2 , реализующих её ДНФ. Среди них мы и должны выбрать минимальную ДНФ.

8.1. Интервалы

Поставим булеву функцию y f (x1, ,xn) во взаимнооднознач-

ное соответствие множеств Nf всех двоичных наборов, на которых

функция принимает значение 1. Множество всех двоичных наборов, на которых элементарная конъюнкция ранга r принимает значение 1, называется интервалом ранга r. В качестве примера приведем все интервалы для ЭК ( x1,x2,x3 ) (табл. 8.1).

 

 

 

 

 

 

 

 

Таблица 8.1

ЭК

Интервалы

ЭК

 

Интервалы

x1x2 x3

111

1

x3

x1x2 x3

110

 

1

x3

 

 

 

 

1

x2

 

 

 

1

x2

 

X1

1

 

 

 

X1

1

 

 

x1x2 x3

101

1

x3

x1x2 x3

100

 

 

x3

 

 

X1

 

1

x2

 

 

 

 

x2

 

1

 

 

 

 

X1

 

 

 

x

1x2 x3

011

1 x3

x

1x2

x

3

010

1 x3

 

 

 

 

 

 

 

X1

1

 

1 x2

 

 

 

 

 

 

 

 

 

 

X1

1

 

1 x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

1

x

2 x3

001

 

 

 

x

1

x

2

x

3

000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1x2

 

 

111

 

 

 

 

 

 

1x2

 

 

011

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

110

 

 

 

 

 

 

 

 

 

 

 

 

 

010

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

85

Продолжение табл. 8.1

x1x2

 

101

 

x1x2

 

001

 

 

100

 

 

 

000

x1x3

 

 

 

x1x3

 

 

 

101

111

 

 

100

110

x1x3

 

 

 

x1x3

 

 

 

000

010

 

 

001

011

x2 x3

 

111

 

x2 x3

 

 

 

011

 

 

010

110

 

 

 

 

x2 x3

 

 

 

x2 x3

 

 

 

001

101

 

 

000

100

x1

101

111

 

x1

001

011

 

100

110

 

 

000

010

x2

111

011

x 2

001

101

 

110

010

 

000

100

 

 

 

 

 

x3

001

101

x3

000

100

1

011

111

 

 

010

110

 

 

 

 

 

 

 

 

001

011

 

 

 

101

 

111

 

 

 

 

000

010

 

 

 

 

100

110

 

 

86

t

ТЕОРЕМА. f (x1,...,xn) iV1 Ai f A1 A2 At .

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

t t

f VAi. Тогда f VAi 1 iAi 1

i 1 i 1

A

 

 

A f

A .

 

 

i

i

i

 

i

 

 

 

 

 

 

i

 

 

 

t

, то iAi ( ) 1 VAi ( ) 1 f ( ) 1 f

Если Ai

 

 

 

i 1

 

 

 

 

t

 

 

 

 

t

 

 

A

f f A .

 

i 1

i

 

 

 

i 1

i

 

 

 

 

 

 

 

 

 

 

t

 

f ( ) 1 Ai i Ai Ai ( ) 1 VAi ( ) 1;

f

 

 

 

 

 

 

A f ( ) 0 f i A iAi ( ) 0

 

 

 

i

 

 

 

i

 

 

 

i 1

 

 

 

t

 

 

 

 

 

 

 

VAi ( ) 0 f VAi.

i 1

Из этой теоремы следует, что вместо ДНФ, реализующих булевых функций f, можно рассматривать покрытия множества Nf объединениями соответствующих интервалов. Интервал NA называется до-

пустимым для f, если A N f . В этом случае ЭК А называется допус-

тимой для f. Ясно, что ЭК, не являющаяся допустимой, не может войти в ДНФ, реализующую f.

Пример.

Допустимыми для f = (01111110) являются интервалы

x1x2x3, x1x2x3, x1x2x3, x1x2x3, x1x2x3, x1x2x3, x1x3, x1x2, x1x3, x2x3, x1x2 .

х3

01

00

101

111

000

010

х1

100

110

Рис. 8.1

Поэтому, любая ДНФ, реализующая f, может быть составлена из ЭК, входящих в множество

 

 

x

x x ,

x

 

x

x ,x

x

x ,x

x

 

x

,x x

x

,

x

x

x

,

x

x ,

 

1

2

3

1

2

3

 

1

2

3

1

 

2

3

1

2

3

1

2

3

1

3 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х2

x2x3

,x1x2,x1x3

,x2x3,x1x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.2. Сокращенная ДНФ

 

 

 

Интервал

NA

 

называется максимальным для f, а ЭК А простой,

если

не

 

существует

 

допустимого интервала Nf такого, что

A B f .

В

 

приведенном примере

максимальным

являются

 

 

 

 

 

 

 

 

 

 

 

 

x x ,

x x

, x x , x x

,

x x

, x x . Остальные

допустимые

интервалы

1 3

2

3

1

2

1 3

 

2

3

1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

87

(точки) содержатся в перечисленных. Например, x1x2x3 x1x2 . По-

этому простыми конъюнкциями будут x1x3,x2x3,x1x2,x1x3, x2x3,x1x2. Пусть A1 , , Ak – множество всех максимальных для f интервалов.

Будем называть Df A1 Ak сокращенной ДНФ (сокр. ДНФ).

Сокр. ДНФ обладает замечательным свойством.

ТЕОРЕМА. Минимальная ДНФ для f получается из сокращенной удалением некоторых элементарных конъюнкций.

Лемма. A B ЭКn C 1: A BC, где переменные C отличны

от переменных В.

Доказательство леммы. Если переменные входят в А и В, то входят в

одной

 

и той же степени. Действительно,

 

если

это не так, то

АВ 0 А В 0 ,

что

противоречит

условию

 

A B .

Пусть

A y 1

y k

x 1

x l

,

 

 

B x 1 x l z 1

z q .

 

 

 

 

 

 

i

 

i

k

 

j

 

 

j

 

 

 

 

 

j

 

j

l

 

 

1

 

q

 

 

 

 

 

 

 

1

 

 

 

1

 

 

l

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

q

 

пусто. Если оно не пусто, то

 

 

 

Покажем, что множество z 1

z q

 

рассмотрим набор такой, что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

i

 

1

, , y

i

 

k

,x

j

 

, ,x l ,z

 

1

, , z

 

 

q

.

 

 

 

 

 

k

 

 

1

 

 

j

 

1

 

 

 

 

 

 

q

 

 

 

 

 

1

 

 

 

 

 

 

 

 

1

 

 

 

l

 

 

 

 

 

 

 

 

 

 

 

 

 

На этом наборе A 1,B 0

A

 

B

 

 

 

A BC,

 

где C y 1

y k .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

k

Следствие. Если A B , то ранг В меньше ранга А. Доказательство теоремы. Пусть ЭК А, не являющаяся простой, вошла

в мин. ДНФ

f, т.е.

мин. ДНФ

f A A1 At

f

A

A

A

и по лемме второму покрытию соответст-

 

 

1

T

 

 

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

8.3. Тупиковая ДНФ

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

 

Пусть f A1 Ak

 

k

 

 

 

k

 

 

 

, f

A .

Если A

A , то после

 

 

 

 

 

1

i

 

1

i 2

i

 

 

 

 

 

 

 

 

 

 

 

удаления A изпокрытия f

оно

остается

покрытием,

т.е.

 

 

1

 

 

 

 

 

 

 

 

 

f

A

A . Тогда

f A2

Ak

, т.е. конъюнкция A1

может

 

2

t

 

 

 

 

 

 

 

 

 

быть

удалена

из

ДНФ.

В

противном

случае

f

A2

Ak

A2 Ak

f ,т.е.

A1 нельзя удалить из ДНФ.

Если же после применения этого приема несколько раз получится ДНФ, из которой нельзя удалить ни одной ЭК, то получится ДНФ,

88

называемая тупиковой. Соответствующее покрытие

называется неприводимым. Ясно, что мин. ДНФ тупиковая. Рассмотрим ДНФ

Df x1x2 x1x2 x1x3 x1x3 x2x3 x2x3 .

Здесь x1x2 x2x3 x1x3 . Удаляем x1x2.

Для

Df

 

 

 

 

 

 

 

 

 

 

2x3

имеем

x1x2 x1x3 x1x3 x2x3

x

xx

xx

x x , поэтому удаляем

 

 

 

Получим

x1x2.

1 2

1 3

2 3

 

 

 

 

 

 

 

 

 

 

 

тупиковую ДНФ x1x3 x1x3 x2x3 x2x3 Df .

 

Ей

 

 

 

соответствует

покрытие

f

x x

3

x x

3

x

x

x

x

(рис. 8.2).

 

1

1

2

3

2

3

 

Если бы мы выбрали другую последовательность удаления ЭК из ДНФ, то могли бы получить другую тупиковую ДНФ x1x3 x1x2 x2x3 x1x3 x1x2 x2x3. Мы имеем

x1x3 ( x1x2 x2x3 ), x1x2 x1x3 x2x3 ,

f интервалами

x3

x2

x1

Рис. 8.2

x3

x2

x1

x x

x x

x x

. Соответствующееэтой ДНФ

 

2

3

1

3

1

2

 

 

Рис. 8.3

 

неприводимоепокрытиеиллюстрируется рис. 8.3.

 

 

 

 

 

 

8.4. Метод Блейка сокращения ДНФ

 

 

 

 

 

 

 

Применяем к ДНФ D A1 At

, реализующей булевы функ-

ции f , тождественные преобразования:

 

x xy x,

 

1)

правило поглощения

 

( 1 )

2)

правило обобщенного склеивания

xA

xB xA

xB AB

( 2 )

до тех пор, пока это можно. Получим некоторую ДНФ D .

ТЕОРЕМА Квайна. ДНФ D является сокращенной ДНФ булевой функции f.

Доказательство. Рассмотрим любую простую для f конъюнкцию А, не входящую в D. Докажем, что в процессе преобразований она будет вве-

дена в

D . Прежде всего заметим, что среди переменных А нет таких,

которые не входят в

D. Допустим противное, что A xi 1 xi k y и пе-

 

 

 

 

1

k

ременная y не входит в D , A

f .Множеству

f принадлежат все

наборы, в которых xi

1, ,xi

k , y . Но

f D на таком на-

 

1

k

 

 

боре значений переменных D 1 D 1 на любом наборе, на котором

xi 1

, ,xi k

множеству f принадлежит любой

набор, на

1

k

 

 

 

 

котором конъюнкция B x

1

x

k

равна 1, т.е. имеем

 

 

 

 

 

,

i1

ik

A

B

f

 

 

 

 

 

 

а это означаeт, чтоЭК А не простая для f.

Рассмотрим все ЭК С, удовлетворяющие трем условиям:

1)С содержит только переменные, общие с D ;

2)C A , т.е. А минимальна по рангу среди ЭК вида С;

3)в ДНФ D не существует ЭК Аj такой, что C A j .

Множество ЭК С, удовлетворяющих условиям 1-3, непусто. Этим условиям удовлетворяет А. Обозначим одну из конъюнкция С наибольшего ранга через k. Эта конъюнкция не может включать все

переменные D . В противном случае k – точка в Bn . Но всякая точка

~ в этом пространстве содержится в

K

 

 

,а это

A Aj : ~ A

 

 

 

 

i 1

i

 

j

противоречит условию 3.

 

 

 

 

 

 

xi входит в

D , но не входит в k. Рассмотрим

Пусть переменная

конъюнкцию C1 xik, C2

 

x

ik. Их ранги больше ранга

k они не

удовлетворяют условию 3. Это означает, что в D Ar , Al

:

 

 

 

 

 

 

c

 

A

r

, c

2

A

.

 

 

 

 

 

 

 

 

 

1

 

 

 

 

l

 

 

Конъюнкция Ar

и A1

должны содержать xi и

x

i

соответственно.

В противном случае k

A , k

 

A , что неверно для k в силу усло-

 

 

 

 

 

 

r

 

 

 

 

l

 

 

 

 

 

вия 3.

Остальные сомножители

Ar и

A1 общие с k применяя к

Ar Al

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi Ar

xi Al преобразование (2), введем в D конъюнкцию Ar

Al ,

которая либов точностиk, либо ее интервал содержит k.

Аналогичные построения можно выполнить для любой конъюнкции наибольшего ранга, удовлетворяющей условиям 1-3. Тем самым доказано, что в процессе применения правила обобщенного склеивания к D наибольший ранг конъюнкций С уменьшается по крайней мере на 1.

Повторяя рассуждения, заметим, что наступит момент, когда останется одна конъюнкция, удовлетворяющая условиям 1-3. Это А. Рассматривая ее вместо k, убеждаемся, что она будет введена в преобразованную ДНФ в преобразованную ДНФ войдут все простыеДНФ дляf.

После включения ни одна такая конъюнкция не может быть удалена. Действительно, правило (2) ничего не удаляет из D , а правило (1) удаляет только те ЭК, которые не являются простыми. Если в ДНФ будут введены все простые для f ЭК, то все остальные будут удалены по правилу поглощения.

89

90

Пример. Если f = (01011110), то

f x1x2x3 x1x2x3 x1x2x3 x1x2x3 x1x2x3

x2 (x1x3) x2(x1x3) x3(x1x2) x3(x1x2) x1x3 x1x2 x1x2x3

x1x3 x1x2 x1x2x3 x1x3 x1x3 x1x2 x1x3 x1x3 x1x2 x2x3 x1x3.

8.5. Алгоритм перехода от сокращенной ДНФ к тупиковой

Для перехода от сокращенной ДНФ к тупиковой надо уметь про-

верять условие A A A A .

 

( 4 )

 

1

 

2

t

 

 

Не ограничивая общности, можно считать, что A имеет непустое

пересечение с Ai ,i

 

 

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

A A j пусто, то от

1, t.

такого интервала A j

не

зависит, выполнено

ли условие (4). Если

A Ai , т.е. AAi

0, то интервалы Ai

должны быть предвари-

тельно исключены из (4). Так как

AAi 0, то общие для A и

Ai пере-

менные входят в них в одинаковых степенях. Удалим из всех Ai

перемен-

ные, общие с A . Например, если A x1x2, A x1x3 , то удалим из Ai пе-

ременную x1 . Оставшиеся в Ai сомножители образуют конъюнкцию С.

Если все сомножители Ai

входят в A , тополагаем Ci 1.

 

 

t

t

ТЕОРЕМА (критерий поглощения) A

Ai , VCi 1.

 

 

i 1

i 1

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

Пусть A Ai,но VCi

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

 

i

i

 

существует набор ~ значений переменных такой,

что VCi (~) 0

 

 

 

i

iCi (~) 0 iAi (~) 0 Vi Ai (~) 0.

 

Если A x 1 x r

,то A( ) 0

, ,

r

.

 

i

i

 

 

 

1

 

 

 

1

r

 

 

 

 

 

 

 

 

 

 

Переменные из

A не входят в Vi Ci

. Рассмотрим набор, составлен-

ный из ~ и ~. Обозначим такой объединенный набор через ~.

Тогда A(~) A( ~) 1,

(VAi )( ~) 0

~ A , ~ Ai . Про-

 

 

 

 

i

 

 

 

 

 

 

i

тиворечие.

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

Пусть VCi 1, ~ A.Таккак (VCi )(~) 1,

то j:Cj(~) 1.

 

 

i 1

 

 

 

i

 

 

 

 

 

 

Но тогда Aj (~) 1 ~ A

j

A A .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

91

юнкции, для которых не выполнено условие Vi Ci 1, включаем в со-

став тупиковой ДНФ.

Пример. Рассмотрим булеву функцию, заданную в виде сокр. ДНФ (см. предыдущий пример), f x1x2 x1x3 x2x3 x1x2. Проверяем конъ-

юнкцию x1x3 . Так как (x1x3)(x1x3) 0, (x1x3)(x2x3) 0, (x1x3)(x1x2) 0,

то необходимо проверить условие x1x3 x2x3 ; A1 x2 x3,C1 x2 1 в ДНФ следует поставить x1x3 . Аналогичный результат дает проверка x1x3 . Для испытания x2 x3 остается две конъюнкции x1x3 A1,x1x2 A2 .

Мы имеем C1 x2,C2 x2, C1 C2 1 x2x3 x1x3 x1x2 . Удалив x2x3 , придем к тупиковой ДНФ x1x3 x1x3 x1x2. Проведя испытания в другом

порядке, можно получить и другую тупиковую ДНФ x1x3 x1x3 x2x3.

Замечание. Минимальная ДНФ – тупиковая. Но не наоборот. Для построения мин. ДНФ необходим перебор всех тупиковых ДНФ данной функции.

Упражнения

1.Докажите, что A B 0 существует переменная, которая входит в А и В в разных степенях; A B 0 все переменные, общиедля А и В, входят в них в одинаковых степенях.

2.Для произвольной булевой функции построить множество f ,

сокращенную ДНФ и применить критерий поглощения.

92

ГЛАВА9.СИНТЕЗСХЕМИЗФУНКЦИОНАЛЬНЫХЭЛЕМЕНТОВ

Рассмотрим реализацию булевых функций некоторыми схемами. Конкретные технические особенности нас не будут интересовать. При изучении систем, реализующих булевы функции, возникает две задачи. Задача анализа. Задана система S. Требуется определить булеву функцию, которую она реализует. Задача синтеза. Задана булева функция. Требуется найти систему S, которая ее реализует и, кроме этого, отвечает некоторым условиям. В частности, S должна быть возможно более простой схемой.

9.1. Функция Шеннона

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

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

Sf

, на которой достигается min (S(fi)). Решение этой задачи даже для

 

i

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

Шеннона заключается

в

том,

что каждой

булевой

функции

f (x1, ,xn) ставится в соответствие множество

схем S(fi) .

Выберем

среди всех схем с

min (S(fi)) , т.е.

среди самых простых схем, такую

 

 

 

i

 

 

 

 

 

 

схему,

которая

) .

обладала

бы наибольшим

индексом

простоты

L(n) max (Sf

Функция

L(n)

называется

функцией

Шеннона.

 

f

 

 

 

 

 

 

 

 

Если,

например,

(S f

)

– это количество элементов, затраченных на

реализацию схемы S f

,

то L(n)– минимальное количество элементов,

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

9.2. Схемы из функциональных элементов

Пусть имеется конечное множество объектов Fi,i 1, r , назы-

ваемых элементами (элементная база). Каждый элемент Fi имеет ni входов и один выход. Логическая сеть определяется индуктивно как объект, имеющий n входов и p выходов.

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

93

«Индуктивный» переход основан на использовании трех операций.

1. Объединение непересекающихся сетей. Пусть Σ и Σ – две не-

пересекающиеся сети, имеющие соответственно n и m входов и p и q выходов. Теоретикомножественное объединение Σ и Σ есть логиче-

ская сеть 1, входами которой являются все входы Σ и Σ , а выхода-

ми все выходы сетей Σ и Σ (рис. 9.2).

 

2 :

 

n

m

 

 

1 :

n

 

 

 

 

 

 

F

 

 

 

 

p

q

Рис. 9.1

Рис. 9.3

Рис. 9.2

2.Операция присоединения элемента F. Пусть логическая сеть Σ

иэлемент F таковы, что число n входов F не больше числа выходов Σ .

Объявим логической сетью Σ2 фигуру, входами которой являются вхо-

ды сети Σ . При этом отождествим n выходов сети Σ с n входами элемента F, а остальные выходы Σ и выход элемента F объявим выходами сети Σ2 . Такая сеть называется результатом подключения элемента F к

логической сети Σ (рис. 9.3).

3. Операция расщепления выхода. Пусть дана логическая сеть Σ .

Выделим в ней один из выходов с номером j . Объявим логической сетью фигуру, входами которой являются входы Σ , а выходами – все выходы логической сети Σ с номерами 1, 2, , j – 1, j + 1, и еще два выхода, возникших из выхода с номером j сети Σ .

 

Других логических сетей нет.

 

 

 

Схемой из функциональных элементов называется логическая сеть

Σ ,

входам

и выходам

которой

приписаны различные

буквы

xi , ,xi

,

zj

, ,zj

. Полученную таким образом схему обозначим Σ

1

 

n

1

 

m

 

 

 

 

Σ xi1 , ,xin , zj1 , ,zjm .

 

 

 

 

 

Каждый элемент Fi

является элементарным преобразователем,

который преобразует входной набор

( 1, , n ) в выходные значения

 

 

 

 

 

 

 

 

i

 

fi

( 1, , n ) . Если на входы Σ

подать набор( 1, , n), то,

продви-

 

 

 

i

 

 

 

 

 

 

гаясь от входов к выходам, он будет переходить в набор 1, , m , характе94

f (X)

ризующий состояние выходов, т.е. 1 f1( 1, , n), , m fm( 1, , n). Для произвольной системы булевой функции f1, , fm в исходной эле-

ментной базе F1,...,Fm существует схема Σ система функций

fi, i 1, m полна. В частности, в элементной базе {инвертор, конъюнктор, дизъюнктор} можно реализовать любую булеву функцию.

Пример. Схема из функциональных элемен-

 

 

 

 

 

 

тов рис. 9.4

реализует

булеву

функцию

 

 

 

 

 

 

x

 

 

 

y

z x y.

–

 

 

 

V

 

 

 

 

Упражнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

–

 

–

1.

Синтезировать схему для булевой

 

 

 

 

 

 

 

 

 

функции (x y).

 

 

 

 

 

 

 

 

 

 

 

 

2.

Упростить схему:

 

 

 

 

 

 

 

 

 

 

 

V

z

Рис. 9.4

95

ГЛАВА 10. АВТОМАТНЫЕ ФУНКЦИИ

10.1. Детерминированные функции

Рассмотрим множество k-значных последовательностей

(1), (2), , (m), , где (m) 0,1, , k 1 Ek для любого m = 1, 2, Рассмотрим функции, преобразующие наборы k-значных последовательностей в k-значные последовательности. Перейдем к векторной записи наборов и функций. Обозначим набор переменных (x1, ,xn) через Х. Будем писать вместо f (x1, ,xn) . При этом значением переменной Х является набор 1, , n , компонентами

которого являются последовательности i i (1), , i (m) , i 1,n,

т.е. будем истолковывать

как последовательность

векторов

(1), (2), , (m), , ,

где

(1) 1(1), 2(1), , n (1)

,

(2) 1(2), 2 (2), , n (2)

, можно

рассматривать как

числа

в

k-ичном исчислении, т.е.

0 (i) kn.

 

Функция f (X) называется детерминированной, если для любых

последовательностей

и таких, что

(1) (1), , (m) (m),

значения f ( ) и f ( ) функции f также совпадают в первых m

координатах, т.е. (1) (1), , (m) (m) . Через РД.К. обозначим

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

f1 f1(X1),

X1

(x1(1), , xn (1)),

f2 f2(X1,X2),

X2 (x1(2), ,xn(2)),

 

 

 

 

 

Поэтому мощность множества

РД.К. всех детерминированных

функций, зависящих от x1, ,xn , равна континууму.

Пример. Функция z x y , представляющая сложение двух k-значных последовательностей с бесконечным числом разрядов:

x(3) x(2) x(1)

+

y(3) y(2) y(1)

z(3) z(2) z(1)

Детерминированная функция f (x1, ,xn) может быть представлена в виде некоторого «дискретного преобразователя», в котором n входов x1, ,xn

96

x1

f

xn

Рис. 10.1

и один выход f . На входы в

момент времени t = 1, 2, подаются входные последовательности:

1 1(1),

1(2),

,

1(m),

, ,

2

2 (1),

2(2),

,

2 (m),

, ,

 

n(1),

 

 

 

, , и в эти же моменты t на выходе воз-

n

n (2),

,

n(m),

никает выходная последовательность 1, , m , f 1, , n .

Очевидно, что в дискретном преобразователе значение m зависит только от значений входных последовательностей в моменты времени t = 1, 2, , m и не зависят от значений в будущие моменты времени. Поэтому преобразование f – детерминированная функция. Все после-

довательности (1), (1), рассматриваем как нульместные

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

10.2. Задание детерминированных функций деревьями

Рассмотрим ориентированное дерево с корнем 0 , в котором на ярусах расположены по ребер, kn (рис. 10.2).

3 ярус

0

1

 

 

1

 

 

 

 

 

 

1

 

 

0

 

 

 

 

 

0

 

N-1

 

 

 

 

N-1

 

 

 

N-1

 

 

 

 

 

 

 

 

2 ярус

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

 

N-1

 

 

 

1 ярус

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

Рис. 10.2

Будем называть ветвью дерева связное подмножество ребер, содержащее в каждом ярусе ровно по одному ребру. Каждой

ветви

дерева

можно

сопоставить

последовательность

(1),

(2), , (m), , , где m – номер яруса, (m) – номер реб-

ра, входящего в эту ветвь, если идти по ней, начиная от корня. Например, ветви, помеченной на рис. 10.2 штриховой линией, соответствует последовательность 0, 1, N 1, .

Справедливо и обратное утверждение: каждой последовательности соответствует некоторая ветвь дерева.

97

Пусть y = f (x)– детерминированная функция. При ее помощи припишем каждому ребру дерева число из Ek . Для этого рассмотрим

путь, ведущий от корня к выбранному ребру. Этот путь определен однозначно и может быть охарактеризован некоторым кортежем(1), , (m) номеров ребер пути. Исходному ребру припишем число

m fm (1), (m) . Полученное дерево называется занумерованным деревом.

Пример. Для функции f (x1,x2) имеем k n 2, N 4 и(m) x1(m) x2(m). Следовательно, (m) зависит от последнего члена

кортежа, ведущего к данномуребру, т.е. от номера ребра. Ребру с номером 0 = (0, 0) соответствует значение 0 0 = 0. Ребру с номером 1 = (0, 1) соответствует значение 0 1 = 0, ребру с номером 2 = (1, 0) соответствует

1 0 =0, сномером 3 – значение1 1 = 1(рис. 10.3).

0

0

1

0

0

0

0

0

0

0

 

0

1

0

1

0

1

 

 

 

 

 

 

0

0

 

 

 

 

 

 

0

 

 

1

 

 

 

 

 

 

 

0

 

Рис. 10.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итак, по детерминированной функции можно построить занумерованное дерево. Обратное утверждение, вообще говоря, неверно. По

данному N , уравнение N kn может допускать несколько решений относительно параметров k и n. Но по занумерованному дереву с заранее определенными параметрами k и n определится единственная детерминированная функция. Итак, занумерованными деревьями можно пользоваться в качестве аппарата для изучения детерминированных функций.

10.3. Вес дерева

Для некоторой детерминированных функций f (x) f (x1, ,xn)

возьмем занумерованное дерево. Пусть – его произвольная вершина m-го яруса. Совокупность всех ветвей, исходящих из , порождает не-

которое дерево с корнем , которое называется специальным поддере-

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

ция f (x) . Для нее f

(x) f

m i

( (1), , (m),x , ,x ) .

i

 

1

i

98

 

 

 

 

Два поддерева с корнями 1 и 2

исходного дерева называются

эквивалентными, если

f 1 (x) f 2 (x) .

Очевидно, что при естествен-

ном наложении двух эквивалентных поддеревьев их нумерации совпа-

дают. В исходном дереве множество всех поддеревьев разбивается на

классы эквивалентности. Число классов эквивалентности называется

весом дерева и соответственно весом детерминированной функции.

Данное определение может быть распространено и на константы. По-

следовательность (1), , (m), изображается вырожденным дере-

вом, состоящим из одной ветви (рис. 10.4).

 

 

В нем можно рассматривать под-

(1)

(2)

(m)

деревья и определить

эквивалентность

поддеревьев. Иначе говоря, вес – это

 

 

 

максимальное число попарно неэквива-

 

Рис. 10.4

 

лентных поддеревьев. При этом не ис-

 

 

 

ключается случай, когда вес r бесконечен.

 

 

10.4. Усеченное дерево

Для занумерованных деревьев можно ввести нумерацию вершин. Сначала перенумеруем классы эквивалентности числами 0, 1, так, чтобы класс, в которых попадает исходное дерево, имел номер 0. Таким образом, нумерация содержит большой произвол. Пусть – номер класса, в который попадает дерево с корнем . Тогда вершине при-

сваивается номер . Получили дерево, у которого занумерованы также и вершины, причем корень имеет номер 0.

Рассмотрим теперь дерево с занумерованными ребрами и вершинами. Пусть ветвь проходит через вершины 0, 1, , i, , j, и этим

вершинам приписаны соответственно номера 0, 1, , i, , j, До-

пустим, что i j, i j , и для всех пар (i, j), для которых i j ,

индекс j является наименьшим. Произведем усечение данной ветви,

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

10.5. Ограниченно-детерминированные функции

Детерминированная функция называется ограниченнодетерминированной, если она имеет конечный вес. Класс всех ограни- ченно-детерминированных функций обозначается РО.Д.К. Для ограни-

ченно-детерминированные функции усеченное дерево будет конечным. Если в этом усеченном дереве произвести отождествление вершин с одинаковыми номерами, то получим диаграмму Мура.

Пример. Для z x y имеем k 2, N 4. Очевидно, что

99

 

 

x(m) y(m)(mod2)

приотсутствии переноса,

 

 

 

 

 

 

 

z(m)

 

 

 

 

 

 

приналичиипереноса.

 

 

 

 

 

 

 

 

x(m) y(m) 1(mod2)

 

 

 

 

 

 

 

 

Отсюда дерево имеет вид, изображенный на рис. 10.5.

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1 111

00

1

0

011

01

1

0 011

01

1

0 0

1

 

 

 

 

 

 

 

 

 

 

11

0

0

1 1

0

0

1 11

0

0

1 1

0

 

 

1

 

 

0

0

 

 

 

 

 

 

 

11

0

 

1

0

 

11

0

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

Рис. 10.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На рис. 10.6 приведена диаграмма Мура для функции z x y .

 

 

 

 

(2, 1)

 

 

 

 

 

(0, 1)

 

 

 

 

 

 

(1, 0)

 

 

 

 

(1, 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2, 0)

 

 

 

 

 

 

 

 

 

 

 

(3, 0)

 

 

 

 

 

 

 

 

 

 

 

(0, 0)

(3, 1)

Рис. 10.6

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

а вторые – число, соответствующее этому ребру.

Диаграмма Мура функции веса r имеет r вершин. Одна из вершин выделена в качестве начальной. Из каждой вершины исходит

N kn ребер. Ребрам приписаны пары 0, ' , 1, '' ,..., N 1, N .

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

100