Если головоломка, которую вы хотите решить, это та, что на фотографии, которую вы связали, то, вероятно, можно просто поискать в дереве возможных решений, пока не найдете путь ко дну.
Если каждый кусочек головоломки представляет собой количество кубиков, прикрепленных к их граням, и я должен решить головоломку, поместив каждый кусочек в больший куб, 4 раза на каждом ребре в качестве составляющих кубов, то я бы поступил следующим образом .
Объявите произвольный куб каждого фрагмента как его источник. Обратите внимание, что для каждой части головоломки имеется 24 возможных поворота, по одной ориентации для каждой возможной грани исходного куба, обращенного вверх, и умножения на 4 возможных поворота вокруг вертикальной оси в этом положении.
Попытка отбросить пространство поиска путем поиска возможных ориентаций, которые производят ту же самую конечную часть, если данное вращение, сопровождаемое переводом исходного куба в любой из других кубов части, приводит к точно такому же занятому объему как ранее рассмотренное вращение, отбросьте это вращение из будущего рассмотрения.
Вытащите кусок из сумки. Если в сумке нет кусочков, то это решение. Проходите через каждую ячейку объема раствора и каждое вращение вытянутой детали для каждой ячейки. Если произведение полностью находится внутри объема поиска и не пересекается с каким-либо другим произведением, вернитесь к этому абзацу. В противном случае переходите к следующему повороту или, если больше нет вращений, переходите к следующей ячейке или, если больше нет ячеек, возвращайтесь без решения.
Если последний абзац возвращается без решения, тогда головоломка была неразрешимой.