Файл: Кушнер, Б. А. Лекции по конструктивному математическому анализу.pdf

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

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

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

Добавлен: 15.10.2024

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

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

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

НОРМАЛЬНЫЕ АЛГОРИФМЫ

49

с этим запись Р е Л

(где Р слово, А — алфавит)

озна­

чает, что Р является

словом в алфавите Л.

 

Применительно к словам общее интуитивное понятие алгорифма переходит в понятие алгорифма в данном ал­ фавите. Именно, под алгорифмом в данном алфавите А

мы понимаем точное предписание, определяющее дис­ кретный детерминированный процесс преобразования слов в этом алфавите, допускающий в качестве исход­ ных данных произвольные слова в Л и дающий в каче­ стве результатов (разумеется, в тех случаях, когда соот­ ветствующий процесс оканчивается) также слова в Л. Упомянутое предписание должно обладать характерны­

ми чертами алгорифма, указанными

в п. 5 введения. Вво­

димое ниже понятие

«нормального

алгорифма» (М а р-

к о в [2]) направлено

на уточнение описанной только что

расплывчатой интуитивной концепции «алгорифма в дан­ ном алфавите».

Условимся о некоторых обозначениях.

Если 21 алгорифм в алфавите А, Р — слово в этом алфавите и процесс применения алгорифма 21 к слову Р заканчивается, то мы пишем !?l (Р) . Результат работы в этом случае обозначается через 2t(P). Таким образом, запись

21 (P) = Q

(или

Q=p3l(P))

выражает то обстоятельство, что Q является результа­ том работы алгорифма 21 над словом Р. В этой ситуации мы будем также говорить, что 21 перерабатывает слово Р в слово Q.

Мы будем использовать также знак условного ра­ венства «~»: два выражения, соединенные этим знаком, означают одно и то же слово, если хотя бы одно из них имеет смысл. Таким образом, запись

2t(P)~93(Q)

выражает то обстоятельство, что !2t(P) равносильно !23(Q) и в случае выполнения хотя бы одного из этих ус­ ловий алгорифмы 21 и 33 дают одинаковый результат на словах Р и Q.


50

АЛГОРИФМЫ И

ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА

[ГЛ. 1

 

Алгорифм 91 будем

называть алгорифмом над

алфа­

витом Л, если он является алгорифмом в некотором рас­

ширении алфавита

А.

 

 

А. Будем

Пусть

91ь

912 — алгорифмы над алфавитом

говорить, что эти алгорифмы

эквивалентны относительно

алфавита

А,

если выполнены

условия

 

1)

всякий

раз,

когда

911 перерабатывает

какое-ни­

будь

слово Р в алфавите А

в некоторое слово Q в том

же алфавите, алгорифм 912 также перерабатывает Р в Q;

2)

то же с переменой

ролей 91[ и 912.

 

Алгорифмы $1

и 9t2 называются вполне

эквивалент­

ными

относительно

алфавита

А, если

 

1) всякий раз, когда 9ii применим к какому-нибудь

слову

Р

в А,

912 также применим к этому слову и дает

тот же самый результат, что и 9li;

 

2)

то

же

с переменой

ролей 9U и 91г.

 

С помощью знака условного равенства свойство полной

эквивалентности алгорифмов 9li, 912 относительно

алфа­

вита Л, очевидно, выражается так:

 

 

 

 

 

91, (Р)с±%(Р)

 

 

 

для любого слова Р в алфавите

А.

 

 

 

Пусть Ли

Мг — множества

слов

в

некотором

алфа­

вите А. Алгорифм

91 будем называть

алгорифмом

типа

(Ж\~г>- JCi),

если

91 перерабатывает

всякое слово

из Ли

к которому он применим, в слово из Л?.. Если, сверх того,

91 применим к любому слову из

Ли то

мы

будем

гово­

рить, что 91 является алгорифмом

типа

(Л\-+ Л%).

От­

метим, что в соответствии с принятым нами

соглашением

обозначать множество всех слов в данном алфавите так

же, как и сам алфавит,

утверждение «алгорифм

91

яв­

ляется алгорифмом типа

( Л т * Л ) » означает, что

91

пе­

рерабатывает всякое слово в алфавите А, к которому он применим, в слово в алфавите А.

