Interested Article - Алгоритм бога

Алгори́тм Бо́га — понятие, возникшее в ходе обсуждения способов решения кубика Рубика . Термин может также быть использован в отношении других перестановочных головоломок . Под алгоритмом Бога головоломки подразумевается любой алгоритм , который позволяет получить решение головоломки, содержащее минимально возможное число ходов (оптимальное решение), начиная с любой заданной конфигурации.

Один из пионеров математической теории кубика Рубика Дэвид Сингмастер так описывает появление термина:

Джон Конвей , один из крупнейших специалистов по теории групп в мире, отметил, что Кубик подчиняется так называемым законам сохранения (или чётности), а это означает, что некоторые движения просто невозможны. Либо Конвей, либо один из его коллег в Кембридже определил кратчайший путь из любого данного состояния назад к начальному состоянию как «Алгоритм Бога».

Дэвид Сингмастер

Определение

Алгоритм Бога может существовать для головоломок с конечным числом возможных конфигураций и с конечным набором «ходов», допустимых в каждой конфигурации и переводящих текущую конфигурацию в другую. Термин «решить головоломку» означает — указать последовательность ходов, переводящих некоторую начальную конфигурацию в некоторую конечную конфигурацию. Оптимально решить головоломку — указать самую короткую последовательность ходов для решения головоломки. Оптимальных решений может быть несколько.

К известным головоломкам, подпадающим под это определение, относятся кубик Рубика , Ханойская башня , Игра в 15 , Солитер с фишками , различные задачи о переливании и перевозке (« Волк, коза и капуста »). Общим для всех этих головоломок является то, что они могут быть описаны в виде графа , вершинами которого являются всевозможные конфигурации головоломки, а рёбрами — допустимые переходы между ними («ходы»).

Во многих подобных головоломках конечная конфигурация негласно предполагается, например, в «пятнашках» — упорядоченное расположение косточек, для кубика Рубика — одноцветность граней. В этих случаях «собрать головоломку» означает, что требуется для произвольной начальной конфигурации указать последовательность ходов, приводящих в фиксированную конечную конфигурацию.

Алгоритм решает головоломку, если он принимает в качестве исходных данных произвольную пару начальной и конечной конфигураций (или только начальную конфигурацию, если конечная конфигурация зафиксирована) и возвращает в качестве результата последовательность ходов, переводящих начальную конфигурацию в конечную (если такая последовательность существует, в противном случае, алгоритм сообщает о невозможности решения). Оптимальное решение содержит минимально возможное количество ходов.

Тогда алгоритм Бога (для данной головоломки) — это алгоритм, который решает головоломку и находит для произвольной пары конфигураций хотя бы одно оптимальное решение.

Некоторые авторы считают, что алгоритм Бога должен также быть практичным , то есть использовать разумный объём памяти и завершаться в разумное время.

Пусть G — группа перестановочной головоломки (с заданным порождающим множеством), v — вершина графа Кэли группы G . Найти эффективный , практичный алгоритм для определения пути из v в вершину v 0 , связанную с нейтральным элементом, длина которого равна расстоянию от v до v 0 . [...] Этот алгоритм называется алгоритмом Бога .

Дэвид Джойнер

Практичность можно понимать по-разному. Так, существуют компьютерные программы, позволяющие за приемлемое время найти оптимальное решение для произвольной конфигурации кубика Рубика . В то же время аналогичная задача для кубика 4×4×4 на данный момент остаётся практически неосуществимой . Для некоторых головоломок существует стратегия, позволяющая в соответствии с простыми правилами определить оптимальное решение вручную, без помощи компьютера.

Альтернативное определение алгоритма Бога: от алгоритма не требуется нахождения всей последовательности ходов; вместо этого достаточно найти первый ход оптимального решения, приближающий к цели и переводящий в новую конфигурацию. Два определения являются эквивалентными: повторное применение алгоритма к новой паре конфигураций снова находит ход оптимального решения, что позволяет получить всю последовательность ходов оптимального решения.

Число Бога

Числом Бога данной головоломки называется число n , такое, что существует хотя бы одна конфигурация головоломки, оптимальное решение которой состоит из n ходов, и не существует ни одной конфигурации, длина оптимального решения которой превышает n . Другими словами, число Бога — это точная верхняя грань множества длин оптимальных решений конфигураций головоломки.

