Rettangoli di imballaggio in poligoni convessi ma senza rotazioni


23

Sono interessato al problema di impacchettare copie identiche di rettangoli (bidimensionali) in un poligono convesso (bidimensionale) senza sovrapposizioni. Nel mio problema non ti è permesso di ruotare i rettangoli e puoi supporre che siano orientati parallelamente agli assi. Ti sono appena date le dimensioni di un rettangolo e i vertici del poligono e ti è stato chiesto quante copie identiche del rettangolo possono essere impacchettate nel poligono. Se ti è permesso di ruotare i rettangoli, credo che questo problema sia NP-difficile. Tuttavia, cosa si sa se non è possibile? Che ne dici se il poligono convesso è semplicemente un triangolo? Esistono algoritmi di approssimazione noti se il problema è effettivamente NP-difficile?

Sommario finora (21 marzo '11). Peter Shor osserva che possiamo considerare questo problema come uno dei quadrati delle unità di imballaggio in un poligono convesso e che quel problema è in NP se imponi un limite polinomiale sul numero di quadrati / rettangoli da impacchettare. Sariel Har-Peled sottolinea che esiste un PTAS per lo stesso caso polinomialmente limitato. Tuttavia, in generale il numero di quadrati impacchettati può essere esponenziale nella dimensione dell'input, che consiste solo in un possibile elenco di coppie di numeri interi. Le seguenti domande sembrano essere aperte.

La versione completa è illimitata in NP? Esiste un PTAS per la versione illimitata? Il caso è limitato polinomialmente in P o NPC? E il mio preferito, il problema è più semplice se ti limiti a imballare i quadrati delle unità in un triangolo?


L'imballaggio con rettangoli 1x3 è NP-completo (con rotazione) e immagino che diventa facile se non si accettano rotazioni. È possibile trovare il numero massimo di rettangoli per ogni riga (o colonna) e aggiungerli per ottenere il numero massimo complessivo di rettangoli compressi.
Mohammad Al-Turkistany,

Non sono sicuro che fissare le dimensioni su 1x3 (o qualsiasi altra cosa) sia di grande aiuto per il mio problema? Il poligono convesso non ha necessariamente lati paralleli agli assi e devi ancora decidere dove posizionare i rettangoli. Potresti posizionarli più in basso nell'asse y prima poi giustificati a sinistra come un ragionevole euristico ma puoi costruire esempi abbastanza facilmente dove questo non è ottimale.
Raffaello

9
È possibile applicare una trasformazione affine per rendere tutti i rettangoli . Quindi il problema è equivalente a quello dei quadrati di imballaggio. 1×1
Peter Shor,

1
@turkistany: Mi daresti un riferimento che mostra la completezza NP per i rettangoli 1x3? Oppure è facile da osservare?
Yoshio Okamoto,

3
Effettuando una ricerca basata sull'osservazione di Peter Shor maven.smith.edu/~orourke/TOPP/P56.html viene fuori che è interessante. Tuttavia sembra essere focalizzato su poligoni semplici generali (cioè possono essere concavi).
Raffaello

Risposte:


12

Il problema può essere riformulato in quanto raccoglie un numero massimo di punti all'interno di un poligono convesso, in modo tale che ogni coppia di essi sia a distanza (sotto il metrica L ) almeno 1 l' uno dall'altro (basti pensare ai centri dei quadrati) . Questo a sua volta è legato allo stesso problema in cui si usa la normale distanza euclidea. Questo è a sua volta correlato al meshing, in cui si è interessati a spezzare un poligono in regioni ben comportate (ovvero, si prende il diagramma Voronoi dei centri [vedi tessellazioni Voroidi centroidali]).L1

In ogni caso, un -approximation è abbastanza facile. Fai scorrere casualmente una griglia di lunghezza laterale O ( 1 / ϵ ) . Aggancia il poligono nella griglia e risolvi il problema all'interno di ogni pezzo di intersezione del poligono con la griglia usando la forza bruta. Un algoritmo con tempo di esecuzione O ( M n o i s e ( ϵ ) ) dovrebbe seguire facilmente, dove M è il numero di punti (ovvero rettangoli) e(1ϵ)O(1/ϵ)O(Mnoise(ϵ))Mnoise(ϵ)è una funzione orrenda che dipende solo da .ϵ


Grazie. Ho ragione nel pensare che anche nel caso in cui abbiamo un polinomio legato al numero di rettangoli / quadrati, non è ancora chiaro se il problema sia in P?
Raffaello

1
Ecco i miei 2 centesimi di ipotesi / speculazioni ... Sarebbe sorprendente se fosse in P - dovresti mostrare alcune proprietà extra della soluzione ottimale. Tuttavia, la mia ipotesi sarebbe che una prova formale della durezza NP non è raggiungibile - il problema ha troppa struttura. Feder e Greene hanno dimostrato che il clustering k-center è NP-difficile da approssimare entro un certo fattore. Penso / suppongo che la loro prova possa essere usata per dimostrare che il problema sopra è NP-Hard se il poligono ha buchi ...
Sariel Har-Peled,

2

Questi due documenti risolvono il tuo problema:

EG Birgin e RD Lobato, " Imballaggio ortogonale di rettangoli identici all'interno di regioni convesse isotrope ", Computer e ingegneria industriale 59, pagg. 595-602, 2010. 

EG Birgin, JM Martínez, FH Nishihara e DP Ronconi, " Imballaggio ortogonale di oggetti rettangolari all'interno di regioni convesse arbitrarie mediante ottimizzazione non lineare ", Computers & Operations Research 33, pagg. 3535-3548, 2006.

 


Questi documenti cercano di risolvere il problema in pratica. Per quanto ne so, la domanda è se il problema è noto come NP-difficile.
András Salamon,

3
È abbastanza facile mostrare che è in NP. Supponiamo che io ti dia un diagramma dell'imballaggio ottimale che ti dice quali quadrati toccano quali lati del poligono e quali quadrati sono sopra / sotto / a sinistra / a destra di altri quadrati. La domanda se è possibile trovare le coordinate per un insieme di quadrati che si impacchettano esattamente in questo modo è un programma lineare, e quindi è possibile verificare che questo sia un diagramma per un imballaggio fattibile.
Peter Shor,

4
Se tutti i vertici del poligono sono numeri interi (o razionali), un risultato standard sui programmi lineari afferma che non è necessaria una quantità polinomiale di precisione aggiuntiva e che il programma lineare può essere risolto esattamente in tempo polinomiale. Mi scuso se lo sapevi già, ma non posso dirlo dal tuo commento sopra - e anche se lo sapessi, alcune persone non lo faranno.
Peter Shor,

2
Grazie. Lo sapevo una volta, ma è stato bello ricordarmelo. Sembra anche che tu possa avere un numero esponenziale di quadrati racchiusi nel poligono, quindi non sono sicuro che puoi permetterti di elencarli tutti. Forse c'è qualche ridimensionamento che puoi fare per aggirare questo?
Raffaello,

3
@Rafael: stavo assumendo (senza giustificazione) che tu avessi un limite polinomiale sul numero di quadrati. Se consenti poligoni di dimensioni esponenziali, le cose diventano molto più complicate.
Peter Shor,

1

Peter Shor ha osservato che, riscalando, questo problema riguarda l'imballaggio dei quadrati delle unità in un poligono convesso.

Modifica: il resto di questa risposta non si applica, in quanto elimina il requisito esplicitamente dichiarato che le forme da imballare hanno tutte le stesse dimensioni.


La domanda correlata NP-Durezza di un caso speciale di problema di imballaggio ortogonale menziona un documento con il risultato necessario per la prima domanda:

  • Imballando i quadrati in un quadrato, Joseph YT. Leung, Tommy W. Tam, CS Wong, Gilbert H. Young e Francis YL Chin, Journal of Parallel and Distributed Computing 10 271–275. ( link )

Dal documento:

dimostriamo che il problema dell'imballaggio quadrato è fortemente NP-completo riducendo ad esso il problema delle 3 partizioni.

Quindi il problema è NP-difficile anche per il caso speciale in cui i rettangoli da imballare sono simili al contenitore. (A differenza degli autori di questo documento, non sono del tutto convinto che il problema sia in NP, poiché le posizioni potrebbero dover essere specificate con una grande precisione, il che potrebbe rendere la verifica non più polinomiale nella dimensione di input. )


5
Guardando la carta, dai diagrammi sembra che i quadrati da imballare non abbiano tutte le stesse dimensioni.
Peter Shor,

1
@Peter: hai ragione, questo documento non implica nulla del problema di Raphaël.
András Salamon,

0

Forse questo documento può essere di tuo interesse:

Piastrellatura di un poligono con rettangoli di Kenyon e Kenyon in FOCS 92.


Grazie. Tuttavia, se ho capito bene, una piastrellatura copre esattamente il poligono. Questo non sarà quasi mai possibile nel mio caso (considera un triangolo arbitrario con un orientamento arbitrario) che sembra rendere il mio problema di ottimizzazione sostanzialmente diverso.
Raffaello

anzi, questo non è lo stesso problema, errore mio.
Sylvain Peyronnet,

0

Se il poligono in cui vuoi impacchettare non è necessariamente convesso, penso che il problema diventi NP-difficile. Ecco una prova molto approssimativa. La riduzione è dovuta ad alcuni problemi di tipo Planar-3-SAT. Per ogni variabile puoi avere un posto di 1,1 x 1, a seconda di dove in questa area posizionerai un quadrato determinerà se la tua variabile è vera di falso. Inoltre, se lasci .1 area a sinistra / a destra, puoi spostare altri due quadrati un po 'più all'interno, e anche quelli dietro di loro, dando infine un altro spazio .1 da qualche altra parte che insieme ora influenza quattro quadrati e così via. Dopo aver ottenuto tante copie quante sono le occorrenze del rispettivo letterale, si collegano questi tubi al rispettivo componente della clausola e si utilizza nuovamente un gadget simile per garantire che dai tre tubi in entrata almeno uno debba avere uno spazio extra di 0,1.


1
Sembra plausibile. Si noti che Raphaël ha fornito un collegamento in un commento maven.smith.edu/~orourke/TOPP/P56.html con un puntatore a un documento con la riduzione effettiva.
András Salamon,

Oh, non l'ho notato, grazie.
domotorp
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.