Книга
Книга
ВВЕДЕНИЕ
Актуальной проблемой теории вычислений является проблема эффективного распознавания свойств вычислительных процессов и функций, определяемых программами. В настоящей статье вводится формальная модель программы и в ее пределах исследуются некоторые аспекты данной проблемы. На уровне абстракции этой модели игнорируются некоторые детали операторов программ и подчеркиваются свойства, сохраняющиеся независимо от способа определения этих деталей. Такая постановка сужает круг вопросов, которые можно выразить в пределах модели, однако допускает построение процедур разрешения для некоторых интересных свойств, аналоги которых в более детальных моделях были бы неразрешимы.
Схема Янова [2] (см. также [10]) является, по-видимому, наиболее простым прототипом рассматриваемой в дальнейшем модели. В подходе Янова выделены те аспекты программы, которые не зависят ни от функций, выполняемых операторами, ни от логических условий, проверяемых при выходе из логических вершин. Другими словами, здесь подчеркиваются те свойства, которые могут быть извлечены из блок-схемы программы без фиксации функций, сопоставленных ее вершинам.
Настоящая статья написана в традициях работы Янова. Однако, как и в работе [7], в ней исследуются и другие существенные элементы программы. Для каждого оператора определяются имена его операндов и результатов. Эти имена представлены в нашей модели ячейками памяти, тогда как в схеме Янова память не структурируется на ячейки ).
Отличие настоящей работы от [2] и [7] состоит в том, что она ориентирована на параллельные вычисления. В этом отношении она близка к более ранней работе о схемах вычислений [3]. В данной работе,.как и в предварительном ее варианте [4], некоторые результаты приведены без доказательства. Ориентация на параллельные вычисления осуществляется в двух на-
правлениях. Во-первых, допускается одновременное выполнение нескольких операторов. Это дает возможность представить вычислительные процессы в форме, приспособленной для их выполнения на машине с автономными процессорами, использующими общую память. Во-вторых, наряду с такими традиционными свойствами, как эквивалентность, изучаются новые свойства, характерные для параллельных вычислений. Например, подробно исследуется явление «состязания» шагов вычисления, которое может привести к неоднозначности программы.
Эти исследования возникли в связи с необходимостью выяснить роль параллельных вычислений при конструировании и эффективном использовании вычислительных систем. Вклад данной работы в решение этой проблемы имеет несколько аспектов. В частности, разработаны методы определения степени параллелизма программы и проверки ее однозначности. Однозначность программы означает независимость результатов вычислений от относительных скоростей согласованно выполняемых операторов. Эту формулировку можно применить к общей форме представления параллельных программ, к трансляторам и операционным системам для параллельных вычислительных машин, к алгоритмам для повышения степени их параллелизма.
В первом разделе данной работы вводится параллельная схема программы и определяются некоторые ее свойства, исследуемые в дальнейшем. Во втором разделе даются необходимые и достаточные условия однозначности схем некоторого определенного подкласса. В третьем разделе приводятся некоторые технические результаты, относящиеся к префиксам вычислительных процессов. В четвертом разделе исследуется класс так называемых счетчиковых схем и даются алгоритмы распознавания таких свойств этих схем как однозначность, ограниченность, свобода, замкнутость. Эти результаты получены посредством сведения данных проблем к некоторым разрешимым проблемам векторной алгебры. Установлена также неразрешимость проблемы эквивалентности в некотором подклассе схем. Этот результат, как и аналогичный результат работы [7] о неразрешимости, существенно использует память, состоящую более чем из одной ячейки. В то же время при «монолитной» памяти, как это имеет место для схем Янова, проблема эквивалентности разрешима. В пятом разделе, посредством сужения класса счетчиковых схем, определяется понятие параллельной операторной схемы. Параллельные операторные схемы можно рассматривать как обобщение последовательных операторных схем, приспособленное для представления параллельных вычислений. В шестом разделе исследуются параллельные операторные схемы без логических разветвлений (decision-free). Для этих схем проблема эквивалентности оказывается разрешимой.
ПАРАЛЛЕЛЬНЫЕ СХЕМЫ ПРОГРАММ-
Программа может быть представлена как множество элементарных операторов, использующих ячейки памяти и воздействующих на них, для которых указаны правила включения и выключения. Такое представление легло в основу построения нашей модели./
Определение 1.1. Схема (параллельная схема программы) ^ = (Л1, Д,^) определяется следующим образом:
М — множество ячеек памяти. '
А = {а, &, ...} — конечное множество операторов; для каждого оператора а из А заданы:
К^а)—количество символов выключения оператора а (целое положительное число),
D (а) гМ — множество входных ячеек оператора а, (Hi) И (а) с М — множество выходных ячеек оператора а. 3. Четверка Т = (Q, q^ 2, т)—управление схемы, где
Q — множество состояний.
qQ—.выделенное начальное состояние,
(ш) каждому оператору а сопоставлены один символ включения а и множество символов выключения {аь ..., ак^\ 2 = = Sj U 2Ь где
2/ = U {а}, 2^^= {J {аи .ак аг Ааг А
(iv) т — функция переходов — частичная функция из QX2 в Q, всюду определенная на Q X 2ь
Управление ^ формирует последовательность выполнения операторов. Элементы из 2 являются элементарными шагами вычислений. Элементы из 2г- обозначают акты включения операторов, элементы из ^t — акты выключения при фиксации символов выключения (например, логическое условие в схеме Янова имеет два символа выключения 1,0. — Перее.). Включение оператора а допустимо лишь в таком состоянии q управления ^, что значение т(?, а) определено. После включения оператора завершение его работы допустимо в произвольном состоянии, поскольку функция т всюду определена на Q X 2^. При включении оператор а использует значения ячеек из 0(a), при выключении он засылает свои результаты в ячейки из И (а) и формирует символ выключения. При этом символ выключения соответствует одному из Л (а) направлений условной передачи.
Управление 9~ можно представить в виде графа, вершины которого являются состояниями, а дуги соответствуют переходам из одних состояний в другие. Если множество состояний конечно, то граф управления отчасти похож на общепринятую
конструкцию схемы программы. Отличается же он от последней тем, что не требует чередования включений и выключений операторов.'
Прежде чем дать точное описание процесса выполнения схемы, отметим, что само определение схемы не содержит интерпретации ее операторов, т. е. операторам не сопоставлены конкретные функции. Указаны лишь входные и выходные переменные операторов. В статье исследуются как раз те свойства схем, которые сохраняются при произвольной интерпретации операторов. Для установления этих свойств дадим строгое определение интерпретации и процесса выполнения схемы при фиксированной интерпретации.
Определение 1.2. Полагаем, что задана интерпретация ? схемы ^, если заданы
отображение С, сопоставляющее каждой ячейке i е М множество С(i) допустимых значений этой ячейки,
(И) начальное значение памяти с0 е X С (Z),
i еМ
для каждого оператора а заданы две функции:
’Fa: X C(t)-> X С^,
i ^Dka>i eR (a)
Ga: X C (Z)(a„ a2, aK (o)}.
i g= D {a)
Итак, множество C(Z) состоит из возможных значений ячейки памяти I, Со — начальное значение памяти. Функция Fa определяет результат, который оператор после выполнения засылает в выходные ячейки. После выполнения оператора а символ его выключения определяется функцией Ga.
Определение 1.3. f-описание а есть тройка (с, q, р), где_
Се X С (/) —• состояние памяти,
I е м
q — некоторое состояние управления,
ц — отображение, сопоставляющее каждому оператору а е А некоторую конечную последовательность (возможно, пустую) элементов из X С (Z).
i^D (а)
jT-описание соответствует некоторому моменту выполнения схемы; с — значение памяти, q— состояние управления. Для каждого оператора а значение ц(а) есть последовательность значений памяти D^aY Каждое из этих значений соответствует некоторому включенному, но еще не выключенному экземпляру оператора а. Забегая вперед (определение 1.5), отметим, что экземпляры оператора а выключаются в том же порядке, в котором они включались..
Определение 1.4. Начальным ^-описанием назовем ^-описание ао = (Со, ?о, Цо), где ц0 сопоставляет каждому оператору а пустую последовательность.
В дальнейшем операторы будут обозначаться малыми буквами из начала латинского алфавита, элементы из 2 — буквами о, л. Конечные или бесконечные слова над алфавитом 2 будут обозначаться буквами из конца латинского алфавита, 2W — множество всех бесконечных, 2*—конечных слов над 2. Длину слова х е 2* обозначим /(х). Обозначим ^-й элемент слова х. через Хь префикс длины А слова х через Ах, где к ^ 1(х),
Следующее определение дает правило для формирования последовательности операторов в процессе выполнения схемы,
Определение 1.5. Определим частичную функцию а • а, где а (с, q, ц) является произвольным У'-описанием, а о ^ 2, следующим образом:
Если* о = а (а е Д), то значение а • а определено в том и только в том случае, когда определено x{q, а). Пусть это значение определено. Тогда а • а = (с', qf, ц'), где
(О с' = с,.
00 /=^(9, а),
(ш) если b ^ а, то цДй) = ц(&); цЧ^) получается присоединением к концу последовательности ц (а) элемента X с (i), i е D (a)
Для o = a^a^A^ значение a • а} определено в том и только в том случае, когда последовательность ц(а) не пуста и G^ = а5, где g — первый элемент последовательности ц(а). Пусть это значение определено. Тогда а • а5 = (с'.а'/^), где
(i) для i^R(a) выполнено с'^ = c(t),
(И) для i^R(a) значение c'^i) равно компоненте FaQ^, соответствующей переменной г,
0*0 ^ = т(^а5),
для b =# а выполнено ц'(&) = ц(6) и ц(а) = ^цДа).
Из перечисленных правил следует, что выключения экземпляров оператора а осуществляются в том же порядке, что и включения.
Последовательность ц(а) можно рассматривать как очередь типа «первым пришел — первым ушел». Это формальное представление очереди для, например, включившегося, но не выклик чившегося оператора а. Оно достаточно для наших целей, одг нако допускает большое разнообразие физических интерпретаций. Например, ц(а) можно представить себе как действительную очередь, в которой наборы данных оператора а находятся в ожидании до тех пор, пока не появится доступ к соответствующим вычислительным возможностям. Совершенно другая физическая интерпретация состоит в том? что вычислительные воз-
можности имеются в наличии для любого числа одновременных выполнений каждого оператора и символы включения обозначают действительное начало выполнения операторов. При этом элементы из р(а) соответствуют одновременным выполнениям оператора а и очередь данных по существу не нужна. Синхронизация выполнений экземпляров оператора а здесь произвольна и существен лишь порядок присваивания элементов последовательности ц(а): выполнение, соответствующее первому присваиванию, завершается первым. Легко представить и другие физические интерпретации для ц(а).
Расширим функцию т обычным образом, полагая т(?, хо) = = т(т(^, х), о), где левая сторона равенства определена в том и только в том случае, когда определена правая. Аналогичным образом расширим частичную функцию а • о.
Определение 1.6. Произвольное конечное или бесконечное слово х над алфавитом 2 назовем ^-вычислением 1), если выполняются следующие свойства:
для каждого префикса у слова х значения ао • у определено;
(п) если слово х конечно, то для каждого o^S значение ао • хо не определено;
(Ш) свойство ограниченности задержки. Пусть у является префиксом слова х и символ не 2 обладает следующим свойством: для каждого 2, такого, что уг является префиксом слова х, значение а0 • yzo определено. Тогда существует z', такое, что yz'o является префиксом слова х.
/'-вычисления являются допустимыми последовательностями шагов алгоритма, полученного из схемы ^ посредством интерпретации /\ Из того, что при фиксированном а значение а • о может быть определенным для нескольких элементов а, следует, что схема может порождать более чем одно /'-вычисление. Естественно потребовать, чтобы все /'-вычисления вырабатывали, в некотором смысле, одинаковые результаты.
Определение 1.7. Пусть х есть /'-вычисление или префикс /'-вычисления. Полная история последовательности х есть последовательность ф(х) /'-описаний:
Ф (х) = а0, а0 • 1Х, а0 • 2%, ..., а0 • ^х, ... .
Пусть фДх) обозначает такую подпоследовательность последовательности ф(х), которая, во-первых, содержит ао, во-вторых, для произвольного к содержит ао • кХ в том и только в том случае, когда Хк является символом выключения такого оператора а, что i е R (а).
*) Общепринят более развернутый термин: вычислительный процесс при интерпретации /. —- Прим, перев.
Таким образом, фг(х) представляет собой последовательность /'-описаний, соответствующих выключениям операторов, засылающих результаты в ячейку I.
Для выделения компонент из /'-описания а = (с, q, р) введем несколько операций проецирования 9:
П, (а) = с (i\ I е ЛГ,ПЛ (а) = ц (а), а е Л.
Пусть множество S = {Zb Z2, • ••, ^г} содержится в М, причем Zi < Z2 < ... < ir. 1IS (а) определим как набор (с (ZJ, с (i2), .... с (i^. Операции проецирования могут применяться и к последовательностям /'-описаний. Например, П, (а(0), а(1), . . .) = И, (а(0)), ПДа^),
Определение 1.8. Пусть х является /'-вычислением или префиксом /'-вычисления. Последовательность Q, (х) = II, (ф, (х)) назовем историей ячейки i для последовательности х.
Таким образом, Q,(x) есть последовательность, состоящая из начального значения ячейки i и значений, появляющихся в этой ячейке при выключении операторов, засылающих в i.
Определение 1.9. Схему У назовем однозначной, если для произвольной интерпретации ^ и произвольных /'-вычислений х, у этой схемы для каждого Z е М выполнено
Qz (х) = Q, (у).
Таким образом, для однозначной схемы фиксированная интерпретация однозначно определяет историю каждой ячейки, причем эта история одинакова для всех вычислений, допустимых при данной интерпретации.
Определение 1.10. Схемы ^ = (М,Д, ^) = ^' = (М, Д,^') назовем эквивалентными), если для каждой ячейки Z е М и для каждой интерпретации ^ выполнено
{Q,(x)|x является /'-вычислением схемы 9^ —
= V^i(y)\y является /'-вычислением схемы У У
Определение 1.11. Схему 9 назовем ограниченной, если существует такая константа К, что для каждой интерпретации / и каждого /'-описания ^c,q, ц), содержащегося в исто-
*) Полагаем, что Л П М = 0. Без этого ограничения введенные обозначения нуждались бы в уточнении.
рии некоторого /'-вычисления, сумма длин всех последовательностей ц(а) (суммирование берется по всем а ^ А) не превышает К. При к = 1 схема ^ является последовательной (serial)
' Для ограниченной схемы ограничено количество одновременных активностей операторов, т. е. ограничен параллелизм этой схемы. Для последовательной схемы одновременные активности недопустимы.
В настоящей статье основное место будет отведено изучению условий алгоритмической разрешимости таких свойств как однозначность, эквивалентность и ограниченность схем.
ОДНОЗНАЧНОСТЬ
Одним из наиболее интересных явлений, связанных с параллельными вычислениями, является неопределенность, состоящая в том, что несколько операторов могут выполняться одновременно или одновременно могут иметь доступ к включению; при этом результаты выполнения схемы могут зависеть от порядка включений и выключений операторов. В настоящем разделе будет установлен критерий однозначности схемы. Полученные здесь результаты справедливы лишь для некоторого подкласса схем при определенных ограничениях на управление и операторы. Определим несколько свойств, нужных для формулировки этих ограничений.
Определение 2.1. Схему назовем устойчивой (persistent), если для каждой пары различных элементов о,ле2 значения т(^, а), т(^, л) определены в том и только в том случае, когда определены т(^, ал), т(^, ла).
Таким образом, готовность оператора к включению в устойчивой схеме сохраняется до тех пор, пока не реализуется.
Определение 2.2. Схему назовем коммутативной, если всегда из определенности значений т(^, ал), т(^, ла) следует равенство этих значений.
В коммутативной схеме результирующее состояние управления не зависит от перестановки одновременно допустимых элементарных шагов.
Определение 2.3. Схему назовем нейтральной, если всегда для произвольных символов включения а, л, из определенности значения т(^, ал) следует определенность т(^, л).
*) Заметим, что последовательность схемы в общем случае не влечет ее однозначность, поскольку допускается альтернатива символов включения на очередном шаге. — Прим, перев. '
В нейтральной схеме включение одних операторов не дает новых возможностей для включения других операторов, не имевших доступ к включению.
Определение 2.4. Схему ^ назовем результативной (lossless), если для каждого оператора ае/1 выполнено R(a)=^0.
Таким образом, в результативной схеме каждый оператор имеет непустое множество выходных переменных.
Следующая теорема устанавливает в некотором частном случае связь между однозначностью схемы и коммутативностью элементарных шагов вычислений.
Теорема 2.1. Пусть схема др устойчива, коммутативна и результативна. Тогда 9^ является однозначной в том и только в том случае, когда для каждой интерпретации ^ выполняется следующее условие.
(А) Если а0 — начальное ^-описание, и^Я* и а, л е 2 таковы, что значения а0 • иои, а0 • иио определены, то эти значения равны.
Прежде чем приступить к доказательству этой теоремы, рассмотрим интерпретации специального вида.
Определение 2.5. Интерпретацию ^ назовем взаимно однозначной, если для произвольных операторов а, Ь, произвольных s е X с (Z), s' е X с (Z) и произвольной ячейки
IeDM i^D(b)
i^R(a) A R(b) из равенства
следует а = b и s = s'1).
Лемма 2.1. Пусть /— произвольная интерпретация схемы др, ао— ее начальное описание. Тогда существует взаимно однозначная интерпретация $' с некоторым начальным описанием аб, порождающая такое же множество вычислений, как и ^, и удовлетворяющая следующему свойству. Если для последовательностей х, у значения а0 • х, ао • у определены, то выполнено
Г!, (а0 • х) =£ П, (а0 • у) =$> nz (а$ • х) =/= Hz (об • у\
Доказательство. Интерпретация ^' конструируется из ^ таким образом, что каждому значению ячейки памяти ставится в соответствие пара: это значение и «формула» для вычисления этого значения. Интерпретация X определяется фик-
сацией C(i), с0, {Fa | а е Л} и {Gu | еЛ}. Интерпретация У' определяется следующим образом:
СЦП = С^ХВ\ где В = АШ (,)},
1Ш) = (ПДг0),г).
Опишем правила формирования формул. Пусть D (а) содержит г элементов. Тогда операции Fa, Fa имеют г аргументов, причем для каждого i е R (а) выполнено
ч,). ft. уft. 4,)))=
= №(f„(b, I,U), Catoh,. ч,4,)).
Здесь Cato определяется соотношением
Cata (хь ..., хг) = а (xj (х2) ... (хг);
для произвольных аргументов из В* значение этой функции принадлежит В*;
^ЛОг 41). ft- 4,)ft, 4,)) = ftft. 5,У.
Индукцией по /(х) легко доказать следующие утверждения.
Значение (с0, ^о, Цо)1 я определено относительно интерпретации / тогда и только тогда, когда (с', q0, ц0) • х определено относительно У'.
Если . определены значения (с0, qv ц0) • х, (с^, q0> ц0) • х, то из nz ((с', qy ц0) • х) = (I, П) следует Hz ((с0, q0, р0) • -О = I. Из этих утверждений можно вывести взаимную однозначность интерпретации У'.
Действительно, при выполнении
n,(ft(ft. 41). ft. 4,)(t,.4,))) =
У. ft. Уft- У))
из свойств Cata, Catft следуют равенства а = 6, г = t, п^ = 6; (/= 1, 2, ,.., г). Далее, если в ходе /''-вычисления ячейка i принимала значения (£, т]), (X, г), то £ = X, поскольку формула т] однозначно определяет значение ячейки i как композицию функций FQ) Fb, ... . Отсюда следует взаимная однозначность интерпретации
Для доказательства теоремы 2.1 нам понадобятся несколько лемм.
Лемма 2.2. Условие (А) из теоремы 2.1 выполняется для каждой интерпретации тогда и только тогда, когда оно выполняется для каждой взаимно однозначной интерпретации.
Доказательство. Очевидно, что из выполнения условия (А) для каждой интерпретации следует его выполнение для взаимно однозначных интерпретаций. Обратно, пусть ^ — произвольная интерпретация, X' — взаимно однозначная интерпретация из леммы 2.1. Из выполнения условия (А) для ^' следует выполнение его для У*.
Лемма 2.3. Пусть задана устойчивая, коммутативная, результативная схема 9Р, взаимно однозначная интерпретация ^, ^-описание а. Тогда для каждой пары операторов а, b выполнены следующие свойства*.
если определены значения а • ab, а • Ьа, то эти значения равны*,
если определены значения а • abt, а • bta, то эти значения равны в том и только в том случае, когда выполнено либо свойство
R (b) ПО (а) = 0, либо свойство
(И) bt является слабым (repetition), т. е. Щ ^ = Щ (&) (а • Ь^;
если значения a-a^t, a*_biaj определены, то они равны в том и только в том случае, когда R(a) П R(b) = 0.
Доказательство. Пусть а = (с, q, р).
При а = Ь утверждение очевидно. Пусть а Ф Ь. Тогда (с, q, \х)* ab = (с, т (q, ab), р'), где р/ (d) = р (d), dqk {a, b}, р,'(а) =р(а)Пл (ti)(c); р' (Ь) = р (Ь) Па ^(с); значение (с, q, р) • Ьа определяется аналогично. Используя коммутативность т, получим искомое равенство (с, q, р) • ab = (с, q, р) • Ьа.
Рассмотрим вначале случай а ^ b. (с, q, р) • abt = = (с', n(q, abt), р') и (с, q, р) • bta = (c', x(q, Ь^)^), где р'(^) = = p"(d) = p(d), d =й a, b, р' (&) = р" (Ь), р' (а) = р(а) Пл(д)(с), р" (я) = р (а) Пл (д) (с'). Следовательно, в силу коммутативности т, равенство (с, q, р) • abt = (с, q, р) • bta выполняется тогда и только тогда, когда Пл (а)(И = Па (а) (с). Аналогичное рассуждение можно провести и при а = Ь. Отсюда, в силу взаимной однозначности интерпретации X, следует, что равенство Пл (a) (с') = = Пл (а) (с) выполняется в том и только в том случае, когда либо R(b)V\D(a) = 0, либо символ bt является слабым.
При а = Ь из определенности значений (с, q, \k)-ajb; и (с, q, р) • bta$ следует j = L Пусть а =# Ь. Тогда (с, q, р) • a^t — = (с', x(q, ajbt), /) и (с, q, р) • bta^ic", x(q, b^), р'), где с' не совпадает с с" в тех и только тех ячейках, которые принадлежат R(b)(\ R(a). Следовательно, равенство а • ajbt = а • btCj выполняется в том и только в том случае, когда это пересечение пусто.
Лемма 2.4. Пусть схема З9 устойчива, коммутативна, результативна, задана взаимно однозначная интерпретация / с начальным ^-описанием а0. Пусть при этом и е 2*, о, ле 2, а0 • аал = а0 • ала. Тогда для каждого nye2|JSw выполнены свойства
аала) является f-вычислением тогда и только тогда» когда f -вычислением является алао;
■ (Ь) для произвольного i е М выполнено Q, (аал^) = Qf (ила^).
Доказательство. Для проверки утверждения (а) достаточно показать, что слово солгу удовлетворяет свойствам из определения 1.6 (т. е. является /-вычислением) в том и только в том случае, когда этим свойствам удовлетворяет слово слогу. Из доказательства леммы 2.3 видно, что из равенства а0-аал = = ао-ала следует £2г(аал) = йг(ала). Отсюда легко следует утверждение (Ь).
Лемма 2.5. Пусть заданы устойчивая схема 3^, интерпретация /, начальное ^-описание а0. Пусть и, а е 2 , w е 2 U 2“, а е2. Тогда справедливы следующие утверждения*.
если значение а0*ио определено и для некоторого с (оф с) значение а0»ис определено, то значение а^исо определено*,
если а0 • ио определено и игу является f-вычислением, то о ^w.
Доказательство. Утверждение (а) следует из определения 1.6, причем устойчивость схемы используется лишь в ситуации, когда а—символ включения. Утверждение (Ь) следует из (а) и свойства ограниченности задержки.
Доказательство теоремы 2.1. Пусть / — взаимно однозначная интерпретация, для которой выполнено условие (А). Пусть для /-вычислений х, у и для некоторого / выполнено Qz (х) + Qt (у). Докажем, что для каждого п^Цх") (для всех п, если х — бесконечная последовательность) существует такое /-вычисление г (п), что
истории ячеек вычислений 2(п), у совпадают,
n2to = nto- Отсюда будет следовать выполнение равенства Qf(x) = Qf(y) для всех I, что является противоречием. Доказательство проводим индукцией по п. Для п = 0 полагаем г^ = У- Пусть для п = к утверждение доказано и/(х) = 6 + 1. Из предположения индукции следует, что значение (а0 • Gx)) • xk+x определено. Это равносильно определенности (а0 • (^2(6))) • х^+1. Пусть / обозначает ^2(6). Из утверждения (Ь) леммы 2.5 следует, что 2(6) может быть представлено в виде 2 (6) =/ах^+1м при некотором у(хН1еу). Если слово а пусто, то можно взять 2(6+1) = 2 (6). В противном случае а = гул (л е 2). Так как (а9 • t) • Хь+х определено, то из утверждения (а) леммы 2.5 следуем
определенность значений (а0 • tw) • х^+ь (а0 • twn) • х^+п Из определенности (а0 • tw) • л следует определенность (а0 •/^хА+1) • л. По предположению индукции выполнено (а0-/^)-х^+1л = (а0-/^)Х Хлхл+1. Следовательно, по лемме 2.4 слово twxfe+xnu является ^-вычислением, последовательность элементов которого совпадает с 2(^). Посредством таких перестановок можно вставлять х^+1 после каждого и, достигая искомого ^-вычисления 2(^ + 1)= = G+i*) ш.
Покажем, что только что полученный результат противоречит предположению о том, что Qf (х) #= Qf (у) для некоторого и Действительно, из Qf (&) #= Qt (у) следует, что для некоторого положительного целого 1г выполнено одно из следующих условий:
значения [йДх)]^, [Q/(y)h оба определены, но не равны;
значение [Qf (у)]\ определено, [Qz (х)]^ не определено;
[Qf(x)]fe определено, [Q/(y)]^ не определено.
Для (i) и (ii) существует достаточно большое р, такое, что [йД2(р))Ь #4QJx)]*. Это противоречит свойству й1^^р)) = йЛу). Случай (iii) приводит к противоречию аналогичным образом. Итак, выполнение условия (А) влечет однозначность схемы.
Продолжим доказательство. Предположим, что а0 • иол, =# #=а0 • мло. Тогда по лемме 2.3 либо л = Ь[ и о = а, где К^ПО^а)=^0 и символ &/ не является повторным, либо л = bt и а=-Оф где $(Ь) П R(a) #= 0. В любом случае существует такое I, что последовательности Qz (мол), йДмло) имеют равную длину и различные последние элементы. Если эти последовательности являются префиксами вычислений х', х" соответственно, то Qf (х') #= й/(х"). Следовательно, условие (А) является необходимым и достаточным условием однозначности.
Следствие 2.1. Устойчивая, коммутативная, результативная схема 9Р является однозначной тогда и только тогда, когда для каждой интерпретации / при начальном f-описании а0 выполнены следующие условия:
если значения а0 • uabt, а0 • иЬщ определены, то либо R (b) П D (а) = 0, либо П^ ^ («о •«&/) = Щ ^ («о * и) (т. е. символ bt повторен)',
если значения а0 • ua^bi, а0 • ub^j определены, то R^b) П ^\R^a) = 0.
Это утверждение непосредственно следует из теоремы 2.1 и леммы 2.3. ‘
Наш критерий однозначности допускает упрощение для схем, вычисления которых обладают следующим свойством: между произвольными включениями оператора происходит засылка в некоторую входную ячейку этого оператора.
Определение 2.6. Схему ^ назовем свободной (repetition-free^, если для произвольного слова vawax, являющегося
/'-вычислением при некотором /\ существует такой символ выключения Cj (= w, что R^ П 0(a) = 0.
Для свободной схемы ^ случай слабого символа bt в критерии однозначности может быть опущен. Для нейтральных схем возможно дальнейшее упрощение. Для формулировки этого упрощения определим отношение р ^ А X А, полагая apb^R^a)^ 0, R^W 0 и [О(а) П R^A U VRW П 0(b)] U \JVRWHRWA^0.
Введем полезное для дальнейшего определение. Пусть а е е А, хе 2* U 2й и т — положительное целое число. Произвольное m-е вхождение символа включения а назовем согласованным (mate) с m-м вхождением символа выключения этого оператора (здесь не проводится различение между различными символами выключения. — Персер.
Следствие 2.2. Пусть схема У является свободной, результативной, устойчивой, коммутативной и нейтральной. Тогда эквивалентны следующие утверждения*.
У не является однозначной.
Существует интерпретация f с начальным ^-описанием а0, для которой существуют u^Y, а^А, Ь^А, такие, что либо выполнено
RlbWW= 0 и существует такое I, что значения а0 • uabb а0 • ubta определены, либо выполнено
(И) (а) П/?(&)= 0 и для некоторых j, I значения а0-иа}Ьь а0 • ubtaj определены.
Для некоторой интерпретации f с начальным ^-описанием а0 существуют w ^Y, а^А, b е А, такие, что выполнено apb и значения а0 • wa, а0 • wb определены.
Для некоторой интерпретации f существуют f-вычисления х, у и операции а, Ь, такие, что выполнено apb и последовательность 8^ (х), являющаяся проекцией последовательности х на множестве (а, Ь], не совпадает с 8.^ (у).
, Доказательство. Установим цепочку (1) => (2) => =7* (3) ==> (4) =Ф (1).
=> (2) вытекает непосредственно из следствия 2.1 и предположения о свободе схемы
(2)ф(3). Пусть выполнено (2), и — слово минимальной длины, такое, что существуют а, Ь, такие, что выполнено (i) или (ii). Пусть выполнено (ii) (случай (i) доказывается_аналогич- но). Тогда слово и содержит вхождения символов а, Ь, согласованные с вхождениями символов а^ bt соответственно. Пусть а появилось раньше, чем b (это предположение не уменьшает общности рассмотрений). Тогда и может быть представлено в
виде и = ихаи2Ьи3. Если и2 пусто, то (3) непосредственно следует из нейтральности схемы. Если и2 не пусто, то оно может быть представлено в виде и^ = си^ где ceS. Если с — символ включения, то, в силу нейтральности, значение ао • ихса определено. Из коммутативности и определения 1.5 следует ao-^ica= = ао • ихас. Следовательно, в силу утверждения (а) леммы 2.4, слово и^аи^Ьи^ является префиксом /'-вычисления. Если с — символ включения, то из нейтральности следует определенность ао • нь са. Из коммутативности и определения 1.5 следует адгихса = ao-r/iac. Отсюда и из утверждения (а) леммы 2.4 следует, что слово u^au'jbu^ является префиксом /'-вычисления. Если с — символ выключения, то с ним согласован некоторый символ включения их. Теперь из устойчивости схемы и определения /'-вычисления следует определенность ао • ихса. Поскольку и — самое короткое слово, при котором выполняется (2), то выполнено ao-aica = а^-ихас. Следовательно, слово ихсаи'2Ьи3 является префиксом /'-вычисления. Таким образом, символ а можно «вставлять» после каждого элемента и2. Отсюда следует, что uxu2ab также является ^префиксом /'-вычисления. Из нейтральности следует, что ихи2Ьа является префиксом /'-вычисления, а поскольку R (а) П R^b") #= 0, то apb. Отсюда следует (3). _
(3)=Ф(4). Из устойчивости следует, что слова wab, wba являются префиксами некоторых /'-вычислений х, у. Отсюда следует §йЬ (х) = #а5 (у).
(4)=>(1). Из леммы 2.1 следует, что достаточно рассмотреть взаимно однозначную интерпретацию /. Пусть $&ь (х) =/= ^а6 (у) и предположим (противное), что схема ^ однозначная. Рассмотрим /'-вычисление 2 = u1cu2cmu3, в котором выделены согласованные вхождения с, ст. Используя однозначность, применяем «вставку» символа согласно теореме 2.1 и получаем, что слово ихссти2и3 является /'-вычислением. По индукции, применяя такие вставки, можно по слову х построить /'-вычисление х:
длины слов х, х равны (если х бесконечно, то и х бесконечно),
для к = 1, 2, ... символ (x)2a-i является ^-м символом включения в слове х, а (х)2А согласован с ^-м символом включения в слове х.
Например, если бы х был равен abcb2c3aaxda2 ..., то х был бы равен aaxbbxcc^aa2d ... . Аналогичным образом из у может быть получено /'-вычисление у, при этом §йЬ (х) = §_ь (х)^$-ь (у) — = $йЬ^у\ В силу арб, выполнено либо R^^RW^O, либо R^b)UD(a) ^ 0, либо R(a) П D (6) т^ 0. Эти случаи могут
не иметь аналога в предыдущих доказательствах. Остановимся подробно лишь на первом из них. Фиксируем i е R (а) П R (6). Пусть Si = {с |/е R^Y Проекцию слова х на множество символов включения операторов из Si обозначим ^(х). Аналогичный смысл имеет <В\$. (z/). Из S-b (х) ^ 8^ (у) и {а, 6}^ Sf следует, что для некоторого р выполнено
[^(х)]р^(Щ,.
В силу согласованности символов включения и выключения операторов в словах х, у, p-w элементам последовательностей Qt(x) и Q/(y) соответствуют различные операторы. Отсюда» в силу взаимной однозначности интерпретации /, следует ^i^^^iVti^ и неоднозначность д9. Такой же результат получается и в двух других случаях ^R^a^D^^B, R^b^D^^BY Отсюда следует (4)=Ф(1).
Пункт (3) из следствия 2.2 будет использован в разд. 5 при построении эффективного алгоритма распознавания однозначности схем некоторого класса.
СВОЙСТВА МНОЖЕСТВА р (^)
При исследовании свойств схем, справедливых для каждой интерпретации, мы постараемся исключить понятие интерпретации при определении этих свойств. Конечное или бесконечное слово х над алфавитом S назовем вычислением, если оно является ^-вычислением при некоторой интерпретации ^. Множество всех конечных слов, являющихся префиксами вычислений схемы д9, обозначим p^Y Следующая лемма показывает, что множество р^З9) полностью определяет множество всех вычислений схемы З9.
Лемма 3.1. Слово xe(S*USw) является вычислением схемы д9 в том и только в том случае, когда х удовлетворяет следующим трем условиям;
Для каждого к выполнено ^x^p^Y
Если слово х конечно, то для каждого а е 2 выполнено xoq^p (^Y
Если хе2®, то для каждого а е2 и для каждого п выполнено следующее свойство: если для каждого k^n выпол* нено ^оер(д), то существует такое и^Т, что {пх)ив является префиксом слова х. -
Доказательство этой леммы легко следует из определения 1.6. '
В настоящем разделе будут рассмотрены свойства множества р(У) без привлечения понятия интерпретации. Эти свой-
ства будут использованы в разд. 4 при построении алгоритмов распознавания.
Для х = XiX2 ... xt (х е S*), i^M, 1 ^ к ^ t определим
. п Ц, k) = max ({0} U {г | г < к, хг = сь
где с ^ A, i^R(c)}}. Значением пЦ, k) является множество позиций слова XiX2... х&, содержащих символы выключения операторов, для которых i является выходной ячейкой.
Определим отношение эквивалентности ( = ) между вхождениями символов включения в слово х, полагая хк = хь если для некоторого а выполнено хк = xt = а и выполнено хотя бы одно из следующих условий:
к = 1.
для каждого i^D^ либо значения пЦ, &), пЦ, /) равны 0, либо оба отличны от 0 и символы, согласованные с символами хп^ку х^лу эквивалентны в смысле =.
Таким образом, два вхождения символа а эквивалентны в смысле =, если соответствующие выполнения оператора а осуществляются при одинаковых значениях входных ячеек.
Множество р(^) характеризует следующая теорема.
Теорема 3.1. Слово xeS* принадлежит р^У^ тогда и только тогда, когда выполнены следующие три свойства.
Свойство 1. Для каждого а^А в каждом префиксе слова х количество символов выключений оператора а не превышает количество его символов включений.
Свойство 2. Значение т^Цо, х) определено.
Свойство 3. Если Xk = xt и для вхождений символов включения xk, Xi существуют согласованные с ними вхождения в слове х, то эти согласованные вхождения являются вхождениями одного и того же символа выключения.
Необходимость выполнения этих свойств очевидна. Выполнение свойства 1 следует из того, что значение а • а^ определено только при непустой последовательности р(а) (используем условие (2) из определения а • а^. Выполнение свойства 2 следует из определения /-вычисления (условие (i) из этого определения). Свойство 3 формализует тот факт, что если оператор дважды выполняется на одних и тех же данных, то результаты этих выполнений равны. Это свойство следует из однозначности функции Ga. Достаточность следует из свойств взаимно однозначной интерпретации /, которую можно подобрать так, чтобы х являлся префиксом /-вычисления.
Следствие 3.1. Для свободной схемы S выполнение свойств 1 и 2 теоремы 3.1 является как необходимым, так и достаточным условием принадлежности х множеству р^У
Доказательство. Для свободной схемы невозможно выполнение отношения s между несовпадающими символами включения. Отсюда следует избыточность свойства 3.
Схему У назовем конечной (finite-state), если конечно множество состояний ее управления ).
Следствие 3.2. Пусть У — конечная свободная схема. Тогда множество р^) регулярно в том и только в том случае, когда схема 9s ограничена. '
Доказательство. Из теоремы 2 работы [9] следует, что множество р^У) является регулярным событием в том и только в том случае, когда следующее отношение эквивалентности над 2* имеет конечный индекс): полагаем хЕу, если для каждого w выполнено
xw е р (^^yw е р ^Y
Пусть Aa(x) равно разности между количеством вхождений символа а и количеством вхождений символов выключений оператора а в слово х. Тогда Да принимает неограниченное множество значений в том и только в том случае, когда схема ^ не является ограниченной. Отметим следующие свойства.
Если Aa(x) >Aa(y), то не выполнено хЕу. Действительно, в этом случае для последовательности w, состоящей из Да(х) символов окончания оператора а, выполнено xw^p^), однако y^w) ф pV^Y ,
Если для каждого а выполнено Аа(х) = Да(у) и т(^0, х) = r(qo,yY то хЕу. Это следует из того, что свойства 1,2 из теоремыЗ. 1 выполняются для xw в том и только в том случае, когда они выполняются для yw. .
Из свойства (1) следует, что неограниченность схемы 9s влечет за собой неограниченность индекса эквивалентности Е. Из свойства (2) следует, что ограниченность s влечет за собой ограниченность индекса.
Следствие 3.2 имеет самостоятельное значение, так как оно соотносит степень параллелизма схемы со структурой множества p^Y а следовательно, со сложностью механизма порождения вычислений схемы 9?.
Существенность свойства свободы схемы 9 в следствии 3.2 показывает следующий пример.
Пример 3.1. На рис. 3.1 изображено управление 9" некоторой конечной схемы 9?.
Недостающие переходы рис. 3.1 либо не определены, либо не используются в вычислениях. Полагаем
Л = {а, Ь^ Ш=\,К^ = 2,
М = ^Л\ D^ = ^V /?(a) = DW==7?(6) = {2}.
Схема У является последовательной, а следовательно, ограниченной. Значение выходной ячейки 2 после выполнения оператора определяется количеством выполнений оператора b после
последнего выполнения оператора а. Следовательно, ни для какого к никакое вычисление схемы 9 не содержит пару отрезков
aav (bb^ bb^аах ^bb^bb;.
Отсюда следует, что множество р^З) не является регулярным (оно не является и контекстно-свободным).
При построении алгоритмов распознавания оказалось полезным привлечь векторную алгебру (система векторного сложения), перенося результаты о разрешимости некоторых свойств систем векторного сложения на схемы.
При построении алгоритмов распознавания свойств счетчиковых схем применяется следующая последовательность шагов:
посредством теоремы 3.1 свойство схемы 9 формулируется как свойство множества рк^У
свойство множества р^^ сводится к некоторому разрешимому свойству системы векторного сложения.
Определение 4.1. Счетчикбвой схемой назовем схему ^ = (Л4, A, 9~), для которой управление 9" задается следующим образом. Пусть
к — целое неотрицательное число,
2 — конечное множество,
S — множество с выделенным элементом s0, л е N\ где N — множество неотрицательных целых чисел,
с — функция из 2 в Nk, такая, что если 0^2/, то и (о) ^ О,
0: S X 2->S —- частичная функция, всюду определенная на SXSf.
Полагаем 9~ = (Q, д0> 2, т), где Q = S X W*, ?0=(S0, л).
Полагаем, что значение t((s,х),о) определено, если определено 0(s, о) и выполнено х + ^(о) ^ 0. Если значение определено, то полагаем
t((s, х\ o) = (0(s, a), x + v(o)).
Таким образом, состояние управления счетчиковой схемы представлено некоторой конечной структурой и фиксированными значениями к «счетчиков» (неотрицательных чисел). Каждое включение или выключение приводит к увеличению или уменьшению этих значений.
А. Системы векторного сложения
Системы векторного сложения положены нами в основу алгоритмов распознавания свойств схем программ. Эти системы представляют и самостоятельный интерес как математические структуры. Они полезны не только для схем программ, но и при исследовании проблемы равенства слов в коммутативных подгруппах (эту связь активно использует М. Рабин), в теории
ограниченных контекстно-свободных языков [1], в теории однородных рекуррентных уравнений [5].
r-мерной системой векторного сложения назовем пару Ж = = (d, №), где d есть r-мерный вектор, компоненты которого — неотрицательные числа, W — конечное множество r-мерных векторов, компоненты которых — целые числа. Сферой достижимости R^^ назовем множество всех векторов вида d + ^i + + ^2 +••• + ^s, таких, что Wt е W (t = 1, 2, ...,s) и d-j- + ^1 + ^2 + • • • + ^г ^ 0 (г = 1, 2, ..., s). Таким образом, точка принадлежит /?(Ж), если она достижима из точки d последовательностью перемещений, не выводящих за пределы первого октанта (то есть все компоненты вектора, полученного в результате очередного перемещения, положительны).
При доказательстве разрешимости некоторых проблем, связанных со сферой достижимости, нам понадобится следующая терминология.
Определим отношение ^ между r-мерными векторами. Полагаем у ^ z в том и только в том случае, когда для каждого i = 1, 2, ..., г выполнено yt z^.
Вектор, все компоненты которого равны 0, иногда будем обозначать 0. '
. 3. Полагаем, что для символа со и для произвольного целого числа п выполнено п < со, п + со = со. -
Корневым деревом назовем такой ориентированный граф, на одну из вершин которого (корень 6) не направлена ни одна дуга, на каждую из остальных вершин направлена точно одна дуга и каждая вершина которого достижима из корпя.
Если ^, *п — различные вершины корневого дерева и суще* ствует путь из | в г), то ^<<t|. Если существует дуга из £ в т|, то т| — преемник £. Вершины, не имеющие преемников, назовем концевыми. .
Каждой системе векторного сложения Ж сопоставим корневое дерево 9" (Ж) и зададим правило сопоставления каждой вершине £ некоторого r-мерного вектора /(£), компоненты которого принадлежат ^ U {«>}• Дерево ^ (Ж) и функция / (£) определяются .следующим образом.
- 1. Фиксируется корень и помечается d.
. 2. Пусть т] — произвольная вершина дерева.
(а) Если для некоторой вершины ^QK*n) выполнено 1(9— = 1(т\^ то т) — концевая вершина;
' (Ь) если для каждой вершины £(£<т]) выполнено 1(9=/= =/= /(т]), то преемникам вершины т] взаимно однозначно соответствуют элементы w ^W, такие, что 0 ^ I (т]) + w. Преемник вершины т], которому соответствует точка w, обозначим ц^; 1-я компонента точки / (t)w) определяется следующим образом:
если существует £ -< Tia» такое, что / (^) ^ / (ri) + w, для которого / ^ < (/(т]) + ау)ь то полагаем / Спи). = ®;
если не существует такого |, то полагаем / (т]ш)( = = (/(!]) +цу),.
Пример 4.1. Для иллюстрации конструкции ^"(Ж) рассмотрим следующую систему векторного сложения Ж = (d, IT):
d = (l, 0, 0, 0, 0)
Г = {(-1, 1, 0, 0, 0),(-1, 0, 0, 1, 0), (0, — 1, 2, 0,-0),
(0, 1,-1, 0, 0), (0, 0, 0,-1, 2), (0, 0, 0, 1,-1)} д"куу
(б,0, W, 0,0) -. (О, W, Ш, 0,0)'
Л(0, си, си, 0, 0)
^ (0,1,0, 0,0) -* (0,0,2,0,0) -» (0,1, С», 0,0) -* (0, <0, СО, О, 0) 4 (О, <0, со, 0, 0)
(1,0,0,0,0)(О, о о 0 ^ _^ ^ 0 0 ^WJ
(О, О, 0,1, 0) -* (О, О, 0, 0, 2) -> (О, О, 0; 1, «£
(0,0,0, со, со) ->-(0, 0, 0, со, со)
(О, 0, 0, си, со)
Теорема 4.L Для любой системы векторного сложения Ж дерево 9" ^^ конечно.- ,
Доказательетво этой теоремы использует следующие две леммы.'
Лемма 4Л. Пусть р0, рх, .... рт ... — бесконечная последовательность элементов, из (^U{®})r• Тогда существует беско* печная подпоследовательность pix, pi2, . *., pin, . такая, что
Pil^Pi2^ .
Доказательство. Исходная последовательность соДер» жит бесконечную подпоследовательность, неубывающую по пер» вой координате, которая содержит бесконечную подпоследовательность, неубывающую по второй координате, и т. д.
Лемма 4.2. (Лемма Кёнига [6]). Пусть Т— корневое дерево, в котором каждая вершина имеет конечное число преемников и не существует бесконечного пути, исходящего из корня. Тогда дерево Т конечно.
Доказательство теоремы 4.1. Предположим (против» ное), что существует бесконечный путь, исходящий из корня, с последовательностью вершин 6, т^, ть, ... . Тогда по лемме 4.1 существует бесконечная подпоследовательность T]fl, т]^, ... .... rii„, ....такая, что / (rj.J </(т^) <...</(п»„) < ... .Так
как ни одна из этих вершин не является конечной, то никогда не имеет места равенство /(%)=/(%+,) (иначе, согласно п. 2(a) определения £Г (Ж), этот путь был бы конечен). Отсюда, согласно п. 2 (Ь), следует, что количество компонент, равных о, у т]/п+1 по крайней мере на одну больше, чем у т]^. Так как количество компонент конечно, то получили противоречие. Следовательно, предположение о существовании бесконечного пути не верно. Теперь из леммы 4.2 следует конечность 9" <(Х\
Отметим, что из индуктивного метода порождения дерева 9" {W} и конечности этого дерева следует эффективность его построения.
Следующая теорема играет ключевую роль для ряда проблем разрешимости, относящихся к системам векторного сложения.
Теорема 4.2. Пусть задан произвольный r-мерный вектор х, компоненты которого — целые неотрицательные числа. Тогда эквивалентны следующие утверждения;
существует у е R^\ такой, что х^у;
существует вершина т\^9"(Ж), такая, что х^/(т]).
Доказательство. Докажем сначала (2) => (1). Идея доказательства состоит в следующем. Если g— вершина дерева 9"^^ то существуют векторы из /?(Ж), последние координаты которых соответствуют /(g). При этом можно добиться, чтобы как угодно много координат стали равными со, посредством повторного использования последовательности векторов, ведущего к появлению символа со. Предположим, что х ^ /(ц). Пусть путь от 6 до т] имеет последовательность вершин g0, gi, ... ..., u (£о = 6, Ik = п)- Пусть вектор uz (/ = 1, 2, ..., ft) соответствует дуге, направленной на gz, т. е. gz = (g/_1)ur Не. уменьшая общности предполагаем, что первые h компонент вектора /(g) равны со, а остальные компоненты меньше со. При этом символ со на пути от б до g появляется сначала в первой, затем во второй координате и так далее вплоть до h. Тогда для каждого Z (1 ^ Z ^ ft) существует последовательность векторов t^ ^= = Vc(i), Vc(2)+b Ус(г)+2, . . . , ^п(г), ТЗКИХ, ЧТО ВеКТОр Щ = VcW + + УС(г)+1 + ... + Udul имеет положительную i-ю и неотрицательную (Z Ч- 1)-ю координату (Zz— подпоследовательность для получения вектора с / компонентами, равными со). Пусть —Д есть нижняя граница всех (отрицательных) координат векторов щ, ..., и^ а {пь ..., nh} есть произвольное множество неотрицательных целых чисел, удовлетворяющих условию
nz>(x-dh + A(A + 2-Z + nz+1+ -Vnh\ !</<£. (1)
Существование такого множества следует из треугольной формы системы неравенств.
Построим последовательность sb s2, ..., s^+i, такую, что для каждого i (1 ^ i ^ h) SiS2 ... St является префиксом последовательности У1У2-..УА вплоть до первого появления символа ш в ьй координате и выполняется Si$2... s^i = viu2... vk. Тогда последовательность
а = $/, xs2t22 ... shthhsh+x = uxu2 ... u^
обладает следующими свойствами:
d 4~ U\ 4- ... 4“ tif ^ x,
каждая частичная сумма d + ^i+ ••• + ^г неотрицательна.
Вывод свойств (а), (b) из системы неравенств (1) опускаем.
Продолжим доказательство. Предположим, что
d *4~ их 4- •.. A-ut^ R (W°\ х ^ d 4- щ 4“ • • • 4- ^f, и выполнено
dA-uvA- .4- ит^ 0,т=\, 2,
где ите W. Применим следующее преобразование к последовательности
d, d 4- U\, d 4" ^i 4~ ^2> • • • > ^ 4" ^i “h ^2 4“ . • • A* ^f столько раз, сколько возможно:
фиксируем первый такой элемент данной последовательности (обозначим его и'), что для некоторого предшествующего элемента иП выполнено иП и'. При этом
если и,,= и\ то вычеркнем из последовательности все элементы, следующие за и';
в противном случае для каждого I, такого, что ^и"^ < < (^Эг, заменим в и' и в каждом векторе, следующем за и' i-ю координату на символ со.
В результате этого процесса получим последовательность меток вершин некоторого пути, исходящего из корня дерева ^(Ж). Конечная метка этой последовательности представляет собой вектор, больший либо равный d 4- ^i 4* • • • Auf- Отсюда следует выполнение п. (2) из формулировки теоремы.
Пример 4.2. Этот пример иллюстрирует построение последовательности о из первой половины доказательства теоремы 4.2. Пусть d=(l, 1, 1, 4), Г = {(0, 0, 0, —1), (2, —1,0, 0), (—1,
0, 0), (—1, —3, 4, 0)}. Рассмотрим следующий путь в дереве
зчту.
(1, 1, 1,4) ""’"-^(l, 1, 1. 3) '’"‘'"А (3, О, 1,3) "А—°>
->(«», 1, 1, 3)—*’ ‘’ °’ > (со, с», 1, 3)—-—^Д- (®, co, (о, 3);
S1 = (O, О, О,-1), (2,-1,0, О),
(-1,1,0, 0); /j = (2, —1, 0, 0), (-1,1,0, 0),
s2 = (— 1, 1, 0, 0);/2 = (-1, 1, О, 0);
s3 = (-l,-3, 4, 0);/3 = (—1, -3, 4, 0).
Пусть х = (22, 16, 9, 3)^(ю, с», со, 3), А = 3. Система неравенств в этом случае имеет следующий вид:
«1^21 + 3 • (4 + и2 + и3), и3 ^ 15 + 3 • (3 + п3),.
/2з ^^ 8 -J- 3*2.
Решение этой системы: яз = 14, п2 = 66, п\ = 273;
а = (0, О, О, -1), (2, ^1, 0, 0), (^ 1, 1, 0, 0), ((2, -1, О, 0),
(—1, 1, о, 0))273(—1, 1, О, 0)(—1, 1,0, 0)66(—1, —3, 4, 0) (—1, —3, 4,0)14.'
Отсюда следует, что точка (193, 23, 61, 3) ^ х принадлежит R (Г).
Приведем несколько следствий, полезных при построении алгоритмов распознавания некоторых свойств параллельных схем программ.
Следствие 4.1. Существует алгоритм, который для произвольной системы векторного сложения Ж и точки х распознает, существует ли точка у (у^х), принадлежащая R^PY
Следствие 4.2. Существует алгоритм, который для произвольной r-мерной системы векторного сложения Ж и произвольного множества 0^{1, 2, ... г} распознает, являются ли координаты из 0 совместно неограниченными, т. е. верно ли, что для каждого х^№ существует такое у ^R ^Ж), что для каждого i (= 0 выполнено yi Xv
Доказательство. Это свойство выполняется в том и только в том случае, когда существует такая конечная вершина ^^^(Ж), что для каждого 1^© выполнено (/(р))г = со.
Следствие 4.3. Существует алгоритм распознавания бесконечности множества У? (Ж) для произвольной системы векторного сложения Ж.
Приведем пример неразрешимой проблемы, относящейся к множеству R^Y Имеется в виду следующая неопубликованная теорема М. Рабина.
Теорема 4.3. Не существует алгоритма, распознающего равенство сфер достижимости для произвольных двух систем векторного сложения Ж, ТТ* (т. е. равенство R^^= R^'W
Рабин сводит к этой проблеме алгоритмически неразрешимую проблему существования решения экспоненциального дио- фантового уравнения; ..
Алгоритмически разрешимые проблемы
В этом разделе показана алгоритмическая разрешимость некоторых проблем для счетчиковых схем. При этом используются результаты, относящиеся к системам векторного сложения. Осуществляется «кодировка» каждой счетчиковой схемы некоторой системой векторного сложения.
Рассмотрим счетчиковую схему ^ = ^М,А,ТУ описанную в определении 4.1. Сопоставим ей систему векторного сложения, имеющую | S | + ^ + | Л ( + 21 л 1 измерений. При определении системы Ж^ каждый вектор удобно рассматривать как функцию, сопоставляющую каждой позиции вектора некоторое целое число. Позиция является индексом этого числа. В данном случае множество всех индексов равно S U (1,..., &} U Л U 2А, т. е. координатами, которым присваиваются некоторые значения, являются элементы множества S, счетчики, операторы и подмножества множества операторов.
Для системы Ж^ = (d, W^ полагаем
d(s0)=l,
d (s)== 0, s e= S, s -/— Sq,
d(i) = Л;, I = 1, 2, ..., k,
d^ = 0, TsA, T^0.
Элементам множества W взаимно однозначно сопоставлены тройки (s, о, Ту такие, что значение 0(s, о) определено и Т = А. Вектор w, которому сопоставлена тройка (s, о, Ту определяется следующим образом:
w^ = blt, 0(s, oY — bV, s) ^ teS,
w$ = [u (o)h, /=1, 2, ..., k,
9 Для произвольных X, У
f L если X = Y,( ,y) to» если X-^Y.
Если о = Б е 2Z, то
w (а) = б (а, Ь}, аеА;
tD(U) = d(U,TUW)-6(U,T), UgA.
Если о = bj е 2Z, то
ф(а) = — б (а, Ь), аеА;
w{U) = b{U,Tf}{a\R (b) Л D (а) = 0}) - б ((/, Т), UgA.
Для обоснования этих построений полезно ввести множество р' (д) G 2, состоящее из всех последовательностей, каждая из которых обладает свойствами 1, 2 из теоремы 3.1. Для свободной схемы д выполнено р (^) = р' {д}; в общем случае р (д) = S р' {д}. Для произвольного слова хер' {д} полагаем т ((s0, т), х) = (s, р}. Определим множество Тх G А следующим образом: аЕТх, если х можно представить в виде ххах2, где слово х2 не содержит символа а, а также не содержит таких символов окончания bj, что R (Ь) П D (а) Ф 0 • Таким образом, нарушение свободы происходит в результате выполнения оператора а и последовательности х в том и только в том случае, когда аеТх. Определим вектор wx с множеством индексов (позиций) SU{1, 2, ..., &}иДи2л, полагая
wx{f) = b(s,tY wx(t) =pt, wx (a) = Aa (x), wx{U} = b{Tx, U),wx{f) = b(s,tY wx(t) =pt, wx (a) = Aa (x), wx{U} = b{Tx, U),t e S;i= 1, 2k; aeA;UgA.t e S;i= 1, 2k; aeA;UgA.
wx{f) = b(s,tY wx(t) =pt, wx (a) = Aa (x), wx{U} = b{Tx, U),
wx{f) = b(s,tY wx(t) =pt, wx (a) = Aa (x), wx{U} = b{Tx, U),
t e S;
i= 1, 2k; aeA;
UgA.
t e S;
i= 1, 2k; aeA;
UgA.
Лемма 4.3. R{r^ = {wx\xep,{g}}.
Опускаем доказательство этой леммы. Оно имеет простой индуктивный характер. Лемма показывает, что каждый вектор, принадлежащий сфере достижимости Riy^}, является «кодом» информации об описании1), которое возникает в результате применения к схеме д гипотетической последовательности х е р'{ду
Лемма 4.4. Для свободной схемы д выполнено
Доказательство. Если д — свободная схема, то р(д} =
Теорема 4.4. Существует алгоритм распознавания свободы произвольной счетчиковой схемы.
Доказательство. Из определения множества р'^^ и Тх следует, что схема У свободна тогда и только тогда, когда для каждого х е рЧ^ выполнено
а е Тх=^»ха ф р' ^.
По лемме 4.3 это свойство равносильно следующему свойству системы Ж^: для некоторых аеЛ, Т s А (а ^TY s е S, таких, что значение 0 (s, а) определено, существует вектор ueR^FA удовлетворяющий следующим свойствам:
и^=\»
и^ = 1, и (Z) ^ [v (5)]z, Z=l, 2, ..., k.
Из леммы 4.3 следует, что для каждого s Е S выполнено u(s") е {0, 1} и для каждого Т ^ А выполнено zz(Г) е {0, 1}. Следовательно, вышеприведенная система эквивалентна следующей:„
и1П>\,
и^ ^ 1,
и^ > [$(й)]ь Z=l, 2, .k.'
Но из следствия 4.1 вытекает разрешимость проблемы существования такого вектора и среди конечного множества троек вида (а, Г, s).*
Для счетчиковых свободных схем можно упростить алгоритмы распознавания, используя систему векторного сложения F^ = (e, V). Эта система получается из >^ = (d, №), если вместо всех индексов вектора d и элементов из W рассматривать лишь множество S U {1> 2, .... 6} U Л. При этом мы говорим, что R(T^ является ограничением R^W9^ множеством индексов S U (1,2, ...,6} U Л.
Теорема 4.5. Существует алгоритм для распознавания коммутативности произвольной счетчиковой схемы У.
Доказательство. Легко увидеть, что схема У не является коммутативной в том и только в том случае, когда для некоторой тройки (s, о, az)eSX2X^, такой, что значения 0(s, о, o'Y 6(s, o', о) определены и не равны, существует такое слово х, что т(^ х^ = s, хоо' е р(^) и хо'о е p^Y Используя лемму ,4.4 и связь между Ж^ и F^, последнее условие можно переформулировать следующим образом: '
для некоторой тройки (s, о, o') е S X 2 X S, такой, что значения 0(s, по'), 0(s, о'о) определены и не равны, существует вектор и^ R^^), такой, что u(s)=\, и для каждого /(/=1, 2, ..., й) выполнено свойство
и (z) > max [v (а)^ 0(0% (и(а) + о(crz))/L
Применяя следствие 4.1, легко показать, что это свойство алгоритмически разрешимо для заданного множества троек (s,a,o').
Методику использования следствия 4.1 в теоремах 4.4 и 4.5 не удается распространить на распознавание таких свойств счетчиковых свободных схем, как устойчивость и нейтральность. Однако сформулируем некоторые условия, достаточные для устойчивости и нейтральности счетчиковых схем и удобные в применении. Счетчиковая схема ^ (используем определение 4.1) является нейтральной, если для каждого аеЛ выполнено с(а)^ ^ 0 и всякий раз, когда определено значение 9(s,a,b), определено и 0(s, 5). Счетчиковая схема ^ является устойчивой, если для произвольных различных операторов а, b ^ А выполнено и (а) < 0 => v(6)t = 0 и для произвольных различных элементов о, л е2 из определенности значений 0(s, о), 9(s, л) следует определенность 0(s, ол).
Дальнейшие положительные результаты можно получить, используя систему
Теорема 4.6. Существует алгоритм для распознавания ограниченности произвольной счетчиковой свободной схемы.
Доказательство. Из леммы 4.4 следует, что У ограничена тогда и только тогда, когда для каждого а е А ограни чено множество {и (а) \и е R(T^Y Последнее свойство, соглас* но следствию 4.2, является разрешимым.
Аналогичным образом можно получить более глубокий ре* зультат, состоящий в разрешимости следующей проблемы: для произвольного а распознать, является ли множество (Аа(х)|х^ е р (9^ конечным.
Следствие 4.4. Существует алгоритм для распознавания последовательности произвольной счетчиковой свободной схемы.
Определение 4.2. Для произвольной схемы 9s оператор а назовем замкнутым (terminating), если в каждое вычисление схемы ^ оператор а входит конечное число раз.
Теорема 4.7. Существует алгоритм для распознавания замкнутости произвольного оператора а^А произвольной счет- чиковой свободной схемы S’. Для замкнутого оператора эффективно находится максимальное количество вхождений опера* тора а в произвольное вычисление схемы У.
Доказательство. Присоединяя к системе F^ координату, в которой накапливается количество символов включений оператора а, получим некоторую систему F^. При этом оператор замкнут в том и только в том случае, когда множество значений этой координаты ограничено. Из следствия 4.2 вытекает разрешимость последнего свойства, а максимальное значение координаты, если оно конечно, может быть вычислено по дереву ST ^T^Y
Определение 4.2 допускает ситуацию, при которой оператор счетчиковой свободной схемы является замкнутым, но не существует константы, которая являлась бы верхней границей числа вхождений символа а в вычисления. Однако, используя системы векторного сложения, можно показать невозможность такой ситуации.
Теорема 4.8. Существует алгоритм для распознавания конечности произвольной счетчиковой свободной схемы 9Р (т. е. конечности множества достижимых состояний схемы У).
Доказательство. Схема У конечна в том и только в том случае, когда каждый счетчик ограничен. В силу следствия 4.2, последняя проблема является разрешимой.
Следующий результат является одним из главных результатов настоящей работы.
Теорема 4.9. Существует алгоритм для распознавания однозначности произвольной свободной результативной устойчивой коммутативной счетчиковой схемы.
Доказательство. Принимая следствие 2.1 при условии свободы схемы, получим, что У однозначна в том и только в том случае, когда не существует такого х е 2*, что для некоторых о, о' е 2 выполнено хоо' е р^У) и хо'о е р^У Последнее свойство алгоритмически разрешимо. При этом используются система Т^ и метод доказательства теоремы 4.5.
Алгоритмы распознавания, построенные при доказательстве Теорем 4.5—4.9, опираются на предположение о свободе рассматриваемых схем. Вместо свободы здесь можно было бы взять следующее свойство. Счетчиковую схему У назовем строго ограниченной, если в системе У^ ограничены компоненты с индексами 1, 2, .,,, к, соответствующие к счетчикам. Это свойство
допускает следующую интерпретацию. Пусть схема ^ получена из У таким образом, что множество входных и выходных ячеек всех операторов равны и не пусты. Тогда схема У является свободной, р^ = р'^ и TIP ^, = ^^. Применяя лемму 4.4 к ^, получаем, что схема ограничена в том и только в том случае, когда для векторов из 1Г^ ограничены компоненты с индексами 1, 2, ..., к, т. е. в том и только в том случае, когда схема 9s строго ограничена. Отсюда следует, что проблема распознавания строгой ограниченности произвольной счетчиковой схемы ^ алгоритмически разрешима. При этом эффективно вычислимы границы значений счетчиков.
Проблемы распознавания свойств несвободных счетчиковых схем, по-видимому, в большинстве случаев неразрешимы, поскольку приходится учитывать повторение значений выходных ячеек операторов. Однако для строго ограниченных схем эта информация может быть закодирована конечным множеством компонент системы векторного сложения, поскольку ограничено количество вхождений операторов в вычислении. Не вдаваясь в подробности, констатируем, что свойство сильной ограниченности может замещать свойство свободы в следствии 4.4 и в теоремах 4.5, 4.7, 4.8 и 4.9.
Приведем еще одну разрешимую проблему для счетчиковых схем.
Теорема 4.10. Существует алгоритм, преобразующий произвольную однозначную счетчиковую схему 9Р в некоторую эквивалентную последовательную, схему 9?'. При этом для свободной схемы 9? схема 9?' свободна.
Доказательство. Рассмотрим множество S из определения 4.1. Пусть Л = (аО), ..., а^\ Чтобы получить ^' из ^, заменим S, s0, 0 на S', so, 0' соответственно, полагая
S' = SX{L 2, ..., Л}Х{0, 1}, s5 = (s0, 1,0),
значение 0Z ((s, а, Р), а^) определено в том и только в том случае, когда выполнены следующие условия:
(0 значение 0(s, а^ определено,
(И) Р = 0,
(Ш) для каждого
к е {а, а + 1 (mod Н\ а + 2 (mod А), ..., (Z — 1) (mod А)}
значение 0 (^, aSk^ не определено. Если значение О' (($, а, Р), а^ определено, то полагаем его равным 0(s, а^, а+1 (modЛ), 1). Наконец, полагаем
0Z (s, а, р, а^ = (0 ($, а^), а, 0).
Компонента 0 обеспечивает чередование включений и выключений операторов, так что схема 9РГ является последовательной. Координата а в результате циклического пересчета гарантирует (1) возможность включения хотя бы одного оператора на соответствующем шаге;
если определены значения t(s0, х№\ O(so, х\ то управление схемы 9?' разрешит включение оператора №, следующего за х, не более чем через h — 1 включений других операторов.
Из предыдущего следует, что для каждой интерпретации / схема 9?' имеет точно одно /-вычисление. Более того, это /'-вычисление является также /-вычислением схемы 9Р (в частности, цикличность пересчета параметра а гарантирует выполнение свойства конечной задержки)-.
Неразрешимые проблемы
В этом разделе доказывается алгоритмическая неразрешимость проблемы эквивалентности для конечных схем. Эта проблема неразрешима и для устойчивых и для последовательных конечных схем. Поскольку класс счетчиковых схем содержит класс конечных схем, то для счетчиковых схем проблема эквивалентности также неразрешима. Разрешимость проблемы эквивалентности доказана лишь для схем без логических разветвлений, которые содержатся в классе счетчиковых схем. Этот результат обсуждается в разд. 6.
Доказательство неразрешимости эквивалентности использует неоднозначность рассматриваемых схем. Вопрос о разрешимости эквивалентности для конечных однозначных схем остается открытым1). Вопрос об алгоритмической разрешимости свойства однозначности произвольной конечной схемы также является открытым2), хотя теорема 4.9 и решает его для некоторого важного подкласса.
Неразрешимость проблемы распознавания эквивалентности по истории ячеек доказана в работе [11], которая добавлена переводчиком к списку литературы. — Прим, перев.
) Неразрешимость этой проблемы можно показать, исходя из [11]. Легко подобрать операторы таким образом, чтобы схема вида
где Syy', Sy у' —схемы из [И], была неоднозначной в том и только в том случае, когда она имеет хотя бы одну конечную реализацию. — Прим, перев.
При доказательстве неразрешимости эквивалентности будет использована неразрешимость проблемы парасочетаний Поста [8]. Аналогичное сведение провели Рабин и Скотт [9] в применении к двуленточному автомату. Проблема парасочетаний формулируется следующим образом. Для произвольных двух последовательностей слов
*ь ..., хп,
Уь Уп
над некоторым алфавитом Г распознать, существует ли последовательность индексов i\, U, ..., tp, такая, что выполнено равенство слов
*ч^2 ••* xip = У^У^ “• 1J1p*
Эта проблема неразрешима для любого алфавита Г, содержащего более одной буквы, т. е. не существует общего алгоритма для распознавания этого свойства.
Метод сведения проблемы парасочетаний над алфавитом {6Ь62} к проблеме эквивалентности схем мы проиллюстрируем на примерах, поскольку формальное доказательство легко восстанавливается.
Пусть для схемы У
М = {1, 2}, А = ^а, 6}, D(a) = 7?(a) = {l}, К^ = 3,
D^ = R^ = V^ KW = 3.
Заметим, что ни один из операторов здесь не воздействует на ячейки другого оператора. Отсюда следует, что последовательность символов выключений оператора а зависит лишь от интерпретации /, но не зависит от подпоследовательности включений и выключений оператора 6; ^-й элемент этой последовательности символов выключений оператора а имеет вид Ga(Fa 11 № (с0)))- Аналогичное рассуждение можно провести для оператора 6.
Пусть X = %i, ..., хп — последовательность из слов над алфавитом (61,62};Л1, ..., ip — последовательность индексов. Интерпретацию ^ назовем совместимой с парой (X; ii, ..., ip), если выполнены следующие условия:
если оператор а в процессе ^-вычисления выполняется более одного раза, то проекция ^-вычисления на символы выключения оператора а имеет вид
(и) если оператор b в процессе /-вычисления выполняется более одного раза, то проекция /-вычисления на символы выключения оператора b имеет вид
Х/^2 . . . Х1рН.
Пусть У = уь у2, • • •, Уп — вторая последовательность слов над алфавитом {6Ь Ь^ из проблемы парасочетаний. Тогда легко увидеть, что пара X, У имеет решение (т. е. существует соответствующая последовательность индексов) в том и только в том случае, когда существует интерпретация /, совместимая как с (X; tb f2, ..., tp), так и с (У; ц, U, . . . , 1р).
Эта последняя формулировка является промежуточным этапом при переходе от проблемы парасочетаний к проблеме эквивалентности конечных схем.
Рассмотрим однозначные схемы S?(X), S^(X), ^(У), ^(У), каждая из которых имеет Л4 = {1, 2}, Л = {а, 6}, D (а) = R (а) = = {1}, /<(а) = 3, D(b) — R (6) = {2}, К^ = 3. Если / совместима с (X; /ь /2, •••, У» то 9Р(X) — единственное конечное /-вычисление, для которого выполнены следующие свойства:
последовательность символов выключения оператора а имеет вид
(и) последовательность символов выключения оператора b имеет вид
х,^ ... х1рЬ^.
Если интерпретация / не совместима ни с одной парой вида (X; ii, г2, ..., ip), то каждое /-вычисление содержит бесконечное множество вхождений символов а, Б.
При работе схемы ^(Х) сначала некоторое количество раз выполняется оператор а и вырабатывается последовательность символов выключений а1х-хау Затем некоторое количество раз выполняется оператор b и вырабатывается последовательность символов выключения х^. Любое отклонение от последовательностей такого вида перед первым появлением символа а3 переводит схему в бесконечное движение по циклу. Если после символа а3 символом выключения оператора b является не 63, то также происходит зацикливание.
„ Следующий пример иллюстрирует построение ^(Х).
Пример 4.3. Пусть п = 3, Xi = bi, х2 = 62, х3 = 6j&i- На рис. 4.1 изображено управление схемы ^(Х). Схема ^(Х) обладает следующими свойствами: - * -
если интерпретация / совместима с (X; ц, i2, ..., Zp), то каждое /-вычисление схемы ^(Х) содержит бесконечное множество вхождений как символа а, так и Ь. Единственное конечное /-вычисление схемы ^(Х) является префиксом каждого из этих вычислений;
Рис. 4.1.
если не существует последовательности индексов ц, 12, ..., ip, такой, что / совместима с (X; Zb ..., Zp), то в любом /-вычислении либо
последовательность символов выключения оператора а бесконечна и не содержит а3, либо
(И) последовательность оканчивается первым вхождением символа а3.
Аналогично для оператора &: либо последовательность символов выключения оператора b бесконечна и не содержит 63, либо эта последовательность оканчивается первым вхождением символа 63.
Пусть последовательности слов X = хь х2, ..., хи, ¥ — ух, У2, ..., Уп и операторы с, d таковы, что выполнено (7?(с) П f)/?(d)) U (Я (с) П D(d)) U (Z)(c) f)/?(d)) = 0. Рассмотрим две устойчивые схемы, изображенные на рис. 4.2 и 4.3.
Легко увидеть, что соответствующие системы У, У' не эквивалентны в том и только в том случае, когда для некоторой интерпретации / схема ^(Х) имеет конечное /-вычисление, а ^(Х) не имеет. Последнее возможно в том и только в том случае, когда для некоторой последовательности и, ..., ip выполнено
•-xtp=yiiyi2 ••• У1р-
Таким образом, каждая единичная задача проблемы парасочетаний Поста над алфавитом (6Ь 62} сводится к вопросу о эквивалентности двух устойчивых конечных схем. Следовательно, не существует алгоритма для распознавания эквивалентности схем
этого класса, так как из существования такого алгоритма следовала бы разрешимость проблемы парасочетаний.
На рис. 4.4 изображена модификация рассмотренных конструкций, посредством которой аналогичным образом устанавливается неразрешимость эквивалентности для последовательных (но не устойчивых) конечных схем. В этом примере множества D^cy D{d), D^s 7? (с), R(d), 7?(е) попарно не пересекаются.
Полученные результаты сформулируем в виде следующих теорем.
Теорема 4.11. Проблема распознавания эквивалентности устойчивых конечных схем алгоритмически неразрешима.
Теорема 4.12. Проблема распознавания эквивалентности последовательных конечных схем алгоритмически неразрешима.
Поскольку приведенные выше конструкции используют неоднозначные схемы, то этот метод доказательства не распро-
страняется на эквивалентность однозначных схем и для них вопрос остается открытым. В работе [7] доказана неразрешимость проблемы эквивалентности в классе схем программ, близком к классу конечных однозначных последовательных схем. В этой
работе рассматриваются наряду с операторами последовательности операторов (инструкции), и различные операторы могут содержать одинаковые функциональные символы, что в наших терминах можно выразить как ограничение множества интерпретаций. Однако перенести доказательства на наш случай не удается.
ПАРАЛЛЕЛЬНЫЕ ОПЕРАТОРНЫЕ СХЕМЫ
В этом разделе будет рассмотрен некоторый частный случай счетчиковых схем — так называемые параллельные операторные схемы. Мы введем удобное графическое представление этих схем, а затем обсудим их адекватность параллельным алгоритмам.
Определение 5.1. Параллельной операторной схемой назовем произвольную счетчиковую схему, обладающую следующими свойствами:
5 = {so};.
для каждого ое2 значение 9(s0, о) определено;
если о — символ выключения, то каждая компонента вектора и (о) равна 0 или 1;
если о — символ включения, то каждая компонента вектора п(о) равна 0 или —1;
для любых двух неравных символов включения о, о' из v (а) г = — 1 следует у (o') г = 0.
Теорема 5.1. Произвольная операторная схема является устойчивой, коммутативной и нейтральной.
Доказательство использует коммутативность векторного сложения и достаточные условия устойчивости и перестановочности счетчиковых схем, установленные в разд. 4.
Операторную схему ^ можно представить в виде ориентированного графа G(^) с операторными вершинами ои, Оь, ос, ... и вершинами-счетчиками cU, d%, ..., d^. Каждый счетчик dt помечен числом лг-, которое является начальным значением этого счетчика. Дуги графа направлены либо от операторных вершин к счетчикам, либо от счетчиков к операторным вершинам. Каждая дуга, исходящая из операторной вершины оа, помечена некоторым символом выключения а^. Дуги сопоставлены ненулевым компонентам векторов v(о).
Если (u(a?))i = 1, то выключение оператора а с символом выключения а^ увеличивает значение счетчика i на 1. Если ^u^a^i = —1, то включение оператора b уменьшает значение счетчика i на 1. Условие (5) из определения 5.1 означает, что из произвольного счетчика выходит не более чем одна дуга1).
Су<сЛ=1Су<сЛ=1
Су<сЛ=1
Су<сЛ=1
Пример 5.1. На рис. 5.1 изображена некоторая интерпретированная операторная схема (изображение не формальное), задающая алгоритм нахождения первого положительного числа в последовательности Xi, Х2, ..., хт Результат алгоритма помещается в ячейку 2. Происходит одновременное исследование подпоследовательностей Хь Хз, xs, ... и Хг, Х4, х6, ... . Исследование подпоследовательности оканчивается лишь в том случае, когда либо найден первый положительный элемент, либо когда исследованы все элементы, индексы которых меньше индекса первого положительного элемента другой последовательности.
Сделаем несколько замечаний, полезных при построении строгого формального определения интерпретированной операторной схемы рис. 5.1.
Незаполненные операторные вершины соответствуют операторам с пустыми входными и выходными множествами.
Рис. 5.1.
Оператор, помеченный «хг- > 0», имеет множество {х, /} входных ячеек, где х представляет собой последовательность хь х^ ..., хт. Этот искусственный момент необходим, поскольку в данной модели множество входных ячеек оператора фиксируется заранее и не поддается изменению посредством пере* вычисления индексов.
Некоторые средства задания параллельности в языках программирования имеют аналоги в операторных схемах. Например, в результате выполнения команды fork происходит вызов двух или более операторов. В операторной схеме это достигается наличием в векторе v(aj) более одной компоненты, имеющей значение 1, т. е. наличием символа выключения, увеличивающего значения нескольких счетчиков.
В результате выполнения команды join происходит вызов некоторого оператора после завершения работы прежде включенных операторов в зависимости от результатов их выполнения. Это соответствует наличию более одной компоненты, равной — 1, в некотором векторе и (а), т. е. на операторную вершину оа направлены дуги из нескольких счетчиков.
В результате выполнения команды quit происходит окончание работы некоторой последовательности операторов, которое может не совпадать с окончанием работы всего алгоритма. Это соответствует наличию символа выключения, не увеличивающего значения счетчиков.
Некоторые способы задания параллельности не могут быть представлены в параллельных операторных схемах. Рассмотрим, например, ситуацию, при которой два оператора а и b одновременно имеют доступ к включению, но не могут выполняться одновременно. Операторные схемы не могут полностью удовлетворить это требование, не нарушая условия (5) из ее определения (требование устойчивости). Если же нарушить это условие и разрешить счетчику «питать» несколько операторов, то возникает возможность для создания искомой ситуации. Это иллюстрирует следующий рисунок:
Хотя такое обобщение операторной схемы является естественным, в настоящей работе оно не исследуется.
Приведем еще один пример параллельного процесса: операторы а, b выполняются параллельно и осуществляют переход к выполнению одного из четырех операторов с, d, е, f. Операторная схема, отчасти соответствующая этому алгоритму, изображена на рис. 5.2.
Например, пара (ai,&i) осуществляет переход к оператору с. Однако если первыми двумя парами символов выключения
будут (ai,&i), (а2, 62), то в дальнейшем включатся не только операторы с, е, но и d, f. Это происходит в результате появления «избыточных» единиц в счетчиках 3 и 8, сохраняющихся вплоть до включения операторов d, е.
Указанные трудности не являются случайными, они заложены в самом определении операторной схемы. Действительно, легко показать, что для_ произвольной операторной схемы из определенности т(?, ai&2^) следует определенность %{q, а\хЬ^ при d ^ х. Эту трудность, как и предыдущую, можно преодо-
леть посредством ослабления п. (5) в определении 5.1 — нужно разрешить счетчику «питать» несколько операторных вершин. На рис. 5.3 изображена схема, использующая это ослабление и реализующая указанный алгоритм.
СХЕМЫ БЕЗ ЛОГИЧЕСКИХ РАЗВЕТВЛЕНИЙ
Схему дР назовем схемой без логических разветвлений, или сокращенно простой схемой, если каждый ее оператор имеет точно один символ выключения, т. е. для каждого а г А выполнено К (а) = 1. Несмотря на ограниченность, этот класс охватывает некоторые итеративные параллельные вычисления, записанные на языке так называемых вычислительных графов [3]. Ограниченность класса простых схем по сравнению с классом счетчиковых схем позволяет получить для него более полный спектр разрешимых проблем и более простые алгоритмы распознавания. В этом разделе будет показано, что для простых схем число выполнений операторов не зависит от интерпретации и одинаково для всех вычислений. Будет построен алгоритм нахождения этого числа для произвольного оператора простой схемы. Кроме того, будут построены алгоритмы распознавания свободы и однозначности простых схем, а также алгоритм распознавания эквивалентности свободных однозначных простых схем. ‘
Для произвольной простой схемы ^ каждое слово хе2*, удовлетворяющее свойствам 1, 2 из теоремы 3.1, принадлежит множеству p^Y Свойство 3 для простых схем выполняется автоматически. При анализе свободных схем мы не пользовались свойством 3 из теоремы 3.1. Отсюда следует, что методы исследования свободных схем применимы к простым схемам.
А. Вычисление у^М .
Следующие лемма и теорема устанавливают, что для простых схем число выполнений операторов в вычислении не зависит ни от интерпретации, ни от вычисления.
Лемма 6.1. Для произвольных интерпретаций ^, ^' простой схемы др слово х является ^-вычислением тогда и только тогда, когда оно является ^'-вычислением.
Доказательство. Из определения 1.5 следует, что слово у является префиксом ^-вычисления в том и только в том случае, когда оно является префиксом ^'-вычисления. Отсюда следует, что условия из определения 1.6, необходимые и достаточные для того, чтобы слово х являлось ^-вычислением, также не. зависят от интерпретации, '
Теорема 6.1. Пусть У — произвольная устойчивая коммутативная простая схема. Тогда для каждого оператора а ^ А любые два вычисления схемы дР содержат одинаковое числа вхождений символа а.
Доказательство. Пусть х, у — произвольные вычисления схемы 9Р. Применяя индукцию по п, можно показать, что для любого п существует такое вычисление z(n), для которого выполнены условия:
для каждого а^А вычисления 2 (/г), у имеют равные количества вхождений символа а (это справедливо и для сим* вола aj;
„z(n)=„(x).
Индукция проводится по значениям того же самого «следящего» аргумента, который использовался в доказательстве теоремы 2.1. Здесь мы доказательство опускаем.
Из условия (i) следует, что 2(п) и у имеют одинаковое число вхождений символа а, а из (и) следует, что для каждого п^Цх^ выполнено nz(w) = п(х). Отсюда следует искомое.
Количество вхождений символа включения а в произвольное вычисление схемы ^ обозначим через у^(а). В теореме 4.7 построен алгоритм нахождения этого числа для произвольной свободной схемы. В этом разделе мы дадим более эффективный метод вычисления у^ (а) для простых операторных схем.
Вычисление значений у^(а) осуществляется за три шага. На первом шаге используется итеративный метод нахождения таких операторов а, для которых у^(а) = 0. На втором шаге находятся те операторы а, для которых 0<у^(а) <оо. При этом используются некоторые свойства подграфов графа G^) схемы ЯР. На третьем шаге строится и решается система уравнений для вычисления таких значений у^(а), что 0 < у^ (а) < оо.
Для определения множества {я | у^ (а) = 0} рассмотрим следующую итеративную схему:
Го=0,
So = V I (?o)i > 0}, Тж = Т, и Va | oj eG^ie S^ S/+1 = S/ U {/13# e Ty+1 * (pa, d^ g G (^)}.
В этой итеративной схеме So — множество счетчиков, начальные значения которых положительны; Ту — множество операторов, «питающихся» лишь счетчиками из So (каждый из этих операторов может быть включен на первом шаге); Sj — мно- жестро счетчиков, которые могут позднее стать положителр-
ными; Tj-ц — множество операторов, которые могут позднее включиться благодаря счетчикам из Sj. Итеративный процесс оканчивается, когда для некоторого положительного к выполнено Ти = Гд+ь Легко увидеть, что такое к существует, так как множество А конечно. При этом Тк = ^а\ у^, (я) > 0}, поскольку элементы из Ть являются как раз операторами, «питающимися» теми счетчиками, которые могут принимать положительные значения. Отсюда следует
ЛЛГй = {а Iy^W = 0}.-
Следующая теорема полезна для построения алгоритма получения множества {а| у^ (а) < оо}.
Теорема 6.2. Пусть Э9 — простая операторная схема. Тогда оператор а замкнут в том и только в том случае, когда вершина оа принадлежит некоторому подграфу G' графа С^У), обладающему следующими свойствами:
если вершина оь принадлежит С/, то G' содержит дугу, направленную на оь в том и только в том случае, когда у^ (6) ^ 0;
(И) для произвольной вершины dt графа G' каждая дуга графа G (^), направленная на db принадлежит G';
р' не содержит циклов.
Доказательство. Определим некоторый подграф Н графа G^V который для каждого замкнутого оператора а содержит вершину оа, и покажем, что Н удовлетворяет свойствам (i)— (iii). Пусть слово х является вычислением схемы 9Р, число к выбрано так, что слово их содержит символ выключения каждого замкнутого оператора. Подграф Н определим следующим образом:
вершина оа принадлежит Н в том и только в том случае, когда оператор а замкнут;
вершина-счетчик d< принадлежит Н в том и только в том случае, когда
каждый оператор, «питающий» счетчик I, замкнут;
существует оператор Ь, такой, что di питает b, b замкнут и Y^. (6) > 0;
t-я компонента вектора-состояния т(^0, ^) равна 0, т. е. значение счетчика di равно 0 в результате выполнения ^х, что препятствует дальнейшему выполнению соответствующего оператора;
если некоторые две вершины принадлежат Н, то и дуга Графа G^") между этими вершинами принадлежит Н.
Докажем, что Н удовлетворяет свойствам (i) — (iii). Из условия (Ь) (2) для Н следует, что если для вершины оа выпод-
нено у^ (а) = 0, то не существует счетчика dt, питающего оа в графе G^Y Отсюда следует, что операторы а, для которых у^(а) = 0, удовлетворяют условию (i). Пусть b— замкнутый оператор, для которого выполнено оь ^Н, у^ (6) > 0. Если ни один счетчик из Н не питает Оь, то каждый счетчик из G^y питающий Оь, либо имеет положительное значение после выполнения кХ, либо его значение увеличивает некоторый незамкнутый оператор. Однако последнее предположение влечет возможность нового включения и выключения оператора 6, что противоречит свойству числа к относительно кХ. Отсюда следует, что Н удовлетворяет условию (i).
В силу (b) (1), вершина di принадлежит Н только в том случае, когда каждый оператор, питающий счетчик t, является замкнутым. Поскольку для каждого замкнутого оператора b вершина оь принадлежит Н и каждая дуга между вершинами из Н принадлежит Н, то для Н выполняется свойство (ii).
Покажем, что для Н выполнено свойство (iii). Предположим (противное), что Н содержит некоторый цикл С. В цикле вместе с каждой вершиной содержится дуга, направленная на эту вершину. При этом если оа е Н и у^ (а) = 0, то на вершину оа-не направлена ни одна дуга. Следовательно, для каждой операторной вершины b цикла С выполнено у^ (6) > 0. Рассмотрим операторную вершину b цикла С, такую, что оператор b оканчивает выполнение последним в последовательности кХ. В цикле С содержится некоторая дуга (оь, di). Теперь из простоты схемы ^ следует, что t-я компонента вектора т(?о»^) больше нуля. Однако это противоречит условию (Ь) (3) для Н. Следовательно, Н не содержит циклов.
Продолжим доказательство. Пусть G' подграф графа G (^), удовлетворяющий условиям (i) — (iii). Покажем, что для каждой вершины оа е G' выполнено у^(^)<оо. Поскольку G' не содержит циклов, существует вершина oeG^ на которую не направлена ни одна дуга. Если ц = оа, то из условия (i) следует у^(а) = 0. Если x) = dp то из условия (ii) следует, что дуги из G(^) не направлены на dt и значения счетчика dt могут лишь уменьшаться. Следовательно, если dt питает оператор а, то у^(^) < оо. Пусть & (с)—длина самого длинного пути подграфа G', оканчивающегося вершиной ос из G'. Индукцией по к (с) можно показать, что для каждой вершины ос е G' выполнено у^ (с) < оо. Это следует из того, что если у,ь oc)^G' и для всех операторов Ь, для которых ^оь, d^)^ G^ выполнено у^ (6) < оо? то выполнено у^(с)<°о.
Определение подграфа Н в доказательстве теоремы 6.2 показывает, что замкнутыми вершинами являются вершины, достижимые из счетчиков без входных дуг и из операторных вершин оа, для которых у^(а) = 0. Множество замкнутых вершин можно получить из следующей итеративной схемы:
^о = {а1¥^(«) = О},
Uj+i = С7/ U {a [3d/, такое, что из (di, oJeG(^) и
Vob, d^ е G (У) следует b е UjY Итеративный процесс оканчивается, если для некоторых & выполнено Uw = Uk. В этом случае U = Uk = {а| у^ (а) < оо}. Если множество замкнутых вершин известно, то множество {у^(а) I 0 < Y^ (#) < 00} можно получить несколькими способами. Можно формировать префикс у произвольного вычисления до тех пор, пока выполняются условия для подграфа Н из доказательства теоремы 6.2, а затем найти значение у^ (а) на слове у для каждого замкнутого оператора. Заметим, что в общем случае Н нельзя получить непосредственно из U, поскольку счетчики, «препятствующие» дальнейшим включениям операторов, не известны априори. Наиболее удобным способом вычисления величин у^(а) является решение следующей системы уравнений.
Пусть S = {/ j (ой, d^ е G (S') ^b е UY Тогда для произвольного a s U, такого, что у^ (а) ^ 0, выполнено
~ {/ oj^, Z е 3} [^ + (ой, d^ GW
Для быстрого решения этой системы можно использовать доказательство следующей теоремы.
Теорема 6.3. Пусть для системы уравнений
xt = min (щ-У^ЬцхЛ 1=1» 2»..,»п (*) к к < нД j У
выполнены свойства-
существует решение этой системы»
для всех i, k выполнено а^^О,
(Hi) bq равно 1 либо 0.
(iv) не существует последовательности (/0, ^о), (и Дь • •., &, М» такой, что» во-первых,
к^ fl, если j = ii+\ (mod г),Ч* 1 0 в противном случае,во-вторых, щ* = 0. Тогда ддя этой системы выполнены следую-щие свойству;*.
система имеет единственное решение*,
существует хотя бы одна пара (/, к\ такая, что
4^ = ^;
если пара (/*, к*^ удовлетворяет свойству (**) и выполнено а^^а^ при условии, что Ц, &) удовлетворяет **, тогда х.* = а^*.
Доказательство. Пусть y-i (t = 1, 2, ..., п) является решением системы (*). Тогда для каждого i существует такое кг, что выполнено'
Пусть S = {/| у,-= min (у,)}. Тогда для z е S либо выпол* / = 1, 2 п
нено ^ = 0 для всех /, так что уравнение для yt имеет вид У1 = ак.1»
либо akt = 0 и b^f = 1 для единственного / е S. Это следует из минимальности yt и условий (ii), (Ш). Однако выполнение последней альтернативы для каждого l^S противоречило бы условию (iv). Отсюда следует выполнение условия (Ь). Для некоторого V е S выполнено yt, = akJ\ Возьмем Г из (с). Тогда yv^yl, = ak)/ ^ак*. Однако из уравнений следует уИ^ак*. Последнее доказывает у.* = а^*, откуда следует (с). Заменив в системе (*) х., на акУ, получим приведенную систему уравнений, удовлетворяющую свойствам (i) —- (iv). Из приведенной системы, удовлетворяющей свойству (с), можно получить следующую компоненту решения. Повторяя этот процесс до получения полного решения, придем к очевидному заключению о единственности этого решения. Отсюда следует (а), что и завершает доказательство.
Следующий пример иллюстрирует методику вычисления у^ (а) для каждого оператора а схемы ^.
Пример 6.1. На рис. 6.1 изображен граф О(^) некоторой операторной схемы
Итеративный процесс при получении множества {а | у^ (а) = 0} протекает следующим образом:
го=0;
<So=M(9o)/>O} = {1,2, 3, 4, 7, 9};
Тх = 7VU {а I №г oj е G (^) =>/ е ХД = ^а, b, d, f};
Si = So U V I За e Tb (oa> d^ е G ^) = {1, 2, 3, 4, 5, 6, 7, 9, 10);
Т2 = {а, Ь, с, d, f, g);
S2 = .Si; 7’з = 7’2;
; {alY^(a) = O} = (e}.
Далее порождается множество замкнутых вершин:
и0=^У-
Ux = Uo U {« I №, о„) е G(^) Д (о6, d^ EG^beU») = {е, а};
U2 = (а, е, ЬУ
U3 = (е, а, Ь, сУ,
U4 = \a, Ь, с, е, f) = U5.
Получили множество замкнутых вершин U = (а, b, с, е, f}. При этом S = {1, 2, 3, 4, 5, 8, 9}. Система уравнений для нахождения (а) (а е 17) имеет вид
у^(а) = min [1, 2];
y^(Z>) = min[5 +у^(а), 1 + у^(с)];
(с) = min [у^ (6), Y^ (а)]?
Y^(f) =min[3 + Y^(c)].
Решая эту систему, получим
Y^(a)=l, Y^W = 6, ycZ(c) = 6, y^(f) = 9,
Y^(e) = O.
Разрешимые свойства простых операторных схем
Очевидно, чт'о для простых схем выполняется свойство 3 из теоремы 3.1. Однако в общем случае свойство свободы необходимо лишь для выполнения свойства 3 и для применимости методов, относящихся к /-счетчиковым передаточным системам (transition systems). Более того, для некоторых теорем, относящихся к простым схемам, гипотеза о результативности может быть опущена, поскольку для этих схем невозможны условные передачи, не оставляющие следов в памяти. Отсюда легко следует, что некоторые результаты разд. 4 могут быть развиты для простых схем.
Следующая теорема дает некоторую модификацию этих результатов.
Теорема 6.4. Для произвольной простой счетчиковой схемы ЯР разрешимы следующие проблемы:
Конечно ли множество {Ла(х) | хер(^)}? Если конечно, то чему равен максимальный элемент этого множества?
Является ли схема Я9 последовательной?
Существует ли верхняя граница значений данного счетчика?
Является ли данная свободная устойчивая коммутативная схема однозначной?
В настоящем разделе будут построены алгоритмы распознавания свободы, однозначности простых схем, алгоритм распознавания эквивалентности свободных однозначных простых схем. Эти алгоритмы будут использовать некоторую «характеристическую последовательность» операторной схемы.
Лемма 6.2. Пусть Я9 — свободная простая операторная схема. Тогда Я9 однозначна в том и только в том случае, когда для каждой пары операторов (а,Ь), таких, что apb, R(a) ^ 0, R (Ь) #= 0 и для произвольных двух вычислений х, у выполнено
Эта лемма является ослаблением следствия 2.2 и имеет аналогичное доказательство.
В лемме 6.2 утверждается инвариантность (равенство) проекций на множество (5, Ь} для различных вычислений схемы при apb, что является важным структурным свойством простых операторных схем. Леммы 6.3, 6.4 вместе с теоремой 6.5 и ее следствиями дают более детальный анализ этой инвариантности. Установлено, что если проекция SйЬ (х) является инвариантом, то она имеет некоторую «чередующуюся» структуру (теорема 6.5), и что проекция ^5 (х) является инвариантом в том и
только в том случае, когда первые ее четыре элемента не зависят от вычисления (следствие 6.2).
Лемма 6.3. Предположим, что для слова z е p^V где д> — простая операторная схема, содержащая операторы а, Ь, выполнены условия
bGz, 3v: zua е р (^),zua е р (^ Ф b е и
(т. е. а нельзя включить раньше by Тогда G(^) содержит некоторый подграф G', обладающий следующими свойствами:
Подграф G' не содержит циклов, каждая его вершина принадлежит некоторому пути, направленному на оа.
Если oceG' (с = b либо ^(с) = 0), то ни одна дуга из G' не направлена на ос; в противном случае на ос направлена точно одна дуга.
Рис. 6.2.
Если di е G', то каждая дуга графа G (S^), направленная на di, принадлежит G'.
Если di е G\ то [т(?о, ^Аг = 0; если ос е Gi, то Дс(2) = — 0.
Интуитивно содержание этой леммы сводится к тому, что при данных предположениях распространение произвольного сигнала включения вплоть до оа осуществляется на пути, содержащем Оъ. Доказательство этой леммы опущено. Оно аналогично доказательству теоремы 6.2. Отметим, что предположение b^z здесь существенно. Например, если для операторной схемы рис. 6.2 в качестве z взять пустую последовательность, то выполняется zua & р (9^) ф b е и, но не существует граф G' с нужными свойствами.
Количество вхождений символа а в последовательность ^ер(^) обозначим yw(^). Отметим следующее утверждение, вытекающее из леммы 6.3.
Лемма 6.4. При предположениях леммы 6.3 существуют неотрицательные целые а, р, такие, что, во-первых,
?г(а) = а • YzW + P
и, во-вторых, для каждого ®ер (З”)
NwV^a-^ W + P-
Доказательство. Для каждой дуги ^сЦ, ос) е 6' и для каждого слова w^p^^ выполнено неравенство
переходящее в равенство при z = w. Неравенства, соответствующие внутренним вершинам G', можно исключить, поскольку G' не содержит циклов. Полагая yw(c) = 0 для каждого с, такого, что у^ (с) = 0, получим искомое линейное неравенство (линейное уравнение в случае w = 2).
Заметим, что для операторной схемы рис. 6.2 не выполняется ни одно соотношение вида yw(a) ^ а • yw(b) + р, даже при условии, что а не может включиться раньше Ь. Однако это не приводит к противоречию, поскольку множество pt#7) нс содержит слова 2, для которого выполняются все предположения леммы 6.4.
Теорема 6.5. Пусть Э9 — простая операторная схема, а, b — операторы, для которых Y^to > О, у^(&) > 0» для любых двух вычислений х, у выполнено 8 -в^ = 8 -ь^у\ Тогда &йВ(х) обладает следующими свойствами*.
0) если у^(а)>1 и y^W>1, то | v^a) ~ Y^W | < 1 и вхождения символов а, b чередуются*,
(ii) если Y^M” L то либо первый, либо второй элемент последовательности §йЬ равен а.
Доказательство. Предположим, что г = min (2, у^ (а)) + + min(2, У^(6)) и 8 -ь начинаются последовательностью s^ ... sn
Без потери общности достаточно рассмотреть случай, когда Si = а. Применяя несколько раз лемму 6.4, находим все варианты последовательности Si$2... sr:
5^2 = аа Ф у^ (6) = О,
s1s2s3 = abb => у^ (tz) = 1, s1s2s3s4 = abaa ^ у^ (6) = 1, sis2s3s4 = abab =ф 4w4w (6) < yw (а)
и либо У^ (а) < уф (6) + 1, либо у^(а) = 2.
Свойства (i), (ii) непосредственно следуют из соответствующих импликаций. Для иллюстрации вывода этих импликаций рассмотрим случай sis^s^s^ = abab. Здесь существует z, удовл^
творяющее предположениям леммы 6.4, такое, что ^ZW = 2, yz(6) = 1. Таким образом, существуют неотрицательные числа а, р, такие, что 2 = а • 1 + Р, и для каждого w е р(^) выполз нено yw(a) а • yw(6) + Р- Допустимые варианты: а = О, р = 2; а = 1; р = 1; а = 2, Р = 0; последний вариант не возможен, поскольку Si = а.
В следствии 6.1 будет показано, что доказательство теоремы 6.5 проходит и при более слабых предположениях.
Определение 6.1. Для произвольных w^p^Y а^А введем обозначение S (w, а) = {61 b е 5, 3 и; wub е р ^Y а, ф и}. Таким образом, S(w, а) — множество операторов, которые могут включиться после слова w перед включением оператора а.
Следствие 6.1. Пусть слово v^p^} содержит min (2, у^ (я)) вхождений символа а и min (2, у^ (6)) вхождений Ь; г удовлетворяет следующему условию*, если z = z}oz^ где о е {а, &}, то либо а ^ S(2b о, bY либо b ^ St^a, aY Тогда для любых двух вычислений х, у выполнено S^b^ = S-bVyY
Доказательство этого следствия почти совпадает с доказательством теоремы 6.5.
Более простой результат, составляющий основное содержание этого следствия, состоит в следующем.
Следствие 6.2. Эквивалентны следующие два утверждения*.
для любых двух вычислений х, у выполнено
ab х 7 ао
(п) для любых двух вычислений х, у выполнено
где г = min (2, у^ (а)) + min (2, у^ (6))»
Теорема 6.5 накладывает сильные ограничения на структуру проекции ^-^ (х) в случае, когда она не зависит от х. На основании этого результата можно установить критерий свободы и однозначности произвольной простой операторной схемы ^.
Теорема 6.6. Произвольная простая операторная схема 9^ является свободной и однозначной в том и только в том случае, когда для нее выполняются следующие условия:
из apb, R(a) У= 0, R^=^ 0 следует, что для произвольных вычислений х, у выполнено. 8-ь (х) = 8 -ь (у);
из D^^\ R(a) ф 0 следует, что в каждом вычислении вхождение символов а, а{ чередуются;
из у^(п)^2, D^ П R^=® следует, что для некоторого Ь, такого, что R (6) П D (а) У= 0, вхождения символов а, b чередуются в любом вычислении.
Доказательство. Пусть выполнены условия (i), (ii), (iii). Предположим, что схема ^ не свободна. Тогда для некоторого а существует последовательность uawa е р (У), такая, что сх е w ф R(c) П D(a) = 0. Если выполнено 7?(а)П П D(а) = 0, то при с = а получим противоречие с (ii); в противном случае из (iii) вытекает, что w можно представить в виде wxbw2, где R (Ь) П D^a) ^ 0, но bx е w^. Отсюда следует, что слово *oawx, bw2abx принадлежит p^Y Но, в силу устойчивости и нейтральности, выполнено t)awxw2ab е p^Y что противоречит условию (iii). Отсюда следует свобода схемы У. Из леммы 6.2 следует однозначность схемы 9^.
Пусть схема У свободна и однозначна. Из леммы 6.2 следует выполнение свойства (1). Из предположения о невыполнении (ii) следует неоднозначность схемы. Предположим, что не выполняется свойство (iii). Тогда для каждого Ь,. такого, что 7? (6) П D (а) #= 0, выполнено Y^W=1; при этом для каждого такого b либо у^ (я) = 2 и S -ь = baa, либо у^ (а) > 2 и 8йВ содержит одну из следующих последовательностей символов включений:
baaa, abaa.
В первой из этих двух последовательностей первое и второе выполнения оператора используют одни и те же входные данные, во второй последовательности второе и третье выполнения оператора используют одни и те же входные данные. В обоих случаях нарушается свобода схемы, т. е. приходим к противоречию.
Теорема 6.6 и следствие 6.2 дают возможность построить очень просто алгоритм для распознавания как свободы, так и однозначности произвольной простой операторной схемы У.
. Лемма 6.5. Существует алгоритм построения для каждой простой операторной схемы 9> такого слова с^^р^, которое для каждого оператора а содержит точно min (2, у^ (а)) вхождений символа а и такое же количество вхождений символа ах.
Доказательство. Пусть схема ^' совпадает с ^ с точностью до некоторых дополнительных счетчиков, питающих операторы (каждому оператору — свой счетчик). Полагаем, что каждый новый счетчик имеет начальное значение 2, значения новых счетчиков никогда не увеличиваются. Тогда для произвольного оператора а выполнено Y^/(^) = min (2, У^(^)). Это еле-
дует из того, что в простой операторной схеме третье включение одного из операторов не' является необходимым для второго включения другого оператора (см. теорему 6.5). Произвольное вычисление схемы 9?' является префиксом некоторого вычисления схемы ^, следовательно, его можно взять в качестве у^.
Слово у^ назовем характеристической последовательностью схемы ^. Его длина не более чем в 4 раза превышает количество операторов схемы 9s. Это понятие играет большую роль при разработке эффективных алгоритмов распознавания свойств параллельных схем. Во-первых, как показывает следующая теорема, оно полезно при распознавании свободы и однозначности схем. Во-вторых, характеристическая последовательность и величины у^ (а) могут быть основой для алгоритмов распознавания эквивалентности свободных однозначных простых оператора ных схем.
Теорема 6.7. Пусть Э9 — простая операторная схема, для которой последовательность и^ обладает свойствами, сформулированными в лемме 6.5. Тогда 9? является одновременно свободной и однозначной в том и только в том случае, когда выполняются следующие свойства;
если wa есть префикс слова и^ и выполнено apb, то b^S^w, а);
если D (а) П R№ Ф 0 и слово w = ua является префиксом слова то а S(w, а^;
если у^(а)^2 и D (а) П RW = 0, то для некоторого оператора Ь, такого, что R(b)(]D(a)=/=0, вхождения символов а, b чередуются в последовательности v^.
Доказательство. Если схема 9? свободна и однозначна, то из теоремы 6.6, в силу с^^р (9^, непосредственно следуют свойства (а), (Ь), (с). Предположим тёперь, что выполнены свойства (а), (Ь), (с). Докажем выполнение свойств (i), (ii), (iii) из теоремы 6.6. Из следствия 6.1 вытекает (а) => (i). Пусть b— оператор из условия (с). Тогда проекция $й^ постоянна для всех вычислений. Из теоремы 6.5 следует, что чередование символов а, Б в и^ влечет их чередование §йЬ для произвольного вычисления х. Аналогичным образом можно показать, что (Ь) => (ii).
Алгоритм распознавания свободы и однозначности схемы 9? состоит в построении последовательности у^ и проверке для нее условий из предыдущей теоремы. Эта проверка использует следующую лемму.
Лемма 6.6. S(w,a) определяется следующей итеративной схемой;
То=0;'
So = V I (т (<7о, w))i > 0};
Г/+1 = ^и {& I ь=^а, <du Ob) eG^ie S};
$/+. = S, U V13b e Tw : ^ob) d^ e G W
Итеративный процесс считаем оконченным, если для некоторого к выполнено Тк+\ = Тк. При этом полагаем S(w,d) = Тк.
Доказательство этой леммы опущено. Оно вытекает из того, что оператор может быть включен в том и только в том случае, когда значения всех «питающих» его счетчиков положительны.
В следующей теореме построен критерий эквивалентности свободных однозначных простых операторных схем. При этом использована характеристическая последовательность и^.
Теорема 6.8. Пусть 9\ ^ — свободные однозначные простые операторные схемы, множество операторов у них равны. Тогда эти схемы эквивалентны в том и только в том случае, когда выполнены условия
для каждого а выполнено у^ (а) = у^, (а),
из apb с^дует 8 аЬ (v^) = ^s5 Хр^.
Доказательство. Условия (i), (ii) означают (используем теорему 6.5 и следствие (6.1), что если х, х' являются вычислениями для 9*, 9й соответственно, то <^^ W = ^5 (xz). Из устойчивости и определенности следует, что в качестве х, хг можно выбрать «последовательные» вычисления, в которых за выключением произвольного оператора непосредственно следует его включение. Для произвольной ячейки t е М введем обозначение S{ = {а | i е R(a\V Фиксируем произвольную интерпретацию 9*- Используя индукцию, можно показать, что для произвольных I, к справедливо следующее утверждение: если х = х1сс1х2, x' = XiddiX2, где с, d являются ^-ми вхождениями элементов из Sj в словах х, х' соответственно, то выполнено с = d, lID^q0 • х^ = nD(c) (^0 • xQ, а следовательно,
^£ (с) (^о * xi^ci) = П^ (с) (^0 • ххссгу
где q0, (^ — начальные состояния схем 9, 9й соответственно. Отсюда следует, что вычисления х, х' и, следовательно, произвольные /-вычисления (это следует из однозначности) порождают равные истории ячеек.
НЕСКОЛЬКО ОБОБЩЕНИЙ
Модель, определенная в этой статье, нацелена на исследование природы алгоритмов и динамики их выполнения. Некоторые затронутые здесь вопросы требуют углубления. Одно из возможных направлений состоит в ограничении класса рассматриваемых интерпретаций. Это ограничение можно сформулировать как модификацию определения схемы, состоящую в детализации операторов. Например, задавая формальное отношение эквивалентности между операторами, можно достичь, чтобы эти операторы вычисляли одну и ту же функцию при произвольной интерпретации. Можно ввести оператор пересылки, всегда интерпретируя его как тождественную функцию. Имеет смысл ввести операторы, работающие с индексами, т. е. модифицирующие входные и выходные ячейки некоторых операторов. Было бы интересно обобщить полученные результаты на такие частично интерпретированные модели.
Другое направление состоит в ограничении класса рассматриваемых вычислений, формализующем некоторые «реальные» ограничения. Например, может быть учтена информация о времени выполнения операторов, об очередности их выполнения, действии приоритетов, прерываний. При этом важно, чтобы введение новых понятий оправдывалось получением новых результатов.
По-видимому, перспективным является сосредоточение на некоторых подклассах схем и некоторых их свойствах. Например, заслуживают внимания подклассы счетчиковых схем, допускающие большее разнообразие типов следования, чем параллельные операторные схемы. Можно попытаться обобщить на них результаты, полученные для простых операторных схем.
Важно также развитие предложенной модели, взятой во всей ее широте. Здесь интересны нерешенные проблемы, упомянутые в разд. 4, а для построенных алгоритмов возникает задача их улучшения. Допустимы другие понятия однозначности и эквивалентности. Например, схему можно считать однозначной, если однозначны выходные значения некоторых выделенных ячеек. Возникает также задача построения системы эквивалентных преобразований параллельных схем. Все эти проблемы могут быть преломлены в свете изучения максимально параллельных схем.
Авторы благодарны М. О. Рабину, А. Л. Розенбергу, Д. Д. Ратледжу и Д. Л. Слутцу за интересные и полезные советы.
СПИСОК ЛИТЕРАТУРЫ
Ginsburg S., The Mathematical Theory of Context-Free Languages, McGraw Hill, New York, 1966.
Янов Ю. И., О логических схемах алгоритмов, Проблемы кибернетики, I, Физматгиз, М., 1958, стр. 75—127.
Karp R. М., Miller R. Е., Properties of a model for parallel computations: determinacy termination, queueing, SIAM J. Appl. Math., 14 (1966), 1390— 1411.
Karp R. M., Miller R. E., Parallel program schemata: A mathematical model for parallel computation, IEEE Conference Record of the Eighth Annual Symposium on Switching and Automata Theory, October 1967, p. 55—61.
Karp R. M., Miller R. E., Winograd S., The organization of computations for uniform recurrence equations. I. Assoc. Comp. Math., 14 (1967), 563— 590.
Konig D., Theorie der Endlichen und Unendlichen Graphen, Akademische Verlagsgesellschaft, Leipzig, 1936.
Luckham D. C., Park-D. M. R„ Paterson M. S., On formalised computer programs (Preliminary Draft), Programming Research Group, Oxford University, 1967.
Post E., A variant of a recursively unsolvable problem, Bull. Am. Math. Soc. 52 (1946), 264—268.
Rabin M. O., Scott D., Finite automata and their decision problems, IBM I. Res. Develop., 3 (1959), 198—220.
Rutledge J. D., On lanov’s program schemata, J. Assoc. Comp. Mach. 11 (1964), 1—9.
Itkin V. E., Zwinogrodski Z., On program Schemata Equivalence, Journal of Comp, and Syst. Scien., 6, No. 1 (1972).
Сравнительная схематология1)
М. Патерсон и К. Хьюитт
ВВЕДЕНИЕ
Интуитивно мы можем представить, что значит, что один язык программирования мощнее другого или что некоторое подмножество языка является его адекватным «ядром». Однако попытки формализовать это понятие наталкиваются на серьезные трудности теоретического характера. Эти трудности связаны с тем, что даже крайне простые языки являются «универсальными» в следующем смысле. Если язык допускает программирование с использованием простых арифметических функций и функций для обработки списков, то можно моделировать любую эффективную структуру управления — обычно посредством подходящего кодирования работы машины Тьюринга. В частности, в простом языке с некоторой базовой арифметикой можно записать программу для любой частично рекурсивной функции. Обычно такое кодирование очень неестественно и крайне неэффективно. Поэтому, если мы хотим продолжить практическое изучение сравнительной мощности разных языков, следует отказаться от точно заданных функций и рассматривать вместо этого абстрактные, неинтерпретированные программы, или схемы. В следующих разделах излагаются результаты предварительных исследований в этой области.
ЯЗЫКИ
Простейший из изучаемых нами языков — это язык стандартных схем, в котором мы записываем схемы программ, подобные изображенной на рис. 1.
Если проинтерпретировать используемые в схеме основные функциональные и предикатные символы, то ее можно рассматривать как исполняемую программу, задающую частичную функцию. Условимся, что в качестве аргументов этой функции берутся начальные значения ячеек £ь Ь2> ... (их столько, сколько использовано в схеме), а ее значением является конечное значение ячейки Lo, если оно определено. Другие ячейки
*) Paterson М. S., Hewitt С. Е., Comparative schematology, in Record of Project MAC Conference on concurrent systems and parallel computation, ACM, New York (December 1970), pp. 119—128.
Л10, Мь ..., Nq, NX) ... используются только как рабочие. Будем предполагать, что ни одна из рабочих ячеек не используется в качестве аргумента прежде, чем ей присвоено значение.
Рис. 1. Стандартная схема.
Другой язык, которым мы будем пользоваться, допускает использование условных выражений для рекурсивного определения функций. Например:
/ Ub х2) = if £ (х2) then F (if P (xj thenx2 else Л)
else (if P (x2) then true else f (x2, F (xj) g (x^ = if P У (xb F (xj) then false else g (Л) Здесь две абстрактные функции определяются посредством од* новременной рекурсии. Если дана интерпретация основных функциональных и предикатных символов (обозначаемых заглавными буквами), то такая система определяет частичную функцию, соответствующую каждому уравнению. Считается, что система вычисляет функцию, задаваемую первым уравнением. Такая система называется рекурсивной схемой. Если система состоит из одного уравнения, то она называется простой рекурсивной схемой, если из нескольких, — составной.-
,ИНТЕРПРЕТАЦИИ И ЭКВИВАЛЕНТНОСТЬ
Интерпретация 1 стандратной схемы и рекурсивной схемы задает
предметную область D\
для каждого основного предикатного символа Р— предикат (всюду определенный)
Р,; D-> {true, false}
для каждого n-местного (п ^ 0) основного функционального символа F — функцию (всюду определенную)
Ff. Dn->D,
Обычно Р, Р\ ... используются как предикатные символы, а другие заглавные буквы — как функциональные. Константа — это 0-местная функция.
Частичная функция, задаваемая схемой S при интерпретации /, обозначается Sj. Для двух частичных функций и, v пишем и —и, если для любого х либо оба и^х) и и(х) не определены, либо оба определены и и^х) = у(х). Две схемы S и S' (не обязательно одного и того же типа) называются (строго) эквивалентными, S = S', если для любой интерпретации справедливо Si c±l Sp
Пусть ^ и ^' —два класса схем. Мы пишем 9Р <^9Р', если VS s 9P3S' г 9Pr [S = S']; 9Р ^др', если др <.gPr. но неверно, что дрг <^др. Пусть 91 — класс рекурсивных схем, а ^ —класс стандартных схем.•
Теорема 1.^<<&.
Доказательство. Проверка справедливости включения 9 ^ 91 основана на громоздкой конструкции, смысл которой в общих чертах раскрывается ниже (подробности см. в [1]). Каждому оператору Ь^ стандартной схемы U сопоставим абстрактную частичную функцию fp которая при данных значениях всех ячеек (в том числе и рабочих. — Перее.) вычисляется следующим образом. Начинаем движение по схеме от оператора Ь^ с этими значениями ячеек; значением функции объявляется конечное значение ячейки Lo, если оно определено. Легко написать составную рекурсивную схему, которая определяет ft рекурсивно. Если Ьо — это оператор START, то функция, вычисляемая схемой U, получается из /о удалением части ее аргументов (соответствующих рабочим ячейкам. — Перее.).
Для того чтобы показать, что включение строгое, рассмотрим следующую рекурсивную схему У:
V; f(x) = ifP(x)then х else Н (f(L lx)), ИРШ)
Мы покажем, что никакая стандартная схема не может быть эквивалентна V.
При этом нам будет полезно понятие свободной интерпретации. В свободной интерпретации предметная область — это множество всех цепочек, составленных из основных функциональ-
ных символов. Тогда, например, если Н — двухместный функциональный символ, a Ei и £2 — такие цепочки, то
НДЕЪ Е^=НЕХЕ,
для любой свободной интерпретации /. Интерпретация же предикатных символов никак не ограничивается. Понятно, • что в большинстве случаев достаточно рассматривать лишь свободные интерпретации. Так, например, для любых S и Sz, S = SZ тогда и только тогда, когда Si с^ 3/ для всех свободных /.
В настоящем (а также в следующем) доказательстве мы используем семейство свободных интерпретаций {/п}, п > 0, где ( true, если длина Е равна, п, Pi (£) = 1 f 1
Л '( false в остальных случаях.
Каково значение Vin^s где X—лустая цепочка? Для п= = 1 это значение равно HLR, для п = 2 — HHLLRLHLRRR
и т. д.
Рис. 2. Двоичное дерево при п = ^.Рис. 2. Двоичное дерево при п = ^.
Рис. 2. Двоичное дерево при п = ^.
Рис. 2. Двоичное дерево при п = ^.
Мы покажем, что для вычисления значения при /п требуется по крайней мере п + 1 ячейка. Для этого полезно представить эту же задачу в геометрической форме. Мы будем размещать фишки на конечном двоичном дереве Тп. Для п = 3 дерево Тп изображено на рис. 2. Правила игры таковы:
каждой фишкой в любой момент можно накрыть висячую вершину; -
если непосредственные преемники данной вершины накрыты фишками, то и саму ее можно накрыть любой фишкой.
Сколько нужно фишек, чтобы можно было достичь корня дерева? Легко видеть, что п + 1 фишки достаточно для Тп. Следующее рассуждение показывает, что такое количество фишек является необходимым. .
Дерево называется замкнутым на данном шаге игры, если на каждом пути от его корня до висячей вершины имеется хотя бы одна фишка. Первоначально, когда ни одна вершина дерева ле накрыта фишкой, оно не замкнуто. В заключительный момент накрыт корень дерева и, значит, оно замкнуто. Рассмотрим тот шаг игры, когда дерево впервые стало замкнутым. Это
з Зак. 125
могло случиться только в результате накрытия висячей вершины, благодаря чему замкнулся последний путь. До этого шага на этом пути, таким образом, не было ни одной фишки, и, значит, каждое из п поддеревьев, непосредственно ответвляю* щихся от него, должно быть независимым образом замкнуто. Поскольку для того, чтобы замкнуть любое дерево, требуется хотя бы одна фишка, после рассматриваемого шага на Тп имеется по крайней мере п + 1 фишка.
Связь между вычислением стандартной схемы и шагами этой игры представляется нам очевидной. Предположим теперь, что некоторая стандратная схема U эквивалентна схеме Кив ней используется г ячеек. Но это немедленно приводит к противоречию, поскольку при интерпретации 1Т схема U не может вычислить требуемое значение. Это и завершает первое доказательство.
Таким образом, стандартные схемы не могут вычислять некоторые абстрактные функции по той простой причине, что фиксированного числа ячеек недостаточно для вычисления всех требуемых значений. Это не очень интересное обстоятельство, поэтому во втором доказательстве этой же теоремы будет показано, что стандартная схема может не дать нужного результата в силу более глубоких причин, отражающих неадекватность ее управляющей структуры. Для этого доказательства берется рекурсивная схема, вычисляющая частичный предикат; по сути дела, она получена из V заменой Н на логическую функцию &.
Второе доказательство теоремы 1. Рассмотрим рекурсивную схему:
W : f (х) = if Р (х) then true else (if f (Л (x)) then f (R (x)) else false)
Поскольку значение функции, задаваемой этой схемой, либо истинно, либо не определено, все соображения, на которых основано предыдущее доказательство, здесь бесполезны. Предположим, что стандратная схема U эквивалентна W и в ней имеется t операторов и г ячеек. Без ограничения общности можно считать, что, кроме Р, L и R, в U не используются никакие другие предикатные и функциональные символы. Состояние схемы U при данной интерпретации определяется фиксацией некоторого оператора и значений всех ячеек. Два состояния Si и S2 называются (в данном рассмотрении) эквивалентными, если в ходе вычислений, начинающихся в этих состояниях, проходится одна и та же последовательность операторов.
Рассмотрим классы эквивалентности состояний схемы U при интерпретации /п, определенной выше. Нетрудно понять, что единственное свойство значения ячейки, которое может повлиять на принадлежность состояния тому или иному классу эквива-
лентности, это длина цепочки. Кроме того, любые два слова длины большей п не различимы предикатом Р. Поэтому при интерпретации /п схема U имеет максимум t^n-V^y классов эквивалентности. Если во время вычисления в схеме U дважды встретятся состояния из одного класса эквивалентности, то она неизбежно зациклится. Вычисление Uin^X) по предположению должно закончиться (с результатом true), поэтому ни один класс эквивалентности не должен повториться дважды, и, значит, должно быть сделано не более Цп + 2у шагов. Если п выбрать достаточно большим, так что
то за время вычисления U не успеет проверить значения предиката Р на всех цепочках
LL ... L, RL ... L, ..., RR ... R
ппп
но остановится с результатом true. Если немного изменить Zn, так чтобы Р стал ложным на тех словах, на которых он не проверялся, то U, конечно, «не заметит» этого и снова даст ответ true, в то время как значение W в этом случае не определено. Таким образом, U ^ W, и доказательство завершено. (Этот метод доказательства применим, естественно, и к схеме V.)
ЛИНЕЙНЫЕ РЕКУРСИВНЫЕ СХЕМЫ
Эффективно охарактеризовать те рекурсивные схемы, для которых существуют эквивалентные им стандартные, невозможно. В самом деле, если ^* ^Й есть подмножество таких рекурсивных схем, то ни оно само, ни ^\S^* не являются рекурсивно перечислимыми. Мы не приводим здесь доказательства этого факта; оно опирается на технику, описанную в [1] и [2]. Лучшее, на что можно надеяться, — эффективно охарактеризовать большие подклассы классов F и ^ \ 5s*. В настоящее время описан довольно широкий эффективный подкласс класса Й\^*э содержащий обе схемы V и W, который мы пытаемся расширить дальше. '
С другой стороны, ниже кратко описывается класс линейных рекурсивных схем, который аппроксимирует ^*. Рекурсивную схему можно рассматривать как описание способа вычисления значения определяемой функции, исходя из ее значений, а также значений других функций на других аргументах. Определение этих значений может в свою очередь потребовать но-
вых рекурсивных обращений и т. д. Например, в следующей схеме:
/ (х, у) = ifP (х) then f (х, S (у)) else
(ifP kg kR to)) then S (x) else H kg kR to). R Ш
g (x) = ifP' kx) then H kg (S (x)). R kg kS to))) el se
(ifP (x) then f (x, x) else Д)
для вычисления fkx,y) может понадобиться значение fkx, Sky)) или значение gkRkx)), а для вычисления gkx)— gk^kx)) или
Рис. 3. Стандартная схема L, эквивалентная линейной рекурсивной схеме L*.
Цх,х). Заметим, однако, что в этом примере при любом вычислении непосредственно может потребоваться максимум одно новое значение определяемой функции. Это свойство и характеризует линейные рекурсивные схемы.
Теорема 2. Если рекурсивная схема X линейна, то Хе е 5s*.
Мы не будем приводить здесь доказательства теоремы, а дадим вместо этого пример трансляции простой линейной рекурсивной схемы в эквивалентную стандратную схему. Доказательство же заключается в сведении случая произвольной рекурсивной схемы к схеме, изоморфной нашему примеру. Поэтому описываемую ниже трансляцию можно рассматривать как «каноническую».
L* : f (х) = if Р (х) then R (х) else S (f (Т (х)), х)
Наличие у S второго аргумента является важной особенностью, усложняющей этот пример. Пусть и0, иь ..., ит — последовательность значений функции f, вырабатываемых при обращении к ней во время некоторого заканчивающегося вычисления.
Заметим, что
"r-S/^+p W)- г = 0m—1.
Поэтому если бы мы имели счетчик, позволяющий пересчитывать целые числа, не превосходящие пг, то требуемое значение f можно было бы легко получить, вычисляя в обратном порядке Ут, Ут-ь • • •, уо- Такой счетчик, однако, можно моделировать, если заметить, что
z/ax ( false г = 0, ..., m—1, P/(T/)(x)) = J .
4 и ( true r — m.
Стандартная схема L, эквивалентная L*, изображена на рис. 3.
,ОБСУЖДЕНИЕ
Конечно, эффективность описанной выше трансляции оставляет желать лучшего, и за возможность использовать лишь конечное число ячеек приходится платить увеличением времени вычисления. Суть проблемы в данном примере заключается в том, что требуется последовательно вычислить значения
^(х),Т^х)..
Схема L делает это, вычисляя каждый терм независимо, всякий раз начиная с х, на что требуется (по порядку) т2 операций. С целью более детального исследования проблемы соотношения между временем и памятью рассмотрим следующую простую комбинаторную задачу.
Предположим, что в ячейке Л1о, доступной в любой момент только для считывания, хранится значение х; кроме того, имеется к ячеек Mi, ..., Мк. Задача состоит в том, чтобы для данного фиксированного пг указать кратчайшую цепочку операторов вида
Mt : = Т^М^, 0<1<к, ККк,
вычисляющую последовательно значения ^^(х), .,., Л2)(х), т^. '
Значения могут появляться в любых ячейках, но должны порождаться именно в этом порядке. Пусть L^k, m?) —длина такой кратчайшей цепочки; например, L(l, т) = 7гт(т + 1). Нами получена точная формула для £(&, zn), из которой следует, что
L^k, fn^m^.
Таким образом, функции, задаваемые линейными рекурсивными схемами, можно вычислять достаточно эффективно, используя лишь фиксированное число ячеек. Однако, по-види- мому, для реализации этой возможности требуется более гибкая структура управления, чем та, которая имеется в стандартной схеме.
В настоящее время мы исследуем соотношения между различными обогащенными формами стандартных схем, такими, как схемы со счетчиками, магазинами. Эти обогащения можно выразить либо дальнейшим усложнением понятия «схемы», либо фиксацией части интерпретации в обычной стандартной схеме. Например, счетчик, можно выразить, если обычным образом зафиксировать интерпретацию константного символа ZERO, функциональных символов ADD1, SUB1 и предикатного символа POSITIVE. При применении в этой области хорошо известных результатов из теории автоматов следует проявлять некоторую осторожность. Например, класс схем со счетчиками не является в этой теории универсальным, поскольку из первого доказательства теоремы следует, что ни одна такая схема не может быть эквивалентна рекурсивной схеме V. Однако можно показать, что при подходящем определении класса схем с магазинами он оказывается эквивалентным классу рекурсивных схем.
КЛАСС ПАРАЛЛЕЛЬНЫХ СХЕМ
Очень простое расширение класса рекурсивных схем достигается с помощью параллельного варианта условного выражения:
IF р THEN g ELSE г
принимающего значение g, если р истинно, значение г, если р ложно, и, кроме того, значение g, если р не определено, но g и г определены и равны между собой. Обозначим выражение
IF pTHEN true ELSE g
через p/OR/g. Понятно, что если хотя бы одно из значений р и g истинно, то и (p/OR/g) истинно, а если р и g оба не определены, то и (p/OR/g) не определено. Пусть У — класс схем, полученный расширением 5? за счет применения функции OR.
Теорема 3. ^ < у.
В доказательстве этой теоремы (слишком длинном, чтобы привести его здесь) показывается, что никакая рекурсивная схема не может быть эквивалентна схеме S:
S ; f (х) = if р (х) then true el se (/ (L WDR/f (R (x)))
Значение S/(X), где / — свободная интерпретация, истинно, если существует хотя бы одна цепочка из букв L и R, на которой р истинно, и не определено в противном случае. В доказательстве рассматривается поведение рекурсивных схем при такой свободной интерпретации, что р тождественно ложно. Выясняется, что рекурсивная схема может «просмотреть» только те цепочки в двоичном дереве (L, R) -цепочек, которые находятся на ограниченном расстоянии от некоторого конечного числа путей в дереве. Поэтому, какова бы ни была рекурсивная схема, она не сможет проверить часть цепочек, а, значит, при некоторой интерпретации даст неправильное значение.
ЗАКЛЮЧЕНИЕ
Существует ясное понятие эффективного процесса вычисления, связанного с неинтерпретированными функциями, и нам хотелось бы иметь достаточно естественное обогащение стандартных схем, которое позволило бы моделировать любое такое эффективное вычисление. Хорошим кандидатом на эту наиболее важную в иерархии схем роль является, по-видимому, класс схем с двумя магазинами. Если в схеме имеется возможность запоминать связанные с управлением маркеры, а также различать их между собой, то «универсальность» этой модели обеспечена. к
Всюду в этой статье мы пользовались тем упрощающим предположением, что интерпретация задает только всюду определенные функции и предикаты. Снятие этого ограничения меняет часть наших результатов и приводит к некоторым новым
соображениям. Например, для доказательства включения 91 <( ^ достаточно заметить, что уже для схемы
f(x) = (P(x)/O/?/Pzto)
не существует эквивалентной ей рекурсивной схемы. Кроме того, понятие эффективного вычисления становится в этом случае неясным и зависит от соглашений, которые будут приняты в отношении вычисления частичных базисных функций.
Нам хотелось бы отметить работу доктора X. Р. Стронга [3], в которой более детально обсуждаются многие из затронутых в данной статье тем, а также выразить признательность за те полезные дискуссии, которые мы с ним имели.
СПИСОК ЛИТЕРАТУРЫ
Luckham D. С., Park D. М. R., Paterson М. S., On formalized computer programs, L of Computer and System Science, 4, № 3 (June 1970), 220—249. (Русский перевод: Лакхэм Д., Парк Д. М., Патерсон М. С., О формализованных машинных программах, Кибернетический сборник, новая серия, вып. 12, «Мир», М., 1975, стр. 78—114.)
Paterson М. S., Equivalence problems in a model of computation, Ph. D. Thesis, Cambridge University, 1967.
Strong H. R., Translating recursion equations into flow-charts, /. of Com* puter and System Science, 5, № 3 (June 1971), 254—285.
Стандартные схемы, рекурсивные схемы и формальные языки') z
С. Гарлэнд и Д. Лакхэм
ВВЕДЕНИЕ
Изучение схем программ преследует по крайней мере три принципиальные цели. Во-первых, дать точную формальную модель понятия вычислительной программы в виде, который совершенно не зависел бы от особенностей или работы какой-либо (реальной или абстрактной) вычислительной машины. Рассматриваемые схемы воплощают как раз те особенности или конструкции языков программирования, которые кажутся «существенными», — наше исследование и предназначено для того, чтобы показать, являются ли они действительно существенными в каком-то смысле. Во-вторых, развить теорию, обосновывающую оптимизацию программ, опять-таки независимо от какой- либо конкретной машины или языка программирования. И третьей целью является нахождение общих методов (например, систем правил вывода или преобразований программ) для проверки правильности и контроля данной программы по се спецификациям. Разумеется, эти цели нс являются независимыми. Результаты изучения оптимизации почти несомненно найдут применение при проверке правильности программ и наоборот. ,
Существенным для всех трех этих целей является вопрос о трансляции программ с одним множеством свойств в программы с другими свойствами. Теорема о транслируемости, утверждающая, что любая схема из одного класса может быть транслирована в эквивалентную схему другого класса, дает нам возможность заменять одни программные средства другими. Результаты такого сорта могут дать нам нормальные формы, помочь оптимизации или свести проблему проверки правильности к некоторой другой, которую мы уже умеем решать. С другой стороны, теорема о нетранслируемости, утверждающая, что некоторые средства нельзя- заменить другими, дает нам несколько неуловимое интуитивное понятие «мощности» языка программирования.
]) Garland S. J., Luckham D. С., Program Schemes, Recursion Schemes and Formal Languages, Report UCLA-ENG-7154, June 1971, School of Engineering and Applied Science, University of California, Los Angele§.
В данной статье мы изучаем транслируемость схем и связанные с ней проблемы эквивалентности, когда нужно определить, эквивалентны ли две схемы в заданном классе. В частности, мы затрагиваем вопросы развития методов решения этих проблем. Нам кажется, что должны существовать некоторые «общие методы» или по крайней мере можно задать общую форму для существующих «хитростей». По существу каждый раздел настоящей статьи содержит применения таких частных методов исследования. Имеются четыре метода: приложение результатов теории формальных языков, программистская техника, оценка сложности вычислений и метод «следов» (грубо говоря, применение метода Рабина и Скотта [7], ограничивающего поиск, необходимый для установления различий в поведении двух схем).
Хотя некоторые результаты справедливы для более общего понятия схемы, мы ради иллюстраций почти всегда имеем в виду три следующих специальных класса схем: стандартные схемы, стандартные схемы, снабженные счетчиками, и рекурсивные схемы. Большая часть изложения ограничена унарными схемами (то есть схемами, содержащими только функции и предикаты от одного аргумента), а в случае рекурсивных схем мы интересуемся исключительно унарными рекурсивными схемами с одной переменной1), введенными де Беккером и Скоттом в[1].
Раздел 1 содержит определения, терминологию и диаграмму, резюмирующую большинство результатов о транслируемости и нетранслируемости, сформулированных в последующих разделах.
Раздел 2 имеет дело с приложениями теории формальных языков.
С данной унарной схемой ассоциируются два сорта языков и формулируется несколько теорем о нетранслируемости, непосредственно вытекающих из классических теорем теории формальных языков. Кроме того, некоторые естественные классы рекурсивных схем (например, линейные рекурсивные схемы) можно строго определить, задавая сопоставленные им языки. Точно так же некоторые результаты теории формальных языков наводят на мысль об аналогичных результатах для схем: например, теорема Хомского о нормальной форме для КС-языков приводит нас к факту, что всякая унарная рекурсивная схема эквивалентна такой рекурсивной схеме, в которой термы определяющих соотношений содержат не более двух определяемых функциональных символов.
*) Для унарных рекурсивных схем с одной переменной мы будем пользоваться сокращением dBS.— Прим, перед.
В разделе 3 приведены результаты, получаемые с помощью программистской техники; этот раздел содержит общие теоремы о транслируемости. Мы исследуем два определения транс- лируемости. Одно из них, которое кажется более естественным, говорит, что схема Р является трансляцией (или результатом трансляции) схемы Q, если обе эти схемы дают один и тот же результат при любой интерпретации (т. е. Р сильно эквивалентна Q). Это определение не ставит ограничений на порядок, в котором проводятся вычисления, а требует только, чтобы результаты, если они определены, были одними и теми же. Показано, что квазирациональные рекурсивные схемы (наименьший класс схем dBS, содержащий линейные рекурсивные схемы и замкнутый относительно функциональной подстановки) транслируемы в унарные стандартные схемы. Весь класс схем dBS также транслируем в класс стандартных схем, снабженных двумя счетчиками, — результат, который для бинарных рекурсивных схем оказывается неверным. Программистская техника используется также для того, чтобы показать, что класс языков значений стандартных схем в точности совпадает с классом всех рекурсивно-перечислимых языков. Это не только разрешает все наши споры, но говорит также о том, что методы раздела 2 не имеют так много приложений, как можно было бы надеяться.
Мы изучаем и более слабое понятие трансляции: говорят, что Р является трансляцией Q, если Q есть «несущественное расширение» Р. Оказывается, что всякая унарная рекурсивная схема транслируема в этом слабом смысле в стандартную схему.
В разделе 4 речь идет о сложности вычислений. Дан пример схемы dBS, которая не является сильно эквивалентной никакой стандартной схеме, а также никакой стандартной схеме, снабженной одним счетчиком. По существу мы пользуемся здесь элегантным примером бинарной рекурсивной схемы Патерсона и Хьюитта [6]. Кроме того, это дает нам возможность предположить, что квазирациональные схемы являются максимальным классом рекурсивных схем, транслируемых в стандартные схемы.
В разделе 5 рассматривается приложение техники следов. Показано, что проблема эквивалентности разрешима в классе линейных рекурсивных схем (что является частичным ответом на вопрос, поднятый де Беккером и Скоттом в [1]) и в классе схем Янова с постоянными функциями.
В статье мы поднимаем ряд вопросов, которые еще не поддаются нашим методам. Мы хотели бы понять, можно ли с помощью наших методов получить ответ на эти вопросы или требуются какие-то другие общие методы. Например, кажется верным, что требуется более тонкая оценка сложности вычислений,
если мы хотим показать существование унарной стандартной схемы с одним счетчиком, не эквивалентной никакой унарной стандартной схеме без счетчиков1). С другой стороны, кажется, что методы раздела 5 должны давать положительное решение проблемы эквивалентности для более общих классов рекурсивных схем.
ОПРЕДЕЛЕНИЯ
За немногими специально отмеченными исключениями мы следуем определениям и понятиям Хопкрофта и Ульмана [2], касающимся цепочек, языков и автоматов. Цепочка нулевой длины (или пустая цепочка) обозначается через X.
Схемы являются абстрактными моделями вычислительных программ. Пусть дано множество V переменных (обычно обозначаемых х, у, 2, ...), множество ^ базисных функций (обычно обозначаемых f,g, ...), которые могут быть использованы для присваивания новых значений переменным, и множество ^ предикатов (обычно обозначаемых Р, Q, ...).
В терминах значений предикатов схема специфицирует тот порядок, в котором следует производить вычисления. Мы будем интересоваться преимущественно двумя классами схем, а именно: стандартными схемами и рекурсивными схемами.
Стандартная схема — это конечный список инструкций следующего вида:
присвоить переменной х значение /хь ..., хп и перейти к следующей инструкции (здесь f ^ ST — ц-местная функция, а ХЬ ..., хп ^Т?У
выполнить следующей инструкцию I, если Р истинен на хь ..., х^еТ, иначе выполнить следующей инструкцию / (здесь Р е ^— ц-местный предикат и Xi, ..., хп^Ту
стоп.
Подробности, касающиеся стандартных схем, можно найти у Лакхэма, Парка и Патерсона [4]. Напоминаем читателю, что стандартные схемы имеют естественное представление в виде графа или диаграммы; например, следующая схема
выполнить 2, если Рх, иначе выполнить 3;
присвоить х значение fx;
*) Недавно Плейстед Д. А. (в работе «Стандартные схемы со счетчиками», опубликованной в Proceedings of Fourth Annual ACM Simposium on Theory of Computing, стр. 44—51) показал, что всякая стандартная схема с одним счетчиком эквивалентна некоторой стандартной схеме без счетчиков. Отсюда следует, что неквазирациональная рекурсивная схема 1.1 и из разд. 1 эквивалентна некоторой! стандартной схеме (без счетчиков), что является опровержением предположения, что квазирациональные рекурсивные схемы — максимальный класс рекурсивных схем, транслируемых в стандартные схемы. — Прим, персе,.
СТОП
может быть представлена диаграммой
Последовательность следующих друг за другом присваиваний х := fxx, ..., х := fnx мы будем изображать одним присваиванием х := fn ... f2f\X, содержащим композицию функций fi, • ••, fn- Такие произвольные термы, составленные из базисных функциональных символов, могут появляться в простых операторах присваивания наших диаграмм.
Мы не будем давать общего определения класса рекурсивных схем, а будем пока интересоваться преимущественно подклассами, которые обладают простым представлением. Назовем схему унарной, если она содержит только унарные функции и предикаты. '
Тогда унарная рекурсивная схема с одной переменной (схема dBS)—это конечный список определяющих соотношений
Fxx: = если Рхх то ахх иначе р^
Fnx: = если Рп х то апх иначе рпх, где Fx, ..., Fn — новые, определяемые функциональные символы, Рх, ..., РТь — (не обязательно различные) предикаты, а «ь Pi, ..., an, Рп—(возможно, пустые) цепочки в алфавите определяемых и базисных функциональных символов. Например,
?х: = если Рх то fx иначе FFfx
— унарная рекурсивная схема.
Схемы производят вычисления при задании интерпретаций, которые фиксируют смысл функций, предикатов и переменных. Интерпретация 7 задает непустое множество domj, называемое областью интерпретации 7, и сопоставляет каждой f ^ ^ функцию fi над domf, каждому Р ^ & — характеристическую функцию отношения Pi над dom2, а каждому х е V — начальное значение хт е dom2. Интерпретация 1 унарной схемы называется свободной, если dom2 = tF* • У (множество всех цепочек в алфавите базисных функциональных символов, за которыми следует символ переменной), fi^ = fa для всех f ^ ST, а е domj и Xi = х для всех х е Т. Для всякой интерпретации 7 (fx ... ... fnX)I = (f1)I(...(fn)z(xI)).
Вычисление стандартной схемы 3 при интерпретации / определяется очевидным образом и может быть найдено у Лакхэма и др. [4]. Значение val7(S) схемы 3 при интерпретации / равно последнему значению выделенной выходной переменной (обычно обозначаемой х), когда вычисление 3 при / заканчивается, и не определено в противном случае. (Другие переменные схемы 3 иногда называют программными или рабочими переменными.)
Вычисление унарной рекурсивной схемы можно кратко определить, позаимствовав некоторые понятия из теории формальных грамматик. Со всякой такой схемой
£: Fzx: = если Р{х то azx иначе Pzx(1^Z^m)
мы свяжем контекстно-свободную грамматику G со множеством терминальных символов, совпадающим с ^, нетерминальными символами Fx, ..., Fn и продукциями F{ ->а{ и Ft —> pz (1 ^Z ^п\ Пусть / — некоторая интерпретация. Вычисление схемы Е при интерпретации / соответствует единственному правостороннему выводу в грамматике G, который согласован с интерпретацией / в следующем смысле: элементарный вывод ^F^w => у dw, где у,
G
б е (^ U №, • • •, Fn^* и w е • F, согласован с /, если б = az и (P^j^Wj) = 1 или если 6 = pz и ^Pi\(wI') = 0. Если FYx^w — G правосторонний вывод некоторой терминальной цепочки w е е ^* • F, согласованной с интерпретацией /, то val/(£) = w/, в противном случае val;(£) не определено.
В качестве альтернативы мы можем представить себе вычисление унарной схемы Е как вычисление стандартной схемы 3 с одной переменной и стеком, в который может помещаться конечная цепочка символов. Вначале в стеке находится один функциональный символ Fi, и на каждом шаге вычисления стек содержит цепочку базисных и определяемых функциональных символов, которые еще нужно применить к текущему значению переменной. В схеме 3 запрограммировано извлечение и проверка верхнего символа в этом стеке. Если этот символ есть F^ то 3 выполняет проверку Р^ на текущем значении переменной; если значение предиката равно 1, то в стек помещается at (самый правый символ помещается в верхушку стека), если же значение Рг равно 0, то в стек помещается pz. Если верхний символ — символ базисной функции f, то 3 применяет f к текущему значению своей переменной. Вычисление завершается, когда стек оказывается пустым.
Как нетрудно видеть, определяемый функциональный символ Fx играет особую роль в рекурсивной схеме £, в то время как F^ ..., Fn выступают в качестве вспомогательных функций. Всякий раз, когда мы хотим подчеркнуть, какая из определяе-
мых функций Ft играет эту особую роль, мы пишем E^F^ вместо Е.
Различные классы схем можно получить как подклассы классов стандартных схем и рекурсивных схем. Схемы с одной переменной, как об этом говорит их название, имеют только одну переменную; в частности, все схемы dBS являются таковыми. Унарные рекурсивные схемы можно классифицировать далее, исходя из сопоставленных им грамматик: линейным рекурсивным схемам соответствуют линейные контекстно-свободные грамматики (т. е. цепочки в правой части продукций содержат не более одного нетерминального символа), праволинейным схемам соответствуют праволинейные грамматики и т. д.
Мы будем исследовать относительную мощность различных классов схем. Две схемы R и S называются ^сильно)эквивалентными (обозначение: R = S) тогда и только тогда, когда для всякой интерпретации / val7 (/?) с^ val7 (S) (~ означает, что либо оба значения определены и совпадают, либо оба не определены). Класс схем 91 транслируем в класс схем ^ (обозначение: 5?-*^), если для каждой схемы R е 91 существует сильно эквивалентная схема 8 ^ 9*. Известно, например, что класс стандартных схем с одной переменной транслируем в класс унарных праволинейных рекурсивных схем путем сопоставления всякой инструкции данной стандартной схемы определяемой функции Ft с определяющим соотношением
Ftx: = Fi+Jx
когда i-я инструкция — это x:=fx (это явно «незаконное» он- ределяющее соотношение — просто сокращение для
Р{х: = если Рх то F^Jx иначе F^fx')
Ftx: = если Рх то FjX иначе Р^х, когда z-я инструкция — это «выполнить /, если Рх—истина, иначе выполнить 6» или
Ftx\=x, когда z-я инструкция — это «стоп».
Два класса 91 и 9 схем называются взаимно транслируемыми, если 91-^9 и 9 ~> 91 (обозначение 91<^9\
Доказательства эквивалентности и транслируемости облегчает следующая лемма.
Лемма. Для всяких схем R и S справедливо R = S тогда и только тогда, когда va\[(R) ~val7(S) для всех свободных интерпретаций 1.
Доказательство. Необходимость очевидна. Для доказательства достаточности предположим, что R^S. Тогда для некоторой интерпретации / val7 (/?) ^ val7 (S). Определим свободную интерпретацию Рэ полагая Рр (а) = Pi(ai) для всех Р ^9 наеУТ. Тогда valz (Д) ~ (valr (Д))7 и valz (S) ~ (valf (8))^
так как интерпретация I и Г «изоморфны». (Формальное доказательство этого факта требует формального определения понятия схемы — мы же в данной работе хотим уклониться от абстракций. Читатель может удовлетвориться доказательствами для стандартных и рекурсивных схем.) Поэтому valr(/?)r£ valr(S).
Мощность класса схем иногда возрастает, если в них разрешается употреблять новые полностью или частично интерпрети-
Рис. 1. Стандартная схема со счетчиком, эквивалентная рекурсивной схеме Fx: = если Рх то fx иначе FFfx.
рованные базисные функции или предикаты. Например, к стандартным схемам можно добавить тождественную функцию (т. е. базисную функцию f, такую, что для всякой интерпретации / и всякого а е domj справедливо fi(a) = а). Однако, как мы увидим в разд. 3, употребление тождественных функций можно элиминировать. Схемы также можно снабдить константными функциями (т. е. базисными функциями f, такими, что h для всякого / — одна и та же константа) или счетчиками. Константные функции иногда называют константами. Счетчик в стандартной схеме — это переменная, которой нельзя обычным образом присвоить значение, она не может также использоваться для присваивания значений другим переменным. Вместо этого имеются две новые базисные функции: inc (возрастание) и dec (убывание), которые используются для изменения значения
счетчика, и новый предикат zero. Интерпретация I является допустимой для схем со счетчиками, если dom2 содержит все неотрицательные целые числа, incj(n) = п + 1, dec7(n + 1) = п, dec7(0)=0, zero7(n+l)=0 и zero7(0)=l. Стандартная схема со счетчиком, изображенная на рис. 1, сильно эквивалентна рекурсивной схеме примера 1.1.
Праволинейные рекурсивные схемыПраволинейные рекурсивные схемыСтандартныесхемыс однойпеременной
Праволинейные рекурсивные схемы
Праволинейные рекурсивные схемы
о| |г.б
Квазирациональныерекурсивныесхемыо| |г.бКвазирациональныерекурсивныесхемыо| |г.бСтандартныесхемыСтандартныесхемыРекурсивные схемы авзРекурсивные схемы авзо|Стандартные,схемыс однимсчетчикомо| |з.13, 4.4Стандартныесхемыс двумясчетчикамио|Стандартные,схемыс однимсчетчикомо| |з.13, 4.4Стандартныесхемыс двумясчетчиками
Квазирациональныерекурсивныесхемы
о| |г.б
Квазирациональныерекурсивныесхемы
о| |г.б
Стандартныесхемы
Стандартныесхемы
Рекурсивные схемы авз
Рекурсивные схемы авз
о|
Стандартные,схемыс однимсчетчиком
о| |з.13, 4.4
Стандартныесхемыс двумясчетчиками
о|
Стандартные,схемыс однимсчетчиком
о| |з.13, 4.4
Стандартныесхемыс двумясчетчиками
Рис. 2. Сводка результатов транслируемости для унарных схем.
Нашей главной целью в этой статье является демонстрация некоторых общеприменимых методов исследования транслируемости схем. Если не оговорено противное, все рассматриваемые схемы являются унарными, ничем не снабженными схемами. Мы не будем в дальнейшем писать слово «унарный», если только не захотим особо подчеркнуть это. Рис. 2 суммирует большинство результатов о транслируемости и нетранслируемости, установленных в разд. 2, 3 и 4; номера, проставленные рядом со стрелками, указывают номера теорем; буква О рядом со стрелкой указывает, что результат верен по определению.
ЯЗЫКИ ЗНАЧЕНИЙ
Многие результаты о разрешимости эквивалентности и транслируемости для классов унарных схем можно получить как непосредственное следствие известных результатов теории автоматов и математической лингвистики. Мы будем использовать простой способ сопоставления каждой схеме в данном классе определенного формального языка, называемого ее языком значений; затем мы используем соответствующие факты для полученных таким образом языков значений. Несмотря на то что некоторые результаты этого раздела хорошо известны, мы, однако, приводим здесь их доказательства, чтобы проиллюстрировать силу и легкость применения метода языков значений.
Для всякой унарной схемы S, содержащей функциональные символы из некоторого множества З7 и выходную переменную х, языком значений L(S) схемы S называется подъязык ^*, содержащий все строки а, такие, что vali(S) = a для некоторой свободной интерпретации /. Например, множество {аа: a^{f,g}*} симметричных слов четной длины является языком значений линейной рекурсивной схемы
Fxx * = если Рх то х иначе F^x
(2 1) Е*
* 7' F^x: = если Qx то fFJx иначе gFvgx
в то время как Vngufn: п ^ 0} является языком значений стандартной схемы
(2.2)
С помощью техники языков значений будет показано, что рекурсивная схема Е не является сильно эквивалентной никакой стандартной схеме с одной переменной, а стандартная схема S не является сильно эквивалентной никакой рекурсивной схеме. Наконец, для всякого класса У схем мы рассмотрим класс
ь^ = ^ь^у S^^
языков значений схем из ^ и докажем теорему, которая, несмотря на ее тривиальность, имеет поразительное количество следствий.
Теорема. Для всяких схем S и Г, если S = Т, то
1Д^=1Дт\
Доказательство. Из-за симметрии достаточно показать, что £(5)^£(Г). Пусть a^L^SY Тогда ax = valz(S) для некоторой интерпретации /. Так как S = Г, то val7 (S) = val; (Г), а поэтому aeL (Т).
Следствие. Для всяких классов схем 9 и 9”
если 9-+9~, то L^^L^Y
если З^Т, то L^ = L^Y
Для того чтобы применить следствие к схемам примеров (2.1) и (2.2), мы сначала определим L (9) для некоторых интересных классов 9 схем.
Теорема. Пусть 9 — класс всех
стандартных схем с одной переменной}
стандартных схем}
праволинейных рекурсивных схем}
линейных рекурсивных схем}
рекурсивных схем, которые содержат функциональные символы из некоторого множества 9~.
Тогда L(9^ представляет собой класс всех
регулярных}
рекурсивно-перечислимых}
регулярных}
линейных контекстно-свободных и
контекстно-свободных подъязыков S'*.
Доказательство. Прямое доказательство (а) предоставлено читателю, так как (а) следует из (с) и взаимной транслируемости стандартных схем с одной переменной и праволинейных рекурсивных схем, установленной в разд. 3. Подобным же образом доказательство (Ь) отложено до разд. 3. Здесь мы докажем (е) и заметим, что подобным образом доказываются также (с) и (d).
Прежде всего мы покажем, что каждая рекурсивная схема Ь имеет контекстно-свободный язык значений. Пусть Е — рекурсивная схема, содержащая функциональные символы из ^ и предикатные символы из 9, заданная системой соотношений
E^F^x Fix'- =если Pvx то арс иначе pzx (l^Z^n), где для всякого I, Р^ — предикат из 9, а аг, Рг — термы над (^ U {Л, ..., Fn^Y В разделе 1 схеме Е было сопоставлена контекстно-свободная грамматика для того, чтобы определить
понятие вычисления £. К сожалению, язык, порождаемый этой грамматикой, в общем случае шире, чем язык значений Е, поскольку не все выводы в грамматике соответствуют вычислениям схемы Е. Мы устраним этот недостаток, построив несколько более сложную грамматику G следующим образом: пусть Н— множество всех функций из ^ в {0, 1}. Для каждого I и каждого h из Н определим терм *^н над (ST U {£ь ..., Fn^) следующим образом:
Г если пусть Yz,A,l = )
Л(Л) = 1,А№) = 0,Л(Л) = 1,А№) = 0,то а/5ТО Р„то а/5ТО Р„' Ni,M>' Ni,M>Yi,A,/+i = ) Y«fc,Yi,A,/+i = ) Y«fc,Y₽fe>Y₽fe>если Yf, Л,; #= \Fk для всех y, k. если Yz.a,/ = Y^ и h(P^ = i, если Ni,h,i = NFk и Л(Р6) = 0,если Yf, Л,; #= \Fk для всех y, k. если Yz.a,/ = Y^ и h(P^ = i, если Ni,h,i = NFk и Л(Р6) = 0,( если
Л(Л) = 1,
А№) = 0,
Л(Л) = 1,
А№) = 0,
то а/5
ТО Р„
то а/5
ТО Р„
' Ni,M>
' Ni,M>
Yi,A,/+i = ) Y«fc,
Yi,A,/+i = ) Y«fc,
Y₽fe>
Y₽fe>
если Yf, Л,; #= \Fk для всех y, k. если Yz.a,/ = Y^ и h(P^ = i, если Ni,h,i = NFk и Л(Р6) = 0,
если Yf, Л,; #= \Fk для всех y, k. если Yz.a,/ = Y^ и h(P^ = i, если Ni,h,i = NFk и Л(Р6) = 0,
и Yz, h — Yz, A, n*
Заметим, что если для некоторых у и к выполняется Yz, а = Y^a, то для всякой свободной интерпретации /, такой, что РАх^ = = h{P} для всех Ре^, valz(£(Fz)) не определено, поскольку вычисление Е зацикливается. Пусть теперь G — контекстно-свободная грамматика с терминальными символами из ^, нетерминальными символами Fh ..., Fn, начальным символом Fx и продукциями Fz”^Yz,a Для всех 1 и ^ таких, что Yz.a^Y^a для всех у иб, Тогда для цепочки а из ^* справедливо Fx^>a
G тогда и только тогда, когда существует свободная интерпретация /, такая, что ах — val;(£) (см. разд. 1). Следовательно, £(£) — контекстно-свободный язык, порожденный грамматикой G.
Пусть, наоборот, G — контекстно-свободная грамматика с терминальными символами из ^, нетерминальными символами £ь ..., Fn) начальным нетерминалом Fx и продукциями Ft-^alb где 1=1, ..., п и i= 1, ..., p(i) для некоторой функции р. Пусть Е — рекурсивная схема с функциональными символами из и предикатными символами рц (1 ^z^n, 1 ^j< рУ^, заданная определяющими соотношениями
{
£)х: = если Рцх то амх иначе Flj+Xx^l </ < р (0),
FР ki^ • “ ^ip Ц^О ^ ^ ^'
где F\ совпадает с Ft. Для всякой цепочки а, выводимой в грамматике G, рассмотрим ее правосторонний вывод
F1 ^ ^\Рf (1)^1 ^ Р2^f к2)а2 ^ • • • ^ ^GGG G
Стандартные и рекурсивные схемы и формальные Языки 85 и определим свободную интерпретацию /, полагая (P^)7(a^v)=l тогда и только тогда, когда продукция Р^ац применялась в выводе £кРтак^к+хРИь+пак+х (где ^Ff №а0 = Рх\ Такое определение возможно при условии, что Ff wak ф Ff ^ak' для всех к ф к', которое выполняется, если Р1т^2>^Р1 для любых р G
и i; последнего всегда можно добиться, например, приведением G к нормальной форме Грейбах. По определению val7(£) = ax, так что а г L (£).
С другой стороны, если / — свободная интерпретация, то val7(£), очевидно, выводимо в грамматике G. СЛедовательно, G порождает язык значений схемы Е.
Заметим, наконец, что если в двух приведенных выше конструкциях либо £, либо G будет вначале взята линейной или праволинейной, то конструируемая G (или £) также будет линейна или праволинейна соответственно. Отсюда следует (с) И (d).
Как уже указывалось, прямым следствием теоремы 2.5 и следствия 2.4 является следующий результат о нетранслирусмо- сти.
Следствие.
(де Беккер — Скотт). Существует рекурсивная схема, которая не является сильно эквивалентной никакой стандартной схеме с одной переменной.
Существует стандартная схема, которая не является сильно эквивалентной никакой рекурсивной схеме.
Существует рекурсивная схема, которая не является сильно эквивалентной никакой линейной рекурсивной схеме.
Существует линейная рекурсивная схема, которая не является сильно эквивалентной никакой праволинейной рекурсивной схеме.
Доказательство. Линейная рекурсивная схема Е примера 2.1 нс является сильно эквивалентной никакой стандартной схеме с одной переменной, а также никакой праволинейной схеме, поскольку язык L(E) нерегулярен. Стандартная схема S примера 2.2 не является сильно эквивалентной никакой рекурсивной схеме, поскольку £(S) нс является контекстно-свободным. Наконец, существуют рекурсивные схемы, языки значений которых не являются линейными контекстно-свободными • (см. пример 4.2).
Утверждение (а) будет усилено в разд. 4 с помощью другого метода. Пример, используемый для (Ь), показывает также, что, допуская дополнительные переменные в рекурсивных схемах,
мы увеличиваем «мощность» таких схем: например, простая «бинарная» рекурсивная схема
Fxx : = Р2 (х, х)
Р^, уУ = Рз№
F3x: = если Рх то fF3fx иначе Р4у
Р4у: = если Ру то gP4fy иначе у
имеет язык значений Vfngnfn •п ^'$, который не является контекстно-свободным, так что схема не является сильно эквивалентной никакой схеме dBS.
В добавление к этим следствиям, касающимся транслируемое™, техника языков значений имеет также следствия, касающиеся разрешимости проблемы остановки для данного класса схем. Так как схема 3 останавливается тогда и только тогда, когда L(S) непусто, существуют эффективные процедуры для решения проблемы остановки в классах стандартных схем с одной переменной (Янов [3]) и схем dBS, но не в классе произвольных стандартных схем (Лакхэм, Парк и Патерсон [4]). Это вытекает из того, что проблема пустоты разрешима для контекстно-свободных языков, но неразрешима для рекурсивно-перечислимых языков (Хопкрофт и Ульман [2], стр. 230), а соответствие между схемами и языками, данное теоремой 2.5, является эффективным.
Хотя следствие. 2.4 дает необходимое условие для трансли- руемости схем, оно не дает достаточного условия, поскольку, как будет показано в разд. 4, существует рекурсивная схема, которая не является сильно эквивалентной никакой стандартной схеме, хотя ее язык значений не только рекурсивно перечислим, но и контекстно-свободен. Эта недостаточность обусловлена тем, что теорема, обратная теореме 2.3, неверна; схемы с одним и тем же языком значений не обязаны быть сильно эквивалентными, как это показывает следующий пример:
Обе приведенные выше схемы имеют язык значений (X, /}, однако не являются сильно эквивалентными, так как они по-разному приходят к своим значениям.
Для определенного класса схем, а именно схем с одной переменной и без константных функций, можно доказать теорему, обратную теореме 2.3 (рассматривая некоторую модификацию техники языков значений, учитывающую не только результат вычислений, но и «историю»).
Пусть 3 —схема с предикатными символами Рь ..,, Рк и функциональными символами из ^. Для свободной интерпретации /, при которой схема 3 останавливается, интерпретированным значением val* (3) схемы 3 при интерпретации / называется цепочка fnpn_xfn-x ... fxpox из GFU{0, 1})*F, такая, что valz(S)= = fnfn—x • • • f\X и для всех i < п pt представляет собой цепочку р1Х ... pik из к нулей и единиц, такую, что для всех /, рИ — G^P^fi ... fxx\ Языком интерпретированных значений L^ (3) называется множество всех интерпретированных значений val*(S) схемы 3 для свободных интерпретаций /. Интерпретированное значение fnPn—\ ... hPo* называется согласованным со свободной интерпретацией / тогда и только тогда, когда для всех i < п и !</<& имеем Pu = (PJ)I(fi ... fxx\
Важное свойство схемы 3 с одной переменной, не’содержащей константных функций, заключается в том, что для всякой свободной интерпретации / существует_не более одной цепочки (интерпретированного значения) а из L* (3), согласованной с /, и если такая цепочка существует, то она совпадает с val* (3). Причиной этого является то, что для всякой свободной интерпретации / и для всякой цепочки а е £*(3), согласованной с /, проверки предикатов производятся схемой 3 во время вычисления при / только над подцепочками а, а следовательно, вычисление схемы 3 при / должно быть тем же самым, что и при Г, где а = val* (3). Используя это свойство, мы получим следующее частичное обращение теоремы 2.3.
Теорема. Для всех схем 3 и Т с одной переменной и без константных функций S = Т тогда и только тогда, когда
L*(S) = L*(T).
Доказательство. Пусть S = T и I — свободная интерпретация. Тогда val, (S) ~ val, (Г) и, следовательно, val*(S)~ ~val*(T) по определению val*. Поэтому L*(S) = L*(T). Наоборот, пусть L* (S) = L* (Г) и / — свободная интерпретация. Достаточно показать, что если val* (S) определено, то val* (Г) также определено и val* (S) = val* (Г). Так как L* (Г) = L* (S), то yal*(S) g/,*(?’). Поскольку очевидно, что val* (S)
согласовано с /, то вследствие замечаний, предшествующих теореме,
val* (S) = val* (Г).
Отсюда и следует утверждение теоремы.
Теорема 2.7 имеет несколько следствий. Полагая L*(^) = = {Л* (3): 3 ^ ^} для всякого класса ^ схем, мы получим еле* дующие аналоги 2.4 и 2.5.
Следствие. Для всяких классов 9 и $Г схем с одной переменной и без константных функций
(a) 9-^ST тогда и только тогда, когда L* (9) ^ L* (ЗГу, (Ь) 9^-ST тогда и только тогда, когда L^^ = L^^TV
Теорема. Пусть 9 —класс всех
стандартных схем с одной переменной или праволинейных рекурсивных схем;
линейных рекурсивных схем;
рекурсивных схем без константных функций.
Тогда L*(^) содержит только
регулярные;’
детерминированные линейные контекстно-свободные; (с) детерминированные контекстно-свободные языки.
Доказательство. Читатель может сам убедиться в том, что учет поведения предикатов схемы в ее интерпретированном значении устраняет недетерминизм грамматики, определенной в доказательстве теоремы 2.3. Например, язык интерпретированных значений рекурсивной схемы
Е: Ftx: = если Рх то atx иначе fox
с одним предикатом воспринимается детерминированным авто- aAfa матом, изображенным на рис. 3 в виде диаграммы, где >
означает, что если а — очередной входной символ, а А символ в верхушке магазина, то происходит указываемый стрелкой переход в другое состояние, а Л в стеке заменяется на а (если а = X, входная лента нс сдвигается). Отметим, что, пока нс сделано усиление теоремы 2.9, полностью характеризующее упоминающиеся здесь языки L* ^9У следствие 2.8 является не очень полезным. Тем не менее теорема 2.9 без всякого усиления вообще позволяет сводить некоторые проблемы разрешимости для схем к проблемам разрешимости для языков.
Теорема.
(Янов) Существует эффективная процедура, распознающая, являются ли сильно эквивалентными две стандартные схемы с одной переменной-
Проблема эквивалентности для {линейных) рекурсивных схем сводится к проблеме эквивалентности для {линейных) контекстно-свободных языков.
Доказательство. Так как существует процедура для распознавания, совпадают ли два регулярных языка (Хопкрофт и Ульман [2]), утверждение (а) следует из 2.8 и 2.9. Утверждение (Ь) также следует из 2.8 и 2.9.
Было бы интересно выяснить, верно ли утверждение, обратное (Ь), так как тогда некоторые нерешенные проблемы формальных языков (например, проблему эквивалентности для линейных контекстно-свободных языков) можно было бы свести к известным проблемам разрешимости для схем (разд. 5).
ТРАНСЛЯЦИЯ СХЕМ
В этом разделе мы исследуем проблему трансляции рекурсивных схем в стандартные. В частности, мы покажем (теорема 3.5), что всякая квазирациональная рекурсивная схема транслируема в сильно эквивалентную стандартную схему. При несколько менее сильных условиях, которые мы называем «слабой транслируемостью», всякая рекурсивная схема оказывается слабо транслируемой в стандартную схему. Другими словами, для всякой рекурсивной схемы R существует стандартная схема 3 с тем же самым языком значений, что и у /?, и такая, что всякий раз, когда 3 останавливается, R также останавливается с тем же самым результатом (т. е. L{R) = L{S) и R есть расширение схемы 3). Эти результаты о транслируемости получаются
с помощью ряда простых программистских приемов. Ту же самую технику мы используем для того, чтобы показать, что всякий рекурсивно-перечислимый язык является языком значений некоторой унарной стандартной схемы. Наконец, мы покажем, что подобную технику можно использовать для доказательства утверждения, что всякая схема dBS транслируема в стандартную схему с двумя счетчиками, — результат, который неверен для бинарных рекурсивных схем (Патерсон и Хьюитт [6]).
Формальная проверка этих утверждений затемняет содержащиеся в них простые идеи, так что доказательства, приведенные ниже, лишь описывают необходимые конструкции и сопровождаются неформальными аргументами в пользу их правильности.
Следующие примеры содержат по существу всю программистскую технику, которая будет использоваться.
Пусть Е— рекурсивная схема примера 2.1. Мы покажем, что Е сильно эквивалентна стандартной схеме S, изображенной на рис. 4. Рабочая переменная и «хранит» вычисляемое значение. Блок А схемы S моделирует вычисление Е при интерпретации / до тех пор, пока переменной и не будет присвоено такое значение а, что Pi (а) = 1. Предположим, что а= (fn ,., fix) ь Тогда Pi ((ft... fix) 2) — 0 для 1 < i < п и
_ f Л если Q(fM ... Лх)=1;
( g в противном случае.
Поскольку vah (£) = (fi... fnfn ... Ла:), блоки В и С схемы S должны применять fn, ..., fi к значению переменной и именно в таком порядке. Чтобы понять, как это происходит, рассмотрим ситуацию, когда переменной и присвоено значение (f-n-ш • • • fnfn • •. hx>) i с некоторым t < п, и следующим к и должна применяться функция fn_t. Это делается в блоке В, который «ожидает», когда значение и на его входе станет равным У< • • • hx>) ь так что после п — i повторений цикла в В переменная и имеет значение а и проверка Ри выводит из цикла. При этом значение переменной w станет равным (fn-i-i • • • hx) i (заметим, что выход происходит до (п— i)-ro присваивания переменной ю)- Следовательно, функция fn-i была применена к и, как это и требовалось. Блок С теперь использует w для того, чтобы вновь установить и на следующее значение, ожидаемое блоком В. Происходит i + 1 повторений цикла в С, прежде чем w получит значение а, так что на выходе из блока С переменная и имеет значение (Jw ... f\x) ^ как и требовалось. Наконец, когда мы входим в В с а как со значением переменной и, вычисление заканчивается с и и х, имеющими значение (fi... • . . fnfn . . . flx) I*
Рис. 4.
Трансляция довольно широкого подкласса рекурсивных схем в сильно эквивалентные стандартные схемы может быть достигнута путем построений, аналогичных приведенным выше. Основная идея, как и выше, — использование дополнительных рабочих переменных для «подсчета», сколько шагов вычисления рекурсивной схемы уже полностью промоделировано.
Мы рассмотрим прежде всего класс линейных рекурсивных схем, представляющих собой схемы Е с п определяющими соотношениями следующего вида:
Е (Л) • ^Ftx: = если Ptx то aiFl а^х иначе ^tFr оДл:}, 1 < Z < п,
где Рг — предикатный символ, а аь 0ь ул 6г- — цепочки из базисных функциональных символов. Индексирующие функции / (левая) и г (правая) отображают {I, 2, ..., п} в (0, 1, 2, ..., ..., /г} при соглашении, что Fo — пустая цепочка, и если /(i) = = 0, то аг- пусто, а если r(i) = 0, то у; пусто. Вычисление Е будет заканчиваться всякий раз, когда оно достигает терма, «содержащего» Fo, поэтому мы называем эти термы заключительными точками Е.
Вычисления линейных схем можно просто описать следующим образом. Пусть заключительная точка достигается после пт шагов вычисления схемы Е при интерпретации /. Пусть f— индексирующая функция, которая говорит нам, какое определяющее соотношение выполнялось на t-м шаге (1 ^ i ^ tri). Очевидно, что f(l) = 1, и f можно определить индуктивно в терминах / и г. Тогда существуют цепочки а = ат... ах и b = = bi ... bm-i, такие, что valj(E) = (bax)!, где для всякого I
(PfU), если (Pf «ОДа,-! ... а^—!;
( dfа) в противном случае
и.
faf(<), если (Pf ц^Аа^ ... ахх^ = 1; ।
I У/ а) в противном случае.
Всякую линейную рекурсивную схему Е можно транслировать в сильно эквивалентную стандартную схему S(E, г). Схема S имеет рабочие переменные и, у, w в дополнение к переменной х (которая одновременно является и входной, и выходной) и составлена из трех блоков. Как переменные, так и блоки служат точно для тех же целей, что и в конструкции примера на рис. 4. Блоки составлены из множества элементарных (размеченных) подсхем, которые строятся по определяющим соотношениям схемы Е; t-му определяющему соотношению соответствует под-
где у — одна из переменных и, у, w, a L, М, N — метки; если либо Pi, либо бг- — пустая цепочка, соответствующий оператор не включается в подсхему. Метки являются только средством для описания, они облегчают понимание того, каким образом соединяются подсхемы, и частью схем не являются. Когда соединяется множество таких схем, каждый выход указывает на схему, которая имеет ту же самую метку на выходе.
Мы будем изображать приведенную выше подсхему, соответствующую i-му определяющему соотношению, следующим образом: , . .
Ам/ V
тельно метками):тельно метками):1 £ I < П1 £ I < ППервый блок схемы S (блок А) строится соединением следующего множества подсхем (соединения определяются исключи-
тельно метками):
тельно метками):
1 £ I < П
1 £ I < П
Выход из блока,А имеет метку 0. Блок изображен на рис. 5; цикл указывает, что соединения (с метками i > 0) производятся внутри блока.
Должно быть понятно, что при интерпретации / вычисление достигает выхода, помеченного i = 0, тогда и только тогда, когда и имеет значение (ах) 7. В результате работы блоков В и С значение и должно стать равным (Ьах^. Это достигается точно так же, как и для схемы примера 2.1, однако блоки В и С устроены теперь более сложно, так как они должны «прослеживать» не только состояние вычисления (используя и и до), но «помнить» также определяющие соотношения, которые должны применяться следующими к и и w; дважды индексированные метки блоков В и С предназначены именно для этой цели.
Внутри блока В (рис. 5) выход подсхемы, вычисляющей и, соединяется с подсхемой, вычисляющей w, и наоборот, за тем исключением, что выходы с пометками «oj» подсхем, вычисляющих и, разрывают «цикл» в В и ведут к подсхемам, вычисляющим и. В имеет п входных точек Вь ..., Вп. Если i-e определяющее соотношение имеет заключительную точку, вход В^ осуществляет проверку Р^ и соответствующий выход ведет к СТОП.
Предположим, что переменной и присвоено значение (Ьт_№ ... Ьт_хатат_х ... ахх^ь так что следующим к и должно применяться bm_k. Блок В «ожидает» входа по метке В^ где i — следующее определяющее соотношение, которое нужно применить к ожидаемому значению (а^ ... а^х) Т переменной и. Как и раньше, после т — к повторений «цикла» в В переменная получает значение (ах)7, а до— значение ^ат_к_\ ... ахх^ь так что bm_h применяется кис помощью /-го определяющего соотношения. Блок С (рис. 5) использует теперь w для того, чтобы вновь установить и на следующее значение, ожидаемое блоком В. Происходит к + 1 повторений «цикла» в С, прежде чем w получит значение а, так что на выходе из С переменная и будет иметь значение (aft+i... ахх^ь как и требовалось. Наконец, если мы входим в В с ^ат...а\Х^! как со значением переменной и, вычисление заканчивается после присваивания переменной х значения (Ьах)7.
Теперь должно быть ясно, что Е сильно эквивалентна S. Тем самым мы получим следующую теорему.
Теорема. Всякая линейная рекурсивная схема транслируема в сильно эквивалентную стандартную схему. Существует алгоритм трансляции.
Заметим, что если Е — множество праволинейных определяющих соотношений, так что для каждого ц оц и уг пусты, то блоки В и С схемы S и переменные и, и, w можно опустить. Таким
Рис. 5»
образом, праволинейные рекурсивные схемы транслируемы в сильно эквивалентные стандартные схемы с одной переменной. Обратное следует из стандартного метода трансляции стандартных схем в рекурсивные схемы со многими переменными.
Вышеупомянутая трансляция имеет дальнейшие полезные свойства.
Замечание. Для всякой интерпретации / некоторое значение вычисляется во время выполнения схемы S(E, х) при / тогда и только тогда, когда оно вычисляется во время вычисления схемы Е при интерпретации /.
Нам хотелось бы каким-то образом охарактеризовать класс всех тех схем dBS, которые можно транслировать в стандартные схемы1). Естественно ожидать, что (3.1) имеет место для простых композиций линейных схем.
Определение (функциональной подстановки). Пусть Е\ и Е2 — рекурсивные схемы, не имеющие общих определяемых функциональных символов. Предположим, что начальные определяемые функциональные символы — это Рх и Р2 соответственно. Пусть Ех получается заменой всех вхождений базисной функции f в Ех на Г2. Тогда будем говорить, что рекурсивная схема с определяющими соотношениями EfU^ и начальным определяемым функциональным символом Рх получается функциональной подстановкой Е2 вместо f в Ех. ' Обозначение: Ex(f\E2) означает схему, получаемую функциональной подстановкой Е2 вместо f в Ех.
Теорема. Класс всех рекурсивных схем,. транслируемых в стандартные схемы с выполнением условия (3.2), замкнут относительно функциональной подстановки. -
Доказательство. Предположим, что Ех и Е2 транслируемы в стандартные схемы Si и S2 соответственно. Можно считать, что эти стандартные схемы не имеют общих переменных, базисная функция f встречается в Ех, но не встречается в Е2 и (3.2) выполняется для обеих пар схем.
Пусть Е' = Ех (f; Е2у Мы построим новую стандартную схему S', заменяя все вычисления схемы Si, содержащие f, на ко
пии схемы S2. Например, присваивание z:= /Ху)
4) Для бинарных рекурсивных схем соответствующий класс не будет даже рекурсивно-перечислимым.'
заменяется на
ИИ
И
И
где х'— входная переменная схемы S2, а оператор СТОП в S2 заменяется на инструкцию «на выход». Пересылки, которые обеспечивают, чтобы S2 получила нужный аргумент и верно засылала результат, могут быть элиминированы, т. е. существует эквивалентная стандартная схема, которая не содержит пересылок (и условие (3.2) при этом удовлетворяется, теорема 3.7).
Для всякой интерпретации / схем Е' и S' определим ее расширение Г так, чтобы
valz(£2)(v), если вычисление £2 при / с входным зна-
Ъ' (v) = *Ъ' (v) = *QQчением и заканчивается, в противном случае,
Ъ' (v) = *
Ъ' (v) = *
Q
Q
где Qedom; и dom/ = domz U {Й}.
Рассмотрим сначала взаимосвязь между вычислениями S' и Е' при интерпретации / и вычислениями схем Si и Ех при интерпретации V. Эти две пары вычислений идентичны, за исключением той точки, где вычисляется значение ^ в схеме Si (соответственно £i). Если значения fr отличны от Q, то эти точки соответствуют завершающимся конечным вычислениям S2 и £2, дающим одинаковые результаты. Такие подвычисления не портят значений переменных схемы Si, так как схемы имеют непе- ресекающиеся множества переменных. Если значение // равно Q, то эта точка соответствует бесконечному вычислению схемы S2 (или £2), так что вычисления S' и £' при / зацикливаются.
Далее, наше предположение (3.2) подразумевает, что при интерпретации Г схемы Si и Ех вычисляют одно и то же значение f^. Если все такие подвычисления завершаются, то val/(S') ~ val/(SJ ~ val/(£t) ~ val, (£'.) Если некоторое подвычисление не заканчивается, то обе схемы S' и £' зацикливаются.
Таким образом, Е' = S'. Кроме того, легко видеть, что (3.2) сохраняется для этой пары схем. "
Алгоритм трансляции для линейных схем можно усилить, используя алгоритм подстановки, приведенный в доказательстве (3.4). Зная как построить данную схему из некоторого конечного множества линейных схем посредством функциональной подстановки, мы можем построить стандартную схему, эквивалентную данной схеме.
Из теоремы 3.4 следует, что некоторые естественные классы рекурсивных схем транслируемы в класс стандартных схем. Таким классом является класс металинейных схем: если ^(fi), ...,En(Fn)—линейные схемы с непересекающимися множествами определяемых функций, то схема E(F) с опреде- п
ляющими соотношениями {Fx : = F{ ... Fnx\ U U 5/ метали- z = l
нейна. Более широким является класс квазирациональных схем (т. е. таких, которые сопоставляются квазирациональным грамматикам; Нива [5]). Это минимальный класс, содержащий линейные схемы и замкнутый относительно функциональной подстановки..
Теорема. Квазирациональные рекурсивные схемы транслируемы в сильно эквивалентные стандартные схемы.
Существуют ли неквазирациональные рекурсивные схемы, транслируемые в стандартные? В разд. 4 мы покажем, что не все рекурсивные схемы транслируются в стандартные, однако существует неквазирациональная схема, транслируемая в стандартную схему с одним счетчиком. Это побуждает нас поставить следующий вопрос.
Вопрос. Замкнут ли класс всех схем dBS, сильно эквивалентных стандартным схемам с одним счетчиком, относительно функциональной подстановки?
. Мы предполагаем, что ответ на этот вопрос отрицательный. Если это так, то это означало бы, что класс стандратных схем с одним счетчиком является более мощным, чем класс стандартных схем, что кажется нам верным, хотя мы не можем доказать Этого !).
Теорема. Для всякой стандартной схемы S с операторами пересылки (т. е. инструкциями вида х\ = у^ существует стандартная схема S', в которой все операторы Пересылки содержат в правой части только входные переменные {которым
’) Ответ на вопрос (3.6) — положительный (см. сноску на стр. 76).-*» Прим, персе.*
в схеме ничего не присваивается), так что S = S't и свойство (3.2) удовлетворяется.
Доказательство. Предположим, что S имеет переменные %ь ..., хп и функции fi, • • •, fm- Мы введем новые переменные Уь , уп и 21, ..., zn, которые будут использоваться в S' следующим образом: вычисление значений х^ в S будет реализовано в S' вычислением значений у^ так что xt можно использовать как входные переменные, которым ничего не присваивается, в то время как Zt обеспечивают «восстановление» yt для того, чтобы элиминировать операторы пересылки невходных значений.
Более точно, во всякий момент вычисления схемы S каждой переменной х^ сопоставлено либо входное значение, либо функция fh и переменная Xj, такие, что текущее значение Хг равно ^ от некоторого предыдущего значения Xj. Имеется только конечное число таких сопоставлений, так что их можно закодировать в S'. Если правильное предыдущее значение х^ хранилось, скажем, в zb то оператор пересылки Хн := х^ в S можно заменить в S' на yh*.= fh^b Пусть Т — объединение всех отображений t: (1, ..., п) -* {0, ..., нгУ Q — объединение всех отображений q; (1, ..., п) -* {1, ..., п). Мы индексируем инструкции в S' индексами из множества Т X Q X Л гдё / — индексное множество инструкций из S.
S' начинается засылками
где 1Ц) = 0, q(i) = i для всех i. Остальная часть схемы S' получается соединением инструкций, указанных на рис. 6.
Простые программистские приемы позволяют нам также охарактеризовать класс языков значений стандартных схем. Хотя здесь были приведены некоторые неформальные рассуждения по поводу расширения этого класса, тем не менее он и так уже совпадает с классом всех рекурсивно-перечислимых языков. Этот результат можно считать «неудачей», поскольку он ограничивает возможности применения метода языков значений для доказательства результатов о нетранслируемости (разд. 2),
Тот факт, что мы можем построить стандартную схему, имеющую заданный рекурсивно-перечислимый язык в качестве
Если инструкция I б S имеет видЕсли инструкция I б S имеет видУг1^') если, tfy)=o,Уг1^') если, tfy)=o,Z+1Z+1yi-ftu)zq^ еми ^*'I где’hill) tXkvtUO№=<7Wyi-ftu)zq^ еми ^*'I где’hill) tXkvtUO№=<7Wдля k*Jдля k*Jyf=fkyjZa-^j")yf=fkyjZa-^j")если ttJ^G,если ttJ^G,то инструкция {t^V). б S' имеет вид
Если инструкция I б S имеет вид
Если инструкция I б S имеет вид
Уг1^') если, tfy)=o,
Уг1^') если, tfy)=o,
Z+1
Z+1
yi-ftu)zq^ еми ^*'
I где
’hill) tXkvtUO
№=<7W
yi-ftu)zq^ еми ^*'
I где
’hill) tXkvtUO
№=<7W
для k*J
для k*J
yf=fkyj
Za-^j")
yf=fkyj
Za-^j")
если ttJ^G,
если ttJ^G,
Z+1Z+1(t;<?; Z+i)(t;<?; Z+i)СтопСтопРис. 6.Рис. 6.
Z+1
Z+1
(t;<?; Z+i)
(t;<?; Z+i)
Стоп
Стоп
Рис. 6.
Рис. 6.
если t(J)#O,
где h = min({l,...n}-{9(i)...^-l) д^...д^
a t^=kq'^=h ,,
если t^*^tи т.д.
ее языка значений, является прямым следствием нашего умения моделировать программу универсальной вычислительной машины поведением стандартных схем. Продемонстрировать это легче всего на примере наиболее простых машин Шепердсона и Стургиса с регистрами [8].
Напомним, что машина с регистрами М имеет конечный набор регистров Xi, ..., хг и конечный список команд вида
(i) xz: = xz + 1, (ii) xz: = xz — 1 (где x — 1 = x — 1, если x > 0 и 0 — 1 = 0) и (iii) переход к команде /, если х^ =# 0. Функция Д вычисляемая машиной М, такова, что для всякого п значение f(n)—последнее значение в регистре хь когда М останавливается при Xi = п, х2 = х3 = ... = хг = 0, и f (п) не определено, когда М не останавливается.
Теорема. Класс рекурсивно-перечислимых языков совпадает с классом языков значений унарных стандартных схем.
Доказательство. Для всякой стандартной схемы Т язык L (Т) является рекурсивно-перечислимым языком, поскольку множество завершающихся вычислений схемы Т при свободных интерпретациях рекурсивно-перечислимо. Поэтому необходимо доказать, что если ^— множество (функциональных) символов, а X — рекурсивно-перечислимое подмножество ^*, то X = Л (Г) для некоторой стандартной схемы Т. Далее, существует машина с регистрами М, такая, что а ^ X выполняется для всякой цепочки а тогда и только тогда, когда гёделевский номер !) а является значением функции, вычисляемой машиной М. Мы покажем сначала, что машина с регистрами М может «моделироваться» стандартной схемой S. Если М имеет регистры Хь . • •, хг, то S будет иметь переменные хь ..., хг, и, и, w, один функциональный символ f и предикатный символ Р. Схема S строится из элементарных схем, моделирующих команды машины М.
Способ, которым S моделирует М, основан на следующем соображении. Для интерпретации / и элемента а е domj мы скажем, что а является «кодом» целого п, если п — наименьшее целое, такое, что PI (f* (я)) = 1. Содержимым переменной х мы будем здесь называть то целое, код которого является значением этой переменной в данный момент вычисления схемы S при интерпретации /. Заметим, что переменная может иметь произвольное содержимое при интерпретации / только тогда, когда для всякого а е domj последовательность РАау Pj^A^Y PiQAaA' ••• содержит как угодно длинные последовательности нулей, разделяемые единицами, т. е. если
Va е domzVn3m [^ (f™+n (a)) = 1 & (V/ < n) P, {f^ (a)) = 0].
Такие интерпретации мы называем хорошими; например, свободная интерпретация, для которой Pifx, Pif2x, ... совпадает с последовательностью 1010010001..., является хорошей интерпретацией. Заметим, что если содержимое переменной х со значением а равно п, то можно «прибавлять единицу» к содержи
!) Мы предполагаем заданной некоторую стандартную вычислимую гёде- левскую нумерацию цепочек символов.
мому х при хорошей интерпретации / посредством присваивания х := ^тх. гдеР7(^+п+1а)=1 и P;Q^+l^=O для всех I п.
Для каждой из исходных команд машины М существует элементарная схема, такая, что при всякой интерпретации она будет либо выполнять соответствующую операцию (в смысле, указанном выше) над содержимыми ее ячеек, либо зацикливаться, пытаясь выполнить нужные действия. Элементарные схемы приведены на рис. 7 (х, у—различные регистры). Предположение о том, что х и у — различные регистры, несущественно, так как чуть более сложные схемы будут моделировать, например, и команду х := х + 1.
Как обычно, S строится по М заменой каждой команды соответствующей схемой и соединением этих схем в S в соответствии с соединением команд машины М. При любой интерпретации и произвольном входном значении схема S либо зацикливается, либо преобразует содержимые своих переменных в точности так же, как М преобразует содержимые своих регистров. При всякой хорошей интерпретации S моделирует М.
По данной схеме S мы построим теперь схему Т, такую, что 1ДТ) = X. Чтобы сделать это, нам нужно декодировать результат схемы S. Это возможно, поскольку перевод из гёделев- ского номера в цепочку, ее представляющую, также можно выполнить с помощью машины с регистрами. В простейшем случае, когда X = {fn : п е range(Af)}, X = L^T), где Т— стандартная схема с выходной переменной z:
Команда
Да Нет
Моделирующая схема
Да Нет
Да Нет
Рис. 7.
Цо)
(и) | сс: =а:-1 |
Если X — рекурсивно-перечислимый язык над более мощным алфавитом, то несколько более сложное декодирование* даст нам X как язык значений стандартной схемы.
Замечание. Теорему 3.8 можно усилить за счет сужения класса стандартных схем, необходимых для получения всех рекурсивно-перечислимых языков в качестве языков значений. Всякий рекурсивно-перечислимый язык является фактически языком значений некоторой стандартной схемы с засылками констант (т. с. с вхождениями константных функций), в которой все переменные и константы независимы. То есть схема содержит переменные хь ..., х^ различные константные функции а\, . . . , ah и унарную функцию f, а все се присваивания имеют вид Хг ; = fXi или Xi : = at. Доказательство мы предоставляем читателю.
Умение моделировать машины с регистрами посредством стандартных схем позволяет нам непосредственно доказывать дальнейшие результаты о транслируемости.
Прежде всего мы немного ослабим условие эквивалентности, требуемой для транслируемости.
Определение. Схема S называется слабой трансляцией схемы R, если .'
LW = L^ и’
для всякой интерпретации /, если S останавливается при /, то R останавливается при / с тем же самым результатом.
Таким образом, схема R является (несущественным) расширением схемы S; если R что-нибудь делает, 5 также будет делать это при некоторой (возможно, другой) интерпретации.
Определение. Пусть 91 и ^ — классы схем. 91 называется слабо транслируемым в ^ {обозначение 91"^^ 9\ если (VPe^)(3QeS^) [схема Q— слабая трансляция схемы PY
Теорема. Класс схем dBS слабо транслируем в класс стандартных схем с одной ячейкой.
Доказательство. Мы сделаем только набросок доказательства, так как детали подобны приведенным в предыдущих доказательствах.
Пусть R — схема dBS. Тогда I? (7?) —- рекурсивно перечислим. Следовательно (как вытекает из доказательства теоремы 3.8), существует стандартная схема 5, такая, что содержимыми результата S будут гёделевские номера цепочек w0, wb w^, ... из /,*(/?). Используя S, можно построить стандартную
схему Q, такую, чтобы для всякой интерпретации / схема Qi порождала и проверяла каждую из цепочек w< на согласованность с интерпретацией / и останавливалась, когда такая цепочка найдена. Более подробно, выход из схемы 5, порождающей коды wit является входом в другую схему S'. Напомним, что i^i имеет вид fmPm • • - f2P2hpi, где fj — базисная функция схемы R, а р^ — двоичный набор длины п. Вычисление S' при интерпретации / декодирует Wt и проверяет его согласованность с /. Для этого S' проверяет каждый набор pj в w^, выполняя последовательно проверки вида Pkfj.. .f\X = р^ (1 ^ к ^ л), где Pjk обозначает к-й элемент набора р^ а Рк — к-й предикат схемы R. Заметим, что S' можно построить так, чтобы при хорошей интерпретации она всегда останавливалась. Если все проверки для всех Рз в Wt дают ответ «да», то val/(Q) = (fm .., .. ./1%)/; если встречается хотя бы один ответ «нет», Q возвращается к схеме S для порождения ww.
Схему Q можно представить следующим образом:
Если Q останавливается при интерпретации /, то R также останавливается при / и valj(Q) = vai^R) в силу замечания, предшествующего теореме 2.7. Наоборот, если R останавливается при хорошей интерпретации /, то и Q останавливается при /. Так как всякое завершающееся вычисление схемы R выполняется при некоторой хорошей интерпретации, то L(Q) = = L(R). Следовательно, схема Q является слабой трансляцией схемы R.
Заметим, что слабые трансляции предыдущей теоремы можно превратить в сильные трансляции, если расширить класс стандартных схем, добавляя предикат Р и функцию f с фиксированной хорошей интерпретацией. Если же разрешить использование в стандартных схемах конечного числа счетчиков, то можно обойтись и без таких Р и f: поскольку машина с регистрами R представляет собой стандартную схему с конечным числом счетчиков, счетчики можно использовать для моделирования схемы R непосредственно в терминах приведенных выше конструкций. Сколько понадобится счетчиков для того, чтобы транслировать произвольную схему dBS в стандартную схему? Следующая теорема показывает, что двух счетчиков уже достаточно, в то время как результаты разд. 4 показывают, что одного счетчика еще недостаточно.
Теорема. Всякая схема dBS сильно эквивалентна унарной стандартной схеме с двумя счетчиками.
Доказательство. Как описано в разд. 1, вычисление схемы dBS можно наглядно представить с помощью стека функций, которые еще должны быть применены к текущему значению переменной. Теорема легко следует из этого представления и стандартного кодирования стековых символов двумя счетчиками (Хопкрофт и Ульман [2], лемма 6.2 и теорема 6.4).
Следует отметить, что эта теорема оказывается неверной для бинарных рекурсивных схем (Патерсон и Хьюитт [6]), так как стек, «необходимый» для вычислений такой схемы, должен сохранять не только список операций, которые предстоит выполнить, но и вычисляемые при этом значения. В то время как первый стек можно моделировать двумя счетчиками, второй двумя счетчиками не моделируется.
ДЛИНА ВЫЧИСЛЕНИЙ
Техника языков значений дала нам возможность установить результаты о нетранслируемости, приведенные в разд. 2. Мы использовали там то соображение, что данная схема S не является сильно эквивалентной никакому элементу данного класса ^ схем, так как схемы в ^ не настолько «богаты», чтобы вычислять всевозможные значения схемы S. Эта техника оказывается непригодной для получения результатов о нетранслируемости, когда схемы в ^ достаточно «богаты», чтобы вычислять всевозможные значения S, но не настолько «богаты», чтобы вычислять нужное значение при той же интерпретации. Что касается рекурсивных схем и стандартных схем, то именно такой случай мы здесь и имеем; как будет видно ниже, описанную в разд. 3 слабую трансляцию рекурсивных схем в стандартные схемы нельзя улучшить с тем, чтобы получить трансляцию, сохраняющую сильную эквивалентность.
Интуитивно нетранслируемость рекурсивных схем в стандартные схемы объясняется тем, что вычисления рекурсивных схем могут быть гораздо более сложными, чем вычисления стандартных схем. Однако эта интуиция ничего не доказывает, поскольку понятие сильной эквивалентности основано только на значениях схем, а не на том, как эти значения получаются. Тем не менее интуитивное понимание того, что вычисления некоторых рекурсивных схем «слишком длинны» и их поэтому нельзя транслировать в стандартные схемы, можно формализовать с тем, чтобы показать существование схемы dBS, которая не является сильно эквивалентной никакой стандартной схеме или даже никакой стандартной схеме с одним счетчиком.
Как можно измерить длину вычисления и использовать ее для установления факта нетранслируемости схемы S в класс схем ^? Так как транслируемость имеет дело со значениями схем при данной интерпретации, поступим так: будем записывать длину вычисления схемы S при подходящих интерпретациях / в valj(S). Тогда можно будет показать, что для всякой схемы Г из выполняется соотношение valj(S) #=valj(T) для тех интерпретаций /, при которых S имеет «слишком длинные» вычисления, чтобы Т могла их выполнить.
Более точно, пусть ^ — множество функциональных символов, а ^ — множество предикатных символов. Для всякого п > 0 интерпретация / множеств ^ и ^ называется подсчитывающей интерпретацией ранга п тогда и только тогда, когда для некоторого множества Л, состоящего из п символов, и некоторого символа Ь:
domj =ЦаЬт: i?E/l&m>0};
для всякого f г ^ существует функция f' из А в А и константа ^^1, такая, что fj(abm) = f'(a)bm+k для всех агАи любого т;
Р,(0»-) = Р,(а»” ) для всякого Рг^, всех аг А и любых т, т';
Xi = а\ для всякого х г У.
Другими словами, при подсчитывающей интерпретации ранга п, значение функции или предиката зависит только от первого символа цепочки, к которой она (он) применяется, так что в области domj могут различаться самое большее п объектов; однако длину вычисления можно представить длиной результата.
Для всякой схемы S и всякой подсчитывающей интерпретации /, при которой S останавливается, положим длину len^S) вычисления схемы S при интерпретации / равной тому единственному т, для которого val/(S) = abm (с некоторым агАу для всякого п>0 определим len(S, п) равным максимальному значению lenj(S) по всем подсчитывающим интерпретациям / ранга n(len(S, п) всегда определено, так как существует только конечное число подсчитывающих интерпретаций ранга пу Очевидно, что необходимым условием сильной эквивалентности двух схем S иТ является len(S, п) = 1еп(Т, п) для всех п (если это не очевидно, заметьте, что если len(S, п) > 1еп(Т, пу то lenj(S) = len(S,n) >1еп(Г,п) ^len^T) для некоторой подсчитывающей интерпретации / ранга п, так что valj(S) #=
Несколько примеров могут помочь прояснить эти определения и предполагаемое их применение. Стандартная схема S, заданная диаграммой
имеет язык значений VT" : ^ ^ 0} и, следовательно, не является сильно эквивалентной никакой стандартной схеме с одной переменной, так как ее язык значений нерегулярен (на самом деле она не сильно эквивалентна никакой рекурсивной схеме, поскольку ее язык значений не является контекстно-свободным, но это нас здесь не интересует). Другое доказательство этого результата можно дать следующим образом. Для всякого п > 0 пусть / — подсчитывающая интерпретация ранга и, такая, что
dom/ = ^atbm : 1 ^ I ^ п & т ^ 0),dom/ = ^atbm : 1 ^ I ^ п & т ^ 0),hW =hW =а^"4, если 1^/<л, d'ibrn^i1 если 1 = п,а^"4, если 1^/<л, d'ibrn^i1 если 1 = п,(*)(*)PI(aibm)=\ тогда и только тогда, когдаPI(aibm)=\ тогда и только тогда, когда1^Z<1^Z<л,л,
dom/ = ^atbm : 1 ^ I ^ п & т ^ 0),
dom/ = ^atbm : 1 ^ I ^ п & т ^ 0),
hW =
hW =
а^"4, если 1^/<л, d'ibrn^i1 если 1 = п,
а^"4, если 1^/<л, d'ibrn^i1 если 1 = п,
(*)
(*)
PI(aibm)=\ тогда и только тогда, когда
PI(aibm)=\ тогда и только тогда, когда
1^Z<
1^Z<
л,
л,
Xj = ax.
Тогда valz (S) = anbn\ так что len(S, n) ^ lenj(S) ^ n2. С другой стороны, как мы покажем ниже, для всякой стандартной схемы с одной переменной Т 1еп(Т, п) ограничена некоторой линейной функцией кп. Таким образом, для всех п > к и всякой подсчитывающей интерпретации / ранга п, удовлетворяющей (-/), 1еП1(Т) ^ кп < п2 = 1еП1(5), так что 5 не сильно эквивалентна никакой стандартной схеме с одной переменной.
Более интересным примером является рекурсивная схема
Е : Fx: = если Рх то fx иначе gFFhx
Для всякого п > 0 пусть / — подсчитывающая интерпретация ранга п, такая, что
dom; = ^ibm : I < г < п & m > 0},
( ai—\bm, если i > 1, g(abm) = < ,т.,
SiX ( afi , если г=1,
( a;+ibm, если i<n, h^aibmx) = \'
x ( atb , если t = n,
P^a^ = 1 тогда и только тогда, когда I = п,
Xi = йь
Тогда val;(E) = axb2 (поскольку Р^а^Ь™^ = an-ibm+2, как можно показать индукцией по 0, так что 1еп(Е, п) ^1еп/(Е)^ ^ 2П-1. Как будет показано позже, отсюда следует, что Е не является сильно эквивалентной никакой стандартной схеме и даже никакой стандартной схеме с одним счетчиком, так как для такой схемы Т 1еп(Т, п) ограничена некоторой конечной степенью nh числа и, что для достаточно больших п меньше чем 2П. То же самое можно сказать и о схеме
Рх: = если Рх то х иначе gFFhx
Границы 1еп(Т, м) для различных схем Т устанавливаются следующей теоремой.
Теорема. Для всякой схемы Т существует константа 6 > 0, такая, что для всякого п >> 1
если Т — стандартная схема с одной переменной, то 1еп(Т, и) кп;
если Т— стандартная схема. то 1еп(Т, п) ^ nh;
если Т — стандартная схема с одним счетчиком, то len(T, п) пк;
если Т — схема dBS, то len (Т, п) ^ кп.
Доказательство. Для доказательства утверждений (а) и (Ь) предположим, что Т — стандартная схема с I инструкциями и v переменными, а / — подсчитывающая интерпретация ранга п, при которой Т останавливается. Состоянием вычисления схемы Т при интерпретации / называется кортеж(/, аПр ... ..., ап^, где / — номер выполняемой инструкции, и для каждого / текущее значение переменной xt равняется anibmi с некоторым целым ть Так как Т останавливается при /, ни одно состояние в вычислении схемы Т не может повторяться; следовательно, существует самое большее i • п^ шагов (т. е. выполняемых инструкций) в вычислении Т (что будет числом различных состояний) и, таким образом, lenj(T) ^ I • п\ поскольку каждая инструкция добавляет не более одного символа b к результату схемы. Так как /—произвольная подсчитывающая интерпретация ранга п, ктДТ,п)^1-п\ Утверждение (а) следует отсюда непосредственно, (Ь) получается выбором достаточно большого к, такого, что 2ft-v I.
Для доказательства (с) возьмем i и v, как выше. Пусть I — подсчитывающая интерпретация ранга п, при которой Т останавливается. Прежде всего мы покажем, что максимальное значение счетчика, достигаемое во время вычисления Т при /, не превосходит I • nv. Предположим, что это не так. Пусть счетчик получает свое максимальное значение m>i-nv на некото- пом шаге sm вычисления. Пусть s0 — последний шаг перед sm,
когда значение счетчика было нулем, и для каждого / между О и т пу^ъ Sj — последний шаг перед sm, такой, что счетчик получает значение /. Так как т > i • п\ должны существовать два таких значения / и /' счетчика, что 0 < / < f ^ т и Т находится в одном и том же состоянии (как оно определено выше, не принимая во внимание значение счетчика) на шагах s, и Sj Но тогда схема Г должна зацикливаться, поскольку после шага Sj счетчик никогда не обнуляется, и для всякого числа s шагов, на шаге Sj + s схема Г должна быть в том же состоянии, что и на шаге Sf + s (за тем исключением, что значение ее счетчика будет на /' — / больше, чем раньше). Таким образом, учитывая значение счетчика в состоянии вычисления схемы, мы видим, что Т имеет не более ^1-п^2' состояний, так что 1еП1(Т)^(/Х X^v)2- Так как / — произвольная подсчитывающая интерпретация ранга и, то len(T, п) ^ i2 • п2\ и (с) следует из того, что мы можем взять к достаточно большим, так чтобы 2^2v ^ I2.
Для доказательства (d) предположим, что Т — рекурсивная схема с г рекурсивными определениями, q функциональными символами и термами длины не более /. Пусть / — подсчитывающая интерпретация ранга п. Представим себе вычисление Т как работу со стеком, как это было описано в разд. 1.
Как сильно может расти стек во время вычисления? Пусть m— максимальная высота стека, и для каждого j^m пусть Sj — последний шаг в вычислении, когда стек переходит от высоты, меньшей, чем /, к высоте / или больше (до того, как достигается высота т). Заметим, что на шаге Sj высота стека не превосходит / + / и что между шагами Sj и sm высота стека никогда не опускается, ниже /. Таким образом, если на двух шагах Sy и s/z (при / < /') последние / символов стека попарно совпадают, текущее значение переменной начинается одним и тем же символом at и вычисляется одно и то же определяющее соотношение, то схема Т будет зацикливаться. Следовательно, пг < < (г + qy • п . г.
Если дана такая граница высоты стека, то Т имеет не более п • г • (r+q)^^ *п*г состояний при интерпретации /, ни одно из которых не повторяется при завершающемся вычислении. Таким образом, 1еП1(Т) ^ кп для всякого достаточно большого к.
Следствие. Существует рекурсивная схема, которая не является сильно эквивалентной никакой стандартной схеме и никакой стандартной схеме с одним счетчиком.
Доказательство. Для рекурсивной схемы Е примера (4.2) 1еп(£, п) = 2П, так что следствие вытекает из утверждений (Ь) и (с) теоремы, поскольку 2П > пк ддя всякого к и для всех достаточно больших п.
Мы заметим, что ни теорему, ни следствие из нее нельзя распространить на стандартные схемы с двумя счетчиками. Во- первых, существуют стандартные схемы Т с двумя счетчиками, для которых 1еп(Т, п) не ограничено никакой рекурсивной функцией от и, — факт, который следует из того, что не существует рекурсивной границы для длины вычисления универсальной машины с двумя регистрами. Во-вторых, как показано в разд. 3, всякая схема dBS сильно эквивалентна некоторой стандартной схеме с двумя счетчиками. Приведенный пример 4.2 почти оптимален, так как всякая линейная рекурсивная схема сильно эквивалентна некоторой стандартной схеме. Тем не менее мы не знаем, является ли рекурсивная схема
Fx: = если Рх то fx иначе FFfx которая сильно эквивалентна стандартной схеме с одним счетчиком (разд. 1) также сильно эквивалентной стандартной схеме без счетчиков. Мы подозреваем, что это не так, хотя пока не умеем доказывать, что существует стандартная схема с одним счетчиком, которая не является сильно эквивалентной никакой стандартной схеме без счетчиков 9
РАЗРЕШИМЫЕ СЛУЧАИ ПРОБЛЕМЫ ЭКВИВАЛЕНТНОСТИ
Насколько мощным должен быть класс схем для того, чтобы проблема сильной эквивалентности схем данного класса была алгоритмически неразрешима? Для простых классов схем (например, стандартных схем с одной переменной) проблема эквивалентности разрешима (Янов [3]), в то время как для более сложных классов (например, для стандартных схем) эта проблема неразрешима (Лакхэм и др. [4]); для других классов (например, рекурсивных схем) статус проблемы эквивалентности неизвестен (де Беккер и Скотт [1]). В этом разделе мы собираемся ответить на вопросы, поставленные де Беккером и Скоттом. Именно, мы покажем, что проблема эквивалентности для класса линейных рекурсивных схем разрешима. Далее, мы исследуем, насколько широкие расширения класса стандартных схем с одной переменной обладают разрешимой проблемой эквивалентности. В частности, мы покажем, что добавление к таким схемам засылок констант не влияет на разрешимость проблемы эквивалентности.
Метод, используемый здесь, лучше всего представлять себе как метод «следов»: мы покажем, что если две схемы в данном классе дают различные результаты при некоторой интерпретации /, но работают достаточно долго, то можно немного модц-
^ См. сноску на стр. 76. — Прим, перед.
фицировать интерпретацию / так, чтобы обе схемы перескакивали через часть своих предыдущих вычислений («разрезание и склеивание») и все еще давали различные результаты; тем самым мы получаем разрешающую процедуру, поскольку вопрос об эквивалентности двух схем зависит теперь от их значений не при всех, а только при конечном числе «ограниченных» интерпретаций. Исторически эта техника восходит к Рабину и Скотту [7], которые использовали ее при доказательстве разрешимости проблемы эквивалентности конечных автоматов.
Теорема. Существует эффективная процедура для распознавания, являются ли две линейные рекурсивные схемы сильно эквивалентными.
Доказательство. В силу леммы 1.2 достаточно показать, что алгоритмически разрешима следующая проблема: для двух данных произвольных линейных рекурсивных схем R и S узнать, существует ли свободная интерпретация, которой они различаются. А для этого достаточно получить эффективную границу длины кратчайшего результата одной из схем для тех свободных интерпретаций, при которых другая схема либо зацикливается, либо дает другой результат. Если такая граница дана, то сильную эквивалентность схем R и S можно распознать, вычисляя значения обеих схем при конечном числе конечных интерпретаций, области domj которых состоят из всех цепочек функциональных символов длины не большей, чем эта граница.
Предположим, что R и S имеют не более е рекурсивных определений и что каждый терм в определении имеет не более / символов. Предположим также, что / — свободная интерпретация, при которой R и S различаются, и что минимум п длин термов valj(7?) и val2(S) (по крайней мере один из которых определен) является минимальным из возможных. Мы покажем, что п < Зе3/. Рассмотрим сначала тот случай, когда обе схемы R и S останавливаются при интерпретации /.
Из-за симметрии мы можем предполагать, что
val/(7?) = ay = f„ ... h,val/(5) = av, = f', ... f'
и п < п', или f. = ^, для некоторого т, 0 < i < m, но fm ^ f^J. Предполагая п ^ ?>еЧ, мы покажем, что можно определить новую интерпретацию, при которой R и S дают различные результаты, более короткие, чем w и w', и составленные из «частей» W и w'.
Поскольку обе схемы R и S останавливаются при /, каждая цз них может применить ко входному значению нс более е опре-
делений, прежде чем изменить его, т. е. в вычислении w и w' нет последовательности
u^iav=^uxFlxv=^ ... =^ueFiev,
в которой е определений выполняются без изменения аргумента, к которому применяются определяемые функции. Так как каждый терм в определении имеет не более / символов, при выполнении е определений к результату может добавиться не более el символов. Следовательно, для того, чтобы выработать результаты w и w' с длиной ^Зе3/, обе схемы R и S должны изменять свое входное значение по крайней мере Зе2 раз. Не уменьшая общности, мы можем предполагать, что каждый раз, когда входное значение изменяется, его длина возрастает ровно на один символ; такое предположение правомочно, поскольку, например, определение F := aF'fi .. .ft можно заменить определениями Р:=Р^, Р1 •.= F^fi-x, ..., F2 := aF'fi, где F\ ... ..., F2 — новые определяемые функции.
Для каждого I < Зе2 пусть Et — множество всех пар (ff, Рь) определений, которые R и S применяют при вычислении w и w' ко входным значениям длины I. Так как имеется не более е2 пар определений, существуют определяемые функциональные символы F* и Fk и целые числа iv < ц < z3 < Зе2, такие, что (^, Ft)еЕ^Е^Е^. Другими словами, вычисления результатов w и w' должны проходить через состояния
Ff^cvF*avFS^<FSa'Y
^cxc2F^ax^c^FSa'^
^схс2с3Р^а3а2ах^ c^c^a^
ф схс2с3Ьа3а2ах = w=ф cWib'аза'2а'\ = w',
где
|aj —|а'| = г, |a2| = la2| = Z2-Zi>° и | «3 | = | tig | = Z3 — Z2 > 0.
Остаток доказательства в этом случае распадается на подслучаи, в каждом из которых мы покажем, что вопреки нашему предположению w и w' не являются кратчайшими различными результатами схем /? и S. В первых пяти подслучаях мы предполагаем, что w и w' различаются в первый раз на символах
fm и Гт» и показываем, как получить более короткие результаты, которые все еще различаются; в последней подслучае мы делаем то же самое, предполагая п < п'.
Подслучай 1. fm^av f'm^a'r
Определим по / новую свободную интерпретацию Л, полагая для всякого предиката Р, встречающегося в R и S:
Р^уа-д),Р^уа-д),Рл(х) = 1 Р1(уаХ>РДх)Рл(х) = 1 Р1(уаХ>РДх)если х = уах, если x = ya'vв противном случае.если х = уах, если x = ya'vв противном случае.
Р^уа-д),
Р^уа-д),
Рл(х) = 1 Р1(уаХ>РДх)
Рл(х) = 1 Р1(уаХ>РДх)
если х = уах, если x = ya'v
в противном случае.
если х = уах, если x = ya'v
в противном случае.
Тогда при интерпретации 1Х схема R вырабатывает результат их = cxc3ba3ap a S вырабатывает результат и'х = c\c'3b'a'3a'v Но их =/= Up поскольку ах ^= ах и | их | < | w I, что противоречит выбору /.
Подслучай 2. fm^ay Vm^ ^
Определим по / новую свободную интерпретацию /2, полагая
Р7 (уа3а2ах\ если х = уа2аХ1 Ph^= Р^ЖУ если х = Уа2а1, Р/(х) в противном случае.
Тогда при интерпретации /2 схема R вырабатывает результат и2 = cxc2ba2ax, a S вырабатывает результат и2 — c',c'2b'a'2a'v Снова и2 #= и2, поскольку а2ах ф а'<р\ и | u21 < | w |, что противоречит выбору 1.
П о д с л у ч а й 3. fm е с3ба3, fm е с^.
Так как ах = а'х и <72=а', то, как и в под случае 1, ихфи\ при интерпретации 1Х и | щ | < | w |, что противоречит выбору I.
Подслучай 4. fm^c3b, f'm^c'xc'2 или fm е схс2, f'm^c'3b'.
Благодаря симметрии достаточно рассмотреть первую из альтернатив. Так как ах = ах, а^= а^ и а3= а'у определены интерпретации 1Х и /2, а также интерпретация /3, где
PiAx^ =PiAx^ =PAya-^a^Y если х = уах,PAya-^a^Y если х = уах,р^р^в противном случае?в противном случае?
PiAx^ =
PiAx^ =
PAya-^a^Y если х = уах,
PAya-^a^Y если х = уах,
р^
р^
в противном случае?
в противном случае?
При интерпретации /3 схема R вырабатывает результат м3 = с1Ьар a S вырабатывает результат и'3 = с'хЬ'а'х. Поскольку все значения uVl и2 и и3 короче, чем ад, выбор / подразумевает, ЧТо их = и\, и2= и2 и и^= и^. Так как равные цепочки должны иметь одну и ту же длину, отсюда следует, что | схЬ | = | с'хЬ'|, |с2| = |4| и |сз1 = | сз|- Следовательно, п = п\
Рассмотрим теперь другую последовательность равенств и. = и\. Так как fm^c3b, то fm является (т —|а2|)-м символом в их и должен совпадать с (т — |#2|)*м символом в их; этим символом является Г , , „ поскольку F е с'с' и, следовательно, f' . Далее, f , ,. —это (т — I а'а'Д — I с' I )-й символ
Ш т+1 2| V 3 3 7
в и,у в то время Как соответствующий символ в и^ — это fm_|C,|, поскольку ^_|с,|ёа'аХ- j сз 1 = | сз Ь и- следовательно, f . ,e.b. Таким образом, f =f' , ,, — f . Наконец, f/n-i c3 f (m — I аз II сз I)"® символ в u2) в то время как соответствующий СИМВОЛ В и'—ЭТО Гтэ поскольку fm^CxCy Таким образом, fm = f^> что является противоречием.
Под случай 5. fm е с,с2, ^ е= с^.
Так как а2ах = а2а\ и а3= а^ то, как в подслучае 2, и2#=и2 при интерпретации /2 и | и21 < | w |, что противоречит выбору /.
Подслучай 6. п < п' и /^ = % для 0</^п.
Как в подслучае 4, п = п', что является противоречием. Таким образом, w и w' не могут быть кратчайшими различными результатами схем R и S, если оба имеют длину ^Зе3/. Это завершает доказательство для того случая, когда оба значения valj(/?) Hvalj(S) определены.
Предположим теперь, что, скажем, valj(S) не определено. Доказательство по существу то же самое, что и выше, однако со следующими модификациями. Предположим, что valj(/?) = = w = fn ... fi и что п ^ Зе3/. Мы покажем, что val/ (^) для некоторых интерпретаций Г имеет длину, меньшую чем п, в то время как val/(S) все еще не определено. Для каждого / < Зе2 пусть Ег — множество всех пар (р^, Р^ определений, которые схемы S и R применяют при интерпретации / к аргументам длины /, или (если S не применяет никаких определений к аргументам длины /) те, которые S применяет к аргументам максимальной длины. Как и выше, вычисления схем R и S при интер-
претации / должны проходить через состояния:
F^cxFRaxР^^с'хР^а'х
=^cxc2FRa2ax^ c'xc'2Pska'2a'x
. ^Wa^Wi^с'^РЗа'^,
—7' С ^С^С^Ь a^U^a^ ■— w
где | ai [= | ai | И™ S никогда не изменяет своего входного значения после а'; 0 < |а21 = |а'] или 5 никогда не изменяет своего входного значения после а^; 0 < | а31 = | а'] или 5 никогда не изменяет своего входного значения после a'3a'2a'v Остаток доказательства в этом случае распадается на три подслучая, аналогичные первым трем подслучаям в доказательстве выше. В первом подслучае, если а1 #= а', то для интерпретации /р определенной выше, | val^ (/?) | < м и val/1 (S) не определено. Во втором под случае, если ах = а^ но а2 а2, то интерпретация /2 дает требуемый эффект. Наконец, если а2ах = а2ах» то интерпретация 1Х дает требуемый эффект. Тем самым доказательство закончено.
Установив, что для некоторого подкласса класса рекурсивных схем проблема эквивалентности разрешима, мы покажем то же самое для класса стандартных схем с одной переменной и засылками констант. Проблема эквивалентности для стандартных схем с одной переменной без засылок констант разрешима, как было показано в разд. 2. Проблема эквивалентности для стандартных схем с двумя переменными неразрешима (Лакхэм и др. [4]), как и проблема эквивалентности для класса стандартных схем с двумя независимыми переменными и независимыми константами, упоминавшаяся в (3.9). Следовательно, следующая теорема является оптимальной.
Теорема. Существует эффективная процедура для распознавания, являются ли сильно эквивалентными две стандартные схемы с одной переменной и засылками констант.
Доказательство. Пусть 5 — стандартная схема с одной переменной, в которой имеется к инструкций засылок констант, и пусть / — произвольная интерпретация. Историей вычисления схемы 5 при интерпретации / называется (возможно, бесконечная) цепочка w = .. .w^CiW\C\W^ функциональных символов, примененных схемой 5 к ее входному значению при /, где Ct — символы констант, a Wi— цепочки неконстантных функциональных символов. Заметим, что если S дважды выпол-
няет одну и ту же засылку константы при интерпретации /, то схема S должна зацикливаться при /. Следовательно, история вычисления w схемы 5 при / имеет одну из двух форм:
w = wncn ... Wi^iWo, где м ^ й, a wn может быть бесконечной цепочкой неконстантных функциональных символов, когда 5 не останавливается при /, или
W = ... (wncn ... wmcm) (wncn . . . WmCm) Wm—[Cm—i ... ... w^iWo, где n ^ k и 5 зацикливается при /.
Мы покажем, что для любых данных стандартных схем R и 5 с одной переменной и засылками констант имеется эффективная граница, такая, что если R Ф S, то существует интерпретация, при которой R и 5 различаются и при этом длина истории вычислений одной из схем меньше, чем граница. Как и раньше, этого достаточно для доказательства теоремы, поскольку эквивалентность R и 5 в этом случае можно проверить выполнением схем при конечном числе конечных интерпретаций.
Предположим, что R и 5 — схемы с не более чем е инструкциями, среди которых не более к засылок констант. Пусть / — свободная интерпретация, при которой R и 5 различаются, и предположим, не умаляя общности, что R и 5 имеют истории вычислений .
w = val7(/?) = wncn ... w^^o и
= w',c', . . . w'c'w(n n 1 1 и
ИЛИ
w'= • v XX- • • • «»)(«'/.. «^x
Xw;„_1c,n„_v.. Xc'X
где цепочка w' может быть бесконечной, |w|<|w'| и п, п' ^ ^ к. Мы покажем, что если | ш| > к + (к + 1)22ке, то существует свободная интерпретации Г, при которой R и 5 различаются, и при этом длина истории вычисления схемы R меньше, чем |w|.
Предположим, что |ш| > к + (^ + l)22fte. Тогда для некоторого m ^ п справедливо, что |^т| > 22ке. Мы обсудим случай m > 0, другие случаи похожи на него и еще проще. Пусть Wm = f\wm\ ••• fr Для каждого t < пг пусть At — множество всех троек (/, г, /), таких, что
/ = 0, г ^ п, ст = cm, wr = и^ ... fi для некоторой цепочки и, а инструкция I схемы R применялась к /г-... fxcrwr_x ... . . . 6*1^0, или
/=1, r^n', c'r = cm> w,r=uti...tx для некоторой цепочки и, а инструкция I схемы 5 применялась к f. ... f;c'rw'r_Y ...
... с^. Поскольку имеется не более 22йе таких различных множеств Аь существуют целые ix <z2<|aym|, такие, что Alx = А1г. Теперь для некоторых цепочек ах длины ix, а2 длины z2 — 1Х и а3 выполняется wm = й3а2аг Назовем вхождение сг (или с') константной функции критическим, если сг = ст(с'г = ст) и wr = — ual(w'r = ua^ для некоторой цепочки и. Тогда в силу выбора Z] и z2 для всякого критического сг (или с') wr = ua2ap и некоторая инструкция схемы Р применяется к обеим цепочкам а2а1с/.йУг_1 ... c^q и а1сгйУг_1 ... ctw0 (то же для иу').
Определим теперь новую свободную интерпретацию Г так, чтобы для всякого предиката Р
(у) —( Р^“а2«1Ст), если у = иахст,
\ РДи) в противном случае.
Для всякого г пусть
( иаъ если сг — критическое вхождение и wr=ua<zax, w, = s
( wr в противном случае.
Подобным же образом определим и w^. Тогда истории вычислений w и w' схем R и 5 при Г совпадают с теми цепочками, которые получаются из их историй при / посредством повсеместной замены wr на wr и w'r на w^. Поскольку | wm < | wm |, отсюда следует | w | < | w I, так что остается показать, что vab' (7?)г^ val/ (5).
Если 5 зацикливается при /, то 5 зацикливается и при Г, а следовательно, val7(/?) r^ val/(S). Если 5 останавливается при /, то wncn^= w^c^,, поскольку val7 (/?) ^ val; (5). Имеются три случая:
Ни сп, ни с^ —не критические. Тогда Na\I\R^ = wncn = = wncn w'X = ЙХ. = valr (S).
Ровно одно из вхождений сп и с', — критическое. Тогда, скажем, wncn — uaxcrn для некоторого и, но w^c^, =^= х)ахст для любого у; следовательно, val7'(/?)#= va l7'(S).
Оба вхождения сп и сп, — критические. Тогда wn = ua2av ад'^, = уа2а1 и и =И= и, так что wn = иах ^ уах = w^, и, следовательно, val/(/?) =И= val/'(S).
Итак, в каждом из случаев val/(/?) =И= val/(S), и доказательство закончено.
Сейчас мы пытаемся, комбинируя технику теорем 5.1 и 5.2, показать, что проблема эквивалентности для линейных рекурсивных схем с константными функциями является алгоритмически разрешимой.
СПИСОК ЛИТЕРАТУРЫ
deBakker J. W., Scott Dana, A Theory of Programs, August 1969, unpublished report.
Hopcroft J. E., Ullman J. D., Formal Languages and their Relation to Automata, Addison-Wesley, 1969.
Янов Ю. И., О логических схемах алгоритмов, сб. «Проблемы кибернетики», вып. 1, М.„ Физматгиз, 1958, стр. 75—127.
Luckham D. С., Park D. М. R., Paterson М. S., Formalized Computer Programs, Journal Computer and System Sciences, 4, No. 3 (June 1970), 220—249. (Русский перевод: Лакхэм Д., Парк Д. М., Патерсон М. С., О формализованных машинных программах. Кибернетический сборник, новая серия, вып. 12, «Мир», М., 1975, стр. 78—114.)
Nivat М., Transductions des Languages de Chomsky, doctoral dissertation, Grenoble University (1967), Chapter 6.
Paterson M. S., Hewitt С. E., Comparative Schematology, Record of the Project MAC Conference on Concurrent Systems and Parallel Computation, June 1970, published by the ACM Dec. 1970, pp. 119—128. (Русский перевод: Патерсон M., Хьюитт К., Сравнительная схематология, см. наст, сб., стр. 62—72.)
Rabin М., Scott D., Finite Automata and Their Decision Problems, IBM J. Res. Develop., 3 (1959), 114—125.
Shepherdson J. C., Sturgis H. E., Computability of Recursive Functions, Journal A. С. M. 10, № 2 (1963), 217—255.
математическая лингвистика
Сетевые грамматикидля анализа естественных языков1)
В. А. Вудс
ОБОСНОВАНИЕ
Одной из ранних моделей для грамматик естественных языков был конечный граф переходов. Эта модель представляет собой сеть из узлов и связывающих их ориентированных дуг, причем узлы соответствуют состояниям конечного автомата, а дуги — переходам от состояния к состоянию. Каждая дуга помечена символом, ввод которого может вызвать переход вдоль данной дуги (в соответствии с ее ориентацией). Привлекательным свойством этой модели было то, что последовательность слов, образующая предложение, могла читаться в прямом направлении при прохождении пути от начального состояния к некоторому заключительному состоянию. К сожалению, эта модель существенно неадекватна для представления грамматик естественных языков, поскольку она не способна охватить многие закономерности языка. Наиболее явное несоответствие состоит в отсутствии магазина, позволяющего приостановить обработку составляющей на некотором уровне на время использования той же самой грамматики для обработки составляющей, вложенной в предыдущую.
Предположим, однако, что непосредственно к такой сетевой модели был бы добавлен механизм рекурсии. Другими словами, предположим, что мы взяли бы некоторую совокупность графов переходов, каждый с присвоенным ему именем, и позволили бы употреблять в качестве символов при дугах не только терминальные символы, но и нетерминальные символы, обозначающие сложные конструкции, наличие которых необходимо для того, чтобы переход по дуге был допустим. Проверка того, действительно ли такая конструкция имеется в предложении, делалась бы путем «обращения» как к «подпрограмме» к другому графу (или к тому же самому). Получающаяся модель грамматики, которую мы назовем рекурсивной сетью переходов, эквивалентна в смысле порождающей силы контекстно-свободной грамматике или автомату с магазинной памятью, но, как мы покажем, позволяет получить более компактное представление,
Ч Woods W. A., Transition network grammars for natural language analysis, Comm. ACM, 13, № 10 (Oct 1970), 591—606.
более эффективные алгоритмы анализа, а также естественное продолжение путем «расширения» до более мощной модели, которая уже допускает разной степени контекстные зависимости и более гибкое построение структур в процессе анализа. Мы покажем действительно, что с помощью «расширенной» рекурсивной сети переходов можно совершать анализ, эквивалентный трансформационному [6, 7], нс вводя специальных инверсных трансформационных компонент, и что время анализа с помощью такой сети сравнимо с временем предсказуемостного анализа для КС-языков.
РЕКУРСИВНЫЕ СЕТИ ПЕРЕХОДОВ
Рекурсивная сеть переходов (в дальнейшем просто рекурсивная сеть) — это ориентированный граф с помеченными состояниями и дугами, выделенным состоянием, которое называется начальным, и выделенным множеством состояний, которые называются заключительными. Она имеет по существу такой же вид, как и диаграмма переходов конечного недетерминированного автомата, с тем исключением, что символы при дугах могут быть как терминальными, так и именами состояний. Дуга, помеченная именем состояния, имеет следующую интерпретацию: состояние, в которое ведет эта дуга, запоминается в магазине, а управление передается состоянию, которым помечена дуга (без продвижения входной ленты). Когда встречается заключительное состояние, разрешается «поднять» содержимое магазина, т. е. взять верхнее состояние в магазине и передать ему управление (из магазина это состояние вычеркивается). Пустота магазина, обнаруженная при попытке «поднять» его содержимое в тот момент, когда обработан последний входной символ, есть критерий допустимости входной цепочки. Имена состояний, которые в этой модели могут встречаться на дугах, — это по существу имена конструкций, которые могут быть обнаружены как самостоятельные «группы» (phrase) на входной ленте. Переход по дуге, помеченной именем состояния, может произойти, если конструкция указанного типа опознана как «группа» в соответствующем месте входной цепочки.
Пример рекурсивной сети для небольшого подмножества английского языка дан на рис. 1. Эта сеть допускает такие фразы, как “John washed the саг” и “Did the red barn collapse?” По виду этой сети легко представить себе тип фраз, которые являются для нее допустимыми. Для анализа фразы “Did the red barn collapse?” работа начинается с состояния S. Первый переход — это переход по дуге AUX к состоянию Q2, возможный благодаря наличию вспомогательного глагола “did”. Мы видим, что из состояния Q2 можно перейти в Q3, если следующий «эле-
мент» во входной цепочке есть NP1). Чтобы проверить, так ли это, обращаемся к состоянию NP. Из состояния NP мы можем пойти по дуге DET к состоянию Q6, так как присутствует детерминатив “the”. Оттуда из-за наличия прилагательного “red” проходим по петле и возвращаемся к состоянию Q6, затем существительное “barn” вызывает переход к состоянию Q7. Так как состояние Q7 является заключительным, можно «подняться»
Рис. 1. Пример рекурсивной сети. S — начальное состояние, q^ q5) q7, q8 и q10 — заключительные состояния.
из анализа NP и продолжить движение на верхнем уровне S, начиная с состояния Q3, которое находится в конце дуги NP. От Q3 глагол “collapse” позволяет перейти к состоянию Q4, и, так как это состояние является заключительным, a “collapse” есть последнее слово цепочки, цепочка считается допустимым предложением.
В приведенном примере имеется только один путь через сеть, допускающий данное предложение, т. е. предложение однозначно по отношению к данной грамматике. Неотъемлемым свойством естественных языков, однако, является то обстоятельство, что, если речь идет не о специально выделенном подмножестве языка, всегда имеются неоднозначные предложения, для которых возможны несколько различных путей анализа в сети переходов. Поэтому сетевая модель является существенно недетерминированным механизмом и любой анализирующий алгоритм для сетевых грамматик должен уметь для любого задан ного предложения проследить все возможные пути анализа.
Нетрудно установить, что рекурсивная сеть эквивалентна магазинному автомату. По существу каждая рекурсивная сеть есть магазинный автомат, в котором алфавит магазина есть подмножество множества состояний. Обратное утверждение, что каждый магазинный автомат имеет эквивалентную ему рекурсивную сеть, может быть доказано непосредственно, но проще доказать это, заметив, что каждый магазинный автомат имеет эквивалентную КС-грамматику, для которой имеется эквивалентная рекурсивная сеть.
РАСШИРЕННЫЕ СЕТИ ПЕРЕХОДОВ
Хорошо известно (Хомский [6]), что в чистом виде КС-грамматики не представляют собой адекватный механизм для описания тонкостей естественных языков. Многие из условий, которым должны удовлетворять правильные предложения английского языка, требуют определенного согласования между различными частями предложения, которые могут быть, но могут и не быть соседними (в действительности, они могут отделяться теоретически неограниченным числом вставленных между ними слов). Контекстно-зависимые грамматики могут справиться со слабым порождением многих из таких конструкций, но только ценой потери лингвистической значимости «структуры составляющих», приписываемой грамматикой (Постал [27]).
Более того, обычная КС-грамматика не может показать регулярные соотношения, которые существуют между утвердительным предложением и соответствующим вопросительным, между предложением в активе и соответствующим предложением в пассиве и т. д. Теория трансформационных грамматик Хомского [7], различающая поверхностную и глубинную структуры предложения, преодолевает эти трудности, но и она неадекватна в других случаях (Шварц [28] или Мак-Коли [21]). В этом разделе мы опишем такую модель грамматики, основанную на понятии рекурсивной сети, которая может осуществить анализ, эквивалентный трансформационному, нс нуждаясь в специальном трансформационном компоненте, и в отношении которой уже нельзя высказать многие из тех возражений, которые выдвигались против трансформационной модели грамматик.
КС-грамматики и взятые нами за основу рекурсивные сети, как мы их описали,' слабо эквивалентны; экивалентность отличается от сильной из-за возможности описывать в рекурсивной сети неограниченное ветвление, как в структурах вида
S
S and S and • • - and S
Существенным расширением возможностей трансформационных грамматик по сравнению с КС-грамматиками является способность перемещать фрагменты структуры предложения (так, что их положение в глубинной структуре отличается от положения в поверхностной), повторять и отбрасывать фрагменты структуры предложения и совершать действия над составляющими в зависимости от контекста, в котором эти составляющие находятся. Мы можем добавить эквивалентные возможности к сетевой модели, приписывая каждой дуге сети переходов дополнительное условие, которое должно быть выполнено для того, чтобы переход по дуге был возможен, и множество действий по построению структуры, которые следует осуществить, если совершается переход по данной дуге. Мы называем этот вариант модели расширенной сетью переходов — РСП (augmented transition network).
По мере продвижения от состояния к состоянию РСП постепенно формирует описание структуры предложения. Куски получаемых частичных описаний хранятся в регистрах, которые могут содержать любое дерево с корнем или множество деревьев с корнями и в которых данные автоматически передвигаются вниз при рекурсивном применении переходной сети и автоматически поднимаются, когда рекурсивное вычисление более глубокого уровня закончено. Действия по построению структур, приписанные дугам, определяют изменение содержимого этих регистров в зависимости от их предшествующего содержимого, содержимого других регистров, текущего входного символа и/или результата вычислений более глубокого уровня. Кроме того, что регистры содержат подструктуры, которые будут в конечном итоге включены в некоторые объемлющие их структуры, они могут содержать также пометки и другие указатели, к которым возможно обращение при проверке условий на дугах.
Каждому заключительному состоянию РСП сопоставлено одно или несколько условий, которые должны быть выполнены, чтобы это состояние могло вызвать «подъем» (“pop”). Каждое условие сопровождается функцией, значение которой вычисляется для выдачи в качестве результата. Когда в сети происходит возврат к дуге, вызвавшей рекурсивное вычисление, результат работы на более глубоком уровне помещается в специальный регистр * (который обычно содержит текущее входное слово). Таким образом, регистр * всегда содержит представление «элемента» (слова или группы), вызвавшего переход по дуге.
Представление РСП. Для того чтобы сделать обсуждение РСП более конкретным, мы приводим на рис. 2 спецификацию языка, на котором может быть описана РСП. Язык задается в форме расширенной КС-грамматики, где вертикальная
черта разделяет альтернативные возможности образования конструкции, а оператор * Клини используется как верхний индекс для указания произвольного числа повторений данной составляющей. Нетерминальные символы этой грамматики представляют собой записи на русском 9 языке, заключенные в угловые скобки, а все остальные символы, кроме вертикальной черты и верхнего индекса *, являются терминальными (включая круглые
(РСП)-> «пучок дуг) (пучок дуг)*) (пучок дуг)-> ((состояние) (дуга)*) (дуга) -> (CAT (имя категории) (тест) (действие)* (заключительное действие)) [ (PUSH (состояние) (тест) (действие)* (заключительное действие))! (TST (произвольная метка) (тест) (действие) (заключительное действие)) |
(POP (форма) (тест))
(действие)-> (SETR (регистр) (форма)) |
(SENDR (регистр) (форма))]
(LIFTR (регистр) (форма))
(заключительное действие)-> (ТО (состояние))!
(JUMP (состояние))
(форма) -> (GETR (регистр)) |
(GETF (свойство» |
(BUILDQ (фрагмент) (регистр)*) | (LIST (форма)*) |
(APPEND (форма) (форма)) | (QUOTE (произвольная структура»
Рис. 2. Спецификация языка для представления РСП.
скобки, которые обозначают списочную структуру). Заметим, что звездочка *, которая появляется как одна из альтернатив в правой части правила для конструкции (форма), является терминальным символом, ее не следует путать с верхним индексом *, означающим повторение составляющих. Верхняя строка рис. 2 означает, что РСП записывается так: левая скобка, пучок дуг, за которым следует произвольное число (нуль или более) пучков дуг, затем правая скобка. Пучок дуг в свою очередь записывается: левая скобка, затем имя состояния, затем произвольное число дуг, затем правая скобка, причем дуга может быть записана в одном из четырех видов, указанных в третьем правиле грамматики. Остальные правила интерпретируются аналогичным образом. Нетерминальные символы, развертка ко-
» В оригинале на «английском». — Прим, перев.
торых не приведена на рис. 2, имеют имена, которые достаточно их объясняют.
Выражения, порождаемые как РСП грамматикой рис. 2, имеют форму скобочных списочных структур, где список элементов А, В, С, D представляется выражением (ABCD). РСП представляется как список пучков дуг, каждый из которых сам есть список, первый элемент которого есть имя состояния, а остальные элементы суть дуги, выходящие из этого состояния. Дуги также представляются списками, возможные формы которых указаны на рис. 2. (Условия и функции, соответствующие заключительным состояниям, представляются как «псевдодуги», никуда не ведущие и не имеющие действий.) Первый элемент каждой дуги — это слово, которое указывает тип дуги, а третий элемент — некоторый тест, который должен дать положительный результат, чтобы можно было пройти по этой дуге.
Дуга типа CAT — это дуга, по которой можно пройти, если текущий входной символ является элементом лексической категории, указанной при дуге (и если результат теста положительный). Дуга типа PUSH вызывает «спуск» (PUSHDOWN) к состоянию, указанному после символа PUSH. Дуга типа TST допускает произвольное условие, чтобы проверить, можно ли пройти по дуге. В дугах этих трех типов «действиями» являются действия по построению структуры, а заключительное действие определяет состояние, которому передается управление в результате перехода по данной дуге.
Два возможных заключительных действия ТО и JUMP указывают соответственно, нужно или не нужно передвинуть указатель входа, т. е. указывают, должно ли в следующем состоянии рассматриваться следующее входное слово или то же самое входное слово. Дуга типа POP — это фиктивная дуга, указывающая, при каких условиях состояние следует рассматривать как заключительное, и определяющая форму, которая должна быть выдана как результат вычислений, если выбрана альтернатива POP. (Одно из преимуществ представления этой информации как фиктивной дуги состоит в возможности упорядочить «подъем» по отношению к другим дугам, выходящим из того же состояния.)
. Действия и формы в РПС представлены в «кембриджско- польской» записи, где функция представлена как заключенный в скобки список, в котором первый элемент есть имя функции, а остальные элементы суть ее аргументы. Три действия, приведенные на рис. 2, заносят в указанные в них регистры значения указанных форм. SETR совершает это на текущем уровне вычислений в.сети, тогда как SENDR— на следующем более глубоком уровне (используется для засылки информации вниз на более глубокий уровень вычислений), a LIFTR— на соседнем
более высоком уровне вычислений (используется для возврата дополнительной информации к более высокому уровню вычислений).
Формы, так же как условия (тесты) в РСП, могут быть произвольными функциями от содержимого регистров, заданными на некотором языке для описания функций (как, например, на LISP — см. Мак-Карти и др. [20] — программном языке, основанном на ^-исчислении Чёрча) и записанными в кембриджско- польской системе обозначений. Семь типов форм, перечисленные на рис. 2, являются базовым множеством, достаточным для иллюстрации основных свойств РСП-модели. GETR— это функция, значением которой является содержимое указанного регистра, — форма, значением которой обычно является текущее входное слово, a GETF — функция, которая определяет значение указанного признака для текущего входного слова. (В действиях, которые появляются на дугах типа PUSH, значением * является результат вычисления на более глубоком уровне, успешное выполнение которого позволяет пройти до конца дугу PUSH.)
BUILDQ является полезной формой построения структуры, которая, получая на входе списочную структуру, представляющую фрагмент дерева анализа с специально помеченными узлами, выдает в качестве значения результат замещения этих специально помеченных узлов содержимым указанных регистров1). В частности, вместо каждого вхождения символа + в списочную структуру, являющуюся первым аргументом функции BUILDQ, подставляется содержимое очередного регистра из списка (содержимое первого регистра заменяет первый +, содержимое второго регистра — второй + и т. д.). Кроме того, BUILDQ заменяет вхождения символа * во фрагменте значением формы *.
Остальные три формы являются базисными формами для построения структур (из которых может быть составлена любая
BUILDQ). Эти формы соответственно составляют список значений перечисленных аргументов, объединяют два списка в один и дают в качестве значения форму, являющуюся аргументом.
(S / (PUSH NP/T
(SETR SUBJ.)
(SETR TYPE (QUOTE DCL))
(TO QI)
(CAT AUX T
(SETR AUX *)
(SETR TYPE (QUOTE Q))
(TO Q2)))
(QI (CAT V T
(SETR AUX NIL)
(SETR V»)
(TO Q4))
(CAT AUX T
(SETR AUX»)
(TO Q3)))
(Q2 (PUSH NP/T
(SETR SUBJ.)
(TO Q3)))
(Q3 (CAT V T
(SETR V .)
(TO Q4)))
(Q4 (POP (BUILDQ (S + + + (VP +)) TYPE SUBJ AUX V) T)
(PUSH NP/T
(SETR VP (BUILDQ (VP (V +) ♦) V))
(TO Q5)))
(Q5 (POP (BUILDQ (S+ + + +) TYPE SUBJ AUX VP) T)
(PUSH PP/T
(SETR VP (APPEND (GETR VP) (LIST.)))
(TO Q5)))
Pac. 3. Иллюстративный фрагмент РСП.
Для иллюстрации на рис. 3 дан фрагмент РСП. В разд. 3.2 описывается работа этой сети и обсуждаются некоторые свойства РСП-модели.
Иллюстративный пример. На рис. 3 приведен фрагмент РСП, записанный на языке, который дан на рис. 2. Этот фрагмент является расширением той части сети рис. 1, которая содержит состояния S/, QI, Q2, Q3, Q4 и Q5. РСП строит структурное представление предложения, в котором первая составляющая есть тип (либо DCL (declarative), либо Q), указывающий, является ли предложение повествовательным или вопро-
сительным, вторая составляющая есть группа подлежащего, третья — это вспомогательный глагол (или NIL, если вспомогательного глагола нет), четвертая составляющая есть группа глагола. Такое представление получается независимо от того, в каком порядке стояли подлежащее и вспомогательный глагол в предложении. Сеть дает также представление группы глагола, хотя в сети и нет магазина, соответствующего этой группе. Как для понимания обозначений, так и для понимания работы РСП полезно сейчас разобрать один пример, используя фрагмент РСП, изображенный на рис. 3.
Прежде чем приступать к рассмотрению примера, необходимо объяснить представление дерева анализа, которое используется этим фрагментом. Деревьям анализа сопоставляются скобочные записи, в которых узел представлен списком, где первый элемент есть имя узла, а остальные элементы суть представления составляющих этого узла. Например, дереву анализа
NP VP
John V NP
likes Магу
будет сопоставлено выражение-
(S (NP John) (VP (V likes) (NP Mary)))
Это представление можно также рассматривать как размеченное разбиение предложения на группы, в котором левая граница группы типа X представлена левой скобкой и символом X, а соответствующая правая граница — просто правой скобкой.
. Рассмотрим теперь работу фрагмента РСП, представленного на рис. 3, для входного предложения “Does John like Магу?”
Мы начинаем процесс с состояния S/ и рассмотрения первого слова предложения “does”. Так как это слово является вспомогательным глаголом, в его словарной статье будет указано, что он является элементом категории AUX, и следовательно (так как Т (true) обозначает тождественно истинное условие), можно пойти по дуге (CAT AUX Т...). (Другая дуга, которая ведет к спуску для поиска именной группы, не годится.) Проходя по выбранной дуге, мы выполняем следующие действия: (SETR AUX*), которое заносит рассматриваемое слово “does” в регистр, названный AUX; (SETR TYPE (QUOTE Q)), которое заносит символ Q в регистр, названный ТУРЕ, и (ТО Q2), которое переводит сеть в состояние Q2 для рассмотрения следующего слова предложения “John”,
5 Зак. 125
Из состояния Q2 выходит только одна дуга — спуск к состоянию NP/. Работа на более глубоком уровне будет выполнена и выдаст представление структуры именной группы, которое станет значением специального регистра *. Мы допустим, что выданное представление есть выражение (NP John). Теперь, опознав конструкцию типа NP, мы осуществляем действия, соответствующие дуге. Действие (SETR SUBJ*) заносит значение (NP John) в регистр SUBJ, а действие (ТО Q3) переводит сеть в состояние Q3 для рассмотрения следующего слова “like”. В этот момент регистры заполнены следующим образом:
TYPE: Q
AUX : does
SUBJ: (NPJohn)
Из состояния Q3 глагол “like” делает возможным переход к состоянию Q4 с засылкой “like" в регистр V, а входной указатель перемещается к слову “Магу”.
Так как Q4 — заключительное состояние, из него выходит дуга POP, указывающая, что рассмотренная цепочка может быть полным предложением в соответствии с грамматикой, но поскольку предложение еще не кончилось, то выбрать эту альтернативу нельзя. Из этого состояния выходит также дуга, которая спускает нас к состоянию NP/. Эта альтернатива допустима, в результате обработки получается значение (NP Магу). Теперь действие (SETR VP (BUILDQ (VP (V+)*V)) берет фрагмент структуры (VP(V+)*) и подставляет текущее значение * вместо вхождения * во фрагмент, а также заменяет вхождение знака + содержимым указанного регистра V. Полученная структура (VP (V like) (NP Магу)) помещается в регистр VP, а действие (ТО Q5) вызывает переход к состоянию Q5 и выход за конец входной цепочки. Содержимое регистров в этот момент таково:
TYPE: Q
AUX: does
SUBJ: (NPJohn)
V:like
VP: (VP (V like) (NP Mary))
Так как предложение окончилось и Q5 есть заключительное состояние (т. е. имеет дугу типа POP), а условие Т выполнено, данное предложение считается допустимым. Форма (BUILDQ (S + + + +)TYPE SUBJ AUX VP) дает значение, которое должно быть выдано как результат анализа предложе-
ния. Это значение получается в результате подстановки содержимого регистров TYPE, SUBJ, AUX и VP вместо последовательных вхождений символа + во фрагмент (S + + + +), что дает результат анализа предложе-ния в виде записи
(S Q (NP John) does (VP (V like) (NP Mary)))
которая представляет дерево анализа:
В обычном КС-анализе структура предложения является более или менее прямым представлением хода передач управления в процессе анализа предложения. Структурное представление, которое дают правила построения структур в РСП, как мы видели на примере, сравнительно независимо от порядка работы алгоритма. Это не означает, что оно не зависит от хода работы анализатора, поскольку оно им определяется; мы скорее хотим подчеркнуть, что оно не является изоморфным отражением порядка передач управления, как в обычных алгоритмах КС-анализа. Так, составляющая, найденная в процессе анализа, может появиться в окончательном структурном представлении несколько раз или ни разу, и ее место может быть совсем не там, где эта составляющая найдена в поверхностной структуре. Кроме того, структурное представление составляющей может быть в ходе анализа изменено или преобразовано прежде, чем эта структура войдет в окончательное структурное представление предложения в целом. Эти возможности плюс возможность проверки произвольных условий позволяют построить структуру, эквивалентную глубинной трансформационной структуре, в то время как анализатор совершает переходы, которые изоморфны поверхностной структуре предложения.
ТРАНСФОРМАЦИОННЫЙ АНАЛИЗ
Обычная модель трансформационной грамматики — это порождающая модель, состоящая из контекстно-свободной ^базовой) грамматики и множества трансформационных правил, которые отображают синтаксические деревья в новые (производные) синтаксические деревья. Порождение предложения такой
грамматикой состоит в построении сначала глубинной структуры с помощью базовой грамматики и в преобразовании затем этой глубинной структуры в поверхностную путем последовательного применения трансформаций. Концевые узлы (или листья) дерева поверхностной структуры дают окончательную форму предложения. Эта модель трансформационной грамматики полностью ориентирована на порождение предложений, а не на анализ, и, хотя существует очевидный алгоритм использования такой грамматики для анализа предложения, а именно процедура «анализа через синтез» (Мэтьюз [23]), этот алгоритм настолько- неэффективен, что не может быть речи о его практическом применении. (Анализ через синтез состоит в применении правил в «прямом» (порождающем) направлении всеми возможными способами для порождения всех возможных предложений языка и в наблюдении за тем, не появилось ли среди порожденных то предложение, которое мы хотим проанализировать.)
Две попытки сформулировать более практичные алгоритмы для трансформационного анализа (Петрик [26] и Митре [24]) дали алгоритмы, которые либо для многих предложений тратят слишком много времени на анализ, либо являются формально неполными. Оба эти алгоритма пытаются анализировать предложения, применяя правила трансформаций в обратном направлении, — процедура, которая осуществляется далеко не так просто, как формулируется. Применение трансформаций в обратном направлении наталкивается на трудности двух видов. Во- первых, трансформации применяются к древовидным структурам и дают в результате тоже древовидные структуры. В прямом направлении они начинают с дерева глубинной структуры и дают дерево поверхностной структуры. Для того чтобы этот процесс пошел в обратном направлении, надо сначала получить дерево поверхностной структуры для входного предложения. Однако в трансформационной модели нет компонента, который характеризовал бы допустимые поверхностные структуры (имеется только их неявная характеристика указанием изменений, которые могут быть сделаны в глубинной структуре трансформациями) .
Обе процедуры анализа, как Митре, так и Петрика, решают эту проблему путем построения «расширенной грамматики», состоящей из правил исходной базовой грамматики плюс дополнительные правила, характеризующие структуры, которые могут быть добавлены трансформациями. В анализе Митре эта поверхностная грамматика строится вручную и нет формальной процедуры для ее построения по исходной трансформационной грамматике. В анализе Петрика есть формальная процедура для построения расширенной грамматики, однако она может не за-
кончиться, если только длина возможных входных предложений не будет заранее ограничена. Когда появляются предложения, длина которых больше выбранной, для расширенной грамматики нужно построить новые правила.
В анализе Митре расширенная грамматика используется для получения полной «пробной» поверхностной структуры, к которой затем применяются в обратном направлении трансформации. В анализе Петрика обратные трансформации применяются к частично построенной поверхностной структуре, и процессы применения трансформаций и построения структуры переплетаются. В обеих системах обратные трансформации могут дать, но могут и не дать допустимую глубинную структуру. Если они дают таковую, то данное предложение приемлемо, но если не дают — значит, пробная поверхностная структура является ложной и она отбрасывается. Нельзя построить поверхностную КС- грамматику, которая будет приписывать предложению все допустимые поверхностные структуры и только их. Приходится удовлетворяться такой, которая приписывает все допустимые (правильные) поверхностные структуры плюс некоторое количество ложных. Более того, единственный способ отделить эти два вида структур состоит в том, чтобы применить обратные трансформации и проверить полученные «пробные» глубинные структуры.
Вторая трудность с алгоритмом Петрика состоит в росте числа возможных последовательностей обратных трансформаций, которые могут быть применены к заданному поверхностному дереву. Хотя многие из трансформаций, когда они применяются в прямом направлении, являются обязательными, так что только одно возможное действие может быть проделано, почти все обратные трансформации факультативны. Причина этого состоит в том, что даже тогда, когда заданная структура выглядит так, как если бы она была получена определенной прямой трансформацией, т. е. можно применять соответствующую обратную трансформацию, нет гарантии, что та же самая структура не могла быть получена другим трансформационным выводом. Поэтому, когда какая-то обратная трансформация может быть применена, должны быть опробованы обе альтернативы: как применение обратной трансформации, так и неприменение ее. С ростом числа применяемых трансформаций число возможных активных путей может расти экспоненциально. Более того, прямые трансформации часто дают очень мало сведений о структуре, получающейся в результате их применения (даже если лингвисты много знают о том, как должна выглядеть получающаяся структура). Поэтому обратные трансформации не так избирательны, как соответствующие прямые, и поэтому становятся возможными гораздо больше ложных приме-
нений. Это значит, что, в то время как большинство последовательностей прямых трансформаций ведут к правильным поверхностным структурам, многие последовательности обратных трансформаций не ведут к допустимым глубинным структурам, и много напрасных усилий тратится на тупики. Анализ Митре преодолевает недетерминированность обратного трансформационного процесса путем построения ad hoc для той или иной частной грамматики детерминированных множеств обратных трансформационных правил. Этот метод, однако, не гарантирует получения всех допустимых глубинных структур, и не существует формальной процедуры для построения необходимого множества обратных трансформаций.
РСП И ТРАНСФОРМАЦИОННЫЙ АНАЛИЗ
В 1965 г. Куно [18] высказал предположение, что можно расширить в трансформационной грамматике ту ее часть, которая дает поверхностную структуру, таким образом, чтобы она «помнила» соответствующие глубинные конструкции и могла бы построить глубинную структуру предложения в процессе поверхностного анализа, тогда отпадала бы необходимость в специальном обратном трансформационном компоненте. Модель, которую он тогда предложил, однако, оказалось неадекватной для работы с некоторыми из мощных трансформационных механизмов, как, например, экстрапозиция составляющих из вставления произвольной грубины. С другой стороны, РСП дает модель, которая может сделать все то же, что и трансформационная грамматика, и есть, следовательно, реализация части предположения Куно. Остается выяснить, возможна ли совершенно механическая процедура, позволяющая взять трансформационную грамматику, заданную обычным формализмом, и перевести ее в эквивалентную РСП. Я полагаю, что дело обстоит именно так.
Однако, даже если такая механическая процедура осуществима, может оказаться, что для развития оригинальных лингвистических исследований и построения грамматик лучше использовать РСП-модель прямую. Для этого имеются разные причины. Во-первых, нельзя ожидать, что РСП, которые могут быть получены механически из традиционных трансформационных грамматик, будут столь же эффективны, как созданные вручную. Во-вторых, РСП-модель дает механизм, против которого уже нельзя выдвинуть некоторые из возражений, высказывавшихся лингвистами против трансформационных грамматик как языковых моделей (такие, как несовместимость со многими психолингвистическими фактами, которые, как известно, характеризуют использование языка человеком).
Третья причина предпочтения РСП-модели обычным формулировкам трансформационных грамматик — это возможности, которые дает использование произвольных условий и произвольных действий по построению структур. Модель по мощности эквивалентна машине Тьюринга и в то же время действия, которые она совершает, «естественны» для анализа языка. Многие из лингвистических исследований, касающихся изучения структуры языков и механизмов грамматик, специально имели целью построение моделей, которые не обладали бы мощностью машины Тьюринга и в которых использовались бы очень слабые грамматические механизмы, т. е. тем самым делались очень сильные предположения о механизмах языка, к которым такие грамматики применимы.
В результате этого подхода было предложено много вариантов модели трансформационной грамматики с различными наборами базисных трансформационных механизмов. Одни из них содержат циклические трансформационные правила; другие имеют специальные «послециклические» правила, которые действуют после того, как все циклические правила применены. Имеются различные типы условий: некоторые модели имеют двойное описание структур, некоторые имеют упорядоченные правила, некоторые—.обязательные правила, некоторые — блокирующие правила и т. д. Короче говоря, существует не одна модель трансформационной грамматики, а много моделей, которые более или менее несравнимы. Если одна из таких моделей может обработать одни явления языка, а вторая модель — другие, то не существует регулярной процедуры объединения обеих в одну модель.
В РСП есть возможность добавлять к модели любые средства, которые нужны и кажутся естественными для решения задачи. Можно добавить новый механизм простым введением нового базисного предиката, используемого в условиях, или новой функции, используемой в правилах построения структур. Можно также сделать сильные предположения о типах условий и действий, которые требуются, но если выясняется, что надо выполнить действия, для которых основная модель не имеет «естественного» механизма, то не представляет труда дополнить РСП, включив такой механизм.
Для этого требуется лишь ослабление ограничений на типы условий и действий, но не нужно перестраивать базовую модель.
ПРЕДШЕСТВУЮЩИЕ МОДЕЛИ СЕТЕЙ ПЕРЕХОДОВ
Основная идея рекурсивной сети—идея объединения правых частей правил КС-грамматики, имеющих* общую левую
часть, в единую диаграмму переходов была известна разработчикам синтаксически управляемых трансляторов и искусственных языков программирования по крайней мере с 1963 г., когда она была описана в работе М. Конвея [8]. Однако в то время интерес представляла не столько полная общность недетерминированного механизма, сколько множество условий, достаточных для того, чтобы гарантировать детерминированность диаграммы. Конвей описал элементарную форму действий, сопоставляемых дугам диаграммы, но эти действия ограничиваются командами записи информации на специальной выходной ленте, которая служит входом для компонента, порождающего коды. (Эта модель очень близка к обычной модели преобразователя с конечным числом состояний и отличается дополнительной возможностью рекурсии.) В модели Конвея не имеется аналога временной записи информации в регистры или последующего использования такой информации в условиях при дугах.
Впоследствии в литературе были описаны две системы анализа для естественных языков, основанные на рекурсивной сети переходов. Торне, Брэтли и Дьюар [29] описали процедуру анализа естественного языка, основную на сети переходов с конечным числом состояний (которая применяется рекурсивно), а Бобров и Фразер [1] описали систему, которая является «развитием процедуры, описанной Торне, Брэтли и Дьюаром». Хотя эти системы имеют значительное сходство с описанной нами, они обладают рядом существенных отличий, которые мы укажем ниже. Однако сначала коротко опишем эти две системы.
Система Торне. Система Торне [29] использует синтаксическое представление, в котором автор пытается одновременно отразить и глубинную, и поверхностную структуры предложения. Конструкции перечисляются в том порядке, в котором они обнаруживаются в поверхностной структуре, а их функции в глубинной структуре обозначаются метками. Инверсии в порядке слов указываются пометкой при структурах, которые найдены «не на месте» (т. е. в позициях, отличных от их позиций в глубинной структуре), без перемещения их с позиций, занимаемых ими в поверхностной структуре. Дальше в цепочке позиции, в которых они должны были бы появиться в глубинной структуре, отмечаются меткой, соответствующей глубинной функции, за которой следует звездочка. (Авторы не описывают процедуру для обработки составляющих, которые обнаруживаются в поверхностной структуре правее, чем их позиция в глубинной структуре. По-видимому, их грамматика не учитывает такие конструкции.)
Торне рассматривает свою грамматику как форму трансформационной грамматики, базовым компонентом которой яв-
ляется автоматная грамматика, и допускает рекурсии только для трансформаций. Согласно Торне, большая часть трансформационных правил может рассматриваться как «метаправила» в том смысле, что они скорее «оперируют с другими правилами с тем, чтобы дать производные правила, чем с описаниями структур с тем, чтобы дать новое описание структуры». Он использует расширенную сеть переходов, содержащую как исходные правила построения глубинной структуры, так и эти производные правила, в качестве грамматической таблицы, которая направляет анализирующий алгоритм, но не может таким способом обработать трансформации, дающие инверсии в порядке слов, или трансформации для сочинительных конструкций. Вместо этого он добавляет к своему анализирующему алгоритму эти случаи как исключения.
Система Боброва и Фразера. Бобров и Фразер [1] описали анализирующую систему, которая есть развитие системы Торне. Аналогично системе Торне основная форма результата анализа у них «подобна поверхностной структуре с добавочными указаниями о перемещенных составляющих и их месте в глубинной структуре». Эта модель грамматики также есть разновидность расширенной сети переходов, действия которой включают расстановку пометок и меток функций, а условия сети включают проверку ранее поставленных пометок. Однако в отличие от системы Торне система Боброва предусматривает средства для пересылки информации «назад» некоторым ранее проанализированным составляющим. Вообще говоря, условия при дугах могут быть произвольными функциями LISP (система запрограммирована на LISP) и действия для передачи информации могут также быть произвольными функциями LISP. Однако условия и действия, реализованные в настоящее время в системе, ограничиваются проверкой пометок и приписыванием новых меток функций в глубинной структуре частям структуры, проанализированным ранее.
Согласно утверждению Боброва1), основное различие между его системой и системой Торне состоит в использовании символьных имен пометок (вместо закрепленных разрядов), средств для использования мнемонических имен состояний, средств для передачи информации «назад» ранее проанализированным составляющим и средств для записи в словаре «активных» свойств (эти последние представляют собой подпрограммы, которые записываются в словарных статьях слов, а не просто приводятся в действие признаками, записанными в словаре).
!) Устное сообщение.
Сравнение с предлагаемой моделью. При сопоставлении РСП-модели, описанной в настоящей работе, с системами Боброва и Фразера [1] и Торне и др. [29] следует различать два направления, по каждому из которых может идти сравнение: формальное описание модели и реализация анализирующей системы. Одно из основных отличий предлагаемой анализирующей системы от систем Боброва и Торне состоит в степени проведения этого различия. В [29] Торне не описал концепцию расширенной сети переходов, которая им используется, за исключением того, что он указал, что грамматическая таблица, которую использует анализирующая программа, «имеет вид сети с конечным числом состояний или ориентированного графа — форму, принятую для представления регулярных грамматик». Эта сетевая модель, по-видимому, формально определена только в той форме, в какой она фактически фигурирует в анализирующей программе (которая не описана). Условия при дугах, видимо, ограничены проверками согласования признаков, приписанных лексическим единицам и составляющим, а действия ограничиваются записью текущей составляющей в выходном представлении, приписыванием меток составляющим или вставкой фиктивных узлов и маркеров. Средства для обработки инверсии в порядке слов или сочинительных конструкций не представлены в сети, но «включены в программу».
В системе Боброва и Фразера [1] заметно повышается мощность основной сетевой модели, использованной Торне и др. В ней добавляются средства для произвольных условий и действий при дугах, что увеличивает мощность модели, делая ее эквивалентной машине Тьюринга Однако в этой системе, как и в системе Торне, не проведено различие между моделью и ее реализацией. Хотя в реализации условия и действия произвольны, нет отдельной формальной модели, которая характеризовала бы структуру данных, с которыми они работают. То есть для того чтобы добавить произвольное условие, надо знать, как работает реализация анализирующего алгоритма на языке LISP и где и как записываются его промежуточные результаты. Условия и действия, которые можно использовать без такой информации, т. е. подпрограммы условий и действий, предусмотренные в настоящее время в реализации, состоят в записи и проверке пометок и перемещении меток функций назад к ранее проанализированным составляющим. В обеих системах Боброва и Торне фактическая структура составляющих изоморфна рекурсивной структуре анализа, как эта последняя определяется историей рекурсивного применения сети. Структура составляющих автоматически порождается анализирующим алгоритмом.
РСП, как мы ее описали, дает формальную сетевую модель, имеющую мощность машины Тьюринга, независимо от реализа-
ции. В модели проводится явное разделение различных частичных результатов в регистрах с именами и допускаются произвольные условия и действия, которые используют содержимое этих регистров. Поэтому составителю грамматики не обязательно знать детали реализации анализирующего алгоритма для того, чтобы воспользоваться преимуществами произвольных условий и действий1). Построение структуры составляющих в этой модели не делается автоматически анализирующим алгоритмом, оно должно быть определено явно заданными правилами построения структур. В результате этого структура, сопоставляемая предложению, не обязана больше быть изоморфным представлением рекурсивной истории анализа, и составляющие в структуре могут переставляться. Поэтому представление,, даваемое анализатором, может быть представлением глубинной структуры того типа, который дают обычные трансформационные грамматики (или также это может быть представление поверхностной структуры, или представление, отражающее обе структуры, как в системах Боброва и Торне, или любое из множества других представлений, как, например, представление зависимостей). Явное указание действий по построению структур при дугах вместе с использованием регистров для хранения фрагментов структуры предложения (функции и места которых могут еще не быть определены) дает исключительно гибкое и эффективное средство для перемещения составляющих в представлении глубинной структуры и для изменения интерпретации составляющих в соответствии с ходом анализа. Можно даже построить структуру с несколькими уровнями вставления, оставаясь на одном и том же уровне переходной сети, и, обратно, пройти несколько уровней рекурсии в сети при построении структуры, которая имеет только один уровень. Подобных возможностей нет в системах Боброва и Торне.
Другая особенность РСП, предложенной здесь, которая отличает ее от систем Торне и Боброва, — это язык для спецификации грамматики переходной сети. Этот язык ориентирован скорее на то, чтобы быть удобным и естественным для составителя грамматики, чем для машины или для программиста. Можно на нескольких страницах полностью определить допустимые синтаксические формы для представления РСП. Каждая дуга представлена мнемоническим именем типа дуги, меткой дуги, произвольным условием и списком действий, которые сле-
Ч В экспериментальной анализирующей системе иногда выгодно использовать условия и действия, которые основаны на особенностях реализации, не раженных в формальной модели. Действия такого рода рассматриваются как расширение базовой модели, и особенности реализации, позволяющие легко их добавить, — это в значительной степени свойства системы BBN LISP [2], с помощью которой реализована система.
дует осуществить при движении по этой дуге. Условия и действия представляются как выражения в кембриджско-польской записи с мнемоническими именами функций. Мы позаботились о том, чтобы создать базисный набор таких функций, который является «естественным» для проблемы анализа естественных языков. Одной из целей экспериментальной анализирующей системы, основанной на РСП, которую я реализовал, было именно создание такого набора естественных операций путем накопления опыта при написании грамматик для этой системы, и многие из базисных операций, описанных в настоящей работе, являются результатом происходившей эволюции. Одной .из ценных характеристик РСП-модели является то, что она легко допускает подобного рода эволюцию.
ПРЕИМУЩЕСТВА РСП-МОДЕЛИ
РСП-модель имеет много преимуществ как модель грамматики для естественных языков, некоторые из которых распространяются также и на языки программирования. В этом разделе мы рассмотрим и резюмируем некоторые из основных черт РСП-модели, которые определяют ее привлекательность в качестве модели для естественных языков.
Прозрачность. КС-грамматики как модель для описания естественных языков были чрезвычайно удачны (или, во всяком случае, популярны), несмотря на их формальную неадекватность в отношении некоторых характерных свойств естественных языков. КС-грамматики обладают определенной степенью «прозрачности», так как составляющие, которые дают конструкцию некоторого -заданного типа, могут быть прочтены непосредственно из контекстно-свободного правила. То есть по виду правила КС-грамматики сразу виден результат применения этого правила к разрешенным конструкциям. С другой стороны, магазинный автомат, хотя он и эквивалентен КС-грамматике по порождающей мощности, не обладает такой прозрачностью. Поэтому не удивительно, что лингвисты при создании грамматик для естественных языков работали с формализмом КС-грамматик, а не прямо с магазинными автоматами, хотя последние'бла- годаря их конечно-автоматному механизму управления допускают некоторую экономию в представлении и дают в результате более эффективные анализирующие алгоритмы.
Теория трансформационных грамматик, предложенная Хомским [6], является одним из наиболее мощных средств для описания предложений, возможных в естественных языках, и связей между ними, но эта теория при ее теперешней формализации (в тех ограниченных пределах, в которых она формализована) те-
ряет прозрачность КС-грамматик. В этой модели невозможно, глядя на одиночное правило, осознать немедленно последствия его применения к допустимым на входе конструкциям. Результат применения отдельного правила тесно связан с его взаимоотношениями с другими правилами, и может потребоваться очень сложный анализ для того, чтобы по фрагменту-трансформационной грамматики естественного языка установить результат и назначение некоторого определенного правила. РСП имеет мощность трансформационной грамматики, но сохраняет в значительной степени прозрачность модели КС-грамматики. Если бы РСП была реализована на машине с графико-построителем для вывода сети на дисплее, она была бы одной из наиболее прозрачных (и мощных) моделей грамматики, доступных в настоящее время.
Порождающая мощность. Даже без условий и действий при дугах рекурсивная сетевая модель имеет большую порождающую мощность, чем обычные КС-грамматики (нет сильной эквивалентности). Это достигается благодаря возможности характеризовать конструкции, которые имеют неограниченное число непосредственных составляющих. Обычные КС-грамматики не позволяют определить дерево с неограниченным ветвлением иначе, чем допуская бесконечное множество правил. В некотором смысле можно рассматривать рекурсивную сетевую модель как конечное представление КС-грамматики с возможно бесконечным (но регулярным) множеством правил. Когда добавляются условия и действия при дугах, модель достигает мощности машины Тьюринга, хотя основные операции, которые она осуществляет, являются «естественными» для анализа языка. С использованием этих условий и действий модель дает возможность осуществить эквивалент трансформационного анализа и при этом она не нуждается в отдельном трансформационном компоненте.
Другое привлекательное свойство РСП-модели состоит в том, что эффективность не приносится в жертву мощности. При переходе от КС-грамматик к НС-грамматикам и трансформационным грамматикам время работы соответствующих алгоритмов анализа чрезвычайно возрастает. Вместе с тем РСП-модель достигает мощности трансформационной грамматики, не требуя, по-видимому, существенно больше времени, чем требует предсказуемостный анализ для КС-языков. (Это показывает в некоторой степени пример в разд. 8.)
Дополнительное преимущество РСП-модели по сравнению с трансформационной моделью состоит в том, что она гораздо ближе к двусторонней модели, чем трансформационная. Это значит, что хотя мы описываем ее как распознающую, или ана-
лизирующую модель, которая анализирует предложения, реально нет ограничений, которые помешали бы модели действовать в направлении синтеза для порождения, или генерирования предложений. Единственное изменение в работе, которое потребуется, состоит в том, что условия, которые проверяют следующие элементы в предложении, должны интерпретироваться в порождающем алгоритме как решение, которое следует принять и которое, если оно принято, налагает ограничения на порождение последующих фрагментов предложения. Трансформационная модель, напротив, есть почти исключительно порождающая модель. Проблема анализа для трансформационной грамматики столь иключительно сложна, что для трансформационных грамматик пока не найдено разумно эффективного распознающего алгоритма.
Эффективность представления. Одно из существенных преимуществ РСП-модели перед обычными КС-грамматиками — это возможность объединять общие части многих контекстно-свободных правил, что дает большую компактность записи. Например, одно регулярно записанное правило S —► —► (Q) (NEG)NP VP заменяет четыре правила:
S->NPVP S->QNPVP S->NEGNPVP S->QNEGNPVP
в обычных контекстно-свободных обозначениях. РСП-модель часто может достичь и еще большей компактности путем объединения правил, благодаря отсутствию ограничений, связанных с линейностью записи, которые имеются при записи регулярных выражений.
Объединение избыточных частей правил не только дает более компактное представление, но и исключает избыточную работу в процессе анализа. То есть, сокращая объем записи грамматики, мы сокращаем также число проверок, которые надо проделать при анализе. Дело в том, что независимо от того, применялось правило или нет в обычной КС-грамматике, в процессе его применения (или попытки применения) часто получается информация, которая может оказать воздействие на применимость или неприменимость последующих правил. Поэтому, когда два правила имеют общие части, при проверке применимости первого уже осуществляется часть тестов, требующихся для проверки применимости второго. Объединение общих частей
правил позволяет выиграть за счет использования этой информации, исключив избыточную работу при применении второго правила.
В дополнение к прямому объединению общих частей различных правил, которое происходит при построении нерасширенной сети, РСП благодаря использованию пометок допускает объединение сходных частей сети путем запоминания информации в регистрах и обращения к этой информации в условиях при дугах. Так, можно запомнить в регистрах некоторую информацию, которая иначе неявно запоминалась бы состоянием сети, и объединить состояния, которые имеют переходы, одинаковые во всем, кроме условий на содержимое регистров. Например, рассмотрим два состояния, переходы которых одинаковы с тем исключением, что одно из них «помнит», что в предложении уже была найдена отрицательная частица, тогда как другое позволяет переход, который допускает отрицательную частицу. Эти два состояния можно объединить, введя пометку, указывающую на то, что отрицательная частица уже была ранее, и поместив при дуге, которая допускает отрицательную частицу, условие, блокирующее эту дугу, при наличии пометки.
Процесс объединения сходных частей сети с использованием пометок, хотя и дает более компактное представление, но не уменьшает время работы и обычно даже требует небольшого увеличения времени. Причина в том, что требуется дополнительное время для проверки условий и появляются дополнительные дуги, которые приходится пробовать, даже если потом условия запретят пройти по ним. В пределе (доводя до абсурда) можно свести любую сеть к сети с одним состоянием, используя пометку для каждой дуги и помещая при дугах условия, которые запрещают проход по этой дуге, если не появилась соответствующая пометка на одной из дуг, предшествующих данной. Явная неэффективность здесь состоит в том, что на каждом шаге нужно будет рассматривать каждую дугу сети и применять сложные -тесты для выяснения того, можно ли пройти по этой дуге. Поэтому имеется «обратная пропорциональность» между компактностью представления, которую можно получить, используя пометки, и возможным возрастанием времени работы. Представляется, что это еще один пример постоянного конфликта «место — время», который возникает почти во всех проблемах, программируемых для ЭВМ.
Во многих случаях использование регистров для хранения частичных анализов автоматически порождает пометки, так что нет необходимости заводить специальные регистры для их запоминания. Например, па наличие где-то раньше в предложении отрицательной частицы может указывать непустота регистра NEG, который содержит эту частицу. Точно так же на на-
личие вспомогательного глагола указывает непустота регистра AUX, который содержит вспомогательный глагол.
Улавливание закономерностей. Целью лингвистики при создании грамматик естественных языков является улавливание закономерностей в языке. Это значит, что если существует регулярный процесс, который работает в ряде контекстов, грамматика должна описать этот процесс единым механизмом или правилом, а не многими независимыми копиями одного и того же процесса для разных контекстов, в которых он может проявиться. Простым примером этого принципа является представление предложной группы как составляющей предложения, поскольку конструкция, состоящая из предлога, за которым следует именная группа, появляется часто в английских предложениях в самых разных окружениях. Поэтому модель, в которой предложные группы не будут рассматриваться как составляющие, упустит закономерное явление. Этот принцип есть разновидность принципа экономии, который говорит, что наилучшая грамматика — это та, в которой язык характеризуется описанием с наименьшим числом символов. Грамматика, в которой будут независимо существовать копии одной и той же информации, затратит лишние символы при описании языка, и та модель, которая объединит эти многочисленные копии в одну, даст лучшую грамматику, так как истратит меньше символов. Поэтому принцип экономии ведет к отдаче предпочтения грамматикам, которые охватывают закономерности.
Сетевая модель с добавлением произвольных условий при дугах и использованием регистров, содержащих пометки и частичные конструкции, дает средства для опознания и улавливания закономерностей. Всякий раз, когда в грамматике оказываются два или более подграфов любой размерности, которые являются по существу копиями друг друга, это свидетельствует об упущенной закономерности. Это значит, что имеются две по существу идентичные части в грамматике, которые отличаются только тем, что управляющая часть машины помнит некоторые сведения за счет различия состояний, но, за исключением этого, работа этих двух частей графа идентична. Чтобы охватить эту закономерность, достаточно явно запомнить различающие данные в регистре (например, пометкой) и оставить только один экземпляр подграфа.
Эффективность работы. В дополнение к выигрышу, который получается благодаря объединению общих частей разных правил, РСП-модель дает ряд других преимуществ в отношении эффективности работы. Одно из них — это возможность отложить принятие решения, используя переработку сети. Во мно-
гих грамматиках естественных языков очень неэффективна процедура, при помощи которой грамматика пытается угадать некоторые основные свойства конструкции очень рано в процессе анализа, например пытается угадать, является ли предложение активным или пассивным, прежде, чем начался анализ предложения. Из-за этого в анализе прослеживаются несколько альтернатив, пока не дойдут до того места в предложении, где имеется достаточно информации, чтобы отбросить ошибочный вариант. Гораздо привлекательнее подход, при котором можно отложить решение, пока не дойдем до места, где есть необходимая информация для принятия решения. РСП-модель дает эту возможность.
Используя стандартные методы оптимизации конечных автоматов (Вудс [32]), можно «оптимизировать» сеть переходов, сделав ее детерминированной во всем, кроме магазинных операций (где недетерминизм может быть уменьшен, но не исключен). Это значит, что, если несколько дуг с одним и тем же символом выходят из одного состояния, может быть построена модифицированная сеть, в которой из любого состояния выходит не более одной дуги с данным символом. Это дает повышение эффективности работы благодаря сокращению числа «активных» конфигураций, которые надо проследить в процессе работы. В детерминированной сети варианты анализа, которые выглядят одинаково, объединены до момента, когда они -перестают быть идентичными; т. е. решение о том, на каком пути мы находимся, откладывается до момента, когда два пути расходятся, причем в этом пункте символ на входе обычно определяет, какой путь является правильным. РСП, возможно, не допускают полностью автоматическую оптимизацию, которую допускают нерасширенные сети, но и к ним можно применить общий метод сокращения числа активных конфигураций путем уменьшения недетер- минизма сети, тем самым откладывая решение о выборе варианта до того места входной цепочки, где они действительно различаются. Хранение фрагментов анализа в регистрах, пока их функция не будет определена, позволяет подождать момента принятия такого решения прежде, чем строить синтаксическое представление, которое может зависеть от того, какое решение принято. Эти возможности позволяют отложить принятие решения даже тогда, когда строится глубинная структура того типа, какие даются трансформационной грамматикой.
Необходимость прослеживать несколько активных конфигураций в процесс анализа есть следствие потенциальной неоднозначности естественного языка. Источник неоднозначности в сети лежит в рекурсивности ее работы, так как без рекурсии сеть была бы конечным автоматом, и ее можно было бы сделать полностью детерминированной. Мы показали в другой статье
[32], что можно убрать многие рекурсии из сети переходов (в действительности можно исключить все рекурсии, кроме тех, которые получаются от самовставляющихся символов), и тем самым сократить еще больше число активных конфигураций, которые надо прослеживать. В РСП-модели можно, используя условия при дугах, определить однозначно, когда нужно перейти на более глубокий уровень' рекурсии и оставить в качестве источника неоднозначности и причины множественности активных конфигураций только операцию подъема к более высокому уровню. Использование соответствующих условий (включая семантические) при POP-дугах сети дает возможность еще больше сократить здесь неоднозначность.
Одним из наиболее интересных свойств использования регистров в РСП является возможность принимать временные гипотетические решения о структуре предложения и затем менять их при дальнейшем рассмотрении предложения, не совершая при этом возврата. Например, когда тот, кто анализирует предложение, в месте, где он ожидает глагол, наталкивается на глагол “be”, он может временно счесть его основным глаголом предложения, поместив его в регистр основного глагола. Если он затем встретит второй глагол, указывающий, что “be” был не основным, а вспомогательным глаголом, глагол “be” может быть перемещен из регистра основного глагола в регистр вспомогательного, а новый основной глагол встанет на его прежнее место. Эта методика, как и другие, ведет к сокращению числа активных конфигураций, которые должны быть прослежены в процессе анализа. В разд. 8 мы даем пример, где многократно демонстрируется методика принятия гипотетических решений, которые потом заменяются другими.
Легкость экспериментирования. Может быть наиболее важным преимуществом РСП-модели является то, что она удобна для экспериментальных лингвистических работ. Открытое множество базисных операций, которые могут быть использованы при дугах, дает возможность сформировать фундаментальное множество «естественных» операций для анализа естественных языков на основе опыта, получаемого при написании грамматик. Мощная функция BUILDQ была найдена таким путем и оказалась чрезвычайно полезной на практике. В разд. 8 есть другие примеры формирования специальных «естественных» операций, в которых встретилась необходимость: использование «накопителя» (hold list) и «виртуальных» переходов.
Другая область, где экспериментирование облегчается благодаря использованию РСП-модели, — это исследование разных типов представлений структур. Явно заданные операции построения структур при дугах сети позволяют экспериментиро-
вать с различными синтаксическими представлениями, такими, какие дают грамматики зависимостей, тагмемные формулы (tagmemic formula) или грамматика падежей Филмора [11]. По- видимому, с помощью действий по построению структур при дугах можно даже получить некоторые виды семантических представлений.
Наконец, можно использовать условия при дугах для экспериментов с разного рода семантическими условиями, позволяющими • направить анализ и сократить число «бессмысленных» синтаксических структур. В рамках РСП можно начинать пользоваться многими внесинтаксическими сведениями, которыми, видимо, пользуется человек в процессе анализа. Многие полезные идеи в этой области остались неопробованными из-за отсутствия подходящего формализма.
ВТОРОЙ ПРИМЕР
В этом разделе мы приведем пример, иллюстрирующий некоторые из преимуществ РСП, которые мы уже обсуждали, — в особенности возможность принимать гипотетические решения, которые меняются* при дальнейшем анализе. Рис. 4 дает фрагмент сети переходов, который описывает поведение вспомогательных глаголов “be” и “have”, указывающих на пассивность конструкции или перфектность. Мы рассмотрим анализ, который дает этот образец сети для предложения “John was believed to have, been shot” — предложение с довольно сложной синтаксической структурой. При этом мы увидим, что РСП ясно характеризует изменение предположений в ходе анализа и что это делается без необходимости возвратов или рассмотрения различных альтернатив.
Рис. 4 разделен на три части: (а) — графическое представление сети с нумерованными дугами, (Ь) — описание условий и форм, сопоставленных заключительным состояниям, (с) — список условий и действий, сопоставленных дугам сети. На рис. 4 (a) S, NP и VP — нетерминальные символы, AUX и V— названия лексических категорий; по дугам, помеченным ТО или BY, можно пройти, только если на входе появилось слово “to” или “by” соответственно. Пунктирная дуга с символом NP есть особая «виртуальная» дуга, по которой можно пройти, если ранее командой HOLD в специальный «накопитель» была помещена группа существительного. После ее использования при проходе по виртуальной дуге эта группа из накопителя удаляется. Накопитель — это звено экспериментальной анализирующей системы, дающее естественное средство для обработки составляющих, которые найдены не на месте и должны быть поставлены на их обычное место прежде, чем анализ будет закон-
Рис. 4 (а). Фрагмент сети — графическое представление.
Q3: Условие: (INTRANS (GETR V))
Форма: (BUILDQ (S + + (TNS +) (VP (V +))) TYPE SUBJ TNS V) Q4 и Q6: Условие: Т
Форма: (BUILDQ (S + + (TNS+) (VP (V+)+)) TYPE SUBJ TNS V OBJ)
Puc. 4 (b). Фрагмент сети — условия и формы для заключительных состояний.
Условия
Действия
1. т
(SETR V *)
(SETR TNS (GETF TENSE))
(SETR TYPE (QUOTE Q))
2. Т
(SETR SUBJ*).
(SETR TYPE (QUOTE DOL))
Т
Т
(SETR SUBJ*)
(SETR V»)
(SETR TNS (GETF TENSE))
5. (AND (GETF PPRT) (EQ (GETR V) (QUOTE BE)))
(HOLD (GETR SUBJ))
(SETR SUBJ (BUILDQ (NP (PRO SOMEONE)))
(SETR AGFLAG T)
(SETR V*)
(AND (GETF PPRT) (EQ (GETR V) (QUOTE HAVE)))
7; (TRANS (GETR V))
(TRANS (GETR V))
(GETR AGFLAG)
(S-TRANS (GETR V))
(SETR TNS (APPEND (GETR TNS) (QUOTE PERFECT)))
(SETR V*)
(SETR OBJ *)
(SETR OBJ*)
(SETR AGFLAG NIL)
(SENDR SUBJ (GETR OBJ))
(SENDR TNS (GETR TNS))
(SENDR TYPE (QUOTE DOL))
T
(GETR AGFLAG)
T
(GETF UNTENSED)
(SETR OBJ*)
(SETR AGFLAG NIL) (SETR SUBJ*) (SETR V *)
Рис. 4(c). Фрагмент сети — условия и действия при дугах.
чен. При элементах, помещаемых в накопитель, помечается уровень, на котором они заносятся в накопитель, и алгоритм не может подняться с этого уровня, пока элемент не будет «использован» виртуальным переходом на этом уровне или на некотором более глубоком уровне.
Заключительные состояния отмечены на рис. 4 (а) косой чертой с индексом 1, обозначение, которое является обычным в конечных автоматах. Необходимые условия для подъема из заключительного состояния и выражение, которое определяет выдаваемое при этом значение, указаны на рис. 4 (Ь). Скобочная запись дерева такая же, как в разд. 3.2. Условия TRANS и 1NTRANS проверяют, является ли глагол переходным (транзитивным) или непереходным соответственно, и условие S-TRANS проверяет наличие таких глаголов, как “believe” (верить) и “want” (хотеть), каждый из которых может иметь «объектом» вставленное номинализованное предложение. Признаки PPRT и UNTENSED соответственно указывают на форму причастия прошедшего времени (past participle) и на глагольные формы, не выражающие времени. .
Мы начинаем анализ предложения “John was believed to have been shot” с состояния S, рассматривая первое слово предложения John. Так как “John” есть имя собственное, то поиск именной группы со спуском с дуги 2 окончится успешно, и будет выполнено действие, приписанное этой дуге, тем самым именная группа (NP (NPR JOHN)) будет записана в регистр SUBJ и будет отмечено, что предложение является повествовательным, тем, что в регистр ТУРЕ будет занесено DCL. Второе слово предложения “was” разрешает переход по дуге 4, при этом в регистр V записывается неопределенная форма глагола “be”, а время предложения записывается в регистр TNS (tense). Содержимое регистров в этот момент соответствует гипотетическому решению о том, что глагол “be” есть основной глагол предложения, и если бы дальше следовала именная группа или прилагательное (не показанное на схеме сети в примере), то это решение осталось бы неизменным.
В состоянии Q3 ввод причастия прошедшего времени “believed” указывает, что предложение имеет пассивную форму и что глагол “be” есть лишь вспомогательный глагол, означающий пассив. В данном случае будет пройдена дуга 5, поскольку входное слово есть причастие прошедшего времени и текущее значение регистра глагола есть глагол “be”. Это приводит к пересмотру гипотетического решения, причем прежнее гипотетическое подлежащее заносится в специальный накопитель, создается новое гипотетическое подлежащее (неопределенное) и записывается пометка AGFLAG, которая указывает, что субъектом может быть стоящая дальше агентивная именная группа, вво-
димая предлогом “be”. Основной глагол теперь изменяется с “be” на “believe”, и сеть возвращается в состояние Q3 для рассмотрения слова “to”. Содержимое регистров в этот момент следующее:
SUBJ:(NP) PRO SOMEONE))
TYPE:DCL
V:BELIEVE
TNS:PAST
AGFLAG: T
и в накопителе содержится именная группа (NP (NPR JOHN)).
Ни одна из дуг, выходящих из состояния Q3, не соответствует входному слову “to”. Однако наличие именной группы “John” в накопителе позволяет виртуальный переход по дуге 8 точно так же, как если бы эта именная группа была обнаружена в данном месте предложения. (Перехода разрешен, поскольку глагол “believe” является транзитивным.) Результатом является гипотетическое рассмотрение именной группы (NP (NPRJOHN)) как объекта 1лагола “believe”. Если бы это был конец предложения и мы закончили бы разбор в заключительном состоянии Q4, то мы получили бы правильный анализ “Someone believed John”.
Ввод слова “to” в состоянии Q4 говорит нам, что объектом глагола “believe” является не просто именная группа “John”, но номинализованное предложение, для которого “John” является предположительным субъектом. Результатом прохода дуг 10 и 11 является засылка необходимой информации для вычисления на более глубоком уровне, которое выявит полностью вставное предложение и выдаст результат в качестве объекта глагола “believe”. Дуга 10 подготовляет засылку именной группы (NP (NPR JOHN)) как субъекта вставного предложения, времени PAST (прошедшее) и типа DCL (повествовательное). С дуги 11 происходит затем спуск к состоянию VP к рассмотрению слова “have”.
В этот момент мы ведем обработку вставного предложения со следующим содержимым регистров:
SUBJ: (NP(NPRJOHN))
TYPE: DCL.
TNS: PAST
По дуге 14 возможен переход, если текущее входное слово есть глагол в форме, не выражающей времени и наклонения, так как, например, нельзя сказать “John was believed to has been shot”. Поскольку “have” именно такая форма, переход возмо-
жен, и основным глаголом вставного предложения предположительно считается “have”, что годилось бы для предложения “John was believed to have money”.
Причастие прошедшего времени “been”, следующее за “have”, вызывает переход 6, выявляющий тот факт, что вставное предложение стоит в перфекте (результат наличия вспомогательного глагола “have”), и предлагающий новый гипотетический основной глагол “be”, который годился бы для предложения “John was believed to have been a druggist”. Содержимое регистров для вычисления глубокого уровня в этот момент следующее:
SUBJ: (NP(NPR JOHN))
TYPE: DCL
TNS: PAST PERFECT
V:BE
Снова в состоянии Q3 ввод причастия прошедшего времени shot при предположительном глаголе “be” в регистре глагола указывает, что предложение стоит в пассиве и переход 5 помещает именную группу (NP (NPRJOHN)) в накопитель и формирует неопределенное подлежащее (NP (PRO SOMEONE)). Хотя мы теперь пришли к концу предложения, но и наличие именной группы в накопителе, и тот факт, что глагол shoot является переходным, препятствуют окончанию работы алгоритма. Вместо этого происходит виртуальный переход по дуге 8, приписывающий именную, группу “John” в качестве объекта глаголу “shoot”. Содержимое регистров после вычисления глубокого уровня теперь следующее:
SUBJ:(NP (PRO SOMEONE))
TYPE:DCL
TNS:PAST PERFECT
V:SHOOT
AGFLAG: T
OBJ:(NP (NPRJOHN))
В этот момент мы находимся в конце предложения и в заключительном состоянии Q4 с пустым накопителем, так что от вычисления глубокого уровня можно вернуть управление на более высокий уровень вычисления, с которого мы спустились. Выдаваемое значение, как это определяет форма, приписанная состоянию Q4, есть
(S DCL (NP (PRO SOMEONE)) (TNS РА ST PERFECT) (VP (VSHOOT) (NP (NPR JOHN))))
что соответствует дереву:что соответствует дереву:
что соответствует дереву:
что соответствует дереву:
Вычисление более высокого уровня продолжается действием при дуге 11, засылающим в регистр OBJ результат вычисления глубокого уровня. Так как высокий уровень работы также привел к заключительному состоянию Q6, предложение принимается и приписываемая ему структура (как это определяет форма, соответствующая состоянию Q6) есть
(S DCL (NP (PRO SOMEONE)) (TNS PAST) (VP (V BELIEVE)(S DCL (NP (PRO SOMEONE)) (TNS PAST PERFECT) (VP (V
SHOOT) (NP (NPR JOHN))))))
которая в виде дерева представляется следующим образом:
DCL NPDCL NPTNSTNSVP.VP.PROPROPASTPASTVVSSSOMEONESOMEONEBELIEVEBELIEVEDCL NPDCL NPTNSTNSVPVPPRO PAST PERFECTPRO PAST PERFECTVVNPNP
DCL NP
DCL NP
TNS
TNS
VP.
VP.
PRO
PRO
PAST
PAST
V
V
S
S
SOMEONE
SOMEONE
BELIEVE
BELIEVE
DCL NP
DCL NP
TNS
TNS
VP
VP
PRO PAST PERFECT
PRO PAST PERFECT
V
V
NP
NP
SOMEONESHOOT NPR
JOHN
Эта структура может соответствовать перифразе: “Someone believed that someone had shot John”. Если бы за предложением следовала бы группа “by Harry”, то были бы возможны две интерпретации в зависимости от того, была ли эта дополнительная группа воспринята как допустимая при обработке на глубоком или на верхнем уровне. В каждом случае одно из неопределенных подлежащих SOMEONE было бы заменено определенным подлежащим “Harry”. Структура, получающаяся в одном случае, представляется предложением: “Someone believed that Harry had shot John”, тогда как в другом случае имеем: “Harry believed that someone had shot John”»
АНАЛИЗ ПРИ ПОМОЩИ СЕТЕВЫХГРАММАТИК
Поскольку грамматика с нерасширенной сетью переходов есть в действительности не более чем другая организация элементов автомата с магазинной памятью, ряд существующих алгоритмов анализа, сделанных для КС-грамматик, применимы более или менее непосредственно к сетевой модели. Две основные стратегии анализа «сверху-вниз» и «снизу-вверх» имеют аналоги для рекурсивных сетей переходов, и противопоставляемые стратегии обработки неоднозначных предложений — прослеживание всех вариантов анализов «параллельно» или прослеживание вариантов анализа по одному (с запоминанием информации в местах выбора пути) —обе применимы для этого типа модели. В частное!и, один из наиболее мощных и эффективных анализирующих алгоритмов для КС-грамматик — распознающий алгоритм Эрли ([9, 10]) —может быть приспособлен с минимальным изменением к использованию для сетевых грамматик, при этом может возрасти эффективность его работы.
Алгоритм Эрли, тщательно прослеживая все варианты параллельно, получает представление всех возможных вариантов анализа цепочки по отношению к КС-грамматике за время, которое может быть ограничено величиной Кп\ где п — длина цепочки, а К—константа, зависящая только от грамматики и не зависящая от входной цепочки. Более того, для некоторых подклассов КС-грамматик можно показать, что граница требуемого времени может быть снижена до п2 для линейных грамматик и некоторых других и до п для LR(k) -грамматик со считыванием вперед к символов (Кнут [17]) и некоторых других. Многие из этих результатов были получены с другими алгоритмами, использующими специальные свойства различных классов грамматик [15, 16, 33], но алгоритм Эрли — единственный алгоритм, который для любой КС-грамматики (без ограничений на форму, отсутствие левой рекурсии и т. п.) работает со временем, ограниченным и3. Кроме того, он автоматически достигает более низких границ для специальных классов грамматик, не нуждаясь в указании о том, что грамматика принадлежит специальной разновидности (т. е. он не использует специальных приемов для этих случаев).
Мы дали в другой работе (Вудс [32]) модифицированную версию алгоритма Эрли, которая может быть использована для анализа предложений по отношению к грамматике (нерасширенной) сети переходов с той же границей для времени, и показали там, что можно применять к грамматике сети переходов ряд механических «оптимизирующих» приемов, которые уменьшат коэффициент пропорциональности в оценке времени.
Более сложна проблема анализа для расширенных сетей переходов с использованием алгоритма Эрли из-за занесения информации в регистры и использования явно заданных действий по построению структур. Возможность переходов, обусловленных содержимым регистров, затрудняет установление того факта, что конфигурации «эквивалентны» и могут быть объединены для дальнейшей обработки, а использование регистров и явно заданных действий по построению структур усложняет задачу выбора подходящей формы представления для объединенных конфигураций. Можно довольно просто расширить алгоритм Эрли так, чтобы преодолеть эти трудности, но так как граница времени п? существенно зависит от объединения эквивалентных конфигураций и фиксированной границы времени для осуществления каждого перехода из (объединенного) состояния, не ясно, какая оценка времени получится для такого алгоритма.
Если мы различаем регистры «пометок», которые могут содержать только пометки из фиксированного конечного набора и регистры «произвольного содержимого», которые могут содержать любую структуру, и если мы ограничиваем условия и действия при дугах так, что (1) условия могут касаться только регистров пометок и символов входной цепочки (например, со считыванием вперед), (2) сами условия и действия требуют ограниченного времени, (3) есть только один регистр, к которому можно добавлять в конец и заполнять при помощи функции BUILDQ, но в который нельзя «заглядывать» внутрь, тогда мы можем построить разновидность распознающего алгоритма Эрли, который будет работать в пределах границы п? для времени (или границ п? и п в специальных случаях). Однако если мы заметно ослабим эти ограничения, то возрастание границы времени неизбежно, например условия или действия могут сами требовать больше чем п? шагов.
О последовательном анализе. Во многих приложениях анализа естественных языков не является необходимым (или хотя бы желательным) получение представления всех возможных вариантов анализа входного предложения. В приложениях, где естественный язык является средством общения человека с машиной, важнее выбрать анализ, «наиболее правдоподобный» в данном контексте, и сделать это как можно скорее. Несомненно, будут случаи, когда имеется несколько «одинаково правдоподобных» анализов или где «наиболее правдоподобный» анализ оказывается «неправильным» (т. е. не тем, который имел в виду говорящий); поэтому все-таки нужно иметь недетерминированный алгоритм и нужно иметь способ для нахождения любого конкретного варианта анализа, если, это потребуется^
Однако вовсе не обязателен параллельный подход, который растрачивает время, строя все варианты анализа сразу. В таких приложениях последовательный подход (снабженный механизмом для выбора варианта анализа, который надо рассматривать первым) подходит больше, чем параллельный подход, так как в большинстве случаев он позволит избежать прослеживания других альтернатив. Можно (при желании) сохранять запись результата анализа правильно построенных подцепочек, найденных предыдущими альтернативными вариантами (чтобы исключить повторный анализ тех же самых подцепочек), но выигрыш во времени анализа при таком подходе не всегда оправдывает расход памяти, требующейся для запоминания всех результатов анализа частичных подцепочек.
Успех последовательного анализа, описанного выше, зависит, конечно, от наличия средств для выбора семантически «наиболее правдоподобного» варианта, который нужно проследить первым. РСП-грамматика дает несколько таких средств. Во-первых, упорядочивая дуги, которые выходят из некоторого состояния сети, можно тем самым соответственно упорядочить получающиеся анализы. Составитель грамматики может так подобрать этот порядок с целью максимизировать «априорное правдоподобие» (зависящее только от структуры предложения, как она получается при данной грамматике, и ни от чего больше), что анализ, выбранный первым, будет правильным. Далее, повторяя некоторые дуги с разными условиями, можно сделать этот порядок зависящим от специфических особенностей анализируемого предложения, в частности можно поставить его в зависимость от семантических свойств слов, входящих в предложение. Два дополнительных средства для выбора «наиболее правдоподобного» анализа были добавлены к модели в реализованной экспериментальной анализирующей системе: специальный регистр «веса», содержащий оценку «правдоподобности» текущего анализа (который может быть использован для откладывания просмотра неправдоподобно выглядящих путей и рассмотрения в первую очередь более правдоподобных), и специальные приемы для подчинения обстоятельств, которые используют семантическую информацию с целью определения «наиболее правдоподобного» управляющего для обстоятельств в предложении. • "
; 10. РЕАЛИЗАЦИЯ
Экспериментальная анализирущая система, основанная на изложенных здесь идеях, была реализована на BBN LISP с помощью системы разделения времени SDS 940 в Гарвардском университете и в компании «Болт, Беранек и Ньюмен», и ис-
пользуется для многочисленных экспериментов по построению грамматик и исследованию стратегий анализа для естественных языков. Целью этой реализации было получение достаточно гибких средств для экспериментирования и усовершенствования системы, и по этой причине был использован модульный принцип организации, который сам допускает развитие и расширение без больших изменений в общей структуре системы. Система уже прошла несколько циклов эволюции, при этом у нее появилось большое число новых свойств и еще больше ожидается при продолжении исследований.
Реализованная система содержит общие.средства для семантической интерпретации (описанные у Вудса [30, 31]), и основным мотивом для реализации было желание исследовать взаимодействие синтаксического и семантического аспектов в процессе «понимания» предложения. Особое значение придавалось использованию семантической информации для управления анализом, минимизации числа тупиковых путей, которые приходится просматривать, и упорядочиванию вариантов анализа предложения в отношении некоторой меры «правдоподобия». Сейчас экспериментальная система включает специальные приемы для подчинения обстоятельств, использующие семантическую информацию, несколько подходов к проблеме сочинительных конструкций (в том числе сочиненных фрагментов предложения), и средств для лексического и морфологического анализа. При помощи этой системы были построены и опробованы несколько различных грамматик и были исследованы и исследуются в настоящее время большое число английских конструкций и стратегий анализа. Готовится отчет о деталях этой реализации и проведенных экспериментах.
' СПИСОК ЛИТЕРАТУРЫ
Bobrow D. G., Fraser J. В., An augmented state transition network analysis procedure, Proc. Internat. Joint Conf, on Artificial Intelligence, Washington, D. C., 1969, pp. 557—567.
Bobrow D. G., Murphy D., Teitelman W., BBN Lisp System. Bolt, Beranek and Newman Inc., Cambridge, Mass., 1968.
Book R., Even S., Greibach S., Ott G., Ambiguity in graphs and expressions, Mimeo. rep., Aiken Computat. Lab., Harvard U., Cambridge, Mass., 1969.
Cheatham T. E., Sattley K., Syntax-directed compiling, Proc. AFIPS 1964 Spring Joint Comput. Conf.,* v. 25, Spartan Books, New York, pp. 31—57.
Chomsky N., Formal properties of grammars, in Handbook of Mathematical Psycology, v. 2, R. D. Luce, R. R. Bush and E. Galanter (Eds.), Wiley, New York, 1963. (Русский перевод: Хомский H. Формальные свойства грамматик. Кибернетический сборник, новая серия, вып. 2, «Мир», М., стр. 121—230.)
Chomsky N. A transformational approach to syntax, in The Structure of Language, J. A. Fodor and J. J. Katz (Eds.), Prentice-Hall, Englewood - Cliffs, N. J., 1964..'-
Chomsky N., Aspects of Theory of Syntax, MIT Press, Cambridge, Mass., 1965.
Conway M. E., Design of a separable transition-diagram compiler, Comm. ACM 6, 7 (JuIyT963), 396—408.
Earley J., An efficient context-free parsing algorithm, Ph. D. th. Dep. Computer Sci., Carnegie-Mellon U., Pittsburgh, Pa., 1968.
Earley J., An efficient context-free parsing algorithm, Comm. ACM 13, 2 (Feb. 1970), 94—102. (Русский перевод: Эрли Дж., Эффективный алгоритм анализа контекстно-свободных языков, в сб. «Языки и автоматы», «Мир», М., 1975, стр. 47—70.)
Fillmore С. J., The case for case, in Universals in Linguistic Theory, E. Bach and R. Harms (Eds.), Holt, Rinehart and Winston, New York, 1968.
Ginsburg S., The Mathematical Theory of Context-Free Languages, McGraw-Hill, New York, 1966. (Русский перевод: Гинзбург С., Математическая теория контекстно-свободных языков, «Мир», М., 1970.)
Greibach S. A., A simple proof of the standard-form theorem for context- free grammars, in Mathematical linguistics and automatic translation, Rep. NSF-18, Comput. Lab., Harvard U., Cambridge, Mass., 1967.
Herringer J., Weiler M., Hurd E., The immediate constituent analyzer, in Rep. NSF-17, Aiken Comput. Lab., Harward U., Cambridge, Mass., 1966.
Kasami T., An efficient recognition and syntax-analysis algorithm for context-free languages, Sci. Rep. AFCRL-65-558, Air Force Cambridge Res. Lab., Bedford, Mass., 1965.
Kasami T., A note on computing time for recognition of languages generated by linear grammars, Inform. Contr., 10 (1964), 209—214.
Knuth D. E., On the translation of languages from left to right, Inf. Contr., 8 (1965), 607—639. (Русский перевод: Кнут Д., О переводе (трансляции) языков слева направо, в сб. «Языки и автоматы», «Мир», М., 1975, стр. 9—42.)"
Kuno S., A system for transformational analysis, in Rep. NSF-15, Comput. Lab. Harvard U., Cambridge, Mass., 1965.
Kuno S., Oettinger A. G., Multiple path syntactic analyzer, in Information Processing 1962, North-Holland Publishing Co., Amsterdam, 1963. (Русский перевод: Куно С. и Эттингер А., Многовариантный синтаксический анализатор, в сб. «Автоматический перевод», «Прогресс», М., 1971, стр. 102— 120.)
McCarthy J., et al., LISP 1.5 programmer’s manual, MIT Comput. center, Cambridge Mass., 1962.
McCawley J. D., Meaning and the description of languages, in Kotoba No Ucho, Tec. Co. Ltd., Tokyo, 1968.
McNaughton R. F., Yamada H., Regular expressions and state graphs for automata, IRE Trans. EC-9 (Mar. I960), 39—47.
Matthews G. H., Analysis by synthesis of natural languages, Proc. 1961 Internat. Conf, on Machine Translation and Applied Language Analysis, Her Majesty’s Stationary Office, London, 1962.
MITRE. English preprocessor manual, Rep. SR-132, The Mitre Corp., Bedford, Mass., 1964.
Ott G., Feinstein N. H., Design of sequential machines from their regular expressions, J. ACM 8, 4 (Oct. 1961), 585—600.
Petrick S. R., A recognition procedure for transformational grammars, Ph. D. th., Dep. Modern Languages, MIT, Cambridge, Mass., 1965.
Postal P. M., Limitations of phrase structure grammars, in The Structure of Language, J. A. Fodor and J. J. Katz (Eds.), Prentice-Hall, Englewood Cliffs, N. J., 1964.
Schwarcz R. М., Steps toward a model of linguistic performance: A preliminary sketch, Mechanical Translation, 10 (1967), 37—52.
Thorne J., Bratley P., Dewar H., The syntactic analysis of English by machine, in Machine Intelligence 3, D. Michie (Ed.), American Elsevier, New York, 1968.
Woods W. A., Semantics for a question-answering system, Ph. D. th., Rep. NSF-19, Aiken Comput. Lab., Harvard U., Cambridge, Mass., 1967.
Woods W. A., Procedural semantics for a question-answering machine, Proc. AFI PS 1968 Fall Joint. Comput. Conf., 33, Pt. 1, MD I Publications, Wayne, Pa., pp. 457—471.
Woods W. A., Augmented transition networks for natural language analysis, Rep. CS-1, Comput. Lab., Harvard U., Cambridge, Mass., 1969.
Younger D. H., Context free language processing in time n3, G. E. Res. and Devel. Center, Schenectady, N. Y., 1966
Вычислительные машины и мышление
Искусственный интеллекткак психология1)
М. Б. Клауз
Слово «психология» как в обыденной речи, так и в «интеллектуальном» научном контексте имеет сугубо «человеческий» смысл, резко отличаясь от коннотаций термина «искусственный интеллект», которые должны обязательно включать вычислительные машины, роботов и разного рода системы «механических» устройств. Тем не менее многие специалисты, работающие в этой области, начали рассматривать искусственный интеллект как новый подход к сугубо психологическим, проблемам и настаивают на том, что он должен составлять важную, а может быть, и основную часть любого действительно научного исследования в области психологии.
Каким же образом методология, в которой машина играет основную роль, может способствовать изучению явлений, присущих исключительно живым биологическим системам? Для того чтобы ответить на этот вопрос, следует в первую очередь определить «заботы» искусственного интеллекта. Это можно сделать, рассмотрев несколько разновидностей машинных программ, в частности шахматные программы, программы, отвечающие на вопросы на английском языке, программы для доказательства теорем, программы для решения головоломок и.программы, способные воспринимать «трехмерные ситуации». Нет необходимости (и места) обсуждать все упомянутые виды программ, поскольку интересующие нас качества являются общими для них всех. В связи с этим мы сосредоточимся на одном функциональном типе, а именно восприятии трехмерных ситуаций или, как его часто называют, зрении роботов.
Представьте себе, что телевизионная камера направлена на стол, на котором рассыпаны детские кубики, и мы можем, преобразовав выходной сигнал камеры в цифровую форму, ввести его в вычислительную машину. Существует несколько программ, которые, используя в качестве входной информации телевизионный сигнал, пытаются решать такие задачи, как. подсчет числа кубиков, определение их формы (т. е. кубы или треугольные призмы) или взаимного расположения (А лежит на В, С распо-
' *) Clowes М. В., Artificial Intelligence as Psychology, European A1SB Bulletin^ № 1, 1972. . .
ложен перед А). Эти программы олицетворяют нынешний этап эволюции систем зрительного восприятия, охватывающий более десяти лет напряженных усилий их создателей. Первые варианты, ориентированные в основном на распознавание символов алфавита, а не на идентификацию форм твердых тел, имели программную память, хранящую в более или менее необработанном виде «прошлый опыт» этих систем — телевизионные изображения, названия которых («А», «В» и т. д.) сообщались системе. Распознавание (наименование) предъявленного изображения осуществлялось посредством подбора соответствующего изображения из памяти системы. Такой подход имеет миллион недостатков, и для их преодоления разрабатывались все более сложные формы организации прошлого опыта. Важной модификацией, в частности, было введение структурного описания, обеспечившее оценку организации изображения на основе «содержательных» принципов, скажем, разделение изображения на собственно фигуру и фон, разбиение фигуры на группы символов, отдельные символы, штрихи и т. д.
Подобные описания имеют очень много общего со структурными описаниями предложений естественного языка, предложенными Хомским и его сотрудниками, за исключением одного очень существенного отличия. По Хомскому, изучение форм, которые подобные описания принимают, может быть отделено от способа постановки их в соответствие собственно предложениям. Дело в том, что он занят не столько «употреблением» языка, сколько «языковой компетенцией». Необходимость создания программы, способной реагировать на внешние воздействия, заставляет разработчика определить процесс, посредством которого соответствующие структурные описание реализуются. Требуя, чтобы реакция системы была осмысленной, мы сталкиваемся с семантическими проблемами, которыми лингвисты, вообще говоря, пренебрегают.
Этот процесс, имеющий решающее значение для понимания нами феномена восприятия, «высвечивается» затруднениями, возникающими при разработке программ, способных адекватно «реагировать» на вышеупомянутые трехмерные ситуации. Допустим, что в программу заложены модели всех многогранников, которые потенциально могут быть предъявлены ей для опознания; структурные описания этих моделей представляют собой множества связанных вершин, координаты которых, заданные в некоторой трехмерной системе, известны. Для того чтобы распознать на входном телевизионном изображении аналоги этих моделей, требуется всего лишь отыскать на изображении точки, соответствующие вершинам многогранника, и посредством алгебраических преобразований, воспроизводящих обычные закономерности начертательной геометрии, совместить с ни-
ми соответствующую трехмерную модель. Естественно, при этом, по всей вероятности, требуется испытать массу моделей всевозможных размеров и расположенных всеми мыслимыми способами (т. е. привязанных ко всем потенциально возможным системам координат), однако можно предложить изощренные методы для сокращения объема подобного поиска. Еще несколько лет назад программа, основанная на таких принципах, успешно распознавала на фотоизображениях довольно значительное количество сложных сцен, образованных различными комбинациями детских кубиков. Последующие попытки перейти на основе этих принципов к «реальным» сценам, т. е. к условиям, когда положение камеры и освещение не контролируются столь тщательно, оказались в общем безуспешными по причинам, в высшей степени поучительным.
Для того чтобы иметь возможность применить проективные преобразования, обеспечивающие переход от трехмерной к двумерной системе координат, следует в первую очередь найти на изображении точки, соответствующие вершинам многогранника. Это всегда очень трудная задача, за исключением тех случаев, когда освещение очень хорошее, т. е. такое, которое может обеспечить лишь квалифицированный фотограф. В реальных условиях не менее сложно обнаружить на фотографии все. линии, соответствующие ребрам, и части изображения, соответствующие граням многогранника.
Изучение этой фотографии свидетельствует о том, что мы в состоянии различить ребра и отдельные грани фигуры, несмотря на практическое отсутствие на изображении локальных признаков существования согветствующего разделения. Это происходит таким образом, что мы как бы воображаем грани, ребра и вершины, руководствуясь механизмом, который можно было бы определить как трехмерное восприятие мира, существующего вне данного изображёния. Важным компонентом этого механизма восприятия, естественно, является знание законов перспективы, а также роли освещения и, в частности, особенностей образования теней, не говоря уже о предположительных типах объектов, с которыми мы можем столкнуться. Подразумевается и наличие предположений более общего характера, как, например, матовость, цветовая и текстурная однородность, а также и более специфических характеристик—кубы, треугольные призмы, цилиндры и т. п. Разработка программ для восприятия трехмерных объектов в настоящее время полностью определяется идеей, состоящей в задании такого набора ограничений некоему механизму «решения задач», который будет использовать характерные признаки изображения (контрастные границы, равномерно освещенные области) для выдвижения гипотез и проверять их внутреннюю непротиворечивость с помощью этого набора ограничений. Содержательные выводы из этих гипотез следует привязать к участкам изображения, указываемым подобной «геометрически образованной» системой логического вывода, и таким образом обеспечивается распознавание ребер, вершин и граней, ни в коем случае не обнаруживаемых при обычном осмотре.
Неисчислимы последствия принятия такого подхода к реализации процесса восприятия трехмерных объектов. Хотя алгебраически многогранник можно задать, указав значения координат всех его вершин в трехмерной системе, предварительные гипотезы, формируемые на основе существенных признаков изображения, формулируются на совершенно ином языке. Обычно они сводятся к сравнительно приблизительным характеристикам типа «данная контрастная граница представляет собой ребро выпуклой фигуры, соединяющее две видимые грани, одна из которых освещена», «данная контрастная граница является тенью ребра, представленного на изображении контрастной границей», «данная контрастная граница образована тенью, лежащей на плоской поверхности», «данные контрастные границы являются ребрами одной и той же грани» и т. д. Описание, содержащее сведения о перспективе, освещенности и объектах, должно для того, чтобы абсорбировать как такой язык, так и более точные формулировки, выражающие столь тонкие нюансы, как различия между прямоугольниками и квадратами, включать все виды
побочных образований типа «теневых поверхностей» (плоскость, образованная источником света, ребром грани и соответствующей тенью), «поверхностей интерпретации» (плоскость, образованная точкой обзора, контрастной границей и гранью фигуры, которую она представляет). Более того, программа, обрабатывающая всю эту информацию^ использует при этом способы, которые в большей степени отражают собственно систему знаний в данной области, чем это, вероятно, предполагается в какой-либо универсальной системе вывода (системе, выполняющей грамматический разбор), например в некоторых разновидностях лингвистических моделей. Язык программы свидетельствует больше о целях и их следствиях — гипотезах и их значении, чем о жестко расписанных последовательностях операций, которые должны неукоснительно исполняться.
В результате способы, которыми программа «обрабатывает» предъявленную ей сцену, подвержены значительным вариациям, поскольку одна и та же сцена, освещенная по-разному или рассматриваемая со слегка измененной позиции, будет представ-? лена такими телевизионными изображениями, которые будут порождать абсолютно различные исходные гипотезы. Избыточность, имеющаяся в системе (точные и приблизительные описания сведений, закладываемых в нее), приводит к появлению более чем одного путей достижения цели, и большая оперативная память, требующаяся для реализации ведущегося методом проб и ошибок на различных множествах конкурирующих гипотез поиска, поставит систему решения задач в зависимость от других потребностей в памяти, возникающих параллельно. Объем и организация «знаний», сообщаемых программе, существенно влияют на процедуру интерпретации, обеспечивая таким образом потенциальную возможность проявления индивидуальных особенностей в работе программы. Можно предположить, что процесс, называемый обучением, глубоко связан с внесением дополнительных сведений, а в особенности с реорганизацией вышеупомянутого исходного массива «знаний». -
Этот подход заостряет внимание на «творческом» характере процесса, называемого восприятием. «Творчество» возникает в связи с тем обстоятельством, что программа вносит в процесс решения задачи (и обязана делать это для того, чтобы надеяться на успех) сложную и обширную систему знаний, методов и процедур их использования. Было бы, однако, ошибочно предполагать, что в настоящее время существуют программы, которые могут убедительно продемонстрировать наличие таких творг ческих способностей. Самое большее, чем мы располагаем, — недавно созданная программа,, предназначенная для понимания текста на английском языке и использующая сведения о контексте и английской грамматике для выделения «смысла» из
сложных предложений). Существенно, что эта программа написана на языке, ориентированном на процесс решения задач и обладающем как раз теми характеристиками, о которых шла речь выше.
Эта «система, понимающая естественный язык»), как и описанная нами программа зрительного восприятия, характеризует определенный этап в эволюционном процессе разработки программ, потребовавший около десяти лет напряженных усилий. Каждая очередная программа должна была справляться с такими ситуациями и уметь вырабатывать адекватные реакции в тех случаях, которые были недоступны предыдущим вариантам. Неполноценность новой разработки может быть установлена только в процессе экспериментальных исследований ее реализации. Последнее же представляет собой столь сложную задачу, что лишь цифровая вычислительная машина, предназначенная для обработки символьной информации, может справиться с ее реализацией. Этим и определяется смысл методологии искусственного интеллекта: вычислительная машина играет центральную роль, обеспечивая экспериментальное изучение все более сложных и «творчески одаренных» систем интеллекта и восприятия. Объектом такого изучения являются в сущности самые обычные факты: мы нс пытаемся выискивать тончайшие нюансы или хвататься за секундомер, когда кто-то утверждает, что «время летит, как стрела». Именно использование системы знаний позволяет облечь повседневный опыт в чрезвычайно сложную, но все же целостную форму, придавая ему в то же время индивидуальный характер. Программы искусственного интеллекта, которые мы обсуждали начинают демонстрировать как собственно возникновение подобного процесса, так и логическую необходимость в нем.
Традиционная психология, сталкиваясь с индивидуальными особенностями подобных процессов, прибегает к различным способам. Экспериментальная психология для того, чтобы миними-
зировать индивидуальные различия и максимизировать воспроизводимость результатов эксперимента, последовательно уменьшала объем знаний, которые испытуемый должен был бы использовать при решении задачи. Следствием этого явилось постепенное снижение значимости результатов подобных исследований для объяснения закономерностей поведения в обычных условиях. Широкое использование изощренных методов статистической обработки в социальной психологии — пример еще одного способа «преодоления» неотъемлемых специфических особенностей «осмысленного» поведения. Те же, кто не может или не хочет жертвовать индивидуальными особенностями (психиатры, специалисты в области психологии обучения и другие), вынуждены ^удовлетворяться такими объяснениями неврозов, срывов процесса обучения и тому подобных расстройств, которые не допускают строгой проверки и часто являются не более чем произвольной апостериорностью.
Эти далеко идущие обобщения в сущности подвержены многим ограничениям. История психологии указывает много примеров, свидетельствующих о полезности попыток систематического объяснения поведения, определяемого системой знаний индивидуума. классические работы Макса Вертгаймера, посвященные теории мышления, показывают, каким образом восприятие образует основу процесса мышления (еще один слой на готовый портрет процесса, основанного на восприятии) и, в частности, как различные схемы представления способствуют реализации процесса творческого мышления. Его концепция примечательна как объяснением роли графических схем в усвоении алгебраических понятий, так и (аналогично работам Пиаже) привлечением «диагностических» процедур для выявления системы знаний, обеспечивающей основу для формирования поведения. Полный отказ от количественных оценок, например, таких, как процент детей, выполнивших задание согласно определенному критерию, время, затраченное на получение решения, и т. п., который для столь многих исследователей эквивалентен потере научной строгости, является непосредственным результатом необходимости справиться со структурной сложностью поведения.
Заботы, связанные с проблемами представления, аналогичными изучавшимся Вертгаймером, в течение длительного времени играли первостепенную роль в программах искусственного интеллекта, предназначенных для решения головоломок1). Основная трудность здесь заключается в том, каким образом придать программам достаточно универсальную способность переводить задачу, сформулированную алгебраически или вербаль-
9 См., например, работу Amarel S., On representation of problems of reasoning about actions, Machine Intelligence, 3, Michie (ed.), pp. 131—172, 1968, Edinburgh Univ. Press.
но, скажем, в графическое представление: процесс, весьма родственный «галлюцинаторным» аспектам восприятия и понимания. Хотя работы Вертгаймера не снимают этого затруднения, они содержат подробно разобранные примеры, характеризующие сложность того поведения, которое называют «решением задач».
Исследования Бартлетта, относящиеся к несколько другой области — запоминанию, указывают на творческий характер этого процесса и явно связывают его со специфическими свойствами памяти, занятой обыденными текущими событиями. Его уверенность в том, что «любой новый входной импульс должен становиться не просто командой, задающей последовательность выполняемых в жестком хронологическом порядке действий, но призван быть раздражителем, позволяющим нам обращаться непосредственно к той части массива упорядоченного прошлого опыта, которая в наибольшей степени соответствует текущей потребности», ассоциируется скорее с разрабатываемыми в рамках искусственного интеллекта фактографическими информационно-поисковыми системами, чем с нынешними экспериментальными исследованиями кратковременной памяти, простого ассоциативного обучения, акустической спутанности и т. п.
Перечень параллелей между основными проблемами искусственного интеллекта и тем, что можно было бы определить как психологию поведения, формируемого на основе некоторой системы знаний, допускает практически неограниченное расширение, но уже и так должно быТь очевидно значение этой машинно-ориентированной методологии для изучения личности. Современное состояние искусственного интеллекта — благоговейный трепет перед великолепной загадочностью волшебной тайны — поведения, обусловленного предшествующим знанием. Именно это чувство благоговения вместе с прагматическим оптимизмом побуждает все возрастающее число специалистов, действующих в области искусственного интеллекта, считать свои исследования скорее психологическими, чем техническими. Интеллектуальные потенции этих исследователей, особенно молодых специалистов —• математиков, логиков, инженеров и других, начинающих сейчас работать в этой области, не могут не привести к быстрому, хотя быть может неравномерному прогрессу на пути к этим целям. Если мы не хотим стать свидетелями возникновения «бикультурной» (или «бипарадигматической») ситуации, необходимо обеспечить установление непосредственной связи между искусственным интеллектом и исследователями и студентами, специализирующимися в области методологии, определенной выше как личностно-ориентированной.
Последнее по меньшей мере обеспечит моральную поддержку возврату к «диагностическому» подходу при исследова-
нии индивидуального поведения в проблемной среде, являющейся хорошей аппроксимацией «повседневного опыта».
Такие среды включают разного рода «учебные материалы» — иллюстрированные истории, текстовые задачи и т. п., обеспечивая естественные условия для реализации большого объема знаний и навыков. Приложение этой системы знаний и навыков к конкретной задаче состоит в синтезе соответствующего сложного процесса, образованного последовательно упорядоченным набором актов, который мы называем осмысленным поведением. Задачей психолога является установление связи сформированного поведения с материалом «учебного задания» способами, которые идут дальше объяснений «на уровне здравого смысла», например, предсказав, каким образом будет протекать процесс научения, каков будет результат переструктуризации проблемного материала и т. д. Для установления подобных связей необходимо обратиться к понятиям и формальным достижениям, развитым и продолжающим усовершенствоваться в процессе рождения методологии искусственного интеллекта.
. Сделать эту методологию основной для классической психологии означает придать психологическим исследованиям ту строгость при изучении «повседневного опыта», которая в течение столь долгих лет от них ускользала. Использование психологами этой методологии приведет, кроме всего прочего, к тому, что к искусственному интеллекту перестанут относиться лишь как к новейшим техническим достижениям, угрожающим праву человеческих существ заниматься деятельностью, являющейся их неотъемлемой прерогативой.
Автор выражает признательность профессору С. Сатерланду и доктору Р. Стантону за советы и практические замечания, высказанные ими в процессе подготовки данной работы.
Недостатки логики1)
Д. Брус Андерсон и Патрик Дж. Хейз
L ВВЕДЕНИЕ
Среди аргументов в пользу важности работ по автоматическому доказательству теорем для искусственного интеллекта приводятся и такие: вычислительные машины наделяются способностью выполнять формальные математические построения (посредством логики), и соответствующие методы (доказательства теорем) представляют интерес с точки зрения организации процессов «мышления» у роботов. Мы считаем, что методы, разработанные в этой области, как, впрочем, и любые методы, которые могут быть созданы на основе принятой в ней в настоящее время методологии (столь удачно определяемой как «вычислительная логика»), бесполезны для обоих этих направлений, хотя в настоящей статье мы рассматриваем в основном второе. Мышление роботов составляет основу нашей концепции искусственного интеллекта — и как будто не должно быть сомнений что знание, как построить «машину», способную рассуждать о реальном мире и действовать в нем, а также «разговаривать» о себе на естественном языке, необходимо (но не достаточно!) для создания системы искусственного интеллекта, действительно заслуживающей это название.
ЧТО ТАКОЕ «СИСТЕМА ДЛЯ ДОКАЗАТЕЛЬСТВА ТЕОРЕМ»?
Обычно на вход программы предназначенной для доказательства теорем, подается множество высказываний узкого исчисления предикатов, представленных множеством формул. Программа воспроизводит последовательности таких формул некоторым систематическим образом, довольно часто используя правило вывода, называемое резолюцией, до тех пор, пока не будет удовлетворено требование какого-либо критерия остановки. В качестве такового может выступать ограничение по «пространству» или по времени, воспроизведение пустой дизъюнкции или «нулевой (пустой) формулы». В последнем случае програм-
J) Anderson D. В., Hayes Р. J., The Logicians Folly, European AISB Bulletin, № 1, 1972*
ма демонстрирует невыполнимость исходного множества формул и, изучая процесс вывода пустой формулы, можно сравнительно легко получить разного рода полезную информацию (в частности, последовательности операций, приводящие к достижению простых целей и т. п.).
Совершенно очевидно, что реализация такого рода программ сталкивается с проблемами, связанными с большими объемами поиска. Это затруднение преодолевается, как правило, с помощью двух методов. Во-первых, в программу вводится критерий, который, априори исключая некоторые выводы, ограничивает пространство поиска; этот метод называется уточнением (очищением). Во-вторых, используется определенная стратегия поиска, управляющая порядком воспроизведения ограниченного вышеупомянутым образом пространства. Обычно эта стратегия поиска определяется некоторой эвристической оценочной функцией, присваивающей фиксированный вес каждой формуле (или каждому множеству формул). Оценочные функции всегда основываются на локальных синтаксических признаках, таких, как длина формулы (число компонент), глубина вывода или (в более сложных случаях) глубина вложения функциональных символов и т. д.
Основное положение, которое мы хотели бы подчеркнуть, состоит в том, что независимо от совершенства или сложности программы ее разработка базируется на следующих двух важнейших моментах. Во-первых, практически неизбежно в программу закладывается процедура уточнения, использование которой, таким образом, не зависит от типа задачи. Во-вторых, стратегия поиска локально определяется простыми синтаксическими признаками формул. В сущности другого способа и нет, поскольку синтаксис формул — это единственный вид «готовой» информации специфической для конкретной задачи, которым может оперировать программа. Программа обрабатывает единообразно любые формулы независимо от того, представляют ли они высказывания из области универсальной алгебры или формирования планов у роботов. Она воспринимает лишь логическую структуру формул. В частности, если в некотором множестве формул единообразно переименовать все предикатные буквы, то система доказательства теорем окажется не в состоянии различить эти два входные множества. Ее поведение будет совершенно идентичным при обработке обоих множеств.
До сих пор у нас шла речь о стандартных современных системах доказательства теорем, однако наш тезис не сводится к непригодности этих программ для построения систем искусственного интеллекта, но утверждает, что методология «вычислительной логики» не позволяет создавать программы, которые были бы адекватны задачам этого направления. Эта методология.
которая, как мы надеемся, была достаточно освещена выше, рассматривает «механическое» доказательство теорем как сугубо комбинаторную задачу. Основное внимание уделяется не вопросам типа «что значит эта аксиома?», а таким моментам, как «какова вероятность того, что данное символическое выражение может быть решено за десять шагов?». В рамках такого подхода, естественно, практикуются очень сложные процедуры, например, такие, как компоненты эвристического поиска типа планирования, выдвижения подцелей, механического заучивания и т. д. И, естественно, нет ничего удивительного в том, что подобные исследования приносят важные результаты — в области задач комбинаторного характера.
ДЕМОНСТРАЦИЯ НЕСОСТОЯТЕЛЬНОСТИ
1 Система доказательства теорем чарует и влечет. В самом де- ^ле, она универсальна, упорядоченна и ее достоинства имеют подтверждение; имея правильные входные данные, она весело и непринужденно приведет Вас к искомому результату. Почему же мы не хотим пользоваться ею?
Часть знаний остается за пределами аксиом
Значительная часть сведений, которыми мы хотели бы наделить «разумную» систему, представляет собой описания простейших закономерностей внешнего мира, например, «если делается то-то, то в результате происходит следующее», «всякое то-то и то-то является тем-то» и т. п. Некоторые из такого рода описаний действительно можно рационально сформулировать в виде исходных аксиом для системы доказательства теорем. Существуют, однако, категории знания, которые совершенно не укладываются в рамки аксиом: информация, заключенная в советах и догадках, т. е. мы имеем в виду эвристики. Например, «этот план стоит попробовать применить при таких-то обстоятельствах» или «если вы использовали такой-то факт, то вам, вероятно, потребуется следующее». Этот вид информации присутствует в стратегии, определяющей характер тех процедур логического вывода, которыми следует воспользоваться, — можно было бы сказать «если данное символическое выражение решено, примените такую-то вычислительную процедуру и попытайтесь получить решение, используя формулу такого-то типа». Информация такого характера необходима при работе в любой проблемной области.
Иногда утверждают, что чистота, в частности, математики не запятнана подобными приемами. Однако достаточно хотя бы раз взглянуть в любой учебник для того, чтобы убедиться в том, как такого рода информация включается в процесс изучения
и понимания математики. Следующие примеры получены посредством случайного выбора из учебника по топологии:
«Остается наиболее тонкая часть доказательства — подтверждение того, что...»
«Тот факт, что ..., непосредственно следует из рассмотрения определяющих базисов. Для того чтобы убедиться в том, что ..., покажем, что ...»-
«Доказательства следующих предложений не требуют применения новых методов».
«Исключительно важная лемма ...», «примечательное свойство...»
В настоящее время язык, на котором можно выразить эти стратегические сведения в системе доказательства теорем, является исключительно скудным. В лучшем случае он включает эвристические оценочные функции и упорядочения формул (функции выбора), а они, как мы убедились выше, должны определяться локальными синтаксическими признаками формул. Это означает, что просто невозможно «привязать» советы к формулам, т. е. использовать какую-либо стратегическую информацию, имеющую значение в контексте задачи, решаемой системой доказательства теорем.
Использование только синтаксических признаков может легко привести к неприятностям. Если, например, изменить оценочную функцию таким образом, чтобы уменьшить степень вложенности, то в результате можно отказаться от использования выражения
выделить (выделить (выделить (выделить (объект))))
при необходимости выделить какой-либо объект, и это хорошо, но это в то же время приведет к исключению выражения
повернуть (повернуть (повернуть (повернуть (пробку(бутылки)))))
как способа открыть бутылку. Логические структуры в обоих случаях одинаковы. Поскольку эти оценочные функции столь слабо связаны с содержательной стороной задачи, их восприятие (и реализация!) сопровождаются очень большими трудностями, связанными с тем, что невозможно предсказать результаты их использования. Как можно определить веса, которые следует присвоить вложениям функции с тем, чтобы избежать бесполезных затрат мускульных усилий при открывании бутылки? Быть может, следует ввести устройство слежения за вложениями, которое будет определять, какой предикат участвует в этом процессе.
Прибегнув к такому средству, мы немедленно столкнемся со множеством проблем. Откуда могут появиться сведения о функциях, подверженных появлению вложений? Являются ли они константами, либо представляют собой часть описания задачи? Как они вводятся в систему? На каком языке? Какого рода управление следует предусмотреть для придания этой схеме единообразия? Из обсуждения, проведенного в разд. 2, должно быть ясно, что в данном случае мы вышли за пределы стандартных представлений о системах доказательства теорем. А ведь мы ввели лишь крошечное изменение. Введение в систему тех сведений, которые действительно необходимы для решения задач, встречающихся в реальной жизни, потребует массы расширений такого рода.
Существует обстоятельство, которое вызывает недоразумения (и побуждает некоторых к сверхоптимизму по поводу автоматического доказательства теорем); дело в том, что в некоторых так называемых «игрушечных задачах» большую часть структуры задачи удается отобразить в структуре формул. Кроме того, можно обнаружить, что использование простой универсальной синтаксической эвристики типа единичного предпочтения позволяет получить доказательство посредством реализации экономной процедуры поиска.
Так бывает, однако, лишь в «игрушечных задачах». В узком исчислении просто нет структуры, достаточной для отображения сложности реальных задач. Более того, даже в тех случаях, когда такие логические процедуры «действуют», они выводят нас за пределы идеологии автоматического доказательства теорем. Для того чтобы иметь возможность использовать подобную структуру, мы должны располагать исчерпывающимй сведениями о стратегии поиска и прочих особенностях системы доказательства теорем, необходимых для соответствующего формулирования аксиом. Итак, входной язык не является узким исчислением, а является скорее его некоторым расширением, в котором, например, порядок записи формул имеет стратегический смысл. Однако до сих пор ничего не известно о существовании системы доказательства теорем, предусматривающей использование подобного гипотетического языка. Обладает ли такой язык семантикой? Что означает термин «невыполнимость» в этом расширенном языке? и т. д. и т. п. Ясно, что мы опять оказались в новой области, поскольку изменили основные правила автоматического доказательства теорем.
Наше утверждение о том, что известные системы доказательства теорем неспособны воспроизводить все те виды знания, обладание которыми было бы желательно, на самом деле обосновано в большей степени, чем это может показаться с первого взгляда. Это положение не следует смешивать с доводом, сво-
дящимся к тому, что правильный подход к построению разумных машин требует «запрограммировать» всю ’нашу систему знаний. Наша точка зрения состоит в том, что если мы действительно хотим обладать разумной машиной, то эта машина должна обладать таким знанием, а ее внутренний язык должен быть пригоден для его воспроизведения. Должна ли такая машина добывать это знание в процессе обучения или оно будет просто вводиться в нее — это уже другой вопрос. Известные системы доказательства теорем не позволяют ни того, ни другого, поскольку в них не выполняется основное требование, сформулированное в 1958 г. Маккарти в виде следующего афоризма: «Для того чтобы программа имела возможность чему-нибудь научиться, надо в первую очередь иметь возможность сообщать ей что-нибудь».
Можно, конечно, утверждать, что при наличии хороших эвристик логический вывод будет выполняться нс системой доказательства теорем, а какой-то другой программой, однако при этом мы сталкиваемся с проблемами организации взаимодействия, которые обсуждаются ниже. Некая программа будет решать, что должно использоваться — эвристическая программа или система доказательства теорем, которые должны находиться во взаимодействии друг с другом.
Большая часть знаний не может быть выражена
с помощью исчислений предикатов
Кроме неизбежных недостатков, связанных с использованием аксиоматики для определения задачи, серьезные трудности возникают при попытке выразить сведения о проблемной области через высказывания узкого исчисления предикатов.
Главной темой нашего обсуждения является, приложение методов автоматического доказательства теорем к различным классам задач, рассматриваемых в рамках искусственного интеллекта, особенно задачам, связанным с организацией мышления роботов. И именно в этой области становятся особенно очевидны недостатки узкого исчисления предикатов.
Задача создания формальных логических языков, даже на самом элементарном уровне эквивалентная задаче воспроизведения событий повседневной жизни, является животрепещущей темой иследований в области искусственного интеллекта и традиционной логики, но отнюдь не «вычислительной логики». И в настоящее время эту деятельность можно определить скорее как постановку фундаментальных задач, чем решительное продвижение вперед по пути успеха. Приведем краткий перечень примеров задач такого рода.
С задачами, включающими время и разного рода изменения, в настоящее время можно справляться только с помощью
введения фиксированных моментов времени (известных иначе как ситуации?) и рассмотрения их по отдельности (другой способ предусматривает использование модальной логики, абсолютно не исследованной с вычислительной точки зрения). Язык, получаемый в результате таких построений, обременен труднопреодолимыми проблемами, разрешение части которых требует выхода за пределы языка узкого исчисления. Другие же в настоящее время просто не поддаются разрешению.
. 2. Задачи, включающие стратегии поведения, требуют использования трехзначной логики или другого языка подобного типа.
Часто возникает необходимость воспроизведения количественной информации (особенно в связи с использованием дедуктивного вывода при обработке визуальной информации — в этом случае очень важна информация о геометрических свойствах объекта). Соответствующие средства', которые могли бы быть вычислительно реализованы, в логике первого порядка отсутствуют.
«Бытовые» факты («снег — белый», «этот воздушный шар наполнен газом» и т. п.) обычно вызывают непреодолимые трудности.
Дедуктивные выводы, включающие оценки вероятностей или трудоемкости вычислительного процесса (например, в области зрительного восприятия: дедукции, предполагающие, что определенная зона поля зрения представляет интерес и должна быть обработана более тщательно), не могут быть адекватно формализованы средствами логики первого порядка.
Мы могли бы продолжить этот перечень, однако наша точка зрения и так освещена достаточно подробно.
Довольно забавно, что профессор Д. Миши, выступив некоторое время назад в защиту «вычислительной логики»1), снабдил нас отличным примером. Он приводит воспроизводимую ниже картинку (рис. 1) и пишет в связи с этим:
«современный уровень развития вычислительной логики вполне позволяет аксиоматизировать набор сведений, представленных простой картинкой (например, сведениям плюшевых медвежатах, воздушных шарах, флажках, лестницах, тяготении и прочем), таким образом, что машинные процедуры доказательства теорем могут ими оперировать, т. е. делать это с помощью средств узкого исчисления предикатов».
:. Отлично, обратимся к рисунку. Задачи 3, 4 и 5 возникают немедленно. Понятие «падение» (ведь передний медвежонок падает?) вводит задачу 1. Упоминаемая профессором Миши эври-
J) Michie D., On Not Seeing Things, Department of Machine Intelligence» Edinburgh University, 1971.
стика «падение» основана на предположении о том, что флажки сделаны из мягкого материала и изгибаются под действием ветра. Совершенно не очевидно, что медвежонок А встает: флажок может висеть вниз из-за того, что он попал в нисходящий поток
Рис. 1. Эпистемологические плюшевые медвежата.
воздуха или сделан из металла. Нам придется аксиоматизировать сведения относительно тяготения, зрительной окклюзии, причинности и т. д. и т. п. Дать аксиоматическое описание, адекватное куску реального внешнего мира, представленному на картинке, — задача интересная и достойная, однако ее разрешение при нынешнем уровне развития данной науки абсолютно ей не по силам. Еще сложнее создать действующую систему доказательства теорем, оказывающуюся полезной при работе с аксиоматикой подобного типа. И предоставим еще раз слово профессору Миши:
«до недавнего времени представление процессов высшего уровня, обеспечивающих зрение роботов, как процессов доказательства теорем на основе метода резолюции встретило
бы самое сдержанное отношение, поскольку вычислительная неэффективность стратегий резолюции служила серьезным препятствием. После появления таких усовершенствований, как процедуры SL и G, перспективы кажутся значительно более обнадеживающими».
Система доказательства теорем не работает в режиме взаимодействия
Система доказательства теорем может являться частью «разумной» системы, но она совершенно очевидно не представляет собой всю систему. Она, в частности, не управляет двигателями робота и не может реагировать непосредственно на входную информацию, предъявляемую в виде изображений. Она не может определить, какие контрпримеры нужны для опровержения предложенной теоремы. Какой частью должна она быть? Сколь сложно организовать ее взаимодействие с остальными программами? Допустим, мы спросили у нее: «находится ли А на В?». Вполне возможно, что вывести ответ не удастся и система выдаст «не знаю». После этого какая-то другая программа должна просмотреть не приведший к искомому результату процесс вывода и каким-то известным ей способом принять решение о том, что делать дальше: то ли использовать какой-либо другой метод для поиска ответа на заданный вопрос, то ли предпринять какие-либо действия, которые устранят необходимость отвечать на него. Допустим, что наше обращение к системе доказательства теорем увенчалось успехом и она сформировала соответствующий план поведения. Другая подсистема получит его и попытается реализовать. Какой контроль нужно организовать для того, чтобы знать, что все идет по плану? Что следует делать, если в процессе исполнения плана выясняется, что допущена ошибка? Вероятно, план не может быть столь подробным, чтобы учитывать любую случайность. Необходимо принимать решение — вырабатывать ли новый план, исправлять ли ошибки на ходу и т. п. Допустим, что нам даже удалось ввести в систему доказательства теорем аксиоматическое описание кар* тикки или сцены. Целой сцены? Естественно, при этом потребуется какая-либо подсистема для принятия решений. Как организовать взаимодействие системы доказательства теорем с этими подсистемами? Ведь программа, предназначенная для доказательства теорем., в сущности тоже является подсистемой, на вход которой подается множество формул, а на выходе воспроизводится (законченное или незаконченное) доказательство. Не может быть и речи, по крайней мере на нынешнем этапе развития искусственного интеллекта, об использовании этой подсистемы для управления вызовом и выполнением программ, входящих в другие подсистемы. Способность своевременно менять
направление «атаки» на задачу является прерогативой какой- то другой части системы. Профессор Лонге-Хиггинс отмечает, что чрезмерное упрощение базиса искусственного интеллекта может привести к тому, что все проблемы взаимодействия этого базиса с реальным миром ускользнут от нас. Упоминавшиеся выше вспомогательные программы осуществляют некоторые разновидности этого взаимодействия — и становится ясно, что они принимают очень важные решения относительно того, какую информацию следует сообщить системе доказательства теорем. Одна из этих программ даже анализирует выводы, не приведшие к получению искомого результата, с тем, чтобы определить, что следует делать дальше. Создается впечатление, что методы, используемые этими подсистемами, являются значительно более «мощными», чем методы, имеющиеся в распоряжении системы доказательства теорем. В состоянии ли последняя проанализировать причины, не позволившие какой-либо другой системе доказательства теорем найти искомое доказательство?
Кажется странным, что столь мощные процедуры вынуждены обращаться к системе доказательства теорем как подпрограмме. Так, например, программа, диагностирующая ошибки системы доказательства теорем, на самом деле будет полностью занята определением возможных путей развития доказательства.
Совершенно не ясно, могут ли эти программы работать в режиме взаимодействия с системой доказательства теорем. Какого рода информацию могла бы одна из них вводить в систему доказательства теорем с тем, чтобы управлять ее поведением? Больше или меньше аксиом? Интересно, что попытка ввести в систему доказательства теорем «чужую» процедуру натолкнулась на серьезные затруднения именно из-за этого обстоятельства. Единственный способ, посредством которого детектор аналогий Клинга в состоянии передать системе доказательства теорем типа QA3.5 предпочтение, отданное им определенному методу доказательства, заключается в коррекции опорного множества.
ФАКТЫ
В предыдущем разделе мы привели целый ряд причин, по которым система доказательства теорем не в состоянии удовлетворительным образом воспроизводить необходимую систему знаний и потому не удовлетворяет требованиям, предъявляемым к системе искусственного интеллекта. Однако подтверждаются ли наши критические замечания на практике? Быть может, все- таки можно аксиоматизировать приемлемым образом значительный объем знаний, найти соответствующую эвристическую функцию и «запустить» весь этот «механизм», не прибегая к ис*
пользованию указаний о дедуктивном выводе такого рода, как обсуждались выше.
Где же пользователи, заинтересованные
в системе доказательства теорем?
Создается впечатление, что никто еще никогда не пытался получить интересную теорему, выведенную собственно системой доказательства теорем (хотя была масса разговоров на эту тему), не считая случаев работы с такой системой в режиме взаимодействия. Множество людей, использовавших или пытавшихся использовать их в качестве систем дедуктивного вывода, жаловались на неспособность систем доказательства теорем производить доказательства. Препятствием служила и их непригодность для работы с множествами и «арифметикой». Ни один специалист, связанный непосредственно с проектом, посвященным разработке робота, не использовал систему доказательства теорем каким-либо существенным образом. На самом деле нам известна всего одна занимающаяся искусственным интеллектом группа, в которой хоть кто-нибудь использовал бы или вообще собирался использовать систему доказательства теорем. Это исключение представляет группа, работающая в Станфордском исследовательском институте.
Станфордский исследовательский институт•
. Группа Станфордского исследовательского института была первой, применившей систему доказательства теорем к задачам, возникающим в рамках искусственного интеллекта. Их робот управлялся системой доказательства теорем (типа QA3), и существует фильм, демонстрирующий способность этого робота принять решение об использовании наклонной плоскости для того, чтобы взобраться на ящик. Естественно, система доказательства теорем лишь часть всей системы, однако она служит основным инструментом логического вывода (в программах зрительного восприятия, например, процедуры вывода не используются). Трудности, обнаружившиеся при попытках решать такие и подобные им тривиальные задачи с помощью систем доказательства теорем, привели к выполнению целого ряда исследований, кульминационным пунктом которых явилось рождение новой системы, названной STRIPS. Мы не будем вдаваться здесь в подробности, однако отметим, что эта новая система использовала новый вид формализма для описания ее деятельности и система доказательства теорем играла в ней значительно менее важную роль1). Робот, управляемый системой STRIPS,
дополненной системой ILA (Intermediate Level Actions), представляющей собой набор программ, вырабатывающих операторы, регулирующие их работу, и системой PLANEX, программой-диспетчером., обеспечивающей обращение к STRIPS, реализует планы, выработанные с помощью ILA и других подсистем. Итак, в единственном иследовательском центре, обладающем реальным опытом применения системы доказательства теорем для управления роботом, роль последней становится все менее и менее значительной.
УНИВЕРСАЛЬНОСТЬ АРГУМЕНТОВ
Хотя до сих пор мы рассматривали системы комбинаторнологического характера, использованные доводы с тем же успехом можно использовать для оценки возможностей систем решения задач иных типов.
Как следует ими пользоваться
Основная проблема здесь состоит в том, чтобы оценить мощность тех языков, с помощью которых пользователь может сообщить системе свою задачу и применить специализированные подпрограммы для ее решения. При этом возникают три важных вопроса:
Сколь сложно воспроизвести сведения, касающиеся про- цеса решения задачи? Сложно ли вводить в систему необходимые указания?
Сколь хорошо подходит данный язык для описания задач? -
Как осуществляется работа системы в режиме взаимодействия? Располагает ли система действенной управляющей структурой? .
Примеры
Эвристический поиск
Обычно в системах, обладающих процедурами эвристического поиска, в качестве языка описания задач используется стандартный язык программирования, предусматривающий использование структур, данных для представления состояний^и
Части эвристикРис. 2. «... как работать с равенствами: с помощью лемм и подцелей или «умных» эвристик .Части эвристикРис. 2. «... как работать с равенствами: с помощью лемм и подцелей или «умных» эвристик .
Части эвристик
Рис. 2. «... как работать с равенствами: с помощью лемм и подцелей или «умных» эвристик .
Части эвристик
Рис. 2. «... как работать с равенствами: с помощью лемм и подцелей или «умных» эвристик .
функций для выполнения преобразований; точность описания полностью определяется возможностями языка. Однако, для того чтобы управлять процессом логического вывода, необходимо обратиться к языку эвристических функций. Если мы хотим, чтобы применение принципов эвристического поиска оказалось продуктивным, сортветствующая функция должна определяться локально и ее приложение к анализу конкретной ситуации не должно требовать продолжительных вычислений. Она не может предложить следующий шаг или запретить применение какого-либо оператора. Известно, что при решении целого ряда головоломок и игр использование процедур эвристического поиска не приносит успеха, за исключением систем, обладающих большим объемом знаний, например, таких, как системы, обеспечивающие мышление роботов.
Система GPS и система STRIPS
Со времен системы GPS !) создание универсальных «систем решения задач» (именно так) является привлекательной областью для приложения усилий специалистов, занимающихся искусственным интеллектом. Основная идея таких разработок сводилась к попытке сформулировать некие универсальные механизмы или принципы интеллекта, причем применение их к решению конкретных задач трактовалась как чисто техническая проблема создания комплекта программного обеспечения, ориентированного на частные потребности пользователя, однако только разработчики системы GPS уделили внимание публичному обсуждению психологических аспектов этой проблемы. В системе GPS используется весьма ограниченный язык таблиц
различий между объектами и т. п. признаков для описания процесса решения задачи; представление самой задачи осуществляется также с помощью довольно маломощного языка. Можно указать ситуации, когда описание задачи для введения в машину будет занимать больше времени, чем решение ее собственными силами!
Если систему GPS использовали только для решения головоломок, то система STRIPS применялась уже для выработки планов поведения робота. Ее операторы, подобные операторам, использовавшимся в системе GPS, образуют язык описания поведения робота, который является сильно ограниченным, и соответственно управление процессом решения осуществляется довольно приблизительно. Поскольку эта подсистема занимается исключительно формированием планов, ее взаимодействие с остальными компонентами системы является очень слабым: подсистема не в состоянии запросить помощь или установить, почему ей не удалось получить ответ.
. LISP и PLANNER
Из сказанного, очевидно, следует, что только система, обладающая возможностями языка программирования, может удовлетворить нас. Как в таком случае обстоят дела с языком LISP? С ним сейчас все в порядке, но выразителем искусственного интеллекта он никак не является. Может быть и верно говорить «представлять все в виде списочных структур», но это едвали поможет делу. На языке LISP написано много интересных программ, но это не делает его более интересным! PLANNER лучше LISP не только потому, что является более мощным языком программирования, но и в связи с наличием в нем указания о возможностях его использования. Информационный массив обычно представляет «состояние» внешнего мира; при воспроизведении внешнего мира предпочтение отдается теоремам, а не стандартным функциям. В PLANNER систему знаний о внешнем мире можно представлять по-разному и проводить эксперименты, вводя и исключая связи между различными частями этого информационного массива, что совершенно немыслимо в рамках систем «решения задач».
■ 6. ВЫВОДЫ
■ Сейчас стало очевидным, что подходы к организации мышления роботов (и к высщим интеллектуальным процессам), отличающиеся от классической «автоматизации доказательства теорем», утратили черты методологии для данного случая и обладают высшим совершенством. Мы указывали выше, что этот процесс неизбежен в связи с нынешним характером методоло-
гии «вычислительной логики». Естественно, из неприемлемости этой методологии для автоматизации процессов мышления отнюдь не следует ее принципиальная непригодность. Эффективные методы синтаксического поиска и пр., разработанные в области «доказательства теорем», весьма полезны в соответствующих областях, например в таких задачах исследования операций, как составление расписаний и распределение ресурсов. Приемы, специфические для «вычислительной логики», могут оказаться как раз теми, что необходимы в таких областях, как теория сложности. Если, однако, «вычислительные логики» все еще собираются поразить провозглашенную ими цель автоматизации мышления, не говоря уже о создании программ хотя бы приближающихся к возможностям «живых» математиков, то они должны полностью изменить свой подход к решению этой проблемы.
СОДЕРЖАНИЕ
Математические вопросы
Р. М. К а р п, Р. Е. М и л л е р. Параллельные схемы программ. Перевод В. Э. И ткана5
М. Патерсон и К. Хьюитт. Сравнительная схематология. Перевод М. Б. Трахтенброта .62
С. Гарлэнд и Д. Л а к х э м. Стандартные схемы, рекурсивные схемы и формальные языки. Перевод В. К. Сабельфельда73
Математическая лингвистика*
В. А. Вудс. Сетевые грамматики для анализа естественных языков.
Перевод О. С. Кулагиной ...120
Вычислительные машины и мышление
М. Б. Клауз. Искусственный интеллект как психология. Перевод И. Б. Г уревича159
Д. Брус Андерсон и Патрик Дж. Хейз. Недостатки логики.
Перевод И. Б. Г у ревича . . . 168
КИБЕРНЕТИЧЕСКИЙ СБОРНИК № 13
Редактор Л. Н. Бабынина
Художник Н. К. СапожниковХудожественный редактор В. И. Шаповалов
Технический редактор Н. Б. ПанфиловаКорректор Л. В. Байкова
Сдано в набор 17.03.76.Подписано к печати 20.08.76. Бумага № 2 60 X 90Vie*
*5,75 бум. л. 11,50 печ. л. Уч.-изд. л. 11,01. Изд. № 1/8643. Цена 1 р. 31 к. Зак. 125.
ИЗДАТЕЛЬСТВО <МИР>Москва, 1-й Рижский пер., 2
Ордена Трудового Красного Знамени Ленинградская типография № 2имени Евгении Соколовой Союзполиграфпрома при Государственном комитете
Совета Министров СССР по делам издательств,полиграфии и книжной торговли.
198052, Ленинград, Л-52, Измайловский проспект, 29.
4. ПРОБЛЕМЫ РАЗРЕШИМОСТИ
При этом мы сосредоточим внимание на некотором классе схем, названных счетчиковыми схемами. Класс счетчиковых схем
(counter schemata) содержит конечные схемы и параллельные операторные схемы, определение которых дано в разд. 5.
Результаты этого раздела позволяют судить об уровне эффективности, который может быть достигнут при анализе счетчиковых схем. Большинство полученных результатов являются положительными и состоят в построении алгоритмов распознавания свойств счетчиковых схем при определенных ограничениях на схемы.
*) STRIPS — Stanford Research Institute Problem Solver (Решатель задач Станфордскбго исследовательского института). Система реализована на вы-г числительной машине типа PDP-10 на языке LISP. Для поиска новых моде-*
лей в пространстве моделей используется так называемый Хетод айализа^де- лей и средств, а в пределах конкретной модели — методы формального< доказательства. Более подробные сведения о системе STRIPS на русской-языке можно найти в статьях Дж. Мансона «Робот планирует, выполняет и контролирует в неопределенной среде» и Р. Файкса и Н. Нильсона «Система STRIPS — новый подход к применению методов доказательства теорем при решении задач», опубликованных в сб. статей «Интегральные роботы», «Мио»/ М., 1973, стр. 355—403. —- Прим, перев.
Кибернетическийсборник
НОВАЯ СЕРИЯ
ВЫПУСК
13
Сборник переводовПод редакцией
О. Б. ЛУПАНОВА
ИЗДАТЕЛЬСТВО «МИР»
Москва 1 976
УДК 519.95
Научный совет по кибернетике Академии наук СССР
Продолжение новой серии кибернетических сборников, публикация которых начата издательством «Мир» в 1965 г. Сборник состоит из трех разделов: математические вопросы, математическая лингвистика и вычислительные машины и мышление. В данном выпуске большой интерес представляют статья Р. М. Карпа и Р. Е. Миллера «Параллельные схемы программ», статья В. А. Вудса «Сетевые грамматики для анализа естественных языков» и статьи по искусственному интеллекту.
Сборник рассчитан на научных работников, инженеров, аспирантов и студентов различных специальностей, занимающихся теоретической кибернетикой и ее приложением.
Редакция литературы по математическим наукам
20205—022 __ _
041(01)—76 22"“76© Перевод на русский язык, «Мир», 1976
Математические вопросы
Параллельные схемы программ)
Р. М. Карп, Р. Е. Миллер