Книга
Книга
ВВЕДЕНИЕ
Мы исследуем минимальное число L (尸)умножений и делений, достаточное для вычисления (т. е. определения численного значения) конечного множества 尸 рациональных функций над бесконечным полем 々.Для удобства предположим, что наряду со сложением и вычитанием умножения на скаляр также времени не требуют. Основная часть работы посвящена доказательству нижней оценки для L (F). Эта оценка, очевидно, является нижней оценкой для минимального числа всех операций при вычислении F.
При получении нижних оценок для 厶(尸)до сих пор использовались два нетривиальных метода:
Метод Пана [7], при котором конкретные значения придаются по очереди содержащимся в 尸 переменным (см. также [13] и указанную там литературу). Этот метод можно успешно применять во многих случаях, однако, естественно, он дает только такие нижние оценки, которые не превосходят числа переменных в F.
Предложенный Моцкином [5] метод, позволяющий оценить снизу сложность вычислений „почти всех" полиномов данной степени и использующий соображения размерности. Здесь речь
идет о континуальном аналоге метода Шеннона и Лупанова (см., например, [11]). Этим способом получаются хорошие нижние оценки для сложности вычисления конкретных полиномов, если множество коэффициентов полиномов имеет высокую степень трансцендентности над простым полем k. Существенный в рассматриваемом нами направлении результат был найден Патерсоном и Стокмейером [8].
Задача, которая не решается применяющимися до сих пор методами, состоит в вычислении коэффициентов полинома Р степени п от одной переменной, если корни Р заданы. Как известно, коэффициенты являются полиномами от корней, а именно, с точностью до знака, их элементарными симметрическими функциями б, .. ., ст九.Мы покажем в этой работе, что
孔 lg^&L(G,・・・,°j)&%lg 孔 (i.i)
(всюду в этой статье 1g означает log2). Верхняя оценка довольно проста. Она содержится еще в [13]. Идея доказательства нижней оценки состоит в следующем: предположим, что поле k алгебраически замкнуто; сопоставим каждой конечной последовательности fb ..., fr рациональных функций проективное многообразие W посредством замыкания графика соответствующего рационального отображения в объемлющем проективном пространстве. Если система функций {fb ..., fj вычисляется с а линейными операциями и b операциями умножения и деления, то W является компонентой пересечения а гиперплоскостей и b квадратичных гиперповерхностей (независимо от меня этот подход предложил также М. Зивекинг в другой связи). В упомянутой выше ситуации применяем теорему Безу, которая в необходимом здесь обобщении (т. е. для проективных пространств любой размерности), как известно, впервые была показана Ван-дер-Варденом [14]. Получаем неравенство
А ({Л, ...,〉)》lgGradIF」) (1.2)
откуда легко следует (1.1). Неравенство (1.2) для одного полинома тривиально, так как тогда Grad W просто есть степень f. Однако Grad W для нескольких полиномов 3, ..., fr не является функцией отдельных Gradfj.
Неравенство (1.2) имеет много применений. Для суммы степеней Sp= g %? получается
L({si, •・・,sn})^nlgn, (1.3)
Определение степени многообразия W (обозначается Grad 17) см. ниже. — Прим, перев.
если характеристика поля k равна 0, и
(1 一^)孔 1g 孔 WL({S1,・・・,Sn})^nlgzz, (1.4)
если характеристика поля 力 равна р. Вообще же для множества 尸 симметрических рациональных функций над 尼 со степенью трансцендентности / имеет место неравенство
厶⑹》〃g j
Очень просто выглядит следующий результат:
L({%7,・・・,尊})〜孔1g儿(1.5)
Таким образом, здесь отдельное оптимальное вычисление полиномов от непересекаюишхся множеств переменных оказывается асимптотически оптикМльным. В общем случае это неверно, как показали Бородин и Манро [1] (пр^уете всех операций) и Мёнк и Бородин [17]. Мёнк и Бородин получили неожиданный результат: вычисление значения произвольного полинома степени /г — 1 в 儿 произвольных точках, а также определение коэффициентов интерполяционного полинома по м значениям в м произвольных точках возможно с помощью О (»(1gn)3) арифметических операций. Если линейные операции не учитываются, то выпадает множитель 1g/г. Результат Зивекинга [18] о делении двух формальных степенных рядов может быть использован сразу же для деления двух полиномов с остатком за линейное время (для нашей меры сложности). Тем самым выпадает второй множитель Ign. С другой стороны, для обеих задач неравенство (1.2) дает одну нижнюю оценку n lg(n— 1). Отсюда следует, что сложности вычисления как при определении численного значения в п точках, так и при интерполяции имеют порядок n Ign. Аналогично устанавливается порядок сложности вычисления полинома степени п в m точках, заданного значениями его корней, и сложности вычисления интерполяционного полинома степени м в m новых точках.
Если учитываются все операции, то верхние оценки хуже в ign раз (за исключением (1.5)). Напротив, ничто не изменится, если учитываются и умножения на скаляр, поскольку k имеет или характеристику 0, или достаточно высокую.
Метод Пана можно сформулировать также геометрически и получить, например, следующее утверждение: если L({fb ..., %})= = m&〃 (n — число переменных), то W порождается (м — т)- мерными проективными подпространствами (см. разд. 4).
Мы будем использовать обозначения и результаты из [10]. Так же, как в [10], будем говорить ,,^-полеи вместо „коммута-
thbho;i А?-алгебры с делением" (при этом речь идет о частичной алгебре типа {0, 1, +,—,*,/} U 少 с одноместной операцией умножения на элемент поля ^).
ОЦЕНКА ДЛЯ Grad ИЗ ГЕОМЕТРИЧЕСКИХ СООБРАЖЕНИЙ
Пусть 力一алгебраически замкнутое поле, Р" есть УУ-мерное проективное пространство над k и W есть n-мерное (неприводимое, замкнутое) подмногообразие в Р". Существует натуральное число d, такое, что почти все проективные подпространства коразмерности п пересекают многообразие W в точности в d точках (см. [15, стр. 145] или [9, стр. 100]). Число d называется степенью W (Grad IF). Например, если W ——гиперповерхность в Р", определяемая неприводимой формой 尸,то Grad W есть просто степень F. Справедлива следующая фундаментальная宀
Теорема Безу. Если V и W имеют размерности тип соответственно, причем m + ti》N и каждая компонента многообразия V [\М имеет размерность п + tn — N, то
Grad V-Grad К =£ Z(C, V-Wt Р”) Grad С,
компонента из УП»
где z(С, V • W, Р^) — кратность пересечения.
О кратностях пересечения надо лишь знать, что все они являются целыми положительными числами. В дальнейшем нам будет нужна эта теорема в специальном случае, где или 匕 или W являются гиперповерхностью. Доказательство этого специального случая содержится в [15, стр. 177] (см. также [9, гл. IV]).
Приведем теперь два простых утверждения о Grad, которые впоследствии нам будут полезны.
Лемма. Если W ——подмногообразие, a L — проективное подпространство 6 Р“ 〃 если / — число компонент 6 W (]L, то
GradIF>/.
Доказательство. Индукция по n := dimW. Базис индукции очевиден. Для проведения индукционного шага мы можем предполагать, что W ^±L. Пусть Н — гиперплоскость, которая содержит L, но не содержит 步 Согласно теореме о размерности (см. [15, стр. 175] или [9, стр. 86]), все компо-
ненты Сь ..., Cs в W (]Н имеют размерность dim IT—1, так что можно применить теорему Безу к W Q Н\
Е Grad С。& £ i (С。, Г - ", Р") Grad С。= а«=1о
==Grad Г • Grad Н = Grad Г )
По предположению индукции )
i = # компонент U (С。П L)《2 # компонент С。П 厶 & X Grad Са, откуда следует доказываемое утверждение. ■
Лемма. Пусть
п: (/): ・・・:TlN)f О1о: ・・・:Т]м_1)
определяет рациональное отображение Р” на Ру-1 (Def л = Pv •— ——{(0: ...: 0: 1)}). Пусть далее V — подмногообразие в РУ~\ W — подмногообразие в Р”. Тогда справедливы соотношения
Grad У = Grad ^Vf Grad л¥ < Grad Г
(черта сверху означает замыкание),
Д о к а з а т е л ь с т в о: Пусть m=DmK Заметим прежде всего, что 冗一1丿 неприводимо. Это следует из теоремн 8 в [9, стр. 91], если в ней вместо X взять (Graph л) Г) (Ру X Ю из Р" X Р"-1, а вместо У взять V (или из того, что л является расслоением). Пусть L — проективное подпространство в Р“т коразмерности т, пересечение которого с V состоит из Grad V точек. Тогда множество
{So: •.Hn-i: 0):仇:. ••: пy-i)三l}
является проективном подпространством в Р", пересекающим n~lV в Grad V точках. Следовательно, по лемме 2.1
Grad У Grad LP.
Обратно, пусть // — проективное подпространство в Р^ коразмерности m + 1 = Dim n~~lVf которое пересекает n~lV в точности в Grad jx-"1 V точках. Эти точки пересечения отображаются
посредством л инъективно, так как в противном случае вся прямая лежала бы в пересечении Z/ и л~*V. Следовательно, V имеет с проективным подпространством 冗// из Ру~1 в точности Grad 冗-1丫 точек пересечения. Из леммы 2.1 следует, что
Grad 7 > Grad 5^7.
При доказательстве неравенства для W мы различаем два глучая:
Dim nW < Dim W и
Dim лГ = Dim Г.
В первом случае, согласно теореме о размерности слоев морфизма (см. [9, стр. 90] или [6, стр. 92, 93]), примененной на ограничении л к морфизму 呼—{(0: ...: 0: 1)}-> 冗IF, подмногообразие W имеет вид л-1 V, где V == nW = nW, Этот случай уже был рассмотрен выше. Во втором случае по теореме о размерности слоев в 冗W имеется открытое подмножество U, такое, что для любой точки Р ^U множество л""1 (Р) Q W конечно и непусто. Пусть L〃 — проективное подпространство в Р"~】 коразмерности Dim 冗步,которое пересекает nW в Grad 冗W точках Рь лежащих в U. Тогда Л — проективное подпространство в Р% такое, что его пересечение с W содержит по крайней мере Grad 冗昕 изолированных точек (именно точки из множества л"1 (Pf) П W). Из леммы 2.1 следует, что в этом случае также
Grad лГ< Grad Г.
Пусть теперь Xi, . . ., %九—переменные над полем k и A = k (хь ..., xj. Таким образом, Л — это 左-поле над {хь ..., %九}. Кроме того, мы считаем, что время операции г равно 1 для умножения и деления (в дальнейшем будем обозначать это 2=1口,/}, см. [10]). Пусть множество 尸 и4 конечно, например F = {ai, ..., а「}, где все о^ попарно различны. Последовательность (аь ..., а) определяет рациональное отображение ф: kn-^kr таких (г|ь ..., п/, для которых общий знаменатель ⑴ не обращается в 0, следующим образом:
(Л1 > • • •, Лп)> (@i(3), • • •, & (生)•(2・1)
Отсюда следует, что
Graph (①)и 状 X У = У*' и р+「(2.2)
(последнее включение справедливо вследствие вложения (г|1, ..., г\п+^)(1 : П1: • • • •刀九+,))・ Замыкание Graph (<р) в проек
тивном пространстве Рп+г обозначим через W (аь ..., а「)・ Оче-* видно, что W (аь ..., а「) является n-мерным проективным много-
образием. Его степень не зависит от порядка расположения а〃 ■
Теорема.
厶({аь &}) > lg (Grad Г (аь а))・
Доказательство. Покажем, что функция
九({内,nr}):=lg(Grad Г (аь ..., а))
является монотонной L-границей; см. [10]) Для монотонности достаточно показать, что
Grad lb (s,&_i) &Grad W (ab ..., a)
Этот факт немедленно следует из леммы 2.2 при ^:= м + ^ и W\= W (Hi, ..., а) так как 冗呼= /(3, ..., 0「」)・ Далее на примере операции * мы докажем свойство, которое требуется в определении L-границы: вследствие монотонности достаточно доказать, что
Grad W Q,…,ar, a, b, а^ b)《2 Grad W 3,…,ar, a, b)
для попарно различных abar, a, b, a^b2). Пусть N = 〃 +「十3・
Тогда
T:=步(。1,・・・,ar, a, b, a^ 6)c=Py, V:=W (aly ar, а, Ь)иР“т, а именно T есть (неприводимое, замкнутое) подмногообразие в л~[У коразмерности 1. Обозначим через у。, ..., у% координатные переменные в Р", тогда выражение
УоУп+г+^ ~~ Уп-]-г+^Уп+г+2
определяет гиперповерхность Н степени 2 и очевидно, что Т и ". Так как Н не содержит 冗一‘匕 то по теореме о размерности все компоненты многообразия Н П л" V имеют размерность, требуемую в теореме Безу, и одна такая компонента есть 7\ Следовательно, согласно теореме Безу и лемме 2.2,
Grad Т < Grad Н ・ Grad『屮=2 Grad V.
Остальные (частичные) операции или тривиальны, или рассматриваются аналогично (для деления, например, рассматривают выражение 先勿+r+i-%+「+2%+г+з)・ I;
ПРИМЕНЕНИЯ
В этом разделе 1g всегда обозначает log2. Пусть k — любое бесконечное поле, %〔, ..., хп, / — переменные над k. Мы снова через k (xi, ..., хд) обозначаем 々-поле над хь ..., хп и считаем, что 之=1{*,/}・ Пусть 5,ап е ^ (хь ..., хп) — элементарные симметрические функции от переменных хь т. е.
(/ - %0... (/ - %九)=广一s广 1 + ... + (- 1)"0九.
Теорема.
nlgy<L(ab ..., an)<nlgn.
Доказательство. Для доказательства нижней оценки можно предположить, что поле 々 алгебраически замкнуто. Согласно теореме 2.3, достаточно показать, что Grad W (аь ...,。九)》〃!・ Рациональное отображение ф, определяемое соотношением (2.1), есть в нашем случае морфизм kn-> knt такой, что Graph ср замкнут в 厶2”. Следовательно, пересечение W (аь ..., ап) с аффинной картой 力2九—{у。* 0} дает Graph ф. Поэтому по лемме 2.1 достаточно найти аффинное подпространство в 々2% пересекающее
Graph ф={(у!, у” ai(Y), ..., an(y)) : ye F}
в n! точках. Если мы обозначим координатные переменные в к2tz через 之1,...,之2九 и если 6Ь ..., 6〃w 归 попарно различны, то такое подпространство определяют равенства 2〃+】=о】 (6), ... . . •,之2九=。九◎.
Для доказательства верхней оценки положим L^—L^x,..., о九) и докажем индукцией по м (п > 1), что 厶九&Mlg(〃——1) + 1. Легко видеть, что для 〃&3 это неравенство верно. Следова тельно, достаточно доказать, что
L2九《 2厶九+ 2九 и厶2叶1 &L九+厶+】+ 2% + 1.
Докажем, например, первое неравенство. Пусть Xi, ..., х2п, / — переменные над k и
Р (/) = JI С 一 — а,т + • • • +(—1)"а”
2п
g(%)= П (/ 一")=广一瓦/"一‘++(一1广酊,
/==%+】一
2九
Р (0 F«) = □ (Z _修)=产一 5产7 +・・・+。2仆
Пусть, далее, 丫卜...,у2п попарно различные элементы из k. Так как линейные операции времени не требуют, то имеем
(ср. [12, лемма 2.1])
l(а1,• • •,0九)===L(瓦,• • •,6九)===L九, b(p(Yi), ..., P(Y2)q(Yi), ・・・, g(Y2/2)modai, ・・・, &) =。】), L (p(Y1) q(Y1),p (Y2九)g (Y2九)mod p (曲),…,q (也九))& 2n,
L(3, ・・・,c2n mod p(70^(70, p (y2n) q (y2n)) = 0,
следовательно, по теореме о транзитивности
厶九 ^ L (q,...,e2九)《 2L九 + 2/1. ■
Верхняя оценка из теоремы 3.1 показывает, что полученная в теореме 2.3 нижняя оценка для вычисления элементарных симметрических функций является почти наилучшей. Однако необходимо отметить, что при другом выборе времени операции это может оказаться уже не так. Например, если взять строго положительное время операции с конечной областью значений (например, а постоянно для умножения на скаляр), то из теоремы 2.3 немедленно получается нижняя оценка для Л (г, {аь ...,。几}) порядка nlgn. Однако не видно, как можно получить по порядку ту же верхнюю оценку. В этом случае примененный в доказательстве теоремы 3.1 метод вместе с использованием быстрого преобразования Фурье [3] дает лишь оценку О (nlgn).
Нижняя оценка теоремы 3.1 обобщается следующим образом.
Теорема. Пусть 尸 и々(%〔, ..., %九)—конечное множество рациональных симметрических функций, г ——степень трансцендентности F над 瓦 Тогда
Доказательство. Без ограничения общности можно считать, что 尸 алгебраически независимо над k и k алгебраически замкнуто. Пусть 尸={®,..・, а, и ф-— рациональное отображение, определяемое последовательностью функций (аь ..., аг). Как и в доказательстве теоремы 3.1, достаточно найти аффинное подпространство в kn+r, которое пересекает Graph (屮) в конечном числе точек, не меньшем г! (в отличие от того доказательства здесь ф, естественно, не обязано быть определенным на всем 々"). Пусть U = Def ф. Обозначим координатные переменные в ^г через zb ...,之九+「 и докажем сначала
следующее утверждение: если г < м, то существуют,&〃 н Y三々, такие, что U П {之? = Y} =# 0 и что функция
① Г U П {& = Y}: U П {& = у}-> 必
является доминирующей. Предполагая противное, получаем (мы всегда молчаливо применяем теорему о размерности слоев): так как。卜...,аг алгебраически независимы над 力,то ф является доминирующей. Уменьшая U, можно добиться того, что слои ф будут являться в точности (/г —г)-мерными. Пусть(Yi, ..., у九)巨U・ Тогда по предположению ф 11/ Q {2Z = yj не является доминирующей и поэтому все слои этого отображения имеют одинаковую размерность 》〃 ——「・ Следовательно, одна проходящая через у компонента многообразия ф"1 (ф (у)) полностью лежит в {zj = Yi}・ Это верно даже для всех проходящих через jy компонент многообразия ①一乂屮(у)), так как в противном случае нашлось бы бесконечно много точек jy(v) е Ф"-1(Ф(Y)) с попарно различной /・й координатой у,%, что привело бы по только что показанному к бесконечно многим непересекающимся компонентам многообразия ^1 (ф (у)). Поэтому все проходящие через у компоненты лежат в {之» = 丫3 для каждого /. Следовательно, у изолирована в ф"-1 (ф (у)), т. е. r — п. Получили противоречие. Из доказательства следует по индукции, что имеются 厶 < ...< in_r и 匕],・・・,匕九_「 w 財 такие, что ф:= ф t/П |г^ = у. ,... .・・,%_ =匕 _ } является доминирующей. Не ограничивая общности, предположим, что (九 ・•・,加_,= (1, ・・・,儿―г)・ Пусть Yn_r+i, ..., 丫九曰々 попарно различны и выбраны так, что у =(Yi, ..., у九)w U и ф*"1 (ф(у)) состоит из конечного числа точек. Так как а, симметричны, то @""«@(7)) имеет по крайней мере г! точек. Следовательно, пересечение Graph (<р) и подпространства, определенного равенствами
21 = W, ・・・,之九一r = Y九_r,之九+1 =01(工),・・・,22%=0九(y),
содержит конечное число точек, не меньшее, чем г!.
Следствие. Пусть §о=Е%? (1&Р《〃)・ Тогда
一万——厂sj&儿1g拉+ 7%
где р = 8 для поля k с нулевой характеристикой и р равно характеристике поля k 6 противном случае.
Доказательство. Положим а0 = s0 = 1, ар = 0 для р > 儿 и определим три степенных ряда, принадлежащих кольцу 々[[^ь • • •, %九]]•
s= 2 Sp, a= X (—l)p%, s= X (—l)°T(p— l)Op・ p>00》op>0
Из соотношений Ньютона ([16, стр. 126]) имеем
so = 5.(3.1)
Следовательно, из [18] получаем, что L(sb ..., srtmodcri,...,。九)& &7儿,а вместе с теоремой 3.1 это дает верхнюю оценку
L (si, ..., sj《儿ig儿+ 7儿・
Для того чтобы оценить степень трансцендентности множества {sb ..., s%}, рассмотрим дифференциалы Келлера:
dSp = pgx『i dx『
Очевидно, что для Char ^ = 0 они линейно независимы над k (xi, ..., Хп), а для Char^ = p>0 имеем dsQ = 0 при р 三 0 (mod р) и остальные sf линейно независимы. Следовательно, согласно замечанию из [4, стр. 192], %(1 —万)является нижней оценкой степени трансцендентности множества {sb ..., s九} над полем k.
Следующей задачей, к которой можно применить теорему 2.3, является одновременное определение численного значения данного полинома степени /г в m точках.
Теорема. Пусть с > 0, любое. Тогда существует с' > 0,
справедсправедпри котором для всех т, 〃,таких, что
справед
справед
ливо следующее утверждение*, если а。, ..., а九,уъ ..., ут — переменные над 々 и если й (а0, ...» пп, уь ..., у^) понимается как k-поле над а。, .. a> ут, то
mlg〃&L(*/|{%y;+ ...+а0: 1 </<m})</mlgn.
Аналогичный результат можно получить, если переменные п0, ..., пп заменить на конкретные значения а0, ..., ап е fe с ап#=0.
Док азательство. Нижйяя оценка. Без ограничения общности можно считать поле 々 алгебраически замкнутым. Пусть ф — отображение 归"44*^ —々俏,определяемое полиномами а^ + ... + а。 (следует иметь в виду, что, в отличие от обозначений разд. 2, а# здесь являются переменными). Если мы обозначим через 之卜・・・,zm координатные переменные в km.
то Graphs и 々"+1+”' будет описываться уравнениями %У;+ ・・・ +%)= 2i,
aЛ+-..+& = 2卅
Пересечем Graph ① аффинным подпространством а。 = а0,.., ・・・,а% = %, & = & ・.・,之俏=& причем а0, ..., ап, ^е 財 % *0, 。廿0 и при уже выбранных а; определим ^ так, что Р (у):= :=^пУп +.. • 1 (а。——С) имеет п различных корней (это возможно, так как Р‘ (у) =/= 0 и Р‘ (у) не зависит от g, поэтому Р (у) и Рг (切 имеют общие корни только для конечного множества значений《)・ Тогда это пересечение состоит в точности из nm точек. Если вместо q с самого начала взять конкретные значения g w 々 с aft =/= 0, то для получения а} =#0 достаточно к a九у;+ ... + a0 в случае необходимости прибавить 勿・ Доказательство в этом случае проводится аналогично (идея прибавления линейного терма позаимствована у Т. Гессе).
Верхняя оценка получается из метода Мёнка и Бородина [17] с помощью следующей леммы, примененной на К = =々(a。,.・•,У tn)*
3・5. Лемма. (Деление с остатком.) Пусть К есть k-поле, / — переменная над полем К, р》д 〃
рqp-q4-1
(3.2)(3.2)七 "/ = E "2 侬/ + X ",000о
(3.2)
(3.2)
причем Ui, s,侬厶 ry К, ^p^q ¥= 0« Тогда
厶(*/ 丨 ^0, • • •,侬р—q,「0,・・♦, %—1 mod 〃o,・・・,〃p, %,.・・,Uq) ^^
& 7 (p — q) + p《8p.
Доказательство. Если в (3.2) заменить / на ~ и умножить полученное равенство на 匕 то получим
2侬Z 厂 M ,
000夕—q+l
следовательно,
р—4p — qp — q
^2 Чр—i^ L ①一产 2 叫-”/(modNf+)
причем vq^i = 0 для i > q. Отсюда следует, согласно результату
Зивекинга [18], что/
厶(*/ 丨侬о,3p_q mod 〃o,・・・,〃冲 ® ・・・,Uq) & 7 (p — g) — 2.
С другой стороны, очевидно, что
厶(*/ 1「о,・•・, %—1 mod 〃о,・・•, 〃р, %,・・・,и«,侬0, . • •)侬「一 g) ^^ p -J- 1 (см. доказательство теоремы 3.1). Из этих неравенств следует лемма.
Для конкретных полиномов иногда получаются более точные результаты.
Теорема.
L(*/|y;, ・・・,^) = ^(lg^ + o(lgn)).
Доказательство. Верхняя оценка следует из работы Брауэра [2]・ Для получения нижней оценки вследствие неравенства L(*/ly;+i, •・・,У常i)《L(*/lyf,У^) +俏 можно пред
положить, что п не делится на Char kf и. применить последнюю теорему. |
Далее мы рассмотрим задачу нахождения численного значения полинома степени % в 加 точках, когда этот полином задан своими корнями..
Теорема. Пусть с > 0, любое. Тогда существует сг > О, при котором для всех ги, п, таких, что ^ < m <г^, верно следующее утверждение*, если 尤卜...,хп, у^ ..., ут — переменные над 々 и если k(Xi,..., yQ понимается как k-поле над хь ..., у^ то
mlg%《L(*/| {(力一%)・.•(勿一%): l&j《m})《c'mlg 械
Аналогичный результат можно получить в случае конкретных корней &,・♦・,自九.
Доказательство. Верхняя оценка следует из теорем 3.1 и 3.4. Для получения нижней оценки можно считать поле k алгебраически замкнутым. Graph <р и 归"+" X 々" описывается уравнениями
(У1 —%1)・・・(У1 —%) = 21,
(.Уш — %1) • • • (.Уш — %拉)^1 ^m*
Пересечем с ним аффинное подпространство
%i = &,・・・,% = &, ^1 = 0, ..., гт = О,
причем ^ выберем попарно различными. Тогда имеется 孔力 точек пересечения (если заданы конкретные корни 自厶 мы поступаем как в доказательстве теоремы 3.4). I
Обратимся теперь к вычислению коэффициентов интерполяционного полинома Ньютона — Лагранжа.
Теорема. Пусть %, ..., yni 之。,・・・,之九—переменные над 归,k (у。, • • •,之九)есть k-поле над Уо,・・・,2九 〃 рациональные функции а。, ..., ап^ k (у。,・・・,之九)определены системой урав^ нений
嘉必+・・・+% = %,
М«+・・・+% = %・
Тогда (п + 1) lg〃&L (*/| 的,・・・,а%) = О (nlgn).
Доказательство. Верхняя оценка следует из результата Мёнка и Бородина [17] и леммы 3.5. Для нижней оценки мы снова считаем поле k алгебраически замкнутым; ф — рациональное отображение 必"+"-> Если обозначить координатные переменные в 归"44 через 〃о, ..., ип, то Graphф будет описываться соотношениями
V/ #= /勿* 勿,
V/ ипу^...+% =马.
Пересечем с ним аффинное подпространство 〃о = а0, ..., нп = а九, % = &),••・,2九=厶,причем ап #= 0, а九」耍 0, а попарно различные « выбираются так, что 。九^",一 .・・ +。。=之,имеет п различных корней. Тогда это пересечение состоит в точности из 初^+i точек. I
Наконец, рассмотрим задачу определения численного значения интерполяционного полинома степени п в m новых точках.
3.9・ Теорема. Пусть с > 0, любое. Тогда существует с' > О, при котором для всех т, п, таких, что £ < m < пс, верно следующее утверждение} если у。, ..., yn+mi 之。,• • •,之九—переменные над k и если k (%, • • •,之九)понимается как k-поле над %,・・・,гп, то
m\gn^L^/\{any^+l+ ... + а0 : 1 < j< m) ) < /т 1g n, причем а。,・・・,ап^ k (у。,・• •,之九)определены уравнениями
%^大 + • • • +。0 =之0,
апУП++% =之九-
Доказательство. Верхняя оценка следует из теорем 3.8 и 3.4. При доказательстве нижней оценки снова примем, что k
алгебраически замкнуто. Graph ф состоит из всех точек (口°,...
〜+m *,・•・, Sn+m)三々2(九+1)+" 乂 々m, для КОТОрЫХ 小,%, попарно различны и для которых существуют а0, ..., а九,такие, что справедливы равенства
%巾+-.・+% =电,
%膿+^+…+出=靠+卅
Если фиксировать значения 口°, ..., т)〃 (попарно различные) и значения 之。,...,《九,то величины а0, ..., а九 однозначно определяются. Мы можем добиться того, что а九 + 0, а几一〔#= 0. Наконец, выберем 〃+1= •・・ =〃+/n = Z такими, что Р (у)= =^пУп + •… 4 (а。——0 имеет п различных корней. В итоге мы получаем Graph ф, пересекающийся с m-мерным аффинным пространством. Точки пересечения биективно описываются совокупностью 0ь+1, ・・・, Пп+т)» где каждое *九十了 является корнем Р(у\ Следовательно, их ровно штук.
4. ГЕОМЕТРИЧЕСКАЯ ФОРМУЛИРОВКА МЕТОДА ПАНА
Пусть 々° и 々一поле, PN = Р^ 伐)с координатными переменными у。, ・・・,yN и L — проективное подпространство в Р^. г0. ворят, что L определено над 々°, если выполнено одно из следующих эквивалентных условий:
. L является множеством нулей линейных форм
Z ^1У1 с a/W®・(4.1)
.厶 натянуто на точки у = (уо, . • •, 丫乂) с 丫了三々。. (4.2) Будем говорить, что L определено в бесконечном удалении над 々°, если выполняется одно из следующих эквивалентных условий:
Пересечение L с бесконечно удаленной гиперплоскостью определено над 瓦・ (4.3)
L является множеством нулей линейных форм
ауо + ^а%/ с а三財 а产 々°.(4.4)
L натянуто на точки (0, аь ..., а^) вместе с самое большее одной точкой (1, 。1,・・・, aN), причем az^ ^0, 。了三々.
(4.5)
Пусть теперь поле k алгебраически замкнуто, поле 瓦 бесконечно, хь ..., xrt — переменные над 瓦 A — k (хь ..., %п)—
Л0-поле над k U {хь ..., хп}. Мы снова считаем время 之=1(*,/} Следующая теорема представляет собой геометрическую фор-* мулировку теоремы 5 из [13].
Теорема. Пусть 尸 ={后,・・・,%} и々(尤卜・・.,/) и L (F) = m & п. Тогда W — W (fb ..., fr) порождается (п — /п)- мерными проективными подпространствами в Рп+г, т. е. каждая точка Р из W лежит в (п — гп)-мерном подпространстве LP из Р"+[ которое целиком содержится 6 W. Кроме того, можно добиться того, что для плотного 6 W множества точек Р подпростра яство Lp определено над 自 в бесконечном удалении.
Доказательство. Теорема 5 из [13] утверждает (исполь- зовать (4.5)), что в Graph (ф) (следовательно, также и в 解) имеется плотное множество точек Р, таких, что точка Р ле жит в (п — т)-мерном подпространстве, которое целиком содержится в IF и определено над 々° в бесконечном удалении. То, что W порождается (п — т)-мерными проективными подпространства ми, Получается из следующей леммы.
Лемма. Если W — замкнутое подмногообразие в Р^, то q-мерные проективные подпространства 6 Р^, целиком лежащие 6 取,образуют замкнутое подмножество М многообразия Грассмана GNt q J). Объединение этих подпространств замкнуто в W.
Доказательство.
L 三 М 令 VZ/ 三 Gm N-qU firnL#= 0.
Если J — соответствие инцидентности между PN и Gy то
М= П PM MLf[\W^GN^[\J)
LFGN、N-q
и поэтому замкнуто. Далее, U М = projpN ((Р“ X М) П «О, следовательно, оно также замкнуто.
СПИСОК ЛИТЕРАТУРЫ
Borodin A., Munro I., Evaluating polynomials at many points, Information Processing Letters (1971), 66—68. North-Holland Publishing Company.
Brauer A., On addition chains, Bull. Amer. Math. Soc., 45 (1939).
Cooley J. W., Tukey J. W., An algorithm for the machine calculation of complex Fourier series, Math. Cotnput. 19 (90), 297—301 (April 1965).
Matsumura H., Commutative algebra, New York, Benjamin, 1970.
Многообразие Грассмана GN q — совокупность всех «-мерных линейных многообразий проективного пространства Р". Далее, запись proj^ U означает проекцию многообразия U на многообразие V. — Прим пер ев.
Motzkin Т. S., Evaluation of polynomials and evaluation of rational functions, Bull, Amer. Math. Soc., 61, 163 (1955).
Mumford D., Introduction to algebraic geometry, Harvard Lecture Notes.
Пан В. Я., О способах вычисления значений многочленов. Успехи мат ем. наук, 21, вып. 1 (127), 1966, 103—134.
Paterson М.. Stockmeyer L., Bounds on the evaluation time for rational polynomials, IEEE Conference Record of the 12th Ann. Symp. of Switching and Automata Theory, 140—143 (1971).
Шафаревич И. P., Основы алгебраической геометрии, М.» «Наука», 1972.
Strassen V., Berechnung und Programm I. Acta Informatica, 1972.
Strassen V., Berechnungen in partiellen Algebren endlichen Typs. Computing 1972/73..
Strassen V.» Vermeidung von Divisionen, Crelle /. fur die reine und angew. Mathematik, 1973.
Strassen V., Evaluation of rational functions, Complexity of Computer Computations, Plenum Press, 1972.
van der Waerden B. L., Zur algebraischen Geometric, XIY, Math. Annalen, 115 (4), 619—642 (1938).
van der Waerden B. L., Einfiihrung in die algebraische Geometric, Berlin :Springer, 1939.
Ван-дер-Варден Б. Л., Алгебра, M.,《Наука》,1976.
Moenck R., Borodin A., Fast modular transforms via division, Proc. 13th Annual IEEE Symp. on Switching and Automata Theory, 90—96 (1972).
Sieveking M., An algorithm for division of powerseries, Zur Verdffentlichung bei Computing eingereicht. -
Элементарное доказательствооценки Штрассена')
4 Шёнхаге
Институт математики, Гюбингенский университет^Тюбинген^ ФРГ
Исходя из общих утверждений о степенях многообразий в проективный пространствах, Ф. Штрассен получил ) точные нижние оценки числа умножений или делений, необходимых для вычисления элементарных симметрических функций и при решении родственных задач. Его доказательство использует методы и результаты алгебраической геометрии Здесь дается элементарное доказательство
0. ВВЕДЕНИЕ
В работе [3] Штрассен показал, что любое линейное вычисление) элементарных симметрических функций 07(^1, ..., хп) (коэффициентов произведения 口 " + 修)=Z of) требует по крайней мере log?(孔!)〜儿 log? % умножений или делений. Его первоначальное доказательство использует методы и результаты алгебраической геометрии, в частности общий случай теоремы Безу. По многим причинам весьма желательно иметь также элементарное доказательство этого простого утверждения, и в настоящей статье приводится такое доказательство, для которого необходимы только основные сведения из алгебры.
В нашем доказательстве теорема Безу заменяется леммой об алгебраической зависимости полиномов. Применив ее к вычислениям, получим в разд. 3 основной результат этой статьи. Из него, как частный случай, мы сможем • получить оценку log2 (п!) для элементарных симметрических функций, а также перейти к установлению общей оценки Штрассена [3, теорема 2.3].
ЛЕММА ОБ АЛГЕБРАИЧЕСКОЙ ЗАВИСИМОСТИ
Любые k + 1 полиномов от k переменных хь ..., х^ алгебраически зависимы над полем ^. Нам нужна более точная
J)Schonhage A., An elementary proof for Strassen's degree bound, Theoretical Computer Science, 3 (1976), 267—272.
формулировка этого факта с уточнением степеней соответствующих полиномов.
Лемма 1. Для любых полиномов %, 3,・・・,fk^K[xit х^ степеней deg 九=/^》1 существует полином В (z0,...,之々)三 w К [之0,...,之々],В#=0, степени & N = n^ ... nfe относительно 之。, такой, что
B(f0, L九) = 0・d-D
Док азательство. Положим 3(%,…,弘)==£ 6启窝;】・•・或纟 где индексы v = (y0, ・•・,и汽)подчинены ограничениям
Uo&M 现价 + D咼+ …+ "拠 &d)(1.2)
Тогда замена 之尸九(0《i《々)дает
8 00,fk) = X 工23
где сумма берется по всем одночленам степени
Ш1 + m2 ++ m々 《 d,(L3)
и коэффициенты с^ являются однородными линейными формами относительно bv. Таким образом, (1.1) сводится к системе линейных уравнений 0加=0, которая, конечно, будет иметь нетривиальное решение, если число неизвестных превышает число уравнений, т. е. если число неотрицательных целых решений (и。, ..., yfe) в (1.2) больше, чем число одночленов. Согласно (1.3), последнее равно ( ^ ^ ^ ) • Аналогично, число решений неравенства v^ + v2n2 + ・…+ vknk < q, скажем S (q), не меньше ("£)/м так как все решения неравенства щ + ... + 也 & д могут быть получены как щ = и网 + rz (1 《i &々) посредством N = щп2 ・・・孔々 оставшихся систем (ri, ...» rfe) с 0&乙<& (1 <z<^).
Поэтому число решений неравенства (1.2) удовлетворяет соотношению
2 sm-two))2 ("竿+)加〜镐产
Vo《NVq《N
и будет превосходить I 左 丿~丁 для достаточно больших значений d・
Более сильный вариант леммы 1 можно найти в [2, стр. 126].
Здесь J — параметр, значение которого определится позже. — Прим, перев.
ЛИНЕЙНОЕ ВЫЧИСЛЕНИЕ
Вычисление С над полем К формально можно определить как последовательность %, q2i ..., q九,...,qki элементы которой являются частными полиномов, qi^K Ui, ..., %九),причем qi=%i, q? = Х2,・..,qn = Хп и последовательность равенств, описывающих вычислительные шаги, имеет вид
9加=%。力,где z, / < /п и 。已{+, -,*,/},или qm = dmqh или qm = am, где am е ^, n<m^k. '
Длина L (С) определяется как число умножений и делений в С. Говорят, что С вычисляет G = {&卜• • •, gs}, если G 口 {^, ..., q& Число L (G) = min {L (С): С вычисляет G} называется сложностью системы функций G.
Теорема 2. Пусть С — вычисление длины / = L (С), которое вычисляет {gi,・・・,g九}三 К (%i, ..., % J Тогда для любого полинома 工九]существует полином В (г0,...,之九)* О степени《2 = 2“ относительно 2°, такой, что
3(%, gi,・・・,g%) = 0・
Доказательство. Пусть С формализовано, как описано выше. Существуют индексы гь ..., rn ^ k, такие, что g» = q”. Введем дополнительные переменные %%+ь ・••, %尼 и положим % = % для 1 ^ / ^ п.(2.2)
Кроме того, для каждого вычислительного шага в соответствии с (2.1) определим полином
7 = Хm 一(修 0 勺)7 = Хm 一(修 0 勺)f m = %/n%/ —修,f m = %/n%/ —修,ИЛИ % = %п—%Л,ИЛИ % = %п—%Л,ДЛЯ。W { + , —, *}, если qm = qtlqh(2.3)или M = %n —%1・ДЛЯ。W { + , —, *}, если qm = qtlqh(2.3)или M = %n —%1・
7 = Хm 一(修 0 勺)
7 = Хm 一(修 0 勺)
f m = %/n%/ —修,
f m = %/n%/ —修,
ИЛИ % = %п—%Л,
ИЛИ % = %п—%Л,
ДЛЯ。W { + , —, *}, если qm = qtlqh(2.3)
или M = %n —%1・
ДЛЯ。W { + , —, *}, если qm = qtlqh(2.3)
или M = %n —%1・
Все эти полиномы имеют степень 1 или 2, и в точности Z из них имеют степень 2. Таким образом, в силу леммы 1, существует полином 3()(之0,・・・,之尼)=#0 степени < ^ = 2Z относительно г0, такой, что &行о,九,・・・,九) = 0・
Для того чтобы преобразовать это тождество в алгебраическую связь между % и g, из теоремы 2, рассмотрим гомоморфизм
Н团:К [%i, • • •, %尼]—■^ К (%1, • • •, %九)[%т+1, • • •, %"
определяется равенствомопределяется равенствомi & m, z > m.i & m, z > m.(九《团《归),где нт однозначно
определяется равенством
определяется равенством
i & m, z > m.
i & m, z > m.
(qt дляHmXi = {
m I X/ для
Ввиду того что 〃"о = % и Hkfi = gi *) (см. (2.2)), достаточно для м《/п &々 доказать утверждение
Pw: Существует полином Вт (г0, ..., 2九;zm+b ..., гА) #= О степени относительно 2°, такой, что
Вm (Нmf0,Нmfti; ^mfш+Ь • • • > ”/尼)°・
Доказательство проведем по индукции. Из того, что 仇=勺 для i^n, имеем "九九=九 для всех i. Поэтому полином Во из леммы 1 есть соответствующий Вп в Р九.
Для m > n, m&々 рассмотрим полином Вт^ который удовлетворяет индуктивному предположению Pw_r Пусть г^ — максимальная степень 之抗,которая делит Bm_r Тогда Bm_x = B^Jz^ будет также удовлетворять Р^.ь так как Нт^т =# 0 (заметим, что Нtn—Jtn относительно zm всегда имеет степень 1; в случае деления соотношение (2.3) показывает, что Htn_iftn = хт • ^/—7ь где q^ =# 0). Кроме того, полином Вт> определяемый подстановкой гт->0 в Дп_1,
^m (之0, . ■ ■,之九,之m+1, . ■ ■, 2尼)^m-1 (之0,. ■ •, ^m»0,n/n+1, . ■ ■,2后)
отличен от нуля. Переход от "m—i к Нт означает применение гомоморфизма-
К (%1, • • • , -^п) [-^/п, • • • > %尼]"""^ К (%1, • • • , %л) [Х/я + 1,・・・,&],
индуцированного заменой xm ~> qm. В силу равенства Hmfm = 0 он переводит月…("*标.…"…后)=0 b
3/n ("/nfo, • • •, Hmfti; ^mfm+if • • • > ^mfk) == ®* ■
НИЖНИЕ ОЦЕНКИ
Теперь мы готовы доказать основные теоремы этой статьи. Они основаны на рассмотрении рациональных отображений K&f KW, индуцированных частными полиномов gb ..., gsR wKo(%i, •••,工九),где Ко — бесконечное поле. Такие отображения определены почти всюду, т. е. всюду, кроме множества нулей некоторого полинома £(хь ..., %九)六 6・ Сначала мы рассмотрим специальный случай s = n.
Теорема 3.1. Если Ко — бесконечное поле, G = {§ь ..., g九}三 口 Ko(%i, ..., Хп) и dwN таково, что для почти всех 《= = &,•・•, 〃)三 К片 система уравнений
禽因,・・・,£) = * (Ki^ri)(3.1)
Здесь 1 ^I^n. — Прим, перев.
имеет по крайней мере d различных решений 自= (&,...,自〃), то 厶(G)》log2 d.
Доказательство. Пусть С — оптимальное вычисление для G длины / = L (G). Введем дополнительные переменные «ь ..., ип и рассмотрим С как вычисление над расширенным полем К = До (〃1,・・・,〃九)・ Применение теоремы 2 к С и /0 = =〃1%1 + ... + ипхп дает полином
,(2(),.. ., 2九)=百 & (马,• • •, 2九)24
с Л1&2", 4M⑵,・・・,гп) #= 0, такой, что
М/ 九、/
2 ^i (gi (%i, • • •, %九),• • •,Sn (%i,・• •,%九))(X 〃/») === 0. (3.2) /=o\t=l/
Пусть £(2i, ..., гЛ) #= 0 — такой полином, что £(*,...,之九)=0, если система (3.1) имеет меньше чем d решений. Тогда мы можем выбрать 也卜...,点)三 Кб так, что Лм(^,...,匕)У=0 и £(&,・・・,厶),0 (см., например, [1, стр. 143, следствие 2]).
Внося d различных решений 円)= (*),...,自?)) для этой правой части (3.1) в (3.2), получим d различных нулей 口丫 =
=X 〃君б ненулевого полинома 九(у}= Х4(&, •••,厶)“,сле- довательно, 2 ^M^d, /》log2 d. I
Теперь нижняя оценка log2 (п!) для сложности элементарных симметрических функций может быть получена простым применением теоремы 3.1. Мы должны только заметить, что
°7 (自 1, • • •,自九)=之/(1&/& 九)(3.3)
эквивалентна полиномиальному тождеству
И С + &) = 2 之/产' =「(/)也о = 1)・
Без ограничения общности можно считать поле Ко алгебраически замкнутым. Тогда, за исключением нулей полинома Е隽 1,...,厶),равного дискриминанту полинома р(/), всегда существует в точности d = п! различных решений системы (3.3).
До сих пор мы рассмотрели только случай s = n. Общий результат дает
Теорема 3.2. Пусть К — бесконечное 九о〃е, G = {gi, ... ...,gs}三 К Ui, ..., %) и пусть б, ...,(prt — линейные формы от n-^ s переменных, такие, что система уравнений
W (&, • •・,%, gi © ・・・,gs (S) = U (1 & j & %) (3.4)
имеет по крайней мере d различных решений 自 е К" для почти всех (G,・・・,*)三 К". Тогда L (G) > log2d.
Доказательство состоит в сведении к теореме 3.1. Для этого определим
g/ (%1,・• •,%/г) = W (%1, • • •, %九,g 1 (%1, • • •, %九),• • •,gs (%1,%九))
(У&〃)
и применим теорему 3.1 к G = {gi, ..., g^. Так как линейные операции не учитываются, мы получаем log2 d^.L(G)^L (G).
Оценка Штрассена через степень имеет вид L (G) ^ log2 6, где 6 обозначает степень графика Г 三长…рационального отображения, индуцированного gi, ..., gs. Для того чтобы получить эту оценку из теоремы 3.2, мы используем тот факт, что почти все s-мерные аффинные подпространства в К'*' пересекаются с Г в точности в 6 точках. Следовательно, должны существовать 屮卜・・・,屮九,удовлетворяющие требованиям теоремы 3.2 с d = 6.
СПИСОК ЛИТЕРАТУРЫ
С. Ленг, Алгебра,《Мир》,М., 1968.
О. Perron, Algebra 1,3rd ed. (de Gruyter, Berlin, 1951).
V. Strassen, Die Berechnungskomplexitat von elementarsymmetrischen Funktionen und von Interpolationskoeffizienten, Numer. Math., 20 (1973), 238—251. (Русский перевод см. на стр. 5 настоящего сборника.)
Сложность монотонных схемдля булева умножения матриц
М・ С. Патерсон
В работе показано, что для построения схемы без обратных связей, вы* числяющей булево произведение матриц размеров【X К н К X J, при использовании лишь двухвходовых конъюнкторов и дизъюнкторов требуется не менее 〃К конъюкторов и не менее // (^ — 1) дизъюнкторов. Кроме того, любые две такие схемы с минимально возможным числом элементов того и другого типа тождественны с точностью до коммутативности конъюнкции и дизъюнкции и ассоциативности дизъюнкции.
ВВЕДЕНИЕ
Произведением булевой матрицы 4 размера /ХК на булеву матрицу В размера ^ X ^ (т. е. булевым / X ^С X ^произведением) называется матрица С размера / X ^, определяемая следующим образом:
к
с〃= X aik & bkh £=1, ・・・,/; / = 1, ..., J.
Мы будем рассматривать вычисление булевого произведения логическими схемами без обратных связей, содержащими лишь двухвходовые элементы & и V • Эти схемы будут называться монотонными в соответствии со свойствами их элементов. На рис. 1 приведен пример монотонной схемы для 1 X 2 X 1-произведения. У нее четыре входа: а^, ®2, Еь 尻1 и один выход с“・ Вообще схема для / X ^С X /-произведения имеет /К + К/ входов и 〃 выходов.
Конечно, само определение произведения матриц сразу наводит на мысль о схеме с IJK элементами &, выходы которых объединяются с помощью //(К——1) элементов V- Основной результат статьи состоит в том, что каждое из этих чисел является минимальным и что любая минимальная монотонная схема для булевого произведения имеет такой вид, как указано выше. Некоторые идеи нашего доказательства заимствованы из недавней статьи Пратта [3], в которой он доказал нижнюю оценку, равную №[2、для числа элементов & в случае
вычисления ^ X Л^ X N-произведения. Он обратил внимание на то, что подобные результаты приобретают особый интерес при сопоставлении с конструкцией из [1] (немонотонной) схемы
Рис. 1.
для булева V X АГ X V-произведения, которая требует лишь0(仆7.(10g2产)
элементов &, V и инверторов〔)・
Следствием наших результатов является небольшое усиление некоторых результатов статьи [2] о (min, +)-произведении
Вначале Фурман (см. Фурман М. Е., О применении метода быстрого перемножения матриц в задаче нахождения транзитивного замыкания графа, ДАН СССР, 194, № 3, 1970, 524) и Манро (см. Munro I., Efficient determination of the transitive closure of a directed graph, Jnformation Processing Letters, 1, 1971, 56—58) заметили, что для эффективного вычисления булева произведения двух матриц следует сначала методом Штрассена (см, Штрассен В., Алгоритм Гаусса не оптимален, Кибернетический сборник, новая серия, вып. 7, 1970, стр. 67—70) найти обычное произведение этих матриц, а затем в этом произведении элементы, отличные от нуля, заменить единицами.
Для воплощения в логической схеме этой идеи важно, чтобы при применении метода Штрассена к двум матрицам, состоящим из нулей и единиц, ни на каком этапе не получались слишком большие числа. Очевидно, что элементы матрицы-произведения в данном случае не превосходят N, Фишер
матриц из действительных чисел, т. е. произведении, в котором 々minimum》и 《+》заменяют соответственно 《+》и 《X》,встречающиеся в обычном определении произведения матриц из действительных чисел. Это связано с тем, что любая (min, +)-схема для произведения матриц становится схемой для булевого произведения, если《min》и《+》заменить соответственно на 《V》и《&》.
ОБОЗНАЧЕНИЯ И ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
С этого момента слово схема будет означать монотонную схему, вычисляющую булево / X К X/-произведение матриц для некоторых фиксированных натуральных /, У, К. Каждой «линии» или дуге схемы естественным образом сопоставляется монотонная булева функция от входных переменных. Функции, сопоставленные входам элемента, называются его аргументами, а функция, сопоставленная его выходу, — результатом его вы- числения. Мы будем часто опускать знак конъюнкции, например «ацйц» будет означать «ан & &ц», и для краткости будем писать 1 вместо истинно и 0 вместо ложно. Булеву функцию мы будем отождествлять с множеством наборов значений аргументов, на которых она обращается в 1, так что мы сможем, например, писать
0三Дцйц三Пц三а” V力и三1.
Обозначим через U следующую последовательность входных переменных:
(а“ •・・,О/к,加 1,・••,力kj)
и Мейер по индукции показали [1], что и все промежуточные результаты также не очень велики — не превосходят 16№.
Однако более изящный подход предложил Рабин [1] Нетрудно заметить, что в алгоритме Штрассена над числами выполняются только три арифметические операции: сложение, вычитание и умножение. Ясно, что если каждую из этих операций выполнять по модулю М, то и окончательный результат (элементы матрицы-произведения) будет вычислен по модулю М, а это при М > ^ не отличается от самого результата. Положим М = 2匕 где 々 удовлетворяет условию
2J&NV2&(1)
и будем представлять числа в позиционной двоичной системе счисления. Выполнение операций по модулю М = 2尼 сводится к их выполнению над 々 младшими разрядами тех же чисел. Остается заметить, что в силу условия (1) k & log2 % + 1
и что сложность логической схемы, реализующей сложение или вычитание двух 饱-разрядных чисел, равна О (々),а сложность логической схемы, реализующей умножение двух таких чисел, не превосходит О (М+°) (см., например, Шенхаге А., Штрассен В., Быстрое умножение больших чисел, Кибернетический сборник, новая серия, вып 10, 1973, стр 87—98). — Прим, перев.
и произвольные элементы из U будем обозначать буквами х, %i, %2, • • • • Для обозначения произвольных монотонных функций будем использовать буквы s, s', Si, s2, ... . Приведем без доказательства два простых свойства монотонных функций:
С1. Если S] V s2 3 X1X2, ТО S[N%1%2 ИЛИ S2^%1^2・
С2. Если S1S2三%1 V・・・V /, то Si三%1 V・・・V 修 или s2三 三%1 V • • • V %尼・
УПРОЩЕНИЕ
В принципе можно построить весьма неэффективные схемы. Процесс упрощения, описываемый в этом разделе, состоит в выполнении локальных преобразований схемы с целью удаления лишних элементов при сохранении функционирования схемы. Например, если s〔三 s2, то элемент & с аргументами Si и S2 можно удалить из схемы, поскольку результат его вычисления это просто Si・ Это упрощение, а также многие другие можно сформулировать в виде очевидного правила дублирования:
П1. Если gi и g2 являются элементами (или входом и элементом), вычисляющими одну и ту же функцию, и g2 в схеме не предшествует g〔, то g2 можно удалить из схемы, заменив все соединения с выходом g2 соединениями с g〔・
Будет удобным в качестве входов схемы допускать константы О и 1, однако, очевидно, их всегда можно исключить применением П1.
Более интересные правила упрощения определяются информацией о выходных функциях схемы. Здесь вводится это важное понятие конкретного упрощения. Сравнительно простое преобразование позволяет удалять из функции члены, являющиеся «бесполезными». Например,《а^ V 612^21》можно заменить на《а”》, поскольку член «612&2р не может внести ничего существенного в окончательный результат. Функцию (множество), содержащую все такие «бесполезные» члены, будем называть Dross.
Dross = VV V bkjbk4f V V т
(i,々)*(*,/И*(尼,了)¥=(%厂)i, //
В терминах программирования
П2. Для любого % 三 U, если % и s 三% V Dross, то s : = %・
Заметим, что ограничение, состоящее в том, что % должна быть входной переменной, требуется не для справедливости П2,
а для того, чтобы обеспечить удаление хотя бы одного элемента при применении П2.
Справедливость П2 легко установить, проследив через всю схему по направлению к ее выходам за тем эффектом, который вызывают сделанные изменения. Очевидно, что на каждом шаге только 《dross》и удаляется.
Следующая серия конкретных упрощений требует определенной проверки. С их помощью выявляются функции, которые настолько велики, что их можно заменить константой 1. Будем обозначать функцию V а泣匕尼/ при всех z, j через с〃・
Лемма. При всех / #=几 j ¥=厂 и всех i〃, j〃 для любой монотонной функции s справедливо утверждение: если s(U, a〃bi/V V а у 也 и) с『у, то s(U, 1) = & 〃/〃.
Доказательство. Предположим, что лемма неверна. Тогда существует такой набор а значений входных переменных, что на наборе а
с j〃j〃== s(U, %i"i/V а『〔б] *) ^10, но s (U, 1) = 1 •
Пусть а максимальный такой набор, т. е. при замене в наборе а любого значения с 0 на 1 значение с,〃/〃 также изменяется с 0 на 1. На наборе а должно выполняться равенство
°〃4/ V "『也厂==°・
Без ограничения общности мы можем считать, что а〃 = 0 и либо (i) % = О, либо (ii)仇厂=0.
Поскольку набор а является максимальным, изменение а〃 с 0 на 1 влечет за собой изменение q〃*. Следовательно, Z = f, и 仇* = 1. В случае (i) аналогичным образом устанавливаем, что,=,〃,а это приводит к противоречию. В случае (ii), с одной стороны, мы имеем b\^ = 1,历厂=0 и, следовательно, 厂 I j〃,а с другой стороны, мы знаем, что изменение 历广 с 0 на 1 влечет за собой изменение q〃/〃. Это противоречие доказывает лемму. ■
Следствие 1. Если s (U, s') = g〃/〃 и а〃% V。〃也厂三 s', то s(U, l) = g〃j〃・
Доказательство. В силу монотонности. |
Конкретные функции, для которых будет применяться следствие 1, такие: a〃,V 勿”仇/V bq,, a” V 仇广
Следствие 2.
Если s(U, aabij V。『也/) = &〃/〃,то s(U,儿力= &〃/〃.
Если s(U, aubif V。〃仇厂)=&〃*, r。s(U, а〃)= с【〃广
Доказательство. В случае (i) существует такая монотонная функция s', что при любом n выполняется равенство s'(U,之)=s (U, n & 61/). Остается применить следствие 1 при z = a〃\/a〃i・ Аналогично доказывается (ii). |
С помощью следствия 1 устанавливаются следующие правила упрощения, в которых везде i =# У и / #= /:
ПЗ. Если的 1 V a『i 三 s,то s : = 1・
П4. Если61/ V bir 三 s,то s : = 1.
П5. Еслиа〃 V bi/ 三 s,то s: = 1.
С помощью следствия 2 получаются:
П6. Если&\Ь» Y avib”三 s и Ь» тоs: = Ьц.
П7. Еслиа〃仇j V 勿向厂三 s и а〃,тоs:= a〃・
ПЛАН ОСНОВНОГО ДОКАЗАТЕЛЬСТВА
Первое, что можно было бы сделать, это попробовать отыскать взаимно однозначное отображение троек (/, /,月)на элементы &, поскольку можно ожидать, что существует по крайней мере один элемент &, который 《в основном» вычисляет aik & bkj. Однако, по-видимому, никакого такого «естественного» соответствия не существует. Такой пример, как на рис. 1, который не допускает конкретных упрощений, говорит об имеющихся здесь трудностях. Доказательство, которое мы приводим, основано на отыскании аналогичного отображения пар (厶 /) в элементы &, соответствующие членам。〃&仇,.Затем эти элементы & удаляются из схемы в результате выполнения подстановок: а〃 = 1 при всех z и 仇/ = 6 при всех /. Полученная схема вычисляет булево / X (К — 1) X /-произведение, поэтому снова можно найти по крайней мере // элементов &, соответствующих членам ai2 & &2/, и т. д. Для элементов 廿 процедура аналогична. Значительно облегчает рассуждения соглашение о том, что всегда, когда это возможно, применяются правила упрощения.
Для элементов & отображение задается введением для каждой пары (z, /) предиката Q订,который определяется на функциях, сопоставленных линиям схемы. Множество первоначальных появлений Qij, обозначаемое через /(Q〃),состоит из
тех элементов, у которых ни один из аргументов не удовлетворяет Q〃, а результат вычисления удовлетворяет Q〃・ Предикат Q” выбран так, что никакая входная переменная не удовлетворяет ему, а с〃 удовлетворяет. Это служит гарантией того, что /(Q〃) непусто. Далее, доказывается, что при разных (/, /) множества /(Q〃) попарно не пересекаются, что / (Q订) содержит лишь элементы & и что подстановки ап = 1, й^ = 0 позволяют удалить из схемы все элементы, входящие в / (Q〃)・
Для элементов V вводятся аналогичные предикаты R”. Если выполнено условие ^ > 1, множества / (R〃)попарно не пересекаются, непусты и содержат лишь элементы V. Те же самые подстановки позволяют удалить из схемы эти элементы V.
НИЖНИЕ ОЦЕНКИ
Теорема 1. Всякая (&, V Усхема для булева / X К X 人 произведения содержит не менее //К элементов & и не менее /,(К — 1) элементов V.
Доказательство. Можно считать, что общее число элементов в схеме минимально, и, таким образом, никакое нетривиальное применение правил упрощения невозможно.
Определим Q订 при любых /, / следующим образом:
Q"(s) 4=> a〃忆= s, a" 空 s,仇了生 s.
Как и было сказано в разд. 4, / (Q〃)будет обозначать множество первоначальных появлений Q〃・ Пусть элемент g входит в / (Qf/) и имеет аргументы s〔 и s2. Если это элемент V, то а〃 生 S] и Ьн 空 Si, поскольку Qu (st V s2). Следовательно, “〃%i 生 Si, ибо Q“(si)・ To же самое верно для s2, и, таким образом, в силу С1 из разд. 2 %闻空 s】V s2, что противоречит Qij(s1 V s2). Следовательно, g обязан быть элементом &. Теперь нетрудно показать, что а〃 三 s【и bi戶 s?, или наоборот. Без ограничения общности мы можем считать, что имеет место первое. В этом случае подстановка а〃 = 1, согласно П1, позволяет удалить из схемы все элементы, входящие в /(Q〃)・
Предположим, что g входит в /(Q〃) Г)/@『)・ Тогда либо 。” V "打=Si и 仇了 V仇丁三® либо
的1 V瓦广胃> mь" V аn三s2.
Если бы выполнялось (厶 /),(几 f), то в обоих случаях можно было бы применить какое-нибудь из правил ПЗ, П4, П5, что противоречит нашему соглашению о минимальности схемы. Следовательно, множества / (Q订)попарно не пересекаются.
Считая ^ > 1, определим R” при любых /, j следующим образом:
Rtj (s) u> %也/三s三4Vb中 s主ь中
где 4 = V aik.
Пусть элемент g входит в / (R订)и имеет аргументы s^ 询・ Если это элемент &, то Si 空 4 V 仇了 и s?生 4 V 仇力 поскольку R//(Si&S2), но [R订回)и ~| Rtj (s2). Но тогда в силу С2 s^&s?军 生 4 V 61/, что приводит к противоречию. Следовательно, g является элементом V, и, таким образом, s【и s2 оба содержатся в Xz V 仇尸 В силу С1 хотя бы один из них, скажем Si, содержит a^bii и поэтому s〔三仇力 ибо 口%®). В этом случае подстановка bi/ = 0 позволяет удалить из схемы все элементы, входящие в / (7?订).
Предположим, что g входит в / (R〃)f] / 依竹)・ Тогда s】三 三仇/&(4fV 仇г) и, таким образом, / = /, ибо 。也尸 s「 Поскольку Rq(si V s2), мы имеем s?生仇/ и поэтому @力仇/生 s?, так как П R^j (s2). Следовательно, &,也产 s】.Таким образом, 的自/V 的4仇产 Si 二仇了. Если,,几 то, согласно П6, мы можем положить si = d/. Поскольку теперь
仇/三 Si V $2 三(4 V 仇/) & (4,V Ь\» ^ b、j 7 Dross,
из П2 следует, что можно положить 8{\/ s2 = 61/, и, таким образом, в силу П1 элемент g можно удалить из схемы. Полученное противоречие доказывает, что множества / (R订) попарно не пересекаются.
Ни при каких /, / входная переменная не удовлетворяет ни Q”, ни R”, в то время как Q/ удовлетворяет Q〃, а если ^ > 1, то также и R〃. Отсюда следует, что если К > 1, то все множества / (Q〃)и / (R〃)непусты, причем если сделать подстановки а” = 1 при всех i и 仇/ = 0 при всех /, то все элементы, входящие в / (Q〃)или / (R〃),можно будет удалить из схемы. Ввиду того что множества не пересекаются, это составит по крайней мере /У элементов & и по крайней мере /7 элементов V- Оставшаяся схема вычисляет булево / X (К ——1)义 X /-произведение, поскольку функция на выходе (厶 j) стано-
вится теперь равной \/ ci^bk^ При ^ = 1 подстановка приводит к удалению по, крайней мере IJ элементов &. Поэтому проходит доказательство теоремы по индукции. |
ХАРАКТЕРИСТИКА ОПТИМАЛЬНЫХ СХЕМ
Теорема 2. Всякая схема для булева / X К X J-произведения матриц с минимальным числом элементов как &, так и V, при всех 厶 J, k вычисляет aik & bkJ прямо IJK элементами &, а потом для каждой пары (z, /) вычисляет V ctik & bkl с помощью К——1 элементов V при их общем числе //(К ——1). Таким образом, любые две минимальные схемы можно перевести друг 6 друга, используя только коммутативность операций & ассоциативность операции V-
Доказательство. Пусть имеется схема с минимальным числом элементов & и минимальным числом элементов V- Тогда при подстановках а” = 1 при всех / и 勿=0 при всех / могут быть удалены лишь элементы, входящие при некоторых /, j в / (Qz/) или в / (/?“)• Поэтому, в частности,生〔может быть аргументом только у элементов из /(Q/?) или из / (R" при каких-то ,, /. Анализ доказательства теоремы 1 показывает, что последний случай невозможен, так что а〃 может быть аргументом только у элементов &. В силу симметрии булева произведения матриц каждая входная переменная является аргументом только у элементов &. Теперь легко показать, что в такой схеме нет элемента с результатом вычисления s, удовлетворяющим условию х S s, где х — входная переменная. Но тогда из доказательства теоремы 1 мы видим, что элемент & из j(Q“)имеет аргументы а〃 и 仇广 Поэтому снова в силу симметрии все ПК элементов & минимальной схемы имеют пары аргументов (aik, bQ для всех z, /, k. Поскольку U выходов схемы должны быть вычислены прямо по этим //К результатам с помощью IJ (К — 1) элементов V, заключительная часть доказательства теоремы тривиальна.
ЗАКЛЮЧЕНИЕ
Некоторые приемы, использованные в этих доказательствах, могут иметь более широкое применение. Рассматривая «конкретные упрощения», мы видим, что знание свойств выходных функций схемы позволяет делать нам неожиданные локальные упрощения, которые в общем случае невозможны. Было бы
интересно выяснить, распространяется ли это на немонотонные схемы. Метод, связанный с рассмотрением «первоначальных появлений» соответствующим образом выбранных предикатов, очень удобен в тех случаях, когда он применим. Разумеется, трудность состоит в правильном выборе предикатов, поскольку интуитивно они неочевидны.
Представленные здесь результаты дают удовлетворительный ответ на вопрос о сложности монотонных схем для булева произведения матриц. Весьма близкой задачей является нахождение транзитивного замыкания квадратной булевой матрицы. Известно, что в этом случае сложность имеет такой же порядок, как для произведения матриц, однако пока еще остается заметный разрыв между верхней и нижней оценками. Автор предполагает, что полное решение этой задачи получить значительно труднее.
Автор приносит благодарность М. Фишеру, оказавшему большую помощь в прояснении некоторых доказательств.
СПИСОК ЛИТЕРАТУРЫ
Fischer М. J., Meyer A. R., Boolean matrix multiplication and transitive closure, IEEE Conf. Rec. 12-th Ann. Symp. on Switching and Automata Theory (1971), 129—131.
Kerr L. R., The effect of algebraic structure on the computational complexity of matrix multiplication, Ph D. Thesis, Dept, of Computer Science, Cornell University, 1970.
Pratt V. R., The power of negative thinking in multiplying boolean matrices, Proc. 6-th ACM Symp. on Theory of Computing (1974), 80—83.
Теория неподвижной точки программ^
Манна
ВВЕДЕНИЕ
В этой главе рассматриваются методы исследования свойств рекурсивных программ. Мы будем обсуждать достаточно ограниченный класс рекурсивных программ, аналогичных таким известным языкам программирования, как Алгол и Лисп. Например, следующее выражение является рекурсивной программой, областью определения которой служит множество целых чисел:
Р: F (х, у)уесз % = У то у + 1 иначе 尸“,尸(%—1, у + 1)).
Главное отличие рекурсивных программ, которые рассматриваются в этой главе, от программ, введенных в гл. 4, разд. 4.4.1, состоит в том, что мы считаем базисные функции и предикаты частичными, т. е. неопределенными для некоторых аргументов. Это довольно естественно, так как они представляют результат вычисления, которое в общем случае может быть определенным для одних входов и неопределенным для других. В качестве предельных случаев мы включаем частичные функции, определенные для всех аргументов (это полностью определенные функции), и частичные функции, неопределенные для всех аргументов.
Рассмотрим следующие функции:
%(%> У): есаи % = у то у + 1 иначе х+ 1, f2(x, у): если х》1то % + 1 иначе у — 1,
f3(х, у): если (%》у) Л(х — у четно) то х + 1 иначе не определено.
Эти функции имеют интересное общее свойство: если при каждом / (l&i《3) заменить все вхождения символа 尸 в про-
】)Настоящая работа представляет собой перевод гл. 5 книги Manna Z. Mathematical Theory of Computation, New York, McGraw-Hill, 1974.
S
1974 by McGraw-Hill Inc.
Перевод на русский язык, «Мир», 1978.
грамме Р на функцию fb слева и справа от символа -ф= окажутся одинаковые частичные функции, т. е.')
fi (х, у) = если х = у то у + 1 иначе ft (х, Л(х — 1, у+ 1)).
Будем говорить, что функции fb f2 H /з — это неподвижные точки рекурсивной программы Р・
Среди этих трех функций функция % выделяется одним важным свойством: для любой пары целых чисел〈居 у〉,таких, что /з(%, У) определена, т. е. и разность х — у четна, обе функции fi (х, у) и "(%, У)также определены и имеют такое же значение, как и /3 (х, у). Будем говорить, что % менее определена или равна Л и /2> и обозначать это через % 三/\ и % 三 %. Можно показать, что % обладает этим свойством не только по отношению к 片 и %, но и по отношению ко всем неподвижным точкам рекурсивной программы Р. Более того, f3 (х, у) является единственной функцией, обладающей этим свойством, и поэтому f3 называется наименьшей (определенной) неподвижной точкой для Р. Один из наиболее важных в этом направлении результатов получен Клини, который показал, что каждая рекурсивная программа Р имеет единственную наименьшую неподвижную точку fp.
Ключевой проблемой для обсуждаемого класса рекурсивных программ является следующая: какой вид имеет частичная функция Д определяемая рекурсивной программой Р? По этому поводу имеются две точки зрения.
Метод неподвижной точки. Допускается существование единственной наименьшей неподвижной точки fP.
Вычислительный метод. Допускается существование вычислимой функции Ср, которая получается при выполнении определенных правил вычисления С.
В этой главе мы обсудим теорию исследования свойств рекурсивных программ в предположении, что функция, определяемая рекурсивной программой, есть в точности наименьшая неподвижная точка fP. Это означает, что мы принимаем метод неподвижной точки. Такой подход имеет смысл, так как многие приложения рекурсивных программ на практике в самом деле приводят к неподвижной точке.
Существуют два различных метода расширения отношения регулярного равенства. Естественное расширение, обозначаемое =, не определено всякий pas, когда по крайней мере один из его аргументов не определен. Другое расширение, обозначаемое 曰,истинно, если оба его аргумента не опреде* лены, и ложно, если в точности один из них не определен.
1. ФУНКЦИИ И ФУНКЦИОНАЛЫ
Рассмотрим /г-арную частичную функцию (儿》0) с областью определения D\ ~ D\\D\\ ... X°i и областью значений D2. То есть для каждого набора из п элементов 〈а〔, а?,・・・,а^ е D^ возможны 2 варианта: либо f Q, а?,...,。九)——это некоторый элемент b из D2, либо значение f (аь а?, ・•・,aj не определено. Например, функция деления %/у, отображающая множество пар действительных чисел RX R в множество действительных чисел R, обычно считается неопределенной для у = 0. Частичная 0-арная функция (случай, когда п = 0) — это функция без аргументов с постоянным определенным или неопределенным значением. Будем рассматривать /г-арные частичные предикаты как специальный случай, потому что любой /г-арный частичный предикат в действительности это /г-арная частичная функция, отображающая множество £); в множество {истина, ложь} !).
Для развития нашей теории при трактовке частичных функций удобно ввести специальный элемент со для представления величины не определено. Пусть О^ обозначает множество D2 U {^}, при этом предполагается, что со^ D2- Тогда любая /г-арная частичная функция f, отображающая множество D; в 力2, может рассматриваться как полностью определенная функция, отображающая множество Q? в Q^. Если функция f не определена для набора аргументов 〈а】, ..., а%〉w Qf, то f (а】,...,а/ положим разным со. Например, рассматривая функцию деления х〔у как отображение множества RX R в /?+, будем считать, что есть со для любых % из R.
Однако имеется еще одна существенная трудность. Так как мы будем рассматривать суперпозиции функций, то придется вычислять функции, аргументы которых суть з. Например, для того чтобы вычислить у/(х/0), необходимо определить значение у/з. Таким образом, нужно расширить каждую /г-арную функцию, которая отображает множество Di в £)^ до 儿-арной функции, отображающей множество (DtT = Dt X .… X Dt в D^, где Dt обозначает множество Q U {①}.
i) Для простоты мы рассматриваем только функции, отображающие О: в 。2, а не общий случай функций, отображающих множество /】><力2>< ... ...Х^п в множество 5】义殳 X ••• X Bm (m ^ 1). Все результаты, представленные в этой главе, справедливы в общем случае, хотя некоторые доказательства должны быть модифицированы. Функция если-то-иначе, которая будет введена в примере 5.3,——единственная функция, используемая в настоящей главе в общем виде.
Существует много способов выполнения указанного расширения. Оказывается, что все расширения, которые удовлетворяют нашим целям, всегда приводят к монотонным функциям. Поэтому в разд. 5.1.1 дается определение и обсуждаются свойства класса /г-арных монотонных функций, отображающих множество (£>$)' в О^. Класс всех монотонных функций, отображающих множество (£>$)' в О^, обозначается через [(£)$),->Q^]. В разд. 5.1.2 определяются функционалы, отображающие множество [(£)})'-> Q打 в \_(Dt)n О?] (функционал т отображает каждую функцию из [^Dty ~> D}] в функцию из [(。$)'-> D打), и обсуждаются их свойства. В этом разделе вводятся также понятия монотонных и непрерывных функционалов. В разд. 5.1.3 вводятся понятия неподвижных точек и наименьших неподвижных точек функционалов. В заключение приводится доказательство теоремы Клини, которая устанавливает, что каждый непрерывный функционал имеет (единственную) наименьшую неподвижную точку. Этот результат является ключевым для материала всей главы.
Монотонные функции
Частичное упорядочение множества D+. Для того чтобы определить понятие монотонности, необходимо прежде всего ввести частичное упорядочение *)三 на каждой расширенной области D+ == D U {^}. Частичному упорядочению 三 соответствует отношение менее определенный чем или равный, и, кроме того, мы полагаем, что
для всех d w。+ справедливо со 三 d u d 三 d.
Отметим, что различные элементы из D не связаны между собой соотношением 三,т・ е. для различных элементов 。 и b из D не выполняется ни а 三 Ь, нн b 三 а. Для (£>+)' определяем
〈а〔,. •.,а九〉三〈仇,• • •, b》
тогда и только тогда, когда для каждого 厶 1&»《小 @i 三仇.
Напомним, что частичное упорядочение есть бинарное отношение, которое рефлексивно, т. е. (Va) [а 三 а ], антисимметрично, т е. (Va, b) [а и b 八 Л b а а=^- а совпадает с Ь], и транзитивно, т. е. (Va, b,叫。三 b 八 b 三с => 今 а 三 с]. Как обычно, мы пишем а 匚 Ь, если а 三 b н а не совпадает с " и 。芸 Ь, если а^Ь не выполняется.
Пример 5.1.
Если D— {а,力}, то О+ = {а,力,со} и частичное упорядочение на О+ выглядит так:
(о三(0, (о三а,①三а а三а и 力三瓦
Если D = {а,力}, то
0x0 = {〈a, "〉,〈a,S,色"〉,仇母}
и
D+ X D+ = {(co,(o>,〈co, а〉,〈а, «)〉,・・・,(а,力〉,〈瓦 “〉,0, b〉}. Частичное упорядочение на D+ X D+ выглядит следующим образом:
〈①,о> 三〈①,о>, ®, Q〉,〈а, 8〉,・・・,〈а, ь〉,0, а〉,〈А 力〉,
〈а, 3〉三〈а, о>,〈а, а»〈а,如
〈о, а〉三(®, а〉,〈а, а>,〈瓦 а〉,
®, Q 三〈①,及,〈", Ь\ 0,办
〈力…〉V (ft, о>, 0, а>,〈R 匕〉, 〈а, а〉三〈а, а〉,〈а,力〉三〈а, ft), 〈R a〉三〈R "〉,〈力,b〉三〈瓦 b〉.
Частичное упорядочение можно определить также с помощью диаграммы, приведенной на рис. 1 (здесь 4f 3 обозначает отношение 3 三 /)・ |
Монотонные функции. Теперь мы уже можем определить понятие монотонности. Будем говорить, что п-арная функция f из (。扌)“ 8 0^ монотонная, если для всех х, у е (D^T 〃з того, что 土 следует 〃兄)三"办
Интуитивно это означает, что если «вход» 元 менее определен или равен 《входу» у, то «выход» f (х) менее определен или равен «выходу» f (у). Класс всех монотонных функций^ отображающих (0扌)'8 D^, обозначим через [(d扌)'-> Q打.
Пример 5.2.
Тождественная n-арная функция /, отображающая любую n-ку х^ЫУ в самое себя, является монотонной.
Полностью неопределенная zz-арная функция Q, отображающая любую n-ку х ^ (Г^)п в(о, является монотонной.
Каждая 0-арная функция монотонна.
Каждая /г-арная постоянная функция, отображающая любую n-ку 土三(£>})' в некоторый фиксированный элемент с 三 D^, является монотонной. |
Свойства монотонных функций. Опишем несколько свойств монотонных функций, которые помогут нам определять, будет ли исследуемая функция, отображающая(О$)" в D^, монотонной. (Доказательства этих свойств достаточно простые, и мы предоставляем их читателю в качестве упражнения.)
Если f — унарная функция, отображающая D^ в D^ (т. е. если / имеет только один аргумент), то f монотонна тогда и только тогда, когда
или f (со) есть s,или для всех a^Dt значение f (а) есть с.
Таким образом, любую унарную постоянную функцию f, где для всех a^D\ значение f (а) есть с, можно расширить до некоторой монотонной функции двумя различными путями —— полагая f (s) равным либо s, либо с.
Если n-арная функция f при 枕》2, отображающая (О^У в Dt9 монотонна, то
f (s, ..., со) есть s или
f(S, ・・・, а/ есть с для всех 〈勿,...,art) е {О^У1-
Однако, хотя каждая функция, удовлетворяющая второму условию, является постоянной и поэтому монотонной, существуют функции, которые удовлетворяют первому условию и не являются монотонными. Например, функция частного х/у над множеством действительных чисел, расширенная следующим образом: х/з для всех xwR есть 0 и а)/у для всех ywR+
есть со, не является монотонной. Это выполняется в силу того, что〈1, со〉京〈1, 1〉,1/со есть 0, а 1/1 есть 1 и, следовательно, 1/со К 1/1.
Естественное расширение. Будем говорить, что /г-арная (м》1) функция f, отображающая(0$),в D^, расширена естественным образом, если она имеет следующее свойство: f (@卜...,а%) есть со 6 том случае, когда по меньшей мере одно из значений а» есть со. Важность естественного расширения проиллюстрирует
Лемма (о естественном расширении). Каждая естественно расширенная функция является монотонной.
Доказательство проведем методом от противного. Допустим, что функция f (xi, ..., хп) естественно расширенная, но не монотонная. Так как f не монотонная, то существуют п-ки 〈@1, • • •,。拉〉м «1, • • •, b〃〉,такие, что〈。卜• • •,。八〉—-〈仇,• • •,b力, т. е. для всех i (1W,&孔)выполняется а»三Ь», но f (аь ..., а%)伝 芸/(仇,...,b) Из этого следует, что〈%, ..., а力匚《仇,・・・,6n> и поэтому существует некоторое z0 (1&君& 叫 такое, что 風。匚瓦°. Таким образом, ®° есть со. Так как функция f естественно расширенная, то f(ai, ..., а〃) есть со. Следовательно, отношение f (а^ ..., а^ ^ f (瓦,...,6rt) выполняется независимо от величины f (&1У ..., b几)• Это противоречит нашему предыдущему заключению о том, что f (@卜...,art) ^f (bif ..., b^.修
Пример 5.3.
Функция частного, которая отображает 〈%, y〉wRXR в xly е R, расширяется до всюду определенной функции, если положить, что для любого % из R частное х/0 есть со. Она становится монотонной при естественном расширении, если считать, что для любого % и у из R+ значения %/з и Зу суть со.
Предикат равенства, отображающий множество QXQ в множество {истина, ложь}, можно расширить, в частности, следующим способом:
Слабое, равенство = есть отображение множества D+X^D+ в множество {истина, ложь}+, которое имеет значение со в любом случае, если по меньшей мере один из аргументов есть со. Это — естественное расширение, и поэтому предикат слабого равенства монотонный.
Сильное равенство ^есть отображение множества D+\D+ в множество {истина, ложъ}^, которое имеет значение истина, если оба аргумента суть со, и ложь, если в точности один аргумент есть со. Читатель должен отдавать себе отчет в том, что предикат сильного равенства не является монотонной функ-
цией. Например,〈со, d〉三〈d, d〉,в то время как (со 三 d)E(d三d) (т. e. ложь 芸 истина} для любого d 三 D.
Определяющая функция def, отображающая множество D+ в множество {истина, ложъ}+ и определенная как
def (d) есть истина для любого d^D, def (со) есть ложь,
не является монотонной, так как для любого d w Q справедливо со 三 d, но def (со) ££ def (d) (т. е. ложь 5Е истина).
Функция если-то-иначе, отображающая множество {цетина, ложь) X Q X Q в множество Q, определена следующим образом: для любых a, b w D
(если истина то а иначе 6) есть а.
(если ложь то а иначе Ь) есть Ь.
Эту функцию можно расширить до монотонной функции, отображающей множество {〃сг〃〃а, ложь\^ X D+ X D+ в множество £)+, если положить для любых а, 6 е D+,
(если истина(если ложь(если(о(если истина(если ложь(если(оw Ww Wа иначе co иначе а иначеа иначе co иначе а иначесо)力 3со)力 3есть а, есть Ь, есть со.есть а, есть Ь, есть со.
(если истина
(если ложь
(если(о
(если истина
(если ложь
(если(о
w W
w W
а иначе co иначе а иначе
а иначе co иначе а иначе
со)力 3
со)力 3
есть а, есть Ь, есть со.
есть а, есть Ь, есть со.
Отметим, что это монотонная функция, хотя она и не является естественным расширением функции если-то-иначе. Чтобы доказать, что расширение функции если-то-иначе монотонно, мы должны показать, что (если v то а иначе 6)三(если г/ то а! иначе У) всякий раз, когда 〈〃,а, Ь〉三〈(/, а', Ь'〉. Это лучше всего сделать, рассматривая три случая, а именно когда и есть истина, ложь или з.國
С этого момента будем предполагать, что все базисные функции 6 наших примерах, отличные от постоянных функций и функции если-то-иначе, суть естественные расширения, если не оговорено противное.
Суперпозиция монотонных функций. Важной операцией над функциями является суперпозиция, которая позволяет определять функции в терминах более простых функций. Если f —— функция из (0扌)倘 в D^ и g — функция из D^ в D^, то суперпозиция f 〃 g есть функция из (D^)л в D^ для каждого 元 из (Dt) , определенная как g (f (х)). Если f и g — монотонные функции, то их суперпозиция также монотонная функция. В этом можно убедиться непосредственно, так как если / и g ——монотонные функции, то для всех а, b ^ (。扌)"отношение а^Ь
влечет за собой / (G)三 f 0), что в свою очередь приводит к g(f (М))三 g(f (5))・ Таким образом, суперпозиция функций f и g — также монотонная функция.
Пример 5.4.
Функция f, отображающая множество ^+ в ^+> задана посредством
f (%): если % = 0 то 1 иначе х
и определена при помощи суперпозиции 0-арных функций 0 и 1, тождественной функции /, предиката слабого равенства = и функции если-то-иначе. Так как все эти функции монотонные, то f также монотонная.
Функция f, отображающая множество ^+ в ^+ и заданная посредством
f (х): если х^а)то 0 иначе 1
(отметим, что здесь мы используем немонотонный предикат *), не является монотонной потому, что s 三 0, но f (со)宅 f (0) (т. е. 0芸1).
Функция f, отображающая множество ^+ в N*> задана посредством
f (х): если х = а)то 0 иначе 1
и определена при помощи суперпозиции монотонных функций (здесь о — это 0-арная функция), и поэтому она является монотонной функцией. Отметим, что здесь мы используем слабое равенство =, а не сильное равенство 三,поэтому значение / (ш) есть со, а не 0, как прежде. Фактически / (х) есть s для всех x w 乂+. I
Распределение монотонных функций над условиями. Наконец мы обсудим важное следствие, полученное из свойств монотонных функций. Рассмотрим две функции Л и %, где
fi (х): g (если р (х) то 九1 (元)иначе 饱(元)) и
/2 (х): если р(х) то g (九 1(元))иначе g (Л2 (х))
и р, g,阮 Л2 — монотонные функции. Функции 力 и % монотонные, поскольку каждая представляет собой суперпозицию монотонных функций. Существует очень интересное отношение, связывающее эти две функции.
Для любого 兄三(Q,) " справедливо 小(元)三 fi (兄)•
Для любого 斤 w (。扌)"выполняется % (土)三3(兄),если g(s) есть s.
Оба эти свойства доказываются отдельно для трех случаев: когда р(х) истинно, р(х) ложно и р(х) есть со. В первых двух случаях f2(x) = fi (х), а в третьем %(盼三%(元)[так как s三g(s)]・ Таким образом, в общем случае для любого х е (DtT справедливо отношение ,2(元)二后(元),однако, если значение g(s) есть s, то в третьем случае также справедливо 『2(元)三九(元)и поэтому % (元)三 f ](元)Для любого х w(О^ )'•
Предыдущие свойства обобщаются на случай любой /г-арной (〃》i) монотонной функции g. Пусть заданы функции 灯 и %:
fi (х): g(九i(兄),・・・,Л/-1 (x) если р(元)то 就(元)
иначе 九? (х),瓦+i (兄),...,hn (兄)) и
f2 (^): если р (х) то g (瓦(元),…,fti-i (%),总(%),九+1 (兄),・・・,“ (%)) иначе g (Ai (x),...,也 т (х),必(х), hi+i (х), ..., hn (х)).
Для них справедливы следующие отношения:
Для любого 兄三(£>±)" выполняется %(元)三 3(元)•
Если значение g(czi,...,的」,со, @屮,・・・,@九)есть со для любых значений (включая о) аь ...,⑴一卜 а/+1, ・・・,ад, то для лю6ого 无 е(£)±)' справедливо f2(元)三后(三)■
В последующих доказательствах это свойство будет часто использоваться.
Наименьшая верхняя грань. Прежде чем вводить понятие функционала и обсуждать его свойства, определим несколько дополнительных понятий, относящихся к монотонным функциям. Напомним, что [(讲)'f D打 обозначает множество всех монотонных функций, отображающих множество (讨)“ в О^.
Пусть f, g 三[(0t)" f0打. М" говорим, что f 三 g (читается: «f менее определена или совпадает с g》),если f (х)^ g (х) для всех х из (0扌)"・ Это отношение в действительности есть частичное упорядочение на множестве [(讨)"-> D訂.(Отметим, что t2])三f для любой функции f w[(0,)"一> 1>打・)
Пусть ff g^ [①扌)"f D打.Мы говорим, что f = g (читается: «f эквивалентна g》),если f(x)^g(х) для всех 兄三(Z)扌)"・ Другими словами, f ^g тогда и только тогда, когда,三 g н g^f・
I) Q — нигде не определенная функция (см пример 5.2). — Прим, ред.
Пусть %,九,f2, • • • ~ последовательность функций из [(£)Т)"f 0^]; обозначим ее для краткости {fj. Последовательность {"} называется цепью, если % 三九三“三f3 三••一
Пусть {fi} — последовательность функций из [(Qt)'f D打 и f ^ l^Dt)П + Dt]• Будем называть / верхней гранью последовательности {"}, если fi^f для каждого i》0. Если к тому же функция f такова, что f 三 g для каждой верхней грани g последовательности {/J, то f называется ее наименьшей верхней гранью и обозначается нвг {/J. Отметим, что по определению нвг {/J — единственная (если она существует), так как если бы две функции f и g были наименьшими верхними гранями {/J, то,三 g и g 三 f, поэтому f = g.
Лемма (о наименьшей верхней грани). Каждая цепь {%} имеет наименьшую верхнюю грань.
Доказательство. Пусть а — произвольный элемент из (£>,)"; рассмотрим последовательность элементов
%伍),3伍),0伍),.
Так как 亿} есть цепь, то существуют только две возможности: либо fi (а) есть(о для всех 方 >0, либо существует некоторое io》。и некоторый элемент 6 е D2, такие, что 九(G) есть со для всех i < iQ и fi (а) есть b для всех i》f0- Поэтому можно однозначным образом определить функцию f: для каждого а ^ ^Dt)П значение f (а) есть со в первом случае и b во втором.
Можно проверить, что / ——монотонная функция, т. е. что / принадлежит множеству [(Qt)"f。打.Покажем теперь, что f есть нвг {fi}.
Шаг 1. Функция f является верхней гранью для последовательности {fj. Рассмотрим любой элемент Gw(£>”)" и »》0. Мы различаем две возможности: если 九(砌 есть со, то ясно, что 力伍)三/伍);в противном случае для некоторого 6 ^ D2 значение ft (а) есть Ь, поэтому и по определению функции 力 九伍)曰 f 伍).Отсюда следует, что 九三 f для всех i 0.
Шаг 2. Функция f является нвг {fJ. Предположим, что g — любая верхняя грань последовательности {/J, т. е. fi^ g для всех г ^ 0. Рассмотрим произвольный элемент Gw(jDt): Мы различаем две такие возможности: если f 伍)есть со, то очевидно, что f 伍)三 g(G); если же f 伍)не есть со и f 伍)三九 伍), то в силу 九三& отсюда следует, что /伍)三 g(G). Следовательно, ,三 g. ■
Пример 5.5.
Рассмотрим последовательность функций %, 3, %,・・• из [N*f N4"] которая определена так:
fi (х): если х < i то х! иначе со
Эта последовательность, очевидно, является цепью, так как 力三 九+i для каждого /・(Отметим, что % —это Q.) Из предыдущей леммы о наименьшей верхней грани вытекает, что данная последовательность имеет наименьшую верхнюю грань — это функция %!・
Непрерывные функционалы
Теперь мы подготовлены для того, чтобы ввести понятие функционала. Функционал т над множеством [iDt)n -> D}^ отображает множество функций [(0扌)"-> £)^] в самое себя, т. е. т берет произвольную монотонную функцию f (которая отображает (С$)" в Е") в качестве своего аргумента и выдает некоторую монотонную функцию т [f] (которая отображает (。扌)“ в D^) в качестве своего значения.
Наиболее интересные свойства функционалов ——это монотонность и непрерывность.
Говорят, что функционал т над [(£)$)"-> Q^] монотонный, если 113 f 三 g следует x[f] r[g] для всех f, g w [(。扌)"-> Q^]・
Говорят, что монотонный функционал т над [(/)})"-> Q^] непрерывный, если для любой цепи функций {fj справедливо
х[нвг{^] = нвг "亿•]}・
Отметим, что {fj — цепь, т. е. % 三 % 三 % 三・・・・ Так как функционал t монотонный, то т [f0]三 t [fi]三 т [f2]三・・・,т. е. {t [f j}— также цепь. Поэтому на основании леммы о наименьшей верхней грани должны существовать нвг {f J и нвг "[%]}・"
Пример 5.6.
Тождественный функционал, определенный как 用]:尸,
отображающий произвольную функцию f из [{О^У ~> D}^ в самое себя, очевидно, является монотонным, потому что f^g влечет за собой x[f] = f^g = r[g]. Он также непрерывен, поскольку t [нвг {ft}]三 нвг 亿}三 нвг {т [川}•
Постоянный функционал, определенный как
t [尸]:h9
отображающий произвольную функцию f из [(о^)п -> О^] в фиксированную функцию 〃,является монотонным, потому что f 三 g влечет за собой x[f] = h = x[g]. Он также непрерывен, поскольку т [нвг {fi}] = h^ нвг {Л} = нвг {т [fj}. I
Обычно функционал т определяется с помощью суперпозиции известных монотонных функций и функциональной переменной 尸.Когда 尸 заменяется произвольной известной монотонной функцией % то правило суперпозиции определяет функцию x[f], которая также является монотонной. Во всех наших примерах будем использовать следующий важный результат.
Теорема 5.1 (о непрерывности функционалов). Любой функционал т, определенный с помощью суперпозиции монотонных функций и функциональной переменной F, непрерывен.
Доказательство. Мы докажем, что функционал т непрерывный, индукцией по структуре т. Если т содержит в точности один символ F или 力,где h ——монотонная функция, то, как показано в примере 5.6, т ——непрерывный функционал. Индукцию проведем отдельно для двух случаев.
Функционал т [F] есть f (Tj [F], ..., %[尸]),где f — монотонная функция. Мы должны показать, что если ть ..., тп — непрерывные функционалы, то т — также непрерывный. В первую очередь замечаем, что если g 三九,то в силу монотонности функционалов J,・・.,р〃 имеем 叮[8]三^/[九] для l《j&几. Отсюда и в снлу монотонности функции / получаем f (ti [g],・•・ • %囿)三 / (q 固,…,%[川),t. e. t[g]三 t[〃]・ Таким образом, т ——монотонный функционал.
Теперь покажем, что t |нвг {f用三 нвг {t [川} для любой цепи {九}・ Так как % 三 нвг {九} для каждого i》0, то в силу монотонности функционалов ть ..., тп и функции f заключаем, что t [川三 t [нвг {%}] для каждого ,^0. Поэтому нвг {т [fj} е 三 тЦнвгб}]. 〃
Для того чтобы доказать обратное, допустим, что х0 ^(Di )・ Тогда по определению функционала т и предположению индукции имеем
т[нвг{Л-}](х0) =
=f(T! [нвг и用(元0),…,% [нвГ 优}](兄0))m
мf (нвг {t J川} (м0),...,нвГ {%亿]}(%)).
Из способа построения наименьшей верхней грани в доказательстве леммы о наименьшей верхней грани (разд. 5.1.1) следует, что для каждого /, l&j*几,существует натуральное число /у, такое, что для любого k^if
нвг {匕亿]}(元0)三"""(%)・
Пусть Zo — максимальное среди чисел 厶,%, ・••> 厶.Тогда для каждого j, 1《/К〃,имеем
нвг {矶“}&)*/%」&), и поэтому
f(НВГ {Ti 氏]} (%),・・・,НВГ {“[%•]}(%)) m
м f (%) U id (^0)> * * * > XnU %] (%))曰 =f (矶fj ・•・,Xn[f^^^ 三叩J&)三
三 нвг{т[/г]} (х0).
А так как х0 был выбран произвольно в множестве(£>$)' то получаем
т[нвг {九}]三 нвг{т [Л]}.
Функционал т [F] есть 尸(q [用,•••,т„ [F]). Мы должны доказать, что если ri, ..., тп — непрерывные функционалы, то функционал t также непрерывен. Доказательство этого аналогично доказательству случая 1, но здесь мы должны использовать монотонность функций 3, a f заменить на нвг {//}. ■
Пример 5.7.
Функционал t над множеством [^+ -> N ^f определенный как
т [F] (х): если 无=0 то 1 иначе 尸(%+ 1),
получен суперпозицией монотонных функций (если-то-иначе, тождественной функции, сложения, слабого равенства и 0-арных функций 0 и 1) и функциональной переменной F. Поэтому он непрерывен.
Функционал т над множеством [乂十-> 2十],определенный как
т [F] (х): если (Vy w N)[尸(у) = у] то F (х) иначе s, монотонный^ но не непрерывный. Если мы рассмотрим цепь % 三 3 三 % 三где
fi (%): если x <i то x иначе о,
то т [f J есть ◎ для любого 厶 так что нвг{т;[3]} есть Q, в то время как нвг {h}» а поэтому и т [нвг {f J] — тождественная функция.
Функционал т над множеством [^+ -> ^+], определенный как
t[F] (х): если F (х)^ш то 0 иначе s,
не является даже монотонным. Доказательство этого факта следующее. Пусть Z обозначает функцию, тождественно равную нулю для всех %曰“十,т. е. Z (х) ^ 0. Тогда т [Z] есть Q и t^Q] есть Z. Следовательно, в то время как Q 三 2, мы имеем т [Q] ^ r[Z] (так как Z 芸 Q). Отметим, что функционал т/ над множеством Dv+f %+], определенный как
i[F](%): ес几и F (х) = со то 0 иначе со,
является непрерывным (и монотонным), так как он получен с помощью суперпозиции монотонных функций и функциональной переменной F. |
Рассмотрим функционал % определенный с помощью суперпозиции монотонных функций и функциональной переменной F.
Допустим, что существуют два вхождения символа 尸 в t,
разделить эти два вхожде-разделить эти два вхожде-и обозначим т через т [尸,尸],чтобы
разделить эти два вхожде-
разделить эти два вхожде-
что функционал т долженчто функционал т долженния символа F. Можно показать,
что функционал т должен
что функционал т должен
быть монотонным по отношению к любому вхождению 尸.То есть для любой функции h из отношения f 三 g следует т[/,川三 t[g,川 и т[Л, /] ^ т[й, g] в дополнение к обычному условию монотонности т[/,丹三 t[g, g]. Этот результат справедлив и в общем случае, когда т содержит произвольное
число вхождений символа 尸.
Неподвижные точки функционалов
Теперь можно ввести понятия неподвижных точек и наименьших неподвижных точек для непрерывных функционалов. Пусть р— функционал над множеством [(。扌)'f D打 Будем говорить, что функция f 三[(。扌)"—> Q打является неподвижной точкой функционала т, если т [f] ^ /, т. е. если т отображает функцию f в себя. Если / — неподвижная точка функционала т и f 三 g для любой другой неподвижной точки g функционала т, то / называется наименьшей неподвижной точкой функционала т. Функционал может либо не иметь неподвижных точек вообще, либо иметь их конечное или бесконечное число. Но функционал может иметь самое большее одну наименьшую неподвижную точку, так как если бы две функции 力 и /^ являлись наименьшими неподвижными точками функционала т, то 九三 /2 н /2 三 Л, а поэтому % м%・ 九
Пусть т——монотонный функционал над множеством [(。扌)f fD打.Рассмотрим последовательность функций т° [Q], т1 [Q], т2 [Q],.・・,где через т° [Q] обозначена й (полностью неопределенная функция) и —это т [tz [Q]] для i》0・ Каждая функция "С] принадлежит множеству [(。扌)f D打,и, более
того, так как Q 三 т; [Q] и т — это монотонный функционал, то последовательность {т“ [◎]} должна быть цепью, т. е.
Q三р倒三к? [◎]三....
Поэтому по лемме о наименьшей верхней грани должна существовать нвг {т* [Q]}. Другими словами, для каждого монотонного функционала т над [(Q扌)'一> Q^] последовательность {t“ [◎]} является цепью 〃 имеет наименьшую верхнюю грань.
Пример 5.8.
Для функционала т над множеством [^+ -^ ^+], определенного как
т [F] (х): если % = 0 то 1 иначе %・尸(%— 1)
при,》0, имеем
V [◎] (%): если х <i то х\ иначе со и
нвг Т [Q]} (%): х!.
Для доказательства того, что выражение p'[Q] имеет именно такой ви工,нужно показать, что т [rz [Q]] = rf+I [Q] для i》0 (отметим, что 祁図三◎):
т [т1 [Q]] (х) ^ если % = 0 то 1 иначе х\если % — 1 Vi
то (% — 1)! иначе со)三
三 если х = 0 то 1 иначе {если х < z + 1 то х! иначе со)曰 ^если % V i + 1 то х! иначе, со 三
三 Y+i [Q] (x).
Пусть т ——функционал над множеством [%+ f ^] вида т [用(%): если х > 100 то х — 10 иначе F (F (х + 11)).
Для 1《,《11 имеем
т" [◎](%): ес〃〃 % > 100 то % — 10 иначе если х > 101 — z
то 91 иначе со,
в то время как для i》ll мы имеем
Ti [Q] (х): если х > 100 то х — 10 иначе если % > 90 — 11 (,一 11) то 91 иначе со.
Отметим, что для Z= 11 оба определения т/ совпадают. Можно проверить, что t'+i [Q]三 т [т,[◎]] для всех ,》0. Очевидно, чт^ наименьшая верхняя грань этой последовательности такова.
нвг {т1 [Q]} (х): если х > 100 то х — 10 иначе 91. |
'Последнее свойство приводит нас к теореме Клини.
Теорема 5.2 (первая теорема Клини о рекурсии). Каждый непрерывный функционал т имеет наименьшую неподвижную точку, обозначаемую 底・ В действительности /т ——это нвг {т,[С]}.
Доказательство. Так как функционал т непрерывный, то он монотонный и, следовательно, {Р [Q]}——цепь, которая имеет наименьшую верхнюю грань, обозначаемую 九.Далее за два шага покажем, что /т—наименьшая неподвижная точка т.
Шаг 1. fx — неподвижная точка функционала т. Так как t — непрерывный функционал, то
т [九]三 т [нвг {rf [Q]}] = нвг {tz+1 [Q]}曰 нвг {tz [Q]}三九.
Следовательно, т [加 三 九.
Шаг 2. 九三 g для любой неподвижной точки g функционала т. Покажем сначала индукцией по i, что tz [Q]三 g для всех 2》0. Очевидно, что т° 坦]三 Q 三 g. Теперь, если т^-1 [Q]三 g для некоторого /》1, то, так как функционал т монотонный и g ― неподвижная точка т, получаем
Y [Q]三 т [pi [□]]三 t (g)三 g.
Таким образом, Y [Q]三 g для всех £》0. Отсюда следует, что g — верхняя грань последовательности {tz [Q]}, но, так как fT — наименьшая верхняя грань последовательности {rz [Q]}, это влечет за собой 九三 g・ В
Можно показать, что результат теоремы 5.2 справедлив для каждого монотонного (не обязательно непрерывного) функционала. Однако легко видеть, что монотонность — существенное требование в только что приведенном доказательстве, и это иллюстрируется в следующем примере.
При м е р 5.9.
Немонотонный функционал над множеством [/+ —>/+]
t [尸](%): ес4〃 尸(%)三 0 то 1 иначе 0 не имеет неподвижных точек вообще.
Допустим обратное, т. е. пусть f (х) — неподвижная точка функционала т. Тогда, если /(0)三 0, то x[f] (0) ^ 1, а если f (0)关 0, то т[Л (0) = 0.
Немонотонный функционал над множеством [/+ ~>/+]x[F] (х): если 尸(%)三 0 то 0 иначе 1
имеет две неподвижные точки — постоянные функции 0 и 1, но не имеет наименьшей неподвижной точки. |
В примерах 5.10 и 5.12 рассмотрим функционалы, которые определены суперпозицией монотонных функций и функцио-
нальной переменной F, и поэтому все непрерывны. Для каждого такого функционала отметим его единственную наименьшую неподвижную точку. Общая техника, которая может быть использована для проверки того факта» что функция f ——наименьшая неподвижная точка данного непрерывного функционала т, состоит в нахождении для i》0 последовательности т1 [Q] и доказательстве того, что /三 нвг {叫Q]}. (Еще несколько методов будет описано в разд. 5.3.)
Пример 5.10.
Для функционала т над множеством [(0扌)"-> О^], задаваемого как
т[Л(х):尸(%),
каждая функция из множества [(Z)t)'f Z)^~] является неподвижной точкой. Очевидно, что полностью неопределенная функция Q ——наименьшая неподвижная точка т.
Функционал т над множеством [(0扌)'~>°^], задаваемый как
т [F] (х): если р(%) то F (х) иначе й(х),
где р и h — произвольные фиксированные (естественно расширенные) функции, имеет в качестве неподвижной точки функцию
если р(х) то g(x) иначе А (х)
для любой функции g из множества [(£)})'-> О打.Функция если р(%) то Q(%) иначе /г (%)
—его наименьшая неподвижная точка. |
Пример 5.11.
Рассмотрим функционал т над множеством [%+ — %+]
t [用(%): если х = 0 то 1 иначе F (х + 1).
Следующие функции являются его неподвижными точками:
fo (%):
если
х = 0
то
% (%):
если
х = 0
то
『2 (力:
если
х = 0
то
1 иначе 0,
1 иначе 1, I иначе 2
и т. д. Вообще же все имеют вид (для каждого fn(х): еслии т. д. Вообще же все имеют вид (для каждого fn(х): еслинеподвижные точки функционала т
и т. д. Вообще же все имеют вид (для каждого fn(х): если
и т. д. Вообще же все имеют вид (для каждого fn(х): если
尤=0 то 1 иначе 九,
потому что для всех %三2十 и не ^+ справедливо
t [fn\ W 三 осей % = 0 т。 1 иначе (если % + 1 = 0 т。1 иначе п)三 三 если % = 0 то 1 иначе м =
三九(分
Наименьшая неподвижная точка имеет вид
fx (х): если % = 0 го 1 иначе со.
Функционал т над множеством [/+ ->/+], заданный как т [F] (х): если х > 100 то х — 10 иначе 尸(尸(%+11)),
имеет только одну неподвижную точку если х > 100 то % — 10 иначе 91,
которая поэтому есть его наименьшая неподвижная точка fT, известная как 91-я функция Мак-Карти (см. пример 5.8 (2)). |
Пример 5.12. Некоторые из неподвижных точек функционала t над множеством [/+ ->/+], заданного как
t [尸](%, У): есси х = у то у + 1 иначе 尸(%, F (х— 1, у + 1)), имеют вид
/ (х, у): если х = у то у + 1 иначе %+ 1,
g(%, у): если %》у то х + 1 иначе у——1,
Л (х, у): если (%》у) Л ((х — у) — четное) то х + 1 иначе со.
Функция f (х, у), например, является неподвижной точкой % потому что
г [/] (х, у)三 если х = у то у + 1 иначе f (%, f (х — 1, z/ + 1))=
三 если х —у то у + 1 иначе (если % = [если % ——1 =
=у + 1 то у + 2 иначе х] то [если % — 1 =
=у + 1 то у + 2 иначе х] + 1 иначе % + 1)三
三 если х = у то у + 1 иначе {если % = р + 2 то у + 3 иначе % + 1)三
三 если х = у то у + 1 иначе х + 1 = = f(x, у).
Отметим, что при выполнении подобных упрощений следует тщательно рассматривать тот случай, когда % или у есть со. В этом месте читатель может удивиться, почему мы выбираем довольно странную функцию f (х, “),а не функцию 片(居 у): % + 1. Причина состоит в том, что f'(x, у): % + i не является непод-
вижной точкой т, поскольку t [厂](%, со) есть(о, в то время как значение f'(x, со)есть %+1.
Функция g (х,у) — такженеподвижнаяточкат, потому что
т 囿(%,У)三 еслих = у тоу 十 1иначе g (% если% — 1》у + 1
то(х — 1) + 1иначе(у + 1) — 1)三
=если х = у то у + 1 иначе {если % ——1》у + 1 то g (х, %) иначе g (х, у))三 三 если х = у то у + 1 иначе (если % ——1》у + 1 то % + 1 иначе g (х, у))三 三 если % = у\/%>у + 2 то х + 1 иначе g (х, у)三 三g (居У).
Аналогично можно проверить, что Л(х, у) — также неподвижная точка т, а фактически она является наименьшей неподвижной точкой т. I
РЕКУРСИВНЫЕ ПРОГРАММЫ
Теперь можно определить интересующий нас класс рекурсивных программ. В нашем классе программа называется рекурсивным определением или рекурсивной программой над множеством D, если она имеет вид 】)
F(x)<=x[F](x),
где т [F] (х) — функционал над множеством [(£>+)" — £>+], по* строенный при помощи суперпозиции из известных, так называемых базисных, функций и предикатов и функциональной переменной F. Базисные функции и предикаты применяются к индивидным переменным х = (хь 陋,.…,%»
Конечно, наши программы не имеют смысла до тех пор, пока не описана семантика языка, т. е. пока не указана функция, которая определяется программой. Мы полагаем, что функция, определенная рекурсивной программой
Р: F(x)^x[F](x)f
есть /т (наименьшая неподвижная точка функционала т), и обозначаем ее через fР). Например, следующая рекурсивная программа над натуральными числами
Р: F (х)<= если х = 0 то 1 иначе х.尸(%—1)
】)Более общее определение рекурсивной программы, которая содержит систему рекурсивных определений, будет введено в разд. 5.2.3.
определяет функцию факториал (т. е. fP (х) есть %!), потому что эта функция есть наименьшая неподвижная точка функционала
r[F] (х): если х = 0 то 1 иначе х.尸(% — 1).
Для того чтобы наш язык программирования имел какое- либо практическое применение, нужно описать процесс вычисления функции, которая определяется рекурсивной программой. Поэтому на следующем шаге необходимо сформулировать правила вычисления для выполнения рекурсивных программ. Однако мы должны помнить, что правила вычисления имеют одно важное ограничение: для каждой программы Р вычисленная функция должна совпадать с fp. Мы называем такие правила вычисления правилами вычисления неподвижной точки.
Правила вычисления
Пусть F(x) q t [尸](х)——рекурсивная программа над некоторой областью D. Для данных входных значений 2三(0+)〃 переменных х в результате выполнения программы последовательность термов /о, Л,友,•••, которая называется вычислительной последовательностью для & или вычислением 尸(@), строится следующим образом.
Первый терм % есть 尸(@).
Терм 乙+1 получается из / для каждого z ^ 0 за два шага.
Подстановка: некоторые вхождения (см. ниже)尸 в терме 厶 одновременно заменяются на т;[尸].
Упрощение', базисные функции и предикаты заменяются на их значения всякий раз, когда это возможно, до тех пор пока будут невозможными дальнейшие упрощения.
Последовательность конечна, и 勿一последний терм в этой последовательности тогда и только тогда, когда tk не содержит вхождений символа 尸,т. е. если tk ——элемент множества D+.
По правилу вычисления С можно судить о том, какие вхождения 尸(&) необходимо заменять на p[F](G) на каждом шаге подстановки. Мы заинтересованы только в《разумных》правилах вычисления, которые для каждого терма 力,возникающего во время вычисления и содержащего вхождения символа F、будут определять непустую производимую подстановку. Для данного правила вычисления С программа определяет частичную функцию Ср, отображающую множество (О+)Л в D+ следующим образом: если для входа Nw(D+)“ вычислительная последовательность для 2 конечна, то мы говорим, что CP(d) есть /也;если вычислительная последовательность для 5 бесконечна, то мы говорим, что Ср (2) есть со.
Далее приводятся несколько правил вычисления, которые будут обсуждаться позднее.
Правило самой левой — самой внутренней замены (^вызов по значению》).Заменить только самое левое самое внутреннее вхождение 尸(т. е. самое левое вхождение F, у которого все аргументы свободны от F). Обозначим вычисляемую таким образом функцию через 厶/戶.
Правило параллельной самой внутренней замены. Заменить одновременно все самые внутренние вхождения 尸(т. е. все вхождения 尸,у которых все аргументы свободны от F). Обозначим вычисляемую таким образом функцию через P/戶.
Правило самой левой замены (^вызов по наименованию》). Заменить только самое левое вхождение F. Обозначим вычисляемую таким образом функцию через 厶戶.
Правило параллельной самой внешней замены. Заменить одновременно все самые внешние вхождения F (т. е. все вхождения 尸,которые не встречаются как аргументы других вхождений 尸).Обозначим вычисляемую таким образом функцию через РОр.
Правило свободного аргумента. Заменить одновременно все вхождения 尸,которые имеют по меньшей мере один аргумент, свободный от вхождений 尸.Обозначим вычисляемую таким образом функцию через Е4P.
Правило полной подстановки. Заменить все вхождения F одновременно. Обозначим вычисляемую таким образом функцию через FSp.
Пример 5.13. Рассмотрим терм
尸(0,f(1)) +尸(尸(2),尸⑶).
Будем отмечать стрелками те вхождения 尸,которые должны заменяться по каждому из приведенных ранее правил вычисления:
Правило самой левой — самой внутренней заменыПравило параллельной самой внутренней заменыПравило самой левой заменыПравило параллельной самой внешней заменыПравило свободного аргументаПравило полной подстановкиПравило самой левой — самой внутренней заменыПравило параллельной самой внутренней заменыПравило самой левой заменыПравило параллельной самой внешней заменыПравило свободного аргументаПравило полной подстановки尸(0,尸(1)) +尸(尸(2),尸(3))尸(0,尸(1)) +尸仍(2),尸(3))尸(0,尸⑴)+尸(f⑵,尸(3))尸(0,尸(1)) +尸(尸(2),尸(3))尸(0,尸⑴)+尸(尸⑵,尸(3))F(0,尸⑴)+ F (尸⑵,尸(3)) t t t t f ■尸(0,尸(1)) +尸(尸(2),尸(3))尸(0,尸(1)) +尸仍(2),尸(3))尸(0,尸⑴)+尸(f⑵,尸(3))尸(0,尸(1)) +尸(尸(2),尸(3))尸(0,尸⑴)+尸(尸⑵,尸(3))F(0,尸⑴)+ F (尸⑵,尸(3)) t t t t f ■
Правило самой левой — самой внутренней замены
Правило параллельной самой внутренней замены
Правило самой левой замены
Правило параллельной самой внешней замены
Правило свободного аргумента
Правило полной подстановки
Правило самой левой — самой внутренней замены
Правило параллельной самой внутренней замены
Правило самой левой замены
Правило параллельной самой внешней замены
Правило свободного аргумента
Правило полной подстановки
尸(0,尸(1)) +尸(尸(2),尸(3))
尸(0,尸(1)) +尸仍(2),尸(3))
尸(0,尸⑴)+尸(f⑵,尸(3))
尸(0,尸(1)) +尸(尸(2),尸(3))
尸(0,尸⑴)+尸(尸⑵,尸(3))
F(0,尸⑴)+ F (尸⑵,尸(3)) t t t t f ■
尸(0,尸(1)) +尸(尸(2),尸(3))
尸(0,尸(1)) +尸仍(2),尸(3))
尸(0,尸⑴)+尸(f⑵,尸(3))
尸(0,尸(1)) +尸(尸(2),尸(3))
尸(0,尸⑴)+尸(尸⑵,尸(3))
F(0,尸⑴)+ F (尸⑵,尸(3)) t t t t f ■
Пример 5.14. Рассмотрим рекурсивную программу Р над множеством целых чисел
尸⑶令 если х > 100 то х •— 10 иначе F (F (х + 11)).
Ее наименьшая неподвижная точка такова:
fp(x): если % > 100 то х •— 10 иначе 91.
Проиллюстрируем вычислительные последовательности для х = 99, используя три из приведенных правил вычисления. (Будем отмечать стрелками те вхождения 尸,которые должны быть заменены.)
Используем правило полной подстановки:
/0 есть 尸(99)
если 99 > 100 то 99 — 10 иначе F (F (99 + 11)),
厶 есть 尸(尸(110)) т г
если [если 110 > 100 то 110 — \0 иначе F (F (110 +11))]> 100 то [если 110 > 100 то 110 — 10 иначе F(F(110 + 11))]— 10 иначе F (F ([если 110 > 100 то 110— 10 иначе
F(F(110+ll))]+ll)),
/2 есть 尸(尸(111))
+ t-
если [если 111 > 100 то 111 — 10 иначе F(F (111 + 11))] > 100 то [если 111 > 100 то 111 — 10 иначе 尸(F (111 + 11))] — 10 иначе F (F [если 111 > 100 то 111 — 10 иначе
尸(F (111+ 11))]+11)),
/3 есть 91.
Вычислительная последовательность сокращенно записывается так:
;(99)f f (;(110))f ;(『ll))f 91・
Таким образом, FSP (99) есть 91.
Используем правило самой левой ——самой внутренней замены:
/0 есть 尸(99)
если 99 > 100 то 99 — 10 иначе F (F (99 + 11),
厶 есть ^(^(НО)) t
学(если 110> 100 то 110-10 иначе 尸(尸(110+ 11))),
/2 есть F (100)
если 100 > 100 то 100— 10 иначе 尸(尸(100+ 11)),
% есть 尸(尸(111) t-
Р(если 111 > 100 то 111 一 10 иначе F(F(111 + 11))),
/4 есть F(101)
если 101 > 100 то 101 — 10 иначе 尸(尸(101 + ")),
/5 есть 91.
Вычислительная последовательность сокращенно записывается так:
?(99)—尸(尸(110)) —F(100)-> 尸(尸(111)一> F(101)f 91.
T T t t t
Таким образом,厶/戶(99) есть 91. Отметим, что в этом случае получается такая же вычислительная последовательность, если использовать правило параллельной самой внутренней замены или правило свободного аргумента, т. е. оба значения Р/Р(99) и 尸4 (99) есть 91.
Используем правило самой левой замены:
/0 есть 尸(99),
t
厶 есть 尸(尸(110)), t
/2 есть ec^F(110)> 100 ToF(110)-~10uH^eF(F(F(l 10)+11)),
/з есть 尸(尸(尸(110)+11)),
厶 есть если 尸(尸(110) + 11) > 100 то F(F(110) + Н) ~ Ю
иначе 尸(尸(尸(F (110)+11)+11)),
/5 есть если [есм F(110) > 89 то 尸(110) + 1 иначе Т
尸(尸(尸(110) + 22))] > 100 т。尸(尸(110)+11)—10 иначе
F(F(F(F(110)+ll)+ll)),
% есть если F(110) > 99 то 尸(尸(110) + 11) — 10) иначе
'尸(尸(尸(尸(110)+11)+11)),
片 есть 尸(F (110)+ 11)— 10)
% есть [если F (110) > 89 то 尸(110)+1 иначе
尸(尸(尸(110) + 22))]— 10, tg есть F (110) — 9,
t
/io есть 91.
Таким образом,丄戶(99) есть 91. И
Диаграмма вычислений. Перед тем как рассматривать отношение между Ср (вычисленной функцией для некоторого правила вычисления С) и fp (наименьшей неподвижной точкой Р), мы введем несколько понятий, которые будут использоваться в доказательствах разд. 5.2.2. Рассмотрим рекурсивную программу Р следующего вида: F(x) ^= t[F] (х). Для простоты предположим, что функционал т имеет только два вхождения символа 尸.Обозначим его через t[F, F], чтобы выделить эти два вхождения. Так как т определен с помощью суперпозиции монотонных базисных функций и предикатов и функциональной переменной 尸,то он должен быть монотонным по отношению к любому вхождению F. То есть для любой функции h из f 三 g следует м,用三"g,九]и н力,f]三工[力,g] и, очевидно, Uf,丹三Rg・g]・
Рассмотрим теперь диаграмму, изображенную на рис. 2, которая называется диаграммой вычислений для т.
Эта диаграмма представляет собой бесконечное дерево. Каждый ее элемент определяется из своего предшественника заменой одного или большего числа вхождений символа 尸 функционалом т [F, F]. В соответствии с каждым термом в диаграмме вычислений мы можем найти функцию с помощью подстановки Q на место каждого символа 户.Путь в этой диаграмме, такой, что все символы 尸 в его термах заменены на Q, называется а-〃уте川.Так как т—монотонный функционал по отношению к любому вхождению F и так как S3 三寸Q, Q], то, очевидно, мы имеем:
r[Q, Q]三 t[p[Q, a], Q], r[Q, Q] r[Q, t[Q, Q]], t [Q, Q]三 t[t[Q, Q], r[Q, Q]] и т. д. А это влечет за собой, что каждый Q-путь в диаграмме вычислений определяет цепь функций. Например,
◎三 м。,◎]三 t[Q, t[Q, Q]]三 t[Q, t [t [◎, ◎], Q]]三・・•
Отметим, что для самого нижнего пути в диаграмме вычислений*
F% [F, Fj -> т [т [F, Г], т [尸,尸D f ・・・,
Рис. 2.Рис. 2.
Рис. 2.
Рис. 2.
叩 kE4H,F] (卜e。е用日 叱е冃疝讦口 tRR[F,冃壮F,叱 F] 工口市用,4也F]] t[t[f.t[f,f]],t[f,f]] "U巾国乖班中,用
丿日e门叱冃]
F*t[f,F]F*t[f,F]=T [f〕[e f]}^^L/市,冃忐〔f,f] F]]
F*t[f,F]
F*t[f,F]
弋市,也[河市间]
' ф{Е冃而[讦卜[F, FJ]]
un阻市月口
полученного заменой на каждом шаге всех вхождений символа 尸 на т [F, F], соответствующий Q-путь совпадает с цепью
Q三t [Q]三产⑼三y3网W...,
которая была введена в доказательстве теоремы 5.2.
Существует следующее важное соответствие между вычислительной последовательностью /о, 6, %,.…рекурсивной программы 尸(М)<= т [F](X)и Q-путями диаграммы вычислений для т. Для любой рекурсивной программы Р:尸(无)■<= t[F] (х), элемента 曰 и правила вычисления С существует путь (конечный или бесконечный) Ср [F], Ср [F], С^ [尸],・・・ в диаграмме вычислений для т, такой, что
Ср [F] (d) = ti
нвг {еp [Q]}(力三 &> (力.
Для построения пути С}[尸] мы начинаем с 尸 и заменяем на каждом шаге некоторые вхождения 尸 на t[F,尸].Выбор символов F, которые заменяются на t[F, F], определяется рассмотрением вычислительной последовательности для d. Находим на каждом шаге С1^1 [F] из Ср [F], заменяя в точности те вхождения 尸,которые выбраны для нахождения /1+1 из % в вычислительной последовательности для @2) Найденный путь является желаемым путем Ср [F], Ср [F], ..., и он должен быть такой же длины (конечной или бесконечной), как вычислительная последовательность для @.
Пример 5.15. Рассмотрим следующую рекурсивную программу над множеством натуральных чисел {программа Фибоначчи) :
F (х)0 если х <2 то 1 иначе [F (х— 1) + F (х — 2)].
Обозначим ее через 尸(х) <=т [尸,尸],чтобы различать два вхож、 дения символа F в функционал т.
В приведенной ниже таблице слева описывается вычисление 尸(3) при помощи правила вычисления самой левой замены, в то время как справа описывается соответствующий путь в диа-
】)Наименьшая верхняя грань для конечной цепи всегда представляет собой последний элемент этой цепи.
Отметим, что не все вхождения символа F в Ср [F] будут появляться в терме 力,потому что некоторые из них можно элиминировать, производя упрощения в процессе вычисления.
грамме вычислений для т. (Как и прежде, стрелка f указывает заменяемое вхождение F.)
?(3)
Ср [F]: F
f F⑵+?⑴ т
СИЛ: t[F, F]
->[F(1) + F(O)] + F(1)
C^[F]: t[t[F,尸],F]
f 口+f(0)] +尸⑴
鑑[用:MHt [尸,用,用,F]
f 2 +尸⑴
CUFV t[t[t[F,用,t[£ 尸]],F]
t
—> 3
СМЛ: t[t[t[F,尸],HR 尸]],t [尸,呼
Таким образом, элементы Ср [F] (х) этого пути следующие: 徹[用(%): fW
Ср [F] (х): если х <2 то 1 иначе [F(x — 1) + 尸(尤2)]
Ср [F] (x): если x <2 то 1
иначе {если х— 1 <2 то 1
иначе [尸(%—2)+尸(х—3)]
+ 尸(% - 2)}
С"尸](%):
если х < 2 то 1
иначе {если %— 1<2то 1
иначе {если х—2<2 то 1
иначе [尸(%—3)+尸(х—4)]
+ F“一3)}
+尸(工一2)}
内用(%):
если х < 2 то 1
иначе {если х— 1 <2 то 1
иначе {если х—2<2 то 1
иначе [尸(х—3)+F(x—4)]
+ еслих—3<2 то 1
иначе[Р (% -4)+尸(%—5)]}
十尸仇一2)}
СИЛ W:
если % V 2 то 1
иначе {если %— 1 <2 то 1
иначе {если х—2<2 то 1
иначе [尸(%—3)+尸(%—4)]
+ еслих—^<2 то 1
иначе [尸(%—4)+尸(х—5)]
+ если х—2<2 то 1 иначе [尸(% — §) + 方(% — 4)]}
Значение Ср [Q]⑶ есть
если 3 < 2 то 1
иначе {если 2 < 2 то 1
иначе {[если 1 < 2 то 1 иначе со]
+ если 0 < 2 то 1 иначе со]}
+ [если 1 < 2 то 1 иначе со]}.
А это, очевидно, равно 3. |
Правила вычисления неподвижной точки
Будем говорить, что правило вычисления С есть правило вычисления неподвижной точки, если для каждой рекурсивной программы 尸 над множеством D
еp 3)三 f p (d) для всех &三(0十)\
Первые три правила вычисления, введенные в разд. 5.2.1,—- правила самой левой ——самой внутренней замены, {^вызов по значению》),параллельной самой внутренней замены, и самой левой замены [^вызов по наименованию^)——не являются правилами вычисления неподвижной точки. В следующем примере приводится рекурсивная программа Р, для которой LIP ^ fP Pip fр и Lp fp.
Пример 5.16. Рассмотрим рекурсивную программу Р над множеством целых чисел
F(x, у)<=если х == 0 то 0 иначе [尸(%+ 1,尸(%, у))*尸(%— 1,尸(%, у))] в которой функция умножения * расширена следующим образом:
О*со и (о*0 есть 0,
а* со и а)*а есть s (для любого числа а =И= 0), со*з есть со.
Расширенная таким образом функция умножения является монотонной функцией, и поэтому ее можно использовать как базисную функцию в нашем рекурсивном определении.
Наименьшая неподвижная точка fp(x, у) есть бинарная нулевая функция Z(x, у), т. е. Z(x, у) есть 0 для всех х, у из /+. Следовательно, и 方(1, 0) равно нулю. Однако вычисление 尸(1,0) с помощью правила параллельной самой внутренней замены выдает следующую бесконечную последовательность:
尸(1,0)-戶(2,尸(1,0))* 尸(0,尸(1,0))
f 尸(2,尸⑵尸(1,0))*尸(0,尸(1, 0)))*尸(0"(2,尸(1,0))*F(0,尸(1,0)))
Аналогично мы получаем бесконечную вычислительную последовательность для 户(1,0) с помощью правила самой левой —— самой внутренней замены и правила самой левой замены. Таким образом, значение 厶/尸(1,0), Р/р(1, 0) и 厶戶(1,0) есть со.
Отметим, что вычисление значения 尸(1,0) с помощью правила параллельной самой внешней замены дает следующую последовательность:
尸(1,0)-尸(2,尸(1,0))*尸(0,尸(1,0))
-尸(3,尸⑵尸(1,0)))*尸(1,尸⑵尸(1,0)))]*0 =
•= 0.
Аналогично получаем, что значение 尸(1,0) для правила свободного аргумента и полной подстановки есть 0, а не з. Слабым пунктом в этих вычислениях является то, что приходится каждый раз, когда это возможно, делать упрощения. Поэтому, если можно определить значение функции, имея величины ее некоторых аргументов, следует заменить функцию ее значением, не ожидая того момента, когда будут вычислены другие аргументы Таким образом, терм
[尸(3,尸(2,尸(1,0)))* 尸(1,尸(2, F(l,0)))]*0 необходимо заменить на 0. |
Существует одно важное свойство правила Ср, которое справедливо для любого правила вычисления С.
Теорема 5.3 (Кадыо) Для любого правила вычисления С вычисленная функция СР менее определена или эквивалентна наименьшей неподвижной точке 斥,т. е. СР 三 fP.
Доказательство. Пусть Р есть рекурсивная программа F(x) <= т [F, F] (х) над множеством Q, J — произвольный элемент из (А)" и С — некоторое правило вычисления. Тогда мы обозначим через Ср [Z7], Ср [F], Ср [F], ... соответствующий
путь в диаграмме вычислений для т. Рассмотрим дополнительно самый нижний путь в этой диаграмме: т° [F], т1 [F], т2 [F], ... . В силу того что для каждого / из C}[Q] можно всегда получить 卄[Q], заменив некоторые вхождения Q на т [Q, Q], заключаем, что
爲[Q]三门Q] для всех /》0.
Так как F [Q]三 нвг {Y [Q]}, то получаем, что C}[Q]三 三 HBr{Y[Q]} для всех i ^ 0. Таким образом, нвг {tz [Q]} есть верхняя грань для {@[Q]} и
нвг {Ср [Q] }三 нвг {Y [Q] }•
Далее, так как Ср (d)三 нвг {/[◎]}(£) и по теореме 5.2 fP = нвг {V [Q]}, то
Ср0)三 fp(2)・ В
Опишем теперь условие, достаточное для того, чтобы правило вычисления было правилом вычисления неподвижной точки. С его помощью мы получим, что правила параллельной самой внешней замены, свободного аргумента и полной подстановки суть правила вычисления неподвижной точки. Для этой цели потребуются некоторые дополнительные понятия. Пусть а[Р, 戶, 戶+1,产]3) обозначает произвольный терм в вычислительной последовательности для 3. Мы употребляем различные верхние индексы для того, чтобы выделить различные вхождения символа F в а (однако эти верхние индексы не обязательно соответствуют порядку вхождения). Допустим, что для подстановки выбраны вхождения 尸〔,...,尸'символа 尸 в а. Будем говорить, что это безопасная подстановка, если
а [Q,・• •,Q, fp, • • •, fр] (2) =
Назовем правило вычисления безопасным, если оно всегда использует только безопасные подстановки.
Теорема 5.4 (Вийеман). Любое безопасное правило вычисления есть правило вычисления неподвижной точки.
Доказательство. Допустим, что С—безопасное правило вычисления, но не правило вычисления неподвижной точки. Пусть Р есть рекурсивная программа F(无)<=т [F, F] (х) над об» ластью Q, для которой СР fP. Согласно теореме 5.3, СР fP для любого правила вычисления С, поэтому, если С не является правилом вычисления неподвижной точки, то мы должны иметь Ср (Я) ^(о и fp(d) ^ о)для некоторого 力三(Q+)〃. Так как по теореме 5.2 выполняется fp(d) = нвг {rz[Q]} (5), то из предполо-
жения /р(2)条(о следует, что тЛ [Q] (й) ^(о для некоторого /2》0.
Для целей этого доказательства удобно выразить элементы диаграммы вычислений для т в виде бинарного дерева, в котором каждой неконцевой вершине приписан символ т, а каждой концевой вершине приписан символ Q. Этот метод позволяет определить глубину каждого вхождения символа Q в терм. Например, для терма t[Q, t[t[Q, Q] ,Q] ] это представлено на рис. 3.
Пусть C$>[F], Ср [F], Ср [F], ... — путь в диаграмме вычислений для % который соответствует правилу вычисления С и
входу 5. Так как, согласно предположению CP(d) (о, отсюда следует, что имеются две возможности: либо вычислительная последовательность для 3 конечна и ее последний элемент есть в, либо вычислительная последовательность бесконечна. В первом случае мы легко приходим к противоречию, заменив все вхождения F в термах вычислительной последовательности на fP. Каждый терм теперь эквивалентен ^своему предшественнику, в то время как первый терм ——это "(N), а последний s. Следовательно, /戶(冉=(0, что противоречит нашему предположению о том, что fp(d)千(о.
Во втором случае путь Cp[F]f Ср [F], Ср [F], ... должен быть бесконечным. В силу того что каждый терм Cp[F] содержит только конечное число символов F с глубиной W 〃,отсюда следует существование некоторого 2 (^ ^ 0), такого, что C^+i [尸]выводимо из Ср [F] заменой только таких 尸,у которых глубина больше п. Обозначим Ср через a[F* ..., 戶, 戸+i, ..., Fk], где 尸,...,戶一те вхождения 尸,которые заменены в процессе нахождения國+1[尸]. Теперь рассмотрим терм
а [◎,・・・,R, d [Q], ... > тп [Q]].
Все первые / вхождений F имеют глубину, большую 〃,и заменены на Q, оставшиеся вхождения F заменены на тп [Q]. Таким образом, все вхождения Q в а будут иметь глубину ^ п. Поэтому
^[a]三a[a,...,0,T拉g],...,^[处].
Но в силу того что У [Й]三,р и а монотонный по отношению к любому вхождению 尸,имеем
a[Q, Q, Tn[Ql Tn[Q]]^a[Q, Q, fP, fP].
Следовательно, xn[Q]^ a[Q, .. •, Q, 斤,…,"]. А так как
(J) ^ co, то получаем a [Q, ..., Q, fp, ..., %] (2)暖 o), что противоречит нашему предположению о безопасности правила вычисления С. |
Следствие. Правила вычисления параллельной самой внешней замены, свободного аргумента !) и полной подстановки суть безопасные правила и поэтому являются правилами вычисления неподвижной точки.
Доказательство. Вместо того чтобы приводить формальное доказательство, показывающее, что перечисленные три правила безопасны, обсудим некоторые интересные случаи. Для того чтобы показать, что правило параллельной самой внешней замены безопасно, рассмотрим терм вида
g (〃1, • •., a内,F (厶),• •.,尸(/%)),
где g ——базисная монотонная функция, a, w £)+ и каждый 力 в свою очередь может содержать вхождения F. Если в вычислительной последовательности мы достигнем подобного терма, то для следующей замены будем выбирать в точности те вхождения 尸,которые указаны выше. Так как нам приходится делать упрощения в термах вычислительной последовательности всякий раз, когда это возможно, отсюда заключаем, что
g(ai,・・・,源,①,・・・,со)三со.
Ибо, если предположить, что g (ab ..., a^, о, ..., о) ^(о, то для некоторого d w О
g (ab ..., akf s,・・・,(o)三 d.
Поэтому в силу монотонности функции g для всех bi 三炉
g (a〔,• • •,訣,仇,,b〃)曰 d.
i) Чтобы показать, что правило свободного аргумента безопасно, нам надо ограничиться случаем, когда fp не является константой.
В силу того что правила упрощения требуют, чтобы упрощения производились всякий раз, когда это возможно, мы должны заменить терм
g (ab• • •,。后,尸(厶),.. .,尸(/n)).
на d на некотором предыдущем шаге вычисления, и поэтому он не может быть термом вычислительной последовательности. Таким образом, g(@i,・..,。月,со, …,со)三 со, что в точности совпадает с условием, которое требуется для безопасности подстановки. Отметим, что для любого терма вида 尸(..•) подстановка, очевидно, безопасна.
Из того факта, что правило параллельной самой внешней замены безопасно, непосредственно следует, что и правило полной подстановки безопасно. Дело в том, что все вхождения F заменены при применении правила параллельной самой внешней замены и всегда включены в множество тех вхождений 尸,которые заменяются при применении правила полной подстановки.
Для того чтобы показать, что правило свободного аргумента безопасно, рассмотрим терм вида
尸(尸(厶),f优2),...,尸(八)),Т Т Т
где каждое 力 не содержит F. Так как при применении правила свободного аргумента мы заменяем только внутренние вхождения F, следует проверить величину
fр (Q 优 1), Q (勾),• • •,Q (〃))•
Согласно нашему предположению, функция fP монотонная и не постоянная, откуда следует, что /р(о), .., (о)三(о, а это и означает безопасность подстановки. |
Ранее мы показали, что все три правила вычисления (самой левой — самой внутренней замены, параллельной самой внутренней замены и самой левой замены) не являются правилами вычисления неподвижной точки. Наш контрпример (см. пример 5.16) использует базисную функцию (умножение), которая не является естественно расширенной. Так как базисные функции в большинстве рекурсивных программ естественно расширены, то небезынтересно будет посмотреть, что произойдет в этом случае.
Оказывается, что для ограниченного класса рекурсивных программ, которые используют только естественно расширенные базисные функции (за исключением функции если-то-иначе), правила самой левой ——самой внутренней замены {^вызов по значению^) и параллельной самой внутренней замены еще не есть правила вычисления неподвижной точки, в то время как
правило самой левой замены (^вызов по наименованию^) безопасно и поэтому является правилом вычисления неподвижной точки.
Рассмотрим любой терм вычислительной последовательности, который имеет вид
g (尸(幻,尸闯),T
где g ——естественно расширенная базисная функция и каждый ti может содержать другие вхождения символа F. Правило самой левой замены будет заменять самое левое вхождение 尸. Так как функция g естественно расширенная, то g(o),"(勾))三 曰 со. и поэтому подстановка безопасна. Однако без этого ограничения (как было в предыдущем случае) мы мо;кем получить, что g®,加«2))凄 з, а это делает нашу подстановку небезопасной. Единственная функция, которая не является естественно расширенной, но употребляется, это функция если-то-иначе, для которой при всех af b ^ 0+ значение если со то а иначе b есть со. Это является причиной того, что правило самой левой замены——единственное правило, которое становится в этом случае безопасным, ибо внутри функции если х то у иначе z мы делаем подстановку на место % прежде, чем пытаемся вычислить значения у или N.
В следующем примере приводится рекурсивная программа Р из этого ограниченного класса, для которой одновременно выполняется LIP ^ fP и Р1Р ^ ".
Пример 5.17 (Моррис). Рассмотрим рекурсивную программу Р над множеством целых чисел:
F (х, у) ^= если х = 0 т。1 иначе F (х — I, F (xf у))у
для которой наименьшая неподвижная точка есть fp:
fP (х, у): если %》0 то 1 иначе со.
Вычислим значение 尸(1,0), воспользовавшись правилом вычисления самой левой ——самой внутренней замены:
尸(1, 0)-> 尸(0,尸(1, 0))-尸(0,尸(0,尸(1, 0)))-・・・・
Эта последовательность бесконечная, и поэтому значение 丄/尸(1,0) есть со. Фактически
L/p(x, у): если х=0 то 1 иначе со,
и эта функция строго меньше определена, чем функция ”. Функция 尸/戶 для этой программы совпадает с ЫР. 0
Системы рекурсивных определений
Обсуждаемый до сих пор язык программирования был очень ограниченным главным образом потому, что мы позволяли использовать только одну функциональную переменную 尸 и одно рекурсивное определение в каждой рекурсивной программе. Вообще говоря, нам хотелось бы, чтобы рекурсивная программа над множеством D содержала систему рекурсивных определений вида
尸1(盼v=G [尸1, . ..,f他](元),
尸2伉)v=3[尸1, •・•,FJ W,
尸/п (三)и^m [尸1, 尸m](元),
где каждое т/ — функционал над [(Q+)" — Q+], представленный с помощью суперпозиции известных монотонных базисных функций и предикатов и функциональных переменных Fb F2, . • •,尸加, которые применяются к индивидным переменным 无=<хь х2, . • • ...,х/. Прежде чем обсуждать такую систему рекурсивных определений, следует расширить некоторые понятия, введенные в начале этой главы.
Рассмотрим m-наборы функций f =〈%, fm}. Будем называть f монотонной, если каждая функция 力 монотонна. Для f = <fi, fm> и g =〈gi, ..., gQ полагаем f 三 g тогда и только тогда, когда 力三 gj для всех i (1 W i W m). Рассмотрим теперь функционал т[尸i, ..., Fm] над [(。扌)“ f 0^]": Иными словами, этот функционал отображает m-ку функций <fi,..., fw> в m-ку функций <gi, gQ, где каждая функция % и g(・ берется из множества [(°T)'f °^]・ Наилучший способ задания такого функционала состоит в выражении координатных функционалов п, •. •, Тт так, что т [尸1, •.., Fm] есть
〈口 [尸1, •…,尸/п], 3 [尸1,…m\t • • •, ^tn [尸1 > • • • > 尸/п]〉•
Будем говорить, что m-ка функций f =〈%, ..., %) является неподвижной точкой т, если 力三 力[力,...,fm] для всех i (1 W i W 优).Если f ——неподвижная точка т и f 三 g для всякой другой неподвижной точки g =〈gi, gm) функционала т, то назовем f наименьшей неподвижной точкой т.
Будем говорить, что функционал т =〈口,..., т^> над областью [(Qt)'f О^]“ непрерывный, если каждый функционал т, непрерывный. Для этого случая результаты теорем 5.1 и 5.2 все еще остаются справедливыми: (1) любой функционал т, определенный с помощью суперпозиции монотонных функций и функциональных переменных 尸八Fm, непрерывный 〃
каждый непрерывный функционал т имеет единственную наименьшую неподвижную точку, которая обозначается через
九=〈左1,...,%〉.
Пример 5.18. Рассмотрим функционал над областью [N+-AT?
t®f2] = &因,尸乩3[吊,f2» где
У [尸 1,尸2] (%): ecAU % =。7。1 иначе [尸i (% — 1) + 尸2 (% — D] и
т2[Л,尸2] (%): если х = 0 то 0 иначе F2U + D・
Для любого п е ^ пара 〈g%,也九〉,где
gn (х): если х = 0 V х= 1 то 1 иначе [п(х —1)+1] и
hn (х): если % = 0 то 0 иначе /г,
есть неподвижная точка т, потому что gn 曰 ri [g〃,hn] в % = =&[g〃,九/・ Пара
(если % = О V % = 1 то 1 иначе со, если х = 0 то 0 иначе со〉 есть наименьшая неподвижная точка т. И -
Пример 5.19. Рассмотрим функционал т над областью [^+->^+]2:
t [尸1,尸2]=〈5 [fi,尸/3 [尸1,尸2]〉, где
口 [尸i,尸2】(%): если х > 100 то % — 10 иначе 尸i(尸2(%+ Н)) и
t2[Fi,尸2】(尤):если х > 100 то х —• 10 иначе 尸2(尸1(%+ 11)).
Единственной (и поэтому наименьшей) неподвижной точкой т является пара
(если % > 100 то х— 10 иначе 91, если к > ЮОтох— \ G иначе 91). |
Аналогично можно обобщить правила вычисления на системы рекурсивных определений. Все результаты, касающиеся наименьшей неподвижной точки вычисляемых функций, которые были упомянуты раньше, справедливы и для систем рекурсивных определений.
Пример 5.20. Рассмотрим вновь рекурсивную программу над множеством натуральных чисел вида
F] (х) <= если % = 0 то 1 иначе [F] (% — 1) + 尸2 (% — 1)],
F2 (х) -4= если x = Q то 0 иначе 尸2(%+ 1).
Ее наименьшей неподвижной точкой является пара
(если % = О V % = 1 то 1 иначе со, если х = 0 то 0 иначе о).
Если вычислять значение 尸 1(2), используя для этого правило самой левой замены, то получим"
/0 есть 吊(2)
если 2 = 0 то 1 иначе [吊(2 — 1) + F2 (2 — 1)],
/1 есть р⑴+?2⑴ t
[если 1 = 0 т。1 иначе [Л (1 ~ 1) + 危(1 - 1)]] + F2(l),
/2 есть 用(0) + &(0) + ?2 ⑴
[если 0 = 0 то 1 иначе [Л (0-1) + & (0 一 1)]] + 尸2 (0) + &⑴, /з есть 1 + 尸2(0) + 尸2 ⑴
t
1 + [если 0 = 0 то 0 иначе F2(0 + 1)] + 尸2 ⑴,
方4 есть 1 + F2(l) t
1 + [если 1 r=() то 0 иначе 尸2(1 + 1)】,
G есть 1 + 尸2 ⑵
Т
и т, д. Это вычисление никогда не кончится, и поэтому значение 尸 1 (2) есть со, что согласуется со значением 忆(2). В
5.3. МЕТОДЫ ПРОВЕРКИ
В этом разделе мы опишем насколько индуктивных методов для доказательства свойств наименьшей неподвижной точки рекурсивных программ. Двумя основными методами являются метод вычислительной индукции, представляющий собой индукцию по уровню рекурсии, и метод структурной индукции, использующий, по существу, индукцию по глубине структуры данных.
Мы останавливаемся на методах вычислительной индукции и структурной индукции потому, что они образуют естественный базис для будущей автоматической проверки программ. В частности, большинство других известных методов проверки можно обосновать непосредственным примененмем этих методов.
Шаговый способ вычислительной индукции
Первый метод, который мы опишем, для доказательства свойств рекурсивных программ -- это шаговый способ вычислительной индукции. По существу, идея этого метода состоит в
доказательстве свойств наименьшей неподвижной точки /戶 данной рекурсивной программы Р индукцией по уровню рекурсии. Для простоты объясним вначале этот метод на примере простой рекурсивной программы, состоящей из единственного рекурсивного определения, затем обобщим его на случай более сложных программ.
Пусть Р—- рекурсивная программа вида F(x) <= t[F] (х). Рассмотрим цепь функций {己◎]}. Из теоремы Клини (теорема 5.2) мы знаем, что
hbГ{Y[Q]}三九三方,
а это наводит на мысль сформулировать правило индукции для доказательства свойств fP. Чтобы показать, что некоторое свойство ф выполняется для fP (т. е. что предикат 屮(fp) истинен), мы покажем, что ^(т1 [Q]) справедливо для всех / ^ 0 и что ф остается истинным для наименьшей верхней грани последовательности {M[Q]}・ Из этого заключаем, что q)(HBr{Tz[^l}), т. е. 屮(”),справедливо. К сожалению, в общем случае неверно, что если ф(т/ [Q]) справедливо для всех i, то 屮(нв「{т"С]}) должно также выполняться. Это иллюстрируется в следующем примере.
Пример 5.21. Рассмотрим рекурсивную программу Р над множеством натуральных чисел
Р: F(х)^= если х — 0 то 1 иначе %.尸(%—1).
Как было отмечено в примере 5.8 (1), для i 2 0 имеем
Y [Q] (х): если х <iro х! иначе о
и
нвг {" [◎]}(%): х!
Рассмотрим такой предикат:
Ф (F): cЭ%三N)[f(%)三司.
Тогда q)(Tz [Q]) справедливо для всех / ^ 0, но так как х!关① для всех х е 2V, то 屮(hb「{Y [Q] }) не выполняется, g
Будем называть предикат 屮(尸)допустимым, если он обладает следующим свойством', если %р〃 всех i 力 0 справедливо q)(Tf [Q]) для каждого непрерывного функционала т, то выпол - няется (р(нв「{т,[Q]}). Следующая лемма выделяет один класс допустимых предикатов, которые будут использоваться во всех наших примерах.
Лемма (о допустимых предикатах). Каждый предикат, который имеет вид конечной конъюнкции неравенств'.
А修[尸1三也[用),
аОе а/ и Р/ ——непрерывные функционалы, является допустимым.
Доказательство Допустим, что 屮(尸) имеет вид a [尸]三М尸].мН предполагаем, что для всех i > 0 справедливо неравенство a [tz [Q] ] ^ Р [tz [Q] ]. Так как выполняется неравенство tz [Q] ^ нвг {tz [й]}, то р [V [Q] ] ^ Р [нвг {tz [Q]}) в силу монотонности р, а поэтому a [tz [Q] ] ^ Р [нвг {tz [Q]} ] для всех iА 0. Следовательно, р[нвг {tz [Q]}] есть верхняя грань для {W ⑼]} и поэтому нвг {a m 位]]}三 6 [нв「{円0]}]. Так как а непрерывен, то а[нвг{тг,[Q]}] ^ нвг{а[тЧ^]]}. Следовательно,
а [нвг & 風}]三 В [нвг {#[◎]}],
т. е. справедливо q)(HBr{xz [Q]}). (Усиление этого доказательства в случае, когда ф ——конечная конъюнкция неравенств, довольно очевидно.) ■
Отметим, что в этой лемме предикат a [F] = 6[尸],где а и Р ——непрерывные функционалы, является допустимым, потому что его можно представить в виде (а [尸]三 0(尸])/\ (0[尸]三 三 a[F]).
Из определения допустимых предикатов мы легко получаем следующий важный результат.
Теорема 5.5 (шаговая вычислительная индукция; де Баккер и Скотт). Для рекурсивной программы Р: F(x) ^x[F] (х) и допустимого предиката 屮(尸)из справедливости q)(Q) и Vf [(p(f)zD ф(т[/])] следует справедливость ^(fp).
Отметим, что квантор Vf следует читать Vfw [(0+)ЛН], где D ——область определения программы Р.
Пример 5.22. Рассмотрим рекурсивную программу Р над множеством D
Р: F (х) <= если р (х) то % иначе F (F (А (х))).
Для нашей цели нет необходимости уточнять область определения D программы или значения р и 用.Однако, как и во всех наших примерах, будем предполагать, что р и h естественно расширены, т. е. р((о) и ft((o) суть(о. Мы хотим показать, что
fpfp = fp,
°)Vx [fp(fP(x))^fp(x)l.
I) Отметим, что квантор V% следует читать: для всех х 三 D+ (а не только х е D). Так необходимо интерпретировать все кванторы общности, которые будут встречаться в оставшейся части этой главы.
Используя вычислительную индукцию, докажем, что справедливо ^(fp), где)
Ф(Л: Vx [% (尸(х))三尸(%)].
Отметим, что 小①)есть(о, потому что
/р((о) == если р ((о) то(о иначе f P(fp(h (о))) = (так как /「—— неподвижная точка)
=если s то ① иначе fP(fP (со)) ^ (так как р (о) и
h (со) суть(о)
三 со.(определение (если
^ то а иначе &))
Шаг 1. q)(Q): Доказываем Vx [fp (Q (х))三 Q (%)]. Для лю* бого %
fP (Q (х))三『р (со)三①三 Q (х).
Шаг 2. Vf [ф (f) zd ср (т [f])]: Предполагаем Vx [fP (f (x))^f (x)] и доказываем Vx [fP (t [f] (x))т [/] (x)].
Для любого 犬
(определение т) (распределение /Р над условием (fP (①)三 со))(определение /Р) (упрощение) (предположение индукции) (определение к, ■(определение т) (распределение /Р над условием (fP (①)三 со))(определение /Р) (упрощение) (предположение индукции) (определение к, ■fp (T力(X))三
(определение т) (распределение /Р над условием (fP (①)三 со))
(определение /Р) (упрощение) (предположение индукции) (определение к, ■
(определение т) (распределение /Р над условием (fP (①)三 со))
(определение /Р) (упрощение) (предположение индукции) (определение к, ■
=fP (если p (x) то % иначе f(f (九(%))))三 =если р (х) то fP (х) иначе fP (f (f (h (%))))三
三 если p (x) то (если р (х) то % иначе fP (fP (h (х)))) иначе fP(f(f (h (х)))) ^
^ если р (х) то % иначе fp(f(f (Л (х)))) ^
三 если р (х) то % иначе f (f (Л (х)))三
= ^[f] (%)•
Пример 5.23. Рассмотрим рекурсивную программу
Р: F(x, у) ч= если р(%) то у иначе /г(尸依(%), у)).
Нам хотелось бы доказать, что
VxV// [й (fp (х, у))三 fP 的 h ({/))].
Для этого полагаем, что
屮仍丿 есть ^хУу [h (F (х, у))三尸(%, h(y))].
Так как h(F(x1 у)) и F(x, h{y))—непрерывные функционалы/то 屮(尸)——допустимый предикат. Доказательство проведем за два шага.
Ill а г 1. q)(Q): Доказываем VxVy [h (Q (х, i/)) ^ ^(х, h(y))]. Это очевидно, потому что h(^) есть ①.
Ш а г 2. Vf [Z (f) =)q)(x[f]) ]: Предполагаем YxVу [h (J (х, у))三 f(^>h(y))] и доказываем VxVy [h(%[f] (x,y))^ x[f](^.h(y))].
h (r [f] (x, y))三 h {если p (x) то у иначе h 什他(x), у)))三 ^ если p(x) то h(y) иначе 力(/?(f值(%), У)))三 三 竺尸? п'х\ то h (у) иначе A (f (k (х),用(у“)三 (предположение индукции)
三"丹(招用匂))■
Следующий пример использует в качестве области определения множество S* всех слов над данным конечным алфавитом S, включая пустое слово Л. Существуют три базисные функции:
head (х) задает начало (первую букву) непустого слова х; tail (х) задает хвост непустого слова % (т. е. слово 丫 с удаленной первой буквой);
и.х приписывает букву а к слову %.
Пример 5.24. Рекурсивная программа над множеством S*
Р: Е(х, у) ^= если х — А. то у иначе head (х). F (tail (х), у)
определяет функцию конкатенации fP(x,у), которая обозначается через х^у. Например, AB^CD есть слово ABCD. Нам хотелось бы показать, что функция 帑 ассоциативна, т. е.
VxVyVz [(х * у) ^ z = х ^ (у ^ г)].
Для этого докажем cp(fp), где
ср (F): Vx%Vz [F(x, y)*z^F (х, у * г)].
Отметим, что 尸(х, g)%z и 尸(х, y*z)——два непрерывных функционала, поскольку они представляют собой суперпозицию функциональной переменной 尸 и монотонной функции *. Поэтому ^(F)——допустимый предикат.
В нашем доказательстве будем использовать тот факт, что со 味之三① для всех а, так как
(о * г ^ если(о = А то 之 иначе head (о), (tail (о) * г) ^ ^ если ① то 之 иначе head (о), (tail (о) * г) ^ 三①.
Шаг 1. ср (Q): Доказываем VxVyVz [Q (х, у) * 之=Q (х, у * г)].
Q (%, у) * z 三① * 之三 з 曰 Q (х, “ * z)*
Шаг 2. Vf [ср (f) zd qp (т [f])]: Предполагаем VxVyV^ [f (%, У)* 之曰 f (x, у * г)] и доказываем 弋八iyPz [т [f] (х, у) ^z^ mt 用(%, У * ^)]-
t [f] (x, у) * 2 曰
三(если % = А то у иначе head (х). f (tail (х), у)) * 之 三
三 если х=Л то у * 2 иначе (head(尤)・ f (tail(x), y))*z =
(определение т) (распределение * 2
над условием (со * 2 есть(о))
曰 если % = А то у * 2 иначе head (х). (f (tail (x), у) * 2)曰
(определение функции *)
三 если х = X то у ^z иначе head (х). f (tail (х), у ^z) =
(предполо
жение ин
т [/] (х, у* г).
дукции) (определе
ние т) 1
Примеры, приведенные до сих пор, показывали,
что вычис-
лительная индукция удобна и естественна для доказательства
многих типов свойств рекурсивных программ. Однако определенные трудности встречаются при доказательстве окончания и правильности программ. Для того чтобы показать, что g 三 fp для некоторой фиксированной функции g (которая не есть Q), мы не можем выбрать 屮(尸)так, чтобы просто выполнялось g三尸,так как тогда q)(Q) будет всегда иметь значение ложь.
Это правило непосредственно расширяется для доказательства некоторых отношений между двумя рекурсивными программами. Пусть нам даны две рекурсивные программы
в:尸1(元)<=U因](元) и
Р2:尸2 (元)y R [f2](元)•
Допустим, что ①(尸i,尸2)——допустимый предикат, например конъюнкция неравенств а"尸卜尺]三自[尸l 尺],где а/ и р/ — непрерывные функционалы. Для доказательства (р(/р, /р) воспользуемся следующим правилом.
Если выполняются (p(Q, Q) и VfN% [屮(/i, %)п 屮(口[川, T2 [^]) ], то ^(fPi, fp) также выполняется.
Пример 5.25. Рассмотрим рекурсивные программы над множеством натуральных чисел
Р:尸 1 (%, у, а) <= если х = 0 то у иначе 尸i (% — 1, у 十 2,之)
и
「2:尸2 (%, у) <= ес九и х = 0 то у иначе F2 (^ ~ 1, // + 2х — 1).
Мы хотим показать, что
V% 办(%, 0, %) s fp,(x, 0)].
Обе функции % и 厶 в действительности совпадают с х2, но мы не будем здесь показывать этого.
Используем вычислительную индукцию для
屮(尸I,尸2): VxVz/ Fl (у, %(% — //), %)三尸2(У,炉一們,
чтобы доказать (p(fpj fp)・ При у = х это упрощается до Vx [fPi (х, 0, %) = fPi (х, 0)].
Шаг 1. q)(Q, Q): Доказываем V%Vy [◎(//, х(х — //), х)= =Q (у, х2 — у2)], что очевидно в силу ①三 со.
Ш аг 2. VfN% [屮(3, %) 口 屮(5同,3 [%])]: ПредполагаемVxVz/ [Л (у, % (% - у), х) е % (У, х2-力)]
и показываем VxVy [и 仇]® % (% — у), х)三办 仇]® ^2 — z/2)]. 巧由](弘%(% 一 //), %)三
=если у = 0 то х(х — у) иначе 力(у 一 1, х (х — у) + %, %) m 三 если у = 0 то х2 иначе f i (у — 1, % (% — (у — 1)), х =
= если у = 0 то х2 иначе “匂一 L х2 — (// — I)2) = (предполо* жение индукции)
=если у = 0 то / —力 иначе % (у — 1, (х2 — у?) + 2у — 1)曰
廿2】(У,广一Z/2). ■
Метод вычислительной индукции можно обобщить и приме* нить для произвольной рекурсивной программы, содержащей систему рекурсивных определений вида
尸1(元)[尸1,尸2,・・・,%](盼,
f2 (元)g3 [f1,尸2,•。。,尸团](盼,
尸加(元)V= J [尸1,尸2, •.•,fГn](元)•
Например, чтобы доказать 屮(f%,九?, • • ** 『т 、 где 屮(尸i,尸2, •••, ^m) ~~ допустимый предикат, можно использовать следующее правило шаговой вычислительной индукции:
9(%…,О9(%…,ОЕсли справедливо cp(Q, Q, ..., Q) и выполняется также V/N%…VM海色,%,…,m)口(p0团,3由,…,I什川,T。 выполняется “
9(%…,О
9(%…,О
Пример 5.26. Рассмотрим рекурсивную программу 尸 1 (%)弋 ecAti р (х)тоFi (F2 (ft (х)))иначе尸2 (g W),
F2 (x) ^= если q®to々(尸2 (Q (%)))^начеk (Л (x)),
F3 (x) ^= если p(x)to尸3 (々(尸4 (力(%)))) иначе 々(尸4(g(%))),
F4 (x) ^= если q (x)tok (F4 (F3 (x)))иначеft (x).
Мы хотим доказать Vx [fTl W ^ fTa W]« Допустим, что cp(Q,尸2,尸з,尸4)есть Vx {[Fi (x) ^ F3 W] A [F2 W = ^ (F4 (x))]}. Покажем далее, что справедливо 屮(『叫,九,『中 %)
Шаг 1. ср (Q, Q, Q, Q): Доказываем Vx {[Q (x) ^ Q (x)] Д Л [Й (x) ^ fe (Q (x))]}. Очевидно, это выполняется, поскольку fe (о)三 co.
Шаг 2. V^VfaVfaVh 忤色,%, %,h)П 中& 团,3团,R 厅], “团)]:Предполагаем Vx {伉(x)三 % ⑴]Л [f2 (x)三 k (h (%))]} и доказываем
Vx 也1 用(%)三 R [f] W] Л [т2 [f] (х)三 k (川力⑴)]}•
G [打⑴三
если р(х) то fi (f2 (ft (x))) 〃аш〃с f2 (g W)
= если p(x) to f3 (fe (f4 (ft (x)))) иясше 应(L(g(%)))三 (предположение индукции) мтз[〃(х)・
т2[f](х)三
^если q(x) то 々(% (%(%))) иначе 々(%(%)) = 三 k (если q (х) то f2 (f 1 (x)) иначе h (%))三 三 k (если q (x) то k (f4 (f3 (x))) иначе A (x))三(предполо
жение индукции)
^kMf] (x)). 1
Полная вычислительная индукция
Выразим правила шаговой вычислительной индукции (теорема 5.5), используя обычную математическую индукцию (по натуральным числам). Для этого обозначим выражение tz [Q] через 尸,таким образом,尸曰 С н『曰 ^[f^] для всех f ^ 1.
Имеет место следующая теорема.
Теорема 5.6 (полная вычислительная индукция; Моррис). Если- для рекурсивной программы Р 〃 допустимого предиката q (尸) справедливо соотношение Vf {[(V/, такого, что j V i) <р"/)] п 屮(尸)}, то выполняется 屮(fp).
Г а ким образом, чтобы доказать 屮(”),достаточно доказать, что если для любого / ^ 0 и всех j < t справедливо 屮(卩),то 中(产)также справедливо. Отметим, что это правило неявно указывает на необходимость обязательного доказательства (р(Й), потому что для / = 0 не существует /, такого, что j V L
Теоретически этот результат более сильный, чем результат теоремы 5.5, так как теорема 5.5 требует выполнения соотношения (p(f) id ф(т [f]) для всех монотонных функций (над областью всех программ), а не только для всех функций вида rf[Q]. Однако оба результата практически имеют одинаковую силу.
Это правило можно обобщить для доказательства некоторого отношения между двумя программами. Для двух рекурсивных программ
Р2-f2 (元)华T2[RI(元)
и допустимого предиката ^(F\, Л2) действует следующее правило:
Если справедливо Vr {[ (V/, такого, что / С i) 屮(儿 冃)二 u ①(几抬),то справедливо ^(1рг 厶).
Пример 5.27 (Моррис). Рассмотрим две рекурсивные программы (см пример 5.23)
R:储(%, у) ^= если р (х) то у иначе h (Fi (k (х), у)),
Р2* 尸2(%, y)vec/〃 р(х) то у иначе 尸2(々(%),九(//))・
Используя два вида вычислительной индукции, докажем, что справедливо соотношение
VNy ppj%, у)三 fр2 (х, у)].
Доказательство с помощью шаговой вычислительной индукции. Если ограничиться вычислительной индукцией теоремы 5.5, то придется доказать более сильный результат, чем требуется. (В доказательствах по индукции подобное случается очень часто, поскольку может использоваться более сильное индукционное предположение.) Таким образом, в действительности мы покажем, что соотношение
V%YU {[%(%,У)三九(%,У)] Л [fp2 (х, h 匂))三 h (厶(%, у))]} выполняется, если пользоваться вычислительной индукцией по ф (Q,尸2):中хРу {仍](%, у)三尸2 (х, у)】Л [尸2 U, h (у))三 h (尸2 (%,力升}・ Доказательство разобьем на два этапа.
Шаг i.屮(О, О):Докажем
VxVg {[а(х, 〃)三⑵工.i川 л [Q (х,用(у))三% 9(九!/))]}.
Очевидно, это справедливо, потому что 〃(电三⑴.
Ш аг 2. VfN% [ф(Л, /г) => ф(^1 [Л], ^2 [/г])]- Предположим
VxV// {[Л (х, у)三 % (%, У)] Л [%(%,用(у))三用仇(%,力)]} и докажем
YNy {[n [fi] (х, у)三 3 [fd (х, у)] Л &仇](居用匂))三
三用(方隔](%, //))]}・
u[fi](& y)=
= если р(%) то у иначе А (Л (/? (х), у)) =
=если р(%) то у иначе 力 伉传a),力)三
(предположение индукции)
= если р(%) то у иначе f2 (^ (^),力(//))三
(предположение индукции)
三方"2]a,力
t2向(居Л (у))=
= если р(х) то А (у) иначе % 他(%),力(力(у)))曰
= если то А (у) иначе h(f2 (/? (х), h (у))) = (предположение индукции)
А (если р(х) то у иначе % (々(%),九(//)))三 ^ А (т2 [f2] (х, у))・
Доказательство с помощью полной вычислительной индукции. Используя полную вычислительную индукцию, можно непосредственно доказать требуемый результат. Иными словами, докажем, что выражение
V%W/ [fPi (%,У)三 fp (%, У)]справедливо, используя полную вычислительную индукцию поф (尸I,尸2): YxPy [尸 1(X, у)三尸2 (%,у)]-
Покажем сначала, что справедливы отношения 9(f?, fg) и 屮(小眇и затем, что для всех i ^ 2 справедливо отношение 屮(不,f,. [Мы рассматриваем отдельно случаи / = 0 и i = 1, так как при доказательстве 屮(/;,/;) предположение индукции используется и для /——1, и для i — 2.J
Шаг 1. ф (f?, f^. Докажем V%Vy 卅(%, у)三 fg(%, у)]・ Это очевидно.
Ш а г 2. cp(fj, ^): Докажем VxVy [f{ (х, у) = ^ (х, //)].
力(х, у) = если р(%) то у иначе h^(k (х), у)) =
^если р(х) то у иначе со=(так как h (со)) ^(о)
м если р (х) то у иначе 优(尼(х), Л (у))曰
三月(居力.
Шаг 3. [(V/, такого, 〃то j < i)屮(儿 %)] 口 屮(九 抬)。儿兄 всех i》2: Предположим V%% [fj-2(x, у)三段『工,//)] и V%Vy 卩尸(居 У)三 fL (居 //)] и докажем
V%V// [f { ^, У)^ ^(х» уЦ-
乃(居У)三
если р(%) то у иначе h(f^ (k (х), у》= =если р(%) то у иначе 力(f尸伐(%),切曰
= если р(%) то у иначе А {если р (k (х)) то у иначе f厂2他他(x)),力匂))三
м если р(X)то у иначе h (если р (k (х)) то у иначе 月т 仅伍(%)), h (у)))=
三 если р (х) то у иначе {если р (k (х)) то А (у) иначе 力(f『2 优(k (%)), A (у))))三
=если р(%) то у иначе f尸(/? (%),力(у))三 = если р (х) то у иначе fp1 (ft (х), А (у))=
三 & (尤,//)•
(определение f;) (предположение индукции для z — 1)(определение /р1)(предположение индукции для i ——2)(определение ff"1) (предположение индукции для i ——1) (определение %). |(определение f;) (предположение индукции для z — 1)(определение /р1)(предположение индукции для i ——2)(определение ff"1) (предположение индукции для i ——1) (определение %). |Аналогично можно обобщить правило полной вычислительной индукции на системы рекурсивных определений. Для доказательства 屮(儿,%,•…,九J, me 屮(尸i,尸2, •••, Fm) —допустимый предикат, предположим, что
(определение f;) (предположение индукции для z — 1)
(определение /р1)
(предположение индукции для i ——2)
(определение ff"1) (предположение индукции для i ——1) (определение %). |
(определение f;) (предположение индукции для z — 1)
(определение /р1)
(предположение индукции для i ——2)
(определение ff"1) (предположение индукции для i ——1) (определение %). |
⑺,抬・・・,%=&,◎,・・・,с〉,
〈产,f"・・"片〉=3f1,0炉],・・・,%炉]〉■
Тогда правило полной индукции формулируется следующим образом:
Если справедливо VZ {[(V/, такого, что j <i)屮(〃,%, •••
・・•,К)]п屮(乃,汽,…'恵)},7。также справедливо qp(fTp fXr ..., fXm).
Индукция неподвижной точки
Следующий результат очень полезен при доказательствах свойств рекурсивных программ.
Теорема 5.7 (инвариантные преобразования неподвижной точки; Вийеман). Пусть даны две рекурсивные программы: Р: F(x)^x[F] (х) и Р: F(x) ф= тх [F] (х), где тх [F] получается из т [F] заменой некоторых вхождений 尸 либо на /\, либо на t[F], тогда Vx 愚(元)三 %,⑴].
Д о к а з а I е л ь с т в о. Запишем т [小]как т [?, г], где второй аргумент в выражении ЯЛ л используется для того, чтобы выделить те вхождения 尸 в т, которые нам хотелось бы заменить.
Определим
G [尸]=t [尸,t [尸,尸U, 亚[尸]=m尸,fj
Наша цель состоит в том, чтобы доказать эквивалентности 九三厶 三九,и мы сделаем это за два шага.
Шаг 1・ /е 三 fp и /Тг ^ /т. Это легко получить из определения Ti и Т2‘ Л ^ Ti [fx] = Т2 [fT], т. е. ft ——неподвижная точка одновременно ti и Т2, и поэтому она более определена, чем
Шаг 2. /т 三 J и /т 三 %. Докажем это с помощью шаговой вычислительной индукции, используя
T (£ Fb F2): (F三尸1)人(尸三代)八(尸三加八(尸三t[尸,F].
Отношение 屮(◎,◎,◎) очевидно. Предположим, что выполняется отношение 屮(厶 厶,%), и покажем, что должно выполняться 屮("〃,口山],迎面).
Так как /三“厶〃,то, в силу монотонности т по второму аргументу, t [/, 〃 三 工 j/, t", 〃 ] • По предположению индукции f 三 fi, откуда, учитывая монотонность т, заключаем, что t【厶 т [f, П ] ^ т 山"仏,川]• Следовательно,
r[f]-r [/, Л三т亿е亿川三т历,t [fl, fj]三廿同
и, таким образом,工用三口 [厶].Аналогично, поскольку f 三 fи /三 %, получаем
T用三T亿Н三T亿川三T [f2,加m 3同・
Таким образом, t 用三 3卄2】.Так как /三 fi, находим f]三 川三几
и, следовательно, т用三 充.Наконец, так как『三 t", f], мы получаем
т[/, Л^т[т[Л f], T[f, f]]. ■
Пример 5.28. Рассмотрим две рекурсивные программы над множеством натуральных чисел:
Pi: F (х) ч= если х > 10 то х — 10 иначе 尸(尸(%+ 13)) и
А:尸(%)<=ес4〃 х > 10 то х— 10 иначе 尸(% + 3).
Докажем, что
/Р] (х)曰 厶2 (%) для всех х е ^.
Замена 尸(%+ 13) в программе Pi на %[F] (х + 13) дает
Р;: F(%)Qec,〃 х > 10 то % — 10 иначе F (если %+ 13 > 10
то % + 13 — 10 иначе 尸(尸(% + 13 + 13))).
По теореме 5.7 Vx е ^ ^fp (%) = »(%)]. Так как % ^ 0, то всегда х + 13 > 10. Поэтому выражение F (если %+13>10 то х + 13——10 иначе 尸(尸(х + + 13)) можно упростить до 尸(% + 3). Таким образом, Vx е ^ 広,,%)*% (x)J и Vx е ^ [fPi (х) = fР2 (х)], что и требовалось. |
Пример 5.29. Рассмотрим рекурсивную программу
Fj (х) ^= если р(%) то 尸з (尸2 (尸2 (f (%)))) иначе g(%),
F2 U) <= если q(x) to F3 (h (x)) иначе k (x),
F3 (x) ^= если p(%) to 尸1(尸4什(%))) иначе g (x),
F4 (x) ч= если q(x) to 尸2(尸3(/1(%))) иначе 尸2 («(%))•
Докажем, что
(Vx)[九⑴三% (砒
Для этого сначала заменим определения 尸】и 尸2 на такие:
Fj (х) ч= если р (х) то F3 (fT2 (F2 (f (x)))) иначе g (x) и
F4 (x) ^= если q(x) to 几(尸3(力(%))) иначе 九?(/?(%)).
По теореме 5.7 наименьшая неподвижная точка функционалов при таком преобразовании не изменилась. Теперь мы в состоянии доказать с помощью вычислительной индукции, что
Vx {[厶(X)三九⑶]Л [% (%⑴)=几⑴]}, используя При ЭТОМ屮(尸1,尸2,尸3,f4): (Z1三尸3)八(厶尸2三f4)■、 Шаг 1. (p(Q, Q, Q, Q): Докажем Vx {[Q (x) ^ Q (x)] A A [f%(°(%))三 °(%)] }• Очевидно, это справедливо, поскольку 厶(总三8.
Шаг 2. Vf [^(fiJ2,f^f4)^4>(^[f]^2[fl ^[f], ^[Ш- Предположим Vx { [% (x)三 f3 (x)] Л [厶(% ®) — /4 W] } и докажем Vx {[< 田⑺三 т3 [f](x)] Л 也」% 田®)三 <[f](x)] }.
/ [f] (%)三
三 если р (х) то『3 (%? (% (f (%)))) 〃兄倣е g (尤)三
=если р(%) то fi (f4 (/ (%))) иначе g(%)三 (предположение индукции)
三R团(%),
胃 %, («&2〃 q (%) то f3 (Л (х)) иначе k (х))三
三 ес/〃 q (尤)то %? (f3 s(无)))иначе % 他(%))三
三Т;什](力
(Читатель должен отдавать себе отчет в тех трудностях, с которыми он встретится при прямом доказательстве Vx [ft (х)三 曰九(%)J, не прибегая к предыдущим преобразованиям.) |
Используя вычислительную индукцию, можно доказать еще один очень полезный результат — теорему об индукции неподвижной точки.
Теорема 5.8 (индукция неподвижной точки; Парк). Пусть Р: F(x)^r[F] (х) есть рекурсивная программа над множеством D. Тогда для каждого g ^[(Q,),Q打изР囿三g следует 加三g■
Доказательство. Мы используем шаговую вычислительную индукцию с
9仍):尸三g.
Очевидно, что выполняется соотношение (p(Q)т и поэтому нужно доказать Vf [(p(f)zD Ф(т[/])]. Предположим, что /三 g, и покажем, что 工[丹三且・ Если f 三 g, то в силу монотонности т получаем t [〃三 р[g] • А так как x[g]三 g, то т;[f]三 g. ■
Пример 5.30. Рассмотрим рекурсивную программу над множеством целых чисел
Р: F (х) ч= если %> 100 то %—10 иначе 尸(尸(х+ 11)).
Докажем, что для каждого целого % справедливо f р (х)^ g (%), где
g(x): если х〉100 то % — 10 иначе 91.
По правилу индукции неподвижной точки достаточно показать, чтот[g]三冉T. е.
если х > 100 то %——10 иначе [если [если % + 11 > 100 то
х + 11 — 10 иначе 91] > 100 то [если %+ 11 > 100 то
% + 11 — 10 иначе 91] — 10 иначе 91]三
三 ес,〃 х > 100 то % — 10 иначе 91.
Доказать этот факт довольно просто, если рассмотреть три случая: х > 100, 86 Vx W 100 и % & 89. *
Теперь введем метод, который исторически был первым методом, предложенным для доказательства свойств рекурсивных программ,——так называемый метод рекурсивной индукции.
Теорема 5.9 (рекурсивная индукция; Мак-Карти). Пусть нам даны две функции fp /2 е [(^D^y1 -> D^ и подмножество S 三(D:)'. Чтобы доказать, что для всех 充 wS выполняется % (元)三左(元),достаточно найти непрерывный функционал т, такой, что (1) /1 = x[fi], (2) /2 ^ т [f2] “ (3) fT(x) ^(о для всех х^ S.
Иными словами, нужно показать, что обе функции 厶 и % являются неподвижными точками функционала t и что 友(无) «определена» для всех х S.
Доказательство. Так как /т есть наименьшая неподвижная точка t, a fi и f2 — неподвижные точки т, то для каждого 斤 из множества (О:)“ выполняются,工(元)三 fi(无)и & (元)三 % (土). А в силу того что 九(元)事 со для всех 无 из S, мы получаем
九(元)三方(元)三 % (元)для всех х из S. I
Отметим, что в действительности можно доказать более сильный результат: достаточно найти монотонный функционал 匸 удовлетворяющий при всех 元三 S условиям: (1) 厶三工巾], (2) % 三 Н%] и (3) /т(х) ^ со. Главный недостаток метода рекурсивной индукции содержится в условии (3): для доказательства эквивалентности двух функций необходимо доказательство окончания. Отсюда следует, что рекурсивную индукцию нельзя использовать при доказательстве эквивалентности рекурсивных программ, у которых области определения предикатов и функций не определены.
Пример 5.31. Функция reverse^ над S* определена как /р(х, Л), где
Р: F (х, {/) ^= если х = X то у иначе F (tail (х), head (х).у).
Мн хотим доказать с помощью рекурсивной индукции, что reverse [х^ у) = reverse (z/) * reverse (х) для всех %, yw2*, где звездочкой обозначена функция конкатенации. Иными словами, она есть наименьшая неподвижная точка рекурсивной программы
G (%, у) ^= если х = Л то у иначе head (x).G (tail (х), у).
Для этого выберем функционал т, который определяется так: т [F] (х, у): если х = Л то reverse (у) иначе F (tail (х), у) * head (х).
Затем, используя известное свойство функций * и reverse:
reverse (ст.з)三 reverse (w) * о для всех а е S и w w 2*, мы получаем следующее:
Шаг 1. reverse{х^у)есть неподвижная точка т, потому что reverse (к^у)三
三 reverse {если х = А то у иначе head(x) . (tail(x) ^у))=
если х = Ато reverse (у) иначе reverse {head^xY (tail(x) *z/))^ если x — К то reversely) иначе reverse (tail (x) ^y) ^head (x).
Ш а г 2. reverse (y) ^reverse (x) есть неподвижная точка т, потому что reverse (у) * reverse (х)三
^ если х = А то reverse (у) * Л иначе reverse (у) * reverse (х)= =если х = А то reversely)
иначе reverse (у) * (reverse (tail (х)) * head (х))曰
三 если х = А то reverse (у)
иначе (reverse (у) * reverse (tail (х))) ^head (х) в силу ассоциативности функции *.
Ш а г 3. Для каждого %, у w 2* выполняется,т(%,у)条 со. Это можно показать прямой индукцией по х. ■
Структурная индукция
Метод полной индукции для доказательства предложений над областью N натуральных чисел формулируется следующим образом: чтобы доказать истинность утверждения г|)(〃) для каждого натурального числа п, следует показать, что для любого натурального числа i и для всех / < i истинность 2(/) влечет за собой истинность 屮(i). То есть если справедливо V/ е ^ {[(У/三 М такого, что / < i) W(j)]np(i)}, 丁。справедливо также (V/г е N)^(n). Однако это индуктивное правило не обя-
зательно верно в каждой упорядоченной области. Например, это верно для натуральных чисел с упорядочением V, но неверно для целых чисел с упорядочением < [рассмотрим 屮,значение которого всегда 力。宛ь!].
В этом разделе охарактеризуем вначале упорядоченную область, на которой такая индукция верна. Затем приведем общее правило, называемое структурной индукцией, для доказательства предложений над такими областями. Оказывается, что полная индукция, так же, как шаговая индукция, это не что иное, как специальный случай структурной индукции. Наконец, укажем несколько примеров, которые используют структурную индукцию для доказательства свойств рекурсивных программ.
Каждое частично упорядоченное множество (S, <), которое хорошо основано, т. е. не содержит бесконечной убывающей последовательности ao>ai>〃2> ••• элементов из S】), подходит для наших целей. Поэтому сформулируем и докажем правило структурной индукции для случая хорошо основанных множеств.
Теорема 5.10 (структурная индукция; Берстолл). Пусть (S, <)——хорошо основанное множество и ф ——всюду определенный предикат над S. Тогда, если Vo w S {[(V6 三 S, такого, что 6 <( а)(р(&)] ZD(р(а)}, то (VcwS)cp(c).
То есть если для всех а из S можно доказать, что истинность 屮(а) следует из истинности 屮(Ь) для всех b < а, то(р(с) истинен для каждого с из S ?).
Доказательство. Прежде чем доказывать правило, покажем, что если предположение выполняется, то не существует элемента из S, для которого 屮 принимает значение ложь. Рассмотрим множество
4 = {а I о 三 S и 屮(а) — ложь}.
Предположим, что Л не пусто. Тогда существует наименьший элемент а。из Л, такой, что а * а。для всех о w А В противном случае в S существовала бы бесконечная убывающая последовательность. Поэтому для любого элемента b из S, такого, что b < ао и(р(&) истинен, т. е. (V& е S, такого, что 力 < а。) справедливо (р(&). Но из этого предположения следует, что 屮(о。) истинен, а это противоречит тому факту, что ао е Л. Поэтому
Это эквивалентно так называемому условию минимальности: всякое непустое подмножество множества S имеет минимальный элемент.——Прим, ред.
В действительности это некоторая версия известной так называемой нётеровой индукции. См., например, П. Кон, Универсальная алгебра, «Мнр», М., 1968.
множество А пусто, т е ф(с) истинен для всех элементов с из S. I
Отметим, что если в множестве S не существует элемента Ь, такого, что 力* а, утверждение о справедливости выражения (V力三 S, такого, что b<a)qp(b), бессмысленно. Поэтому для таких а нужно указать значение(р(а), чтобы установить гипотезу, необходимую для структурной индукции !).
Дадим теперь несколько примеров использования структурной индукции для доказательства свойств рекурсивных программ. Во многих случаях полезно использовать свойство лек- сикографического упорядочения хорошо основанных множеств. То есть если (S, <) — хорошо основанное множество, то таким же является множество <), где Sn есть множество всех
〃-ок элементов из S и 〈一 лексикографическое упорядочение, п
определенное следующим образом:
〈a1,...,aл)<〈仇,...,6九)п
тогда и только тогда, когда а】=仇,..., а— = bj и 口力<儿 для некоторого 1, 1 & i & %.
Во всех приведенных примерах будем использовать только свойство fp быть неподвижной точкой, т. е. т[/р] ^ fp. Поэтому эти результаты справедливы для всех неподвижных точек т, а не только для наименьшей неподвижной точки fP.
Пример 5.32. Рассмотрим рекурсивную программу над множеством натуральных чисел:
Р:尸(х, у)勺 если х = 0 то у + 1
иначе если у + 0 то 尸(%—1,1)
иначе 尸(% — 1, F (х, у — 1))・
Функция fp(x, у) известна как функция Аккермана. Мы хотим показать, что у) определена всюду, т. е. "(х, у)条(о для любых х, у 三 N. Будем использовать правило структурной индукции по (乂彳 V), где 《—лексикографический порядок пар натуральных чисел.
Предположим, что функция fp(xz, у7) определена для любой пары〈%', у'〉,такой, что <х\ /> < <х, у>, и покажем, что fP(x, у) 2 также должна быть определена.
На самом деле, истинность(р(а) для минимальных элементов множества S предполагается посылкой теоремы, если ее записать несколько иначе:
Va {[V6 (6 < a zd ф (б))] п ф (а)}.
Для минимальных а импликация Vb (6 << a zd qp (b)) истинна в силу ложности b N и, в потому(р(а) должна быть истинной. — Прим. ред.
Ша! 1. Если х = 0, то, очевидно, /р(х,у) определена.
Ш а г 2. Если х,0 н У = 0, мы замечаем, что <х— 1, 1><
2
<〈%, у〉,и, значит, по предположению индукции fp(x—1, 1) 2
определена. Следовательно, и fp(x, у) определена.
Ш а г 3. Наконец, если х =/= 0 и у #= 0, то выполняется <х, у——1> <〈%, ?/〉,и в силу предположения индукции функция /р(х, у——1) определена. Теперь независимо от значения fP (х, у——1) имеем〈% — 1, /р(х, у — 1)> 之〈%, у〉и требуемый результат полу- 2
чаем после еще одного применения индуктивного предположения. ■
В следующем примере будет использоваться структурная индукция по натуральным числам N с обычным упорядочением V, т. е. регулярная полная индукция по N.
Пример 5.33 (Кадью). Рассмотрим две рекурсивные программы над множеством натуральных чисел:
В: ^1 (х) ^= если х = 0 то 1 иначе x.F{ (х — 1) и
Р2-尸2(%, y)<=ecAU х = у то 1 иначе 尸2(%, //+1)・匂 + 1)・Функции fPl (х) И ,Р2(Х, 0) двумя различными путями вычисляютх!= 1・2・.・・・х для каждого к 三 N: f Р (х), «спускаясь» от хк 0, a fPl (х, 0) — «поднимаясь» от 0 к х. Мы хотим показать, чтоfp2 (х, 0) = fPl (х) для всех % м N.
Для доказательства используем предикат
①(х): У/y^N [fp2 (% + у, у) •" (у)曰 % (х + 力] и обычное упорядочение натуральных чисел.
Шаг 1. Если х = 0, то 屮(0) есть Ру w N [% 匂,у). f Р1 (//)曰 曰% (у)], что, очевидно, истинно по определению fp?.
Ш а г 2. Если х > 0, то мы предполагаем ^(%7) для каждого Xх < х и доказываем ср (%). Для любого у ^ N
fp2 (^ + У.力」Р|匂)三
三 f в (% + У,У+ 1)-(У + 1) JP)(У)=[оп ределение %
(так как х + у > у)]
^ fp2 ^ + У, У + 1) •卜 匂 + 1)三[определение %
(так как у + 1 > 0)]
^ fPi (U — 1) + (у+ 1), у + l)Jp(y + 1)三 (так как х > 0) 三 fp, ((% — 1) + 匂 + 1))三[предположение ин
дукции (так как х — 1 < х)]
м %(X + у).
Применив затем полную индукцию, найдем, что (р(х) выполняется для всех х N. В частности, для у = 0 справедливо }(% + 0, 0)Jp(0)E/%(% + 0)・ Так как 卜(0)三 1, то % (%, 0)三 =fPi (х) для всех х е ^, что и требовалось доказать |
В примерах 5.32 и 5.33 мы использовали наиболее естественное упорядочение области, для которой выполняется структура ная индукция. В примере 5.34 удобно использовать несколько необычное упорядочение.
Пример 5.34 (Берстолл). Функция 91 определена как наименьшая неподвижная точка fP следующей рекурсивной программы над множеством целых чисел /:
Р: F(х)^= если х > 100 то %—10 иначе F(F (х + 11)).
Покажем, что для каждого целого числа % fp (х)三 g (х),
где g (无)——следующая функция:
если % > 100 то х — 10 иначе 91.
Доказательство проводим с помощью структурной индукции по хорошо основанному множеству (/, <), где отношение порядка определено так:
%<у тогда и только тогда, когда у < %《101
(здесь V—обычное упорядочение целых чисел), таким образом, 101<100<99< но 102т< 101. Довольно легко проверить, что(/, <() есть хорошо основанное множество.
' Допустим, что для всех g w /, таких, что у<%, справедливо "(у)三 g匂).Покажем, что fP(x) = g(x).
Шаг 1. Если х > 100, то, очевидно, fP(x) ^ х—10 g(x).
Ш а г 2. Если 100 ^ х ^ 90, то по определению fP имеем fp(x)三"(fp(%+11))三"(х+1), а так как х + 1 < х, то по индуктивному предположению /р (%)三 fp (х + 1)三 g (х + 1)・ В силу того, что х + 1 ^ 101, и по определению функции g g(x+1)三 91 三 g(x). Следовательно, fP(x) = g(x),
Ш а г 3. Наконец, если х V 90, та ” (х)=於仇(х 十 11)) по определению fP. А так как х 丿+ 11 < %, то, по индукции имеем /р(%)三 /р(/р(%+ 11))三 fp(g(x+ 11)). Поскольку 尤+ 11 & ЮО, то по определению g справедливо g(%+11)=91. Кроме того, fp(x)三 fp(91). По индукции получаем fP(91) ^ g(91), а по определению g имеем g(91)三 91 三 g(x). Следовательно, fP(x) ^ 曰斥(91)三 g(91) w 91 三 g“),что и нужно было доказать.
Мн moi ли бы доказать предыдущее свойство структурной индукцией по натуральным числам с обычным порядком V, используя при этом более сложный предикат
屮(n): Vx w / [х > 100 п о fP (х)三 g (х)].
Детали этого доказательства полностью совпадают с предыдущим. I
Так как множество (S*, <) конечных цепочек над S с отношением -^-подцепочек хорошо основано, то можно использовать это для структурной индукции. В следующем примере применим индуктивное правило, которое легко выводится из структурной индукции. А именно если(р(Л) и (Vxw£*)[尤*АЛ(р (fa〃(x)) п 口 屮(%)],то (VxwW*)屮(х)・
Пример 5.35 (Несс). Рассмотрим вновь функцию reverse (х), которая есть fp(x, Л), где
Р: F (х, у) ч= если х = Х то у иначе F (tail (х), head (х).у).
• Докажем, что функция reverse(х) всюду определена, т. е. reverse (х) ^ со и reverse (reverse (х)) ^ х для всех г е S*. Конечно, доказав, что функция reverse^) обладает этим свойством, мы еще покажем, что она в действительности переворачивает слова. Многие другие функции, например тождественная функция, также удовлетворяют этому условию.
Шаг 1. Для доказательства того, что функция reverse^ всегда определена, положим
ср (х) есть (V// s S*) [fP(x, у) определена].
Если х = А, то fP (х, у) ^ у, и таким образом, функция /р(х, у) определена для всех у w S*.
Если х #= Л, то, так как tail(x) <( х, можно предположить, что fp(tail(x), г) определена для всех zwW*. Поэтому функция fP(tail(x), head(x) .у) определена для всех ywE*. Таким образом, функция fp(x, у) определена для всех у w Е*.
Структурной индукцией доказывается, что fp(x, у) определена для всех х, у е S*. А так как reverse (г) ^ fP (х, Л), то и функция reverse(х) определена для всех х®2*.
Шаг 2. Для доказательства (Vxw2*) [reverse (reverse(х)) ^ 三 х] положим
Ф W есть (\/у^Т) [reverse^Р(х, у))三立匂,х)].
Если х = Л, то для любого у w Е* имеем
reverse (立(Л, у))曰 reverse (y)^fp (у, Л).
Если % #= Л, то для любого g 三 2* имеем reverse (fp (х, у)) =
s reverse (fP (tail (x), head (x). у)) = [определение fp (так как
.x,Л)]
0fp (head (%). у, tail (%))三[предположение индукции
(так как tail (х) < %)]
в /Р (у, head (х). tail (х))[определение fP (так как
head(х).у ^ Л)]
0 fp(У,%)・
Следовательно, reverse (fP (х, y))=fP (у, х) для всех х, у s S*. В частности, для у = Л имеем reverse(fP(х, А)) = fP(Л, х). Таким образом, для всех % 三 Е*
reverse (reverse (%))曰 reverse (fp (x, Л))三 fp (A, %) = x, что мы и хотели доказать. |
С помощью структурной индукции можно легко доказать и другие свойства функции reverse. В частности, пример 5.36 использует такие ее свойства: для любых a, b 三 Е и з w Е*
reverse (w^ а) ^ a. reverse (tc*),
reverse(a.w) = reverse(w) * a,
reverse(a.(w ^ b)) = b.(reverse(з) * а),
где * есть функция конкатенации (определенная в примере 5.24).
Пример 5.36 (Ашкрофт). Рассмотрим рекурсивную программу над множеством S*
Р: F (х) ^= если х = Л то Л иначе если tail (х) = Л то х
иначе head (F (tail (х))). F (head (х). F (tail (F (tail (%))))).
Покажем, что наименьшая неподвижная точка fp определяет функцию reverse на S*, т. е. что
% (%) = reverse (%) для всех х w 2*.
Отметим, что это определение не использует вспомогательных функций.
Интуитивная идея, лежащая в основе этой программы, очень проста. Выражение
a: reverse (tail (reverse (tail (x))))
представляет собой слово % без его первой и последней буквы, поэтому выражение一
Р: head (х). а
—слово х без его последней буквы. Эта последняя буква есть
Y: head (reverse (tail (х))).
Таким образом, если х #= Л и tail(x) =/= Л, то reverse^) s м у . reverse^).
В этом доказательстве будем использовать следующую лемму, которая характеризует элементы множества S*. Для каждого х е S* имеем или х = Л, или % w Е [т. е. х =/= Л и tail (х) = Л], или х = а . (з*Ь) для некоторых а, В 三 £ и w 三 S*. (Эту лемму легко доказать прямой структурной индукцией.)
Докажем, что (Vx е S*) [fp(x) ^ reverse (х)] с помощью структурной индукции на множестве (S*, <), где < — следующее частичное упорядочение!):
%<у тогда и только тогда, когда \х\<\у\.
Очевидно, (2*, <) — хорошо основанное множество.
Используя ранее приведенную лемму, доказательство можно провести за три шага.
Ш а г 1. Если х = Л, то fP(x)^ Л ^ reverse (х).
Ш а г 2. Если %w2, то 於(%)三%三 reverse(х),
Ш а г 3. Если х = a. (w^b) для некоторых а,力三工 и ш е= S*, то
fp (%)三
三 head (fP (tail (%)))/ (head (x).fP (tail (fP (tail (x)))))三
(определение fp)
三 head (力侬 * b)).fP (a.fP (tail (fP (w * &))))三
(так как head (%) есть а и tail(x) есть 侬*办)
三 head (reverse (w * b)).fP (a.fP (tail {reverse {w * 力))))三
(предположение ин* дукции (так как 侬 * b < %))
w head (b. reverse (5)) .fP (a.fP (tail (b. reverse (侬))))三
(свойство
1 функции reverse)
^b.fp (a.fp (reverse (⑪)))三
(свойства функций head и tail)
1) Напомним, что \w\ обозначает длину слова &w£*, т. е. число букв в 侬.В частности, |Л| = 0.
三 b.fp (а.reverse (reverse (а1)))三
(предположение индукции (так как reverse
㈣ < %))
^b.fp (a.w) ^
(свойство функции reverse, доказанное в примере 5.35)
三 b .reverse (a. w)=
(предположение индукции (так как a.w<^ х))
曰 b. (reverse (w) * a)三
(свойство
2 функции reverse)
三 reverse (x).
(свойство
3 функции reverse)
Такнм образом, мы заключаем, что fp(%)三 teverse (х) для всех х 三 2*, что и требовалось. |
БИБЛИОГРАФИЧЕСКИЕ ЗАМЕЧАНИЯ
Материал разд. 5.1 основан на статье Манна, Несса и Вийемана [12]. Эта тема обсуждалась также в работах Клини [9], Скотта [21] и де Баккера [4] и в нескольких неопубликованных работах Скотта. Теорема 5.2 получена Клини [9], а обобщение этого результата на монотонные функционалы было получено Хичкоком и Парком [8].
Понятие рекурсивных программ было введено Мак-Карти [14]. Правила вычисления неподвижной точки были предложены в диссертации Морриса [18] (который показал, что «вызов по значению» не является правилом вычисления неподвижной точки), Кадью [3, теорема 5.3] и Вийеманом [25, теорема 5.4]. Отношение этой тематики к семантике языков программирования обсуждалось в работах Ландина [11], Стрейчи [23], Скотта и Стрейчи [22], Вейхрауха и Милнера [26] и Манна и Вийемана [13].
Большинство из приведенных в разд. 5.3 примеров взято из работы Манна, Несса и Вийемана [12]. Правило шаговой вы-
числительной индукции (теорема 5.5) — это, по существу, ц-пра- вило, предложенное де Баккером и Скоттом [5], а правило полной вычислительной индукции (теорема 5.6)——это правило усеченной индукции, первоначально сформулированное Моррисом [19]. Машинное применение доказательств с помощью вычислительной индукции описано Милнером [17].
Инвариантные преобразования неподвижной точки (теорема 5.7) были предложены Вийеманом [25], а индуктивный метод неподвижной точки (теорема 5.8) введен Парком [20]. Рекурсивная индукция Мак-Карти [15, теорема 5.9] — первый метод доказательства свойств рекурсивных программ. Первым, кто явно предложил метод структурной индукции, был Берстолл [2, теорема 5.10], хотя этот метод часто использовался ранее, например Мак-Карти и Пейнтером [16] для доказательства правильности компиляторов и Флойдом [6] для доказательства окончания программ, задаваемых ориентированными графами. Машинное применение доказательств с помощью структурной индукции описано Бойером и Муром [1]. Грейф [7], Милнер [17] и Вийеман [25] обсуждали и сравнивали между собой «силу» различных индуктивных методов.
СПИСОК ЛИТЕРАТУРЫ
Boyer R. S., Moore J. S. (1973), Proving Theorems about Lisp Programs, in Proceedings of the Third International Joint Conference on Artificial Intelligence, Stanford, Cal., pp. 486—493 (August).
Burstall R. M. (1969), Proving Properties of Programs by Structural Induction, Comput. /., 12 (1) : 41—48 (February).
Cadiou J. M. (1972), Recursive Definitions of Partial Functions and Their Computations, Ph. D. thesis, Computer Science Department, Stanford University, Stanford, Calif. (March).
De Bakker J. W. (1971), Recursive Procedures, Mahtematical Center, Amsterdam, Holland.
De Bakker J. W., Scott D. (1969), A Theory of Programs, IBM Seminar, Vienna, Austria (August), unpublished notes.
Floyd R. W. (1967), Assigning Meanings to Programs, in J. T. Schwartz (ed.). Proceedings of a Symposium in Applied Mathematics, Vol. 19, Mathematical Aspects of Computer Science, pp. 19—32, American Mathematical Society, New York.
Greif I. G. (1972), Induction in Proofs about Programs, M. Sc. Thesis, M. I. T., Cambridge, Mass.
Hitchcock P., Park D. (1972), Induction Rules and Proofs of Termination, IRIA Conf. Autom. Lang. & Program. Theory, France (July).
Kleene S. C. (1952), Introduction to Meta-mathematics, D. Van Nostrand, Inc, Princeton, N. J.
Knaster B. (1928), Un thboRme sur les functions d^nsembles, Ann. Soc. Pol. Math., 6, 133—134.
Landin J. P. (1964), The Mechanical Evaluation of Expressions, Comput. /., 6(4), 308—32(k (January).
Manna Z., Ness S., Vuillemin J. (1973), Inductive Methods for Proving Properties of Programs, C ACM, 16(8), 491—502 (August).
Manna Z., Vuillemin J. (1972), Fixpoint Approach to the Theory of Computation, C. ACM, 15(7), 528—536 (July).
McCarthy J. (1963), A basis for a mathematical theory of computation, in P. Braffort and D. Hirschberg (eds.), Computer Programming and Formal Systems, pp. 33—70. North-Holland Publishing Company, Amsterdam.
McCarthy J. (1963), Towards a Mathematical Science of Computation, in С. M. Popplewell (ed.),Information Processing: Proceedings of IFIP 1962, pp. 21—28, North-Holland Publishing Company, Amsterdam.
McCarthy J., Painter J. A. (1967), Correctness of a Compiler for Arithmetic Expressions, in J. T. Schwartz (ed.), Proceedings of a Symposium in Applied Mathematics, Vol. 19, Mathematical Aspects of Computer Science, pp. 33—41, American Mathematical Society, New York.
Milner R. (1972), Implementation and Applications of Scott's Logic for Computable Functions, in Proc. ACM Conf. Proving Assertions about Programs, Las Cruces, New Mexico (January).
Morris J. H. (1968), Lambda-Calculus Models of Programming Languages, Ph. D. thesis, Project MAC, MAC-TR-57, M. I. T., Cambridge, Mass. (December).
Morris J. H. (1971) Another Recursion Induction Principle, C. ACM, 14(5), 351—354 (May).
Park D. (1969), Fixpoint Induction and Proofs of Program Properties, in B. Meltzer and D. Michie (eds.), Machine Intelligence, Vol. 5, pp. 59—78, Edinburgh University Press, Edinburgh.
Scott D. (1970), Outline of a Mathematical Theory of Computation, 4th Annu. Princeton Conf. Inform. Sciences & Syst, pp. 169—176.
Scott D., Strachey C. (1971), Towards a Mathematical Semantics for Computer Languages, Tech. Mono. PRC-6, Oxford University, Oxford, Eng. (August).
Strachey C. (1964), Towards a Formal Semantics, in T. B. Steel (ed.), Formal Description Languages for Computer Programming, pp. 198——200, North-Holland Publishing Company, Amsterdam (Proc. IFIP Working Conf. 1964).
Tarski A. (1955), A Lattice-Theoretical Fixpoint Theorem and its Applications, Pacific /. Math., 5, 285—309.”
Vuillemin J. (1973): «Proof Techniques for Recursive Programs», Ph. D. thesis, Computer Science Department, Stanford University, Stanford, Calif.
Weyhrauch R., Milner R. (1972), Program Semantics and Correctness in a Mechanized Logic, paper presented at USA — Japan Computer Conference, Tokyo, Japan (October).'
Нисходящий синтаксический анализ)
Дональд Э, Кнут
ВВЕДЕНИЕ
Еще с давних времен, когда предпринимались первые попытки производить грамматический разбор автоматически при помощи ЭВМ, многие (например, Барнетт [1], Брукер и Моррис [2], Гленни, Конвей [3], Шор [4]) применяли метод, который стал известен как метод «нисходящего» анализа. Эта идея популярна по сей день и используется во многих современных трансляторах.
Методы, принадлежащие упомянутым выше авторам, удобно описывать в терминах небольшого машиноподобного устройства, которое мы будем называть анализирующей машиной. В этой статье мы будем рассматривать только синтаксические свойства нисходящего анализа, а не способы, при помощи которых синтаксическая структура используется для получения семантической информации об анализируемой цепочке. Разумеется, извлечение семантической информации — основная цель синтаксического анализа, и нисходящий анализ так популярен главным образом как раз потому, что он удобен при семантической обработке. И все же давайте примем этот факт на веру и сосредоточим внимание на синтаксических аспектах. Дальнейшие подробности см. в упомянутых выше ссылках, а также в [5, тома 5 и 7].
Важно отметить, что мы будем рассматривать в основном лишь однозначные контекстно-свободные грамматики, часто встречающиеся при описании языков программирования и форматов входных данных для систем обработки данных. Цель этой статьи — выяснить некоторые связи между теорией и практикой и проанализировать ситуации, для которых имеется гарантия правильной работы простых нисходящих синтаксически ориентированных методов разбора.
В разд. 2 вводится абстрактная машина, которая напоминает интерпретирующие программы,- часто используемые при нисходящем грамматическом разборе. В разд. 3 показано, как грамматики, записанные в НФБJ), естественным образом определяют программу для этой машины. В разд. 4 исследуется задача доказательства правильности таких программ.
В разд. 5 дается обзор основ теории контекстно-свободных грамматик. В разд. 6 показано, как проверить простые свойства грамматик, а в разд. 7 приводятся основанные на теории графов построения, полезные при грамматическом разборе. Эти результаты применяются в разд. 8, где охарактеризованы 自се грамматики, для которых верна программа «без возвратов» для абстрактной машины.
В разд. 9 сопоставляются с теоретической точки зрения восходящий и нисходящий анализ, а в разд. 10 даны формальные определения LR(k)- и ££(^)-грамматик. В разд. 11 показано, что множество £1(1)-языков совпадает с множеством языков, которые машина из разд. 2 может анализировать без возвратов. Заключительные наблюдения, а также исследовательские задачи сформулированы в разд. 12.
АНАЛИЗИРУЮЩАЯ МАШИНА АМ
Анализирующая машина ——это абстрактная машина для анализа цепочек в некотором алфавите. Она читает из «входной цепочки» каждый раз по одной литере согласно некоторой программе. Программа анализирующей машины представляет собой набор процедур, рекурсивно вызывающих друг друга; сама программа суть одна из этих процедур. Каждая процедура пытается обнаружить во входной цепочке присутствие некдторой конкретной синтаксической конструкции и по окончании работы возвращает значение 《истина》 или 《ложь》в зависимости от того, был поиск успешным или нет.
Пусть $1$2 ••• sn — входная цепочка, и пусть Sh — «текущая» литера, читаемая машиной.
Команда этой машины состоит из трех полей: поля кода операции и двух адресов, АТ и AF. Процедуры записываются с использованием двух типов команд, соответствующих двум различным видам кодов операций. .
Первый тип: Код операции ——литера а из алфавита.
Второй тий: Код операции — адрес процедуры, заклю- 」 ченный в квадратные скобки [А] • ;
Ч Нормальная форма Бэкуса. — Прим: pedt
Эти команды выполняются следующим образом:
Тип 1: если sh = а, то пропустить а (т. е. установить
〃:=力 + 1) н перейти к АТ, иначе перейти к AF.
Тип 2: вызвать процедуру, начинающуюся в ячейке Л (рекурсивно); если она возвратила значение истина, то перейти к АТ иначе, если она возвратила значение ложь, то перейти к AF.
Каждое из полей АТ и AF может содержать либо адрес команды, либо один из специальных символов: Т или F. Если оно содержит Т, осуществляется выход из процедуры со значением 《истина》. Если оно содержит 尸,то происходит выход из процедуры со значением 《ложь》и переменная А вновь принимает то значение, которое она имела до входа в процедуру. (Таким образом, подразумевается, что при вызове процедуры по коду операции типа 2 всегда вместе с адресом возврата сохраняется и значение переменной 用.)
Пример программы для анализирующей машины поможет разобраться в этих определениях. Во всех примерах мы будем записывать команды АМ на соответствующем языке ассемблера, используя символические адреса и метки. Пустое поле адреса соответствует адресу команды, записанной в следующей строке.
Рассмотрим следующую грамматику языка, напоминающего язык «логических выражений». Грамматика записывается в модифицированных обозначениях НФБ: вместо 《::=》 используется знак 《斗》,синтаксические классы обозначаются большими буквами, а не заключаются в скобки. Например, первое правило в обозначениях НФБ могло выглядеть так:
Логическое выражение) : := (отношение)| ((логическое выражение»
BfRI®
RfEi(2.1)
E->a\b\(E + E)
При помощи описанного выше языка ассемблера можно записать соответствующую программу для анализирующей машины:
^(^)^ =£][ [ [S [^(^)^ =£][ [ [S [Адрес К。。операцииATAF
^(^)^ =£][ [ [S [
^(^)^ =£][ [ [S [
ТF
t戶
8 6(^+^)^т8 6(^+^)^тАдрес К。。операции AT AF
8 6(^+^)^т
8 6(^+^)^т
Т
SSТ F
S
S
ОШИБКА
ОК ОШИБКА
Обратите внимание на соответствие между грамматикой и AM-программой. Последние две строчки программы отвечают еще одному грамматическому правилу
S f В т
где:《Т》一специальный символ-ограничитель, который встречается только в самом конце анализируемой цепочки. Процедура S выполнит переход на метку 《ОК》, лишь если вся анализируемая цепочка представляет собой В (логическое выражение), за которым следует символ Т, иначе она выполнит переход на метку «ОШИБКА».
Если мы применим эту AM-программу к входной цепочке
(a = (b + а)) Т = S& ・・・ Sio
начав с ячейки S, то выполнится такая последовательность действий. (Вначале 用=1, т. е. обрабатывается первая литера sj.
Вызов В (用=1)
Вызов R (用=1)
Вызов Е (用=1)
Поиск а: нет
Поиск Ь: нет
Поиск (: да, установить Л : = 2
Вызов £ (ft = 2)
Поиск а: да; установить Л : = 3
Возврат, истина.
Поиск + : нет
Возврат, ложь; установить А : — 1
Возврат, ложь; установить 用:=1
Поиск (: да, установить А : = 2
Вызов В (用=2)
Вызов R (用=2)
и т. д. В конце концов управление будет передано по адресу 《ОК》,при этом история вызовов процедур, возврат из которых
произошел со значением «истина», соответствует следующей диаграмме («разбора») входной цепочки:
5
5
6
(2.2)
I~I ГП (с =(力 + « )) т
Эту диаграмму можно представлять себе построенной сверху вниз в процессе выполнения программы для анализирующей машины.
Левая часть каждой горизонтальной скобки в этой диаграмме строится при вызове процедуры, а правая достраивается при возврате из процедуры.
Изучение этой программы должно убедить читателя в том, что если Si ... sn ——произвольная последовательность литер {а, Ь, (,+,), =, Т}, где sn равно Т, то выполнение программы для АМ закончится переходом по метке ОК, если Si . • • s〃 имеет вид 8 Т, и история успешных возвратов из процедур будет соответствовать диаграмме разбора; в противном случае выполнение программы для АМ закончится переходом на метку ОШИБКА. Однако зто утверждение требует доказательства. Как мы увидим, существуют грамматики, для которых соответствующая AM-программа не будет работать правильно. Поэтому нужно исследовать общий вопрос: для каких грамматик соответствующая AM-программа будет работать правильно?
• 3. ПРОГРАММИРОВАНИЕ ДЛЯ АМ
Прежде чем исследовать этот вопрос, необходимо четко определить, что подразумевается под словами «соответствующая АМ-программа》.
Предположим сначала, что, как и в приведенном выше примере, все НФБ-правила записаны в стандартной форме
一 Xf 匕|%丨irw|ZiZ2... z〃(3.1)
где m, 〃》0,俏 + 〃>0 и все У, Z — либо терминальные сим* волы (т. е. являются буквами алфавита), либо нетерминальные
ТМД. 9个姮
символы (т. е. представляют синтаксические классы). Правая часть правила (3.1) содержит 加+ 1 вариантов; если /п = 0, то она принимает простой вид:
X —> ZiZ?・・・Z%
Если п = 0, то цепочкд Z1Z2 . • • Z〃 рассматривается как пустая цепочка. AM-программа, соответствующая правилу, записанному в стандартной форме, состоит из следующих т + п инструкций:
(8.2)(8.2)Адрес Код операции AT AF
(8.2)
(8.2)
X
[匕]
т
т
【Zi]尸
[Zn] Т 尸
Если У/ или Z;——терминальный символ, то квадратные скобки при указании соответствующего кода операции нужно удалить. Если п =0, то адрес, обозначенный через «*», следует заменить на Г; в противном случае нужно оставить пробел.
В тривиальном случае, когда и /п = 0, и п = 0, описание (3.2) необходимо изменить; в этом случае правило имеет вид Х-> 8, где через е обозначена пустая цепочка, и процедура X должна всегда порождать значение 《истина》,не продвигая указатель Л. Такого эффекта можно добиться при помощи АМ-программы
X [Q] Т Т
Q a F F
где 。一произвольный терминальный символ. Такие аномалии несущественны для теории, и они исчезают с введением в синтаксический анализатор семантических действий (см. [5, том 5]).
Пусть НФБ-правило записано не в стандартной форме, например имеет вид
X —> Qi I ... I ctm IZ1Z2 ... Zn(3.3)
где ai,...,规修一цепочки терминальных и нетерминальных символов. Тогда его можно привести к стандартной форме, введя
новые нетерминальные символы Уь ,,., 丫加,добавив правила
Уm f am
и заменив (3.3) на (3.1). Если, например, наша НФБ-грамма- тика содержит правило
X-^AB\CD
то мы заменяем его двумя правилами
X~>Y\CD
Y ~> АВ
В результате если АМ встретит Д, за которым нет 8, то она осуществит возврат !) с тем, чтобы испытать другую альтернативу CD.
Важно отметить, что изменение порядка AM-правил может резко изменить поведение машины. Если, например, имеется продукция
Х->а\аЬ(3.4)
то AM-программа никогда не распознает цепочку ab как отвечающую нетерминальному символу X, поскольку процедура X породит значение《истина》и завершит работу, как только обнаружит первую альтернативу а. Эту продукцию можно -“
записать как
Х~>аЬ\а
правиле(3.5)если неправиле(3.5)если неи преобразовать к стандартной форме.
правиле
(3.5)
если не
правиле
(3.5)
если не
Еще лучше, пожалуй, было бы произвести в этом «факторизацию»:
X —> аВ
В ->ь\&
чтобы не заставлять машину прибегать к возврату, обнаружен символ Ь.
Тем не менее могут возникнуть другие трудности, если, скажем, в грамматике присутствует также правило
Y f Xbb(3.6)
9 В оригинале《back-up》. Это слово можно было перевести как «отхода, «отступление», но мы сохранили терминологию, которая использовалась в книге Д. Гриса «Конструирование компиляторов для цифровых вычислительных машин», М., «Мир», 1975. — Прим. ред.
Тогда АМ не в состоянии понять, следует ли разобрать X как а или как ab, не заглядывая вперед, чтобы узнать, сколько еще впереди букв Ь. Это может привести к серьезным затруднениям, на которых мы остановимся ниже; к счастью, в большинстве практических случаев такие патологические проблемы не возникают.
«Факторизация», проиллюстрированная в (3.5), имеет весьма важное значение при упрощении и ускорении АМ-программ. Удобно переписать (3.5) в виде
X а[Ь\^1 воспользовавшись для группирования альтернатив «метаскобками» [[и ], избежав таким образом необходимости вводить для нового синтаксического класса особое имя (как, например, В в (3.5)).
Рассмотрим правило
X ~> a I bck I bdk I bejik | beghik | befjk | beghjk
Путем факторизации его можно преобразовать к виду
X-^a\blc\d\elf\gmi\iW(3.7)
Факторизация в этом случае не требует вызовов процедур, достаточно лишь условных переходов; доказательством тому служит следующая AM-программа для X:
X а Т
6 尸
с К d Xi
f Х2 g尸
hХ2F
jF
X{ kTF
Можно показать, что такое упрощение всегда возможно, если только переопределить стандартную форму (3.1) так, чтобы каждая буква Z могла представлять факторизованное выражение, которое само записывается в стандартной форме. Примером такого более общего вида стандартной формы служит правило (3.7).
Можно провести еще одно упрощение, если ввести оператор «итерации» Д*, означающий «нуль или более повторений элемента Д», т. е. е, или Д, или АА, или ААА и т. д.
Этот оператор описывается правилом |е
которое, согласно принятым выше соглашениям, должно быть раскрыто в следующую весьма длинную AM-программу, где У
соответствует ЛД*:
Адрес
Ко。 операции
АТ
AF
Л*
[Г]
Г
Г
У
И]
Г
F 尸
Можно написать гораздо более быструю программу и, очевидно, эквивалентную приведенной выше, если не считать того, что экономится большое количество вызовов процедур:
Л* [А] Л* 7(3.8)
Теперь можно еще расширить стандартную форму (3.1) так, чтобы каждый символ Z мог иметь вид 取*, где W — один символ (терминальный или нетерминальный).
Два только что рассмотренных упрощения, а именно факторизация и итерация, — частные случаи общего правила программирования, согласно которому вызов процедуры можно заменять на 《go to», если этот вызов является последним действием некоторой другой процедуры.
В качестве примера рассмотрим определение числа без знака в Алголе-60
D->0|l|2|3|4|5|6|7|8|9
UfDU
UJU|a
Pf・U
PJP|a(3.9)
S' f + I — I 8
Ef lose
Е^Е\г
M->P\UPf
Nf E|M£
Здесь N — алгольное (число без знака), Е ——(порядок), Р — (дробная часть > и т. д. Было внесено лишь незначительное
изменение в определение U, (целое без знака), поскольку при алгольном определении U --> UD\D наша АМ зациклилась бы. Это явление называется «левой рекурсией» и оказывается камнем преткновения для нисходящего анализа; левая рекурсия рассматривается ниже.
Грамматику (3.9) путем факторизации можно привести к следующей стандартной форме:
О —0|1|2|3|4|5|6|7|8|9
UfDD*
Pf・U
Ef 就+|—|£』U
N-EILPULP 期 ME旧
Ей соответствует AM-программа
АдресК。。операцииATAF
DОТ
1Т
1 и 1J11J1J и • • 9 D D • -£р и р£ ■ >г| L■ г ■■ -r^Lr ■■ = ?■■!1 и 1J11J1J и • • 9 D D • -£р и р£ ■ >г| L■ г ■■ -r^Lr ■■ = ?■■!тиии иитм мттиии иитм мтии尸Т尸Т
1 и 1J11J1J и • • 9 D D • -£р и р£ ■ >г| L■ г ■■ -r^Lr ■■ = ?■■!
1 и 1J11J1J и • • 9 D D • -£р и р£ ■ >г| L■ г ■■ -r^Lr ■■ = ?■■!
тиии иитм мт
тиии иитм мт
и
и
尸
Т
尸
Т
гораздо более эффективная, чем AM-программа, соответствующая (3.9), Заметно, что в этой программе есть еще одно упрощение, которое состоит в том, что процедура для Р
[U] Т 尸
отсутствует.
“ Упражнение 1】). Каково множество цепочек, при котором следующая АМ-программа, начав с S, в конце концов попадает на метку《ОК》?
АдресАВСS DАдресАВСS DК。。 операцииК。。 операцииATAFATAFа ⑷ ь ^ с & ^ с ^4 а[с]та ⑷ ь ^ с & ^ с ^4 а[с]тТТТFОШИБКАDОШИБКАОК ОШИБКАТFОШИБКАDОШИБКАОК ОШИБКА
Адрес
А
В
С
S D
Адрес
А
В
С
S D
К。。 операции
К。。 операции
ATAF
ATAF
а ⑷ ь ^ с & ^ с ^4 а[с]т
а ⑷ ь ^ с & ^ с ^4 а[с]т
Т
Т
ТF
ОШИБКА
D
ОШИБКА
ОК ОШИБКА
ТF
ОШИБКА
D
ОШИБКА
ОК ОШИБКА
ЗАДАЧА О РАЗБОРЕ С НЕПОЛНЫМ ВОЗВРАТОМ
Примеры (3.4) и (3.6) показывают, что из-за ограниченной возможности возврата анализирующая машина годится не для всякой НФБ-грамматики. С другой стороны, пример с логическими выражениями в разд. 2 показывает, что такая АМ пригодна для обработки довольно широкого класса грамматик, представляющих практический интерес, поэтому мы вернемся сейчас к вопросу, поставленному в конце разд. 2:《Для каких ЫФБ-грамматик, преобразованных в стандартную форму (3.1) методом (3.3) и затем преобразованных в AM-программу согласно определению (3.2), при условии что имеется правый ограничитель Т как в разд. 2, соответствующая АМ-программа будет воспринимать те и только те цепочки, которые принадлежат языку, определяемому данной грамматикой?» (Иначе говоря, если цепочка принадлежит языку, то происходит переход на метку ОК, иначе — переход на метку ОШИБКА.)
К сожалению, эта проблема неразрешима, т. е. нельзя построить эффективного алгоритма, который может решить (по заданной грамматике), будет ли АМ-программа всегда давать правильный ответ. <
Доказательство. Пусть ai,…,am, Рь …,№ — цепочки, состоящие из букв а и Ь, и пусть 刁,…,之团,а, 6, % —
Ответы к упражнениям см. в конце эюй статьи.
терминальные символы алфавита. Рассмотрим следующие правила:
Л f 之冋 I ・・・ I zmam I ххАщ I I zmAam
B-> 之尙| ・・・ I I ZiB₽! I I zmB^m
C ->Ax
DfBxx
Ef C|Q
Sf £T
Здесь правило Л описывает цепочки вида
l(Л)=卜5 ... %々产八% •…"j
где n = 1, 2, 3, ... ; аналогично, правило В описывает все цепочки вида
厶仍)={%%廿也也2P/J
Весь язык S состоит из цепочек вида Ах Т или Вхх —I.
Рассмотрим цепочку а, принадлежащую Л; АМ обнаружит, что ах принадлежит Е
Рассмотрим цепочку а, не принадлежащую Д, но принадлежащую В; АМ обнаружит, что ахх принадлежит Е.
Рассмотрим цепочку а, принадлежащую как 4 так и В; тогда цепочка ахх не будет опознана как принадлежащая £, хотя на самом деле она принадлежит языку Е.
Таким образом, метод неполного возврата годится для такого языка тогда и только тогда, когда 厶(4)0厶(3)= 0. Это имеет место в том и только в том случае, когда не существует таких индексов /ь •一, in, n > 0, что az( ... a^ = ₽Z1 ...自九・
Но это ——«проблема соответствия Поста», и хорошо известно, что нельзя построить эффективный алгоритм, способный выяснить, существуют ли такие индексы. Если бы мы могли решить задачу о неполном возврате, то можно было бы решить и проблему Поста, а это невозможно. На этом доказательство завершается.
Хотя задача о неполном возврате неразрешима, мы можем, разумеется, решить ее в некоторых частных случаях. В книге [5, том 5] приводятся достаточные условия, которые могут быть использованы практически. Наиболее важный частный случай задачи о неполном возврате — задача о разборе без возвратов, которую мы решим ниже.
Метод нисходящего анализа, производящего «полный возврат», т. е. пригодный для любой НФБ-грамматики, не содержащей левых рекурсий, прекрасно изложил Флойд [6]; мы не будем рассматривать здесь общий метод Флойда, поскольку в
большинстве случаев, представляющих практический интерес с точки зрения обработки языков программирования, можно обойтись почти или даже совсем без возвратов.
КОНТЕКСТНО-СВОБОДНЫЕ ГРАММАТИКИ
Теперь настала пора ввести (несколько более аккуратно, чем это было сделано в предыдущих разделах) основные определения контекстно-свободных грамматик, а также некоторые обозначения, связанные с математической теорией языков. Как- никак мы собираемся разрешить частный случай неразрешимой проблемы, поэтому не стоит жалеть усилий на соответствующую подготовку.
Алфавит X есть множество различных символов; через X* обозначается множество всех цепочек в алфавите X, т. е. совокупность всех последовательностей Xi ... х〃, где п ^ 0 и каждый символ X/ принадлежит X. Удобно обозначать цепочки строчными греческими буквами а, 0, ...; пустая цепочка, как вы уже заметили, обозначается через е. Длина цепочки а равна числу символов в ней и записывается как |а|. Если а и р — цепочки, то их конкатенацией ар называется цепочка, полученная путем дописывания символов цепочки р вслед за символами цепочки а. Из этих определений следует, например, что
|е| = 0, |ар| = |а|+ |р|
Множество цепочек обычно обозначают прописными буквами, такими, как 4, В,….Конкатенация двух множеств цепочек определяется правилом
ЛВ = {ар|аеЛ, ре В}(5.1)
Заметим, что
А {е} — {е} А — А а 40=04=0
(Символом 0 обозначается пустое множество.)
Определим теперь《степени》множества цепочек:
Дп = если п = 0 то {е} иначе ААп~{(5.2)
Еще две операции, имеющие、важное значение, — итерация 4* и усеченная итерация 4+ множества цепочек:
Д*= lim [A0UЛ1 U ... U/^n U Ап (5.3)
П->ооП>0
▲+= U 4九(5.4)
Заметим, что
д+ = АЛ* = Л*Л, Л*=х{8}иЛ+
Контекстно-свободная грамматика g состоит из четырех компонент:
Терминальный алфавит Г, элементы которого обозначаются строчными латинскими буквами а,仇 с,.・.,а иногда особыми символами, такими, как скобки или знак плюс и т. и.
Нетерминальный алфавит N, элементы которого обозначаются прописными латинскими буквами А, В, С,....
Начальный символ 9 S — это нетерминальный символ, который представляет «предложения» языка, описываемого грамматикой 9.
Множество продукций 乡,составляющее наиболее существенную часть грамматики 9. Продукция — это отношение, записываемое в виде
4 — 8(5.5)
(читается: «Л непосредственно порождает 6»), где А ^ N, a 9三(乂0「)*, т. е. 4 ——нетерминальный символ, а 0 ——цепочка терминальных и (или) нетерминальных символов.
Каждое множество продукций 乡 определяет отношение на множестве цепочек (N U 7)*; мы говорим, что
аЛсо ~> а0со(5.6)
(относительно 乡),если в 乡 имеется продукция Л -> 0. Иными словами, мы говорим, что 屮-> 屮 тогда и только тогда, когда существуют такие цепочки а,①,4, 0, что 屮=аЛю,屮=аб① и в 乡 есть продукция 4 ―► 6.
Отношение cp->^ между цепочками, определенное в (5.6), можно расширить следующим образом. Мы говорим, что
吁飞(5.7)
если ср = ^ или если q)f р, или если существует еще одна цепочка Е, такая, что ср f 占——р, ..., или, вообще, если
9 = 5, Ф/~>ф/+1 при 0</ <п и 必=屮, (5.8)
где 〃》0 и фо, 0,фп — некоторые цепочки. Отношение (5.7) Читается как 《① порождает или равно 己》.Аналогичным образом пишем
(pf+屮(5.9)
Его называют также аксиомой или помеченным символом.——Прим, перев.
если имеет место (5.8) при некотором п ^ 1 и некоторых цепочках q)o, . • •, фп. Отношение (5.9) читается как《屮 порождает 屮》; оно исключает возможность п = 0, которая в (5.8) соответствует тривиальному случаю ①=р. Отметим аналогию между (5.7)— (5.9) и (5.3) —(5.4).
Вообще, если через 厂 обозначено какое-либо отношение между элементами произвольного множества, то при помощи определений (5.7), (5.8) г (5.9), заменив везде《一►》на г, получим рефлексивное транзитивное замыкание г* и транзитивное замыкание 厂+ отношения 厂 как новые отношения, которые часто представляют значительный интерес.
Теперь мы в состоянии определить смысл контекстно-свободной грамматики 乡= (Т, N, S, Р). Язык £(乡),определяемый грамматикой 乡,一это множество
L 侈) = {tR7*|Sf+t}(5.10)
т. е. множество всех терминальных цепочек, которые порождает начальный символ.
Если 0 ——произвольная цепочка терминальных и нетерминальных символов, то мы пишем также
厶(e)= {twT*|8f* 吗(5.11)
относительно подразумеваемой контекстно-свободной грамматики 乡.
Мы говорим, что
Л->О1|Э2|...|0Л(5.12)
—правило грамматики 乡 тогда и только тогда, когда
{А —> 0ь Л —► 02, ..., А —> 0rt}
есть множество всех продукций грамматики 9, в левой части которых стоит символ А.
Читатель может уловить связь между данным здесь определением контекстно-свободных грамматик и синтаксическими описаниями в НФБ, использованными в сообщении об Алголе. Все различие состоит в принятых обозначениях.
В качестве примера контекстно-свободной грамматики рассмотрим следующие правила:
E~>Ll+ LJ*'
LfPP*
Р^а\Ь\(Е)
записанные с использованием факторизации и итерации, введен* ных в предыдущем разделе. Начиная с этого места, чтобы упростить изложение нашей теории, мы будем избегать подобных обозначений, не ослабляя этим изобразительных возможностей;
приведенную выше грамматику можно записать так:
EfLU
L'f+ 厶厶'1g
J pp,r❷
Р,РР|£”
P->a\b\(E)
SfET
Обратите внимание на последнее правило, введенное в соответствии с соглашениями для анализирующей машины.
Можно считать, чтр множество продукций (5.13) определяет контекстно-свободную грамматику 乡 с шестью терминальными символами
0 力 + , (,), Т шестью нетерминальными символами
Е, Г,厶,Р; Р, Sи начальным символом S. Грамматика содержит шесть правил,но десять продукций, (Подчеркнем еще раз различие междуправилом и продукцией, см. (5.12).) Язык, определяемый грам-матикой 9, напоминает простые арифметические выражения;типичным элементом языка L(9) является, например, цепочкаa(b + ab) Т
ЗАДАЧА О ПУСТЫХ ЦЕПОЧКАХ
Первое, что мы в состоянии сделать с контекстно-свободной грамматикой, — это выделить те нетерминальные символы, которые могут порождать пустую цепочку, т. е. для каждого нетерминального символа А определить, верно ли, что 4—>+е.
Для решения этой задачи годится простой алгоритм «маркировки». Вообразим, что каждый нетерминальный символ либо «помечен», либо «не помечен», причем вначале все они не помечены. Станем теперь повторять следующую операцию: найти в 0 продукцию, в левой части которой стоит непомеченный символ, а цепочка в правой части не содержит ничего, кроме помеченных символов. (В частности, е является такой цепочкой. Терминальные символы считаются непомеченными.) Если такой продукции не обнаруживается, то работа алгоритма завершается, в противном случае отмечается нетерминальный символ в левой части найденной продукции и весь процесс повторяется.
По окончании работы алгоритма справедливо утверждение: нетерминальный символ Л может порождать в тогда и только тогда, когда он помеченный. Ясно, что всякий помеченный символ действительно порождает е. Наоборот, пусть 4 f+е за п шагов, тогда, если п—\,А должен быть помечен; если же
п > 1, то существует цепочка 0, такая, что Д -> 0 -> +е, причем каждый из символов цепочки 0 должен порождать е менее чем за п шагов; таким образом, по индукции каждый символ цепочки 0 должен быть помечен, следовательно, и символ Д помечен.
По существу, можно воспользоваться тем же алгоритмом, чтобы выяснить, не пуст ли язык L(4), т. е. порождает ли символ Л хотя бы одну терминальную цепочку. Для этого применим прежнюю процедуру с той разницей, что помеченными вначале считаются все терминальные символы.
НАПРАВЛЕННЫЕ ГРАФЫ
Направленный граф определяется множеством вершин и множеством упорядоченных пар вершин, называемых дугами. Дугу можно представлять себе как стрелку, ведущую из одной вершины в другую (или в ту же самую) вершину. Ориентир。- ванным путем из вершины V в вершину W в направленном графе называется последовательность вершин У。, ..., У〃, такая, что V = Vo, имеется дуга из 匕 в 匕+卜 где 0&/V 拉,Vn= W и n ^ 1. Очевидно, можно построить алгоритм, который определяет по двум заданным вершинам V и W конечного направленного графа, есть ли путь из V в 0 потому что достаточно рассматривать лишь те пути, которые проходят через каждую вершину не более одного раза.
Для любой заданной грамматики 乡 можно построить ее граф зависимостей. Вершинами такого графа являются терминальные и нетерминальные символы, а дуги ведут от Д к х, если символ х встречается в правой части продукции, левой частью которой является А.
Для грамматики из примера (5.13) граф зависимостей будет такой:
Между направленными графами и бинарными отношениями на абстрактном множестве S имеется очевидное соответствие. Если есть отношение г, то рассмотрим граф, вершинами которого являются элементы S и имеется дуга нз R в 取 тогда и
только тогда, когда VrW. Наоборот, всякий направленный граф определяет отношение на множестве своих вершин. Имеется путь из Y в 取 тогда и только тогда, когда Vr^W в обозначениях разд. 5.
В случае контекстно-свободных грамматик будем писать , XdY (《X непосредственно зависит от У》)
тогда и только тогда, когда граф зависимостей содержит дугу из X в У, т. е. тогда и только тогда, когда в грамматике имеется продукция X—>аУр, где а и |3 — некоторые цепочки.
Тогда нетрудно видеть, что утверждение Xd+У (《X зависит от У》)эквивалентно утверждению
Xf + аУ(о
где а и со — некоторые цепочки. Если Xd+X, то будем говорить, что X — рекурсивный символ (зависит сам от себя). Это означает, что в графе зависимостей есть ориентированный цикл. В графе (7.1), например, все нетерминальные символы, кроме S, рекурсивны.
Нетерминальный символ А грамматики 乡 называется бесполезным, если либо L(4) = 0 (т. е. из А нельзя вывести ни одной терминальной цепочки), либо S не зависит от 4 (т. е. цепочки, выводимые из 4, не оказывают влияния на £(9))・ Из приведенного выше рассуждения следует, что можно обнаружить все 6ес・ полезные нетерминальные символы. Все они (вместе с содержащими их продукциями) могут быть удалены из грамматики без какого бы то ни было ущерба для соответствующего языка, если только и сам символ S не является бесполезным.
В дополнение к графу зависимостей можно определить также граф правых зависимостей, который является подграфом графа зависимостей для данной грамматики. В этом случае проводим дугу из X в У тогда и только тогда, когда имеется продукция вида
X —аУХ1・・・X九
где п ^ 0 и каждый из символов Xi,…,Хп может порождать пустую цепочку. Для грамматики (5.13) граф правых зависимостей такой:
Поменяв ролями слова «левый» и «правый» в этих определениях, получим граф левых зависимостей*.
Будем говорить, что XIY (《X непосредственно зависит от У слева»), если граф левых зависимостей содержит дугу из X в У; тогда можно видеть, что утверждение Х/+У эквивалентно утверждению
Хт+ Уа
где а — некоторая цепочка. Мы говорим, что X ——леворекурсивный символ、если Х/+Х. Аналогично определим ХгУ, Xr+У и т. п. для графа правых зависимостей. Из (7.3) видно, что ни один нетерминальный символ грамматики (5.13) не является леворекурсивным. Граф (7.2) показывает, что символы Lf и Рг — праворекурсивны.
Графами зависимостей можно воспользоваться для определения некоторых величин, представляющих для нас интерес. Пусть Д — нетерминальный символ; тогда обозначим через first(A)) множество терминальных символов, с которых может начинаться цепочка в языке 厶(4). Из приведенного выше рассуждения ясно, что
first(A) = {aeT|A/+a}
Следовательно, множество первых символов для любого нетерминального символа можно построить, изучив граф (7.3). Точно так же множество last(^)) можно построить, рассмотрев граф правых зависимостей.
Наконец, необходимо определить множество)
follow (А) = {а ^ T\S *0Аа(р, где 0, ф — некоторые цепочки}
Нетрудно видеть, что если бесполезных нетерминальных символов нет, то это определение эквивалентно следующему: follow (Л)—это множество терминальных символов а, таких, что существует продукция вида
W-^aXBi ... ВПУ®W-^aXBi ... ВПУ®(7.4)(7.4)
W-^aXBi ... ВПУ®
W-^aXBi ... ВПУ®
(7.4)
(7.4)
Для грамматики (5.13),Для грамматики (5.13),например, имеемнапример, имеемБЕЗ ВОЗВРАТОВБЕЗ ВОЗВРАТОВгде п ^ 0, символы 8卜...,Вп могут порождать пустые цепочки, У ——терминальный или нетерминальный символ, Хг*А и У/*а. Таким образом, множество follow⑷ можно вычислить. (Утверждение (7.4) верно, потому что можно рассмотреть продукцию, которая в выводе S -> *0Лад) связывает символы Лиа.).
Для грамматики (5.13),
Для грамматики (5.13),
например, имеем
например, имеем
БЕЗ ВОЗВРАТОВ
БЕЗ ВОЗВРАТОВ
д
first (Л)
last(Д)
S
ab{
Т
Е
ab(
ab)
L
ab(
ab)
Р
ab(
ab)
Z/
+
ab)
Р
ab(
ab)
follow (Д)
8. СЛУЧАЙ
РАЗБОРА
) + + ) +
В разд. 4 мы показали, что в общем случае трудно (и даже невозможно) решить, при каких условиях анализирующая машина будет правильно распознавать все цепочки, принадлежащие языку, определенному при помощи контекстно-свободной грамматики g. Но подготовленные в разд. 5, 6 и 7 средства позволяют исследовать наиболее важный частный случай задачи разбора с неполным возвратом, а именно случай, когда анализирующая машина вообще не должна возвращаться назад, т. е. h никогда не убывает. Отсюда вытекают два практических следствия. Первое: можно с уверенностью предсказать, что общее время синтаксического анализа будет ограничено величиной, пропорциональной длине входной цепочки. Второе: программа для вычислительной машины может читать входные символы по одному, не сохраняя ранее прочитанных символов.
Анализ общей АМ-программы (3.2), записанной в стандартной форме, показывает, что h может уменьшиться только тогда, когда выход со значением 《ложь》 происходит после разбора
Z2, Z3, ... или Z〃. Исходя из этих соображений, можно переопределить программу (3.2) следующим образом:
(8.1)(8.1)X [У1] т
(8.1)
(8.1)
lYm] Т *
0]F
闷 ОШИБКА
[ZJ Г ОШИБКА
Итак, мы можем взять произвольную контекстно-свободную грамматику g с правилами, сгруппированными, как в (3.3), привести эти правила к стандартному виду (3.1) и построить соответствующую программу (8.1) «без возвратов». Можно также добавить, как и раньше, вспомогательное правило с символом 《Т》.
Мы хотели бы, чтобы наша машина, начиная работу с адреса S и просматривая цепочку Si, S2 • • • sn, где только sn является символом Т, вела себя следующим образом: если цепочка «1 ... sn не принадлежит языку 厶(夕),то программа должна осуществить переход на метку ОШИБКА, если же Si ... sn принадлежит языку 厶(夕)и имеется некоторая диаграмма вроде (2.2), которая соответствует выводу S~>*si ... s〃,то действия АМ должны (очевидным образом) в точности соответствовать этой диаграмме.
Если AM-программа без возвратов удовлетворяет изложенным условиям, то будем говорить, что «метод разбора без возвратов подходит для грамматики g》.Заметим, что из этих условий вытекает, в частности, что грамматика g ——однозначная, т. е. ни для одной цепочки из L^) не существует двух различных диаграмм. Поскольку, если бы существовали две диаграммы, то AM-программа должна была бы соответствовать им обеим, а это, очевидно, невозможно, потому что АМ выполняет всегда только одну последовательность действий. С точки зрения языков программирования однозначные грамматики представляют наибольший интерес.
Теперь для заданной грамматики 夕 нам хотелось бы отве* тить на вопрос: подходит ли для g метод разбора без возвратов? Чтобы решить эту задачу, заменим сперва грамматику с правилами вида (3.1) другой грамматикой с правилами более
простого вида, но порождающей тот же самый язык лишь с несколько отличной структурой.
Пусть дано правило Х~> У11.. .| ym|ZiZ2 ... Z〃; его можно упростить следующим образом: если т^ \, то заменим его двумя правилами:.
Xf У1|Х‘
X‘f %1・・・1%必z〃
При этом поведение метода разбора без возвратоц, по существу, не меняется, добавляют лишь дополнительные вызовы процедур. Итак, можем предполагать, что m & 1, и все правила имеют вид
X —> Zi .・・ Zn
Xf Y|Z
Если в правиле первого вида 〃> 1, то заменим его двумя правилами:
XfZX
X’ —► Z2 •. • Zn
где X’ ——новый нетерминальный символ.
И снова разбор без возвратов не изменяется. Можем предполагать, следовательно, что каждое правило принадлежит одному из четырех типов:
X->Y\Z
Х-> YZ
Х —У
8
Если У или Z — терминальные символы (например, X^a\Z}. то введем новое правило вида X'f а н заменим У или Z на 攵' (например, X[Z).
Теперь всякое правило будет принадлежать одному кз пяти типов: ,
Тип
1.
X —
Y\Z
Тип
2.
Xf
YZ
Тип
3.
Xf
Y
Тип
4.
X —
a
Тип
5.
X —8
Здесь У, Z — нетерминальные символы, а а — терминальный. Кроме того, можем считать, что «бесполезных» нетерминальных символов нет. Будем называть грамматики, удовлетворяющие этим условиям, простыми
НЕОБХОДИМЫЕ УСЛОВИЯ
Приступим теперь к изучению четырех необходимых уело вий, которым должны удовлетворять только что определенные нами простые грамматики, если для них подходит метод разбора без возвратов. Позже мы покажем, что эти условия являются также и достаточными, решив тем самым задачу о разборе без возвратов..
Первое условие. Ни один нетерминальный символ не является леворекурсивным.
В противном случае, в то время как машина будет пытаться воспроизвести вывод S -> *аХ(о -> +аХ0(о -> +т, где t — терминальная цепочка, процедура для X будет все время вызывать сама себя, не продвигаясь по цепочке ввода. (Упомянутые цепочки т, а,(о и 0 существуют, потому что символ X по предположению хотя и леворекурсивен, но не бесполезен.)
Лемма. Если грамматика не имеет леворекурсивных нетерминальных символов, то все нетерминальные символы X], Х2,・・・
Xt можно упорядочить так, что
Xpl^Xq только тогда, когда q <р
(В нашем примере (5.13) таким упорядочением будет Z/, Р, Р,厶旦S.)
Доказательство. Это общий результат применительно к вершинам конечного направленного графа, не содержащего ориентированных циклов. Если левой рекурсии нет, то граф левых зависимостей не содержит ориентйрбванных циклов. Вершины такого графа всегда можно упорядочить, Vi, %,…,匕,таким образом, что путь из Vp в Vq имеется только в том случае, если g < р. (Это задача «топологической сортировки», которая разобрана более подробно в книге [5, том 1].)
Всегда можно найти вершину, из которой не "исходит дуг, в противном случае нашелся бы ориентированный цикл. Поместим такую ве()01ййу в начало нашей последовательности символов и удалим ее из графа, после чего будем повторять эту one- рацию до тех пор, пока в графе не останется вершин. Таким образом, лемма доказана.
Перепишем пять типов правил в соответствии с предложением об упорядочении:
Тип 1. Xp->Xq\Xr 9 < р и г <р
Тип 2. XpfXqXrq < р и если Xq -> +е, то и г <р
Тип 3. XpfXq q < Р
Тип 4. Xpf а
Тип 5. Хр-> е
Если метод разбора без возвратов подходит, то должно выполняться еще одно условие, которое проиллюстрировано в сле« дующей грамматике:
XfY|Z
У-У/
Z f Z[Zz
Zi f a z2fb 匕—> a
У2 f c L (X) = {a&, ac}
Анализирующая машина не сможет распознать цепочку ab как X, не возвращаясь назад. В более общем виде нетрудно видеть, что должно выполняться следующее условие:-
Второе условие. Для любого правила типа / first fXg)f| П first (Х「)= 0・
Чтобы доказать необходимость условия, предположим,, что терминальный символ а принадлежит first (Xq) и first (X,). Следовательно, Xgf+a8 и Х「->+а(р, где 0 и ①一некоторые терминальные цепочки. Тогда, если анализирующая машина может распознать аб как Xq, а затем как Хр, значит, она не может распознать а(р как Х「,а затем и как Х°, поскольку процедура для Хр вначале вызывает процедуру для Хд, которая должна продвинуться за букву а.
Еще один случай, когда разбор без возвратов связан с трудностями, отражен в следующих грамматических правилах:
W-^XY
Xf Y|Z
Z f е
LW) = {aa, а}
Анализирующая машина не может разобрать цепочку 《а》, не возвращаясь назад. Таким образом, находим еще одно условие, аналогичное второму.
Третье условие. Для любого правила типа /, где Хг может порождать пустую цепочку, fiist (Nq)] follow (Х「) = 0.
Вот, наконец, еще одна грамматика, которая хотя и удовлетворяет всем трем обсуждавшимся выше условиям, но оказывается тем не менее неприемлемой для разбора без возвратов:
Sf XT
X->Y\Z
Y-^WT
W-^V\U
a
Zfb
V->c
U —> £ L (S) = {ca T, a T, b T)
Программа для анализирующей машины не распознает цепочку 《方 Т》.Процедура для U не может вернуть значение 《ложь》. Следовательно, процедура для W не может вернуть значение《ложь》,а значит, не может этого сделать и процедура для У. Поэтому процедура для X ни при каких обстоятельствах не может обратиться к процедуре для Z! Этот пример подсказывает нам еще одно необходимое ограничение.
Четвертое условие. Ни в одном правиле типа / символ Xq не должен быть ^безотказными иначе говоря, ему не должна соответствовать процедура, которая никогда не может вернуть значение «ложь».'
Ясно, что нетерминальный символ Хр безотказен тогда и только тогда, когда соответствующее правило либо
принадлежит типу 5 (Хр 8); либо
принадлежит типу 3 и Х〃 безотказен; либо
принадлежит типу 2 и Х〃 безотказен; либо
принадлежит типу 1 и Х〃 или Хг безотказен.
Отсюда видно, как можно проверить условие 4 путем последовательного исследования символов Xi, Х2, ..., Xt (именно в таком порядке) на безотказность.
РЕШЕНИЕ ЗАДАЧИ О РАЗБОРЕ БЕЗ ВОЗВРАТОВ
Теорема. Если для некоторой простой грамматики 乡 выполняются условия 1, 2, 3 〃 4, то для нее подходит метод разбора без возвратов,
(На самом деле можно показать, что условие 1 следует из условий 2, 3 и 4, так что условие 1 избыточно.)
В доказательстве используются две леммы. Пусть s〔 ... sn — входная цепочка, a Sh — текущий символ во входной цепочке. Благодаря условию 1 можем предположить, что нетерминальные символы упорядочены, X】,夫2 •••, как описано в разд. 8.1.
Лемма 1. Если условия теоремы выполнены, символ Хр не безотказен и s五亥 first (Х「), то при выполнении команды [Хр]厶1厶2 анализирующая машина передаст управление на метку厶2・
Доказательство. Доказательство проводится индукцией по р с учетом введенного нами упорядочения.
Предположим, лемма верна для всех символов Xq при « V р. (В частности, если р = 1, то мы ничего не предполагаем; доказательства методом индукции чаще бывает удобнее формулировать именно таким образом, не выделяя особо случай р = 1.)
Первый случай:
XpfXq'Xr q <р, г <р
Поскольку символ Хр не является безотказным, то по определению этого свойства символы Xq и Хг также не могут быть безотказными. Кроме того, поскольку sn ^ first (Хр), то Sh ф first (Х^) и Sh ^ first (Хг). Программа для процедуры Хр имеет вид
АдресКодоперацииATAF
Хр[X/7(8.1)
[X/ТF
Следовательно, в силу предположения индукции машина передаст управление на метку 尸.
Второй случай:
XpfXqXr q V "
Поскольку символ Хр не безотказен, то не безотказен и символ Xq. Так как sh ^ first (Хр), то, очевидно, s力会 first (XJ. Программа для Хр имеет вид
(8.2)(8.2)/因] 戶
(8.2)
(8.2)
[Хг] Г ОШИБКА
Следовательно, согласно предположению индукции, процедура Хр передаст управление на метку 尸.
Третий случай:
XpfXq Я <Р
Этот случай очевиден.
Четвертый случай:
Хр f а
AM-программа имеет вид
Хр а Т F(8.3)
и поскольку Sh 耍 а, то и этот случай очевиден. Пятый случай:
Хр f 8
Такая ситуация не может иметь место, так как здесь символ Хр безотказен.
.Лемма 2. Пусть выполнены условия теоремы и Хр-^ *Sh ... ...sr_i, где 九 & 々.(Если h — k, то это означает, что Xpf *&) Предположим, что s々曰 follow (Хр). Тогда при выполнении команды [Хр] LiL2 произойдет переход на метку L\ и h увеличится до k. Более тоао, действия машины во время выполнения этой команды будут соответствовать выводу Xpf *s九...s月一卜
Доказательство. Доказательство проводится индукцией по k —力=ли, а при фиксированном m — еще по р. Таким образом, мы предполагаем, что лемма справедлива при всех р и ли', где mf V m, если m фиксировано, то при всех р‘ V р.
Первый случай:
XpfXq\Xr q<p9 г <р
Программа для Хр имеет вид (8.1).
Частный случай 1а:
Xq f S五・・・S尼—1
По предположению индукции для Xq лемма верна, следовательно, она верна и для Хр.
Частный случай Ibi
Х「f sh ♦ • • $ 也 一1
Если h — k (пустая цепочка), то, поскольку Sh^ sk^ е follow (Хр), из условия 3 следует, что s九旨 first (Х«). С другой стороны, если й > Л, то Sh ^ first (Хд) по условию 2. Кроме того, по условию 4 символ 儿 не безотказен.
Следовательно, по лемме 1 процедура Хр вызовет процедуру [X], а так как 厂 V р, то лемма справедлива согласно предположению индукции.
Второй случай:
Xр ' ^ XqXr、ГДе Xq ^ S九• •・ Sjy 1
X,—> Sj •・・ s“_i
при некотором /;力 W j & 々.
AM-программа имеет вид (8.2). Если А < /, то лемма верна для Xq и Хг (по предположению индукции, так как k ——j < k ——h и « Vp)・ Если Л = /, то Xq может порождать пустую цепочку, а тогда 厂 V р и снова, согласно предположению индукции, процедура Хр передаст управление на метку Г.
Третий случай:
XpfXq q<p
Лемма справедлива для Х〃,следовательно, она справедлива и для Хр.
Четвертый случай:
Xpf а
Это означает, что Sh = а и ^ = А + 1. Очевидно, что АМ-про- грамма (8.3) передаст управление на метку Г и увеличит й.
Пятый случай:
Xpf £
Здесь А должно совпадать с 力;AM-программа для Хр всегда осуществляет переход на метку Г, не меняя А.
На этом доказательство леммы 2 завершается.
Теперь мы можем доказать теорему следующим образом. Если цепочка s】...s〃 принадлежит 厶(9), то машина, согласно лемме 2, в применении к программе для S осуществляет переход на метку《ОК》и действия ее будут соответствовать данному выводу.
Если ж^ si ... sn не принадлежит 厶(g), то машина не может перейти на метку 《ОК》,поскольку всякий раз, когда она переходит на метку《ОК》,ее действия перед этим очевидно соответствуют некоторому выводу в грамматике; причем выводится обязательно вся цепочка целиком, так как только sn =Т.
Единственная оставшаяся возможность состоит в том, что цепочка s】...s〃 не принадлежит 厶(g), а AM-программа никогда не закончит работу. Но это невозможно, так как грамматика не является леворекурсивной; индукцией по п — А и (при фиксированном h) по р можно доказать, что никакой вызов процедуры [Хр] не может привести к бесконечному циклу. Это
доказывается непосредственно, так же как утверждения лемм 1 и 2; однако доказательство не совсем уж тривиально, поскольку АМ может продвигаться довольно медленно, примером чего служит грамматика
Xi f £
Х2 —> Х1Х1
Х3 —> Х2Х2
Х4 Х3Х3
Х^а
X4Х5
РЕЗЮМЕ
Четыре условия, выведенные в разд. 8.1 в частном случае для простых грамматик, можно теперь распространить на общую ситуацию, когда правила записаны в стандартной форме
У/ ・・・ |%|Z1 ・・• Z%(8.4)
Из теоремы разд. 8.2, а также из процедуры упрощения грамматик, описанной перед разд. 8.1, следует, что для применимости метода разбора без возвратов, если только в грамматике отсутствуют бесполезные нетерминальные символы, необ- хидимы и достаточны следующие четыре условия:
В грамматике не содержится леворекурсивных нетерминальных символов.
Множества first(Ki), ..., first(У^), first(Zi ... ZQ попарно не пересекаются, т. е. не содержат общих букв.
Если ・..Zn -> *8, то first(y;) не содержит общих букв с follow (X).
Символы Уь ..., Ут не являются безотказными.
В этом случае нетерминальный символ X, соответствующий правилу (8.4), называется безотказным тогда и только тогда, когда либо
при некотором / (1 W/Wm) символ 匕 безотказен, либо
〃 = 0, либо
и > 0 и символ Zi безотказен.
Как указано выше, условие 1 избыточно, так как его можно вывести из остальных условий.
Для проверки этих условий можно разработать весьма эффективный алгоритм: сначала произвести «топологическую сортировку» нетерминальных символов при помощи графа левых зависимостей; при этом вычислять множества first (X) и проверять условия 2 и 4 для всех символов X по мере того, как они
отбираются алгоритмом топологической сортировки. Затем вычислить для всех X множества follow (X) и проверить условие 3.
Упражнение 2. Подходит ли метод разбора без возвратов для грамматики (5.13)? Обоснуйте свой ответ, проверив приведенные выше четыре условия.
ОБЗОР НИСХОДЯЩИХ И ВОСХОДЯЩИХ МЕТОДОВ РАЗБОРА
В дополнение к отношению ->, введенному в связи с контекстно-свободной грамматикой 乡 в разд, 5, можно определить также ограниченное отношение
аЛю—> а@а)(9.1)
если Л ~> 0 является продукцией, а а 三 Т*. Это означает, что А есть самый левый нетерминальный символ в цепочке аДсо. Аналогично определяется отношение
аЛ(о 一^ а@а)(9.2)
если (о w Т*. Как и раньше, можно ввести соответствующие расширения этих отношений 一丄> * 占 + ±* & + • соотношение
ср —>
можно читать как《屮 порождает 屮 слева》.
В общем случае существует много последовательностей цепочек О1, 02, . . . , Пт, таких, что
S —> С] ~~> .. . f。加—> t
представляет собой вывод цепочки т в контекстно-свободной грамматике; всякий раз, когда а; содержит более одного нетерминального символа, мы можем выбирать, какой из них замещать в первую очередь. Значение отношений —^ и З* состоит в том, что любой диаграмме типа (2.2) соответствует в точности один вывод ~^> и в точности один вывод -^ • Так, используя пример (2.2) и грамматику (2.1), получим соответствующие левый и правый выводы:
S —> В Т(В) Т —(R) Т
—> (£ = £)—| —(а —- £) Т
&(а = (Е+Е))Т(9.3)
(а =(力 + £)) Т
—► (а =(力 + а)) Т
S —厶 В Т (В) Т (R) Т
&(Е = Е)Т &(Е = (£ + Е))Т
& (£ = (£ + 〃)) Т(9.4)
& (Е = (6 + а))Т
-■^ (а = (Ь + а)) Т
Контекстно-свободная грамматика 乡 является однозначной. если каждая цепочка в 厶(夕)имеет ровно один левый вывод (или, что эквивалентно, ровно один правый вывод).
Общая задача синтаксического анализа состоит в том, чтобы, исходя из некоторой цепочки терминальных символов т? например (а == (b -\- а)) Н, найти (если это возможно) такую последовательность продукций, что S —► *т.
При восходящем методе (разбирающем цепочку слева направо) эта задача решается путем «редукции» вышеуказанной цепочки сначала к
(Е = (Ь + а))Ч
после этого цепочка редуцируется к
(£ = (Е + 〃))Т
затем к
(Е = (Е+Е))Т
затем к
(Е = £)Т
и т. д. {Редукция есть операция, противоположная порождению). На каждом шаге производится самая левая возможная редукция. Процесс продолжается до тех пор, пока мы не сведем все к S или пока не покажем, что это вообще невозможно. Заметим, что последовательность промежуточных шагов в точности обратна последовательности порождений справа (9.4). Вообще, восходящий анализ (слева направо) состоит е выполнении ряда правых редукций, т. е. в обращении последовательности правых порождений.
При нисходящем методе (разбирающем цепочку слева направо) подход к задаче несколько иной. Начав с символа S, мы пытаемся достичь данной терминальной цепочки при помощи последовательности левых порождений, как в (9.3). На каждом шаге требуется решать, какую продукцию необходимо применить к самому левому нетерминальному символу. Вообще, нисходящий метод (слева направо) состоит в выполнении последовательности левых порождений.
Аналогично, поменяв ролями слова «левый» и 《правый》в приведенном выше обсуждении, можно описать нисходящий и
восходящий методы разбора справа налево. (В настоящее время несколько человёк занимаются исследованием некоторых расширенных методов разбора, более симметричных относительно левого и правого концов цепочки.)
Для пересмотра некоторых альтернатив в последовательности вывода, которая оказалась неверной, можно предположить разнообразные процедуры возвратов. Однако наибольший интерес представляют случаи, когда синтаксический анализ производится без возвратов; тогда заранее известно, что каждый шаг в последовательности вывода ——единственно возможный. Такие процедуры обычно называют детерминированными методами анализа.
В своей . предыдущей статье [7] автор указал общие условия, при которых цепочки, описываемые данной грамматикой, можно проанализировать восходящим детерминированным методом слева направо, заглядывая на k литер вперед от того места, где будет выполнена следующая редукция. Такие грамматики называются LR (k) -грамматиками. Аналогичное свойство для нисходящего анализа, предложенное впервые Льюисом □ Стирнсом [8], мы будем называть здесь свойством 《LL(^)》. Оно означает, что восходящий анализ выполняется слева направо с заглядыванием вперед на k литер относительно уже проанализированной части терминальной цепочки. Формальные определения этих понятий будут приведены в следующем разделе; сейчас же дадим краткое описание четырех свойств, которыми может обладать контекстно-свободная грамматика:
LL (々):разборслева направоспомощьюлевыхпорождений;
LR (fe):разборслева направоспомощьюправыхредукций;
RL (^):разборсправа налевоспомощьюлевыхредукций;
RR 面:разборсправа налевоспомощьюправыхпорождений.
(Здесь везде через k обозначено число символов, на которое мы «заглядываем вперед», чтобы решить, какое порождение или какую редукцию выполнить в данный момент. Операция «правая редукция» обратна операции «правое порождение» (9.2.) Свойства LL(k) и RR(k) соответствуют нисходящему разбору. '
ОПРЕДЕЛЕНИЕ СВОЙСТВ LL(k) И LR(k)
Введем несколько полезных обозначений. Пусть k ——неотрицательное целое число, а а ——цепочка; тогда по определению
k : а =k : а =a :々 s^a :々 s^f если |а|》力,то первые k литер цепочки а,I иначе аесли I а I》女,то последние k литер цепочки а, иначе аf если |а|》力,то первые k литер цепочки а,I иначе аесли I а I》女,то последние k литер цепочки а, иначе а(ЮЛ)(ЮЛ)(Ю.2)(Ю.2)
k : а =
k : а =
a :々 s^
a :々 s^
f если |а|》力,то первые k литер цепочки а,
I иначе а
если I а I》女,то последние k литер цепочки а, иначе а
f если |а|》力,то первые k литер цепочки а,
I иначе а
если I а I》女,то последние k литер цепочки а, иначе а
(ЮЛ)
(ЮЛ)
(Ю.2)
(Ю.2)
Далее, если 4 — множество цепочек, то
々:4 = {"a|aw&(10.3)
A:k = {a-.k\a^A}(10.4)
Заметим, что first (Д) = (1 : L (А)) (]Т = (1 : Л(Д))—{в}, и если 归:6 =归:у, то 归:(а8)=归:(aт).
Неформальные рассуждения из разд. 9 можно теперь сформулировать строго в терминах этих обозначений.
Определение. Контекстно-свободная грамматика является LR (^) -грамматикой, если для любых цепочек ар aj, а2> а; из (^ U Г)*, а3,吗 из Г* и любых символов 力,Аг из N выполняется следующее условие: если
S」> *а{Аа3 -^> адаз и
S -^> *а^Д,ад -^《а;% и
(Iaia21 + 々):%0^3 = (I as[+ k) : a低% то
а】^ ctp A = Л , a? = a?
Определение. Контекстно-свободная грамматика является LL (k) -грамматикой, если для любых цепочек ар а4, а; из Г*, а2, а3, а; из (N{JT)* выполняется следующее условие: если
S*a1аа3 «^2«3 —* *ala4 и
S*%а;
и
々:a4 =々:a; то
а? = %
Определим теперь обобщенную функцию «следования», которая позволит получить дополнительную информацию о свойстве LL(k): пусть В w 7*, А ^ N и k ——неотрицательное число, тогда
FJA, р)= й:{0|е^Г и S->*M9}(10.5)
Таким образом, в наших прежних обозначениях
follow (Д)= U 尸 1(4 В)
беГ*
если только Д =# S и если символ Т рассматривается как элемент 7.
Теорема (Лыоис и Стирнс). Если А->а\ и 4 —► а2 — две различные продукции LL (k) -грамматики и р принадлежит Г*, то для любых 01, 02 w Fk(Л, Р)
伊:亿(a1) eg П 伐:亿(a2) 02)] = 0(10.6)
(В действительности можно показать, что это условие эквивалентно свойству 厶厶(归),см. [8]. Это условие приводит к весьма простому алгоритму для проверки принадлежности контекстно-свободной грамматики множеству 厶丄(归)-грамматик при заданном 互)
Доказательство. Допустим, существуют такие цепочки (О, 01, 02, что
со е ^ : (L (ai)0i)
со е ^ : (L (а2) 02)
仇,02 w Fk (Д, В)
Мы покажем, что отсюда вытекает равенство s = a2, которое противоречит предположению о том, что Л -> а} и 4f 出一 различные продукции.
Доказательство состоит в основном в раскрытии обозначений Согласно предположению, в Г* существуют такие цепочки 0j и 02,что
Sf*MK,S->*M9;, ^:0; = 0Р й:02==02
Из рассмотрения соответствующих левых выводов следует, что в (NUT)* существуют такие цепочки 丫卜 也,что
S-^>p4%, S&*M%,YL *К,Y2 f 期
В LQ), L (a2) существуют также цепочки соответственно у и з,такие, что.
k : t]6: = k :马耳=(о =々:T202 = k :马"
Следовательно, Yi = у2 (см. упр. 4).
Итак, имеем
S —*04% —► ра1у1*Рт10|
S —> *М V2 & В。?* —% *Рт202
Таким образом, по определению LL (/?) -грамматики ai = аг, что и требовалось доказать.
Упражнение 3. Покажите, что LL (/?) -грамматика, не содержащая бесполезных нетерминальных символов, не содержит и леворекурсивных нетерминальных символов.
Упражнение 4. Покажите, что любая LL (k) -грамматика удовлетворяет следующему условию: для любых цепочек ар а4, а; из Т* и а3,吗 из (N U Т)*, если
S —* *а1Да3"ад
и
S —> 乜4吗—> *%а; и
k • (Х4 ■—尼•。4
то а3 = а^.
11(1)-ГРАММАТИКИ
При рассмотрении LL(k) -грамматик частный случай k — 1 кажется немного проще случаев с большими значениями 力, кроме того, он имеет прямое отношение к обсуждавшемуся выше методу разбора «без возвратов», поэтому мы изучим его подробнее.
Пусть G — грамматика, не содержащая бесполезных нетерминальных символов; применим последнюю теорему при 归=1. Пусть Д ——нетерминальный символ, и ему соответствует правило
Д ->ai I а21 ... I aw, m^ 1(11.1)
Если р ^ q и а ^ first (ар), b w first (а«), то по условию (10.6) а# Ь. Кроме того, не может быть одновременно *е и а«-> *е, поскольку равенство (10.6) было бы нарушено, если выбрать 01 = 02. Если же ар *8, а b 三 first (а«), то согласно условию (10.6), b 亥尸1(4, В) при любой цепочке В,т. е. b 吏 ^ follow (Д).
Таким образом, для каждого правила (11.1) LL(1)-грамматики выполняются три необходимых условия:
Множества first(ai, ..., first(am) взаимно не пересекающиеся, т. е. не содержат общих элементов.
Не более чем одна из цепочек ai, ..., am может порождать пустую цепочку.
Если ар —► *8, то множества first (а^) и follow (Л) не содержат общих элементов, где \ W q W ш, q # р.
Замечание: условия 1 и 2 можно заменить одним условием: (1 :厶 @))1(1 :厶 &))= 0 при p=#g)
Эти три условия, очевидно, также являются достаточными, для того чтобы грамматика 乡 была LL(1)-грамматикой: если мы собираемся заменить Д одной из цепочек д, ..., а., то выбор а; единственным образом определяется первым символом той терминальной цепочки, которую мы в конце концов должны получить из 4
Заметим, что грамматики, удовлетворяющие условиям, при которых возможен разбор без возвратов и которые сформулированы в конце разд. 8, удовлетворяют и трем только что выведенным условиям, следовательно, они являются И(1)-грам- матиками. В то же время такая грамматика, как, например,
BfAb[Cd
(И.2)(И.2)А-^аА\& С —> сС18 S > g ―I
(И.2)
(И.2)
является LL (1) -грамматикой, но не удовлетворяет условиям, при которых возможен разбор без возвратов. Символы Л и С оба безотказны, значит, анализирующая машина не сможет работать с такой грамматикой, независимо от того, напишем ли мы
В~> Ab\Cd или В Cd\Ab
прежде чем приводить это правило к стандартному виду.
Тем не менее любую AL (1)-грамматику можно преобразовать к весьма простому стандартному виду, в котором анализирующая машина сможет ее обрабатывать.
Будем называть LL (^) -языком множество цепочек, которое может быть определено при помощи LL (й) -грамматики.
Теорема. Любой LL(l)/3biK может быть описан грамма- такой, все правила которой принадлежат одному из двух типов'.
Тип 1. Л aiai | ... amam
Тип 2. 4f за/ ... amam\^
Здесь 〃i, 〃m ——различные терминальные символ”; в правилах типа 2 ни один из символов aj не принадлежит множеству follow (Д).
(И наоборот, такая грамматика, очевидно, является LL (1)- грамматикой, а также, очевидно, удовлетворяет условиям применимости метода разбора без возвратов. Таким образом, множество 7.L(1)-языков совпадает с множеством языков, которые можно анализировать при помощи AM-программы без возвратов )
Доказательство. Пусть дана грамматика g, удовлетворяющая приведенным выше условиям 1, 2, 3 и не содержащая бесполезных нетерминальных символов. Тогда можно доказать (см., например, упр. 3), что g не содержит леворекурсивных нетерминальных символов. Значит, нетерминальные символы можно упорядочить 4], А2,.・.,At, где Apl+Aq тогда и только тогда, когда q V р.
Отсюда следует, что правило для Ai должно принадлежать либо типу 1, либо типу 2, которые описаны в условии теоремы.
Предположим, что правила для всех нетерминальных символов Aq при g V р принадлежат либо типу 1, либо типу 2. Предположим также, что для всякого правила типа 2
^q f %1。〃1 丨• • •丨 aqntqaqmq I e> 4 < P(1 1 ・3)
к грамматике добавлено дополнительное правило:
4;f %i%| • • • I aq^q^qmq(11・4)
где 4;——новый нетерминальный символ. Покажем, как изменить правило для 4", чтобы привести его к одному из типов 1 или 2.
Пусть правило для Ар такое:
/Др -> ai I а21 ... %
Если а; начинается с нетерминального символа, т. е. а; имеет вид 4ар, то должно иметь место неравенство g V р. Если правило для Aq принадлежит типу 2, то заменим а/ двумя альтернативами 力;616, где /; задается правилом (11.4). В результате снова получаем LL(1) -грамматику, поскольку first {А^ П П first (Р) ^ first (Л^) П follow (Л^) = 0, и множество first (&)U U first (Р) = first (ay) не содержит общих букв с first (aj при i 力=j. Кроме того, в случае Р —► *е необходимо проверить, что множества first (厶;)и follow (Ар) не содержат общих букв; это верно, потому что follow (Др) ^ follow {Aq) при (3*е.
Будем повторять этот процесс до тех пор, пока правило для Ар не примет вид、
Лр -> aj I a21 ... I ап
где ни одна из цепочек а; не начинается с нетерминального символа, которому бы соответствовало правило типа 2. Теперь, если а, начинается с нетерминального символа 4°, то можно записать a; = Aq^, где 夕 < р, и правило для Aq имеет вид
"(7 ~> 旬。《1 I • • • i ^qm^qmg
Следовательно, каждую альтернативу а; можно заменить на%1%18 I ・・・ I ^qm^qm^
причем ясно, что мы снова получим LL(1)-грамматику. Таким образом, правило для Ар можно в конце концов привести либо к типу 1, либо к типу 2, и на этом доказательство завершается. (Вспомогательные правила (11.4) после завершения построения становятся ненужными.)
Например, грамматика (11.2) будет преобразована в
А->аА\&
С f сС I
B^aAb\b\cCd\d⑴上)
S > иЛЬ I I b11 сСd ―I I d•
(Здесь символ В становится бесполезным.)
Грамматики, в которых все правила принадлежат типу 1, очевидно, являются LL(1)-грамматиками. Кореньяк и Хопкрофт [9] назвали их «s-грамматиками». Они доказали (среди прочих вещей), что задача эквивалентности разрешима в классе s-языков. Иначе говоря, если 乡i и 乡2 являются s-грамматиками, то можно определить, имеет ли место равенство L(^i)=厶(乡2).
Грамматику (11.5) можно преобразовать в s-грамматику, описывающую тот же язык, если ввести новые нетерминальные символы [АЬ] и [Cd], описывающие соответственно языки L(Ab) и L(Cd). Получим s-грамматику
[Ab] f a [Ab] I &
[Cd]->c[Cd]\d
S->a[Ab]4 2Т I с [Cd] Н |dT
При подготовке этих лекций автор обнаружил, что и многие другие ££(1)-грамматики также поддаются подобным преобразованиям; поэтому предположение о том, что для всякого LL(1)-языка L язык £Т является s-языком, казалось вполне разумным. Если бы это предположение было верно, то тем самым была бы решена задача эквивалентности для LL(1) -языков.
Одна грамматика, показавшаяся было контрпримером к этому предположению, была такова:
Р-^ + РР\хА
А-^аА\ г(11.6)
Sf РТ
Она описывает польскую префиксную запись для бинарного оператора」• и переменных 工 ха, хааАвтор предпринял
несколько бесплодных попыток найти s-грамматику для этого языка, пока не аоаумался до такого трюка: записать Р = PfA, где символ Р‘ представляет все цепочки языка Р, не заканчивающиеся символом а; таким образом, язык (11.6) можно описать следующей s-грамматикой:
Р^ + Р' [APf]\x
[APf]-> a[APf]\ + Pf [APf}\x
S^Pf [АЧ]
[A T ] f a [4 T ] I T
Этот пример еще более усилил правдоподобность такого предположения.
Тем не менее Р. Кюрки-Суонио нашел простой контрпример [10], показывающий, что из £Л(1)-1рамматики с добавленным в конец символом Т, в общем случае 8 удалить нельзя. Итак, пустая цепочка играет важную роль е нисходящем анализе.
Упражнение 5 (предложено Карелом Чуликом II). Покажите, что следующая грамматика является LL (2) -грамматикой. Можно ли тот же язык описать при помощи LL (1) -грамматики?
S aaSbb | а | е
ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Возникает естественный вопрос: какой же анализ лучше —— нисходящий или восходящий? Трудно дать исчерпывающий ответ на этот вопрос, но кое-что сказать можно.
Во-первых, всякая LL(/г)-грамматика является в то же время LR (й) -грамматикой. (Это можно доказать при помощи довольно сложного, но интуитивно ясного рассуждения. Аккуратное и прозрачное доказательство этого факта составило бы весьма солидную дипломную работу и было бы очень поучительным построением.)
С другой стороны, грамматика «булевых выражений» (2.1) является LR (0) -грамматикой, но не является LL(fe)-грамматикой ни при каком 归:цепочку (((((((((((а =力)))))))))))нужно разбирать совсем не так, как цепочку
(((((((((((a + b) + b) + b) + b) + b) + b) + b) + b) + b) + b) + b) = b
которая начинается с тех же самых 12 символов. На самом деле можно показать, что это даже не LL(k) -язык, т. е. что не существует эквивалентной АЛ(fe)-грамматики. Таким образом, детерминированному восходящему анализу поддается более общий класс языков, чем нисходящему анализу.
С другой стороны, если нам повезло и в нашем распоряжении есть 厶工⑴-грамматика, то мы имеем возможность более гибко применять семантические правила, поскольку знаем, какая из продукций применяется, еще до того, как будут разобраны ее компоненты. Такое предвидение на практике может оказаться исключительно важным. Процедура восходящего разбора, лишь прочитав весь текст, может выяснить, что же это такое было. Теоретическая модель, демонстрирующая это преимущество нисходящего анализа, подробно обсуждается в работе Льюиса и Стирнса [8].
Простая модель восходящего анализа, которую можно рассматривать как восходящий аналог анализирующей машины без возвратов, — это метод «грамматик простого предшествования», разработанный Виртом и Вебером [11]. Восходящий аналог метода с неполным возвратом принадлежит Айронсу [12] и до сих пор не получил теоретического истолкования.
В заключение приведем несколько задач исследовательского характера, которые перечислены здесь (быть может) в порядке возрастающей сложности.
Является ли всякий LL(k) -язык (k^ l)LL(l)-языком? (Для LR(^)- и L/?(l)-языков соответствующее утверждение справедливо.)
Разрешима ли задача эквивалентности для LL(1)-языков? (В свете работы Кореняка и Хопкрофта [9] этот факт выглядит весьма вероятным.)
Нельзя ли теоретически проанализировать метод Айронса [12], подобно тому как это сделано выше для метода неполных возвратов?
Каков класс языков, которые можно обрабатывать при помощи анализирующей машины (см. упр. 1)?
Разрешима ли задача эквивалентности для L/?(l)-языков? (Это, пожалуй, наиболее важная из не решенных до настоящего времени задач; желательно также дать ответ для таких сугубо частных случаев, как, например, грамматики предшествования Вирта [11].)
Постскриптум, написан в мае 1971 года. Исследовательские задачи 1 и 2 уже решены. Р. Кюрки-Суонио доказал, что LL(k + 1)-грамматика
S ―> aS4I в
A f akbS I с
определяет не £А(^)-язык [10]. Розенкранц и Стирнс показали, что задача эквивалентности для LL(k) -грамматик разрешима [13]. В обеих статьях устанавливается ряд других важных фактов относительно LL (й) -грамматик и языков.
Значительный прогресс также достигну! в теории, связанной с задачей 3. Автор (и другие) в 1967 году полагал, что алгоритм Айронса, как и указано выше, был 《восходящим》,однако впоследствии стало ясно, что восходящими являются методы Кока, Янгера, Казами и др. (см. [14]). Метод же Айронса не является ни восходящим, ни нисходящим и получил название «разбора с левого угла》】),а соответствующий класс грамматик, обозначаемый через LC(k), изучен Розенкранцем и Льюисом [15], которые показали, что все LC (k) -языки являются LL(k) -языками и наоборот.
ПРИЛОЖЕНИЕ. ОТВЕТЫ К УПРАЖНЕНИЯМ
Упражнение 1. {anbncn-\ | п = 0, 1, 2, ...}. Следовательно, АМ может допускать языки, не являющиеся контекстно-свободными.
Упражнение 2. Условие 1 было проверено в тексте. Условие 2 нужно проверить лишь для правила Р ~^a\b\ (Е), где множества first (а) = a, first (&) = b, first ((Е)) = ( очевидно не пересекаются. (В остальных правилах либо 优=0, либо п = 0.) Условие 3 выполняется, так как follow (L) — {), Т} не имеет общих букв с first(十厶//) = {+} и follow (Р)= {), +, Т} не имеет общих букв с first(РР‘)——{а, Ь, (}. Наконец, только символы U и Р‘ являются безотказными символами, следовательно, условие 4 выполняется.
Упражнение 3. Если Л —>М, то грамматика неоднозначна и, следовательно, не является LL (ft) -грамматикой. Если А -> +4а, где а * е н 4 +6,где р и а — цепочки из Т*, то 4 +肥",где п сколь угодно велико. Таким образом, по первым k символам цепочки рап нельзя определить, сколько раз нужно применить последовательность левых порождений, соответствующую выводу Л -> Ма.
Упражнение 4. Рассмотрим начальные шаги вывода; если
S」А *В1ВВз & В1В2В3 上* *«1^а.з
S &书声也」> В1В:Вз &
то ai = Piv, где 丫 ——некоторая цепочка из 7*. Поскольку k : уа4 = k ^ уа^, то из определения LL(^)-грамматики следует, что 卩2 = 6; Таким образом, если для S-幺*сцАаз требуется m шагов, а для S *«^^ требуется 几 ^ m шагов, то первые m
шагов должны совпадать. Следовательно, для а^^ -~> *«^«^ требуется п ——m шагов. Из упр. т = п.
Упражнение 5. Цепочки языка образуют множество {а〃Ь2[〃/2]|〃》°} Заглядывая на 2 символа вперед, применяем продукцию S f aaSbb, если имеются две буквы а, продукцию S->а, если есть одна буква а, но нет двух, Sf е в остальных случаях.
Эквивалентная ££(1)-грамматика:
S f аТ \ & Гf aUbI в UfaTb \b
СПИСОК ЛИТЕРАТУРЫ
Barnett M. P., Futrelle R. Р.» Syntactic analysis by digital computer, Comm. ACM, 5, 515—626 (1962).
Brooker R. A., Morris D., A description of Mercury Autocode in terms of a phrase structure language, Ann. Review Auto. Programming, 2, 29——65 (1961). См. также S. Rosen, Comin. ACM, 7, 403—414 (1964).
Conway M. E., Design of a separable transition-diagram compiler, Comm. ACM, 6, 396—408 (1963).
Schorre D. V., META II, a syntax-oriented compiler writing language, Proc. ACM National Conf., 19, Dl.3.1—Dl.3.11 (1964).
Knuth D. E., The Art of Computer Programming (в семи томах)】).
Floyd R. W., The syntax of programming languages — a survey, IEEE Transactions, EC-13, 346—353 (1964).
Knuth D. E., On the translation of languages from left to right, Information and Control, 8, 607—639 (1965). (Есть русский перевод: Д. Кнут, О переводе (трансляции) языков слева направо. Сб. переводов «Языки и автоматы», «Мнр》,М., 1975.)
Lewis II, Р. М., Stearns R. Е., Syntax-directed transduction, J. ACM, 15, 464—488 (1968).
Korenjak A. J., Hopcroft J. E., Simple deterministic languages, Proc. IEEE Symp. Switching and Automata Theory, 7, 36—46 (1966). (Есть русский перевод: А. Кореняк, Дж. Хопкрофт, Простые детерминированные языки. С6. переводов «Языки и автоматы», «Мир», М., 1975.
Ktirki-Suoni R., Notes on top-down languages, 8/T, 9, 225—238 (1969).
Wirth N., Weber H., Euler, a generalization of ALGOL and its formal definition. Comm 4cM 9, 13-23, 25, 89—99, 878 (1966).
Irons E. T., A syntax-directed compiler for ALGOL 60, Comm. ACM, 4, 51—55 (1961).
Rosenkrantz D. J., Stearns R. E., Properties of deterministic top-down grammars, Information and Control, 17, 226—256 (1970).
Earley J., An efficient context-free parsing algorithm, Comm. ACM, 13, 94— 102 (1970). (Есть русский перевод: Дж. Эрли, Эффективный алгоритм анализа контекстно-свободных языков. Сб. переводов «Языки и автоматы», «Мир», М., 1975.)
Rosenkrantz D. J., Lewis II Р. М., Deterministic left corner parsing, Proc. IEEE Symp. Switching and Automata Theory, 11, 139—152 (1970).
')К настоящему времени изданы первые три тома Все они переведены на русский язык: Д. Э. Кнут, Искусство программирования для ЭВМ, «Мир», М., т. 1, 1976, т. 2, 1977, т. 3, 1978.
Теория распознавания
Основы анализа образов)
Ульф ГренандерБрауновский университет
Оглавление
Введение 143
Чистые образы
Знаки и конфигурации153
Изображения 156
Представление изображений159
Образы162
И. Грамматики образов
Таксономия изображенийи образов164
Образы перестановок167
Линейные образы172
Образы множеств174
Граничные образы176
Контрастные образы .. . . 179
Временные образы181
III. Искаженные образы
Искаженныеизображения182
Грамматикиметрических образов184
Грамматикивероятностных образов188
IV. Грамматикиискажений образов
Построениемеханизмов искажений192
Искажениеобразов перестановок194
Искажениеплоских образов199
Искажениеконтрастных образов207
Искажениевременных образов215
Благодарности 221
Список литературы 222
ВВЕДЕНИЕ
Цель этой статьи состоит в том, чтобы заложить фундамент формального анализа образов. Можно надеяться, что такой анализ будет способствовать развитию теории распознавания образов.
Что же такое образ)? Или, вернее, что этот термин должен означать? Если слова вообще что-то значат, то может оказаться поучительным ознакомиться с некоторыми из слов, используемых для определения этого понятия.
В повседневной речи мы используем это слово свободно, подразумевая при этом ряд самых различных предметов. Его наиболее обычным смыслом, по-видимому, является «модель》 или «способ разметки》, однако оно также означает «образец» или «экземпляр». Французское 《dessin》, немецкое 《Muster》и шведское «monster» могут означать модель, но, помимо этого, н особенность чего-то желаемого, что следовало бы имитировать. То же самое справедливо для греческого «лара^еьуца» и латинского 《exemplum》,в то время как русское «эталон» означает нечто, что можно копировать и воспроизводить количественно. Этот двойной смысл дает нам ключ: надо иметь 2 вида анализа образов. Первый из них описательный, т. е. делается попытка описать образы математически и исследовать процессы распознавания, наблюдаемые в природе. Другой вид является нормативным, т. е. для данных определенных образов отыскивается способ построения процессов распознавания, которые окажутся HaidvTyqmHMH (или хорошими) в некотором смысле. Сознавая это различие, попробуем построить единую математическую теорию, полезную и в том, и в другом смысле.
Слово《образ》также широко используется в обширной литературе по распознаванию образов. Там оно имеет более точное значение, которое, однако, может варьироваться. Наиболее обычным, по-видимому, является буквенно-цифровой символ: буква и цифра некоторой заданной письменности. Действительно, значительная часть работ по распознаванию образов касается задачи автоматического распознавания машинописных, рукописных или печатных букв. К той же категории относится изучение китайских иероглифов или других символов, созданных человеком для общения, например азбука Морзе. Другой тип образов основан на изучении отпечатков пальцев, электрокардиограмм (ЭКГ) и речи. Они служат теми естественными явлениями, которые мы хотим разложить на основные компоненты в процессе анализа.
Наша цель состоит в построении достаточно гибкой модели, позволяющей обсуждать образ вообще: дать точный язык, в терминах которого мы сможем анализировать и описывать образы.
Под образами будем понимать следующее. Отправляясь от некоторого множества объектов (называемых изображениями) и множества правил, с помощью которых можно преобразовать
одно изображение в другое, мы скажем, что 2 изображения подобны, если одно из них можно преобразовать в другое после- довательным применением некоторых из наших правил. Под образом мы могли бы понимать класс взаимно подобных изображений. Далее будем пользоваться более общим определением, однако уже это узкое понятие могло бы служить хорошим указанием на то, что мы ищем.
Изображения формируются из определенных элементарных строительных блоков или атомов, которые мы назовем знаками. Знаки разрешается комбинировать в соответствии с определенными правилами, которые ниже будут подробно обсуждаться. Часто эти знаки естественным образом группируются в непересекающиеся классы, называемые подпрограммами, и тогда анализ образа проводится посредством изображений, из которых он состоит, и каждое изображение представляется подпрограммами и знаками.
Большая часть последних работ по распознаванию образов касается построения алгоритмов обучения. Исходя из элементарных допущений о множестве наблюдаемых объектов, алгоритм должен последовательно усовершенствовать себя по мере накопления опыта. С течением времени этот алгоритм должен научиться различать разные образы все более и более точно. Изменчивость, затрагиваемая здесь, часто описывается в статистических терминах, и многие из этих исследовательских усилий можно было бы классифицировать как изучение последовательных решающих функций. Заметим, что на структуру объектов налагаются весьма незначительные ограничения.
Мы используем иной подход. Идея последовательного реше- ния, несомненно, подходит для распознавания образов, в особенности тогда, когда мы имеем дело с образами, заранее не известными. Однако это лишь одна сторона картины. По мнению автора, чтобы уметь находить эффективные распознающие схемы, надо быть готовым уделять больше внимания источнику и порождению объектов, которые мы наблюдаем. Следовательно, построение алгоритма распознавания основывается на анализе образов, приспособленном к конкретному случаю. В каждом подобном случае мы ограничимся рассмотрением некоторых алгебраически определенных образов. Аналогичные идеи пронизывают всю литературу по распознаванию образов, однако лишь в редких случаях они изучены систематически. Особенно точную формулировку этой идеи можно найти у Нарасимхана [6], где проводится анализ компонент траекторий в пузырьковой камере.
В настоящей работе особое внимание уделяется аналитической части задачи. Как только это прояснится, можно надеяться, что мы получим средство, полезное и для последовательных процедур. Последние здесь рассматриваться не будут.
Способ, испытываемый для построения математической модели образов, конечно, приведет нас к алгебраическим рассмотрениям. Можно, однако, взглянуть на это и под другим углом. Мы вводим изображения (и операции над ними) не только простым перечислением, но и определением правил порождения и преобразования. Читатель, знакомый с новыми направлениями лингвистики, увидит, что этот подход имеет много общего с порождающими грамматиками. Он может считать, что подпрограммы знаков соответствуют лингвистическим понятиям, таким, как морфемы, глаголы, существительные, и синтаксическим категориям более высокого уровня. Если мы имеем дело с классами изображений приемлемой сложности, то ясно, что с помощью правил порождения можно надеяться описать их более экономно, чем задавая длинный список изображений. Сошлемся на известное лингвистическое высказывание: «образовать бесконечное конечными средствами».
Тип образов, которые мы имеем в виду, может быть, достаточно трудно обработать, но их сложность значительно уступает сложности естественного языка. Естественный язык, с его почти неограниченной способностью выражать плоды человеческого разума, имеет настолько богатую логическую структуру, что сравнивать с ним структуры изучаемых нами образов не имеет смысла. Более подходящими аналогами могли бы служить некоторые формальные языки. Сам факт, что вообще есть возможность анализировать наши образы точным методом, указывает на то, что наши структуры проще лингвистических.
Но во всяком случае, используемый подход, равно как и понятия, и терминология, навеяны лингвистикой. Различные модели, которые будут построены, называются грамматиками образов. Конечно, эти грамматики имеют лишь поверхностное сходство с лингвистическими грамматиками, но положение, которое они занимают по отношению к изучаемому предмету, аналогично. Такая грамматика определяет среду, в которой мы работаем,——знаки и правила порождения изображений. Нужно также задать правила преобразования изображений', преобразования подобия. Последние укажут нам, какому именно образу принадлежит данное изображение. Их можно рассматривать как средства извлечения смысла из изучаемого изображения.
Модель, грубо обрисованная нами, является довольно общей. Однако в этой статье она значительно ограничена предположением, что правила преобразования образуют группу преобразований G. Даже при этом ограничении полученные грамматики охватывают ряд случаев сильно отличающихся друг от друга. Подобие теперь означает инвариантность относительно G, и мы распознаем классы эквивалентности и т. д. Ранее были подробно исследованы модели, в которых понятие инвариантности играет
основную роль. Такими моделями были теория относительности в физике, эрлангеровская программа Клейна в геометрии. «Геометрические свойства непременно характеризуются неизменностью по отношению к преобразованиям основной группы». Напомним читателю также прекрасную книгу Германа Вейля о симметрии, в которой он пытается описать эстетическое качество посредством инвариантности и повторений (но не только с их помощью). Возможно, что наиболее близкая модель исходит из теории восприятия; отметим известную работу Питтса и Мак- каллока [7] и недавнюю попытку Хофмана [5] анализировать зрительные восприятия.
Лингвистическая (или алгебраическая) модель, описанная выше, будет обозначаться через g. Если g определяется достаточно простым способом, то мы можем искать алгоритмы распознавания для классификации изображений из g в соответствии с тем, к какому образу они принадлежат. В принципе это легко осуществить по крайней мере в том случае, когда мы не интересуемся вопросом разрешимости. В этой статье мы не примем финитную позицию и понятие разрешимости не будет обсуждаться. По мнению автора, более серьезным недостатком является то, что мы не попытались оценить количество вычислений, которое могло бы потребоваться для реализации любого конкретного алгоритма распознавания с помощью данных средств. К сожалению, реальные образы редко могут быть описаны с помощью подобной грамматики. Вместо этого мы будем считать, что 乡 представляет лишь первый этап анализа и назовем ее чистой грамматикой с чистыми изображениями и образами На следующем этапе мы добавим к этой грамматике механизм искажения ⑦,отображающий множество ? чистых изображений в множество ?@ искаженных изображений. Обычно &函 намного шире и включает в себя ?. Тогда процедура распознавания выглядит следующим образом:
外三/牙严丁客・ (1-1)
Мы исходим из некоторого изображения / чистого образа 乡「, затем / деформируется в /@. Мы наблюдаем лишь /^, и функция распознавания 力 должна отобразить 1^ в множество чистых образов. Конечно, мы хотим, чтобы 力 была «хорошей» в некотором конкретном смысле. Уточнение требований на 力 будет дано позднее. Когда вводится механизм искажения, то сразу становится ясным, что модель полностью учитывает особенности анализа образов. Эта модель будет называться грамматикой искажений и обозначаться через gdef. По терминологии Де Соссюра 乡 могло бы соответствовать «языку», a gdef ——«устной речи».
Однако все еще не ясно, каким именно образом мы сможем сравнивать 2 альтернативные функции распознавания «】и «2.
какая из них может считаться лучше другой. Если множество ?勁 искаженных изображений является метрическим и если ? и 济,то может оказаться разумным требование, чтобы распознающая функция распознавала то (или те) чистое (чистые) изображение (изображения) и образ (образы), которые находятся на наименьшем возможном расстоянии от наблюдав- мого изображения 3^. За этим требованием кроется очевидное соображение, что малые искажения в 勿 являются более похожими (в некотором неопределенном смысле), чем большие искажения. Эта идея ниже реализуется до конца путем введения понятия усилия искажения. Искажение с такой же метрикой, как и выше, будет называться грамматикой метрического искажения и обозначаться через 乡met・
Трудность, связанная с грамматикой метрического искажения, состоит в том, что предполагается задание метрики, естественным образом связанной с механизмом искажения. Если у нас нет подхода к метрике, специально построенной для грам・ матики gdef, то мы должны искать другие пути.
Весьма перспективным, но в то же время довольно трудным выходом из положения является постулирование существования распределения вероятностей Р над множеством ⑦ всех искажений. Следует отметить, что если мы стремимся к некоторой степени реализма, когда строим такую грамматику вероятностного искажения 乡ргоь, то мы должны быть готовы к рассмотрению некоторых довольно сложных статистических структур. На самом деле тип задачи, возникающей при этом, должен быть типа «вывода в стохастических процессах» или «стохастического процесса», интерпретируемого в весьма широком смысле. Действительно, мы теперь можем смотреть на множество чистых изображений J как на параметрическое пространство и на множество искаженных изображений ?& как на выборочное пространство. Задача распознавания тогда появляется в виде оценки или задачи многоэтапного решения с определенными свойствами инвариантности. Как параметрическое, так и выборочное пространства могут быть чрезвычайно сложными; обратим внимание на способ, по которому они построены, исходя из первоначальных знаков. Мы не могли рассчитывать на то, что можно рассматривать это широкое семейство моделей просто, применяя методы теории решения стандартным образом. С дру~ гой стороны, многие наши усилия будут затрачены на формулировку таких моделей в конкретных случаях для того, чтобы сделать их достаточно гибкими для соответствия реальным образам. Мы прошли длинный путь, пока не получили подобного арсенала средств, и данная статья может рассматриваться лишь как первая систематическая попытка достичь эту цель.
Множество грамматик вероятностных искажений предоставляет нам арсенал интересных моделей. Однако мы не считаем, что 乡ргоь всегда пригодна. Весьма возможно, что не имеет смысла использовать какую-либо вероятностную меру Р над ⑦, или если это имеет смысл, то может оказаться трудным найти Р. Действительно, эта последняя задача (исследовательская грамматика) представляет значительный практический интерес, но не будет здесь систематически обсуждаться.
Посмотрим на содержание этой статьи. Она разделена на четыре части. Первые две из них касаются чистых образов, а последние две — искаженных образов. Первые две части совершенно элементарны и дают лишь простую и естественную основу для частей III и IV.
Начиная со второго и третьего разделов, мы точным способом определяем, что именно понимаем под терминами «подпрограммы» и «конфигурации», и обсуждаем правила порождения алгебры изображений: множества объектов, которые мы можем наблюдать. Следует быть внимательным при различении способа порождения этих объектов и тех свойств объектов, которые доступны человеку, играющему роль наблюдателя. Это различие вынуждает нас сформулировать точные правила идентификации конфигураций: если две конфигурации не могут различаться наблюдателем, то мы их будем рассматривать как тождественные, если даже они порождаются разными способами. Это приводит нас к понятию изображения, объединяющего все наблюдаемые величины.
Попробуем разложить наблюдаемые изображения на составные части. Это дает параметризацию изображений, и мы ищем параметры, достаточные для этого, но в то же самое время по возможности простые. Может случиться, что эти параметры выбраны в качестве знаков конфигурации. Если это так, то мы можем быть удовлетворены, но в общем случае знаки сами ненаблюдаемы. Тогда необходимо искать другие представления изображения, и это будет изучаться в третьем разделе, в особенности тогда, когда представление может быть выражено в терминах подпрограмм конфигураций. Эта задача требует больше внимания, чем мы ей уделили.
Под образом будем понимать множество изображений, которое инвариантно при преобразованиях подобия. Чтобы пояснить это, выберем такие множества в качестве классов эквивалентности по модулю G. Тогда мы сможем выразить множество 俨 образов в виде 俨=J/G. Очень часто в данной работе будем предполагать, что образы введены именно таким способом. Однако читатель должен понять, что это специальный класс. Во всяком случае, в разд. 5 мы изучаем понятие образа и обсуж-
даем способ распознавания образа, к которому наблюдаемое изображение принадлежит.
До сих пор обсуждение было общим и довольно абстрактным. В части II изучим конкретные грамматики образов и в разд. 6 начнем рассмотрение некоторых практических случаев. Мы не намерены детально исследовать любой из них, а просто хотим дать читателю некоторое представление о типах моделей, которые могут потребоваться. В разд. 7——12 мы представляем ряд таких моделей, но, конечно, этот список далек от завершения.
Самый простой случай ——образы перестановок ——рассмотрен в разд. 7. Этот раздел служит в основном для ознакомления читателя с приложениями общих понятий из части I.
В разд. 8 получим более интересные структуры, модели для линейных образов. Видимо, как евклидовы, так и дифференциальные линейные образы представляют полезные и гибкие модели, и они должны быть построены в дальнейшем. В особенности следовало бы сознавать важность вырожденных точек образов для целей распознавания как в чистых, так и в искаженных образах.
Образы множеств, для которых граница изображения корректно описана посредством гибких грамматик, обсуждаются в разд. 9. Действительно, такие задачи лучше выражаются в терминах грамматик линейных образов, и нами выбран именно этот подход.
С помощью естественного обобщения линейных образов мы приходим к важному классу граничных образов (см. разд. 10). Здесь будем исходить из определения неких граничных условий, которые играют роль, ранее принадлежащую вырожденным точкам. В дополнение к этому следует указать, какая именно подпрограмма породила знак, связанный с данным граничным условием.
Еще более общим понятием является понятие контрастного образа, которое включает в себя все ранее рассмотренные случаи. Видимо, оно является естественной моделью лишь тогда, когда его базисные элементы, фон и контраст являются достаточно простыми. Это составляет содержание разд. 11.
Наконец, в разд. 12 мы исследуем некоторые некоммутативные алгебры, формирующие временные образы. Этим завершается наше рассмотрение чистых изображений и образов.
Таким путем можно получить естественную и интересную модель чистых образов. Хотя она, безусловно, далека от полноты, ее основная схема является ясной и простой. Когда мы обращаемся к искаженным образам, которые действительно важны с практической точки зрения, встречаются различные трудности. В то же самое время мы сталкиваемся с рядом
интересных задач, которые представляют интерес как для создателя моделей, так и для специалиста по анализу образов.
В части III мы опишем некоторые модели искажений и покажем, каким образом эти модели могут привести к разумным алгоритмам распознавания. Но сначала нужно сформулировать идею о способе построения таких грамматик искажений, и это обсуждается в общих чертах в разд. 13. Там же рассматриваются желательные свойства функций распознавания, например инвариантности различных типов.
Когда задается функция расстояния в алгебре изображений ?&, можно изучить распознавание по минимуму расстояния. Особый интерес представляет случай, в котором функция расстояния инвариантна, поскольку тогда наше отображение непосредственно приводит обратно скорее к чистым образам, чем обходным путем к чистому изображению. Иногда расстояние можно ввести убедительным способом через функцию усилия на 勿.Она описывает способ соответствия между различными искажениями и требуемой мощностью, энергией и т. д.
В разд. 15 мы достигаем ядра теории, а именно грамматик вероятностных искажений. Теперь все зависит от вида априорной информации, которой мы располагаем, о частоте появления различных грамматических объектов. Если нам известны частоты и чистых изображений, и различных возможных искажений, то по крайней мере в принципе все просто (соответствующие вычисления могут оказаться громоздкими). К сожалению, первое из этих распределений может быть не известно; быть может даже не имеет смысла говорить о нем. Вместо этого мы можем знать лишь распределение чистых образов и в таком случае проявить некоторую осторожность при формулировке задачи оптимального распознавания.
Как только эта задача будет полностью понята, можно продвинуться дальше в изучении частных случаев, что и делается в части IV. Сделать это на абстрактном уровне не очень выгодно, хотя несколько общих принципов и выдвигается в разд. 16. Они не приведут к полностью определенным грамматикам вероятностных искажений, а послужат лишь ориентиром при выборе формы модели.
Это иллюстрируется на примере образов перестановок в разд. 17, где показано, каким именно образом некоторые разумные схемы распознавания для такой 纟ргоь могут быть также рассмотрены как схемы, исходящие от 乡met с критерием распознавания по минимуму расстояния. Это сведение осуществлено также в некоторых последующих разделах. Теперь грамматики станут более сложными.
Для приведения распознавания как можно к более гибкому виду будем искать простые параметры, которые могут описать
искаженные образы лишь частично, но содержат всю необходимую информацию для процесса распознавания. Это будет сделано в разд. 19 для некоторых грамматик вероятностных искажений, как для евклидовых, так и дифференциальных линейных образов. В связи с этим также будем иметь дело с некоторыми образами множеств и граничными образами, в основном со случаем, когда знаки заданы как выпуклые множества и природа алгебры изображений 彳且 сильно отличается от ? и не содержит 夕
В известном смысле контрастные образы являются наиболее общими срепн тех образов, которые мы изучаем. Поэтому кажется разумным уделить особое внимание их грамматикам искажений. Несколько таких грамматик исследуется в разд. 19 для случая, когда как исходное пространство, так и контрастное пространство подвержены искажениям. Мы найдем некоторые замечательно простые сведения к методу распознавания по максимуму корреляции и т. д.
Единственная некоммутативная алгебра изображений, которую мы исследовали,——это алгебра временных образов. В разд. 20 предлагаются и анализируются немногочисленные грамматики вероятностных искажений для временных образов. Один из таких способов заключается в использовании понятия субъективного времени. Другой способ допускает, что машина, создающая подпрограммы, является несовершенной', она производит искажения способом, видимо представляющим значительный интерес.
Многие грамматики искажений, предложенные в части IV, могли бы помочь читателю увидеть возможности данного подхода к анализу образов. Также ясне, что это лишь начало, и нам, вероятно, нужны грамматики, которые хорошо справляются с более сложными задачами, чем эти, для того чтобы взяться за успешное решение действительно трудных задач распознавания образов. Сужение этих грамматик до групп преобразований подобия является жестким условием. Автор работает над более общими грамматиками, в которых указанное ограничение снято; эта работа будет излагаться в отдельной публикации [3]. Некоторые другие параллельные исследования находятся в стадии развития. Одна работа, выполняемая совместно с В. Фрайбергером, касается реализации на ЭВМ некоторых грамматик вероятностных искажений. После порождения изображения могут быть показаны на электронно-лучевой трубке вычислительной машины IBM 2250 (см. [1]).
Более общее рассмотрение (не предполагающее групп подобия) будет проведено в работе [4], в которой будут обсуждаться последовательности конкретных образов, встречающихся в приложениях. .
L ЧИСТЫЕ ОБРАЗЫ
Знаки и конфигурации
Исходные элементы, из которых формируются образы, назьь ваются знаками. Одиночный знак из множества всех знаков S, которые мы рассматриваем, обычно обозначается через s; он довольно произволен по своему характеру. Это и другие вводимые понятия будут иллюстрироваться в части 11; здесь же будем рассматривать их абстрактно и лишь потребуем, чтобы они удовлетворяли некоторым общим и нежестким условиям. Будем считать, что знаки вырабатываются машиной некоторого вида. Управляя рычагами настройки машины, мы получаем на ее выходе различные знаки, которые нужны для порождения наших образов.
При практическом изучении образов знаки обычно априорно не задаются, и при их выборе мы можем значительно отклониться от намеченного пути. Чтобы избежать этого, будем пользоваться следующими критериями:
знаки должны быть как можно более простыми в некотором смысле;
число знаков должно быть невелико;
последующий анализ должен быть простым;
знаки должны иметь непосредственную интерпретацию в содержательных терминах.
Поскольку эти и другие родственные им разумные критерии могут вступать в противоречие между собой, весьма вероятно, что они не приведут нас к однозначно определенному множеству знаков. Тогда выбор становится вопросом удобства и желаемой степени приближения.
Вид знака, вырабатываемого нашей машиной, будет зависеть от программы, в нее заложенной. Пусть в нашем распоряжении имеются определенные подпрограммы, обозначенные через о, где о выбрано из некоторого множества S. Произвольный знак swS будет порождаться одной и только одной подпрограммой
Sf o(s)w£・(2.1)
С другой стороны, мы не предполагаем, что знание o(s) определяет s. Напротив, программа данного знака обычно содержит лишь необработанную, легко различимую информацию о знаке. Множество знаков, относящихся к подпрограмме о, будем обозначать через S。. Иногда удобно допускать существование пустого знака (или нуль-знака), обозначаемого через 0.
Что мы делаем с нашими знаками? Прежде всего мы можем взять знак, изменить его некоторым способом и показать его
в новом виде. Другими словами, мы владеем преобразованиями знаков в знаки и предполагаем, что они определены на всем S. На самом деле это имеет место не всегда: в более общей модели мы могли бы потребовать, чтобы каждое наше преобразование было определено в некоторой подпрограмме или чтобы они были отображениями вида
SjXS/X ... XS%-S,. (2.2)
Однако для наших целей достаточно предположить, что преобразование, которое мы назовем преобразованием подобия, определено на всем S.
Преобразования подобия образуют группу по обычной композиции преобразований. Опять-таки это допущение слишком жестко для общей теории образов, но оно упростит многое из последующего и приведет к основным и элементарным понятиям; в то же самое время эта модель является достаточно широкой, чтобы охватить большое число конкретных случаев.
Наконец, потребуем, чтобы подпрограммы SG имели определенную устойчивость в том смысле, что они были бы инвариантны относительно преобразований подобия. Обозначая преобразование подобия через g, где g — элемент группы G, мы должны иметь
gs е S。,если s е Sa. (2.3)
Для пустого знака 0 будем считать, что g0 = 0, Vg w G. Резюмируем все сказанное выше.
Постулат 2.1 (о знаках). Множество знаков S разбивается на подмножества Sa, где о w W суть подпрограммы, так что различные подпрограммы не содержат общих знаков, кроме пустого знака 0. Множество преобразований подобия G образует группу, и подпрограммы инвариантны относительно G. Любой элемент g w G определен на S; g0 = 0, Vg 三 О.
Два знака Si и s? называются подобными, если существует преобразование подобия g ^ G, такое, что Si = gs?; это записывается в виде si = S2(modG). Читателю теперь станет понятно, почему было удобно предполагать, что G является группой; при этом предположении отношение подобия а) рефлексивно: s 三 s(modG); б) симметрично: S\ ^ s2(mod G)—> TS2 三 S2(modG) и в) транзитивно: s】 三 S2(mod G)и s2 ^ 三 S3 (mod G)-> Si 三 s3 (mod G). Это означает, что мы имеем отношение эквивалентности, так что S разбивается на непере- секающиеся классы эквивалентности. Из каждого класса эквивалентности выберем представителя ——эталон. Пока не будем выяснять, каким способом это можно сделать, однако допустим, что в любом случае имеем дело с некоторым видом метода
стандартизации, который уже построен. Как только это сделано, приходим к однозначному анализу любого заданного непустого знака s —(f, g), где f ——эталон и s = gt.
На следующем этапе построения нашей модели в качестве исходного возьмем множество всех конечных упорядоченных последовательностей знаков: c = (si, S2,.・.,s〃), s】,s2, ...,s〃三 S. Мы рассматриваем лишь конечные последовательности, потому что просто хотим избежать топологических сложностей. Этот подход пока никак нельзя назвать финитным. Напротив, он, видимо, окажется удобным для расширения модели на случай бесконечных последовательностей знаков.
Машина, вырабатывающая знаки, способна выдавать лишь определенные последовательности с, или, если взглянуть на это по-другому, лишь некоторые последовательности могут оказаться для нас осмысленными. Чтобы ответить на вопрос, какие именно последовательности могли бы считаться осмысленными, мы должны обратиться к определенному множеству правил 现. Последовательности, допускаемые 现,будут называться грамматическими конфигурациями^ все они образуют множество, обозначаемое через С. Некоторые умеренные требования на 死 доставляет
Постулат 2.2 (о конфигурациях). Множество С, определяемое правилами 现,должно обладать следующими свойствами'.
если с = ®, S2,・・•,s九)三& то gc = (gsb gs2, ..., gsJeC для каждого g w G;
если (si, s2, ..., s〃)巨 С, to ($& $a+i,$b)wC 九0〃 1 ^ a < p < n;
(0)wC
Конечно, может случиться, что 现 вовсе не ограничивает С и все конечные последовательности знаков из S считаются осмысленными. Тогда мы говорим о свободных конфигурациях. В этой статье большей частью рассматриваются свободные конфигурации, но читателю следует иметь в виду, что иногда для получения интересных структур мы будем накладывать дополнительные ограйичения.
Если c = (si, $2, . • •, $m, Sm+i, ..., sn) s С, то будем использовать запись с = s + б, где &=(&,…,sm)^ C,方= =(Sm+1, Sm+2, …,s〃)w С. Также будем писать с + 0 = 0 + с для любой конфигурации с 三 С.
Здесь знаки играют роль атомов; они не имеют внутренней структуры. Иногда, однако, можно формировать наши знаки из более элементарных знаков. Тогда имеется иерархическое упорядочение знаков. Читатель при желании может считать, что знаки соответствуют словам естественного языка, исходя из
которых на различных уровнях логической сложности можно образовать синтаксические понятия. Тогда подпрограммы можно рассматривать в качестве существительных, глаголов, прилагательных и т.工 Эта лингвистическая параллель в данной работе использоваться не будет и упоминается лишь как потенциально возможная.
Изображения
На третьем этапе построения нашей грамматики введем наблюдателя. Когда он сталкивается с конфигурациями из С, он не всегда способен отличить различные конфигурации. Две конфигурации c = ($i, s2, …,sj и с'= (s; s; …,s;) могут иметь для него одинаковый смысл, хотя они различны как упорядоченные последовательности знаков. Он идентифицирует их, и мы запишем это так: cRc'. Предполагается, что отношение R удовлетворяет следующему постулату.
Постулат 3.1 (об изображениях). Отношение идентификации R должно быть таким, что
если cRc\ то gcRgc' для любого g w G;
если c = q + c2, d = c; + c; где все с; принадлежат С, и gRc;, / = 1, 2, то cRc';
R должно быть отношением эквивалентности}
если ни одна подпрограмма для с не равна никакой подпрограмме для с', то либо не выполняется cRc', либо с = cf = 0.
Мотивы, побудившие нас выбрать именно эти три постулата, прояснятся после изучения некоторых специальных случаев в части II.
Теорем а 3.1. Рассмотрим множество С свободных конфигураций и множество 5r всех классов эквивалентности /, порожденных отношением идентификации R. Над 夕 можно определить унарную операцию gl и бинарную операцию 厶 + 厶, такие, что
i) / образует полугруппу с единицей по бинарной операции; ii) выполняется закон дистрибутивности g (/【+ /2) = §h + g,2; iii) выполняется закон ассоциативности gi (g?,) = (gig2)/・
Классы / будем называть изображениями.
Доказательство. В силу условия (iii) постулата 3.1 классы / корректно определены, не пересекаются и накрывают все множество С. Если c = (si,夾,...,s〃)三/, то определим gl как изображение, содержащее конфигурацию gc = (gsi, gs?,... .,.,gs〃). Это определение однозначно в силу условия (i) по-
стулата. Если с】w /1 и С2 w /2, то определим /1 + /2 как изображение, содержащее конфигурацию с】+ с2. По условию (ii) постулата это определение также корректно. Поскольку композиция конфигураций ассоциативна, то же самое справедливо для изображений. Следовательно, / образуют полугруппу. Изображение £, содержащее конфигурацию (0), является единичным элементом полугруппы. Дистрибутивный и ассоциативный законы (ii) и (iii) вытекают из того факта, что они справедливы для конфигураций.
После идентификации С переходит в грамматику изображений 3 {алгебру изображений). Математические свойства «7 имеют некоторое сходство со свойствами векторного пространства и еще большее сходство ——с модулем. Однако заметим, что G не обязательно образует поле или кольцо.
Обратимся на время к важному случаю, когда грамматика изображений 3 коммутативна, так что 八 + 厶=/2 + 八・ Рассмотрим множество С。всех свободных конфигураций со знаками из подпрограмм о. После идентификации оно переходит в подмножество /а множества /. Так как Са — подполугруппа, то же самое верно для /а. Для конфигурации s = (s】,S2,..., s〃) w С мы можем образовать конфигурацию с' = (5%, s%, •••, sQ, состоящую из тех знаков s%, s%,・・・,s^炉 которые принадлежат подпрограмме о. Соответствующее изображение Ду (с) входит в /а и / = /“ (с) +/5(с) + ・・・, где композиция берется по всем возможным подпрограммам ai, а2,….Конечно, многие /о (с) могут быть равными Е. В этом случае исходное изображение представляется в виде композиции составляющих его подпрограмм, хотя следует отметить, что это представление не всегда однозначно, так как оно зависит от исходных си/. Мы вернемся к подобным представлениям в разд. 4.
Может случиться, что. конфигурация с = (s】, ...,s〃) идентифицирована с некоторой fz == (Sp ..., sj) с меньшим числом знаков, m <, п: с упрощается до вида с'. Как будет видно из дальнейшего, в этом нет ничего необычного. Рассмотрим свободную коммутативную алгебру изображений / и две конфигурации с и с', такие, что каждая из них упрощается до единственного знака и множество знаков, общих для с и с', также приводится к некоторому одному знаку; допустим, что при этом конфигурация, состоящая из всех знаков, встречающихся в с или в с', приводится к некоторому знаку. Если это имеет место, то будем говорить, что знаки в S стягиваемы. Тогда можно повторять этот процесс до тех пор, пока не придем к конфигурации, не приводимой к еще более простому виду. Однако, применяя процедуру упрощения различными способами, можно получать разные конечные результаты.
Завершим этот раздел рассмотрением порождения множеств изображений по аналогии с векторными пространствами. Пусть Н ——подмножество множества «7; введем множество HG, состоящее из всех изображений вида
§1Л + ^2 + …+ gJn,(3.1)
где п ——произвольное целое положительное число, gk w G, 1卜三 Н,々=1, 2, ..., n. Изображения из HG принадлежат линейной оболочке элементов из Н. В частности, нас могут интересовать множества I0 = S^ натягиваемые при помощи всех знаков из определенной подпрограммы о.
Определение 3.1. Под размерностью Dim(3) множества «7 будем понимать наименьшее целое число п, такое, что существуют /1, /2,.…,/% для которых «7 = {/1, Л, АЛ67. Если такого п не существует, то будем считать, что размерность 夕 бесконечна. Множество {/i, /2,〃} называется базисом %
Если множество S можно анализировать, используя конечное число эталонов, то «7 имеет конечную размерность. Обратное не обязательно имеет место, однако, если оно не выполняется, то знаки выбраны неэкономным способом.
Определение 3.2. Изображения 厶,厶,・・•, In называются независимыми, если ни для одного т,從 V 〃, не существует множества Н = {/[, /;,・・・, /;},такого, что {厶,厶,.・•, /九} = HG. Множество {/i,厶,.•・,/«} называется минимальным, если оно не имеет ни одного собственного подмножества К со свойством № =仏,厶,• • •,/〃}•
Базис всегда состоит из независимых изображений.
Теорема 3.2. Если для ненулевых изображений выполняется включение Zv и 夕的,v — 1, 2, ..,, п, где все о、суть различные подпрограммы, то множество {/i, /2,・•・,М всегда минимально.
Доказательство. Пусть {儿 /;,・・・,厶},從 V 〃, — подмножество множества {/i, /2,・••, /〃}, такое, что
/i = gM; + gM;+ •・・ +gi;Zn, (3.2)
,=8九J:+g九2/:+ •・・+ Snm1^
Представим /v и /; конфигурациями cv и с[. Тогда приведенные выше равенства выполняются при замене этих изображений конфигурациями и знака равенства отношением R* Из
(jv), постулата 3.1 следует, что по крайней мере одно из /1, /2,・・・,/J должно быть в /б, по крайней мере одно из них — в /д2 и т. д. Но это невозможно при m < п, так что /м должны образовывать минимальное множество. |
Распространяя определение подобия знаков на изображения, мы скажем, что два изображения 1[ и /2 подобны, если существует преобразование подобия g w G, такое, что /1 = gl&
Представление изображений
Характерной чертой определения изображения является то обстоятельство, что отображение идентификации С —► / не обязательно имеет и обычно не имеет однозначного обратного отображения. Поэтому следует искать по возможности простой и компактный способ среди способов анализа изображений в терминах определенных конфигураций. Для такого вида морфологии изображений нам понадобится понятие простоты конфигурации.
Предположим на время, что элементы множества С частично упорядочены отношением 《V》так, что для любой пары конфигурации с н с' из одного и того же изображения мы имеем либо с < с', либо с' V с, либо же оба соотношения. Сопоставлять конфигурации из двух различных изображений мы не умеем. Отметим еще следующее свойство структур: в любом множестве К конфигураций одного изображения существует по крайней мере один элемент с。三 К, такой, что Q V с для всех элементов с w К; с。называется наипростейшим среди конфигураций изображения. Для наглядности читатель может полагать, что упорядочение, введенное как с V с', означает, что число знаков в с не превосходит числа знаков в с'. Вообще же говоря, имеется аддитивная сложность: сложность элемента с равна сумме сложностей его знаков.
Исходя из любого изображения / w 夕,/ и С, можно выбрать конфигурацию С/, наипростейшую среди конфигураций одного и того же изображения. Этим определяется отображение |л: С f С,卩(с) = с/, где с w /, со свойствами:
|л является отображением, сохраняющим изображение в том смысле, что из 卩(с)=卩(с‘) следует 卩(gc)=模(gc‘),а из H(^z) = H(^f)5 i=l,2, вытекает
N + &)=模(c; + 硝.(4.1)
|Л идемпотентно: H(H(^))= H(^)« (iii)模 монотонно: |л(с) < с.
(iv) |Л частично сохраняет подпрограммы: |i(c) V с имеет ' по крайней мере одну подпрограмму, общую с с.
Действительно, если |i(c)=|i(c'), то с и с' принадлежат общему изображению /, так что для любого g w G конфигурации gc и gcf принадлежат g/ и 卩(gc)=卩(gc')= q;.
Аналогично, если 卩(с()=卩(c;j, / = 1, 2, то Ci +(?2 принадлежит общему изображению /】+,2, так же как и с; + с] так что ц (q + с?)=模(《+ с;) = с八 + % Этим доказывается свойство (i). То, что отображение 卩 идемпотентно и монотонно, является очевидным. Свойство (iv) имеет место, потому что cRn(c) всегда выполняется в силу постулата 3.1 (i,v) и из него вытекает, что с и |л(с) имеют по крайней мере одну общую подпрограмму. Доказательство (4.1) завершено.
С другой стороны, пусть мы исходим из С (до проведения идентификации) и имеем оператор упрощения 卩 со свойствами:
[I — отображение С -> С, сохраняющее изображение,
|Л идемпотентно: |л(р,(г?)) = М»(^).(4.2)
(iii)卩 частично сохраняет программы.
Затем определяем отношение идентификации R посредством
cRc' тогда и только тогда, когда |л(с) = |л(с')・(4.3)
Тогда условия (i) и (ii) постулата 3.1 следуют из свойства сохранения изображения и условие (iii) очевидно. Условие (iv) этого постулата следует из условия (iii), приведенного выше. Итак, изображение всегда должно иметь вид
/ = {с| |л(с) = 〃},(4.4)
но, поскольку р идемпотентно, мы имеем 卩(а)=卩[卩(с)]= = N(c)=a, так что aw/. Определяя отношение частичного порядка V условием 《если ^(с7) = с, то с V с'》,пол);чаем, что о = S является наипростейшей среди конфигураций в /, так что мы приходим, по существу, к той же ситуации, которую имели, отправляясь от частичного порядка. Поэтому можно исходить либо из изображений и понятия подобия, либо же из конфигураций и операции упрощения и использовать ее для идентификации изображений. Сформулируем сказанное в виде теоремы.
Теорема 4.1. Частичный порядок над множеством С конфигураций^ по которому любые с и с' сравнимы, если они принадлежат общему изображению, приводит к отображению С в С, которое сохраняет изображения, идемпотентно, монотонно и частично сохраняет подпрограммы. Обратно, если оператор упрощения 卩 является отображением С в С, сохраняющим изображение, идемпотентным и частично сохраняющим подпро-
граммы, то оно приводит к идентификации изображений', с 〃 с' подобны, если они приводятся к одной и той же конфигурации.
В более общем виде это равносильно утверждению, что существование определенных типов стандартных представлений тесно связано с видом правила идентификации, применяемого к С для получения изображений. Рассмотрим в качестве примера случай, когда знаки стягиваемы (см. разд. 3). Тогда мы имеем правило упрощения (хотя оно может быть многозначным), заключающееся в стягивании знаков, насколько это возможно, поэтому естественно идентифицировать две конфигурации с и с' тогда, когда они могут быть приведены к одной и той же конфигурации. То, что мы в дальнейшем делаем, можно было бы назвать идентификацией посредством максимально связанных компонент конфигураций. Более подробно обсудим это позднее.
Иногда мы будем идентифицировать конфигурации, рассматривая их подпрограммы с。: идентификация посредством подпрограмм.
Теорема 4.2. Пусть С ——свободное коммутативное множество и существуют правила идентификации Ro (удовлетворяющие 6 С。условиям (i), (ii), (iii) постулата 3.1) в Са для каждой подпрограммы о. Определим R так: cRc', если с® с; для каждой о. Тогда алгебра изображений «7 является прямым произведением 夕=+ 彳仇 + ... и изображения подпрограмм /о (с) однозначно определены. Обратно, заданные правила R “ ?=夕6 + 彳02 + • • •, представленные в терминах однозначно определенных изображений подпрограмм, приводят к идентификации посредством изображений подпрограмм.
Доказательство. Если R задано как выше, то cRc' означает, что CgRqCs VowE. Но для любого gwG тогда имеем gcRgc], Va, из чего следует gcRgc', а это совпадает с п. (i) постулата 3.1. Таким же образом можно доказать (ii) и (iii). Наконец, (iv) есть прямое следствие способа задания R, так что R определяет алгебру изображений О. Если выполняется cRc', то отсюда следует cGRa^, т. е. /° (с)= IG{cf): изображения подпрограмм однозначно определены, поэтому мы имеем единственное представление / = /“, /伪,...,и ?——прямое произведение этих /а. Чтобы доказать обратное, заметим, что cRc' означает fa (с) = /о(^) для каждого а, которое можно взять в качестве определения R。; это и доказывает утверждение. |
Следующая теорема представляет собой частный случай предыдущей теоремы. ■
6 Зак, 172' .
Теорема 4.3. Пусть <7 ——свободная коммутативная алгебра изображений, образующая группу и имеющая ?。в качестве подгрупп по композиции изображений. Тогда изображения подпрограмм определены однозначно.
Доказательство. Рассмотрим две подобные конфигурации с и с'. Выразим их через идентифицированные конфигурации.
С‘ = q,嗑…),
где некоторые компоненты могут оказаться пустыми. Пусть 三 /р с〔 w /; и т. д. Тогда
/。1 I /02 I . === /5 I /02 , I ,
и, используя операцию 《——》,обратную к групповой операции 《+》,получим
/б —,5 = /°2 — Ль + • • • •(4.6)
Левая часть принадлежит 夕“,а правая ——множеству изображений, натянутых с помощью /伪,/尋,.•… Пусть cL w CG1 и crwe。? + Со, + •…——конфигурации из левой и правой частей (4.6). Они идентифицируются, но, согласно постулату 3.1 (iv), должны быть пустыми, так что /5 = % и т. д., что и доказывает утверждение. |
Чтобы количество обрабатываемых данных не превысило разумных пределов, важно эффективно параметризовать изображения, удачно выбирая их представление посредством конфигураций. Пока мы рассматриваем лишь чистые алгебры изображений, эта необходимость не столь насущна, однако при переходе к грамматикам искажений этот аспект анализа нельзя игнорировать.
Образы
Пока что мы имеем грубое, но довольно общее представление о том, как должна выглядеть наша модель. Блоками, из которых строится изображение, являются знаки, порождаемые некоторой машиной. Конкретная последовательность, выдаваемая машиной,——конфигурация ——может оказаться не точно идентифицированной наблюдателем. Следует подчеркнуть, что это может объясняться не искажениями, вызванными шумом или чем-то подобным (такие искажения будут рассматриваться в частях III и IV), а способом, с помощью которого субъект полу-
чает и организует свои наблюдения. Математическая формулировка этого факта приводит нас к понятию изображения.
Различные изображения, конечно, всегда отличаются друг от друга. С другой стороны,厶 и 厶 могут иметь один и тот же «смысл», хотя /1 =/= /2. Это означает, что мы в состоянии понять «смысл» изображения, не зная его во всех подробностях: существуют определенные характерные черты изображения, которые дают о нем достаточно сведений. Эти черты можно интерпретировать как различные подпрограммы, которые составляют изображение, или соответствовать различным g, которые использовались для получения компонент-знаков по их эталонам. Дадим следующее определение.
Определение 5.1. Под образами мы понимаем семейство & непересекающихся и G-инвариантных подмножеств 乡1, %, …,州,...алгебры изображений %
Очевидно, что 0、следует считать непересекающимися. Но почему же мы не предполагаем, что они вместе покрывают всю алгебру «7? Существует весьма убедительное обоснование этого. Почти ни в одной житейской ситуации человек не сталкивается с такими (чистыми) изображениями. Напротив, встречающиеся изображения искажены и то, что он воспринимает, оказывается искаженной версией чистого изображения. Для обеспечения распознавания образов вводится избыточность и из интуитивных соображений кажется правдоподобным, что распознавать легче, если подмножества 夕~ хорошо отделяются друг от друга в «7 и не покрывают всю алгебру изображений. Причина, по которой мы хотим, чтобы 0、были G-инвариантными, состоит в том, что два изображения 厶 и /2 могут рассматриваться как наделенные одинаковым смыслом, если существует g 三 G, такой, что 厶= —gA, или, по введенной уже терминологии, если они подобны.
Задача распознавания чистых образов. Найти отображение (или распознающую функцию)卩 множества Зв” классифицирующее изображение в соответствии с тем, какому образу оно принадлежит {если оно какому-либо образу принадлежит} .
Простейшим является случай, когда для образа 夕、мы находим одно изображение /v ——прототип, такой, что glv пробегает все элементы 夕、один и только один раз, когда g пробегает О. Тогда классификация состоит просто в однозначном решении / = glv. В этом частном, но важном случае мы, разумеется, записываем 夕=«7/G и откладываем его изучение на дальнейшее.
В более общем случае могут быть заданы множество Т преобразований /, отображающих 夕 само в себя, и множество прототипов /v, таких, что TIV =乡”.Конечно, Т может содержать
преобразования подобия G, но не обязательно оно само является группой. Изображения, принадлежащие одному и тому же 乡丫, будут называться синонимами. В частности, если 0 = «7/G, то это понятие сводится к подобию.
Эта задача распознавания в принципе кажется простой, однако она, несомненно, заслуживает внимания в конкретной ситуации, когда становится вопросом организации выполняемых вычислений. Иногда это делается рассмотрением проб — функций 厶 определенных в /, таких, что f(厶)= f(/2), если 八 и /2 —— синонимы (т. е. они принадлежат общему образу). Можно сказать, что проба выбирает одну из многих характерных черт. Множество проб 尸={/} называется полным, если оно разделяет образы: f(Ii)= f(^2), V/ ^ F должно означать,что /1 и /2 — синонимы.
Наконец, читателю следует обратить внимание на такую задачу, которую мы упоминаем здесь лишь мимоходом.
Задача сегментации. Представить любое заданное изображение / 6 виде (vi, V2, •••), если / можно выразить как / =八 +,2 + . • •, а°е /1 三 ,2 w 夕打• •..
Эта задача возникает главным образом тогда, когда последующий анализ имеет некоторую разумную степень однозначности. В качестве примера сошлемся на азбуку Морзе (см. разд. 12) и на коды без запятой. '
К настоящему моменту мы получили множество
乡=(S, ?,G,0), (6.1)
которое будем называть (чистой) грамматикой образов. Обратимся теперь к построению таких грамматик в частных случаях, имея в виду, что модель раскроет полностью свои возможности лишь в части III, где можно будет допускать искажения.
II. ГРАММАТИКИ ОБРАЗОВ
Таксономия изображений и образов
До сих пор обсуждение носило довольно общий характер, за исключением определенных ограничений на вид грамматики, упомянутой выше, и мы в основном занимались построением модели общего назначения для анализа образов. Рассмотрение было вполне элементарным, но до некоторой степени абстрактным, так что уделялось мало внимания интуитивным соображениям, приведшим к этой модели. Последнее обстоятельство будет намного лучше понято, когда в этой части мы изучим ряд специальных образов, подробное исследование которых продолжено в работе Гренандера [4].
Мы будем пытаться классифицировать образы по семействам родственных типов в соответствии с их логической структурой, которую они выражают в терминах нашей модели. Можно было бы также сгруппировать их в соответствии с их субъективной содержательной интерпретацией, но здесь мы не будем заниматься этим. Тем не менее бегло ознакомимся с некоторыми естественно встречающимися образами, чтобы лучше понимать соображения, лежащие в основе этого подхода.
Сначала обсудим образы во времени, обычным примером которых является код Морзе. Эти знаки состоят из точек, тире и промежутков различной длины внутри букв, между буквами и между словами. Изображения формируются просто с помощью сцепления, так что порядок между последовательными знаками существен: эта алгебра изображений некоммутативна. Заметим, что для нас не важны ни расположение начала координат на временной оси, ни масштаб времени. Единственное, что существенно,—это то, что соотношения между длинами различных знаков принимают значения, предписанные правилами азбуки Морзе. Затем преобразования подобия с помощью изменения временного параметра задаются отношениями вида t f at + Ь, где а > 0.
В качестве другого иллюстративного примера рассмотрим электрокардиограмму с ее типичной последовательностью максимумов и минимумов, обозначенных через Р, Q, R п т. д. Естественно попытаться описать ЭКГ, используя сцепление знаков, где каждый знак порождается определенной подпрограммой. Вместо этого предпринимались попытки выразить наблюдаемую временную функцию в виде линейной комбинации определенных функций, ортогональных друг другу на интервале, представляющем один цикл или период ЭКГ. Но этот подход имеет ряд недостатков. Во-первых, не так-то легко определить период, и он может значительно колебаться, а это затрудняет подобного рода анализ. Во-вторых, что более важно, кажется разумным, что, разбивая временную функцию на последовательные знаки (вместо линейной комбинации по ортогональным компонентам), можно было бы получить более существенную характеристику изучаемого физиологического явления. Какую часть в последнем анализе это составляет и что является самой компактной и экономичной формулировкой грамматики для изучаемого явления —это вопрос, на который можно ответить только с помощью эмпирических данных. С другой стороны, для энцефалограммы линейное представление рядом Фурье, видимо, работает довольно хорошо, и у нас меньше оснований для того, чтобы попытаться анализировать ее с помощью последовательных знаков.
Отпечатки пальцев можно идеализировать как линейные образы: в этом случае знаками служат кривые, если игнориро-
вать ширину и пористую структуру бороздок, оставляющих след. Теперь изображения получаются простой суперпозицией.. Отпечатки пальцев полезны как средства идентификации благодаря давно известному факту о существовании определенных геометрических инвариантов. Расстояние между двумя различимыми точками отпечатка конкретного человека может сильно меняться в зависимости от его возраста и положения пальца относительно регистрирующей поверхности. Это изменение не обязательно будет равномерным, так что преобразования подобия могут состоять не только из переносов, вращений и однородных растяжений, но и из более общих топологических отображений плоскости на себя. То же самое справедливо относительно печатных или рукописных буквенно-цифровых символов, по крайней мере тогда, когда мы пытаемся работать с одним конкретным шрифтом, а не с семейством алфавитов.
Однако, если мы будем учитывать ширину борозд отпечатков пальцев, можно больше не рассматривать изображение как комбинацию криволинейных отрезков. В этом случае будем считать, что знаки состоят из других подмножеств плоскости, и будем говорить об образах множеств. Это также происходит при изучении рубленых букв, у которых больше плотных участков, чем тонких линий. Как линейным образам, так и образам множеств будет уделено достаточное внимание.
Если информация распределена по плоскости более непрерывно, то лучше использовать другие алгебры изображений. Можно локально измерить интенсивность черного цвета от участка к участку плоскости. Знаки окажутся функциями, определенными в плоскости, комбинация которых путем сложения и дает изображение. Значениями этих функций служат действительные числа или, в случае цветных картин, векторы. Трехцветный отпечаток можно анализировать с помощью трехмерных знаков. Возможны и такие значения, которые объединяются не как векторы, а с помощью более общей полугрупповой операции. Эта ситуация математически описывается посредством понятия контрастных образов с достаточной степенью общности (см. разд. 11).
Можно упомянуть и многие другие типы естественных образов, например в связи с восприятием человека, но изложенного достаточно для того, чтобы дать читателю некоторое представление о том, что легло в основу некоторых введенных ниже построений.
Оставляя в стороне практическую подоплеку, можно поставить вопрос: что составляет логическую структуру конкретной системы, предназначенной для анализа образов? Она состоит из трех объектов: материала, восприятия и интерпретации. Материалом для построения изображений служат знаки и преобра-
зования подобия. Восприятие, приводящее нас к тому, что некоторые различные конфигурации рассматриваются как неразличимые объекты, задается с помощью правил идентификации R. Интерпретация изображений выражается посредством семейства 乡 возможных образов. Теперь двинемся дальше и определим эти три понятия разными способами..
В основу алгоритмов распознавания положен грамматический анализ изображения.
Образы перестановок
Начнем с простейшего случая, когда знаки суть векторы из Rn и изображения получаются как результат сложения векторов, так что две конфигурации с =⑶,s2, …,s九) и d = («р s;,・・・,sj), где sp s2, • •・,s[,.・・,s;巨 R* идентифицируются, если
S1 + S2+ …+s〃 = s; + s;+ …+ sj. (7.1)
Это означает, что в качестве изображения / можно рассматривать вектор / = (%ь ...,%〃) из R" и его можно представлять в виде суммы знаков.
Пусть преобразования подобия g являются циклическими преобразованиями
g/ ^2 g (%1, %2, %九)==(%1+g, %2+g, %/i+g), (7・2) где один и тот же символ g используется как для обозначения элемента группы, так и для обозначения величины циклического сдвига перемещения. Конечно, индексы при всех % берутся по модулю п.
Будем говорить, что образы определены по условию принадлежности / и 〃 общему образу, если существует g ^ G, такой, что Г = gl. Распознавание можно провести обычным сравнением заданного / = (хь 羯 …,&г) с прототипом Г = = (%;,%,,...,%:) из произвольного образа 乡左.Исходя из хь рассмотрим множество 7 = {0, 1, 2, ..., п—1} таких g, для которых %] = %;+g. Для любого g ^ Т проверяем, выполняется ли xv = x^+g1 Vv. Если не выполняется, то / не принадлежит образу Л. Этот алгоритм совершенно прозрачен, однако возникает вопрос: как поступать, если невозможно распознавать образы посредством выбора прототипных изображений в определенной стандартной форме? Пусть, скажем, max xv достигается
V
при единственном значении v = v(x). В этом случае используем в качестве прототипа (для образа, которому принадлежит /) образ Г = (%v, Xv+i, ..., Xv+n-i). Тогда мы сразу же оказались
бы в состоянии распознавать образы, переставляя изображения так, чтобы они начинались с наибольшей компоненты. Однако этот подход неприменим, если указанный максимум достигается при двух (или больших) различных значениях v и ц. Но тогда можно выбрать xv в качестве. первой координаты прототипа, если Xv+i > 尤以+1 и т. д. Если xv+i =尤以+卜 то продвинемся еще на один шаг. Если все «последователи» xv и хц совпадут между собой, отсюда следует, что (%”,xv+i, ..., xv+n-i) = (xu, %以+卜...), так что в любом случае эта процедура приведет нас к определенному прототипу для каждого образа.
Следуя терминологии разд. 5, можно сказать, что наша схема распознавания основана на проверке условий (проб)
pi = max xv,V
p2 = max хц+ь если 夕尸打,p2 = max хц+ь если 夕尸打,(7.3)(7.3)
p2 = max хц+ь если 夕尸打,
p2 = max хц+ь если 夕尸打,
(7.3)
(7.3)
Другая система условий, основанная на разложении Фурье, рассматривалась в работе Гренандера [3].
До сих пор мы не ограничивали выбор знаков из R", но теперь для конкретности предположим, что устройство, вырабатывающее знаки, описывается разностным уравнением
、厶%у к- @о%у+р ~Н 〃1%“+р—1 ~"Н • • • Н" а”%”0,(74)
V = 0, 1,・・・,〃 —1.
Чтобы решение %” было периодичным с периодом 拉,предположим, что корни е, а ..., &? характеристического уравнения
aQzp + а^^ + ... + 伽=0(7.5)
имеют единичный модуль и их аргумент равен некоторому кратному 2л/〃. Все решения (знаки) уравнения Lx = 0 должны быть взяты в качестве подпрограммы S。. Это корректно, так как при этом она удовлетворяет постулату 2.1: So является G-инвариантной. Таким же способом вводятся другие подпрограммы с помощью других разностных операторов 〃,и мы будем предполагать, что для любых о】=#。2 ни один характеристический корень £5 не совпадает ни с каким характеристическим корнем 厶廿 Тогда выполняется постулат 3.1. Для данного изображения / = (%i, %2, . • •, х«) можно определить изображение подпрограммы /о с помощью разложения в ряд Фурье, вычисляя выражения
Z %问,(7.6)
где No】,г0,,…一характеристические корни подпрограммы о. Таким образом, в этой конкретной алгебре изображений разложение в ряд Фурье выступает в качестве естественного средства анализа образов.
В этом частном случае задача распознавания настолько проста, что использование стандартных представлений прототипов не дает выигрыша в вычислениях и наше обсуждение можно рассматривать лишь как иллюстрацию общего подхода.
Теперь обратимся к алгебре изображений, и пусть G — группа подстановок п объектов, действующая на индексы элементов х, а остальная структура сохраняется. Распознавание в принципе опять можно провести, используя простые алгоритмы без всяких ухищрений, но теперь это вызовет трудности вычислительного характера, поскольку данное изображение может иметь целых п!——1 подобных изображений (если вс:е х различны) .Поэтому имеются основания искать некоторые простые условия, и их легко выразить элементарными симметрическими функциями или, что то же самое, в виде сумм
pi(/) = Е 外,
Р2 (/)=々 xv, (7.7)
Pn(/) = 2 状.
V=1
Эта система должна быть полной: если для двух изображений / и /' она дает одинаковые результаты, то эти изображения подобны. Другой способ организации алгоритма распознавания заключается в перестановке %” в неубывающем порядке. При таком стандартном представлении распознавание проводите# сопоставлением координат.
В заключение рассмотрим неориентированные графы с вершинами 1, 2,..., и. Знаками служат ребра, скажем заключенные между вершинами i и /, которые мы запишем как хц = х〃 = 1; но если эти вершины не соединены, то %订= %〃 = () (см. рис. 1). Будем считать, что Хц — 0 и знаки комбинируются в суперпозиции без учета повторений. Тогда изображение / можно представить массивом
/%12,%13,%14,• • •,%1九,
%23,尤 24,■ • •,尤 2九,
%34,■ ■ ■,%3九,
• • •尤/1—1,П
В качестве преобразований подобия выберем преобразование изображения, соответствующее перестановке индексов вершин V = 1, 2, ..., п. Тогда порядок группы О равен и!, а не N = [п(п——1)/2]! Последнее число соответствует симметрической группе, действующей на элементы %. Для выяснения вопроса, подобны ли два данных изображения, можно воспользоваться следующими пробами.
・/ — ・・・・
Рис. 1.
Рассмотрим множество G-инвариантных многочленов от % не выше п-й степени. Они разделяют изображения, не являющиеся подобными. Действительно, пусть /=/=/'(mod О). Тогда для любого gh 三 G имеем / =# g^/', так что существует пара 磊,jk индексов, при которых 尤%〃片(g^%)[〃‘ 修/ и (gk^n ~ элементы таблиц соответственно для / и gkIr. Пусть 心炉卜=$卜 и (Sk^Yikik = 1 一 6也;образуем линейное выражение
L ⑵=§ (1 一 g zikfk + 6々(1 一 2%"), (7・9)
(7.Ю)(7.П)(7.Ю)(7.П)где z =(гц, &2, . • •)—треугольный массив. Тогда “/) = 0, LS厂)> 0, Vg已G,
(7.Ю)
(7.П)
(7.Ю)
(7.П)
так что инвариантный многочлен
Q⑵=П L(g?)
g巨G
удовлетворяет соотношений Q(/) = 0, Q(/')〉0, разделяя / и /', как это отмечалось. Достаточно использовать Ц 吟 / в к а-
честве проб, и поскольку % принимают лишь значения 0 и 1, то оно приводится к виду П %订.Теперь исходим из одночленов, содержащих по одному《尤》,затем — из тех, которые содержат
по два 《%》,и т. д., все время пропуская одночлены, выражающиеся через уже введенные. Допустим, что мы рассматриваем одночлен %12・%13・%23・%34 и образуем инвариантный многочлен
Р (/) = £ (g/)12 • (g/)13 ・(g/)23 ・(g/)34・(7.12)
g巨G
Значение P(/) равно просто числу подобных изображений g(/), которые содержит подграф
1
В качестве примера рассмотрим случай п = 4, когда 64 изо- бражения группируются в 11 образов. Это можно выразить посредством прототипов, распознаваемых с помощью четырех проб, порожденных одночленами (или соответствующими подграфами) (рис. 2).
Линейные образы
Рассмотрим один более важный тип образов, знаки которых состоят из дуг в плоскости, а изображения формируются при помощи суперпозиции без учета повторений. Подпрограммы будут соответствовать различным типам кривых (например, отрезкам прямых и дугам окружности), и мы будем предполагать, что они аналитические. Поскольку нас интересуют преобразования подобия, начнем с изучения одного важного случая евклидовых перемещений плоскости. Тогда дугу можно задать ее натуральным уравнением
碧=』/(s),(8.1)
где /——кривизна, s — длина дуги,屮一угол между касательной и некоторым фиксированным направлением; этим способом мы получаем инвариантное представление. Другими словами, мы трактуем знаки как геометрические объекты, не привязывая их к определенной системе координат.
Итак, имеем
Модель для евклидовых линейных образов. Предлагается следующая алгебра изображений.
Для каждой подпрограммы и существует вещественная функция /a(s), аналитическая на числовой оси. Если /01 (s)= =〃O2(s + й) для некоторого й и всех s, то о】=а2-
Знак 6 SG состоит из дуги, заданной натуральным уравнением /(s) = /a(s).
Для с — (si, $2, sn) и с' = (Sp sj ...,s^) имеем eRd, если выполняется s】U s? U •・・ U s〃 = s; U s; U • • • U sJ.
Данную конфигурацию можно упростить до единственного знака, если в некоторой точке пересечения дуг s】и S2 совпадают все производные; аналогичное утверждение имеет место для компонент с некоторыми знаками. Знаки являются стягиваемыми (см. разд. 3), и мы имеем идентификацию посредством максимально связанных компонент (см. разд. 4). Но они могут быть распознаны методом подвижного пятна при помощи сканирования изображения. Когда пятно падает на дугу, оно пробегает ее в обоих направлениях до тех пор, пока не доходит до особой точки. Точка / называется регулярной, если она является внутренней точкой ровно одной аналитической дуги, принадлежащей /; в противном случае она называется особой. Особые точки могут быть двух типов:
концевые точки (которые включают точки возврата);
точки ветвлений.
Ду1 а прослеживается в обоих направлениях (до прохождения особой точки) и классифицируется в соответствии с тем, какая функция /а входит в ее натуральное уравнение. Затем сканирование продолжается до тех пор, пока не будут идентифицированы и классифицированы все максимально связанные компоненты в соответствии с о, g н концевыми точками.
Эта грамматика была построена для одного важного частного случая, когда преобразования подобия евклидовы. Теперь обратимся к более общим линейным образам и в то же время введем другое средство для порождения знаков.
Пусть для каждого о существует дифференциальный оператор fa(x, у, yf) первого порядка (первый порядок выбран для простоты и не является существенным), такой, что область дифференцируемого линейного элемента, заданная уравнением Fa(x, у, yf) = 0, имеет ровно одну интегральную кривую, проходящую через точку из R2. Пусть G — группа преобразований Ли пространства R2 на себя и уравнение 戸° = 0 является G-инвариантным для каждого о. Мы получили естественную модификацию предыдущей модели.
Модель для дифференциальных линейных образов. Предлагается следующая алгебра изображений.
Для подпрограмм 6 声 а2 множество из R2, в котором область линейного элемента из 尸(^ совпадает с соответствующей областью из 尸5, не должно содержать никакой части знака, принадлежащей S^ или Sg.
Знаки из So состоят из дуг, удовлетворяющих соотношению Fo(x, у, /) — 0.
с) Если для с = (sp %,•…,s/ 〃 с' = (s] s:・• •, s^) имеем S]U%U …Us〃 = s;Us;U • • • Us;, то cRc'.
Хотя мы не требуем аналитичности, идентификация посредством максимально связанных компонент все еще возможна. Схема распознавания выглядит следующим образом: развертываем картину, фиксируем дугу и классифицируем ее линейные элементы в соответствии с подпрограммой по значению пробы 尸 о (%, у, у'). Этим способом мы получаем дуги, ограниченные особыми точками. Они описываются своими подгруппами и концевыми точками. Мимоходом ответим, что G-инвариантный знак s, gs = s, Vg, нельзя использовать в качестве носителя информации о том, какие именно преобразования подобия к нему применялись. С этой точки зрения он бесполезен и может быть отброшен. Необходимо видоизменить условие (б) упомянутой выше модели, чтобы исключить G-инвариантные знаки. Поясним это следующим простым примером: пусть G состоит из рав: номерных растяжений с инфинитезимальным оператором
х(д/дх) + у(д/ду). Дифференциальное уравнение первого порядка, инвариантное относительно G, имеет вид у7 = F(y/x)t Инвариантными знаками, которые должны быть исключены, служат у = с-х. Введем две подпрограммы:
о=1: У = — *
(8.2)
о = 2: и =—,у у
тогда знаками Si являются дуги гипербол ху = а, а знаками S2 ——дуги гипербол у2 ——х2 = Ь. Дуги этих взаимно ортогональных семейств гипербол и составляют изображение.
Образы множеств
Как охарактеризовать изображения, получаемые в R2 посредством суперпозиций (объединения множеств), но уже не дуг, а более общих множеств? Будем различать 3 случая в зависимости от степени сложности границы множества.
Если граница очень сложна и размыта, она бесполезна для описания множества и следует искать более компактные способы определения изображения. Здесь этот случай рассматриваться не будет.
С другой стороны, если граница достаточно гладкая, то она годится в качестве экономного средства для характеристики множества. При построении модели можно было бы использовать иерархию двух множеств знаков (см. разд. 2). Знаки, снабженные индексом ⑴,вероятно, можно выбрать в виде определенных направленных дуг, и ограничение 例,управляющее образованием конфигурации⑴ из с⑴,могло бы гарантировать, что компонентные знаки⑴ из с⑴ могут быть объединены вместе (без изменения знака направлений). В качестве знаков, снабженных индексом ⑵,можно взять те конфигурации(1), которые разделяют плоскость на две односвязные части. Знаки(2) комбинируются для образования конфигураций при ограничении 笈, так что результат определяет конечное число связных областей в плоскости; можно использовать соглашение, что, когда мы пробегаем контур, область остается слева. Этим способом можно получить модель контурных множеств, дальнейшая разработка которой могла проводиться так же, как и в предыдущем разделе. Распознавание будет организовано так, что сначала распознаются знаки"), а затем они присоединяются к знакам⑵,дающим границу.
Заметим, что, поскольку в качестве дуг, из которых образуются контуры, выбирались независимые знаки, мы получаем очень гибкую модель. Впрочем, она может оказаться слишком
обширной для того, чтобы дать экономное описание явления, которое следовало бы описать более жесткой грамматической структурой. Возможно, в качестве знаков лучше взять определенные заданные множества (вместо дуг); эту модель мы обсудим в случае G-переносов плоскости. Начнем с конечного множества эталонов f”, v = 1, 2, ..., р, и пусть каждый % —— замкнутое множество, ограниченное конечным числом конечных аналитических дуг avb ..., av2- Изображения получаются суперпозицией переносов этих эталонов, так что никакие два знака изображения не имеют общей внутренней точки. Распознавание будет наиболее простым, если никакую а^ нельзя аналитически продолжить переносом в себя (при g # е) или любую другую аит. Рассмотрим границу д! данного изображения /. Она будет состоять из конечного числа дуг, каждой из которых отвечает некоторый знак. Удалим все эти знаки из / и обозначим результат через /'・ Затем применим ту же процедуру к дГ и т. д., до тех пор пока не проведем полного грамматического анализа изображения /, который будет использоваться для распознавания образа, которому принадлежит /.
В том случае, когда некоторую дугу можно аналитически продолжить переносом в себя или некоторую другую дугу, модифицируем эту процедуру следующим образом. Рассмотрим снова д! и одну из аналитических дуг Л, составляющих д1. Теперь нельзя исключить возможность того, что Л является объединением некоторых а. Если Л не замкнута, мы начинаем с ее концевой точки и разбиваем на a-части по мере прохождения вдоль нее; это можно сделать несколькими способами, но число их конечно. Если дуга Л периодична, это число также конечно. Действительно, допустим противное и воспользуемся компактностью А. Выражая дуги в виде (х, у) = (fx (s), ,2(s)), получаем, что некоторый участок дуги Л можно записать как
d(s), %(») = (抄),磅)) + (頂s +九),屮2(s + %)), (9.1)
где v = 1, 2, ... и kv принимает бесконечное множество значений. Но это значит, что w и v2 — константы, что невозможно, следовательно, существует лишь конечное число возможностей. Теперь мы поступаем по прежней схеме. Первая граница д! представлена самое большее конечным числом способов как объединение элементов а. Для каждого такого представления мы удаляем из / соответствующие знаки, если их объединение является подмножеством /, рассматриваем дГ и т. д., продолжая каждую ветвь дерева решений до ее концевых точек. Хотя результирующий грамматический анализ не всегда однозначен, он значительно упрощает задачу получения решения.
В этих моделях образов множеств изображения получались посредством объединений определенных множеств. Ничто не мешает нам брать вместо этого их пересечения, что и будет описано в следующем довольно интересном примере. Пусть знаки состоят из замкнутых полупространств плоскости и 8 качестве изображений взято пересечение конечного множества таких знаков. Другими словами, изображениями служат выпуклые многоугольники. Можно непосредственно провести грамматический анализ таких, простых изображений. В каждом направлении 屮,0&屮《2冗,мы определим опорную прямую £$ изображения /・ Это дает нам конечное число углов 屮,и соответствующие полуплоскости, которые служат опорами /, являются составными знаками /・
Здесь не будут обсуждаться линейные образы, образы поверхностей и образы множеств в & или в евклидовом пространстве большей размерности, поскольку такое обобщение не дает ничего существенно отличного от того, что имеет место в плоскости.
Граничные образы
Теперь, обогащенные опытом, приобретенным при обсуждении алгебр изображений, приступим к формулировке общей модели.
Для любой заданной подпрограммы знаки должны иметь вид
5 = [а;仇,尻,・•・,bp],5 = [а;仇,尻,・•・,bp],(ЮЛ)(ЮЛ)
5 = [а;仇,尻,・•・,bp],
5 = [а;仇,尻,・•・,bp],
(ЮЛ)
(ЮЛ)
где параметры 仇 принимают значения в некоторых заданных пространствах Вар ⑶久,• • •,吕% и число Р может зависеть от а. Рассмотрим группу G преобразований g, отображающих произведение пространств 吕01><吕02义3% на себя, и запишем это так:
gs = [o; (g»i, (g% ・・・,(g»pL
где b = (b\, b2, ...» б/. Если 扌 и s2 принадлежат общей под
программе и
(Ю.2)(Ю.2)S1 ^〔О; &1,戾,• • •,bj
(Ю.2)
(Ю.2)
$2 :== [о;庙,应,• • •,届 1
то их следует объединить и свести к единственному знаку при условии, что Ь\ и Ь] удовлетворяют совокупности условий са. Можно рассматривать % как подмножество произведения пространств 5。] X &1 X &2 X &2 X •…义&3 X в%; предположим что оно инвариантно: gc0 = cOi Vg・ На этом произведении про-
странств задаются функции рь р2, • • •, Рр со значениями соответственно В Вар 占02, •••,占00, такие, что
$1 + $2 = [о; Р1> 02, • •・,%]•(10.3)
Эти функции должны обладать свойством
似gb(?,g財,・・・)= g似川,財,・・•)•"О』)
Этим способом можно упростить (см. разд. 2) конфигурации с—> с' многократным приведением составных знаков. Если предположить, что с^ -> с, c?f с приводит к существованию конфигурации c^f с】,с】2f с?, то можно определить отношение идентификации R следующим образом. Для двух конфигураций с】и с2 имеет место C\Rc2, если существует конфигурация с-> с〔 и с-> с?. Ясно, что отношение R рефлексивно и симметрично. Если справедливо C\Rc2 и C2RC3, то мы знаем, что существуют конфигурации з? и ^23, такие, что c^f с】,S2f с?, с23f с?, с23 f Сз・ Но тогда существует конфигурация Cf с^, с —С23, так что C\Rc3\ отношение R транзитивно. Читатель может теперь проверить, что условия постулата 3.1 выполнены и мы построили алгебру изображений. Будем называть эту модель моделью граничных образов, так как параметры 6, часто играют роль границ или граничных значений. Чтобы добиться более интуитивного понимания модели, рассмотрим несколько примеров.
Пусть подпрограмма а состоит из прямоугольников (в плоскости) со сторонами, параллельными осям координат. Представим ее знаки в виде
5 = [(T;仇也,63也],(Ю.5)
где
s = {x,y\bx <х<&2,Ьз《У&“}・(Ю.6)
В качестве G рассмотрим
переносы
плоскости.
Множества
комбинируются так же, как
в разд. 9.
Условия с。
имеют цид
65°=е
唠=唠,
围』汽
или
成)=6孔
琳)=呢,
% =
или
(Ю.7)
磅=們
理=b孔
砂=6汽
или
理=碇,
规=第,
и р/ могут быть легко выписаны; скажем, если выполнены первые 4 условия, то
Pi = Ь\\ р2 = Ь^\ рз == Ьз\ 04 =成).(10.8)
Во втором примере рассмотрим в качестве некоторой подпрограммы аналитические дуги
s = [o1 瓦,尻],(Ю.9)
где bi, &2 ~~ концевые точки дуги. Пусть G — евклидовы перемещения плоскости. Тогда имеем
% =,
严=6汽
или
严=呢,
или(10.10)
или
и значения pi определены, поскольку результирующая дуга должна пройти через точки 加),庆°, 6%),唠.
И наконец, третий пример, который будет изучен в разд. 12: G — переносы действительной прямой. Пусть знак из S。определен как решение дифференциального уравнения первого порядка £о = 0 на отрезке 加&%《戾 и
s = [o| 仇,尻,%, 3],(10.11)
где 匕3 = $(仇),b4 = s (&2). Можно объединить два таких знака с помощью сцепления, если
или
成),
砂=承
(10.12)
國)=b汽
и если выполнено первое условие, то
自=电),p2 = b咒 孤=碎,国=卢. (10.13)
В любой алгебре изображений знаки используются для передачи информации о том, какому эталону они принадлежат и какое преобразование подобия применялось к эталону. Некоторые алгебры изображений обладают тем свойством, что любое заданное изображение можно однозначно разложить на
составные знаки. Видимо, это весьма частный случай, но он заслуживает внимания. Во-первых, мы используем лишь конфигурации, образованные из п различных эталонов /ь /2, • • •, %九, так что мы можем записать с==(&,玩,•••, sJ = g£, g2%2, • • • • ••, gr/n)・ Поскольку sv определяются однозначно изображением /, то наше изображение можно представить точно в виде
/ = (gb g2,g/wG& (10.14)
где Gn — группа, представляющая собой прямое произведение п экземпляров G: GXGXGX---XG- Введем подгруппу Г всех элементов в G^ вида (g, g, ..., g)・ Тогда образы 夕卜 夕2,・・・ состоят из объединений классов смежности Г и распознавание означает просто идентификацию классов смежности, к которым принадлежит изображение. С другой стороны, если наша конфигурация образуется из п} знаков, порожденных одним эталоном, из 〃2 знаков, порожденных другим эталоном, и т. д., Hi + п2 + + …+几々=〃,то изображение можно представить в виде
/ = (gi,且2,•••‘ g%‘ g%+i‘ • • •)三 G^, (10.15)
где G^ состоит из элементов группы G紋 но при этом (g?, g£),... …,g〃 g*?+i,…)и (g汽 g§),…,g% ^+i •••) считаются идентичными, если любая перестановка первых щ индексов переводит gf), g$), g^ в 咄 g肾,…,g^ и т. д. Другими словами, G^ есть Gn по модулю произведения k симметрических групп S九]X S九2 义• • • Х Snk- Теперь распознавание означает отнесение изображения к тому классу смежности Г (в G0, к которому оно принадлежит. Мы вернемся к этой модели групповых образов в части IV.
Контрастные образы
Линейные образы и образы множеств служат прекрасными моделями изображений, различные части которых явно сильно контрастируют: мы видим четкое различие между внутренностью и внешностью множества. Поэтому разумно сосредоточить внимание на их границе. Но если контрастность не столь резкая, следует видоизменить модель. Сделаем это, введя полезную общую модель.
Модель контрастных образов. Рассмотрим множество X (пространство фона) и полугруппу С (пространство контрастов). Эталонами служат некоторые заданные функции /, отображающие X в С. Группа G преобразований g из X на X определяет преобразования подобия с помощью соотношения
gf (х) = 2 (gx). Для двух конфигураций с = (sb s2, ..., s〃)〃 с'= =(s) s; ..., s期 будем считать, что cRc', если
S] (х) + S2 (%) + •・• + % (%) = S: (%) + S貝%) + ・・・ + * (х), V X,
где сложение обозначает бинарную операцию в С.
Легко проверить, что модель удовлетворяет постулатам алгебры изображений, если добавить обычное условие для подпрограмм; можно также показать, что модель охватывает изученные нами частные случаи. Действительно, это определение является весьма общим: любая заданная алгебра изображений 0 может интерпретироваться в терминах контрастных образов. В качестве G нужно взять пространство фона X, в качестве 夕 с ее полугрупповой операцией суперпозиции изображений ——пространство контрастов С Пусть изображение / представлено функцией fh осуществляющей отображение Gf 夕:
L(y)= y/, ywG. (11.2)
Будем считать, что g действует на у посредством отображения yf Yg・ В этом построении пространство контрастов взято в качестве (часто) сложного пространства алгебры изображений. Хотя это понятие контрастных образов слишком общее, мы его не будем использовать до тех пор, пока и фон, и контраст С достаточно просты.
Будем иногда слегка видоизменять модель, выбирая преобразования подобия немного по-другому. Пусть дана группа Н преобразований й контрастного пространства С на себя, определим преобразования подобия знака s(%):
s(x)->hs (gx), Ле Я, gwG, (11.3) так, что преобразования подобия заданы прямым произведением GXH. Преобразования Л называются контрастными.
О задаче распознавания в случае общих контрастных образов можно сказать немногое. Следует лишь отметить, что если X совпадает с евклидовым пространством R', то при достаточно простой грамматике может работать такая идея. Поищем линейные Q-инвариантные функции Lt в 3^ со свойством
_( 1, если / = s (mod G),
" (0, если /暖s(modG), *
где t — произвольный эталон, s — произвольный знак. Если такие функционалы найдутся, их можно взять в качестве проб. Применим эти пробы к изображению /. В результате узнаем, какие именно эталоны использованы при формировании /.
Единственное, что необходимо для полноты грамматического анализа, — это найти преобразования подобия, которые переводят эти эталоны в составные знаки /.
Временные образы
До сих пор большинство алгебр изображений, рассмотренных в части II, были коммутативными. Следующая модель, предназначенная для описания образов во времени, не обладает таким свойством. Возьмем в качестве знаков вещественные функции s = s(f), определенные на полуоткрытом интервале [а, 6). Мы получаем изображения посредством сцепления, предполагая, что выполняется (现):если последовательные интервалы являются смежными и правило R таково, что cRc\ если знаки двух конфигураций определены на одних и тех же подмножествах действительной прямой и значения соответствующих знаков согласованы. Исходя из группы преобразований G оси времени на себя, мы определим подобие посредством / = Г, если существует элемент g w G, такой, что / (/) и 厂(g£) определены для одних и тех же f и / (/) = Г (gt) при всех Л
Читатель может в качестве примера рассмотреть код Морзе со знаками точка, тире и различные промежутки. В коде Морзе соотношение между временами продолжительности знаков фиксировано, так что группа G могла бы состоять из преобразований оси времени
/->m +瓦 a>0. (12.1)
Несколько сузив наши интересы, рассмотрим г независимых от времени дифференциальных операторов &, £2> …,4 порядка р с однозначно заданными начальными значениями. Два уравнения £讲=0 и L/6 = 0, / =# /, будут иметь одно и то же решение, за исключением одного решения, которое может сыграть роль пустого знака. Если операторы линейны, то в качестве этого решения можно взять тождественно нулевое решение. Решения уравнения 厶力5 = 0 являются знаками подпрограммы S&. Правило R можно взять таким, чтобы решения, объединяемые вместе, имели, например, непрерывные производные до (р — 1)-го порядка. Если мы работаем с дискретным временем, то 上厶 конечно, должны быть разностными операторами.
По этой модели легко распознавать образы. Эталон представим в виде
,= (о; /;力,力,・・.,〃7); (12.2) он удовлетворяет соотношению £а/ = 0 на отрезке [0, /] и имеет начальные значения f(O) = /o, /,(0) = /ь ...»/^-^(О) =/р_ь Знаки,
подобные /, получаются параллельным переносом оси времени. Для данного изображения / применим операторы L。 к этой функции времени при всех значениях времени, для которых она определена. Это приведет к классификации временных точек в соответствии с тем, к какой подпрограмме о они принадлежат, Lo/ = 0. Таким способом получим весь временной отрезок, на котором определено изображение и который разбит на интервалы, отвечающие составным знакам изображения. Наконец, нужно задать начальные значения этих знаков.
В частях I и II мы рассматривали лишь изображения в чистом виде. Это простой раздел теории. Перейдем теперь к изучению искажений изображений, при котором выявятся типичные черты анализа образов.
III. ИСКАЖЕННЫЕ ОБРАЗЫ
Искаженные изображения
Рассмотрим грамматику образов 9, состоящую из следующих основных элементов:
兔兔(13.1)(13.1)S — знаки, отнесенные к подпрограммам, 例一правило образования конфигураций, R — правило идентификации, 夕一множество изображений, 夕—семейство образов.
兔
兔
(13.1)
(13.1)
Мы не имеем возможности непосредственно наблюдать объекты этой грамматики образов; они искажены. Искажения действуют на наблюдаемые объекты грамматики следующим образом: чистые изображения /в? преобразуются в искаженные изображения di =产三斤®. Каждый элемент d множества 勿 отображает {чистую) алгебру изображений в искаженную алгебру изображений ?卫・
Обычно грамматика 夕 является жесткой логической структурой, но грамматика искажений 夕def может быть более гибкой. В большинстве случаев, которые мы рассмотрим в части IV, искаженные изображения включают в себя чистые изображения Зи* и 夕шире, чем ?• Затем мы предположим, что преобразования подобия g из ^出 совпадают (на ?) с преобразованиями подобия, первоначально введенными на 夕.
Поскольку di определено для любого / 三夕,сказанное, в частности, справедливо для / = s. Одпако мы не можем этим воспользоваться; знание значения ds при всех dw 纱,
s 三 S не позволяет нам в общем случае найти значение d/, /三夕.
Определение 13.1. Искажения называются
ковариантными, если тождественно выполняется
gd = dg,
гомоморфными, если тождественно выполняется 外厶+/2)=図+也.
Очевидно, что гомоморфные искажения достаточно определить для знаков, если же они также ковариантны, достаточно ввести искажения для эталонов.
Многие дальнейшие рассмотрения значительно бы упростились, если допустить ковариантность искажений, однако после изучения ряда случаев, приведенных в части IV, станет ясно, что это действительно довольно редкое явление.
Как будет формулироваться задача распознавания из разд. 5 для искаженных изображений? Ясно, что мы больше не можем потребовать обратного отображения из ?防 в 勿,поскольку 夕& зависит не только от /, но также от d, который ненаблюдаем. Это будет рассматриваться в последующих трех разделах, здесь же отметим, что выбор функций распознавания можно до некоторой степени ограничить, если воспользоваться следующими соображениями инвариантности. Скажем, мы имеем отображение а:严 ~> 俨(распознающую функцию). Естественно предположить, что подобные изображения отображаются в один и тот же образ: a(g/Z) = a(/&). С другой стороны, кажется желательным также потребовать, чтобы два чистых изображения ^/ и / (принадлежащие одному прототипу /) после преобразования посредством одного искажения d отображались в общий образ: a (dg/) = a (d/).
Определение 13.2. Распознающая функция а: 夕俨 называется
G-инвариантной, если из /f ==/限(mod G) следует a (/f)= = a(/f );
^-инвариа нтной, если из 1\=12 (mod G) следует a (d/j)= =a (也).
Какая связь между этими двумя понятиями инвариантности? Следующий результат почти очевиден, но не очень полезен, так как предполагает ковариантность искажений.
Теорема 13.1. Если искажения е 勿 коварианты, то понятия G-инвариантности 〃 ^-инвариантности совпадают.
Доказательство. Если а является ^-инвариантной, то имеем a(gd/) = a(dg/) = a(d/) при любых d, g, /, так что функция а оказывается G-инвариантной и обратно. |
Несколько более полезной является
Теорема 13.2. Если ⑦一группа с нормальной подгруппой G, то из ^-инвариантности следует G-инвариантность. Семейство образов 俨= ?/G отображается посредством искажений (〃ерез факторгруппу 纱/G =尸)6 семейство искаженных образов
= ^/G.
Доказательство. Для произвольного чистого изображения / и для d и g можно найти преобразование подобия hmG、 такое, что dh = gd (здесь просто используется то, что G нормальна), так что если функция а ^-инвариантна, то
a (gd/) = а (dhl) = а (d/).(13.2)
Это означает, что а также G-инвариантна, как и утверждалось. Рассмотрим два подобных чистых изображения 厶 и /2 одного образа 夕]W0 = 57G; тогда можно записать 1、= g{, /2 = g2^> где 7 — прототип из % Но h = dg^d-i R G, так как группа G нормальна. Следовательно, для искаженного изображения имеем /Г = dgj = hgd?I = hdl? = h% так что /『三/『и эти два искаженных изображения принадлежат общему искаженному образу 夕了 = ^WiW0>G・ При определении значения отображения d:彳 f 夕節 важно только, к какому именно классу смежности ,三尸 подгруппы G принадлежит d. |
Следует отметить, что 砂,по-видимому, не образует группу, если искажения действительно сильно портят изображения. Искажения, вводимые в разд. 19, служат ярким тому примером.
Грамматику искажений 院ef можно теперь записать в виде тройки
9def = (g,^,”),(13.3)
где ^ — грамматика чистых образов, 3) — множество искажений и 夕勖 ——совокупность искаженных изображений.
Грамматики метрических образов
Как среди возможных распознающих функций выбрать нужную для данной грамматики искажений @def? Если множество изображений обладает метрикой, то сразу же возникает одно разумное предположение. Рассмотрим этот подход, предполагая, чтосuе。
Вещественная функция д(/ь /2), определенная на 夕勖乂夕函, называется полностью инвариантным расстоянием, если
6(/f, /f)^0, где равенство имеет место тогда и только тогда, когда /『三度(mod G),
6 симметрична и удовлетворяет неравенству треугольника,
6(日『82度)=6(产以).
Иногда удобно считать, что 6 может принимать значение + оо; читатель тогда должен соответствующим образом интерпретировать приведенные выше условия.
Условие (iii) означает, что d(/f, /f) зависит лишь от того, из каких именно образов в 乡纟=夕"^/G получились искажен* ные изображения, так что 6 можно рассматривать как некоторую функцию А на 0电 X 夕勖• В силу (ii) функция А обладает свойствами расстояния; условие (i) гарантирует, что Д разделяет образы из 0勖.
Примеры функций, представляющие собой полностью инвариантные расстояния, приведены в части IV; здесь же предложим одно простое построение. Пусть д0 — произвольная функция расстояния в 3册 X 夕紛 с обычными свойствами метрики.
Положим
6(炉,度)=min M(gjf\ g2^),(14.1)
gi,g2^G
где предполагается, что минимум достижим. (Тогда легко показать, что условия (i), (ii) и (iii) выполняются: 6 — полностью инвариантное расстояние.
Определение 14.L Пусть 6 — полностью инвариантное расстояние] рассмотрим распознающую функцию а:
для заданного искаженного изображения 产 выбираем чистый образ "и 彳= 57G, при котором значение 6(/,严), / w 乡а минимально (предполагается, что минимум достигается на единственном 几);
если для заданного искаженного изображения 产 и любого чистого изображения / имеем 6(/, /^) = + оо, т。никакого решения не принимаем.
Эта схема называется распознаванием по минимуму расстояния.
Поскольку мы можем точно так же сказать, что а минимизирует А (俨а> 力舫),то благодаря етому получаем отображение 乡紛一>0. Отсюда следует, что а является G-инвариантной распознающей функцией.
Если выполняется условие б), то это должно расцениваться как наличие столь значительного искажения, что исходное (чистое) изображение, видимо, нельзя распознать: только классы искаженных образов, отстоящих на конечное расстояние от 勿, могут быть разделены осмысленным способом.
Если потребовать лишь
6(g/R g偿) = 6(尸,裁(14.2)
для всех g w G, то придем к более слабому понятию инвариантной метрики. Тогда 6 будет называться инвариантным расстоянием. Исходя из произвольного расстояния, можно так же, как и раньше, построить инвариантное расстояние, заменив лишь (14.1) на
6(/f, /f) = min d0(g/f, gif У(14.3)
Следует отметить, что инвариантное расстояние не приводит в общем случае к расстоянию на 俨,как это было показано для полностью инвариантного 6. Тем не менее мы все еще имеем правило распознавания а, описываемое определением
Хотя эта функция а больше не дает отображения 乡卫—乡, она все еще G-инвариантна.
Грамматика искажения ^def, наделенная инвариантным расстоянием, будет называться метрической грамматикой образов и обозначаться через
*L (小卜(14.4)
Распознавание по минимуму расстояния окажется полезным лишь тогда, когда метрика, введенная в 夕卫,будет адекватно выражать наше интуитивное понимание того, насколько близки или далеки искаженные изображения друг от друга. Очень часто мы имеем некоторую смутную идею о том, каким именно образом определенные искажения требуют большего усилия некоторого вида. В простейшем случае это усилие могло бы быть физической энергией, но мы не должны ограничить себя этим случаем.
В общем случае понятие усилия преобразования формализуется следующим образом.
Определение 14.2. Допустим, что 勿 образует полугруппу} рассмотрим вещественную функцию е (d) на 勿 со свойствами
e(d)》0, e(d) = 0 тогда и только тогда, когда d w G,
e(gdH) = 6(d), Vg, h^G,
ет@)《е@) +с®)...
Функция e(d) называется полностью инвариантной функцией усилия.
Если грамматика искажения ^dei обладает естественно определенным вполне инвариантным усилием e(d), то можно построить распознающую функцию а посредством минимального усилия, решая экстремальную задачу (для данного искаженного изображения 俨 и свободного чистого изображения /)
e(d) = min для 产=~/, (14.5)
где предполагается, что минимум достижим. Если (14.5) имеет решение (d, /), то из условия б) определения (14.5) заключаем, что (dg-) g/) также является решением. К тому же любое 力严 приводит к решению (hdg^\ g/), так что ?°/G отобра、 жается в 57G. Это также означает, что распознавание по минимуму усилия является G-инвариантным.
Оно связано с распознаванием по минимуму расстояния. Действительно, имеет место
Теорема 14.1. Пусть е — полностью инвариантное усилие; положим
6(/г质)=广'[6(%) + 0(办);/г= d",度=侬了], (14.6) предполагая, что минимум достижим. Тогда 6 — полностью инвариантное расстояние.
Доказательство. Чтобы проверить условия (i), (ii) и (iii) искажения полностью инвариантного расстояния, заметим, что (i) выполняется, так как 6(/了, /^) = 0 тогда и только тогда, когда /『=if (mod G). Функция 6 симметрична по своим двум аргументам, и, чтобы доказать правило треугольника, рассмотрим фиксированные /У, /f и /f. Если существуют di, d2> 金,乙,такие, что
(14.7)
,
/з = Щ/2,
то запишем d。)= d2dз, *)=或山三纱,так что
(14.8)(14.8)/了 = d⑴/乳
(14.8)
(14.8)
Следовательно, используя свойство в), получим
е (“))+ е (*)) & е (山)+ е (dj + е @) + е 0/
откуда следует
6 (/乎,/『)& min [е (d⑴)+ e (#)); * = d2d3,严=或力]&
& min [e (%) + e @);炉=rf, /f = d^ +
+ min [e (成)+ e (或);if = djf, /了=或彦]=
= б(/Л /f) + 6(7f,/f). (14.9)
Наконец, условие (iii) вытекает из б), так как /Е = dlf означает, что g"乎= (gidg^)g2/乳 и поэтому e^gidg^^e (d)・ Мы доказали, что функция 6 полностью инвариантна. |
Если вместо условия б) требовалось лишь е (gdg^ 9 = ^ W) для всех dw^g^G, то можно только доказать, что результирующая функция расстояния 6 инвариантна.
Подразумевалось, что соотношение /Е = d/f\ рассматриваемое как уравнение относительно d, всегда имеет по крайней мере одно решение. Если это не выполняется, то соответствующее значение e(d) следует заменить на + оо, совершенно аналогично тому, что было сказано ранее в этом разделе.
В заключение отметим возможность использовать „расстоя- нне“, которое не обязательно симметрично по двум своим переменным. Это может оказаться разумным, если принять во внимание тот факт, что в распознавании мы имеем дело с упорядоченными парами (/, /®), где I н 产 принадлежат (в общем случае) различным алгебрам изображения.
Грамматики вероятностных образов
В грамматике метрических искажений для получения разумной процедуры распознавания мы используем понятие расстояния между изображениями. Логически такой подход опирается на то, что следует больше доверять анализу, „объясняющему данное искаженное изображение посредством малого искажения, чем другому „объяснению", предполагающему большое искажение. Это обращение к бритве Оккама 】)кажется разумным лишь тогда, когда метрика удачно и естественно соответствует грамматической структуре.
Однако анализ распознавания будет более убедительным, если имеется некоторая информация о том, насколько похожи различные искажения. Действительно, тогда для получения
эффективных методов распознавания можно обратиться к статистическим критериям и методам. У читателя, по-видимому, возникнет ассоциация со структурой, используемой в статистической теории передачи информации; дополнительная трудность состоит в том, что в данном контексте параметрическое и выборочное пространства оказываются алгебрами изображений со всеми их усложнениями.
Чтобы это формализовать, допустим, что над некоторой а-алгеброй 必(0) подмножеств 纱 мы определили вероятностную меру Р. В 夕 н ?" мы также имеем а-алгебры №(*7) и 必W), такие, что для любой пары множеств Ew 必(夕),尸三 三接(?节
{d|dEwF} w 垓(勿)・(15.1)
Модель
乡prob=(9def, p)(15.2)
называется грамматикой вероятностных искажений. Автор полагает, что эта структура адекватна большинству задач распознавания.
В разд. 13 было введено довольно узкое понятие ковариантных искажений. Обобщая его, чтобы получить более полезное понятие, будем говорить, что грамматика вероятностных искажений ковариантна по вероятности, если для любого преобразования подобия g w G стохастические отображения dg и gd имеют одно и то же распределение вероятностей. Если мера Р ковариантна по вероятности, то для любого gwG, Е w 或(勿) имеем
Р (d wЕ) = Р (gd wgE) = Р (dg w gE)=尸(d w gEgт). (15・3)
Обратно, если выполняется (15.3), то мера Р ковариантна по вероятности.
Независимо от того, является ли Р ковариантной по вероятности или нет, иногда удобно выразить Р через функцию плотности р:
Р(Е)=,"(砌办(d),(15.4)
где |л является а-финитной мерой, ковариантной по вероятности.
Прежде чем перейти к задаче распознавания, рассмотрим более простой вопрос: по данному искаженному изображению 严 найти породившее 严 чистое изображение. Таким образом, распознающая функция а должна определить отображение № и быть в состоянии выбрать такую нужную нам весовую функцию 侬(/,?), которая принимает действительные зна-
чения и определена на 夕 X 斤.Значение w соответствует выигрышу, когда / —- истинное чистое изображение н 夕一изображение, выбранное после наблюдения за нашим искаженным изображением.
Мы тогда могли бы попытаться найти функцию а, которая максимизирует выражение
wa = E\w (/, а(严))],(15.5)
где Е —- математическое ожидание над *7 н 勿.Однако этот двойной интеграл корректно определен лишь тогда, когда мы имеем вероятностную меру Q, скажем, над ?• Тогда мы могли бы найти тот образ /, который максимизирует условное математическое ожидание
E[w (Z, J)\dI = I^(15.6)
Результирующие чистые изображения /° = /(/"), рассматриваемые как функции от 严,дают распознающую функцию, оптимальную в смысле максимального ожидаемого выигрыша.
Мы полагаем, что это краткое обсуждение выбора распознающих процедур убедило читателя в том, что по крайней мере в принципе можно обратиться к общим и известным положениям теории статистических решающих функций.
Вместо того чтобы останавливаться на различных возможных вариантах вышеприведенной дискуссии, обсудим типичное осложнение, возникающее в задаче распознавания образов. Эта задача осложняется тем, что не всегда в нашем распоряжении имеется распределение вероятностей Q над алгеброй изображений, так что выражение (15.5) не всегда осмысленно. Вместо этого мы можем иметь лишь вероятностную меру, определенную над алгеброй 垓(0), порожденной образами ^а. Для этой меры будем использовать тот же символ Q и рассмотрим случай, когда чистые образы заданы посредством 夕二夕/G.
Теорема 15.1. Если искажения ковариантны по вероятности, то условные вероятности Р (Е | ^а) определены корректно для любого G-инвариантного множества Ew^l?10) и 為 w 夕/G.
Доказательство. Пусть /0 — прототип для 俨а; рассмотрим функции от g
f(g) = P (dg/° ^Е) = Р (gd/° 三 £).(15.7)
Последнее справедливо в силу того что искажения ковариантны по вероятности. Но
Р (gd/° w Е) = Р (d/o 三 gT Е) = Р (d/0 三 Е),(15.8)
так как множество Е предполагалось G-инвариантным. Следовательно функция f (g) постоянна на G, откуда заключаем, что
f(g) = P(dI^E) = P^^E\ (15.9)
где / ——чистое изображение, является постоянной для подобных изображений: эта условная вероятность постоянна на классах подобия ^ = J/G, что и доказывает утверждение. |
Этот результат имеет такое следствие. Если мера Q определена на @ = ?/G и искажения ковариантны по вероятности, то можно вычислить совместное распределение вероятностей на 彳 X 乡勖=夕/G X ?,G. Если весовая функция w (/, 7) зависит только от того, каким именно чистым образам принадлежат / и 7, и если а есть G-инвариантная распознающая функция, то интеграл в (15.5) имеет смысл. Это означает, что в данном случае имеет смысл искать наилучшую G-инвариантную распознающую функцию, максимизирующую ожидаемый выигрыш.
В части IV на ряде примеров продемонстрировано, как можно вывести наилучшую распознающую функцию. Результат зависит от выбора весовой функции w и вероятностной меры Q. Уже здесь отметим, что если искажения ковариантны по вероятности, то классический метод оценки по максимуму правдоподобия приводит к G-инвариант но му распознаванию. Действительно, если функция плотности р в (15.3) существует, то ясно, что р (g-】dg) = р (d) для всех g w G. Распознавание по максимуму правдоподобия состоит в решении экстремальной задачи
p(d) = max для всех i и d, удовлетворяющих di =产,(15.10) и в распознавании чистого образа 為,которому принадлежит /о, где /о — чистое изображение, по предположению реализующее максимум совместно с некоторым искажением g ^G, причем (gdg^) gIQ = glf^ Поскольку p(d) = p(gdg-) отсюда следует, что искаженное изображение g严,которое подобно 严, будет распознаваться как относящееся к тому же самому чистому образу В。,что и 产.Следовательно, распознающая функция определяет отображение^ в ^а,так что она G-инвариантна.
Когда используется распознавание по максимуму правдоподобия, следует помнить, что свойства оптимальности, которыми должны обладать оценки по максимуму правдоподобия, доказаны в большинстве случаев для ситуации, когда выборочное и параметрическое пространства суть конечномерные евклидовы пространства (фиксированная размерность в асимптотических результатах). Имеет смысл изучить выборочные
свойства распознавания по максимуму правдоподобия, когда эти пространства искажены, так же как и алгебры чистых образов, что имеет место в распознавании образов.
IV. ГРАММАТИКИ ИСКАЖЕНИЙ ОБРАЗОВ
Построение механизмов искажений
Теперь будем считать, что грамматический разбор задачи анализа образов прошел этап выбора алгебр изображений *7,济,равно как и множества преобразований 纱,так что мы уже имеем грамматику искажений ^def. Чтобы превратить ее в грамматику вероятностных искажений, следует ввести меру Р над множеством 勿.Выбор Р должен проводиться от случая к случаю с помощью имеющейся содержательной информации об объектах, чтобы прийти к компромиссу: модель должна разумно отражать изучаемое явление и в то же время обладать аналитической или вычислительной гибкостью. Тем не менее можно установить несколько общих принципов, которые помогут при построении модели искажений.
Во-первых, нужно попытаться разложить 纱,которое может оказаться довольно сложным пространством, на множители 纱=吗 义纱2Х •••• Как мы увидим ниже, это произведение может быть конечным, счети?ым или несчетным. Иногда такое разложение задается непосредственно, например когда искажения состоят из топологического преобразования пространства фона, после которого применяется искажение маски. Во-вторых, можно извлечь некоторую пользу, изучая способ, по которому алгебры изображения формируются из элементарных частей. Если мы рассматриваем изображения, конфигурации которых имеют п идентифицируемых знаков, то можно попытаться записать
/ = di = (d[Si, d2s2,・・•,df1st2),
/ =(Si, S2,• • •, s〃)(16.1)
в надежде на то, что свойства множителей dv окажутся гибкими. Но это будет работать лишь тогда, когда знаки однозначно определяются по изображению. Вместо этого мы могли бы попытаться построить соответствующее разложение, во всяком случае для изображений подпрограмм или других компонент, которые корректно определены в рассматриваемой алгебре изображений.
Коль скоро мы оказались в состоянии разложить 砂 на достаточно простые множители, следует решить, какую именно
вероятностную меру ввести на ^. Чтобы справиться с этим, важно иметь в виду, что способ, с помощью которого искажения разлагались на множители, таков, что множители d выступают независимо друг от друга. Без эмпирических измерений полностью определить Р нельзя, поэтому для получения достаточно точных оценок необходимо иметь достаточную структуру аксиоматической модели. При определении Р это оказывается критическим шагом и требует такого понимания механизма искажений, чтобы последующий грамматический анализ не привел данные к неадекватному виду. Если мы действительно можем разложить 勿 так, что множители окажутся стохастически независимыми, то остается задача определения марги- налььгых распределений множителей. Чтобы пояснить это, будем считать, что чистые знаки порождаются посредством Lgx = О (читатель может взять в качестве £а разностный оператор), а искаженные знаки задаются с помощью Lgx == е. Первое, что нужно попробовать, — это предположить, что значения £ (для различных аргументов) независимы. Если это не годится на роль адекватного приближения, можно попытаться устранить такую зависимость, работая не с самим %, а с некоторым его преобразованием (возможно, линейным). Другими словами, выбираем грамматику так, чтобы модель искажений имела простую вероятностную форму. В качестве другого примера рассмотрим контрастные образы (см. разд. 11) с дискретным пространством фона X. Можно попытаться смоделировать Р, предполагая, что различные точки пространства X отображаются независимо друг от друга в пространство фона 夕卫.
До сих пор мы использовали иерархическое построение грамматик образов. Чтобы сузить выбор маргинальных распределений, которые должны быть определены, обратимся к той роли, которую играют преобразования подобия. Снова, если наша ^def выбрана удачно, можно надеяться, что Р обладает соответствующим свойством инвариантности. Таким образом, если / и Г — подобные чистые изображения, т. е. /' = g/, нужно сначала изучить возможность того, что di и dr = dgl имеют одинаковые распределения вероятностей. Или же можно попытаться смоделировать Р, постулируя, что gdl имеет такое же распределение вероятностей, что и dgl: это приводит к ковариантности по вероятности (см. разд. 15). В разд. 17—— 20 будет несколько подробнее показано, как это можно сделать.
Применяя такие принципы, мы окажемся в состоянии определить аналитический вид Р; оставшиеся свободные параметры следует оценивать эмпирически.
Итак, мы обсудили определение грамматики вероятностных искажений ^ргоЬ. Если же нас интересует грамматика метриче-
ских искажений g^et, следует снова обратиться к тем же принципам: разложение 勿 на множители, независимость множителей (здесь это аддитивность субметрики) и инвариантность метрики.
Искажение образов перестановок
Прежде всего рассмотрим простые грамматики образов перестановок из разд. 7. Если все координаты xv различны, то можно считать, что они принимают значения 1, 2, ...» п; обозначим их так:
Si = (1, 0, 0, ..., 0),
52= (0> 2, 0, ..., 0),
sn — (0, 0, 0, ..., 〃)•
Если G состоит из циклических перестановок, образы 夕= =夕/G можно образовать, исходя из прототипа / (вектора из нулей и единиц) и изображений, подобных /. Теперь об искажениях. Пусть 勿 состоит из преобразований d, которые мы разлагаем на множители d】,d?,.・・,d加 Каждый множитель dv принимает значения в G, и мы положим
In — di = d (xi, %2, • • • , %九)===(%l+d[, %2+d?,• • • > %九+d九).(17.2)
Превратим эту грамматику искажений 乡def =(9,勿,尸) в вероятностную, %гоь, если определим вероятностную меру над 勿,задав условие, что 或 независимы и имеют одинаковые распределения P(dv = g) = pg. Заметим, что при построении данной модели мы точно следовали указаниям разд. 16.
В данном случае все оказывается особенно просто, так как j® = GXGX ••• XG (п раз) и группа G коммутативна, поэтому 乡def ковариантна и тем более ^ргоь ковариантны по вероятности.
Если искажения менее похожи, когда | dv | велико, d” = =土 1, 土 2,・..,может представить интерес следующее распределение (и его варианты):
% = const • cl g L g = 0, 土 1, ± 2, ...» (17.3)
где положительная константа с меньше единицы. Мы вернемся к этому ниже. Больший интерес вызывает другое построение, которое не раз будет использоваться. Пусть II ——распределение над G с соответствующими вероятностями Hg. Пусть Р, (g) > 0 -~ меры однородного по времени стохастического процесса с независимыми бесконечно малыми приращениями над G, начинающегося в точке g = 0 при / = 0 и имеющего II в ка-
честве распределения скачка. Это означает, что в интервале времени (/,/ + &) процесс остается в том же самом :осгоянии g с вероятностью 1 — 8, но с вероятностью вПЛ 4- о (е) он внезапно переходит в состояние g + 〃, % 巨 G. Тогда, используя обычное рассуждение, имеем
^Я1 = 一匕3 + 2匕⑷й一, (17.4)
Для данного П эта система из п дифференциальных уравнений первого порядка с постоянными коэффициентами может быть решена с помощью обычных методов. Решение принимает особенно простой вид. если использовать преобразование Фурье
(17.5)(17.6)(17.7)(17.5)(17.6)(17.7)八9 = £ ?(2冗?貝y/九)p, (g),^ ^ G
(17.5)
(17.6)
(17.7)
(17.5)
(17.6)
(17.7)
fl (у) н 2 e^igV/n)п(g)?
тогда система приводится к виду
综世=一22十^(Y)n(Y), YWG.
Отсюда
р, (?) = «т Uf (叫 Y 曰 G,
и с помощью обратного преобразования Фурье получаем
Р/®) = :2 efu内仞一 / [1 一仃⑴](17.8)
Рассмотрим частный случай, когда П равномерно над G, 儿 三/ гак что П (у) = 1 при у = О и П(у) = 0 в противном случае. Гогда
2(。)=4+口寸
Р力(g) = ^ (1 - L,g喚0.
В системе (17.4) параметр t измеряет степень искажения В乡prob・
Пусть, например, мы хотим распознать искаженное изображение, которое относится к одному из образов *“ %,…,俨р из 今=U]G. Допустим, что весовая функция w (см. разд. 15) задается посредством
(1, если распознавание правильное,
I 0, если распознавание ошибочное,
К
Какая G-инвариантная распознающая функция <р (/) со значениями в 0 максимизирует ожидаемый выигрыш
Ew (^а, ^(I)) = EP {I ^^{1^1^(17.11)
Нужно просто выбрать 屮(/口), равную тому 0°, а= 1, 2, ..., р, для которого
Р (勿а| 严)= тах.(17.12)
а
Заметим, что условная вероятность в (17.12) зависит лишь от того, к какому классу подобия / принадлежит, так что результирующая распознающая функция окажется G-инвариантной, как и требовалось. Если все образы 夕° имеют одинаковую вероятность 1/р, то (17.12) можно заменить на
Р (/" в наблюденном классе подобия | / 三夕°) = max. (17.13)
Читатель узнает в этом условии обычное байесовское решение из теории решений, а в (17.13)——решение по максимуму правдоподобия. Что происходит с этим решением для частного случая образов циклических перестановок?
Имея наблюденное изображение 严=也卜 уъ ..., yj, где yt принимают некоторые из значений 1, 2, ..., п, мы сначала должны найти dv и g, для которых существует а, такое, что 尤;+%+g = %,v== 1, 2, ..., n,(17.14)
где /a = (%(?,尤(弘...,%(?) — прототип ^a. Вычислим значение (17.13):
'•九(a*) = max L(d*, g*, a*),(17.15)
d*, g*
где d* и g* удовлетворяют условию (17.14) при a = a*. Оптимальное распознавание соответствует выбору а*, максимизирующего 九(а*), и остается лишь вычислить
Если (17.3) взято в качестве определения механизма искажения, то следует искать такие a*, d*, g\ чтобы решить задачу
X d; + g* = min.(17•⑺
v=»l
С другой стороны, если выбрать в качестве такого определения Р соотношение (17.9), то нашу задачу можно свести к
р(0)M(d",a*)
iр;(6——=тах>(17.18)
где
M(d*, g", а*) = (число таких v, для которых d; + g* = 0). (17.19)
Но так как Pt (0) > Pt (g), то это равносильно
М (d*, g*, а*) = max.(17.20)
Отметим, что в этих двух случаях мы фактически пришли к распознаванию по минимуму расстояния (см. разд. 14). Действительно, выражение в (17.17) предполагает норму 厶,в то время как (17.20) соответствует неопределенной метрике в R' (хотя определенной в 夕/G):
6 (х, у) = min (количество % + g,%)•(17.21)
До сих пор рассматривался довольно частный случай анализа образов, но его можно распространить дальше. Допустим, что мы в принципе имеем доступ лишь к п неподобным знакам S” $2,・••, S", так что рассматриваются только конфигурации вида (gi Si,g2 s2,. • •,g"S"), а изображения идентифицируются посредством их составных знаков. Тогда произвольное изображение можно записать в виде / = (gb §2» • • •» g/, и мы имеем групповые образы из разд. 10. Это можно превратить в грамматику вероятностных искажений, постулируя
(d = (4, d?, • • •, d"), d~ w G,
I d/= (d[gi, d2g2,4igJ(17 22)
J все 以 независимы с одинаковой'
I маргинальной вероятностью Pg.
Для простоты предполагалось, что множество G конечно или счетно; его можно непосредственно видоизменить для непрерывного случая. Рассуждая в основном так же, как и выше, приходим к следующему алгоритму распознавания: выбрать а таким, чтобы достичь
maxfl Р (17【23) a,g v=l "vg% g
где /a = (gai‘ ^а2» • • •» Sa^ — прототип образа 夕a и искаженное изображение 产=(从,坛,…・,/г) Допустим, что существует инвариантное расстояние 6 на G, такое, что
'Pg = ^[^ (g,吼
(17.24)(17.24)Ф (6)——положительная, убывающая и субэкспоненциальная, 、屮(0)・屮 © + 62)<(p (6j) • ф ®2)・
(17.24)
(17.24)
Введем функцию ф на G X G:
屮(g/) = — log^^(17.25)
и функцию ф на ? X ? = ?% X ?":
屮"1,,2)== X 屮(g*v,九 J,(17 26)
厶=(gl,g2,• • •,gJ 厶=Si,九2,— •'力)
Ясно, что 2 и qp неотрицательны и симметричны по своим аргументам и что tp(g, g) = qp(/, /) = 0. Далее, если(р(/, /) = 0, то из характера убывания ф следует, что ^(gVi Av) = 0, так что 6(gv, 〃J = 0, gv = hv, Vv. Наконец, для любых g9 h, k ^ w G имеем
6依鹏)《6@3 + 6(居由,(17.27)
так что.
log -Ф(1(£1^ < _ !(17.28)
& 屮(0)、0 ф(о)
Используя свойство субэкспоненциальности, получаем
g —& — log —ф(0)——~,(17.29)
так что qp и 屮 удовлетворяют неравенству треугольника. Следовательно, ф ——(инвариантное) расстояние. Но выбрать а и g такими, что максимизируется (17.23), — это то же самое, что выбрать их так, что
虱严,g/a) = min・(17.30)
Другими словами, мы снова пришли к распознаванию 〃о минимуму расстояния (см. разд. 14).
Возвращаясь к грамматике перестановок, описанной в конце разд. 7, введем искажения способом, существенно отличающимся от ранее изученного. Пусть / + {%订:/=1, 2,〃,
/==/-]- 15 j + 2, ..., “} и искаженное изображение /筋 имеет вид 产= d/={w/}, где при / < /-
(尤订 с вероятностью р,
J・(17.31)
(1 ——尤订 с вероятностью 1 ——р.
Нет необходимости рассматривать случай £》/, так как и //• матрица, и х-матрица будут считаться симметричными. Все п(п — 1)/2 переходов %〃一>%〃,/</, должны быть стохастически
независимыми. Фактически в этом построении мы просто следуем указаниям разд. 16. Чтобы в этом убедиться, зададим d={d 小 z = 1, 2, ...» n, / = / + 1, z + 2, ..., n}, где d“ = 0 или 1 и y“ = x^ + d”, f < /, где ”+“ обозначает сложение по модулю 2. Следовательно, искажение d разбивается на независимые элементарные части d^ с одинаковыми распределениями; фактически искажения аддитивны. Эта грамматика ве、 роятностных искажений не является ковариантной, но она ковариантна по вероятности. Исходя из наблюденного искаженного изображения 产=dl =也廿}, осуществим распознавание чистого изображения / по максимуму правдоподобия. Это сделать легко, поскольку максимизируемое выражение есть
(17.32)(17.32)Р (严⑺=匕=d ⑷(1 _ p 严⑷=const . d(d)
(17.32)
(17.32)
1 - p
где 6 (d) — число d订抄Q, / < j. Следовательно,(几卩 < q) нужно распознать в 1^ изображение, порожденное тем / w 夕,для которого расстояние 6(/紛,/) является как можно меньшим: в этом частном случае мы также приходим к распознаванию по минимуму расстояния.
С другой стороны, если исходными были определенные чистые образы 俨卜 俨2, ..., 0р 三 夕/G с одинаковой вероятностью Q(W,= 1/р и отыскивался наилучший среди них в смысле (17.13), то нужно вычислить функцию, определенную на ?Х?:
f(hJ^= Z 产.(17.33)
d 11 三 G/2
Поскольку f вполне инвариантна, то она действительно корректно определена на ^^ X 0^・ Наилучшее распознавание достигается выбором такого ^г> для которого
f (外,f) = max,严三夕.f (外,f) = max,严三夕.(17.34)(17.34)18・ Искажение плоских образов18・ Искажение плоских образовПри переходе отПри переходе отпростых образов,простых образов,описанных в предыдущемописанных в предыдущемразделе, к образам на плоскости следует рассчитывать на большее разнообразие механизмов искажений. По мотивам, обсуждавшимся в разд. 8 и 9, мы сконцентрируем внимание на линейных образах. Используя идеи, развитые в разд. 16,разделе, к образам на плоскости следует рассчитывать на большее разнообразие механизмов искажений. По мотивам, обсуждавшимся в разд. 8 и 9, мы сконцентрируем внимание на линейных образах. Используя идеи, развитые в разд. 16,
f (外,f) = max,严三夕.
f (外,f) = max,严三夕.
(17.34)
(17.34)
18・ Искажение плоских образов
18・ Искажение плоских образов
При переходе от
При переходе от
простых образов,
простых образов,
описанных в предыдущем
описанных в предыдущем
разделе, к образам на плоскости следует рассчитывать на большее разнообразие механизмов искажений. По мотивам, обсуждавшимся в разд. 8 и 9, мы сконцентрируем внимание на линейных образах. Используя идеи, развитые в разд. 16,
разделе, к образам на плоскости следует рассчитывать на большее разнообразие механизмов искажений. По мотивам, обсуждавшимся в разд. 8 и 9, мы сконцентрируем внимание на линейных образах. Используя идеи, развитые в разд. 16,
определим несколько моделей, которые обещают быть полезными при анализе образов.
Начнем с алгебры изображений 夕,состоящей из криволинейных отрезков, комбинируемых в соответствии с данными правилами грамматики. Запишем чистые изображения в виде / = /(%, //) —функции выделения криволинейных отрезков, составляющих /. Первым приходит на ум следующий простейший механизм искажения. Пусть 勿一множество отображений d плоскости в себя; определим искаженное изображение /& соотношением
虑,》)=〃(%,切=/та, у》, (18.1)
причем над 勿 должна быть задана вероятностная мера Р. Заметим, что в такой грамматике вероятностных искажений искажения представляются посредством искривлений всей плоскости, фона или носителя изображений, а не посредством операций над знаками и конфигурациями. Поскольку это специальный случай важного класса контрастных искажений, его рассмотрение отложим до разд. 19.
Вместо этого изучим искажения посредством отделения знака, взяв за исходную модель чистых евклидовых линейных образов (см. разд. 8), в которой изображение состоит из одного знака. Пусть чистые образы определены выражениями ,
喏=力心), г=1, 2,・・・,р; sw[0, 1], (18.2)
где функции fr (s) — аналитические. Так как теперь G состоит из параллельных переносов и вращений, то, чтобы определение было полным, следует зафиксировать тройки b = (%о, Уо,屮о), где (%о, у。)——координаты начальной точки (s = 0) кривой и(р0 ~ угол наклона ее в этой точке. (Чтобы быть точным, необходимо различать два случая: один ——когда отрезок кривой ориентирован, другой ——когда его направление не задано.)
Для евклидовых линейных образов изображениями служат геометрические объекты, и такими же следует считать искаженные изображения, записывая
* = %(s) + e(s), r=l, 2,・・・,р; s 三[0, 1], (18.3)
где 8 (s)——стохастический процесс, непрерывный по вероятности. Единственное существенное ограничение состоит в том, что для правой части мы выбрали аддитивную форму; нетрудно видоизменить предположение о независимости распределения вероятностей е-процесса от г — номера чистого образа 乡厂 Для опре-
делейности допустим, что 8 (s) — стационарный гауссовский процесс с нулевым математическим ожиданием и с ковариантной функцией ае-б", s > 0; d не влияет на тройку Ь. Ясно, что эта модель ковариантна. Как получить распознавание по максимуму правдоподобия?
В пространстве функций 4r = ^―, s w [0, 1] для р различных образов должны быть р вероятностных мер mb т2, ..., тр. Выразим их все через производные Радона — Никодима 厶 三 1, 丄也,厶3,・• •,厶р, взятие по tn।.
m.(18.4)
E
Но для решения такой задачи можно использовать один хорошо разработанный метод (см. [2]). Рассмотрим отношение правдоподобия 1Г для значений
% ='” = 1,2, ・・・,〃•(18.5)
Используя то, что е-процесс является марковским, получим
1г = ехр — у- (Qr — Qi),(18.6)
где
Qi — Q「= ^ [2% (0) 3 (0) 一 2b (0)屮(0) + ^ (0) 一 芹(0)] +
[屮(露)嗚)]*
XK '^-T1) - с'/呼G) - f 1 (安1) + ef i(^-)] +
Известно, что при /г -> оо предел /г существует и равен Lr. После некоторых элементарных Преобразований этот предел
можно представить в виде Аг — Ль где
4 = /h(0)屮(о)+ 4^(о)—
一专[% (0) + В; (0)]屮(0) + 专田⑴ + 用(1)]屮(Ц +
+ -^\Ur(s) + ^(s) 2W(s)曲一 о
一圭 \[*(s) —咻(s)B(s)ds = о
=粤[f「(0)— % 户(0)] + 陪 F ⑴ + % 斤⑴]+
+ *\[/「(s)-f;(s)]B(s)ds — ~0
—\ [* ⑻ + 6% ⑹了 ds-}-^fr (0). (18.8) о
Это выражение не столь сложно, каким оно может показаться с первого взгляда. Это линейная функция трех величин: 成=屮(0), в)=屮⑴,
J(18.9)
a「=,[B»「(s)-f;(s)]44s)ds・
Трех таких проб достаточно для процедуры распознавания. Первые две из них суть локальные измерения на концах криволинейного отрезка, составляющего знак, тогда как третья представляет собой глобальную величину. Если искажения нерегулярны вдоль знака, что соответствует большому значению р, то вид выражения (18.9) указывает на то, что для целей распознавания третья величина окажется наиболее информативной. Во всяком случае, чтобы максимизировать Lr, нужно просто вычислить Аг для наблюденных значений 4r и выбрать тот образ 俨у, для которого Аг принимает наибольшее значение.
Так было, когда изображение состояло точно из одного знака (в данном контексте мы имеем дело с идентификацией посредством максимально связанной компоненты, см. разд. 4 и 8, однако эта модель легко обобщается). Пусть чистое изображение / состоит из п знаков (криволинейных отрезков) sb s2, •・• ...,s九,каждый из которых является максимально связанной
компонентой. Зададим его v-й знак натуральными уравнениями 需卄依), 『1, 2,.・.,n; sw[0, 1]・(18.10) Здесь 产)равно некоторому fr. Нужно также задать начальное условие bv — (x^\ у^\ 屮俨)при каждом значении ”. То же самое делается для чистого изображения. Искаженное изображение представляется в виде
d^ = fv(s) — sv (s),
где ev (s)——стохастический процесс, как и прежде,斗”——стоха- стический 3-мерный вектор. Поучительно рассмотреть два крайних случая.
В первом из них предполагается, что все ev и п” независимы. Так же, как и раньше, вычисляем производную Радона —* Никодима Lr, но теперь как произведение и сомножителей, каждый из которых соответствует одному знаку. Каждый такой сомножитель в свою очередь разлагается на два, один из которых относится к уравнению для кривизны 4rv, а другой ——к начальному условию 产.В конечном счете, чтобы распознать чистый образ 俨尸 будем максимизировать £г.
В другом, диаметрально противоположном случае предполагается, что даны процесс £(s) и стохастический трехмерный вектор ”,такие, что %($) = £($), % = Vv- Снова можно провести аналогичную процедуру распознавания, но ее результат, конечно, отличается от результата предыдущей процедуры. Можно описать множество промежуточных случаев.
Как читатель уже наверное заметил, эти построения в точности следуют общему предписанию, намеченному в разд. 16.
Теперь можно продвинуться дальше при изучении искажений дифференциальных линейных, образов (см. разд. 8). Пусть чистые знаки порождаются дифференциальными уравнениями первого порядка вида
У = 〃(%,у), (18.12)
(18.13)(18.13)где а, как обычно, — параметр подпрограммы. Это уравнение, конечно, должно быть инвариантным относительно преобразований подобия. Вместе со значениями концевых точек дуги соотношение (18.12) задает чистый знак. Пусть искаженный знак задается посредством стохастического дифференциального уравнения
(18.13)
(18.13)
炉(居力+ £ (鸠y),
где в ——стохастический процесс, такой, что вероятностная мера области дифференциального линейного элемента (18.13) является G-инвариантной. Тогда искажения в 勿 ковариантны по вероятности и дальнейший поиск наилучшей распознающей функции можно проводить в том же направлении.
В качестве примера рассмотрим случай, упомянутый в конце разд. 8. Пусть,。(%, у) = о(%/у); любая заданная подпрограмма а связывает с ней гладкую функцию о(〃) действительного переменного и = у/%. Пусть £ (х, y) = W (у/х), где W ——винеровский процесс. После некоторых элементарных вычислений получим производные Радона — Никодима, выраженные через пять проб
а】=〃о, & = 〃i, 的=(的,
% =,0〃 (") yf (")血,
где 〃о н 〃i ——значения у/% в концевых точках наблюдаемой дуги. Попутно отметим, что иногда (точно так же, как здесь) можно найти оптимальную распознающую функцию, не прибегая к явному решению дифференциального уравнения.
На самом деле, та же идея применима и к более общему понятию граничных образов (см. разд. 10). Взяв за исходный некоторый чистый знак s = [o;仇,灰,...,%], можно разложить искажение на составные элементы. Один из этих составных элементов преобразует подпрограмму о в другую подпрограмму о° из некоторого пространства, как правило, намного более широкого, чем S, и назначит вероятности возможных значений о". Другие составные элементы преобразуют граничные условия &ь 匕2, •・・, bp в соответствии с определенными распределениями вероятностей. Можно попытаться выразить алгебру чистых изображений таким способом, что случайные значения этих различных функций окажутся независимыми, как это предлагалось в разд. 17. Если читатель вернется к моделям, описанным в данном разделе, то станет ясно, что мы добились своей цели.
Поскольку образы множеств уже рассмотрены, то вряд ли необходимо отмечать, что если информация передается посредством границ, то дальше можно идти так же, как и выше. Вместо этого рассмотрим другой тип образов множеств. Пусть чистое изображение состоит из выпуклых многоугольников на
плоскости. Тогда изображение / можно выразить через п знаков Si, $2, ..., S", состоящих из полуплоскостей: / == «1 П s2 П ... ...А «м (см. конец разд. 9). Преобразования подобия состоят из параллельных переносов и вращений. Искажение изображения / окажется реализацией пуассоновского процесса с интенсивностями 九 1 внутри / и 九2一 вне /, где для определенности 九】< Л2- Тогда /" = d/ нельзя описать через свою границу; это множество состоит лишь из изолированных точек. Такая модель отвечает одному из довольно редких случаев, когда условие 夕 и 5砧 не выполняется.
Допустим, что мы можем наблюдать /^ в некотором подмножестве плоскости, например в единичном квадрате, и известны углы наклонов прямых, ограничивающих полупространства. Как найти хорошую распознающую функцию? Это зависит от того, насколько ограниченными оказываются знаки.
Во-первых, допустим, что для любого конкретного образа 9r форма чистого изображения (но, конечно, не его расположение и ориентация) полностью известна. Производную Радона ——Никодима можно найти способом, аналогичным тому, который использовался ранее в этом разделе:
& = 0-九m (g/「)f 2 [1*(g〃)]・九;(g〃). ^n-v(g〃), (18.15)
где Ir — прототип r-го образа, g — преобразование подобия, переводящее этот прототип в действительное чистое изображение. Под т (/) мы подразумеваем площадь /, a v (/) обозначает число пуассоновских событий, наблюденных внутри /. Тогда распознавание по максимуму правдоподобия может быть основано на пробе
ar = min ^{ — Л2) т (g/ r) + v (g/r) • log^~}; r=l, 2, 一 .,p.
(18.16)
После вычисления этих р проб распознается тот образ 俨力 для которого аг принимает наименьшее значение.
Во-вторых, если форма изображения заранее не определена, то можно попытаться применить тот же подход. Поскольку это приведет к недопустимо большому количеству вычислений, возможно, более предпочтительно определять каждый знак в отдельности. Рассмотрим полуплоскости, соответствующие определенному направлению, и спроектируем искаженное изо- б ражение на координатную ось ортогонально этому направлению. Через хь %2,•••, ^п обозначим проекции пуассоновских событий на эту ось. Пусть переменная единичного квадрата % меняется от х = а до х = Ь, а проекция чистого изображения /
меняегся от х = и до х = ", а^и <Z^^b, где аир, разумеется, неизвестны (см. рис. 3). Если ц (х) dx обозначает длину элемента единичного квадрата, спроектированного на ось %, то мы
имеем функцию 11равдоподобия (с точностью до константы)
£53 (九)=九?7 з А ехр {—九1 [{ + ]卩(%) dx } • A?厶,
〃°(18.⑺
где v (a, 8)——число пуассоновских событий при a < xv < р. Сначала максимизируем (18.17) как функцию от 九 при условии
九 > 储,林⑶d%(18.18)
и получим значениез
入*(а, р)= тах 乂 九,卩(x)dx .(18.19)
Мы должны выбрать (a, Р)при условии а《а<:р《" так, чтобы
九]、卩(%)。火十 v (a, 8) log 丄 jrl丿-―九* (а, [В)(18.20)
принимало наибольшее возможное значение. Свойства распределения этой распознающей функции неизвестны и должны быть изучены.
Искажение контрастных образов
В разд. 11 отмечалось, что понятие контрастных образов, которое является довольно общим, естественно лишь тогда, когда пространства фона и контраста задаются как известные математические объекты. Тогда можно построить модели искаженных образов и различать 2 случая. Основной случай заключается в том, что лишь пространство фона (но не контрастное пространство) подвергается воздействиям искажения, в другом случае искажается контрастное пространство. Оба эти случая разделяются на подслучаи в зависимости от того, все ли 卫зо・ бражение сразу искажается, или его знаки искажаются независимо.
Модель для искажения фона. Рассмотрим конт* растную грамматику 乡=(X, С, S, G), и пусть 2 — пространство отображений 自 множества X в себя. Введем вероятностную меру Р над S. Она переводит 乡 в грамматику вероятностных искажений посредством введения искажений
d: 1 = I (х) ^ 1^ = I (^ (х)). (19.1)
В общем случае мы не можем предположить, что отобра жения Е фона переводят множество X на все X. Если это не так, то часть чистого изображения / ~ / (х) будет утеряна, а именно часть / (х), соответствующая значениям X, которые не охвачены отображением ^ = ^(х). Обозначим через 渺(/) множество значений функции 1=1 (х), „запас стоимости'*), и аналогично через 场(产)一множество значений искаженного изображения 产⑶,d/ = /(自(尤)).Ясно, что 呼(严)и 呼(/) и С.
Пусть для определенности W (I) — счетное множество, состоящее из значений (в контрастном пространстве С) Wb 呼2, 呼3, ..., одинаковых для всех / 三? (в более общем случае мы могли бы разложить С на некоторые а-алгебры подмножеств). Пусть
X, (产)={%1乳%)三 L(%)}, (19.2)
где обратная функция /一1 возможно, многозначная. Тогда функцию правдоподобия можно представить в виде
L(I) = P^(X.(严)и Г1 ”J, V v}, (19.3)
если она отлична от нуля, или в более общем случае в виде производной Радона ——Никодима.
Распознавания по максимуму правдоподобия можно достичь, если выбрать то чистое изображение, для которого L (/) принимает наибольшее возможное значение. Под 自⑷,как обычно, понимается множество точек, полученных при допущении, что Е отображает каждую точку Л в отдельности в X. Если функция 自-i однозначна, то (19.3) можно упростить и знак включения заменить на равенство.
Как отмечалось в разд. 16, эти грамматики искажений можно описать динамическими моделями. Чтобы проиллюстрировать это, рассмотрим следующий простой механизм искажения. В качестве исходной возьмем грамматику чистого контраста при X = [0, 1] и С = R\ имея преобразования подобия вида gx = xg, g〉0, и используем символ g как в качестве группового элемента, так и в качестве положительного числа, которому он соответствует. Иными словами, имеем
击^g% = * °《%&1,(g/=o=L (19.4)
Будем рассматривать чистые изображения вида /(%) = %°, oW%《i, а > 0. Введем искажение посредством отображений Е = *(%):
击・方(%)=屮,乳。)=。, М6)
где 8 (х) определяется при помощи следующей вероятностной меры. Отрезок [0, 1] разбивается событиями пуассоновского процесса с интенсивностью 卩 на отрезки f0 = [0, xj, G = = [xh х2], ..., 〃一1 =[品_i, % J 力九= [%, 1]. В отрезке Zv е-процесс принимает значение yVl где 先,уъ уъ ... — независимые положительные случайные величины с экспоненциальной функцией распределения е? // > 0. Пусть искаженное изображение есть 产(%) = f (%) = / 区(%)]・ Если обозначить координаты точек фона, для которых первая производная /'(%) имеет скачок, через У\ < у2< • • • < У— < уп ^ через 2V обозначить (постоянную) величину
2V = ) , v = 0, 1, 2, ..., n, (19.6) \ a log % /yv < x < yv^.i
то можно решить (19.3) и, предполагая, что / (х) = ха, получить, что значение £(х) между v-м и (v + 1)-м разрывами равно (^)之屮 Следовательно, сделав некоторые упрощения и отбросив мно-
житель, не зависящий от /, из (19.3) можно получить
(19.7)чистое(19.8)(19.7)чистое(19.8)丄⑺=ехР (- (tS J)
(19.7)
чистое
(19.8)
(19.7)
чистое
(19.8)
Распознавание по максимуму правдоподобия дает изображение / (х) = ха*, где
П"+1
』青二「詣冢喘9
Этот любопытный вид распознающей функции приводит нас к изображению в том образе, из которого мы исходили. Различные образы могут быть разделены с полной определенностью (но не изображения в пределах образа) в пределах этой грамматики искажений. Это является отражением того факта, что рассматриваемые искажения действительно слишком незначительны, чтобы представить практический интерес; однако наше обсуждение иллюстрирует сам подход.
Вместо этого теперь допустим, что искажение / (х) -> / [g (х)] выполняется с помощью преобразования маски. Искаженное изображение задается в виде 1^ (х) = / [^ (х)], %wXi, где X】—— подмножество множества X: мы не имеем информации о значениях 严(х) вне подмножества X】.Подмножество Х【 выбирается в соответствии с некоторым вероятностным законом В, и пусть 自 и Xi стохастически независимы и В не зависит от I. Тогда интуитивно ясно (и это можно доказать формально), что наилучшую распознающую процедуру можно найти при фиксированном X】,совпадающем с наблюденным множеством. С другой стороны, если ослабить упомянутые выше предположения о независимости, то весьма вероятно, что форма и расположение Xi помогут нам при поиске лучшей схемы распознавания по сравнению со случаем, когда Х〔 фиксировано.
Для алгебры изображений с однозначно идентифицируемыми знаками модель для преобразований фона можно модифицировать. Пусть, например, чистое изображение / состоит из п знаков Si = «1 (х), $2 = s2 (%),・• •, sn~ sn (%)• Возьмем п независимых вариантов 《匕 自2,・••,自九 отображения 自,соответствующих произведению мер над Нп, и определим искаженное изображение посредством конфигурации ⑶ 底(%)], s2 fe (%)],•••, s拉侶口 (х)])・ Тогда приведенный выше иллюстративный пример изменится следующим образом. Пусть С = R", определим чистый образ 0「, состоящий из изображений вида
/「(х)-(片(х), /「2 w, 1Гп W) - (%叫,产% ・・・,产〜),(19.9)
где а — заданные положительные числа, a g — произвольное положительное число. Искажая каждую компоненту независимо от других, получим множество чисел, вычисленных исходя из искаженного изображения:
I dlog(%)丿'(19.10)
k=l, 2, ..., n; v = 0, 1,・・・,〃広
где 严(x) = (% (%),%(%),・・・,fn W) и ykv — точки разрыва функции f;(x). Тогда функция правдоподобия по сути такова:
丄⑵=十口仁 еХР (-為z j} •(19.11)
Чтобы максимизировать ее по g при заданном г, находим значение
(19.12)
отвечающее распознаванию образа 夕力 для которого (19.11) принимает наибольшее значение при подстановке g; вместо g.
Модель для контрастного искажения. Рассмотрим контрастную грамматику 乡=(X, С, S, G), и пусть Z — множество отображений % множества С в С. Введем вероятностную меру Р над Z; она переводит 乡 в грамматику вероятностных искажений введением искажений вида
出 / = / (%)—严=% [/ ⑴].(19.13)
Однако обычно такое определение слишком узко для модели. Вместо этого можно считать, что отображение множества С в С зависит от х (которое обозначим через гх), и тогда мера Р должна быть определена на пересечении множеств。£
Простой, но типичный пример контрастных искажений получается при Х = {1,2, ・•・,〃}, C = R* G — группа циклических перестановок. Знаки могут порождаться так же, как и в разд. 7. Пусть 2% состоит лишь из операции сложения действительного числа с величинами из С, которую также обозначим через %, мера Р определяется условием, что zx образует гауссовский процесс с нулевым средним и положительно определенной ковариационной матрицей R. Это модель аддитивного шума, известная в теории связи, и ясно, что распознавание по максимуму правдоподобия сводится к распознаванию по минимуму рас-
стояние с метрикой в В, заданной в виде квадратичной формы для скалярного произведения
26 = TKU(19.14)
Если zx — циклический процесс, то R ——циклическая матрица и метрика (19.14) G-инвариантна (см. разд. 14). Тогда расстояние (его квадрат) между чистым изображением glr 巨免 н искаженным изображением 严 можно выразить посредством норм и скалярного произведения
(19.15)(19.15)貝以,,产)=13Г『一2(以「产)十們2 = = M『 - 2(“产)十俨匕
(19.15)
(19.15)
так что если распознавание выражениетак что если распознавание выражение(gJ 产)(gJ 产)(19.16)(19.16)все прототипы имеют одинаковые нормы, то состоит в выборе того образа 俨「, для которого
так что если распознавание выражение
так что если распознавание выражение
(gJ 产)
(gJ 产)
(19.16)
(19.16)
принимает свое наибольшее значение: распознавание посредством максимума скалярного произведения. Однако, если бы контрастные искажения z были заданы в несколько более общем виде
2 {/(%)} = а/(%) + %, (19.17)
где zx имеет такие же свойства, как и раньше, и а — действительная константа, отличная от нуля, то мы бы пришли к критерию
max I коэффициент корреляции между У*0(х) и glr (х) | (1J.18)
и был бы выбран тот образ 俨「, для которого (19.18) имеет наибольшее возможное значение. Коэффициент корреляции тогда можно интерпретировать в терминах скалярного произведения, соответствующего матрице RT Если норма чистых прототипов не меняется по г, мы снова приходим к распознаванию по максимуму скалярного произведения: в противном случае можно говорить ‘)распознавании по максимуму корреляции.
Поскольку это довольно просто, то нет необходимости в дальнейшем обсуждении; отметим только, что эту модель можно непосредственно расширить для рассмотрения искажений отдельных знаков.
Приведем одну из возможных простейших грамматик искажений для контрастных искажений. Пусть 夕 состоит из п- мерных векторов с двоичными компонентами. Композиция изображений определяется как покомпонентное сложение векторов по модулю 2. Преобразования подобия циклически пере-
ставляют компоненты, и мы исходим из р образов 勿卜 勿2,・・・ ・・・,夕р в 57G. Искажение d разлагается на элементарные части Дем. разд. 16)山,丛,・・•, d九,каждая из которых имеет распределение вероятностей
尸(厶 = 1) = p,
Р (dv = 0) = 1 — р,(19.19)
0<р<|,
причем все 厶 независимы. Положим
产=/ + %(19.20)
так что можно искать тот ^г, для которого биномиальная вероятность
C»r(l _p)f(19.21)
имеет наибольшее возможное значение; здесь
^r=minE l/@-/;+g|・(19.22)
g V=1
В сумме (19.22) читатель узнает расстояние Хэмминга, и ситуация здесь такая же, как в алгебраической теории кодирования. Решающее правило таково: минимизировать расстояние Хэмминга.
Другая грамматика искажения, которая имеет некоторое сходство с моделью контрастного искажения, исходит из линейного оператора L. Хотя все то, что последует, можно в значительной степени расширить, читателю, возможно, будет приятнее иметь дело с L — одним из классических самосопряженных дифференциальных операторов второго порядка над некоторым множеством X, скажем над интервалом (0, 1). Пусть L имеет (простые) собственные значения 九】,Z2, ..., соответствующие полной ортонормированной системе собственных функций ф! (х), ф2 W, .... В качестве устройства для порождения знаков из S используем уравнение
川=故.(19.23)
В качестве группы G преобразований подобия выберем операции f f с ・ f (умножение на произвольную действительную константу с)・ Можно также допустить определенные преобразования X на себя, но здесь мы этим заниматься не будем.
Тогда изображениями служат (дважды дифференцируемые) вещественные функции на X, знаки являются кратными 屮”, в то время как в качестве эталонов можно взять сами (pv.
Исходя из изображения / (х), введем функцию 厶/(%)=屮(%), а искаженное изображение представим стохастическим дифференциальным уравнением
L产(%)=屮(%) + 侬(х), (19.24) где w (х) — ортогональный процесс с нулевым средним, который однороден на X вдоль линий, описанных в разд. 16. Однако w (х) можно представить в виде
ОО х
侬(尤)=2 侬V \(pv (%) dx, (19.25)
V=1 о
где wv ——некоррелированные случайные величины с нулевым средним и постоянной дисперсией а2. Выражая Г0 (%) через его коэффициенты /% и / (х) — через коэффициенты /v, получаем
片= /, + %, (19.26) где 2” =侬丿九丫 некоррелированны и имеют дисперсию а2Д?. Заметим, что свойство некоррелированности переносится с временной области в „частотную область" v. Для еще большего уточнения допустим, что 侬V независимы с двойной экспоненциальной плотностью распределения e-I^L Тогда максимальное правдоподобие состоит в выборе того образа 俨「w 夕/G, для которого величина
minSK-^|4 (19.27) С V
принимает свое наименьшее возможное значение. В нашей алгебре изображений ?^ (напомним, что изображения имеют конечное число знаков) сумма в (19.27) определяет расстояние, так что G-инвариантное решающее правило является процедурой распознавания по минимуму расстояния.
В разд. 15 было показано, что если искажения ковариантны по вероятности, то можно избежать определенных трудностей и найти G-инвариантные процедуры распознавания. Нет никакой гарантии, что так будет во всех ситуациях. Чтобы показать это на непатологическом примере, достаточно рассмотреть случай, когда Х = N\ C = Rl G — группа переносов ^1 и дано р прототипов /г (х),厂=1, 2, .. , р, обращающихся в нуль всюду, за исключением конечного числа значений %・ Пусть искажения задаются формулой
d: / (%) f 严(%) = /(%) + е (х), (19.28) где 8 (х) — гауссовский стационарный эргодический процесс, скажем независимый для различных х. Допустим, что существует
G-инвариантная процедура для распознавания р образов. Тогда выборочное пространство 产(х), х ^ №, разобьется на р непе- ресекающихся О-инвариантных подмножеств £ь £2, ..., Ер, соответствующих р возможным результатам алгоритма распознавания. В силу эргодичности е вероятностная мера, приписываемая множеству Ev> должна равняться либо нулю, либо единице. Однако можно показать, что вероятностная мера 7^- процесса абсолютно непрерывна относительно 8-процесса и обратно. Следовательно, все £v имеют вероятности, равные О или 1, независимо от того, какое именно чистое изображение /(%) истинно, и этот метод распознавания оказывается бесполезным.
Здесь нужно нечто другое. Пусть 乡=(X, С, S, G)——по-прежнему контрастная грамматика, за исключением того, что 斗⑦ не вводится через преобразования пространства фона или контраста. Вместо этого рассмотрим множество точек 备,…,以 из X, и пусть Р — их совместная вероятностная мера над Х\ Искаженное изображение определяется посредством
产= (/(&),/&),・・・,/储))wC2 (19.29)
Заметим, что это еще один пример невыполнения условия 夕 и 夕紛;другой пример был рассмотрен в разд. 18.
Введение этой грамматики вероятностных искажений основано на идее, что иы не можем наблюдать изображение / = /(%) при всех значениях 尤 в X. Вместо этого мы можем наблюдать / лишь в п точках gi,色2, 白九,точные положения которых нам не известны. Возможно, мы предпочтем представить искаженное изображение, а не С-значную функцию на всем множестве X, полученную из значений /(^v) с помощью некоторого определенного метода интерполяции, v = 1, 2, ..., п Но это фактически ничего не меняет, поскольку при интерполяции никакая информация не создается (или, как правило, не теряется).
Проведем распознавание чистых образов 夕口 ^2,...,络 из ?/G в соответствии с прототипами /】(%), /2 (х), ..., /р (х). Рассмотрим отображение С"тХ":
C〃f色,反,,加f(备,,以)三г, (19.30)
где Ir Й1) = /ь 厶@)=『2,/「(以) = %• В общем случае отображение является многозначным. Здесь координаты /纟 мы обозначили через 九,...,fn. Тогда вероятностная мера Р над X" индуцирует вероятностную меру Рг (в общем случае зависящую от /г) над С", принадлежащим области /@:夕卫= С"・ Выразим Рг через производные Радона — Никодима /“(/【,%,,〃)отно-
сительно некоторой фиксированной меры (в случае отсутствия абсолютной непрерывности мы имеем вырожденную задачу распознавания). Тогда распознавание по максимуму правдоподобия заключается просто в поиске того 夕「, для которого 厶,(产) = тах・(19,31)
Чтобы проиллюстрировать это, предположим, что множество X состоит из точек (х, у) первой координатной четверти R2, С ——множество действительных чисел, G ——группа равномерных растяжений (х, у) f (gx, gy) множества X, где g ——также положительное число. Знаками служат линейные функции вида s = a% + by; подпрограмма состоит из тех функций, для которых alb = const. Пусть 备,备,•••,竄 имеют вид
?v = (CVl> CV2)? v = 1, 2,.・.,〃, (19.32)
где все 4V независимы и имеют экспоненциальное распределение со средним mv . Если I = ах + by, то все координаты 严
片=或》+或w,v=l, 2,・・・,n,(19.33)
независимы и f、имеет плотность распределения
А(%) =А(%) =(19.34)(19.34)
А(%) =
А(%) =
(19.34)
(19.34)
если только знаменатель отличен от нуля; тогда последнее выражение нужно заменить очевидным образом. Это означает, что мы должны распознать тот образ 0「, для которого
ппV = 1ппV = 1(19.35)(19.35)exp (] — exp [1
ппV = 1
ппV = 1
(19.35)
(19.35)
= max, ^^ - bmv2a, b
Здесь понятие ковариации не имеет смысла, так как группа G не определена над 夕紛・ Однако, если мы не применяем G к X, это равносильно тому, что mv^ заменяется на l/^mv , так что правило распознавания (19.25) приведет нас к (ag, bQ (вместо (а, Ь)): это правило G-инвариантно.
Искажение временных образов
Различные грамматики образов и их механизмы искажения нельзя четко отделить друг от друга. До некоторой степени это может зависеть от того, какую из двух возможных моделей мы предпочтем, и частично этот вопрос будет обсуждаться
в настоящем разделе с ориентацией на контрастные образы. Они заслуживают отдельного обсуждения благодаря качествам, только им присущим.
Рассмотрим чистую грамматику 9 для временных образов (см. разд. 12) со знаками s = (/), заданными в реальном времени t ^Т,Т = R{ (непрерывный случай) или Т = N] (дискретный случай). Рассмотрим множество 0 отображений т = т (/) множества Т в Т и вероятностную меру Р над т. Полагая
〃(?)=/^ (/) = /««)), (20.1)
получим грамматику вероятностного искажения 乡卩^^ типа искажений фона (разд. 19). Назовем т субъективным временем. Заметим, однако, что этот особый способ формирования изображений (посредством сцепления) некоммутативен, и он до сих пор исключался.
Преобразования времени / -> т обычно будут представлены неубывающими функциями т (/). Можно представить себе модель, в которой событие, состоящее в убывании функции т (/), имеет положительную, но малую вероятность. Если значения т (/) не включают определенного значения из 7 (когда / пробегает Т), мы потеряем часть информации, характерной для чистого изображения / = / (/). С другой стороны, если т (Z) постоянна для некоторых /, то это означает, что часть чистого изображения окажется более открытой для нашего наблюдения, когда мы просматриваем искаженное изображение.
Рассмотрим два механизма искажений. Прежде всего, можно ли грамматику 乡口^^ сделать ковариантной по вероятности? Рассмотрим конечное число произвольных моментов 厶,/2, • • • ...,tn и сравним 2 множества из преобразованных
Q: t(g/i), t(g%2), 工(g/J (20 2) b: gt«i), gt«2),…,gt&)・ •
Множество а соответствует изображению dgl, а множество b — изображению gdl. Тогда потребуем, чтобы
для любых /2,厶,^2, • • • > % н g(20 3)
g-勺(g%) = t(/v),V% в смысле распределения. '' Получили разновидность стационарного допущения. Чтобы в этом убедиться, возьмем частный случай, когда g совпадает с параллельными переносами действительной оси. Тогда (20.3) утверждает, что субъективное время должно удовлетворять соотношению т (/ + Л) — Л = т (/) в смысле распределения, кото рое выполняется тогда и только тогда, когда субъективное время можно выразить как т (/) = S (7) +/, где S (/) — стационарный (в строгом смысле) случайный процесс.
Еще более уточним вид ^ргоь. Рассуждая так же, как и в разд. 16 потребуем, чтобы приращение субъективного времени т на малом интервале (/, / + ^) (объективного) времени / не зависело от искажений в любом другом месте. Будем также полагать, что распределение приращения одинаково для любого интервала (gZ, g(Z + 3)・ Если G снова состоит из параллельных переносов, то процесс т (/) должен быть однородным во времени и независимым от приращений.
Чтобы проиллюстрировать эту довольно гибкую, модель, которую назовем грамматикой субъективных временных образов, изучим два частных примера.
В первом примере изображение состоит лишь из одного знака. Если знаки имеют различные множества значений, то безусловно можно распознать / по данному 产:идеальное распознавание без ошибок. Аналогично, если различные знаки характеризуются свойствами, не изменяющимися под воздействием 勿,то можно проделать то же самое. Если s】возрастает и $2 убывает, то нет сомнения в том, какой из этих двух знаков имеет своим источником /^. Конечно, это следует рассматривать как вырожденный случай, но нужно понимать, что такие возможности существуют. Пусть, например, имеется лишь 2 знака S=(sif s2), где
s"⑴У::"' 0(20-4) (0 при &v < / < 1,
Тогда положим Т = (0, 1). Пусть субъективное время задается как непрерывный (по вероятности) процесс с независимыми приращениями, такими, что плотность распределения величины т (/ + й) — т (й) типа Г-функции:
九(》=志"""ё「 0<% < oо. (20.5)
На рис. 4 приведены возможные искаженные изображения.
Обозначим через р (для /J величину sup/: т(/)&%• Очевидно, что в этой весьма простой грамматике искажения величина В содержит всю относящуюся к делу информацию. В случае III искаженные изображения тождественны: /『=/f. В диаметрально противоположном случае I для обоих искаженных изображений р < 1. Может произойти, если субъективное время строго ограничено, что 1^ (/) не определено в окрестности /= 1, но это не вызывает существенных затруднений. Чтобы суметь распознавать основное чистое изображение, надо иметь распределение вероятностей для р. Но событие
{р》〃} = {т (и-0)<&}, (20.6)
где b — параметр истинного изображения, таково, что
Р ©》〃)=Р{т (〃一 0) & 九} = Р{х (〃) & 九};(20.7)
последнее равенство следует из непрерывности т (辽)по вероятности. Однако р принимает значение лишь в отрезке [0J,
Рис. 4.
Получаем
尸(6WD = P(t ⑴ W h)=击卜-"厶=1 - ?/(20.8)
о
так что функция условного распределения при р < 1 имеет вид 凡。nd (%, b)Y 臨:;=或 1 一忐 \^-%-也(20.9)
с функцией условной плотности распределения
兀 nd(x,b)= e-展胃科(20.10)
выраженной через неполную Г-функцию от х и &. Тогда алгоритм распознавания принимает вид
если р = 1, то выбрать наибольшее 6V,
если р < 1, то выбрать 九,доставляющее fcond (Р, %)(20.11)
наибольшее возможное значение.
Читатель сможет увидеть, как формулируется это правило для случая нескольких знаков в конфигурациях, при том что структура сохраняется неизменной в любом другом отношении.
Во втором примере допустим, что изображение состоит из нескольких знаков. Пусть знак s = s (/) равен 0 вне интервала is длины &, где ns — натуральное число. В is функция s(/) предполагается равной постоянному числу vs > 0. Так же, как и в более общем контексте, мы могли бы пожелать (хотя это не всегда возможно) иметь такую чистую грамматику 9, чтобы изображения анализировались однозначно в терминах знаков (см. разд. 3 — 4). Поэтому пока будем считать, что по правилу 应 любая грамматическая конфигурация состоит лишь из знаков с различными значениями с$. Пусть 7 = (0, оо), рассмотрим произвольное чистое изображение / — s(1) + s(2)+ .. .s“)
(здесь сложение некоммутативно), где s‘”)имеет длину nv с постоянным у = а~ (см. рис. 5, где также показано, как может выглядеть искаженное изображение). Будем предполагать, что /(/) = 0 для любого / вне интервала времени, соответствующего последнему знаку. Введем ^ргоЬ следующим образом:
т (/) — (число „точек** в (0, /)),(20.12)
где под „точкамии понимается событие пуассоновского процесса с интенсивностью^ равной 1. Введем моменты времени
т(/) = sup/, такие, что т(/)<Mi + п2 + ・・・ + 「4; v= 1, 2,・・・,/・
(20.13)
Так как эти параметры несут всю необходимую информацию, содержащуюся в 严,осталось только вывести распределение вероятностей для (/ь /2, ♦ • •> 厶)=2 данного / = s° +s⑵ + ... ・・• + s'" — (nb @i; n2, @2; •・・ > 〃厶 Oz)・ Разумеется, нам нужно рассмотреть лишь те чистые изображения /, для которых величины Q, совпадают с различными ординатами /&・ Плотность
совместного распределения величины % имеет вид
=「巾(\喘二(2。•⑷
Мы положили /о = О. Чтобы распознать различные возможные образы /, мы исходим из значений 几《,и по максимуму правдоподобия получаем алгоритм распознавания, решая следующую задачу отыскания максимума над алгеброй изображений ?:
У (忌一1)勿v — log-(風一1)! = max, (20.⑸
me 勿, = log(4-G_])・
Временные образы, изученные до сих пор в этом разделе, характеризуются тем, что а) знаки комбинируются посредством сцепления и б) искажения состоят из преобразования времени 6 субъективное время. Теперь сохраним первое условие, но введем грамматику искажения в предположении, что машина, порождающая подпрограммы знаков, несовершенна (см. разд. 2). Для определенности будем считать, что чистые подпрограммы о заданы разностными уравнениями с постоянными коэффициентами (см. разд. 12):
中尸 噌% +雪%一1 + • . • +嘿々-% =。・(2。・16)
Здесь / пробегает п0 последовательных целых чисел, G состоит из параллельных переносов дискретной оси времени. Чтобы добиться однозначности этого определения, включим в описание а также начальные условия для 尤加 Зададим эти начальные значения такими же, как и для % в более ранних знаках; тогда нужно будет задать начальные условия только для первого знака конфигурации. В таком случае грамматика 9 корректно определена.
Введем грамматику вероятностных искажений, заменив (20.16) на
Laxt = еь(20.17)
где 勺——независимые и одинаково распределенные случайные величины.
Такая грамматика 乡卩^^ будет называться моделью с несовершенными подпрограммами. Отметим аналогию с понятием режимов в случайных процессах. Она может комбинироваться с более ранней моделью для реализации субъективного времени.
Как по наблюденному / распознать чистое изображение? Пусть, например, / пробегает значения 1, 2, ..., 7V и мы изучаем возможность представления искажения в виде I = s{ + + $2 + • • • + s〃 где Sv w Sgv, ^-подпрограммы состоят из после
+ 几/=几.Тогда правдо- In) задается соотно+ 几/=几.Тогда правдо- In) задается соотнодовательностей длины %”, /г】+ 〃2十・・・ подобие наблюдения 产=(/工 /?,..
+ 几/=几.Тогда правдо- In) задается соотно
+ 几/=几.Тогда правдо- In) задается соотно
шением
/ 九]+九2 +・•,+九"一1
(20.18)(20.18)£(/)=П П p{LQvx^
(20.18)
(20.18)
V=1 f =九]+九2+.一+九v —]
где р (%) — плотности распределения величин е. Для конкретности допустим, что £/ =府(0, 1); тогда распознавание по максимуму правдоподобия состоит в решении задачи
2 九]+九2 +・• •+枕у —1
Е Z (^ov^)2=min.(20.19)
V=1/=九1+拉2 +.• •+九V _1/三?
В этом выражении лишь несколько величин % появятся с отрицательными значениями переменной времени, и эти значения следует заменить начальными значениями, определенными выше в чистой грамматике 乡.
Аналогично, в случае непрерывного времени, можно прийти к алгоритмам распознавания вида
г
〈["(佯产 dt = min,(20.20)
о/三J
где о (/) — кусочно-постоянны, как это определено в описании знаков, составляющих чистое изображение. Такой вид схемы распознавания, несомненно, удобен для временных образов, управляемых режимами.
Благодарности
Эта работа начата в 1965 г., когда автор был сотрудником исследовательской лаборатории Томаса Дж. Уотсона корпорации IBM в Йорктаун Хейте, Нью-Йорк. Ее инициатором был доктор Герман Голдстайн, директор по научным исследованиям, который предложил заняться общей задачей распознавания образов. На заключительных этапах работы большую пользу принесли обсуждения ее с сотрудниками лаборатории Уотсона и с доктором Уолтером Фрайбергером из Центра вычислительных машин и информатики Брауновского университета.
СПИСОК ЛИТЕРАТУРЫ
Freiberger W.. Grenander U., Computer gerserated image algebrasProc.
4th Int Cong Information Proc., North-Holland Press, Amsterdam (1969).
Grenander U.. Statistical inference and stochastic processes, A,包 Maf,, (1950).
Grenander U., Toward a theory of patterns. Symposium on probability me・ thods in analysis. Springer Verlag, Berlin (1967).
Grenander U., A unified theory of patterns, Advances in Computers, Аса de- mic Press (1969).
Hoffman W C., The Lie algebra of visual perception, У. Math. Psy., 3 (1966).
Narasimhan R., Labelling schemata and syntactic descriptions of pictures. Inf. Co/d, 7, (1964)
Pitts W., McCulloch W S., How we know universals. The perception of auditory and visual forms, Bull. Math. Biophysics, 9, (1947).
СОДЕРЖАНИЕ
Математические вопросы
Ф. Штрассе н. Сложность вычисления элементарных симметрических функций и коэффициентов интерполяционного полинома. Перевод М. В. Михайлюка5
А. Ш ё н х а г е. Элементарное доказательство оценки Штрассена. Перевод М. В. Михайлюка22
М. С. Патерсон. Сложность монотонных схем для булева умножения матриц. Перевод В. М. Храпченко28
3. Манна. Теория неподвижной точки программ. Перевод С. В. Попова 38
Д. Э. К н у т. Нисходящий синтаксический анализ. Перевод ". И. Вьюко- вой 101
Теория распознавания
У. Гренандер. Основы анализа образов. Перевод Т. М. Дадашева . . 143
УВАЖАЕМЫЙ ЧИТАТЕЛЬ!
Ваши замечания о содержании книги, ее оформлении, качестве перевода и другие просим присылать по адресу: 129820, Москва, И-110, ГСП, 1-й Рижский пер., д. 2, издательство «Мир».
КИБЕРНЕТИЧЕСКИЙ СБОРНИК № 15
Редакторы И. Маховая, Л. БабынинаХудожественный редактор В. Шаповалов
Технический редактор Л. ЧуркинаКорректор В. Постнова
ИБ № 1235
Сдано в набор 26.01.78. Подписано к печати 21.07.78. Формат 60X90*/ie. Бумага тип. № 2. Литературная гарнитура. Высокая печать. Объем 7 6yM. л. 14 печ. л., Уч.-изд. л. 12,54. Тираж 4100 экз. Изд. № 1/9707 Цена I р. 80 к. Зак. №【721.
Издательство «Мнр»
Москва, 1-й Рижский пер., 2
Отпечатано с матриц ордена Трудового Красного Знамени Ленинградской типографии № 2 имени Евгении Соколовой «Союзполн- графпрома» при Государственном комитете Совета Министров СССР по делам издательств, полиграфии и книжной торговли, Ленинград, Л-52, Измайловский проспект, 29, в Ленинградской тип。- <графнн № 4 «Союзполиграфпрома» при Государственном комитете Совета Министров СССР по делам издательств, полиграфии и книжной торговли. Ленинград, Ф-126, ул. Социалистическая,
Д. 14
I) Степень Grad Н любой гиперплоскости Н равна 1. —• Прим, перев.
Кибернетическийсборник
НОВАЯ СЕРИЯ
выпуск
Сборник переводов
Под редакциейО. Б. ЛУПАНОВА
ИЗДАТЕЛЬСТВО《МНР》
МОСКВА 1978
УДК 519.95
Научный совет по кибернетике Академии наук СССР
Продолжение новой серии кибернетических сборников, публикация которых была начата издательством «Мир» в 1965 г. В данном выпуске представлены обзорные статьи и оригинальные работы известных зарубежных ученых по наиболее актуальным проблемам теоретической кибернетики. Большой интерес представляют статьи о распознавании образов, оценках сложности управляющих систем, теоретических и прикладных задачах программирования. Особенно следует отметить работу Ульфа Гренандера, в которой строится теория распознающих алгоритмов над формальными грамматиками, и работу Дональда Кнута по теоретическим и практическим аспектам автоматического построения трансляторов с языков программирования.
Книга предназначена научным работникам, инженерам-исследователям, аспирантам и студентам математических специальностей, занимающимся и интересующимся теоретической кибернетикой и ее приложениями.
Редакция литературы по математическим наукам
20205-036
041(01)-78
Математические вопросы
Сложность вычисленияэлементарных симметрических функцийи коэффициентовинтерполяционного полинома)
Ф. Штрассен
Резюме. Для вычисления множества всех элементарных симметрических функций от п переменных необходимо выполнить по крайней мере n (16g2 п—2) умножений и делений). Эта нижняя оценка и аналогичные нижние оценки для сложности еще некоторых вычислений и задач интерполяции получены с использованием идей и результатов алгебраической геометрии.