Математика кубика Рубика

Материал из Поле цифровой дидактики
Версия от 20:55, 19 октября 2022; Patarakin (обсуждение | вклад) (1 версия импортирована)

Шаблон:Эта статья Шаблон:Универсальная карточка

Файл:Rubik's cube resolved.svg
Запутанный (снизу) и собранный (сверху) кубик Рубика

Математика кубика Рубика — совокупность математических методов для изучения свойств кубика Рубика с абстрактно-математической точки зрения. Это направление математики изучает алгоритмы сборки кубика и оценивает их. Основана на теории графов, теории групп, теории вычислимости и комбинаторике.

Существует множество алгоритмов, предназначенных для перевода кубика Рубика из произвольной конфигурации в конечную конфигурацию (собранный куб). В 2010 году строго доказано, что для перевода кубика Рубика из произвольной конфигурации в собранную конфигурацию (часто этот процесс называют «сборкой» или «решением») достаточно не более чем 20 поворотов граней<ref name="cube20" />. Это число — диаметр графа Кэли группы кубика Рубика<ref>По системе образующих, состоящей из поворотов граней на ±90° и на 180°.</ref>. В 2014 году доказано, что для решения кубика Рубика только с помощью поворотов граней на 90° всегда достаточно 26 ходов<ref name="cube26_qtm" />.

Алгоритм, который решает головоломку за минимально возможное количество ходов, называют алгоритмом БогаШаблон:Переход.

Обозначения

В этой статье для обозначения последовательности поворотов граней кубика Рубика 3×3×3 используются «обозначения Сингмастера»Шаблон:Sfn<ref>Шаблон:Статья</ref>, разработанные Дэвидом Сингмастером и опубликованные им в 1981 году.

