Задача синхронизации стрелков — задача из области информатики и клеточных автоматов, впервые предложенная Джоном Майхиллом в 1957 году и опубликованная (с решением) в 1962 году Эдвардом Муром[1]. Формулируется следующим образом:
Первое решение этой задачи было найдено Джоном Маккарти и Марвином Мински и было опубликовано в Sequential Machines Эдвардом Муром. Лучшее из известных решений, использующее шесть состояний, было найдено Жаком Мазойером в 1987 году[2]. Ранее Роберт Бальцер доказал, что решений с четырьмя состояниями не существует[3]. (Питер Сандерс позднее выяснил, что поисковая процедура Бальцера была неполной, однако исправив процедуру, получил тот же результат.) До сих пор неизвестно, существует ли решение с пятью состояниями.
Решение, требующее минимальное время, было найдено профессором Е. Гото из МТИ[4]. Оно использует несколько тысяч состояний и требует ровно 2n − 2 единиц времени для n солдат. Доказано, что более эффективных по времени решений не существует.
Общее решение задачи описывает две волны состояний, распространяющиеся по ряду солдат, одна из которых движется в три раза быстрее другой. Быстрая волна отражается от дальнего края ряда и встречается с медленной в центре. После этого две волны разделяются на четыре, движущиеся в разные стороны от центра. Процесс продолжается, каждый раз удваивая число волн, пока длина отрезков ряда не станет равной 1. В этот момент все солдаты стреляют. Это решение требует 3n единиц времени для n солдат.
Оптимальное по времени решение впервые было описано в статье Waksman, 1966[5]. Командир посылает крайнему солдату сигналы S1, S2, S3, …, Si с частотами 1, 1/3, 1/7, …, 1/(2 i−1 − 1). Сигнал S1 отражается от правого края ряда и встречает сигнал Si (для i ≥ 2) в ячейке n/2 i−1. Когда S1 отражается, он также создает нового командира на правом конце.
Сигналы Si генерируются с использованием вспомогательных сигналов, распространяющихся влево. Каждый второй момент времени обычный сигнал генерирует вспомогательный сигнал, распространяющийся влево. S1 движется самостоятельно со скоростью 1, тогда как более медленные сигналы движутся только при получении вспомогательных сигналов.
Было предложено и изучено несколько более общих формулировок задачи, включая ряды с произвольным расположением командира, замкнутые кольца, квадраты, кубы, графы Кэли и графы общего вида.
|address=
(предлагается |location=
) (справка на английском)
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .