Loading AI tools
совокупность математических методов для изучения свойств кубика Рубика Из Википедии, свободной энциклопедии
Математика кубика Рубика — совокупность математических методов для изучения свойств кубика Рубика с абстрактно-математической точки зрения. Это направление математики изучает алгоритмы сборки кубика и оценивает их. Основана на теории графов, теории групп, теории вычислимости и комбинаторике.
Математика кубика Рубика | |
---|---|
Медиафайлы на Викискладе |
Существует множество алгоритмов, предназначенных для перевода кубика Рубика из произвольной конфигурации в конечную конфигурацию (собранный куб). В 2010 году строго доказано, что для перевода кубика Рубика из произвольной конфигурации в собранную конфигурацию (часто этот процесс называют «сборкой» или «решением») достаточно не более чем 20 поворотов граней[1]. Это число — диаметр графа Кэли группы кубика Рубика[2]. В 2014 году доказано, что для решения кубика Рубика только с помощью поворотов граней на 90° всегда достаточно 26 ходов[3].
Алгоритм, который решает головоломку за минимально возможное количество ходов, называют алгоритмом Бога .
В этой статье для обозначения последовательности поворотов граней кубика Рубика 3×3×3 используются «обозначения Сингмастера»[4][5], разработанные Дэвидом Сингмастером и опубликованные им в 1981 году.
Буквы обозначают поворот на 90° по часовой стрелке левой (left), правой (right), передней (front), задней (back), верхней (up) и нижней (down) граней соответственно. Повороты на 180° обозначаются добавлением справа к букве цифры 2 или добавлением в верхнем индексе цифры 2 справа от буквы. Поворот на 90° против часовой стрелки обозначается добавлением штриха ( ′ ) или добавлением в верхнем индексе -1 справа от буквы. Так, например, записи и эквивалентны, так же как записи и .
Существует два наиболее распространённых способа измерения длины решения (метрики). Первый способ — одним ходом решения считается поворот грани на 90° (quarter turn metric, QTM). По второму способу, за 1 ход также считается и полуоборот грани (face turn metric, FTM, иногда это обозначают HTM — half-turn metric). Так, F2 (поворот передней грани на 180°) должен считаться за два хода в метрике QTM или за 1 ход в метрике FTM[6][7].
Для указания в тексте длины последовательности для используемой метрики используется нотация[8][9][10], состоящая из цифр числа ходов и строчной первой буквы обозначения метрики. 14f обозначает «14 ходов в метрике FTM», а 10q — «10 ходов в метрике QTM». Чтобы указать, что количество ходов является минимальным в данной метрике, используется звёздочка: 10f* обозначает оптимальность решения в 10 ходов FTM.
Кубик Рубика может рассматриваться как пример математической группы.
Каждый из шести поворотов граней кубика Рубика может рассматриваться как элемент симметрической группы множества 48 этикеток кубика Рубика, не являющихся центрами граней. Более конкретно, можно пометить все 48 этикеток числами от 1 до 48 и сопоставить каждому из ходов элемент симметрической группы .
Тогда группа кубика Рубика определяется как подгруппа , порождаемая шестью поворотами граней:
Порядок группы равен [11][12]
Каждая из конфигураций может быть решена не более чем за 20 ходов (если считать за ход любой поворот грани)[1].
Наибольший порядок элемента в равен 1260. Например, последовательность ходов необходимо повторить 1260 раз, прежде чем кубик Рубика вернётся в исходное состояние[13].
Алгоритм Бога начали искать не позже 1980 года, когда открылся список рассылки для любителей кубика Рубика[6]. С тех пор математики, программисты и любители стремились найти алгоритм Бога, чтобы на практике за минимальное число ходов собирать кубик Рубика. С этой проблемой была связана проблема определения числа Бога — числа ходов, всегда достаточного для сборки головоломки.
В 2010 году программист из Пало-Альто Томас Рокики, учитель математики из Дармштадта Герберт Коцемба, математик из Кентского университета Морли Дэвидсон и инженер компании Google Inc. Джон Детридж доказали, что кубик Рубика из любого разобранного состояния можно собрать за 20 ходов. При этом любой поворот грани считался одним ходом. Объём вычислений составил 35 лет процессорного времени, пожертвованного компанией Google[1][14][15]. Технические данные о производительности и количестве компьютеров не разглашаются. Продолжительность вычислений составляла несколько недель[16][17][18].
В 2014 году Томас Рокики и Морли Дэвидсон доказали, что кубик Рубика можно собрать не более чем в 26 ходов без использования поворотов на 180°. Объём вычислений составил 29 лет процессорного времени в суперкомпьютерном центре Огайо[3].
Легко показать, что существуют разрешимые конфигурации[19], которые не могут быть решены менее чем в 17 ходов в метрике FTM или 19 ходов в метрике QTM.
Эту оценку можно улучшить, принимая во внимание дополнительные тождества: коммутативность поворотов двух противоположных граней (L R = R L, L2 R = R L2 и т. д.) Подобный подход позволяет получить нижнюю оценку для числа Бога в 18f или 21q[20][21].
Эта оценка долго оставалась наилучшей известной. Она вытекает из неконструктивного доказательства, так как оно не указывает конкретный пример конфигурации, требующей для сборки 18f или 21q.
Одной из конфигураций, для которой не удавалось найти короткое решение, был так называемый «суперфлип» или «12-флип». В «Суперфлипе» все угловые и рёберные кубики находятся на своих местах, но каждый рёберный кубик ориентирован противоположно[22]. Вершина, отвечающая суперфлипу в графе кубика Рубика, — локальный максимум: любой ход из этой конфигурации уменьшает расстояние до начальной конфигурации. Это позволило предположить, что суперфлип находится на максимальном расстоянии от начальной конфигурации. То есть суперфлип — это глобальный максимум[23][24][25].
В 1992 году Дик Т. Винтер нашёл решение суперфлипа в 20f[26]. В 1995 году Майкл Рид доказал оптимальность этого решения[27], в результате чего нижняя оценка числа Бога стала равной 20 FTM. В 1995 году Майкл Рид обнаружил решение «суперфлипа» в 24q[28]. Оптимальность этого решения доказал Джерри Брайан[29]. В 1998 году Майкл Рид нашёл конфигурацию, оптимальное решение которой составляло 26q*[30].
Чтобы получить оценку сверху для числа Бога, достаточно указать любой алгоритм сборки головоломки, состоящий из конечного числа ходов.
Первые оценки сверху для числа Бога были основаны на «человеческих» алгоритмах, состоящих из нескольких этапов. Сложение оценок сверху для каждого из этапов позволяло получить итоговую оценку порядка нескольких десятков или сотен ходов.
Вероятно, первую конкретную оценку сверху дал Дэвид Сингмастер в 1979 году. Его алгоритм сборки позволял собирать головоломку не более чем за 277 ходов[16][31]. Позднее Сингмастер сообщил, что Элвин Берлекэмп, Джон Конвей и Ричард Гай разработали алгоритм сборки, требующий не более 160 ходов. Вскоре группа «Conway’s Cambridge Cubists», составлявшая список комбинаций для одной грани, нашла 94-ходовый алгоритм[16][32]. В 1982 году в журнале «Квант» был опубликован список комбинаций, позволяющих решить кубик Рубика в 79 ходов[33].
В начале 1980-х английский математик Морвин Тистлетуэйт разработал алгоритм, позволивший значительно улучшить верхнюю оценку. Детали алгоритма опубликовал Дуглас Хофштадтер в 1981 году в журнале Scientific American. Алгоритм был основан на теории групп и включал в себя четыре этапа.
Тистлетуэйт использовал ряд подгрупп длины 4
где
На первом этапе произвольно заданная конфигурация из группы приводится к конфигурации, лежащей в подгруппе . Цель второго этапа состоит в том, чтобы привести кубик к конфигурации, находящейся в подгруппе , не используя поворотов левой и правой граней на ±90°. На третьем этапе кубик Рубика приводится к конфигурации, принадлежащей группе , при этом повороты вертикальных граней на ±90° запрещены. На заключительном, четвёртом этапе, кубик Рубика полностью собирается поворотами граней на 180°.
Индексы подгрупп при равны соответственно 2048, 1082565, 29400 и 663552.
Для каждого из четырёх семейств правых смежных классов строится таблица поиска , размер которой совпадает с индексом подгруппы в группе . Для каждого класса смежности по подгруппе таблица поиска содержит последовательность ходов, переводящую любую конфигурацию из этого класса смежности в конфигурацию, лежащую в самой подгруппе .
Чтобы уменьшить количество записей в таблицах поиска, Тистлетуэйт использовал упрощающие предварительные ходы. Первоначально он получил оценку в 85 ходов. В течение 1980 года эта оценка была снижена до 80 ходов, затем до 63 и 52[16][36]. Студенты Тистлетуэйта провели полный анализ каждого из этапов. Максимальные значения в таблицах равны 7, 10, 13 и 15 ходам FTM соответственно. Так как 7 + 10 + 13 + 15 = 45, кубик Рубика всегда может быть решён в 45 ходов FTM[25][37][38].
Граф Шрайера[англ.] — граф , ассоциированный с группой , порождающим множеством и подгруппой . Каждая вершина графа Шрайера является правым смежным классом для некоторого . Рёбра графа Шрайера представляют собой пары .
Каждый из четырёх этапов алгоритма Тистлетуэйта представляет собой обход в ширину графа Шрайера , где — порождающее множество группы .
Таким образом, верхняя оценка в 45 ходов равна
где
Понятие графа Шрайера было использовано в работах Раду[39], Канкла и Купермана[40].
В декабре 1990 года Ханс Клоостерман использовал модифицированную версию метода Тистлетуэйта для доказательства достаточности 42 ходов[1][20][41].
В мае 1992 года Майкл Рид показал достаточность 39f или 56q[42]. В его модификации использовалась следующая цепочка подгрупп:
Уже через несколько дней Дик Т. Винтер снизил оценку в метрике FTM до 37 ходов[43].
В декабре 2002 года Райан Хайз разработал вариант алгоритма Тистлетуэйта, предназначенный для скоростной сборки кубика Рубика[44].
Алгоритм Тистлетуэйта в 1992 году улучшил учитель математики из Дармштадта Герберт Коцемба.
Коцемба сократил количество этапов алгоритма до двух[20][45][46]:
Наглядное описание группы можно получить, если произвести следующую разметку[20][47]:
Тогда все конфигурации группы будут иметь одну и ту же разметку (совпадающую с разметкой на собранном кубике).
Решение состоит из двух этапов. На первом этапе заданная конфигурация переводится последовательностью ходов в некоторую конфигурацию . Иными словами, задача первого этапа — восстановить разметку, соответствующую начальной конфигурации, игнорируя цвета этикеток.
На втором этапе конфигурация переводится последовательностью ходов в начальную конфигурацию. При этом повороты боковых граней на ±90° не используются, благодаря чему разметка автоматически сохраняется.
Склейка последовательностей ходов и является субоптимальным решением к исходной конфигурации[20][46][48].
Алгоритм Коцембы не останавливается после обнаружения первого решения. Альтернативные оптимальные решения на первом этапе могут привести к более коротким решениям второго этапа, что сократит общую длину решения. Алгоритм продолжает искать также неоптимальные решения на первом этапе в порядке возрастания их длины[20][46][48].
Для поиска решений на каждом из двух этапов применяется алгоритм IDA* с эвристическими функциями, основанными на стоимостях решения соответствующих подзадач[48].
Задача первого этапа сводится к поиску пути в пространстве с тремя координатами из разметки с координатами (x1, y1, z1) в разметку (0, 0, 0)[49]:
Рассмотрим три подзадачи поиска пути из разметки (x1, y1, z1) в разметки (x1’, y1’, 0), (x1’, 0, z1’), (0, y1’, z1’). Значение эвристической функции h1, используемой на первом этапе, равно максимальной из стоимостей решения этих подзадач. Стоимости решения подзадач предварительно вычисляются и хранятся в виде баз данных с шаблонами[50][51].
Задача второго этапа сводится к поиску пути в пространстве с тремя координатами из конфигурации (x2, y2, z2) в конфигурацию (0, 0, 0)[52]:
Рассмотрим три подзадачи поиска пути из конфигурации (x2, y2, z2) в конфигурации (x2’, y2’, 0), (x2’, 0, z2’), (0, y2’, z2’). Значение эвристической функции h2, используемой на втором этапе, равно максимальной из стоимостей решения этих подзадач.
В алгоритме применяются дополнительные оптимизации, направленные на увеличение быстродействия и уменьшение памяти, занимаемой таблицами[20][45][46][53].
Cube Explorer — программная реализация алгоритма для ОС Windows. Ссылки для загрузки находятся на сайте Герберта Коцембы[54]. В 1992 году на ПК Atari ST с памятью 1 Мбайт и частотой 8 МГц алгоритм позволял в течение 1-2 минут найти решение не длиннее 22 ходов[20][45]. На современном компьютере Cube Explorer позволяет за несколько секунд найти решение не длиннее 20 ходов для произвольно заданной конфигурации[45].
Существует онлайн-версия алгоритма[55].
В 1995 году Майкл Рид показал, что первая и вторая фазы алгоритма Коцембы могут потребовать не более 12 и 18 ходов (FTM) соответственно. Из этого следует, что кубик Рубика всегда может быть решён в 30 ходов. Дополнительный анализ показал, что всегда достаточно 29f или 42q[25][56].
Алгоритм Коцембы позволяет быстро находить короткие, субоптимальные решения. Тем не менее, может потребоваться значительное время, чтобы доказать оптимальность найденного решения. Был необходим специализированный алгоритм поиска оптимальных решений.
В 1997 году опубликовал алгоритм, позволявший оптимально решать произвольные конфигурации кубика Рубика. Десять выбранных случайным образом конфигураций были решены не более чем в 18 ходов FTM[57][58].
Собственно алгоритм Корфа работает следующим образом. В первую очередь определяются подзадачи, достаточно простые для того, чтобы осуществить полный перебор. Были использованы следующие три подзадачи[25]:
Количество ходов, необходимое для решения каждой из этих подзадач, является нижней оценкой количества ходов, необходимого для полного решения. Произвольно заданная конфигурация кубика Рубика решается с помощью алгоритма IDA*, использующего эту оценку в качестве эвристики. Стоимости решения подзадач хранятся в виде баз данных с шаблонами[50][57].
Хотя этот алгоритм будет всегда находить оптимальные решения, он не позволяет напрямую определить, как много ходов может потребоваться в худшем случае.
Реализацию алгоритма на языке C можно найти в[59].
В 2005 году результат Майкла Рида в метрике QTM улучшил Силвиу Раду до 40q[60]. В 2006 году Силвиу Раду доказал, что кубик Рубика можно собрать в 27f[39] или 35q[61].
В 2007 году Дэниел Канкл и Джин Куперман использовали суперкомпьютер для доказательства того, что все нерешённые конфигурации можно решить не более чем в 26 ходов FTM. Идея состояла в том, чтобы привести кубик Рубика в одну из 15 752 конфигураций подгруппы квадратов, каждая из которых может быть окончательно решена с помощью нескольких дополнительных ходов. Большинство конфигураций удалось решить таким образом не более чем в 26 ходов. Оставшиеся конфигурации подвергли дополнительному анализу, который показал, что они также решаются в 26 ходов[40][62].
В 2008 году Томас Рокики опубликовал вычислительное доказательство разрешимости головоломки в 25 ходов FTM[63]. В августе 2008 года Рокики объявил о доказательстве разрешимости в 23f[64]. Позже эта оценка улучшилась до 22f[65]. В 2009 году ему же удалось показать разрешимость в 29 ходов QTM[66].
В 2010 году Томас Рокики, Герберт Коцемба, Морли Дэвидсон и Джон Детридж объявили о доказательстве того, что любая конфигурация кубика Рубика может быть решена не более чем в 20 ходов в метрике FTM[1][14]. Вместе с известной ранее оценкой снизу в 20f* это стало доказательством того, что число Бога кубика Рубика в метрике FTM равно 20.
В августе 2014 года Рокики и Дэвидсон объявили, что число Бога для кубика Рубика в метрике QTM равно 26[3][67].
Конфигурацию кубика Рубика, которая расположена на максимальном расстоянии от начальной конфигурации, называют антиподом. Любой антипод в метрике FTM имеет оптимальное решение в 20f*, а любой антипод в метрике QTM имеет оптимальное решение в 26q*[3][68].
Известно, что в метрике FTM существуют миллионы антиподов[69]. Одна из таких конфигураций — «суперфлип». Напротив, в метрике QTM на данный момент известна лишь одна конфигурация-антипод (не считая конфигураций, полученных из неё поворотами) — т.н. «композиция суперфлипа и четырёх точек» (superflip composed with four spot)[30][67][68][70]. Известны лишь две конфигурации на расстоянии 25q* от начальной конфигурации и около 80 тысяч конфигураций на расстоянии 24q*[3][69].
В 2011 году было показано, что число Бога кубика n × n × n является Θ(n2 / log(n))[71][72].
Void Cube — это кубик Рубика 3x3x3 без центральных элементов.
Длина оптимального решения «void-суперфлипа» в метрике FTM равна 20[73][74], что есть доказательство необходимости 20 ходов. Так как Void Cube — ослабленная задача[50] кубика Рубика, существующее доказательство достаточности 20 ходов для кубика Рубика[1] применимо к Void Cube. Следовательно, число Бога головоломки Void Cube в метрике FTM равно 20.
Количество конфигураций головоломки 4×4×4 (англ. Rubik's Revenge) равно[75]
Существует несколько способов определения метрики для кубика 4×4×4. В этом разделе используются следующие метрики:
Длина оптимального решения произвольной конфигурации в метрике q-b не больше, чем в метриках q-w или q-s, так как в метрике q-b разрешены все ходы двух других q-метрик. То же относится к h-метрикам.
В 2006—2007 гг. Брюс Норског (Bruce Norskog) провёл 5-этапный анализ кубика 4×4×4, аналогичный 4-этапному анализу, проведённому Тистлетуэйтом для кубика Рубика 3×3×3. В результате анализа были получены верхние оценки в 82 хода в метрике h-w[76], 77 ходов в метрике h-s[77][78] и 67 ходов в метрике h-b[76].
В 2011 году Томас Рокики на основании нескольких существующих идей определил нижние оценки числа Бога в шести метриках для кубических головоломок с размерами от 2×2×2 до 20×20×20[79].
В 2013 году Shuang Chen (陈霜) снизил оценку в метрике h-w с 82 до 57 поворотов[80].
В 2015 году Томас Рокики подтвердил верхнюю оценку в 57 поворотов h-w и получил новые верхние оценки в 56 h-s и 53 h-b[81]. Уже спустя несколько дней Shuang Chen (陈霜) удалось получить верхние оценки в 55 h-w и 53 h-s, переопределив этапы доказательства[82][83].
Текущие известные верхние и нижние оценки для кубика 4×4×4 в различных метриках приведены в таблице:
метрика | h-s | h-w | h-b | q-s | q-w | q-b |
---|---|---|---|---|---|---|
оценка снизу | 32 | 35 | 29 | 37 | 41 | 33 |
оценка сверху | 53 | 55 | 53 | ? | ? | ? |
Мегаминкс — простейший аналог кубика Рубика в форме додекаэдра. Количество конфигураций 12-цветного Мегаминкса равно 1,01·1068.
В 2012 году Герберт Коцемба определил нижнюю оценку числа Бога для Мегаминкса, равную 45 поворотам граней на любой угол или 55 поворотам на угол ±72°[84][85].
В 2016 году Герберт Коцемба уточнил нижнюю оценку числа Бога для Мегаминкса, повысив ее до 48 поворотов граней на любой угол[86].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.