Егор Урванов

Нейросеть собирает кубик Рубика 4×4×4 и 5×5×5 короче 1000+ командКак это работает

Как нейросеть CayleyPy собирает кубик Рубика за минимум ходов: сколько у кубика комбинаций, почему перебор невозможен, как компас учится на случайных перемешиваниях, зачем поиск фронтом и отряд из нескольких сетей. Результаты на 3×3×3, 4×4×4 и 5×5×5, разбор arXiv 2502.13266 со схемами.

· 16 мин · · Исследования

Нейросеть собирает кубик Рубика в три шага: учится по случайным перемешиваниям угадывать, сколько ходов осталось до сборки, ищет путь фронтом из миллионов позиций сразу и запускает несколько независимых сетей, оставляя самый короткий ответ. Так программа проекта CayleyPy собрала кубики 4×4×4 и 5×5×5 короче лучших из 1000+ команд.

Ролик: та же история за 12 минут

Статья идёт по сюжету ролика, сцена за сценой, и подробнее его. Под схемами — ссылка на этот момент видео.

Статья: A Machine Learning Approach That Beats Large Rubik's Cubes, arXiv 2502.13266, 18 февраля 2025. Лабиринт, компас, фронт и отряд — образы для объяснения; в статье это граф Кэли, нейросеть, лучевой поиск и ансамбль.

Вопрос: собрать кубик легко, собрать за минимум ходов — трудно

Кубик Рубика собирают за вечер по инструкции. Инструкция даёт длинную сборку, обычно 50–100 ходов и больше. Самая короткая сборка — отдельная задача, и для больших кубиков её до сих пор никто не умеет находить.

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

1 ходещё 19собранцель любой сборкиверхняя грань ↻ на ¼ход = поворот одной граниперемешанпозиция = раскраска граней

Слева собранный кубик, в центре — после одного хода, справа — после 20 случайных ходов. ▶ 0:12

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

Сколько комбинаций у кубика Рубика

У обычного кубика Рубика 3×3×3 — 43 252 003 274 489 856 000 комбинаций, около 43 миллиардов миллиардов: перебрать их подряд нельзя. Поэтому собрать кубик за самое маленькое число ходов трудно.

Число складывается из деталей. У кубика 8 уголков (у каждого 3 цвета) и 12 рёбер (у каждого 2 цвета); центры граней не двигаются. Уголки можно расставить по местам 8! способами и повернуть 3⁷ способами — последний уголок поворачивается сам, когда повёрнуты остальные. Рёбра расставляются 12! способами и переворачиваются 2¹¹ способами. Половина сочетаний на настоящем кубике недостижима (без разборки нельзя поменять местами ровно две детали), поэтому произведение делится пополам.

×8 уголкову каждого 3 цвета8! мест × 3⁷ поворотов≈ 88 млн12 рёберу каждого 2 цвета12! мест × 2¹¹ переворотов≈ 981 млрд88 млн × 981 млрд ÷ 2 = 43 252 003 274 489 856 000÷ 2: половину раскрасок на настоящем кубике не собрать · центры граней не двигаются

Слева яркие только уголки, справа только рёбра. ▶ 0:34

Если проверять миллиард позиций в секунду, полный перебор обычного кубика займёт около 1370 лет: начав в 2025 году, закончим в 3395-м.

2025250030003395старт · 1 млрд позиций в секунду≈ 1370 лет на один кубик 3×3×3

Перебор со скоростью миллиард позиций в секунду. ▶ 0:41

У больших кубиков деталей больше, и число растёт ещё быстрее. У кубика 5×5×5 позиций больше, чем атомов на Земле.

3×3×34,3·10¹⁹4×4×47,4·10⁴⁵5×5×52,8·10⁷⁴атомов на Земле ≈ 10⁵⁰длина полосы — число цифр

Длина полосы — число цифр в количестве позиций. ▶ 0:51

Для обычного кубика минимум всё-таки известен. Число Бога — наибольшее число ходов, которое может понадобиться самой короткой сборке. Его нашли перебором на мощных компьютерах с сокращениями за счёт симметрий: 20 ходов, если поворот на пол-оборота считать одним ходом (2010), и 26 ходов, если считать только четверти оборота (2014). Для 4×4×4 и 5×5×5 такого ответа нет.

