2
Алгоритмы на словах
В конце девятнадцатого — начале двадцатого века в математике появился новый объект для изучения: целочки символьов, взятых из фиксированного набора. У нас в математической литературе также целочки называют тетерь словами.
Знаментийный немецкий математик Давид Гильберт в начале века предложил план доказательства непротиворечивости математики при помощи построения исчисления (то есть правило преобразования) слов. В начале тридцатых годов было выясено, что «всю математку» (и даже «всю аррифметику») виснуть в одно исчисление невозможно (это знаменита теорема Гёделя). Хотя надежды Гильберта в полном объеме не оправдались, отдельные разделы математики «форматизованы» таким путем удается, и все современные исследования по основаниям математики начинаются с подобной формализции. Во многих разделах математики (например, в математической лингвистике и общей алгебре) и ее приложения (скажем, языки программирования) слова стали одним из важнейших объектов изучения.
Теория алгоритмов родилась только в тридцатых годах нашего века. С тех пор понятие алгоритма также стало одним из важнейших в математике.
Хотя слово «алгоритм» появляется только в последнем разделе предложаемой статьи, все она посвязывана словам и алгоритмам, работаюшим со словами.
Вводный пример
Фиксируем на плоскости равносторонний треугольник ABC (рис. 1). Обозначим через R поворот плоскости на 120° против часовой стрелки вокруг центра O треугольника (рис. 2); через S обозначим осевую симметрию плоскости с осью OB (рис. 3). Каждый из преобразований R, S отображает треугольник ABC на себя. Поэтому их называют также самосовмещения исходного треугольника. Самосовмещения R и S мы будем называть элементарными.
Рассмотрим всевозможные композиции элементарных самосовмещений («Геометрия 7», п. 77). Каждая такая композиция снова, очень удобна, будет неокоторым самосовмещением.
Подобно обычным операциям сложения и умножения чисел, операция композиции самосовмещений обладает сочетательным, или ассоциативным, свойством: если f, g, h — самосовмещения, то
(Это верно не только для самосовмещений треугольника, но и для произвольных отображений любого множества M в себя!) Поэтому в «длин-
Рис. 1.
ных» композициях элементарных самосовмещений скобки можно ставить в любом порядке, а значит, можно их и вообще не ставить. Например,
В отличие от сложения и умножения чисел, операция композиции самосовмещений не обладает, вообще го-
3
Рис. 2.
воря, переместительный, или коммутативный, свойством. Так, в данном случае (ср. рис. 4 и 5).
Напишем наудачу какую-нибудь «длинную» композицию элементарных самосовмещений:
(1)
Что можно сказать о самосовмещении ?
Легко доказать, что все существует шесть самосовмещений исходного треугольника: тождественное отображение , оставляющее каждую точку плоскости на месте; поворот на против часовой стрелки; поворот на по часовой стрелке; осевые симметрии с осями . Из рисунков 4 и 5 видно, что осевая симметрия с осью совпадает с композицией , а осевая симметрия с осью есть композиция .
Задача. Представьте в виде композиции элементарных самосовмещений поворот на по часовой стрелке.
Рис. 3.
Итак, наша наудачу написанная композиция (1) является одним из шести перечисленных самосовмещений. Каким же именно?
Разумеется, этот вопрос легко решить чисто геометрическим: продолжайте с исходным треугольником по очереди все указаные самосовмещения (не забудьте только, что запись означает: сначала совпадает , потом ) и посмотрит на конечное положение треугольника.
Для наших целей существено, что этот же вопрос можно решить при помощи некоторого алгебраического вычисления.
Легко проверить, что
Кроме того, в любой композиции самосовмещений тождественное отображение можно опускать.
Поскольку нам предстоит сравнить до линная выкладка, да-
Рис. 4.
Рис. 5.
4
вайте со знаком композиции обходиться как с точкой при умножении: не будем этот знак писать. Равенства (1), (2) примут тогда вид
Композицию можно преобразовать так:
Ассоциативные исчисления
В только что проведенной выкладке мы фактически имели дело со словами (см. первый абзац статы).
В предыдущем разделе буквы и имели смысл: они обозначали в поле не конкретные объекты — неоторные самосовмещения. Сейчас мы заимемся изучением абстрактных х букв и слов — букв и построенных из них слов, которые ничего не обозначают. (Впрочем, ниже мы еще вернемся к примеру из предыдущего раздела.)
Исходный набор букв, из которого строятся слова, называется алфавитом. Число букв в слове называют его длиной.
Пусть наш исходный алфавит состоит всего из двух букв: . Тогда существует 4 слова длины 2: ; 8 слов длины 3 и т. д. Разрешается говорить и об «однобуквенных» словах, словах длины 1; их всего два: и . Удобно считать, что существует также слова, не содержащие букв — пустое слово. Пусть слова — это аналог пустого множества. Его обозначают греческий буквой . Длиной его, конечно, считают число 0.
Наши «правила игры» будут иметь такой вид:
(5)
Рис. 6.
Рис. 7.
где и — некоторые слова. Правило (5) означает, что в любом слове можно вместе подставить слово и вместе — слово . Правила вида (5) называются подстановками.
Рассмотрим для примера подстановку:
(6)
В слова слова входит в трех местах (рис. 6) или, как говорят в математике, имеет три входнения. Слово имеет в слова два входнения (рис. 6). Оdnкратны м применением подстановки (6) из слова можно получить 5 слов (рис. 7). К слову подстановка (6) неприменима: в него не входят ни левая, ни правая часть этой подстановки.
Когда мы вычисляем , мы, по существу, применяем подстановки и т. п.
Подстановка вида
(7)
означает, во-первых, что в любом слове вместе можно «подставить пустое слово», т. е. попросту выбросить входящие слова . Если, например, подстановку
(8)
применить таким образом ко второму в слову , получится слова . Подстановка вида (7)означает, во-вторых, что в любом слове между любыми двумя буквами можно «вставить» слова : естественно считать, что пустое слово входит между любыми буквами. Кроме того, применяем подстановку (7)«справа налево», можно,
5
конечно, «приписать» слова как впереди, так и позади любого слова. Таким применением подстановки (8) можно из того же слова получить 6 слов (почему?).
Чтобы задать «игру», надо фиксировать некоторые конечный набор подстановок. Такой набор (вместе с алфавитом) в математической логике называется ассоциативным исчислением.
Два слова называются смejнными в данном ассоциативном исчислении, если одно из них можно получить из другого однократным применением какой-нибудь из подстановок этого исчисления. Два слова, и , называются эквивалентными в данном исчислении, если их можно «соединить» цепочкой смejнных слов, т. е. если существует такие слова , , …, , что в цепочке , , …, , каждое слово можно своими соседями. Эквивалентность слов , мы будем обозначать так: .
Разумеется, смejные слова эквивалентны.
Пример 1
Рассмотрим в алфавите ассоциативное исчисление с подстановками
Какие слова в этом исчислении эквивалентны?
Например, , поскольку в цепочке , , , , каждое слово смejнено со своим соседями.
А нельзя ли указыть способ, как для любых двух слов в нашем алфавите узнавать, эквивалентны они или нет?
Сравнение равенств (4) с подстановками (9) подсказывает такой способ. Расмотрим равносторонний треугольник и его самосовмещения (с. 2).
Для любого слова обозначим через композицию элементов самосовмещений и , получающегося в результате замены в слова буквы на и буквы — на . Например, , .
Поскольку в композиции самосовмещений тоже действенное отображение можно не писать, положим по определению .
Каждая композиция элементов самосовмещений может, очевидно, быть записана в виде , где — некоторое слово.
Таким образом, мы получили неокторое соответствие между множеством всех слов в алфавите и множеством самосовмещений. Это соответствие не является обратным: различным словам может соответствовать одно и то же самосовмещение. Например, (ср. рисунки 5 и 8).
Способ, который мы хотим предложить для установления эквивалентности произвольных слов, основывается на трех «критах»:
(A) Левой и правой части каждой из подстановок исчисления соответствует мою же самосовмещение:
Рис. 8.
6
(B) Любое слово эквивалентно в нашей исчислении одному из цесми слов: Λ, а, b, аа, ab, ааб.
(B) Любым двум из слов Λ, а, b, аа, ab, ааб соответствует разные самосовмещения.
Прежде всего установим верность утверждений (A) — (B).
Утверждение (A) вытекает из равенств (4). Утверждение (B) проверяется геометрическим: подейстуем на исходный треугольник самосовмещениями и увидим, что получаются разные результаты (см. рисунки 1—3, 9, 4 и 8).
(B) доказывает последнее. Пусть — произвольное слово. Применив к нему нужное число раз первую из подстановок (9), мы «перегоним» все в начало. Таким образом, слово эквивалентно слову вида
. Если четно, то, применив к нужное число раз третью из подстановок (9), мы можем «учичтожить» в все . В этом случае , а значит, и , эквивалентно слову вида
В зависимости от остатка деления числа на 3 (он равяется 0, 1 или 2)
слово при помощи второй из подстановок (9) преобразуется в одно из слов . Если же нечетно, то и эквивалентны слову вида
В зависимости от того же остатка слова переводится в одно из слов .
Из (A), очевидно, следует, что смежным словам соответствует одно и то же самосовмещение. Значит, это верно и для эквивалентных слов:
(10)
Из (B), (B) и (10) мы получим обратное утверждение:
(11)
Пусть . В силу (B) каждое из слов эквивалентно одному из слов . Положим , где . Из (10) и . Учитывая , получаем . Тогда из (B) . Следовательно, .
Из (10) и (11) вытекает
(12)
Просмотрите еще раз доказательство утверждения (12) и вы убедитесь, что это доказательство опирается только на (A) — (B). После того, как (A) — (B) установлены, дальнейшее обращение к подстановкам исчисления не нужно.
7
Теперь, после установки (12), мы можем наконец предложить обещанный способ: путь надо испать на эквивалентность слова и ; подействуйте на треугольник самосовмещениями и ; если получите одинаковый результат, то и, значит, в силу (12) и эквивалентны; в противном случае, опять в силу (12) они не эквивалентны.
Пример 2
Рассмотрим теперь в том же алфавите ассоциативное ичисление с подстановками:
Для этого исчисления легко указывать два способа расозвания эквивалентности.
Первый способ
Данный способ аналогичен способу из примера 1. Фиксируем на плоскости какой-нибудь прямогольник (рис. 10). Обозначим через осевую симметрию плоскости с осью , проходящей через центр симметрини прямогольника параллельно стороне (рис. 11); через обозначим осевую симметрию с осью (рис. 12). Обе эти симметрия являются самосовмещениями исходного прямогольника. Самосовмещения и мы будем называть элементарными.
Как и в примере 1, рассмотрим всевозможные композиции элементарных самосовмещений.
На этот раз самосовмещение мы будем получить из слова заменой буквы на , буквы — на .
Опять выполняются три «кита»:
(A) Левой и правой части каждой из подстановок ичисления соответствует применению (13) подстановки (13), найдите этаонные слова, эквивалентные словам и (как это делается, рассказано при доказательстве (B) из примера 1); если и окажутся эквивалентными одному и тому же этаонному слову, то ; в противном случае и не эквивалентны.
На языке статьи А. Толыго «Инварианты» («Квант», 1976, № 12) второй способ может быть изложен так: для любого слова
(B) Любое слово эквивалентно в нашем исчислении одному из четырех слов: , , , .
(B) Любим двум из слов , , , соответствует соответствующим разные самосовмещения.
Из (A) — (B), как и выше, выводится
Значит, эквивалентность произвольных слов , устанавливается, как в примере 1: подействуйте на прямогольник преобразованиями и ; если получим одинаковый результат, то ; иначе и не эквивалентны.
Второй способ
Присмотревшись к подстановкам (13), можно подметить, что они сохраняют одному из эмалонных слов , , , .
Поскольку у любых двух этаонных слов либо четности числа буква , либо четности числа буква различны (см. рис. 13), эмалонные слова попарно не эквивалентны.
Следовательно, эквивалентность произвольных слов , расположется просто: применения подстановки (13), найдите этаонные слова, эквивалентные словам и (как это делается, рассказано при доказательстве (B) из примера 1); если и окажутся эквивалентными одному и тому же этаонному слову, то ; в противном случае и не эквивалентны.
На языке статьи А. Толыго «Инварианты» («Квант», 1976, № 12) второй способ может быть изложен так: для любого слова
8
α положим
Функции образуют полную систему инвариантов. Поэтому эквивалентность произвольных слов α, β распознается так: посчитайте значения функций и на α и β; если равенства
будут выполнены, α~β; в противном случае α и β не эквивалентны.
Попробуйте решить задачу из примера 1 вторым способом, т. е. при помощи инвариантов. Это намного труднее, чем в примере 2.
Алгоритм существует не всегда
Проблема отыскания способов для установления эквивалентности слов в ассоциативных ичислениях была поставлена в 1914 году норвежским математиком Туэ. Сам Туэ указывал также способы для ассоциативных ичислений неокоторого специального вида.
В 1946 и 1947 годах советский математик Андрей Андреевич Марков и американский математик Эмиль Пост независимо построили ассоциативные ичисления, для которых также способа не существует.
До сих пор в нашей стране мы избегали слова «алгоритм». В математике алгоритм называют точное представление для решения неокоторого класса задач. Эту фразу ни в коем случае нельзя рассматривать как определенное понятие алгоритма — ведь слова «точное представление» не являются каким-то математическим термином, не имеют однозначного смысла.
До тех пор, пока математики занимались построением конкретных алгоритмов, они обходились тем рассыпчатым описанием этого понятия, которое дано выше. Но в первые десятилетия XX века накопилось много классов задач, для которых алгоритма найти не удалось. Математики начали подозревать, что дело не в недостатке у них смекалки. Им пришла в голову мысль: а вдруг для того или иного класса задач просто не во змю же на ней алгоритм? А если его просто не существует?
Для того чтобы доказать, что алгоритма не существует, уже недостаточно распливчатого понятия, надо это понятие уточнить. Такое уточнение и было проделано в середине тридцатьх годов нашего века *).
Лишь после этого уточнения стало в принципие возможного доказывать несуществование алгоритма. Первое доказательство такого рода дал американский логик Алонзо Черч.
Исчисления, построенные А. А. Марковым и Э. Постом, были весом громоздки: они содержали сотни подстановок. Математики стали искать более простые примеры ассоциативных ичислений с неразрешимой проблемой эквивалентности. В этом направленииrekord поставил Григорий Самуилович Цейтин: он построил такое ичисление всего с 7 подстановками **).
Цейтин доказал, что для ичисления в алфавите {a, b, c, d, e} с подстановками
alгоритма распознавания эквивалентности слов не существует.
Интересно, что ичисления с разрешимой и ичислением с неразрешимой проблемой эквивалентности «лежат рядом». В брошюре Б. А. Трахтенброта «Алгоритмы и машинное решение задач» (Москва, Физматгиз, 1960) и ичисление Цейтина было приведено *)
*) Об этом можно прочесть в §§ 7, 13 брошюры Б. А. Трахтенброта «Алгоритмы и вычислительные автоматы» (Москва, «Советское радио», 1974) и на с. 9—13 книги «Машины Тыbiorинга и рекурсивные функции» (Москва, «Мир», 1972).
**) Егоrekord воспользовали перекрыл Юрий Владимирович Матиясевич, построивший такое ичисление с трея подстановками. К сожалению, они слишком длины, чтобы их здесь привести.