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

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

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

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

Добавлен: 19.10.2024

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

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

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

Для доказательства утверждения Б проследим за тем, как будет перерабатываться, например, конфигурация рис. 50, г в соответствии с программой 31. На этом рисунке взято п = 2s 32. Сначала будут применяться команды

№ оси) oiMafft) '#.(£+/)

Пояснения

ht Ссм.рис. <+9)

 

 

 

 

ftpдвойственная

лю­

 

Ж

Р

Завершение

бое

 

Ж

 

 

лю­

I

левой,

 

I

дихотомии

А '

Ж

бое Ж

 

лю­

 

 

Ж

Завершение

бое

 

 

правой,

 

 

лю­

I

дихотомии

Ж

£1

бо^ Ж_

 

лю­

I

р

I

 

бое

Ж

Л

* _

 

лю­

 

P

I

 

бое _А_

* .

Пли .'

 

~

Р

 

 

Ж

г-I *

 

 

Л

Ж J L

 

Рбое *I

ЛЖ лю­ боелю­

 

 

Рис.

61.

из

31/; но поскольку

конфигурация рис. 50, г совпадает

с

конфигурацией рис.

48, е,

то через 3 (л/2— 1) + 1 такт

появится конфигурация рис. 48, ж (см. утверждение А в кон­ це § 21). На следующем такте с помощью команд 37, 38 программы 31, будет выработана конфигурация рис. 50, е.

171


Итак, за 3 (л/2— 1) + 2<3/г/2 тактов происходит разбиение активной зоны длиной п на две подзоны длиной /?/2 каждая; правая подзона в точности такого же вида, как исходная зона на рис. 50, г, но вдвое короче; левая же — это умень­ шенная вдвое зона рис. 50, д. Описанную часть процесса будем называть левой дихотомией, ..отражая в этом назва­ нии то обстоятельство, что к разбиению зоны на две под­

зоны мы пришли, отправляясь

от конфигурации рис. 50, г

с обозревающим состоянием 1

на левом краю. Совершенно

аналогично проверяется, что за такое же самое чнсло'тактов происходит правая дихотомия, т. е. переработка конфигура­ ции рис. 50, д с обозревающим состоянием ~ на правом краю

в конфигурацию рис. 50, е. В этом

случае

вначале будут

применяться команды из ЭТр до получения

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

рис. 48, к, а потом уже команды 39,

40 обеспечат переход

к конфигурации рис. 50, е. Иначе

говоря,

дихотомия —

это разбиение длинной шеренги стрелков на две более ко­ роткие шеренги, каждая со своим левофланговым и право­ фланговым.

Теперь мы уже можем завершить доказательство утверж­ дения Б. Пусть п = 2s . Тогда интересующий нас процесс распадается на s циклов. На первом цикле, который длится не более З/г/2 тактов,- происходит правая дихотомия. На

втором цикле одновременно происходят правая

дихотомия

в

левой

подзоне

длиной

я/2 = 2 s - 1

и

левая

дихотомия

в

правой

подзоне

той же

длины; на

это

уходит не более

чем З/г/4 тактов. В результате (см. рис. 50, ж) появляется уже четыре зоны длиной /г/4 каждая, в которых одновремен­ но будут происходить дихотомии на следующем цикле с за­ тратой не более чем З/г/8 тактов и т. д. После (s — l)-ro цикла появится конфигурация такого вида, как на рис. 50, з. Тогда, наконец, применение команд 41—44 программы 9i

породит

через

один

такт

«стреляющую» конфигурацию

рис. 50,

в. Итак, общее

число

использованных тактов не

превосходит

 

 

 

 

 

 

З/г/2

( i +

i +

-

. . .

+ - l T ) + i < 3 n .

Утверждение Б доказано.

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

.178


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

„ pi

нии ~ , и получает возможность распространять свое влия­ ние на обе подзоны в качестве общего для них погранич­ ного элемента. Реализация этой идеи потребует увеличения числа состояний по сравнению с программой 31, но оценка для времени остается прежней: число тактов не превосхо­

дит 3/1*).

§23. СРАВНЕНИЕ НЕЙМАНОВЫХ

ИТЬЮРИНГОВЫХ ВЫЧИСЛЕНИЙ

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

23.1. Кодирование. Как и прежде при изучении машин Тьюринга и по тем же мотивам, мы будем рассматривать автоматы Неймана как инструмент для вычисления функции. Не ограничивая общности рассмотрений, можно сосредо­ точить внимание на случае, когда речь идет о словарных функциях, аргументы и значения которых являются слова­ ми в алфавите (0, 1). Определение вычислимости по Ней­ ману формулируется, как это и следовало ожидать, так:

автомат

Неймана вычисляет функцию /, если для каждого

слова Р

из области определения этой функции

перераба­

тывает конфигурацию, изображающую или, как говорят еще, кодирующую слово Р, в конфигурацию, кодирующую

слово

R = f (Р).

По существу,

нужно

только

уточнить,

какой

способ кодирования слов

имеется

в виду.

Казалось

бы, естественнее

всего считать

кодом

слова Р

= Р (1)...

Р(п) само это слово, точнее, конфигурацию ... ф ф Р (1) Р(2)...

...

Р (п) ф ф

активная часть которой совпадает со словом

Р.

Однакоздесь имеется одна трудность, которую можно

*) Можно показать, что ни при каком решении задачи о стрел­ ках время от получения приказа левофланговым до выстрела не мо­ жет быть меньше 2/г — 2. Впервые решение с минимальным возмож­ ным временем получил японский математик Э. Гото; однако в реше­ нии Гото каждый стрелок — нейманов элемент — имел много тысяч состояний. Советский математик В. И. Левенштейн нашел решение с минимальным временем 2п — 2 и с 9 состояниями.

179-



пояснить на следующем примере. Рассмотрим функцию /, определяемую условием / (ООО) =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. Рассматриваются автоматы Неймана с двухэтажным алфавитом состояний, среди которых выделяются: состоя­

л о