Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы

.pdf
Скачиваний:
33
Добавлен:
21.10.2023
Размер:
9.86 Mб
Скачать

пояснить на следующем примере. Рассмотрим функцию /, определяемую условием / (ООО) =000, / (Р) = 1, для всех двоичных слов Р, отличных от ООО; в частности, f (0000) = 1. Эта функция весьма проста и, конечно, было бы более чем странно, если бы в соответствии с принятым нами опреде­

лением вычислимости

оказалось,

что она не вычислима по

Нейману. Итак,

пусть 31 — автомат Неймана, вычисляю­

щий

эту функцию.

Среди

пяти

команд

этого

автома­

та,

имеющих в

качестве

левых

частей

тройки

ф 00,

000,000, 00 0,00

ф хотя

бы одна обязана

быть активной

(т. е. a (t +1) отлично от a (t)); иначе в начальной конфигу­ рации... ф0000ф... не была бы применила никакая актив­ ная команда, а следовательно, она была бы стабильной, т. е. автомат 32 не изменял бы ее; но это противоречит тому, что / (0000) = 1. Итак, имеется активная команда указан­ ного вида; но тогда конфигурация... ф000ф... не может быть стабильной, т. е. автомат начнет ее преобразовывать. Поскольку / (000) = 000, то через некоторое число тактов (обозначим его о) опять возникнет та же самая конфигура­ ция... 00000..., для которой начнется следующий цикл преобразований, и так периодически все будет повторяться через каждые о тактов. Иначе говоря, будучи запущенным

в

начальной конфигурации... 00000...

, автомат впадает

в

бесконечный процесс, и, собственно

говоря, без допол­

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

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

1. Рассматриваются автоматы Неймана с двухэтажным алфавитом состояний, среди которых выделяются: состоя­

л о

ние покоя д , состояния ^ J — коды первой буквы (нуля или единицы) в исходном слове, состояния °\, \ — коды первой

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

изображают

 

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

исходное

слово

Р — Р (1)

Р (2)...

Р (п)

и

результирующее

слово

R =

R (1)

R

(2)...

... R (s).

 

 

 

 

 

 

 

 

 

 

 

 

 

«0

 

 

 

 

 

 

 

6)

mm

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

6) Л т

R0

 

 

 

 

ЩЛ

г)

 

 

 

 

 

 

А

 

 

 

 

 

 

 

 

 

 

 

Л % Л

 

 

 

 

Л Л

 

 

Л |

 

 

 

 

 

Л /

 

Л

 

 

 

 

 

 

Л 0

Л

-

 

 

 

 

Л /

 

Л

 

 

 

 

 

 

Л 1

Л

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 52.

 

 

 

 

 

 

 

2. Предполагается,

что

всякая

команда

a"

(t)

a (t)

a+(t)-+a

 

(t

+

1), в левой части которой встречаются лишь

состояния Д|

д . д>

I • 1 > пассивна, т. е. a (t

+

1) =

а (t).

Следовательно,

каждая заключительная

конфигурация

стабильна.

Появление

нижнего

символа «!» в

стабильной

конфигурации является как бы сигналом готовности авто­

мата — остановившегося в стабильном

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

состоянии — к выдаче полученного результата.

 

Сложность вычислительного процесса в автомате Ней­

мана

можно охарактеризовать так же,

как

и в случае

тыоринговых вычислений, сигнализирующими

функциями,

для которых мы сохраним прежние обозначения. Например,

(^) — сигнализирующая времени указывает число так­ тов, затрачиваемых автоматом 3? на переработку начальной конфигурации, изображающей слово Р, в соответствующую заключительную конфигурацию.

Сделаем еще одно важное для дальнейшего замечание, касающееся оценки сигнализирующей функции (Р).

Допустим, что для определения значения R функции / (Р)

J81 -

необходимо на самом деле знать полностью (пли почти пол­ ностью) слово Р и недостаточно располагать информацией о его небольшой части, например о небольшом его началь­ ном куске. В таком случае, поскольку в начальной конфи­ гурации лишь первая буква из Р закодирована символом,

•отличным от д0, д1, то согласно свойству 2л кодирования

с необходимостью должно быть

(Р) ^ | Р | = /г. Ведь за