Число Бога для кубика Рубика размером 3х3х3 клетки равно 20 — это диаметр графа Кэли группы кубика Рубика .

В общем случае (для произвольной перестановочной головоломки), число Бога равно не диаметру графа Кэли группы головоломки, а эксцентриситету вершины , соответствующей «собранному» состоянию головоломки.

Примеры

  • Кубик Рубика 3 × 3 × 3 всегда может быть решён не более чем в 20 ходов (считая за один ход поворот любой из 6 граней на 90 или 180 градусов). Известны конфигурации , требующие для сборки не менее 20 ходов. Таким образом, «число Бога» кубика Рубика равно 20 .
  • Если разрешены лишь повороты граней на 90 градусов (но не на 180 градусов, которые возможны, но при этом засчитываются за два хода), «число Бога» кубика Рубика равно 26 .
  • Число Бога кубика 2 × 2 × 2 равно 11 ходам, если поворот грани на 180° считается за 1 ход, или 14 ходам, если поворот грани на 180° считается за 2 хода. Небольшое (3 674 160) количество конфигураций кубика 2 × 2 × 2 позволило вычислить алгоритм Бога (в виде оптимального решения для каждой конфигурации) ещё в 80-х годах .
  • Трёхцветный кубик, противоположные грани которого окрашены одинаково. Число конфигураций трёхцветного кубика равно
В марте-апреле 2012 года было установлено, что число Бога трёхцветного кубика равно 15 FTM , 17 QTM или 14 STM (согласно метрике STM, поворот любого среднего слоя также считается за 1 ход) .
  • « Пятнашки » могут быть решены в 80 «коротких» или 43 «длинных» ходов в худшем случае (под «короткими» ходами подразумеваются перемещения отдельных костяшек, а под «длинными» — перемещения целых рядов из 1, 2 или 3 костяшек). Для обобщённых пятнашек (с бо́льшим, чем 15, количеством костяшек) задача поиска кратчайшего решения является NP-полной .
  • Для Ханойской башни алгоритм Бога существует при любом количестве дисков, но с добавлением дисков число ходов растёт экспоненциально .

См. также

Примечания

  1. . Дата обращения: 20 июля 2013. Архивировано из 4 сентября 2013 года.
  2. Jerry Slocum, David Singmaster, Wei-Hwa Huang, Dieter Gebhardt, Geert Hellings. . — 2009. — С. 26. — 142 с. — ISBN 978-1-57912-805-0 .
  3. David Joyner. . — 2008. — С. 149. — 328 с. (недоступная ссылка)
  4. Herbert Kociemba. . Дата обращения: 27 июля 2013. 4 сентября 2013 года.
  5. 29 мая 2014 года.
  6. . Дата обращения: 26 июля 2013. 29 мая 2014 года.
  7. . Дата обращения: 26 июля 2013. Архивировано из 29 мая 2014 года.
  8. Weisstein, Eric W. . Дата обращения: 4 мая 2020. 21 февраля 2020 года.
  9. Rokicki, T.; Kociemba, H.; Davidson, M.; and Dethridge, J. (англ.) . Дата обращения: 19 июля 2013. 26 июля 2013 года.
  10. Rokicki, T. and Davidson, M. (англ.) . Дата обращения: 2 июля 2015. 7 июля 2015 года.
  11. Jaap Scherphuis. (англ.) . Дата обращения: 21 июля 2013. 4 сентября 2013 года.
  12. Jaap Scherphuis. (англ.) . Дата обращения: 21 июля 2013. 29 августа 2013 года.
  13. . Domain of the Cube Forum. Дата обращения: 29 июля 2013. 4 сентября 2013 года.
  14. A. Brüngger, A. Marzetta, K. Fukuda and J. Nievergelt, от 11 ноября 2017 на Wayback Machine , Annals of Operations Research 90 (1999), pp. 45-63.
  15. Bruce Norskog. . Domain of the Cube Forum (англ.) (12 августа 2010). Дата обращения: 20 июля 2013. 4 сентября 2013 года.
  16. Daniel Ratner, Manfred K. Warmuth (1986). от 9 марта 2012 на Wayback Machine . in Proceedings AAAI-86 . National Conference on Artificial Intelligence, 1986. pp. 168—172.
  17. Carlos Rueda, .

Ссылки

  • (Константин Кноп)
Источник —

Same as Алгоритм бога