Spiega il problema P = NP a 10 anni


54

È la mia prima domanda su questo sito. Sto seguendo un master in teoria del calcolo. Come spiegheresti il ​​problema P = NP a un bambino di 10 anni e perché ha una tale ricompensa monetaria?

Il tuo introito?

Aggiornerò la domanda man mano che la mia testa sarà chiara al riguardo.


11
La mia inclinazione è quella di chiudere questo come non essere informatica teorica a livello di ricerca .
Dave Clarke,

11
@Dave: dovrebbe essere risposto dai ricercatori, quindi forse è adeguato chiederlo al luogo dove vanno i ricercatori?
Jeremy,

11
Penso che questo sia ragionevole. C'è un famoso documento chiamato "Come spiegare i protocolli a conoscenza zero ai tuoi figli", che penso sarebbe considerato a livello di ricerca. È vero che può essere difficile selezionare una "risposta migliore", ma questo è spesso il caso di domande delicate. Inoltre, questa domanda potrebbe finire per essere una buona pubblicità per il sito se arrivano risposte sufficientemente interessanti ... molte persone potrebbero collegarsi alla risposta fornita qui quando viene richiesta una spiegazione di P vs. NP.
Philip White,

7
ma dovrebbe davvero essere CW.
Suresh Venkat,

5
Ho chiesto la motivazione perché la formulazione della domanda mi ha dato l'impressione che non sei molto interessato alle risposte alla tua stessa domanda (sembrava un modo per iniziare una conversazione piuttosto che una vera domanda), non perché la domanda è stupida . Secondo la tua risposta, sembra che tu abbia posto questa domanda per fare una domanda, e quindi non sono interessato a rispondere perché non ti aiuterà. Abbiamo una cultura diversa da Stack Overflow, ma non è rilevante al momento.
Tsuyoshi Ito

Risposte:


33

Uso queste 3 diapositive per mostrare perché è così difficile (impossibile?) Trovare un algoritmo veloce per un problema NP:

Imballaggio del bidone L'imballaggio del contenitore è NP completo 1 L'imballaggio del contenitore è NP completo 2


Molto facile da capire
toto

4
Penso che "nessun modo semplice" debba essere ampliato includendo il ridimensionamento man mano che il numero di blocchi aumenta
Ian Ringrose

3
Esempio molto bello, ma non è chiamato il problema dell'imballaggio rettangolare in letteratura?
Mohammad Al-Turkistany,

1
@ user54609 NP-complete non significa che possiamo verificare che un imballaggio sia ottimale in tempo polinomiale. NP-complete significa che possiamo verificare che una soluzione sia fattibile in tempo polinomiale (e non trovarla costantemente in tempo polinomiale (a meno che P == NP)).
Geoffrey De Smet,

1
Oh, quindi il problema decisionale è "esiste una soluzione fattibile". Vedo.
ithisa,

21

In questo discorso Scott Aaronson affronta la domanda.

TEDxCaltech - Scott Aaronson - Fisica nel 21 ° secolo: fatica nell'ombra di Feynman

Avvertenza: per favore, NON mostrare questo discorso direttamente a tua nonna / 10 anni. perché? guardalo e lo saprai. ;-)

EDIT:
Dai al bambino un puzzle di 8 regine da risolvere. Dagli anche un limite di tempo.

Se "trova" una soluzione, allora è un bambino intelligente, puoi iniziare a insegnargli subito CS. :)
Altrimenti gli mostri la soluzione e gli chiedi di "controllare" se è corretto.

Clun'SSChecKFiondEXun'mplePEun'SyEun'SyMultioply numBerSNPEun'SyHun'rd8 queenS

è un insieme di problemi ai quali il computer può "trovare" facilmente la soluzione.P

è una serie di problemi per i quali il computer non riesce a "trovare" facilmente la soluzione ma può "controllare" facilmente la soluzione.NP

Se possiamo "controllare" una soluzione così facilmente, allora perché non possiamo "trovarla" facilmente?

Quello che fai in CS è risolvere il problema o dimostrare che nessuno può farlo.

Se qualcuno inventa un algoritmo che semplifica la "ricerca" di soluzioni per i problemi NP, la tabella sembrerebbe come e P = N P .

Clun'SSChecKFiondPEun'SyEun'SyNPEun'SyEun'Sy
P=NP

NPPNP


3
Forse potresti riassumere l'essenza della spiegazione di Scott.
Dave Clarke,

2
Sono sempre stato curioso di sapere di cosa tratta tutto il polverone di P = NP, ora lo faccio!
Lee Kowalkowski,

Dato che P ∈ NP, forse chiarisci che stai parlando della parte non P di NP qui.
David,

+1 Molte grandi risposte in questa discussione, ma questa è l'unica che tenta persino di definire cosa significano P e NP!
Mark E. Haase,

"Se possiamo" controllare "una soluzione così facilmente, allora perché non possiamo" trovarla "facilmente?" --- questa domanda non ha ancora una risposta! Altrimenti, è la risposta migliore per me.

19

Una delle cose principali per cui le persone usano i computer è la ricerca. Programmi come Google sono persino chiamati "motori di ricerca" e vengono utilizzati milioni di volte al giorno. Un computer ha recentemente battuto gli umani su Jeopardy perché è stato in grado di effettuare ricerche tra tonnellate di dati, super veloce.

Ma alcune cose sono difficili da cercare anche per i computer. Sembra strano, no? Un esempio è la moltiplicazione inversa. Certo se dico "Cosa succede 5 volte 3?" puoi dire "15" in un nanosecondo, ehi! Ma qual è la risposta a "Quali due numeri si sono uniti in modo uguale a 21?" (Aspetta la risposta, 7 x 3.) Giusto! Ora, quali due numeri moltiplicati insieme equivalgono a 23? (Aspetta la risposta o la frustrazione.)

Gli unici due numeri moltiplicati insieme che equivalgono a 23 sono 1 e 23 stessi. Ci è voluto del pensiero, no? E 23 è un piccolo numero. Pensa se il numero fosse lungo centinaia di cifre. E il fatto è che i migliori programmi al mondo non possono invertire la moltiplicazione molto meglio di quanto un bambino di 7 anni potrebbe provare, testando solo un numero, quindi il successivo e poi il successivo. I computer possono farlo più velocemente , ma non sappiamo davvero come dire a un computer di farlo in modo più intelligente . Le persone ottengono dottorati di ricerca in queste cose e sanno solo come dire ai computer di fare la moltiplicazione inversa un po 'più intelligente.

Quindi forse non esiste un modo più intelligente. Ma forse c'è, e non l'abbiamo ancora trovato. Questo è il problema P / NP in breve: se riesco a riconoscere subito una risposta - 1 volta 23 su 23, duh - mi aiuta a cercare la risposta più velocemente? La gente pensa che sia così importante che la persona che capisce la risposta, sì o no, vincerà un milione di dollari.


4
Buona Probabilmente non importa che il factoring sia per inciso un cattivo esempio (o lo è?).
Raffaello

4
Il factoring è stato l'esempio che Mike Sipser ha usato nel suo video "Spiega P / NP al pubblico" per il Clay Mathematics Institute. Immagino che sia abbastanza buono per lui .....
Aaron Sterling

3
Il problema della somma dei sottoinsiemi può essere spiegato agli alunni che non hanno ancora studiato la moltiplicazione!
Tegiri Nenashi,

16

Penso che il problema P vs. NP potrebbe essere spiegato molto delicatamente in termini di Sudoku. Suppongo che il bambino di dieci anni in questione abbia familiarità con il Sudoku. Cercherò di favorire la semplicità rispetto al rigore nella mia spiegazione.

