Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 120
Скачиваний: 0
Группа П. / р ^ р ' , |
1р'-у?", |
/ р " - ^ / 7 Р ) |
| р - * р ' , |
|р' - >р", |
| р" ^ /7р. |
Эти команды не изменяют записи на ленте, а лишь управ ляют перемещением головки. В соответствии с командами группы I , начиная с конфигурации рис. 42, а, головка приступает к перемещению вправо, сохраняя состояние я; дойдя до символа р, «отражается» и, переходя в состоя ние я ' , начинает перемещение влево. В соответствии с ко-
Сплошь палочки
в) |
1 |
1 |
|
1 |
1 |
\ |
р |
|
1 |
ж |
|
|
1 . . . |
1 |
р |
|
1 |
|
1 |
||||
|
£> |
|
|
|
. |
"/г |
|
8) |
1 |
1 |
|
1 |
1 . . . |
| |
р |
|
f> |
|
|
|
|
|
|
ч) |
L |
I |
|
1 |
1 |
1 |
р |
д) |
1 |
|
. . . |
р" |
Ж' |
|
Р |
i |
1 |
1 |
1 |
||||
|
|
|
|
ж' р |
|
|
|
|
|
|
Рис. |
42. |
|
|
|
мандами группы |
I I , начиная |
с конфигурации рис. 42, б, |
головка совершает замедленное движение вправо, «разгляды вая» символ / и каждую палочку в течение трех тактов.
Предположим теперь, что головки двух экземпляров машины 9Яо запущены одновременно на одной ленте, содер жащей так же, как и выше, запись слова I \ \... | ] р. В кон фигурации рис. 42, в указаны начальные положения головок и соответствующие внутренние состояния. Тогда согласно командам групп I — I I каждая из головок начнет переме щаться вправо. Нетрудно проверить, что если длина п слова / | | р является четным числом, то за 3 (/г/2—1) тактов «быстрая» головка (запущенная в состоянии я) успеет добе
жать до буквы р и, отразившись |
от нее, дойдет в |
состоянии |
я ' до ячейки, содержащей (п/2 4- |
1)-ю букву слова |
l \ |... | \р. |
За это же время «медленная» головка (запущенная в состоя нии р) успеет дойти в состоянии р" до ячейки с (п/2)-й бук вой. Итак, на такте 3(д/2 — 1) получится конфигурация рис. 42, г, т. е. головки «столкнутся» как раз в середине
162
слова. На следующем такте головки «перепрыгнут» друг через друга и появится конфигурация рис. 42, д\ после этого медленная головка продолжает путь вправо, а быстрая — влево.
Заметим, однако, что не всегда можно рассчитывать на столь благополучное сосуществование двух или более тьюрииговых машин. В самом деле, могло случиться, что обе головки «стремятся» попасть в одну и ту же ячейку. В таком случае нужны дополнительные команды, не предусмотрен ные первоначальными тыоринговыми машинами. Например, дополнительная команда может предписывать, что если символ х обозревается одновременно двумя головками, в состояниях qu q2, соответственно, то в ячейку записывает ся символ, указанный исходной командой с левой частью
(дополнительная команда приоритета). Удобнее, од нако, исходить из другого принципа взаимодействия не скольких машин с общей внешней памятью, в соответствии с которым одновременное попадание двух (или более) головок в одну ячейку вообще не допускается. Этого можно достичь, например, так: когда две головки настолько близ
ки друг к другу, |
что возникает опасность |
их столкновения |
в одной и той же |
ячейке, предписывается |
выполнять такую |
команду, которая устраняет эту опасность. С помощью команд такого типа можно уточнить для любого v = 2, 3, ...
понятие «системы v-тьюринговых машин с общей внешней памятью». Такая система может рассматриваться как единая машина нового типа; при этом обычно считают, что в ка честве ее компонент взяты v экземпляров одной и той же машины Тьюринга вд. Не приводя здесь окончательных определений, мы можем, однако, заметить, что ни при каком v применение систем из v-тьюринговых машин не может решать полностью задачи о распараллеливании вычисли тельного процесса, ибо на каждом такте основная масса ячеек (точнее, все, за исключением v ячеек) по-прежнему
пребывает |
в вынужденном |
бездействии. |
|
|
||
21.2. Автоматы |
Неймана. Опишем |
машину иного |
||||
типа — автомат Неймана, |
в котором |
принцип |
распарал |
|||
леливания |
доведен, |
так |
сказать, |
до |
конца. |
Соответ |
ственно в автомате Неймана число ячеек, которые могут одновременно обрабатываться, может неограниченно расти, хотя в каждый момент остается конечным. В этом смысле автомат Неймана превосходит любую систему из фиксиро ванного числа тьюринговых машин; в грубом представле нии это такая система, которая позволяет вовлекать в работу
6* |
163 |
все новые и новые экземпляры машины Тьюринга и орга низует совместную обработку ими одной и той же общей для всех внешней памяти. Переходим к точным определе ниям.
Нейманов элемент — это устройство, которое на каждом такте t — 1, 2, 3, .... пребывает в одном из конечного числа состояний гъ г2, rv , образующих его алфавит R. Эле мент имеет два входных канала — левый и правый, по каждому из которых на такте t также поступает по одному
состоянию |
из |
R |
(рнс. 43). |
Состояние |
элемента |
на |
такте |
|||||||||
|
|
|
|
t |
+ 1 зависит |
исключительно от |
||||||||||
|
|
|
|
того, |
|
в |
каком |
|
состоянии |
он |
||||||
|
|
|
|
пребывал |
в |
предыдущем |
такте |
|||||||||
|
|
|
|
t |
и какие |
состояния |
на том |
же |
||||||||
|
|
|
|
такте |
/ |
поступали |
|
по |
входным |
|||||||
|
|
|
|
каналам. |
Иначе |
|
говоря, |
эле |
||||||||
|
|
|
|
мент |
реализует |
функцию трех |
||||||||||
|
Рис. |
43. |
|
переменных |
|
У (р, |
|
г, q)\ |
значе |
|||||||
|
|
ние |
самой |
функции, |
а |
также |
||||||||||
|
|
|
|
значения ее аргументов при- |
||||||||||||
надлежат |
алфавиту |
R. |
Равенство |
х¥ |
(rh |
|
|
r]t |
r( n ) = |
|||||||
= гп означает: если |
элемент |
находится |
в |
состоянии |
г}, |
|||||||||||
воспринимает по левому каналу rt |
и по правому — гт, то |
|||||||||||||||
на следующем такте он переходит в состояние |
гп. |
Такое |
||||||||||||||
равенство |
будем |
записывать |
и в |
виде |
так |
называемой |
||||||||||
неймановой команды |
rtrjrm-*-ra. |
|
|
|
|
|
|
|
|
|
|
|
||||
Итак, |
функционирование элемента |
задается |
функцией |
|||||||||||||
у ¥, или что то же самое, множеством |
|
из |
v 3 |
неймановых |
||||||||||||
команд, называемое |
неймановой |
программой. |
|
|
|
|||||||||||
Состояние г будем называть спокойным (или состоянием |
||||||||||||||||
покоя), если выполнено условие Чг |
(г, |
г, |
г) |
— г, или, |
что |
|||||||||||
то же самое, rrr-*-r\ |
в противном случае оно считается |
воз |
бужденным (или возбуждающим). Это означает, что эле мент, пребывающий в состоянии покоя, может быть выведен из него только при условии, что хотя бы по одному из его каналов поступает возбуждающее состояние. Впредь пред полагается, что среди состояний множества R имеется одно специально выделенное состояние покоя 15b. Итак:
ф ф ф —»- ф. |
( # ) |
|
Коль скоро зафиксирован некоторый нейманов эле мент то автомат Неймана (над данным элементом ф) строит ся как бесконечная в обе стороны лента из экземпляров этого элемента, соединенных между собой так, как показа-
164
но на рис. 44, а. Фиксируя в момент t каким-то образом состояния элементов, мы тем самым задаем некоторую
нейманову |
конфигурацию |
K(t). |
Для |
любого |
элемента |
|||
а в ленте |
обозначим |
через |
a |
(t) |
его состояние |
в момент |
||
t, т. е. в конфигурации |
К (t) и через а~ |
(/) |
, сс+ (() состоя |
|||||
ния его соседей слева и справа. |
Заметим, |
что |
состояния |
|||||
а~ (t), а+ |
(t) воспринимаются |
элементом а |
по |
левому и |
правому каналам соответственно; это позволяет ему выра ботать свое состояние a (t + 1) в следующий момент, согласно его программе. Поскольку это справедливо для всех элементов ленты, то за один такт в результате одно-
CL(t*t)=rm
6) |
г |
г |
г |
ОС" ОС ос+
Рис. 44.
временного действия всех элементов возникает непосред ственно следующая конфигурация K(t + 1). Точно так же далее вырабатываются конфигурации K(t + 2), K(t + 3), ...
В этом и заключается функционирование автомата Ней мана. Существенной его чертой является именно повсемест ность и одновременность преобразования информации, закодированной в виде неймановой конфигурации.
В дальнейшем мы будем рассматривать лишь конечные неймановы конфигурации, т. е. такие конфигурации, в ко торых все элементы за исключением конечного (но не фикси
рованного) их числа пребывают в состоянии покоя |
ф . При |
||||
этом |
наименьший кусок |
неймановой |
ленты, вне |
которого |
|
все |
элементы пребывают |
в |
состоянии |
ф, будем |
называть |
активной зоной автомата |
(в |
данной |
конфигурации). Оче |
видно, из условия ф): следует, что в автомате Неймана, пер воначально запущенном в конечной конфигурации, будут возникать впредь только конечные конфигурации, ибо на каждом такте активная зона может расшириться не более, чем на два элемента — по одному на каждом ее краю. Поэ тому, хотя формально автомат Неймана определен нами как бесконечный объект, тем не менее он является по существу
165
объектом конечным в каждый момент времени, но способным к неограниченному росту. Здесь имеется аналогия с лентой машины Тьюринга, формально также бесконечной, но по существу конечной и разрастающейся в тех случаях, когда имеющегося запаса памяти уже недостаточно для продол жения процесса. Различие заключается лишь в том, что ячейки тьюрннговой ленты выполняют только функцию хранения информации, а элементы нейманова автомата совмещают хранение информации с ее переработкой. Имея
|
OL-(t) |
|
|
|
|
|
|
|
|
|
|
|
|
о |
пюбое |
! |
любое |
О |
\Ф |
! |
О |
1 |
* |
£ |
f |
о |
0\ |
2) |
0 |
О |
любое |
1 |
Ф 0 |
£ |
0 |
1 0 |
1 |
0 S 0 |
|||
|
1 |
О |
любое |
||||||||||
*; |
£ |
|
1 |
|
|
|
|
|
|
0 |
|||
1 |
г |
любое |
1 |
Ф |
£ |
0 |
0 £ |
0 |
£ |
£ |
|||
|
Рис. |
45. |
|
|
|
|
|
|
Рис. |
46. |
|
|
|
в виду связи между элементами неймановой ленты, явно указанные на рис. 44, а, мы для простоты будем пользо ваться в дальнейшем более удобным изображением автомата Неймана в виде обычной, как в случае машины Тьюринга, ленты (см. рис. 44. б).
21 3 |
Пример: |
неймановы |
часы. Пусть |
нейманов |
элемент & |
||
имеет четыре состояния: ф, 0, е, |
1. В его программе, приведенной на |
||||||
рис 45, |
приняты следующие упрощающие соглашения, |
которых мы |
|||||
будем придерживаться и впредь. |
|
|
|
|
|||
Во-первых, опущены пассивные команды, т. е. те команды, ко |
|||||||
торые не вызывают изменения a |
(t) (т. е. а (t |
+ 1) = |
а |
(/)), а |
указа |
||
ны только активные команды. Во-вторых, применяется |
унифициро |
||||||
ванная |
запись для |
однотипных |
команд; например, |
первая |
строка |
в рис. 45 указывает на 16 команд, которые получаются, если пере
бирать |
независимо значения ф , О, в, |
1 для |
сс~ (/) |
и для a+(t). |
В соот |
||
ветствии с этой программой, 'исходя |
из |
конфигурации |
К (() |
рис. 46, |
|||
будут |
выработаны конфигурации К |
{t |
+ |
1), К |
(( + |
2), ... |
На ри |
сунке мы, естественно, ограничиваемся изображением активной зо ны; впрочем легко видеть, что наша программа не увеличивает пер воначально заданную активную зону. Полезно заметить, что при пе
реводе |
от К (/) к |
К U + 1) одновременно |
происходит |
изменение |
|
состояний во всех восьми элементах активной |
зоны; |
при |
переходе к |
||
К (/ + |
2) — только |
в пяти. Интересно проследить за |
работой наше |
го автомата, когда начальная конфигурация имеет активную зону длины V, в которой записаны сплошь нули. На рис. 47 показаны
последовательно |
возникающие |
конфигурации в том случае, когда |
|||
v = 3; рядом |
с ними записаны |
номера |
команд, которые |
фактически |
|
применяются |
при |
переходе к |
очердной |
конфигурации. |
Как видно |
166