Очевидно, что для алгорифмов

типа

( Л т * Л )

эквива­

лентность относительно

алфавита

Л

равносильна пол­

ной эквивалентности относительно

А.

 

 

Ясно, что в тех случаях, когда

нас интересует

работа

данного алгорифма не

на всех словах

его алфавита * ) ,

*) Как увидит читатель, в большинстве случаев именно гак и обстоит дело,


НОРМАЛЬНЫЕ АЛГОРИФМЫ

51

а лишь на словах более узкого алфавита А, можно дан­ ный алгорифм заменить любым алгорифмом, вполне эк­ вивалентным ему относительно Л. Если, сверх того, мы интересуемся лишь теми результатами работы исход­ ного алгорифма, которые являются словами в Л, то при упомянутой замене можно удовлетвориться алгориф­

мами,

эквивалентными

данному относительно А.

 

2.

Будем

говорить,

что слово Р входит в слово

Q,

если существуют слова R] и R2

такие, что *)

 

 

 

(2)

 

 

 

 

Q ==

R,PR2.

 

 

 

 

 

Например, слово «ба» входит в слово «баобаб».

Из

этого примера видно, что при фиксированных Р и Q

слова R\, R2 в представлении (2) определяются, вообще

говоря, неоднозначно.

Чтобы различать

 

возникающие

здесь

возможности, поступим

следующим

образом

(ср.

М а р к о в

[2]).

 

 

 

 

 

 

 

 

 

Пусть

мы

рассматриваем

слова

в некотором

алфа­

вите А. Обозначим через

ос какую-нибудь

букву,

не при­

надлежащую Л, и рассмотрим слова вида

 

 

 

 

(3)

 

 

 

 

 

RtaPaR2,

 

 

 

 

 

которые

будем

называть

вхождениями

в

алфавите

А.

При этом слова Ri и

Р

называются соответственно

ле­

вым крылом

и

основой

вхождения

(3). Вхождения

(3),

для которых имеет место

 

 

 

 

 

 

 

 

 

 

 

 

Q =

R{PR2,

 

 

 

 

 

мы называем вхождениями в слово Q, или, более под­ робно, вхождениями слова Р в слово Q.

Совершенно очевидно, что слово Р тогда и только

тогда

входит в слово Q, когда существует по крайней

мере одно вхождение Р в Q.

 

Возвращаясь к приведенному выше примеру, напи­

шем

все вхождения слова «ба» в слово «баобаб». Этих

вхождений два, именно:

 

(4)

абаао

баб

и

баоа

бааб.

 

*) Если Р и Q — слова, то PQ означает слово, получающееся приписыванием к Р справа слова Q.



52 АЛГОРИФМЫ И ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА [ГЛ. I

В качестве другого примера рассмотрим вхождения пу­ стого слова в слово «ба». Таких вхождений имеется три: ааба, бааа и бааа. Вообще, число вхождений пустого слова в слово длины п равно п -f- 1.

Вхождение (3) слова Р в слово Q будем называть первым вхождением Р в Q, если длина левого крыла любого вхождения Р в Q не меньше длины Ri. Напри­ мер, вхождение (4) является первым вхождением слова

«ба»

в слово

«баобаб».

 

 

 

 

 

 

Пусть

R\aPaR2

— вхождение

и

S — слово.

Слово

R1SR2 будем называть результатом подстановки

слова S

вместо вхождения R\aPccR2. Например,

слово

«баркас»

есть результат

подстановки

слова

«бар» вместо

вхож­

дения

«акаракас»

(которое

является

первым

вхожде­

нием

слова

«кар»

в слово «каркас»),

а

слово

«переход»

есть результат подстановки слова «пере»

вместо

первого

вхождения пустого слова в слово

«ход».

 

 

 

3.

В основе

определения

нормального

алгорифма

ле­

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

Условимся, что буквы «—*•» и «•» не принадлежат

рас­

сматриваемым алфавитам. Пусть Р и

Q — слова

в

не­

котором алфавите А. Слова P-+Q

и P-*--Q

 

мы

называем

соответственно

простой

и

заключительной

формулой

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

алфавите

А

(при этом Р

и

Q

называются левой и правой частью соответствующей формулы подстановки). Нормальный алгорифм в алфа-