Буквы [math]\displaystyle{ L,R,F,B,U,D }[/math] обозначают поворот на 90° по часовой стрелке левой (left), правой (right), передней (front), задней (back), верхней (up) и нижней (down) граней соответственно. Повороты на 180° обозначаются добавлением справа к букве цифры 2 или добавлением в верхнем индексе цифры 2 справа от буквы. Поворот на 90° против часовой стрелки обозначается добавлением штриха Шаблон:S или добавлением в верхнем индексе -1 справа от буквы. Так, например, записи [math]\displaystyle{ L^2 }[/math] и [math]\displaystyle{ L2 }[/math] эквивалентны, так же как записи [math]\displaystyle{ L' }[/math] и [math]\displaystyle{ L^{-1} }[/math].

Метрики графа конфигураций

Существует два наиболее распространённых способа измерения длины решения (метрики). Первый способ — одним ходом решения считается поворот грани на 90° (quarter turn metric, QTM). По второму способу, за 1 ход также считается и полуоборот грани (face turn metric, FTM, иногда это обозначают HTMhalf-turn metric). Так, F2 (поворот передней грани на 180°) должен считаться за два хода в метрике QTM или за 1 ход в метрике FTM<ref name="slocum2009" /><ref name="jaap_metric" />.

Для указания в тексте длины последовательности для используемой метрики используется нотация<ref name="bryan_notation" /><ref name="circular_5_26" /><ref name="jaap_puzstats" />, состоящая из цифр числа ходов и строчной первой буквы обозначения метрики. 14f обозначает «14 ходов в метрике FTM», а 10q — «10 ходов в метрике QTM». Чтобы указать, что количество ходов является минимальным в данной метрике, используется звёздочка: 10f* обозначает оптимальность решения в 10 ходов FTM.

Группа кубика Рубика

Шаблон:Main Кубик Рубика может рассматриваться как пример математической группы.

Каждый из шести поворотов граней кубика Рубика может рассматриваться как элемент симметрической группы множества 48 этикеток кубика Рубика, не являющихся центрами граней. Более конкретно, можно пометить все 48 этикеток числами от 1 до 48 и сопоставить каждому из ходов [math]\displaystyle{ \{F,B,U,D,L,R\} }[/math] элемент симметрической группы [math]\displaystyle{ S_{48} }[/math].

Тогда группа кубика Рубика [math]\displaystyle{ G }[/math] определяется как подгруппа [math]\displaystyle{ S_{48} }[/math], порождаемая шестью поворотами граней:

[math]\displaystyle{ G=\langle F,B,U,D,L,R\rangle. }[/math]

Порядок группы [math]\displaystyle{ G }[/math] равен <ref name="GAP" /><ref name="jaap_cube3" />

[math]\displaystyle{ |G| = \dfrac{8!\cdot 12!\cdot 3^8\cdot 2^{12}}{3\cdot 2\cdot 2} = 43\,252\,003\,274\,489\,856\,000 = 2^{27}\cdot 3^{14}\cdot 5^3\cdot 7^2\cdot 11. }[/math]

Каждая из [math]\displaystyle{ 4{,}325\cdot 10^{19} }[/math] конфигураций может быть решена не более чем за 20 ходов (если считать за ход любой поворот грани)<ref name="cube20" />.

Наибольший порядок элемента в [math]\displaystyle{ G }[/math] равен 1260. Например, последовательность ходов [math]\displaystyle{ (R\ U^2\ D^{\prime}\ B\ D^{\prime}) }[/math] необходимо повторить 1260 раз, прежде чем кубик Рубика вернётся в исходное состояниеШаблон:Sfn.

Алгоритм Бога

Шаблон:Seealso Алгоритм Бога начали искать не позже 1980 года, когда открылся список рассылки для любителей кубика Рубика<ref name="slocum2009" />. С тех пор математики, программисты и любители стремились найти алгоритм Бога, чтобы на практике за минимальное число ходов собирать кубик Рубика. С этой проблемой была связана проблема определения числа Бога — числа ходов, всегда достаточного для сборки головоломки.

В 2010 году программист из Пало-Альто Томас Рокики, учитель математики из Дармштадта Герберт Коцемба, математик из Кентского университета Морли Дэвидсон и инженер компании Google Inc. Джон Детридж доказали, что кубик Рубика из любого разобранного состояния можно собрать за 20 ходов. При этом любой поворот грани считался одним ходом. Объём вычислений составил 35 лет процессорного времени, пожертвованного компанией Google<ref name="cube20" /><ref name="koci_performance" /><ref>Шаблон:Публикация</ref>. Технические данные о производительности и количестве компьютеров не разглашаются. Продолжительность вычислений составляла несколько недель<ref name="the_quest" /><ref name="hsta" /><ref name="siam2013" />.

В 2014 году Томас Рокики и Морли Дэвидсон доказали, что кубик Рубика можно собрать не более чем в 26 ходов без использования поворотов на 180°. Объём вычислений составил 29 лет процессорного времени в суперкомпьютерном центре Огайо<ref name="cube26_qtm" />.

Нижние оценки числа Бога

Легко показать, что существуют разрешимые конфигурации<ref>«Разрешимой» конфигурацией называется конфигурация, которая может быть переведена в собранную. Так как граф кубика Рубика ненаправленный, из этого следует, что любая конфигурация, полученная из исходной произвольной последовательностью ходов разрешима. Но существуют неразрешимые конфигурации. Например, если в собранном состоянии повернуть одну из вершин кубика на 120°, то получится неразрешимая конфигурация.</ref>, которые не могут быть решены менее чем в 17 ходов в метрике FTM или 19 ходов в метрике QTM.

Эту оценку можно улучшить, принимая во внимание дополнительные тождества: коммутативность поворотов двух противоположных граней (L R = R L, L2 R = R L2 и т. д.) Подобный подход позволяет получить нижнюю оценку для числа Бога в 18f или 21q<ref name="kvant_1992_11" /><ref name="jaap_godal" />.

Файл:Superflip.gif
«Суперфлип» — первая обнаруженная конфигурация, находящаяся на расстоянии 20f* от начальной

Эта оценка долго оставалась наилучшей известной. Она вытекает из неконструктивного доказательства, так как оно не указывает конкретный пример конфигурации, требующей для сборки 18f или 21q.

Одной из конфигураций, для которой не удавалось найти короткое решение, был так называемый «суперфлип» или «12-флип». В «Суперфлипе» все угловые и рёберные кубики находятся на своих местах, но каждый рёберный кубик ориентирован противоположно<ref name="reid_msymmetric" />. Вершина, отвечающая суперфлипу в графе кубика Рубика, — локальный максимум: любой ход из этой конфигурации уменьшает расстояние до начальной конфигурации. Это позволило предположить, что суперфлип находится на максимальном расстоянии от начальной конфигурации. То есть суперфлип — это глобальный максимум<ref name="circular_5_24" />Шаблон:Sfn<ref name="pochmann_thesis" />.

В 1992 году Дик Т. Винтер нашёл решение суперфлипа в 20f<ref name="winter_92_sf" />. В 1995 году Майкл Рид доказал оптимальность этого решения<ref name="reid_95_sf" />, в результате чего нижняя оценка числа Бога стала равной 20 FTM. В 1995 году Майкл Рид обнаружил решение «суперфлипа» в 24q<ref name="reid_95_sf_q" />. Оптимальность этого решения доказал Джерри Брайан<ref name="bryan_95_sf_q" />. В 1998 году Майкл Рид нашёл конфигурацию, оптимальное решение которой составляло 26q*<ref name="reid_98_26q" />.

Верхние оценки числа Бога

Чтобы получить оценку сверху для числа Бога, достаточно указать любой алгоритм сборки головоломки, состоящий из конечного числа ходов.

Первые оценки сверху для числа Бога были основаны на «человеческих» алгоритмах, состоящих из нескольких этапов. Сложение оценок сверху для каждого из этапов позволяло получить итоговую оценку порядка нескольких десятков или сотен ходов.

Вероятно, первую конкретную оценку сверху дал Дэвид Сингмастер в 1979 году. Его алгоритм сборки позволял собирать головоломку не более чем за 277 ходов<ref name="the_quest" /><ref name="kaluzhnin_143" />. Позднее Сингмастер сообщил, что Элвин Берлекэмп, Джон Конвей и Ричард Гай разработали алгоритм сборки, требующий не более 160 ходов. Вскоре группа «Conway’s Cambridge Cubists», составлявшая список комбинаций для одной грани, нашла 94-ходовый алгоритм<ref name="the_quest" /><ref name="singmaster_notes" />. В 1982 году в журнале «Квант» был опубликован список комбинаций, позволяющих решить кубик Рубика в 79 ходов<ref name="kvant_1982_7" />.

Алгоритм Тистлетуэйта

В начале 1980-х английский математик Морвин Тистлетуэйт разработал алгоритм, позволивший значительно улучшить верхнюю оценку. Детали алгоритма опубликовал Дуглас Хофштадтер в 1981 году в журнале Scientific American. Алгоритм был основан на теории групп и включал в себя четыре этапа.

Описание

Тистлетуэйт использовал ряд подгрупп длины 4

[math]\displaystyle{ G=G_0\supseteq G_1\supseteq G_2\supseteq G_3\supseteq G_4=\{1\}, }[/math]

где

  • [math]\displaystyle{ G_0=\langle L,R,F,B,U,D\rangle. }[/math]
Эта группа совпадает с группой кубика Рубика [math]\displaystyle{ G }[/math]. Её порядок равен<ref>Порядок этой и следующих трёх групп вычисляется как произведение трёх множителей, указывающих соответственно количество разрешимых конфигураций углов, количество разрешимых конфигураций рёбер и общее ограничение «чётности» разрешимой конфигурации.</ref><ref name="jaap-subgroup" />
[math]\displaystyle{ \dfrac{8!\cdot 3^8}{3}\cdot\dfrac{12!\cdot 2^{12}}{2}\cdot \dfrac{1}{2}=43\,252\,003\,274\,489\,856\,000. }[/math]
  • [math]\displaystyle{ G_1=\langle L^2,R^2,F,B,U,D\rangle. }[/math]
Эта подгруппа включает в себя все конфигурации, которые могут быть решены без использования поворотов левой или правой граней на ±90°. Её порядок равен
[math]\displaystyle{ \dfrac{8!\cdot 3^8}{3}\cdot 12!\cdot\dfrac{1}{2}=21\,119\,142\,223\,872\,000. }[/math]
  • [math]\displaystyle{ G_2=\langle L^2,R^2,F^2,B^2,U,D\rangle. }[/math]
Эта подгруппа включает в себя все конфигурации, которые могут быть решены при условии, что повороты четырёх вертикальных граней на ±90° запрещены. Её порядок равен
[math]\displaystyle{ 8!\cdot (8!\cdot 4!)\cdot\dfrac{1}{2}=19\,508\,428\,800. }[/math]
  • [math]\displaystyle{ G_3=\langle L^2,R^2,F^2,B^2,U^2,D^2\rangle. }[/math]
Эта подгруппа включает в себя все конфигурации, которые могут быть решены с использованием только поворотов на 180° (half-turns). Она получила название «группа квадратов» (squares group). Её порядок равен
[math]\displaystyle{ (4!\cdot 4)\cdot\dfrac{4!\cdot 4!\cdot 4!}{2}\cdot 1=663\,552. }[/math]
  • [math]\displaystyle{ G_4=\{1\}. }[/math]
Эта подгруппа включает в себя единственную начальную конфигурацию.

На первом этапе произвольно заданная конфигурация из группы [math]\displaystyle{ G }[/math] приводится к конфигурации, лежащей в подгруппе [math]\displaystyle{ G_1 }[/math]. Цель второго этапа состоит в том, чтобы привести кубик к конфигурации, находящейся в подгруппе [math]\displaystyle{ G_2 }[/math], не используя поворотов левой и правой граней на ±90°. На третьем этапе кубик Рубика приводится к конфигурации, принадлежащей группе [math]\displaystyle{ G_3 }[/math], при этом повороты вертикальных граней на ±90° запрещены. На заключительном, четвёртом этапе, кубик Рубика полностью собирается поворотами граней на 180°.

Индексы подгрупп [math]\displaystyle{ [G_i:G_{i+1}] }[/math] при [math]\displaystyle{ i=0,1,2,3 }[/math] равны соответственно 2048, 1082565, 29400 и 663552.

Для каждого из четырёх семейств правых смежных классов [math]\displaystyle{ G_i/G_{i+1} }[/math] строится таблица поиска [math]\displaystyle{ T_i }[/math], размер которой совпадает с индексом подгруппы [math]\displaystyle{ G_{i+1} }[/math] в группе [math]\displaystyle{ G_i }[/math]. Для каждого класса смежности по подгруппе [math]\displaystyle{ G_{i} }[/math] таблица поиска [math]\displaystyle{ T_i }[/math] содержит последовательность ходов, переводящую любую конфигурацию из этого класса смежности в конфигурацию, лежащую в самой подгруппе [math]\displaystyle{ G_i }[/math].

Чтобы уменьшить количество записей в таблицах поиска, Тистлетуэйт использовал упрощающие предварительные ходы. Первоначально он получил оценку в 85 ходов. В течение 1980 года эта оценка была снижена до 80 ходов, затем до 63 и 52<ref name="the_quest" /><ref name="cubeman_dotcs" />. Студенты Тистлетуэйта провели полный анализ каждого из этапов. Максимальные значения в таблицах равны 7, 10, 13 и 15 ходам FTM соответственно. Так как 7 + 10 + 13 + 15 = 45, кубик Рубика всегда может быть решён в 45 ходов FTM<ref name="pochmann_thesis" /><ref name="kvant_1982_8" /><ref name="jaap-thistle" />.

Граф Шрайера

Шаблон:Нп5 — граф [math]\displaystyle{ S(G,X,H) }[/math], ассоциированный с группой [math]\displaystyle{ G }[/math], порождающим множеством [math]\displaystyle{ X=\{x_i|i\in I\} }[/math] и подгруппой [math]\displaystyle{ H\subseteq G }[/math]. Каждая вершина графа Шрайера является правым смежным классом [math]\displaystyle{ Hg=\{hg|h\in H\} }[/math] для некоторого [math]\displaystyle{ g\in G }[/math]. Рёбра графа Шрайера представляют собой пары [math]\displaystyle{ (Hg,Hgx_i) }[/math].

Каждый из четырёх этапов алгоритма Тистлетуэйта представляет собой обход в ширину графа Шрайера [math]\displaystyle{ S_i(G_i,X_i,G_{i+1}) }[/math], где [math]\displaystyle{ X_i }[/math] — порождающее множество группы [math]\displaystyle{ G_i }[/math].

Таким образом, верхняя оценка в 45 ходов равна

[math]\displaystyle{ \sum_{i=0}^{3} \epsilon(v_i), }[/math]

где

[math]\displaystyle{ \epsilon(v_i) }[/math]эксцентриситет вершины [math]\displaystyle{ v_i\in S_i }[/math], соответствующей единичному смежному классу [math]\displaystyle{ G_{i+1} }[/math].

Понятие графа Шрайера было использовано в работах Раду<ref name="radu_27f" />, Канкла и Купермана<ref name="kunkle_cooperman_2007_paper" />.

Модификации алгоритма Тистлетуэйта

В декабре 1990 года Ханс Клоостерман использовал модифицированную версию метода Тистлетуэйта для доказательства достаточности 42 ходов<ref name="cube20" /><ref name="kvant_1992_11" /><ref name="kloosterman" />.

В мае 1992 года Майкл Рид показал достаточность 39f или 56q<ref name="reid_39f_56q" />. В его модификации использовалась следующая цепочка подгрупп:

  • [math]\displaystyle{ G_0=\langle U,F,R,L,B,D\rangle }[/math]
  • [math]\displaystyle{ G_1=\langle U,R,F\rangle }[/math]
  • [math]\displaystyle{ G_2=\langle U,R^2,F^2\rangle }[/math]
  • [math]\displaystyle{ G_3=\{1\} }[/math]

Уже через несколько дней Дик Т. Винтер снизил оценку в метрике FTM до 37 ходов<ref name="winter_37f" />.

В декабре 2002 года Райан Хайз разработал вариант алгоритма Тистлетуэйта, предназначенный для скоростной сборки кубика Рубика<ref name="heise_thistle" />.

Двухфазный алгоритм Коцембы

Файл:Rubik-3-facelet-kociemba.png
Промежуточное состояние кубика Рубика в алгоритме Коцембы. Ходы, разрешённые на втором этапе, сохраняют расположение меток «+» и «−»

Алгоритм Тистлетуэйта в 1992 году улучшил учитель математики из Дармштадта Герберт Коцемба.

Описание

Коцемба сократил количество этапов алгоритма до двух<ref name="kvant_1992_11"/><ref name="koci_imptwophase" /><ref name="jaap_kocal" />:

  • [math]\displaystyle{ G_0=\langle U,D,L,R,F,B\rangle }[/math]
  • [math]\displaystyle{ G_1=\langle U,D,L^2,R^2,F^2,B^2\rangle }[/math]
  • [math]\displaystyle{ G_2=\{1\} }[/math]

Наглядное описание группы [math]\displaystyle{ G_1 }[/math] можно получить, если произвести следующую разметку<ref name="kvant_1992_11" /><ref name="koci_subgroupH" />:

  • Все этикетки U и D пометить знаком «+».
  • Этикетки F и B на рёберных элементах FR, FL, BL и BR пометить знаком «−».
  • Все остальные этикетки оставить без меток.

Тогда все конфигурации группы [math]\displaystyle{ G_1 }[/math] будут иметь одну и ту же разметку (совпадающую с разметкой на собранном кубике).

Решение состоит из двух этапов. На первом этапе заданная конфигурация [math]\displaystyle{ x\in G_0 }[/math] переводится последовательностью ходов [math]\displaystyle{ s_1 }[/math] в некоторую конфигурацию [math]\displaystyle{ x^{\prime}\in G_1 }[/math]. Иными словами, задача первого этапа — восстановить разметку, соответствующую начальной конфигурации, игнорируя цвета этикеток.

На втором этапе конфигурация [math]\displaystyle{ x^{\prime}\in G_1 }[/math] переводится последовательностью ходов [math]\displaystyle{ s_2 }[/math] в начальную конфигурацию. При этом повороты боковых граней на ±90° не используются, благодаря чему разметка автоматически сохраняется.

Склейка последовательностей ходов [math]\displaystyle{ s_1 }[/math] и [math]\displaystyle{ s_2 }[/math] является субоптимальным решением к исходной конфигурации<ref name="kvant_1992_11" /><ref name="jaap_kocal" /><ref name="koci_twophase" />.

Альтернативные субоптимальные решения

Алгоритм Коцембы не останавливается после обнаружения первого решения. Альтернативные оптимальные решения на первом этапе могут привести к более коротким решениям второго этапа, что сократит общую длину решения. Алгоритм продолжает искать также неоптимальные решения на первом этапе в порядке возрастания их длины<ref name="kvant_1992_11" /><ref name="jaap_kocal" /><ref name="koci_twophase" />.

Особенности реализации

Для поиска решений на каждом из двух этапов применяется алгоритм IDA* с эвристическими функциями, основанными на стоимостях решения соответствующих подзадач<ref name="koci_twophase" />.

Задача первого этапа сводится к поиску пути в пространстве с тремя координатами из разметки с координатами (x1, y1, z1) в разметку (0, 0, 0)<ref>Биекция между конфигурациями и тройками координат Шаблон:Wayback установлена таким образом, что целевой разметке первого этапа (т.е. любой конфигурации из группы G1) соответствует тройка (0, 0, 0).</ref>:

  1. Ориентация x1 восьми угловых элементов (2187 значений)
  2. Ориентация y1 двенадцати рёберных элементов (2048 значений)
  3. Расстановка z1 четырёх рёберных элементов FR, FL, BL и BR (495 значений)

Рассмотрим три подзадачи поиска пути из разметки (x1, y1, z1) в разметки (x1’, y1’, 0), (x1’, 0, z1’), (0, y1’, z1’). Значение эвристической функции h1, используемой на первом этапе, равно максимальной из стоимостей решения этих подзадач. Стоимости решения подзадач предварительно вычисляются и хранятся в виде баз данных с шаблонами<ref name="russell_norvig_adm" /><ref>Англ. pattern databases. В изложении автора алгоритма Шаблон:Wayback — «pruning tables».</ref>.

Задача второго этапа сводится к поиску пути в пространстве с тремя координатами из конфигурации (x2, y2, z2) в конфигурацию (0, 0, 0)<ref>Из-за ограничения, связанного с чётностью перестановки элементов, встречается только половина всех троек координат.</ref>:

  1. Перестановка x2 восьми угловых элементов (40320 значений)
  2. Перестановка y2 восьми рёберных элементов верхней и нижней граней (40320 значений)
  3. Перестановка z2 четырёх рёберных элементов среднего слоя (24 значения)

Рассмотрим три подзадачи поиска пути из конфигурации (x2, y2, z2) в конфигурации (x2’, y2’, 0), (x2’, 0, z2’), (0, y2’, z2’). Значение эвристической функции h2, используемой на втором этапе, равно максимальной из стоимостей решения этих подзадач.

В алгоритме применяются дополнительные оптимизации, направленные на увеличение быстродействия и уменьшение памяти, занимаемой таблицами<ref name="kvant_1992_11" /><ref name="koci_imptwophase" /><ref name="jaap_kocal" /><ref name="koci_pruning" />.

Программные реализации

Cube Explorer — программная реализация алгоритма для ОС Windows. Ссылки для загрузки находятся на сайте Герберта Коцембы<ref name="koci_download" />. В 1992 году на ПК Atari ST с памятью 1 Мбайт и частотой 8 МГц алгоритм позволял в течение 1-2 минут найти решение не длиннее 22 ходов<ref name="kvant_1992_11" /><ref name="koci_imptwophase" />. На современном компьютере Cube Explorer позволяет за несколько секунд найти решение не длиннее 20 ходов для произвольно заданной конфигурации<ref name="koci_imptwophase" />.

Существует онлайн-версия алгоритма<ref name="online_koci" />.

Анализ

В 1995 году Майкл Рид показал, что первая и вторая фазы алгоритма Коцембы могут потребовать не более 12 и 18 ходов (FTM) соответственно. Из этого следует, что кубик Рубика всегда может быть решён в 30 ходов. Дополнительный анализ показал, что всегда достаточно 29f или 42q<ref name="pochmann_thesis" /><ref name="reid_29f_42q" />.

Алгоритм Корфа

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

В 1997 году опубликовал алгоритм, позволявший оптимально решать произвольные конфигурации кубика Рубика. Десять выбранных случайным образом конфигураций были решены не более чем в 18 ходов FTM<ref name="korf_1997" /><ref>Шаблон:Cite news</ref>.

Собственно алгоритм Корфа работает следующим образом. В первую очередь определяются подзадачи, достаточно простые для того, чтобы осуществить полный перебор. Были использованы следующие три подзадачи<ref name="pochmann_thesis"/>:

  1. Состояние головоломки определяется только восемью угловыми кубиками, положения и ориентации рёбер игнорируются.
  2. Состояние головоломки определяется шестью из 12 рёберных кубиков, другие кубики игнорируются.
  3. Состояние головоломки определяется другими шестью рёберными кубиками.

Количество ходов, необходимое для решения каждой из этих подзадач, является нижней оценкой количества ходов, необходимого для полного решения. Произвольно заданная конфигурация кубика Рубика решается с помощью алгоритма IDA*, использующего эту оценку в качестве эвристики. Стоимости решения подзадач хранятся в виде баз данных с шаблонами<ref name="russell_norvig_adm" /><ref name="korf_1997" />.

Хотя этот алгоритм будет всегда находить оптимальные решения, он не позволяет напрямую определить, как много ходов может потребоваться в худшем случае.

Реализацию алгоритма на языке C можно найти в<ref name="reid_solver" />.

Дальнейшие улучшения

В 2005 году результат Майкла Рида в метрике QTM улучшил Силвиу Раду до 40q<ref name="radu_40q" />. В 2006 году Силвиу Раду доказал, что кубик Рубика можно собрать в 27f<ref name="radu_27f" /> или 35q<ref name="radu_35q" />.

В 2007 году Дэниел Канкл и Джин Куперман использовали суперкомпьютер для доказательства того, что все нерешённые конфигурации можно решить не более чем в 26 ходов FTM. Идея состояла в том, чтобы привести кубик Рубика в одну из 15 752 конфигураций подгруппы квадратов, каждая из которых может быть окончательно решена с помощью нескольких дополнительных ходов. Большинство конфигураций удалось решить таким образом не более чем в 26 ходов. Оставшиеся конфигурации подвергли дополнительному анализу, который показал, что они также решаются в 26 ходов<ref name="kunkle_cooperman_2007_paper" /><ref name="kunkle_cooperman_2007" />.

В 2008 году Томас Рокики опубликовал вычислительное доказательство разрешимости головоломки в 25 ходов FTM<ref name="rokicki_25f" />. В августе 2008 года Рокики объявил о доказательстве разрешимости в 23f<ref name="rokicki_23f" />. Позже эта оценка улучшилась до 22f<ref name="rokicki_22f" />. В 2009 году ему же удалось показать разрешимость в 29 ходов QTM<ref name="rokicki_29q" />.

В 2010 году Томас Рокики, Герберт Коцемба, Морли Дэвидсон и Джон Детридж объявили о доказательстве того, что любая конфигурация кубика Рубика может быть решена не более чем в 20 ходов в метрике FTM<ref name="cube20" /><ref name="koci_performance" />. Вместе с известной ранее оценкой снизу в 20f* это стало доказательством того, что число Бога кубика Рубика в метрике FTM равно 20.

В августе 2014 года Рокики и Дэвидсон объявили, что число Бога для кубика Рубика в метрике QTM равно 26<ref name="cube26_qtm" /><ref name="cp4space-2015-09-25" />.

Поиск антиподов

Конфигурацию кубика Рубика, которая расположена на максимальном расстоянии от начальной конфигурации, называют антиподом. Любой антипод в метрике FTM имеет оптимальное решение в 20f*, а любой антипод в метрике QTM имеет оптимальное решение в 26q*<ref name="cube26_qtm" /><ref name="jaap_cayley_distances" />.

Известно, что в метрике FTM существуют миллионы антиподов<ref name="cube20_hardpositions">Шаблон:Cite web</ref>. Одна из таких конфигураций — «суперфлип». Напротив, в метрике QTM на данный момент известна лишь одна конфигурация-антипод (не считая конфигураций, полученных из неё поворотами) — т.н. «композиция суперфлипа и четырёх точек» (superflip composed with four spot)<ref name="reid_98_26q" /><ref name="cp4space-2015-09-25" /><ref name="jaap_cayley_distances" /><ref>Шаблон:Cite web</ref>. Известны лишь две конфигурации на расстоянии 25q* от начальной конфигурации и около 80 тысяч конфигураций на расстоянии 24q*<ref name="cube26_qtm" /><ref name="cube20_hardpositions" />.

Асимптотические оценки

В 2011 году было показано, что число Бога кубика n × n × n является Θ(n2 / log(n))<ref name="theta2011" /><ref name="theta2011news" />.

Другие головоломки

Шаблон:Seealso

Void Cube

Void Cube — это кубик Рубика 3x3x3 без центральных элементов.

Длина оптимального решения «void-суперфлипа» в метрике FTM равна 20<ref name="void20_cubezzz" /><ref name="void20_ss" />, что есть доказательство необходимости 20 ходов. Так как Void Cube — ослабленная задача<ref name="russell_norvig_adm" /> кубика Рубика, существующее доказательство достаточности 20 ходов для кубика Рубика<ref name="cube20" /> применимо к Void Cube. Следовательно, число Бога головоломки Void Cube в метрике FTM равно 20.

Кубик 4×4×4

Файл:Rubiks revenge scrambled.jpg
Кубик 4×4×4 Rubik's Revenge — «Месть Рубика»

Количество конфигураций головоломки 4×4×4 (Шаблон:Lang-en) равно<ref name="jaap_cube4" />

[math]\displaystyle{ \frac{8! \times 3^7 \times 24!^2}{4!^6 \times 24} = 7 401 196 841 564 901 869 874 093 974 498 574 336 000 000 000 \approx 7{,}40 \times 10^{45}. }[/math]

Метрики 4×4×4

Существует несколько способов определения метрики для кубика 4×4×4. В этом разделе используются следующие метрики:

  • q-s (quarter slice): одним ходом считается поворот любого из 12 слоёв головоломки на ±90°;
  • q-w (quarter twist): одним ходом считается поворот любого внешнего блока (т.е. только грани или грани с несколькими идущими подряд прилегающими к ней слоями) на ±90°;
  • q-b (quarter block): одним ходом считается поворот любого внешнего или внутреннего блока (т.е. любой последовательности идущих подряд параллельных слоёв) на ±90° относительно остальной части головоломки;
  • h-s, h-w, h-b: аналогичны трём предыдущим метрикам, за исключением того, что разрешены также повороты на 180°.

Длина оптимального решения произвольной конфигурации в метрике q-b не больше, чем в метриках q-w или q-s, так как в метрике q-b разрешены все ходы двух других q-метрик. То же относится к h-метрикам.

Оценки числа Бога кубика 4×4×4

В 2006—2007 гг. Брюс Норског (Bruce Norskog) провёл 5-этапный анализ кубика 4×4×4, аналогичный 4-этапному анализу, проведённому Тистлетуэйтом для кубика Рубика 3×3×3. В результате анализа были получены верхние оценки в 82 хода в метрике h-w<ref name="norskog_82w_67b" />, 77 ходов в метрике h-s<ref name="norskog_77s" /><ref name="pe_jaap_4x4x4" /> и 67 ходов в метрике h-b<ref name="norskog_82w_67b" />.

В 2011 году Томас Рокики на основании нескольких существующих идей определил нижние оценки числа Бога в шести метриках для кубических головоломок с размерами от 2×2×2 до 20×20×20<ref name="rokicki_lb" />.

В 2013 году Shuang Chen (陈霜) снизил оценку в метрике h-w с 82 до 57 поворотов<ref name="chen_57w" />.

В 2015 году Томас Рокики подтвердил верхнюю оценку в 57 поворотов h-w и получил новые верхние оценки в 56 h-s и 53 h-b<ref name="rokicki_4x4x4_56s53b" />. Уже спустя несколько дней Shuang Chen (陈霜) удалось получить верхние оценки в 55 h-w и 53 h-s, переопределив этапы доказательства<ref name="chen_4x4x4_55w" /><ref name="chen_4x4x4_53s" />.

Текущие известные верхние и нижние оценки для кубика 4×4×4 в различных метриках приведены в таблице:

Оценки числа Бога кубика 4×4×4
метрика h-s h-w h-b q-s q-w q-b
оценка снизу 32 35 29 37 41 33
оценка сверху 53 55 53 ? ? ?
Файл:Megaminx12.jpg
12-цветный мегаминкс

Мегаминкс

Мегаминкс — простейший аналог кубика Рубика в форме додекаэдра. Количество конфигураций 12-цветного Мегаминкса равно 1,01·1068.

В 2012 году Герберт Коцемба определил нижнюю оценку числа Бога для Мегаминкса, равную 45 поворотам граней на любой угол или 55 поворотам на угол ±72°<ref name="megaminx_45h" /><ref name="megaminx_45h_ss" />.
В 2016 году Герберт Коцемба уточнил нижнюю оценку числа Бога для Мегаминкса, повысив ее до 48 поворотов граней на любой угол<ref>Шаблон:Cite web</ref>.

См. также

Примечания

Шаблон:Примечания

Рекомендуемая литература

Ссылки

Шаблон:Навигация

Шаблон:ВС