55
1 TECNICHE ALGORITMICHE PER PROBLEMI DI OTTIMIZZAZIONE - Tecniche golose (greedy). - Algoritmi sequenziali. - Ricerca locale. - Metodi basati su programmazione lineare. - Metodi basati su approccio primale-duale. - Programmazione dinamica. - Algoritmi randomizzati.

TECNICHE ALGORITMICHE PER PROBLEMI DI …ausiello/InfoTeoIIRM/ParteII-2.pdf · 5 ALGORITMO BISACCIA GREEDY Sia data un’istanza x costituita da n oggetti o 1, …, o n con pesi a

Embed Size (px)

Citation preview

1

TECNICHE ALGORITMICHE PER PROBLEMI DIOTTIMIZZAZIONE

- Tecniche golose (greedy).- Algoritmi sequenziali.- Ricerca locale.- Metodi basati su programmazione lineare.- Metodi basati su approccio primale-duale.- Programmazione dinamica.- Algoritmi randomizzati.

2

- Tecniche per PTAS(es. tecnica di completamento).

- Tecniche per FPTAS(es. scalatura).

- Tecniche euristiche senza garanzia di prestazione.o Simulated annealing.o Algoritmi genetici.o Tabu search.

3

ALGORITMI GREEDY

Nelle tecniche greedy (avide, golose) le scelte effettuate da un algoritmonella costruzione di una soluzione sono guidate dall’avidità, daldesiderio di accaparrarsi prima di tutto gli elementi che a prima vistaappaiono più convenienti, anche se alla lunga le scelte fatte possono nonessere ottimali.

4

Tecniche greedy sono particolarmente utilizzate nel caso di problemi diottimo ‘su insiemi’, cioè problemi P=<I, S, m, opt> in cui, dataun’istanxa x∈ I, una soluzione y è un sottoinsieme di x che soddisfa unadeterminata proprietà ed ha un determinato valore m(x,y).

Data un’istanza x={e1, …, en} ogni elemento ha un ‘valore’e lasoluzione viene costruita utilizzando prima gli elementi di maggiorvalore.

5

ALGORITMO BISACCIA GREEDYSia data un’istanza x costituita da n oggetti o1, …, on con pesi a1, …, an eprofitti p1, …, pn e una capacità b. Sia oMAX l’oggetto il cui profitto pMAXè massimo. In questo caso il ‘valore’ di un elemento è la sua densità:di=pi/ai.

L’algoritmo è il seguente:1. ordina gli oggetti per densità non crescente,2. inserisci gli oggetti nella bisaccia fino a che vi è capienza; sia s la

soluzione così ottenuta ed m=m(x,s) il suo valore,3. se m≥ pMAX scegli come soluzione ottima s altrimenti scegli s’={oMAX}.

6

L’algoritmo BISACCIA GREEDY fornisce una soluzione 2-approssimata.

DIMOSTRAZIONE. Siano k gli elementi inseriti e siano: w=Σi=1,k ai,m=Σi=1,k pi.

Abbiamo w+ak+1 > b e m*(x)<m+pk+1.

Sia M = max{m, pMAX}. Si presentano due casi:

i) pk+1 ≤ m → m* < 2m ≤ 2Mii) m < pk+1 ≤ pMAX → m* < 2pMAX ≤ 2M

QED

7

Nota bene. Se per il problema KNAPSACK ammettiamo soluzioni realianziché intere l’algoritmo precedente ci fornisce la soluzione ottima inmodo semplice. La bisaccia potrà essere riempita completamenteutilizzando (oltre agli oggetti o1, …, ok) una frazione f=(b-w)/ak+1dell’oggetto ok+1 e quindi il valore della soluzione ottima sarà m*=m+fpk+1.

8

Non sempre gli algoritmi greedy forniscono soluzioni approssimate confattore di approssimazione costante.

Consideriamo il seguente algoritmo greedy per il problema MINVERTEX COVER in cui si presume che il ‘valore’ di un nodo di ungrafo sia il suo grado, cioè il numero di archi che egli ricopre.

