For faster navigation, this Iframe is preloading the Wikiwand page for Classi di complessità P e NP.

Classi di complessità P e NP

Da Wikipedia, l'enciclopedia libera.

Diagramma delle classi di complessità, ipotizzando che PNP. Se P = NP, le tre classi sono coincidenti.

Il problema delle classi P e NP è un problema tuttora aperto nella teoria della complessità computazionale.

Nonostante ci sia in palio un premio di un milione di dollari il problema rimane ancora senza una soluzione (si tratta di uno dei problemi del millennio).

A livello informale, esso richiede di determinare se ogni problema per il quale un computer è in grado di verificare la correttezza di una soluzione positiva, in un tempo accettabile, sia anche un problema che può essere risolto dal computer in un tempo accettabile (ovvero se il computer sia in grado di trovare da solo una soluzione positiva in un tempo accettabile).
Se la risposta è no, allora esistono problemi per i quali è più complesso calcolare una certa soluzione che verificarla.

Una definizione formale fa uso delle classi di complessità P e NP. La prima consiste di tutti quei problemi di decisione che possono essere risolti con una macchina di Turing deterministica in un tempo che è polinomiale rispetto alla dimensione dei dati di ingresso; la seconda consiste di tutti quei problemi di decisione le cui soluzioni positive possono essere verificate in tempo polinomiale avendo le giuste informazioni, o, equivalentemente, la cui soluzione può essere trovata in tempo polinomiale con una macchina di Turing non deterministica. Il problema delle classi P e NP si risolve quindi nella seguente domanda:

P è uguale a NP?

Un esempio per avere un'idea di cosa ciò vuole dire. Supponiamo di voler calcolare tutti i divisori (divisione intera, ovvero con resto pari a zero) di un numero n. Il problema, quindi, è trovare tutti i numeri x tali che x è un divisore di n.

È abbastanza facile verificare che un certo numero x0 è divisore di n; è sufficiente svolgere l'operazione di divisione e controllare il resto: se è pari a zero, il numero è un divisore, altrimenti non lo è. Il numero di passaggi richiesti per eseguire l'operazione di divisione è tanto maggiore quanto maggiore è il numero n, tuttavia essa risulta sempre abbastanza veloce perché il tempo da essa richiesto sia considerato accettabile.

Al contrario, potrebbe non essere altrettanto facile determinare l'insieme di tutti i divisori. Infatti, quasi tutti i metodi[1] finora ideati nel corso dei secoli richiedono un tempo che aumenta rapidamente al crescere del valore di n, troppo perché esso sia considerato accettabile.

Problemi NP-completi

[modifica | modifica wikitesto]

Un ruolo importante in questa discussione è giocato dall'insieme dei problemi NP-completi,[1] che possono essere intuitivamente descritti come quei problemi che sicuramente non apparterrebbero a P se P fosse diverso da NP. Al contrario, dimostrando anche per un solo problema NP-completo la sua appartenenza a P, si otterrebbe una dimostrazione che P e NP sono equivalenti. In un certo senso, i problemi NP-completi sono quelli che meno probabilmente appartengono anche a P.

  1. ^ a b L'eccezione è l'algoritmo di fattorizzazione di Shor, il quale, però, richiede un computer quantistico. Inoltre, è da sottolineare che il problema della fattorizzazione di un numero non è un problema NP-completo, e dunque un eventuale algoritmo risolutivo in tempo polinomiale non ci darebbe informazione sulle classi P e NP

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
{{bottomLinkPreText}} {{bottomLinkText}}
Classi di complessità P e NP
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?