Risolvere in modo ottimale il cubo di Rubik n × n × n NP-difficile?


38

Considera l'evidente generalizzazione n×n×n del cubo di Rubik . NP è difficile calcolare la sequenza più breve di mosse che risolve un dato cubo criptato o esiste un algoritmo a tempo polinomiale?

[Alcuni risultati correlati sono descritti nel mio recente post sul blog .]


5
Immagino che l'input sia dato come sei griglie n × n fatte di {1, ..., 6}. Il problema è in NP? Esiste un semplice limite superiore polinomiale sul numero di mosse nella versione n × n × n del cubo di Rubik?
Tsuyoshi Ito,

1
Grazie per l'informazione. C'è qualche riferimento?
Tsuyoshi Ito,

1
Il problema diventa più semplice se è rilassato a "Data una configurazione, produce una soluzione che impieghi al massimo il numero di Dio (n, n, n) di mosse"? Questo è quello che ha fatto l'algoritmo di soluzione di Rubik. Non cercarono il più breve perché ci sarebbe voluto troppo tempo.
Aaron Sterling

1
Sappiamo che il diametro dello spazio di configurazione raggiungibile è ? Θ(n2)
Andy Drucker,

1
@Andy: bella domanda! ("Qual è la funzione di Dio di n?")
Jeffε

Risposte:



21

Un nuovo articolo di Demaine, Demaine, Eisenstat, Lubiw e Winslow fa progressi parziali su questa domanda --- fornisce un algoritmo a tempo polinomiale per risolvere in modo ottimale cubi e mostra N P -hardness per risolvere in modo ottimale quelli che potresti chiamare cubi "parzialmente colorati". Mostra anche che lo spazio di configurazione del cubo n × n × n ha un diametro Θ ( n 2 / log n ) .n×O(1)×O(1)NPn×n×nΘ(n2/logn)

Dolce!

Una possibile domanda successiva che il loro lavoro sembra suggerire: esiste una famiglia fissa di cubi parzialmente colorati , uno per ogni valore di n , tale che la soluzione ottimale da una data configurazione è N P -hard?n×n×nnNP


1
OK, e un'altra domanda: qual è la complessità nel determinare se due coloranti non standard del cubo sono equivalenti? (Due casi da considerare: colorazioni complete o parziali.)n×n×n
Andy Drucker,

Bene, un'altra domanda e poi mi fermerò: c'è una sequenza esplicita di configurazioni che richiedono mosse per risolvere? (L'articolo utilizza un argomento di conteggio per il suo limite inferiore.)Ω(n2/logn)
Andy Drucker,

9

Potrebbe esserci facilmente un bug in questo, quindi per favore fatemi sapere se ne individuate uno.

Sembra che la risposta sia no, o almeno che questo problema sia contenuto in NP. Il ragionamento alla base di questo è molto semplice. L'idea è quella di costruire da un'altra domanda: "Puoi ottenere tra la configurazione A e la configurazione B in passi S o meno?"

Chiaramente questa nuova domanda è in NP, perché esiste un algoritmo per risolvere il cubo da qualsiasi configurazione risolvibile, e quindi passando attraverso lo stato risolto ci vuole solo O ( n 2 ) per passare tra due configurazioni qualsiasi. Poiché esiste solo un numero polinomiale di mosse, l'insieme di mosse da percorrere tra due configurazioni può essere utilizzato come testimone per questa nuova domanda.O(n2)O(n2)

Ora, in primo luogo, se scegliamo la configurazione B come stato risolto, abbiamo un problema che ci chiede se è possibile risolvere il cubo in passi o meno, che è contenuto in NP.S

Ora selezioniamo una configurazione diversa per B, che chiamerò che richiede n h a r dn 2 passaggi per risolvere. Ora, se ci chiediamo se sia possibile ottenere tra configurazione A e B h un r d in S ' passi o meno, abbiamo di nuovo un problema in NP con una sequenza di mosse come testimone. Tuttavia, poiché sappiamo che B h a r d prende n h a r dBhardnhardn2BhardSBhardnhardpassi da risolvere, sappiamo che se è possibile andare tra A e in passi S , allora richiede almeno n h a r d - S passi per risolvere il cubo n × n × n da configurazione A.BhardSnhardSn×n×n

Quindi abbiamo testimoni sia per un limite inferiore di passi che per un limite inferiore di S passi da risolvere dalla configurazione A. Se ora scegliamo S 0 come numero minimo di mosse richieste per risolvere l'avvio del cubo con la configurazione A, quindi se scegliamo che i limiti inferiore e superiore siano uguali (cioè S = n h a r d - S 0 e S = S 0nhardSSS0S=nhardS0S=S0), quindi abbiamo una testimonianza che questa soluzione è ottimale (composta dai testimoni dei due problemi NP associati ai limiti).

Infine, abbiamo bisogno di un modo per generare . Probabilmente abbiamo bisogno della configurazione più difficile possibile, ma dal momento che non so come trovarlo, suggerisco semplicemente di ruotare ogni secondo piano una volta attorno all'asse xe quindi ogni quarto piano (mantenendo fisso il piano centrale) una volta circa l'asse z. Credo che questo porti a uno stato che richiede O ( n 2 ) passaggi per essere risolto.BhardO(n2)

Quindi, non ho una prova costruttiva completa, ma qualsiasi soluzione ottimale prendendo meno di ha chiaramente un testimone. Sfortunatamente, ovviamente, per catturare tutte le possibili configurazioni avresti bisogno di n h a r d = numero di Dio ( n ) .nhardnhard=God's number(n)

EDIT: la regolarità della configurazione di Superflip sembra probabile che la generazione di per n h a r d = il numero di Dio ( n ) sia relativamente semplice (cioè in P).Bhardnhard=God's number(n)


Bella idea. Tuttavia, ciò non presuppone che il percorso più breve tra due punti distanti possa essere intrapreso per passare attraverso qualsiasi altro punto. Questo è chiaramente vero per i punti sulle sfere (se stai volando dal polo nord al polo sud, potresti anche volare attraverso Tahiti), ma c'è qualche ragione per cui dovrebbe essere vero per le configurazioni dei cubi di Rubik?
Peter Shor,

@Peter Shor: Ciao Peter, non mi intendo dire che sta attraversando dalla A alla soluzione era il percorso più breve. In realtà questo approccio non dovrebbe funzionare in quel caso. L'idea è che se ci vogliono almeno n h a r d passi per ottenere da B h un r d alla configurazione risolto, allora se andiamo dalla A alla soluzione tramite B h una r d dobbiamo andare più lontano da la configurazione risolta, prima di tornare indietro. (seguito)BhardnhardBhardABhard
Joe Fitzsimons,

(continua) Presumo che A sia più facile da risolvere di (meno passaggi). Poiché sappiamo che ci vogliono almeno n h a r d passi per risolvere da B h di r d , e sappiamo di poter arrivare a B h un r d in al più n h a r d passi da A, allora abbiamo n h a r d - S S 0n h a r dBhardnhardBhardBhardnhardnhardSS0nhard+SS0S0

2
hard

2
@Joe: non preoccuparti di pubblicare risposte pensate per metà. Ho fatto la stessa cosa (e non sono l'unico). E non sono convinto che questo approccio sia completamente inutile. Mi aspetto che non funzionerà per mostrare che calcolare la distanza esatta non è NP-difficile, ma forse potrebbe dire qualcosa sull'approssimazione.
Peter Shor,
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.