Как человек, имевший к этому отношение, скажу...
Во-первых, это страшный гемор.
Во-вторых, я видел одну прогу, рекламный конспект которой вещал, что она всё это делает, но школа пожалела пару тысяч рэ, поэтому сказать ничего не могу.
В-третьих, единственный вариант решения, который приходит в голову мне - это занесение в сетку инвариантов с последующим перебором вариантов и проверкой близости каждого к идеалу...
Да, и ещё.
Эта задача мне очень напоминает решение японских головоломок автоматически. Я как-то писал интеллектуальный решатель, не использующий перебор. Он с бешеной скоростью решал несложные картинки... Но когда я решил за него взяться по-настоящему... В общем, после кое-чего он грохнулся. вместе с фильмом "Звёздный десант 2" и парой десятков файлов из интернет-кэша, с формулировкой "Таблица размещения кластеров уничтожена"

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас