A HANOI TOWER PROBLEM

Abstract


There is a legend that in the jungles of Vietnam, there is a lost city of Benares, and in it a Buddhist monastery, which marks the center of the world. Long ago, the monks of this monastery is something guilty before God Brahma. Enraged, Brahma on a bronze disk erected three high bar and one of them strung 64 disc made of pure gold. And so that each disc is smaller at greater. And he laid on the monks 'obedience' passing the disc from the first to the third rod, using an intermediate second, so that is always smaller drives were over big - that is not somehow, and "respecting the laws of Brahma." Once all of the 64 disc will be shifted from the first to the third, strangely enough, the monks will not be forgiven, but rather the tower together with the temple will turn to dust and die under the thunder the whole world. For 64 this ring 446 744 073 18 709 551 615 rearrangements, and, given the speed of shifting in one second, per 584 542 046 091 years. In Hanoi, the tower does have a very far-away from that described in the legend - the unofficial symbol of the city. But "three diamond stud height of one cubit, and the thickness of a bee" is more of the three towers, so probably more correct to say "Towers of Hanoi". According to the sources, the legend and the game invented by the French mathematician François Edouard Anatole Lucas (François Édouard Anatole Lucas; 1842 -1891). Probably, the legend and the name of the game is inspired by the exotic Vietnam - because at the time it was colonized by France. Currently we considered the problem with four or more wheels, but we limit ourselves to the classical version. Currently we considered the problem with four or more wheels, but we limit ourselves to the classical version. Practical application of the problem of the Towers of Hanoi, which in terms of graph theory called "finding the shortest path in the graph with edges of unit length" is often illustrated, for example, intelligent truck when the diameter of the disc - it is the size of cargo in a warehouse and you must move the "tower" of goods from one site to another, using a staging area (free area - its weight in gold!). If larger in size of the load is smaller - can fall! The rods can also be represented processor stacks and "drives" - addresses of subroutines or interrupt requests, the priorities of which are ordered. The rods may be some levels, for example, security. The article deals with the algorithms for solving the problem of the Towers of Hanoi for three rods.

Full Text