Ecco il mio tentativo di spiegare P = NP a un ipotetico bambino di dieci anni:

Se hai un puzzle di Sudoku che non è stato completato e vuoi finirlo, può essere davvero difficile da fare. D'altra parte, se il tuo amico termina il problema e sei bravo in aritmetica, non è molto difficile controllare se la soluzione del tuo amico al puzzle è giusta.

La domanda P = NP chiede se esiste o meno un processo molto rapido e passo-passo per risolvere un puzzle di Sudoku che non è ancora stato completato. Il processo passo-passo deve essere così chiaro e facile da capire che anche un computer può capirlo e usarlo per risolvere i puzzle di Sudoku automaticamente e molto velocemente. Se esiste un processo graduale così veloce, sarebbe quello che i matematici chiamano un "algoritmo del tempo polinomiale" (spiegherò cosa significa quando sei più grande).

In effetti, gli informatici e i programmatori di computer hanno identificato molti altri enigmi e problemi molto importanti che sono altrettanto difficili da risolvere come il Sudoku. È davvero importante sapere se questi problemi possono essere risolti, perché i computer potrebbero aiutarci a fare molte cose più rapidamente se potessero. Ad esempio, potrebbero aiutarci a pianificare i treni in modo più efficiente, infrangere i codici segreti e forse persino creare aiuto per costruire computer davvero intelligenti in grado di intelligenza artificiale.

Ci sarebbero molte cose molto buone che accadrebbero se le persone potessero risolvere P = NP. Certo, ci sarebbero anche alcuni problemi, perché sarebbe più difficile usare codici segreti per mantenere più segreti i messaggi privati.

La maggior parte dei matematici intelligenti pensa che P = NP non sia vero. In altre parole, la maggior parte delle persone pensa che nessuno sarà mai in grado di risolvere rapidamente puzzle di Sudoku davvero difficili. Tuttavia, nessuno è mai stato in grado di dimostrare che P non è uguale a NP prima, quindi un'organizzazione chiamata Clay Mathematics Institute offre un premio di un milione di dollari per la prima prova che P = NP è vera, o per la prima prova che è falso.

Come vedi, ho preso letteralmente la parte "spiegalo a un bambino di dieci anni". :)

Spero che sia di aiuto.


Un ottimo tentativo, anche se non so se un bambino di 10 anni saprà cos'è un puzzle di sudoku.
Chazisop,

2
@chazisop Per esperienza, posso dire che le versioni di base dei puzzle di sudoku (cioè su una griglia 4x4) sono state date ai bambini nei gradi 3 e 4 come esercizi, quindi non è un presupposto irragionevole.
Bob Fraser,

n1000

1
@Mohsin, prego. @Raphael, non credo di dover abbandonare P e NP; un bambino di dieci anni potrebbe semplicemente accettare la mia definizione del problema senza dover sapere cosa significano P e NP, e non sono sicuro di come potrei spiegare il problema senza fare riferimento ad esso :). Inoltre, ho detto che stavo favorendo la chiarezza sull'accuratezza completa ... quindi, non credo sia ingiusto usare "molto velocemente" e "tempo polinomiale" in modo intercambiabile.
Philip White

Il mio punto è che l'uso di "veloce" non crea chiarezza. Supponendo P = NP, forse il "solo" problema è che stiamo cercando algoritmi "veloci" per problemi che non possono essere risolti "velocemente", ma solo polinomialmente con gradi alti.
Raffaello

8

Ecco come l'ho spiegato a mia madre, spero che ti servirà :)

Ci sono problemi per i quali è facile trovare una soluzione (P, ma meno li chiamano "facilmente risolvibili"), problemi per i quali è facile controllare se una determinata soluzione è corretta (NP, ma chiamiamoli "facilmente controllabili" ) e problemi che non sono né facilmente risolvibili né facilmente verificabili. Per semplicità supponiamo che "Easy" sia definito formalmente e che ogni problema abbia una soluzione unica.