меньшее число тактов автомат просто не успеет полностью прочесть исходное слово. Иначе говоря, принятый нами способ кодирования начальной конфигурации не дает явных преимуществ автомату Неймана по сравнению с машиной Тьюринга, обозревающей первую букву слова. Однако авто­ мат Неймана может проявлять свои преимущества уже в про­ цессе работы, действуя как неограниченно разрастающаяся система машин Тьюринга с общей памятью. Резюмируя сказанное, подчеркнем, что в нетривиальных ситуациях имеет место неравенство ^ ( P ) ^ | P | , которое и будет ис­ пользовано нами в подходящий момент.

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

В § 21 уже было показано, как строится для всякой машины Тьюринга 93? моделирующий ее автомат Неймана 93?. Допустим, что 93? вычисляет функцию /(Р). Тогда для произвольного слова Р из области определения функции f, если 9)? преобразует конфигурацию рис. 52, а, в конфигу­ рацию рис. 52, б за (Р) тактов, то 93? преобразует конфи­ гурацию рис. 52, в в конфигурацию рис. 52, г за столько же

тактов,

т. е.

^ j ( ^ ) = ^ ( ^ ) - Итак,

справедлива

следую­

щая теорема.

Всякая

функция

 

вычислимая

по Тью­

Т е о р е м а 1.

/,

рингу,

вычислима

и по

Нейману;

более того, для

любого

тыорингова

вычисления

f

возможно столь же быстрое ней­

маново

вычисление.

 

 

 

 

 

 

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

182.

вопросов, направленных на выяснение того, 'какие допол­ нительные вычислительные возможности возникают, если тыоринговым машинам предпочесть автомат Неймана. Пер­ вый и основной вопрос таков: существуют ли функции, вычислимые по Нейману, но не вычислимые по Тьюрингу?

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

Т е о р е м а

2. Всякая

функция,

вычислимая

по

Ней­

ману, вычислима

и по Тьюрингу.

 

 

 

 

Доказательство этой теоремы молено рассматривать как

еще один довод в пользу основной гипотезы.

 

 

 

Хотя, как это показывают теоремы 1 и 2,

автомат

Ней­

мана п машина

Тьюринга

способны

делать

одно

и то

же,

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

Т е о р е м а

3.

Существует

автомат

Неймана

3?0,

распознающий

симметрию слов в алфавите

(0, 1) с линей­

ной оценкой времени,

т. е. за время,

не превосходящее

\Р\,

где Cj)7o константа, не зависящая от Р.

Для сравнения вспомним (см. § 19), что если какаянибудь машина Тьюринга ffi распознает симметрию, то обя­ зательно

7 д а ( / г ) > C$ln*>

(1)

где Ccffi — константа, не зависящая от п. Итак, мы распола­ гаем конкретным автоматом Неймана 320, таким, что для всякой машины Тьюринга, способной делать то же самое, что и 5к0 (а именно — распознавать симметрию), справедливо неравенство

^ ( ' г ) > % ^ 0 ( " ) .

(2)

где Daft не зависит от п. В качестве

можно взять

Естественно спросить, можно ли (а если да, то для каких' функций) при вычислении получить еще более значитель-

183

ную экономию времени за счет применения неймановых автоматов. Например, существует ли такая функция / и та­ кой вычисляющий ее нейманов автомат 3{, чтобы для любой тьюринговой машины 9ft, вычисляющей /, выполнялось неравенство

ТШ(п)>ЕшТ^(п),

(2')

где Е<£1 — константа, не зависящая от п?

Следующая теорема выясняет реальное положение дел. Т е о р е м а 4. Каковы бы ни были функции / и вычис­ ляющий ее автомат Неймана 31, найдется такая машина Тьюринга ffl, вычисляющая f, для которой справедливо нера­

венство

% г ( Р ) < 1 8 . % ( Р )

(3)

при любом исходном слове Р.

 

Таким образом, теорема 4 дает отрицательный

ответ на

поставленный вопрос. За счет применения неймановых авто­ матов невозможно получить более существенное сжатие времени вычисления, чем порядка корня квадратного от времени, затрачиваемого при «экономных» тыоринговых вычислениях. Вместе с тем, как показывает пример с рас­ познаванием симметрии, такое сжатие иногда достижимо.

Доказательство теоремы 3 излагается в следующем пунк­ те этого параграфа. Что же касается теорем 2 и 4, то они являются прямыми следствиями одного общего факта, кото­ рому посвящен п. 23.4 этого параграфа. В нем описывается алгоритм, который по любой неймановой программе 31 строит тьюрингову программу 3)?, в определенном смысле моделирующую нейманову программу 31. Если 31 вычис­ ляет некоторую функцию f, то и Ж вычисляет ту же функ­ цию. Однако (и в этом проявляется существенное отличие от рассмотренного ранее моделирования тьюринговой ма­ шины посредством нейманова автомата) один такт работы автомата 31 имитируется машиной 5Ш в течение большего числа тактов. Более того, это число не остается неизменным; оно, вообще говоря, возрастает вместе с порядковым номе­ ром моделируемого такта. Тем не менее, оказывается, что

если

31 — работает t тактов, то

машина Тьюринга в про­

цессе

имитации уложится за

время, не превосходящее

18Р.

Взаключение этого пункта заметим, что алгоритмы,

преобразующие ЗП в

(при неймановом моделировании)

и 3) в

(при тьюринговой моделировании), можно охарак-

184

теризовать, пользуясь терминологией § 10, как програм­ мирующие алгоритмы для нейманова программирования и тьюрингова программирования соответственно.

23.3. Распознавание симметрии на автомате Неймана. Можно сразу, так сказать «в лоб», построить нейманову про­ грамму автомата, существование которого утверждается теоремой 3. Однако мы здесь предпочитаем идти окольным, но, как нам кажется, более поучительным путем, опираясь на разбор и решение задачи о стрелках. Нам нужна про­ грамма, в соответствии с которой начальная конфигурация

а)

Л

РЮ Р/2) Р13)

 

РО) Pff'il

 

я м

Р12>)

Л

 

Л

л Л л

 

л п\ • • •

\п

п П

Л

б)'

Л

Л РИ) PI2)

. .

Pli-S) P(f2)

 

Р121-1)Р!2ч) А

Л

Л Л Л J1

 

п I

 

 

I п

п Л Л

 

 

 

 

8)

 

Л p/f) . .

. Ф-К)

1

п

Л

 

 

 

 

Л

л

п

Л

 

 

г>

 

 

. .

. ф*> рщ< . .

 

- . .

 

 

 

 

 

 

/71

 

 

 

 

3)

 

 

 

Л Pit)

т

Л

 

 

 

 

 

 

 

 

Л л

п Л

 

 

 

 

е)

 

 

 

Л Р1П PUD Л

 

 

 

 

 

 

 

Л Л!

П

Л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.

53.

 

 

 

 

 

рис.

52, в перерабатывается

в

одну

из

конфигураций

рис. 52, д или 52, е, в зависимости от того, симметрично слово Р = Р (1)... Р (п) или нет; при этом требуется еще, чтобы эта переработка осуществлялась с линейной оценкой затрачиваемого времени (т. е. за время, не превосходящее const-л). Эту задачу разобьем на две.

Первая задача. Пусть начальная конфигурация взята так, как показано на рис. 53, а, где для простоты п счи­ тается четным числом: n = 2v. Здесь Л П — два специаль­ ных нижних символа в составе двухэтажных букв; их содержательный смысл заключается в различении букв ле­ вой половины слова Р от букв правой половины его. Тре­ буется построить программу %, перерабатывающую за

линейное

время (можно

даже

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

время

v = я/2) конфигурацию

рис. 53, а в ту из конфигураций

рис. 52, д,

е,

которая

правильно

отвечает

на

вопрос:

«симметрично

ли слово Р?» Такая

программа

изображена

на рис. 54;

идея, лежащая в ее

основе,

чрезвычайно

проста. В течение v тактов на каждом такте происходит од-

185'

повременное сползание на одну позицию правой конфигу­ рации влево и левой конфигурации вправо и сравнение пары подошедших к точке стыка полуконфпгурапий. Рис. 53,о изображает сравнение «Р (v) = Р (v + 1)?», рис. 53, б — сравнение «Р (v — 1) = Р (v + 2)?» и т. д. Если слово Р симметрично, то на (v — 1)-м такте появится конфигурация рис. 53, д, которая на следующем такте приведет к конфи-

oc7t)

пюбое

г

Я

z

л

Z

Л

Z

Л

А

А

А

А

А

А

 

 

 

 

Пояснения

х

У

У

х,у,q-

произвольные

П

1

1

Сползание

правой,

полунонфи

гурааии

X

У

z

q,x,y,z

-

произвольные

л

Л

 

Сползание

левой

 

х

 

>

полуконфигурации

X

Z

до

обнаружения

л

Л

Л

асимметрии

X

У

Z

x,y,z

-

произвольные>

л

п

л'

 

но

xty

Сползание

левой

X

 

Z

полуконфигурации

любое

после

обнаружения

Л'

Л'

 

асимметрии

X

х

1

 

 

 

л

П

I

х,у,

z -

произвольные,

X

У

О

 

х*у

 

Л

П

I

 

 

х

г

о

Выдача

результата

Л'

Л

г

 

 

 

 

 

Рис.

54.

 

 

гурации рис. 52, д. Допустим, что слово Р несимметрично и

это обнаруживается

впервые при сравнении «Р (v — k —

_ 1 ) = р (v + /г)?»,

т. е. Р (v — k — 1) Ф Р (v - f k). Тогда

на следующем такте (рис. 53, г) это зафиксируется появле­ нием нижнего символа Л' у точки стыка. Этот символ сохра­ няется при дальнейшем сползании. На предпоследнем так­ те появляется конфигурация рис. 53, е, которая еще через один такт переходит в конфигурацию рис. 52, е. Теперь ясно, что для доказательства теоремы 3 достаточно решить следующую задачу.

J86.

Вторая задача. Построить нейманову программу Э?п, которая обеспечивает переработку конфигурации рис. 52, а в конфигурацию рис. 53, а с соблюдением следующих условий:

а)

переработка происходит за время,

не большее чем

С'П (С — константа);

 

б)

3 i n не имеет общих с 3?^ состояний

кроме состояний:

Л(покоя), л, л, п, п\ в) по ходу этой переработки до появления конфигура­

ции рис.

53, а нигде не появляются состояния л,

л, п.'п-

Легко

понять, что, объединяя

списки активных

команд

программ

и 5кп , мы получим

программу Ш0, удовлетво­

ряющую требованиям теоремы 3,

Именно сначала произой­

дет переход от рис. 52, а и 53, а согласно SRn, а затем далее от 53, а к 52, д или к 52, в согласно fSls- При этом общее затра­ чиваемое время не превышает дозволенной оценки.

Роль программы 9?п заключается, очевидно, в том, чтобы довести одновременно до каждой буквы слова Р информа­ цию-о том, какой половине слова она принадлежит: левой или правой. Аналогия с задачей о стрелках достаточно проз­ рачна. Специфика новой ситуации сводится лишь к следую­ щим двум пунктам: 1) теперь мы имеем дело со стрелками двух категорий (нули и единицы), вместо прежних стрелков одной категории (сплошь палочки); 2) вместо общего для всех приказа «пли» (нижний символ*) теперь стрелкам из левой полушеренги, нужно выполнять приказ «пли на­ лево!» (нижний символ Л), а стрелкам из правой полушерен­ ги— приказ «пли. направо!» (нижний символ П). Однако обе эти особенности несущественны; и рассмотренное нами решение (§ 22) легко может быть приспособлено и к'новым

условиям, причем оценка времени останется

прежней,

т. е. до синхронизированных выстрелов пройдет

не более

5 п тактов. Модификации, которые нужно ввести, потребуют лишь увеличения числа внутренних состояний нейманова элемента (стрелка). Например, вместо двух верхних сим­ волов I, р потребуются четыре: /°, I 1 , р°, р 1 — для запоми­ нания того, какие буквы (0 или 1) стояли в тех местах, где заканчивались очередные циклы дихотомии. В заключи­ тельном такте это позволяет восстанавливать в верхнем этаже первоначальное слово Р; кроме того, увеличение числа состояний необходимо для того, чтобы после первой дихотомии и впредь до выстрела в левой и правой полузовах длиной п/2 употреблялись различные состояния.

167

Это позволяет на заключительном такте установить всюду в левой полузоне нижний символ Л, а всюду в правой полузоне — другой нижний символ П. Опуская эти детали, можем считать теорему 3 доказанной.

а)

0

0 х(1) х(г)

х(£)

x(S-l)xfS)

0

0

 

0

уш)0}

у(г)

yd)

 

 

 

$-1) y(s)

 

0

 

 

0

0

 

0

 

 

 

0

0

 

 

в)

 

X(t) Х(2)

 

 

 

 

 

0

х(5)\

 

 

 

 

 

ф

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

г)

 

 

щ

 

Ш

 

 

 

i(S-2)z(S-/)\х(5)

 

 

X//J Х(2)\

 

(0

 

 

 

xlS-l)x(S) 0

 

 

 

 

0

 

0

 

 

 

0

 

0

 

 

 

0

xlf)

 

T(i-1)

 

 

 

№0x(s)\

 

 

3)

 

0

\xY2)

 

xfi)

 

 

 

 

 

 

 

<x(f)

 

 

Ф1)

 

 

 

0

Ф

0

 

 

 

\х(2)\

 

 

 

 

 

 

 

~0~

Xl3)

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

0

\0

 

 

 

 

И \у(г)

0

 

 

 

 

 

 

 

 

 

И I

 

 

 

 

 

 

 

 

 

 

\У12)\

 

0

 

 

 

0

0

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 55.

 

 

 

 

 

 

 

23.4. Тьюрингово

моделирование

 

автомата

Неймана.

Идея,

лежащая

в основе этого моделирования, иллюстри­

руется

рис. 55. Рассмотрим

нейманову

 

конфиграцию

рис. 55, а, где правее

x(s) и левее

л:(1) — сплошь состояния

покоя. Иначе говоря,

активная

зона

этой

конфигурации

«покрывается»

словом

х (1) х (2)...

х (s),

где среди

х (i)

(L = 1, 2,

s), допускаются, вообще говоря, и вхождения

состояния покоя ф. Тогда за один такт эта конфигурация перерабатывается в конфигурацию рис. 55, б, активная зона которой, очевидно, во всяком случае не длинее s -f- 2

188

и

уж

наверняка покрывается словом

у (0)

у (1)...

у (s)

у

(s +

1) в алфавите всех состояний. На

рис.

55, в, г,

д, е

изображены конфигурации «трехэтажной» машины Тью­ ринга 50?, которая на своем втором этаже стремится ими­

тировать работу заданного автомата Неймана

91. На

рис. 55, в и е показано, как в 50? кодируются

конфигурации

55, а и б. Для и м и т а ц и и одного нейманова

такта

головка

машины 2)?совершает колебания, изображенные посредством зигзагообразной линии под лентой на рис. 55, в. При пер­ вом пробеге — слева направо — машина записывает на верхнем этаже каждой посещаемой ячейки содержимое вто­ рого этажа соседней с нею левой ячейки. В результате воз­ никает конфигурация рис. 55, г. При возвращении налево в нижний этаж каждой ячейки заносится содержимое вто­ рого этажа соседней справа ячейки. Итак, после одного полного колебания в каждой ячейке зоны длины s + 2 уже накоплена информация о состоянии соответствующей ней­ мановой ячейки и о состояниях ее соседей слева и справа. Начиная свой очередной пробег слева направо, машина 50? осуществляет в каждой ячейке замену тройки неймановых состояний тем состоянием, которое предписывается суще­ ствующей командой программы 31; это состояние заносится на второй этаж, а другие два этажа очищаются. К концу третьего пробега запись на тьюринговой ленте уже имеет вид, указанный на рис. 55, е. Наконец, головка возвра­ щается влево, не производя никаких записей и, достигнув ячейки с записью и (0), переходит в состояние (обозначен­ ное на рис. 55, в через г0). Теперь она уже готова к сле­ дующему циклу, в котором будет моделироваться следующий нейманов такт. Ясно, что можно построить машину Тьюрин­ га 50?, выполняющую описанный нами алгоритм (подтверж­ дение основной гипотезы теории алгоритмов).

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

одну ячейку дальше.

 

 

Оценим число тактов, которые затратит

машина 50?

при имитации t тактов автомата Неймана 50?,

запущенного

на конфигурации с активной зоной длины

d.

Очевидно,

53? содержит t циклов с общей длительностью

не более,

чем сумма арифметической прогрессии

 

 

189

Соседние файлы в папке книги из ГПНТБ