Введение. Головоломка «Ханойская башня» или «Ханойские башни» [1] известна со второй половины ХIХ века (рис. 1). Рис. 1. Головоломка «Ханойская башня» В практическом плане «диаметры» дисков могут иметь смысл, например, это габариты груза, значения уязвимостей (с точки зрения защиты информации) или время, скажем, с начала эксплуатации. Вообще, ставится задача оптимального и в каком-то смысле безопасного (с точки зрения «законов Брамы»!) «перемещения упорядоченности чего-либо» с одного объекта на другой с дополнительными вспомогательными объектами размещения этой самой упорядоченности. Известна задача ротации носителей информации для создания резервных копий с учётом их ресурсов (время нахождения в эксплуатации, число циклов копирования) [2]. Здесь подразумеваются сеансы вместо перекладываний и уровни резервного копирования вместо дисков [2], на одном уровне хранится только одна резервная копия, а все устаревшие резервные копии должны удаляться. Тем самым обеспечивается эффективное хранение данных: больше резервных копий накапливается к настоящему времени. Так, при трёх носителях 1,2,3 (номера соответствуют условному времени нахождения в эксплуатации, первый - самый «молодой»), порядок их использования, например, для записи видеоинформации такой: 1,2,1,3,1,2,1. Эта последовательность - так называемый палиндром, читается одинаково слева направо и справа налево - есть не что иное, как порядок перекладываний дисков в Ханойской башне с n = 3 (не сказано куда, но указано - кто, какой диск берётся) и расписание «работы»: понедельник - 1, вторник - 2, среда - опять 1 и так далее. Первый диск работает 4 раза, второй - 2, третий - 1(7 шагов). Если будет четыре носителя, получим количество раз: 8,4,2,1 (15 шагов), т.е. при наличии четырех резервных копий можно восстановить данные по состоянию на сегодня, вчера, три дня назад и неделю назад. При пяти носителях: 15,8,4,2,1 (31 шаг), т.е. при пятиуровневой схеме можно восстановить данные, резервные копии которых были созданы две недели назад [2]. Ясно, что это последовательность степеней числа 2. Таким образом, каждый следующий уровень резервного копирования удваивает максимальный период «отката» данных [2]. Автоматизацию такой процедуры обеспечивает пакет программного обеспечения Acronis Backup & Recovery 10 (до 16 уровней резервного копирования!) [3]. 1. Решение задачи на графе. Проанализируем особенности задачи в соответствии с прекрасным материалом в [4, 5]. Рассмотрим n = 1 и назовём стержни X, Y, Z. Изобразим задачу в виде графа (рис. 2). Перекладывание в формате «откуда ® куда» выглядит так: (Х ® Z). Здесь движение идёт как бы направо из исходного состояния. В графе для n = 2 надо двигаться всегда налево (рис. 3). Рис. 2. Граф задачи о Ханойской башне для n = 1 Рис. 3. Граф задачи о Ханойской башне для n = 2 Здесь получаем: (Х ® Y),(Х ® Z),(Y ® Z). В случае n = 3 имеем (Х ® Z),(Х ® Y),(Z ® Y), (Х ® Z),(Y ® Х), (Y ® Z),(Х ® Z), в этом случае надо двигаться всегда направо (рис. 4). Рис. 4. Граф задачи о Ханойской башне для n = 3 Анализ задачи при n = 4 ((Х ® Y),(Х ® Z),(Y ® Z),(Х ® Y), (Z ®Х),(Z ® Y),(Х ® Y),(Х ® Y),(Y ® Z),(Y ® Х),(Z ® Х),(Y ® Z), (Х ® Y),(Х ®Z),(Y ®Z)) показывает, что в соответствующем графе надо двигаться всегда налево [6-11]. Следовательно, напрашивается предположение, что при нечётном n - направо, при чётном - налево! Да, но где право, где лево, если не строить граф, а решать задачу пошагово?! 3. Анализ движения дисков в треугольнике из стержней. Вернёмся к задаче для n = 3. Будем обозначать диски номерами так, что номер - это как бы «диаметр» диска. Чем больше номер, больше диаметр. Изобразим стержни X, Y, Z не на одной линии, а в виде треугольника. Первый шаг. Первый диск переносится против часовой стрелки (рис. 5). а б Рис. 5. Задача о Ханойской башне для n = 3, а - перенос первого диска - на стержнях; б - перенос первого диска - против часовой стрелки в графе - треугольнике с помеченными вершинами Второй шаг. Второй диск переносится по часовой стрелке (рис. 6). а б Рис. 6. Задача о Ханойской башне для n = 3: а - перенос второго диска - на стержнях; б - перенос второго диска - по часовой стрелке в графе - треугольнике с помеченными вершинами Аналогично рассматриваем остальные шаги. Оказывается, первый диск при нечётном общем числе дисков движется против часовой стрелки, а при чётном общем числе дисков - по часовой стрелке (рис. 3-5) [12-14]. Построим таблицу местоположения дисков (рис. 7). Рис. 7. Таблица местоположения дисков Ещё раз проанализируем последовательность переноса для трёх дисков 1213121, для четырёх дисков: 1213121412131215121312141… Делаем выводы [12-16]: 1. Итак, каждый нечетный перенос - это перенос первого диска. 2. Сначала переносится первый диск, потом не первый, затем снова первый, потом не первый и т. д. 3. Для первого диска всегда два варианта переноса. Если начальное количество дисков четное, то первый диск движется по часовой стрелке, а если нечетное - против. 4. Понятие «не первый диск» полностью определяет, какой диск и куда следует переносить в данный момент, поскольку для «не первого диска» вариант всего один. 4. Алгоритмическое решение задачи о Ханойской башне. Попробуем построить схему алгоритма. Получаем (рис. 8). Рис. 8. Общий алгоритм решения задачи о Ханойской башне Теперь надо раскрыть подалгоритмы переноса дисков. Перенос против часовой стрелки (рис. 9). Рис. 9. Алгоритм переноса против часовой стрелки Перенос по часовой стрелке (рис. 10). Рис. 10. Алгоритм переноса по часовой стрелке Рассмотрим перенос не первого диска - наименьшего из не первых (предполагается, что определение не первого выполнено). Для этого преобразуем схему алгоритма на рис. 10, сделаем три выхода, получим (рис. 11). Рис. 11. Алгоритм переноса по часовой стрелке с выходами А, В, С Эти три алгоритма со входами А, В, С применимы и для переноса по часовой стрелке с такими же выходами А, В, С (рис. 12). Рис. 12. Алгоритм переноса по часовой стрелке с выходами А, В, С Выводы. Таким образом, алгоритм решения задачи о Ханойской башне на графе «двигаться вправо, если число дисков нечётное», «двигаться влево, если число дисков чётное» без использования графической интерпретации может быть интерпретирован как движения по кругу с чередованием «по часовой стрелке», «против часовой стрелки». Если начальное количество дисков четное, то первый диск движется по часовой стрелке, а если нечетное - против. Для «не первого диска» вариант всего один. В этом плане, оказывается, задача о Ханойской башне хорошо согласуется с такой структурой, как куб [16-19]. Оптимальное решение - это движение почти по гамильтонову циклу для трёхмерного куба ХУХZХУZ и для четырехмерного ХУХZХУХWХУХZХУХ (рис. 13). Рис. 13. Ханойская башня и куб соседних чисел Оказывается, если заменить обозначения Х на А, Y на В, Z на С, то указанный на рис. 13 оптимальный путь в четырёхмерном кубе будет соответствовать обозначениям на дюймовой линейке [20].