1. Scegli un nodo n di grado massimo,2. inserisci n nella soluzione,3. cancella il nodo n ed i relativi archi dal grafo,finché non ci sono più archi.

Tale algoritmo può portare ad un rapporto di approssimazionelogaritmico.

9

Si può facilmentecreare un esempio in cui la soluzione ottima consistedi n nodi mentre la soluzione greedy contienen + Σj=2,n n/j = nH(n) = O(n ln n) nodi.

10

Analogamente nel caso del problema MAX INDEPENDENT SET sipuò pensare che il ‘valore’ di un nodo sia tanto maggiore quanto minoreè il numero di nodi adiacenti che esso ha.

Consideriamo il seguente algoritmo greedy:

1. Scegli un nodo n di grado minimo,2. inserisci n nella soluzione,3. cancella il nodo n ed i relativi archi dal grafo,

finché non ci sono più archi.

11

L’algoritmo può dare un errore O(n) infatti si può mostrare un esempioin cui la soluzione fornita dall’algoritmo ha un valore mG tale che

m* ≤ (δ+1) mG

dove δ è il grado massimo di un nodo del grafo e può essere quindi n-1.

12

ALGORITMI SEQUENZIALI

Negli algoritmi sequenziali gli elementi dell’input vengono forniti inordine arbitrario ed una soluzione viene costruita via via senzaesaminare preliminarmente gli elementi che verranno fornitisuccessivamente.

Tecniche di questo tipo vengono utilizzate in problemi dipartizionamento in cui gli elementi vanno suddivisi in diversi insiemidisgiunti e la qualità della soluzione dipende dalla partizione realizzata.In particolare vengono utilizzati negli algoritmi on line, in cui l’inputviene rivelato via via e un algoritmo deve prendere decisioni solo sullabase della porzione di input vista fino a tale istante.

13

Esempi.Gestione di risorse nei sistemi di elaborazione:- sequenziamento di task su più processori (scheduling).- allocazione di memoria (paginazione, segmentazione).

Algoritmo sequenziale per problemi di sequenziamento di lavori.

Consideriamo il seguente problema (MIN MULTIPROCESSORSCHEDULING ON IDENTICAL MACHINES).

Un’istanza T del problema è costituita da n lavori t1, …, tn di durata p1,…, pn e p macchine M1,…, Mp. Si deve cercare un sequenziamento deilavori sulle macchine che minimizzi il tempo di completamento deilavori (makespan).

14

ALGORITMO DI GRAHAM

For i =1 to n:si assegni il lavoro ti alla macchina Mj per la quale risulta minimo ilvalore Σk=1,i-1 pjk dovepjk= pk se il lavoro tk è stato assegnato alla macchina j, 0 altrimenti.

Data un’istanza T, l’algoritmo di Graham fornisce una soluzione sG divalore:

mG (T, sG) = max Σk=1,n pjk ≤ (2 – 1/p) m*(T).

15

DIMOSTRAZIONE.

Sia W= Σk=1,n pk la durata totale di tutti i lavori e siano Mh la macchinache ha makespan mG e tL l’ultimo lavoro assegnato alla macchina Mh.Abbiamo:

m* ≥ W/p, m* ≥ pL, W ≥ p (mG-pL) + pL

e quindi

mG ≤ W/p + pL – pL/p ≤ (2 – 1/p)m* QED

16

Nota bene 1. La limitazione ottenuta è stretta.

Si consideri l’istanza costituita da p(p-1) lavori di lunghezza 1 ed unlavoro di lunghezza p. Per tale istanza la soluzione ottima ha valore pmentre l’algoritmo di Graham fornisce una soluzione di valore 2p-1.

17

Nota bene 2. Primo algoritmo ‘on line’. Un algoritmo ‘on line’ e’ unalgoritmo che serve una serie di richieste ma quando serve la richiesta(n-1)-esima ancora non conosce la richiesta n-esima.

