Книга
Книга
ВВЕДЕНИЕ
В работе рассматриваются графы простейшего вида, т. е. (п, ^)-графы, которые состоят из п вершин и q неупорядоченных пар вершин, называемых ребрами. Петли или кратные ребра не допускаются. Число различных (п, q)-графов на помеченных вершинах обозначается через F = F(n,q), если же вершины не помечены, то через Т—Т(п, q). Существует самое большее N = n(n—1)/2 возможных ребер, и поэтому F = B(N, q), где В (А, А) = А!/{А! (А — А)!} — обычный биномиальный коэффициент. Наша задача заключается в нахождении асимптотики Т для больших значений п и q. Из обозначений N = n^n—1)/2 ясно, что наибольшее значение q равно N.
В дальнейшем под символами Л, С и т] будут подразумеваться числа, но не всегда одни и те же. Числа А и С положительны и не зависят от п и q. Символ А используется для обозначения любого положительного числа, которое можно выбрать, в то время как С— подходящее положительное число, которое может зависеть от данного или полученного значения Л, присутствующего в изучаемом выражении или подразумевающегося. Из чего, если не оговорено обратное, во всех наших утверждениях предполагается, что п и q — достаточно большие, т. е. что q > С и п > С. Обозначение О( ) приводится для мажорирования величин, зависящих от п и q при стремлении к бесконечности, а под мажорирующей константой понимается величина С. Величина т]— произвольное число, равное О(^-с) для некоторого С.
Ясно, что F^n, q) = F(п, N — q) и аналогично Т^п, q) = — Т (п, N— q). Следовательно, далее можно считать, что
q<^N.(1.1)
4) Wright Е. М., Graphs on unlabelled nodes with a large number of edges, Proc. London Math. Soc. (3), 28 (1974), 577—594. Это исследование частично финансировалось правительством США.
S
1974, Oxford University Press
Перевод на русский язык, «Мир», 1977
Обозначим
Лр = Л(р, ?) = в{ур(р — 1), q^/pV
p. = (2qln) — \ogn, 7 = /(у) = ^1(1 + log v)/v}V’,
д = 1ц/7(п), K(v) = «'V-'/7(v),
Erfx = 2n-'/2 ^e-t’dt, M^ — yU + Erfx). 0
Таблица значений Erf x приведена в работе [2]. Обозначим через и положительное число, такое, что v log v = 2^, а V = = [и] —наибольшее целое, не превосходящее и. Пойа [9] доказал, что если выполняется условие -^ N — q < Ап, то Т ~ Дп при п, q->oo, а Обершельп [8] ослабил это условие до ~N — q < Сп,г. В работе [12] автором доказана
Теорема 1. Условие ц->4-оо, при п-^оо является необходимым и достаточным для того, чтобы Т ~ Лп. Если это условие выполнено, то
Г = Л„ {1 + О (е-1*)}.
Коршунов [7] сформулировал без доказательства следующую теорему.
Теорема 2. Если ц > А, то
Т ~ Лпехр(— е“^)/(1 — е~ц).
В работе [13] автором сформулированы результаты, среди которых имеется
Теорема 3. Если ц <. —Ап~х^, то
Т-К^ Xv.
Асимптотическое поведение функции Т в теореме 3 не зависит от п. Это является асимптотическим аналогом того факта, что Т ^п, q)= Т (2q, q^ при п > 2q.
Между условиями теорем 2 и 3 существует очевидный пробел. В этой работе автор заполняет его, но результаты формулируются более сложно. Для приложений интерес представляет более точная информация об асимптотическом поведении функции Т, чем та, которая дается теоремами 2 и 3; для этого нужно заменить подразумевающийся множитель 1 + о(1) на 1+^- Теоремы 2 и 3 переформулируются тогда так.
Теорема 4. Если р > AnA~xS то
Т = Л„ехр(— 6-^(1 — ^-‘(l +п).
Теорема 5. Если р < —An-'ia, то
Т = К (V) Av (1 + Л) = К (V + 1) Лк+1 (1 + т)).
Следующие две теоремы станут понятнее, если заметить, что X (х) = ^ + О (х) при малых значениях х, что
Х(-х)=Ц1л-^7х)(1 + О(х-2))(1.2)
при большом и положительном х и что Х(х) -> 1 при х-> + ОО. В частности,
Х(-х)=1+л,(1.3)
если x<—A^/^ogq.
Теорема 6. Если р < An-I/2 (logn)^, так что б < А, то
T = M-6)№y(l+n) = M"6)mi)Aw(l +п).
Теорема 7. Если 0 ^ р ^ пт'11, то
- Т = /((п)А(-д)Л„(1+п).
Теперь интервалы значений q в предположениях наших теорем перекрываются. Из этих и из некоторых последующих теорем нашей работы выведем следующие две теоремы, которые окажутся полезными в приложениях, особенно для улучшения результата работы [14] относительно связности непомеченного графа (см. [18]). Обозначим
R(n, q) = T(n, q+^/T(n, q).
Теорема 8. Если р->4-оо, то
R (п, q) = ^N - q^kq + 1)} (1 + О (е^)}.
Если у п log п ^ q ^ An log п, то
R kn, q^ = (п2/2<7) (1 + ц).
Если qто
R(n, q) = (v2l2q)(l + П).
Теорема 9. Если п> С и 1 ^ q ^~ N — 1, то
Т(п, q+l)>T(n, q).
Только в одной теореме 9 не требуется выполнения условия q > С, которое во всех остальных случаях^ подразумевается. Можно ожидать, что результат теоремы 9 справедлив при п ^ 6, но автор этого доказать не может. Это утверждение неверно при п = 5, когда ^=10 и Т (5, 4) = Т (5, 5) = 6, а из таблиц работы [10] следует справедливость утверждения при б^м^ 18.
Эти теоремы были сформулированы без доказательства в [17].
Коршунов [7] распространяет свой результат (теорема 2 выше) с соответствующими модификациями на другие классы графов (например, на рассмотренные в работах [6] и [11] весемь различных классов). Все результаты автора этой работы могут быть обобщены аналогичным образом, но для простоты изложение ограничивается одним классом графов.
ПЕРЕЧИСЛИТЕЛЬНАЯ ТЕОРЕМА БЕРНСАЙДА — ПОЙА
Бёрнсайд и Пойа разработали принципиальный способ перечисления непомеченных графов [1, 9]. Пусть л — произвольная перестановка п помеченных вершин, и пусть РЛ = РЛ^п) q)— число помеченных (п, q) -графов, которые остаются неизменными (инвариантными) при перестановке л его вершин и соответствующей перестановке ребер, порожденной л. Единичную перестановку будем обозначать символом /. Тогда имеем
п\Т = ЦРп,(2.1)
где суммирование ведется по всем п\ возможным перестановкам л, т. е. по всем членам симметрической группы степени п.
Перестановка л может быть представлена в виде произведения непересекающихся циклов, причем единственным образом. (Здесь и далее термин цикл применяется как понятие теории групп подстановок, а не как понятие теории графов.) Предположим, что в этом произведении имеется ровно pj циклов длины /, а в соответствующем произведении, представляющем порожденную перестановку ребер, — Р^ циклов длины /.
Тогда имеем’
Z jpi = п(2.2)
/=1 и
N
LjP^N.(2.3)
Также имеют место равенства (см. [8])
P1=7P1(P1-1) + P2,(2.4)
P2 = P1P2 + P2(P2- 1)+P4, ^3 = Р1Рз + 7Рз(ЗРз— 0 + Рб- (2-5)
Назовем множество / вершин, инвариантное при действии некоторого цикла из л длины /, вершинным j-множеством. Аналогично, множество из / ребер, инвариантное при действии некоторого цикла длины / из порожденной перестановки ребер, называется реберным j-множеством. Любой граф, инвариантный при действии перестановки л, должен содержать либо все ребра произвольного реберного /-множества, либо не содержать ни одного ребра этого /-множества. Существует ровно Р) реберных /-множеств, и каждые Sj из них, Sj ^ Р^ могут появиться в инвариантном (n,q)-графе, причем
ILiSj = q.(2.6)
Можно выбрать Sj реберных /-множеств B(P^Sj) различными способами, и поэтому'
.... s„) = [ll (1+^)4 ,(2.7)
где ^^q> означает суммирование по всем Si, ..., sn, удовлетворяющим (2.6),~
D(sb .... «^«Пв^, «/)-
a [Q(X)]g означает коэффициент при Хч в многочлене Q(X). Далее, мы видим, что Ря зависит только от чисел Р\, ..., PN> а следовательно, только от чисел рь ..., рп
Существует ровно‘
п1
«1П (рд ГО
/-1
перестановок л с одной и той же цикловой структурой (рь р2, ... .Рп), а значение Рл для каждой такой перестановки л постоянно. Следовательно,
r=E(p/i/p/)~1 Ещ$ь .... s„),ЦП))(q)
где 5д(п)) означает суммирование по всем рь ..., рп, удовлетворяющим (2.2).
Обозначим"
Sp = knXTxllFu, где ^1 означает суммирование по всем л, для которых рх = р. Тогда .7’ = Т1+Т2,
где пМ
тх = 2 sp, t2=£sp
р=М+1р-0
и
М = [(<?4п21 og л)7’]..
Обозначим через Н^п) число тех л, цикловая структура которых не содержит циклов длины, меньшей чем ^+1, и пусть hk(n) = Hh(n)ln\. В частности, Н\^п^— число эйлеровых дуэлей [3, 4]. Ясно, что
" Яй(п) = п!2 П {p/!/P,} .
/=*+1
где суммирование ведется по всем множествам р^+ь ..., р^ таким, что
п
2 iPi=n.
/=£+1'
Итак,
Рд>0^, О, 0,0) = В(Р„ q)>B(l.pxVPv-\X q),
и существует ровно В[п,р)Н\{п— р) различных перестановок л, таких, что pi = р. Следовательно,
Sp > (п!)"1 В (п, p)Hl(n-p)B(^p(p-l),q) = hI(n-р) Лр, (2.8) и поэтому п
^>2 hx^pUP.(2.9)
р-М+1
Позже мы увидим, что при подходящих условиях можно заменить знак ^ в (2.8) и (2.9) на знак ~, но доказательство становится более сложным. Найдем сначала верхнюю границу для Тг, которая, как будет показано ниже, мала по сравнению с Гь
ВЕРХНЯЯ ГРАНИЦА ДЛЯ Т2
Лемма 1. Если An ^ q <. An log п, то
-г /
Напомним читателю, что, согласно нашему определению, три символа А в утверждении леммы не обязательно означают одно и то же число. Возьмем такое pi < М, что Pi < СМ2 в силу соотношения (2.4). Для любого X > 0, в силу соотношения (2.7), имеем
Nй"
/-1
Далее, если /^2, получаем неравенство (1+Xj)2^ (1+Я2р и поэтому, согласно (2.3),
П (1 + X^t < (1 + X^N~P^.'
/-2
Следовательно, Fn^Yi-Y<,, где
У! = х"" (1 + Х^ \ Y2 = {(1 4- xfl(\ + Х2)Й₽‘.
Если положить X = л/VqKN — <?)}, то получим .
log Ki = 4 q log Ж Ц^М log № - q^. Теперь
4 q log VW ^4 <7 log « + О (у),
4 (^ - ?) 1 og W(.V -q^ = 4 (N - q) log (1 + VqKN - q^ < 4 q, так что
iogyi^4^ iosrt+°^-
H0Ba(1 + ХП1 + X2) = 1 + O kq'4A\
значит,
log r2 < CPiq^ln < Cq (log nf1, поскольку Pi < CM2 и q<An\ogn.. Отсюда
log Ря < 4 9 log " + C^ (Iog №^U < 4 9 ^ + Л)log n>
и наконец
Т,= Е «, = („!)- р-0
так как во второй сумме имеется меньше чем п\ слагаемых,
для которых перестановка л такова, что рх^М.
СВОЙСТВА Л6(п)
Известно [3, 4], что
М«)“1-1+|-4 +4-^-.(4.1)
и поэтому \кх^-е*Ч<Ш+^*(4.2)
Выполняется также соотношение
НМ = кп-\W<n-1) + (п — 1) ... ^п—к^Нккп—к-—\\
(Последнее получаем, просматривая, в скольких перестановках из Нк (п) некоторый элемент появляется в цикле длины, большей чем &+ 1, и в скольких перестановках тот же самый элемент в цикле длины к + 1.) Отсюда получаем, что
nhk^=An-^h^n-YWhAn^k- 1).(4.3)
В работе [15] изучены арифметические свойства Нх^, а в работе [16] исследованы асимптотика и арифметические свойства Hh (п) для'любого к. Однако все, что необходимо для целей нашей работы, дает•
Лемма 2. Если п> к, то
С <hk^<.\.
Правая часть неравенства тривиальна. Ясно, что Нк (п) > О для п > к и поэтому левая часть неравенства справедлива для к < п ^ 2^ + 1. Для всех п^к утверждение леммы доказывается из (4.3) по индукции.
ФУНДАМЕНТАЛЬНАЯ ЛЕММА
, Докажем теперь следующую фундаментальную лемму.
, Лемма 3. Если Ап < q < /Inlog п и М<.р^п— 2, то
■S„ = ApA1(n —р){1+О(е)},
где
е1—пд2р^, e2 = qp~2, e = max(e1, в2) = о(1).
Рассмотрим те значения л, для которых pi = р > М. Имеем
Nsn>=LF^(<7)/-1
где слагаемое ЯЛ равно сумме всех таких D, что Sj >» 0, а «ш = 0 для всех со > /. Если / ^ 4, то имеем
У3 = D(sb s2, ..., Sj, 0, ..., 0)/D(S] + /, s2, ..., Sj— 1, 0, ..., 0)=
= В (Р„ Sj) В (Pb s^B (Ph Sj-^BiP^ S1 + /)} =
= {(P, - s, + 1)/5/}П {(si + Wi -sr-k+ 1)} <
< Cn2qip;2i = Ce^ef4.
Если числитель У3 принимает значения всех слагаемых F^\ то знаменатель принимает значения членов суммы для Fn из (2.7) без повторений одного и того же члена. Отсюда
пп
i-41=4
Обозначим Ei = Fw + F^ + F^. Сразу видно, что
F i = [(1 + Xf (1 + ХЧ (1 + Л ^
и Fn==E1 {1 + О (е,)}. Запишем
Qi = Pi(Pi — 1)/2,
Q2 = Q2 (Р2) — Pi кР\ + Рг — 1)>
Q3 = Q3(P3)==^P3(2pi + Зр3— 1)
(так из (2.5) вытекает, что P2 = Q2 + Ръ ^3 = Q3 + Ре) и
£2 (Pi, Р2, Рз) = [(1 + Х)р' (1 + X2)Q’(1 + Х3)%.
Находим, что
Ei — E2(pi, Рг, Рз') < CeEi
с помощью тех же соображений, что и выше для слагаемых Fu\ поскольку в случае l^r^p4 = P2 —Q2 получаем
/Pi-Qi-r+l V s, + l X/ S.+2\ Сп^г г
I Г ) I РХ - S J k Pl - Sj - 1 ) < р* L8b
и аналогично для Р3, Q3, г^. Из этого следует, что
Fn = Е2 (рь р2, рз) {1 + О (в)}.
Отсюда
IlFr-Le^p, р2, Рз){1 + О(е)}. 11
Поскольку существует ровно
pl h4 {п — р^ 2р2 — Зр3)р! 2Рг • р21 • Зр» • р!
различных перестановок я с pj = р и заданными р2, р3, то «га—d)/2]'
Уря —— у {1 + 0(e)),
Y Pl р% 2Р«(р20х т х,ь
где m = п — р — 2р2 и [т/3| ^4= Е А3(т —Зр3)£2(р, р2, р3)/(р3! Зр’).
Рз=0
Теперь, если р3^1, имеем.
Е2 (Рь р2, р3) = [(1 + Xf' (1 + Х^' (1 + X3)Q’ ^’Х =
= [(1 + xf' (1 4- X2)Q1(1 + X3)Q,(P3-1)+r]?, где
г = 9з(Рз) — Q3(P3— l) = Pi + 3p3 — 2<n.
Если l<s<r, получаем
r-s+1(S1 + 1)(S1+2)^+3)^ Cnq» -
s * (pi-S|)(p1_S1-1)(p,-S1-2) р» не
откуда, как и выше,
0<E2(pb р2, р3) —Е9(рь р2, pg — 1)^СеЕ2(р,, р2, р3),
Е2(Pi, р2, Рз — 1)<Е2(рь ръ рз)<(1 + Се)Е2(pi, р2, Рз — 1),
и, следовательно,
С2(Р1, р2, 0)^£2(рь р2, р3Х(1 +Се)р,£2(р1, р2, 0).
Теперь
(1 + Се)рз - 1 < Ср3е(1 + Се)0*-1,
и поэтому
/мз\. X
Г4 = Е2(ръ р2, 0) I h3 (m) + Е U3(от — Зр3)/(р31 3₽а)} + У5 L
Xр,-1/
где У5 = 0, если т<3, а в остальных случаях
И/31
Y5<Ce Е {/г3(/п-Зр3)(1 + Се)р‘~7зр,(рз-1)0<СееС(1+е)<Св.
p,-i
Снова
(Р1/3]
h2 {tn) = h3 (m) + ^ A3 (/и — Зр3)/(р31 Зр|),
p4-i
таким образом,
Y, = EM, Ръ 0)А2(т){Ц-О(е)} и [(п-р)/2]
rt^ V3 ^2 (^ Р 2рг) 2?з (р, рг) /< t
xF«~T\ Ъй (1 + 0(8)),
где
Е3 (р, р2) = [(1 + X)Q'+pz (1 + X2)Qz (pz,]„.
Теперь, если р2^1, то,
Q2 (Рг) — Q2 (Р2 — 1) = Pi + 2р2 — 2
Ез(Рь р2) = [(1 + X)Q,+pz(l + x2)Qz<Pz"°(l + x2)p,+2pz-2]g.
Снова если s^l, то
Рх + 2р2 — 1 — s Si + 1* S1 + 2
$* Q1+P2 — S1 ’ Q1 + р2~S1 — 1'
«"(Q7^CCnq’p-*<C«.
Следовательно,
Еа(pi, р^ = [(1 + X)Ql+pz (1 + X^f*{1 + О (е)} =
= {£з(Рь р2— 1) + У6}{1 + 0(e)}, где
У6 =[(1 + X)Ql+pz-'(l +<
<Сд^! — q)~l E3(pi, р2— 1ХСе£з(рь р2— 1).
Отсюда
53(Р1, Р2) = 53(Р1, р2- 1)(1 +Ce) = £3(Pi, 0)(1 +СеЛ
и поэтому.
( г(п-р)/2]\
sp —+ я3(„, 0)1 £(1+0(е)) =
= (pl)"1 Ез^р, 0)(/z, (п - р) + ¥^ (1 + 0 (8)), где [<П—р)/2]■
r7< Е A2(n-p-2p2){(l + Ce)Oz-l}/(p2!2P0<
Р2-1 l(n-p)/2]
<Се £ (1 +Ce)pz-7(p2- 1)1 < Се.
р2”1
Таким образом,
£з (Рь 0) = [(1 + X)9 ], = В (Q„ q) = pl Лр.
Этим завершается доказательство леммы 3.
ДВЕ ПОСЛЕДУЮЩИЕ ЛЕММЫ
Лемма 4. Если Ап < q < An log п, то
Sp = Aphxkn — р)(1 +п) (п7’<р<п) и
Sp^CAp(М<р<п).
Если пи < р<.п, то из леммы 3 получаем е = г|.
Если М ^р ^п, то имеем е = о (1). Снова hx (0) = 1, hx (1) = 0, Sn-i — 0.
Лемма 5. Если Ап < q < Anlogn, то logЛр = го — ф +1] (nV» < р^п) и
logAp<m — ф + п (.М<р<п\ где
го = © (р) = 2q log р — р log р + р — q log (2^) + q,
Ф = Ф (р) =41о8 (4л2Р<?) + (q/p) + №р2\
Предположим, что условия леммы выполнены. Имеем p\q\Ap = P(P-^ ... <P-q+XV
где Р = р (р — 1)/2 и поэтому
<7-1
log (pl <7! Лр) = q log (уР2) + ^ log {1 - р-2 (р + 2s)} = s=0
.= 2qlogp — qlog2-^--^--Ys,
где
0 < У8 < C<fp\
Теперь по формуле Стирлинга
log(pl) = (p 4-1) logp-p4-^-log(2n)4-O(l),
и аналогично для log(^I), откуда вытекает справедливость нашей леммы.
Если в качестве р взять непрерывную переменную, то имеем ю,(р) = (2р/р) —logp, to" (р) = — (2<? 4-р)/р2,(6.1)
to'" (Р) = (4р 4- Р)/р3, ф' (р) = — (4^2 4- 2pq — р2)/р3. (6.2)
СЛУЧАИ 0<p<Alogn
Предположим теперь, что
О^р < Л log га, так что
^nXogn^.q ^CnXogn.
Из леммы 5 имеем
log А„ = q log (га2/р) + О (?) > q log q — Cq log log q, и поэтому по лемме 1
7’2 = O(A„p-^ios<?) = r1A„.(7.1)
Обозначим £ = у (2? + ri^n? и f = [п71*]. По (6.1) и (6.2) о' (га) = р, ю"(га) = -2£ и
0<to'"M<Cq/p3.
Отсюда, если t = n — p, получаем
© (р) = о (га) — р/ — У2 — ^to,,z (р')/6 для некоторого р', такого, что р^р'^га, и поэтому ©(рХ©(га) — р/— ^2 (Л1<р^га), а также
© (р) = © (га) — р/ — £/2 + л (0 < X /)•
— Cq^/p3 < <р' (р) < 0 (Af^p^ra), откуда по лемме 5 имеем
log (ЛР/Л„Х — р/— ^/2 + т] (М<р<га)
log(Ap/A„) = -p/-^2 + r1 (0<XD- Теперь ограничимся областью
Лгал,~'/2 ^р ^ Л logra,(7.2)
где Л] <, и обозначим
g = 2 + [(log га)/р] < С + Сга'^-Л1 log га, а
Г9 = 2 5-^/?! (/).
<-о
Воспользовавшись (4.1) и изменяя порядок суммирования, находим, что
У9 = ехр (— е~^)/(1 — p-i1).
Поскольку £ = O(«-1.logn), то
log (Лр/Лп) = - ц/ + 1) (0</<g) и, естественно,
log (Лр/Л„) < — ц/ + т) (Л1 < р < п).
Следовательно, по лемме 4
(Т1/Лп) = У9 + У10 + Уц — У12,(7.3)
где
Гю = Л £ e^hi (0 = т] У9, (-0
П-М
0<Уи<С ^ ^^^^^^^-^(l-е-н)-’=пУ9, t=g+i
0<У12= Гг^Д/Хга'а -е-*1)-1 = т\У9. /-g+i
Отсюда, в силу (7.1) и (7.3),
Т = Л„У9(1+п).
В этом и заключается теорема 4, когда выполняется условие (7.2). Если же p.>31ogn, то теорема 4 вытекает из теоремы 1.
Рассмотрим теперь область
0 ^ ц ^ Ап-1,«.
Для краткости далее будем писать J = J(n). Имеем
—(jlV»)-
Отсюда
log (Лр/Л„) = —ц/—/У + П (0<W) И
log (Лр/Л„) < — ц/ — Я2 + Т) ^КрС п).
В дальнейшем будем писать
У1з==£^-«\ Уи= f/=0f-f+1
По лемме 4 получаем
Tt/An = S e-^-^hx (0 + ЧУ13 + О (Ун).
(-0
Из соотношения (4.2) вытекает ^(О^^' + т] при t>logn. Следовательно,
£ е-^-№кх (/) = 6-*У 13 (1 +11) + О (log п\ t-0
Легко видеть, что logn = T)yl3. Снова Pf2 > Сп'и, и поэтому
t-ж f
Откуда
TJAn = e-lYX3<\A-4^
и далее, в силу (7.1),
Т/Л^Г.О +ч)/Л„ = е--У13(1 +т)) = е-’У15(1 +ч). (7.4) где
У-15 = Ухз + ¥и=^е-^-№.
<=о
Теперь
У 15 = j e-^-w du 4-0(1),о•
и, поскольку б = ур/7, получаем
Г —VLU—Pu? j г—1_б2 С л—®2 Д «-V2 Т- 1 Лб2 о / я\
\ е аи = J е \ е аа> = зх. J е л(—о).
об
Опять
.^х(_б)==^+0(б)>
если 0^6 <Д, и, в силу (1.2),
Г'еЧ (- б) = (2/д)-1 (14-0 (б2)} - ц-1
при большом б. Так как / = т] и ц = т), то имеем
y15 = nvV-’A(-6)(i4-ii).
Отсюда следует справедливость теоремы 7.
ДОКАЗАТЕЛЬСТВО ТЕОРЕМ 5 И 6
Cu/log п < и < Сп.Cu/log п < и < Сп.Предположим, что 6 < Л и q > Ап (последнее ограничение позже будет снято). Поскольку о ~ 2<7/{log(2<7)}, то выполняются неравенства
Cu/log п < и < Сп.
Cu/log п < и < Сп.
Будем теперь писать /=/(о). Напомним, что a/(u) = 0, co"(t>)« = — 2/’ и а)" (р) < 0, так что со (и) — наибольшее значение функции со (р). Обозначим
ст = со (о) — ф (о), X = о7", IF = [и — X], №-1п
I/= min (п, [о + X]), Zx = £ S„, Z2=Esp.
p-M+lp-W
Рассмотрим первое значение p, для которого
IF<p<t7,(8.1)
так что | р — о | < СХ. Тогда
со (р) = to (о) — /2(р — о)2 + у ®"' W (Р — у)3, где р' лежит между у и р, так что
\(i/4pW-vy\<CW
Аналогично
Ф (р) = Ф (у) + ф' (р") (р — у) = Ф (у) + Ц.
Следовательно, по лемме 5
log Лр = a— Pip — у)? + т](8.2)
каждый раз, когда выполняется (8.1). Поскольку / = ц, мы также имеем
logAr = o + 'n, logAF+1 = ст 4-т).(8.3)
Если М < p^W — 1, то с помощью простых вычислений показываем, что to' (р) — ф' (р) > 0, и поэтому по лемме 5 logAp<(o(lF- 1) — ф(^—1) + п = ff-■ ^X^-I-ti^ct —Со7». (8.4)
Если U = v -V Х<р^п, то с/(р) — ф'(р) < О и аналогично
log Лр ^ ст — Со71.(8.5)
По лемме Зив силу (8.4) получаем v-i
Zx < С У, Лр < Сп ехр ст — Со7') < Сце0.
р вМ+1
Снова W>Cnl\ogn, и поэтому, если p^lF, то в лемме 3 имеем 8 = 1] и Z2 = Z3(l + il), где
Z3 = £ ЛрА] (п — р).
Используя (4.2) в случае р^п—[logo], имеем ht^n — p) = e-‘ + T),
в то время как для n — \ogn<.p^n получаем A,(n-p) = e-1 + O(l).
Следовательно, Z3 = (е*1 + n) Z4 + Z5, где
Z4=iX Z5<C 2 Хр,D — Wр*П—[log П]
так что, в силу (8.2), имеем
Z5 < Ce°logn.
Теперь обозначим ип
z6= 2 лр, z7= 2 лр,p-Wp=U+l
где Z7 = 0 при U = n. При U < п, в силу (8.5), получаем
Z7^.Cx\e°.и
Опять, в силу (8.2), Z6 = eaZ8(l + г]), где Z8= 2 e-,,^-0’t,. p-W
Объединив вместе полученные результаты, мы получим, что Z, + Z2 = e°-iZ8 (1 + п) + О И log п\
Простыми вычислениями можно показать, что и
Z^^e-^V-^dt-VOW.
Если 1/ = [о + Х], то имеем
X4-оо
z8= ^e-rodu-VO^= ( e-/,“!d« + O(l)=nl/2/-,(l+Ti). (8.6) -X-ОО
Если U = п < v 4- X, аналогично получается и
^e~J4t-”vdt — n,'12!-'^- d) + O(l),(8.7)
w
где d = (y —u)/. В этом случае п^у(14~л)- Снова ц < < A {(log п)/пУ12 и
о log v = Iq = п log п 4- цп.(8.8)
Следовательно, о^п(14-,п)> и поэтому o = n(14-il)’ Откуда, в силу (8.8),
о — п= |Xrt(l 4- т]) (1 4- logn)-' < С (n/log пУ12
и / (у) = / (д) (1 4-л)* Поэтому
d = (y-n)J(y)^=d(l 4-n) < А.
Если 6 < — А д/log п, то d < — A Vlog п и, Таким образом, Л(— d) = 14"4 в силу (1.3). Следовательно, из (8.7) вытекает (8.6). Если б > — Л-Vlogn, то | б | < Л ->/Xogn и | d\ < A Vl°g "• Отсюда получаем, что X (— d) = X (— б) (1 4" т|), а из (8.7) следует
28 = л|/27-1Ц-б)(1+т)).(8.9)
Из равенства (1.3) ясно, что (8.6) и (8.9) эквивалентны при выполнении условия б< — Ал/Xogn. Собирая вместе последние результаты и напоминая, что К = л1/2/(7е), имеем
Тх = К^е^<-ЪНХ-¥т\У
По лемме 1.
logT^^logn.
Но
ст = о» (о) — ф (у) = 2<7 log у 4~ О (q log log у) =
= 2q log n 4- О (q log log n).
Откуда Т2 = т\Тх и
T = 7<(y)eU(-6)(l+T]).
Из (1.3), (8.3) и некоторых тривиальных вычислений следуют утверждения теорем 5 и 6 в случае q > Ап.
Теперь возвратимся к ограничению q > Ап. Предположим, что q < п(2, так что п > 2q. Тогда б < —Сп^ и Х(—б) = 1 4- т|. Следовательно, этого достаточно для доказательства теоремы 5. Но утверждение теоремы 5 зависит только от <7 и не зависит от п. Снова если п > 2q, то имеем Т(п, q) = T(2q, qy Любой (n, q) -граф может быть получен ровно из одного (2q, <7)-графа добавлением п— 2q изолированных вершин, и обратно. Отсюда если q < п/2, то выберем новое п, скажем п', такое что q > п'/З и п' -> оо при q-yoo.
Таким образом, мы доказали теорему 5 для последних значений п и q.
ДОКАЗАТЕЛЬСТВО ТЕОРЕМ 8 И 9
Имеем
Л (п, <7 4- 1)/Л (n, ^) = ^ — q^Kq 4- 1),
так что первая часть теоремы 8 следует из теоремы 1. Далее, если q < An log п, то получаем
<N-q)Kq-VX) = n<X-V^K2q\
Если р^п-1/4, то воспользуемся теоремой 4. Если положить •ф (р) = exp (— е-11) (1 — е-11)-1, то достаточно доказать, что
.^-1оёФ(р) = Ч.
Имеем
и поэтому
1 °" * W = 0 („(,2,^)') = О (п-«) = ч.
Если 0^р<п~1/4, то нужно доказать,_
что
^-1оё{Л(-д)) = ч.(9.1)
Получаем
^ = ° ^^> -^ 1о£ ^^ <- б» = 26 ~ V^X (- 6)}.
Если д велико, то воспользуемся (1.2); имеем
■^logW-®) = o(l)<C.
При О^д<Л справедливо такое же утверждение. Отсюда следует (9.1).
Если 2</^nlogn, имеем 6^0 и далее применяем теорему 6. Если
V log V ^ 2q < 2 kq + 1) < ф + 1) log (У + 1),(9.2)
то положим и = V (q) = У(<? + 1), если же (9.2) не выполняется, то и = Vkq^ + 1 = V\q + 1). Легко доказать, что Х(—д')/Х(—6)=14-г|, где д' — результат замены q на <?+1 в определении 6. Отсюда получаем
Rкп, q) = {X{u, q + Х^ХМ <?)}(! + ч) =
= { (1 и ки - 1) - q^/кя + D } (1 + ч) = № (1 + Ч).
Это и завершает доказательство теоремы 8.
Поскольку о ~ 2<?/log(2<7), из теоремы 8 следует, что Rkn, q) > 1 для
^ <?<№)-!
при некотором qo = С. Теперь обозначим по = 2q0 + 2 и предположим, что 1 ^ q ^ qo, п ^ п^. Тогда в любом кп. Я) -графе
должны быть по крайней мере две изолированные вершины. Пусть с — наибольшая степень вершин произвольного (п, <?)- графа, и пусть G есть (п, ^)-граф, содержащий такую вершину наибольшей степени. Можно построить (п, q + 1)-граф, соединяя вершину наибольшей степени в G с одной из изолированных вершин; новый граф содержит вершину степени с 4-1. Но из любого (п,^)-графа можно построить (n, q 4- 1)-граф, соединив две изолированные вершины новым ребром; наибольшая степень произвольной вершины этих (n, q 4- 1) -графов равна с, и число таких графов равно Т(п, q), причем все они различны. Следовательно,
Чп, q+V»T(n, q)-H>T(n, q).
Этим завершается доказательство теоремы 9.
СПИСОК ЛИТЕРАТУРЫ
De Bruijn N. G., Applied combinatorial mathematics, Ch. 5 (ed. E. F. Be- chenbach) (New York, 1964).
Comrie L. J., Chambers* six-figure mathematical tables, II (1963), Table XIIA, pp. 518—19.
Euler L., Calcul de la probabilite dans le jeu de recontre, Mem. Acad. Sgl. Berlin, 7 (1753) 255—70; Opera omnia (1), 7 (1923), 11—25.
Euler L, Solutio questionis curiosae ex doctrina combinationum, Mem. Acad. Sci. St. Petersbourg, 3 (1811), 57—64; Opera omnia (1), 7 (1923), 435—48.
Ford G. W., Uhlenbeck G. E., Combinatorial problems in the theory of graphs, Proc. Nat. Acad. Sci. U. S. A., 43 (1957), 163—67.
Gilbert E. N., Enumeration of labelled graphs, Canad. J. Math., 8 (1956), 405—11.
Коршунов А. Д., О мощности некоторых классов графов, ДАН СССР, 193 (1970), 1230—33.
Oberschelp W., Kombinatorische Anzahlbestimmungen in Relationen, Math. Ann., 174 (1967), 53—78.
Polya G., Kombinatorische Anzahlbestimmungen fuer Gruppen, Graphen und Chemische Verbindungen, Acta Math., 68 (1937), 145—254.
Stein M. L, Stein P. R., Enumeration of linear graphs and connected linear graphs up to P = 18 points (Los Alamos Scientific Laboratory, 1963).
. Wright E. M., Asymptotic enumeration of connected graphs, Proc. Roy. Soc. Edinburgh, A 68 (1970), 298—308.
Wright E. M., Graphs on unlabelled nodes with a given number of edges, Acta Math., 126 (1971), 1—9.
Wright E. M., Unlabelled graphs with many nodes and edges, Amer. Math. Soc. Notices, 19 (1972), A-3.
Wright E. M. The probability of connectedness of an unlabelled graph can be less for more edges, Proc. Amer. Math. Soc., 35, (1972), 21—25.
Wright E. M., Arithmetical properties of Euler’s recontre number, J. London Math. Soc., (2), 4 (1972), 437—42.
Wright E. M., A generalisation of Euler’s recontre number, in preparation.
Wright E. M., The number of unlabelled graphs with many nodes and edges, Bull. Amer. Math. Soc., 78 (1972), 1032—34.
Wright E. M., The probability of connectedness of a large unlabelled graph. Bull- Amer. Muth- Soc., 79 (1973), 767—69.
Перечисление плоских триангуляций')
У. Т. Татт
ТРИАНГУЛЯЦИИ-
Пусть Р— замкнутая область на плоскости, ограниченная простой замкнутой кривой, и пусть S — симплициальное разбиение области Р. Другими словами, S есть разбиение области Р на конечное число а треугольников, так что ни одна из вершин одного треугольника не может быть внутренней точкой ребра любого другого треугольника. Треугольники являются «топологическими»; их ребра — замкнутые дуги — не обязательно являются отрезками прямой. Каждые две вершины соединены не более чем одним ребром, и любые два треугольника имеют не более двух общих вершин.
На границе области Р лежат & ^ 3 вершин разбиения S, которые разделяют границу на к ребер (из S). Назовем эти ребра внешними, а остальные ребра разбиения из S, если такие существуют, внутренними. Пусть г — число внутренних ребер, тогда справедливы равенства
За = 2г + к,(1.1)
r = fe(mod3).(1.2)
Назовем S триангуляцией области Р, если не существует внутреннего ребра разбиения S, оба конца которого принадлежат границе области Р. Заметим, что в случае к = 3 каждое симплициальное разбиение является триангуляцией.
Пусть Тх и Г2— триангуляции области Р, имеющие одни и те же внешние ребра. Эти триангуляции будем называть изоморфными, если существует взаимно однозначное отображение f вершин триангуляции Тх на вершины триангуляции Т2, удовлетворяющее следующим условиям.
(i) Каждая вершина границы области Р отображается f на себя.
(и) две различные вершины v и w триангуляции Тх смежны в Тх тогда и только тогда, когда вершины f(v) и f(w) смежны
Tutte W. Т., A census of planar triangulations, Canad. J. Math., XIV, 1 2), 21—38.
(Ш) Три различные вершины и, и и w триангуляции Т\ обраЛ зуют треугольник в Т\ тогда и только тогда, когда вершины?- f(u), f(u) и f(w) образуют треугольник в Т2. '
Триангуляции многоугольника abed, показанные на рис. 1А- и 1В, изоморфны, а триангуляции, представленные на рис. 1В; и 1С, не изоморфны. •
Число неизоморфных триангуляций области Рек внешними и г внутренними ребрами зависит только от к и г, так как все]
возможные области Р гомеоморфны. Обозначим число такихj триангуляций через фп, т, где]
к = т + 3,(1.3)5
г — Зп + т..(1.4),
Ясно, что т и п должны быть неотрицательными целыми] числами (см. [1, 2]). Заметим, что число триангуляций с тремя] внешними ребрами и без внутренних ребер фо, о = 1 • Можно] также проверить, что ф1,о = 1 и ф2,о = 3. В последнем случае] триангуляции получаются тремя вращениями диаграммы, изображенной на рис. 2. Далее находим, что фз, о = 13. Соответствующие ' триангуляции представлены четырьмя диаграммами] на рис. 3. Из первой диаграммы при помощи вращения и отра-i жения получаются шесть триангуляций. Следующие две диа-j граммы дают три триангуляции, а последняя — лишь одну. ;
Будет доказано, что при п ^ 21
%, о = 7ГП)Г (Зп + 3) (Зп + 4) ... (4п + 1).(1.5)
Основная цель настоящей статьи — точно оценить функцию! фп, т (разд. 5).|
Триангуляция называется простой, если любые три ребра,] хотя бы одно из которых внутреннее, не образуют простую замк-;1 нутую кривую, ограничивающую область, разбитую на три или] более треугольников. Таким образом, триангуляция, удовлетво-] ряющая условию п = 1, т = 0, простая. В качестве другого' примера можно взять последнюю диаграмму рис. 3.?
Обозначим через фп, m число простых триангуляций с заданными значениями п и т, В разд. 7 получено явное выражение для функции фп, о, а в разд. 8 изучается поведение функций Фп, о и фп, о при п -> ОО.
Можно показать, что если Т — триангуляция выпуклого многоугольника и вершины триангуляции, принадлежащие границе, являются вершинами этого многоугольника, то триангуляция Т изоморфна некоторой триангуляции, ребра которой — отрезки прямой. Из [1] и теоремы Уитни следует, что 3-связный планарный граф можно уложить на плоскости, по существу, лишь одним способом [2]. В настоящей статье изучаются общие топологические триангуляции, так как в разд. 3 для доказательства
требуется рассмотреть триангуляции областей, не являющихся выпуклыми.•;В разд. 9 исследовано при п->оо поведение числа симпли^ циальных разбиений 2-сфер, разделяющих 2-сферы на 2п тре| угольников.|2. ПРОИЗВОДЯЩИЕ ФУНКЦИИjДалее будем пользоваться следующими формальными сте*;требуется рассмотреть триангуляции областей, не являющихся выпуклыми.•;В разд. 9 исследовано при п->оо поведение числа симпли^ циальных разбиений 2-сфер, разделяющих 2-сферы на 2п тре| угольников.|2. ПРОИЗВОДЯЩИЕ ФУНКЦИИjДалее будем пользоваться следующими формальными сте*;пенными рядами:J
требуется рассмотреть триангуляции областей, не являющихся выпуклыми.•;
В разд. 9 исследовано при п->оо поведение числа симпли^ циальных разбиений 2-сфер, разделяющих 2-сферы на 2п тре| угольников.|
2. ПРОИЗВОДЯЩИЕ ФУНКЦИИj
Далее будем пользоваться следующими формальными сте*;
требуется рассмотреть триангуляции областей, не являющихся выпуклыми.•;
В разд. 9 исследовано при п->оо поведение числа симпли^ циальных разбиений 2-сфер, разделяющих 2-сферы на 2п тре| угольников.|
2. ПРОИЗВОДЯЩИЕ ФУНКЦИИj
Далее будем пользоваться следующими формальными сте*;
Ф(*> </)=Е(2.1)'
п=0 m=S-
Е(2.2);
^ = 0,
ф (^, у) = Е Е Фп. m^"ym,(2.3);
и=0 m=0J
ooJ
АМ=ЕФп.о^п-'(2.4)i
В этом разделе будут получены формулы, позволяющие вы-j числять ряды ф и А, когда известны ф и g.;
Ясно, что каждой триангуляции Т (с числом внутренних ребер г > 0) соответствует единственная простая триангуляция Т' (с г > 0), так что или Т = Т, или Т можно получить из Р с помощью дальнейшего разбиения треугольников. Треугольник триангуляции Р является замкнутой областью, ограниченной тремя ребрами триангуляции Г, хотя бы одно из которых внутреннее, и не содержащейся внутри другой такой области. :
Пусть Тг — простая триангуляция с г внутренними ребрами^ к внешними ребрами и а > 1 треугольниками. Триангуляции^ которые можно получить из Р, перечисляются при помощи ряда {g"(x)}a. Коэффициент при х^ этого ряда — это число триангуля* ций с к внешними ребрами и Зр + у (За — А) внутренними реб* рами. Определим тип через параметры триангуляции Р с по< мощью равенств (1.3) и (1.4) и запишем:
,Зр + у ^а— = 3s + т,;
,111
s = p + ya —ут —у.
Пусть число триангуляций с данным значением s, полученных из Т, равно МЦ. Тогда
s=0
Г 1а оо11
{л:2^^)) = £ М/х2 m 2.s=0
Пусть ^(а, т) — число простых триангуляций с а треугольниками и m + 3 данными внешними ребрами. Тогда
Е у (a, m) {x2g(x)} = х9 E^s.n^x2 т. а=3s=l,
Из (1.1), (1.3) и (1.4) получаем а = 2п + /« + 1. Поэтому предыдущее равенство можно переписать так:
g М Е Ф». т {x',2g (х)}2п {g МУ" = Е -ф5. тх\п=1S=1
Умножая обе части равенства на ут и суммируя по т, получаем
^(^{ф^2^). yg(x))— 1} = -ф(х, у) — 1.(2.5)
Заметим, что из этого тождества можно получить коэффициенты для ф, если известны коэффициенты ряда ф. В предлагаемой работе это выполняется для случая m = 0. Полагая у = 0 в (2.5), получаем
h (xg2 (х)) = 2 — {g (х)}-1.(2.6)
До сих пор вопрос о сходимости производящих функций не обсуждался. Но в этом нет необходимости, если рассматривать уравнения типа (2.5) просто как равенства коэффициентов при хпут в разложениях функций, стоящих в правой и левой частях уравнений. Ниже будет ясно, что все такие коэффициенты являются конечными выражениями через коэффициенты функций ф, g, <р и Л. Однако в дальнейшем будем выражать производящие ряды через простые аналитические функции и, таким образом, установим их сходимость для соответствующих ненулевых значений х и у. '
УРАВНЕНИЕ для ф
Пусть Т — триангуляция области Р с k внешними и г внутренними ребрами, где г =/=0. Пусть А — внешнее ребро с концами х и у, a z — третья вершина треугольника, границе которого принадлежит ребро А. Удалив из области Р внутренность треугольника хуг и все точки ребра А, за исключением х и у.
получим другую область Р', ограниченную простой замкнутой^ кривой. Если L— дуга, дополнительная к ребру А на границей области Р, то граница области Р' состоит из кривой L и двух? ребер хх и ух (см. рис. 4).1
Треугольники триангуляции Г, отличные от хух, определяют] симплициальное разбиение S' области Р'. Это не обязательно! триангуляция, но любое внутреннее ребро разбиения S', оба| конца которого находятся на границе области Р\ должно иметь! один конец в 2, а другой в отличной от х и у точке кривой ЕД Если существует с таких ребер и с > 0, то обозначим их через^ £*ь ..., Ес, а соответствующие концы ребер, принадлежащие^ хj
Рис. 4. j
L, обозначим через ^ь w2. ..., ^с, предполагая, что точки л:,| у, Wt встречаются на L в следующем порядке: х, иц, w2, . .^ .... wc,y. \
При с > 0 ребра Е^ .. , Ес разбивают область Р' на с + Ь замкнутых областей 7%, ^ь •••, Ре. ограниченных простыми; замкнутыми кривыми xxwx, xwxw2, ..., xwcy соответственно, й триангуляция Т порождает триангуляции Т^ Гь ..., Тс этих областей.
Если с = 0, то полагаем Pq = Р' и То = S'. В этом случае- Го имеет по меньшей мере четыре внешних ребра. Если же с > 0, то триангуляции Tq таким образом не ограничиваются^
Ясно, что можно получить все триангуляции области Р с к фиксированными внешними ребрами, одно из которых — ребро А, и заданными величинами г и с. Для этого начинаем с диа* граммы, изображенной на рис. 4, и рассматриваем все множен ство триангуляций областей Р^ совпадающих с Г на кривой ЕД которые содержат ребра хх, xwx, ..., xwc, zy и которые привод дят к допустимому значению г. ,
Пусть величины тип определены для триангуляции Т из равенств (1.3) и (1.4). Пусть триангуляция Tq имеет kq внешних и rq внутренних ребер; mq и nq определяются соответственно. Тогда
^rq = r — с — 2,(3.1)
<7-0 4
Ек = 6 + 2с + 1,(3.2)
<7-0'
^та — т — с+1,(3.3)
<7-04
■2 nq = п— 1.(3.4)
<7-0
Из приведенных выше соображений следует, что если г >0, то
Фп, т = 52 S П Фпа,(3*5)
с=0<7-0 q q
где второе суммирование ведется по всем упорядоченным множествам неотрицательных целых чисел (п0, ..., пс, т^ ..., тс), удовлетворяющих равенствам (5.3) и (3.4). Но сумма
52 П та9
<7-0 q q
встречающаяся в равенстве (3.5), является коэффициентом при xn~i ym-c+i в выражении {ф(х, у)}с+1, т. е. коэффициентом при хпут в
ху-Чи^^х, y)Y+1.
Отсюда нс следует, что, просуммировав это выражение по с, получим ряд ф(х, у). Во-первых, ф(х, у) имеет свободный член фоо = 1, а равенство (3.5) не применимо в случае г = 0, т. е. т = п = 0. Во-вторых, по построению, связанному с рис. 4, требуется &о ^ 4, т. е. mo^ 1, если с = 0. Принимая во внимание эти ограничения, получаем
- ф + xy-'g = 1 + ху-2 2 (уФ)с+‘.(3.6)
с=0
где ф = ф(х, у) и g = g (х).
Умножая обе части равенства (3.6) на у(1—уф) и перегруппировав члены, получаем
(уф + xg — у)(1 — уф) = хф,(3.7)
что можно переписать следующим образом:
Z/V + (я + Xgy — у — ih^-Vy — xg = 0.(3.8)
Теперь наша задача состоит в нахождении из уравнения (3.8) функции ф в виде степенного ряда по степеням х и у и функции g в виде степенного ряда по неотрицательным степеням х. Из равенств (2.1) и (2.2) вытекает требование g^ = = ф(х, 0). Однако это условие не является независимым — оно получается из (3.8) подстановкой у = 0.
Переходим к доказательству того, что уравнение (3.8) имеет единственное решение относительно ф. Полагая х = 0 в любом таком решении, получим степенной ряд ф0 по у; ряд ф0 должен удовлетворять условию
£/2Фо— # <У + 1)^0 + ^ = 0» т. е.
У(У^о— 0 (Фо — 1) = 0.
Но единственный ряд по неотрицательным степеням у, который удовлетворяет тождественно этому уравнению, — это ряд с единственным членом 1.
Запишем теперь
ф=2 ф^»
где фг — степенной ряд по у. Было показано, что фо = 1. Приравнивая коэффициенты при хп в (3.8) для п > 0, получим выражение (у2— у^п через фо, фь • ••, фп-ь Следовательно, по индукции ряд ф определяется из равенства (3.8) единственным образом. (Используем тот факт, что £(я) = ф(х>О)=2(фД/„ояп.)
РЕШЕНИЕ УРАВНЕНИЯ (3.8)'
Решение уравнения (3.8) можно получить из решения квадратного уравнения
У2 + Y (1 -t + 0/) + 6< = 0,(4.1)
где 9 и / — независимые переменные. Существуют два решения У1 и У2 уравнения (4.1) относительно У в виде ряда по степеням t и 6, соответствующие постоянным членам 0 и —1. Эти решения можно найти, применив биномиальную теорему к выражению
{- (1 -1 + ео ± {(1 -1 + е/)2 - 4ez}v*}.(4.2)
Отсюда получаем У1 или У2 в зависимости от знака перед корнем. Эти ряды сходятся для достаточно малых значений 9 и Л Если взят положительный знак, то, когда одна из величин 6 или
/ равна нулю и какой бы ни была другая величина, выражение (4.2) обращается в нуль. Кроме того, получено, что в этом случае коэффициент при 0/ равен —1. Это утверждение следует из того, что -^- и -у- являются рядами по степеням 0 и t (без отрицательных степеней) с постоянным членом —1. Значит, существует степенной ряд Ф относительно переменных 0 и t (без отрицательных степеней), определяемый следующим уравнением:
1 + е/ (— 1 + Г| — (] + г),).(4.3)
Обозначим
Ul = УПТ4Т+ G = 1, 2).
Тогда
т] U
12 — Г1Уг (] + Yi ++ У1у2)2—
—1(4 4)
е<(1-о+ e/) + et)2 ’ k j
„- ^(^i + ^i + ^ + ^ + s^ + y^) _
y,y2(i + r, + y2 + y,y2)2—
= Г2 {(У, + У2) (У, + y2 + I)2 - У,У2 (ЗУ, + ЗУ2 + 4)} =
= Г2{(-1 +(i -6)0(1 — 6)2/2 —6Ц1 +3(1 -6)0 =
= - 6Г1 - (1 + 6 - 263) + / (1 - О)3.(4.5)
Следовательно,
(^ + l)(t/2+ 1) = — 0 (1 — 20) + < (1 — 0)3,
(Ю + 1) + ((/2 + 1) = - 0Г1 + (1 - 6 + 262) + t (1 - О)3.
Отсюда получаем, что Ф — решение квадратного уравнения
(1 - 6)6/2ф2 + (ег1 - (1 - о + 2б2) -
-t(l -0)3)(1 -О)3^Ф-0(1 — 20) + ^(1 -0)3 = 0.(4.6)
Это уравнение становится эквивалентным уравнению (3.8), если положить ф = ф и
у = (1-6)30(4.7)
х = 0(1 -0)3,(4.8)
Х£ = 0(1— 20).(4.9)
Предположим, что 0 — то решение, полученное из теоремы
Лагранжа, уравнения (4.8), представленное в виде ряда по
степеням х, постоянный член которого равен нулю. Тогда из равенства (4.9) g определяется как аналитическая функция от х [3, стр. 132]. Действительно, по теореме Лагранжа имеем
хп~х Г dn-x 1—46 1
L^тг (1 -е)3" Je-o
3(1 - 6)3п+33(1 - 6)3п+3Ехп dn Г 4 (п+1)!1(1 —в)3"4"2
3
(1 - 6)3п+3
3
(1 - 6)3п+3
= 1 + £77^№ + 2)(3« + 3)---(4« + i)-
""'— 3(3п + 3)(3я + 4)... (4м + 2)},
g = 1 + x + 2 £ -^jp (Зи + 3) (3n + 4)... (4и + 1).(4.10)
n=2
Из замечаний в конце разд. 3 заключаем, что ф совпадает с функцией Ф, определенной равенством (4.3), а функция g действительно удовлетворяет равенству (4.10). Отсюда следует равенство (1.5).
КОЭФФИЦИЕНТЫ ФУНКЦИИ ф
Уравнение (4.1) можно записать следующим образом:
у = (/-!)-6/(1 +^у(5.1)
Мы считаем / фиксированным ненулевым числом и используем теорему Лагранжа для разложения в ряд по степеням 9 функции
' У (1 + У)2 *
Получаем
где а должно быть приравнено к t — 1 после того, как выполнено дифференцирование. Разумеется, функция U соответствует только одному из корней У уравнения (5.1). Теперь можно написать
/ = 1
Запишем
А - ТГ <В} = (Г^Ж <> " « + 3» =
= 3/(1— ^ - (9/ + 1) (1 - о + (9/ + 3) - ^±Г + й^ТР • <5-4> Тогда
-"„-SHl-fl + PHlI-^g^ + ji^, (5.5) d2A_Ri 3.2-1.(/+1)32,, .
-57Г - 6/-(5.6)
и, если / > 2, имеем
d^A /: । 1 Xi f —3 I 1),
dt1 — ^+ ),{"^Г^7+т + (i_/)/+2j-(5.7)
Применяя эти формулы к равенству (5.3), разложением функции /1-3j(l— /)-1 в ряд по степеням t и почленным дифференцированием получаем
^ 1Л (/+1)! ^/-1 I ^ I-</))]
Ч-Т^ + е'!жг2(4 + 6'> + ЭТ12И =
n^V ^ti V ('” + 2)!(m-l)!(m-3/) tm-i
—WZj/I(/+1)I L (m — j + 2)! (m — j)l 1
/=1m=\
_|_-Аг + е2(2 + зо-е3/.
Мы должны предположить, что |/|<1. Пусть теперь U — одна из функций Ux и U2 из разд. 4. Через U' обозначим другую функцию. По равенству (4.5) функция IP нс содержит членов с t-x и может быть представлена степенным рядом относительно 9 и I без отрицательных степеней, а функцию (7, которая содержит член —0//, представить так нельзя. Следовательно, U'— это функция [7Ь использованная в (4.3). Поскольку ф отождествлена с функцией Ф этого уравнения, из равенств (4.5) и (4.7) получаем
V V (т + 2)! (т - 1)! (т - 3/)/ ,
m=\/=■!
+ т^7-02(2 4-ЗО + 03/-(1 +0-202) + /(1 -6)3+ 1,
^-/(1-20) + 0/2, р + 2и7Гт)ц^7+Ж^7)Г0 Г
т-1 k /-1
Следовательно, по равенству (4.7) имеем
.1-26 ।
^ — (1-е)3 +
(5.8)(5.8)VУ™V (^ + 2)l(m — 1)! (m — 3/) fl/+i
(5.8)
(5.8)
2а и _ 6)3m+3 2а jt и +W^m-i + 2)! (m - /)! ° т=*\ х ’j=0
Для того чтобы выразить функцию гр непосредственно через х и у, найдем разложение функции 0^(1— 0)-^ в ряд по степеням х, где р и q— положительные целые числа:
6Р у Г ds~x (1 d еР 11_
(i-e)t L si [de5-1 I (i-e)3s de (i-e)9 JJ6,0”
= У — Г-222- f ap-' f q + p-q UI =
^ sl Lde5-1 ( I (i -6)3s+‘?+1 (i — e)3s+’ j j]6_0
= yXJqГ_<1/6р-'_^1/_1_и1 ,
^0 si 1 (3s+ 9)i Ldes-‘l de3s+Ui -eV J J0=o +
+ —( 1 A11 1 =
(3s + 9-i)! Ldes-‘I de3^’-1 l(1-e)J JJ0_oJ '
E
xs f q (4s + q — p)! (s — 1)! . (p — 9) (4s + 9 — p — 1)1 (s — 1)! 1 _ SI I (3s + 9)! (s - p)l(3s + 9- l)|(s-p)l
s=p
eP -у Us + ^-p-Dix^
(1 -6)9+ L ks-pY^sA-qV •
s=p
Приведенное доказательство справедливо также для р > О и q = 0. Следовательно, равенство (5.9) выражает величины 0, 02, 03 и т. д. через х.
Объединяя формулы (5.8) и (5.9), находим, что для т>0
У (т + 2)1 (т — 1 )1 (^ — 3/)(4/г + Зт — / + 1)! (Зт + 3/ + 6),
Zj /! U + 1)! (т - / + 2)! (щ - /)! (п - i - 1)1 ^п + Зт + 3)!*
где рассматриваются только значения / ^ и— 1. Следовательно, для m > О имеем
3 (т +2)! (т — I)! х/
Vn, rn —(3n + 3m + 3)1 A
X/ V (4n + 3m — / + 1)1 (m + j + 2) (m — 3/)„ /к 1 m
Л L jVti + 1)! (m - /)! (m - / + 2)! (n - / - 1)! •1U1
/=o
Для случая m = 0 из соотношения (4.10) имеем.
_2(4п+1)|..,
тп, о — (Зп4-2)!(п+ 1)! 11D1U
Частными случаями формулы (5.10) являются
,72 (4и + 3)!/с 1О.
'1 = (Зга Ч- 6)1 (га — 1)! ’-12)
60 (13« + 9) (4га + 5)!,-
.120 (67n2 + 138n + 6g) ^п + 7)!,„ ...
^ з - / * (5га + 1$)! (га — П1'(б‘ 14>
ЗАМЕЧАНИЯ
Решение уравнения (3.8), приведенное выше, было получено следующим непрямым методом. Разложение функции ф в ряд по степеням х, у и неизвестной функции g приводит к формуле
_ у ^^пЧ^-г-б + 2)!_^^^(6 п
Vm 2-1 ^т^Т^Т)Г(т^Т+1)Гк^^^Л)
0<Z</n+l
Здесь фш — сумма членов функции ф, содержащих ут. Разложив (xg+ l)z-2fe и просуммировав по /, эту формулу можно заменить следующей:
— ^+1фт =
= ЧП.x,+k(— gV (т — k-V 1)1 (m — fe)l,R
2-4!\61 (/ + fe - 1)1 (m - ft - j + 2)1 (m - 26 - / 4-1)! 1'°"^
0</ <OO,
0<fe < oo
Если бы коэффициенты функции g были известны, ТО ЭТО COOT-ношение дало бы коэффициент при хп в 'левой части в виде многочлена от т при условии, что т достаточно велико. Ранее было доказано, что этот полином должен тождественно равняться
нулю. Следовательно, можно положить m = 0 в выражении слева и затем приравнять полученное выражение нулю:
V^ + / ~ 2)1(2^ + / - 3)!,.
Zu /!^!(^-2)!(^~ 1)!(^ + /-1)!
/. *
Используя это уравнение для вычисления первых нескольких членов ряда g, получим
g = 1 + х + Зх2 + 13х3 + 68х4 + 399хб + 2530х6 +
+ 16 965х7 + 118 668х8 + 857 956х9 + 6 369 838х10 + ... . (6.4)
(Последнее согласуется с формулой (5.11).) Затем была вычислена функция X, обратная к xg, и оказалось, что ее коэффициенты имеют только небольшие простые множители. Изучение разложения на множители довольно быстро приводит к следующему выражению для функции к
^-(1 + 20х - 8л2 - (1 - 8х)3/’)-
Затем соотношение между g и х было представлено в параметрическом виде (4.8) и (4.9). После этого коэффициенты при у, у2, • • •, У6 ряда гр выражаются через 0 с помощью приравнивания коэффициентов при ут в равенстве (3.8). Опять оказалось, что числовые коэффициенты имеют простые множители, в результате был найден общий вид (5.8) ряда гр.
На этом этапе получаем решение уравнения (3.8), но без доказательства. Автор весьма обязан Дж. Ф. Д. Даффу, показавшему как привести ряд (5.8) к виду, который можно рассматривать как разложение функции по теореме Лагранжа, что сделало возможным построения, выполненные в разд. 4 и 5.
ПРОСТЫЕ ТРИАНГУЛЯЦИИ '
Перейдем теперь к нахождению функции h из тождества (2.6). Положим х = г2 и g = zg(z2); тогда
Ш^ = ^-г.(7.1)
Поэтому, если обозначить через Н(х) функцию, обратную к xg(x2), получаем
(7.2)
и исходная задача сводится к определению Н. Вычисляя первые несколько членов и записывая х вместо g2, находим
h (х) = 1 + х + х3 + Зх4 + 12х5 + 52х6 + 241х7 + 1173х8 + ... . (7.3)
Чтобы получить общую формулу, поступим следующим образом. Определим величину 6, как в разд. 4, и положим х = z2. Тогда имеем
|Я© = х^(х) = 9(1-26),(7.4)
S2 _ kxg W)2 _ е (1 - 20)2,
6 X(1-0)3 ’
_ |2 (1 _ 6)3
У (1 — 20)2 •(7‘6)
Применяя теорему Лагранжа, находим
^) = £п=0^) = £п=0(п+ 1)1(п+ 1)1dn ( (1 -0)3п+3Мп t (1 - 20)2п+2dn ( (1 -0)3п+3Мп t (1 - 20)2п+2
^) = £
п=0
^) = £
п=0
(п+ 1)1
(п+ 1)1
dn ( (1 -0)3п+3Мп t (1 - 20)2п+2
dn ( (1 -0)3п+3Мп t (1 - 20)2п+2
_ у _|^_ Г dn | 2-3n-3 (1 + 1 - 20)3п+3 (2 (1 - 20) - 1) 11_
("+•)! LdOn I(1—20)2"+2JJe-o”
оог*Л Зм™|~3
= у^1л) у (f3n+3hi-2evlx
L 23^+3 (п +1)! de" I L I k / )u Z0) Jл
п=0'17 L V / = 0
Х { (1 - 20)2"+' ~ 7^20)2^ }}] о-О —
°° о Г Г Зп+з
Л 2 У (3" + 3)(1-2еу-="--
г-i 23п+3(п + 1)! d0" I ^ х 1)
n=0 х/=0
Зп+З\ -I
-х(з"Г)(1-мгм( -
/=о) Jq=o
= У Аг 1 2 (1 - 20)n+2 - (1 - 26)”2п”2 +
23rt+3 (м + 1)! L d0n 1 \\“
Зм+З
+ x{2(3;-+13)-(373)}<i-29>w}]
n Г Зп А 3 \/ Зп А 3 \ (Зи А 3)!
_ (Зп + 3)1 (3/- Зп - 4) /I (Зп - / + 4)1
Поэтому
СО
Г'Н ® = У -з^тЛ^{ (-2)" (п + 2)I - 2" (3га+ 1)1 + ^23+3(«+l)lU(2п+1)!
Зп+ЗЗп+З+ (—2)п(3и + 3)!+ (—2)п(3и + 3)!/ = 1/ = 1сз/—зп—4Ц/--2п--2^/I (Зп - / + 4)1сз/—зп—4Ц/--2п--2^/I (Зп - / + 4)1
Зп+З
Зп+З
+ (—2)п(3и + 3)!
+ (—2)п(3и + 3)!
/ = 1
/ = 1
сз/—зп—4Ц/--2п--2^
/I (Зп - / + 4)1
сз/—зп—4Ц/--2п--2^
/I (Зп - / + 4)1
= Ё 55^^ {(-1)- („ + 2)1 + (3„ + 3)! X
2п-Н
х z ^т^^хл+<-1 г (б„+5) <„+о, + /=0
+ 1(-1)"(Зп+3)(6п + 2)»!}.
Следовательно, для п > 0 по формуле (7.2) имеем
<Рп.о = ^+з-{-(-1)п(16п+Ю) +
(7.7)(7.7). (3n + 3)l у* М (п, д)(п+1)! 2-1 (п —9)1(п + ^+1)!
(7.7)
(7.7)
q-0
где / = (п — q, п + q + 1) и
^(«>9)(2п + 7 + 4)(2п + <7 + 3)(2п + <7 + 2)
Формулу (7.8) можно привести к виду
М(п, q) = D~'(4Qn3- 12n(6q2 + 6q- 11)--
- 10n(15<?2+ 15<?- 14)-6(<74 + 2^+ 13<72+ 12^ — 8)), (7.9)
где D — произведение знаменателей в формуле (7.8).
АСИМПТОТИЧЕСКИЕ ФОРМУЛЫ
Исследуем поведение функции фп, о при п-+оо с помощью применения теоремы Стирлинга к формуле (5.11). Находим
° ~ (Зп + 2)3"+2 e~3n-2 V2n (3n + 2) (n + l)n+1 e~n~l V2n(« + 0 ~
2e2 (4n)4"+I f 1 4l_Vn+1
2e V+4nJ4n+l
+^)"+>. (1+l)w~
2 • 256" 4Z~4~
.~ n2-27" " 9 Д/ 6nn ’
Поведение функции фп, m при n->oo для других фиксированных значений m можно получить аналогичным образом из уравнения (5.10) или его частных случаев (5.12) — (5.14). Возможно, поведение функции <рп,о более интересно, и его можно определить следующим образом. Заметим, что
п
2 (2"-) у ■'+^+,+1)=d+
X (^-^ ) ^п~ ^Х"-O^-^ + Cw+ <?+!) (« + ^)^+,_1} =
<7=0
= (2п+ l)(2n)(l +xfn"'.
Положив в этих тождествах х=1, получим
п"
ZC^'W”.(8-2)
^=0
п
(8.з)
<7=0 •
Также имеем
(7-1
('^ Л-е'.1 ') Пт^^Т- (8.4)
s=0
Обозначим ^ = ^п2/зУ Тогда по формулам (8.2) и (8.4)
Для достаточно больших п получаем, учитывая, что, если |х| > 0,
ТО 1 — X < в~х,
(n + 2J + 2) (n + 2J + 3)(n — 2J) (n — 27 — 1)(n + 2J + 2) (n + 2J + 3)(n — 2J) (n — 27 — 1){2J+1 тт <n~s) 11 (n + 2 + s) s= J+1
(n + 2J + 2) (n + 2J + 3)(n — 2J) (n — 27 — 1)
(n + 2J + 2) (n + 2J + 3)(n — 2J) (n — 27 — 1)
<22"{1 — (£±1)у+-Х2<
< 2 • 22пехр { —^*'2 } < 2 • 22пехр { --^ri'* } .(8.5)
Функция D в (7.9) удовлетворяет неравенству D-1 < ц-6, так как 0 ^ q ^ п. Сумма абсолютных величин коэффициентов многочлена от п и q, который умножается на D-1, меньше 1000. Следовательно,
\М^п, у) |< ЮООп-2.(8.6)
Далее
р« +1 Ч
V п — q )
— убывающая функция от q при 0 ^ q ^ п (по формуле (8.4)).
Таким образом, из неравенств (8.5) и (8.6) получаем
ппЕр + 1X п — q q-11-НЕр + 1X п — q q-11-НппEpn+ 1\ n-qq~2J + \nEpn+ 1\ n-qq~2J + \nЕ/ 2м+ 1X n — q q = 2J+\Е/ 2м+ 1X n — q q = 2J+\2000п-‘22"2000п-‘22"(8.7)(8.8)(8.9)(8.7)(8.8)(8.9)
п
п
Ер + 1
X п — q q-11-Н
Ер + 1
X п — q q-11-Н
п
п
Epn+ 1
\ n-q
q~2J + \
n
Epn+ 1
\ n-q
q~2J + \
n
Е/ 2м+ 1
X n — q q = 2J+\
Е/ 2м+ 1
X n — q q = 2J+\
2000п-‘22"
2000п-‘22"
(8.7)
(8.8)
(8.9)
(8.7)
(8.8)
(8.9)
Ограничимся теперь значениями q ^ 2Z. Для этих значений имеем
(2n + 2Z + 4)"6<Z)_I < (2n-2J+ I)"6,(8.10)
M<n, q^ = D"4^na-T2n4q2-¥q^-Vb,(8.11)
где
|6|<n-6- 1000n^= 1000n-,0\(8.12)
Обозначим через e произвольное действительное положительное число и обозначим
2/
q = 0
2м+ 1 п — q
М^п, q).
Тогда для достаточно больших п по формулам (8.10), (8.11) и (8.12) имеем
2/
X < {40п3 (2га - 27 + I)"6 + 1000п~10/*} £ ( 2" ^ ) -
q=0
2J
- {72га2(2га + 27 + 4)"6} £ ( 2"^ ) (?2 + ?)
< {40га3(2га - 27 + I)"6 + 1000га-'’/’} (22"} -
- {72га2 (2га + 27 + 4)"6} {1 га22" - 2га(га2 + га) 22" ехр{ - ^п'/’}}
и по формулам (8.2) (8.3) и (8.8)
< га322" {40 (2га)"6 (1 - е)"6 + era-6 - 36 (2га)"6 (1 + е)"6 (1 - е)}.
Аналогично для достаточно больших п получаем
X > {40га3 (2«+27+ 4)~6- ЮООп-10/’} { 22"-2га22п ехр { - ^ п'^ } } -
- {72га2 (2га - 27 + I)"6} ^п22п } >
> га322" {(40 (2га)"6 (1 + е)"6 - era"6) (1 - е) - 36 (2га)"6 (1 - е)"6}.
(Зга 4- 3)!22п )(п + 1)!(2п+ 1)! 16п3 /(Зга 4- 3)!22п )(п + 1)!(2п+ 1)! 16п3 /Так как число е может быть сколь угодно малым, то X ~ ~ -~п-322п. Следовательно, из (7.7) и (8.9) по формуле Стирлинга имеем
(Зга 4- 3)!22п )
(п + 1)!(2п+ 1)! 16п3 /
(Зга 4- 3)!22п )
(п + 1)!(2п+ 1)! 16п3 /
т..«~^{-(-1)“(16'>+1°) +
~^{-<-1)”<16"+10) +
Отсюда вытекает
158 VI(тГ'.<8-13)
СИМПЛИЦИАЛЬНЫЕ РАЗБИЕНИЯ 2-СФЕРЫ
В этом заключительном разделе обсуждается поведение при п->оо функции Q(n), определенной как число комбинаторно различных симплициальных разбиений 2-сферы 2п треугольниками.
Изоморфизм таких разбиений можно определить так же, как изоморфизм триангуляций в разд. 1. Но, так как в рассматриваемом случае понятия границы не существует, необходимы
лишь условия (ii) и (Ш). Когда говорят, что два разбиения комбинаторно различны, это означает, что они не изоморфны.
Автоморфизм разбиения S — это изоморфное отображение разбиения S на себя. Любое разбиение S имеет тривиальный или тождественный автоморфизм, который отображает каждую вершину на себя. Разбиение S называется симметричным, если оно имеет нетривиальный автоморфизм, и несимметричным в противном случае.
Заметим, что n^l, так как любая пара треугольников симплициального разбиения имеет не более одного общего ребра. Обозначим через ао, он и аг число вершин, ребер и треугольников соответственно. Затем, используя формулу Эйлера для многогранников, получаем
а0 = м + 2, а1 = 3п, а2 = 2м.(9.1)
Пусть t — треугольник разбиения S. Стереографическая проекция из точки X, принадлежащей внутренности треугольника I, на плоскость порождает триангуляцию Т на этой плоскости с тремя внешними ребрами. Она определяется образами треугольников разбиения S, отличных от I, а ее внешние ребра являются образами ребер треугольника I. Если разбиение S не симметрично, то шесть вращений и отражений диаграммы триангуляции Т определяют шесть различных триангуляций. Потому что, если две из них эквивалентны, очевидно, можно построить нетривиальный автоморфизм разбиения S. Аналогично два различных треугольника разбиения S никогда не приводят к эквивалентным триангуляциям. В случае если S симметрично, некоторые из его треугольников могут дать меньше чем шесть различных триангуляций и не все из его треугольников дадут различные множества триангуляций.
Пусть Qo(^)—число комбинаторно различных несимметричных разбиений, a Qi(n)—число комбинаторно различных симметричных разбиений. Тогда из приведенных выше соображений имеем
X2nQQ(n)^n_v,Q<A2n(Q0^(9.2)
Кажется, это верно, что Qi (n)/Qo(^)->0 при п->оо. Если это так, то из (9.2) и (8.1) следует, что
Q (п)п-^ (-^Г.(9.3)
Х 764 Убл V 27 7V 7
Подобная аргументация применима и к числу R(n?) «простых» симплициальных разбиений сферы, на которой никакие три ребра не образуют простую замкнутую кривую, если они не
ограничивают треугольник разбиения. Вместо (8.1) используем формулу (8.13). Отсюда получаем, что
R (м) ~7= п~^ f—У.(9.4)
’ 512УЗл V 4 2х ’
СПИСОК ЛИТЕРАТУРЫ
Tutte W. Т., Convex representation of graphs, Proc. London. Soc., 3rd ser., 10 (1960), 304—320.
. Whitney H., 2-isomorphic graphs, Amer. J. Math., 55 (1933) 245—254.
Whittaker E. T., Watson G. N., A course of modern analysis (Cambridge, 1940).
Четыре основных параметра кодаи их комбинаторное значение1)
Филипп ДельсартИсследовательская лаборатория MBLE,Брюссель, Бельгия
На основании распределения расстояний произвольного кода и его преобразования Мак-Вильямс определяются четыре параметра кода, которые в линейном случае сводятся к минимальному весу и числу различных весов данного кода и дуального к нему. В общем случае выясняется комбинаторный смысл этих параметров и с помощью их получаются различные результаты относительно метрических свойств кода. В частности, предложен метод вычисления распределения весов классов смежности кода. Кроме того, представлено и подробно исследовано «дуальное понятие» для совершенного кода.
ВВЕДЕНИЕ
Распределение расстояний кода С длины п над конечным алфавитом F любого порядка ^^2 определяется как (п+ 1)- последовательность (Л0(С), ЛДС), ..., ЛП(С)), где Лг(С) обозначает среднее число кодовых слов, находящихся на расстоянии Хэмминга I от фиксированного кодового слова. Для линейного кода над некоторым полем или вообще для аддитивного кода, т. е. кода, образующего абелеву группу, это просто сводится к классическому распределению весов.
Для такого аддитивного кода определим четыре параметра d, s, d' и s'. Целые d и d'— минимальные веса данного кода С и дуального к нему кода С соответственно, целые s и s' — числа различных весов кодов С и С' соответственно. Так как распределения весов кодов С и С' можно вывести одно из другого на основании преобразования Мак-Вильямс ([15], [7]), эти параметры однозначно определяются распределением весов кода С.
Для произвольного кода параметры d, s, d' и s' формально определяются тем же способом, т. е. на основании распределения весов кода и его преобразования Мак-Вильямс. Тогда d — обычное минимальное расстояние и s — число расстояний
9 Delsarte Ph., Four fundamental parameters of a code and their combinatorial significance, Information and Control, 23, № 5 (1973), 407—438.
В
1973 by Academic Press, Inc.
Перевод на русский язык, «Мир», 1977.
между различными кодовыми словами. Как показано в этой статье, два остальных параметра также обладают интересными комбинаторными свойствами. Любая ^-последовательность над F по крайней мере от одного кодового слова удалена не более чем на s'; по этой причине s' называется внешним расстоянием кода. С другой стороны, параметр d', называемый дуальным расстоянием, представляет собой наибольшее целое, обладающее тем свойством, что каждое (d'—1)-подмножество координат кода содержит всевозможные (d' — 1)-последовательности над F постоянное число раз. Иными словами, d'— 1 есть максимальная сила ортогонального списка, образованного кодовыми словами (по поводу этого понятия см. [4]).
В настоящей статье выведены, исходя из распределения расстояний, некоторые свойства кодов. Материал расположен следующим образом. В разд. 2 в тесной связи с полиномами Кравчука напоминаются определение и некоторые свойства формального преобразования Мак-Вильямс. Затем на основании распределения расстояний кода и его преобразования МакВильямс вводятся четыре параметра.
Раздел 3 посвящен исследованию расстояний между словами кода и всего пространства Fn. В п. 3.1 определяется матрица расстояний для Fn относительно кода длины п как (^n X X (^ + 1))-матрица, элемент (е, V) которой равен числу кодовых слов, находящихся на расстоянии I от данной м-последо- вательности е над F. Показано, что для кодов с данным распределением расстояний эта матрица однозначно определяется своими первыми s' столбцами. В качестве приложения с помощью результата Ассмуса и Мэттсона [2] найдено распределение весов всех классов смежности удлиненного двоичного квадратично-вычетного кода длины 48. В п. 3.2 установлена нижняя граница для числа слов в кодах, обладающих заданным внешним расстоянием s', а именно
<м)
Показано, что эта оценка достигается для кода тогда и только тогда, когда он является совершенным кодом с исправлением s' ошибок. "
В разд. 4 исследуются параметры s и d' с помощью характеристических матриц [7]. Сначала в п. 4.1 для g-ичных кодов длины п, имеющих s расстояний, получен дуальный аналог неравенства (1.1)
ICK^")^-!/. (1.2) i-0
Коды, для которых достигается равенство в (1.2), называются обобщенными кодами Адамара (ОА-кодами) порядка s. Для аддитивных кодов, в силу их дуальности, неравенства (1.1) и (1.2) выводятся одно из другого. Следовательно, понятие ОА- кода порядка s можно рассматривать как дуальное понятие к совершенному коду с исправлением s ошибок. Для ОА-кодов найдено сильное необходимое условие, состоящее в том, что расстояния такого кода должны быть нулями полинома Ллойда степени s (см. [13], [11] и [7] по поводу соответствующего результата для совершенных кодов). Затем в п. 4.2 выясняется комбинаторный смысл дуального расстояния d', о котором было упомянуто выше. Это приводит к новому доказательству принадлежащего Рао [19] неравенства для g-ичных ортогональных списков силы dr— 1
ic^ZO^-1)'’ (1.3) i=0
где V = Yk^—1)/2]. Фактически неравенство (1.3) можно считать дуальным к границе сферической упаковки в том же смысле, в каком (1.2) считалось дуальным к (1Л). Наконец, в п. 4.3 показано, что условие достижения равенства в (1.3) можно выбрать в качестве эквивалентного определения ОА-кодов порядка f.
Раздел 5 посвящен метрической инвариантности кода и свойствам некоторых множеств кодовых слов фиксированного веса образовывать t-блоки. Показано, что любой код, параметры которого удовлетоворяют любому из неравенств d' ^ s или d ^ s', метрически инвариантен. Результаты по Лблокам подобны результатам, полученным Ассмусом и Мэттсоном [1] для линейных кодов, особенно в двоичном случае; следует также упомянуть связь с работой Семакова, Зиновьева и Зайцева [20]. Приведены некоторые примеры, в частности блок-схемы, построенные из кодов, открытых Кердоком [10].
Обобщенные коды Адамара (ОА-коды) подробно исследованы в разд .6. Найдена явная формула для распределения расстояний (или весов). В качестве применения показано, что единственными существующими ОА-кодами третьего порядка над некоторым полем являются два хорошо известных двоичных линейных кода.
ОПРЕДЕЛЕНИЯ И ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Прежде чем вводить четыре указанных параметра, приведем некоторый материал по распределению расстояний кода и его преобразованию Мак-Вильямс. Для дальнейшего вспомним
определение скалярного произведения в абелевых группах и его связи с весом Хэмминга и полиномами Кравчука. Доказательства теорем, сформулированных в этом разделе, можно найти в недавней работе автора [7]; каждый раз даются точные ссылки на соответствующие результаты этой работы.
Преобразование Мак-Вильямс. При заданных положительных целых числах п и К полином Кравчука PkW степени к над полем рациональных чисел определяется формулой ([23])
к
рь^ = ^-^кч^У^УУ o<fe<n, (2.1) /=0
где ( у ) = х (х — 1) ... (х — j + !)//!• Если задана («+1)-по- следовательность А = (До, Дь • Дп) рациональных чисел Д,, то ее преобразованием Мак-Вильямс называется (и + 1)-последовательность А' = (До, Д1А»), где
Д^ЕД^ДО, 0<й<п,(2.2)
i = 0
и PkW—полином Кравчука (2.1). В матричной форме это можно записать в виде Л' = АР. где Р обозначает квадратную матрицу порядка п + 1, элемент (t, &) которой есть Рк^У-
Р = [Р^); о</, £<п].(2.3)
Будем называть эту матрицу матрицей Кравчука. Из равенства Р2 = (Х+1)п/ [7, теорема 3] выводится следующий результат, принадлежащий Мак-Вильямс [15]:
Теорема 2.1. Преобразование Мак-Вильямс взаимно однозначно и удовлетворяет соотношению (Л')' = (X + 1)ПЛ для любой (п + \ упоследовательности А.
Для того чтобы установить соответствие между приведенным выше определением и обычной формой тождеств Мак-Вильямс, заметим, что (2.2) ~ можно записать в полиномиальной форме как
А' (у, z) = Д (z — у, 2 + Ху),
где А(у, 2) = ^ А1У‘гП~‘ и А'(,У, z) = ^Akykzn-k.
Определения. (1) При заданной (п + 1)-последовательности А = (Ло, Ль ..., Лп) рациональных чисел А^ определим 5(Л) как число ненулевых компонент А^ 1 ^ i ^ п. и б/(Л) как наименьшее целое 1 ^ к ^ п, такое, что Ак отлично от нуля (если такое целое существует).
При заданных и и X (и + 1)-последовательность А будем называть положительной, если До=1, Д/^0, Д'^0 при 1 = = 0, 1, ..., п, где А' = (Аэ, ..., А^ — преобразование Мак* Вильямс (2.2) для А.
Следующие два результата [7, теоремы 4 и 16] иллюстрируют эти определения. Значение их в теории кодирования будет ясно из дальнейшего.
Теорема 2.2 (ср. [14]). Пусть А есть {п + ^-последовательность с До =/= 0 и А'— ее преобразование Мак-Вильямс. Тогда
s(A')^[(d (Д) — 1)/2].
Теорема 2.3 (граница Хэмминга и теорема Ллойда). Произвольная положительная (п-^ ^-последовательность А удовлетворяет неравенству
П»)^ £л<-Л (2.4) к=0 /=0
где q = X + 1 и t = [(^(Д)— 1)/2]. Кроме того, если в (2.4) достигается равенство для положительной последовательности А, то $(Д') = t и полином Ллойда
Qt (х) = Р. (х) + Рх to + .. . + Pt to (2.5)
степени t имеет ровно t различных нулей в множестве (1,2, ... ..., nY а именно таких целых чисел k^ \, что A'k ^ 0.
Скалярное произведение и вес Хэмминга. Пусть F — конечная абелева группа порядка ^ 2 и периода v, представленная в виде аддитивной группы. Пусть Tv — циклотомическое поле комплексных корней v-й степени из единицы и %п — групповой характер F над Tv, связанный с элементом и е F; нумерация предполагается такой, что Xuto = Xi)to для любых oeF. При заданном положительном целом п введем скалярное произведение ( , ) на прямом произведении G = Fn из п копий F:
<а, 6> = П%а.(М> (2.6)
где а= {ах, ..., ап"), Ь = {Ьх, ..., Ьп) принадлежат G. При фиксированном а е G соответствие b -> ^а, Ь} является характером группы G над Tv, если для любых a, b, с G
(a, b-V-c) = (a, b^a, с\ (2.7)
Более того, любой характер группы G можно представить подобным образом.
Вес Хэмминга wH(a) элемента а = (ah ..., а^ из G определяется обычно как число ненулевых компонент а^ из F, 1 ^ i ^ п. Обозначим через Yk множество элементов веса к в G;
Yk = ^^G\wHW^kV(2.8)
& = О, 1, ..., п. Следующий результат [7, теорема 2] устанавливает связь между введенными выше понятиями при условии, что ^ = ^+1. Это условие будем предполагать выполненным на протяжении всей статьи.
Теорема 2.4. Для произвольного элемента a^G веса WHW = и
2 (a, A) = Pft(«),
где Рк^— полином Кравчука степени к.
Расстояние Хэмминга dH(cL,b^ между двумя элементами а и b из G есть число координат, в которых они различаются, или, что то же, dH(a, Ь) есть вес Хэмминга разности а— b в G. Пусть а, b — элементы из G, находящиеся на заданном расстоянии dH(a, b)=k друг от друга. Тогда легко видеть, что число элементов се G, находящихся на расстоянии i от а и на расстоянии / от Ь, зависит только от i, j и к. Для таких ассоциативных схем [5] это число обычно обозначается через р^.
Теорема 2.5. При заданных I, j, и е {0, ..., п) полиномы Кравчука удовлетворяют соотношению
п
РДи^РДи^^р^Р^иу(2.9)
Доказательство. Пусть h е Yk. Из определения следует, что р^ — число пар (А §^ гДе feYi)gEYjnf + g = h. Тогда формула (2.9) выводится из теоремы 2.4 с помощью элементарных вычислений (см. (2.7)).
Распределение расстояний кода. Для алфавита F порядка 7^2 определяется (п, М)-код над F просто как непустое множество из М различных ^-последовательностей над F, т. е. подмножество в Fn мощности М, где 1 М qu. Код называется тривиальным, если М = 1 или М = qn. В дальнейшем предполагается, что F образует аддитивную абелеву группу, так что слова кода рассматриваются как элементы группы G = Fa.
Последнее, конечно, не налагает никаких ограничений при исследовании существенных свойств кода.
Распределением расстояний (п, Л4)-кода С называется (n + 1)-последовательность А (С) = (Л0(С), Л^С), ..., Лл(С)) неотрицательных рациональных чисел
At (0 = ^1 ^й’ Ь) е С21 dH (а, Ь) = 0 |. (2.10)
Иными словами, ЛДС) есть среднее число кодовых слов, находящихся на расстоянии I от фиксированного кодового слова. Важность понятия положительной (я + 1)-последовательности в теории кодирования подчеркивается следующим результатом (7, теорема 6], новое доказательство которого получено в этой статье:
Теорема 2.6. Распределение расстояний любого кода длины п над q-ичным алфавитом является положительной (п + 1)- последовательностью (при К = q— 1).
В соответствии с этим формальное неравенство (2.4), примененное к распределению расстояний Л=Л(С), приводит к хорошо известной границе Хэмминга (или границе сферической упаковки). Введем теперь четыре основных параметра нетривиального у-ичного кода С. Каждый из них можно вычислить из распределения расстояний Л (С):
d = d (Л (С)) = минимальное расстояние,
s = s (Л (С)) = число расстояний,
d' = d (A' (С)) = дуальное расстояние (= 1 + максимальная сила), s' = s (А' (С)) = внешнее расстояние,
где Л'(С)—преобразование Мак-Вильямс (2.2) последовательности Л(С) при К = q—1. Названия, данные s и d, не нуждаются в комментариях. Для s' и d' они обоснованы в разд. 3 и 4 соответственно. Отметим здесь, что теорема 2.2 подразумевает оба неравенства s'^V(d—1)/2] и s^[(d'—1)/2], которые будут получены еще раз ниже (ср. (1.1) — (1.3)).
Пусть С — аддитивный код над абелевой группой F, т. е. подгруппа G = Fn. Тогда очевидно, что распределение расстояний кода С сводится к его распределению весов: ЛДС)—число кодовых слов веса I. Дуальный код С' определяется формулой [7] •
С' = (а^О\(а, b>=\ У/Ь^С}
и также является аддитивным кодом. Такая дуальность есть инволюция с Cz£ GIC и сводится к классическому понятию для линейных кодов над конечными полями (см. [15]). Как и в
случае линейных кодов, распределение весов кода С' с точностью до постоянного множителя равно преобразованию МакВильямс распределения весов кода С [7, теорема 8]. Следовательно, для аддитивного кода С параметры d7 и s7 равны соответственно параметрам d и s дуального кода С7.
В остальной части этой статьи исследуются свойства произвольных (не обязательно аддитивных) кодов, связанные с их основными параметрами. Начиная с этого места, все коды предполагаются нетривиальными.
МАТРИЦА РАССТОЯНИЙ И ВНЕШНЕЕ РАССТОЯНИЕ
В настоящем разделе вводится в рассмотрение матрица расстояний; она понадобится для описания расстояний между данным кодом и всем хэмминговым пространством, в которое код погружен. Затем исследуются свойства этой матрицы _в связи с внешним расстоянием s'.
Матрица расстояний. Для g-ичного кода С длины п обозначим через ВДе) число кодовых слов, находящихся на расстоянии i от фиксированной точки е из G = Вп, т. е.
Bt (е) = I {я е С \dH {a, e) = i}L Q^l^n. (3.1)
Матрицей расстояний группы G относительно С называется (qn X (п + 1))-матрица, строки и столбцы которой нумеруются элементами группы G и множества {0, 1, ..., п^ соответственно и элемент (е, г) которой есть ВДе):
В = [ВДе); e^G, Q^i^n}.(3.2)
Ясно, что строка В(е)—это распределение весов «смежного кода» С—е. Теорема 3.1 играет основную роль в этом разделе:
Теорема 3.1. Пусть С будет q-ичным (п, Мукодом с заданным распределением расстояний А^Су Тогда матрица расстояний группы G относительно С имеет ранг s' + 1 и удовлетворяет соотношению
BTB = ^Mq-^PTKP,(3.3)
где Р— матрица Кравчука (2.3) с K = q—1, а Л — диагональная матрица, определенная с помощью преобразования МакВильямс ЛДС) последовательности А (С):
Л = diag (Д£ (С), А\ (С), ..., А'п ^Y(3.4)
Доказательство. Сначала заметим, что при i, j = = 0,1, ..., п справедливы тождества
Е В; (е) Bj (е) = М Е р*\Ак (С),(3.5)
где параметры р^. определены в разд. 2.2. Действительно, обе части равенства (3.5) равны числу троек (а, Ь, е) элементов a, b^C, e^G, для которых dH^a,e")=i, dH(b,e^ = ^. Применяя последовательно теоремы 2.1 и 2.5, преобразуем (3.5) в
2 в^в.^ = мА- £ А'и(С) £ Р*РМ =егОи=0к=0
= Mq-n £ РА^АЦС^РДиУи = 0
Последнее есть искомое равенство (3.3). Вспоминая далее, что s' + 1 равно числу ненулевых компонент в Л'(С) и матрица Р не вырождена, на основании (3.3) и (3.4) имеем ранг (В) = = ранг(ВгВ) = ранг(Л) = s' + 1, и теорема доказана.
Каждому полиному а(х) степени не выше п над полем рациональных чисел поставим в соответствие (п + 1)-последовательность а = («о, аь ..., ап) его компонент в базисе полиномов Кравчука:
а (х) = сюРо (х) + арР, (х) + .+ а„Рп(х). (3.6)
Следующая теорема очень полезна для действительного вычисления матрицы расстояний:
Теорема 3.2. Пусть С будет (п, Му кодом с заданным внешним расстоянием s', а В — матрицей расстояний группы G относительно С. Тогда первые s' + 1 столбцов матрицы В (занумерованные числами 0, 1, ..., s') порождают все пространство столбцов. Точнее, для любого целого i, s' ^ i ^ п, столбец с номером i матрицы В представляет собой линейную комбинацию первых s' столбцов и (1, 1, ..., 1)т, коэффициенты которой зависят только от распределения расстояний кода.
Доказательство. Умножая обе части равенства (3.3) слева на Рт и справа на Р, получаем
^BP^^BP^Mq^;(3.7)
здесь учтено, что Р2 = qnI (см. теорему 2.1). Пусть В'^ = = (Bk(e)) обозначает преобразование Мак-Вильямс (п + 1)-последовательности В(е^— (ВДе)). Равенство диагональных элементов матриц в (3.7) дает
£ (ВНе))2 = ^"ЛИС),0<£^п.(3.8)
е е G
С другой стороны, пусть J—множество целых к, 1 ^ к ^ п, для которых A-я компонента ДЦС) последовательности Д'(С)
отлична от нуля. Для любого целого т, 0 ^ m ^ п— s', определим полином
р (х) = ЛГ VV" п (1 - х/0(3.9)
i г J
степени m + s' (так как | / | = s'). По определению £ (fe) Ak (С) = О при k =/= 0. В силу (3.8), это с очевидностью влечет р (fe) В к (е) = 0 для каждого е ^G, k#=0. Используем теперь тождество [7, равенство (18)]
X a-iAi = q-n X « (^) Ак, i=0к=0
справедливое для любых двух (п + 1)-последовательностей а, А (см. (2.2) и (3.6)). При а = (3 и А = S(e) оно принимает вид п
i=0
где Р = (Р0, Рр . Pm+S', 0, . .., 0) есть (n + 1)-последовательность компонент р(х) в базисе полиномов Кравчука. Таким образом, применяя (3.9) и замечая, что Во(е) = М, получаем в матричной форме
$ВТ = 6о, игр» о < m ^ п - s',(3.10)
где /— вектор из всех единиц и 6 — символ Кронекера. Так как Pm+s, =/= 0, то (3.10) выражает при всех m строку с номером m + s' в Вт как линейную комбинацию jT и строк с номерами 0, 1, ..., m + s'— 1. Следовательно, теорема доказывается индукцией по т, так как р полностью определяется распределением расстояний кода С.
Замечание. Равенство (3.8) показывает, что все компоненты последовательности Л'(С) неотрицательны. Это доказывает теорему 2.6.
Для того чтобы проиллюстрировать приведенные выше результаты, рассмотрим теперь подробно один пример. Пусть С обозначает удлиненный квадратично-вычетный (48, 224)-код над GF^Y Хорошо известно, что С — самодуальный линейный код с восемью ненулевыми весами (или расстояниями), а именно 12, 16, 20, 24, 28, 32, 36 и 48 (см. [16]), так что его параметрами являются d = d'=12, s — s'= 8. В дополнение к этому нам необходим результат Ассмуса и Мэттсона [2], устанавливающий число 6-множеств, содержащихся в данном числе 12-множеств, которые соответствуют кодовым словам минимального веса. Эта информация достаточна для вычисления распределения весов всех классов смежности кода С, или, что эквивалентно, матрицы
расстояний G относительно С. Как будет ясно из дальнейшего, оказывается, матрица В имеет только 14 различных строк. В табл. 1 приведены первые 11 компонент этих строк, а также их кратности в В (с точностью до множителя 2“24).
Таблица 1
Распределение весов классов смежности удлиненного двоичного квадратично-вычетного кода длины 48 (первые 11 компонент)
0
1
2
3
4
5
6
7
8
9
10
кратности
0
1
1
1
1
48
2
1
1 012
1 128
3
1
220
17 296
4
1
44
6 336
194 580
5
1
8
180
1 712 304
6
1
48
777
2 334 960
6
2
42
786
2 814 924
6
3
36
795
916 688
6
4
30
804
350 244
6
5
24
813
25 944
6
6
18
822
4 324
7
9
205
6 658 960
8
54
768
1 745 815
Сумма = 224
Строка В^ матрицы характеризуется прежде всего наименьшим целым & = &(е), для которого Вк^ =/= О, т. е. минимальным расстоянием между е и кодовыми словами. Из теоремы 3.2 с очевидностью следует, что к^ не превышает s' = 8 (общий результат дается теоремой 3.3). Вычисляя при /={12, 16, 20, 24, 28, 32, 36, 48} компоненты Рг полинома (3.9) при m = 0, получаем
Ро — Р1 = ?2 = Рз ^ 1 > Р4 —5/27> Рз ” Рб = Р? = ?9, Ps ^^ V54
и Рг = 0 при i ^ 9. Отсюда, используя (3.10), находим формулы для параметров 6А(е), к ^ 8:
В8 (е) = 44 при к (е) = 4, 67 (е) = 8 при к (е) = 5, 68 (е) = 54 — 6В6 (е) при &(е) = 6, 67 (е) = 9 при к (е) = 7, В8 (е) — 54 при к (е) = 8,
Следовательно, по теореме 3.2 строка 5(e) матрицы В полностью определяется значением ^(е), за исключением случая це^ = 6. Фактически Ассмус и Мэттсон [2] показали, что В6(е) принимает только значения 1, 2, ..., 6. Это дает первые 9 столбцов табл. 1, где пустые места считаются нулями. Десятый столбец вычисляется затем с помощью (3.10) при m= 1:
Ю8р (х) = 1920В3 (х) - 20Р5 (х) + 205Р7 (х) - 9Р9 (х).
Отсюда легко вычислить значения В9(е), указанные в табл. 1. Другие столбцы матрицы В можно последовательно получить тем же методом.
Наконец, число классов смежности С в G с данным распределением весов среди 14 возможных определяется следующим образом. Для классов смежности, минимальный вес к которых меньше 6, это число просто равно биномиальному коэффициенту (48)> Для шести классов с k^=S его можно найти из результата Ассмуса и Мэттсона [2]; для к^ = Ч и 6(e) = 8 оно вычисляется из предыдущих значений и очевидного тождества
£в.(«) = л«(")х‘,
справедливого для любого (п, М)-кода.
Граница внешнего расстояния. Теперь мы можем оправдать название «внешнее расстояние», данное параметру s', и доказать неравенство (1.1).
Теорема 3.3. Для любого кода С с заданным внешним расстоянием s' каждая точка из G удалена не более чем на s' по крайней мере от одного кодового слова.
Доказательство. Предположим, что найдется точка е в G, для которой Во (е) = Вх^ = ... =В5Де) = 0, где В — матрица расстояний (3.2) группы G относительно С. Тогда по теореме 3.2 ВДе) = 0 при i = 0, 1, ..., п. Полученное противоречие доказывает теорему.
Как мы убедились, для приведенного выше (48,224) -кода действительно существуют точки в G, находящиеся на расстоянии s' от кодовых слов. Следует отметить, что в общем случае это не всегда так.
Теорема 3.4. Для любого ^п.Мукода С с заданным минимальным расстоянием d и внешним расстоянием s'
Mt^q^M^Mss (3.11)
где t = \(Д — 1 )/2] и Мк = 1 + пк + ... + ( ” ) АЛ Кроме того, если в (3.11) достигается одно из равенств, то достигается также и другое, причем это происходит тогда и только тогда, когда код С является совершенным кодом с исправлением t ошибок. Необходимое условие существования такого кода состоит в том, что полином Ллойда Qt(x) должен иметь t различных нулей в множестве {1, 2, ..., я}.
Доказательство. Докажем правое неравенство. Для любых fleC, e^G положим N (а, е) = О, если расстояние между а и е больше s', и Н (а, е) = 1 в противном случае. По теореме 3.3
X N (а, е)^1 для любого е е G. (3.12) аеС
С другой стороны, каждая точка удалена не более чем на s' в точности от MS' точек из G, так что
2 N (a, e) = MS' для любого a^G.
Поэтому, суммируя обе части неравенства (3.12) по всем eeG, получаем искомый результат. Кроме того, правое равенство в (3.11) достигается тогда и только тогда, когда достигается равенство в (3.12) для всех e^G, т. е. по определению тогда и только тогда, когда С образует совершенный код с исправлением s' ошибок. Остальная часть доказательства легко следует из теорем 2.3 и 2.6 (левое неравенство в (3.11) является границей Хэмминга); детали опускаются.
Из (3.11) также вытекает, что / не может превышать s'; это согласуется с теоремой 2.2.
ЧИСЛО РАССТОЯНИЙ И ОРТОГОНАЛЬНЫЕ СПИСКИ
Настоящий раздел посвящен исследованию дуального расстояния d', числа расстояний s и соотношений между ними. Мы будем пользоваться следующими обозначениями при 6 = 0, 1, ..., п\
^=(^)^’ ^ ^ У0 + ^1 + • • • +
Основным инструментом исследования будут характеристические матрицы, введенные автором [7]; их определение мы сейчас напомним. Пусть С обозначает (п, М)-код над абелевой группой F порядка q и периода v. При любом целом к, 0 ^6 ^ п, к-я характеристическая матрица Нк кода С определяется так: строки нумеруются кодовыми словами, столбцы — элементами
веса & в G и элемент (a, h) матрицы /Д есть скалярное произведение (a, h} (ср. разд. 2.2), т. е.
Hk = \ka, А); а^С, h^YkY(4.1)
Таким образом, Нк — это (М X Vk)-матрица над полем 1\ комплексных корней v-й степени из единицы. В частности, Но— вектор / из всех единиц. Следующий разультат [7, теорема 5] очень полезен; он легко следует из теоремы 2.4.
Теорема 4.1. Характеристические матрицы кода С и расстояние Хэмминга между кодовыми словами связаны соотношениями
HkHk = \PkkdHka,b^ a.b^CY(4.2)
где PkW — полином Кравчука степени к, а Нк— сопряженная транспонированная матрица Нк.
Удобно также ввести в рассмотрение (М X Мт)-матрицу Кт над rv, определенную с помощью характеристических матриц Нк (п, Л4)-кода:
Km = VH0, Нх, Н^ О^т^п. (4.3)
Число расстояний. Расстояниями кода называются ненулевые значения, действительно принимаемые расстоянием Хэмминга между кодовыми словами. Параметр s кода, определенный в разд. 2.3, равен числу различных расстояний. Для (щ Му кода с расстояниями dx, d^ ds определим аннулирующий полином
а(х) = 2И(1 — xldxy\ — x)d^ .. . (1 — x]ds\ (4.4)
т. е. полином степени s, равный нулю в точках d^ и удовлетворяющий соотношению а(0) = Л4. Интересно сравнить это определение с (3.9), особенно в случае аддитивных кодов.
Теорема 4.2. Для любого (п, Мукода С с s различными расстояниями справедливо матричное равенство
^(^©«M ••• ® as^us) Ks — MI м, ■(4.5)
еде матрица Ks определена в (4.3), at— компоненты аннулирующего полинома в базисе полиномов Кравчука, Ц— единичная матрица порядка t и знак ф обозначает прямую сумму. Кроме того» число кодовых слов ограничено величиной
s
М^М$ = £(")лА(4.6)
i-0
Доказательство. Для произвольного полинома а(х)=| = аоЛ)(*)+ ••• -V^mPmW степени m ^ п по теореме 4.1 по! лучаем 1
£ акНкНк = [a(dH (a, Z>)); a, Z> е С]. (4.7^ Ь0 I
Если в качестве a(x) взять аннулирующий полином (4.4) кода^ то правая часть в (4.7) будет равна М1м, так как элемент (а, Ь) есть а(0) или a(d2) при некотором i в зависимости от того, совпадают а и b или нет. Поскольку левые части в (4.5)' и (4.7) при m = s одинаковы, это доказывает первое утверждение.
Для упрощения обозначений введем диагональную матрицу А порядка Ms:
^ = ^©«1^® . . . ®as/ys. (4.8).
Мы доказали, что Ks^Rs = ML Следовательно, матрица KARs не вырождена и, так как Ks есть (М X Ms)-матрица, можно написать .
min (М, М$) ^ ранг (Ks) ^ ранг (Ks &KS) = М, .
откуда вытекает вторая часть (4.6) теоремы. (Из приведенных выше неравенств также следует, что ранг матрицы Ks над Fv принимает максимальное значение, а именно ранг (Ks) = М.)
Из неравенства (4.6) естественно возникает вопрос: что можно сказать о кодах с s расстояниями, для которых М = Ms? Таким кодам посвящен последний раздел статьи; здесь мы только приведем прямые следствия из теоремы 4.2. Связь с совершенными кодами очевидна. Действительно, применяя теорему 4.2 к дуальному коду С' данного аддитивного (и, М)-кода С, получаем, что qnIM = М^, где s'— число расстояний кода С' или, что то же, внешнее расстояние кода С. Следовательно, по теореме 3.4 для кода С' граница (4.6) достигается тогда и только тогда, когда дуальный к нему код С является совершенным кодом с исправлением s' ошибок.
Напомним теперь определение обобщенной матрицы Адамара, введенное Батсоном [6]. При любом целом v, v ^ 2, квадратная матрица К порядка М над полем комплексных корней v-й степени из единицы называется обобщенной матрицей Адамара, если она удовлетворяет равенству КК = ML При у = 2 это совпадает с классическим определением матрицы Адамара.
Теорема 4.3. Пусть С обозначает (п,М)-код над абелевой группой периода у, имеющий s расстояний и состоящий из М = Ms кодовых слов. Тогда
квадратная матрица К8 порядка Ms является обобщенной матрицей Адамара над полем комплексных корней ч-й степени из единицы*.
расстояния кода С являются нулями полинома Ллойда Qs(x) степени s (см. (2.5)).
Доказательство. Пусть dx. d^ .... ds — расстояния кода С и а (%)—аннулирующий полином (4.4). Равенство (4.5), где д и Ks— невырожденные квадратные матрицы порядка М = Л45, эквивалентно равенству
^SKS = MI.(4.9)
С другой стороны, диагональные элементы матрицы К8К8. очевидно, равны М. Следовательно, в силу (4.9), должно, быть Д = / и KSK8 — Ml. Это доказывает утверждение (1) теоремы.
Чтобы доказать утверждение (2), заметим, что равенство Д = I означает, что ао = он = ... = as = 1 в (4.8). Следовательно, аннулирующий полином а(х) равен Ро(*) + ... . .. + Л(*), т. е., в силу определения (2.5), полиному Ллойда Qs^xY Теорема доказана.
Определение. Обобщенным кодом Адамара (ОА-кодом) порядка s называется ^-ичный (щ М)-код с s расстояниями, для которого в (4.6) достигается равенство.
Это название выбрано для того, чтобы подчеркнуть связь с обобщенными матрицами Адамара (теорема 4.3(1)). Для иллюстрации этого определения исследуем кратко случай ОА-ко- дов первого порядка (s = 1), т. е. эквидистантных ^-ичных кодов ДЛИНЫ П, СОСТОЯЩИХ ИЗ Mx = \-Yn(q—1) слов. Полином Ллойда Qi(x) равен M} — qx. Следовательно, по теореме 4.3(2) единственное расстояние кода должно быть
dx = (\-Vn(q—\^q.
В двоичном случае (q = 2) ОА-коды первого порядка представляют собой хорошо известные эквидистантные (я, п + 1)-коды Адамара с di = (п + 1)/2 (см. [3, стр. 324]). Из такого кода можно вывести матрицу Адамара порядка п + 1, а именно ею будет матрица К\ (см. теорему 4.3(1)). Обратно, любая матрица Адамара порядка п + 1 дает двоичный код Адамара длины п.
В общем 9-ичном случае единственные известные ОА-коды первого порядка — это регистровые коды максимальной длины (см. [3, стр. 323]). Они представляют собой линейные коды над GI4qY -где q— степень простого числа/а параметры их имеют вид' '
п = (qk — 1)/G? — 1), M = q\ dx=qk~\
Ортогональные списки. Каждому (п, Л1)-коду над ^-ичным алфавитом F поставим в соответствие (л X М) -список, столбцами которого служат М различных ^-последовательностей, образованных кодовыми словами. Этот список называется ортогональным списком силы г и индекса ц (см., например, [4]), если любые г его строк содержат все qT упорядоченных г-последова- тельностей над F ровно по ц раз, при этом очевидно, что М = ^qT. Такой список обычно обозначается через [М, п. q. г]. Следует заметить, что это определение ортогональных списков, построенных из кодов, исключает возможность повторяющихся столбцов.
Прежде чем показать, что максимальную силу списка можно вычислить из распределения расстояний соответствующего кода (теорема 4.5), введем некоторые обозначения. При любом целом т, 0 ^ т ^ л, рассмотрим т-последовательность (соь (о2,, (От) элементов (ог- е F и m-последовательность L = (4,^2, • • • Дт) различных целых к, где Х^к^тг. Для данного (и, М)-кода С над F определим NL (соь ..., (от) как число кодовых слов а. удовлетворяющих условиям
aix=toXl ач = ^. .... aim = ^m.
В соответствии с этими определениями максимальная сила (М X я) -списка, соответствующего коду С, есть наибольшее из неотрицательных целых чисел т, для которых
Nl (to!, ©2, ..., ©m) = Mjqm(4.10)
при любом выборе компонент w^ и последовательности L.
Пусть Л (С)— распределение расстояний (2.10) кода С и Л'(С)—его преобразование Мак-Вильямс (2.2). Тогда дуаль ное расстояние (V кода С, в силу своего определения, должно удовлетворять условиям
ЛИС)= ... =Л^_1(С) = 0, ЛИО=#0.(4.11)
Теорема 4.4. Пусть Н0 = к Нх. .... Нп — характеристические матрицы (п. Му кода С. Тогда дуальным расстоянием d' кода С будет наименьшее из положительных целых чисел к. для которых jT Hk 0.
Доказательство [7, следствие 7]. Умножая обе части равенства (4.2) слева на jT и справа на /, сразу получаем итн^млнс),
где Л'(С)—преобразование Мак-Вильямс распределения расстояний и || || обозначает эрмитову норму. Таким образом, теорема вытекает из определения (4.11) параметра d'.
Следующая теорема показывает комбинаторное значение параметра dz; отметим, что она сводится к хорошо известному результату для линейных кодов над некоторым полем.
Теорема 4.5. Для любого (гцМ)-кода С с дуальным расстоянием dz максимальная сила соответствующего (пХМу списка равна d' — 1.
Доказательство. Пусть h— произвольный элемент веса k (k— целое, 0 ^ к ^ п) в G = Fn, т. е. элемент множества Yk) и L — произвольная m-последовательность (т — целое, 6^ ^ m ^ п) различных целых чисел it, \ ^ it ^ я, обладающая тем свойством, что каждый индекс ц соответствующий ненулевой компоненте 1ц элемента 1ц совпадает с одним из индексов it, т. е.
(i^t'i, 4> im) =^(^ = 0).(4.12)
В соответствии с определением NL и характеристической матрицы Нк [см. (4.1) и (2.6)] h-й. элемент матрицы-строки jTHh есть
№)(/1)= Е (а, /г) = а е С
= Е ^((0!©тИвДЧ) • Xam(hlm). (4.13)
Сначала выберем к не превосходящим максимальную силу г и положим m = к, В силу (4.10) и хорошо известных свойств групповых характеров имеем
6 = 0, 1, ..., г,
где д — символ Кронекера. По теореме 4.4 отсюда вытекает, что dz — 1 г.
Далее, предположим, что dz—1 > г. Тогда в соответствии с теоремой 4.4 должны выполняться равенства
т=ж.ол, б=о, 1,..., г + 1.
Поэтому для данной m-последовательности L, где m = r+l, можно вывести из (4.13) систему qm уравнений относительно qw неизвестных NL (coi,..., com), tot e F,
^^((Оь .... ш^ХоДЧ) . Ьт(/г;т) = А4дй,0,
Где h пробегает элементы группы G, удовлетворяющие (4.12). В силу хорошо известных свойств групповых характеров эта
система допускает единственное решение, а именно (4.10jj Итак, ортогональный список должен иметь силу m = r+t Полученное противоречие показывает, что (V—1 должно быт) максимальной силой, и теорема доказана.*
Для дальнейшего пользования сформулируем другое опре* деляющее свойство дуального расстояния кода в терминах мат| риц Кт (см. (4.3)). Оно легко следует из теоремы 4.4 и привод дится без доказательства.]
Теорема 4.6. Пусть С — произвольный (п,Мукод и наибольшее из целых чисел, 0 ^ m < л, для которых KmKm =4 = MI. Тогда дуальное расстояние кода С равно 2m + 2 ил^ 2m + 1 в зависимости от того, является или нет матриц! KmHm^x нулевой.;
Следующая теорема устанавливает нижнюю границу числа? слов в коде с данным дуальным расстоянием; в терминах орто^ тональных списков этот результат принадлежит Рао [19]. Указанную границу можно рассматривать как «дуальную» к границе сферической упаковки. Фактически для аддитивных кодов, эти границы получаются одна из другой на основании дуально^ сти таких кодов.
Теорема 4.7. Для любого q-ичного (п,Мукода с дуальным расстоянием d' (или, что то же, для любого ортогонального списка \M,n,q,d'—1] максимальной силы d'—1)
M>MV, где f = [(d' - 1 )/2].. (4.14)
Доказательство. Пусть А (С)—распределение расстояний данного кода С и А' (С)—его преобразование Мак-Вильямс. По теоремам 2.1 и 2.6 А'(СуМ есть положительная (п + 1)-по- следовательность. Следовательно, теорема 2.3 будет применима, если А заменить на А'(С)/М и d(A) на d'. Но тогда (4.14) следует из (2.4) и тождества До (С) + ... + Д^ (С) = qn (см. теорему 2Д).
Замечание. С помощью подхода, основанного на линейном программировании [7], т. е. используя положительность распределения расстояний, можно, вообще говоря, улучшить границу Рао: для ортогональных списков [М, п, q, г] справедливо неравенство М ^ qn/M', где М'—«верхняя граница линейного программирования» для числа кодовых слов в ^-ичных кодах, имеющих длину п и минимальное расстояние d ^ г + 1. Это следует из теорем 2.1 и 4.5. Например, М ^ 27 для списков [М, 13,2,4], и эта граница действительно достигается. Мы не бу-
дем далее углубляться в существо этого вопроса; нам просто хотелось обратить внимание читателя, интересующегося ортогональными списками, на границы линейного программирования.
Согласно теореме 4.6, (М X ^t J-матрица Kt', где /'= = [(dz— 1)/2],удовлетворяет равенству
КнКн = М/.(4.15)
Следовательно, у нее не может быть строк меньше, чем столбцов; это дает другое доказательство теоремы 4.7. Мы отложим рассмотрение кодов, достигающих границы (4.14), до п. 4.3.
Теперь кратко исследуем коды с достижимым максимальным расстоянием, введенные Синглтоном [21]. Учитывая границу Синглтона и применяя теорему 4.5, заключаем, что для любого g-ичного (ц, Л4)-кода с минимальным расстоянием d и дуальным расстоянием d'
qd'-'^M^qn-d+'.(4.16)
Кроме того, точно так же, как в случае линейных кодов (см., например, [8]), если достигается одно из равенств в (4.16), то достигается также и другое; эти результаты формально можно вывести из положительности распределения расстояний [7, теорема 15]. Код называется кодом с достижимым максимальным расстоянием, если он достигает границы Синглтона, т. е. если М = q^-w. Предыдущее рассуждение показывает эквивалентность этого понятия и понятия ортогонального списка [М,п, q, n — d^\} индекса один, которая была неявно отмечена Синглтоном [21].
Параметры s и d/. Наконец, соберем вместе теоремы 4.2, 4.3 и 4.7 и установим «дуальный» аналог теоремы 3.4.
Теорема 4.8. Параметры s и dr произвольного ^п,Му кода С удовлетворяют неравенствам
Mt^M^MS)(4.17)
где t' = [(d'—1)/2]. Кроме того, если достигается одно из равенств в (4.17), то достигается также и другое, причем это происходит тогда и только тогда, когда С — обобщенный код Адамара порядка s. Необходимое условие существования такого кода состоит в том, что полином Ллойда Qs(x) должен иметь в множестве {1,2, ...,п} s различных нулей, а именно расстояний кода.
Доказательство. Отметим сначала, что неравенства (4.17) следуют из теорем 4.2 и 4.7. Это влечет s ^ V, что
согласуется с теоремой 2.2, если ее применить к преобразованию Мак-Вильямс распределения расстояний.
Далее, предположим, что М = Ms, т. е. С есть ОА-код порядка s. По теореме 4.3 квадратная матрица Ks является обобщенной матрицей Адамара, так что (см. теорему 4.6) s не может превышать V = [(d'— 1)/2]. Поэтому должно быть s = 1/ и M = MV.
Наконец, предположим, что M = Mv. Тогда (см. (4.15)) квадратная матрица Kt' является обобщенной матрицей Адамара, так что в силу (4.3) можно написать
г
2 НкНк = Kt-Kf = MI.
В соответствии с (4.7), где m = Л и ао = ai = ... am = 1, это очевидно означает, что полином
a W = X Рк W = Qv (х)k = 0
обращается в нуль при х = dx, d2l ..., ds, где ^—расстояния кода С. Так как а(х) имеет степень ?, а V не может превышать s, то t' = s и потому М = Ms. С помощью этого рассуждения мы также переоткрыли «условие Ллойда» для ОА-кодов, приведенное еще в теореме 4.3(2), Доказательство закончено.
Замечание. Пусть а(х)—аннулирующий полином (4.4) некоторого кода. Теорема 4.8 показывает, что компоненты а0, аь ..., as полинома а(х) в базисе полиномов Кравчука равны 1, когда дуальное расстояние равно d' = 2s + 1, т. е. для ОА-кодов. В общем случае при s + 1 d' 2s + 1 можно показать, ЧТО'
Cto ^^ ^1 === • • •^d'— I-s ==: 1 •
Это следует из теорем 4.2 и 4.6; подробное доказательство мы не приводим.
КОМБИНАТОРНЫЕ СВОЙСТВА КОДОВ
В настоящем разделе нас будут интересовать два свойства кода, выражающие некоторую «симметрию»: метрическая инвариантность и существование обобщенных /-блоков. Наше определение блоков из кодов подобно определению Ассмуса и Мэттсона [1]; в двоичном случае эти определения фактически совпадают.
Код С называется метрически инвариантным, если число кодовых слов, удаленных на расстояние i от фиксированного кодового слова, зависит только от i и не зависит от выбранного
слова. По определению это число равно Гй компоненте Лг(С) распределения расстояний. Начиная с этого места, будем предполагать, что все коды содержат нулевую ^-последовательность над F; это не будет существенным ограничением, так как любой код можно преобразовать в код, обладающий этим свойством, применяя подходящий сдвиг группы G = Fn, который не меняет расстояния между кодовыми словами. Таким образом, для кодов, метрически инвариантных, распределение расстояний сводится к классическому распределению весов.
Говорят, что элемент a^G покрывается элементом b^G, если каждая ненулевая компонента at элемента а равна соответствующей компоненте Ь^ элемента Ь; это будем записывать в виде а Ь. Пусть, например, п = 5, F = {0, 1,2}. Тогда а = (0, 0, 1, 1,2) покрывается элементом b = (1,0, 1, 1,2).
Подмножество S группы G будем называть t-блоком типа X (X = q — 1) с параметрами (|i#; n,w,ty 0 ^ t ^ w ^ п, р/ ^ 1, если оно удовлетворяет двум условиям: (1) все его элементы имеют один и тот же вес w, (2) каждый элемент веса t в G покрывается одним и тем же числом цг элементов из S. Легко убедиться в том, что /-блок, где t^ 1, является (/ — 1)-блоком ^t_x;n,w,t — 1), где
Iw-t-V \Vt-x=Mn-t-V 1)И/. - (5.1)
В частности, |л0 есть мощность множества S. В двоичном случае (7 = 2, Х=1) это определение эквивалентно классическому определению /-блоков без повторяющихся блоков. При Х^2 любой /-блок S типа X переходит в /-блок S* типа 1 при отображении F-> Z2, заданном соответствием
и->и* = 0 или 1 в зависимости от того, и = 0 или и-#0.
В действительности это отображение сохраняет вес и отношение покрытия. Следует отметить, что S* может иметь повторяющиеся блоки с различными кратностями.
Весами кода, содержащего нулевую ^-последовательность, называются значения, принимаемые функцией wH на ненулевых кодовых словах. Очевидно, что каждый вес является также расстоянием (обратное справедливо для кодов, метрически инвариантных). В этом' разделе мы рассмотрим свойства множеств кодовых слов фиксированного веса образовывать /-блоки. Используются два метода; первый основан на теореме 4.5, второй— на теореме 3.2.
Основной подход. Для данного кода С длины п и элемента е из G = Fn обозначим через ц(/, е) число кодовых слов веса I, покрывающих е (ясно, что ц(/, е) = О при i <^н(в)).
Теорема 5.1. Пусть С будет q-ичным ^п,Му кодом с дуальным расстоянием d^ а е— элемент из G, вес которого ^H^)=t не превышает d'—1. Тогда при к = О, 1, ... ..., d' — 1 — t числа |ш(г\ е) удовлетворяют равенствам
п
ТД^У^ е) = д-^м[п-^^.(5.2)
Доказательство. Левая часть в (5.2) равна числу пар M^gV а^С, g^G, где е ^ g ^ а и wH^= t-Vk. При t-Vk^.dr— 1 из теоремы 4.5 вытекает, что число кодовых слов, покрывающих элемент g веса t + к, равно Mlgt+h. Так как число таких элементов g, покрывающих данный элемент е веса t, равно ^ ^ ^) АД отсюда получается (5.2).
Следствие 5.2. В тех же предположениях, что и выше,
п
£(и0\ е) —-/)х;-9р(О = О (5.3)
i-t
для любого полинома р(х) над полем рациональных чисел, степень которого не превышает df — \ — t.
Доказательство. При PW = ^X^^ формула (5.3) вытекает из (5.2) в силу хорошо известного тождества
тп
где m = n — t. Таким образом, утверждение доказано, так как полиномы (^ ^ ^ ) > O^k<Ld'— 1 — 7, образуют базис векторного пространства рациональных полиномов Р(х), степень которых не превышает d'— 1 — 7.
Следующая теорема аналогична результату Ассмуса и Мэттсона [1] для линейных кодов.
Теорема 5.3. Пусть С будет q-ичным кодом с дуальным расстоянием d', a t — такое целое число, 1 ^ t ^ d', что число весов кода С, не меньших t, само не более d' — t. Тогда любое множество кодовых слов фиксированного веса, не меньшего t, образует t-блок типа X = q — L
Доказательство. Пусть е — элемент веса t из G и Jt— множество весов кода С, не меньших t. Тогда ц(7, е) = 0, если i
не принадлежит Jt. Ранг системы (5.2) при O^fe^d'—-1—/ с неизвестными ц(/, е^ i^Jt, равен |Л|. Действительно, квадратная матрица
[(V); о^^<|Jz|-i]
не вырождена. Поэтому решение (ц(/, е), i е J^ единственно и не зависит от конкретного элемента е веса I. Следовательно, при каждом i е Jt множество кодовых слов веса i образует ^-блок типа X с ц^ = ц(/, е). Теорема доказана.
Теорема 5.4. Код С, у которого число s расстояний не превышает дуального расстояния d\ метрически инвариантен.
Доказательство. При а ^ С определим код Са — = ^Ь — а\Ь^С\ полученный «сдвигом» кода С. Ясно, что все коды Са имеют то же распределение расстояний, что и код С, и, значит, то же дуальное расстояние d'. Рассмотрим равенство (5.2) для кода Са при е = 0. Так как каждый вес кода Са есть расстояние кода С, то при к = 0, 1, ..., d' — 1 можно написать
£ (')^ °)=<г-ш(")v-6fti0, м
где J— множество расстояний кода С. Согласно условию теоремы, мощность $ множества J не превышает df. Следовательно, в силу тех же рассуждений, что и в теореме 5.3, система (5.4) допускает единственное решение (ц(г, 0), i е /), не зависящее от а. Так как p(i, 0) для кода Са равно числу кодовых слов кода С, удаленных на расстояние i от данного а е С, это означает, что код С метрически инвариантен.
Пример. Для положительного целого т, где m = 0 (mod 4), рассмотрим двоичный (m2-—1, т4/2)-код С, имеющий три (s = 3) расстояния, а именно
dx=m(m— 1)/2, d<2 = rriH^1 d3 = m(m+l)/2. (5.5)
Кердок [10] недавно построил такой код при любом т, являющемся степенью числа 2. В общем случае можно показать [7, теорема 12], что С—максимальный код в классе кодов длины m2—1, имеющих только расстояния (5.5), и что его распределение расстояний определяется формулами
Л^ = m (т + 1) (^2 — 2)/4, N2 = m2 — 1, N3 = m (m — 1) (m2 — 2)/4, где Nt = Adl(C\ При этом оказывается, что компоненты А\ (С), ..., Л£(С) преобразования Мак-Вильямс последовательности Л (С) равны нулю и Л£ (С) > 0; поэтому дуальное рас-
стояние d' кода С равно пяти. Следовательно, по теореме 5.4 код С метрически инвариантен. Кроме того, по теореме 5.3 при ^ = 2 кодовые слова веса d^ образуют 2-блок при i= 1, 2, 3. Так как такие коды действительно существуют при m = 2Г, г ^ 2, а именно это коды Кердока, мы указали три бесконечных семейства 2-блоков. Блоки, соответствующие значению d2l являются дополнениями хорошо известных блоков Адамара, в то время как блоки, соответствующие d^ и d^ представляются новыми.
Дуальный подход. При данном двоичном коде С длины п и точке е из G = Z$ обозначим через В^Че) число кодовых слов веса к, удаленных на расстояние i от е. Очевидно, что gw^^O только при wH^^k — i и wH (е) =k — i (mod 2). С другой стороны, п
£b^=Bi$,(5.6)
где ВДе)— число кодовых слов, удаленных на расстояние i от е (см. (3.1)). Теорема 5.6 показывает, как «решать» систему (5.6). Нам понадобится
Лемма 5.5. Пусть С—двоичный код, е— элемент веса t ^ 1 в G и Е — множество элементов веса t — 1 в G, покрываемых е. Тогда при 'любых i и к параметры В^ кода С удовлетворяют соотношению
£ В^ (g) = | (/ + к - i + 2) В^ + у (/ - к + 0 Bv^ keY g^E
Доказательство. Левая часть есть число пар (я,g), где а е С, g^E, wH4T) = k, днка^ — ^—^- Пусть а — кодовое слово веса к, удаленное на расстояние / от данного е. Тогда легко видеть, что число элементов g в Е, удаленных на расстояние 1—1 от а, равно (t — к-уЩ^, когда j = i, равно (t + к —1' + 2)/2, когда j = i—2, и равно нулю при остальных значениях /. Лемма доказана.
Теорема 5.6. При заданных целых i и к параметр В'^ (е) любого двоичного кода однозначно определяется весом ]) элемента е, распределением весов кода и значениями параметров В,^ при g е.
Это утверждение доказывается и затем используется при дополнительном ограничении, что вес элемента е не превосходит к. — Прим, перев.
Доказательство. Теорема тривиальна при к = 0, а также при е = 0. Предположим, что она справедлива при к = 0, 1, ..., г—1, а также при k = r для любого е, вес которого меньше данного числа t, где t ^ г. Основываясь на этих предположениях индукции, докажем результат при к = г и при любом элементе е веса t. Очевидно, что B^t^=^ ПРИ ^ >> г, так что (5.6) можно записать в виде
ВУШ = ВГ_^- £в%(е).т=0
Это доказывает теорему при i = r — t (индукцией по к). Далее, значения ВР (е) выражаются с помощью леммы 5.5 последовательно при i=r — t + 2, г — t + 4, ... через числа Вр (§*), где g е Е. Поскольку элементы из Е имеют вес t — 1, теорема вытекает из предположения индукции относительно веса элемента е.
Теперь мы подготовлены к тому, чтобы доказать основной результат этого раздела; интересно сравнить его с теоремами 5.3 и 5.4. Для линейных кодов утверждение о Яблоках первоначально было получено Ассмусом и Мэттсоном [1].
Теорема 5.7. Пусть С — двоичный код с минимальным расстоянием d и внешним расстоянием s', причем d ^ s'. Тогда код С метрически инвариантен. Кроме того, кодовые слова фиксированного веса образуют t-блок (типа 1), где t = d — s'.
Доказательство. Пусть а — кодовое слово. Так как s' не превышает d, то
В0(а) = \, Bi(a) = 0 при /=1, .s' — 1.
Поэтому в силу теоремы 3.2 строка В (а) = (В0(а),... ,Вп(а)) матрицы расстояний В не зависит от а, и первое утверждение теоремы доказано.
Рассмотрим элемент е в G данного веса пг ^ d — s'. Очевидно, что единственное кодовое слово, которое может находиться на расстоянии менее s' от е, есть нулевое слово; это может произойти, если пг само меньше s'. Во всяком случае s'-no- следовательность (В0(е\ ..., Bs'-X(e^ не зависит от е. Отсюда по теореме 3.2 полная строка В(е) сама не зависит от е, так как Wh^) = пг. Следовательно, по теореме 5.6 при заданных i и к параметр В[Р (е) принимает постоянное значение при любом е веса t = d — s'. С другой стороны, при k^t параметр B^lt^ есть число кодовых слов веса к, покрывающих е. Итак, доказано, что если положить
|iz = В^Де) при wH(e') = t = d —s', то кодовые слова веса к образуют ^-блок (ру, n, k,t).
Пример 1. Рассмотрим удлиненный квадратично-вычетный^ (48,224)-код (см. п. 3.1). Так как минимальное расстояние di равно 12, а внешнее расстояние s' равно 8, то кодовые слова! фиксированного веса по теореме 5.7 образуют 4-блок. Кромер того, мы убедились, что строка В^ матрицы расстояний зависит только от веса е, когда этот вес не более пяти. Поэтому на; основании тех же рассуждений, что и в теореме 5.7, кодовые- слова фиксированного веса образуют 5-блок. Первоначально это было доказано в [1]. Отметим общий результат относительно, кодов, подобных квадратично-вычетному коду длины 48:
Теорема 5.8. Пусть С — двоичный (48,224)-код, расстояния которого принадлежат множеству {12, 16, 20, 24, 28, 32, 36, 48}. Тогда С имеет такое же распределение расстояний, как удлиненный квадратично-вычетный код. Кроме того, код С метрически инвариантен и кодовые слова фиксированного веса образуют 5-блок.
Доказательство. Единственность распределения расстояний кода С можно доказать с помощью теоремы 12 из [7]. Тогда утверждение о метрической инвариантности и 5-блоках следует из теоремы 5.7 и приведенного выше замечания. Действительно, строка В^ матрицы расстояний зависит только от веса е при wH^ <5 5 для любого кода, имеющего то же распределение расстояний, что и удлиненный квадратично-вычетный код.
Пример 2. Пусть С—код Препараты длины п = 4Т — 1 с минимальным расстоянием d = 5 (см. [18]). Вычисляя распределение расстояний кода С, Гёталс и Сновер [9] явно показали, что внешнее расстояние кода С равно s' = 3. В таком случае по теореме 5.7 кодовые слова каждого веса образуют 2-блоки. Это было первоначально установлено Семаковым, Зиновьевым и Зайцевым [20].
Часть теоремы 5.7 можно перенести на недвоичные коды. Доказательство очень похоже, и мы его не приводим.
Теорема 5.9. Пусть С будет q-ичным кодом с минимальным расстоянием d и внешним расстоянием s', причем d ^ s'. Тогда код С метрически инвариантен. Кроме того, кодовые слова веса d образуют t-блок типа Х = q— 1, где t = d — s'.
Причина, по которой /-блоки типа X в общем случае нельзя выявить для весов, больших d, состоит в том, что лемму 5.5 и теорему 5.6 нельзя перенести на недвоичный случай.
ОБОБЩЕННЫЕ КОДЫ АДАМАРА
ОА-код порядка s определен в п. 4.1 как код с s расстояниями, где 1 ^ s ^ м — 1, для которого число кодовых слов принимает максимальное значение М = Ms. Как и в предыдущем разделе, будем предполагать, что все коды содержат нулевую ^-последовательность.
Очевидным примером служит двоичный код С длины п = == 2s + 1, словами которого являются 2п-1 п-последовательно- стей, имеющих четный вес. Основные параметры кода С таковы: d = 2, s = (n— 1)/2, d'= п, s' = 1. Легко показать, что любой двоичный ОА-код порядка s с п = 2s + 1 совпадает с С, если он содержит нулевое слово.
Как мы убедились в разд. 4, аддитивный ОА-код есть не что иное, как код, дуальный к совершенному аддитивному коду. Поэтому из недавних результатов по совершенным кодам [11, 24] следует, что при s^2 существуют только два аддитивных ОА-кода, кроме указанного выше класса, а именно коды Голея. Единственность их (в классе аддитивных кодов) доказана Плесе [17].
В этом разделе мы дадим очень сильные необходимые условия для произвольных ОА-кодов (теоремы 6.1 и 6.4); они делают существование новых ОА-кодов при s ^ 2 маловероятным.
Теорема 6.1. Пусть С будет q-ичным ОХ-кодом порядка s. Тогда •
дуальное расстояние d' кода С равно 2s + 1 и Ms делится на q2s;
код С метрически инвариантен и кодовые слова фиксированного веса, не меньшего t, образуют t-блок типа X при любом t s + 1.
Доказательство. По теореме 4.8 дуальное расстояние d' должно быть равно 2s + 1 или 2s + 2. В силу теоремы 4.6 при d' = 2s + 2 было бы KsHs+\ = 0, что невозможно, так как матрица Ks не вырождена. Таким образом, d' = 2s + 1, откуда следует (см. теорему 4.5), что число кодовых слов М = Ms делится на q2s. Утверждение (2) вытекает из теорем 5.3 и 5.4.
Замечания. (1) Интересно сравнить условия делимости ^2s|Ms для ОА-кодов и Mt\qn для совершенных кодов с исправлением t ошибок. ‘
Можно показать с помощью теорем 4.8 и 6.1 (2), что минимальное расстояние ОА-кода порядка s равно по крайней мере 2s, за исключением приведенного выше двоичного (2s + 1,4s)-кода с d = 2.
В силу теоремы 6.1 распределение расстояний ОА-кода сводится к его распределению весов, для которого мы получим теперь явную формулу. Сначала нам понадобятся некоторые свойства полиномов Ллойда (2.5).
Лемма 6.2. При заданных п и X полиномы Ллойда Qo(x), Qi (х), ..., Qn_! (х) удовлетворяют условиям ортогональности (Ц = Х+П:
X Qa/fe)Q/(^)(^z; )^-1 ==^-1 ("Т1 )л'б< /• <6Л) ы
Доказательство. Пусть РкНх) обозначает полином Кравчука (2.1) степени к, a Q^ (х) — полином Ллойда (2.5) степени L Можно показать [13, стр. НО], что
Q^-P^Vx-V).(6.2)
Поэтому (6.1) сводится к определяющим отношениям полиномов Кравчука (см. [23, стр. 48]), и лемма доказана.
Пусть s— целое число, 1 ^ s ^ п—1. По лемме 6.2 и хорошо известному результату относительно ортогональности полиномов полином Qs(x) имеет s различных действительных нулей db d2, ..., ds, где 1 ^ dk ^ п. Каждому dk поставим в соответствие число Кристоффеля wk> s, определенное (см. [23, стр. 61]) формулой,
)vl- (6-3>
/=0
Лемма 6.3. Пусть 0(х) пробегает полиномы степени не выше 2s — 1. Тогда s-последовательность (^i, s, w2, s,..., wS) s) чисел Кристоффеля является единственным решением множества линейных уравнений
Sп
к=Л1 = \
Доказательство. Это следует из леммы 6.2 в силу хорошо известного свойства чисел Кристоффеля (см. [23, теорема 3.4.1]).
Теорема 6.4. Пусть d\, d2l ..., d8 — веса ОХ-кода порядка s. Тогда числа dk совпадают с нулями полинома Ллойда
QsW- Кроме того, число Nh кодовых слов веса dk удовлетворяет равенству
nKMslqdkNk = 2 [(Q/ №))2/( " V ) ^] •<6-4)
/=о
Доказательство. Первое утверждение вытекает из теоремы 4.3(2). Далее, используя следствие 5.2 при t= 1 и теорему 6.1(1), для произвольного полинома Р(х) степени не выше 2s — 1 находим
Sп
£ И №, е) Р ЫО = q-nMs £ ( " Z; ) V-*р (О,
где ^(^h, ^) — число кодовых слов веса dk, покрывающих данный элемент eeG веса 1. Сравнивая это с леммой 6.3, заключаем, что
e) = q~nMswk,s.(6.5)
С другой стороны, ясно, что параметры 1-блока, образованного кодовыми словами веса dk, удовлетворяют равенству
dkNk = Xn\i<dk, в)(6.6)
(см. (5.1) при w = dk, ^=1, pi = ц^, е), ,10 = ^^). Искомое равенство (6.4) получается из (6.3), (6.5) и (6.6) с помощью элементарных вычислений.
Чтобы проиллюстрировать теорию, докажем, что, кроме двух хорошо известных двоичных кодов, не существует ОА-кодов третьего порядка над некоторым полем.
Теорема 6.5. Для алфавитов, порядки которых являются степенями простых чисел, существуют только два неэквивалентных ОХ-кода третьего порядка; (7,26)-код, образованный всеми двоичными 7-последовательностями четного веса, и (23,2й)-код Голея.
Доказательство. Пусть С будет ^-ичным ОА-кодом третьего порядка длины п. Из теорем 6.1(1) и 6.4 имеем два необходимых условия: у полинома Ллойда Qs(x) должны быть три различных нуля в множестве {1, 2, ..., п} и q^ должно делить Л43. В своем доказательстве несуществования совершенных кодов с исправлением трех ошибок ван Линт [12] показал, что эти условия одновременно выполняться не могут, если q является степенью простого числа, q ф 2.
Таким образом, можно ограничиться двоичным случае» (<7 = 2, Х=1). Из (2.1) и (6.2) легко вывести, что при 0 ^ ^ s ^ п — 1
.Q^+l-x)^-!)^).
Поэтому (я + 1)/2 — нуль полинома QSW, если s нечетно^ Тогда при s — 3 находим по теореме 6.4, что d2 = (я + 1 )/Я есть один из трех весов. С помощью прямого подсчета изу (6.4) выводим формулу для числа N2 кодовых слов веса d2\
ЗМ2 = п(п-2)(пг-п + 6)/(3я - 5).(6.?|
С другой стороны, по теореме 6.1(2) эти кодовые слова обра^ зуют 4-блок. Параметры р,; этого блока можно вычислить из! (6.7) и (5.1), где ро = N2; при этом получается, что'
9 (но ~ 8нз) = Зя + 2 + 64/(3я - 5).
Так как левая часть есть целое число, то Зя —5 должно де^ лить 64. Единственными значениями я (я ^7), удовлетворяю-,; щими этому условию, будут я = 7 и я = 23. Двоичные ОА-коды^ с этими двумя длинами, как известно, существуют, а именно! это коды, упомянутые в теореме. Ясно, что при я = 7 указан- ; ный код единствен. Из теоремы Сновера [22] об единственности ; кода Голея вытекает, что ОА-код длины 23 также единствен^ (сообщено Сновером). Теорема доказана.. =
БЛАГОДАРНОСТИ'
Наибольшую признательность автор выражает Дж. М. Гё-1 талсу за многочисленные беседы и полезные предложения. Ав- j тор благодарит также госпожу Ф. Дж. Мак-Вильямс, чьи замечания позволили улучшить разд. 3.
1
СПИСОК ЛИТЕРАТУРЫ1
Assmus Е. F., Jr., Mattson Н. F., Jr., New 5-designs, J. Comb. Theory, 6 (1969), 122.:
Assmus E. F., Jr., Mattson H. F., Jr., Algebraic theory of codes, II, Air
Force Cambridge Res. Lab. Final Report, 1970.j
Берлекэмп Э., Алгебраическая теория кодирования, изд-во «Мир», М., .1971.:
Bose R. С., Bush К. A., Orthogonal arrays of strength two an three, Ann. )
Math. Stat., 23 (1952), 508.5
Bose R. C., Mesner D. M., On linear associative algebras corresponding to association schemes of partially balanced designs, Ann. Math. Stat., 30 1 (1959), 21.'
Butson A. T., Generalized Hadamard matrices, Proc. Amer. Math. Soc., 13 ; (1962), 894.. ;
Delsarte P., Bounds for unrestricted codes by linear programming, Phi- i lips Res. Repts., 27 (1972), 272.4
Goethals J. М., A polynomial approach to linear codes, Philips Res. Repts., 24 (1969), 145.
Goethals J. M., Snover S. L, Nearly perfect binary codes, Discrete Math., 3 (1972), 65.
Kerdock A. M., A class of low-rate nonlinear binary codes, Inform, and Control, 20 (1972), 182. (Русский перевод: Кердок A. M., Класс нелинейных двоичных кодов с низкой скоростью передачи, Кибернетический сборник (нов. серия), вып. 10, изд-во «Мир», М., 1973, стр. 33—38.)
Lenstra Н. W., Jr., Two theorems on perfect codes, Discrete Math., 3 (1972), 125.
Van Lint J. H., On the nonexistence of perfect 2- and 3-Hamming-error-cor- recting codes over GF^q), Inform, and Control, 16 (1970), 396.
Van Lint J. H., Coding theory, в сб. «Lecture notes in Mathematics», Sprin- ger-Verlag, Berlin, 1971.
Mac Williams F. J., Ph. D. Dissertation, Harvard University, 1961 (не опубликовано).
Mac Williams F. J., A theorem on the distribution of weights in a systematic code, BSTJ, 42 (1963), 79.
Pless V., Power moment identities on weight distributions in error-correc* ting codes, Inform, and Control, 6 (1963), 147.
Pless V., On the uniqueness of the Golay codes, J. Comb. Theory, 5 (1968), 215.
Preparata F. P., A class of optimum nonlinear double-error-correcting codes, Inform, and Control, 13 (1968), 378. (Русский перевод: Препарата Ф. П., Класс оптимальных нелинейных кодов с исправлением двойных ошибок, Кибернетический сборник (нов. серия), вып. 7, изд-во «Мир», М., 1970, стр. 18—42.)
Rao С. R., Factorial experiments derivable from combinatorial arrangements of arrays, Jour. Royal Stat. Soc., 9 (1947), 128.
Семаков H. В., Зиновьев В. А., Зайцев Г. В., Равномерно упакованные коды, Проблемы передачи информации, 7, вып. 1, 1971, стр. 38—50.
Singleton R. С., Maximum distance д-агу codes, IEEE Trans, on Inform. Theory, 10 (1964), 116.
Snover S. L, Ph. D. Dissertation, Michigan State University, 1973.
Г. Сеге, Ортогональные многочлены, ГИФМЛ, M., 1962.
Tietavainen A., On the nonexistence of perfect codes over finite fields, SMM J. Appl. Math., 24 (1973), 88.
Улучшенный метод частичного перекрытиядля умножения, выполняемого в темпепоступления информации')
Майкл С. Патерсон, Майкл Дж. Фишер, Альберт Р. Мейер
Приводится нижняя оценка вида cN log N для временной сложности многоленточной машины Тьюринга, выполняющей умножение в темпе поступления информации /V-разрядных бинарных целых чисел. Для более общего класса, включающего некоторые виды машин со случайным доступом, соответствующая оценка есть cN log M/log log N. Эти оценки хорошо сравнимы с известными верхними оценками c^(log^)ft, а для отдельных классов верхние и нижние оценки совпадают. Доказательства этого основываются на методе «частичного перекрытия», предложенном Куком и Андерой.
ВВЕДЕНИЕ
Актуальная проблема в области сложности вычислений состоит в получении нижних оценок времени вычисления для естественных алгоритмов, выполняемых достаточно мощной машиной. Для обычной машины, задача которой состоит в отображении входной последовательности в выходную, тривиальная нижняя оценка для многих отображений — это число шагов, необходимых для прочтения входной последовательности. Существует много комбинаторных приемов, включающих, например, пересекающиеся последовательности (ср. [6, § 10.4]), которые позволяют получать нетривиальные нижние оценки, но лишь для элементарных машин Тьюринга с одной лентой. Мощная техника диагонализации употребляется только для отображений, позволяющих кодировать вычисления машины.
В этой статье излагается и развивается далее метод «частичного перекрытия», введенный Куком и Андерой [3], который устанавливает для очень большого класса машин нелинейную нижнюю оценку времени, необходимого для умножения бинарных целых чисел. (Аналогичный метод недавно был вновь ис
!) Paterson М. S., Fischer М. J., Meyer A. R., An improved overlap argument for on-line multiplication, 5MM-4M5 Proc., 7 (1974), 97—111. Большая часть этой работы выполнена в Уорикском университете при частичной поддержке Science Research Council of the United Kingdom. Кроме того, работа финансировалась следующими фондами: the National Science Foundation under research grant GJ-34671 to MIT Project MAC; the Artifical Intelligence Laboratory, an MIT research program sponsored by the Advanced Research Projects Agency, Department of Defense, under Office of Naval Research contract number N00014-70-A-0362-0003.
© 1974. American Mathematical Society
© Перевод на русский язык, «Мир», 1977
пользован Андерой [1].) Наш вклад по отношению к [3] состоит, во-первых, в том, что основная линия доказательства несколько короче и проще, во-вторых, нижняя оценка, приводимая в [3], увеличена на множитель log log п и, как показано, она справедлива и для среднего и для максимального времени, в-третьих, намечен новый путь исследований, который позволит получить даже более сильный результат для класса многоленточных машин Тьюринга. Мы покажем на подходящих алгоритмах умножения, что в некоторых случаях новые результаты будут оптимальными с точностью до постоянного коэффициента.
Наш главный результат — нижняя оценка для умножения, производимого в темпе поступления информации. Будем говорить, что отображение входной последовательности символов в выходную осуществляется в темпе поступления информации, если n-й выходной символ для всех п печатается после того как прочитан n-й и перед тем как будет прочитан (п + 1)-й входной символ1). Для умножения, производимого в темпе поступления информации, множимое и множитель задаются бинарными числами, причем первым идет младший разряд и каждый входной символ кодирует два соответствующих входных разряда. Можно всегда предполагать, что при умножении ^-разрядных чисел требуется получить лишь последние из N значащих цифр. (Оставшиеся цифры, если это желательно, можно найти, приписывая нули к аргументам.) Умножение в темпе поступления информации несомненно возможно, хотя прямое его выполнение может занять время, по меньшей мере пропорциональное п в промежутке между чтением (п — 1)-й и пЛ цифр, т. е. время порядка № для /V-разрядного произведения. Мы покажем здесь, что минимальное среднее время вычисления для умножения, производимого в темпе поступления информации, ограничено снизу и сверху функциями вида ^(logN)h, где для нижних оценок к приблизительно равно 1, а для верхних к приблизительно 1 или 2 в зависимости от рассматриваемого класса. Точные результаты приводятся в § 6, 7 и 8. За всеми необходимыми сведениями мы отсылаем к работе [3].
• 1) Мы используем эту сильную форму определения, которая запрещает очень быстро выдавать выход, из соображений технического удобства. Это ограничение несущественно по двум причинам. Для бинарного умножения i-я цифра произведения не может быть определена, пока не будут прочитаны i-e цифры двух входов, за исключением того случая, когда оба числа четные; следовательно, можно воспользоваться более слабым определением не более чем для четверти всех возможных входов. При этом наши средневременные оценки изменяются только на постоянный множитель. Кроме того, чтобы удовлетворять сильному определению, любую МОА можно модифицировать за счет добавления двухголовочной линейной ленты, служащей выходным буфером, не меняя ее временные характеристики. Это нисколько не повлияет на наши нижние оценки (ср. [5]).
МАШИННЫЕ МОДЕЛИ J
В класс машин, для которого применимы наши доказатель^ ства, мы хотим включить не только знакомые многоленточные! машины, но также машины Тьюринга с лентами большей раз-; мерности и несколько упрощенные варианты «машин со случай-1 ным доступом». Мы будем исключать повторяющиеся массивы| и другие машины с неограниченным параллелизмом, так как на! них возможно производить умножение в «реальное время» [2],1 Наши определения в основном совпадают с определениями из| [3] с незначительными отличиями, чтобы сделать более простыми^ понятия и доказательства или для того, чтобы полнее исполь-/ зовать технические возможности доказательства. Предполагается, что читатель знаком с основными определениями и методами теории автоматов [6].
Машина с ограниченной активностью (МОА) имеет детерминированное управляющее устройство с конечным числом состояний, оперирующее с входной лентой, с которой можно только считывать и на которой символы располагаются только в одну строчку, с выходной лентой, на которую можно только писать, причем тоже в одну строчку, и с памятью. Память — счетное множество ячеек, каждая из которых может содержать бинарную величину. Память доступна и может модифицироваться конечным фиксированным числом подвижных рабочих головок, которые характеризуются конечным множеством сдвигов ф1, ..., фр. Сдвиг фг для каждого I есть отображение множества ячеек в само себя, и головка, расположенная над некоторой ячейкой х, может сдвигаться за один шаг к ячейке фг-(х). Полный шаг МОА описывается следующим образом. В зависимости от состояния конечного управляющего устройства входная лента может быть продвинута на один символ и в точности одна рабочая головка должна быть «сдвинута» одним из сдвигов. Затем в зависимости от управляющего состояния, нового входного символа (если он существует) и величины, которая хранится в обозреваемой ячейке памяти, возможно запоминание новой величины, определение выходного символа и введение нового управляющего состояния. Таким образом, для каждого данного символа на входной ленте существует единственный шаг, когда этот символ читается, и по определению он не может быть прочитан еще раз. Более того, на каждом шаге читается только один символ из памяти, поэтому мы можем говорить о «символе памяти на шаге s».
Разнообразные ограничения в этом определении, такие, как бинарная память, движение одной головки на каждом шаге и отсутствие зависимости нового шага от ранее запомненной величины, вводятся для того чтобы упростить описание, увели-
чив при этом время умножения не более чем на постоянный множитель по сравнению с более гибкими машинами.
Будем говорить, что вычисление совершается в реальное время, если оно совершается в темпе поступления информации и каждый входной символ читается через фиксированное число шагов после предыдущего входа. Отметим, что память не должна быть первоначально «пустой», за исключением тех случаев, когда рассматривается специальный класс «униформных» машин, определяемый ниже.
Легко сконструировать МОА, которая умножает в реальное время. Для этого необходима структура памяти, основанная на бесконечном бинарном дереве, проходимом единственной головкой, которая идет по левой или правой ветви в зависимости от входных цифр. Правильный выход либо уже хранится в ячейке дерева, либо же очевидным образом закодирован в его структуре. Например, эта структура может иметь сдвиг гр, такой, что для всех х или гр (%) = %, или же гр(гр(х)) = х и гр(х)=#х. Выполняемая альтернатива может быть определена для любой ячейки последовательностью из нескольких шагов.
Для того чтобы обойтись без такой пророческой конструкции, Кук и Андера [3] ввели два класса — определенные ниже полиномиально ограниченные и униформные машины. Мы добавили также еще два класса.
Полиномиально ограниченные машины. Структура памяти полиномиально ограничена, если существуют константы с и d, такие, что для всех ячеек х и для всех t число ячеек, которые достижимы из х за t шагов, равно не более чем ctd. МОА с такой структурой памяти называется полиномиально ограниченной машиной.
Униформные машины. Структура памяти является униформной, если для каждой пары ячеек х, у существует перестановка f, такая, что f (%) = у и для каждого сдвига ф^ этой структуры f о фг = фг о f, МОА с первоначально «пустой» (т. е. когда каждая ячейка имеет одинаковую первоначальную величину) униформной структурой называется униформной машиной. Читателю рекомендуется работа [3] для более подробного обсуждения этого и других классов.
При подходящем определении машины Тьюринга даже с несколькими головками и лентами большой размерности удовлетворяют обоим ограничениям. Наш основной результат справедлив для машин, которые удовлетворяют по крайней мере одному ограничению. Описанная выше МОА, умножающая в реальное время, не удовлетворяет ни одному из них.
Одноразмерные многоголовочные многоленточные машины Тьюринга. Можно доказать более сильный результат, чем
для классов (1) и (2), если ограничиться рассмотрением только одноразмерных, т. е. линейных лент.1
Забывающие машины. Для этого класса мы переносим внимание со структуры памяти, которая может быть произволь] ной, на форму управления с конечным числом состояний или! «программу». Ячейка (единственная) памяти, доступная на4 каждом шаге, определяет последовательность запоминания для любого вычисления, и это зависит, вообще говоря, от входа. Машина называется забывающей, если для входной последовательности данной длины последовательность запоминания фиксирована, т. е. она не зависит от входных символов. Естественно, что состояние управляющего устройства и величины, хранящиеся в памяти, могут (а в общем случае так и бывает) зависеть от входных символов; более точно — это движение головок, которое инвариантно. По отношению к забывающим машинам у нас двойной интерес. Во-первых, это ограничение позволяет получить очень простое доказательство улучшенной нижней оценки, и, во-вторых, оказывается, что почти все алгоритмы, предлагаемые или используемые для умножения, являются забывающими или могут быть сделаны забывающими только путем введения постоянного множителя в оценке времени вычисления.
В § 7 мы дадим ретроспективный обзор других классов машин, для которых применима эта техника доказательства.
РЕТРОСПЕКТИВНЫЕ ФУНКЦИИ
Неформально функция, отображающая входную последовательность в выходную, является ретроспективной^, если выходные величины в любом сегменте очень сильно зависят от входных величин непосредственно предшествующего сегмента и, следовательно, для оценки функции необходимо «вернуться» к предыдущему входному сегменту. Как будет показано, умножение в темпе поступления информации является ретроспективным.
Пусть KN=^1 < ^• Отсюда слеДУет> чт0 в бинарном представлении Kn в f-м разряде расположена «1» тогда и только тогда, когда i является степенью двойки, причем эти разряды перенумерованы, начиная с нуля, с правого (низкоразрядного) конца. Преимущество такого определения Kn в том, что умножение М-разрядного числа на Kn типично ретроспективно, а основное доказательство проще, чем для двухвходового умножения. В теореме 1 приводится нижняя оценка среднего времени
’) Мы сочли возможным не следовать Куку и Андере, давшим весьма сложное определение этих функций.
умножения в темпе поступления информации М-разрядного числа на Км, следовательно, и для максимального времени при умножении в темпе поступления информации. Теорема 2 утверждает, что такая же оценка справедлива для среднего времени при произвольном умножении в темпе поступления информации.
На рис. 1 показано умножение Км на Л/-разрядное число X с результатом Z. Числа представлены обычным образом, справа расположены младшие разряды; R и М — неотрицательные целые, и мы всегда будем считать, что R = 2Г— степень двойки. Величина W представляет собой ту подобласть X, которая содержит разряды Х№-1 ... XM+iXM, а У— подобласть Z, которая содержит разряды Zm+2r-i • • • Zm+r+iZm+r.
Мы иногда будем представлять W и У как /^-разрядные целые из интервала от 0 до 2R—1. Говоря, что W допускает величину г, мы подразумеваем, что бинарное разложение i можно поместить в ^-подобласть X. Это изменит Z, так как Z всегда обозначает произведение Км*Х, что в свою очередь воздействует на величину У. Таким образом, можно исследовать зависимость У от W.
То, каким образом У будет меняться с изменением W, конечно, зависит от оставшихся разрядов величины X, отличных от разрядов из W, которые мы обозначим через X\W. Как число, величина X\W есть значение бинарной последовательности, полученной подстановкой во все разряды W-области X нулей.
Для некоторой фиксированной величины X\W пусть W принимает все возможные значения 0, 1, ..., 2R—1; тогда Хг-= = X\W + t.2M, 0^г^2«-1. Пусть Z^ Zh ..., и Уо, Уь ... будут соответствующими величинами из Z и У, именно Хг = = Км-Xt, а У г есть У-область Z2.
Если г </, to_Zj — Z^ = (Xj — X^Kn = U — i)2MKN- Так как Км = К^нД-^-К для некоторого целого К, мы имеем
- Zt = (/ - I) 2mK2r (mod 2m+2R\
Допустим теперь У; = У,-. Тогда Z,— Z; = a2M(mod 2м+2д) для; некоторого целого а, |а|<2й, и, следовательно, (/ — i)K2R ^ = a (mod 22й). Так как R = 2Г, то I
2(2r- 1)>K2R = 22Г+ 22Г-1+ .+22°>2\ !
В силу правого неравенства, (/ — ЦК^к ^ 2я > а, и, значит, для? выполнения равенства мы должны иметь (/— 0^2я^^ + + 22я >> 22я— 2я. Из левого неравенства для К^н следует, что' / — />—2^. Поэтому для любого i существует не более одного / > /, такого, что Уг- = У,, и нами доказана
Лемма 1. Для фиксированных значений М, R, N и X\W каждое значение У может возникнуть не более чем при двух значениях W.
ЧАСТИЧНОЕ ПЕРЕКРЫТИЕ
Это понятие взято за основу очень изящного комбинаторного доказательства, приведенного в [3]. Недавно такой метод вновь был использован Андерой в работе [1]. Необходимость ввести определение частичного перекрытия появилась при вычислении ретроспективных функций. Очевидный способ, с помощью которого можно найти информацию о предыдущем входном сегменте, состоит в проверке ячеек, которые посещались при чтении этого сегмента. Частичное перекрытие определяется с использованием только определенной ранее в § 2(4) последовательности памяти. Если два последовательных посещения одной и той же ячейки I встречаются на шагах Si и s2 (si^s2), то пара (si, s2) называется перекрывающей парой, I называется перекрывающей ячейкой шага s2 и величина, которая хранится в I на шаге Si и используется на шаге s^ называется величиной перекрытия шага s^ Суммарным перекрытием называется
Q = |{(sh s2) |(s!, s2) — перекрывающая пара) |.
Очевидно, что суммарное время Т ^ Q, так как каждый шаг $ является второй компонентой не более чем одной перекрывающей пары, что зависит от того, посещалась ли ранее ячейка, которая используется на шаге s.
Пусть Сь С2—различные смежные временные интервалы во время вычисления. Определим перекрытие (Ci, С2) как число перекрывающих пар (sbs2), для которых S] е Сх и s2gC2.
Без потери общности будем предполагать, что N = 2п. Для любых t = О, ..., п, называемых уровнями, определим R^ = 2\ и если S = Sjv-iSjv-2 ... SiSo — любой список длины N, то разобьем S на соприкасающиеся блоки Si2n-i_v ..., Sf р S. 0
длины/?., где S. Z = S(/+1) R_x ... S^ О С / ^ Z^ — 1. Если X — входная последовательность, то временной интервал C^j начинается, когда читается самая правая цифра из Х^ j, и продолжается до того момента, пока должно начаться чтение самой правой цифры из Xi} j+1 (или до тех пор, пока вычисление кончится, если не существует такого j + 1).
Пусть tif j — длина интервала СЛ j. Ясно, что для каждого уровня i суммарное время вычисления есть T = ^tii}. Мы определим (ог-, j как перекрытие (С^ Ci} для всех подходящих Ц j И СО; = £ (О/, 2/ для любого I.
Лемма 2. Суммарное перекрытие fi = X ^t-
Доказательство. Пусть (sb s2) — перекрывающая пара и i— наименьший уровень, такой, что sb s2 е С^ j для некоторого /. Интервал Сг, j — это соединение двух интервалов Сг-i, 2j и Сг-i, 2j+i на следующем нижнем уровне. Выберем I так, что Sj^Ci-i^j и s2 е Сг--1,2W, поэтому (sb s2) вносит вклад в (ог-1,2; и, следовательно, в (ог-Ь Допустим, он вносит вклад в ©г,2/'* Тогда V ^ i— 1, так как Si и s2 принадлежат одному и тому же интервалу для каждого уровня выше i— 1, a Г ^ i— 1, так как если (sb s2) вносит вклад в согл/ , то и $ь и s2 находятся в одном интервале C^+L/^ на уровне Г + 1. Следовательно, I'= 4—1, и ясно, что f = j. Отсюда заключаем, что каждая пара перекрытия вносит вклад в точности один раз в одно перекрытие со^ и, следовательно, в точности один раз в И<&1. ■ i
ВЫЧИСЛЕНИЕ С МАЛЫМ ПЕРЕКРЫТИЕМ
Рассмотрим вычисление в темпе поступления информации некоторой машиной Э1 при входе X и выходе Z. Как и прежде, М и R — фиксированные числа, W есть подслово X длины R, именно Xm-vr-x • • • ХМ) и У — подслово Z длины R, именно Zm+2r-i • • • ZM№ В оставшейся части этого параграфа Х\№, М и R фиксированы, и мы будем исследовать изменение величины У в зависимости от изменения W. В отличие от предыдущих параграфов теперь Z представляет выход машины ЭИ при входе X.
Задание определенных значений W полностью определяет вычисление машины 2R. Пусть s0 — шаг, который продвигает входную головку на первый символ подслова W, si— шаг, который сдвигает входную головку с последнего символа W, и s2 — шаг, который читает следующий входной символ, после того как выдано подслово У. Определим интервал Cw как мно-
жество шагов от s0 до Si — 1, Су как множество шагов от Si до s2—1, и пусть tw = $i — s0, ty = s2— Si — отрезки времени, ассоциированные соответственно с Cw и Су. Величина Т — суммарное время вычисления, и мы полагаем со = перекрытие (Cw, Су). Это понятие иллюстрируется рис. 2.
При изменении W изменяются также со, tY, ^, Т и У. Пусть Q(6, t, f) —суммарное число различных значений У, порождаемых таким W, что ш^ю, tY^t и Г^Г. Если ЭГО вычисляет ретроспективную функцию, то Q(6, t, Г) должна быть большой и мы будем использовать этот факт для получения ограничений на 6 J и Г, что в конце концов приведет к нашей нижней оценке для Т.
Наши верхние оценки для Q зависят от типа машины, но находятся с использованием того же общего метода. Для данной величины W мы наблюдаем вычисление на интервале Су и записываем подходящим образом информацию о W, что влияет на вычисление в течение интервала Су.
Для каждого класса машин будет записано достаточно информации, чтобы обеспечить правильность следующего.
Условие 1. Пусть w и w' — два значения W,ay иу' — соответствующие значения У. Если информация, записанная для w и w' одинакова, то у = у'.
Из условия 1 непосредственно следует, что число различных возможных информационных записей, найденных для значе-
ний W, при которых (о, tY и Т ограничены соответственно значениями &Л и Т, является верхней оценкой для Q(6, I, Ту
Лемма 3. Существует константа С, зависящая только от 2Л, такая, что для T^lu&^t^T
Q(to, t, Т)<.Тс2й^У если машина 2Л — полиномиально ограниченная или униформная;
Q(6, t, Т^^Т0^, если St— одноразмерная многоголовочная многоленточная машина Тьюринга;
Q(to, t, Т^^С^) если машина St— забывающая.
Доказательство, (а) Случай 1. Машина St — полиномиально ограниченная. Информационная запись содержит состояние устройства управления, позицию каждой головки в момент времени sb подмножество 0 = {^, ..., t^ целых от 0 до t — 1 и бинарную последовательность и длины ю. Величина 6 выбирается так, чтобы включать моменты времени, связанные с Si из всех lF-перекрывающих шагов. Наконец, i-й разряд из о равен символу, на который ссылаются в момент Si + tt и который будет перекрывающей величиной, если si + ^ есть ^-перекрывающий шаг. Этим гарантируется выполнение условия 1.
Суммарное число таких записей, очевидно, не более чем С^ ( 1 ) Нс, где Н— число возможных позиций для каждой головки на шаге sb Так как St— полиномиально ограничена, то Н ^tdw ^Td <Td; получена оценка типа (а).
Случай 2. Машина St— униформная. Этот случай в точности совпадает с первым, за исключением того, что мы не записываем действительную позицию головки в момент sb так как число возможных позиций слишком велико. Вместо этого мы записываем для каждой головки h шаг Су (если он существует), при котором h впервые посещает ячейку I до шага s0, вместе с моментом времени первого посещения I (который единственным образом определяет /). Назовем такую ячейку / заполненной. (В случае более чем одной головки должно быть записано небольшое количество дополнительной информации для подсчета возможных пересечений головок перед просмотром заполненной ячейки. Более подробно это описано в [3].)
Если головка h никогда не посещает заполненную ячейку в течение интервала Су, то, в силу униформности, символы, которые читаются и пишутся этой головкой, могут быть единственным образом определены из перекрывающих шагов и величин без знания положения h в момент sb С другой стороны, если h не посещает заполненную ячейку /, то шаг CY, при котором I посещается, вместе с ячейкой I обеспечивает всю требуемую
информацию для определения читаемых символов головкой в те-; чение интервала Су. Ячейку I можно указать временем ее пер*] вого посещения, следовательно, существует не более tYT ^ ТЧ различных начальных позиций единственной головки h, которые] необходимо различать.J
St — одноразмерная многоголовочная многоленточная машина Тьюринга. Это специальный случай полиномиально ограниченной машины, поэтому мы можем записывать состояние и начальные позиции головок как в п. (а), случай 1. Однако те позиции, на которых может встречаться перекрытие, определяются проще, так как ячейки, посещаемые во время интервала Cw каждой из головок, формируют интервал. Следовательно, необходимо указать только его конечные точки. Поскольку на линейной ленте за Т шагов данная головка может посетить не более 2Г ячеек, существует не более 2Р возможных интервалов, приходящихся на головку. Как и прежде, достаточна бинарная последовательность длины со для того, чтобы записать перекрывающие величины. Следовательно, суммарное число таких записей не более СНс = (2Г2)С = 2й, где Н имеет такое же значение, как в п. (а), случай 1.
Машина St— забывающая. Позиции головок на каждом шаге независимы от W, следовательно, должны быть записаны только состояние управления на шаге Si и значения перекрывающих ячеек; тем самым обеспечивается оценка С2й. я
Мы закончили наши приготовления для главного доказательства комбинаторной леммы. Можно пояснить идею доказательства следующим образом. Пусть St—машина, которая умножает в темпе поступления информации, и пусть й, I и Т — границы для co, tY и Т соответственно, такие, что Q(&, t, Т}< По лемме 1 все, кроме 2-23R/4 значений W,— бесконечно малые величины; т. е. одна из трех границ превышена. Это дает явное выражение нижней оценки для со через величины tY и Т, которая на самом деле утверждает что, если Т мало, то суммарное перекрытие Q велико, а это влечет за собой, что Т велико. Следовательно, Т в среднем должно быть большим.
Лемма 4. Пусть С, R, а — положительные константы, такие, что log а > 2 (С + 3). Если 0<(о^/и(о + ^/б? + log Т
/?/(2 log а), то Тс<2^^^ < 23/?/4. (Все логарифмы в этой работе берутся по основанию два.)
Доказательство. Для любых р ^ q > 0 по формуле Стирлинга имеем
Допустим, что предположение леммы справедливо, тогда со < < Rl(2 log a), t < aRJ(2 log а) и log Т < R]^ log а). Функция <гс(ы)
монотонно увеличивается в зависимости от ш, t и Г, так как со ^ Т. Следовательно,
ТС ( 2Ц nCW log а) Г aR/\og а \
к (0 7к R№ log а) )
^ 2с^/(21о£ а) ^2ае^^log а^^ 2с^/(21о£ а) ^2ае^^log а^23W4 я
^ 2с^/(21о£ а) ^2ае^^log а^
^ 2с^/(21о£ а) ^2ае^^log а^
ОСНОВНЫЕ РЕЗУЛЬТАТЫ И ДОКАЗАТЕЛЬСТВА
Теорема 1. Существует константа с, такая, что для любой МОА ЭЯ, умножающей при всех N в темпе поступления информации N-разрядные числа на KN, среднее время Т (N^ для всех чисел длины N удовлетворяет следующим оценкам при достаточно больших значениях N:
если машина ЭЯ — полиномиально ограниченная или униформная, то Т ^N) > cN log W/log log N;
если 5R — одноразмерная многоголовочная и многоленточная машина Тьюринга или забывающая, то Т (Af) > cN log N.
Доказательство. Вначале допустим, что машина 8)1 — полиномиально ограниченная или униформная. Можно предположить, что log log N > 2 (С + 3), где С такое же, как и в лемме 3, и определить а = log N. Мы вновь рассмотрим ситуацию, которая изображена на рис. 1 и 2, где Х\№ фиксировано, a W может изменяться. Применяя леммы 1, 3(a) и 4, получаем, что число различных W, для которых со + t/a + log Т ^
R)^ log а^, меньше чем 2 • 23№. Следовательно,
среднее^ (ш + t/a + log Т) > В/(3 log а) для R ^ 16.
Так как это неравенство выполняется для всех значений Х\№, то
среднеех (со + tja + log Г) > R^3 log а\
где среднее берется по всем ^разрядным числам. Если предположим, что среднее ХТ < №, то среднее х log Т ^ log сред- нее^Т < 2 logM, так как геометрическое среднее не превосходит арифметического. Теперь используем равенство: среднее (Л+ + В) = среднее (Л) Д-среднее (В). В силу этого, из неравенства
среднеех (со + Ца^ > В/(3 log а) — 2 log N > В/(4 log а)
получается, что R > 24 (log М) (log log /V).
Допустим теперь, что W = Xii2j и Y = Zt, 2j+i для некоторых! i, /; значит, со = «и, 2j, t = ^, 2j+i и R = Ri = 2’. Суммированием,! по j предыдущее неравенство дает3
среднее^, + среднее^ £ ti.n+ila -
= £ среднее^. (o»z,2/ + tli2i+xla^ > X /?//(4 log a) = ^(8 log a).;
//'
Если предположить, что среднее^Г < N log 7V/(16 log log N\ то, в силу S^,2/+i < T, имеем
среднее^ > M/(81oga) — N/(16 log log N) = N/(16 log log N).
Так как это неравенство выполняется при всех /, таких, что KlogN и 2l = Ri > 24 (log М) (log log TV), мы заключаем, что
среднее^-? > среднеехй = 2 среднеех©/
> [log N — log (24 (log N) (log log Af))] 7V/( 16 log log M) >
>^log^/(171oglog^)
при условии, что N достаточно велико. Таким образом, доказан случай (1).
Доказательство случая (и) в некотором смысле проще. Можно легко показать, что если со + 2с log Т ^ R^, то TC2W < < 23/?/4. Аналогично тому как это было сделано в случае (1), можно получить, что среднее ^(со + 2с log Т) >/?/3. Если среднее ХТ < N2 и Ri > 48с log N, то среднее Xtot, 2j > ^?174 и среднее хам > W8, следовательно,
среднее^Т > среднее^й = ^ среднее^со/ > N (log М)/9.i
Это и доказывает случай (и). Конечно, доказательство только для забывающих машин было бы гораздо проще, так как сог\ь tij, Г и т. д. не зависит от X. g
Мы сразу же можем расширить это доказательство, удаляя зависимость от Kn- Покажем, что умножение почти всех чисел столь же ретроспективно, как умножение на Kn- В ситуации, изображенной на рис. 1 и в лемме 1, заменим Kn на произвольное М-разрядное число Kn-
Лемма 5. Для любого h, 0 < h <Z 2R, если Yi = Y^ для некоторого i, то KIr должно иметь одно из не более чем 2Л+1 возможных значений.
Доказательство. Как в доказательстве леммы 1, если У, = У/+д, то h • kXr =cl (mod 22R) для некоторого a, | a | < 2R.
Пусть d = н. о. д. (h, 22л). Тогда d\a, следовательно, а = kd, где \kd\ < 2R. По определению d^-1, и верно, что h < 2R. Следовательно,
поэтому существует (2-2H/d)— 1 таких к.
Из элементарной теории чисел известно, что существует в точности d значений K^r в области 0 ^ kXr < ^\ которые удовлетворяют равенству hK^R = kd(mo6 22R). Следовательно, существует не более d(2-2R/d— 1)< 2Л+1 значений K^r» для которых ¥{ = ¥1^. ■
Из этой леммы сразу же вытекает, что по меньшей мере для половины всех возможных значений Kir для всех И, 0 < h ^ ^ 2R-2, и для всех i выполняется Yt Ф ¥i+h. Следовательно, для этих значений K^r не более четырех различных W выдают одинаковые У. Поэтому доказательство теоремы 1 останется прежним, за исключением того, что термин «среднее^» заменится термином «среднее^-среднее^». Таким образом, мы доказали, что справедлива
Теорема 2. Существует константа с, такая, что для любой МОА 9Л, умножающей в темпе поступления информации, среднее время Т (N^ для пар N-разрядных чисел удовлетворяет следующим оценкам при достаточно больших значениях N:
если машина SR — полиномиально ограниченная или униформная, то Т (N) >> с N log Nflog log N;
если 9R — многоленточная машина Тьюринга или забывающая, то Т (N) > cN log N.
Для теорем 1 и 2 мы не знаем прямого доказательства следования одной теоремы из другой.
РАСШИРЕНИЯ
В этом параграфе мы наметим пути, которыми могут быть расширены уже рассмотренные классы, допуская в то же время прежние методы доказательства.
Простую «машину со случайным доступом» можно смоделировать с помощью МОА, структура памяти которой основывается на некоем виде бинарного дерева, так что ячейки «адресуются» двоичными последовательностями и доступны за время, пропорциональное длине адреса. Такая структура, конечно, ско-
рее экспоненциальная, нежели полиномиально ограниченная Однако напомним, что последнее свойство используется в цока; зательстве только для того, чтобы позволить определить положения головок перед прочтением нового входного символа д°1 казательство проходит, как и прежде, так как древовидна? структура используется таким образом, что головки возвра; щаются к корню перед чтением каждого входа (например, еслв «случайный доступ» выполняется подпрограммой).;
Другой подход к памяти со случайным доступом — это струив тура, основанная на свободной группе с двумя образующими а,| b и с четырьмя сдвигами, которые являются левым умножением! на а, аг\ b, Ь-1. Это может быть достаточно полезной памятью! со случайным доступом, и, конечно, она является униформной.1
С технической точки зрения интересно, что те же самые| оценки легко можно получить, когда полиномиально ограничен-^ ный класс расширяется заменой «ctd» в определении на «с2/8»| для любого в < 1. К сожалению, мы не знаем естественного ^ класса машин, для которого можно воспользоваться этим рас-1 ширением.- ]
Наконец, покажем, что без ослабления доказательств для1 любого из четырех классов машин можно следующим образом 3 добавлять «оракулы». МОА расширяется за счет бесконечного] числа состояний устройства управления, но с тем ограничением,! что лишь конечное число из них может читать входную ленту. J «Оракул», даже нерекурсивный, можно вызывать такой маши-^ ной, чтобы читать последовательность ячеек памяти и помещать^ результат применения его оракульной функции в некоторую i другую последовательность ячеек. Вся процедура займет то же 1 число шагов, что и доступ к этим ячейкам, в силу чего доказательства становятся неэффективными. Простой пример, который ; подчеркивает важность ограничения на темп работы машины - для нашего доказательства, — многоленточная машина Тьюринга с оракулом для выполнения автономного умножения в линейное время. Для нее также справедлива нижняя оценка cN log N.
ВЕРХНИЕ ОЦЕНКИ
М. Фишер и Стокмейер в [4] приводят мощную технику установления верхних оценок умножения, производимого в темпе поступления информации. Их конструкция показывает, что для широкой области классов машин, включающих многоленточные машины Тьюринга с оракулом и забывающие машины с временной сложностью T^N), где Т удовлетворяет неравенству T(2AQ^ 2T^N^ можно построить машину, работающую в темпе поступления информации, с временной сложностью, нс большей cT(N)\og N.
Некоторое расширение их методов показывает, что умножение в темпе поступления информации А-разрядных чисел, где одно из чисел имеет не более log N единиц, можно произвести за время О (N log N). В частности, существует машина Тьюринга для умножения в темпе поступления информации на Kn со сложностью O(N log N), что совпадает с оценкой теоремы 1 (п)-
Общий алгоритм умножения в темпе поступления информации можно найти, применив результат Фишера — Стокмейера к алгоритму умножения в темпе поступления информации Шён- хаге — Штрассена [7], сложность которого на машинах Тьюринга выражается величиной O(N log AMog log N). При подходящем построении и быстром доступе таблицы умножения для log M-разрядных чисел, например так, как в машинах со
случайным доступом, автономный алгоритм умножения Шён-
хаге — Штрассена можно выполнить за время O^NlogN).
Многоленточные машины Тьюринга
Оракульные машины Тьюринга
Машины co случайным доступом
Умножение в темпе поступления информации
N log2 N log log N
MlogM
N log2 N
Умножение в темпе поступления информации на KN
M log^
N log N
NiogN
Автономное умножение
N log N log log N
AT
N log M
Рис. 3.
На рис. 3 представлены некоторые из верхних оценок, полученные с помощью приведенных выше результатов для трех классов машин. Постоянные множители опущены, и черта под выражением означает, что в предыдущих параграфах приведена нижняя оценка такого же порядка. Первый класс — многоленточные машины Тьюринга с одноразмерными лентами, второй — класс МОА с бесконечным числом состояний при ограничении на входные состояния, приведенном в § 7, третий класс — любой вариант машин со «случайным доступом», описанных в § 7. С помощью униформной структуры, основанной на свободных группах с двумя образующими, легко смоделировать машины Тьюринга и память со «случайным доступом». МОА с бинарной древовидной структурой и ограничением на позиции головок, которые приведены в § 7, образуют достаточно мощный класс, для того чтобы быстро выполнять требуемые алгоритмы, хотя техника программирования в этом случае менее прямолинейна.
ЗАКЛЮЧЕНИЕ
В этой статье мы описали мощное комбинаторное доказательство, основанное на понятии «частичного перекрытия», и исследовали расширения и ограничения на его применимость. Методы частичного перекрытия применимы только при работе, производимой в темпе поступления информации, но часто с их помощью можно получить оценки сложности, оптимальные с точностью до постоянного множителя.
Важным объектом будущих исследований служит нахождение нетривиальных нижних оценок вычисления без строгого ограничения на темп поступления информации. Такие результаты даже для забывающих машин или комбинаторных цепей были бы значительным продвижением.
СПИСОК ЛИТЕРАТУРЫ
Aanderaa S. О., On Маре versus (&+l)-tape real-time computation, SMM-AMS Proc., 7, Amer. Math. Soc., Providence, R. 1, 1974, pp. 75—96.
Atrubin A. J. A one-dimensional real-time iterative multiplier, IEEE Trans. Electronic Computers, ES-14 (1965), 394—399. [Русский перевод: Атрубин А. Д., Одномерное итеративное умножающее устройство, работающее в реальное время, Киб. сб., 5, н. с., 1968, 81—94.]
Cook S. A., Aanderaa S. О., On the minimum computation time of functions, Trans. Amer. Math. Soc., 142 (1969), 291—314, MR 40 # 2459. [Русский перевод: Кук С. А., Аандераа С. О., О минимальном времени вычисления функций, Киб. сб., 8, н. с., 1971, 168—200.]
Fischer М. J., Stockmeyer L. J., Fast on-line integer multiplication, Proc. 5th ACM Sumpos. on theory of Computing, 1973, pp. 67—72; L Comput. Sys. Set, 9 (1974).
Fischer P. C., Meyer A. R., Rosenberg A. L., Real-time simulation of multihead tape units, J. ACM, 19 (197^), 590—607.
Hopcroft J. E., Ullman J. D., Formal languages and their relation to automata, Addison-Wesley, Reading, Mass. 1969, MR 38# 5533.
Shonhage A., Strassen V., Schnelle Multiplication grosser Zahlen, Computing (Arch. Elektron. Rechnen), 7 (1971), 281—292, MR 45 #1431. [Русский перевод: Шёнхаге А., Штрассен В., Быстрое умножение больших чисел, Киб сб., 10, н. с., 1973, 87—98.]
Степени автоматных преобразований1)
Герхард Рейна
Department of Mathematics, Lehigh University,Bethlehem, Pennsylvania 18015
Верхняя полурешетка степеней преобразований конечными автоматами аналогична верхней полурешетке степеней рекурсивной неразрешимости (которая возникает из преобразований машинами Тьюринга). Две бесконечные последовательности из конечного алфавита считаются эквивалентными, если каждую из них можно преобразовать в другую посредством некоторого конечного автомата, возможно, после того, как из каждой последовательности будут вычеркнуты начальные сегменты (не обязательно одинаковой длины). Требуется, чтобы выходная последовательность порождалась с той же скоростью, что и входная, ровно один выходной символ на каждый входной. Если такое преобразование возможно только в одном направлении, то между классами эквивалентности выполняется отношение порядка.
Мы показываем, что это частично упорядоченное множество образует верхнюю полурешетку, обладая единственным минимальным классом, и доказываем, что не существует максимального класса. В процессе доказательства последнего утверждения введено понятие полной последовательности, т.е. последовательности, в которой встречается каждый блок алфавита, и отмечена важность этого понятия. Богатство этого частичного упорядочения проиллюстрировано двумя контрастирующими примерами: мы находим одну часть множества, в которой частичное упорядочение плотно, и в то же время приводим два класса [х] > [z], не содержащие класса строго между ними.
ВВЕДЕНИЕ
В этой статье мы изучаем некоторое отношение эквивалентности между бесконечными последовательностями и частичное упорядочение классов эквивалентности. Грубо говоря, две последовательности эквивалентны, если каждую из них можно
9 Gerhard Rayna, Degrees of finite-state transformability, Information and Control, 24 (1974), 144 — 154.
© 1974 by Academic Press, Inc.
© Перевод на русский язык, «Мир», 1977.
.| преобразовать в другую, возможно с фиксированной задержкой^ посредством некоторой пары конечных автоматов. Если такое! преобразование возможно только в одном направлении, то ме^ жду классами эквивалентности выполняется отношение по-^ рядка.i
Конечный автомат «читает» входной символ при каждом? «такте» (время дискретно) и сразу же «пишет» выходной сим-^ вол. Входная последовательность считывается постоянно слева направо, с той же скоростью порождается выходная последовательность.
Очевидно, что преобразование, выполняемое конечным автоматом, представляет собой вычислимый процесс. Следовательно, наше частичное упорядочение согласуется с частичным упорядочением степеней рекурсивной неразрешимости [2], но гораздо тоньше. -
В наших доказательствах мы будем пользоваться формулировкой конечного автомата Мили: выходной символ может зависеть как от входного символа, так и от состояния автомата. (См., например, [3] или [1, стр. 7].) Если последовательность х можно преобразовать в последовательность у посредством автомата Мили, то х можно преобразовать в у с единичной задержкой посредством автомата Мура (см. [4] или [1, стр. 12]), и обратно (во втором случае задержка не требуется). Так как наше отношение эквивалентности допускает конечную фиксированную задержку, результаты применимы также и к автоматам Мура.
ОПРЕДЕЛЕНИЯ
В формулировке Мили конечный автомат — это множество Г, содержащее
конечный входной алфавит S,
конечный выходной алфавит S',
конечное множество состояний S,
функцию перехода состояний f: S X S —> S, выходную функцию %: S X S —> S'.
Если выделено начальное состояние so, то пару (Г, s0) называют инициальным автоматом. Часто мы будем обозначать одной буквой Т инициальный автомат (а не автомат без выделенного начального состояния), если не будет необходимости явно указывать выделенное состояние.
Говорят, что автомат (Г, s0) преобразует последовательность {хп}, п = 0, 1, 2 ..., символов из S в последовательность {гп} символов из S', если
s„+i = f(xn, sn) И zn = x^n, s„) для n = 0,1,2
Говорят также, что входная последовательность {хп} проводит автомат (Г, s0) через последовательность состояний {sn+i}. Отметим, что начальное состояние s0 опускается. «Последовательность» всегда будет означать бесконечную последовательность символов, снабженных индексами 0, 1, 2, ... . Конечная последовательность будет называться блоком. Если длина блока равна N, то назовем его ^-блoкoм. Говорят, что входной ^-блoк {х0, ^ь х2, .. ., Xjv-i} проводит автомат (Г, so) через блок состояний {$1, S2, . . . , Sjv} и Производит ВЫХОДНОЙ блок {z0, 21, ... , 2дг—1}. Состояние Sjv будем называть финальным состоянием.
Две последовательности символов {хп}, {уп}, каждая из конечного алфавита (не обязательно одного и того же), будут считаться эквивалентными тогда и только тогда, когда суще* ствуют такие инициальные конечные автомата (Т, s0) и (Т', s^) и такие неотрицательные целые d и d', что (Г, $о) преобразует {хп} в (уп-Д, т. е. {уп} задерживается на фиксированное d, и (Т\ s') преобразует {уп} в {^n_d,}. (В этом определении члены последовательности с отрицательными нижними индексами можно выбрать произвольно.) Легко видеть, что это — отношение эквивалентности. (Напомним, что можно определить композицию двух инициальных конечных автоматов и она тоже будет инициальным конечным автоматом.) Класс эквивалентности, содержащий последовательность х, обозначается [^].
В частности, последовательность эквивалентна самой себе, если она задержана (в нее вставлены начальные символы), продвинута (опущено в начале конечное число символов) или в ней изменено любое конечное число символов. Каждый класс эквивалентности называется «степенью автоматных преобразований».
Если инициальный автомат преобразует последовательность х в последовательность у или в последовательность, эквивалентную у, то пишут [х] ^ [у]. Легко заметить, что это определяет частичное упорядочение классов эквивалентности. Заметим, что [х] ^ [у] тогда и только тогда, когда последовательность х преобразуется каким-нибудь инициальным автоматом в последовательность у, задержанную на некоторое конечное неотрицательное число d.
В следующих разделах мы установим ряд свойств этого частичного упорядочения.
ЭЛЕМЕНТАРНЫЕ СВОЙСТВА
Теорема. Класс [0] (которому принадлежит постоянная последовательность 0) состоит из почти периодических последовательностей. Кроме того, [х] ^ [0] для любой последовательности х.
Доказательство. Пусть х — почти периодическая последовательность. Тогда легко описать инициальный автомат, который безотносительно к входу всегда выдает на выходе последовательность х. Следовательно, [0] ^ [х].
Обратно, еще проще описать инициальный автомат, который для произвольного входа выдает постоянную последовательность 0. Следовательно, [х] [0].
Это показывает, что если х почти периодична, то [0] = [х]. Второй абзац этого доказательства доказывает второе утверждение теоремы.
Теорема. Частично упорядоченная система степеней автоматных преобразований является верхней полурешеткой.
Доказательство. Мы должны показать, что для любых классов эквивалентности [х], [у] существует такой класс И, что [х] ^ [г], [у] ^ [г] и [г] ^ [w] для любого класса [ш], для которого [х] ^ [w] и [у] ^ [ш].
Пусть {xj е [х] и {yj е [у] — последовательности над алфавитами Si и 2г соответственно. Рассмотрим последовательность {гг = (хг, уг)} над произведением алфавитов 21X^2. Тогда можно определить автоматы (только с одним состоянием), преобразующие последовательность {zj в {xj и {Уг}-
С другой стороны, предположим, что {wj — такая последовательность, что существуют автоматы Т\, Т^ преобразующие ее соответственно в последовательность {xj, задержанную некоторым образом, и в последовательность {yj, также некоторым образом задержанную. Можно предположить, что эти задержки равны. Тогда можно описать автомат, «параллельно» соединяющий Тх и Т2 и преобразующий {w^} в последовательность {(хг, Уг^ с той же самой задержкой.
Отметим, что такая же конструкция приводится в [2, стр. 382], где последовательность Ца) определяется как последовательность кодов вида 2^3^ упорядоченных пар (а (я), |3(а)), где а, |3 — последовательности целых чисел.
КЛАССЫ, РАСПОЛОЖЕННЫЕ НИЖЕ ОПРЕДЕЛЕННОГО КЛАССА
Проанализируем структуру частично упорядоченного множества классов, расположенных ниже (^) класса последовательности
X={101001000100001 ...}.
Единицы в этой последовательности занумерованы, так что можно говорить об f-й единице для i = 1, 2, 3, ... .За i-й единицей следует в точности I нулей.
Для целей этого анализа назовем последовательность у = = {Уп} специальной, если она совпадает с последовательностью х, за исключением того, что те единицы, чьи номера образуют некоторую периодическую последовательность, заменены нулями. Сама последовательность х считается специальной. Формально последовательность у специальна, если существуют целые числа s и
0^ах<ах< ... <а5<М, определяющие у по формулам
уп=Х, если хп=\ и хп есть Ля единица,
где 1 = ах или а^ или . .. или asmod/H; уп = 0 в противном случае.
Теорема. Если у — специальная последовательность, ах — только что описанная, то [у] ^ [х]. Обратно, каждый класс ниже класса [х] содержит в точности одну специальную последовательность.
Доказательство. Если дана специальная последовательность у, определенная числами s, <2Ь ..., as, М, то легко описать автомат, считающий входные единицы по модулю М и выдающий в точности те единицы, чьи номера находятся в нужном классе вычетов. Следовательно, [у] ^ [х].
Обратно, пусть (Г, s0)—инициальный автомат, преобразующий х в у. Если Т находится в произвольном состоянии s^, то входная почти периодическая последовательность {100000 . ..} проводит Т через некоторую почти периодическую последовательность состояний St. Пусть Nt — длина начальной непериодической части этой последовательности состояний и Mi — период периодической части. Выберем N больше всех ^ и в качестве М возьмем какое-то общее кратное всех М^ Тогда последовательность состояний Si и соответствующую выходную последовательность Yi можно рассматривать как содержащие начальную часть длины N— 1 и периодическую часть с периодом М; эти параметры не зависят от начального состояния Si.
Входная последовательность х состоит из последовательно расположенных (&+1)-блоков Bh, образованных единицей и следующими за ней "к нулями, к = 1, 2, ... . Пусть Tk — соответствующий блок последовательности состояний автомата (Т, s0) и Ch — соответствующий блок выходной последовательности у. Блоки Tk и Ск должны быть начальными сегментами одной из вышеописанных почти периодических последовательностей состояний и выходных символов соответственно, а именно Si и Yi, если Si — состояние автомата к началу поступления блока Вк.
В последующих рассуждениях мы будем предполагать всюду, что к > N + М, так что по крайней мере одна полная копия периодической части включена во все начальные сегменты почти периодических последовательностей, которые уже упоминались.
Если Тк и Tk' — начальные сегменты последовательности состояний Si и к = к'^тойМ^ то финальные состояния в Тк и Тк' совпадают в силу периодичности. Значит, непосредственно следующие блоки Тк-vx и Тк'-н также являются начальными сегментами некоторой общей последовательности Sj, и, разумеется, к + 1 = k' + 1 (modAl). Отсюда вытекает, что последовательность тех 5г-, для которых Тк— начальные сегменты, почти периодическая и, таким образом, есть последовательность тех Уг-, в которых выходные блоки Ск образуют начальные сегменты.
Теперь допустим, что Ск— начальный сегмент последовательности Y^ и блок, состоящий из Ск, после которого идет Сд+ь также является начальным сегментом для У^. Тогда Cw называется невидимым; в противном случае — видимым. Будет ли Ск-н видимым, очевидно, зависит только от Yt и fe(modM), так как fe(modM) определяет ту точку в периодике Yb где оканчивается С^ а также последовательность Y^, для которой Cw сам является начальным сегментом. Так как Yt образуют почти периодическую последовательность, то такова же и последовательность пар (Уг-, fe(modAl)). Следовательно, свойство видимости (невидимости) почти периодическое.
Если нет видимых блоков, то выходная последовательность почти периодическая, и ничего не надо доказывать. Если есть видимые блоки, то для каждого такого С№ пусть dk будет номером первого из всех тех мест в С&+1, где Сд, за которым следует Ск-н, отличается от соответствующего места в У^. Ясно, что dk зависит только от пары (У^, fe(modM)), так что различных значений будет лишь конечное число. Пусть d— их максимум. Тогда легко определить конечный автомат, преобразующий выходную последовательность в специальную, задержанную на d, в которой сохранены только те единицы, которые соответствуют началам видимых блоков; Кроме того, можно определить автомат, преобразующий без задержки эту специальную последовательность в первоначальную выходную последовательность. Следовательно, выходная последовательность эквивалентна специальной последовательности.
Осталось проверить лишь одно утверждение теоремы: никакой класс не содержит различных специальных последовательностей. Если последовательности у и г специальны и различны, то в у бесконечно много вхождений единиц, которых нет в 2 (или обратно). Число подряд идущих нулей по каждую сторону
от этих единиц неограниченно. Далее, никакой автомат, скажем с к состояниями, не может преобразовать входной блок из к + 1 нулей в блок, состоящий из к нулей, за которыми идет единица; следовательно, никакой автомат не может восстановить все отсутствующие единицы из 2, чтобы получить у. Очевидное уточнение этих рассуждений показывает, что последовательность у с постоянной задержкой также нельзя получить. Следовательно, Й^ [у], и потому [г] =# [у].
б. НЕ СУЩЕСТВУЕТ МАКСИМАЛЬНЫХ КЛАССОВ
В этом разделе мы покажем, что не существует таких последовательностей у, для которых [2] ^ [у] при всех 2. Этот результат можно вывести из известного факта, что в частичном упорядочении степеней рекурсивной неразрешимости нет максимального элемента, однако методы приводимого ниже элементарного доказательства интересны сами по себе.
В последующих рассуждениях мы предполагаем, что алфавит фиксирован. Вопрос нахождения такой последовательности 2, что [2] > [у], тривиален, если 2 можно записывать в большем алфавите, чем у. Например, если у = {у^}, то 2 может быть {(Уг, ^г)}, где w = {t^J — одна из несчетного множества последовательностей из нулей и единиц, для которой [у] > [w]. (Здесь последовательность 2 записана в алфавите, мощность которого в два раза превосходит мощность алфавита для у.)
Очевидно, надо предположить, что этот алфавит имеет по меньшей мере два символа.
Будем называть последовательность символов из некоторого алфавита полной, если в ней для любого к встречается каждый блок длины к из символов этого алфавита. Отсюда следует, что каждый блок встречается бесконечно часто: например, для произвольного п встретится (пk) -блок, состоящий из п последовательных копий fe-блока.
Лемма. Если последовательность у не полная, то ее класс эквивалентности не максимален.
Доказательство. Пусть В будет fe-блоком, который не встречается в у, а Л будет fe-блоком, который встречается бесконечно много раз среди «целочисленно расположенных fe-блоков», т. е. среди fe-блоков, начинающихся с позиций 0, к, ^к, Зк, ... в последовательности у. Мы построим такую последовательность 2, ЧТО [2] ^ [у], НО И ^ [у].
Последовательность 2 будет образована из у заменой целочисленно расположенных копий блока А копиями блока В. Легко описать автомат, преобразующий 2 в последовательность
у, задержанную на к; начиная вновь работу после просмотра каждого из целочисленно расположенных входных fe-блоков, он должен воспроизводить его неизменным, если это не блок В, и выдавать А в противном случае. Это доказывает, что [г] ^ [у].
Покажем, как выбрать для замены копии блока А, чтобы убедиться, что [2]^ [у]. Мы должны построить 2 так, чтобы ни для одного инициального автомата Т (над специальным алфавитом) и ни для одной задержки d вход у не давал на выходе последовательность 2, задержанную на d. Однако множество пар (T^d) счетно. Построим 2 по шагам следующим образом. Для i = 1, 2, 3, ... пусть (Г, d) будет i-й такой парой. Заменим i-ю из целочисленно расположенных копий блока А на S, если это необходимо, чтобы гарантировать, что часть последовательности 2 после этого fe-блока, задержанная на d, отличается от начального сегмента выхода инициального автомата Т с входной последовательностью у.
Доказав, что единственно возможные максимальные классы — это те, которые содержат полные последовательности, покажем, что никакой из таких классов не максимален. Поэтому максимальных классов не существует.
Теорема. Если класс содержит полную последовательность, то он не максимален.
Доказательство. (В этом доказательстве удобно считать, что алфавит содержит по меньшей мере три символа, скажем 0, 1, 2. Если это не так, заменим слово «символ» в доказательстве на «пара последовательных символов». Так как алфавит имеет по меньшей мере два символа, он имеет не менее четырех и, значит, не менее трех пар символов.)
Легко определить инициальный автомат, заменяющий символ, который следует за каждой максимальной цепочкой последовательных копий символа 2, символом, который следовал за предыдущей такой цепочкой; при первой замене вставляется произвольно выбранный символ, скажем 0. (Если алфавит имеет К символов, можно определить инициальный автомат с 2^ состояниями, которые соответствуют парам (В, X), где В — «истина» или «ложь» в зависимости от того, был последний символ 2 или не 2, а X — символ, который следовал после предыдущей максимальной цепочки двоек. Начальным является состояние (ложь, 0).) Для любой входной последовательности х пусть Dx будет выходом этого инициального автомата. Покажем, что если последовательность х полна, то [Вх]^[х], откуда [Вх] < [х], так как очевидно, что [Вх] ^ [х].
Пусть у — произвольная последовательность. Тогда [у] = = [Вх] для подходящим образом выбранной последовательно-
сти х, а именно последовательности, полученной заменой символа, который следует за каждой максимальной цепочкой из двоек, символом, расположенным за следующей такой цепочкой (или, скажем, нулем, если в этой последовательности нет больше двоек). (В самом деле, последовательности у и Dx согласуются, за исключением, может быть, символа, следующего за первой такой цепочкой.) Кроме того, если последователь’ ность у полна, то, конечно, полна и х. Следовательно, если дана какая-нибудь полная последовательность у, то
[z/J = [Z)x] < [х].
Покажем теперь, что Ц)х\ < [х]. Для этого нам понадобится лемма, которую мы докажем ниже.
Лемма. Для любого конечного автомата Т и любого неотрицательного целого d существует блок В, длина которого больше d и такой, что независимо от того, в каком состоянии автомат Т начинает работу, его выход, если на вход подана последовательность DB, отличается от В, задержанного на d, по меньшей мере в одной из позиций, где они оба определены.
С помощью этой леммы легко закончить доказательство. Пусть х — любая полная последовательность. Тогда каждый блок В встречается в ней бесконечно часто. Пусть (Г, s0)—любой инициальный автомат и d — произвольная задержка. Тогда выход автомата (Г, s0), которому на вход подана Dx, отличается от х, задержанной на d, бесконечно часто, в частности по меньшей мере один раз в каждом вхождении блока В, соответствующем по лемме этой паре (Г, d). Следовательно, LDx] ^ > и.
Доказательство леммы. Пусть даны автомат Т и положительное целое число d. Занумеруем состояния автомата Т; sb ..., sn. Построим блок В как последовательность п копий блоков X = 2000 ... 0 и У = 2100 ... 0, каждый длины d + 2: независимо от того, начинается В с X или У, DB будет начинаться с X (из-за произвольности выбора символа 0, что было сделано для того, чтобы заменить символ после первой цепочки из двоек). .Предположим, что Т начинает работу в состоянии sb и рассмотрим последний выходной символ для входного блока X. Если это 0, то пусть В начинается с копии блока У, в противном случае — с копии блока X.
Для завершения индуктивного построения допустим, что в В мы уже определили первые к подблоков X и Y, рассматривая начальные состояния от Si до sk. DB начинается с X, за которым идет уже определенная часть блока В; поэтому первые
(fe + 1) (d + 2) символов уже известны. Теперь допустим, что Т начинает работать в состоянии sw с этим уже известным блоком DB на входе. Рассмотрим последний символ выхода. Если это 0, то пусть следующая часть блока В будет У, в противном случае X. Продолжаем так, пока не будет использовано последнее состояние sn (поэтому В имеет длину n(d + 2)).
Если блок В определен таким способом и Т начинает работать в состоянии sk с DB на входе, то выход отличается от S, задержанного на сЦ по меньшей мере в fe(d + 2) позициях.
АТОМ
В разд. 4 мы проанализировали некоторое подмножество частично упорядоченного множества и заметили, что в нем между любыми двумя классами И > [г] находится такой класс [у], что И > [у] > И- Здесь мы покажем, что в общем случае это неверно. В частности, построим последовательность (над алфавитом 0,1), класс эквивалентности которой лишь атомарно больше, чем наименьший класс, т. е. И > [0] и не существует такого класса [у], что [%] > [у] > [0].
Определим последовательность блоков Л, где каждый блок 1г— собственный начальный сегмент следующего блока Д-+ь Последовательность х будет определена как предел этой последовательности блоков, т. е. как единственная последовательность, для которой каждый блок lt является начальным сегментом.
Блоки Ц вместе с некоторыми блоками А{, В; будут определены индукцией по i = 1, 2, 3, .. . . Детали построения даны в конце раздела. Сейчас мы сформулируем ряд свойств, кото* рыми обладают эти блоки.
Л1 начинается с 0, Bi— с 1, и они имеют одинаковую длину.
Каждый блок Дж> Вж представляет собой последовательность копий меньших блоков Аг и/или Вг, начинающуюся соответственно с Аг и Вг. Они имеют одинаковую длину, большую I. Ни тот, ни другой не являются частью никакой периодической последовательности периода i.
/г-+1 состоит из Д и следующими за ним копиями блока Аг и/иЛИ В^.
Перенумеруем инициальные автоматы (Г, s0). Если вход Д переводит i-й автомат (Г, s0) в финальное состояние s, то, начиная работать в состоянии s, Т возвращается в финальное состояние s как под действием входного блока At, так и под действием входного блока В^
Последовательность х = Игл к не является почти периодической. Допустим обратное, т. е. что она имеет конечный период I. Последовательность х можно рассматривать как начальный блок Л+i, за которым идет последовательность копий блоков Дг+i и Bw. Но по свойству 2 ни Д^+ь ни Bw не составляют части никакой периодической последовательности периода i.
Допустим, что у нас есть такая последовательность у, .что И ^ [у]. Заменяя, если необходимо, у другим членом из класса эквивалентности [у], можно предположить, что некоторый инициальный автомат (Г, s0) выдает последовательность у, если на его вход подана последовательность х. Пусть I будет номером автомата (Г, s0) в нашей нумерации инициальных автоматов.
Последовательность х можно рассматривать как содержащую начальный блок Л, за которым идет последовательность копий блоков At и Bi одинаковой длины, скажем N. Как только начинается один из этих блоков Ai или В^ Т находится в одном и том же состоянии, скажем s. Следовательно, выходная последовательность у, если уже пройден начальный сегмент к входа, содержит последовательность копий только двух блоков, каждый длины N, скажем С (ответ на входной блок Ai, когда Т начинает работать в состоянии s) и D (аналогично ответ на В^.
Очевидно, что [%] ^ [у] ^ [0]. Надо показать, что одно из этих неравенств на самом деле является равенством.
Существуют две возможности. Если С и D совпадают, то последовательность у почти периодическая, поэтому [у] = [0]. Если С и D не совпадают, то можно описать инициальный автомат, заменяющий С на At и D на Bt с задержкой не более чем на N. Таким образом, х и у эквивалентны: [х] = [у].
Доказательство будет закончено, когда мы опишем конструкцию блоков, использованных в нем. Определим клл^ Дг*+1 и Bw по индукции. Начнем с определения /0 как пустого блока (длины нуль), До— как символа 0 и Во — как символа 1.
Пусть (Г, s0) будет (г + 1)-м инициальным автоматом. Допустим, что (Д|В)* обозначает множество конечных непустых блоков, которые являются последовательностями копий блоков Ai и/или Bi. Для любого состояния s автомата Т пусть (s) будет множеством состояний, которые являются финальными состояниями автомата (Г, s) для входных блоков из множества
Пусть Si — финальное состояние автомата (/, s0) для входного блока к. Выберем состояние 52е(5^ так, чтобы мощность множества (s2) была минимальна. Тогда s2 е (s2\ Пусть /i+i состоит из к и следующего за ним такого блока из множества (Д|6)*, что s2— финальное состояние автомата (Г, s0) для входа Л+1-
По предположению индукции Ai и В^ имеют длину по меньшей мере т Они отличаются первыми символами. Значит, если А^Аг — часть периодической последовательности периода ц то А^Вг нет. Пусть AiXi — одна из этих последовательностей и она непериодическая. Пусть sA будет финальным состоянием автомата (Г, s2) Для входного блока А^Х^. Очевидно, что $а ^ е (s2) ^ (si), поэтому (sa) = (s2) в силу минимальности (s2). Следовательно, s2g($a). Пусть Ai^—элемент множества (Д|В)*, который начинается с AiXi и для которого финальное состояние автомата (Г, s2) есть s2.
Так как АД^ не составляет части никакой периодической последовательности периода I, то и последовательность А,+1 также обладает этим свойством. Ее длина больше 2f, а значит, больше i + 1.
Аналогично пусть В^ — элемент множества (Д|В)*, начинающийся с В^ не составляющий части никакой периодической последовательности периода I, и для него s2 — финальное состояние автомата (Г, s2).
Пусть А^+1 имеет длину fe, а В^\ — длину /. Обозначим через т наименьшее общее кратное чисел к и I, и пусть Aw состоит из mlk копий блоков Л^+ь a Bw — из mil копий блока В^\. Тогда А<+1, Bw имеют одинаковое строение и обладают свойством «от s2 к s2», которым обладали вставленные блоки; более того, они имеют одинаковую длину.
Так как Ai начинается с 0, а В\— с 1, то по индукции так же начинаются соответственно Д^+1 и Bw.
Это завершает проверку требуемых свойств.
СПИСОК ЛИТЕРАТУРЫ
Gill A., Introduction to the theory of finite-state machines, McGraw-Hill, New York, 1962. (Русский перевод: Гилл А., Введение в теорию конечных автоматов, изд-во «Наука», М., 1966.)
Kleene S. С., Post Е. L, The upper semi-lattice of degrees of recursive unsolvability, Ann. Math., 59 (1954), 379.
Mealy G. H., A method for synthesizing sequential circuits, Bell System Tech. L, 34 (1955), 1045.
Moore E. F., Gedanken-experiments on sequential machines, «Automata Studies», Ann. Math. Stud., 34 (1956), 129—153. (Русский перевод: Мур Э. Ф., Умозрительные эксперименты с последовательностными машинами, в сб. «Автоматы», ИЛ, М., 1956, стр. 179—210.)
Набросок математической теориивычислений1)
Д. Скотт
Побудительный мотив попытки сформулировать математическую теорию вычислений кроется в необходимости снабдить математической семантикой языки программирования высокого уровня. В этом контексте слово «математическая» должно контрастировать с таким термином, как «операциональная». Так, математическим содержанием процедуры следует считать функцию от элементов того типа данных, какой связан с входными переменными, принимающую значения элементов того типа данных, какой связан с выходом. С другой стороны, операциональное понимание всегда будет предусматривать некий след полной истории вычисления, вытекающей из той последовательности действий, которая предписывается заданным определением процедуры, и будет также включать явный финитный выбор представлений данных в той или иной форме, близкой в конечном счете к двоичным образам. Существенно то, что функции не зависят от способов их вычисления и, значит, «проще», чем явно порожденные шаг за шагом последовательности операций над представлениями. Когда даются точные определения операциональной семантики, всегда нужно сделать более или менее произвольные выборы схем для каталогизации промежуточных результатов и связей между фазами вычисления (ср. формальные определения таких языков, как ПЛ/1 и АЛГОЛ 68). Истинное же «понимание» программы в значительной степени не зависит от этих выборов. Математическая семантика имеет тенденцию избегать таких иррелевантностей и больше подходит к изучению вопросов типа эквивалентности программ.
Способствовать выработке более «абстрактного» и «ясного» подхода к семантике — очень похвально, но, претендуя на в какой-то степени хороший замысел, нельзя полностью игнорировать операциональные аспекты. Причина очевидна: в конце концов, программа должна прогоняться на машине — машине, которая не обладает преимуществами человеческого «абстрактного» понимания и должна оперировать только конечными конфигурациями. Поэтому математическая семантика, будучи пер
’) Scott D., Outline of a mathematical theory of computation, Proc. Princeton Conf, on Information Sci., 1971.
вой главной частью полного и строгого определения языка программирования, должна естественно приводить к некоему операциональному моделированию абстрактных сущностей, что, если оно сделано правильно, устанавливает практическую ценность языка и необходимо для полного представления.
Будем рассуждать пока только о функциях. Ясно, что о данной математически определенной функции мы можем знать, что она вычислима, но не знать, как она практически вычисляется — точно так же, как можно знать, что бесконечный ряд сходится, не имея ни малейшего представления о том, как найти его сумму. Даже тогда, когда данное абстрактное определение функции достаточно для полного ее задания, мы не можем сказать, что знаем функцию, пока не обнаружен алгоритм ее вычисления. (Причем даже тогда, когда наше знание в некоторой степени «косвенное» или «потенциальное».) Вывод таков: настоянная теория вычислений должна не только давать абстракции (выявлять вычислимость), но также и указывать их «физические» реализации (как вычислять их).
Новым в нашей теории является как раз выдвижение этих абстракций, тогда как способы их реализации, техника воплощения уже в течение ряда лет известны, и это продемонстрировано в компиляторах большой сложности. Конечно, новые понятия могут потребовать новых (или подсказать новые) методов воплощения. Но это еще предстоит увидеть. Отметим, однако, один существенный момент: до тех пор пока под рукой нет общепринятого математического определения языка, кто может сказать, что предложенное воплощение корректной Теперь часто полагают, что смысл данного языка заключен в каком-либо одном конкретном компиляторе для него. Но эта мысль не верна: «один и тот же» язык может иметь много «различных» компиляторов. Человек, написавший один из этих компиляторов, имел (можно надеяться) ясное понимание языка (оно руководило им), и цель математической семантики — сделать это понимание «видимым». «Видимость» эта должна достигаться абстрагированием центральных идей в математические сущности, которыми можно затем «манипулировать» обычным математическим образом. Если бы подход, ориентированный на компиляторы (даже на компиляторы, «прокручиваемые» на «абстрактной» машине), был ясным и прозрачным — что на самом деле не так, — то все равно было бы интересно выведенные абстракции связать в теорию, использующую стандартную математическую практику.
Эта желаемая математическая теория требует, как нам кажется, некоторых новых структуральных понятий, нового взгляда на природу типов данных и функций (отображений) из одного типа данных в другой тип. Более того, рассуждая
о понятиях «высшего уровня» в языках программирования (таких, как, например, понятие процедуры), мы скоро приходим к тому, что пространство функций также должно рассматриваться как имеющее тип данных. Так как функция (скажем, отображение целых чисел в целые) есть, вообще говоря, сама по себе бесконечный объект, возникает необходимость в некоторой идее конечного приближения (аппроксимации)—так же, как мы поступаем в случае вещественных чисел. Здесь мы уже сталкиваемся с такими операционально определенными понятиями функции, которые, кажется, не имеют математических прообразов. В частности, не ново разрешать в языках программирования неограниченные процедуры, которые могут использовать любые процедуры в качестве своих аргументов и могут производить в качестве значений неограниченные процедуры. Математически это равносильно допущению функции, определенной на всех допустимых функциях как аргументах (некоторого рода суперфункционал) и применимой даже к самой себе как к аргументу. В настоящее время нет математической теории функций, позволяющей столь свободное обращение с понятием функции, если, конечно, оставаться в рамках непротиворечивости. Главным математическим нововведением настоящего исследования является создание собственной математической теории функций, которая служит указанной выше цели (непротиворечиво!) и которая может быть использована как математический проект, дающий «корректный» подход к семантике.
Следует сразу же особо подчеркнуть, что проблема самопри- менимости возникает при интерпретации языков программирования, притом более критически, чем при рассмотрении (в каком-то смысле непрактичных) неограниченных процедур. Проблема касается прослеживания побочных эффектов и запоминания команд. Прежде всего, что такое память? Физически мы имеем несколько замечательных ответов, но математически они сводятся к тому, что память есть просто назначение (функция), которое связывает содержания с местами (адресами). Точнее, (текущее) состояние памяти, назовем его о, математически есть функция
a: L~>V,
которая каждому месту / е L (где L — множество всех мест) назначает (текущее) содержание о(/)е V (где V—множество всех допустимых значений для содержаний). Пусть 2— множество всех состояний. Что такое побочный эффект? Очевидно, изменение состояния. Что такое команда? Это требование побочного эффекта. Более математически, команда есть функция у: 2->2,
преобразующая (старые) состояния в (новые) состояния.
Вопрос: может ли команда запоминаться? Ответ: конечно. Это мы делаем операционально все время. Вопрос: оправданно ли это математически? Ответ: посмотрим. Пусть о — текущее состояние памяти, a I ^ L — место, где запомнена команда. Тогда о(/)— команда, т. е.
о^У S->S. ‘
Следовательно, о(/)(о) вполне определено. Но что это такое? Здесь мы имеем лишь незначительный шаг в сторону от проблемы самоприменимости р^р") для «неограниченных» процедур, и это как раз трудно оправдать математически. Конечно, при операциональном подходе мы не запоминаем команду саму по себе как функцию, мы запоминаем ее как «кодовое слово» или как «кусок текста», что для команд устанавливается недвусмысленно. Но чтобы «вытянуть» формальное описание того, как это работает, — особенно в случае сложных команд, зависящих от многих параметров, — мы должны войти в большинство «проклятых» вопросов семантики языков программирования, и не видно действительно концептуально удовлетворительного способа выпутаться из них.
Переходя к более специальным вещам, спросим: как точно определить, что такое тип данных? Упрощая дело, можно отождествить тип данных с множеством D всех объектов этого типа. Но это слишком сильное упрощение: ведь объекты обладают структурой и находятся в некоторых отношениях друг к другу, так что тип есть нечто большее, чем множество. Это структурирование не надо смешивать с идеей структур данных (списки, деревья, графы и т. п.); они появляются позже. Род структуры, который мы здесь имеем в виду, более примитивен и общ и связан с основным смыслом приближения. Пусть х, у е D — два элемента типа данных. Тогда идея заключается не в том, чтобы думать о них как о совершенно разделенных сущностях из-за того, что они могут быть различными. Вместо этого у может быть лучшей версией, чем х, в попытке что-то выразить. Давайте запишем отношение
х^у,
интуитивно означающее, что у совместно с х и (возможно) точнее х. Такое интуитивно понимаемое отношение существует на большинстве типов данных естественным образом, и один из тезисов настоящей статьи есть то, что тип данных следует всегда снабжать таким отношением. Чтобы «подогнать» некоторые стандартные идеи, возможно, потребуется придать нашим мыслям определенное направление, но, право, стоит потратить усилия для единой трактовки различных типов.
Итак, в дальнейших рассуждениях принимается, что типы (по меньшей мере) структурированы отношениями Е. Что абстрактно можно сказать о каждом таком отношении? В соответствии с интуитивным пониманием следует считать, что отношение Е рефлексивно, транзитивно и антисимметрично. Мы переводим это в аксиому.
Аксиома 1. Тип данных есть частично упорядоченное множество.
Конечно, это немного: частично упорядоченные множества весьма общи, но все же это некоторый шаг вперед. Следующий шаг связан с отображениями.
Предположим, что D и D'— два типа данных (с соответствующими частичными порядками Е и Е'). Пусть f: D —> D'— какое-либо разумное отображение одного типа в другой. Следует ли говорить вообще что-нибудь о свойствах отображений? Да, следует. Пусть х, у е D и хе у. Если бы f была функцией, заданной с помощью программы, то функция была бы чувствительна к точности своих аргументов (входов) в следующем смысле: когда вход точнее, тогда и выход точнее. Запись
х Е у влечет f (х) Ez f (у) означает, что по отношению к частичному порядку функция f монотонна. Сформулируем это в виде аксиомы.
■ Аксиома 2. Отображения между типами данных монотонны.
Заметим, что такое условие легко обобщается на функции нескольких переменных, даже если переменные смешанных типов.
В численных вычислениях аксиома 2 иногда отвергается, но это связано с неверным употреблением слова «точность». Верно, что известны хорошие асимптотические алгоритмы, дающие лучшие ответы при более грубой точности, но их следует рассматривать как функции двух переменных: обычные входные данные вместе с параметром, указывающим степень точности, или, лучше сказать, число «членов разложения». Может случиться, что, взяв больше членов, мы только разрушим уже полученное хорошее приближение, но заметим, что теперь вход и число членов разложения предполагаются совершенно известными. Понятие точности, которое мы связываем с отношением Е, несколько иное и не зависит от этого предположения. Может быть, уместнее говорить об информации; так что х Е у означает, что х и у приближают одну и ту же сущность, но у дает больше
информации о ней. Это означает, что мы хотим допустить «неполные» сущности, такие, как х, содержащие только «частичную» информацию. (Этот способ в численных вычислениях называется интервальным анализом, но мы не имеем здесь возможности входить в детали.) Допущение частичности для аргументов и значений функций приводит к хорошему эффекту, что наши функции становятся также частичными, ибо даже если аргументы полные, то значения могут быть частичными. Это необходимо при рассмотрении алгоритмически заданных функций, так как для некоторых комбинаций аргументов алгоритм может «не сходиться». Тогда, исходя из этой точки зрения, не может быть численной функции вида, совместимого с аксиомой 2, которая отображает «частичные» числа в показатели степени точности. Но это не недостаток, так как можно увидеть, проверяя детали метода, что имеется достаточно много монотонных функций.
Теория, основанная на аксиомах 1 и 2, была бы слишком абстрактной, хотя и небессодержательной. Для тех приложений, которые мы имеем в виду, нужны более специальные свойства приближений. Предположим, задана последовательность приближений
Тогда разумно предположить, что хи стремится к пределу. Обозначим этот предел через у и запишем
У = U хп,п =0
так как предел в смысле частичного порядка естественно берется как наименьшая верхняя грань (н. в. г.). Если представить себе члены последовательности, как дающие все больше и больше информации, тогда предел имеет вид «объединения» отдельных составляющих. Фактически ради математической простоты мы предположим, что всякое подмножество типа данных имеет наименьшую верхнюю грань, и выражается как
Аксиома 3. Тип данных есть полная решетка по своему частичному порядку.
Как хорошо известно, существование произвольных наименьших граней влечет существование наибольших нижних граней (н. н. г.)—вот почему мы говорим, что имеем полную решетку.
Последнее предположение требует некоторого разъяснения. Для х, у е D возможно, что либо они являются приближениями одной и той же «полной» сущности, либо они в какой-то степени
«несовместны». В обоих случаях мы предполагаем, что они имеют н. в. г., или объединение хИ у е D. Хуже того, мы предполагаем, что всё D имеет н. в. г., которую мы обозначаем Т. Это Т есть «верх» решетки, наибольший элемент частичного порядка ^. Его не надо рассматривать как «полный» элемент, но как «сверхопределенный элемент». Следовательно, рассматривая равенство
.xUy=T,
мы можем понимать его интуитивно как то, что х и у несовместны. Следует отличать это от гораздо более слабого отношения быть несравнимыми, что просто записывается как х^у и у^х.
Н. в. г. пустого подмножества нашего типа данных D есть элемент 1 eD. Это есть «низ» решетки, наименьший элемент частичного порядка. Его можно рассматривать как самый «недоопределенный» элемент. И. в. г. множества всех нижних граней для подмножества X^D есть н. н. г.П^ ^ D. Для х, у ^ D мы имеем пересечение х П У = П {х, у} е D. Равенство
хПу = 1
можно понимать так, что х и у не связаны в том смысле, что они не имеют перекрывающихся частей информации.
После того как мы предположили, что тип данных допускает пределы, мы должны пересмотреть наш взгляд на функции. Если функция вычислима в каком-либо интуитивном смысле, то для извлечения «конечного» объема информации из какого-либо значения функции мы должны запросить лишь «конечный» объем информации об аргументах. Наше понятие информации скорее качественное, чем количественное. Однако еще возможно выразить это фундаментальное ограничение на функции: а именно, функции должны сохранять пределы.
Аксиома 4. Отображения между типами данных непрерывны.
Во всей общности мы можем это точно выразить в терминах направленных множеств. Подмножество X с D направлено, если каждое конечное подмножество X имеет по крайней мере одну верхнюю грань в X. (Заметим, что направленное множество не пусто.) Функция /: D —> D' непрерывна в том и только том случае, если для любого направленного множества X с D мы имеем
f (U X) = U {f (х): хеХ}.
Не все н. в, г. следует рассматривать как пределы, а только н. в. г. направленных множеств. Можно привести много приме-
ров, показывающих, что неразумно требовать от функций сохранения произвольных н. в. г. Кроме того, совершенно неразумно предполагать, что функция сохраняет н. н. г.: нельзя ожидать никакой «гладкости» при убывании информации. Заметим, что понятие непрерывности легко распространить на функции многих переменных. На самом деле оказывается, что для непрерывности функции по всем переменным одновременно достаточно потребовать ее непрерывности по каждой переменной в отдельности.
Для первоначального общего наброска теории сделано достаточно много. Однако все это слишком еще абстрактно, ибо хотя некоторые существенные свойства вычислимых функций и были выделены, все же возможность «физической» реализации не предполагалась нами ни в какой форме. Это необходимо восполнить. Задача заключается в концентрации внимания в точности на тех типах данных, элементы которых могут быть приближены «конечными конфигурациями», представимыми в машинах. Значит, нужно уточнить понятие «конечного объема информации».
Для решения этой проблемы попытаемся применить топологический подход. Во всяком случае, наше предыдущее упоминание пределов и непрерывности должно подсказывать существование топологических идей в основании нашей теории. В самом деле, всякий тип данных D, удовлетворяющий аксиомам 1 и 3, можно рассматривать как топологическое пространство. Чтобы задать на множестве топологию, нужно сказать, какие подмножества являются открытыми. В случае типа данных D для того, чтобы подмножество U ^ D было открытым, должны выполняться следующие два условия:
([/J если x^U и х^у, то y^U,
ф2) если X^D направлено и VAX^U, то ХП^^О.
Легко проверить, что D становится, таким образом, топологическим пространством и что /: D -> D' непрерывна в смысле сохранения пределов тогда и только тогда, когда она непрерывна в топологическом смысле. Для х, у ^ D мы пишем
Х< у,
понимая под этим то, что у принадлежит топологической внутренности верхнего сечения, определяемого х, т. е. множества
ф ^ D; х^х'}.
Это отношение не является иррефлексивным, как может показаться сначала, так как в некоторых типах данных могут существовать изолированные элементы х, для которых тогда
х х. Мы также пишем
У
для обозначения того, что наибольшая верхняя грань топологической внутренности верхнего сечения, определяемого х, есть с у. Таким образом, в списке
х<^у, Х^У и Х~У
каждое последующее отношение слабее предыдущего.
Топологические пространства, подобные пространству вещественных чисел (топология которых несколько отличается от наших пространств типов данных), подсказывают нам рассмотреть возможность иметь плотное множество в нашем пространстве в том смысле, что все другие элементы пространства получаются как пределы направленных подмножеств плотного множества. Мы называем такое подмножество базисом. Собственно, определение таково: подмножество Е ^ D есть базис, если оно удовлетворяет следующим двум условиям:
(£1) если е, е'^Е, то e\Je'^E, и
для всех x^D мы имеем x = LJ{e^E: е^х}.
Существование базиса приводит к нескольким следствиям. Например, если существует базис, операция пересечения х П у непрерывна, в противном случае она не обязана быть непрерывной.
Условия (Ei) и (Е2) все еще недостаточны для того, чтобы сделать типы данных «физическими». Нам нужно более сильное предположение.
Аксиома 5. Тип данных имеет эффективно заданный базис.
То есть множество Е должно быть «известно». Для данных е, е' е Е мы должны знать, как решить, какое из отношений е^е', е<.е\ е^е'
истинно, а какое ложно. Это однозначно приводит к требованию счетности или конечности для множества Е и, возможно, к требованию иметь эффективную нумерацию
Е {^0, ^Ь ^2> • * *, ^П) * * * }>
в терминах которой указанные выше операции и отношения рекурсивны. Чтобы сделать тип данных действительно физическим, нам следовало бы считать все это в высокой степени вычислимым, но мы здесь не будем входить в подробности: интуитивная идея эффективно заданного базиса не вызовет осо-
бых сомнений, так как в конкретных примерах всегда ясно, что нужно уточнить. Заметим, что благодаря аксиоме 5 топологии типов данных сепарабельны не только в том смысле, что существуют счетные плотные подмножества (базисы), но и в смысле, что множества
{х е D: е <^ х)
для всех е е Е образуют счетный базис для топологии в D.
Наиболее важным следствием предположения об эффективно заданном базисе является возможность выяснить, что означает вычислимость элемента. Пусть х е D и Е — базис. Тогда х вычислим (относительно этого базиса), если существует эффективно заданная последовательность
{^0» 6V 62’ * * • ’ eiv • * *} — Е,
такая, что efn^e'nJrX для каждого п и
х= LJп =0
Иными словами, мы должны иметь возможность давать эффективно все более и более хорошие приближения к х, сходящиеся к х в пределе. Это существенное понятие, так как для типа данных D допустимо несчетное число элементов, в то время как число вычислимых элементов счетно. Заметим также, что, вообще говоря, может быть много последовательностей, сходящихся к элементу х, так что знание того, что х вычислимо, еще не означает, что известен также и «лучший» способ его вычисления.
На этом мы заканчиваем обсуждение оснований теории. Возможно, кто-нибудь заметит, что аксиома 3 влечет аксиому 1, а аксиома 4 — аксиому 2, но аксиомы были даны в том порядке, в каком возникали естественно. Кратко подытожим все сказанное: типы данных являются полными решетками с эффективно заданными базисами и все допустимые отображения непрерывны. Теперь нужно взглянуть на конструкцию полезных типов данных, удовлетворяющих аксиомам, не забывая, что структура решетки есть только наиболее примитивная структура на типе данных и что наиболее «интересная» структура накладывается различного рода непрерывными функциями специально для данного типа.
В первую очередь все конечные решетки удовлетворяют аксиомам, и непрерывность для них никакой роли не играет. Разумеется, для «практических» приложений достаточно конечных решеток, но многие понятия легче находят свое выражение через бесконечные структуры. Имеются два особых типа данных N и R для целых и вещественных чисел. Как решетка, N имеет
элементы О, 1, 2, ..., п, ... (которые попарно несравнимы относительно ^) и еще два элемента ± и Т, расположенные соответственно «выше» и «ниже» всех других элементов. (Здесь была бы полезна картинка.) В этом случае базисом решетки является она сама. Для R элементами служат замкнутые интервалы [х, х] обычных вещественных чисел (х^х) плюс два элемента ± и Т. Частичный порядок для интервалов определяется так:
[х, х] Е= [у, у] тогда и только тогда, когда х^у^у^х.
«Полные» вещественные числа есть одноточечные интервалы [х, х] с х = х. „Приближенное11 число имеет х < х. Базис состоит из интервалов с рациональными концами плюс элемент ±. Есть очень тесная связь между непрерывными функциями на решетке R и обычной теорией непрерывных точечных функций. В обеих решетках арифметические операции представляют собой непрерывные функции. Особенно интересно рассмотреть деление в R.
Пусть D и ГУ — два каких-либо типа данных. Имеются три особенно важные конструкции
ФХП% Ф + D'), ф->П^
для получения новых, «структурированных» типов данных из начальных типов. (Декартово) произведение D X D' имеет в качестве элементов пары (х, х'), где х (= D и У е D', и мы определяем:
(х, х') ^ (у, у') тогда и только тогда, когда х^у и х' Е='у'.
Сумма D + D' определяется как «раздельное» объединение D и D', исключая отождествления 1 = 1' и Т = Т'. (Опять был бы полезен рисунок.) Пространство функций ф -> D') имеет в качестве элементов все непрерывные функции из D в Df, для которых мы определяем:
fEg тогда и только тогда, когда f(x)^'g(x) для всех xeD.
Можно проверить, что эффективно заданные базисы для D и D' определяют базисы в этих конструкциях. Это легко сделать для произведения и суммы и несколько труднее для пространства функций.
Суммы и произведения могут очевидным образом быть обобщены на большее количество слагаемых и сомножителей и даже на бесконечное их число. Например, Оп можно рассматривать как множество всех n-ок из элементов множества D, частично упорядоченное очевидным координатным образом.
Тогда положим|
D* = DHD4D'4 ... + Dn + ...,:
что представляет тип всех конечных списков из элементов типа; D. Можно также прийти к спискам, составленным из списков,; которые составлены из списков, которые . .. . Если правильной это сделать, то кажется разумным, что получится решетка 2)00, такая, что;
о°° = о + ил\.
т. е. каждый элемент решетки D°° есть либо элемент данного D, либо список из других элементов из D°°. Это очень напоми- ' нает обычное определение списков. Однако необходимо принятье во внимание следующее рассуждение.
отображающую D'отображающую D'Хорошо известна теорема о том, что всякая непрерывная | (даже только монотонная) функция, отображающая полную | решетку в себя, имеет неподвижную точку. Применяя это за-1 мечание к D°°, мы видим, что для данного ^ZED выражение | (а, х) определяет непрерывную функцию, в себя. Рассмотрим неподвижную точку
отображающую D'
отображающую D'
х = ^а, х).
Таким образом, х есть список, первый элемент которого есть а, а второй элемент есть ...? Вторым элементом является сам спи-д сок х! Значит, х имеет вид бесконечного списка:;
х = (а, (а, (а, .. .))).5
Это не вписывается в обычные идеи о данных типа списков, но i разве это плохо? Нет, ибо можно показать, что тип D°° дей- j ствительно существует. Он содержит все обычные конечные i списки, а также много очень интересных и полезных пределов последовательностей из конечных списков. Можно сказать, что ■ D°° есть топологическое пополнение пространства конечных спи- ; сков, и мы можем вообще не использовать предельных точек, 1 если нам не видно их какое-либо преимущество.,
Процесс «пополнения» пространств весьма общ, и полноеj приложение этого метода нам пока не ясно. Второй пример касается пространств функций. Для данного D положим D^ = D \ и1
Оп^х = фп->Пп\|
Пространства Dn суть «высшие типы» пространств функций над функциями над функциями над ... . Оказывается, суще- j ствует естественный способ изоморфного вложения каждого Dn | в следующее за ним пространство 2)п+ь Используя эти вложе-!
ния, можно перейти к предельному пространству D^, которое содержит начальный тип данных D и для которого
(Строго говоря, к этому удивительному равенству нужно отнестись осторожно: оно верно только с точностью до изоморфизма, но для наших целей этого достаточно.) Это пространство дает решение проблемы самоприменимости, так как каждый элемент Doo можно рассматривать как (непрерывную!) функцию из Doo в Doo. И обратно, всякая непрерывная функция корректно представляется некоторым элементом Doo. Мы имеем, таким образом, первую «математически» определенную модель так называемого Х-исчисления Карри — Чёрча.
Читателю следует заметить, что наша абстрактно представленная теория вычислимых элементов в решетках с эффективно заданными базисами применяется к этим пространствам функций. Так что мы знаем, какие функции вычислимы. Более того, мы «знаем», что такое вычислимые элементы пространства Doo функций «бесконечного» типа. Ясно, что становится интересным исчисление операторов, порождающих вычислимые функции, и это возвращает нас к семантике языков программирования. В самом деле, естественный путь определения вычислимых функций лежит в контексте подходящего языка программирования. Язык программирования представляет собой и Х-ис- числение: это чистый язык «неограниченных» процедур. И это один из многих возможных языков программирования,
В заключение дадим набросок решения проблемы запоминания команд, упомянутой в начале статьи. Пусть L — пространство мест (конечное или, если угодно, L = N, так что места обозначены целыми числами). Пространство V значений должно быть построено методами, которые мы наметили выше. Предположим, что V уже построено. Тогда пространство состояний памяти S определяется как
S = (L->V).
Пространство команд Г определяется как
Г = (2->2).
Пространство Р процедур — с одним параметром и с побочными эффектами — определяется как
т. е. процедура есть функция, которая при заданном значении ее аргумента и заданном состоянии памяти производит «вычисленное» значение вместе с необходимым изменением состояния памяти. Каковы должны быть эти значения? Они могли бы быть
числами (из N или /?), или местами, или списками, могли бь быть командами или процедурами. (Даже для обеспечений этого набора возможных значений нам понадобился достаточна углубленный язык программирования.) Мы должны, следов^ тельно, написать
v = n-vr-vla-v*a-va-p.j
Если теперь подставить определения 2, Г и Р в это равенства то получим лишь несколько более сложное «определение», чек те, которые получились для D°° и D^. Такое пространство действительно существует математически, и оно снабжает нас зна^ чениями для выражений языка программирования того типа! который раньше мы понимали «операционально». Нам следуем начать понимать эти языки математически, ибо имеются вей необходимые инструменты для этого.|
Идею использования монотонных функций в теории рекур^ сии автор заимствовал у Ричарда Платека (докторская диссер^ тация, Станфорд, 1965). Понятие непрерывности появлялось в работах Лакомба, Нероуда, Клини и Крайзеля и было ис| пользовано Платеком, но теория не была достаточно далеке) продвинута. Мысль о том, что это можно было бы связатй с языками программирования, возникла у автора во время сов^ местной работы с де Баккером по схемам программ в Амстердаме весной и летом 1969 года. Идея абстрактных решето^ с базисами является новой и значительно обобщает специальные структуры, которыми пользовались вышеуказанные авторы. Замысел нахождения математической семантики для языков^ программирования выдвигался Кристофером Стрейчи, и именно^ благодаря его настойчивости и содействию за осенний семестру 1969 г. в Оксфорде автор смог выработать связную теорию и^ разрозненных идей. Технические статьи по Х-исчислению и pe*i шеткам с базисами будут скоро опубликованы с совместной^ работой со Стрейчи по семантике различных языков.|
СПИСОК ЛИТЕРАТУРЫ !)1
Scott D., Continuous lattices, Toposes, algebraic geometry, and logic, Lec*| ture notes in math., 274 (1972).i
Scott D., The lattice of flow diagrams. Symp. on semantics of algorithmic^ languages, Lecture notes in math., 181 (1971).j
9 Добавлен переводчиком. Указаны почти все работы, развивающие идеВЭ переведенной статьи Скотта и опубликованные в доступных изданиях. (Мно-Л го работ появилось в форме технических и научных отчетов.) Переводчик бла^ годарен В. Ю. Сазонову, помогавшему в составлении этого списка литера^ туры.fl
Scott D., Lattice-theoretical models for various type-free calculi, Proc. IV Intern. Congress on logic, methodology and phylosophy sci., Bucurest (1972).
Scott D., Strachey C., Towards a mathematical semantics for computer languages, Proc. symp. on computers and automata, Polytecnical Institute of Brooklyn, N. Y. (1971).
De Bakker J. W., de Roever W. P., A calculus for recursive program schemata, Automata, languages and programming, Proc. Symp., IRIA (1973).
Manna Z., Vuillemin J., Fixpoint approach to the theory of computation, Communs. ACM conf., 15, N 7 (1972).
Milner R., Implementation and application of Scott’s logic for computable functions, Proc. ACM conf., N. Y. (1972).
Milner R., Weyhrauch R., Proving compiler correctness in a mathematical logic, Machine Intelligence, 7 (1972).
Ершов Ю. Л., Вычислимые функционалы конечных типов, Алгебра и логика, 11, № 4 (1972).
Ершов Ю. Л., Теория Л-пространств, Алгебра и логика, 12, № 4 (1973).
Сазонов В. Ю., Последовательно и параллельно вычислимые функционалы, Сиб. мат. журнал, 17, № 3 (1976).
Трахтенброт Б. А., Рекурсивные схемы и вычислимые функционалы, Math, foundation of computer science, Lecture notes in computer science (1976).
Трахтенброт M. Б., Об интерпретированных функциях в схемах программ, Сб. «Системное и теоретическое программирование», Изд-во ВЦ СО АН, Новосибирск (1973).
Транхтенброт М. Б., О представлении последовательных и параллельных функций, Сб. «Вычислительная математика и программирование», Изд-во ВЦ СО АН, Новосибирск (1974).
О классах схем программ1)
Роберт Л. Констейбл, Дейвид Грис
В статье определяются следующие классы схем программ;
Р — класс схем с конечным числом простых переменных^ Рл — класс схем с простыми и индексированными пере-^ менными (массивами);'
РЛе—класс схем из Рл, допускающих применение преди^ ката равенства к индексированным переменным; ;) Рд —класс схем,допускающих рекурсивные определения^
PL — класс схемспеременными-метками;i
Pm — класс схемспеременными-маркерами;^.
Ppds— класс схемсмагазинами.1;
Кроме того, можно рассматривать, например, РАт— класс схем с массивами и переменными-маркерами и Pal— класс схем с массивами и переменными-метками.<
Утверждается, что Рл, Рд и PL точно представляют меха-^ низмы индексирования, рекурсии и переходов по переменным- - меткам, имеющиеся во многих «реальных» языках программна рования.5
В статье показано, что1
РРл = Рл£ = Рлт = ^ pdsm = ^Ле*
При этом включения Р cz Рд cz Рл и эквивалентности PAL — : = РАт = Ppdsm = Рас эффективны. Например, если дана схема < программ из Раш, то по ней можно эффективно построить эквивалентную схему из Pal. Показано, однако, что хотя для любой : схемы из Pal существует эквивалентная ей схема из Рл, но ее, 3 вообще говоря, нельзя построить эффективно!
Высказывается также предположение, что Рл, Pal и экви- J валентные им классы «универсальны».1
ВВЕДЕНИЕ|
Основной результат логики и теории вычислений заключается в том, что различные на первый взгляд вычислительные^ системы (например, машины Тьюринга, рекурсивные опреде-^
!) Robert L. Constable, David Gries, On classes of program schemata, TR 71—105, Cornell University, August 1971.
ления) эквивалентны в своих возможностях вычислять функции. Все они универсальны, поскольку допускают вычисление в точности множества эффективных функций.
Патерсон и Хьюитт [5] и Стронг [7] обнаружили, что структурные различия между этими системами выявляются на уровне схем, т. е. при вычислении функционалов.
В [5] демонстрируется следующая иерархия схем: класс схем программ (Р) содержится в классе рекурсивных схем (Рд), который содержится в классе параллельных рекурсивных схем (Рр). Эти результаты показывают, что механизм рекурсивного вычисления функций «мощнее» механизма вычисления машинами с конечным числом ячеек. Там же поднят вопрос о том, существует ли хорошо определяемое понятие универсальной схемы вычисления.
Мы хотим точнее установить, как соотносятся между собой различные классы схем, а также предложить естественную модель схемы вычислений, которая, быть может, окажется универсальной.
Нахождение универсальных схем вычислений, если они существуют, должно происходить аналогично нахождению универсальных вычислительных систем. А именно, предлагается несколько кандидатов и устанавливается их эквивалентность (ведь для того, чтобы начать исследование, требуются кандидаты). В качестве одного из таких кандидатов мы предлагаем схемы с массивами и маркерами. В [5] Патерсон предлагает схемы с магазинами, а Стронг [7] — свои эффективные функционалы. Мы устанавливаем соотношение между нашими схемами с массивами и схемами с магазинной памятью.
Наши «доказательства» эквивалентности или включения одного класса схем в другой заключаются обычно в том, что показывается, как по данной схеме S из одного класса построить эквивалентную ей схему S' из другого класса. Конструкции, как правило, очень просты и очевидны. Формальных доказательств эквивалентности мы не даем.
Материал в статье расположен следующим образом. В разд. 2 рассматривается класс Р схем программ и определяется, что мы понимаем под «эквивалентностью» двух схем. В разд. 3 вводятся рекурсивные схемы Рд, и они сравниваются с обыч- нами рекурсивными функциями, используемыми в математике. Описывается макрорасширение, которое заключается в подстановке вместо вызова функции соответствующего ей тела, что дает эквивалентную схему. В разд. 4 определяется несколько классов схем: Ра, Рле> Рmi Pl И Рpds* В разд. 5 показывается, что Рд cz РА. В разд. 6 рассматриваются схемы классов PpdS и PpdWi показывается, что в любой схеме достаточно иметь максимум два маркера и два магазина. В разд. 7 и 8 показывается,
что Раш, Pal, Ppdsm и Рле все эквивалентны и, наконец, что ? РА = Раш- Раздел 9 посвящен изучению схем, допускающих'^ многомерные массивы.
ОСНОВНЫЕ ПОНЯТИЯ СХЕМ,;
КОНЦЕПЦИЯ ЭКВИВАЛЕНТНОСТИj
Определение. Схема из множества Р схем программ — ? это предложение в грамматике (/[(программа)], определяемой^ ниже; при этом
у, w обозначают простые переменные из множества V = ;
= W, v2,...};:
h, f обозначают операции, или базисные (всюду определен-л ные) функции из множества F = {Л, F^ ...}. Каждая функ- ; ция Fi имеет ранг RFt (равный числу аргументов у Ft); J р, q обозначают (всюду определенные) предикаты из мно- * жества Р = (Рь Р^ ...}. Каждый предикат Pt имеет ранг! (количество аргументов) RP-uj
/ обозначает метку из множества L = {£ь|
Грамматика (/[(программа)] содержит правила !)|
(программа) (тело) (S-список) <s>(программа) (тело) (S-список) <s>= (v{, и}):(тело)■
(программа) (тело) (S-список) <s>
(программа) (тело) (S-список) <s>
= (S-список);[Z:] СТОП (о)’
= Ю](8){;[Z:](S)}J
=„пусто"5
| и *- mi
|^f)1
| если p(oiv^p) to [Z:](S) иначе [Z:](S)N
I СТОП(У)
I Ha I]
| начало (S-список) конец|
j пока p(vi, ..., yRp) цикл (S-список) конец j
Непосредственно перед (телом) указаны простые переменные, | значения которых служат входом для (программы); они должны | быть попарно различны. Кроме того, любая метка I, использо- 5 ванная в операторе на I, должна также метить некоторый one- i ратор, например I: (S). Каждой меткой Z можно метить только ^
один оператор.
4
’) Мы пользуемся БНФ со следующими дополнительными обозначениями: {*} означает 0, 1, 2 или более вхождений х, [х] означает 0 или 1 вхождение х. 1
Пример. Конструкция
ОЛ, V2):Vx<-FxlVb V2);
Lx:если Px (У^
то начало V^^ F^V<^\ Vi<- F2(Vi);
на Lx конец
иначе СТОП (V2);
СТОП (V2)
является схемой программ.
В оставшейся части раздела излагается наше представление о том, что такое схема программ. Мы описываем, кроме того, несколько других ограничений, налагаемых на схемы и их семантику.
Патерсон [4] ввел схемы в виде диаграммы. Мы решили определить их формально в терминах алголоподобных операторов исключительно для того, чтобы уменьшить число диаграмм в статье. Иногда, впрочем, мы для ясности будем пользоваться диаграммами. Например, схеме программ, приведенной в примере, эквивалентна диаграмма
Схемы программ могут выражать алгоритмы для вычислений над любой областью D (например, О = N = (О, 1, 2, ...} или D = (множество всех двоичных деревьев}). Операции над D — это отображения ^*( ): DRf->D, а предикаты — это ^( ): Drp->$V Л}. Таким образом, параметры, необходимые для спецификации конкретного языка программирования, — это область О, подмножество операций 3^(0)= {/( ): DRf -> £)} и подмножество предикатов ^(Z)) = {р( ): DR^ —>{И, Л}}.
Предположим, что задана интерпретация области D, предикатов Р^ и функций F^ которые могут использоваться в схемах. Тем самым получен язык программирования, а каждая схема программ становится программой в этом языке.
Например, если положить D = N, Л(*)=х+1 и /2(х) = = х— 1, то получим язык G3, универсальный для всех эффективных функций над N. Другими словами, в нем выразимы алгоритмы для всех вычислимых функций над N.
Чтобы выполнить программу, нужно переменным v{ , и}, перечисленным перед началом (программы), приписать п3 входных значений, а затем выполнить (тело). Способ выполнения операторов любого из указанных типов ясен каждому программисту, и мы больше не будем об этом говорить. Часто мы пользуемся фразой «выполнить схему» как сокращением для «выполнить схему при некоторой интерпретации множеств D, 9\ 9 и при входных значениях...».
Итак, каждую конкретную схему программ можно рассматривать как отображение пх функций, я2 предикатов и п3 входных значений в Z):
Такие отображения называются функционалами над D. Например, схема программ (2.2) вычисляет функционал
Определение. F(P, D)— это множество всех функционалов над D, вычислимых схемами программ из класса Р.
Абстрагирование от программы к схеме программ может привести к лучшему пониманию программистских средств, поскольку оно позволяет полностью отделить вычисляемые значения от структуры данных и механизма управления, применяемых в программе. Например, мы определяем схемы, использующие массивы индексированных переменных; в этих схемах механизм индексирования полностью отделен от вычисляемых значений. А именно, ни один индекс нельзя взять в качестве аргумента базисной функции и ни одно базисное значение нельзя взять в качестве индекса.
Это позволяет сравнить класс РА схем с массивами и класс Рд рекурсивных схем; оказывается, класс схем РА мощнее!
Отметим, что оператор
пока р(...) цикл (S-список) конец равносилен оператору
Z:если р (...)
то начало (S-список); на / конец иначе
Будем предполагать, что все операторы пока переведены в эту форму.
Заметим, что все наши схемы имеют единственное выходное значение — значение переменной и из оператора СТОП (и), завершающего выполнение схемы. Это искусственное ограничение; мы ввели его только для краткости и ясности изложения.
Предполагается, что все функции и предикаты всюду определены. Это значит, что они дают определенное значение из D, коль скоро значения аргументов принадлежат D. Другие исследователи, работающие в этой области, допускают частичные функции и предикаты.
Если допускать частичные функции и предикаты, часть наших доказательств можно упростить, для других же доказательств это не так. Кроме того, если допускаются частичные базисные функции или предикаты, то никакую форму параллелизма нельзя моделировать без специальных средств параллелизма.
Как бы то ни было, нам кажется, что свойство всюду определенности полезнее и желательнее. В любой «реальной» системе программирования базисные функции всюду определены. В качестве результата они могут выдавать неопределенное значение, но это лучше, чем бесконечное зацикливание из-за неправильных входных данных.
Если далее мы намереваемся охарактеризовать поведение схем, в которых аргументами функций служат подпрограммы (возможно, тоже частичные), то реально это можно сделать, допустив, что аргументами схем могут быть другие схемы. Это непосредственно приводит к теории схем программ произвольного конечного типа. Возможно, в следующих сообщениях мы подробнее обсудим схемы этих типов.
Цель данной статьи — сравнить несколько различных классов схем и выяснить, эквивалентны ли они. При этом наша концепция эквивалентности включает и такие схемы, которые при некоторых интерпретациях выполняются «плохо». Например, схема
(17): СТОП(Ц7)
всегда выполняется неправильно, поскольку выходной переменной W не присваивается никакого значения! Тем не менее и такие схемы нужно принимать в расчет.
Мы предполагаем, что каждая область D содержит неопределенное значение Q. В любой схеме каждая переменная имеет перед началом выполнения (при некоторой интерпретации) значение Q. Можно также предположить, что есть простая переменная ОМЕГА, которой в ходе выполнения не присваивается никакого значения; следовательно, она всегда имеет значение Q.
Это предположение поможет нам еще в одном случае. В дальнейшем мы определим классы схем с метками, массивами и т. д. Для того чтобы разделить, насколько это воз-
можно, различные понятия, мы хотим запретить меткам и маркерам быть элементами области D. Например, если в одном из классов схем допускаются операторы вида u<^f(m, w), где m— специальный маркер, а /— базисная функция, то ясно, что в классе, не допускающем использование маркеров, не может, быть эквивалентной схемы. Поэтому мы принимаем следующее соглашение:
Если в качестве аргумента базисного предиката, функции или оператора СТОП нужно взять значение, не принадлежащее D, то вместо этого аргумента подставляется неопределенное значение Q.
Опять-таки такое соглашение для теории несущественно (можно было бы поступать, как в «реальных» языках программирования), но оно приводит к более ясным результатам.
Определение. Две схемы программ S] и S2 с входными данными хр . .., хп? функциями fv .. ., fn? предикатами рр ... ..., р и выходом у эквивалентны над D тогда и только тогда, когда они вычисляют один и тот же функционал над D, т. е.
sih.U Рр Pj =
= S2[xp хп? fp .... fn? pv pj
для всех Xi, ..., хПх из D. Две схемы эквивалентны, если они эквивалентны над любой областью D.
РЕКУРСИВНЫЕ СХЕМЫ И МАКРОРАСШИРЕНИЯ
Рекурсивное определение дает один из основных способов задания функции в математике. Основную структуру рекурсивного определения можно специфицировать на схемном уровне посредством понятия рекурсивной схемы.
Определение. (Рекурсивное) определение функции f ранга Rf имеет вид f(xb х2, ..., xRf) = е0, где е0 — выражение. Выражение е (или е^ имеет один из трех типов:
xt(f-й параметр; 1^/^п),
А(еь е2, ..., eRh), где А— (всюду определенная) функция,
если р(ех, е2, ..., eRp)
то et иначе ehгде р — (всюду определенный)
предикат.
Определение. Рекурсивная схема состоит из конечного числа определений функций /ь /2, • • •, /п, а также начального
вызова f^Vp .x)R^ одной из функций Д-, аргументами которой служат значения vp ..., x)R^
Класс рекурсивных схем обозначим через R. Отметим, что рекурсивная схема реализует отображение
W Х^ WX Dn3-^ D
при некоторых П\, п^, п^. Таким образом, и рекурсивные схе2ЛЫ, и схемы программ осуществляют вычисления над одним и тем же множеством областей. Естественно поэтому спросить, вычисляют ли они один и тот же класс функционалов над всеми областями D. Точнее: верно ли, что F(R, D) =F(P, D) для всех/)? Патерсон и Хьюитт [5] показали, что справедлива
Теорема. Существует такая область D, что F(P, D) с: c=F(R, D).
Фактически, доказав этот результат для случая свободной области D = (F^ P^i е N}*, они установили его справедливость и для любой бесконечной области D. Из этой теоремы следует, что механизм рекурсивного вычисления «мощнее» механизма вычисления программами, содержащими только простые переменные. Другими словами, языки программирования, использующие конечное число ячеек, но допускающие рекурсию, мощнее языков без рекурсии.
Так как F(P, D) —подмножество класса F(R, D), удобно ввести понятие класса рекурсивных схем программ Рд так, чтобы F(R, О) = F(Pr, D).
Определение. Рекурсивная схема программ из класса Рд — это предложение в грамматике (/[(рекурсивная программа)], приведенной ниже (в нее входят описанные в (2.1) пра* вила для (программы) и т. д.).'
(рекурсивная программа):: = (программа) {(определение функции)}
(определение функции) :: = f(^i, ..., oR^ : (тело)
Таким образом,, рекурсивная схема программ состоит из обычной схемы программ и последовательности определений функций. Определяемые функции называются рекурсивно определенными в противовес базисным функциям, которые не определяются. «Выполнение» осуществляется, как и раньше, за исключением того, что когда вызывается рекурсивно определенная функция, происходит следующее:
Значения аргументов вызова присваиваются соответствующим переменным (формальным параметрам) vb ...
..., Уд/, а остальные переменные, используемые функцией, полагаются равными Q.
(тело) функции исполняется до тех пор, пока не будет выполнен оператор СТОП (и). Тогда значение функции считается равным значению переменной и, а выполнение схемы возобновляется в точке вызова.
Предполагается, что переменные и метки, участвующие в некотором определении функции, отличны от тех, которые участвуют в (программе) и других определениях функций. Предполагается также, что они различны в разных обращениях к функции.
(V, Г) :FAX, У):(V, Г) :FAX, У):Пример.
(V, Г) :
FAX, У):
(V, Г) :
FAX, У):
V<-F^V, Г); W*-FAV, Г); СТОП(У).
L:если Р(Х) то
начало X^-F3UY Y*-FAX, У); на L
конец
иначе СТОП(У);
СТОП(У)
Впервые эквивалентность классов Ря и R доказал Маккарти [3]. Покажем, как транслировать рекурсивную схему в рекурсивную схему программ (которая интуитивно имеет эквивалентный смысл).
Преобразование SeR в S'ePs. Начальный вызов f(viu^f) преобразуется в (программу)
(Уь ..., VRfy. ВЫВОД <-f(Vb ..., VRfy СТОП(ВЫВОД)
Определение функции ft транслируется в
СТОП(У)
Внутри выражения е0 все х5 заменены на Vj. Далее для каждого определения функции итерируются следующие два шага (до тех пор, пока каждый из них не станет неприменимым):
если есть присваивание У<~/(вь ..., е^), где по крайней мере одно из выражений е^ не является переменной, то порождаются новые переменные Vi, ..., Vr^ а само присваивание заменяется на
начало Vi<-ef, .VRf<-eRf,
.... VRf)
если есть присваивание
и<-если р(еь ..., eRp) то et иначе еу
то порождаются новые переменные Vi, . .., VRp, а само присваивание заменяется на
начало V^ef, ...; VRp<-eRp\
если ptVb ..., V Rp) то v<-et иначе и<-е/
конец
Конкретный вызов функции в «реальной» программе можно рассматривать также как макровызов. Под этим мы понимаем, что перед выполнением программы вызов функции заменяется на (тело) определения этой функции, причем осуществляется такое подходящее переименование переменных и инициализация параметров и результирующих переменных, чтобы получилась эквивалентная программа. Во время ее выполнения вычисление функции осуществляется без перехода на ее (тело). Этот процесс можно провести и для схем.
Макрорасширение. Если дана схема из Рд с вызовом у^-Д^ь ..;, wR^, где / определяется некоторым (определением функции), то мы раскрываем вызов и получаем новую, эквивалентную схему из Рд. Это делается так:
Копируется (тело) (определения функции) Д Пусть в теле используются переменные Vi, ..., Vn и метки Lh ..., Lm. Тогда создаются новые переменные и метки УД ..., V*n, L*, ...
L*m и внутри копии (тела) все Vt (Lj) заменяются на VI (£)).
Создается новая метка L. Каждый оператор СТОП(У?) внутри копии (тела) заменяется на
начало и<-У1; на L конец
(напомним, что первоначально был вызов ^^/(^ь ..., Wr^).
Предположим, что формальными параметрами функции / служат Уь У2, Унь Тогда вызов у<~Н^ь wrA заменяется на
начало...; Vpf^-wpf,
(копия (тела), полученная в пункте (б));
L:
Пример. Рассмотрим схему S:
(Г):V^-Г;
V^FW, Г);
СТОП (V)
F(X, У):У; СТОП(Х
Раскрытие вызова V*-F(V, IF) дает
(Г):V <-W;
начало X**-V; Y*<-W;
X* <- У*; начало V *- X*; на L конец
D. конец;
СТОП(Р);
Р^ХЛУ Х^-У; СТОП(Х)
В дальнейшем при доказательстве включения Г(Рд, О)с cz Г (Ра, ^) мы должны будем суметь раскрыть возможные вызовы рекурсивно определенных функций, имеющие первый уровень. Вызов /(...) имеет первый уровень, если во время выполнения схемы (при некоторой интерпретации) он не вызывается выполнением другого вызова f.
Раскрытие всевозможных вызовов первого уровня. Опишем теперь, как по схеме S построить схему S', в которой все возможные вызовы первого уровня раскрыты.
Внутри главной (программы) все присваивания и <- *-/(...) (где функция f не базисная) переписываются в виде u<-f(...){ }
Аналогично внутри определения каждой функции g все присваивания и <-/(...) (где функция / не базисная) переписываются в виде
{ } означает пустой список и указывает, что, какова бы ни была определяемая функция, данный вызов не вызывается ни при каком ее выполнении, {g} означает, что данный вызов заведомо возникнет при выполнении функции g. Продолжая построение, получаем в общем случае, что в скобках стоит список тех функций, при выполнении которых возникает данный вызов.
Сначала для главной схемы, а затем для каждого определения функции итерируется, пока это возможно, следующий шаг.
Выбирается такое присваивание
что f не содержится в списке Уь • • •, fkV Это означает, что данный вызов не возникает при другом выполнении функции f, а потому он вызов первого уровня. Этот вызов раскрывается,
как описано в (3.7). К каждому списку, поставленному в соответствие стоящему в раскрытом теле функции / вызову небазисной функции, добавляется список {/, !^ .. ., /4
Все списки {...} удаляются из вызовов.
Очевидно, что если описанный процесс заканчивается, то в результате получается эквивалентная схема программ. Кроме того, будут раскрыты все вызовы первого уровня, поскольку, пока есть хотя бы один такой вызов, можно применять шаг (б), который и раскроет его.
Отметим, что за счет каждого макрорасширения исчезает один вызов и добавляется несколько новых (стоявших в теле функции, вызываемой раскрываемым вызовом). При этом число элементов списка, приписанного каждому из новых вызовов, по крайней мере на единицу больше соответствующего числа для раскрываемого вызова. Если учесть еще тот факт, что число элементов списка, поставленного в соответствие вызову первого уровня, меньше числа (определений функций), то мы увидим, что шаг (б) в конце концов заканчивается.
(ЗЛО) Следствие. Пусть каждый вызов некоторой схемы из PR нерекурсивен при любой интерпретации и любом выполнении. Тогда в Р существует эквивалентная ей схема.
Доказательство. Раскроем все вызовы первого уровня. Если после этого в главной (программе) остались какие-нибудь вызовы, они заведомо никогда не будут выполнены (это не вызовы первого уровня, а значит, они рекурсивны). Каждый из таких вызовов заменяется пустым оператором. После этого можно убрать все (определения функций), что дает схему в Р.
В дальнейшем при сравнении Рд с другими классами схем мы будем пользоваться интересной взаимосвязью между рекурсивными вызовами и предикатами, используемыми в схеме.
Теорема. Пусть при выполнении схемы из Рд функция! вызывается рекурсивно (т. е. она вызывается второй, третий,... ..., п-й раз, прежде чем завершено выполнение первого вызова). Тогда, прежде чем последнее (п-е) выполнение функции! приведет к выполнению оператора СТОП (и), некоторый предикат Pi должен быть вычислен на двух таких аргументах ах и а2, что PiVh^^ Рг^)-
Доказательство. Пометим все операторы схемы различными метками. По ходу выполнения схемы будем выписывать последовательность меток операторов в том порядке, в каком мы приступаем к их выполнению. При этом мы начинаем
с первого оператора в первом вызове Д а кончаем n-м вызовом /:
В другой список записываются метки операторов, выполняемых при n-м (последнем) выполнении / (оно заканчивается выполнением оператора СТОП (и)):
L1, ^2, • • • , Lq
Понятно, что L\ = Ц, поскольку обе последовательности начинаются с метки первого оператора (тела) Д Если q ^ т, то Uq=^Lq, так как Uq метит оператор СТОП(у), a Lq метит заведомо другой оператор. Если q > т, то Lm^ L^, так как Lm метит вызов функции Д a L'm не может быть меткой такого вызова. В любом случае получается, что последовательности, имеющие одинаковые начала, в каком-то месте различаются. Пусть i (1 < i ^ q, т)— первый номер, для которого Lf =^ 1ь Lt-\ = Ц_\* Это может быть лишь в том случае, когда L^~i метит оператор вида
если р(...) то St иначе S2
а вычисления предиката р дают разные значения. Теорема доказана.
Следствие. Пусть в схеме из Рд раскрыты ^по (3.9)) все вызовы первого уровня. Тогда при любой интерпретации для выполнения полученной схемы справедливо следующее', прежде чем будет выполнен оператор СТОП (и) (тела) какой- нибудь небазисной функции, некоторый предикат Pt должен быть вычислен на двух таких аргументах ах и а2, что Р^а\)=# =# Л (^2).
Доказательство. Если раскрыть все вызовы первого уровня, то в полученной схеме останутся только рекурсивные вызовы исходной схемы, так что можно применить теорему (3.11).
4. ДРУГИЕ КЛАССЫ СХЕМ
Введем теперь другие классы схем программ, а именно кл^сс РА схем с массивами индексированных переменных, класс Ра^ схем с массивами и предикатом равенства, применяемым к индексированным переменным, класс PL схем, допускающих метки / в качестве значений, которые можно присваивать переменным, класс Рт схем, допускающих конечное число «маркеров» в качестве значений переменных, и класс Ppczs схем, которые могут использовать магазинную память.
Ра и Pl интересны тем, что они содержат средства, имеющиеся в современных языках программирования высокого уровня (например, ПЛ/I). Что касается магазинной памяти, то
эта структура данных, пожалуй, одна из излюбленных для теоретиков. Поэтому, рассматривая классы Ppczs и Ра, мы хотим сравнить мнения теоретиков и программистов об универсальных схемах.
Определение. РА определяется как класс схем программ Р, допускающих наряду с простыми переменными v индексированные переменные a[w], Входные переменные обязательно являются простыми.
Массив (одномерный) В — это последовательность В^ Вх, ... простых переменных1). В качестве индекса можно взять любое значение из N = (О, 1,2,...}. Для того чтобы в ходе выполнения порождать новые индексированные переменные, вводятся новые операторы
(S)::=v<-0 | v t<y + 1
В результате выполнения оператора v О переменной и присваивается значение 0. Функция +1 осуществляет переход к следующему элементу; если и имеет значение t g N, то в результате выполнения оператора w <- v + 1 примет значение i + 1.
Предполагается, что при любой интерпретации N не пересекается с областью D (это мы скоро обсудим). Наконец, считается, что если значение переменной и не принадлежит N, то v + 1 имеет значение 1.
Если значение и есть ieN, то В [у] — простая переменная В^ Если значение и не принадлежит N, то В [и] — это Во.
Отметим, что поскольку N и D не пересекаются, то там, где мы хотели бы взять в качестве аргумента ie N (в предикате, функции или операторе СТОП), используется значение Q. Это ограничение необходимо для того, чтобы исключить бессмысленное сравнение схем с массивами и схем без массивов. Оно не случайно, а служит для того, чтобы отделить способ задания памяти от других вычислительных механизмов.
Читатель может утверждать, что мы описываем механизм индексирования не так, как это делается в конкретных языках программирования. Для этого у него есть три причины:
значения, которые берутся в качестве индексов, не могут быть входными данными программы, поскольку они не принадлежат D;
!) В разд. 9 рассматриваются и многомерные массивы. Будет показано, что их применение не приводит к увеличению мощности класса Ра-
функции типа +1 обычно допускаются как «базисные» операции;
значения, которые берутся в качестве индексов, не могут быть ни аргументами, ни результатами базисных функций и предикатов.
На это можно ответить следующим образом. Мы пытаемся изолировать различные концепции языков программирования, чтобы дать их описание настолько «чистым», насколько возможно. Далее, мы хотим сравнить вычислительную мощность различных классов схем программ. Если в одном классе допускаются вычисления с использованием функции +1 (при некоторых ограничениях), а в другом нет, то такое сравнение становится бессмысленным. Однако если функция +1 используется только для организации памяти и не может использоваться в собственно вычислении, то сравнение может иметь смысл.
Если бы некоторая интерпретация схемы программ задавала функцию F с теми же свойствами, что и у +1, то F и +1 можно было бы отождествить в этой интерпретации. Аналогично если бы область D содержала подмножество N, изоморфное N, то N и N можно было бы отождествить в этой интерпретации.
Строго говоря, операторы типа
B\V + ^<-W; (2) Г «-2; (3) В[5]<-Г
не являются правильными для схем класса РА. Мы допускаем их, так как они делают схему проще, а также потому, что их легко транслировать в правильные операторы класса Ра. Например, операторы (1) и (2) транслируются в
начало V <-V + 1; 7«-V + 1; 7<-7+ 1; В [7]*-^ конец
и
начало Г<-0; №<-№+1; Г<-Г+1 конец
Отметим тем не менее, что, когда говорится «дана некоторая схема S из РА» (или Ра™ и т. д), всегда имеется в виду, чт( схема строго содержится в данном классе.
Аналогично можно доказать, что использование функции —1 определяемой соотношением
' I — 1, если w имеет значение ieN, i =/= О,
(4.2)(4.2)ay J_ 1 = ■ay J_ 1 = ■О,О,О,О,если w имеет значение О,если значение ш не принадлежит N,если w имеет значение О,если значение ш не принадлежит N,
(4.2)
(4.2)
ay J_ 1 = ■
ay J_ 1 = ■
О,
О,
О,
О,
если w имеет значение О,
если значение ш не принадлежит N,
если w имеет значение О,
если значение ш не принадлежит N,
не увеличивает мощности схем.
3) Теорема. Пусть S— схема из РА с той оговоркой, что в ней используется функция — 1. Тогда S можно транслировать в эквивалентную схему S' из РА.
Доказательство. S' моделирует функцию — 1 при помощи нового массива DOWN. Таким образом, DOWN [0] = О, a DOWN [/], когда это необходимо, содержит значение / — 1 для i > 0. S транслируется в S' так:
в начале схемы S помещается оператор DOWN[0]<-0;
каждый оператор v <- w + 1 в S заменяется на
начало DOWN [t<y + 1] ^-w\ и <— tc + 1 конец
каждый оператор и ч- w — 1 в S заменяется на
v<-DOWN И
Теорема доказана.
Определение. Схема класса РАе—это схема из РА, в которой допускаются операторы типа
(aS) :: = если и © w то [/:] (S) иначе [/:] (S)
Предикат у©^ определяется формулой
' И, если v и w оба не принадлежат М\{0},
v©tiy = < И, если и, w принадлежат N и совпадают,
к Л в остальных случаях.
Таким образом, и © w тогда и только тогда, когда А [у] и A [^] — одна и та же простая переменная.
Определение. Схемой из класса PL схем, допускающих переменные-метки, называется схема класса Р с двумя дополнительными операторами
(aS) :: = v <-I | на у
Если в схеме есть оператор v ч-I, то метка / обязана метить некоторый оператор. В результате выполнения оператора v+~l переменной у присваивается метка /. Если и имеет значение /, то переход на о передает управление на оператор, помеченный /; если же и имеет любое другое значение, то на и равносильно пустому оператору. Предполагается, что при любой интерпретации множество меток L не пересекается с областью D.
Определение. Пусть s обозначает магазин из класса магазинов PD = {^Di, PD^, ...}. Ppds определяется как класс
схем Р, расширенный за счет добавления двух операторов (S):: = (pushdown) | (popup)
(popup):: = v <-s (pushdown):: = s <— у
В результате выполнения оператора (pushdown) содержимое и помещается в верхушку магазина s. В результате выполнения оператора (popup) содержимое верхушки помещается в о, после чего верхушкой становится следующий элемент магазина. Если в момент выполнения оператора v-e-s магазин s пуст, то v и s не меняются. Каждый магазин первоначально пуст.
Особо отметим эффект выполнения оператора (popup), когда магазин пуст. Иногда принимается соглашение, что в этом случае происходит «поломка» или зацикливание. Этот подход можно было бы применять и в данной работе.
Определение. Обозначим через пг элемент множества маркеров М = {Мь М^ ...}. Рт определяется как класс схем Р, расширенный за счет добавления операторов
(aS) :: = u<-m| если v = m то [/:](£) иначе [/:](£)
Предполагается, что при любой интерпретации М не пересекается с областью D. Отметим, что в любой схеме из Рт может использоваться лишь конечное число маркеров.
Коль скоро заданы классы схем Р, Рд, РА, РАе, Pl, Pm и PpdS, можно естественным образом порождать новые классы. Так, например, Pal = Pla — это класс схем программ с массивами и переменными метками. При этом, конечно, в тех случаях, когда взаимодействуют различные механизмы, на интерпретации налагаются очевидные ограничения. Например, в классе Pal оператор на и равносилен пустому оператору, когда значение и принадлежит N. В то же время и© 0 истинно, когда значением и является некоторая метка.
Для нас наибольший интерес представляют классы РА, ?Ае, Pal, VAm и Ppdsm- Мы покажем, что они имеют одинаковые вычислительные мощности. Однако эквивалентность между РА и остальными классами неэффективна. Так, например, если дана схема из Ра™, то эквивалентная ей схема в РА существует, но ее не всегда можно эффективно построить.
5. СООТНОШЕНИЕ МЕЖДУ Рл И Р^
Сначала покажем, как по данной схеме из Рд построить эквивалентную ей схему из Pal- Затем покажем, как избавиться от переменных-меток, чтобы получить эквивалентную схему из
Ра. Таким образом, массивы индексированных переменных — средство по крайней мере той же мощности, что и рекурсивные процедуры.
Схема из РАг, эквивалентная данной схеме из Рд, использует массив Л в качестве стека для хранения параметров, локальных переменных и информации о возвратах функций, вызовы которых выполняются в текущий момент. Эта информация, необходимая для выполнения конкретного вызова функции, размещается в расположенных подряд элементах массива Л; множество этих элементов называется областью данных. В типичных реализациях рекурсивных процедур алголоподобных языков память соответствующей области данных освобождается при завершении выполнения вызова функции и ее можно использовать для других целей. Мы не заботимся ни о какой эффективности и не будем освобождать эту память.
Глобальная переменная ТОР будет всегда содержать значение i индекса последнего (в текущий момент) элемента массива. Другая переменная, АЗ (активная зона), содержит индекс j начала области данных функции, вызов которой непосредственно выполняется в текущий момент (активной функции). Если ее область данных занимает k + 1 ячейку, то она состоит из элементов Л [АЗ], Л [АЗ + 1 ],..., Л [АЗ + к\.
Рассмотрим функцию Д Предположим, что она использует переменные Vi, V2, • Vp, где Vi, ..., VRf— ее формальные параметры. Тогда необходимая для выполнения вызова f область данных занимает р + 2 ячейки и имеет следующий формат:
Метка возврата — это метка оператора, к которому нужно вернуть управление после завершения выполнения данного вызова.
Вызов / в рекурсивной схеме заменяется сложным оператором, который 1) размещает р + 2 ячейки под область данных, 2) запоминает индекс АЗ начала текущей области данных, 3) помещает метку возврата и значения фактических парамет-
ров в новую область данных, 4) приписывает неопределенное значение Q всем остальным используемым функцией переменным; 5) присваивает глобальной переменной АЗ индекс начала новой области данных й 6) передает управление на первый оператор (тела) f для начала его выполнения.
В (теле) каждой функции вхождение Vt заменяется на А [АЗ + i], поскольку используемые функцией переменные хранятся сейчас в области данных, определяемой содержимым АЗ. Каждый оператор СТОП(Уг) исходного определения функции заменяется на
начало RV <- А [АЗ + /]; на A[A3 + (p + 0] конец
где RV—глобальная переменная. Таким образом, значение функции, полученное в результате ее выполнения, запоминается в RV, а управление передается оператору, определяемому меткой возврата, т. е. непосредственно следующему за вызовом функции. В этой точке возврата восстанавливается область данных предыдущего вызова, а значение RV присваивается подходящей переменной:
АЗ<-А[АЗ]; RV
Этого эскиза доказательства должно быть достаточно, чтобы убедить читателя; подробно конструкция приводится в приложении.
Теорема. По данной схеме из Рд можно эффективно построить эквивалентную схему из PAL.
Пример. Пусть дана схема S е Рд:
(А, У): если Р^ то У<-/(А) иначе;
СТОП (У);
HXY если Q^ то V<-X
иначе начало V«-g(X); K<-f(K) конец;
СТОП (У)
Тогда схема S' такова:
(А, У):ТОР<-0; АЗ<-0;
если Р(Х) то
начало ТОР<-ТОР+ 1;"
А [ТОР] <- АЗ; А[ТОР + 3]<-№, А[ТОР+ 1]<-^;
А [ТОР + 2] ОМЕГА;
АЗ*-ТОР; ТОР*-ТОР+ 3;
на Lf;
RIA:АЗ*-А[АЗ]; Y*-RV
конец_
иначе;
СТОП (У);
LhLhV*-XV^-gWV*-XV^-gWесли Q (Л [АЗ 4-1]) то"
Lh
Lh
V*-X
V^-gW
V*-X
V^-gW
А [АЗ + 2]*- А [АЗ 4- 1]
иначе начало А [А34-2] *-g(A [АЗ 4* 1]);'
начало ТОР*—ТОР 4- 1;
А [ТОР] *- АЗ;
A[TOP4-3]<-PL2;
А [ТОР 4-1] *- А [АЗ 4- 1];
А [ТОР 4-2] *-ОМЕГА;
АЗ *- ТОР; ТОР*-ТОР 4-3;
на Ц\
RL2:АЗ*-А [АЗ];
A[A3 + 2]*-flV
конец.
конец;
начало RV *- А [АЗ 4- 2]; на А [АЗ 4- 3] “| стоп (V)
Покажем теперь, как по любой схеме из Рд построить эквивалентную схему из РА; таким образом, Г(Рд, D)eF(Pa, D^s s F(PAl, D). Это построение основано на следующей теореме:
Теорема. Пусть S е PAL, и известно, что существует базисный предикат Р ранга п и такие _ значения простых переменных RT\, ..., RTn и RFi, ..., RFn, что P(RTiRTn) =И, a P(RFi, ..., RFn) = JI. Тогда можно построить эквивалентную схему S' из РА. S' называется Р-имитатором схемы S.
Построение. Без ограничения общности будем с.читать, что Р имеет ранг 1, а простые переменные RT и RF, для которых P(RT)= И, P(RF) = Л, не меняют своих значений rt и г/ во время выполнения схемы S.
Предположим, что в операторах типа и*-/ используются метки L\, L^, ..., Lk. Тогда каждой простой переменной и схемы S соответствуют переменные и, и°, о1, ..., uh схемы S', а каждому массиву А — массивы А, А0, А1, ..., А6. Если во время выполнения • схемы S переменная о принимает значение из D U N, то в S' она принимает то же значение, в то время как и0 = rt Если же в S о = L{, то в S' и = Й, v* = rt, oi = = rf для 0 ^ j ^ k, j =^ i.
Теперь понятно, как преобразовать схему из РА1, в схему из РА:
каждое присваивание u*-ty заменяется на начало o<-zy; o°*-bd°, ..., vk<— wk конец
каждое присваивание y«-£z заменяется на
начало у <—ОМЕГА; У0<-RF; ...; x?<r-RF; vl<-RT
Конец
каждое присваивание у <-/(...) заменяется на
начало у<-/(...); o°<-RT конец
каждый оператор на у заменяется на
если Р(у°) то
иначе если Р(и^ то на Lx
иначе если Р(у2) то на £2 иначе ...
,иначе если P(yfe) то на Lk
иначе
Отметим, что оператор на у моделируется корректно и тогда, когда значение у не является меткой — в этом случае управление передается на следующий оператор. Заметим также, что если переменной у ни разу не присваивалось значение, то у = = v° = ... = vh = Q. Моделирование снова корректно независимо от того, P(Q)=H или Р(^=Л. Построение завершено.
Теорема. Пусть Se Рдт- Пусть известно, что существует базисный предикат Р ранга п и такие значения простых переменных RTX, RTn и RFX, RFn, что P(RTXf ..., RTU^ = = И, P(RFX, ..., RFn) = Л. Тогда можно построить эквивалентную схему S' из Ра. S' называется Р-имитатором схемы S.
Доказательство предоставляется читателю.
Проблема, конечно, заключается в нахождении некоторого предиката Р, который не является ни тождественно истинным, ни тождественно ложным (если такой вообще существует), а также соответствующих аргументов. Определим теперь по данной схеме S ЛОКАТОР, который это осуществляет.
Определение. Пусть S — схема из любого класса схем. ЛОКАТОР для S — это схема S', обладающая следующими свойствами:
Множества входных переменных схем S и S' совпадают.
Если выполнение схемы S завершается с результатом у, прежде чем некоторый предикат дважды вычисляется с разными результатами, то так же работает и S'.
Предположим, что во время выполнения схемы S предикат Pi вычислен на аргументах ах, а^ и Р^ах\ = И, РДа2) = Л.
Тогда соответствующее выполнение схемы S' осуществляет такие действия:
аргументы а, запоминаются в ячейках RT\, ..., RTrp.;
аргументы аг запоминаются в ячейках RFX, ..., RFRPl",
управление передается на оператор
НАЧАЛО/:СТОП (ОМЕГА)
где НАЧАЛО/ — новая метка.
Заметим, что если выполнен оператор, помеченный меткой НАЧАЛО/, то в результате получается Q. Сам по себе ЛОКАТОР бессмыслен, но, объединяя его с Р;-имитатором схемы S, можно получить схему, эквивалентную S.
Теорема. Пусть S из РА£ (илы РАт) имеет ЛОКАТОР S' в РА. Тогда в РА существует схема, эквивалентная S.
Доказательство. Пусть ЛОКАТОР из РА — это
(у,ym): (S-список)
Предположим, что в S используются п предикатов Рх, ... ..., Р„, и пусть для /=1, ..., п Pj-имитатором из РА для схемы S является
(уь У2, •••> ут): (S-список);
Тогда ясно, что схема
(уь ..., у^; Wx*-yx\ ...; Wm*-ym\ (S-список);
НАЧАЛО!: y^lFi; ...; ym-4-Wm; (S-список),;
НАЧАЛОп: yx*-Wx; ...; ym*-Wm; (5-список)„
(в (S-списке) ЛОКАТОРа все операторы НАЧАЛО/: СТОП (ОМЕГА) заменены пустыми операторами) эквивалентна S.
Здесь IFi, ..., WTO— новые переменные. Напомним, что ЛОКАТОР находит предикат Pt, принимающий разные значения, присваивает значения переменным RT,, RFj, j = 1, ..., RPt и передает управление на метку НАЧАЛО/. В каждом имитаторе используются глобальные переменные RI,, RFj. Теорема доказана.
По схеме Se Рй можно построить эквивалентную схему S' е РА£. Покажем, как для S' (или, что то же самое, для S) построить ЛОКАТОР, принадлежащий РА.
Построение принадлежащего классу РА Л О КАТО Ра для схемы S' е Pal, полученной по S е Рд. Без ограничения общности будем считать, что все предикаты имеют ранг 1.
Берется копия S, и в ней раскрываются все вызовы первого уровня (конструкция (3.9)).
Результат этапа 1 транслируется в Pal- В полученной схеме операторами вида на v будут только возвраты функций, на Л[АЗ+ (р + 1)], с помощью которых заменялись операторы СТОП (и) в исходных определениях функций. Ясно, что результат этого этапа эквивалентен и S, и S'.
Каждый оператор вида
если Рх (у) то S! иначе S2 заменяется на
если Pt (о)
то если PART) то St иначе начало RF<-RT; RT<-v, на НАЧАЛО/
конец
иначе если PART) то начало RF<-v; на НАЧАЛО/ конец
иначе S2
каждый оператор вида о -<-1 или на о заменяется пустым оператором.
В конце схемы добавляются операторы
НАЧАЛО/: СТОП (ОМЕГА)
Результат описанной трансляции и есть ЛОКАТОР. Все операторы в нем допустимы в Ра, поскольку все переменные-метки уничтожены на этапе 4. Осталось показать, что эта схема работает так, как требуется. Во-первых, если во время выполнения вычисляется такой предикат Р^ что РА* *-)^ РгкКП> то мы присваиваем соответствующие значения переменным RT и RF и переходим на НАЧАЛО/. Таким образом, если некоторый предикат вычисляется дважды с разными результатами, то выполнение схемы прекращается. " Во-вторых, отметим, что все вызовы первого уровня раскрыты. Поэтому, в силу следствия (3.11), прежде чем внутри расширенного тела функции в схеме из Рд будет выполнен хотя бы один оператор СТОП, некоторый предикат будет вычислен дважды с разными результатами. Следовательно, какова бы ни была функция, еще до возврата из ее тела ЛОКАТОР передаст управление на НАЧАЛО/. Поэтому возвраты не нужны, и их можно опустить. Это означает, что этап 4 не влияет ца вычисления схемы-.
Теорема. F(Ря, D)sF(Pa, D) = F(PAL, Dy
Доказательство. В силу (5.1), можно построить схему 5' е Pal, эквивалентную схеме S е Ря. Далее, для 5' существует ЛОКАТОР в Ра (5.7). Осталось применить теорему (5.6).
Построение схемы из Ра по схеме из Ря было эффективным. Сейчас мы покажем, что в Ра существует схема, не эквивалентная никакой схеме из Ря; это означает, что массивы — более мощное средство, чем рекурсия!
В [5] Патерсон посредством нового оператора /OR/ ввел некий тип параллелизма:
Определение. Значение функции P(x)/OR/Q(x)
истинно, когда хотя бы одно из Р^ху Q(x) истинно;
ложно, когда оба Р(х') и Q(x) ложны;
не определено, когда оба Р(х) и Q(x) не определены, либо одно ложно, а другое не определено.
Пример. (ХУ если Q(A) то V -t-F^X) иначе V *-Х;
СТОП (V)
Q(A): если PQC) то истина
иначе V^WNOR/QOTti
стопора
В работе [5] показано, что эта схема не транслируема в Ря.
Теорема. Р(РЯ, D)cF(Pa, D)cF(PAl, Dy
Доказательство. Докажем, что схема (5.10) транслируема в Ра- Будем писать LR(xy LL^xy RL(x) и т. д. вместо L(R(x)), L^L^y R(L(x)) и т. д. Схема (5.10) останавливается тогда и только тогда, когда существует такая цепочка а е (L, R}*, что Q(a(x))=H. Идея доказательства состоит в том, чтобы использовать массив для реализации поиска «ширины один» в двоичном дереве с корнем х (от каждой вершины х ответвляются L^ и R (х)).
Искомая схема из Ра такова:
(X):ТОР*-0; CURRENT-<-0; А [ТОР]*- X;
AGAIN:если Р(А[CURRENT]) то начало У*-Р,(Х); СТОП(К)
'конец
иначе начало ТОР*-ТОР + 1;
А [ТОР] *- L (A [CURRENT]);
ТОР*-ТОР + 1;
А [ТОР] *- R (A [CURRENT]);
CURRENT *- CURRENT + 1;
на AGAIN
СООТНОШЕНИЕ МЕЖДУ Ppds и Р^
Обозначим через Р(п, т) подкласс схем класса Ppdsm, использующих п магазинов и пг маркеров. В этом разделе мы опишем конструкции, показывающие, что
F(P(„.m), £>) = F(P(2,n+m+1), D) = F(P(2,2), 5) для п, т>2,
F(P*, D) = F(P(1,o), D\
Аналогичные результаты относительно использования массивов Рд приведены в разд. 9.
Лемма. F(Pn> т^ D) ^ F (Р(2, л+т+1), ^)*
Набросок доказательства. Пусть в S е Р(п, т) используются магазины PD\, ..., PDn и маркеры Мь ..., М^. Введем новые маркеры До, Дь ..., Дп.
Вхождение магазина PD^ в S заменяется в соответствующей схеме S' е Р(2, n+m+i) вхождением ее основного магазина PD.
Оператор (pushdown) PD^^x) схемы S заменяется в S' на начало PD<-xr, PD<-At конец
Таким образом, Д^ в PD указывает, что заслано значение верхушки магазина PD^. Маркер До помещается в низ магазина PD и указывает, когда он становится пустым.
Оператор (popup) хз^РЩ моделируется в S' составным оператором, который в поисках маркера А^ осуществляет просмотр PD сверху вниз. Значение, хранящееся в PD непосредственно ниже А^ и есть то, что нужно заслать в и. Этот просмотр требует второго, дополнительного магазина для сохранения содержимого PD. После считывания значения в ячейку и содержимое основного магазина PD восстанавливается с помощью дополнительного магазина. Подробности см. в приложении.
Лемма. F(P(2, m), D) F(P(212), DY
Эскиз доказательства. Маркеры, используемые в (2, т)-схеме S, можно двоично кодировать и декодировать, применяя конечное число операторов схемы программ. Пусть, например, Мь ..., Мт (т ^ 2)—используемые в S маркеры. Тогда эквивалентная схема S' е Р(2,2) использует маркеры Мо и М, а маркер Л^ из S представляется в виде
мом ... ммом ... м.
i — 1 раз т — t раз
Подробности см. в приложении.
(6*3) Теорема. Р(Р(л,тЬ £>)^IP(Р(2,2)» D) для п, т>2»
Доказательство. Утверждение следует Из лемм (6.1) и (6.2).
Теорема. Г(Рд, D)^F(P(b0), D\
Набросок доказательства. Рассуждаем так же, как в разд. 5 при доказательстве включения Г(Рд, О)^ ^Г(Ра, О). В одном магазине (скажем, PD) хранятся области данных всех активных в текущий момент функций. Как и раньше, можно записать ЛОКАТОР и Л-имитатор; на этот раз они будут из класса P(i, о). Единственный серьезный вопрос состоит в том, действительно ли при выполнении вызова функции имеется доступ ко всем переменным из области данных. Этого можно добиться с помощью конечного числа простых переменных схемы, поскольку каждая область данных имеет известные конечные размеры. Подробности см. в приложении.
ЭКВИВАЛЕНТНОСТЬ КЛАССОВ PAL) РАт, Ppdsm и РАе
Сначала докажем эквивалентность Pal и РАт. Затем в леммах (7.2) и (7.3) установим эквивалентность РАт и Ppdsm- Можно также показать эквивалентность классов Ppdsm и PpdsL, но здесь мы этого делать не будем.
Мы считаем, вообще говоря, что класс PAm наиболее предпочтителен из классов схем. Алгоритмы, использующие магазинную память, часто выглядят очень громоздкими, в то время как массивы — более естественное средство, с помощью которого можно довольно просто моделировать магазинную память. Класс Pw кажется нам предпочтительнее класса PL. Вообще, чем меньше операторов перехода участвуют в программе, тем она понятней, наглядней, легче читается, легче отлаживается, а особенности употребления меток как переменных приводят лишь к увеличению количества разветвлений.
Теорема. Г(РЛ1, D) = ?(PAtn) D).
Доказательство. Покажем, что по данной схеме Se е Pal можно построить эквивалентную схему S' е РАт) и обратно.
Пусть в схеме S имеется п меток Ль ..., Ln. Тогда в схеме *$' будут использоваться соответственно маркеры Мь ..., Мп. Каждый оператор xx-Lt в S заменим оператором и^Мг.
Каждый оператор на о в S заменим на
начало если и = A/j то на Lx
Иначе если и — М2 то на L^ иначе ...
если v = Mn то на /,„ иначе конец
В результате получим, очевидно, эквивалентную схему S' е е РАт.
Пусть теперь дана схема S' е РАт. Предположим, что в ней используются маркеры МХ) М2, ..., Мп. Будем рассматривать их как метки и дополним схему последовательностью операторов
Л^:наof,
М2:нао2;
Мп:нао„;
где О{ — новые простые переменные. Для всякого оператора
если о = Mi то S] иначе S2 порождаются три новые метки LT, LF и DONE, а сам оператор заменяется на
начало Oi<-LF; o2<-LF; ... on<-LF; ot*-LT; на о;
LF:S2; на DONE;
LT:Sf,
DONE: конец
Мы видим, что при выполнении последовательности операторов схема Si выполняется тогда и только тогда, когда о = Mt; в противном случае выполняется S2. Это и есть требуемое свойство.
Лемма. F(Pp<tew, D)sF(PAm, D).
Доказательство. По данной схеме S е Ppdsm построим эквивалентную ей схему S' е РАт. Каждый магазин PD схемы S моделируется некоторым массивом А схемы S'. Счетчик СА указывает, где находится верхушка массива А. Каждый элемент магазина PD представляется двумя последовательными
ячейками массива А, имеющими формат
Фактическое содержимоеэлемента магазина PD
Маркер
Вторая ячейка указывает, пуст ли магазин PD. Для этой цели в схеме класса РАт применяются два дополнительных маркера Мо и М\. Пустой магазин представляется так, как показано на рис. 7.1, я, тогда как магазин PD на рис. 7.1,6 можно было бы описывать массивом Л на рис. 7.1, в.
Значение 2Значение 2Значение 1Значение 1СА = ОбСА = ОбааСА = 4СА = 4
Значение 2
Значение 2
Значение 1
Значение 1
СА = Об
СА = Об
а
а
СА = 4
СА = 4
Рис. 7.1. Моделирование магазинов массивом: а — пустой магазин, б — PDс двумя элементами, в — соответствующий массив А.
Нетрудно понять, как построить схему S', эквивалентную S. Для каждого магазина PD, используемого в S, нужно выполнить три шага:
Создать новое имя массива Л и простую переменную СА и в начало схемы S поместить операторы, осуществляющие загрузку начальных значений для массива:
СА<-0; Л[О]«-Мо; Л [1] <- ОМЕГА;
Каждый оператор PD<—^ заменить на
начало СА<-СА + 2;
Л[СА]<-М1;
Л[СА+1]<-у
Каждый оператор t)*- PD заменить на
начало если Л [СА] = Alj
то начало у *- А [СА + 1] СА*-СА -=-2 конец иначе
конец
силу теоремы (4.3) можно взять функцию — 1, а стало быть, и —2.)
.3) Лемма. Г(РЛт, D)sF(Ppdsm) DY
Доказательство. По данной схеме 5еРАш построим эквивалентную схему S' е Ppdsm- Каждое значение из D и всякий маркер М, используемые в S, будут представлять сами себя в схеме S'. Пусть % — новый маркер. Тогда каждое значение i^ N, вычисляемое в схеме S, в схеме S' будет представляться последовательностью из i + 1 маркеров *. Поскольку любая переменная может принимать значение i (исключая переменные, которые используются как аргументы базисных функций или предикатов), каждая переменная схемы S должна быть представлена в схеме S' посредством магазина! (Если переменная используется как аргумент, то вместо нее можно взять либо Q, либо просто одну звездочку.)
Наша задача по преобразованию схемы S в S' будет решаться в четыре этапа. Сначала построим схему Si, эквивалентную схеме S. В схеме Si все аргументы функций, предикатов и операторов СТОП являются новыми простыми переменными, которые (в соответствии со способом их введения) нет нужды рассматривать как магазинные. На втором шаге строим схему S2, эквивалентную схеме Sb исключительно для упрощения перехода от простых переменных к магазинам. Например, оператор Д [v] <- Д [tv] заменяется на
начало v0<- Д №> ^ [v] <- v0 конец
где ио — новая простая переменная.
На третьем шаге рассматриваем простые переменные как магазинные и показываем, как изменить для этого каждый оператор. Например, мы должны преобразовать оператор и <- <-w(v, w— простые переменные) в составной оператор, который копирует содержимое магазина w в магазин и.
Наконец, мы показываем, как представить массивы магазинами и преобразовать те два типа операторов, в которых используются массивы, а именно Д [tv] <- V\ и w -t- A [v2] (vb v2 — простые переменные).
Каждый массив А представляется в общем случае некоторым магазином РА. В РА фактические значения массива А разделяются запятыми. Таким образом, массив Л, изображенный на рис. 7.2, а, представляется магазином РА на рис. 7.2,6. Для
i + 1 pay
Рис. 7. 2. Моделирование массива А: а — массив А, б — соответствующиймагазин PD.
того чтобы извлечь некоторое значение A [i], мы сначала (в схеме S') копируем все значения магазина РА во вспомогательный магазин PDT1 (в обратном порядке). Затем с помощью представления i в виде i+1 звездочек стираются i запятых из PDT1, так что на верхушке магазина остается значение Л [г].
Подробности можно найти в приложении.
.4) Теорема. Г(РЛт, D) = Г (Ppdsm, D\
Доказательство. Утверждение следует из лемм (7.2) и (7.3).
,5) Лемма. ^(Рдт, ^) —^(Рде, ^)*
Доказательство. Схемы класса РЛв позволяют проверять на равенство значения индексов (см. определение (4.4)). Пусть дана схема S е РАт с маркерами Mb ..., Мп. Мы транслируем S в эквивалентную схему S' класса РАе следующим образом.
Вместо п маркеров берем натуральные числа 1, 2, ..., ле е N. Однако мы должны уметь распознавать, является некоторое значение индексом или маркером. Для этого каждая простая переменная и (кроме ОМЕГА) схемы S представляется двумя переменными и и v0, каждый массив Л—двумя массивами Л и Ло. (Мы используем ниже ш0 для представления как простой переменной ^0, так и индексированной переменной оуоМ)- Если w = М^ во время выполнения схемы S, то w @i е е N, тогда как w0 = 1. В противном случае w содержит обычное значение или индекс, а w0 равно нулю или принимает значение из D.
Заметим, что в обоих случаях (и для простой, и для индексированной переменной w) wQ п w вначале имеют значение Q, так что сначала все правильно. Преобразуем теперь S так:
Заменим каждый оператор v <- w на
начало xx-w; vQ<-wQ конец
Заменим каждый оператор v^f(...) на
начало v<-f(...); уо^-О конец
Заменим каждый оператор v <- 0 на-
начало v<-0; Vo^O конец
Заменим каждый оператор v <- w + 1 на
если ^0©0 то начало ^<-^+1; ^0<-0 конециначе о <-1
Заменим каждый оператор v <- М^ на начало и <-I; и0 ^ 1 конец
Заменим каждый условный оператор
если и © Mi то Si иначе S2 на
начало если Vo©O то на LS2;если v © i то Sjиначе LS2: S2
конец
Лемма, Г(РЛ^, D)^F(P4m, DY
Доказательство. Пусть SePa6. Покажем, как построить эквивалентную схему S' ее Раш- Для этого достаточно показать, как транслировать оператор
если w@v то St иначе S2
где результат такой проверки определен в (4.4). Прежде всего введем новый массив М и два маркера т0 и тх. В начало схемы S вставим оператор Л4[О]-^-то, а каждый оператор и <- w + 1 заменим на
начало u«-w+l; Л1 [v] <—m! конец
Это гарантирует, что если во время выполнения схемы (при некоторой интерпретации) вычисляется какое-то значение i > О, то Л4 [0] = т0 и М [1] = тх, ..., М [i] = тх. Заменим теперь каждый оператор (7.7) в S на
начало twl<-tiy; vl«-v; L: если Л1[^1]=т0
то если Л4[и1]=т0 то на LSI
иначе на LS2
иначе если Af[ul] = m0 то на LS2
иначе;
wl<-wl — 1; ul<-ul —1; на Ц
LSI: Sf, на DONE; LS2: S2;
DONE: конец1)
Здесь L, LSI, LS2 и DONE — новые метки, a vl, ш 1—новые простые переменные.
Теорема. Г(РЛе, /)) = Г(РЛ/П, D\
Доказательство. Утверждение следует из лемм (7.5) и (7.6).
. НЕЭФФЕКТИВНАЯ ЭКВИВАЛЕНТНОСТЬ КЛАССОВ Рл И РЛт
В этом разделе мы покажем, что Рл = РЛт и что эта эквивалентность неэффективна.
По данной схеме S (из Рл или Раш) можно построить эквивалентную «тотально размеченную» схему, в которой все операторы (все операторы (S) в синтаксическом смысле, см. п. 2.1) помечены. Например, на рис. 8.1,6 это сделано для схемы
Здесь в оригинале допущена ошибка: (7.7) заменяется на оператор, который «портит» переменные w и и, так что построенная схема будет неэквивалентна исходной. Мы приводим сразу правильную трансляцию для (7.7). — Прим, перев.
рис. 8.1, а. Поэтому можно предполагать, что каждая схема тотально размечена.,
(и, ку): xx-Fxkxh ку); (и ш): L1:если Р (у) тона L7 иначе началоxx-F2 (о); на L1конец;L7:СТОП (о)(и, ку): xx-Fxkxh ку); (и ш): L1:если Р (у) тона L7 иначе началоxx-F2 (о); на L1конец;L7:СТОП (о)L2:хх- Fx (и, ку);L1:если Р (и) тоL3:на L7иначе L4:началоL5: хх-F2 (у);L6: на L1 конец;L7:СТОП (и)L2:хх- Fx (и, ку);L1:если Р (и) тоL3:на L7иначе L4:началоL5: хх-F2 (у);L6: на L1 конец;L7:СТОП (и)
(и, ку): xx-Fxkxh ку); (и ш): L1:если Р (у) то
на L7 иначе начало
xx-F2 (о); на L1
конец;
L7:СТОП (о)
(и, ку): xx-Fxkxh ку); (и ш): L1:если Р (у) то
на L7 иначе начало
xx-F2 (о); на L1
конец;
L7:СТОП (о)
L2:
хх- Fx (и, ку);
L1:
если Р (и) то
L3:на L7
иначе L4:начало
L5: хх-F2 (у);
L6: на L1 конец;
L7:
СТОП (и)
L2:
хх- Fx (и, ку);
L1:
если Р (и) то
L3:на L7
иначе L4:начало
L5: хх-F2 (у);
L6: на L1 конец;
L7:
СТОП (и)
а
Рис. 8.1. Тотальная разметка схемы.
Определение. Поведением (вычисления) схемы (при некоторой интерпретации) называется последовательность меток выполняемых операторов в том порядке, в котором они начинают выполняться. '
Пусть схема на рис. 8.1,6 выполняется при такой интерпретации, что при первом прохождении оператора, помеченного меткой L1, предикат Р^ ложен, а при втором прохождении истинен. Тогда поведение схемы (при этой интерпретации)—это последовательность L2, LI, L4, L5, L6, LI, L3, L7. Для нас важным будет «автономное» поведение схемы.
Определение. Пусть S— (тотально размеченная) схема из Ра™, в которой используется п предикатов Р\, ..., Рп. Пусть и = (рь ..., уп) — вектор значений, каждое из которых либо истина, либо ложь. Тогда и-автономным поведением схемы S называется поведение схемы S в предположении, что
Р\ = их, Р2гУ11 Р„=уп.
Заметим, что мы определили автономное поведение схемы независимо от базисных функций и входных значений какого бы то ни было вычисления. Разумеется, это не очевидно и нуждается в доказательстве.
Лемма. Пусть S — схема из Раш, использующая п предикатов Р{, ..., Рп. Предположим, что все предикаты постоянны. Тогда поведение схемы S не зависит от области D, интерпретации базисных функций и входных значений.
Доказательство. Допустим, выполнение схемы начинается при двух различных интерпретациях или при одной и той
же интерпретации, но с разными входными значениями. Пусть при этом получаются две последовательности меток
^ь ^2> • • • > Lb L^, ..
^b ^2, • • •> ^fe> -^fc+b • •
впервые различающиеся в (&+ 1)-й метке. Тогда очевидно, что метка Lh должна помечать условный оператор
илиилиесли Р( ) то Si иначе S2
или
или
если х) = т то Si иначе S2
Поскольку все предикаты постоянны, метка Lu должна помечать последний из двух приведенных условных операторов. Мы придем к противоречию с нашим предположением, если покажем, что
к началу выполнения любого шага простая или индексированная переменная содержит при обоих вычислениях
либо один и тот же маркер т,
либо одно и то же значение индекса из N,
либо значения из области D (возможно, различные).
Докажем это утверждение индукцией по числу операторов, выполнение которых уже начато. Для i = 1 в момент начала выполнения оператора, помеченного Lb все переменные принимают значения из области D. Пусть (8.4) справедливо для п = = 1, 2, ..., t < 6, и мы начинаем выполнять оператор, помеченный меткой Lt. Все операторы, способные изменить какое-то значение (и, возможно, привести к противоречию с (8.4)), имеют одну из следующих пяти форм:
v <- w (и и w — простые или индексированные переменные)
п-е-т
и<-0
u-^-FUA
v <- w + 1
Поскольку при всяком вычислении вплоть до 6-го шага выполняются одни и те же операторы, то после выполнения оператора Li утверждение (8.4) будет справедливо независимо от того, какой из операторов (1) — (5) был выполнен.
Теперь можно начать обсуждение неконструктивной эквивалентности классов Ра и РАт*
Теорема. Пусть и— вектор длины п, составленный из логических значений истина и ложь, a S — схема из РА с п предикатами. Тогда свойства конечности и бесконечности и-авто- номного поведения схемы S алгоритмически распознаваемы.
Доказательство. Поскольку v-автономность поведения; нс зависит от интерпретации, можно начать построение такого поведения, не задавая никакой интерпретации. Пусть в S eCTbj р меток (а стало быть, р операторов (S)). Будем выполнят^ схему и записывать ее поведение до тех пор, пока либо не за-^ вершится вычисление, либо не будет записана р + 1 меткам Если схема останавливается прежде, чем записана р + 1 метка] то v-автономное поведение конечно. Если записана р + 1 метка^ то хотя бы одна метка была записана более чем один раз. Та^ ким образом, какой-то оператор выполняется более одного раза,? что означает наличие цикла. Этот зациклившийся процесс hq может остановиться, поскольку все предикаты постоянны и единственная возможность изменить последовательность вычислений заключается в выполнении условного оператора
если Р(...^ то Lf. Sx иначе L2: S2
где предикат Р(...) принимает разные значения. Но этого быть* нс может.
Лемма. Проблема распознавания конечности и нечности v-автономного поведения схемы S е РАт алгоритма^ чески неразрешима.<^
1
Доказательство. По данной машине Тьюринга М с од| ной лентой, бесконечной вправо, и внешним алфавитом {0, 1| можно построить схему программ SM е РАт, которая имеет ко| нечное автономное поведение тогда и только тогда, когда М останавливается на пустой ленте (заполненной нулями). ТеШ самым проблема остановки машины Тьюринга сводится к про| блеме конечности автономного поведения, а поскольку проблем^ остановки алгоритмически неразрешима, то неразрешима и про| блема конечности.:
Лента машины Тьюринга моделируется массивом Т со счет* чиком / (сначала его значение равно 0), указывающим пози^ цию головки машины Тьюринга. Используются также два мар! кера 0 и 1. Если М записывает маркер m в t-ю ячейку ленты| то SM выполняет оператор T[d<-m. Если М считывает ячейку! то схема SM осуществляет проверку1
если Г[/]=т то ...1
Если головка М сдвигается вправо, SM выполняет оператор <- i + 1, а если головка М сдвигается влево, то, в силу теорем$|
(4.3), схема SM может выполнять оператор i^-i—\. Детали доказательства предоставляем читателю.
Теорема. По схеме S е VAm нельзя эффективно построить эквивалентную схему S' е Ра-t
Доказательство. Если схемы S' е РА и S е Ра™ эквивалентны, то v-автономное поведение схемы S конечно тогда и только тогда, когда конечно соответствующее поведение S'. Если бы схему S' можно было эффективно построить по S, то, применяя алгоритм, распознающий конечность автономного поведения S, мы получили бы противоречие с леммой (8.6).
Докажем, наконец, существование (но не эффективное построение) схемы S' е Ра, эквивалентной схеме S е Ра™. Теорема (5.6) показывает, что достаточно доказать существование ЛОКАТОРа в Ра для схемы S (см. определение (5.5)). Если в S используется п предикатов Р\, ..., Рп, то ЛОКАТОР имеет вид
где аргументы предикатов — все ОМЕГА, Т — истина, F — ложь. (Таким образом, если у Рх два аргумента, то в самом верхнем распознавателе будет написано Pi (ОМЕГА, ОМЕГА).) Отметим, что в качестве аргументов не обязательно брать неопределенное значение Q, это лишь упрощает конструкцию. Здесь фактически можно было бы взять произвольные входные значения.
Предположим, что задана какая-то интерпретация области D, предикатов Pt и функций F^ и что ЛОКАТОР указанного выше вида выполняется для некоторых входных значений. Тогда ЛОКАТОР проверяет все предикаты Pi и выполняет один из операторов S< в зависимости от того, какие значения истинно-
сти будут у предикатов. Существует 2П различных операторов St в соответствии с 2П возможными v-автономными поведениями схемы S. Оператор Si, например, соответствует набору v а = (истина, .истина).
Предположим, что упомянутое выше вычисление обнаруживает, что Pi (...)=... = Рп (...) = истина. Тогда и = (истина, ..., истина). Оператор Si должен осуществлять следующие действия:
Si должен «моделировать» v-автономное поведение схемы S до тех пор, пока
либо Sj останавливается с тем же результатом, что и у S,
либо будут осуществлены две проверки предиката Рь дающие разные значения истинности. В этот момент в RTb ..., RTn засылается Q, а в RFb ... ..., RFn — тот список аргументов Pt (...), который дает Pi (...) = ложь. Управление передается затем на метку НАЧАЛО I.
Таким образом, поскольку Рг (ОМЕГА) = истина для i = 1, ... ..., п, то Si считает все предикаты постоянными (и Si выполняется, по существу, как и S) до тех пор, пока не обнаруживает различия.
Теперь покажем, как построить Si (для и = (истина, ... ..., истина). Построение остальных операторов St осуществляется подобным образом.
Рассмотрим два случая, связанные с тем, конечно или бесконечно v-автономное поведение схемы S.
Построение Si в предположении конечности v-автономного поведения схемы S:
^1, и ..., и.
Не уменьшая общности, будем считать, что все предикаты имеют ранг 1. Приведенная выше последовательность показывает, в каком порядке начинается выполнение операторов. Нам, по существу, нужно «развернуть» «массив» циклов. Запишем нашу последовательность операторов в виде
начало Lx: (S),
<S)2•
U ' <S)\
конец
где (S)i — оператор, помеченный меткой L(.
Например, для v = (истина) и-автономное поведение схемы, изображенной на рис. 8.1,6, будет L2, LI, L3, L7, так что в результате «разворачивания» мы получим последовательность
начало L2: y^Fx^ ^);
L1:если Рх^ то L3: на L7 иначе
L4: начало ... конец
L3:на L7;
L7:СТОП (и)
конец
Покажем, как транслировать (8.11) в операторы схем класса РА с требуемыми свойствами. В качестве иллюстрации транслируем приведенную выше схему в
начало y<-Fx^y, w);
если Pi (у) то иначе начало RT <- ОМЕГА; RF <-у, на НАЧАЛО 1
конец;
СТОП М;
конец;
Заметим, что лишний оператор на L7 уничтожен, а условный оператор, содержащий проверку РДу), преобразован, как это и требовалось.
Для того чтобы транслировать (8.11), разобьем сначала множество всех операторов (S)^ на 4 класса:
у w, у <- 0, у <- w + 1; *о <-F (...), СТОП(у), «пустой» оператор;
если Рг(и) то (S) иначе (S)
если у = т то (S) иначе (S), начало (S-список) конец, на /
у^-т
Затем для каждого i = 1, ..., к будем выполнять в зависимости от типа (S)i одно из преобразований:
заменить Ц: (S)i на (S)^
(оставляется только непомеченный оператор);
заменить L^: (5)г- на
если Р^у) то иначе начало RT<- ОМЕГА;
RF<-y;
на НАЧАЛО/ конец;
вычеркнуть оператор Ц: (S\ (он лишний, поскольку оператор, выполняемый следующим, находится в следующей строке);
заменить Li : (3)г- на и <- ОМЕГА.
Мы утверждаем, что этот процесс дает оператор, удовлетворяющий (8.9) в предположении, что Pi (ОМЕГА) = истина для всех I. Заметим, что если Pi (ОМЕГА) = истина, то при выполнении Si выполняются непомеченные операторы и-автономного поведения схемы 3, которые и дают нужное значение. Когда найден предикат Р, не являющийся тождественно истинным, мы выходим из ЛОКАТОРа, как это и требовалось.
Построение Si в случае бесконечного v-автономного поведения. Смысл оператора Si в том, чтобы найти предикат с разными значениями истинности либо остановиться с тем же результатом, что и для 3. Выполняемые операторы нельзя «развернуть» в последовательность, как в случае конечного и-авто- номного поведения, но сейчас не нужно заботиться об остановке, поскольку 3 не останавливается. Нужно лишь обеспечить, чтобы схема Si находила предикат с двумя разными значениями истинности, если такой существует (независимо от того, находит ли такой предикат схема 3). Это достигается систематическим порождением всех возможных значений, которые в принципе могут вычисляться схемой 3, и проверкой предикатов на этих значениях.
Точнее, рассмотрим множество всех функциональных выражений схемы 3, определяемых следующим образом. Пусть 3 имеет входные переменные xb ..., хп, функции ff, ...» /^ ранга р (р = 1, ..., т) и предикаты р^..., ря ранга q lq
^q — 1, ..., г). Множество функциональных выражений порождается продукциями
Е > М I -^2 I • • • I ^п I ^
2?^№)1 ... |f*,(£)■
E-^fTkE, ..., Е)| ...|frm(E, Е)
Это множество выражений {£} содержит все возможные значения, на которых могут проверяться предикаты схемы 3.
Схема Si просматривает все множество {£}. Вид схемы Si зависит от максимума пг рангов функций и предикатов; Si для ранга m + 1 строится индуктивно по Si для ранга пг. Для того чтобы описать общий вид схемы Sb опишем сначала Si для случая одного предиката Р\ ранга 1, одной функции ранга 2 и одного простого начального значения Vq- Напишем программу,
порождающую значения и проверяющую на них предикаты в следующем порядке:
У1 = Нуо, Vo)
V2 = f(Vl, v0), y3 = f(y0, у,)
V4 = f(v2, Уо), У5=Т(уь У J, y6 = f(y0, У2)
v7 = f(v3, VO), v8 = Hv2, Vj), y9 = f(y1, y2), y,0 = f(y3) y0)
Этот процесс проиллюстрирован на диаграмме (8.13), где строки (столбцы) указывают значения первого (второго) аргумента, а номера в точках решетки — порядок, в котором порождаются новые значения.
(8.13)(8.13)
(8.13)
(8.13)
Приведенный ниже оператор для Si будет, очевидно, обладать нужными свойствами (здесь А хранит массив значений, К указывает, сколько значений порождено в Л к текущему моменту, а I и J— счетчики для индексов значений первого и второго аргументов). Единственная трудность заключается в операторе, проверяющем /; дело в том, что такой оператор в схемах класса РА не допускается.
начало ^<-0; /<-0; 7 <—0; А [0] <- у0?
ПроверкаРх на новом значении и выход, если найденПроверкаРх на новом значении и выход, если найденЦИКЛ: если Рх (А [К]) то
ПроверкаРх на новом значении и выход, если найден
ПроверкаРх на новом значении и выход, если найден
иначе начало /?Т<-ОМЕГА; RF<-A [/<];на НАЧАЛО!
конец;
> предикат, принимающий два
разных значения истинно
сти.
^К+Х; A[K]*-f(A[I], A[J]} | Порождение
I нового значе- / НИЯ с исполь- 1 зованием и;, у7 .в качестве ар
гументов.
SAVE<-/; /<—/—1;если / = SAVE тоначало I <- J\ / <- О конецSAVE<-/; /<—/—1;если / = SAVE тоначало I <- J\ / <- О конецна ЦИКЛна ЦИКЛ} Увеличение 7. Уменьшение /. Если / не изменяется, то мы находимся в ■ конце диагонали (см. (8.13)) и должны начать с новой диагонали.
SAVE<-/; /<—/—1;
если / = SAVE то
начало I <- J\ / <- О конец
SAVE<-/; /<—/—1;
если / = SAVE то
начало I <- J\ / <- О конец
на ЦИКЛ
на ЦИКЛ
Проверка на новом значении.
конец
Чтобы избавиться от этой проверки счетчика /, мы будем пользоваться двумя дополнительными массивами. AD [/] — массив «нижних» точек; AD [/] = /-s- 1 (кроме значения AD [0], которое мы определим чуть ниже). Таким образом, оператор I -<- / — 1 заменяется на / <- AD [/].
Далее J заменяем массивом индексов AS. Если А [/] берется в качестве первого аргумента функции /, то A [AS [/]] — ее второй аргумент. Заметим, что сначала А [/] используется как первый аргумент, а вторым аргументом является А [0]. Итак, когда порождается новое значение А[/<], мы полагаем AS[/Q = 0. Кроме того, во второй (третий и т. д.) раз А [/] используется как первый аргумент, а в качестве второго берется А [1] (А [2] и т. д.). Это означает, что после использования А [/] в качестве первого аргумента мы должны увеличить AS [/] на 1. Это дает приведенную ниже программу, которая должна быть понятна, кроме, быть может, (1) оператора AD [0] <- AS [0] и (2) того, как мы начинаем новую диагональ диаграммы (8.13).
начало/(<-0; /<-0; А[0]<-и0‘>|Загрузка началь-?
AS[0]<-0; AD[0]<-0;Jных значений. ^
ЦИКЛ:если Pi (А [К]) то]Проверка на ноЧ
иначе начало RT <- ОМЕГА;) вом значении. 1
^<-Л[7<]; на НАЧАЛО 1Jj
конец;]
Порождение нового значения.Порождение нового значения.AS[^<-0; AD[^]<-^ — 1;AS[^<-0; AD[^]<-^ — 1;AS [/]<-AS[/]+ 1;AS [/]<-AS[/]+ 1;K«-tf+l;A[tfW(A[/],A[AS[/]]);
Порождение нового значения.
Порождение нового значения.
AS[^<-0; AD[^]<-^ — 1;
AS[^<-0; AD[^]<-^ — 1;
AS [/]<-AS[/]+ 1;
AS [/]<-AS[/]+ 1;
L1:L2: конецL1:L2: конецУвеличение индекса для следующего повторения.
L1:
L2: конец
L1:
L2: конец
AD[0]<~ AS [0]; /<-AD[/]; ) Фиксация нижней J нулевой точки.
на ЦИКЛ
Пока мы уменьшаем / (двигаясь по диагонали диаграммы (8.13)), действия программы вполне понятны. Предположим теперь, что / = 0 и вычисляется /(А [0], A [AS [0]]). Тогда в соответствии с (8.13) следующим вычисляемым значением будет f(A [AS [0] + 1], А [0]), а в / нужно заслать AS [0] + 1. Оператор, помеченный меткой L1, прибавляет единицу к AS [0], как и требовалось, а строка с меткой L2 засылает в / требуемое значение! В случае I #= 0 оператор AD [0] AS [0], по существу, ничего не делает, а в случае / = 0 он используется для засылки нужного значения в /.
Теперь можно обсудить построение Si в общем случае, предполагая бесконечность ^-автономного поведения. Идея здесь та же, что и в случае одной функции ранга 2. Мы строим Si индукцией по максимальному рангу функций и предикатов.
Предположим, что все функции /ь ..., fn и предикаты Pi, ... ..., Ph имеют ранг 1, а входными переменными исходной схемы S являются Уь ..., х)ь Выпишем тогда следующий оператор:
началоначало/<-0;К<-0; А [К] ПОМЕТА;К<-К + 1; А[К]->^;/<-0;К<-0; А [К] ПОМЕТА;К<-К + 1; А[К]->^;> Загрузказначений.> Загрузказначений.начальныхначальных
начало
начало
/<-0;
К<-0; А [К] ПОМЕТА;
К<-К + 1; А[К]->^;
/<-0;
К<-0; А [К] ПОМЕТА;
К<-К + 1; А[К]->^;
> Загрузказначений.
> Загрузказначений.
начальных
начальных
К<-К+ 1; А[К]<-^;
ЦИКЛ: /<-/+ 1;
[проверка предикатов ранга 1 на А^-8- 1]];
K*-K+V A\KA*-MAV^ 1]);
К^К-Н; Л[К]*-^(Л[/--1]);
на ЦИКЛ
конец
Детали проверки предикатов ранга 1 мы оставляем читателю. Загрузка начальных значений засылает все входные значения в массив А. Переменная К указывает всегда, сколько значений находится в А. Эту схему можно было бы упростить, запоминая / — 1 в точке программы перед оператором на ЦИКЛ; мы не сделали этого с целью упрощения индукции.
Если функций ранга более 1 нет, то очевидно, что описанный оператор работает так, как нужно. Все возможные значения помещаются в массив Л, а / используется для перечисления его элементов при проверке предикатов на. этих значениях.
Предположим, что есть оператор Si, который «заботится» обо всех функциях и предикатах ранга m > 0 и ниже. Он имеет вид
начало /<-0;) Загрузка начальных
Si; .. .,; Sn;j значений.
ЦИКЛ: /^-/+ 1;
[проверка предикатов ранга m на, yJ
О;
на ЦИКЛ конец
Предположения индукции здесь таковы: А перечисляет все возможные значения, К указывает, сколько значений заслано в Л, Si, ..., Sn— операторы загрузки начальных значений, / изменяется только там, где это явно указано, и всякое входное значение рано или поздно попадает в массив А. Всевозможные наборы (уь .. ., vm) используются в качестве аргументов функций 1?> • • •> /Г • Заметим, что приведенный выше оператор для функций и предикатов ранга 1 удовлетворяет этим требованиям и имеет вид (8.15).
Предположим, кроме того, что в исходной схеме S употребляются предикаты и функции fp, ..., fq ранга m+ 1. Преобразуем (8.15) с помощью новых массивов AD, AS, Л1, . . . , Апг и простых переменных /1 и Л. Массивы Л1, ..., Апг будут хранить всевозможные m-наборы; Л—их счетчик. AD, AS и /1 будут использоваться точно так же, как и в ЛОКАТОРе ранга 2 для указания (на каждом шаге) значения Л [Л] и m-набора Л1[А5[Л]], ..., Am [AS [Л]]. S1 и S2— новые простые переменные.
Преобразуем (8.15) в
начало /<-0; Sf, . .. ; Sn;а Старая
I загрузка на- I чальных зна- ) чений
Л1 [0] <-ОМЕГА; ...; Апг [0] <- ОМЕГА; Новая AD[0]<-0; AS [0]<—0;I загрузка на-
/1 <- 0; Л <- 0;I чальных зна-
) чений
ЦИКЛ: /<-/+ 1;
[проверка предикатов ранга т на vb ..., итУ
>Каки раньше
K^+l;(v,«„):J
Л *-71 4- 1; AD[Jl]1; AS [71]^-0;i Al [71]*-of, ...; Am[Jl]<- um:
Засылка нового m-набора в
Л1, ..., Ат.
SI <—71; 52*-А5[Л];]
| Нахождение г индекса для 1 ранга m + 1.
AS [/1] AS [/1] + 1; AD [0]*-AS [0]; 1
71*-AD[/1]; •
Фиксация второго индекса и переход вниз по диагонали.
[проверка предикатов ранга m+l на 1
A [SI], Al [S2];Am[S2]]
I Проверка г предикатов 1 ранга т + 1.
K^-K-Vl;1
A[AWP(A[S1], Al [S2],Am[S2]);
K*-K + 1;
A [M *- fq (A [SI], Al [S2]Am [S2]); .
Нахождение .новых значений функций
на ЦИКЛ
конец
Заметим прежде всего, что наше преобразование не изменяет ни одного из исходных операторов и, поскольку ни одна из исходных переменных не изменяется новыми операторами, значения функций ранга т и меньше вычисляются и запоминаются точно так же, как и раньше. Этот новый оператор имеет вид (8.15), где Ui = Л[S1], у2 = Л1 [S2], ..., vm+1 = Лт[52].
Из этого построения, а также из (7.1) следует Р(РА, /))^Р(РАЬ, оу
ИСПОЛЬЗОВАНИЕ ПРОСТЫХ И МНОГОМЕРНЫХ МАССИВОВ
В разд. 6 мы видели, что для всякой схемы из Ppdsm доста* точно двух магазинов. Аналогичная ситуация и в РА.
Теорема. Для всякой схемы Se РА (Pal, Раж, Рас, ...) существует эквивалентная схема S' е РА (Pal, Раж, Рас, ...), использующая всего лишь один массив.
Доказательство. Пусть в S используются массивы Ло, ..., Ап_ь Схема S' использует только один массив Л, причем ячейки
Л[0], Л[п], А[2п], ...представляют массив Ло,
Л[1], Л [n+ 1], Л[2п+1], ... представляют массив Ль
Л[п—1], Л[2п—1], А[3п — 1], ... представляют массив Лп-Ь
Для того чтобы достичь этого, достаточно преобразовать каждый оператор v <- w + 1 в оператор и <- w + п и Л^ [и] заменить на Л [и + Z] для всех L
Предположим, что допускается использование п-мерного массива A[wb ..., wnY п > 1. При этом естественно считать, что А [^ь ..., wn] — та же простая переменная, что и A [vi, ... ... , ип], тогда и только тогда, когда wi © щ для / = 1, ..., п (в смысле определения (4.4)). Покажем, что использование многомерных массивов не увеличивает вычислительную мощь класса.
Теорема. Пусть S — схема из РАе, использующая в дополнение к описанным ранее средствам один п-мерный массив Л, n > 1. Тогда существует эквивалентная схема S' е РАе, использующая вместо А п + 1 одномерных массивов В^ Вь ... •.., Вп.
Д ок аз ател ьство. Кроме этих массивов S' использует переменную 7. Предполагается, что эта переменная указывает, сколько различных элементов заслано в массив А. Если в схеме S переменной А [ть ..., wn] присвоено значение и, то в схеме S' для некоторого / будет
В1Ш = ^1BnVi\ = wn, в0 [/] = у
Пусть 1 — новая переменная, а оператор
началу /<-0;
ЦИКЛ: если / © У то
начало 7^ [7] wf, ...; В„[7] <- ^;
во [7] ОМЕГА; /<-/+ 1; конец
иначе начало если в! [7]=^! то
если Bn\I\=wn то на FOUND иначе
иначе
7<-7 + 1; на ЦИКЛ
конец
FOUND:
конец
записывается сокращенно СОРУ [7, wb ..., w^. Этот оператор отыскивает такой индекс 7, что в! [7] = ^ь ..., вп [7] = wn. Если такой индекс обнаруживается, то ячейку А [^ь ..., wn] схемы S представляет ячейка Во[7] схемы Sz. Если такогб индекса нет, то добавляем соответствующие ячейки в в0, ..., Вп.
Теперь для того, чтобы транслировать S в Sz, мы
в начало схемы S поместим оператор /-<-0;
преобразуем S так, чтобы единственными операторами, в которых фигурирует массив Л, были
Л^, . . . , W^ <- V И У^-Л^!, . WnV
где Wi и v — простые переменные (очевидно, что сделать это очень просто);
каждый оператор A [йУЬ ..., w^ <- у заменим на
начало СОРУ [7, wb w^, So [7] <—v конец;
каждый оператор и<-Л[^1, ..., wn] заменим на
начало СОРУ [7, wb wn]; и<~В0[Д конец.
3) Теорема. Для всякой схемы S е P^l (Раш, Рле) с одномерными и многомерными массивами существует эквивалентная схема S'г PAl (Ра™, РАе), в которой используется всего лишь один одномерный массив.
Доказательство. FIoSePal (Ра™, Ра?) строим Sj = = S, Si е ?Ае (конструкция из теоремы (7.11) или леммы (7.5)). Затем с помощью конструкции, описанной в теореме (9.2), строим такую схему S2 = Sj из Pas, что в S2 есть лишь
одномерные массивы. Далее строим S3 = S2, 53ePAL(PAw, Рде), с помощью конструкций, описанных в лемме (7.6) и/или теореме (7.1). Наконец, применяем конструкцию теоремы (9.1) и строим S' = S3.
Все построения, проводившиеся в теореме (9.3), эффективны. Предположим теперь, что в S е РА используются многомерные массивы. Можно рассмотреть схему S как схему класса Р^е и построить схему Sj = S, Si е РАе, в которой будут лишь одномерные массивы. Согласно теореме (8.16), существует S2 е РА, S2 = Sb но в общем случае схему S2 нельзя построить эффективно. Наконец, применим теорему (9.1) для построения такой схемы S' е РА, S' = S2, что в ней используется только один одномерный массив. Итак, доказана
4) Теорема. Для всякой схемы Se Р4 с одномерными и)или многомерными массивами существует эквивалентная схема S' е Ра, в которой только один одномерный массив.
Мы подозреваем, что в теореме (9.4) S' нельзя построить по S эффективно.
10. РЕЗЮМЕ
В статье устанавливается несколько интересных фактов. Выясняется, что по крайней мере на уровне схем с помощью массивов можно делать больше, чем с помощью рекурсивных процедур. Фактически мы не смогли разработать ни одного программистского средства, которое нельзя было бы выразить в Ра (в предположении, что функции и предикаты всюду определены), хотя эффективное построение эквивалентных схем возможно не всегда.
Некоторые вопросы, касающиеся рассматриваемых классов схем, остаются открытыми. Во-первых, мы знаем, что
Рд Р(1,0) Р(2, 2) = Рд
(Р<г, j) — эт0 класс схем с Z магазинами и / маркерами). Но мы не знаем, где в точности лежат классы P(i, 0) и P(i, i). Во-вторых, остается вопрос: РА = Par или Ра cz PAr? Напомним, что мы моделировали рекурсию посредством массива, и здесь могут возникнуть некоторые проблемы. Мы предполагаем, что Ра = = Par-
Хорошо было бы выяснить, возможно ли эффективное построение схемы S' из Ра, эквивалентной схеме S из Ра, использующей многомерные массивы.
Мы предполагаем, что классы Pal, Рде, Ра™ универсальны. Нам кажется, что в VAeLm без всяких трудностей можно реали-
зовать другие программистские средства, такие, как подстановка именем, подстановка результатом, подстановка ссылкой, сопрограммы и т. д.
ПРИЛОЖЕНИЕ
Приведем детали некоторых построений, наброски которых были даны в статье. Для удобства чтения следует возврат щаться к основному тексту.
Теорема. По данной схеме S из PR можно эффективно построить эквивалентную схему S' из PAL.
Построение
Шаг 1 (вставка операторов инициализации). Вставить перед (S-списком) основного (тела) схемы S операторы инициализации глобальных счетчиков ТОР и АЗ:
ТОР<-0;АЗ<-0;
Шаг 2 (замена простых переменных на индексированные). Заменить каждую простую переменную,^ в (теле) каждого определения функции на А [АЗ + /].
Шаг 3 (замена операторов СТОП). Заменить СТОП (у) в (теле) каждого определения функции на
начало RV <- щ на А [АЗ + (р + 1)] конец
где р — число переменных, используемых данным определением функции. RV— единственная новая простая переменная.
Шаг 4. Заменить каждый заголовок функции /(Vi, ..., Vr^: на Ц:, где Ц — новая метка.
Шаг 5 (замена всех вызовов функций). Для каждого вызова небазисной функции
y*-f(vix)R^
в полном тексте схемы породить новую метку RL и заменить этот оператор на
начало ТОР-
А [ТОР]-
^-ТОР+ 1;
<-АЗ;
(часть действия 1) (действие 2)
Л[ТОР + (р + 1)] -
t-RL;
(действие 3)
Л[ТОР+1]■
<-Оь
(действие 4)(действие 4)(действие 5)(конец действия 1) (обращение к функции) место возврата(действие 5)(конец действия 1) (обращение к функции) место возвратал[тор + /?л <-w
(действие 4)
(действие 4)
(действие 5)
(конец действия 1) (обращение к функции) место возврата
(действие 5)
(конец действия 1) (обращение к функции) место возврата
А [ТОР + №f + 1)] <- ОМЕГА;
Л[ТОР+ р] ОМЕГА: АЗ <-ТОР;
ТОР <-ТОР + (р+ 1);
на Ц
RU АЗ «-[АЗ]; xx-RV
конец
Здесь Ц— метка, заменившая на шаге 4 ^vx, ..., Ря/):, ар — число простых переменных, используемых в определении функции f.
ЛеММа. F(P(n, m)> ^) — ^ (Р(2, n+m+i)> Dy
Доказательство. Пусть S— схема из P(n, m) с п ^ 2 магазинами PDi, .PDn. Мы строим схему S' е Р(2, п+т+щ эквивалентную S. Если в S используются маркеры Мь ..., Мт, то в S' используются дополнительно маркеры Ло, ^ь ..., Лп. В S' используются магазины PD и AUX.
S' строится по S следующим образом:
В начало схемы S помещаются операторы
PD<-ОМЕГА; РО«-Л0;
Каждый оператор PD <- и в схеме S заменяется на начало PD <- v; PD <- Аг конец
Порождаются две новые простые переменные Т\ и Т2.
Для каждого оператора и <- РВг- порождаются новые метки LOOP и RESTORE, а сам оператор заменяется на
начало AUX<-ОМЕГА; AUX«-A0;начало AUX<-ОМЕГА; AUX«-A0;LOOP: T1<-PD; T2«-PD;LOOP: T1<-PD; T2«-PD;если T\ =А[ тоначало хх-Т2;на RESTORE конецесли T\ =А[ тоначало хх-Т2;на RESTORE конец} Начальная загрузка дополнительного магазина.} Выборка следующего элемента из основного магазина.Найдено нужное значение, оно выбирается, и осуществляется переход к восстановлению магазина.} Начальная загрузка дополнительного магазина.} Выборка следующего элемента из основного магазина.Найдено нужное значение, оно выбирается, и осуществляется переход к восстановлению магазина.
начало AUX<-ОМЕГА; AUX«-A0;
начало AUX<-ОМЕГА; AUX«-A0;
LOOP: T1<-PD; T2«-PD;
LOOP: T1<-PD; T2«-PD;
если T\ =А[ тоначало хх-Т2;
на RESTORE конец
если T\ =А[ тоначало хх-Т2;
на RESTORE конец
} Начальная загрузка дополнительного магазина.
} Выборка следующего элемента из основного магазина.
Найдено нужное значение, оно выбирается, и осуществляется переход к восстановлению магазина.
} Начальная загрузка дополнительного магазина.
} Выборка следующего элемента из основного магазина.
Найдено нужное значение, оно выбирается, и осуществляется переход к восстановлению магазина.
иначе если 7Т=Л0 то
Основной магазин
начало PD<-T2; PD<— Tl;
пуст; тогда пуст
на RESTORE
и магазин PDZ
конец
в S. Переход к
восстановлению.
иначе начало AUX<-72; AUX<-T1; ) Значение верхушка LOOPI ки PD не содер-
конец;J жится в PDZ.
Оно помещается в AUX, и проверяется следующее значение.
RESTORE: n<-AUX; T2<-AUX; } Содержимое PD восстанавливается из AUX.
если Т1 #= Ло то
иначе начало PD<-T2; PD<-T1;
на RESTORE конец конец
Лемма. Г (Р(2, т^ D) ^ Г (Р(2,2), D\
Доказательство. Пусть в S из Р(2, т) используются маркеры Мь ..., Мт. Эквивалентная схема S' из Р(2,2) использует маркеры Л10 и М. Каждый маркер ^ в S представляется в S' с помощью т + 1 маркеров:
М^М^ м, ..., м, м0, м,..., м.
i —1m—i
Каждая простая переменная у в S представляется в S' с помощью т + 1 переменной у, иь и2»т- Для трансляции 8 в S' осуществляются следующие шаги:
Каждый оператор и <- w заменяется на
начало y*-w, ц^Шр ...; ym*-wm конец
Каждый оператор у <- Mi заменяется на
начало у*-М0; vt<-M; ...; ут*-М; Ui<-M0 конец
Для каждого оператора
если у = Mt то 8] иначе S2
порождается новая метка L, а сам оператор заменяется на
если и = Мо то если vz = Л40 то Sj иначе на L
иначе L: S2
Каждый оператор PD <- и (где PD — магазин) заменяется на
если у = Л10
то начало PD<-v; PD<-yj; ...; PD<-ym конец иначе PD<-v
Каждый оператор и <- PD заменяется следующей конструкцией (усложненной из-за того, что в случае, когда магазин PD пуст, этот оператор должен быть равносилен пустому):
начало
если и = Л40 то
начало хх-М\ v<-PD;
если х) = М(если у = М, то магазин PD
был пуст)
то начало и <- Л40;
на OVER
конец
иначе
конец
иначе o<-PD;
если и = М0 то
начало v^PD; ...; vm<-PD конец
OVER:
конец
(6.4) Теорема. Г(Рд, D) ^ F(P(i.o), D).
Доказательство. В приведенных ниже конструкциях (6.4а) и (6.4b) показывается, что для схемы S из PR с п предикатами Рь ..., Ри существуют Р^-имитаторы и ЛОКАТОР в Р(1,о)- После этого схема S' из P(i, о), эквивалентная S, строится с помощью техники теоремы (5.6).
(6.4а) Лемма. По схеме S из Рд, использующей предикат Pi, можно построить ее Pt-имитатор из P(i,o).
Доказательство. Предположим, не уменьшая общности, что в (теле) каждой из функций, а также в основном (теле) схемы используется р переменных Vi, ..., Vp, где Vi, ..., VRf — формальные параметры (Р/ = 0 для основной схемы). Для по-
строения имитатора с одним магазином PD берутся новые переменные Ль , Ari и RV;
Шаг 1. Каждый вызов небазисной функции V<-/(vb ...
..., иду) заменяется на
начало Ах<-хзх\ ...; ARt<-x)Rt;
PD^-Kf, ...; PD<-Kp
PD<-RL;
Ль ...; VRf<-ARf;
Ут1 НОМЕРА; ...; Vp
на Lf;
RL:Vi<-RV;
конец
(запоминаются аргументы) (переменные размещаются в магазине)(в магазине запоминается метка возврата) (инициализируются формальные параметры)ОМЕГА; (фиксируютсяостальные ло- кальные переменные)(обращение к функции) (нахождение значения функции)(запоминаются аргументы) (переменные размещаются в магазине)(в магазине запоминается метка возврата) (инициализируются формальные параметры)ОМЕГА; (фиксируютсяостальные ло- кальные переменные)(обращение к функции) (нахождение значения функции)Шаг 2. Внутри определения функции каждый оператор СТОЩК,) заменяется на:
(запоминаются аргументы) (переменные размещаются в магазине)
(в магазине запоминается метка возврата) (инициализируются формальные параметры)
ОМЕГА; (фиксируются
остальные ло- кальные переменные)
(обращение к функции) (нахождение значения функции)
(запоминаются аргументы) (переменные размещаются в магазине)
(в магазине запоминается метка возврата) (инициализируются формальные параметры)
ОМЕГА; (фиксируются
остальные ло- кальные переменные)
(обращение к функции) (нахождение значения функции)
начало RV <-Vf,(вырабатываемое значение)
RET <- PD;(метка, по которой осуще
ствляется возврат)
Vp^-PD; ...; V^PD; (восстановление старых значений переменных)
на RET(возврат)
конец
Шаг 3. Каждый • заголовок функции «f(Vi, ..., Гд/)» заменяется на «£/:».
Это дает эквивалентную схему Si из PPdsL с одним магазином PD. Далее нужно воспользоваться конструкцией, аналогичной той, которая приводилась в теореме (5.3) для замены вхождений переменных-меток с помощью значений аргументов, на которых предикат Pt принимает разные значения истинности. Это предоставляется читателю.
(6.4b) Лемма. По схеме S из Ря можно построить ее ЛОКАТОР из Р(1, 0).
Доказательство. В данной схеме S раскрываются все вызовы первого уровня. Затем выполняются шаги 1, 2, 3 леммы (6.4а). В полученной схеме (из класса Ррйзь) используется один магазин. Она содержит вхождения переменных-меток только в операторах возврата. Осуществляются шаги с) и d) теоремы (5.7).
Лемма. Г(РЛт, D^ e?^pdsm, DY
Доказательство. Опишем этапы построения схемы S' из Ppdsm, эквивалентной данной схеме S из Ра™.
Шаг 1. Пусть схема S такова:
(^ь .wnY (S-список); СТОП (v)
где Wi, ..., wn — простые переменные. S заменяется на
(Шь INJ: w^INf, ...; wn<-INn; (S-список); СТОП (о)
где INi, ..., INn — новые простые переменные. Предположим далее, что функция или предикат максимального ранга имеет ранг m ^ 1. Тогда порождается m новых простых переменных ARGi, ..., ARGm и новая простая переменная Vo.
Каждый оператор v<-f(vi, ..., x)R^ заменяется на
начало Ко^^Г, ARG^Vo;
ARG^|<-V0;
ARG^HARGu ARG^f); I70^ARGi; v<-VQ конец
Каждый оператор
если p(vb ..., x)Rp) то Si иначе S2 заменяется на
начало Ко^-^Г, ARGt^-VV,
Vo<-x)Rp; ARG^P<-Vo’,
если p(ARGb ..., ARG^) то Si иначе S2 конец
Каждый оператор СТОП (и) заменяется на
начало V0<-v; СТОП(У0) ^ жец
Очевидно, все эти замены дают эквивалентную схему Sb Цель преобразований состоит в том, чтобы получить схему, в которой входные переменные, а также аргументы функций, предикатов и операторов СТОП можно было бы не рассматривать как магазинные. (Они никогда не содержат ни маркера т, ни значения из N. В противном случае в РАт вместо них подставляется одна звездочка *.) Значит, переменные ARG2- и INi не нужно представлять магазином в S'.
Шаг 2. Читателю предоставляется доказать самому, что схему Si можно далее преобразовать в эквивалентную схему S2 из Раш, допускающую простые операторы следующих 12 типов (здесь Т— одна из переменных ARGi или IN^v и w— простые переменные, отличные от ARGi и INj, а m — маркер).
(1)
Т<-у
о<-7
у *- w(ииwразличны)
у *- ш + 1(уиwразличны)
у m
у *- А [да](иидаразличны)
А [и] *- да(иидаразличны)
T*-f(ARG„ .... ARG^)
если р (ARGb ..., ARGRp) то Si иначе S2
если v = m то S] иначе S2
на /
у<-0
Если вспомнить, что каждая переменная (за исключением
ARGb INj и Vo) будет представлена магазином, то мы увидим, что операторы должны быть соответственно преобразованы.
Шаг 3 (преобразование простых переменных в магазинные). Пусть Мо— новый маркер. Каждую простую переменную v (за исключением ARGi, INj и Vo) будем рассматривать теперь как магазин. Для каждой такой переменной и перед началом схемы помещаются операторы v<~MQ; v <— ОМЕГА устанавливающие Q в качестве начального значения магазина. Каждый магазин всегда будет содержать некоторое значение и всегда первым его элементом будет Мо.
Предположим, что мы уже умеем записывать один (составной) оператор, полностью опустошающий магазин и, и другой, копирующий содержимое магазина w в пустой магазин v без изменения w. Обозначим их через
EMPTY (и) и COPY (w, и).
Покажем, как преобразовать операторы типов (1) — (5), (10) и (12); здесь TEMP — новая простая переменная:
начало T^-d; v^-T конец
(Напомним, что Т может содержать лишь значение Из D и это значение должно находиться в верхушке магазина и.)
начало EMPTY (v); ^<-М0; v*-T конец
начало EMPTY (v); COPY (w, и) конец
начало EMPTY (v); COPY (оу, v^
ТЕМР<-и; v«-TEMP;
если TEMP = '*' то v<-TEMP
иначе начало EMPTY (и); v«-Af0; TEMP «-'*';
v<-TEMP; v«-TEMP конец конец
(Напомним, что v + 1 = 0 + 1, когда и ^ N. Поэтому сначала мы изменяем у е О.)
начало EMPTY (у); ТЕМР<—т; и<~М0; у<~ТЕМР конец (10) начало TEMP<-v; v<-TEMP;
если TEMP = m то 3j иначе 32 конец
начало EMPTY (v); хх-М^ v^-'V конец
Шаг 4. Итак, не приведены к форме, допускаемой классом PpdSm, лишь операторы типов (6) и (7), работающие с массивом. Покажем, как представляются массивы.
Пусть ', '— новый маркер. Каждый массив Л в 3 моделируется в 3' некоторым магазином PD. Пусть массив А таков, как на рис. 7.2, а. Тогда соответствующий магазин PD показан на рис. 7.2,6. Таким образом, элементы массива А разделяются в PD маркером ', '.
' Отметим, что если к некоторому моменту выполнения наибольший по номеру элемент массива, которому было осуществлено присваивание, есть A [i], то содержимое соответствующего магазина PD в 3' будет в этот момент представлять в точности элементы А [0], ..., А [/].
Итак, для каждого массива А, используемого в З3 (результат шага 3), порождается магазин PD и в начало З3 вставляются операторы PD<-Af0; PD<-ОМЕГА;
Аналогично инициализируются три вспомогательных магазина PDT1, PDT2 и PDT3.
Оператор и<-Л[^] (и и w различны) транслируется в составной оператор, который
помещает в обратном порядке содержимое PD в магазин PDT1, не изменяя содержимого PD;
копирует магазин w в PDT2 (EMPTY(PDT2); COPY(^, PDT2));
опустошает магазин и (EMPTY (и));
удаляет из PDT1 «элементы массива» до Тех пор, пока В верхушке не окажется элемент, описываемый магазином PDT2 (напомним, что элементы массива разделяются в магазине запятыми ', ', a PDT2 содержит последовательность из нуля или более звездочек V, что указывает на число элементов массива, которые нужно удалить);
помещает элемент массива, содержащийся в верхушке PDT1, в и.
Если число звездочек в PDT2 больше, чем число запятых в PDT1, то это значит, что выполняется и<-Л[^], где Л [ку] не определено. В этом случае переменной и присваивается Q.
Аналогично оператор Л[ку]<-у(у и ку различны) транслируется в составной оператор, который
помещает в обратном порядке содержимое PD в магазин PDT1 и опустошает PD;
копирует ку в PDT2 без изменения ку;
копирует в обратном порядке из PDT1 в PD столько «элементов массива», сколько звездочек в PDT2;
удаляет из PDT1 элемент массива, находящийся в верхушке (это PD [ку]) ;
помещает остаток содержимого PDT1 в PD (конечно, в обратном порядке).
Если на шаге 3 окажется, что в PDT2 больше звездочек, чем запятых в PDT1, то в PD помещаются дополнительные элементы массива, содержащие Q.
Программистские детали оставляются читателю.
СПИСОК ЛИТЕРАТУРЫ
Hopcroft J., Ullman J., Formal languages and their relation to automata, Addison — Wesley, London, 1969.
Luckham D. C., Park D. M. R., Paterson M. S., On formalized computer programs, /. Comput. System Set., 4 (1970), 220—249. (Русский перевод: Лакхэм Д., Парк Д., Патерсон М., О формализованных машинных программах, «Кибернетический сборник», новая серия, вып. 12, изд-во «Мир», М., 1975.)
McCarthy J., Recursive functions of symbolic expressions and their computation by machine, Part 1, Comm. ACM, 3 (1960), 184—195.
Paterson M. S., Equivalence problems in a model of computation, Doctoral thesis, Cambridge Univ., Cambridge, England, 1967.
Paterson M. S., Hewitt С. E., Comparative schematology, Conf. Record of Project MAC Conference on Concurrent Systems and Parallel Computation, Assoc, for Computing Machinery, New York, 1970, p. 119—128. (Русский перевод: Патерсон M., Хьюитт К., Сравнительная схематология, «Кибернетический сборник», новая серия, вып. 13, изд-во «Мир», М., 1976.)
Strong Н. R., Translating recursion equations into flow charts, L Comput. System ScL, 5 (1971), 254—285.
Strong H. R., High level languages of maximum power, Proc. IEEE Conf, on Switching and Automata Theory, 1971, pp. 1—4.
Теория раопоеневания
Алгебраические методыв распознавании образов )
Юлиуш Куликовский
Академия наук, Варшава, ПНР
Оглавление
Предисловие 178
Вводные замечания179
Алгебра отношений188
Структурный подход краспознаваниюобразов197
Выделение интегральныхпризнаков206
Формальные языки дляобработки изображений214
Перечень основных обозначений224
Список литературы 225
ПРЕДИСЛОВИЕ
За последние годы применение электронной техники для обработки данных и реализации вычислительных процедур достигло довольно высокого уровня зрелости. Все более сложные виды исходных данных — цифровые, алфавитно-цифровые, тексты — могут автоматически вводиться в ЭВМ и обрабатываться на них. В последнее время растет внимание к обработке изображений. Информация, представленная в виде графиков или рисунков, играет важную роль в тех случаях, когда человек включается в информационную систему в качестве одного из ее элементов. Это объясняется тем обстоятельством, что зрительный тракт человека способен обрабатывать информацию в параллельном режиме и приспосабливаться к изменяющейся обстановке. Именно поэтому проблема непосредственного обмена визуальной информацией между человеком и вычислительной машиной становится весьма актуальной. Первым шагом к ее разрешению является распознавание образов с помощью специализированных автоматических устройств и электронных вычислительных машин. К изображениям, представляющим значительный прикладной интерес, относятся не только машинописные и рукописные тексты, но и чертежи, схемы электронных приборов, графики, отпечатки пальцев, метеорологические кар
9 Yuliusz Kulikowski, Algebraic Methods in Pattern Recognition, Academy of Sciences — Warsaw, International Centre for Mechanical Sciences, Courses and Lecture — No. 85, Course held at the Department'of Automation and Information, July 1971, Udine 1971, Springer — Verlag, Wien, New York.
ты, микрофотографии и т. д. При введении определенных допущений их можно разделить на более или менее формализованные классы, подлежащие автоматическому различению.
Нам кажется целесообразным рассматривать изображения в качестве выражений, записанных на некотором «плоскостном» языке согласно нескольким морфологическим и синтаксическим правилам. Если необходимо выбрать алгоритм распознавания, возникает задача определения набора грамматических правил, соответствующих заданным классам образов. Судя по всему, не существует ни универсального «плоскостного» языка, ни универсального алгоритма распознавания, ориентированного на машинную реализацию. Тем не менее можно считать, что при работе со сложными образами наиболее эффективным оказывается лингвистический подход. Другие методы, предусматривающие использование геометрических, статистических или функциональных моделей распознавания, могут быть использованы в качестве отдельных этапов при структурно-лингвистическом анализе сложного образа. Возникает необходимость в универсальном метаязыке, позволяющем описывать и теоретически исследовать «плоскостные» языки, которые используются при анализе конкретных случаев. Последнее, с нашей точки зрения, может быть достигнуто на основе общей теории отношений. При этом подходе любое простое или сложное изображение рассматривается как реализация обобщенного отношения, заданного на упорядоченном семействе множеств значений локальных входных сигналов. Эта концепция развивается в настоящем лекционном курсе. Мы покажем, что на множестве допустимых отношений можно определить некоторую булеву алгебру. Это означает, что известные методы минимизации булевых функций могут быть применены для минимизации длины выражения, являющегося формальным описанием образа.
Рассмотрение будет сопровождаться численными примерами. Их, однако, не следует рассматривать как рекомендации к решению практических задач.
Я с большим удовольствием исполню свой долг, выразив искреннюю признательность профессору Луиджи Собреро и профессору Анджело Марцолло за проявленную ими инициативу, которая привела к тому, что представляемый курс был включен в программу летней школы Международного центра технических наук, состоявшейся в июне 1971 года.
Удине, июнь 1971 Ю. Куликовский
ВВОДНЫЕ ЗАМЕЧАНИЯ
В данном курсе распознавание образов рассматривается как один из разделов кибернетики, посвященный изучению общих
принципов принятия решений в системах передачи информации со стационарными источниками при введении допущения о счетности множества решений. Обобщенная схема модели, которую мы будем рассматривать, приведена на рис. 1. В ее состав, как обычно, включены «источник информации», «кодирующее устройство», «канал передачи», включающий «источник шума», «декодирующее устройство» и «система принятия решений». Мы не будем, однако, вводить допущения, касающиеся физической природы сигналов и характеристик сообщений, аналогичные вышеупомянутым ограничениям — конечности множества сообщений и статистической природе сигналов. Проблема обнаружения сигнала в присутствии шума — частный случай задачи распознавания; при ее решении предполагается, что множество сооб-
Рис. 1.
щений конечно, и сигналы можно рассматривать как реализации некоторых случайных процессов. Чтение и интерпретация машинописного текста — пример более сложной задачи распознавания образов; в этом случае статистические свойства сигналов имеют меньшее значение, но сложность задачи определяется тем обстоятельством, что множества передаваемых сообщений и множества решений бесконечны. Идентификация говорящего человека основана на анализе звуков, из которых состоит его речь; эта задача также относится к категории задач распознавания образов и соответствует случаю, когда сигналы являются случайными, причем их статистические характеристики априори неизвестны. Алгоритм принятия решений в этом случае может быть построен на основе последовательного статистического анализа и непараметрических методов. Распознавание геометрической формы и определение размеров твердого тела на ощупь — задача распознавания образов, не имеющая, пока, формальной интерпретации. И т. д.
Распознавание образов начиная с 1958 года — времени появления первой работы Фрэнка Розенблатта, посвященной концепций «перцептрона», — претерпело специфическую эволюцию. Во-первых, возникли два различных подхода к распознаванию
образов. В первом делался упор на необходимость исследования моделей нейрофизиологических механизмов, лежащих в основе процессов распознавания, свойственных головному мозгу. Идеи Ф. Розенблатта сыграли роль первотолчка в развитии этого направления исследований, которые в определенном смысле связаны и с предложенными несколько раньше МакКаллохом и Питтсом концепциями искусственных нейронных сетей. Второй подход ориентирован в основном не на моделирование естественных зрительного и слухового трактов, а на изучение новых принципов распознавания образов. Этот подход связан с известными методами оптимального обнаружения сигналов и оценки параметров. С другой стороны, проблема распознавания образов является и более общей, и более трудной: она заключается в определении алгоритмов распознавания и классификации машинописных и рукописных символов, графических изображений, симптомов заболеваний, микрофотографий и т. д. Таким образом, статистические модели приема сигналов представляют собой всего лишь частный случай общей постановки задачи распознавания образов.
Введем следующие обозначения: S — сообщение, передаваемое источником, {S} — множество всех сообщений, которые могут быть переданы, Z — сигнал, который воспроизводится на выходе канала передачи, У — решение, вырабатываемое распознающим устройством. Пространство сигналов, которые могут поступать на вход распознающего устройства, будет обозначаться через {Z}, а через {У} — множество возможных решений. Правило, определяющее процедуру распознавания, будет формально задаваться с помощью функции
Y = h(Z\ (1.1) обеспечивающей однозначную проекцию множества входных сигналов {Z} на множество решений {У}. Предполагается, что множество решений {У} счетно; символ ху обозначает его кардинальное число.
Пусть 2 — счетное семейство подмножества {5г} a {£}, а х2 — кардинальное число семейства 2. Будем считать, что
х2 = ху • (1.2)
и что для семейства 2 и множества {У} существует некоторая взаимно однозначная проекция. Другими словами, если подмножество {S}i представляет «образ», то существует «решение» У^ е {У}, соответствующее этому образу. Под образами будем понимать не столько отдельные сообщения, сколько некоторые классы сообщений. Так, например, если сообщением служит графическое изображение заданного на плоскости треугольника, то образ можно определить как множество представлений тре-
угольников всех возможных форм и размеров. Однако графические представления, следующие по каналу передачи (независимо от физической природы канала), обычно искажаются под воздействием каких-то внешних процессов. Поэтому процесс передачи образов формально можно представить проекцией множества {S} в пространство {Z}, в общем случае являющейся неоднозначной и необратимой. Пусть ^Z^ — подмножество сигналов, поступающих на вход распознающего устройства и соответствующих образу {S}i. Будем называть задачу распознавания образов простой, если для всех i #= /
^Ш^ = 0, (1.3)
где символ 0 обозначает пустое множество; в противном случае задача будет называться сложной. Обычно сложные задачи распознавания возникают при наличии случайных возмущений или аддитивного шума.
Общая теоретическая модель распознавания, которую можно считать «классической», основывается на следующей геометрической интерпретации. Допустим, что пространство {Z} представляет собой многомерное евклидово пространство Е. Пусть это пространство разбито на непересекающиеся «отсеки» С^ ограниченные множеством гиперповерхностей заданной степени регулярности и образующие в целом конечное семейство [11]. В таком случае «функцию решения», заданную выражением (1.1), можно реализовать в виде
Y = Yi в том и только том случае,
если Z е Cit i = 1, 2, 3, ... . (1.4)
Поскольку геометрическая модель распознавания образов является довольно общей, на начальном этапе развития теории распознавания казалось, что ее основная задача заключается в изучении методов оптимального разбиения пространства на отсеки в соответствии со свойствами образов. Хотя это, возможно, и правильно, но довольно скоро выяснилось, что на практике задача оказалась много сложней. Ситуация была прекрасно обрисована одним из участников Симпозиума в Суха- ново (СССР, 1967 г.). Во время дискуссии он заметил: «Практически невозможно построить поверхность, отделяющую ... воду от губки, даже если теоретически существование такой поверхности совершенно очевидно». Популярные в теории распознавания методы, в частности основанные на использовании статистических решающих функций [6, 7], потенциальных функций [1, 3], геометрических соображений [7, 8, 11], и многие другие хорошо работают только в случае сравнительно простых образов. В 1962 году была обнародована новая концепция,
предложенная Р. Нарасимханом [24] и положившая начало исследованиям в области так называемых структурных методов распознавания образов. Использование структурных методов предусматривает многоуровневый подход к анализу изображения. В первую очередь с помощью «классических» методов выясняется наличие на изображении характерных локальных признаков. Следующий уровень анализа изображения предусматривает изучение отношений между локальными признаками. Иногда на конечном этапе анализа изображения рассматриваются отношения высшего порядка, связывающие отношения низших порядков. Применение структурного метода обеспечивало получение в результате анализа изображения его описания на формальном языке вместо привычного решения, поэтому структурный подход иногда называют лингвистическим. Локальные признаки можно рассматривать в качестве элементов «словаря» языка, а отношения более высокого порядка образуют своего рода «грамматику».
Например, в геометрической форме не так просто представить множество всех возможных двоичных векторов, соответствующих всем возможным треугольникам, спроецированным на дискретную сетчатку, как это показано ниже:
ееееехееее
• еееххеххе
• •••••• • х ее е е е е е е • • х
Изображение можно представить с помощью двоичного вектора в 100-мерном пространстве входных сигналов. Последнее изоморфно множеству вершин единичного куба, построенного в 100-мерном евклидовом пространстве. Тем не менее едва ли можно получить описание множества вершин, соответствующего изображениям всех возможных треугольников, без учета их формы, размеров и положения на сетчатке. Можно, однако, построить тесты для обнаружения следующих локальных признаков: «отрезок прямой линии», «угол, образованный двумя отрезками прямых», «концевая точка отрезка прямой» и т. п. Таким образом, понятие «треугольник» можно отождествить с одновременным наличием следующих признаков: «три отрезка прямых линий и три образованных ими угла». Этого, од-
нако, недостаточно: необходимо ввести ограничение на количе* ство свободных концевых точек отрезков прямых — отрезки прямых образуют треугольник в том и только том случае, когда число таких свободных точек равно нулю. Все это можно еще больше формализовать. Введем обозначения для следующих событий: А — на сетчатке воспроизведен отрезок прямой линии, В — два отрезка прямых образуют угол, С — отрезок прямой имеет свободную концевую точку. Для того чтобы разделить независимые события, каждому символу приписывается индекс. Формальное определение «треугольника» задается следующим предложением:
Д = Д А АА AABiA^ABaAn^ VC2VC3VC4VC5VC6).
Наличие на сетчатке изображения треугольника считается доказанным в том и только том случае, если D истинно в логическом смысле.
Имеется большая разница между решениями, принимаемыми на низших и высших уровнях. При работе на более высоком уровне задано не только множество возможных решений, но априори известны и отношения между решениями. Другими словами, решения, принимаемые на более высоких уровнях, не являются независимыми. Если, например, обнаружено три отрезка прямых, очевидно, что они не могут образовать больше двенадцати углов; если имеется только три угла, то очевидно, что число свободных концевых точек может быть равно либо трем, либо нулю, и т. д. Другими словами, существует множество отношений между решениями, принятие которых потенциально возможно на высших уровнях. Таким образом, процесс принятия решения больше напоминает логическое доказательство, чем просто обнаружение признаков, соответствующих высшим уровням анализа изображения.
В некоторых случаях упомянутые выше отношения можно задавать, пользуясь хорошо известным аппаратом теории граафов [32]. Рассмотрим следующий пример. Структурное описание анализируемых образов зависит от наличия двух локальных признаков А и В. Множество всех входных сигналов можно разделить на области, как это показано на рис. 2. Если процесс обнаружения первого_ признака может привести к получению либо ответа Д, либо А, а соответствующие результаты для второго признака могут быть Ви В_, то альтернативными областями решения будут АВ, АВ, Ав и АВ. Влияние решений, принятых
на первом уровне, на решения второго уровня можно проиллюстрировать с помощью графа, изображенного на рис. 3. Эту простую схему можно использовать для решения 14 различных задач распознавания:
1.
АВ, а не АВ или
АВ или АВ,
2.
АВ, а не АВ или
АВ или АВ,
3.
АВ, а не АВ или
АВ или АВ,
4.
АВ, а не_АВ или
АВ или АВ,
5.
АВ или АВ, а не
АВ и не АВ,
6.
АВ или АВ, а не
АВ и не АВ,
7.
АВ или АВ, а не
АВ и не АВ,
8.
АВ или АВ, а не
АВ и не АВ,
9.
АВ или АВ, а не
АВ и не АВ,
10.
АВ или АВ, а не
АВ и не АВ,
11.
АВ или АВ, а не
АВ или АВ,
12.
АВ или АВ, а не
АВ или АВ,
13.
АВ или АВ, а не
АВ или АВ,
14.
АВ, а не АВ и не АВ и не АВ.
(некоторые из этих формулировок явно можно упростить). Если решения первого уровня заданы, то направления стрелок на графе определяют систему решений второго уровня. Очевидно, существует сильная зависимость между логической структурой метода получения решений высшего уровня и внутренней структурой образов. Семейство альтернативных образов больше нельзя считать набором изолированных элементов — для их описания необходимо использовать более совершенные математические методы. С другой стороны, если мы хотим получить достаточно общую теорию, математические допущения не должны заходить слишком далеко. Следовательно, при рассмотрении общего случая задачи распознавания методы описания изображений, предусматривающие использование теории множеств, топологических и алгебраических понятий, оказываются предпочтительнее методов, основанных на использовании вероятностных, геометрических и функциональных принципов.
Следует ввести еще несколько допущений, относящихся к множеству входных сигналов {/}. Рассмотрим конечное множество точек на плоскости, образующих прямоугольную сетчатку; при этом любая упорядоченная пара (т, п) целых чисел me (1, М), пе (1, N) указывает адрес одного из рецепторов, образующих светочувствительную сетчатку. Всякое подмножество фоторецепторов предполагается линейно упорядоченным по адресам (в лексикографическом смысле), т. е. для любой пары адресов (mz, п^, ^ти, п"^ предполагается выполнение неравенства
(т', п^ < (т", п^
(читается: фоторецептор (mz, nz) предшествует фоторецептору (mzz, nzz)), если т' < тм или nV < mzz и nz < п".
Каждому фоторецептору ставится в соответствие конечное множество
{ZU„ = t7m.„ = {0, 1, .... fe-1}, fe = 2, 3, 4,(1.5)
возможных локальных значений входных сигналов в точке с координатами (т, п). Множество всех входных сигналов можно определить как прямое произведение множеств:
N М
{Z}=x xuu»,(1.6)
п=1 т=\
в таком случае всякий входной сигнал
2 = | 21, 1, 2if 2 • • •, ^М» N 1 ^ {^1О *7)
представляется ММ-мерным вектором, компоненты которого принимают значения из конечного множества мощности к. Это число представляет количество уровней освещенности, поскольку
наш анализ в основном будет относиться к распознаванию монохроматических графических изображений. В общем случае «области решения», соответствующие определенным образам, будут задаваться с помощью подмножеств
C^Z^VZY(1.8)
Входные сигналы 2Е С^ будем называть допустимыми реализациями 1-го образа. Необходимо разделить допустимые и истинную реализации образа {S}f, последняя в принципе может принадлежать любой области решения С^ причем / не обязательно совпадает с I. Распознавание считается правильным, если / = i; в остальных случаях оно ошибочно. Истинную реализацию 1-го образа будем обозначать через 2(f).
Наша задача состоит в удовлетворительном, если не оптимальном, выборе областей решения CV Для ее решения будут использованы алгебраические методы, по крайней мере на высших уровнях принятия решений. Основным понятием нашей теории является обобщенное отношение.
Если U' и U" — некоторые непустые множества и U' X U"— прямое произведение этих множеств, то любое его подмножество .
RcU'XU"(1.9)
называется отношением, связывающим элементы и е U' и и е е U". Так, например, если
^' = {0, П,
и" = ^ П, то
^х^ = ((0,0), (О, 1), (1,0), (1, 1)}, и
7?! = {(0,0), (1, 1)},
^2 = {(0, 1), (1,0)}
представляют примеры отношений (7?i называется отношением тождества, a Rs— отрицанием). Отметим, что мы не вводили каких-либо допущений о характере множеств Uf и U". Это означает, что отношения можно определять на множествах точек, на семействах множеств, на классах функций, а также и на множествах отношений. Поэтому можно построить специальную многоуровневую «структуру» отношений, что представляет интерес с точки зрения описания сложных образов. Нам, однако, очевидно, недостаточно прямого произведения в том виде, как оно было введено выражением (1.9). Поэтому мы предлагаем более общее определение отношения.
Пусть (1/1, [/2, ..., Un')—линейно упорядоченное семейство множеств и
N
и=хип(МО)
М=1
— прямое произведение множеств, взятых в соответствующем порядке. Всякое подмножество
RcU(1.11)
будем называть (обобщенным) отношением, связывающим элементы множеств [/ь U2l ..., и множества Un. В таком случае область решения представляется обобщенным отношением между сигналами, одновременно присутствующими на фотографиях сетчатки. К нашей концепции, однако, в первую очередь следует отнестись как к формальной. Так, например, если 1Л, U^ ..., U6 — множества всех натуральных чисел, некоторое отношение R можно определить как множество всех последовательностей целых чисел (гц, u2t ..., иб), таких, что
есть целое число.
Отношение R будем называть пустым, если R — пустое подмножество множества U, и тривиальным, если оно совпадает с множеством U. Пустое отношение будем обозначать символом 6. Реализацией отношения R назовем всякое упорядоченное множество значений (их, и2) ..., uN\ принадлежащих Ux, U..., Un соответственно, такое, что
и = ^их, ^2, •••, un)^R.(1-12)
АЛГЕБРА ОТНОШЕНИЙ
Рассмотрим конечное семейство множеств Ux, U2) ..., UN, и пусть /?i и Rs— произвольные отношения, заданные на прямом произведении множеств U, которое определено выражением (1.10). Поскольку отношения определены как некоторые подмножества множества U, их можно комбинировать, пользуясь обычными алгебраическими операциями над множествами. В результате можно дать следующие определения:
дизъюнкция отношений
/? = T?iU/?2(2.1)
— отношение, выполняющееся на всех реализациях, для которых справедливо хотя бы одно из отношений 7?|, Rs;
конъюнкция отношений
R-R^R»(2.2)
— отношение, выполняющееся на всех реализациях, для которых справедливы оба отношения /?1 и /?2;
асимметрическая разность отношений
R = Rx-^Rs(2.3)
— отношение, выполняющееся на всех реализациях, для которых справедливо отношение /?ь и одновременно не выполняющееся на всех реализациях, для которых справедливо отношение Rs; и т. д.
Приведем пример, который послужит иллюстрацией введенных понятий. Пусть 1/1, Us, ..., U9 представляют множество состояний участка сетчатки, имеющего следующую форму:
<их и, и.
и, и. и.
и^ и. и9)
Введем ряд отношений:
«горизонтальная линия проходит через верхнюю половину участка» —
Ra = {{111 000 000), (000 111 000)},
«горизонтальная линия проходит через нижнюю половину участка» —
^b = «000 111 000), (000 000 111)};
используя введенные отношения, можно определить новые:
«горизонтальная линия проходит через участок»—
^с = ^аи/?ь = {<111 ООО 000), (000 111 000), (000 000 111)},
«горизонтальная линия проходит через центр участка» —
/?а = Яа(Ш = {<000 111 000)},
«горизонтальная линия проходит по верхней границе участка» —
#е = #а -1- #ь = {{111 000 000)},
и т. д. В принципе на прямом произведении N множеств, каждое из которых включает к элементов, можно определить 2^ различных отношений. Однако для того, чтобы обеспечить эффективное распознавание анализируемых образов, совершенно необязательно использовать все возможные отношения.
Отношение Ra называется подотношением отношения R^ если
Z?aUZ?b = /?b И Яа(Ш = Яа.(2.4)
Отношения Ra и /?ь называются взаимно не пересекающимися, если
/?а(Ш = 6.(2.5)
До сих пор речь шла об алгебраических операциях над отношениями, заданными на одном и том же семействе множеств. Целесообразно, очевидно, предусмотреть нечто подобное для случая, когда отношения заданы на различных семействах, например на разных участках сетчатки. Рассмотрим семейство множеств {[/ь [/2, ..., UnV Впредь при рассмотрении подсемейства множеств {lAp <Vvp} будем считать, что линейный порядок, введенный в полном семействе множеств, сохраняется в подсемействе. Рассмотрим следующие два подсемейства множеств: \U^p ..., [/Vp} и ^U^, . .., U^y Оба подсемейства являются линейно упорядоченными в том смысле, что
V1 < v2 < ... < vp < N и
Hl < Н2 < . • • <V-q<N,
если множества Ui, U2) .. ., UN упорядочены в соответствии со своими индексами. Аналогичным образом будет предполагаться сохранение порядка при рассмотрении дизъюнкции, конъюнкции и разности подсемейств. Обозначим рассматриваемые линейно упорядоченные подсемейства символами ([/') и ^U") соответственно, а обозначения /?т и /?п используем для неких от* ношений, заданных на подсемействах (I/1) и (17п).
Пусть (t/nl) с: (I/1) — подсемейство множеств, такое, что если и1 ^ R1 — последовательность элементов, на которых выполняется отношение 7?1, то иш с: и1 является подпоследовательностью элементов последовательности и1, принадлежащих множествам, которые входят в подсемейство ([/ш). Множество всех подпоследовательностей иш, удовлетворяющих такому условию, обозначим через /?ш. Очевидно, что /?ш можно рассматривать как новое отношение, заданное на подсемействе ([/ш) и зависящее в определенном смысле от отношения 2?1. Отношение /?ш будем называть проекцией отношения /?т в подсемейство (С/ш):
(2.6)
Рассмотрим пример, иллюстрирующий введенные понятия. Если
7?С = {(1Н ООО 000), (000 111 000), (000 000 111)}
— отношение, заданное на семействе двоичных множеств (^1, U2) . • •, и^, И (U2, U^ U^ U6, Us, U9) — подсемейство
множеств этого семейства, то отношение
/? = «11 00 00), (00 11 00), (00 11 00)}
можно считать проекцией отношения Rc («горизонтальная линия проходит через участок размера 3 X 3») в подучасток сетчатки размера 3X2, имеющий вид
.<^2 Щ
. U. и6
.• и8 и9)
Ясно, что отношение R представляет событие «горизонтальная линия проходит через подучасток».
Рассмотрим подсемейство (I/1) семейства множеств ([/). Пусть Z?1 и R — некоторые отношения, заданные на подсемействе ((Л) и семействе (17) соответственно. Рассмотрим все реализации отношения R, такие, что их проекции на семейство (17) удовлетворяют отношению Z?1. Множество реализаций /?п, удовлетворяющих этому условию, есть подотношение
Япс=Я,(2.7)
а проекция подотношения 7?п в подсемейство (I71) есть подотношение
^1) = ^-(2.8)
Подотношение 7?п назовем условным отношением R для заданного отношения Z?1 и используем для него следующее обозначение:
/?п = /?№).(2.9)
Рассмотрим пример. Заданы те же, что и в предыдущем примере, семейства множеств:
([/) = ([/!, и2, и3, щ, и„ и,, иъ и„ и9\
(U'WU2, U3) U5l U6l
Определены следующие отношения:
«горизонтальная линия проходит через участок» —
/? = {(! 11 000 000), (000 111 000), (000 000 111)},
«линия проходит через элемент сетчатки № 6» —
Я1 = {(01 01 01), (10 01 00), (00 И 00), (00 01 10)}.
Условное отношение «линия проходит через весь участок при условии, что она проходит через элемент сетчатки № 6» имеет следующий вид:
/?п =/? (/?i) = «Q00 111 000)}.
Понятие условного отношения легко поддается обобщению. Рассмотрим два семейства множеств (I/1) и (1/п), их конъюнкцию и дизъюнкцию:
(^H^WH).(2.10)
(C/iv) = ({/I)U(2.11)
будем считать, что семейство множеств ([/ш) непустое. Пусть У?1 и /?п— отношения, заданные на семействах множеств (I/1) и ((/п) соответственно. Рассмотрим проекции Ra» ... и Rw> •.. и их конъюнкцию
. RV = R<m ... П^<"> ... .(2.12)
Отношение Rv содержит все такие подпоследовательности элементов, принадлежащих множествам (1/ш), что любая из этих подпоследовательностей представляет собой общую часть двух последовательностей, соответственно удовлетворяющих отношениям У?1 и 7?п. Объединение последних двух последовательностей приводит к получению последовательности, принадлежащей семейству множеств (t/IV). Обозначим множество всех объединенных последовательностей через R; его можно рассматривать как новое отношение, заданное на семействе множеств (<7IV) и связанное определенным образом с отношениями У?1 и /?п. Это отношение мы будем называть сверткой отношений:4
=‘(2.13)
Теперь стало очевидно, что условное отношение ^(Т?11) представляет собой частный случай свертки 7?1 * /?п, соответствующий условию (<7П) cz (I/1). Понятие свертки иллюстрируется следующим примером.
Рассмотрим участок сетчатки, имеющий следующую форму:
<ut и2 и,и4 и5 и6 и7и8 и9 ихо ип
U12 U1з U]4)
Зададим два семейства множеств:
<£/!> = «7,, U2, U3, U4, U5, U6, U8, U9, Uvu),
Ф^ = <и5) и6, иъ и9, ui0, иИ, и12, и13,UM),
и определим их конъюнкцию:
([/ш^^р^п)^, и6, и9, и^.
На семействах множеств (I/1) и (17п) зададим отношения Z?1 и /?п «линия проходит через центр участка»:
/?1 = «ООО 111 000), (010 010 010), (100 010 001), (001 010 100)},
#ii = {(000 111 000), (010 010 010), (100 010 001), (001 010 100)}.
Следует иметь в виду, что отношения /?т и R11 определены на различных участках сетчатки и поэтому не идентичны, хотя соответствующие формулы совпадают. Свертка этих отношений имеет вид
я = fli * fill = {(100 0100 0010 001)}
и представляет прямую линию, проходящую через элементы сетчатки с номерами 1, 5, 10 и 14.
Очевидно также, что при (С/1) = (<7П) справедливо равенство
/?1 * /?П = /^1 Q /^п,(2.14)
и, следовательно, свертку отношений можно рассматривать как обобщение конъюнкции отношений. Возникает вопрос: можно ли определить на отношениях новую операцию? Пусть У?1 и R11 — некоторые отношения, заданные на семействах множеств (I/1) и (<7П) соответственно. Рассмотрим следующие подсемейства множеств:
(^ш) = (^1)^(^п)>(2.15)
(2J6)
Обозначим через /?ш и Riy прямые произведения множеств, соответственно принадлежащих подсемействам (1/ш) и (t/IV). Рассмотрим множество всех последовательностей элементов, принадлежащих семейству множеств (СЛ) U (^п), которые построены одним из следующих способов:
1° реализация отношения R1 объединяется с реализацией отношения /?IV;
2° реализация отношения /?ш объединяется с реализацией отношения /?п.
Дизъюнкцию полученных такими способами множеств последовательностей можно рассматривать как новое отношение R, определенное на (I/1) U (Un\ Это отношение будем называть прямым произведением отношений /?т и R11:
R=R'XRn-(2.17)
Рассмотрим пример. Задано семейство множеств двоичных элементов и отношения /?т и R11, аналогичные рассматривав-
шимся в примере, посвященном раскрытию понятия свертки. Разности подсемейств множеств имеют следующий вид:
ф™^<и^<и«) = (Ръ и2, и3, и„ и%\(и^-ф^-Ци^-^, ихо, иХ2, ихз, и^.
Очевидно, что число возможных элементов прямого произведения множеств, принадлежащих разности ([/ш>, равно 25; столько же элементов содержит прямое произведение множеств, принадлежащих разности ^и1УУ Объединяя все возможные реализации отношения 7?1 с реализациями отношения /?IV, а также реализации отношения /?ш с реализациями отношения /?п, получаем:
7?1 X/?и = «ООО 111. 000. ...>,{010 010.010. . ..>,
(100 010.001. ...>,(001 010. 100. . ..>,
(... .000 .111 000>, (... .010 .010 010>»
(... .100 .010 001>, (... .001 .010 100»
(в это выражение вместо точек могут быть подставлены все возможные наборы из нулей и единиц). Итак, прямое произведение отношений R1 X включает в данном случае 8-25 = = 256 реализаций, а общее число различных двоичных наборов, которые можно получить на дизъюнкции множеств (I/1) U U <иг1\ равно 214 = 16 384.
Таким образом, свертка отношений представляет собой максимальное множество реализаций, одновременно удовлетворяющих обоим отношениям 7?1 и R11, а их прямое произведение — минимальное множество реализаций, соответствующих хотя бы одному элементу реализаций 7?1 и/или /?п.
Очевидно, что в общем случае
^^п^^х/?11,(2.18)
и прямое произведение отношений тождественно дизъюнкции отношений, если (I/1) = (С7П>, за исключением случая, когда один из элементов отношения R1 или /?п является пустым отношением; в последнем случае прямое произведение не определено. Однако для того, чтобы довести до конца аналогию между дизъюнкцией и прямым произведением отношений, можно принять, что
^Х6 = 6Х^-^.(2.19)
С другой стороны, свертка отношений является пустой, если условия, соответствующие отношениям У?1 и /?п, не «пересекаются». Это означает, что некоторые из отношений пусты и/или ни одна пара их реализаций не имеет общих элементов, при-
надлежащих непустой конъюнкции семейств множеств, на которых отношения заданы. В этом случае отношения называются взаимоисключающими.
Как свертка, так и прямое произведение отношений коммутативны, что является следствием сохранения линейного порядка на семействах множеств. Обозначим через Q(c/> тривиальное отношение, заданное на некотором линейно упорядоченном семействе множеств QU\ Всякое отношение R, заданное на подсемействе (U'\ cz ^U\ может быть легко распространено на все семейство (и), если вместо отношения R воспользоваться отношением Q^n^ XR, где (^7П) = ((/) — (IV1)- Следовательно, отношение R, дополнительное к R, заданному на семействе ^U1^ можно определить как
R = Q(u^ — R> (2.20) это выражение, однако, эквивалентно отношению
Q(c/ii) X (Q^1) ^) = Q<t/> (^(су11) X R) = Q<u> ^* (2.21)
Отметим, наконец, что, обозначив символом A (R) высказывание «существует реализация, на которой справедливо отношение 7?п», по определению получим следующее:
Л (Я1 X Я11) ^> Л (7?1) V Л (Я”), (2.22)
Л (7?! * ^ША ЦП Л A (R^. (2.23)
Итак, вполне очевидно, что свертка и прямое произведение отношений обладают формальными свойствами, аналогичными свойствам логической конъюнкции и строгой дизъюнкции. В частности, для отношений справедливы законы де Моргана:
^Х^^Т?1*^^(2.24)
(2.25)
Можно также доказать ассоциативность обеих операций:
Я1 X (#п X Яш) = № X 7?") X Яш = 7^ X Яп X Яш, (2.26а) 7?! * (7?п * ^ш) = (^i * ди) * ^ш = ^i * ^п * ^ш,(2.266)
а также дистрибутивность каждой операции относительно другой:
fit X (7?п * 7?"1) = (7?i X /?п) * № X /?ш),(2.27а)
7?1 * (7?п X 7?ш) = (7?1 * 7?”) X № * Я111).(2.276)
Другими словами, упорядоченный набор из шести элементов (([/), Q(Lt>, 6, *, Х> ) образует булеву алгебру, в которой пу-
стое отношение является нулевым элементом и тривиальное отношение Q<c7> — единичным.
Последнее утверждение может оказаться очень важным с практической точки зрения. Оно означает, что общепринятые методы минимизации булевых функций и конструктивные методы синтеза логических систем могут быть использованы для построения алгоритмов интерпретации изображения и распознавания образов.
Хотя основные из введенных нами понятий иллюстрировались на двоичных множествах, собственно алгебра отношений не содержит каких-либо ограничений, связанных с природой множеств. Рассмотрим, например, линейно упорядоченное множество случайных переменных (Хь Х^ ..., XN\ Зададим следующее множество отношений R2, Rs, ..., Rn- отношение RH содержит все последовательности случайных переменных ^Xip Xt2, ..., Xt^, являющихся в данном множестве статистически зависимыми. Возникает вопрос о характере отношений (высшего порядка) между отношениями Rn. Прежде всего можно определить отношение «пересечения» Р как последовательность отношений (Rnx, Rn2,..., Rn^, такую, что существует хотя бы одна случайная переменная Хь удовлетворяющая условиям всех входящих в эту последовательность отношений. Это не означает, однако, наличия статистической зависимости между остальными аргументами отношений Rnp Rn^.ee ..., Rnk, поскольку можно легко доказать, что статистическая зависимость случайных переменных не является транзитивным свойством. Тем не менее если случайные переменные Xtv Xi2, ..., Xin попарно статистически зависимы, т. е. любая случайная переменная находится в состоянии статистической зависимости с любой из всех остальных случайных переменных, то все такие случайные переменные в общем статистически зависимы. Следовательно, над отношениями Rn может быть задано отношение, отличное от P-отношения: это Т-отношение можно определить как отношение, включающее все такие последовательности отношений (Rnx) Rn2, ..., Rn^, что отношение Rnm выполняется при условии выполнения всех предшествующих отношений Rnp Rn2, ..., Rnm_v В таком случае возникает вопрос о характере отношения «высшего порядка», связывающего отношения Р и Т. Эти отношения, в частности, пересекаются в обсуждавшемся смысле. Изучение отношений подобного типа между случайными переменными может оказаться интересным с точки зрения анализа структур информационных систем. Последнее, однако, выходит за пределы непосредственных задач распознавания образов.
СТРУКТУРНЫЙ ПОДХОД К РАСПОЗНАВАНИЮ ОБРАЗОВ
Автоматическая классификация сложных изображений предусматривает несколько уровней обработки. Важнейшими из них являются следующие:
выравнивание, центрирование растра, изменение масштаба, коррекция яркости и т. д.;
фильтрация шума, устранение дефектов, утоньшение линий, выделение контуров и т. д.;
выделение локальных признаков;
выделение и интерпретация признаков высших порядков.
Эти уровни обработки изображения не следует считать строго изолированными друг от друга. Порой решения, принимаемые на высшем уровне, требуют возвращения назад, к решениям более низкого уровня.
Алгоритмы принятия решений, относящиеся к низшим уровням вплоть до выделения локальных признаков, могут строиться на основе «классических» методов распознавания. На этой стадии обработки изображения могут использоваться и детерминированные, и статистические, и обучающиеся алгоритмы. Трудности, однако, возникают обычно в связи с проблемой выбора системы основных признаков, образующей «словарь» языка описания образов. Обычно эта проблема разрешается эвристически, однако некоторые авторы предпринимали попытки решать ее с помощью более совершенных методов [6, 13]. Процедура оптимизации вполне осуществима, если определен критерий оптимальности. Последнее, однако, само по себе является трудной задачей.
Задачу распознавания образов можно рассматривать как задачу уменьшения информационной избыточности. Так, например, если сетчатка состоит из N элементов, которые могут находиться в одном из двух возможных состояний («черное — белое»), и множество конечных решений содержит допустимые элементы (образы, подлежащие распознаванию), то коэффициент уменьшения избыточности определяется следующим образом:
в большинстве практических случаев его величина больше единицы. Процесс снижения информационной избыточности распределен между уровнями обработки изображения. Значительное уменьшение избыточности на одном уровне приводит в то же время к возникновению серьезных практических затруднений. Количество необходимых уровней обработки изображения d можно определить с помощью неравенства
d log у > log с, (3.2)
где у — максимальное значение коэффициента уменьшения информационной избыточности, допустимое для одного уровня.
Количество классов изображений х\ которые необходимо разделить на первом уровне обработки изображения, задается формулой
log2V = ^-,(3.3)
при этом проблема выбора системы основных признаков сводится к задаче оптимального разделения исходного набора изображений на х' классов на первом уровне распознавания. Не следует, однако, смешивать определенное таким способом число классов х’ с количеством локальных признаков, которые необходимо выделить, поскольку местонахождение (адрес) локального признака позволяет получить некоторое количество дополнительной информации о распознаваемом образе. Так, например, если локальные признаки отыскиваются на подучастке изображения размера № X №, где М' < М, N' < N, М и N — размеры прямоугольной сетчатки, и если число шагов при последовательном перемещении «окна» по сетчатке равно Ь, то результаты анализа изображения на первом уровне можно закодировать с помощью b символов алфавита, число элементов которого равно общему числу допустимых локальных решений. Другими словами, требуемое число локальных признаков равно (х'У,ь. Теперь очевидно, что в принципе один и тот же результат можно получить с помощью большого набора достаточно сложных локальных признаков, заданных на подучастках большого размера, и с помощью весьма ограниченного набора простых локальных признаков, заданных на небольших подучастках.'
Разница между детерминированными и статистическими процедурами выделения локальных признаков изображения очень относительна: детерминированные процедуры можно получить как асимптотический вариант статистических, соответствующий случаю малого разброса дисперсий. В частности, основой распространенного метода выделения признаков, предусматривающего оценку расстояния между локальным сигналом и эталонами, является статистический метод максимального правдоподобия. В задачах распознавания обычно используются следующие метрики. Пусть
^ = «г;<)(3.4)
— эталонный сигнал, представляющий подлежащий обнаружению локальный признак, и
—локальная подреализация реального входного сигнала, поступившая на обработку. Чаще всего используется расстояние, предложенное Р. У. Хэммингом:
р (z*, z) = Е (х* — xv). (3.6)
В случае когда компоненты вектора являются многоградационными, предпочтительнее пользоваться евклидовым расстоянием:
D
yvТА
(3-7)
в случае двоичных векторов евклидово и хэммингово расстояния эквивалентны.
Еще одна метрика была предложена М. А. Айзерманом, Э. М. Браверманом и Л. И. Розоноэром [1, 3]. Потенциальная функция определяется как
(8.8)
V = 1
где {q)v(^)} — множество скалярных функций, заданных на множестве векторных аргументов, a Vv - некоторые действительные коэффициенты. При этом расстояние имеет следующий вид:
р (г*, г) = \К (z*, г’) + К (z, 2) - ЧК (г*, г)]7’.(3.9)
Это расстояние совпадает с евклидовым, если допустить, что №, z)=(z\ z^^z^.(3.10)
V=1
Если 2* и г — двоичные векторы и
m(x)=X|zvl(3.11)
V = 1
— вес вектора (число единичных компонент), то можно ввести расстояние
g^Z ’ Z^ = да (z’)+L(z)-(z*. z) '(3112)
и мера близости, предложенная Дж. Роджерсом и Т. Танимото [31], примет вид
р (2*, 2) = — log2 g (г*, г).(8.13)
Основной недостаток процедур выделения признаков, основанных на использовании расстояния, заключается в том, что получаемые в результате их применения решения неинва* риантны относительно так называемых оптических преобразо«
ваний изображения. Оптическое преобразование изображения, заданного вектором с действительными компонентами, определяется формулой'
Г(г) = (аг1 + Ь, . .., azn + b\(3.14)
где а и b — некоторые положительные коэффициенты. Понятие инвариантности процедуры обнаружения относительно оптических преобразований можно раскрыть на следующем примере. Два изображения, представляющие один и тот же образ (букву «Л»), должны быть отнесены к одному классу, несмотря на то что для их задания использованы векторы различной длины:
00000111
010001 3111
О1О0013111
01о0013111
0 111013 3 3 1
0000011111.
В данном случае а = 2, b = 1.
Эту трудность можно преодолеть, если вместо расстояния пользоваться мерой сходства '
N
2 (2v2v) (2v2v)
г(г\ г) =-1 n,(3.15)
V V=1ц-1
где
N
(злб)
V=I
(2* определяется аналогичным образом).
Значительное количество примеров мер сходства приведено в статье Г. Н. Житкова, помещенной в сборнике [35].
Если для выделения локальных признаков используются метод, основанный на понятии расстояния, или корреляционный метод, то возникает задача оптимального выбора множества эталонных сигналов 2*; ее решению посвящена масса работ [2, 4, 5, 7, 8, 10, 12], которые мы не будем здесь подробно обсуждать, поскольку непосредственно с алгебраическими методами они не связаны.
Применение алгоритма обнаружения, предусматривающего использование коэффициента корреляции, начинает вызывать затруднения, если низшие уровни обработки изображения осно-
ваны на использовании логических процедур. Следовательно, представляет интерес задача аппроксимации корреляционного алгоритма множеством логических операций.
Рассмотрим локальный образ типа «концевая точка отрезка прямой». Это высказывание можно представить образами, имеющими, например, следующие реализации:
10 0 010 0 00 10 00 0 100 0 0 010 0 010 0 00 10 00 0 100 0 0 00 0 0 00 0 0 10 0 0 10 0 0 00 0 0 00 0 0 00 0 0 10 0 0 10 0 0 00 0 0 0100 010100 0110 00 00 00 0100 010100 0110 00 00 00 00 0 0 о 0 0 0 о 10 0 10 0 0 о 0 0 0 о0 0 0 о 0 0 0 о 10 0 10 0 0 о 0 0 0 о0 0 0 0 0 0 0 0 110 00 10 0 0 0 0 00 0 0 0 0 0 0 0 110 00 10 0 0 0 0 00 0 0 0 00 0 10 00 0 10 00 0 0 1 00 0 10 00 0 0 0 00 0 10 00 0 10 00 0 0 1 00 0 10 0
10 0 0
10 0 0
0 10 0
0 0 10
0 0 0 0
10 0 0
10 0 0
0 10 0
0 0 10
0 0 0 0
0 0 0 0
0 0 0 1
0 0 0 1
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 1
0 0 0 1
0 0 0 0
0 0 0 0
100 0
1010
0 011
0 00 0
0 00 0
100 0
1010
0 011
0 00 0
0 00 0
0 0 0 о 0 0 0 о 10 0 1
0 0 0 о 0 0 0 о
0 0 0 о 0 0 0 о 10 0 1
0 0 0 о 0 0 0 о
0 0 0 0 0 0 0 0 110 0
0 10 0 0 0 0 0
0 0 0 0 0 0 0 0 110 0
0 10 0 0 0 0 0
0 0 0 0 0
0 0 10 0
0 0 10 0
0 0 0 1 0
0 0 10 0
0 0 0 0 0
0 0 10 0
0 0 10 0
0 0 0 1 0
0 0 10 0
и т. д. Тест для локального образа подобного типа можно задать на языке отношений как отношение, которое выполняется на 9-мерных векторах z(m, п) следующего вида:
^m—1, п~ 1^m—l.n ^щ—1,п+1
^т,n~1^т-Н, n~1^т,n~1^т-Н, n~1^т, п^т+1, п^т, п^т+1, п^т, п+1^т+1, п+1^т, п+1^т+1, п+1
^т,n~1
^т-Н, n~1
^т,n~1
^т-Н, n~1
^т, п
^т+1, п
^т, п
^т+1, п
^т, п+1
^т+1, п+1
^т, п+1
^т+1, п+1
Отношение Ri(m, п), соответствующее высказыванию «концевая точка отрезка прямой совпадает с точкой (т, п)», задается следующей формулой:
4
/?, (m, n) = (J RW (т, n) * R\*j (т, п),(3.17)
где
/?н (т, п) =
'(01. (10.
(1 1
.(10
= <
0 1).0 1).
0 1)
. 1 1) .
>,(3.18)
(°)
R\'j (т, п) = •
0 1
0 >
(3.19)
.0 0
0)J
(точка «.» означает, что для данной компоненты отношение не определено). Отношения Rn\ Rrh ^in Я12, Rn, ^i^ можно получить из отношений /?iV и R\s с помощью поворота квадратного участка против часовой стрелки на 90, 180 и 270° соответственно.
7 Зак. 420
Применяя тест, построенный для отношения Ri(m, п), к изображению, рассмотренному в приведенном выше примере, получаем
.0 0 0..0 0 0..010..0 0 0..0 0 0..010..0 0 0..010..0 0 0..0 0 0..010..0 0 0..0 0 0..010..0 0 0,.0 0 0..010..0 0 0,.0 0 0..0 0 0..010..0 0 0..0 0 0..010..010.000.000.010.000.000
.0 0 0.
.0 0 0.
.010.
.0 0 0.
.0 0 0.
.010.
.0 0 0.
.010.
.0 0 0.
.0 0 0.
.010.
.0 0 0.
.0 0 0.
.010.
.0 0 0,
.0 0 0.
.010.
.0 0 0,
.0 0 0.
.0 0 0.
.010.
.0 0 0.
.0 0 0.
.010.
.010
.000
.000
.010
.000
.000
(единицы соответствуют элементам, на которых отношения ^i(m, п) выполняются).
Однако обычно изображение поступает на обработку далеко не в таком четком виде. Линии «размыты» подобно тому, как это представлено на следующих примерах:
01110000000000000000
00111100000000000000
00011100000001111100
0 0 0 11 11 0 0 01111111000
00001110001110011100
0 0 0 0 1 11 1 0 01100001110
00000110001100001100
00000000001000000000
00000000001000000000
оооооооооооооооооооо
Кроме того, до перехода к поиску концевой точки необходимо выделить «скелет» изображения.
Зададим для каждой компоненты хт] п ее «окрестность» с помощью вектора
(т, fl) = (zm-^Zm:n-h ^т+1,п-1> zm + l,n’ zm+l, n+b
^т,п+1> ^m + l.n—ь ^т—!,«)•(3.20)
Введем вес w(z) вектора z.
Процедура выделения «скелета» размытого изображения основана на преобразовании
^т, п •^т, п •о, 1о, 1в остальных случаяхв остальных случаяхесли zm,n = 0 или zm,n = \ и 2<ш(^т_„Хе,
^т, п •
^т, п •
о, 1
о, 1
в остальных случаях
в остальных случаях
(3.21)
(знак := следует читать «принимает значение»). Применяя к рассматриваемым примерам формулу (3.21), получаем
001100000011100000011000000111000000110000000000000000000 0 0 0 0 0 0 0001100000011100000011000000111000000110000000000000000000 0 0 0 0 0 0 000000000 00000000 1111110 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 00000000 00000000 0000000000000000 00000000 1111110 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 00000000 00000000 00000000
00110000
00111000
00011000
00011100
00001100
00000000
00000000
0 0 0 0 0 0 0 0
00110000
00111000
00011000
00011100
00001100
00000000
00000000
0 0 0 0 0 0 0 0
00000000 00000000 1111110 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 00000000 00000000 00000000
00000000 00000000 1111110 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 00000000 00000000 00000000
В случае необходимости эту сколько раз. Первое повторноеВ случае необходимости эту сколько раз. Первое повторноепроцедуру можно повторить неприменение дает соответственнопроцедуру можно повторить неприменение дает соответственно
В случае необходимости эту сколько раз. Первое повторное
В случае необходимости эту сколько раз. Первое повторное
процедуру можно повторить неприменение дает соответственно
процедуру можно повторить неприменение дает соответственно
001000 .001100.000100.000000.000000.000000.000000.000000 .001000 .001100.000100.000000.000000.000000.000000.000000 .0 0 0 0 0 0 111110 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 111110 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001000 .
001100.
000100.
000000.
000000.
000000.
000000.
000000 .
001000 .
001100.
000100.
000000.
000000.
000000.
000000.
000000 .
0 0 0 0 0 0 111110 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 111110 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
размытое изображение0001100000000111000000001101000011100000001100001000101000000001 100000 00000000100 0 1 О О о О О О о ооооооооооразмытое изображение0001100000000111000000001101000011100000001100001000101000000001 100000 00000000100 0 1 О О о О О О о оооооооооо
размытое изображение
0001100000
0001110000
0000110100
0011100000
0011000010
0010100000
0001 100000 0000000010
0 0 1 О О о О О О о оооооооооо
размытое изображение
0001100000
0001110000
0000110100
0011100000
0011000010
0010100000
0001 100000 0000000010
0 0 1 О О о О О О о оооооооооо
Теперь оба изображения подготовлены к применению алго ритма, проверяющего выполнение «четких» локальных отноше ний.
Положение усложняется, если изображение искажено шу
мом, как, например, следующее: исходное изображение
0 0 0 1 1 1 0 0 0 0 0001.1 10000 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0
0 0 1110 0 0 0 0
0 0 11 1 0 0 0 0 0 0001100000 0000000000 оооооооооо оооооооооо
у*
С помощью использованного в предыдущем случае алгоритма, основанного на принципе «очищения», получаем следующее изображение, на котором оттеняются и искажения, и локальные информативные признаки:
.0 0 0 1 0 0 0 0, .0 0 0 1 0 0 1 0. .00000000. .0 0 1 0 0 0 0 1. .0 0 0 1 0 0 0 0. .00000000. .00000000. .0 1 0 0 0 0 0 0.
Положение можно улучшить, использовав вместо алгоритма, предусматривающего локальный анализ изображения, алгоритм, обеспечивающий анализ изображения в целом. Продолжим рассмотрение предыдущего примера.
Выделим на сетчатке подучастки размера 3 X 3 и введем следующие подвекторы:
Z ^tTl, П) (2^—1, n—i, ^т—Х, tu ^-m—X.n + b ^т,п—Ь ^m, n> ^m,n+X>
^m + I.n — I’ ^m+l.n, ^m+X, n+1)-(3.22)
Положив m = 2, 4, 6, 8, ... и n = 2, 4, 6, 8, ..., вычисляем значения весов ш[г'(т, п)] и формируем следующую матрицу: w [г' (2, 2)] w [2' (2, 4)] . . . w [2' (4,2)] оу [2' (4, 4)] . . .
Зашумленный вариант изображения, приведенный в примере, порождает следующую матрицу:
0 5 5 1 .
2 6 3 2.
4 6 2 1.
13 11.
Обозначим элементы этой матрицы через wi;,, i= 1, 2, 3,..., /=1, 2, 3, ..., и рассмотрим снова подвекторы размерности 3 X 3, на которых заданы следующие отношения:
отношение КЩ, j) справедливо для всех таких подвекторов, что
®i-x,j-x + wi,i + ®< + i> /+1 > ^t-x.j + ^.-ьж + ®ij+x (3.23а)
И
Wi-u-tA-Wi.iA-Wi-H.j.H > ^г,/-1'+^-1,/+1 + бУ; + 1,/; (3.236)
отношение 7?и (i, /) справедливо для всех таких подвекторов, что
^i-[J + WiJ + ^i + 1,/ > Wi-\,i-\ + Wi, 1 — 1 + Wi + \,j-\(3.24a)
И
Wi-X, i + wi, j + wm, i > wi-\, /+1 + w<, /+1 4* ^t + i, /+ь(3.246)
отношение R111^, j) справедливо для всех таких подвекторов, что
^/-1,/+1 + wia + wwa_x > wt_xa_x + ^-i,/ + wia_x (3.25a) и
^i-i,/+i + wia + wi+xa-x > wla+x + wi+xa + wi+xa+x; (3.256)
отношение Rw Ц, j) справедливо для всех таких подвекторов, что
Wia-X + ^f,/ + wia+x > Wi-xa_x + wi_xa-Vwi-xaA.x (3.26a) и
Wi, /-i + ^i, j + wit y+i > ^/+1, / -1 + ^t+i, j 4" wt+h /+1. (3.266)
Можно сказать, что отношения 7?1, 7?п, 7?ш и /?IV соответственно определяют следующие направления прямой, проходящей через центр (i, /) участка: «север — запад — юг — восток», «север — юг», «север — восток — юг — запад», «запад — восток». Применив эти отношения к матрице, составленной из элементов получаем
‘/?и(2,2) —
/?и(2,4)
(2, 4) J
это означает, что прямая, имеющая направление «север — юг», проходит через левую половину исходного участка сетчатки (через нижний подучасток прямая проходит в горизонтальном направлении).
Р. Нарасимхан предложил еще ряд интересных и эффективных алгоритмов, предназначенных для реализации первых этапов структурного метода обработки зашумленных и размытых изображений [24, 25, 26, 27].
ВЫДЕЛЕНИЕ ИНТЕГРАЛЬНЫХ ПРИЗНАКОВ
Описание изображения, полученное в результате реализации начальных уровней обработки исходного сигнала, представляет собой набор локализованных локальных признаков. Так, например, входной сигнал вида
0000000000 0001 100000 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 110 1110 0 0 0 1 1 0 0 1 1 0 0 0 0 11111110 0 0 1 110 110 0 0 0 1 1 0 0 1 1 0 0 0000000000
может быть перекодирован в следующую форму:
где через R\ RH и RUi обозначены следующее локальные отношения, выполнение которых было обнаружено:
R^ — «край линии»,
RH — «изгиб линии»,
RHi — «разветвление линии».
Для того чтобы иметь возможность классифицировать исходное изображение как образ, необходимо ввести отношения высшего порядка. Прежде всего понадобятся отношения, характеризующие «взаимное положение»:
Отношение «отношение R1 расположено выше отношения /?п» можно определить как дизъюнкцию всех допустимых прямых произведений двух непустых локальных отношений 7?1 и /?п при условии, что эти отношения заданы на соответствующих подсемействах множеств (ЕД), (ЕЛ1) cz (Е/), представляющих подучастки сетчатки, первый из которых расположен над вторым. Понятие «выше» можно относить и к положениям «центров тяжести», и к положениям верхних и нижних границ.
Отношение «отношение R1 расположено левее отношения /?п» можно аналогичным образом определить как дизъюнкцию
всех допустимых прямых произведений двух непустых локальных отношений В1 и В11 при условии, что эти отношения заданы на соответствующих подсемействах множеств (I/1), (t/n) cz с: ([/), представляющих подучастки сетчатки, первый из которых расположен левее второго.
Теперь описание образа можно представить в следующем виде:
Rx = ^R\u выше R^^^R1^1 выше Rt)*^11 выше RV1^*
*^Ru выше RV^^RV1 левее R^') * (jt\ левее R^.
Данный метод описания образов инвариантен сдвигу, вращению и изменению формы, производимым в «разумных» пределах. «Буква А», описанная сугубо формально, вполне различима, несмотря на влияние шума и типографские дефекты, если описание достаточно адекватно и тесты, предназначенные для проверки наличия локальных отношений, обладают достаточной мощностью.
Набор отношений, характеризующих взаимное расположение участков, на которых проверяется наличие локальных признаков, может быть при необходимости дополнен отношениями, определяющими топологические или геометрические характеристики.
Рассмотрим алгебру отношений
G = №\ Q{U^ 6, *, -).(4.1)
Всякое отношение R, принадлежащее этой алгебре, может определять образ, если интерпретацией ([/) является семейство множеств значений исходного сигнала. Если, однако, задано подмножество некоторых «локальных» отношений VRtV то можно задать подмножество Вру cz Q([/> всех отношений, представимых посредством некоторых алгебраических комбинаций отношений, принадлежащих Ву^. Всякое отношение R е В^ можно представить термом, составленным из локальных отношений и символов операций дополнения ~, свертки * и прямого произведения X отношений. Очевидно, что для заданного множества образов, представленных отношениями R^ ..., /?к, множество В^ следует выбирать так, чтобы
Rx, ..., /?кеВ^_).(4.2)
С другой стороны, при выполнении последнего условия возникает задача построения кратчайших выражений, представ-
ляющих заданные отношения. Благодаря наличию изоморфизма между алгеброй отношений G и булевыми алгебрами эту задачу можно решать с помощью общепринятых методов минимизации нормальных форм, представляющих булевы функции.
Попробуем более точно определить значение понятия «алгебраическое выражение, образованное отношениями, принадлежащими Ш»:
всякий символ Rj, обозначающий отношение, принадлежащее VRiV есть выражение;
если q — выражение, то q также является выражением;
если q1 и q11 — некоторые выражения, то их свертка д1*^1 и прямое произведение qTXqu также являются выражениями;
если ^ь ^2, •qu ... —некоторые выражения, то ^— выражение, эквивалентное выражению qx * q^ * . . . * qi * . . ., и X qi — выражение, эквивалентное выражению 91X^2 X---
• • • X qi X • • • •
Содержание пунктов а)—г)—это не что иное, как грамматические правила формального языка, описывающего принадлежащие В^ отношения. Множество В^ образует семантическое поле языка, а заданные отношения Ra, . .. , RK, удовлетворяющие условию (4.2), составляют его прагматику.
Два выражения q1 и q11 называются эквивалентными в формальном смысле, если каждое из них может быть преобразовано в другое с помощью формул (2.24) — (2.27). Доказательство формальной тождественности выражения играет важную роль в структурном методе распознавания. Понятно, что заданный образ может иметь различные формальные описания, и, следовательно, необходимо уметь доказывать, что выражение, полученное в результате конкретного распознавательного эксперимента, описывает тот же самый образ, который представлен выражением, полученным дедуктивным способом. Задача установления формальной тождественности выражений близка задаче автоматического доказательства теорем и может решаться теми же методами.
Формальную тождественность выражений не следует смешивать с семантической. Выражения называются тождественными семантически, если они представляют идентичные отношения, т. е. отношения, выполняющиеся на одних и тех же множествах реализации. Обозначим класс выражений, тождественных выражению q формально, через /z(^) и класс выражений, тождественных выражению q семантически, через H(q). Очевидно, что
(4.3)(4.3)h<q^H <qY
(4.3)
(4.3)
Рассмотрим в качестве примера задачу распознавания печатных букв. Множество основных отношений может содержать как обсуждавшиеся выше отношения типа Rl, Rl\ Ru\ так и отношения высшего порядка типа «выше» «левее» и т. п. Можно определить множество основных отношений и по-другому, включив в него отношения типа «вертикальный отрезок прямой», «горизонтальный отрезок прямой», «выпуклая дуга» и т. д. Выражения, описывающие образ, в формальном смысле тождественны не будут, хотя они могут оказаться тождественными в семантическом смысле. .
Множество (77) с заданным на нем семейством отношений ^Rii образует структуру в алгебраическом смысле этого понятия. Задачи распознавания образов можно с точки зрения теории отношений отнести к конструктивным задачам последней.
Рассмотрим два линейно упорядоченных семейства множеств (77) и (V) и два отношения Ru и Rv, заданные на семействах (77) и (V) соответственно. Пусть ф— взаимно однозначная проекция семейства (77) в семейство (V) и {ф<(л;)} — семейство взаимно однозначных проекций вида
4f. U^V^ ¥, = №<). (4.4)
Другими словами, срг(%)—функция, реализующая проекцию множества Ui в множество V^ если между множествами Ui и Vi имеет место взаимно однозначное соответствие, предусматриваемое ф-проекцией. Очевидно, что семейства множеств (77) и (V), а также находящиеся в отношении соответствия множества Ui и Vi являются попарно равномощными.
Допустим, что семейства множеств (77) и (V) линейно упорядочены. Будем считать, что взаимно однозначная проекция ф обеспечивает сохранение порядка, если для всякого 771 <( <^ U^ <^ . .. Uk (77) (рорядок, введенный в семействе (77)) выполняется
^(Uvy<^(U2)'< (4.5)
(порядок, введенный в семействе (V)). Нас интересуют только те проекции ф, которые обеспечивают сохранение порядка. Любая реализация z ^ Rv проецируется семейством проекций фг в V-пространство последовательностей; все полученные таким способом последовательности можно рассматривать как новое отношение — обозначим его Ry. Отношения Ru и Rv называются изоморфными, если проекции ф, {срДх)} можно выбрать таким образом, что проекция ф обеспечивает сохранение порядка и отношение Ry тождественно отношению Rv.
Проиллюстрируем эти понятия примером. Рассмотрим следующие подсемейства семейства множеств, характеризующего
состояние сетчатки:
(^6-1, 1—
Uк, Z-1
1 Ufc-\, 1 • •
•• • • ^Uт—Х> п—Х ^Щ—\,П
•• • • U т% п—1 Uт» п)
Рассмотрим семейство множеств ^Uk-\, i-\, Uk_X) ь Uk> z_b Uk> i) и заданное на нем отношение’’’
R' = VAO 10), <01 01)}.
Рассмотрим также семейство множеств <Z7m-i, n, Um> п, Um_X) п-ь Um, n-i) и отношение’’’
/?п = {{11 00), <00 11)}.
Отношения 7?1 и /?п, конечно, не тождественны; тем не менее они изоморфны. Зададим проекцию:
*Ф kUи—1,1—i)Uт—b п, ф (Ukt i) = Um_Xi п—1,
Ф (^-1.1) = Um,n, ф фк, z) = ит, п_х.
Очевидно, что данная проекция обеспечивает сохранение порядка. Далее можно задать еще четыре проекции:
Ф1 (1) = Ф2 (О = ФЗ (О = Ф4 (1) = 1,
Ф1 (0) = ф2 (0) = Фз (0) = ф4 (0) = 0.
Проекция отношения 7?1 в семейство множеств ^Um_x> т Um, п» Um-X) п-1, Um, n-i) приводит к отношению
^^{(Н 00), <00 11)},
тождественному отношению Я11. В таком случае отношения Z?1 и /?п изоморфны. Этот тип изоморфизма можно определить как «перенос».
Изоморфизм отношений, заданных на одном и том же семействе множеств (при разных способах упорядочения), назовем автоморфизмом. Отношение R1, введенное в последнем примере, и отношение /?IV, заданное на семействе множеств (JJk)l_x, Uk-x, м, Uk, ь Uk-x, i) в виде
■ Rw = {(11 00) (00 11)},
взаимно автоморфны: первое отношение описывает горизонтальный отрезок прямой, второе — вертикальный. Этот тип автоморфизма можно назвать «поворотом».
Можно определить и другие разновидности изоморфизмов, например изменение масштаба, и т. п. Заметим, с другой стороны, что оптическое преобразование, заданное формулой (3.14), не является изоморфизмом отношений в упомянутом выше смысле.
Рассмотрим более подробно общий случай. Заданы два семейства множеств <[/) и (V) с отношениями Rv и Rv соответственно. Пусть ф— взаимно однозначная проекция семейства <[7) в семейство (V). Будем считать, однако, что проекции, определенные отображением (4.4), однозначные, но не взаимно обратные. В таком случае всякая реализация отношения Ru может быть спроецирована в одну и только одну реализацию отношения Rv, а всякая реализация отношения Rv может быть проекцией по крайней мере одной реализации отношения Ru- В данном случае отношение Rv гомоморфно отношению Ru- Следующий пример иллюстрирует понятие гомоморфизма отношений.
Рассмотрим множества [/i, i = 1, 2, ... , 9, в состав которых входят три элемента 0, 1, 2, и множества Vj, / = 1, 2, ..., 9, в состав которых входят по два элемента — 0 и 1. Представим семейства множеств, как мы это обычно делали, в виде квадратных массивов:
<ихU2U3(У.V,V3
и,и5и.V,v5У6
U7и3и.)V7УзVg)
Определим отношение «пересечение»:
^ = {<101 010 101), <212 121 212), (2 02 020 202),
<010 111 010), <121 222 121), <020 22 2 020)}.
Отношение
7?v = {<101 010 101), <010 111 010)}, заданное на семействе множеств <V), можно считать гомоморфным относительно отношения Ru- Обычно квантование сигнала по уровням, сжатие или ограничение приводят к гомоморфизму отношений. В то же время метод преобразования сигнала, описанный в предыдущем разделе и основанный на использовании усреднения, нельзя отнести к категории ведущих к гомоморфизму преобразований в нашем смысле.
Представляют интерес и некоторые другие разновидности морфизмов. Если задана проекция R^ отношения Ro в определенное подсемейство множеств и отношение Rv, то последнее называется подизоморфным отношению Ru при условии, что оно изоморфно (соответственно гомоморфно) отношению Ry.
С другой стороны, отношение Rv называется надизоморфным (надгомоморфным) отношению Ru, если существует проекция R'v отношения Rv, изоморфная (соответственно гомоморфная) отношению Ru. Всякая проекция отношения подизоморфна (точнее, подавтоморфна) исходному отношению. Можно также определить под-, над- и гомоморфизм для подотношений. Мы будем пользоваться понятием частичного морфизма отношений Ru и Rv в случае, когда существуют некоторые подотношения R^ cz Rv и R'vcz:Rv и для них имеет место некий морфизм, который не распространяется на отношения Ru и Rv.
Введенные понятия морфизмов отношений мы будем использовать для классификации морфизмов алгебраических структур. Рассмотрим две алгебраические структуры
Ти = (Я’ (4.6а)
Tv = (<V\ {/?0>- (4.66)
Назовем структуры Ти и Tv изоморфными, если существует такое множество проекций ф, {фг}, что отношения R^ е ^R^ и Riy е ^R^ одновременно попарно изоморфны. Аналогичным образом определяется гомоморфизм, а также и под-, нади частичные морфизмы структур. Очевидно, что задачи распознавания образов нет необходимости рассматривать вне пределов классов изоморфных структур. Частичный характер, однако, может иметь не только морфизм отношений, но и морфизм структур. В частности, задачи распознавания, связанные с автоматическим считыванием букв английского и русского алфавита, можно формально представить посредством частично изоморфных структур, так как отношения, характеризующие печатные буквы «А», «В», «С», «Е», «Н», в обоих случаях одинаковы. Проблема подобия структур, однако, много глубже. Хорошо известно, например, что любая практическая задача распознавания может быть эффективно решена множеством формально различных способов. С другой стороны, формальное подобие отдельных подходов не гарантирует их совпадение по эффективности. Необходимо, следовательно, пользоваться более гибкими понятиями структурного подобия и эквивалентности, чем те, что основаны на концепции морфизма. В принципе этого можно добиться, введя в пространство структур какие-то характеристики расстояния.
Допустим, что нас интересует соответствие на нижнем уровне структуры. Это означает, что заданы семейства множеств ([/) и (V) и класс проекций ф, {(pj. Аппарат алгебры отношений позволяет описать метаотношения на отношениях ^R^ и на отношениях {/?{/}. Эти метаотношения могут быть пред-
ставлены в терминах подотношений, сверток, прямых произведений и т. д. Заметим, что истинны следующие метаотношения: пусть A(R) означает, что отношение R выполняется на данной реализации; в таком случае
А^ШАШ
Л (/?) => Л (/?<yi>) для любого подсемейства множеств (У1);
A (J^) => А (/?) для любого У?1 cz R;
Л^^Л^ХЯ11) для любого отношения /?п;^’^
Л^и^ндда, лт;
А^^ЧАШ
Эти свойства позволяют ввести полуупорядочение на множестве отношений. Пусть
/^Х#11 в том и только том случае, если
АДО^А№(4.8)
Нетрудно показать, что ^ти новые метаотношения обратимы (см. (4.7а)), антисимметричны (если /?т X /?п и ^Х^1, то /?т = R^^ и транзитивны. Для представления таких метаотношений можно использовать граф, вершины которого соответствуют отношениям рассматриваемой структуры, а ориентированные ребра — импликациям. Рассмотрим соответствующий пример.
Дано семейство множеств
<их щ и.и4 и, и6
Ui U8 и9)
и следующие отношения:
Я, ={(100 100 100), (010 010 010), (001 001 001/,
Я2 = {(111 000 000), (000 111 000), (000 000 111)}.
Рассмотрим их прямое произведение
^3 = /?1U/?2 = -RiX«2 = {(100 100 100), (010 010 010),
(001 001 001), (111 000 000), (000 111 000), (000 000 111)) и проекцию
^4 = Язщ,, щ, щ> = {(000), (111), (100), (010), (001)}.
Множество отношений {/?ь чить следующим образом:
Rs, Ra, ^4} можно полуупорядо-
Ra^Ri» Ra^ Rs» Ra^x Ra-
Граф, представляющий данные метаотношения, приведен на рис. 4.
При сопоставлении структур можно исходить из подобия графов, представляющих их внутреннюю логическую микроструктуру. Эту общую идею можно усовершенствовать, введя дополнительное индексирование вершин графа: всем вершинам, соответствующим изоморфным отношениям, можно приписать один и тот же индекс класса изоморфных отношений. В приве
денном выше примере такой дополнительный индекс следует приписать вершинам, соответствующим отношениям /?1 и Rs.
ФОРМАЛЬНЫЕ ЯЗЫКИ ДЛЯ ОБРАБОТКИ ИЗОБРАЖЕНИЙ
В последние годы все большее внимание уделяется построению систем распознавания образов, основанных на работе человека с вычислительной машиной в режиме взаимодействия. Наиболее представительным примером подобного подхода является вычислительная система Illiac III, разработанная и реализованная в Университете штата Иллинойс, США [21, 22, 28, 30]. В то же время в практических приложениях важную роль, вероятно, будут играть меньшие и более специализированные системы распознавания и обработки изображений, построенные на основе мини-ЭВМ третьего поколения. В техническом проектировании, при обработке экспериментальных данных и проведении криминологических экспертиз возможность управлять процессом принятия решения, по крайней мере на его ключевых этапах, кажется чрезвычайно привлекательной. Система SHOW-and-TELL Interactive Programming System for Image Processing, предназначенная для обработки изображений в режиме взаимодействия, разработана в Отделении вычислительной математики и кибернетики Университета штата Иллинойс. В системе используется формальный язык, ориентированный на реализацию алгоритмов обработки изображений. Общие принципы построения этого языка, описанные Р. Нарасимханом [26],
были также реализованы с некоторыми модификациями на польской вычислительной машине типа ODRA 1204. Этот вариант языка, названный PICTURE ALGOL 1204, следует рассматривать как удобное средство для разработки и испытания новых алгоритмов распознавания и обработки изображений, а не как окончательный вариант программного обеспечения, предназначенный для нормальной эксплуатации. Язык PICTURE ALGOL 1204А позволяет работать с двоичной («чернобелой») графической информацией, задаваемой в виде построенной из точек матрицы М X N, причем число столбцов N в настоящее время ограничивается стандартным размером слова в вычислительной машине типа ODRA 1204 (24 бита). Число строк М не ограничено ничем, кроме размера оперативной памяти. Поскольку PICTURE ALGOL 1204А является подъязыком АЛГОЛа, имеется возможность использовать его стандартные процедуры, предназначенные для работы не с реальными, а с целыми переменными. При реализации процедур «PICTURE ALGOL» используются целые переменные М и ^, а также несколько вспомогательных переменных («BOUND» и «THR»).
В языке «PICTURE ALGOL» применяются стандартные процедуры нескольких типов. Алгебраические процедуры над множествами позволяют реализовывать основные теоретико-множественные операции над множествами элементов, из которых состоят изображения. Эти процедуры соответствуют основным операциям дизъюнкции, конъюнкции и определения разности отношений, заданных на бинарных множествах и представленных отдельными реализациями. Еще две процедуры предназначены для стирания изображения и заполнения соответствующего участка (отведенного для массива определенной переменной) нулями или записи в него нового изображения. Остальные процедуры этой первой группы предназначены для присвоения значения «true» булевой переменной, если изображение состоит из одних нулей или если два изображения идентичны.
Вторая группа стандартных процедур обеспечивает возможность установления принадлежности точки заданному изображению (является ли изображение в этой точке «верным»), а также добавления этой точки к изображению или устранению ее из изображения.
Следующая группа процедур позволяет реализовывать более сложные преобразования изображений. В принципе способ обработки конкретного изображения зависит от некоторого другого изображения Z2, называющегося «контекстом», а результат обработки представляется в виде какого-то третьего изображения Z3. Каждой точке изображения г ставятся в соответствие девять точек, образующих окрестность (включая саму точку г). Адреса этих точек представляются вспомогательной перемен-
ной «направление», принимающей значения согласно следующей схеме:
адрес самой точки г соответствует направлению, равному 0.
Процедура MARK (Z1,Z3, направление) вводит в изображение Z3 все точки, принадлежащие определенному направлению окрестности точек изображения Z1. Так, в частности, если направление есть «123», то это означает, что все точки с направлениями 1, 2 и 3 принадлежат рассматриваемой окрестности, и если изображение Z1 имеет вид
00000000
00011100
00011100
00011100
00111000
01110000
01110000
00000000
то изображение Z3, полученное в результате применения процедуры MARK (Zl, Z3, «123»), предстает в следующем виде:
0 0 0 1 1 1 1 0
0 0 0 111 1 0
0 0 0 1 1 110
0 0 11110 0
0 11110 0 0
0 11110 0 0
0 0 1 1 1 0 0 0
00000000
Эта стандартная процедура не зависит от контекста.
Еще одна процедура, называющаяся CMARK (Zl, Z2, Z3, направление), вводит точку в изображение Z3, если она принадлежит определенной окрестности точки изображения Z1 и в то же время принадлежит заданному изображению Z2. Последнее можно выбрать таким образом, чтобы Z3 было запи-
сано в пределах определенного участка. Так, если в предыдущем примере придать изображению Z2 вид
00000000 00000000 0 0 11110 0 0 0 11110 0 0 0 11110 0 0 0 11110 0 00000000 00000000
то применение стандартной процедуры CMARK (Z1,Z2, Z3, «123») приведет к получению следующего результата:
00000000 00000000 0 0 0 1 1 1 0 0 0 0 11110 0 0 0 1 1 1 0 0 0 0 0] 1 1000 00000000 00000000
Для процедур MARK и CMARK можно ввести следующее обобщение. Вводится булева переменная bex(THR), где целое, обозначенное THR, представляет вес окрестности заданной точки изображения Z2, подсчитанный по указанным направлениям. Значение переменной Ьех равно «истина», если величина веса, вычисленная для окрестности рассматриваемой точки изображения Z2, больше значения порога или равна ему. Применив, в частности, процедуру THRESHOLDCMARK (Zl, Z2, Z3, «12345678», THR < 8) к изображению Z1 вида
000000000 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 О О О 1 1 1 1 О О 0 0 111110 0 000000000
получаем контур изображения:
000000000 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 .0 0 0 110 1 0 0 0 00010 1000 0 0 0 10 10 0 0 0 0 0 1 0 1 1 0 0 0 0 111110 0 000000000
Некоторые дополнительные возможности предоставляет использование идеи «цепочки». Последняя состоит из всех точек, принадлежащих заданному направлению на обоих изображениях Z1 и Z2 относительно точки, принадлежащей изображению Z1. Эту идею можно проиллюстрировать следующим образом. Заданы изображения Z1 и Z2, имеющие соответственно вид
00000000 00000000 00000000 0 0 1 1 1 1 0 0 00000000 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 00000000 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 00000000 00000000
Применение процедуры CHAIN (Zl, Z2, Z3, направление) для направления «1, 2» позволяет получить изображение Z3 следующего вида:
00000000 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 111110 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 00000000
Процедура CHAIN в сочетании с процедурой вычисления порога обеспечивает возможность обнаруживать на размытом изображении некоторые локальные признаки. Для реализации этой операции предусмотрена соответствующая стандартная процедура THRESHOLDCHAIN (Zl, Z2, Z3, направление, Ьех).
THR > w.THR > w.В результате применения этой процедуры строится цепочка точек, принадлежащих изображению Z1, относительно точки изображения Z2; опа переносится на изображение Z3 только в том случае, если булева переменная Ьех принимает значение «истина». Ее значение определяется из неравенства
THR > w.
THR > w.
где THR — целая переменная, представляющая вес цепочки, a w — заданное значение порога.
Рассмотрим следующий пример. Задано искаженное помехами изображение Z1:
0 0010101
1 0011001
0 0100110
0 0111001
1 1000100
0 110 110 0
1 1100011
0 110 10 0 0
Сопоставляются следующие гипотезы: нечеткая линия проходит в направлении «26» или в направлении «48». Вводятся эталоны Z21 и Z22, имеющие вес 22:
11000000111000000111000000111000000110000 0 0 0 111 0000001110000001111000000111000000111000000111000000110000 0 0 0 111 0000001110000001100000011000001110000111000011100001110000111000011100000110000000000001100000111000011100001110000111000011100001110000011000000
11000000
11100000
01110000
00111000
00011000
0 0 0 0 111 0
00000111
00000011
11000000
11100000
01110000
00111000
00011000
0 0 0 0 111 0
00000111
00000011
00000011
00000111
00001110
00011100
00111000
01110000
11100000
11000000
00000011
00000111
00001110
00011100
00111000
01110000
11100000
11000000
Воспользуемся двумя процедурами: THRESHOLDCHAIN (Zl, Z21, Z31, «026» THR > 1) и THRESHOLDCHAIN (Zl, Z22, Z32, «048», THR > 0). Их применение приводит к получению двух изображений Z31 и Z32:
0100000010000000001100000011100000010100000011000000001000000000010000001000000000110000001110000001010000001100000000100000000000000011000001010000011000011000000010000100000011100000010000000000001100000101000001100001100000001000010000001110000001000000
01000000
10000000
00110000
00111000
00010100
00001100
00000010
00000000
01000000
10000000
00110000
00111000
00010100
00001100
00000010
00000000
00000011
00000101
00000110
00011000
00001000
01000000
11100000
01000000
00000011
00000101
00000110
00011000
00001000
01000000
11100000
01000000
Второе из них, имеющее больший вес, соответствует более вероятному направлению линии. Далее, применив процедур CHAIN (Z32, Z22, «26»), получаем восстановленное изображс ние:
00000011
00000111
00001110
00011100
00111000
01110000
11100000
11000000
При необходимости изображение можно сжать с помощью процедуры CHAIN (Z5, Z6, Z7, «О»), изображение Z6 имеет при этом следующий вид:
О 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 00000100 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Полученное в результате изображение Z7 идентично изображению Z6.
Для выделения локальных отношений, представленных несколькими альтернативными реализациями, предназначена стандартная процедура TRANSFORM (Zl, Z2, Z3, Ы). Символом «Ы» обозначена последовательность, в которую могут входить числа от 0 до 8, причем некоторые из них могут быть подчеркнуты и некоторые последовательности могут отделяться знаком «+». Запись этой процедуры в виде TRANSFORM (Z1, Z2, Z3, «23 + 45») означает, что изображение Z3 состоит из всех точек, принадлежащих изображению Z1 и таких, что их окрестности относительно изображения Z2 непусты в направлении «3» и пусты в направлении «2» или непусты в направлении «4» и пусты в направлении «5». В частности, для того чтобы обнаружить все края линии, можно использовать следующую процедуру: TRANSFORM (Zl, Z2, Z3, «12345678 +
+ 12345678 + 12345678 + 12345678 + [2345678 + 12345678 +
+ 12345678 + 12345678»).
Для и
:зобр
ажения
[ ;
7Л
и
Z2 вида
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
изображение Z3,
полученное в
результате
реализации проце-
дуры, принимает следующий вид:
00000000 00000000 00000000 о О О О О о о о 0 1 0 0 0 0 0 0 00000000 0 1 0 0 0 0 0 0 00000000
При осуществлении операций, связанных с вводом и выводом информации, используются pi некоторые другие стандартные процедуры языка «PICTURE ALGOL 1204А».
Заслуживают упоминания и несколько языков обработки изображений, относящихся к подмножеству ФОРТРАНа (РАХ, РАХН, СОМРАХ, STANDPAX). Язык РАХН позволяет обрабатывать изображения произвольных размеров и многих уровней зачерненности [19]. Прогресс в данной области благоприятствует развитию методов распознавания, но, вообще говоря, проблема формальных языков в распознавании много шире. Изображение— одна из основных форм представления научной, технической и многих других разновидностей информации. Сами конструкторские чертежи, электронные схемы, топографические карты, структурные формулы химических веществ и т. п. можно рассматривать в качестве некоторых формальных языков.
Задача распознавания образов представляет собой задачу трансляции «плоскостного» языка в «линейный», оперирующий последовательностями символов. Общая теория плоскостных языков находится, однако, на самом начальном этапе развития. Ясно, что в принципе плоскостной язык, как и линейный, можно определить следующей упорядоченной парой [20]:
L = <A,F\ (5.1)
где А— множество основных элементов (символы, слова), a F— множество «выражений», правильных в некотором формальном смысле. Основная сложность заключается в определении структуры «выражения». В линейных языках, как это было показано в гл. 4, структура задается с помощью бинарных ассоциативных и некоммутативных операций «сочленения» последовательностей элементов, принадлежащих алфавиту А. В плоскостных языках ситуация оказывается много более сложной. Взаимное расположение двух или нескольких фрагментов изображения обычно определяется указаниями типа «над» или «под», «близко», или «далеко», «внутри» или «снаружи» и т. д. С формальной точки зрения эти характеристики обратимы, антисимметричны и транзитивны. Другими словами, они вводят некоторое полуупорядочение в пространство выражений, содержащее множество А в качестве собственного подмножества. В частном случае, если задано правило упорядочения и вводимый им порядок линеен, определено простое сочленение, и в результате мы имеем линейный язык.
В грамматике плоскостных языков обычно можно выделить несколько уровней. На нижнем определяются цвета точек, заданных на плоскости, и интенсивность выраженности цвета; этот уровень соответствует фонетическому или семиотическому. Уровень, на котором дается описание основных графических символов, соответствует морфологическому уровню структурной лингвистики. Высшие уровни теории плоскостных языков посвящены принципам составления комбинации графических символов; этот уровень соответствует синтаксическому уровню грамматики. Практическое изучение структурных грамматик плоскостных языков может способствовать пополнению общей теории экспериментальными данными, которые должны быть учтены в процессе ее развития.
Одной из основных теоретических проблем является эквивалентность плоскостных и линейных языков. Поскольку любое изображение можно с произвольной точностью представить последовательностью двоичных символов, а, с другой стороны, любое двоичное сообщение можно записать графически, потенциальная эквивалентность линейных и плоскостных языков не может вызывать сомнений. Существует еще, однако, проблема отыскания линейного представления для данного плоскостного языка, причем оптимальным в некотором смысле образом. Типичным примером проблемы эквивалентности является задача формального описания форм и размеров деталей и их множеств при автоматизации процесса технического проектирования. До сих пор удовлетворительные результаты были в этой области получены лишь для формального описания простейших деталей — плоских и тел вращения. Типичными примерами резуль-
татов таких работ служат проблемно-ориентированные языки машинного проектирования типа APT, ADAPT (США), CLAM, PROFILEDATA, COCOMAT (Великобритания), ГЕОМЕТР 66 (СССР). Очевидно, что требования к точности не позволяют воспользоваться в этом случае дискретной точечной аппроксимацией геометрической формы, аналогично использованной в обсуждавшихся выше языках обработки изображений. Геометрические языки скорее должны основываться на выделении основных геометрических элементов: точек, прямых линий, плоскостей, треугольников, прямоугольников, окружностей, сфер и т. п. — в евклидовом пространстве, сформированном заданной системой координат. Более сложные геометрические формы можно получить из простейших с помощью теоретико-множественных операций. Универсальный геометрический язык должен содержать новые типы переменных — геометрические, — кроме целых, реальных и булевых. Геометрические переменные могут принимать значения «пусто» либо задаваться с помощью набора неравенств аналитической геометрии. Например, геометрическую переменную «треугольник» можно задать следующими неравенствами:
ах + by + с < О, dx + еу + f < О, gx + Ну + i < О, где а, Ь, с, d, е, f, g, h, I — некоторые действительные коэффициенты, удовлетворяющие ряду дополнительных условий. В результате оказывается возможным вызвать подпрограмму, обеспечивающую проверку принадлежности данной точки г данному «треугольнику», наличия непустой общей части у двух геометрических объектов и т. д. Следовательно, решение задачи сводится к численной процедуре, полностью поддающейся алгоритмизации.
Геометрический язык, однако, должен обладать и другими возможностями. Может возникнуть необходимость проверки некоторых топологических отношений: включен ли данный геометрический объект полностью в другой либо они соприкасаются? Расположены, ли заданные геометрические объекты по одну сторону кривой или поверхности? Может возникнуть также необходимость представления геометрических объектов произвольной формы. Возможность осуществления стандартных геометрических преобразований типа сдвига или поворота геометрических объектов относительно некоторой системы координат или относительно друг друга, построения новых геометрических объектов, изменения размеров при выполнении ряда геометрических, топологических или другого рода ограничений поможет
существенно облегчить работу проектировщика. Наличие столь мощного инструмента может привести к ограничению или полному прекращению автоматического распознавания и обработки некоторых видов информации, представляемой в плоскостном виде. В частности, технологическая информация может полностью обрабатываться в линейно закодированном виде вплоть до момента вывода на печать для получения стандартной технологической документации; графическая же информация будет использоваться человеком только для осуществления контроля.
Другими словами, системы распознавания образов и обработки изображений следует рассматривать как системы обработки информации, работающие с информацией любой природы и любых типов.
ПЕРЕЧЕНЬ ОСНОВНЫХ ОБОЗНАЧЕНИЙ
U — сумма множеств или дизъюнкция отношений,
П — пересечение множеств или конъюнкция отношений,
-1разность множеств или отношений,
е — принадлежность элемента,
cz — включение подмножества или подотношения,
X — прямое произведение пары множеств или отношений, X — прямое произведение системы множеств или отношений,
“ — дополнение к отношению,
V — логическая дизъюнкция,
А — логическая конъюнкция,
П —- логическое отрицание,
=Ф — логическая импликация,
ФФ — логическая эквивалентность (двусторонняя импликация),
( ) —линейно упорядоченное множество или набор,
{ ) — неупорядоченное множество, .
{S}z — i-e множество входных сообщений (t-й образ),
$ — реализация входного сообщения,
{Z} — множество принятых сигналов,
г — реализация принятого сигнала — множество решений, {У} — множество решений, у — решение,
N, М — целые числа, обозначающие размерность входных сигналов,
R — отношение,
R<r> — проекция отношения на подсемейство множеств (Z'), х — мощность множества, U — множество значений входного сигнала, описывающих состояние сетчатки,
U t — множество значений! составляющих t-ro входного сигнала, р(г*,2) — расстояние между векторами 2* и 2,
0 — пустое отношение,
Q^U) — тривиальное отношение, заданное на семействе множеств (иу
СПИСОК ЛИТЕРАТУРЫ
А. Общие вопросы
Айзерман М. А., Браверман Э. М., Розоноэр Л. И., Теоретические основы метода потенциальных функций в задаче об обучении автоматов распределению входных ситуаций на классы, Автоматика и телемеханика, 25, № 6 (1964), стр. 917—936.
Автоматическое чтение текста, сб. статей под ред* А. И. Михайлова и др., ВИНИТИ, М., 1967.
Браверман Э. М., О методе потенциальных функций, Автоматика и телемеханика, 26, № 12 (1965), стр. 2205—2213.
Читающие автоматы и распознавание образцов, сб. статей, отв. ред. В. А. Ковалевский, «Наукова думка», Киев, 1965.
Читающие устройства, сб. докладов на Конференции по обработке информации, машинному переводу и автоматическому чтению текста, АН СССР, Ин-т научной информации, М., 1962.
Fu К. S., Learning control systems. Computer and information sciences, Washington, 1964.
Kulikowski J. L., Cybernetyczne uklady rozpoznaj^ce— CyberneticaT recognition systems, in Polish, PWN, Warzawa, to be printed.
Опознание образов, сб. статей под ред. д. т. н., проф. И. Т. Турбовича, «Наука», М., 1968.
Principles of self-organization, Trans, of the University of Illinois Symp. on Self-Organization, Pergamon Press, 1962.
Самонастраивающиеся системы. Распознавание образов. Релейные устройства и конечные автоматы, Труды III Всесоюзного совещания по автоматическому управлению (технической кибернетике), Одесса, 1965, «Наука», 1967.
Себестиан Г. С., Процессы принятия решений при распознавании образов, «Техн1ка», Киев, 1965.
Труды III Всесоюзной конференции по информационно-поисковым системам и автоматической обработке научно-технической информации, в 4-х т., под общ. ред. д. т. н., проф. А. И. Михайлова и др., т. 3. Автоматические читающие устройства, ВИНИТИ, М., 1967.
Б. Алгебраические и структурные методы
Автоматический анализ сложных изображений, сб. переводов под ред. Э. М. Бравермана, «Мир», М., 1969.
Бридинг К. Дж., Язык для описания изображений, в сб. «Автоматический анализ сложных изображений» под ред. Э. М. Бравермана, «Мир», М., 1969, стр. 65—86.
Фришкопф Л. С., Хармон Л. Д., Машинное чтение слитного рукописного текста, в сб. «Автоматический анализ сложных изображений» под ред. Э. М. Бравермана, «Мир», М., 1969, стр. 171—187.
Файн В. С., Опознавание изображений — основы непрерывно-групповой теории и ее приложения, «Наука», М., 1970.
Kulikowski J. L., Niektore problemy strukturalnej analizy obrazov zlozo- nych — Some problems of structural analysis of composite patterns, in Polish, Archivum Automatyki i Telemechaniki, XV, No. 3 (1970).
Kulpa Z., Szydlo Jezyk, PICTURE ALGOL 1204 A. Opis uzytkovy— The language PICTURE ALGOL 1204 A. A use manual, in Polish Institute of Automation Polish Academy of Sciences, a report, Warsaw 1971.
Lipkin B. S. (ed.), Rosenfeld A., Picture processing and psychopictorics, Acad. Press, New Y. — Lond., 1970.
Маркус С., Теоретико-множественные модели языков, «Наука», М., 1970.
McCormick В. Н., The Illinois pattern recognition computer, (Illiac III) Digital Computer Lab. Un. of Illinois, Rep. No. 148, 1963.
McCormick В. H., Illiac III computer system. Brief description and annotated bibliography, Dept, of Comp. Science Un. of Illinois, File No. 841, June 1970.
McCormick В. H., Schwebel J. C., Properties of a discrete space preserved by image processing relations, Dept, of Computer Science Univ, of Illinois File No. 769, July 1968.
Нарасимхан P., Лингвистический подход к распознаванию образов, в сб. «Автоматический анализ сложных изображений», «Мир», М., 1969, стр., 22—49.'
Нарасимхан Р., Программа сканирования фотографий пузырьковой камеры BUBBLE SCAN I, в сб. «Автоматический анализ сложных изображений», «Мир», М., 1969, стр. 111 —129.
Нарасимхан Р., Метод маркировки и синтаксическое описание изображений, в сб. «Автоматический анализ сложных изображений», «Мир», М., 1969, стр. 87—110.
Нарасимхан Р., Синтаксическая интерпретация классов изображений, в сб. «Автоматический анализ сложных изображений», «Мир», М., 1969, стр. 50—64.
Нарасимхан Р., Дж. Р. Уитскен, X. Джонсон, BUBBLE TALK. Структура программы, осуществляющей непосредственный обмен информацией между оператором и системой ILLIAC III, в сб. «Автоматический анализ сложных изображений», «Мир», М., 1969, стр. 130—170.
Поляков В. Г., О цифровой технике считывания и анализа контуров, в сб. «Опознание образов. Теория передачи информации», «Наука», М., 1965, стр. 44—71.
Read J., «SHOW-and-TELL. An Interactive programming system for image processing». Dept, of Computer Science University of Illinois Report No. 429, February 1971.
Rogers J., Tanimoto T., A computer program for classifying plants, Science, 132, 1960.
Schwebel J. C., Use of graph transformations to characterize an image: an illustrative example, Dept, of Computer Science Univ, of Illinois, File No. 770, July 1968.
Шерман Г., Квазитопологический метод распознавания линейных изображений, в сб. «Автоматический анализ сложных изображений», «Мир», М., 1969, стр. И—20.
Staniszkis М., Porownywanie struktur punktowych — Comparison of point struktures, in Polish, Institute of Automation Polish Academy of Sciences (a Report), Warsaw, 1971.
Структурные методы опознавания и автоматическое чтение, сборник статей под общей ред. проф. А. И. Михайлова, ВИНИТИ, М., 1970.
СОДЕРЖАНИЕ
Математические вопросы
Е. М. Райт. Графы на непомеченных вершинах с большим числом ребер. Перевод С. В. Мурычева 5
У. Т. Татт. Перечисление плоских триангуляций. Перевод А. В. Козиной 25
Филипп Дельсар т. Четыре основных параметра кода и их комбинаторное значение. Перевод В. И. Левенигтейна46
МайклС. Патерсон, Майкл Дж Фишер, Альберт Р. Мейер. Улучшенный метод частичного перекрытия для умножения, выполняемого в темпе поступления информации. Перевод С. В. Попова . . . 78
Герхард Рейна. Степени автоматных преобразований. Перевод С. В. Попова‘95
Д. Скотт. Набросок математической теории вычислений. Перевод Г. С. Плесневича107
Роберт Л. Констейбл, Дейвид Грис. О классах схем программ.
Перевод В. К. Сабельфельда и М. В. Трахтенброта122
Теория распознавания
Юлиуш Куликовский. Алгебраические методы в распознавании образов. Перевод И. Б. Гуревича ,178
УВАЖАЕМЫЙ ЧИТАТЕЛЬ!
Ваши замечания о содержании книги, ее оформлении, качестве перевода и другие просим присылать по адресу: 129820, Москва, И-110, ГСП, 1-й Рижский пер., д. 2, издательство «Мир».
ИБ № 947
КИБЕРНЕТИЧЕСКИЙ СБОРНИК № 14
Редактор И. Маховая, Л. ШтейнпрессХудожественный редактор В. ШаповаловТехнический редактор И. КренделеваКорректор А. Шехтер
Сдано в набор 19.11.76. Подписано к печати 7.06.77.Бумага кн.-журн. 60X90716=7,25 бум. л. Усл. печ. л.14,50. Уч -изд. л. 13,29. Изд. № 1/9137. Цена 1 р. 80 к.Заказ № 420
Издательство «Мир>Москва, 1-й Рижский пер., 2
Ордена Трудового Красного ЗнамениЛенинградская типография № 2имени Евгении Соколовой Союзполиграфпромапри Государственном комитете Совета МинистровСССР по делам издательств, полиграфии
и книжной торговли. 198052, Ленинград,Л-52, Измайловский проспект, 29
Кибернетическийсборник
НОВАЯ СЕРИЯ
ВЫПУСК
14
Сборник, переводов
Под редакцией
О. Б. ЛУПАНОВА
ИЗДАТЕЛЬСТВО «МИР»МОСКВА 1977
УДК 519.95
Научный совет по кибернетике Академии наук СССР
Продолжение новой серии кибернетических сборников, публикация которых была начата издательством «Мир» в 1965 г. В данном выпуске содержатся обзорные статьи и оригинальные работы известных зарубежных ученых по наиболее актуальным проблемам теоретической кибернетики. Большой интерес представляют работа Ю. Куликовского по распознаванию образов, работа Д. Гриса и Р. Констейбла о классах схем программ, а также статья У. Татта по теории графов.
Книга предназначена для научных работников, инженеров-исследователей, аспирантов и студентов, занимающихся и интересующихся теоретической кибернетикой и ее приложениями.
Редакция литературы по математическим наукам
20205—033
К 041(00—77
Математические вопросы
Графы на непомеченных вершинахс большим числом ребер1)
Е. М. Райт