Введение

Оптимальные решения для кубика Рубика – это решения, которые в некотором смысле являются самыми короткими. Существует два распространенных способа измерения длины решения. Первый – подсчет количества четвертных поворотов. Второй – подсчет количества поворотов внешнего слоя, называемых «поворотами грани». Движение, поворачивающее внешний слой на два четвертных (90°) поворота в одном и том же направлении, будет считаться как два движения в метрике четвертных поворотов (QTM), но как один поворот в метрике грани (FTM, или HTM «Half Turn Metric», или OBTM «Outer Block Turn Metric»). Максимальное количество поворотов грани, необходимых для решения любой конфигурации кубика Рубика, составляет 20, и было установлено Дэвидом Сингмастером. Следующие – стандартные движения, которые не перемещают центральные кубики какой-либо грани в другое место:

Буквы L, R, F, B, U и D обозначают четвертной поворот левой, правой, передней, задней, верхней и нижней граней соответственно по часовой стрелке. Поворот на пол-оборота (то есть два четвертных поворота в одном направлении) обозначается добавлением цифры 2. Поворот против часовой стрелки обозначается штрихом ( ′ ). Однако, поскольку эти обозначения ориентированы на человека, мы используем положительное направление – по часовой стрелке, а не математически ориентированное, где положительным является направление против часовой стрелки. Следующие – нестандартные движения:

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

