Questo è un problema noto, che determina quali rettangoli possono essere piastrellati con determinati pezzi.
Tuttavia, se stai costruendo puzzle e riesci a controllare i pezzi, è l'opposto, il problema costruttivo e più facile ...
Costruisci una soluzione in modo costruttivo. Prendi alcuni pezzi che ti piacciono e riempi il puzzle come preferisci. Quindi inserisci abbastanza singoli quadrati per compilarlo e hai garantito che ci sia almeno una soluzione. O meglio, includi alcuni piccoli pezzi nel tuo set di pezzi consentito.
Per quanto riguarda la risoluzione / disposizione dei pezzi, un tipico approccio alla forza bruta è di riempirlo da sinistra a destra, quindi dall'alto verso il basso. Trova la prima cella aperta (numerata LR, TB) e prova a inserire i pezzi consentiti nei loro orientamenti consentiti (8 orientamenti per un pezzo asimmetrico se consenti il capovolgimento). Magari controlla i primi pezzi di grandi dimensioni ammessi e, se necessario, ricorri a quelli più piccoli. Quando raggiungi uno stato che non ti piace (vicolo cieco, troppi piccoli pezzi, o cosa no), fai un passo indietro. Se un determinato set di griglie / pezzi non soddisfa i tuoi criteri, ovvero è tornato indietro completamente senza finire, prova un rettangolo e un set di pezzi diversi.
Un modo per rendere un puzzle "più semplice" potrebbe essere quello di scambiare pezzi più grandi con pezzi più piccoli come monomini e domino, poiché ciò lascerà più modi per riempire le ultime buche. O, equivalentemente, costruisci una soluzione che favorisca quei pezzi più piccoli.
Alcuni noti polominominologi includono:
==> http://ee.usc.edu/faculty_staff/faculty_directory/golomb.htm Golomb originariamente ha coniato il termine "Polyomino"
==> http://www.eklhad.net/polyomino/ Dahlke ha risolto alcuni rettangoli pieni di pezzi identici (una forma di piastrellatura particolarmente rara)