Sei sulla pagina 1di 21

Marco Bizzarri

5 ^ D L . S . S . A . I I S T. S A R R O C C H I

T E S I N A D I M AT U R I T

A.S. 2016/2017
P vs. NP 1

Indice

PREMESSA _______________________________________________________________________________ 2

INTRODUZIONE____________________________________________________________________________ 2

TEORIA DELLA COMPUTAZIONE _________________________________________________________________ 3

TEORIA DELLA COMPLESSIT ___________________________________________________________________ 3

CLASSE P ________________________________________________________________________________ 4

ESEMPIO DI PROBLEMA IN P _______________________________________________________________________________________4

CLASSE NP ______________________________________________________________________________ 7

ESEMPIO DI PROBLEMA IN NP ______________________________________________________________________________________7

IL SUDOKU _________________________________________________________________________________________________10

P=NP? ________________________________________________________________________________ 11

ALTRE CLASSI DI PROBLEMI IN NP ______________________________________________________________ 13

P VS. NP E LEQUAZIONE DI SCHRDINGER ________________________________________________________ 14

P VS. NP E LE DIMOSTRAZIONI MATEMATICHE _____________________________________________________ 16

P VS. NP E IL RIPIEGAMENTO DELLE PROTEINE ______________________________________________________ 16

P VS. NP E LUMANIT _____________________________________________________________________ 18

CONCLUSIONI ____________________________________________________________________________ 19

BIBLIOGRAFIA ___________________________________________________________________________ 20

21/06/2017
P vs. NP 2
Premessa

Nelle seguenti pagine ho cercato di esporre quello che per me rappresenta il frutto pi completo dellesperienza
vissuta in questi cinque anni di Liceo.
Infatti, pur non riguardando direttamente il programma scolastico trattato, largomento scelto da considerarsi
il risultato dellinteresse che le materie scientifiche, ma non solo, hanno acceso in me gi da qualche tempo.
Mi scuso quindi se non citer direttamente molti dei temi sui quali i miei professori hanno speso molto tempo,
ma fidatevi, il ruolo che ogni singola ora di lezione ha giocato in questa trattazione infinitamente pi importante
di quanto possa sembrare.
Il tema trattato pu sembrare non facile, ma luniversalit che si cela dietro alla sua forse noiosa apparenza ha
fatto s che venissi trasportato impetuosamente nel suo mondo, da cui, ve lo assicuro, difficile uscire.
Quello che spero di fare perci riuscire ad accendere in voi che state leggendo questo testo lo stesso interesse
che scoppiato in me qualche mese fa. So che non sar facile, e proprio per questo ho cercato di raggiungere un
efficiente compromesso tra chiarezza e approfondimento; mi auguro di essere arrivato a un buon connubio.
Buona lettura.

Introduzione

Essere capaci di verificare la soluzione a un problema in breve tempo significa poter risolvere quello stesso
problema in un tempo altrettanto breve?

Questo , in breve, il P versus NP problem, uno dei maggiori problemi irrisolti dellinformatica teorica e della
matematica contemporanea, formulato dai due informatici Stephen Cook e Leonid Levin nel 1971.
Gode di fama internazionale, tanto da entrare nella lista dei Millenium Prize Problems.

I 7 Millenium Problems (Problemi del Millennio) sono tra le pi difficili congetture su cui i matematici, allinizio
del XXI secolo, si stavano scervellando. Il Clay Mathematics Institute di Cambridge, Massachusetts listituto che
ha raccolto questi problemi (gi ben noti nel mondo della matematica e non solo) e che ha designato premi di
$1 milione per la risoluzione o la dimostrazione di ciascuna delle sette congetture.
I problemi spaziano dalla matematica pura alla fisica e allinformatica: passano dallipotesi di Riemann sulla
distribuzione dei numeri primi alla teoria di Yang-Mills, riguardante la meccanica quantistica.
A oggi solo uno di questi quesiti stato risolto, la congettura di Poincar, quindi altri $6 milioni, tra cui quelli del
nostro P vs. NP problem, sono l ad aspettare i geni del futuro.

21/06/2017
P vs. NP 3
Le classi P e NP sono concetti appartenenti al campo della teoria della computazione, quella branca della
matematica che cerca di determinare ci che pu e non pu essere calcolato, su quale tipo calcolatore, con
quanta memoria e in quanto tempo.
Le due classi, in particolare, riguardano la teoria della complessit computazionale: lo studio delle risorse di
memoria e di tempo necessarie per la risoluzione di un problema, ovvero per lesecuzione di un algoritmo.

Teoria della computazione

Tre sono le aree principali su cui si concentra questa teoria: modelli computazionali, computabilit e complessit.
Tutte e tre sono collegate dalla domanda: quali sono le capacit e le limitazioni intrinseche dei calcolatori?

Inizialmente nata come scienza teorica nel 1930, la teoria della computazione ha acquisito un fondamentale
ruolo nelle applicazioni pratiche grazie ai progressi tecnologici.
Per sviluppare la teoria sono stati sfruttati dei computer ideali, dei modelli di computazione; due esempi sono
gli automi finiti e le macchine di Turing.
Queste due macchine permettono di ridurre ai minimi termini la risoluzione di un problema.

La macchina di Turing (MT), proposta nel 1936 da Alan Turing, il modello pi frequentemente usato nella
computazione, avendo diposizione una memoria illimitata costituita da un nastro infinito.
Ovviamente si tratta di un modello astratto, ma lideale per eseguire ogni tipo di algoritmo (procedimento,
costituito da un numero limitato di istruzioni, attraverso cui possibile risolvere un problema).

Teoria della complessit

Per quanto riguarda la questione P=NP?, non viene presa in considerazione la memoria necessaria alla risoluzione
di un problema, ma solo il tempo (quindi il numero di passaggi) che sar necessario al calcolatore per eseguire
lalgoritmo risolutivo del problema.

La complessit di tempo di un calcolatore, ad esempio una macchina di Turing, viene indicata da una funzione
f(n), in cui n indica la dimensione dellinput.
Solitamente la funzione che esprime il tempo di esecuzione molto complessa, quindi si usa una notazione
asintotica, detta O-grande, che permette di ottenere una pi maneggevole stima dellefficienza di un algoritmo.
Adottare questo criterio significa valutare il caso peggiore, quello in cui lalgoritmo richieder il tempo massimo
per essere eseguito e, nella pratica, questo metodo si dimostrato il pi efficace.

21/06/2017
P vs. NP 4
Inoltre, dato che nella maggior parte delle situazioni non si ha bisogno di molta accuratezza, la notazione O-
grande permette di prendere in considerazione solo il termine di massimo grado, trascurando il suo coefficiente
ed eventuali termini di grado pi basso. Ad esempio: f1(x)=9x4+24x2=O(x4).
Il simbolo O si pu trovare anche allesponente e, nel nostro caso, indica algoritmi con un tempo di esecuzione
che aumenta esponenzialmente al crescere delle dimensioni dellinput: f(n)=2O(n).
Definiamo allora due classi di complessit di tempo:

TIME(t(n)) come linsieme di tutti i algoritmi eseguiti da una MT in tempo O(t(n)).


NTIME(t(n)) indica gli algoritmi eseguiti da una MT non deterministica in un tempo O(t(n)).

Classe P

Gli algoritmi, e quindi i problemi, appartenenti alla classe P (Polynomial time) sono quelli aventi tempo di
esecuzione polinomiale, cio risolvibili in un lasso di tempo relativamente piccolo da una MT.

= ( )

Perci P corrisponde approssimativamente alla classe dei problemi realisticamente risolvibili da un computer.
Gli algoritmi appartenenti a questa classe sono quelli il cui tempo di esecuzione indicabile con la funzione
f(n)=O(nk). Infatti per i nostri scopi, che non prevedono una reale programmazione, non ci interessa se la ricerca
di una soluzione richiede un tempo di n o n3; entrambe le alternative sono ragionevoli.

Esempio di problema in P

RELATIVAMENTE PRIMI
Quello di capire se due numeri sono primi tra loro (se 1 il pi grande numero intero che li divide entrambi)
un problema che, a meno che non vengano adottate determinate strategie, richiederebbe un tempo
esponenziale. Sfruttando invece lalgoritmo di Euclide (per il calcolo del massimo comun divisore), la questione
diventa facilmente e velocemente decidibile.