Буквы M, S и E используются для обозначения поворота среднего слоя. M (сокращение от «Middle» – средний) обозначает поворот слоя между гранями R и L на 1 четверть оборота по часовой стрелке (от передней к задней стороне), если смотреть на грань L. S (сокращение от «Standing» – стоящий) обозначает поворот слоя между гранями F и B на 1 четверть оборота по часовой стрелке (сверху вниз), если смотреть на грань F. E (сокращение от «Equator» – экватор) обозначает поворот слоя между гранями U и D на 1 четверть оборота по часовой стрелке (слева направо), если смотреть с грани D. Как и в случае с обычными поворотами, цифра 2 обозначает пол-оборота, а штрих (') – поворот против часовой стрелки. Вместо этого строчные буквы r, f и u также используются для обозначения поворота слоев, соседних с гранями R, F и U соответственно, в том же направлении, что и R, F и U. Это более соответствует ожиданиям. В многослойных кубиках перед названиями граней могут стоять цифры, указывающие на поворот n-го слоя от названной грани. 2R, 2F и 2U обозначают поворот слоев, соседних с гранями R, F и U соответственно, в том же направлении, что и R, F и U. Использование этой нотации для трехслойного куба более согласовано с многослойными кубами. Повороты всего куба:

Буквы x, y и z используются для обозначения вращений куба. x обозначает вращение куба в направлении R. y обозначает вращение куба в направлении U. z обозначает вращение куба в направлении F. Эти вращения куба часто используются в алгоритмах, чтобы сделать их более плавными и быстрыми. Как и в случае с обычными поворотами, цифра 2 обозначает пол-оборота, а штрих (') – поворот против часовой стрелки. Обратите внимание, что эти пространственные вращения обычно обозначаются строчными буквами.

Нижняя граница

Можно доказать, подсчитав аргументы, что существуют позиции, для решения которых требуется не менее 18 ходов. Чтобы это показать, сначала подсчитайте общее количество возможных позиций куба, а затем подсчитайте количество позиций, достижимых не более чем за 17 ходов, начиная с решённого куба. Оказывается, что последнее число меньше. Этот аргумент долгое время оставался без улучшений. Кроме того, это не конструктивное доказательство: оно не указывает конкретную позицию, требующую такого количества ходов. Предполагалось, что так называемый суперфлип будет представлять собой очень сложную позицию. Куб Рубика находится в состоянии суперфлипа, когда все угловые элементы находятся на своих местах, но все рёберные элементы ориентированы неправильно. В 1992 году Дик Т. Винтер нашёл решение суперфлипа, состоящее из 20 поворотов граней, а в 1995 году Майкл Рид доказал его минимальность, тем самым предоставив новую нижнюю границу для диаметра группы куба. Также в 1995 году Майкл Рид нашёл решение суперфлипа, состоящее из 24 поворотов на 90 градусов, а Джерри Брайан доказал его минимальность.

Верхние границы

Первые верхние границы были основаны на "человеческих" алгоритмах. Комбинируя наихудшие сценарии для каждой части этих алгоритмов, типичная верхняя граница оказалась около 100. Вероятно, первым конкретным значением верхней границы было 277 ходов, упомянутых Дэвидом Сингмастером в начале 1979 года. Он просто подсчитал максимальное количество ходов, необходимое его алгоритму решения кубика. Хотя вся группа куба очень велика (~4.3×1019), правые смежные классы и гораздо меньше. Смежный класс является самым большим и содержит всего 1082565 элементов. Количество ходов, требуемых этим алгоритмом, является суммой максимального числа операций на каждом шаге. Изначально Тистлтвейт показал, что любую конфигурацию можно решить не более чем за 85 ходов. В январе 1980 года он улучшил свою стратегию, чтобы получить максимум 80 ходов. Позже в том же году он уменьшил это число до 63, а затем до 52. Алгоритмы Тистлтвейта были реализованы на различных языках программирования.

Алгоритм Коцембы

Алгоритм Тистлтвейта был улучшен Гербертом Коцембой в 1992 году. Он сократил количество промежуточных групп до двух:

Как и в алгоритме Тистлтвейта, он осуществлял поиск в правом косетовом пространстве, чтобы привести куб к группе Далее он искал оптимальное решение для группы. Поиски в и осуществлялись методом, эквивалентным итеративному углублению A* (IDA*). Поиск в требует не более 12 ходов, а поиск в – не более 18 ходов, как показал Майкл Рид в 1995 году. Также, генерируя субоптимальные решения, приводящие куб к группе и находя короткие решения в , обычно удается получить значительно более короткие общие решения. Используя этот алгоритм, обычно находят решения менее чем за 21 ход, хотя нет доказательств, что он всегда будет так делать. В 1995 году Майкл Рид доказал, что с помощью этих двух групп любую позицию можно решить не более чем за 29 поворотов граней или 42 четверть-поворотов. Этот результат был улучшен Сильвиу Раду в 2005 году до 40. На первый взгляд, этот алгоритм кажется практически неэффективным: если содержит 18 возможных ходов (каждый ход, его обратный ход и его вращение на 180 градусов), то остается (более 1 квадриллиона) состояний куба для поиска. Даже с эвристическим алгоритмом, основанным на компьютере, таким как IDA*, который может значительно сузить область поиска, поиск по такому количеству состояний вряд ли будет практичным. Для решения этой проблемы Коцемба разработал таблицу поиска, которая предоставляет точную эвристику для Когда точное количество ходов, необходимых для достижения , известно, поиск становится практически мгновенным: нужно лишь сгенерировать 18 состояний куба для каждого из 12 ходов и каждый раз выбирать состояние с наименьшей эвристикой. Это позволяет второй эвристике, для , быть менее точной и все же вычислять решение за разумное время на современном компьютере.

Дальнейшие улучшения и поиск числа Бога

В 2006 году Сильвиу Раду усовершенствовал свои методы, чтобы доказать, что любую позицию можно решить максимум за 27 поворотов граней или 35 четвертных поворотов. В 2007 году Даниэль Кункл и Джин Куперман использовали суперкомпьютер, чтобы показать, что все нерешенные кубики можно решить не более чем за 26 ходов (в метрике поворотов граней). Вместо попыток решить каждый из миллиардов вариантов явно, компьютер был запрограммирован на приведение кубика к одному из 15 752 состояний, каждое из которых можно было решить за несколько дополнительных ходов. Все позиции были доказаны решаемыми за 29 ходов, большинство – за 26. Те, которые изначально не могли быть решены за 26 ходов, затем были решены напрямую, и было показано, что и они тоже решаемы за 26 ходов. Томас Рокицки сообщил в 2008 году о вычислительном доказательстве того, что все нерешенные кубики можно решить за 25 ходов или меньше. Позже это число было уменьшено до 23 ходов. В августе 2008 года Рокицки объявил о наличии доказательства для 22 ходов. Наконец, в 2010 году Томас Рокицки, Герберт Косиемба, Морли Дэвидсон и Джон Детридж представили окончательное компьютерное доказательство того, что все позиции кубика можно решить максимум за 20 поворотов граней. А в 2014 году Томас Рокицки и Морли Дэвидсон доказали, что максимальное количество четвертных поворотов, необходимых для решения кубика, равно 26.