About the authors

S. F Tyurin

Perm National Research Polytechnic University

Email: tyurinsergfeo@yandex.ru

References

  1. Ханойская башня (Савин А.) [Электронный ресурс]. - URL: http://ipuzzles.ru/tower-of-hanoi/savin-tower-of-hanoi/ (дата обращения: 17.06.2015).
  2. Схема резервного копирования «Ханойская башня» [Электронный ресурс]. - URL: http://www.acronis.com/ru-ru/support/documentation/ABR10/index.html#1432.html (дата обращения: 11.11.2015).
  3. Acronis Backup & Recovery 10: обзор. [Электронный ресурс]. - URL: http://www.winblog.ru/softall/softadm/1147767375-09031101.html (дата обращения: 11.11.2015).
  4. Коршунов Ю.М. Математические основы кибернетики: учеб. пособие для вузов. - 3-е изд., перераб. и доп. - М.: Энергоатомиздат, 1987. - 496 с.
  5. Коршунов Ю.М. Математические основы кибернетики: учеб. пособие для вузов. - М.: Энергия, 1972. - 376 с.
  6. Аляев Ю.А., Тюрин С.Ф. Дискретная математика и математическая логика. - М.: Финансы и статистика, 2006. - 357 с.
  7. Тюрин С.Ф. Аляев Ю.А. Дискретная математика: практическая дискретная математика и математическая логика. - М.: Финансы и статистика, 2010. - 394 с.
  8. GRaph INterface (GRIN) [Электронный ресурс]. - URL: http://graph-software.narod.ru/main.html (дата обращения: 29.06.14).
  9. Тюрин С.Ф., Ланцов В.М. Дискретная математика & математическая логика. - Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2013. - 271 с.
  10. Тюрин C.Ф. Исследование операций и теория игр: учеб. пособие. - Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2014. - 166 с.
  11. Тюрин C.Ф. Теория графов и её приложения: учеб. пособие. - Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2015. - 96 с.
  12. Окулов С.М., Лялин А.В. Ханойские башни [Электронный ресурс]. - URL: http://files.lbz.ru/pdf/cC2810-9-ch.pdf (дата обращения: 10.11.2015).
  13. Акимов О.Е. Дискретная математика: логика, группы, графы, фракталы [Электронный ресурс]. - URL: http://sceptic-ratio.narod.ru/ma/ dm3-4d.htm (дата обращения: 10.11.2015).
  14. Задача о ханойской башне [Электронный ресурс]. - URL: http://math-info.hse.ru/f/2011-12/ling/lecture1.pdf (дата обращения: 10.11.2015).
  15. Ханойские башни и Эдуард Люка [Электронный ресурс]. - URL: http://ipuzzles.ru/tower-of-hanoi/eduard-luka-tower-of-hanoi/ (дата обращения: 10.11.2015).
  16. Задача о ханойской башне [Электронный ресурс]. - URL: http://wm-help.net/lib/b/book/60837740/134 (дата обращения: 10.11.2015).
  17. Икосаэдрическая игра и Ханойская башня [Электронный ресурс]. - URL: http://alexlat.ucoz.ru/publ/matematika/ matematicheskie_igry/ ikosaehndricheskaja_igra_i_khanojskaja_bashnja/218-1-0-1372 (дата обращения: 17.06.2015).
  18. Возвратные задачи [Электронный ресурс]. - URL: http://edu.alnam.ru/book_c_math.php?id=5 (дата обращения: 10.11.2015).
  19. Программа решения задачи о ханойской башне [Электронный ресурс]. - URL: http://pas1.ru/hanoi (дата обращения: 10.11.2015).
  20. Ханойская башня, или один замечательный алгоритм [Электронный ресурс]. - URL: http://school.xvatit.com/index.php?title (дата обращения: 10.11.2015).

Statistics

Views

Abstract - 43

PDF (Russian) - 16

Refbacks

  • There are currently no refbacks.

Copyright (c) 2016 Tyurin S.F.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies