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

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

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

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

Добавлен: 19.10.2024

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

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

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

ние покоя д , состояния ^ 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'