Un migliore risultato si ottiene con l’algoritmo (off line) di tipo greedyLPT (Largest Processing Time) che ordina preventivamente i lavori:

mLPT ≤ (4/3 – 1/(3p))m*.

Per verificare che nel caso p=2 la limitazione è stretta si consideril’istanza T=(3,3,2,2,2).

18

Algoritmi sequenziali per il BIN PACKING.

Il problema MIN BIN PACKING consiste nel determinare il minimonumero di contenitori (bin) di capacità B che possono contenere noggetti dati di peso a1, …, an.

Vediamo ora un algoritmo 2-approssimato per il problema MIN BINPACKING.

ALGORITMO NEXT FITPer i=1, …, n ripeti:

sia Bh l’ultimo bin utilizzato; inserisci l’oggetto di peso ai nel bin Bhse esso lo può contenere, altrimenti usa un nuovo bin Bh+1.

L’algoritmo Next-Fit è 2-approssimato.

19

DIMOSTRAZIONE. Sia A=Σiai. Se consideriamo ogni coppia di binconsecutivi la somma dei pesi degli oggetti in essi contenuti è > B.D’altra parte m*≥A/B.Quindi r = mNF/m* < 2 (A/B) / (A/B) = 2. QED

Anche il seguente algoritmo sequenziale garantisce un rapporto ≤ 2.

ALGORITMO FIRST FITPer i=1, …, n ripeti:

inserisci l’oggetto di peso ai nel primo bin che lo può contenere

Chiaramente l’algoritmo First Fit ha prestazioni migliori, o almenouguali, a quelle dell’algoritmo Next Fit. Si può dimostrare chel’algoritmo First Fit genera soluzioni approssimate il cui valore è:mFF ≤ 1.7 m* + 2

20

Risultati migliori si possono ottenere con l’algoritmo greedy First FitDecreasing che prima ordina gli elementi in modo decrescente e poi licolloca con il metodo First Fit. Tale metodo produce soluzioni cheverificano:

mFFD ≤ 1.5 m* + 1

mFFD ≤ 11/9 m* + 4

21

ALGORITMO BEST FITPer i=1, …, n ripeti:

inserisci l’oggetto oi di peso ai nel bin che lo può contenere in modo‘migliore’, cioè, se d1, …, dh sono gli spazi disponibili nei vari binfinora utilizzati l’oggetto oi viene inserito in un bin Bk tale che dk − aisia minimo e positivo.

L’algoritmo Best Fit tende quindi a ridurre gli sfridi. Esso può darerisultati migliori o peggiori di First Fit a seconda delle istanze.

Applicazioni tipiche degli algoritmi on line First Fit, Next Fit, Best Fit sitrovano anche nella gestione della memoria di sistemi di elaborazione.

22

RICERCA LOCALE

La tecnica di ricerca locale è una tecnica di tipo molto generale. Perchéessa sia applicabile è necessario che, data un’istanza x di un problema diottimizzazione P, sull’insieme delle soluzioni di x sia definito unconcetto di neighborhood (vicinato) N(x,y). Lo schema generale di unalgoritmo di ricerca locale è il seguente:

23

SCHEMA DI RICERCA LOCALESia data un’istanza x di un problema di minimizzazione.

1. Determina una soluzione y0 dell’istanza x.2. i=03. Ripeti:

sia y∈ N(x,yi) una soluzione tale chem(x, y) < m(x, yi), allora yi+1 = y

finché raggiungi una soluzione yk (ottimo locale) tale che:∀y∈ N(x,yk) m(x, yk) ≤ m(x, y),

4. Restituisci yLS = yk.

24

Gli algoritmi di ricerca locale si differenziano sia per le modalità con cuiviene definito il vicinato, sia per le modalità di esplorazione del vicinatostesso alla ricerca di una soluzione migliore di quella corrente.

