MT5

Forum per gli studenti di informatica dell'MT5
IndiceIndice  FAQFAQ  CercaCerca  RegistrareRegistrare  ConnessioneConnessione  
 

Calcolabilità e Complessità : riduzione tra problemi

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
Hiems
Utente Junior
Utente Junior



Età : 21
Registrato il : 23/01/08
Messaggi : 341

MessaggioOggetto: Calcolabilità e Complessità : riduzione tra problemi   Ven Gen 25, 2008 11:40 pm

Partiamo subito con la definizione formato soft.
Dati L1 e L2, diciamo che L1 è riducibile polinomialmente a L2 (<=p, purtroppo il pedice non si può fare o non lo so fare io, quindi abbiate pazienza, userò l'italiano al posto dei simboli) se esiste un algoritmo f(), o trasformazione, calcolabile in tempo polinomiale.
Così se abbiamo una stringa w appartenente a L1 e L2 è il linguaggio di cui sappiamo la membership (cioè a quale classe appartiene), tramite questa funzione f() possiamo stabilire se f(w) appartiene a L2.
In parole povere questa funzione "crea" una nuova stringa appartenente al linguaggio noto, in questo caso L2, così se il risultato di f(w) appartiene alla classe di L2, allora anche w apparterrà alla stessa classe. Abbiamo quindi fatto una trasformazione da un problema ignoto ad uno noto.

Esempio pratico.
Abbiamo un algoritmo A per L2 e dobbiamo vedere se w appartiene a L1.
Alla funzione f() passeremo quindi w per far si che questa la trasformi ad hoc per L2:
w -> f(w) -> A(f(w))
Questo disegnino vuol dire che passeremo all'algoritmo A la trasformazione di w tramite f(). Se A(f(w)) è un'istanza si, cioè se f(w) appartiene a L2, allora w apparterrà a L1. Analogamente, se A(f(w)) è un'istanza no, cioè se f(w) non appartiene a L2, allora nemmeno w apparterrà a L1.

Poiché la funzione f() è polinomiale, se l'algoritmo A è polinomiale A(f(w)) lo risolviamo in tempo polinomiale. Tutto il complesso sarà ancora polinomiale, quindi il costo di trasformazione è polinomiale in w, cioè nell'input di partenza.

Da questo ricaviamo un teorema:
TH. Se L1 è riducibile polinomialmente a L2 e L2 appartiene a P, allora L1 appartiene a P.

Il bello di questo teorema è che vale anche per i problemi NP-COMPLETE.
TH. Se P1 è un problema NP-COMPLETE e P2 è un problema in NP. se esiste una riduzione polinomiale da P1 a P2, allora P2 è NP-COMPLETE.

Questi due teoremi sono dimostrabili e dimostrati, ovviamente, e ovviamente tenterò di riproporli qui!

Cominciamo col primo:
se L1 è riducibile polinomialmente a L2 e L2 appartiene a P, allora L1 appartiene a P.
Poiché A lavora con f(w), l'output di f() quanto può essere diventato grande rispetto a w? Quale è la size di f(w), cioè |f(w)|?
Supponiamo che l'algoritmo A per L2 ci metta O(n^(kA)) passi e che O(n^(kf)) sia il massimo numero di passi che deve fare f(). Se consideriamo la stringa w di cui parlavamo prima, allora il massimo numero di passi di f sarà O(w^(kf)), dove w è la taglia della stringa.
Quanto ci metterà A a trovare una risposta per il nostro problema?
O(n^(kA)) = O(|f(w)|^(kA)) che, sostituendo f(w) con w, sarà uguale a O(|w|^(kf))^kA.
Visto che tutti sappiamo lavorare con gli esponenti, kf e kA li possiamo moltiplicare. Il risultato sarà O(|w|^(kf*kA)) e kf*kA resta sempre costante, il che rende la trasformazione polinomiale.

Passiamo ora al secondo:
Dobbiamo dimostrare che ogni linguaggio L in NP si riduce in tempo polinomiale a P2. Sappiamo che esiste una riduzione polinomiale di L a P1 che impiega un tempo polinomiale p(n). Quindi una stringa w di L può esere convertita in un'altra stringa in NP-COMPLETE di lunghezza massima p(n).
Supponiamo che esista una riduzione polinomiale di P1 a P2 e che impieghi un tempo polinomiale q(m). La riduzione quindi impiegherà un tempo massimo q(p(n)) per trasformare la stringa w di L. Così la trasformazione impiegherà un tempo massimo p(n)+q(p(n)), che è sempre polinomiale!
Ora, dato che L è un linguaggio a caso in NP, abbiamo dimostrato che l'intera classe NP si riduce a P2, cioè che P2 è NP-COMPLETE!
Tornare in alto Andare in basso
KillerCD
Moderatore
Moderatore



Età : 22
Registrato il : 16/12/07
Messaggi : 348
Localizzazione : Proprio Cosenza Cosenza

MessaggioOggetto: Re: Calcolabilità e Complessità : riduzione tra problemi   Sab Gen 26, 2008 2:18 am

non ho mai capito la differenza fra NP e NP-COMPLETE....
Tornare in alto Andare in basso
Carmine
Moderatore
Moderatore



Età : 21
Registrato il : 16/12/07
Messaggi : 654
Localizzazione : Cosenza

MessaggioOggetto: Re: Calcolabilità e Complessità : riduzione tra problemi   Sab Gen 26, 2008 11:15 am

KillerCD ha scritto:
non ho mai capito la differenza fra NP e NP-COMPLETE....


Allora la classe NP-COMPLETE comprende tutti quei problemi che sono i più difficili tra quelli in NP, cioè quei problemi di cui è stata dimostrata la NP-hardness (Vedi precedente post di Hiems). La differenza è questa NP-COMPLETE è una sottoclasse di NP. In NP, ci sono tutti i problemi risolvibili con una macchina di Turing non deterministica in tempo polinomiale. Quindi per esempio la ricerca di un elemento in un array è in NP, così come lo è il problema del Vertex Cover. Però il primo non è in NP-complete, il secondo sì. Perchè del secondo è stata dimostrata la NP-hardness appunto, quindi vuol dire che tutti i problemi in NP sono almeno difficili quanto lui. Cosa invece non vera per il problema della ricerca di un elemento in un array. Sono stato spiegato? lol!
_________________
Quando la massa vede in te un Pazzo e folli le cose che dici, folli le cose che pensi, folli le cose che fai, allora sorridi e guardandoti allo specchio inchinati: sei davanti a un Genio.
Perchè coloro che sono abbastanza folli da pensare di cambiare il mondo, sono quelli che poi lo fanno...
Tornare in alto Andare in basso
KillerCD
Moderatore
Moderatore



Età : 22
Registrato il : 16/12/07
Messaggi : 348
Localizzazione : Proprio Cosenza Cosenza

MessaggioOggetto: Re: Calcolabilità e Complessità : riduzione tra problemi   Sab Gen 26, 2008 11:57 am

AAAAA ora ho capito Very Happy
Tornare in alto Andare in basso
Hiems
Utente Junior
Utente Junior



Età : 21
Registrato il : 23/01/08
Messaggi : 341

MessaggioOggetto: Re: Calcolabilità e Complessità : riduzione tra problemi   Sab Gen 26, 2008 12:02 pm

KillerCD ha scritto:
AAAAA ora ho capito Very Happy


ne sei proprio sicuro? Neutral
Tornare in alto Andare in basso
ladydarko
Primi Passi
Primi Passi



Età : 23
Registrato il : 14/02/08
Messaggi : 86
Localizzazione : finlandia...

MessaggioOggetto: Re: Calcolabilità e Complessità : riduzione tra problemi   Sab Giu 28, 2008 3:47 pm

ragà scusate la mia ignoranza ma perchè bisogna dimostrare i precedenti teoremi... a me pare ovvio che gli enunciati siano giusti... secondo voi sn pazza???
_________________
con arco e frecce catturo anime...
Tornare in alto Andare in basso
Hiems
Utente Junior
Utente Junior



Età : 21
Registrato il : 23/01/08
Messaggi : 341

MessaggioOggetto: Re: Calcolabilità e Complessità : riduzione tra problemi   Sab Giu 28, 2008 4:29 pm

ladydarko ha scritto:
ragà scusate la mia ignoranza ma perchè bisogna dimostrare i precedenti teoremi... a me pare ovvio che gli enunciati siano giusti... secondo voi sn pazza???


Se sono giusti è perché sono stati dimostrati -_-

Se per te è ovvio è un buon inizio, ma dire "per me è ovvio" non vuol dire saperlo dimostrare, e la dimostrazione di teoremi può essere relativamente ovvia..
_________________
"Causa del decesso: cianuro di potassio autosomministrato in un momento di squilibrio mentale".
Tornare in alto Andare in basso
ladydarko
Primi Passi
Primi Passi



Età : 23
Registrato il : 14/02/08
Messaggi : 86
Localizzazione : finlandia...

MessaggioOggetto: Re: Calcolabilità e Complessità : riduzione tra problemi   Sab Giu 28, 2008 5:24 pm

senza dubbio... effettivamente non avevo pensato che per qualsiasi cosa dire "per me è giusto" e non avere le basi per dimostrarlo annulla il tutto.. Very Happy
_________________
con arco e frecce catturo anime...
Tornare in alto Andare in basso

Calcolabilità e Complessità : riduzione tra problemi

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 su1

Permesso del forum:Non puoi rispondere agli argomenti in questo forum
MT5 :: MT5 Esami :: 2 Anno-