КубикПозицийЧто известно о кратчайших путях
3×3×34,3·10¹⁹число Бога: 20 ходов (пол-оборота = 1 ход), 26 ходов (только четверти оборота)
4×4×47,4·10⁴⁵есть гипотеза о 48 ходах, не доказана
5×5×52,8·10⁷⁴неизвестно
Вывод
В этом примереДля кубиков 4×4×4 и 5×5×5 полный перебор невозможен, а кратчайшие пути неизвестны.
В общем случаеКогда пространство состояний огромно, кратчайший путь ищут без перебора: оценкой расстояния и умным поиском. Качество проверяют на задачах с известным или лучшим известным ответом.
Что сделатьПрежде чем оценивать «ИИ решил задачу», выясните, с чем сравнивают: с доказанным оптимумом или с лучшим известным решением.

Статья, авторы и соревнование

В 2023 году более тысячи команд программистов соревновались на Kaggle в конкурсе Santa 2023: кто соберёт головоломки, включая большие кубики, за меньшее суммарное число ходов.

Kaggle — площадка, где компании и исследователи выкладывают задачи, а команды со всего мира соревнуются в решениях. В Santa 2023 счёт был простой: сумма ходов по всем задачам, чем меньше — тем выше место. Лучшие ответы конкурса стали планкой для больших кубиков.

18 февраля 2025 года двенадцать авторов проекта CayleyPy выложили статью «A Machine Learning Approach That Beats Large Rubik's Cubes». Их программа обошла лучшие ответы соревнования на кубиках 4×4×4 и 5×5×5 и стала первой нейросетью, которая собирает кубики больше обычного.

АлександрЧервовКириллХоружийНикитаБухалДжалалНагиевВладиславЗамковойИванКольцовЛюдмилаЧелдиеваАрсенийСычевАрсенийЛенинМаркОбозовЕгорУрвановавтор этого блогаАлексейРоманов12 авторов · CayleyPy · Москва, Париж, Мюнхен · arXiv, 18 февраля 2025

Авторы в порядке статьи. Автор этого блога — один из соавторов.

Kaggle Santa 20231000+ команд1 точка ≈ 10 командсчёт — сумма ходовсредняя длина решения, ходов4×4×4лучшие команды · 53,5CayleyPy · 46,5−7,05×5×5лучшие команды · 96,6CayleyPy · 92,2−4,4короче — лучше · кубики 4×4×4: 43 задачи, 5×5×5: 19

Конкурс и результат: средняя длина решения, ходов. ▶ 1:17

Кубик как лабиринт позиций

Главный образ: каждая позиция — комната, каждый ход — дверь в соседнюю комнату, собранный кубик — выход.

Комната — это одна раскраска кубика. Повернули грань — перешли в соседнюю комнату. Комната соседняя, потому что раскраска отличается одним поворотом.

дверьправая грань ↻комната = одна раскраскасоседняя комнатаотличается правой гранью

Справа та же раскраска, только правая грань повернулась. ▶ 1:35

Из любой комнаты обычного кубика ведут 12 дверей: у кубика 6 граней, каждую можно повернуть по часовой стрелке или против.

сейчас12 дверей →верх↻верх↺низ↻низ↺перед↻перед↺зад↻зад↺право↻право↺лево↻лево↺↻ по часовой · ↺ против — если смотреть прямо на эту грань

Все 12 соседних комнат: за каждой дверью своя раскраска. ▶ 1:45

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

Ниже — игрушечный лабиринт на 40 комнат. В настоящем 4,3·10¹⁹ комнат, у каждой 12 дверей, поэтому нарисовать его нельзя; на маленьком видно, как работает каждая часть программы.

выходсобранныйкубикстартвашкубик87654321кратчайший путь — 9 ходов · цифра — сколько ходов осталосьтолстая линия — стена · у комнаты-кубика 12 дверей, на схеме до 4

Выход слева, старт справа, толстые линии — стены. ▶ 2:12

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

9876543210выход · 0собранный кубикстарт · 9ваш кубиквысота = сколько ходов до выхода · синие ступени — кратчайший путь вниз

Рельеф того же лабиринта. ▶ 1:59

Прогулка от выхода

Карты лабиринта ни у кого нет: комнат слишком много. Поэтому авторы идут от обратного.

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

1234567прогулка от выхода · цифра — номер ходазаписи для обучения→1 ход→2 хода→3 хода→7 ходовмиллиарды таких пар

Слева прогулка по лабиринту, справа — записи, на которых учится нейросеть. ▶ 2:44

Прогулкаслучайные ходы от собранного кубика, без шага назад
Длинадо 26 ходов для 3×3×3, до 45 — для 4×4×4, до 65 — для 5×5×5
Записьпозиция → сколько ходов сделано
Объём8 млрд позиций; перед каждым кругом обучения — 1 млн свежих

Компас: нейросеть, которая угадывает расстояние до выхода

Из прогулок учится компас: он смотрит на раскраску и угадывает, сколько ходов до выхода, то есть высоту комнаты на рельефе.

входраскраска · 54 наклейкинейросеть10 слоёв · 4 млн настроек≈ 17выходходов до сборки

Компас — обычная нейросеть: раскраска на входе, число на выходе.

Компас ошибается, причём в большую сторону: прогулка петляет, и ходов в ней больше, чем на кратчайшем пути. На схеме прогулка дошла до комнаты за 8 ходов, а настоящий путь до неё — 2. Но чем дальше ушла прогулка, тем в среднем дальше комната от выхода, поэтому компас верно показывает направление: где число меньше, там ближе к выходу. Среднее число ходов прогулки до позиции авторы называют диффузионным расстоянием.

пунктир — прогулка · синий — настоящий путьзапомнила прогулка8 ходовна самом деле2 ходакомпас завышает,но чем дальше от выхода,тем больше его число

Почему компас завышает. ▶ 3:06

Вход
Позиция кубика: список чисел, где сейчас каждая из 54 наклеек
Нейросеть
10 слоёв, 4 млн настроек; учится на 8 млрд позиций из прогулок
Выход
Оценка: сколько ходов до собранного кубика

Компас — первая часть программы авторов. Всю программу дальше называем сборщиком: компас, фронт и отряд.

Фронт: почему одного пути мало

Если идти одним путём туда, куда показывает компас, одна ошибка компаса заводит в тупик.

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

1364667101454571011013869434661111107654610912выходсобранныйкубикстартвашкубиктупикчисло — сколько ходов до выхода, по мнению компаса (он ошибается на −1…+2)одиночный путь верит компасу и не может вернуться

Одиночный путь по компасу. ▶ 3:37

Поэтому сборщик идёт фронтом — в статье это лучевой поиск. Фронт — несколько комнат сразу. На каждом шаге сборщик открывает все двери из всех комнат фронта, компас оценивает новых соседей, и на следующий шаг остаются только самые многообещающие. Сколько комнат держать, задаёт ширина фронта; у авторов она доходит до 2²⁴ ≈ 16 млн. Если компас ошибся в одной комнате, рядом во фронте есть другие, и путь не обрывается.

876543543218763218542176выходсобранныйкубикстартвашкубиксиние комнаты — фронт · цифра — номер шага · путь — 9 ходовна каждом шаге во фронте остаются 3 самые многообещающие комнаты

Тот же компас, фронт шириной 3. ▶ 4:09

Отряд: несколько компасов и самый короткий ответ

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

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

компас 113 ходовкомпас 211 ходовкомпас 39 ходов● выход · ○ старт · каждый компас учился на своих прогулках · ответ — самый короткий путь

Три компаса с разными ошибками на одном лабиринте. ▶ 4:36

Результаты

Три кубика — три истории.

Обычный кубик 3×3×3. Сборщик находит самый короткий из возможных путей в 98 случаях из 100. Прошлые лучшие нейросети — DeepCubeA (2019) и EfficientCube (2023) — в 60 и 70.

98 из 100 задач — кратчайший путь (точнее, 98,4 % на 1000 позиций из работы DeepCubeA). ▶ 4:43

Кубик 4×4×4. Путь сборщика в среднем на 7 ходов короче, чем у лучших команд соревнования: 46,5 против 53,5. Это меньше гипотетического предела в 48 ходов.

сборщик · 46,5
+7 у лучших команд

Кубик 5×5×5. Сборщик короче лучших команд в каждой из 19 задач соревнования: 92,2 хода против 96,6 в среднем.

19 задач из 19 · 92,2 хода против 96,6 в среднем

19 из 19. ▶ 5:02

КубикНабор задачЛучшие до статьиCayleyPy
3×3×31000 позиций из работы DeepCubeA60,3 % и 69,6 % кратчайших путей (DeepCubeA, EfficientCube)98,4 %, 26 компасов
4×4×443 позиции Kaggle Santa 202353,49 хода в среднем46,51 хода, 29 компасов
5×5×519 позиций Kaggle Santa 202396,58 хода92,16 хода, 69 компасов

Таблица I статьи.

Почему: ширина фронта

