• Non ci sono risultati.

Problemi NP-completi

N/A
N/A
Protected

Academic year: 2021

Condividi "Problemi NP-completi"

Copied!
39
0
0

Testo completo

(1)

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 è

(2)

Riduzioni polinomiali

P1 e P2 = problemi decisionali

I1 e I2 = insiemi delle istanze di input di P1 e P2

P1 si riduce in tempo polinomiale a P2

P

1

£

p

P

2

se 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 SE

f(x) è un’istanza accettabile di P2

(3)

Riduzioni polinomiali

Se esistesse un algoritmo per risolvere P2 potremmo utilizzarlo per risolvere P1

P1 £p P2 e P2

P ⇒

P1

P

f f(x) Algoritmo per P2

istanza di P1 istanza di P2

x 0/1

soluzione di P1

Algoritmo per P1

(4)

Problemi NP ardui

Un problema decisionale P si dice NP-arduo se

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

4

(5)

Problemi NP completi

Un problema decisionale P si dice NP-completo se

P Î NP

P è NP-arduo

5

(6)

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

(7)

SAT

Soddisfacibilità di formule booleane

(8)

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)

(9)

Esempio

V = {x, y,z,w}

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

(10)

SAT

• Data una espressione in

forma normale congiuntiva

verificare se esiste una assegnazione di

valori di verità alle variabili che rende

l’espressione vera

(11)

Esempio

• La formula

è soddisfatta dall’assegnazione

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

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

(12)

SAT ∈ NP

Certificato per SAT?

Un’assegnazione di valori (0 o 1) alle variabili che renda vera

l’espressione

(13)

SAT

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

Teorema

SAT è NP completo

Teorema di Cook

13

(14)

Teorema di Cook (idea)

Cook ha mostrato un algoritmo che

dati un qualunque problema P ed una qualunque istanza x per P

costruisce 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

(15)

Problemi NP completi

Un problema decisionale P è NP completo se

– P Î NP – SAT £

p

P

(o un qualsiasi altro problema NPC)

15

(16)

Riduzione: SAT £

p

CLIQUE

n Dato un grafo G = (V,E) e un intero k > 0, stabilire se G contiene una clique di k

nodi

16

(17)

CLIQUE

n 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

(18)

18

CLIQUE

n Dato un grafo G = (V,E) e un intero k > 0, stabilire se G contiene una clique di k nodi

Clique di 4 nodi

(19)

19

CLIQUE

n Dato un grafo G = (V,E) e un intero k > 0, stabilire se G contiene una clique di k nodi

Non contiene clique di 5 nodi

(20)

Un problema di CLIQUE più grande

Trovare 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.

(21)

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.

(22)

22

Riduzione: vertici

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

Esempio:

F = (a Ú b) Ù (!a Ú !b Ú c) Ù !c G = (V, E),

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

(23)

23

Riduzione: archi

( x

i

, y

j

) Î E Û i ≠ j e x ≠ !y

Due letterali sono adiacenti in G se e solo se

- appartengono a clausole diverse

- possono essere veri contemporaneamente.

(24)

24

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

b1

a1

!a2

!b2

c2

!c3

(25)

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.

(26)

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.

(27)

27

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

b1

a1

!a2

!b2

c2

!c3

(28)

28

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

b1

a1

!a2

!b2

c2

!c3

(29)

29

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

b1

a1

!a2

!b2

c2

!c3 a = 1

(30)

30

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

b1

a1

!a2

!b2

c2

!c3 a = 1

(31)

31

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

b1

a1

!a2

!b2

c2

!c3

!b = 1

(32)

32

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

b1

a1

!a2

!b2

c2

!c3

!b = 1

(33)

33

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

b1

a1

!a2

!b2

c2

!c3

!c = 1

(34)

34

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

b1

a1

!a2

!b2

c2

!c3

!c = 1

(35)

35

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

b1

a1

!a2

!b2

c2

!c3

(36)

36

Riduzione

F è soddisfacibile Þ G contiene una clique

esiste almeno un letterale vero per ogni clausola

i corrispondenti vertici in G formano una clique.

(37)

37

Riduzione

n La riduzione da F a G = (V,E) si esegue in tempo polinomiale:

n n = # variabili

n k = # clausole

n |V| ≤ n k

n l’esistenza di un arco si stabilisce in tempo costante

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

(38)

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.

(39)

Gerarchia delle classi

P

Decidibili

EXP

NP NP-completi

Riferimenti

Documenti correlati

Utilizzando la notazione asintotica O è possibile descrivere il tempo di esecuzione di un algoritmo al caso peggiore esaminando semplicemente la struttura complessiva

(cioè dare lo stesso valore per gli stessi assegnamenti delle variabili) Data una funzione booleana (come tabella di verità). esistono molte reti combinatorie che

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

§ Un

[r]

Irroratela quindi con un quarto di litro di vino e con altrettanto fumetto di pesce, poi passatela nel forno a 150 gradi per 45 minuti circa, unendo, a metà cottura, i

 Se nessuna variabile artificiale è ancora in base, ho una base fatta da sole colonne del problema originario e posso partire con Fase 2 su esso.  Se ho ancora variabili

Se esistesse un algoritmo in tempo polinomiale per tutti i problemi NP- completi, allora tutti i problemi NP sarebbero risolvibili in tempo polinomiale.. Per dimostrare che