Ora, le persone sono state in grado di dimostrare (usando la matematica) relazioni interessanti tra queste due nozioni di "facilmente risolvibile" e "facilmente controllabile", in modo tale che alcuni problemi non siano facilmente risolvibili e che altri non siano facilmente controllabili. Un esempio di base di tale risultato è che un problema facilmente risolvibile è anche facilmente controllabile: basta trovare la sua soluzione e confrontarla con la soluzione fornita.

Abbastanza sorprendentemente, per molti problemi pratici (come decidere se esiste un possibile assegnamento di studenti a professori e aule, quando c'è un margine molto limitato) non si sa se esiste un modo "semplice" per risolverlo, ma è noto come verificare facilmente se una soluzione è corretta o meno. Le persone hanno provato molto e hanno fallito, quindi hanno provato a dimostrare che non era possibile e hanno fallito: semplicemente non lo sanno. Alcuni pensano che tutti i problemi che sono facilmente verificabili siano facilmente risolvibili (dovremmo solo pensarci di più), altri pensano il contrario, che non dovremmo perdere tempo cercando di trovare soluzioni facili a questi problemi.

Ciò che abbiamo scoperto è come mostrare i collegamenti tra i problemi (ad esempio se sai come andare a scuola, sai come andare al forno che si trova proprio di fronte) e problemi facilmente verificabili che sono collegati a tutti gli altri problemi facilmente verificabili ( NP-complete, ma chiamiamoli "problemi chiave") in modo tale che se qualcuno, un giorno, mostra che uno dei problemi chiave è facilmente risolto, allora anche tutti i problemi che sono facilmente verificabili sono facilmente risolvibili (cioè P = NP). D'altra parte, se qualcuno mostra che uno dei problemi chiave non può essere facilmente risolvibile, nessuno degli altri può essere facilmente risolvibile (cioè P <> NP).

Quindi la domanda è allettante e relativamente importante nella pratica (anche se alcuni sostengono che dovremmo piuttosto concentrarci su definizioni alternative di "facile") e le persone stanno investendo parecchi soldi e tempo nel dibattito.



1

Sono un po 'scettico sulla possibilità di spiegare quel problema a un bambino di 10 anni, o anche a un laico, senza incorrere in false dichiarazioni dei concetti chiave.

Tutte le spiegazioni formulate in termini di "facilità" vs "durezza" di trovare soluzioni vs controllo assumono la tesi di Cobham, che è probabilmente falsa nel caso generale, e possono essere considerate poco più che una regola empirica.


Questa non è una risposta alla domanda.
Dave Clarke,

Perchè no? La domanda era "Come spiegheresti il ​​problema P = NP a un bambino di 10 anni" e la mia risposta è che probabilmente non esiste una spiegazione adeguata che non travisa il problema. Potresti non essere d'accordo con la mia risposta, ovviamente, ma perché affermi che non risponde alla domanda?
Antonio Valerio Miceli-Barone,

3
Secondo me, questa è una possibile risposta, anche se non sono d'accordo. È vero che non possiamo identificare indifferentemente P con qualcosa come "l'insieme dei problemi che possono essere risolti in modo efficiente nel mondo reale". Tuttavia, non penso che ciò escluda la possibilità di spiegare il problema P =? NP a un bambino di dieci anni a livello intuitivo. Ad esempio, i bambini di dieci anni circa imparano l'area di un cerchio. Qualsiasi trattamento rigoroso dell'area richiede grande cura, ma ciò non esclude la possibilità di insegnare il concetto di area a livello intuitivo in modo utile.
Tsuyoshi Ito,

P

1
P

1

strategie vincenti per vari giochi da tavolo classici, ad esempio battleship o (più recentemente) videogiochi, sono state dimostrate NP complete e questo è un modo / angolo eccellente per presentare / descrivere alcune delle teorie di base ai neofiti.

la corazzata come un problema decisionale completo della NP Merlijn Sevenster ICGA journal set 2004

dragamine è NP completo FAQ dal matematico RW Kaye. Edizione della primavera 2000 di Mathematical Intelligencer (volume 22 numero 2, pagine 9--15)

Il gioco è un lavoro duro, ma qualcuno deve farlo! carta arxiv di Giovanni Viglietta. analizza la complessità computazionale di Pac-Man, Tron, Lode Runner, Boulder Dash, Deflektor, Mindbender, Pipe Mania, Skweek, Prince of Persia, Lemmings, Doom, Puzzle Bobble 3 e Starcraft.

Pacman è un articolo di rivista di tecnologia estrema estrema sulla carta sopra


Guarda anche UN'INDAGINE SU PUZZLE COMPLETI DI NP di Kendall, Parkes, Spoerer e Giocare a giochi con algoritmi: teoria algoritmica del gioco combinatorio di Demaine e Hearn
vzn

0

Ed ecco la mia opinione sul problema.

Kido!

Sai che affrontiamo molti problemi nella nostra vita. Puoi dire sfide. Alcuni sono difficili altri sono più facili. Ad esempio, spesso è necessario aggiungere due numeri. E ieri sera eravamo sulla scacchiera e abbiamo dovuto vincere contro il nostro vicino. Bene, aggiungere due numeri è un problema semplice e diretto con passaggi limitati. Tali problemi sono chiamati problemi di classe P perché ci sono molti molti problemi che sono piuttosto semplici con passaggi discreti che devono essere ripetuti più e più volte per ottenere una soluzione.

D'altra parte, ieri sera sul nostro torace, quale sarebbe la migliore strategia per vincere la partita? Potremmo spostare il primo pedone di un passo, o il secondo pedone di un passo, oppure potremmo spostare il secondo pedone di due passi e il primo pedone di un passo in modo da vedere ci sono molte e molte possibilità. Ma c'è un modo per noi o per un destinatario che ci dà una serie ordinata completa di mosse che danno il meglio e ad uno scacco matto? Quindi vedi che è difficile smettere perché ci sono così tante possibilità una per fase. Miliardi e miliardi come dice Carl Sagan.

Ma caro, se ti dico tutte le posizioni del consiglio e ti chiedo è un scacco matto? Sicuramente sarai in grado di dire rapidamente in pochi esami se ci sono mosse legali rimaste per il re.

Quindi tali problemi che sono difficili da risolvere ma se la loro soluzione è facilmente verificabile in pochi semplici passaggi, vengono chiamati problemi NP.

Ora chiedi cosa significa P = NP? In realtà questa domanda significa che esiste un modo in cui possiamo trovare un solutuion più semplice per trovare la migliore strategia o l'elenco ordinato di mosse per una partita a scacchi senza passare attraverso tutti i miliardi di possibilità proprio come facciamo per una semplice aggiunta? Questo semplice quesiton è ancora senza risposta. Non abbiamo alcuna prova per la sua verità o per il rifiuto, ma se lo facciamo, sarà una svolta. Se risulta vero, la nostra civiltà potrebbe arrivare a risolvere problemi molto complessi trasformandoli in problemi di classe P. Le persone saranno in grado di rompere le password in pochi secondi, i messaggi saranno decifrati e molto altro ancora ed è per questo che questo problema è considerato uno dei problemi più importanti del millennio.


Potrebbe valere la pena stringere il testo. Hai provato a leggere ad alta voce?
András Salamon,

Tutto non dovrebbe essere stretto come le definizioni matematiche penso.
Mohsin Hijazee,

Se stringi troppo il testo, peole normale non avrà abbastanza "spazio" per capire un concetto prima di passare al concetto successivo.
Ian Ringrose,

n×n

Questo link è forse più chiaro del precedente: cstheory.stackexchange.com/questions/6563/…
Juan Bermejo Vega
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.