Варшавский В. И., Поспелов Д. А
Вид материала | Документы |
СодержаниеAi поступает входной сигнал Xi Во справа на младший разряд множителя. Этот сигнал как бы 170 считывает значение разряда. Появление после этого состояния D |
- Герберт Александер Саймон Исследователи ии: Лотфи Заде Исследователи ии: А. А ляпунов,, 9.34kb.
- «Как привлечь средства государственных институтов развития» Варшавский Владислав Римович, 48.54kb.
- Аннотация к научно-образовательному материалу, 114.81kb.
- 141. Поспелов В. И., Стальнов В. С. Содружественная аккомодация глаз при дисбинокулярной, 167.36kb.
- Тезисы докладов участников III международного конгресса «Россия и Польша: память империй, 1372.37kb.
- Д. А. Поспелов, Г. С. Осипов, 487.33kb.
- Варшавский А. С. Следы на дне, 1828.32kb.
- Рабочая программа учебной дисциплины Для направления 080100. 62 «Экономика» (программа, 562.39kb.
- Диспут с Пирром: прп. Максим Исповедник и христологические споры VII столетия / Отв, 73.89kb.
- Программа дисциплины: Имитационные модели для направления Прикладная математика и информатика, 120.53kb.
В рассмотренных выше задачах содержался некоторый обман. Описанные модели решают задачу синхронизации, но используют при этом некий внутренний такт, который неизвестно откуда берется. И лишь в задаче о взаимной синхронизации через канал с неизвестной задержкой мы упомянули о возможности существования механизма, согласующего длительности внутренних тактов.
Задачу исключения понятия внутреннего такта нельзя решить в рамках используемой для описания алгоритмов локального поведения формальной модели конечного автомата, так как она игнорирует реальное физическое время. Но как только мы начинаем рассматривать автомат как реальное физическое устройство, он становится динамической системой, переходные процессы в которой не адекватны процессам смены состояний в модели конечного автомата.
Преодоление указанных трудностей обеспечивается теорией согласованных самосинхронизующихся схем, которые обеспечивают инвариантность поведения автоматов по отношению к длительности внутреннего такта. Однако изложение идей и результатов этой теории выходит далеко за рамки настоящей книги. Мы опишем все же модель, в которой синхронизация осуществляется без привлечения понятия жесткого такта.
На рис. 5.4 «стрелки» образовывали шеренгу, что соответствовало жесткой структурной организации.
160
Теперь мы рассмотрим возможность синхронизации «толпы». Пусть автоматы блуждают в некотором ограниченном пространстве и в какие-то моменты времени сталкиваются друг с другом. В отличие от моделей случайного парного взаимодействия, мы не предполагаем, что эти столкновения одновременны, и тем самым исключаем необходимость тактовой синхронизации. Для нашей модели, вернее для ее формального изучения, необходимо, чтобы в нашей толпе осуществлялось достаточно хорошее перемешивание, т. е. чтобы в идеале все столкновения были равновероятными. Перемешивание, порождаемое процессами типа броуновского движения, несколько искажает получающиеся результаты. Столкнувшись, два автомата осуществляют акт взаимодействия и расстаются. Возникает вопрос о существовании правил взаимодействия, обеспечивающих синхронизацию такой совокупности автоматов, правил, не зависящих от числа автоматов.
Прежде всего уточним, что мы в этом случае понимаем под процессом синхронизации. В начальный момент времени все автоматы находятся в некотором состоянии 5о и при столкновении двух автоматов, находящихся в этом состоянии, оно сохраняется у обоих автоматов. Внешний сигнал, инициирующий процесс синхронизации, поступает на один из автоматов и выводит его из начального состояния. Естественно, мы не можем требовать, чтобы через какое-то время все автоматы перешли в синхронное состояние, так как при случайном взаимодействии всегда существует ненулевая вероятность того, что информация об инициации процесса за любое конечное время не выйдет за пределы ограниченной части автоматов. Поэтому при случайном взаимодействии можно говорить лишь о вероятности того, что значительная доля автоматов одновременно или в течение относительно короткого отрезка времени будет находиться в синхронном состоянии. Длительность этого отрезка времени определяется частотой столкновений. Поскольку смена состояний автоматов есть результат взаимодействия, то по крайней мере все перешедшие в синхронное состояние автоматы должны в течение этого интервала времени вступить во взаимодействие.
161
Качество, или точность, синхронизации мы будем оценивать математическим ожиданием доли автоматов, находящихся в синхронном состоянии. Пусть у нас задано некоторое число (0<<1) и мы можем определить интервал времени t, в течение которого доля автоматов, превышающая 1—, заведомо вступит во взаимодействие. Мы будем говорить о синхронизации совокупности автоматов с точностью до е, если один из автоматов совокупности инициирован в момент времени t0 и существует такой момент времени tc, что до этого момента математическое ожидание доли автоматов, перешедших в синхронное состояние, не превышает е, а математическое ожидание доли автоматов, перешедших в синхронное состояние после момента времени tc+t, превышает (1-).
Теперь можно рассмотреть алгоритм локального взаимодействия, обеспечивающий решение задачи синхронизации. Автомат имеет (k—1) внутреннее состояние. Состояние с номером 0 будем называть начальным, а состояние с номером k — синхронным. Взаимодействие определяется следующими правилами:
1. Если оба взаимодействующих автомата находятся в состоянии 0, то они оба сохраняют это состояние.
2. Внешний инициирующий сигнал переводит автомат из состояния 0 в состояние 1.
3. Если по крайней мере один из взаимодействующих автоматов имеет состояние, отличное от 0, то номер нового состояния для обоих автоматов равен увеличенному на единицу минимальному номеру состояний взаимодействующих автоматов.
Попытаемся содержательно рассмотреть процесс синхронизации. Первый из инициированных извне автоматов переходит в состояние 1 и, сталкиваясь с автоматами, находящимися в состоянии 0, будет переводить их в состояние 1. Этот процесс обеспечит лавинообразное распространение переходов в состояние 1 в совокупности автоматов. Автомат в состоянии 1 сменит его на состояние 2, если он встретит автомат, находящийся также в состоянии 1, и вероятность этого события равна доле автоматов в состоянии 1. Если же автомат, в состоянии 2, встретится с автоматом в состоянии 0, то он возвратится
162
в состояние 1. Таким образом, если скорость перехода автоматов из состояния 0 в состояние 1 линейно нарастает с ростом доли автоматов, находящихся в состоянии 1, то скорость перехода из состояния 1 в состояние 2, грубо говоря, возрастает, как корень квадратный от этой доли. И вообще, если в совокупности имеется некоторое распределение автоматов по номерам состояний, то доля автоматов с малыми номерами состояний уменьшается с гораздо большей скоростью, чем увеличивается доля автоматов с большими номерами состояний. Можно ожидать, что по мере продвижения этого распределения по номерам, его разброс будет возрастать. Иными словами, распределение автоматов по номерам будет «сгущаться» относительно номера текущего среднего состояния.
Это предположение подтверждается как математическим анализом, так и результатами моделирования поведения такой совокупности на ЭВМ. При моделировании в качестве одного такта выбиралось время, в течение которого все автоматы по одному разу вступают во взаимодействие. Тогда, например, в совокупности из 1024 автоматов при числе состояний каждого автомата, равном 15, в 400 экспериментах все автоматы переходили в синхронное состояние. Существенно здесь математическое доказательство независимости требуемого при данном е числа состояний автомата от общего числа автоматов в совокупности. Этот факт доказан для достаточно больших размеров совокупности и достаточно малых . Однако это отнюдь не умаляет содержательного значения полученных результатов.
Результаты настоящего параграфа кажутся удивительными. Казалось бы, с ростом размера совокупности задача согласования поведения должна усложняться, однако существуют весьма простые правила случайного взаимодействия, которые обеспечивают синхронизацию реакции совокупности на информацию, поступившую только одному индивидууму. Обеспечивающие этот эффект процессы, в которых отстающие подтягиваются, а убежавшие вперед тормозятся, можно назвать процессами синхрофазировки. Возможно, что аналоги синхрофазировки встречаются и в эволюционных процессах. Случайные изменения, возникающие у отдельных индивиду-
163
умов вследствие случайных парных взаимодействий, распространяются по всей популяции и синхронно проявляются при возникновении соответствующих условий.
§ 5.4. Гимн однородным структурам
Читатели, наверное, заметили пристрастие авторов к однородным структурам с однотипно организованным взаимодействием. Это действительно так. Нас не перестают удивлять и восхищать огромные возможности, скрытые в этих простейших, структурах. Только что одномерная однородная, структура продемонстрировала нам свою способность к синхронизации без глобального синхронизующего, сигнала. Несколько ранее, в гл. 3 поливальные насосы включались на участках дач так, как нам этого хотелось. Здесь мы приведем еще несколько примеров из удивительного мира однородных структур. Отметим, что однородные структуры часто встречаются в биологии, а техника проявляет к ним особый интерес. Ведь однородные структуры легче производить, заменять и контролировать. Однородность и однотипность — идеал инженера. Вот почему в последние годы, особенно после появления микроэлектроники, так возрос интерес к однородным структурам.
Мы думаем, что картина, описанная ниже, знакома всем читателям. В зале заседаний идет собрание. Председательствующий ставит на голосование какой-то проект или решение. «Прошу поднять руку тех, кто «за»,— говорит он. Поднимается лес рук. Подсчет числа голосов весьма трудоемок. Иногда председатель не справляется с ним и требуются специальные помощники — счетчики. «Кто «против»? — снова спрашивает председатель. И опять лес рук. И снова надо считать. Хорошо, когда одно из мнений собирает мизерное число сторонников. Тогда и считать не требуется. Общая картина достаточно красноречива. («Считать не будем? Я думаю, и так все ясно»,— говорит в этих случаях обычно председатель.) Но если «за» и «против» собрали примерно одинаковое число голосов, то публика начинает волноваться и требует перёголосования. Всегда возникает мнение, что счетчики ошиблись. Как избежать этой щекотливой ситуации? Можно ли
164
автоматизировать подсчет голосов и определение результатов голосования? Удастся ли создать «машинку для голосования», которая давала бы нужный результат независимо от числа голосующих? Ответы на все эти вопросы положительны. Все это можно сделать с помощью одномерных и двумерных однородных структур. Проиллюстрируем наше утверждение на наиболее простых примерах.
Рассмотрим сначала простейшее голосование, при котором каждый его участник голосует «за» или «против», а окончательное решение принимается по простому большинству голосов. Тогда, очевидно, каждую пару «за—против» можно вычеркнуть из дальнейшего сравнения. Если вычеркнуть все такие пары, то останутся только те, кто проголосовал «за» (если их большинство), или те, кто проголосовал «против». Считать их число не надо. Для простого большинства хватает и одного лишнего голоса. Эту процедуру вычеркивания конкурентных пар легко р
еализовать на одномерной однородной структуре. Рассмотрим схему, показанную на рис. 5.5. Каждый автомат имеет два состояния, которые мы обозначим через а, b. Состояние а соответствует тому, что данный результат голосования еще не вычеркнут, состояние b — что он вычеркнут. На внешние входы автоматов поступают сигналы хi от участников голосования. При этом хi=1 означает, что i-й участник голосования проголосовал «против», a хi=0 — что он проголосовал «за». Если голосование происходит в специально для этого оборудованном месте, то сигнал от каждого голосующего поступает в наше устройство в результате нажатия им соответствующей кнопки на индивидуальном пульте.
165
Сигналы, передаваемые по горизонтальной шине между автоматами, являются для системы внутренними (рабочими). Работа автоматов в цепи задается табл. 5.1.
Таблица 5.1
-
Входной с
игнал, поступив
вший от i-го гол
осующего
Рабочий
сигнал
Хi
Состояние
=0
aвтомата Ai
Хi
состояние
=--1
aвтомата Ai
A
b
А
b
So
S1, b
So, b
S2, b
So, b
S1
S1, а
S1, b
S3,b
S1, b
S2
S3, b
S2, b
S3, a
S2, b
S3
S3, a
S3,b
S3, a
S3, b
Поясним, как устроена эта таблица. В некотором такте работы на автомат Ai поступает входной сигнал Xi, равный 0 или 1, и один из четырех возможных рабочих сигналов. Сам Аi при этом находится в одном из двух возможных состояний (а или b). Значения входного и рабочего сигналов и состояние автомата определяют текущую ситуацию, которая записывается парой символов: значением рабочего сигнала, выдаваемого автоматом Ai в этой текущей ситуации, и новое состоянием, в которое он переходит.
В начале работы системное устройство СУ, показанное на рис. 5.5 в виде кружка, выдает на боковой вход самого левого автомата цепи сигнал So. Все автоматы в начальном такте работы находятся в невычеркнутых состояниях а. Встретив первый автомат в состоянии а (в начальный такт работы это всегда будет крайний левый автомат в цепи), сигнал So переводит его в вычеркнутое состояние b. Если при этом на внешний вход автомата подавался сигнал «за», то далее по цепи будет вправо распространяться сигнал S1. Если же данный автомат имел на входе Xi=1 (т. е. сигнал «против»), то вправо будет распространяться сигнал S2.
Сигналы S1 и S2 осуществляют поиск первого автомата, который мог бы составить вычеркиваемую
166
пару с отмеченным ими автоматом. Если при своем движении вправо сигналы S1 или S2 находят соответствующий автомат, то он переводится в вычеркнутое состояние, а рабочий сигнал становится равным S3. Этот сигнал есть свидетельство вычеркивания одной пары из множества голосующих. Сигнал S3 «проскакивает» через все оставшиеся автоматы цепи, ничего не меняя на своем пути. Его приход в СУ свидетельствует об окончании одного акта вычеркивания. Приход его в СУ заставляет системное устройство выдать на цепочку автоматов новый сигнал So. Окончание процесса вычеркивания произойдет тогда, когда сигнал S1 или сигнал S2 не найдут себе подходящей пары для вычеркивания. В этом случае на вход СУ поступит не сигнал S3, a S1 или S2. Появление сигнала S1 говорит о том, что большинство проголосовало «за», появление S2 — о противоположном результате голосования. Особым случаем является равенство голосов «за» и «против». В этой ситуации наше устройство посылает на боковой вход левого автомата цепи сигнал So, который «проскакивает» неизменным через все вычеркнутые автоматы и приходит на вход СУ. Это и есть сигнал
о равенстве голосов.
Отметим, что значение N нигде не фиксировалось и никакой роли для нас не играло. Устройство для подсчета голосов будет срабатывать верно при любом числе голосующих.
Мы рассмотрели простейший случай голосования. Но и для более сложных случаев задача об определении результатов голосования оказывается разрешимой с помощью одномерной цепи автоматов, в которой сложность каждого автомата не зависит от того, сколько лиц приняло участие в процедуре голосования, а зависит лишь от вида голосования. Так, например, при голосовании по принципу 2/3 (решение принимается, если за него проголосовало не менее 2/3 голосующих) сложность автоматов не меняется, а лишь увеличивается до шести число различных рабочих сигналов. При одном «сканировании» с помощью сигнала So происходит вычеркивание тройки автоматов, на два из которых поступил сигнал «за», а на один — сигнал «против». Можно рассматривать задачу не с простым голосованием «за» и «против», а с выбором одного из К претендентов
167
по принципу большинства голосов. Это требует уже автоматов с четырьмя состояниями и восьми различных рабочих сигналов. При последовательном голосовании (например, сначала предлагается из трех претендентов B1, В2 и В3 выбрать либо B1, либо группу (В2, В3), и если выбран B1, то голосование заканчивается, а если группа, то на втором туре идет борьба между В2 и В3) требуется уже двумерная однородная структура. Такой же структуры требует и голосование, в котором каждый претендент на «призовое» место оценивается определенным коли-чеством очков.
Видов голосования человечество придумало очень много. Но интересно, что все они (по крайней мере, известные сегодня) можно промоделировать на однородных структурах, сложность элементов которых никак не зависит от числа голосующих.
Однородные структуры используются сейчас в самых разнообразных областях, хотя их применение и тормозится тем, что очень привычные вещи реализуются с их помощью весьма непривычным для человека образом. Возьмем, к примеру, операцию умножения. С детства мы привыкли умножать в столбик и верим, что этот способ самый простой и быстрый. На самом деле это совсем не так. Развитие вычислительной техники заставило нас перейти от десятичной системы к двоичной. В двоичной системе умножение оказалось куда более простым по своей структуре. Сдвиг на один разряд и сложение в определенной последовательности дают тот же эффект умножения в столбик без необходимости помнить таблицу умножения. Вот как выглядит умножение 12 на 14 в двоичной системе:
Здесь мы умножали, начиная со старшего разряда множителя, и производили сдвиги вправо. Конечно, можно было бы умножать, начиная с младшего разряда множителя, и делать сдвиги влево. Результат
168
был бы одинаков. Как и при десятичном умножении, он равен 168.
Н
а рис. 5.6 показана однородная матрица, состоящая из трех столбцов, каждая клетка которых представляет собой однотипный автомат, имеющий три состояния D0 , D1 , D. Состояния D0 и D1 называются рабочими. Если автомат находится в них, то это означает, что он хранит в данной клетке значение двоичной цифры 0 и 1 соответственно. Состояние D является безразличным (нерабочим). Каждый
автомат имеет связи со всеми своими соседями. Эти входы и выходы мы будем обозначать буквами н, в, л, п (низ, верх, левый, правый). По ним могут передаваться сигналы пяти типов: безразличный (пустой) и B0, B1, Co, C1. Безразличный сигнал мы специально обозначать никак не будем. Сигналы Во и B1 несут информацию о значении цифр в соответствующем разряде множителя. Сигналы Со и С1, выдаваемые автоматами, соответствуют передаче соседу сигналов 0 и 1.
Число строк в матрице зависит от разрядности перемножаемых чисел. При n разрядах число строк в первом столбце равно 2n + 1, во втором и третьем столбцах —2n. Матрица, показанная на нашем рисунке, предназначена для перемножения четырехразрядных двоичных чисел.
Все автоматы, образующие матрицу, функционируют одинаково. Этот принцип проистекает из одно-
169
родности среды. Работа автоматов иллюстрируется табл. 5.2.
Здесь индексы k, p, i могут принимать значения О или 1.
В этой таблице заполнены только те места, которые соответствуют комбинациям сигналов и состояний, встречающихся в процессе умножения. Звездочка означает, что этого сигнала может и не быть.
Как же происходит умножение? На рис. 5.6, а показано начальное заполнение матрицы. Множитель
Таблица 5.2
-
Текущ
ий такт
По
следую
щий
такт
нет команды
вход
состояние
вход
состо
Условие перехода
номер команды
п
л
н
автомата
п
в
л
яние
1
Ck
D
Dk
2
Ck
Dp
Ck
Dp
3
bo
Dp
Bp
D
4
Bk
Dp
Bk
Bk
Dp
5
Bk
D
Bk
Bk
D
6
B1
Dp
Cp
Cp
в»
D
7
Bо
Dp
Co
Cp
Во
D
8
Bl
Ck
Dp
Cp
Cp
Dk
9
Во
Ck
Dp
Co
Cp
Dk
10
Во
D
D
11
Ck
*Cp
Di
C1
D1
k + p + i = 3
Ck
*Cp
Di
C1
D0
k + p + i = 2
Ck
*Cp
Di
Co
D1
k + p + i = 1
Ck
*Cp
Di
Co
Do
k + p + i = 0
записан в левом столбце так, что внизу находится младший разряд. Множимое написано в соседнем столбце. Правый столбец будет использоваться для получения произведения. Идея проста: если очередная цифра множителя есть 0, то множимое надо сдвинуть на один разряд вверх. Если же очередная цифра множителя есть 1, то до сдвига множителя его надо прибавить к той сумме, которая в этот момент будет накоплена в правом столбце матрицы.
Процесс начинается с подачи сигнала Во справа на младший разряд множителя. Этот сигнал как бы
170
считывает значение разряда. Появление после этого состояния D означает, что разряд считан (рис. 5.6, б). Далее сигнал Во распространяется вверх по левой колонке и на каждом уровне порождает сигнал Во направо. Эти сигналы сдвигают множимое без прибавления в накопленную сумму правой колонки матрицы. В нашем примере это происходит потому, что на начальном цикле разряд множителя был равен 0. На рис. 5.6, в, г показаны еще два такта работы однородной среды. Появление на рис. 5.6 г сигнала Во, приходящего в левую колонку, соответствует началу работы с очередным разрядом множителя. Таким образом, на четвертом такте завершается микроцикл умножения.
Общая картина распространения сигналов по однородной матрице при умножении двоичных чисел в столбик показана на рис. 5.7. На нем двойная стрелка изображает сигналы Bk, обычная стрелка — сигналы Ck. Светлый кружок означает переход автомата в данном такте в состояние D и выдачу вверх значения, соответствующего его состоянию, темный кружок — переход автомата в состояние Dp, соответствующего значению сигнала, поступившего на данный автомат снизу. Перечеркнутая стрелка означает, что передается либо сигнал Во, либо Со. За 18 тактов, как следует из рис. 5.7, цикл умножения двух четырехразрядных двоичных чисел завершается. Состояния автоматов правой колонки хранят результат умножения. Сигналы, которые на рис. 5.7 как бы выходят за пределы матрицы, пропадают и не оказывают влияния на дальнейшее функционирование матрицы. Читатель, пользуясь табл. 5.2 и рис. 5.7, может самостоятельно завершить умножение 12 на 14 с помощью однородной матрицы.
Общее число тактов, которое нужно затратить на умножение двух n-разрядных двоичных чисел по предложенному методу, равно 8п+2. Если же отказаться от привычной нам логики умножения и перейти на более «изысканные» методы умножения, то однородная матрица позволяет найти произведение всего за 4n—1 такт работы. При этом сложность автоматов, образующих матрицу, даже меньше, чем при умножении в столбик. Правда, при умножении двух n-разрядных чисел потребуется в этом случае
171
n2 + 1 автомат, а для рассмотренного нами случая — 6n + 1 автомат.
Кроме умножения, с помощью однородных матриц можно производить и деление. Один из способов
деления на однородной матрице с двумя столбцами требует автоматов той же сложности, что и для умножения в столбик. Число необходимых автоматов равно 2п+3. Однородные среды открывают большие возможности в самых различных областях применения. Например, они оказываются незаменимыми при обработке зрительной информации, отображаемой на
172
устройствах типа фотоматриц. Однородные автоматные структуры позволяют в этом случае выделять контуры отображаемых рисунков, находить вершины углов и точки пересечения, определять расстояние между изображениями на матрице и т. п. Развитие робототехники в последние годы стимулировало это направление исследований.
Для нас важно, что однородные структуры и однородные коллективы, состоящие из простых устройств, способны решать многие задачи, для которых мы привыкли использовать традиционные последовательные (централизованные) способы решений. А трудность перехода к параллельным (децентрализованным) методам решения кроется, в частности, в нестандартности методов и алгоритмов, реализуемых в однородных структурах.
Наш гимн однородности не противоречит тому, что говорилось ранее о пользе неоднородности. В гл. 3 мы демонстрировали те новые качества, которые неоднородность вносит в поведение коллектива автоматов, решающих общую задачу. Ибо никто еще не доказал, что однородные коллективы и структуры могут эффективно решать все задачи, возникающие перед техническими системами. Но никто не доказал и противоположного!