Ошибку компаса в одной комнате исправляют соседние комнаты фронта, поэтому чем фронт шире, тем короче найденный путь.

На схеме один и тот же компас при ширине 1 заходит в тупик, при ширине 2 находит путь в 11 ходов, при ширине 3 — кратчайший, в 9. Пути посчитаны настоящим лучевым поиском. Цена ширины — время: чем шире фронт, тем больше комнат он осматривает.

ширина 1тупикосмотрено комнат: 9ширина 211 ходовосмотрено комнат: 29ширина 39 ходовосмотрено комнат: 33синие комнаты — где побывал фронт · шире фронт — больше ошибок компаса прощено

Тот же компас, разная ширина фронта. ▶ 5:31

У авторов на кубике 4×4×4 фронт шире в 256 раз укоротил путь с 60 ходов до 50, и каждое удвоение ширины срезало примерно одинаковое число ходов.

65 тыс.60,2
262 тыс.56,7
1 млн55,3
4 млн52,8
16 млн50,6

Ширина фронта и средний путь на кубике 4×4×4, ходов. Таблица III статьи.

Вывод
В этом примереКаждое удвоение ширины срезает с пути примерно одно и то же число ходов.
В общем случаеИз всех настроек ширина фронта влияет на результат сильнее всего — сильнее размера сети и объёма данных.
Что сделатьЕсли оценка расстояния неточная, вкладывайтесь в ширину поиска, а не в идеальную оценку.

Почему: отряд

Для кубика 5×5×5 авторы обучили 69 компасов. На каждой задаче побеждает тот, чей путь короче, и в итоговые ответы вошли пути 10 из них.

Даже слабые компасы оказались нужны: каждый выиграл одну-две трудные задачи. Вместе отряд находит путь до 8 ходов короче, чем лучший из компасов в одиночку. А самый первый компас для кубика 4×4×4 один обогнал все лучшие ответы соревнования — и всё равно не вошёл в итог: другие вместе оказались короче.

69 компасов для 5×5×5, подсвечены 10, чьи пути вошли в ответ. Какие именно — схема, в статье это рисунок 3. ▶ 6:02

Вывод
В этом примереАнсамбль из 10 разных компасов короче лучшего из них до 8 ходов.
В общем случаеКогда ответ легко проверить, несколько независимо обученных моделей с выбором лучшего ответа дают больше, чем доводка одной модели.
Что сделатьЕсли проверка ответа дешёвая, запускайте несколько разных моделей и берите лучший результат.

Неожиданное

Три наблюдения, которые авторы называют неожиданными.

данных больше — не лучшесредний путь 4×4×4 · млрд позиций55,4455,1855,816маленькая сеть точнеенастройки, млн14,7прошлые4компасбыстрееобучение, часы86,4прошлые4,7компассинее — CayleyPy; сборка кубика на том же компьютере в 26 раз быстрее: 10,9 с против 287,8 с

Данные, размер сети, время. ▶ 6:37

  1. 1
    Данных больше — не лучше
    Больше 8 млрд позиций компас почти не улучшают: 4, 8 и 16 млрд дают средний путь 55,4, 55,1 и 55,8 хода на кубике 4×4×4
  2. 2
    Маленький компас точнее
    4 млн настроек против 14,7 млн у прошлых сетей — почти вчетверо меньше и всё равно точнее; даже однослойная сеть даёт 90,4 % кратчайших путей
  3. 3
    Быстрее
    Обучение — 4 ч 40 мин вместо 86 ч 25 мин; сборка кубика на том же компьютере и с той же шириной фронта — 10,9 с против 287,8 с, примерно в 26 раз быстрее

Главное

Вопрос был: можно ли найти короткую сборку огромного кубика, если все позиции не перебрать? Можно.

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

Прогулкидешёвые данные без карты
Компасоценка ходов до выхода
Фронтпрощает ошибки компаса
Отрядсамый короткий из ответов

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

Формально: тот же путь языком статьи

Вторая часть ролика: те же шаги формулами.

В роликеВ статьеКак устроено
лабиринтграф Кэли (Шрайера) группы кубикавершины — позиции, рёбра — ходы
позицияперестановка(p(0), …, p(53)): куда переехала каждая из 54 наклеек; ход двигает 20 наклеек
прогулкапары (позиция, k)среднее k — диффузионное расстояние; оно больше кратчайшего
компаснейросеть ResMLP10 слоёв, 4 млн параметров, учится уменьшать (оценка − k)²; перед каждым кругом обучения — 1 млн свежих позиций
фронтлучевой поиск (beam search)соседи → без повторов → оценка → W лучших; W до 2²⁴, не больше 200 шагов
отрядагентыдлина ответа = min(L₁, …, L_A) по агентам
001122334455667788… 53… 53допослепозиция = (p(0), …, p(53)) · ход двигает 20 наклеек

