Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.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. Рассматриваются автоматы Неймана с двухэтажным алфавитом состояний, среди которых выделяются: состоя
л о