Di seguito sono mostrate due diverse rappresentazioni dellalgoritmo: la prima stata scritta con AlgoBuild, un
editor di diagrammi a flusso che permette di capire pi intuitivamente le istruzioni; la seconda
unimplementazione in C++, pi efficiente e formalmente corretta.

21/06/2017
P vs. NP 5

RELATIVAMENTE
PRIMI su AlgoBuild

#include<iostream>
using namespace std;
int Euclide(int x,int y){
int a;
do{
a=x%y;
x=y;
y=a;
}while(y!=0);
return x; }
int main(){
int x, y,p;
cout<<endl<<"Primo numero: ";
cin>>x;
cout<<endl<<"Secondo numero: ";
cin>>y;
p=Euclide(x,y);
cout<<endl<<p<<endl;
if(p==1)
cout<<endl<<"I due numeri sono primi tra loro";
else
cout<<endl<<"I due numeri non sono primi tra loro";
return 0;}

RELATIVAMENTE PRIMI in C++

21/06/2017
P vs. NP 6
Con alcune misure dirette sullesecuzione dellalgoritmo, lappartenenza di RELATIVAMENTE PRIMI alla classe P
diventa evidente: anche per valori molto grandi il tempo di esecuzione rimane gestibile.

Anche dal grafico si pu notare come il tempo cresca linearmente allaumentare della grandezza dei numeri in
input.

1 Numero 2 Numero BIT totali Tempo (s)


0 1 2 1,05
1 2 3 1,45
3 5 5 2,30
8 13 8 3,40
21 34 11 4,40
55 89 13 5,30
144 233 16 6,05
337 610 19 4,45
987 1597 21 7,65
2584 4181 25 8,85
6765 10946 27 9,65
17711 28657 30 10,55
46368 75025 33 11,45
121393 196418 35 12,45
317811 514229 38 13,00
832040 1346269 41 14,00
2178309 3524578 44 14,90
Tabella tempo esecuzione di RELATIVAMENTE PRIMI

Tempo in funzione dell'input


16,00
14,00
12,00
10,00
Tempo (s)

8,00
6,00
4,00
2,00
0,00
0 10 20 30 40 50
Numero BIT in input

Grafico tempo esecuzione di RELATIVAMENTE PRIMI

21/06/2017
P vs. NP 7
Un altro genere di problema in P potrebbe essere quello di completare correttamente un Cubo di Rubik. Questo
compito, che ad alcuni di noi sembra quasi impossibile, in realt facilmente risolvibile da un computer, anche
nelle sue variazioni pi complicate.

Classe NP

Come stato visto con il problema RELATIVAMENTE PRIMI, in alcuni casi si pu evitare di ricadere in
unesecuzione esponenziale adottando alcune mirate strategie. In altre situazioni per queste strategie non sono
state trovate e alcuni problemi risultano ancora irrisolvibili in tempo polinomiale. Il motivo per cui uso il temine
ancora sar chiaro pi avanti.

La classe NP indica i problemi che ammettono un verificatore in tempo polinomiale. Ovvero quei problemi che
impiegano un tempo esponenziale per essere risolti ma che, data una soluzione, impiegano un tempo
polinomiale per controllare se valida o no.

Esiste anche un altro modo per definire i problemi NP: sono quelli che, se avessimo a disposizione un modello
computazionale non deterministico, potrebbero essere risolti in tempo polinomiale. Da qui il nome NP
(Nondeterministic polynomial time).
NP non sta quindi, come si potrebbe pensare, per Non Polynomial. Tuttavia, questo comune equivoco
comunque utile per capire la differenza tra P e NP.

Definendo questa classe in modo analogo a com stato fatto con la precedente:

= ( )

Esempio di problema in NP

DIVISORI PRIMI
Trovare i numeri primi che dividono un certo numero un tipico problema risolvibile con una ricerca mediante
forza bruta, ovvero con un algoritmo che, in un lasso di tempo esponenziale, trova le soluzioni corrette tramite
una ricerca esaustiva nel campo delle soluzioni possibili.

I divisori di x andranno allora cercati tra tutti i numeri minori o uguali a x (qui con qualche strategia mirata si
potrebbe ridurre drasticamente la quantit di soluzioni possibili e quindi il tempo di esecuzione) e unulteriore
ricerca sar necessaria per riconoscere se questi divisori sono primi o meno.

