Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf ·...

39
Problemi NP-completi • Sono i problemi più difficili allinterno della classe NP – Se esistesse un algoritmo polinomiale per risolvere uno solo di questi problemi, allora • tutti i problemi in NP potrebbero essere risolti in tempo polinomiale, • dunque P = NP – Quindi: • tutti i problemi NP-completi sono risolvibili in tempo polinomiale oppure nessuno lo è

Transcript of Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf ·...

Page 1: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Problemi NP-completi

• Sono i problemi più difficili all’interno della classe NP– Se esistesse un algoritmo polinomiale per

risolvere uno solo di questi problemi, allora• tutti i problemi in NP potrebbero essere risolti in tempo polinomiale,

• dunque P = NP– Quindi:

• tutti i problemi NP-completi sono risolvibili in tempo polinomiale oppure nessuno lo è

Page 2: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Riduzioni polinomialiP1 e P2 = problemi decisionaliI1 e I2 = insiemi delle istanze di input di P1 e P2

P1 si riduce in tempo polinomiale a P2

P1 £p P2se esiste una funzione f: I1à I2 calcolabile in tempo polinomiale tale che, per ogni istanza x di P1

x è un’istanza accettabile di P1

SE E SOLO SEf(x) è un’istanza accettabile di P2

Page 3: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Riduzioni polinomiali

Se esistesse un algoritmo per risolvere P2potremmo utilizzarlo per risolvere P1

P1 £p P2 e P2 ∈ P ⇒ P1 ∈ P

f Algoritmo per P2f(x)

istanza di P1 istanza di P2

x 0/1

soluzione di P1

Algoritmo per P1

Page 4: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Problemi NP ardui

Un problema decisionale P si dice NP-arduo se

per ogni P’ Î NP, P’ £p P

4

Page 5: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Problemi NP completi

Un problema decisionale P si dice NP-completo se

P Î NPP è NP-arduo

5

Page 6: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Problemi NP completi

• Dimostrare che un problema è in NP può essere facile– Esibire un certificato polinomiale

• Non è altrettanto facile dimostrare che un problema P è NP-arduo– Bisogna dimostrare che TUTTI i problemi in NP si

riducono polinomialmente a P– In realtà la prima dimostrazione di NP-completezza

aggira il problema

6

Page 7: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

SAT Soddisfacibilità di formule booleane

Page 8: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Definizioni

• Insieme V di variabili Booleane– Letterale: variabile o sua negazione– Clausola: disgiunzione (OR) di letterali

• Un’espressione Booleana su V si dice in forma normale congiuntiva (FNC) se è espressa come congiunzione di clausole (AND di OR)

Page 9: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Esempio

V = {x,y,z,w}

FNC : (x ∨ y ∨ z)∧ (x ∨w)∧ y

Page 10: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

SAT• Data una espressione in forma normale

congiuntiva

verificare se esiste una assegnazione di valori di verità alle variabili che rende l’espressione vera

Page 11: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Esempio • La formula

è soddisfatta dall’assegnazione

(x ∨ y ∨ z)∧ (x ∨w)∧ y

x =1 y =1 z = 0 w =1

Page 12: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

SAT ∈ NP

Certificato per SAT?Un’assegnazione di valori (0 o 1) alle variabili che renda vera l’espressione

Page 13: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

SATproblema della soddisfacibilità di una espressione booleane in forma normale congiuntiva (FNC)

TeoremaSAT è NP completo

Teorema di Cook

13

Page 14: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Teorema di Cook (idea)

• Cook ha mostrato un algoritmo chedati un qualunque problema P ed una qualunque istanza x per Pcostruisce una espressione Booleana in forma normale congiuntiva che descrive il calcolo di un algoritmo per risolvere P su x

• L’espressione è vera se e solo se l’algoritmo restituisce 1

14

Page 15: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Problemi NP completi

Un problema decisionale P è NP completo se

– P Î NP– SAT £p P

(o un qualsiasi altro problema NPC)

15

Page 16: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Riduzione: SAT £pCLIQUEn Dato un grafo G = (V,E) e un intero k > 0,

stabilire se G contiene una clique di k nodi

16

Page 17: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

CLIQUEn Dato un grafo G = (V,E) e un intero k > 0,

stabilire se G contiene una clique di k nodi

17

Clique di 3 nodi

Page 18: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

18

CLIQUEn Dato un grafo G = (V,E) e un intero k > 0,

stabilire se G contiene una clique di k nodi

Clique di 4 nodi

Page 19: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

19

CLIQUEn Dato un grafo G = (V,E) e un intero k > 0,

stabilire se G contiene una clique di k nodi

Non contieneclique di 5 nodi

Page 20: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Un problema di CLIQUE più grandeTrovare la clique più grande in un grafo di 100 nodi può richiedere fino a secoli di tempo di calcolo con una ricerca di tutte le possibilità.

La ricerca esaustiva è necessaria ?Non lo sappiamo.

Page 21: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

21

CLIQUE è NP completo

SAT £p CLIQUE data un’espressione booleana F in forma normale congiuntiva con k clausole

costruire in tempo polinomiale

un grafo G che contiene una clique di k vertici se e solo se F è soddisfacibile.

Page 22: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

22

Riduzione: vertici

n Ad ogni letterale in ciascuna clausola di F corrisponde un vertice in G.

Esempio: F = (a Ú b) Ù (!a Ú !b Ú c) Ù !cG = (V, E),

V = { a1, b1, !a2, !b2, c2, !c3 }

Page 23: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

23

Riduzione: archi

( xi , yj ) Î E Û i ≠ j e x ≠ !y

Due letterali sono adiacenti in G se e solo se - appartengono a clausole diverse- possono essere veri contemporaneamente.

Page 24: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

24

F = (a Ú b) Ù (!a Ú !b Ú c) Ù !c

b1

a1

!a2

!b2

c2!c3

Page 25: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

25

Clique in G

n composta da k nodi uno per ogni clausola di F

n non può contenere due nodi della stessa clausola

perché non sono adiacenti.

Page 26: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

26

Riduzione

G contiene una clique Þ F è soddisfacibile

• si dà valore 1 (true) ai k letterali che corrispondono ai nodi della clique

• tutte la clausole corrispondenti diventano di valore 1 (true)

• F = 1 (true), soddisfacibile.

Page 27: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

27

F = (a Ú b) Ù (!a Ú !b Ú c) Ù !c

b1

a1

!a2

!b2

c2!c3

Page 28: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

28

F = (a Ú b) Ù (!a Ú !b Ú c) Ù !c

b1

a1

!a2

!b2

c2!c3

Page 29: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

29

F = (a Ú b) Ù (!a Ú !b Ú c) Ù !c

b1

a1

!a2

!b2

c2!c3

a = 1

Page 30: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

30

F = (1 Ú b) Ù (0 Ú !b Ú c) Ù !c

b1

a1

!a2

!b2

c2!c3

a = 1

Page 31: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

31

F = (1 Ú b) Ù (0 Ú !b Ú c) Ù !c

b1

a1

!a2

!b2

c2!c3

!b = 1

Page 32: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

32

F = (1 Ú 0) Ù (0 Ú 1 Ú c) Ù !c

b1

a1

!a2

!b2

c2!c3

!b = 1

Page 33: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

33

F = (1 Ú 0) Ù (0 Ú 1 Ú c) Ù !c

b1

a1

!a2

!b2

c2!c3

!c = 1

Page 34: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

34

F = (1 Ú 0) Ù (0 Ú 1 Ú 0) Ù 1

b1

a1

!a2

!b2

c2!c3

!c = 1

Page 35: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

35

F = (1) Ù (1) Ù 1 = 1

b1

a1

!a2

!b2

c2!c3

Page 36: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

36

Riduzione

F è soddisfacibile Þ G contiene una clique

• esiste almeno un letterale vero per ogni clausola

• i corrispondenti vertici in G formano una clique.

Page 37: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

37

Riduzionen La riduzione da F a G = (V,E) si esegue

in tempo polinomiale:n n = # variabilin k = # clausolen |V| ≤ n kn l’esistenza di un arco si stabilisce in tempo

costanten |E| ≤ O((n k)2)

Page 38: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

38

Problemi NP equivalenti

n SAT ≤p CLIQUE Þ CLIQUE è NP completo

n SAT è NP completo Þ CLIQUE ≤p SAT

n SAT e CLIQUE sono NP equivalenti.

n Tutti i problemi NP completi sono tra loro

NP equivalenti.

Page 39: Problemi NP-completididawiki.cli.di.unipi.it/lib/exe/fetch.php/informatica/all-b/p-np-slides.pdf · Riduzioni polinomiali P 1e P 2= problemi decisionali I 1e I 2= insiemi delle istanze

Gerarchia delle classi

P

Decidibili

EXP

NP

NP-completi