A volte la ricerca locale può avere costo esponenziale perché il vicinatoha taglia esponenziale o perché l’algoritmo effettua un numeroesponenziale di iterazioni. Noi siamo interessati ai casi in cui l’algoritmopuò operare in tempo polinomiale. In particolare ciò significa che ilvicinato di una soluzione si ottiene variando solo un numero limitato dielementi. Ad esempio, nel caso di MAX SAT se consideriamo che unasoluzione è costituita da un vettore di valori vero, falso, per contenere ilnumero di vicini possiamo decidere di includere nel vicinato solo ivettori ottenuti variando al più un numero prefissato k di valori di verità.

25

Consideriamo il problemaMAX CUT (TAGLIO MASSIMO).

Dato un grafo G=<V,E> con |V| = n, suddividere i nodi in due insiemi Ue V – U tali che l’insieme C={e=(i,j)| e∈ E, i∈ U, j∈ V – U} (taglio)abbia cardinalità massima.

Innanzitutto dobbiamo definire il concetto di vicinato per il problema.Data una soluzione costituita da una partizione U, V – U dei nodi di V,il suo vicinato è costituito da tutte le partizioni che si differenziano daquella data perché un nodo v1 viene spostato da U a V – U o, viceversa,un nodo v2 viene spostato da V – U ad U.

26

ALGORITMO LS MAX TAGLIO- Sia U0 un qualunque sottoinsieme (anche vuoto) di V.- Ripeti:

a. se spostando un nodo v1 da Ui a V-Ui la cardinalità del taglioaumenta allora Ui+1 = Ui – { v1},

b. se spostando un nodo v2 da V-Ui a Ui la cardinalità del taglioaumenta allora Ui+1=Ui+{v2},

c. se si verificano entrambe le possibilità scegli la migliore,finché raggiungi un ottimo locale U.

- Restituisci C={e=(i,j)| e∈ E, i∈ U, j∈ V – U}.

27

Dato un grafo G, l’algoritmo LS MAX TAGLIO fornisce una soluzioneC di misura mLS(G,C)≥m*(G)/2.

DIMOSTRAZIONE Siano:c = numero di archi nel taglio = mLS(G,C)i = numero di archi interni ad Uo = numero di archi interni a V-U.Inoltre, dato un nodo v, siano:i(v) = numero di archi tra v e nodi in Uo(v) = numero di archi tra v e nodi in V-U

Abbiamo |E| = m = c + i + o, quindii + o = m – c.

28

Poiché U è un ottimo locale abbiamo:

∀v∈U i(v) – o(v) ≤ 0 ∀v∈V – U o(v) – i(v) ≤ 0

e quindi

Σv∈U (i(v) – o(v)) = 2i – c ≤ 0Σv∈V-U (o(v) – i(v)) = 2o – c ≤ 0

Abbiamo quindi

2i + 2o – 2c ≤ 0m – 2c ≤ 0

c ≥ m/2 ≥ m*(G)/2 QED

29

Una interessante applicazione di tecniche di ricerca locale si ha nelproblema MIN TSP. In questo caso il vicinato di un ciclo Hamiltonianoè costituito da tutti i cicli che si ottengono da quello dato scambiando gliestremi di due archi (euristica 2-opt).

30

ALGORITMI BASATI SULLA PROGRAMMAZIONE LINEARE

Varie tecniche di risoluzione approssimate per problemi diottimizzazione NP-hard sono basate sulla programmazione lineare.Sia dato un problema di ottimizzazione con valori binari del seguentetipo (MIN PLB):

m*(I) = min ∑icixi

con le condizioni: Ax ≥ b e x∈{0, 1}n.

Consideriamo il suo rilassamento (LP):

mLP*(ILP) = min ∑icixi con le condizioni: Ax ≥ b e 0≤ x ≤1.

31

Ricordiamo anche che il rilassamento duale (D) è:

mD*(ID) = max ∑jbjyj

con le condizioni: ATy ≤ c e 0 ≤ y.

Ricordiamo anche che

mD*(ID) = mLP*(I) ≤ m*(I)

quindi una soluzione r-approssimata per il problema rilassato è ancheuna soluzione r-approssimata per il problema originario (se èammissibile).

32

