3 CENNI DI TEORIA DELLA COMPLESSITA’...
Transcript of 3 CENNI DI TEORIA DELLA COMPLESSITA’...
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1
3 CENNI DI TEORIA DELLA COMPLESSITA’ COMPUTAZIONALE
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 2
Scopo: Stimare l’onere computazionale per risolvere problemi di ottimizzazione e di altra natura
• Determinare l’efficienza di un specifico algoritmo Aper risolvere un dato problema P
• Tentare di valutare la difficoltà intrinseca di un dato problema P
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 3
3.1 Complessità degli algoritmi
Un’istanza I di un problema P è un caso specifico del problema
Esempio Problema P: ordinare n numeri interi c1, ..., cn
Istanza I : n = 3, c1 = 2, c2 = 7, c3 = 5
Scopo: stimare l’onere computazionale di algoritmi alternativi per risolvere un dato problema P al fine di selezionare quello più efficiente
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 4
Principali risorse⎧⎨⎩
tempo di calcolo
spazio di memoria
Chiaramente il numero di operazioni elementari dipende dall’istanza I
Facendo riferimento ad un modello di calcolo astratto come la macchina di Turing, si considera il numero di operazioni elementari ( aritmetiche, confronti,... ) necessarie per risolvere una data istanza I
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 5
La dimensione di un’istanza I, indicata |I|, è il numero di bit necessari a codificare (descrivere) I
Esempio
log i⎡ ⎤⎢ ⎥Poiché la codifica di un intero i richiede bit,
Istanza specificata dai valori di n e c1, ..., cn
Per istanza n = 3, c1 = 2, c2 = 7, c3 = 5
⇒ ⎡log 3⎤ + 3 · ⎡log 7⎤
Dimensione di un’istanza
log logn n c⋅+⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ dove1max i
i nc c
≤ ≤=|I| =
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 6
In genere, si considera la rapidità di crescita del numero di operazioni elementari (o.e.) nel caso peggiore :
numero di o.e. per risolvere istanza I ≤ f (n) ∀I con |I| ≤ n
Complessità asintotica :
f(n) = O(g(n)) se ∃ c > 0 tale che f(n) ≤ c g(n) per n sufficientemente grande
Si dice che f(n) è dell’ordine di g(n)
Ordine di complessità
n0
c·g(n)f (n)
n
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 7
Un algoritmo è polinomiale se richiede, nel caso peggiore, un numero di operazioni elementari
f(n) = O(nd) con n = |I| e d costante.
O(nd)polinomiale
O(2n)esponenziale
Si distinguono algoritmi con:
Gli algoritmi polinomiali sono in genere considerati efficienti anche se uno in O(n10) non lo è molto in pratica!
Esempio Per l’ordinamento di n interi esiste un algoritmoO(n log n)
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 8
• Algoritmi di Prim (alberi ottimi) e di Dijkstra (cammini minimi) complessità polinomiale: O(n2)
• Versione di base dell’algoritmo di Ford – FulkersonRicerca cammino aumentante: O(m)
Valore flusso massimo ϕ* ≤ m kmax kmax= max{kij: (i,j) ∈A}
Se kij intere, il valore ϕ aumenta di almeno δ = 1 unità ad ogni iterazione Partendo dal flusso di valore x = 0 con ϕ0 = 0, si ha quindi una complessità totale O(m2 kmax)
Esempi
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 9
N.B.: la dimensione di un’istanza è O(m log kmax) perché la capacità di ogni arco può essere codificata su ⎡log kmax⎤ bit
Modifica che lo rende polinomiale:cercare cammino aumentante con un numero minimodi archi( Edmonds e Karp O(nm2), Dinic O(n2m), e Malhorta, Kumar e Maheshwari O(n3) )
maxlogmax 2 kk =Poiché l’ordine di complessità totale
O(m2 kmax) non è polinomiale rispetto alla dimensione!
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 10
3.2 Complessità dei problemi
Scopo: stimare la difficoltà intrinseca di un problema (che corrisponde alla complessità del “miglior algoritmo che permetterebbe di risolverlo”) per adottare l’approccio risolutivo più adeguato
Un problema P è polinomiale ( “facile” ) se esiste un algoritmo polinomiale che fornisce la soluzione (ottima) per ogni istanza.
Esempi: cammini minimi, flussi di valore massimo,...
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 11
? Esistono problemi “difficili” ?
Per molti problemi di ottimizzazione i migliori algoritmi noti tutt’oggi richiedono un numero di operazioni elementari che cresce, nel caso peggiore, esponenzialmente con la dimensione dell’istanza
N.B.: Non dimostra che sono effettivamente “difficili”!
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 12
Problema del commesso viaggiatore
Problema
“TravellingSalesman Problem” TSP
Un commesso viaggiatore deve visitare ciascuna di ncittà esattamente una volta e ritornare al punto di partenza nel minor tempo possibile.
Dato un grafo orientato G = (N, A), con un costo cij ∈ , ∀ (i, j) ∈ A, determinare un circuito di costo minimo che visita esattamente una voltaogni nodo.
Z
collegamenti con tempi
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 13
Un circuito C è hamiltoniano se passa esattamente una volta per ogni nodo.
Indicando con H l’insieme di tutti i circuiti hamiltonianidi G, il problema equivale a
( , )
min ijC H i j C
c∈
∈∑
Applicazioni: distribuzione, sequenziamento ottimo, VLSI, …
| H | ≤ ( n – 1 )!
N.B.: H contiene un numero finito di elementi
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 14
Ad ogni problema di ottimizzazione viene associata una versione di riconoscimento
Esempio TSP-r
Dato un grafo orientato G = (N, A) con distanze cijintere e un intero L, esiste un circuito hamiltonianodi lunghezza ≤ L ?
Non si fa direttamente riferimento ai problemi di ottimizzazione ma ai problemi di riconoscimento( risposta “si” / “no” )
3.3 Teoria della NP-completezza
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 15
Qualsiasi problema di ottimizzazione è almeno altrettanto difficile della sua versione di riconoscimento.
Se si riesce a individuare un circuito hamiltoniano di lunghezza minima si può chiaramente rispondere alla domanda di TSP-r (ne esiste uno di lunghezza ≤ L?)
Se versione di riconoscimento è difficile
⇒ il problema di ottimizzazione è anch’esso difficile
Problemi di riconoscimento
Esempio
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 16
P indica la classe dei problemi di riconoscimento che si possono risolvere in tempo polinomiale.
Esempi: quelli associati ai problemi di alberi ottimi, di camminiminimi e di flussi massimi
Classe di complessità P
Per ciascuno di essi esiste un algoritmo che permette di stabilire per ogni istanza I se la risposta è “si” o “no” in
tempo polinomiale in |I|
Definizione formale di P in termini di macchina di Turing (deterministica) polinomiale
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 17
Esempio: TSP-r poiché si può verificare in tempo polinomiale se una sequenza di nodi è un circuitohamiltoniano e se lunghezza ≤ L
Classe di complessità NP
Si richiede solo che per ogni istanza con risposta “si”esista una prova concisa (certificato) che permetta di verificare in tempo polinomiale che la risposta è “si”.
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 18
NB: Non importa quanto è difficile ottenere ilcertificato (può essere fornito da un “oracolo”) basta
che esista e sia verificabile in tempo polinomiale!
NP indica la classe dei problemi di riconoscimentoper i quali ∃ un polinomio p(n) e un algoritmo di verifica del certificato Avc tale che :
istanza I ha risposta “si” ⇔ ∃ un certificato γ(I) di dimensione polinomiale (|γ(I)| ≤ p(|I|) ) e Avc applicatoall’input “I,γ(I)” da risposta “si” in un numero dioperazioni elementari ≤ p(|I|).
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 19
Chiaramente P ⊆ NP
Congettura P ⊂ NP
P
NP
P
!NP non sta per “Non Polinomiale” ma per “Non-deterministico Polinomiale” (fa riferimento allemacchine di Turing non-deterministiche polinomiali)
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 20
Per confrontare i problemi di riconoscimento e definire quelli più difficili si utilizza il concetto di riduzione polinomiale.
Sia P1 e P2 ∈ NP, P1 si riduce in tempo polinomiale a P2 (P1 ∝ P2) se esiste un algoritmo per risolvere P1 che• chiama un certo numero di volte un ipotetico algoritmo per P2 ,• e risulta polinomiale se si suppone che quello per P2richieda un’unica unità di tempo.
Riduzione polinomiale fra problemi
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 21
Esempio
Caso più semplice: l’algoritmo per P2 viene chiamato un’unica volta.
P2: Dato un grafo orientato G’ = ( N’, A’) con costi e un intero L’, ∃ un circuito hamiltoniano di lunghezza ≤ L’ ?
P1: Dato un grafo non orientato G = ( N, E ) con costi e un intero L, ∃ un ciclo hamiltoniano di lunghezza ≤ L?
P1 ∝ P2
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 22
in tempo e spazio polinomiale
∀ I1 ∈ P1 è facile costruire una particolare I2 ∈ P2
tale che I1 ha risposta “si” ⇔ I2 ha la risposta “si”
Riduzione polinomiale dal caso non orientato a quello orientato :
11
5
2
3
4
226
5
34
42G=(N,E)
1
5
2
3
4
1
226
5
34
42G’=(N’,A’)
L = 15 L’ = 15
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 23
Conseguenza:
Se P1 ∝ P2 e P2 è risolubile mediante un algoritmo polinomiale, allora anche P1 può essere risolto in tempo polinomiale.
P2 ∈ P ⇒ P1 ∈ P
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 24
Un problema P è NP-completo se e solo se1) appartiene a NP2) ogni altro problema in NP è riducibile ad esso
in tempo polinomiale ( P’ ∝ P , ∀ P’ ∈ NP )
NPP
NP-completi
Problemi NP-completi
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 25
Proprietà:
Se un problema NP-completo P fosse risolubile in tempo polinomiale (se ∈ P ), allora lo sarebbero tutti i problemi di NP, cioè si avrebbe P =NP !!
eventualità considerata estremamenteimprobabile
La NP-completezza è quindi un forte indizio di difficoltà intrinseca
cf. lunga lista di problemi NP-completi per i quali non sono noti algoritmi polinomiali
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 26
Primo problema dimostrato NP-completo (Cook 1971) :
Esempio
assegnamento: y1 = vero, y2 = falso, y3 = falso
Soddisfacibilità (SAT)
Date m clausole booleane C1,…, Cm ( disgiunzioni --OR -- di variabili booleane yj e loro complementi yj ), esiste un assegnamento di valori “vero” o ”falso” alle variabili che rende vere tutte le clausole?
¯
C1 : ( y1 ∨ y2 ∨ y3 )C2 : ( y1 ∨ y2 ) C3 : ( y2 ∨ y3 )
¯¯¯
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 27
Per stabilire che P2 ∈ NP è NP-completo “basta”mostrare che un altro problema NP-completo P1 si riduce polinomialmente a P2 :
P ∝ P1, ∀ P ∈ NP , e P1 ∝ P2 implica per transitività che
P ∝ P2 ,∀ P ∈ NP
P1: Dato G non orientato con costi e un intero L,∃ un ciclo hamiltoniano di lunghezza ≤ L?
P2: Dato G’ orientato con costi e un intero L’, ∃ un circuito hamiltoniano di lunghezza ≤ L’ ?
Esempio
Come mostrare la NP-completezza ?
P2 ∈ NP e P1 ∝ P2 con P1 NP-completo
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 28
• Dato G = (N, E) non orientato, ciclo hamiltoniano ?
• Dato un sistema lineare A x ≥ b con coefficienti interi, esiste una soluzione x a valori 0, 1 ?
• ….
Altri esempi di problemi NP-completi
• Dato G = (N, A) orientato, due nodi assegnati s e t, e un intero L, esiste un cammino semplice (con nodi distinti) da s a t che contiene un numero di archi ≥ L ?
• Dato G = (N, A) orientato con costi sugli archi, due nodi s e t, e un intero L, esiste un cammino sempliceda s a t di costo ≤ L ?
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 29
Un problema è NP-difficile se ogni problema in NPè riducibile ad esso in tempo polinomiale (anche se non appartiene ad NP)
EsempioTSP poiché TSP-r (esiste un circuito hamiltonianodi lunghezza ≤ L?) è NP-completo.
Problemi NP-difficili
Tutti i problemi di otttimizzazione di cui la versione di riconoscimento è NP-completa sono NP-difficili.
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 30
• Dati matrice A m×n, e vettori b m×1 e c n×1 con componenti intere, trovare un x ∈{0, 1}n che soddisfi Ax ≥ b e minimizzi cTx.
• ….
Altri esempi di problemi NP-difficili
• Dato G = (N, A) orientato con costi sugli archi, due nodi assegnati s e t, determinare un cammino semplice di costo massimo tra s e t.
• Dato G = (N, A) orientato con costi sugli archi, due nodi s e t, determinare un cammino semplice di costo minimo tra s e t.
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 31
Qual è la dimensione di un’istanza del problema dell’albero di supporto di costo minimo ?
Esercizio
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 32
Suggerimento: procedere per riduzione dal problemadi soddisfacibilità (SAT)
Programmazione Lineare Intera (PLI):
Dati A, b e c interi, trovare un x a valori 0, 1 che soddisfa Ax ≥ b e minimizza cTx.
Verificare che la programmazione lineare interaè un problema NP-difficile.Esercizio