Я не думаю, что человеческий путь был бы полезным для реализации - компьютер может смотреть на все части много раз в секунду, и я не вижу никакой большой победы, классифицируя фигуры в угол, край и внутренние части, особенно потому, что есть только три категории, и они имеют разные размеры.
Учитывая набор изображений всех частей, я попытался бы получить простой дескриптор для каждой части или края. Дескриптор должен содержать информацию о грубой форме и цвете части, соответственно, четырех краях. Учитывая головоломку с 1000 штуками, есть 4000 ребер, и всегда два должны быть равны (игнорируя границу головоломки). Вследствие этого дескриптор должен иметь возможность отличать 2000 ребер, требующих не менее 11 бит.
Разделение одной части на 3-х контрольную панель с девятью полями даст три цвета на край - с восемью битами на канал у нас уже есть 72 бит. Сначала я имел тенденцию предлагать уменьшить цветовое разрешение, но это, кажется, не очень хорошая идея - например, голубое небо может действительно выиграть от высокого разрешения цвета. Обратите внимание, что для вычисления цветов, вероятно, требуется отделить кусок от фона и попытаться совместить края с горизонтальной и вертикальной осями.
В очень однородных областях, таких как голубые небеса, информации о цветах, вероятно, будет недостаточно, чтобы найти хорошие соответствия, и потребуется дополнительная геометрическая информация. Я попытался бы описать форму ребра на его curvature или производную меру. Может быть, пробовал от 10 до 20 очков за край. Вероятно, это снова связано с разделением фона и выравниванием краев.
Наконец, компьютер может сделать легкую часть - сравнить все пары описателей границ и найти лучшие совпадения. Этот процесс, вероятно, должен контролироваться, чтобы стать более локальным, а не простым лучшим совпадением, потому что когда вы нашли угол (правильное английское слово? Я имею в виду три части в L-форме.) У вас есть два края, сдерживающие кусок, чтобы найти и можно отследить назад, если не найдено хорошего совпадения (с указанием ошибки, сделанной ранее или жесткой загадкой).
Возможно, вы можете использовать нечеткий хэш для быстрого определения вероятных совпадений, а затем выявить более продвинутое сравнение для подтверждения совпадений и найти недостающих после решения как можно большего. –
В качестве примечания, я нашел это, оглядываясь на сложность головоломки раз в разы: http://erikdemaine.org/papers/Jigsaw_GC/paper.pdf Автор показывает, что эта проблема NP-полная. –