Позиция — перестановка: как тасовка колоды, карты те же, порядок другой. Показаны 9 наклеек из 54. ▶ 8:15

фронтWсоседиW × 12без повторовоценка компасомW лучшихWповторять, пока во фронте не окажется собранный кубик

Один шаг лучевого поиска: как отбор в турнире, дальше проходят лучшие. ▶ 9:39

Схема лучевого поиска в несколько строк; полный код на PyTorch авторы выложили вместе со статьёй.

def beam_search(start, model, W, steps=200):
    front = [start]
    for _ in range(steps):
        nbrs = unique(move(v) for v in front for move in MOVES)
        if SOLVED in nbrs: return True
        front = sorted(nbrs, key=model)[:W]   # W лучших по компасу
    return False

Где это пригодится

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

СвязьГде
прямоголоволомки: кубики любого размера, задачи соревнования Kaggle Santa
прямократчайшие пути в огромных графах перестановок, где перебор невозможен
в планах авторовзадачи из биологии и программирования
аналогияпланирование: робот или игра, где нужно дойти от одного состояния к другому

Урок. Если карты нет, учите компас на случайных прогулках и идите широким фронтом.

Кто и когда, что доказано

  1. 1
    1974
    Эрнё Рубик придумал кубик
  2. 2
    2010
    Доказано: любую позицию 3×3×3 можно собрать за 20 ходов, если поворот на пол-оборота считать одним ходом
  3. 3
    2014
    Доказано: за 26 ходов, если считать только четверти оборота
  4. 4
    2019
    Нейросеть DeepCubeA из Калифорнийского университета в Ирвайне впервые собрала обычный кубик без подсказок человека
  5. 5
    2023
    Соревнование Kaggle Santa: 1000+ команд собирают большие кубики
  6. 6
    2025
    Статья CayleyPy: первая нейросеть, которая обходит всех на 4×4×4 и 5×5×5

Это эксперимент, а не доказательство: числа измерены на наборах задач из прошлых работ и из соревнования, а кратчайшие пути для больших кубиков неизвестны. Средний путь 46,5 хода на кубике 4×4×4 ниже гипотетического предела в 48 ходов, но сама гипотеза не доказана. В тексте статьи несколько чисел расходятся: доля кратчайших путей на обычном кубике названа то 98,4 %, то 97,6 %, а число нейросетей в отряде для 4×4×4 ниже 48 ходов — то 29, то 6.

Частые вопросы

Может ли нейросеть собрать кубик Рубика?
Да. Обычный кубик нейросети собирают с 2019 года (DeepCubeA), а в 2025 году программа CayleyPy впервые собрала нейросетью кубики 4×4×4 и 5×5×5 и сделала это короче лучших команд соревнования.
Сколько комбинаций у кубика Рубика 3×3×3?
43 252 003 274 489 856 000 — около 4,3·10¹⁹. У 4×4×4 около 7,4·10⁴⁵, у 5×5×5 около 2,8·10⁷⁴.
За сколько ходов можно собрать любой кубик Рубика?
Обычный кубик 3×3×3 — за 20 ходов, если поворот на пол-оборота считать одним ходом, и за 26, если считать только четверти оборота. Для больших кубиков точный ответ неизвестен.
Чем CayleyPy отличается от DeepCubeA?
Нейросеть почти вчетверо меньше, обучается примерно в 18 раз быстрее, а поиск идёт широким фронтом и отрядом из нескольких сетей. На обычном кубике это дало 98 % кратчайших путей против 60 %.
Можно ли попробовать самому?
Да: код авторов открыт, библиотека CayleyPy лежит на GitHub (ссылка ниже).
Числа — из статьи A. Chervov, K. Khoruzhii, …, E. Urvanov, A. Romanov, arXiv 2502.13266 (таблицы I–III, рисунки 2–3). Нарисованный лабиринт и числа на нём — схема; пути на ней посчитаны лучевым поиском. Автор блога — один из соавторов статьи.
  • ИИ-агент
  • исследования
  • нейросети
  • кубик Рубика
  • сборка кубика Рубика
  • поиск пути
© 2026 Егор Урванов