Sto cercando aiuto per migliorare un algoritmo per posizionare blocchi di forme dispari. Il mio dominio del problema è strano, ma la migliore analogia per i miei blocchi sono i pezzi di Tetris, tranne che possono avere più di quattro pezzi. I blocchi sono ancora composti solo da angoli retti, ma possono essere lunghi e tortuosi, possono diramarsi, ecc.Algoritmo di layout a blocchi
Sto provando a sistemare più blocchi di grandi dimensioni di forma arbitraria nello spazio minimo (lo so, un contenitore di rifiuti problema) ma la mia attuale soluzione sembra brutta. In pratica ne sto piazzando uno, poi il bruto sta forzando il resto cercando di posizionarli all'origine della mia griglia e poi spingendoli lentamente in direzioni diverse fino a quando non collidono più. Non è lento, ma non fa alcun tentativo di adattarsi bene ai pezzi in modo da non sprecare lo spazio complessivo.
L'unica cosa che posso pensare di provare è ordinare i blocchi per dimensione, posizionando prima il più grande, quindi inserendo il più piccolo alla fine in tutti i fori rimanenti. Ma ci sono sicuramente dei modi che possono ritorcersi contro.
Esistono algoritmi euristici o di approssimazione che possono aiutarmi qui?
I risultati sarebbero simile a quanto segue:
Si prega di aggiungere l'immagine – Navin
L'immagine sembra implicare che si desidera spazio tra i blocchi. È vero? –
@Andrew Sì lo farò, ma ho la sensazione che non intaccherà l'algoritmo. Potrei solo fingere che i blocchi siano più spessi di 1 unità su tutti i lati. – Tesserex