Durezza NP del rivestimento con pezzi rettangolari (Round di prova di Google Hash Code 2015)


11

Il Round di prova di Google Hash Code 2015 ( dichiarazione del problema ) ha chiesto il seguente problema:

  • input: una griglia con alcuni quadrati contrassegnati, una soglia , un'area massimaT N A NMTNAN
  • uscita: la più estesa possibile di una serie di rettangoli disgiunti con coordinate intere in tale che ciascun rettangolo include almeno caselle marcate e ogni rettangolo ha superficie al massimo .T AMTA

Nella terminologia di Google, la griglia è una pizza, i quadrati contrassegnati sono prosciutto e i rettangoli disgiunti sono fette.

Possiamo chiaramente riformulare questo problema a un problema decisionale aggiungendo un ulteriore input e lasciare che la risposta sia "c'è un insieme di rettangoli disgiunti che soddisfano le condizioni la cui area totale è almeno quadrati". nnNn

La mia domanda: mentre il problema di Google ha chiesto ai candidati di trovare una soluzione "il più buona possibile" per il problema di calcolo in una specifica istanza, penso che sia probabile che il problema generale (nella sua formulazione delle decisioni) sia NP-completo. Tuttavia, non riesco a trovare una riduzione per mostrare la durezza NP. (L'appartenenza a NP è immediata.) Come dimostrare che questo problema è NP-difficile?

Seguono alcuni esempi per aiutare a visualizzare il problema. Considera la griglia per , con i quadrati contrassegnati , e , rappresentato graficamente con per indicare i quadrati contrassegnati:4 { 0 , 1 , 2 , 3 } × { 0 , 1 , 2 , 3 } ( 1 , 1 ) ( 0 , 2 ) ( 2 , 2 )44{0,1,2,3}×{0,1,2,3}(1,1)(0,2)(2,2)X

..X.
.X..
..X.
....

Impostare (rettangoli di massimo quadrati) e (almeno un quadrato contrassegnato per rettangolo), una soluzione ottimale (che copre l'intera griglia) è quella di prendere i seguenti rettangoli:6 T = 1A=66T=1

aaAa
bBcc
bbCc
bbcc

Sulla griglia seguente, con e :T = 2A=3T=2

XXX
.X.
...

Non si può fare di meglio che coprire solo tre quadrati:

AAA
.X.
...

o

XBX
.B.
.b.

(ricorda che i rettangoli nella partizione non possono sovrapporsi).

Con altre persone che hanno esaminato questa domanda, abbiamo provato a ridurre l'imballaggio del bidone, coprendo i problemi, i cicli 3-SAT e Hamiltoniani e non siamo riusciti a farlo funzionare.

Risposte:


10

Questo è uno schizzo di una riduzione di MONOTONE CUBIC PLANAR 1-3 SAT:

Definizione [problema SAT 1-3]:
input: una formula 3-CNF , in cui ogni clausola contiene esattamente tre letterali: . Domanda: esiste un compito soddisfacente per tale che ogni clausola contiene esattamente un vero valore letterale.φ=C1C2...CmCjCj=(j,1j,2j,3)
φCj

Il problema rimane NP-completo anche se tutti i letterali nelle clausole sono positivi (MONOTONE), se il grafico costruito con clausole di collegamento con variabili è planare (PLANAR) e ogni variabile è contenuta esattamente in 3 clausole (CUBIC) (C. Moore e JM Robson, problemi di piastrellatura dura con tessere semplici, calcolo discreto Geom.26 (2001), 573-590.).

Usiamo , e nelle figure il prosciutto è rappresentato con scatole blu (prosciutto transgenico?), Pizza con scatole d'arancia.T=3,A=6

L'idea è di usare tracce di prosciutto che trasportano segnali positivi o negativi; la pista è fatta con un'alternanza di 1 e 2 pezzi di prosciutti posizionati abbastanza lontano da poter essere coperti esattamente da una fetta di pizza dell'area ; i segmenti della traccia sono contrassegnati alternativamente con o , la traccia trasporterà un segnale positivo se le sezioni vengono tagliate sui segmenti positivi:A+

inserisci qui la descrizione dell'immagine

Ogni variabile , che è collegata esattamente a 3 clausole SAT, è rappresentata da tre punti finali adiacenti di tre tracce ham (segmento positivo), in modo tale che ci siano 2 modi distinti per tagliarlo, si "genererà" un segnale positivo su tutte e 3 le tracce (rappresenta nuovamente l' assegnazione ) l'altro un segnale negativo ( ). Si noti che possiamo anche generare segnali misti positivi e negativi, ma in quel caso almeno un prosciutto rimane scoperto .xixi=TRUExi=FALSE

inserisci qui la descrizione dell'immagine

Ogni clausola della formula 1-3 SAT con 3 letterali è semplicemente rappresentata da un singolo prosciutto con tre segmenti positivi in ​​entrata di tre tracce di prosciutto distinte ; per costruzione, solo una delle tre tracce che portano un segnale positivo può "coprire" la clausola ham.L i , 1 , L i , 2 , L i , 3CjLi,1,Li,2,Li,3

inserisci qui la descrizione dell'immagine

Finalmente possiamo costruire turni e girare gadget per trasportare i segnali secondo il grafico planare sottostante e regolare gli endpoint:

inserisci qui la descrizione dell'immagine

Supponiamo che il grafico risultante contenga prosciuttiDa costruzione ogni fetta di pizza deve contenere esattamente 3 prosciutti, e comunque ogni fetta può essere allargata fino all'area .AHA

Se la formula 1-3 SAT originale è soddisfacente, per costruzione possiamo tagliare pezzi di pizza (con area totale di ) e nessun prosciutto rimane scoperto.A H / 3H/3AH/3

Nella direzione opposta, se possiamo tagliare pezzi di pizza (con area totale ), allora nessun prosciutto rimane scoperto, e i segnali sui gadget variabili e sulle clausole sono coerenti: il prosciutto sulla clausola è coperto esattamente da una fetta positiva proveniente da una variabile positiva, e ogni variabile genera 3 segnali positivi o 3 segnali negativi (nessun segnale misto); quindi i tagli inducono un incarico valido 1-3 SAT.A H / 3H/3AH/3

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.