Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.10.2024

Просмотров: 115

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ся любая последовательность букв этого алфавита. Напри­ мер, abaa и bbac являются словами в алфавите {а, Ь, с}. Если слово L является частью слова М, то будем говорить о вхож­ дении слова L в слово М. Например, в слове abcbcbab имеют­ ся два вхождения слова bcb, одно начиная со второй буквы,

а другое—с четвертой. Мы будем рассматривать

преобра­

зования

одних слов

в другие посредством

некоторых допу­

стимых

подстановок,

которые

задаются

в виде Р — Q или

Р ->- Q,

где Р, Q — два слова в том же алфавите.

 

Применение ориентированной

подстановки Р -v

Q к сло­

ву R возможно в том случае, когда в нем имеется хотя бы одно вхождение л е в о й ч а с т и Р ; оно заключается в за­ мене любого одного такого вхождения соответствующей пра­ вой частью Q. Применение же неориентированной подста­ новки Р — Q допускает как замену вхождения левой части правой, так и замену вхождения правой части левой. Начиная с этого места, мы будем рассматривать преиму­ щественно неориентированные подстановки, называя их просто подстановками, там, где это не вызывает недора­ зумений.

П р и м е р 1. Подстановка ab — bcb применима четырь­ мя способами к слову abcbcbab; замена каждого из двух вхождений bcb дает слова: aabcbab, abcabab, а замена каждого из двух вхождений ab дает слова: bcbcbcbab, abcbcbbcb. К слову же bacb эта подстановка неприменима.

Условимся называть ассоциативным исчислением сово­ купность всех слов в некотором алфавите вместе с какойнибудь конечной системой допустимых подстановок.

Для того чтобы задать ассоциативное исчисление, доста­ точно указать соответствующие алфавит и систему подста­ новок.

4.2. Проблема эквивалентности слов. Если слово R мо­ жет быть преобразовано в слово 5 посредством однократ­ ного применения допустимой подстановки, то и 5 может быть преобразовано в R таким же путем; в таком случае R

и

S

будем

называть

смежными словами. Последователь­

ность слов Rlt

R2,

 

R,^b

Rn таких, что Rx и R2

смежны,

Rz и R-d

смежны,... Rn-l

и Rn

смежны, будем называть дедук­

тивной

цепочкой,

ведущей

от # t к

Rn. Если

существует

дедуктивная цепочка, ведущая от слова R к слову 5, то,

очевидно, существует

и дедуктивная

цепочка,

ведущая от

S

к

R;

в таком

случае слова будем

называть

эквивалент­

ными

и обозначать это так: R 5.

Ясно также,

что если

34


5 R и R — T, то 5 Т. В дальнейшем

нам

понадобит­

ся еще следующая

лемма.

 

 

 

 

 

 

 

Лемма. Пусть

Р ~ Q; тогда, если в каком-либо

слове

R имеется вхождение Р, то в результате

подстановки

вме­

сто него Q получается слово, эквивалентное

R.

 

 

 

R

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

В условиях

леммы

слово

удобно представить в виде SPT,

где S — часть

слова

R,

предшествующая вхождению

Р,

н Т — часть,

следующая

за ним, а преобразованное слово в виде SQT. Далее, в силу

эквивалентности Р ~ Q

существует дедуктивная

цепочка

Р, Ри Рг> •••> Л т

Q- Но в таком случае, как легко видеть,

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

SPa r, SP2T,

 

SPmT,

SQT

является дедуктивной цепочкой,

ведущей

от SPT

(т. е. R)

к SQT (т. е.

к преобразованному

слову). Лемма

доказана.

П р и м е р

2.

Рассмотрим ассоциативное

исчисление,

которое было изучено Г. С. Цейтнным.

 

 

 

 

 

Алфавит: {а, Ь, с, d, е). Система допустимых

подстано­

вок

 

 

 

 

 

 

 

 

 

 

 

ас

са,

 

bd—db,

 

 

 

 

 

 

ad

da,

abac

abace,

 

 

 

 

 

 

be

cb,

 

eca

ae,

 

 

 

 

 

 

 

 

 

edb—-be.

 

 

 

 

 

В этом исчислении к слову abode применима только третья подстановка и оно имеет только одно смежное слово acbde. Далее имеет место эквивалентность abode ~ cadedb, как видно из следующей дедуктивной цепочки: abode, acbde, cabde, cadbe, cadedb.

Если же взять слово aaabb, то к нему неприменима ни одна из подстановок и поэтому оно не имеет никаких смеж­ ных слов; тем более не существует слов, отличных от aaabb, которые были бы ему эквивалентны.

Для каждого ассоциативного исчисления возникает своя специальная проблема эквивалентности слов. Она заклю­ чается в следующем.

Для любых двух слов в данном исчислении требуется уз­ нать, эквивалентны они или нет.

Поскольку различных слов в любом исчислении найдет­ ся бесчисленное множество, то фактически здесь имеется

бесконечная серия

однотипных задач, а решение мыслится

в виде алгоритма,

распознающего эквивалентность или не­

эквивалентность любой пары слов.

2*

35


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

4.3. Проблема слов и лабиринты. Укажем на связь про­ блемы эквивалентности слов с проблемой Тезея. Если по­ строить для каждого слова свою «площадку» и для каждой пары смежных слов — коридор, соединяющий соответст­ вующие площадки, то ассоциативное исчисление предста­ нет перед нами в виде лабиринта с бесконечным числом пло­ щадок и коридоров, в котором от каждой площадки расхо­ дится только конечное число коридоров (правда, здесь воз­ можны и такие площадки, из которых не выходит ни одного коридора: см. слово aaabb в примере 2). При этом дедуктив­ ная цепочка, ведущая от какого-либо слова R к слову Q, будет представлять собой путь в лабиринте, ведущий от од­ ной площадки к другой. Значит, эквивалентности слов со­ ответствует взаимная достижимость каждой из площадок, если отправляться от другой. Наконец, при такой трактов­