21/06/2017
P vs. NP 8
Ecco anche qui le due diverse ma equivalenti rappresentazioni dellalgoritmo:

DIVISORI PRIMI
su AlgoBuild

21/06/2017
P vs. NP 9

#include<iostream>

using namespace std;

int main (){


int x,i,a,j;
cout<<endl<<"Inserire il numero: ";
cin>>x;
cout<<endl<<"I divisori primi sono: ";
for (i=x; i>1; i=i-1){
a=0;
if(x%i==0){
for(j=2; j<i; j=j+1){
if(i%j==0)
a++;}
}
if(a==0)
cout<<endl<<;
}
cout<<endl;
return 0;

DIVISORI PRIMI in C++

Con una semplice raccolta di alcuni dati, facile dimostrare che lalgoritmo DIVISORI PRIMI, essendo eseguito in
questo caso su una macchina deterministica, richiede un tempo esponenziale:

Numero BIT Tempo (s)


0 1 0,45
1 1 0,55
2 2 1,45
3 2 1,55
5 3 2,90
8 4 5,95
13 4 7,20
21 5 13,40
34 6 22,55
55 6 33,20
89 7 48,00
144 8 133,15
233 8 120,05
377 9 206,45
610 10 450,35
Tabella tempo esecuzione di DIVISORI PRIMI

21/06/2017
P vs. NP 10

Tempo in funzione dell'input


600,00

500,00

400,00
Tempo (s)

300,00

200,00

100,00

0,00
0 2 4 6 8 10 12
Numero BIT in input

Grafico tempo esecuzione di DIVISORI PRIMI

Osservando il grafico, che registra i dati sullesecuzione dellalgoritmo per diversi valori di x, facile comprendere
il tempo richiesto per lesecuzione cresce esponenzialmente. La curva marrone rappresenta infatti la linea di
tendenza esponenziale, e i valori registrati si accostano molto ad essa.

Questo quindi un problema in NP, visto che, data una soluzione, facile verificarla in un tempo polinomiale.
Sapendo infatti quali sono i divisori primi del numero 42 (2,3,7), questi possono essere velocemente controllati
(42/7=6; 6/3=2; 2/2=1).

Il Sudoku

Un esempio pi utile per comprendere questa classe di problemi un gioco: il Sudoku. Questo rompicapo
giapponese un tipico esempio di problema NP: trovare la soluzione corretta, nonostante richieda a mia madre
solo un piccolo sforzo, pu richiedere un numero enorme di operazioni da parte di un computer, specialmente
allaumentare di dimensioni e difficolt. Per, quando qualcuno ci d una soluzione, risulta facilissimo sia a noi
che al computer controllare la sua veridicit.

Esistono diversi metodi per risolvere un sudoku data uniniziale disposizione di numeri; la via pi scontata quella
di usare un algoritmo Nave, con cui sar possibile generare tutte le combinazioni possibili di numeri per riempire
le celle vuote, fino a che la configurazione che completa correttamente il puzzle non viene trovata.

21/06/2017
P vs. NP 11
Unaltra via per completare uno schema parzialmente risolto quella di un algoritmo Backtracking. Questa
strategia ridurr il tempo di esecuzione, ma non tanto da evitare che esso cresca esponenzialmente
allaumentare dellinput.

Il Backtracking consiste in una ricerca tramite forza bruta delle possibili soluzioni. Lalgoritmo che esegue questa
ricerca assegna i numeri, uno alla volta, alle celle vuote; a ogni inserimento il numero viene controllato e, nel
caso in cui non sia valido, viene incrementato di uno. Se nessuna cifra tra quelle consentite pu completare una
casella, allora lalgoritmo fa un passo indietro e incrementa di uno il valore della cella precedentemente riempita.

E cos via, ricorsivamente.

Esempio di Backtracking

La seconda alternativa quindi migliore della prima, dato che in essa viene effettuato un controllo su ogni singolo
inserimento, mentre nellalgoritmo Nave il controllo viene effettuato solo ad ogni completamento della griglia
e non permette di registrare la correttezza o meno dei singoli numeri.

P=NP?

Adesso possiamo finalmente definire la domanda alla base del pi interessante tra i Millennium Prize Problems:
la classe dei problemi risolvibili da un modello deterministico in un tempo polinomiale coincide con la classe di
quelli verificabili da un modello deterministico in tempo polinomiale?

Quindi, in un senso pi ampio, essere capaci di verificare la soluzione a un problema in breve tempo significa
poter risolvere quello stesso problema in un tempo altrettanto breve?

Nonostante nel campo scientifico sia generalmente ritenuto che PNP, nessuno stato finora in grado di
dimostrare luno o laltro caso.

21/06/2017
P vs. NP 12
Molte persone hanno tentato di trovare algoritmi aventi tempo polinomiale per i problemi in NP ma, tranne che
in alcuni casi, ci non stato possibile. E altrettanto impossibile stato dimostrare che non esiste un algoritmo
veloce capace di sostituire la ricerca tramite forza bruta.

NP

P=NP
P

Le due possibili soluzioni

Questa questione, a cui siamo giunti attraverso la teoria della computazione, ha ripercussioni su una miriade di
campi diversi: la sua risoluzione sbloccherebbe questioni irrisolte non solo nellinformatica e nella matematica,
ma anche nella fisica, nella biologia, nelleconomia e nella comprensione del pensiero umano.

If P=NP, then the world would be a profoundly different place than we usually assume it to be. There would
be no special value in creative leaps, no fundamental gap between solving a problem and recognizing the
solution once its found. Everyone who could appreciate a symphony would be Mozart; everyone who could
follow a step-by-step argument would be Gauss; everyone who could recognize a good investment strategy
would be Warren Buffett. SCOTT AARONSON

Giace proprio qui luniversalit di quello che a molti potrebbe sembrare solo un noiosissimo problema.
La domanda generale pu essere allargata: ci che facile da controllare, anche altrettanto facile da ottenere?

In seguito saranno mostrate alcune delle situazioni in cui lecito porsi questa domanda e le ripercussioni che si
avrebbero nel caso in cui la risposta a P=NP? fosse dimostrata affermativa.

21/06/2017
P vs. NP 13
Altre classi di problemi in NP

Prima di trattare le applicazioni pratiche di P vs. NP necessario definire due nuove categorie.

Negli anni 70 vennero scoperti dei problemi in NP la cui complessit correlata a quella dellintera classe; ovvero:
gli esperti della teoria della complessit si resero conto che molti problemi NP erano risolvibili, essenzialmente,
da un solo algoritmo.

Ognuno di questi problemi infatti riducibile a ogni altro problema NP che presenta la sua stessa propriet (la
riduzione il modo per convertire un problema in un altro problema, in modo che la soluzione di uno possa
essere usata per risolvere anche laltro).

Questa nuova classe venne detta NP-completezza (NP-completeness), e acquis subito una grande importanza
nella ricerca di una risposta alla questione P vs. NP. Infatti, riuscendo a trovare un algoritmo capace di risolvere
un problema NP-completo in tempo polinomiale, ogni membro della classe NP arriverebbe a una soluzione in un
tempo realistico. Le due classi P e NP collasserebbero in una sola, risolvendo quindi la congettura.

Per definizione, un problema A NP-completo se:

A appartiene a NP
Ogni problema di NP riducibile, in tempo polinomiale, ad A

Facendo un altro passo indietro, vi poi unaltra classe, quella dei problemi NP-difficili (NP-hard), contenente gli
NP-completi e altri problemi riguardanti non solo la decidibilit, ma anche la ricerca o lottimizzazione. Questa
categoria comprende i problemi difficili almeno quanto quelli NP e vale ci che era stato detto per gli NP-completi:
provare che un NP-difficile risolvibile in un tempo realistico proverebbe che P=NP.

21/06/2017
P vs. NP 14
Riassumendo, la situazione si presenta cos:

NP-difficili NP-difficili

NP-completi

NP NP=NP-completi=P

Se PNP Se P=NP

P vs. NP e lequazione di Schrdinger

Erwin Schrdinger stato un fisico e matematico nato a Vienna nel 1887. considerato uno tra i maggiori fisici
teorici del XX secolo per via del suo fondamentale contributo alla teoria della meccanica quantistica.
In particolare, egli noto per la sua equazione d'onda, la quale permette di descrivere il comportamento di una
particella (cio come varia la sua funzione donda nel tempo).

Lequazione, ormai conosciuta come equazione di Schrdinger, divenne il punto cardine della sua teoria della
meccanica ondulatoria, secondo cui a ogni particella associata una funzione donda.

Per ogni sistema quantistico, lequazione permette di trovare le configurazioni possibili allo scorrere del tempo.
Queste configurazioni, e quindi le soluzioni allequazione, sono molteplici per ogni sistema dato e ognuna di esse
contiene in s una probabilit diversa di essere la configurazione effettiva. Il sistema perci considerato come
una sovrapposizione di pi stati probabili.

Lapplicazione dellequazione considerata per valida solo sul piano microscopico e non su quello
macroscopico. Questo dogma (dei diversi comportamenti tra macro e micro) stato incluso nellinterpretazione
della meccanica quantistica di Copenaghen (Bohr-Heisenberg) e confermato sperimentalmente, ma in realt
lequazione del fisico austriaco non contiene nulla che possa impedirne luso anche per sistemi macroscopici.

Nessuno ancora riuscito a stabilire dove sia fissato il limite che separa lapplicazione delle leggi della meccanica
quantistica (micro) da quella delle leggi classiche della meccanica newtoniana (macro).

21/06/2017
P vs. NP 15
Questa discrepanza stata chiamata macro-objectification problem, che sottolinea limpossibilit di capire fino
a quale punto pu essere sfruttata la teoria di Schrdinger.

Arkady Bolotin, studente della Ben-Gurion University in Israele, ha proposto una nuova strada per affrontare la
questione, dato che molti tentativi fatti attraverso teorie fisiche si sono dimostrati fallaci. Il percorso indicato da
Bolotin prevede un approccio al problema attraverso la teoria della complessit computazionale.

Il giovane studente riuscito a dimostrare che la risoluzione dellequazione di Schrdinger per una o pi particelle
un problema NP-difficile.

Con un algoritmo di tempo esecutivo esponenziale quindi possibile trovare le configurazioni di un sistema
quantico. E proprio qui risiederebbe il limite per lapplicazione dellenunciato di Schrdinger: per poche particelle
un calcolatore in grado di trovare le soluzioni, ma allaumentare del loro numero lalgoritmo impiegherebbe
un tempo enorme (anche molto superiore allet del nostro universo).

Se i fisici riuscissero a dimostrare, in un tempo inferiore ai miliardi di anni, il comportamento quantico degli
oggetti anche sul livello macroscopico, allora il P vs. NP problem sarebbe risolto.

Ma se arrivassimo a risolvere la congettura tramite questo processo, allora saremmo costretti ad ammettere che
il famoso gatto di Schrdinger sia vivo che morto, dato che la sovrapposizione di pi stati riguarderebbe
anche lui.

commons.wikimedia.org

Lesperimento mentale di Schrdinger

21/06/2017
P vs. NP 16
P vs. NP e le dimostrazioni matematiche

La matematica si fonda su un sistema logico costituito da assiomi (enunciati di partenza) e teoremi (deduzioni
conclusive).
Il passaggio da assiomi a teoremi avviene mediante delle regole di derivazione, che quindi hanno il compito di
derivare formule da altre formule.
Una prova invece una sequenza di passaggi matematici che spiega come una nuova formula derivata dalle
formule precedenti.
La prova deve ovviamente essere facile da verificare, ma la sua formulazione non quasi mai altrettanto scontata.

Proprio per questa ragione la verifica di un teorema pu essere considerata come un problema in NP1: data una
formula gi provata e unaltra formula da provare, trovare una serie di passaggi che giustifichi la seconda formula
richiede uninterminabile ricerca tramite forza bruta nel vastissimo universo della matematica; ma verificare
quella serie di passaggi risulta esponenzialmente pi facile e veloce.

Se P=NP allora molti matematici si troverebbero da un momento allaltro senza lavoro, dato che un qualsiasi
computer sarebbe in grado di rimpiazzare la loro acuta creativit.

Da qui si apre un grande conflitto di interessi, dato che i matematici, forse gli unici in grado di risolvere questa
congettura fondamentale, trovando una risposta troncherebbero la loro carriera.
forse questo il motivo per cui una soluzione al P vs. NP problem non stata ancora trovata?
Lascio a voi la risposta.

1
In realt la questione sulla decidibilit delle dimostrazioni matematiche estremamente discussa e Kurt Gdel afferma, nel suo On Formally Undecideable
Propositions of Principia Mathematica and Related Systems (1931), che alcuni teoremi sarebbero non dimostrabili da calcolatori.

P vs. NP e il ripiegamento delle proteine

Le proteine sono biomolecole fondamentali per la vita di tutti noi e di tutti gli altri organismi viventi ma, per
attivarsi e svolgere questimportantissima funzione, molte di loro hanno bisogno di assumere una ben
determinata conformazione tridimensionale.

Per ottenere la loro forma attiva le proteine devono quindi subire un ripiegamento proteico (protein folding)
che, a partire dalla loro struttura lineare, le porta ad assumere una conformazione secondaria, terziaria o
quaternaria.

21/06/2017
P vs. NP 17
Chimicamente sono ben noti i metodi generali con cui un polipeptide si ripiega: alcuni amminoacidi della
struttura primaria si legano ad altri amminoacidi tramite legami a idrogeno e formano cos un-elica (se i legami
avvengono nello stesso tratto della catena) o una struttura a pieghe (se i legami avvengono tra due tratti
paralleli di catene polipeptidiche). Un successivo ripiegamento, che permette di ottenere la conformazione
terziaria, avviene grazie ad alcune possibili interazioni chimiche (legami a idrogeno, ponti disolfuro, interazioni
ioniche).
In qualche caso pi catene polipeptidiche si possono unire tra loro, formando cos proteine pi complesse.

Per protein folding si intende, in particolare, il modo in cui un polipeptide arriva alla sua struttura terziaria.

Luomo ormai da diversi decenni studia e tenta di replicare questo processo di ripiegamento, cos da poter
sintetizzare artificialmente le proteine di cui ha bisogno. Ma nel 1968 il biologo Levinthal si rese conto che i modi
per ripiegare ogni singola proteina erano un numero esorbitante: stim 10143 ripiegamenti diversi.

Nel 1973 Christian Anfinsten permise un passo in avanti: riusc a capire il criterio che regola lassunzione di una
determinata struttura (detta struttura nativa). La proteina infatti si ripiega in quella conformazione in grado di
garantire la minima energia libera.
Neanche con questulteriore informazione i biologi riuscirono per a sintetizzare in laboratorio i polipeptidi:
quello di trovare lenergia libera minima si era infatti rivelato essere un problema NP-completo.
Un processo che richiede circa un secondo a una cellula umana richiederebbe a un computer miliardi di anni.
Ma come fanno allora le nostre cellule?

Si pensa che nel meccanismo di ripiegamento proteico intervengano dei Chaperones molecolari (particolari
proteine funzionali), in grado di dirigere e correggere il ripiegamento.

Se riuscissimo a trovare un modo per replicare e informatizzare il ruolo degli Chaperones troveremmo forse la
chiave per risolvere in un numero polinomiale di passaggi un problema NP-completo, quindi il dimostreremmo
che P=NP.
E inoltre molte malattie, come ad esempio cancro, Alzheimer e morbo di Parkinson, potrebbero essere curate.

21/06/2017
P vs. NP 18
P vs. NP e lumanit

Le applicazioni del nostro P=NP? non si limitano alle scienze; il problema suscita anche un grande interesse
filosofico e la nostra vita potrebbe risentirne, pi di quanto pensiamo.

Noi esseri umani siamo consci nel senso che ogni uomo ha la consapevolezza della sua individualit. Interagiamo
con il mondo usando sensi e in base a queste interazioni arriviamo a ottenere una conoscenza e a formare le
nostre idee. In poche parole, abbiamo una mente. Ed questa che ci rende umani.
Cosa sia di preciso questa mente non ci dato saperlo, ma da migliaia di anni luomo fa ipotesi sulla sua natura.

Secondo il pensiero di Platone, ripreso anche dal cristianesimo, la mente umana ha un carattere cosmologico,
metafisico: lanima (e quindi il nostro pensiero) originata da un soffio divino ed per natura immortale e
incorporea.
Dopo la fine del medioevo, allincirca dal 1500 in poi, la mente si stacca dallinfinito celeste in cui si trovava e si
aggrappa con le sue radici alle operazioni fisiche del cervello, diventando cos un oggetto da studiare proprio
come viene studiato ogni altro aspetto del mondo fisico.
Con il passare dei secoli la nostra umanit stata paragonata alle tecnologie pi avanzate di ogni epoca: passata
dal funzionare come un complesso orologio allessere una specie di telefono e, nel XX secolo, un computer.

proprio da qui che negli anni sessanta si sviluppata la Teoria computazionale della mente (Computational
Theory of Mind, CTM), una concezione filosofica secondo la quale il cervello umano funzionerebbe come un
modello computazionale.
Fu Turing stesso che, alcuni anni prima della nascita della Teoria vera e propria, propose lidea che la nostra
mente fosse un computer. Da questa idea nacquero una serie di ormai fondamentali materie, tra cui le scienze
cognitive e lintelligenza artificiale.
Si inizi perci a pensare che il cervello funzionasse, proprio come un computer, grazie a una serie di algoritmi
con cui passare da alcuni elementi in input (i sensi) a una serie di output (idee, movimenti).

Se la CTM corrispondesse al vero e se la questione P=NP si rivelasse finalmente valida, anche la nostra mente
potrebbe compiere degli incredibili passi in avanti.
Ci sembra molto improbabile, ma nessuno stato ancora in grado di dimostrarlo.

Forse un giorno, semplicemente riuscendo ad apprezzare la Nona sinfonia di Beethoven, anche noi saremo in
grado comporre un capolavoro come quello.

21/06/2017
P vs. NP 19
Ma se mai arrivassimo a questo punto, cosa renderebbe unico ognuno di noi? Se tutti fossimo capaci di risolvere
ogni problema che ci si presenta davanti, come potremmo vivere? Dove sarebbero la nostra debolezza, la nostra
vulnerabilit e la nostra unicit? Se P fosse uguale a NP correremmo il rischio di essere ridotti a complesse
macchine, tutte pi o meno uguali tra loro e capaci di raggiungere gli stessi traguardi. In poche parole,
rischieremmo di perdere la nostra umanit.

Allora, forse, ci conviene che la domanda P=NP? rimanga senza risposta.

Conclusioni

Come avete potuto leggere in queste poche pagine, dietro alla congettura P vs. NP si nasconde molto di pi di
quello che sembra: la nostra concezione del mondo potrebbe completamente cambiare e molte porte si
potrebbero aprire di fronte ai nostri occhi.

Una risposta al problema sembra ancora molto lontana, forse la sua ricerca richieder un tempo esponenziale,
ma non c niente di certo.

Comunque, anche senza soluzione, il valore e linfluenza di P vs. NP sono travolgenti: la sua irresolubilit come
un magnete per la nostra attenzione. Non il milione di dollari messo in palio dal Clay Institute a spingere le
geniali giovani menti verso un tentativo di risoluzione, ma il fascino dellincertezza, del mistero. Il problema
unisce in s due delle maggiori brame dellessere umano: landare oltre i propri limiti e la scoperta dellignoto.

A mio parere giace in questo la grandezza della congettura di P e NP.

Mi auguro, con questa breve trattazione, di essere riuscito ad attirare il vostro interesse su questo piccolo grande
problema potenzialmente in grado di cambiare il mondo.

Marco Bizzarri

21/06/2017
P vs. NP 20
Bibliografia

Aaronson Scott (2006), Reasons to believe, http://www.scottaaronson.com/blog


Berto Francesco (2007), Logica da zero a Gdel, Economica Laterza, Roma-Bari
Kumar Manjit (2010), Quantum, Arnoldo Mondadori S.p.A., Milano
Ma Michelle (2014), New protein structure could help treat Alzheimers, related diseases, University of
Washington, http://www.washington.edu/news
Rescorla Michael (2017), The Computational Theory of Mind, The Stanford Encyclopedia of Philosophy,
https://plato.stanford.edu/archives
Sipser Michael (2008), Introduzione alla teoria della computazione, Maggioli Editore, Santarcangelo di
Romagna
Sudan Madhu (2010), The P vs. NP problem, http://madhu.seas.harvard.edu/papers.html
Underwood James (2007), The 7 Great Millennium Problems, http://www.dailygalaxy.com/my_weblog
http://www.claymath.org/millennium-problems

21/06/2017