APPROCCIO PRIMALE-DUALE

Costruire una soluzione primale ammissibile x ed una soluzione duale ytali che:

∑icixi ≤ r ∑jbjyj

Abbiamo allora:

m(I, x) ≤ r mD(ID, y) ≤ r mD*(ID) =r mLP*(ILP) ≤ r m*(I)

33

APPLICAZIONE AL VERTEX-COVER

Il problema duale del VERTEX COVER è il problema MAX EDGEPACKING: dato un grafo G=<V, E> con pesi sui nodi ci, i=1, …, |V| ilproblema consiste nell’assegnare ad ogni arco (i, j) un peso y(i, j) inmodo da massimizzare la somma dei pesi degli archiΣ(i,j)∈E y(i,j) con il vincolo che, per ogni nodo v, Σj∈V y(i,j) ≤ ci.

34

Quindi abbiamo che dal problema iniziale:

min ∑i∈Vcixi con i vincoli

xi + xj ≥ 1 ∀(i, j) ∈ E xi ∈ {0,1} ∀i ∈ V

passiamo al problema rilassato con i vincoli ∀i ∈ V xi ≥ 0

e al problema duale max ∑(i,j)∈Ey(i, j) con i vincoli

∑j∈V y(i, j) ≤ ci ∀i ∈ Vy(i, j) ≥ 0 ∀(i, j) ∈ E

35

ALGORITMO PRIMALE DUALE VERTEX COVERDefiniamo non saturo un arco (i, j) tale chey(i, j) < ci e y(i, j) < cj.

1. ∀(i, j) ∈ E y(i, j) = 02. S = Ø3. finché ci sono archi non saturi

ripeti:- scegli un arco (i,j),- aumenta y(i, j) fino a che il vincolo è soddisfatto rispetto a i o a j,- se y(i, j) = ci poni S = S ∪ {i} e cj = cj - y(i, j),- se y(i, j) = cj poni S = S ∪ {j} e ci = ci - y(i, j),

4. restituisci S.

36

L’algoritmo fornisce una soluzione 2 approssimata per il problema delVERTEX COVER.

DIMOSTRAZIONE

Sia I l’istanza del problema VERTEX COVER assegnata. La soluzioneS è una soluzione ammissibile poiché, per ogni arco in E, S contienealmeno uno dei nodi adiacenti.Inoltre:

∀i ∈ S ∑j∈V y(i, j) = ci e quindi

∑i∈S ci = ∑i∈S ∑j∈V y(i, j) ≤ 2 ∑(i,j)∈Ey(i, j) ≤ 2 m*(ID) ≤ 2 m*(I)

QED

37

ESEMPIO

Problema primale: min xA + xB + xCcon i vincolixA + xB ≥ 1xB + xC ≥ 1xC + xA ≥ 1

soluzione intera minima = 2; soluzione rilassata minima = 3/2

A

B

C

38

Problema duale: max yAB + yBC + yACcon i vincoliyAB + yBC ≤ 1yBC + yAC ≤ 1yAC + yAB ≤ 1soluzione duale massima = 3/2

39

APPROCCIO BASATO SU RILASSAMENTO EARROTONDAMENTO

Il secondo approccio consiste nei seguenti passi:• risolvere il problema rilassato e determinare una soluzione x LP*• arrotondare x LP* ad una soluzione intera• in modo deterministico (ad esempio rispetto ad una soglia t)

xi = 1 se (x LP *)i ≥ t, 0 altrimenti

• in modo randomizzato (con una data distribuzione di probabilità) xi = 1 con probabilità f((x LP*)i),

0 con probabilità 1 - f((x LP*)i)

e quindi ‘derandomizzare’.

40

APPLICAZIONE AL VERTEX COVER

ALGORITMO LP VERTEX COVERRisolviamo l’istanza del problema MIN VERTEX COVER rilassato:

min ∑i∈Vcixi con i vincoli

xi + xj ≥ 1 ∀(i, j) ∈ E0 ≤ xi ≤ 1 ∀i ∈ V