ке сама проблема слов становится проблемой

поиска пути

в бесконечном лабиринте.

 

Для того чтобы лучше уяснить специфику

тех трудно­

стей, которые здесь возникают, рассмотрим предварительно

ограниченную проблему слов, которая заключается в следую­ щем.

Для

любых двух слов R и Т в данном ассоциативном исчи­

слении

требуется узнать,

можно ли

преобразовать

одно

в другое

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

применением

не

более чем k

раз

допустимых подстановок (k — произвольное,

но фиксирован­

ное число).

 

 

 

 

При такой постановке проблемы алгоритм строится лег­ ко: именно, можно пользоваться уже известным нам алго­

ритмом перебора,

при котором

просматривается

список

всех слов, начиная

со слова R, переходя ко всем его смеж­

ным словам, потом

к смежным

для смежных и так

далее

k раз. Ответ на поставленный вопрос будет положительным

36


или отрицательным в зависимости от того, будет ли обнару­ жено слово Т в этом списке или нет.

Однако если вернуться к неограниченной проблеме слов, то там положение существенно иное. Поскольку длина де­ дуктивной цепочки , ведущей от R к Т (если такая сущест­ вует), может оказаться сколь угодно большой, то, вообще говоря, неизвестно, когда следует считать законченным про­ цесс перебора. Пусть, например, мы уже продолжили про­

цесс перебора

до 1020 = 100 ООО ООО ООО ООО ООО ООО и уже

располагаем

списком всех слов, которые можно получить

из R при помощи многократных применений подстановок,

общее число

которых не превосходит 1020, и пусть в этом

списке слова

Т не оказалось. Дает ли это нам какое-либо

основание для заключения о неэквивалентности слов

R

и Г? Разумеется, нет, ибо не исключена возможность,

что

R и Т эквивалентны, но минимальная дедуктивная цепоч­

ка, соединяющая их, еще длиннее.

 

4.4. Построение алгоритмов. Для получения желаемых результатов здесь приходится отказаться от простого пере­ бора; необходимо привлекать другие идеи, основанные на анализе самого механизма преобразования одних слов в дру­ гие посредством допустимых подстановок. Попытаемся, например, выяснить, эквивалентны ли в исчислении Цейтина (см. пример 2) слова abaacd и acbdadl Отрицатель­ ный ответ на этот вопрос вытекает из следующих соображе­ ний: в каждой из допустимых подстановок этого исчисле­ ния левая и правая части содержат одно и то же число вхож­ дений буквы а (или же вовсе не содержат этой буквы); по­ этому в любой дедуктивной цепочке все слова должны со­ держать одно и то же число вхождений буквы а. Поскольку в предложенных двух словах число вхождений буквы а не одинаково, эти слова не эквивалентны.

Обнаружение подобных дедуктивных инвариантов, т. е. свойств, остающихся неизменными для всех слов дедуктив­

ной цепочки, и

позволяет

в некоторых

случаях

находить

искомые разрешающие алгоритмы.

 

 

 

 

П р и м е р

3.

 

 

 

 

 

 

Алфавит: {а, Ь, с,

d, е). Система

допустимых

подстано­

вок:

 

 

 

 

 

 

 

 

ab

ba:

ае

еа;

be

eb;

de

ed\

ас

ca;

be

cb;

cd

dc\

 

 

 

ad

da;

bd

db;

ce

ec.

 

 

 

37


Эти допустимые подстановки не изменяют количества вхож­ дений каждой буквы в слове, меняется только порядок букв в слове. Непосредственно ясно, что два слова эквивалент­ ны в том и только в том случае, когда в них одинаковое чис­ ло вхождений каждой буквы. Поэтому алгоритм распозна­ вания эквивалентности весьма прост и сводится к подсчету числа вхождений букв в каждое из этих слов и сравнению этих чисел.

Ниже мы разберем подробно более сложный пример, но предварительно условимся о следующем обобщении по­ нятий «слово» и «допустимая подстановка». Именно, будем рассматривать, кроме обычных слов, в данном алфавите и пустое слово, не содержащее ни одной буквы, и примем для него обозначение Д. Вместе с тем будем допускать и подстановки вида Р — Д .

При этом замена левой части пустым словом означает про­ сто, что из преобразуемого слова выбрасывается вхожде­ ние слова Р. Замена же правой части левой означает, что между двумя какими-либо буквами преобразуемого слова или впереди него, или за ним вставляется слово Р.

П р и м е р 4. Дано

ассоциативное

исчисление в алфа­

вите \а, Ь, с} с системой

подстановок:

 

b

асе,

аа

Д,

са

асес,

bb

Д,

 

 

 

сссс

Д .

Требуется найти разрешающий алгоритм для проблемы эквивалентности слов в этом исчислении.

Построим один вспомогательный алгоритм — алгоритм приведения, который указывает для любого слова эквива­ лентное ему слово специального вида — приведенное сло­ во. Для этого рассмотрим упорядоченную систему ориенти­ рованных подстановок

b -> асе,

аа-+ Д,

са асес,

сссс ->- Д

и условимся, что в применении к какому-либо слову R ал­ горитм работает так: берется первая по порядку подстанов­ ка (ориентированная) из этого списка, которая применима к слову R, и при наличии нескольких вхождений ее левой части в слове R подстановку применяют к первому, самому левому, вхождению; для полученного таким образом слова

38