Il problema delle N Queens è NP-difficile?


11

Il problema della regina N è questo:

Ingresso: N

Output: un posizionamento di N "regine" su una scacchiera NXN in modo tale che non vi siano due regine sulla stessa riga, colonna o diagonale.

Facendo una ricerca su Google su questo, ho scoperto che molte diapositive di molti professori affermano che si tratta di un problema NP-Hard (ad es. Web.mst.edu/~ercal/387/slides/NP-Hard.ppt)

Tuttavia non sono stato in grado di trovare una prova (o derivarne una). Il motivo per cui faccio questa domanda è perché penso di avere un algoritmo che risolve determinate istanze del problema, ad esempio con N non un multiplo di 2 o 3 (N è il numero di regine) Problema correlato: possiamo considerare la dimensione di input come N (dove N è il numero di regine)? Oppure prendiamo la dimensione di input come log (N), poiché il numero 'N' può essere rappresentato in bit di log (N)?


6
(1) Perché usi sia N che n? Sono la stessa variabile o variabili diverse? (2) Per ogni numero intero tranne 2 e 3, c'è un modo per mettere n regine sulla scheda n × n soddisfacendo la condizione n-regina (vedi Wikipedia ), quindi non so di quale problema stai parlando quando dici "questo è un problema NP-difficile."
Tsuyoshi Ito,

3
Ricordo che c'è un risultato di durezza quando la tavola non è necessariamente quadrata: cioè, la forma della tavola è data come parte dell'input.
Sasho Nikolov,

27
Non ci può essere una prova di completezza NP per la scacchiera , perché questo problema ha un input unario ... cioè c'è un solo input per la dimensione n , mentre il testimone ha bisogno di una descrizione della dimensione polinomiale. Il teorema di Mahaney afferma che mostrare un problema come questo come NP completo significherebbe che P = NP. Hai bisogno di forme divertenti per la scheda affinché il problema sia NP-completo. n×nn
Peter Shor,

2
Forse contare le soluzioni è un problema un po 'più interessante (oltre la classe #P come dimostrato in "Sulla durezza del conteggio dei problemi di mappature complete").
Marzio De Biasi,

Risposte:


8

Come detto, la risposta a questa domanda è NO.

Riferimenti: un algoritmo temporale polinomiale http://dl.acm.org/citation.cfm?id=101343 [cortesia: vzn]

Un'altra tecnica molto più semplice: http://dl.acm.org/citation.cfm?id=122322 [cortesia: Jeffe]


potresti considerare di accettare questa risposta in modo che non riappaia come senza risposta.
Suresh Venkat,

11
L'algoritmo polinomiale nel primo riferimento non è garantito per produrre una soluzione. Il fatto che l'algoritmo abbia successo o meno dipende dalla configurazione iniziale, che viene scelta a caso, e gli autori forniscono solo prove empiriche che sembra prendere un numero polinomiale di prove fino a quando ha successo.
Tsuyoshi Ito,

4
Anche il secondo riferimento non è una prova. Solo perché viene trovata un'unica soluzione fattibile per n-regine con n = 500000, non significa che sia in P. (Rende solo più probabile)
Geoffrey De Smet,

1

In realtà, questo ha appena dimostrato di essere il caso.

https://blogs.cs.st-andrews.ac.uk/csblog/2017/08/31/n-queens-completion-is-np-complete/ ]


5
N

1
@ClementC. In realtà, poiché la domanda originale non è abbastanza precisa, penso che Kasper abbia ragione anche se il suo modo di affermarlo potrebbe essere incompleto. Decidere, dato n, se esiste un posizionamento è chiaramente in P poiché il problema ha sempre soluzioni per n> 3. Pertanto, il problema del completamento delle n-queens (decidere se si può estendere una determinata soluzione parziale) sembra un problema decisionale naturale da considerare per comprendere la complessità del problema.
lupo,

3
@holf Questo è in effetti un punto valido che fai, ma che questa risposta non menziona nemmeno (e che un lettore non vorrebbe assolutamente leggere leggendolo). Avere una risposta fuorviante a una domanda ambigua non è esattamente ottimale.
Clemente C.,
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.