Sia x*LP la soluzione ottima rilassata.Scegliamo come soluzione intera l’insieme

U = {i | (x LP *)i ≥ 0.5} ⊆ V

41

L’algoritmo LP VERTEX COVER fornisce una soluzione 2-approssimata.

DIMOSTRAZIONELa soluzione è chiaramente ammissibile (altrimenti si avrebbe xi + xj <1).La soluzione ha misuram(G, U) ≤ 2 mLP(G, x LP*) ≤ 2 m*(G)QED

42

APPLICAZIONE AL MAX SAT

Consideriamo una istanza I di MAX SAT:Data una clausola Cj siano:Pj l’insieme delle variabili che compaiono affermate nella clausola Cj,Nj l’insieme delle variabili che compaiono negate nella clausola Cj,wj il peso della clausola.Formuliamo il problema come problema di PLB in cui le variabli zjcorrispondono alle clausole e le variabili yi corrispondono alle variabiliBooleane:

max Σj wj zj con i vincoli:

∀j Σi∈Ρj yi + Σi∈Νj (1 – yi) ≥ zj ∀j zj∈{0, 1} ; ∀i yi∈{0, 1}

43

Nella versione rilassata abbiamo i vincoli:∀j 0 ≤ zj ≤ 1 ; ∀i 0 ≤ yi ≤ 1

SCHEMA DI ALGORITMOARROTONDAMENTO RANDOMIZZATO MAX SAT

• Risolvere il problema rilassato ottenendo le soluzioni ottime yLP* ezLP*;

• per ogni i porre la variabileyi = V con probabilità f((yLP*)i)yi = F con probabilità 1 – f((yLP*)i).

44

Lo schema dà luogo a due diversi algoritmi approssimati in base allascelta della funzione f, dalla cui combinazione si ottiene un algoritmocon rapporto di approssimazione 4/3.

45

ALGORITMO 1Esegui lo schema di algoritmo con f((yLP*)i) = 1/2.

L’ALGORITMO 1 fornisce una soluzione randomizzata 2-approssimata.

DIMOSTRAZIONESe la clausola Cj ha k variabili abbiamo

pjk = Prob [Cj con k variabili è soddisfatta] = 1 – 1/2k

Per ogni j e ogni k, pjk ≥ 1/2.Sia W il peso totale delle clausole soddisfatte dall’algoritmo e sia E[W]il suo valore atteso.Sia W* il valore della soluzione ottima.

E[W] = Σj wj pjk ≥ 1/2 Σj wj ≥ 1/2 W*. QED

46

Per ottenere una soluzione 2-approssimata deterministica è possibile‘derandomizzare’ il procedimento con il metodo delle probabilitàcondizionate.

Si osservi che, supponendo di aver assegnato già i valori di verità allevariabili x1, x2, …, xn-1, abbiamo che

E[W | x1, x2, …, xn-1] =E[W | x1, x2, …, xn-1, xn=V] Prob {x1=V}+ E[W | x1, x2, …, xn-1, xn=F] Prob {x1=F}= 1/2 (E[W | x1, x2, …, xn-1, xn=V]+ E[W | x1, x2, …, xn-1, xn=F])≤ max {E[W | x1, x2, …, xn-1, xn=V],E[W | x1, x2, …, xn-1, xn=F]}

47

Poniamo oraxn = V se E[W | x1, x2, …, xn-1, xn=V] ≥E[W | x1, x2, …, xn-1, xn=F]}xn = F altrimenti

In altre parole scegliamo xn=V se la somma dei valori delle clausole incui compare xn è ≥ della somma dei pesi delle clausole in cui compare¬xn (si noti l’analogia con l’algoritmo GREEDY SAT).

Otteniamo così un’assegnazione completa di valori di verità allevariabilix1, x2, …, xn-1, xn con la seguente proprietà. Se W è il peso totale delleclausole soddisfatteW≥ E[W | x1, x2, …, xn-1].

48

