Федотов Павел Валерьевич, Царев Федор Николаевич, Шалыто Анатолий Абрамович
ЗАДАЧА ПОИСКА УСЕРДНЫХ БОБРОВ И ЕЕ РЕШЕНИЯ
Аннотация
В работе приведено подробное описание задачи поиска усердных бобров, ее вариаций, методов решения и известные результаты.
Ключевые слова: усердный бобер, машина Тьюринга, автомат.
ВВЕДЕНИЕ
Поиск усердных бобров (busy beaver game) - известная задача в теории вычислимости [1]. Под усердным бобром (busy beaver) в теории вычислимости понимают машину Тьюринга [2] с заданным числом состояний конечного автомата, которая будучи запущенной на пустой ленте, записывает на нее максимально возможное число ненулевых символов и останавливается.
Тема усердных бобров весьма слабо освещена в русскоязычной литературе. Цель настоящей работы - дать подробное описание задачи поиска усердных бобров, ее вариаций, методов решения, а также привести самих усердных бобров и результаты их работы.
1. ЗАДАЧА О ПОИСКЕ УСЕРДНЫХ БОБРОВ
С момента публикации в 1962 году статьи [3], в которой автор предлагает строить усердных бобров и сравнивать их
© П.В. Федотов, Ф.Н. Царёв, А.А. Шалыто, 2009
между собой по указанному критерию, было сделано большое число попыток поиска усердных бобров, а также рассмотрен ряд вариаций этой задачи [4-6].
Приведем описание канонической задачи об усердных бобрах [3]. Для этого рассмотрим машину Тьюринга, содержащую автомат с п состояниями, а также дополнительным конечным состоянием «Конец», работающую над двоичным алфавитом {0, 1}. Существует несколько типов машин Тьюринга. В этой задаче рассматривается машина, работающая на бесконечной в обе стороны ленте. На каждом шаге машина имеет два параметра:
- состояние автомата;
- символ ленты, находящийся под головкой.
На основании этих параметров одновременно определяются:
- состояние, в которое переходит автомат;
- символ, который будет записан в ячейке под головкой;
- направление движения головки (влево или вправо).
Машина останавливается, только если автомат достигает состояния «Конец».
Табл. 1. Известные значения функции усердного бобра
n ВД Число шагов
1 1 1
2 4 6
3 6 13
4 13 107
Рис. 1. Усердный бобер с двумя состояниями
Пусть задана машина Тьюринга. Запустим ее на пустой ленте - на ленте, в каждой ячейке которой записан ноль.
Задача об усердных бобрах, как указано выше, состоит в поиске машины Тьюринга, содержащей автомат с n состояниями, которая, будучи запущенной на пустой ленте, останавливается и записывает на ленту наибольшее число единичных символов.
Функция усердного бобра Е (n) (busy beaver function) определяется как число единиц, написанных машиной-чемпионом с n состояниями. Сама же машина-чемпион называется усердным бобром.
Т. Радо в работе [3] доказал, что функция Е (n) невычислима и растет быстрее любой вычислимой функции. Тем не менее, значения функции Е (n) могут быть найдены для небольших n. В настоящее время известны значения Е (n) для n, не превышающих четырех (табл. 1).
Для больших значений n функцию усердного бобра сложно вычислить по нескольким причинам:
1) построить усердного бобра вручную крайне сложно [6];
2) пространство поиска очень велико -существует (4n + 4)2n машин Тьюринга с n состояниями [7];
3) отсутствие общего алгоритма для проверки того, останавливается ли машина Тьюринга [8];
4) огромное число шагов, которое может быть сделано машиной Тьюринга перед остановкой (найдена машина Тьюринга с автоматом из пяти состояний, делающая 47 176 870 шагов перед ос- ]
тановкой (пример 3), а также машина Тьюринга с автоматом из шести состояний, делающая более 2,5 • 102879 шагов [9]).
Приведем примеры перечисленных машин Тьюринга.
Пример 1. Усердный бобер с двумя состояниями [3] (рис. 1)
Поясним используемые на рис. 1 обозначения. Крайняя левая стрелка указывает на начальное состояние автомата. Двойной окружностью обозначено состояние «Конец». Пометки на переходах имеют следующий формат: «символ под головкой : символ, который будет написан, направление движения головки». Направление движения обозначается: Ь -«влево»; И - «вправо».
При описании каждого состояния ленты жирным символом будем обозначать положение головки после завершения шага. Из таблицы следует, что усердный бобер с двумя состояниями, совершает шесть шагов и оставляет четыре единицы на ленте после завершения работы.
Описание поведения приведенной машины Тьюринга дано в табл. 2.
Пример 2. Усердный бобер с тремя состояниями [3] (рис. 2)
..1 1.R
ft, ----- V л J
1' 1, L—
:. 2. Усердный бобер с тремя состояниями
Рис. 3. Усердный бобер с четырьмя состояниями
Пример 3. Усердный бобер с четырьмя состояниями [6, 10]
(рис. 3)
Протокол работы усердного бобра с четырьмя состояниями, представленного на рис. 3, приведен в табл. 4.
Пример 4. Кандидат в усердные бобры с пятью состояниями
(рис. 4)
Пример описан в работе [9]. Этот кандидат делает 47 176 870 шагов, записывая 4098 единиц на ленту.
2. ВАРИАЦИИ ЗАДАЧИ О ПОИСКЕ УСЕРДНЫХ БОБРАХ
Рис. 4. Кандидат в усердные бобры с пятью состояниями
Усердный бобер с тремя состояниями оставляет на ленте шесть единиц после завершения работы. Описание поведения машины Тьюринга, приведенной на рис. 2 дано в табл. 3.
Табл. 3. Поведение усердного бобра с тремя состояниями
Шаг Состояние Лента
Начало 0 0000000000000
1 1 0000001000000
2 0 0000001100000
3 2 0000001100000
4 1 0000011100000
5 0 0000111100000
6 1 0001111100000
7 1 0001111100000
8 1 0001111100000
9 1 0001111100000
10 1 0001111100000
11 0 0001111110000
12 2 0001111110000
13 Конец 0001111110000
1. Классификация quintuple, quadruple
В рассмотренной выше задаче выполняется формализация машины Тьюринга, называемая quintuple. Наряду с такими машинами Тьюринга, в теории вычислимости рассматриваются также quadruple-машины и соответствующие им усердные бобры [9, 11]. Quadruple-машина Тьюринга отличается от рассмотренных тем, что при переходе из одного состояния в другое может совершить только одно действие -записать символ на ленту или переместить головку, но не оба сразу. Возможные действия на переходах quintuple-машин и quadruple-машин поясняются рис. 5.
Табл. 2. Поведение усердного бобра с двумя состояниями
Шаг Состояние Лента
Начало 0 00000000
1 1 00001000
2 0 00001100
3 1 00001100
4 0 00011100
5 1 00111100
6 Конец 00111100
2. Классификация по наличию конечного состояния
Другая модификация машин Тьюринга получится, если рассматривать такие машины, которые не содержат отдельного состояния «Конец». В этом случае предполагается, что машина завершает свою работу, когда приходит в состояние, из которого нет перехода по символу, находящемуся под головкой [12]. Такая модификация машины Тьюринга называется машиной Тьюринга без конечного состояния (implicit halt). Если же специальное состояние «Конец» существует, то такой тип машины Тьюринга называется машиной с конечным состоянием (explicit halt).
3. Классификация по конечной конфигурации
В работе [11] рассматриваются усердные бобры среди машин Тьюринга, останавливающихся в стандартной конфигурации. Конфигурация называется стандартной, если машина Тьюринга в конце концов останавливается, считывая при этом самый левый символ в единственном сплошном
Возможные переходы quintuple-машины
-Read : Write
ч___/
\ ^-Pe&d iflove—j
Возможные переходы quadruple-машины
Рис. 5. Возможные переходы quintuple- и quadruple-машин
J
Табл 4. Поведение усердного бобра с четырьмя состояниями
Шаг Состояние Лента
Начало 0 000000000000000000000
1 1 000000000010000000000
2 0 000000000011000000000
3 1 000000000011000000000
4 0 000000000111000000000
5 1 000000001111000000000
6 2 000000001011000000000
7 3 000000001011000000000
8 3 000000011011000000000
9 0 000000010011000000000
10 1 000000010111000000000
11 2 000000010101000000000
12 3 000000010101000000000
13 3 000000011101000000000
14 0 000000011001000000000
15 1 000000011011000000000
16 2 000000011010000000000
17 3 000000011010000000000
18 3 000000011110000000000
19 0 000000011100000000000
20 1 000000011101000000000
21 0 000000011101100000000
22 1 000000011101100000000
23 0 000000011111100000000
24 1 000000011111100000000
25 2 000000010111100000000
26 3 000000010111100000000
27 3 000000110111100000000
28 0 000000100111100000000
29 1 000000101111100000000
30 2 000000101011100000000
31 3 000000101011100000000
32 3 000000111011100000000
33 0 000000110011100000000
34 1 000000110111100000000
35 2 000000110101100000000
36 3 000000110101100000000
37 3 000000111101100000000
38 0 000000111001100000000
39 1 000000111011100000000
40 2 000000111010100000000
41 3 000000111010100000000
42 3 000000111110100000000
43 0 000000111100100000000
44 1 000000111101100000000
45 2 000000111101000000000
46 3 000000111101000000000
47 3 000000111111000000000
48 0 000000111110000000000
49 1 000000111110100000000
50 0 000000111110110000000
51 1 000000111110110000000
Шаг Состояние Лента
52 0 000000111111110000000
53 1 000000111111110000000
54 2 000000111011110000000
55 3 000000111011110000000
56 0 000000101011110000000
57 1 000000101011110000000
58 0 000000111011110000000
59 1 000000111011110000000
60 0 000001111011110000000
61 1 000011111011110000000
62 2 000010111011110000000
63 3 000010111011110000000
64 3 000110111011110000000
65 0 000100111011110000000
66 1 000101111011110000000
67 2 000101011011110000000
68 3 000101011011110000000
69 3 000111011011110000000
70 0 000110011011110000000
71 1 000110111011110000000
72 2 000110101011110000000
73 3 000110101011110000000
74 3 000111101011110000000
75 0 000111001011110000000
76 1 000111011011110000000
77 2 000111010011110000000
78 3 000111010011110000000
79 3 000111110011110000000
80 0 000111100011110000000
81 1 000111101011110000000
82 0 000111101111110000000
83 1 000111101111110000000
84 0 000111111111110000000
85 1 000111111111110000000
86 2 000110111111110000000
87 3 000110111111110000000
88 0 000010111111110000000
89 1 000010111111110000000
90 0 000110111111110000000
91 1 001110111111110000000
92 2 001010111111110000000
93 3 001010111111110000000
94 3 011010111111110000000
95 0 010010111111110000000
96 1 010110111111110000000
97 2 010100111111110000000
98 3 010100111111110000000
99 3 011100111111110000000
100 0 011000111111110000000
101 1 011010111111110000000
102 0 011011111111110000000
103 1 011011111111110000000
104 0 011111111111110000000
105 1 011111111111110000000
106 2 001111111111110000000
107 Конец 101111111111110000000
блоке единиц на ленте с пустыми символами во всех остальных клетках [4, 11]. Пример конфигурации ленты машины Тьюринга, находящейся в стандартной конфигурации, приведен на рис. 6.
Три описанные классификации являются независимыми. Поэтому существует восемь вариаций задач об усердных бобрах (рис. 7).
Часто вместе с поиском усердных бобров рассматривают схожую задачу, заключающуюся в поиске машины Тьюринга, которая, будучи запущенной на пустой ленте, делает максимальное число шагов перед остановом среди всех останавливающихся машин Тьюринга с заданным числом состояний [3, 4]. Число сделанных шагов такой машиной Тьюринга с п состояниями обозначается 5(п). Функция 5(п) также является невычислимой [3].
3. ИЗВЕСТНЫЕ МЕТОДЫ ПОИСКА УСЕРДНЫХ БОБРОВ И РЕЗУЛЬТАТЫ
Задача о поиске усердных бобров и ее вариации широко исследовались. В табл. 5, 6 приведены известные результаты для максимального числа единиц (табл. 5) и максимального числа шагов (табл. 6) для разных типов машин Тьюринга с числом состояний от одного до шести.
Жирным шрифтом в табл. 5, 6 отмечены результаты, для ко-
Рис. 6. Стандартная конфигурация
Рис. 7. Вариации задачи об усердных бобрах
Табл. 5. Известные результаты для максимального числа единиц
Максимальное число единиц
Quadruple Quintuple
n Произвольная конфигурация Стандартная конфигурация Произвольная конфигурация Стандартная конфигурация
С конечным состоянием Без конечного состояния С конечным состоянием Без конечного состояния С конечным состоянием Без конечного состояния С конечным состоянием Без конечного состояния
1 1 1 1 1 1
2 2 2 2 2 4
3 4 3 4 3 6
4 8 8 7 5 13 Не исследовалось
5 16 15 16 11 4098
6 240 239 163 25 > 4,640 х 1 «1439 х 10
Табл. 6. Известные результаты для максимального числа шагов
Максимальное число шагов
Quadruple Quintuple
n Произвольная конфигурация Стандартная конфигурация Произвольная конфигурация Стандартная конфигурация
С конечным состоянием Без конечного состояния С конечным состоянием Без конечного состояния С конечным состоянием Без конечного состояния С конечным состоянием Без конечного состояния
1 2 1 2 1 1
2 4 3 4 3 6
3 14 13 14 13 21
4 38 37 32 31 107 Не исследовалось
5 112 111 112 57 47176870
6 41607 41606 27174 255 > 2,584 х 1 ^2879 х 10
торых доказана невозможность их улучшения. Для результатов, перед которыми стоит символ «>» точное значение приведено быть не может из-за огромной величины соответствующих чисел.
ЗАКЛЮЧЕНИЕ
В работе приведено подробное описание задачи об усердных бобрах, ее вариациях и известные результаты ее решения. Изложенное может быть полезно студентам и школьникам при освоении теории вычислимости.
Литература
1. Ехали тьюрмиты и тримувьи на... машине Тьюринга // Компьютерные инструменты в образовании. 2005. № 3.
2. Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений. М.: Вильямс, 2002.
3. Rado T. On Non-Computable Functions //The Bell System Technical Journal. 1962. Vol. 41. № 3, pp. 877-884.
4. Ross K., Kellett O., Heuveln B., Bringsjord S. A New-Millenium Attack on the Busy Beaver Problem. 2006 // http://www.cs.rpi.edu/~kelleo/busybeaver/downloads/superpaper.pdf
5. Конкурс КИ0-2007 // http://ipo.spb.ru/kio2007
6. Посов И.А. Занятой бобер // Компьютерные инструменты в образовании. 2007. № 2.
7. Shallit J. Handout on The Busy Beaver Problem. University of Waterloo. 1988 // http:// grail.cba.csuohio.edu/~somos/beaver.ps
8. Turing A. On Computable Numbers, with an Application to the Entscheidungsproblem //Proceedings of the London Mathematical Society. 1937. Ser. 2. Vol. 42, pp. 230-265.
9. Marxen H., Buntrock J. Attacking the Busy Beaver 5 // Bulletin of the EATCS, February 1990, № 40, pp. 247-251 // http://www.drb.insel.de/~heiner/BB/bb-mabu90.ps
10. Brady A.H. The determination of the value of Rado's noncomputable function Sigma(k) for four-state Turing machines // Mathematics of Computation. April 1983. Vol. 40. № 162, pp. 647-665.
11. Булос Дж., Джеффри Р. Вычислимость и логика. М.: Мир, 1994.
12. Kellett O. A Multi-Faceted Attack on the Busy Beaver Problem. Rensselaer Polytechnic Institute. 2005 // http://www.cs.rpi.edu/~kelleo/busybeaver/downloads/OwenThesis.pdf
Abstract
The paper gives a detailed description of the busy beaver problem, its variations, methods for solving and well-known results on the busy beaver problem.
Федотов Павел Валерьевич, студент кафедры «Компьютерные технологии» СПбГУ ИТМО, fedotov@rain.ifmo.ru
Царев Федор Николаевич, магистрант кафедры «Компьютерные технологии» СПбГУ ИТМО, fedor.tsarev@gmail.com
Шалыто Анатолий Абрамович, доктор технических наук, профессор, заведующий кафедрой «Технологии программирования» СПбГУ ИТМО, shalyto @таИ. ifmo. ш
© Наши авторы, 2009. ~ Our authors, 2009.