Procedendo a ritroso possiamo fare la stessa scelta per quanto riguarda ilvalore di verità da assegnare a xn-1, xn-2, ecc.Una volta che a tutte le variabili è stato assegnato un valore abbiamoW≥E[W]≥1/2 W*

In questo modo otteniamo un algoritmo deterministico che haprestazioni almeno tanto buone quanto quelle dell’algoritmorandomizzato originario.

49

ALGORITMO 2Esegui lo schema di algoritmo con f((yLP*)i) = (yLP*)i.

L’ALGORITMO 2 fornisce una soluzione randomizzata tale cheE[W] ≥ (1-1/e) W*.

DIMOSTRAZIONESe la clausola Cj ha k variabili abbiamo

pjk = Prob [Cj con k variabili è soddisfatta] =1 – Πi∈Ρj (1- (yLP*)i) Πi∈Νj (yLP*)i ≥≥ αk (Σi∈Ρj (yLP*)i + Σi∈Νj (1 – (yLP*)i)) ≥ αk (zLP*)j ≥ αk (z*)j.

dove αk=1-(1-1/k)k ≥ 1-1/e.

Abbiamo quindi E[W] = Σj wj pjk ≥ (1 – 1/e)W*. QED

50

Anche l’algoritmo 2 può essere derandomizzato.I due algoritmi possono essere combinati:

ALGORITMO 3Data una istanza di MAX SAT:• risolvere il problema rilassato ottenendo le soluzioni ottime yLP* e

zLP*;• per ogni i porre la variabile

yi = V con probabilità 1/2yi = F con probabilità 1/2

• per ogni i porre la variabileyi = V con probabilità (yLP*)iyi = F con probabilità 1 – (yLP*)i

• scegliere la soluzione migliore.

51

L’algoritmo 1 è buono per clausole con molti letterali:pk = 1 – 1/2k per k=2 abbiamo pk = 3/4

L’algorimo 2 è buono per clausole con pochi letterali:pk = 1 – (1 - 1/k)k per k=2 abbiamo pk = 3/4

La combinazione dei due fornisce una soluzione W ≥ 3/4 W*.

52

UNA TECNICA AD HOC:IL PROBLEMA DEL COMMESSO VIAGGIATORE

Nel caso che valga la disuguaglianza triangolare (ΔTSP) il problema delcommesso viaggiatore ammette soluzione approssimata.

ALGORITMO DI CHRISTOFIDESSia dato un grafo completo G=(V, E) ed una matrice di distanze d percui vale la disuguaglianza triangolare. Sia m*(G) il costo del tourottimo.• Determinare un minimo spanning tree T;• determinare un matching di costo minimo H tra tutti i nodi di grado

dispari di T;• creare un multigrafo M costituito da T∪H;• determinare un cammino Euleriano w su M;

53

• determinare un tour τ immerso in w.

54

L’algoritmo di Christofides fornisce un cammino τ tale che m(τ) ≤ 3/2m*(G)

DIMOSTRAZIONEInnanzitutto osserviamo che un cammino Hamiltoniano è anch’esso unospanning tree cui viene aggiunto un arco di ritorno. Quindi m(T) ≤m*(G).

In secondo luogo osserviamo che se τ è un tour, scegliendo tutti i suoiarchi pari o tutti i suoi archi dispari abbiamo in ogni caso un matching.Possiamo quindi vedere un tour come la combinazione di duematchings. Se H è un matching minimo abbiamo quindi m(H) ≤ 1/2m*(G).

55

Se w è un cammino Euleriano su T∪H, in base alla disuguaglianzatriangolare abbiamo:m(t) ≤ m(w) ≤ m(T) + m(H) ≤ 3/2 m*(G).

Si noti che l’algoritmo ha costo polinomiale perché il problema dideterminare un minimo matching massimale è in genere NP-hard ma èrisolubile in tempo polinomiale se il grafo soddisfa la disuguaglianzatriangolare. Si noti anche che il valore 3/2 è stretto poiché esistono grafiin cui l’algoritmo non può dare un rapporto migliore.

QED