22
Corso di Ricerca Operativa 2 Docente: Paolo Ventura Anno Accademico 2005/2006

Corso di Ricerca Operativa 2 · corso di Ricerca Operativa 2. Per una trattazione piú approfondita di questi argomenti, si vedano, tra gli altri, Nemhauser & Wolsey (1988) e Grötschel,

Embed Size (px)

Citation preview

Corso di Ricerca Operativa 2

Docente: Paolo Ventura

Anno Accademico 2005/2006

1

Nozioni preliminari

Introduciamo nella seguente sezione alcune definizioni e risultati preliminari di alge-

bra lineare, geometria ed ottimizzazione che risulterannoindispensabili nel seguito delcorso di Ricerca Operativa 2. Per una trattazione piú approfondita di questi argomenti, sivedano, tra gli altri, Nemhauser & Wolsey (1988) e Grötschel, Lovász & Schrijver (1988).

1.1 Poliedri e politopi

Dato un insiemeSdi m vettori xi ∈ Rn, unacombinazione lineare(o combinazione) di S

é definita da∑mi=1αi xi per ogniα ∈ Rm. Una combinazione si dicepositivaseα ≥ 0 e

affinese∑mi=1αi = 1. Una combinazione che sia contemporaneamente lineare ed affine è

dettacombinazione convessa. L’ involucro convesso(o convex hull) di un insieme di punti

S⊂ Rn (conv (S)) è línsieme di tutti i punti che sono combinazione convessa di S. (vediFigura 1.1).

••

S

••

conv(S)

Figure 1.1:conv(S) è l’ insieme dei punti che sono combinazione convessa dei punti di S.

2 § 1. NOZIONI PRELIMINARI

Un insieme di vettorix1, . . . ,xm ∈ Rn è dettolinearmente indipendentese l’ unicasoluzione del sistema∑m

i=1αi xi = 0 è αi = 0 per ognii = 1, . . . ,m. Il rango di unamatriceA∈ Rm×n (rank(A)) è il massimo numero di righe diA linearmente indipendenti.

Un insieme di puntix1, . . . ,xm∈Rn è dettoaffinemente independentese l’ unica soluzionedel sistema∑m

i=1 αi xi = 0, ∑mi=1αi = 0 è αi = 0 per ognii = 1, . . . ,m. Si osservi che

nello spazioRn, il numero massimo di vettori linearmente ed affinemente indipendenti è,rispettivamente,n en+1.

Un poliedro P⊆ Rn è l’ insieme di tutti i punti che soddisfano un numero finito didisequazioni lineari: cioé,P= {x∈Rn|Ax≤ b}, doveA∈Rm×n eb∈Rm. U poliedroP è

dettorazionalese esistonoAeb con coefficienti razionali tali cheP = {x ∈ Rn| A ≤ b}.Un puntox è unpunto estremo(o vertice) del poliedroP sex ∈ P e x non può essere

espresso come combinazione convessa di punti diP\ {x}. Un poliedroP viene dettointero se tutti i suoi vertici sono interi. Un insiemeP⊆ Rn è limitato se esiste un vettore

w∈ Rn tale cheP⊆ {x∈ Rn| −w≤ x ≤ w}. Un poliedro limitato è dettopolitopo. UninsiemeT ⊆ Rn èconvessosex,y∈ T implicaθx+(1−θ)y∈ T per ogni 0≤ θ ≤ 1.

Proposizione 1.1.Un poliedro P⊆ Rn è un insieme convesso.

Un insiemeC⊆ Rn è unconosex∈C implica cheθx∈C, conθ ∈ R+.

Proposizione 1.2.Il poliedro P= {x∈ Rn|Ax≤ 0} è un cono.

Sek è il massimo numero di punti affinemente indipendenti di un poliedroP, allora ladimensionedi P (dim(P)) èk−1. Un poliedroP⊆ Rn è full dimensionalsedim(P) = n.

1.2 Problemi di ottimizzazione

Definiamoproblema di ottimizzazionequello di trovare il minimo valore di una funzione

lineare tra i punti di un poliedro.

PROBLEMA DI OTTIMIZZAZIONE (OPT)Dato un poliedroP ed un vettorec ∈ Qn, si trovi un puntox∗ ∈Pche minimizzicTxo si provi che tale punto non esiste.

Il vettorec è lafunzione obiettivodel problema. Vale allora il seguente

Teorema 1.3.Se esiste un punto x∗ che minimizza cTx sul poliedro P, allora esiste un

punto y∗ tale cTy∗ = cTx∗ e y∗ è un vertice di P.

§ 1.3 IL METODO DEI PIANI DI TAGLIO 3

Se il poliedroP è esplicitamente descritto da un fissato sistema di disequazioni, ilproblema di ottimizzazione è dettoproblema di ottimizzazione lineare

Definiamo, invece,problema di ottimizzazione interail seguente: Dato un poliedrorazionalePL ⊆ Rn ed una funzione obiettivoc∈ Qn, si trovi un puntox∗ ∈ S= PL ∩Zn

che minimizzicTx suS, o si provi che tale punto non esiste.

Poiché vale il Teorema 1.3, il problema di ottimizzazione intera definito su un insiemedi puntiS= PL∩Zn è equivalente al problema di ottimizzazione sul poliedroPI = conv(S).Rispetto ai problemi di ottimizzazione lineare, si noti che, in questo caso, il poliedroPI

non è definito esplicitamente a priori da un dato sistema di disequazioni lineari.

Ogni poliedroPL tale PI = conv(PL ∩Zn) è dettorilassamento linearedi PI (vediFigura 1.2).

PL PI

Figure 1.2: In figura osserviamo un poliedro interoPI ed un suo rilassamento linearePL.

Si osservi che, sePL è un rilassamento lineare diPI , alloraPI ⊆ PL e, di conseguenza,

(min ctx, conx∈ PL) ≤ (min cTx, conx∈ PI ).

Un problema di ottimizzazione mista è definito come segue.

Dato un poliedro razionalePL, un numero interop tale che 0< p ≤ n, ed un vettore

c∈ Rn, si trovi un puntox∗ che minimizzicTx suSM = (PL∩ (Zp×Rn−p)) o si provi chetale punto non esiste.

1.3 Il metodo dei piani di taglio

Il metodo deipiani di taglio (o cutting planes) descritto nel seguito rappresenta una pro-cedura molto usata per risolvere problemi di Programmazione Lineare Intera. Per prima

cosa definiamo il problema della separazione (vedi Fig. 1.3)

4 § 1. NOZIONI PRELIMINARI

PROBLEMA DELLA SEPARAZIONE (SEP)

Dato un poliedroP ⊆ Rn ed un puntox∗ ∈ Rn, si trovi unadisequazioneαT x ≥ β valida perP e violata dax∗, o si di-

mostri che tale disequazione non esiste (cioè chex∗ ∈ P).

P

•x∗

Figure 1.3: Il problema della separazione

Teorema 1.4. Il problema dell’ ottimizzazione e quello della separazione sono polino-

mialmente equivalenti. In altre parole, dato un certo polidro P ⊆ Rn, se esiste un al-

goritmo che risolve il problema dell’ ottimizzazione di unaqualsiasi funzione obiettivo

lineare cTx,c ∈ Rn su P, allora esiste un algoritmo che in tempo polinomiale risolve il

problema della separazione definito da P e da un qualsiasi punto x∗ ∈ Rn. (Grötschel,

Lovász & Schrijver (1981), Padberg & Rao (1981), and Karp & Papadimitriou (1980)).

Il metodo dei piani di taglio è strettamente legato al concetto di separazione. Data

una disequazioneαTx≥ β valida per il poliedroP e violata dax∗, diciamo che l’ insieme{x∈ Rn |αTx = β} definisce unpiano di taglio(o cutting plane) che separaP dax∗.

Consideriamo ora un problema di ottimizzazioe lineare intera definito sul poliedroPI = conv(PL ∩ Zn). Si abbia a disposizione una descrizione esplicita del poliedroPL

data da una matriceA∈ Zm×n e da un vettoreb∈ Zm tale chePL = {x∈ Rn|Ax≤ b}, eduna descrizione soltanto implicita diPI , data da un algoritmo polinomiale che risolve il

problema della separazione associato aPI .

Data una certa funzione obiettivo lineare definita dal vettorec∈Zn, si voglia risolvereil problema di ottimizzazione definitoPI e c. Il metodo dei piani di taglio consiste in una

procedura iterativa definita come segue (vedi Figura 1.4): ad ogni iterazionei, viene

§ 1.4 I PIANI DI TAGLIO DI CHVÁTAL -GOMORY 5

risolto il problema di ottimizzazione lineare sul poliedroPiL ⊇ PI (in partenza,P0

L = PL);siax∗i la soluzione ottima associata. Quindi, si risolve il problema della separazione traPI

ex∗i . Sex∗i /∈ PI , si aggiunge al sistema che definiscePiL la disequazioneαT x≤ β generata

dall’ algoritmo di separazione e si inizia una nuova iterazione; altrmineti, sex ∈ PI , x∗irappresenta la soluzione ottima del problema di programmazione lineare intera definito

daPI ec e l’ algoritmo si arresta.

i = 0, PiL = PL

Trovax∗i s.t. cT x∗i = max{cT x|x∈ PiL}

Risolvi SEPconPI ex∗ Stop

i = i +1, PiL = Pi−1

L ∩{x∈ Rn |αT x≥ β}

x∗ ∈ PI

x∗ /∈ PI

Figure 1.4: The metodo dei piani di taglio

1.4 I piani di taglio di Chvátal-Gomory

I cosiddettipiani di taglio di Chvátal-Gomory(oChvátal - Gomory cuts) sono diseguaglianzevalide per generici problemi di programmazione lineare intera. Dato un poliedroPL =

{x∈ Rn|Ax≤ b}, conA∈ Zm×n e b ∈ Zm, Gomory (1958) e, successivamente, Chvátal(1973) hanno proposto due metodi distinti per definire la stessa classe disequazioni valide

perPI = conv(PL∩Zn).

Più precisamente, un piano di taglio di Chvátal-Gomory è unadisequazione del tipouTAx≤ buTbc, conu∈ Rm

+ euTA∈ Zm.

Possiamo allora definire lachiusura prima di Gomory, P(1)L , come l’ intersezione

di PL con tutti i suoi di Chvátal-Gomory cuts. In altre parole,P(1)L = {x ∈ Rn|uTAx≤

6 § 1. NOZIONI PRELIMINARI

buTbc,∀u∈ Rm+,uTA∈ Zn.

Valgono allora i seguenti:

Teorema 1.5.((Gomory 1958)) P(1)L è un poliedro.

Teorema 1.6. ((Eisenbrand 1999)) Dato PL, il problema della separazione associato a

P(1)L è NP-hard.

Possiamo quindi definire, in maniera iterativa, la chiusuradi Gomory di rangok comeil poliedroP(k)

L = (P(k−1)L )(1).

Gomory ha dimostrato il seguente

Teorema 1.7.Dato PL, esiste un numero finito t tale che P(t)L = PI .

2

Formulazioni di problemi di OttimizzazioneIntera

In questo capitolo verranno forniti degli esempi di formulazioni di problemi noti di ot-timizzazione intera.

2.1 Knapsack

Il problema del knapsack (o dello zaino) è definito come segue. Si abbiano a disposizioneuno zaino di capienza fissataW edn oggetti; ciascun oggettoi è caratterizzato da un vol-

umewi e da una utilitàui . Il problema è quello di scegliere quali oggetti (ed in quantecopie) mettere nello zaino in maniera tale che l’utilità totale degli oggetti scelti sia mas-simizzata ed il loro volume non ecceda la capienza dello zaino.

La formulazione del problema come problema di ottimizzazione intera prevede l’uso

delle variabilix ∈ Zn che hanno la seguente interpretazione: siaxi il numero di copiedell’oggettoi che si intende introdurre nello zaino. La formulazione segue:

minn

∑i=1

uixi = min uTx (2.1)

tale che:

n

∑i=1

wixi ≤ W (2.2)

xi ≥ 0, ∀i = 1, . . . ,n (2.3)

x ∈ Zn (2.4)

Gli n+ 1 vincoli lineari (2.2) e (2.3) definiscono il poliedroPL, rilassamento lineare

del poliedro intero del knapsack.

8 § 2. FORMULAZIONI DI PROBLEMI DI OTTIMIZZAZIONE INTERA

2.1.1 Knapsack binario

Il knapsack binario è una variazione del problema di knapsack definito come sopra,in cui esiste una sola copia di ciascun oggetto. Alla formulazione (2.1),. . . ,(2.4) vanno

quindi aggiunti i vincoli lineari:

xi ≤ 1, ∀i = 1, . . . ,n (2.5)

2.2 Assegnamento

Si considerino un insiemeP di n lavoratori ed un insiemeL di m lavori da eseguire.

Per ciascun lavoratorei esiste un insiemeLi ⊆ L che rappresenta i lavori che, per le suecompetenze, possono essere svolti dai. Inoltre, ogni lavoratorei può svolgere, al piùsi

lavori e ciascun lavoroj necessita, per essere completato, della manodopera di almenod j

lavoratori. Infine, siaci j il costo da pagare perchèi svolga il lavoroj. Il problema consistenell’assegnare persone a lavori, in maniera tale che tutti ilavori siano terminati, vengano

soddisfatti i vincoli di impiego massimo per ciascun lavoratore e sia minimizzato il costototale di assegnamento.

Per formulare il problema, introduciamo una variabilexi j per ogni coppia lavoratore

i - lavoro j ∈ Li . Tale variabile assume valore 1 sei viene assegnato a svolgerej, e 0altrimenti. La formulazione del problema è quindi la seguente:

minn

∑i=1

∑j∈Li

ci j xi j = min cTx (2.6)

tale che:

∑j∈Li

xi j ≤ si ∀i = 1, . . . ,n (2.7)

∑i| j∈Li

xi j ≥ d j ∀ j = 1, . . . ,m (2.8)

xi j ≥ 0, ∀ j ∈ Li , ∀i = 1, . . . ,n, (2.9)

xi j ≤ 1, ∀ j ∈ Li , ∀i = 1, . . . ,n, (2.10)

x ∈ Zp, (2.11)

dove il numero totale delle variabili èp = ∑ni=1 |Li |. Il numero totale dei vincoli lineari

(2.7),. . . ,(2.10) è, invece, n + m + 2p.

Esercizio 2.1.Si consideri il poliedro PL definito dai vincoli lineari (2.7),. . . ,(2.10) e si

scriva, in maniera esplicita, la matrice A tale che PL = {x∈ Rp|Ax≤ b} nel caso in cui

siano n= 4, m= 5 e Li = L,∀i = 1, ..,4.

§ 2.3 LOCALIZZAZIONE DI IMPIANTI 9

2.3 Localizzazione di impianti

Si considerinon clienti disposti sul territorio edm siti che possono ospitare un impiantodi produzione. Ciascun clientei richiededi unità di beni prodotti; l’impianto aperto nel

sito j ha una capacità produttiva massima dip j unità. Inoltre, siaci j i costo necessarioper trasportare una unità di prodotto dal sitoj al clientei, e siaw j il costo di apertura diun impianto nel sitoj. Il problema consiste nel decidere in quali siti aprire un impianto di

produzione, minimizzando il costo di totale relativo al trasporto dei prodotti dagli impiantiai clienti e quello di apertura degli impianti.

In questo caso, per formulare il problema, abbiamo bisogno di due insiemi di variabili:

y ∈ {0,1}m tale chey j è pari a 1 se viene aperto un impianto nel sitoj, e 0 altrimenti;x∈ Znm

+ tale chexi j rappresenta il numero di unità prodotte inj e consegnate al clientei.La funzione obiettivo è quindi la seguente:

minn

∑i=1

m

∑j=1

ci j xi j +m

∑j=1

w jy j . (2.12)

L’insieme dei vincoli è , invece:

m

∑j=1

xi j = di ∀i = 1, . . . ,n (2.13)

n

∑i=1

xi j − p jy j ≤ 0 ∀ j = 1, . . . ,m (2.14)

xi j ≥ 0, ∀i = 1, . . . ,n, ∀ j = 1, . . . ,m (2.15)

xi j ≤ 1, ∀i = 1, . . . ,n, ∀ j = 1, . . . ,m (2.16)

y j ≥ 0, ∀ j = 1, . . . ,m (2.17)

y j ≤ 1, ∀ j = 1, . . . ,m (2.18)

x ∈ Znm (2.19)

y ∈ Zm. (2.20)

I vincoli (2.13) garantiscono che la domanda di tutti i clienti sia soddisfatta. Poiché

∑ni=1xi j è il numero totale di unità prodotte nell’impiantoj, i vincoli (2.14) garantiscono

sia che tale quantità non ecceda la capacità produttiva dell’impianto, e sia il fatto che si

produca in un impianto solo se questo è stato aperto.

10 § 2. FORMULAZIONI DI PROBLEMI DI OTTIMIZZAZIONE INTERA

2.4 Scheduling

Sia dato un progetto complesso che può essere scomposto in uninsiemeV di n attivitàelementari; ciascuna attivitài è associata ad un tempo di processamentopi . Inoltre, è dato

un grafo direttoD = (V,A) che rappresenta le precedenze prefissate tra coppie di attività.In altri termini, se esiste l’arco diretto(i, j) ∈ A, l’attività j non può essere iniziata primaprima che lai sia terminata. Tali precedenze sono definite dalla natura del processo che si

sta esaminando e sono date, appunto, come dati di ingresso del problema. Si osservi che,per essere congruente, il grafoD non può contenere cicli orientati. L’intero progetto può

considerarsi terminato quando tutte le attività che lo definiscono sono state completate. Ilproblema consiste nel trovare un ordine temporale con il quale processare tutte le attivitrà

in maniera tale che in tempo di completamento dell’intero progetto sia minimizzato.

Introduciamo dapprima delle variabilit ∈ Zn+: ti rappresenta l’istante in cui l’attivitài

viene iniziata (di conseguenza,ti + pi è l’istante in cuii viene completata). Per soddisfarele precedenze preassegnate, dobbiamo quindi introdurre i vincoli

t j ≥ ti + pi , ∀(i, j) ∈ A. (2.21)

Occorre, inoltre, considerare che, poiché l’esecutore è unico, non è possibile processare

due o più attività in parallelo. Per ogni coppiai e j di attività tra le quali non è stata pre-assegnata una precedenza, è quindi necessario decidere quale processare prima e qualedopo. A tal fine introduciamo una variabile binariazi j per ogni coppia(i, j) (per conven-

zione siai < j) tale che(i, j),( j, i) /∈ A; zi j = 1 sei precedej e 0 viceversa.

I vincoli associati sono quindi

t j ≥ ti + pi −M(1−zi j ), ∀i, j ∈V, i < j,(i, j) /∈ A,( j, i) /∈ A, (2.22)

ti ≥ t j + p j −Mzi j , ∀i, j ∈V, i < j,(i, j) /∈ A,( j, i) /∈ A, (2.23)

doveM è un parametro sufficientemente grande a garantire che, sezi j = 0 (zi j = 1) ivincoli (2.22) [(2.23)] siano sempre soddisfatti. Devono, inoltre valere i seguenti:

ti ≥ 0, ∀i ∈V (2.24)

zi j ≥ 0, ∀i, j ∈V, i < j,(i, j) /∈ A,( j, i) /∈ A, (2.25)

zi j ≤ 1, ∀i, j ∈V, i < j,(i, j) /∈ A,( j, i) /∈ A, (2.26)

ti ∈ Z, ∀i ∈V (2.27)

zi j ∈ Z, ∀i, j ∈V, i < j,(i, j) /∈ A,( j, i) /∈ A. (2.28)

(2.29)

§ 2.4 SCHEDULING 11

Si osservi che la definizione della variabilezi j ha permesso di rappresentare con vin-coli lineari e di interezza la disgiunzione legata al dover processare l’attivitài prima odopo di quellaj.

Inoltre, è possibile prevedere che, in un problema di scheduling, possano essere def-

inite in ingresso ulteriori condizioni legate alla natura del processo in esame. Tali con-dizioni, spesso, possono essere rappresentate da vincoli del tipo

ti ≥ t j + p j +ki j , (2.30)

per indicare che l’attivitài deve essere svolta dopo almenoki j unità di tempo dal comple-

tamento dellaj, oppure del tipo

ti ≤ t j + p j +si j , (2.31)

per forzare l’attivitài ad essere iniziata non oltre il temposi j dalla fine dell’attivitàj.

Infine, per quanto riguarda la funzione obiettivo, si osservi che il tempo di completa-mento dell’intero progetto è pari all’istante di tempo in cui viene terminata l’attività ese-

guita per ultima. Poichè tale attività non è nota in partenza, occorre introdurre un’attivitàfittizia δ. Tale attività ha tempo di processamentopδ = 0 e deve essere eseguita dopo tuttele altre:

tδ ≥ ti + pi , ∀i ∈V. (2.32)

In tal modo, la funzione obiettivo risulta:

min tδ (2.33)

3

Ottimizzazione combinatoria

3.1 Definizione

Sia dato un insiemeE = {a1, . . . ,an} di oggetti e siaF una famiglia di sottoinsiemi di

E, cioèF ⊆ {F|F ⊆ E}; ad ogni elementoai ∈ E è inoltre associato un costoci . Unproblema di ottimizzazione combinatoria è allora definito come segue:

min c(F) = min∑e∈F ce

tale cheF ∈ F .

Un problema di ottimizzazione combinatoria può sempre essere formulato come prob-lema di ottimizzazione intera. Infatti, per ogniF ⊆ E, siaxF ∈ {0,1}n il vettore carat-

teristico di F, tale chexFe = 1 see∈ F e 0 altrimenti; sia quindi il poliedroPL = {x ∈

Rn|Ax≤ b} un rilassamento lineareperF sePL ∩Zn = {xF |F ∈ F }. A questo punto,

un problema di ottimizzazione intera equivalente a quello di ottimizzazione combinatoriasopra definito è il seguente

minn

∑i=1

cixi , tale cheAx≤ b,x∈ Zn. (3.1)

Esempio 3.1.Dato un insieme di base E= {a1,a2,a3}, sia PL un rilassamento lineare

per la famigliaF = {F ⊆ E|a1 ∈ F ⇒ (a2 /∈ F),a3 ∈ F}. Poichè i vettori carattestici

di insiemi della famigliaF sono v1 = [1,0,1], v2 = [0,0,1] e v3 = [0,1,1], PL può essere

definito come il politopo descritto dai vincoli

x1+x2 ≤ 1 (3.2)

x3 = 1 (3.3)

xi ≥ 0, ∀i = 1, . . . ,3 (3.4)

xi ≤ 1, ∀i = 1, . . . ,3. (3.5)

Si osservi infatti che PL ∩Z3 = {v1,v2,v3}.

14 § 3. OTTIMIZZAZIONE COMBINATORIA

3.2 Set covering, packing, partitioning

Si consideri un insieme di baseE ed una famiglia di sottoinsiemiR ⊆ {R⊆ E}. Unproblema diset coveringè definito da una famiglia di insiemi ammissibili

F = {F ⊆ E tale che|F ∩R| ≥ 1, ∀R∈ R }.Un problema diset packingè associato ad

F = {F ⊆ E tale che|F ∩R| ≤ 1, ∀R∈ R },

ed, infine, per un problema di setset partitioningvaleF = {F ⊆ E tale che|F ∩R| = 1, ∀R∈ R }.

Una soluzione ammissibile di set covering (packing /partitioning) è quindi definita da

un sottoinsiemeF ⊆E tale che ciascun insiemeR∈ R abbiaalmeno(al più / esattamente)un elemento in comune conF .

Un rilassamento linare per il problema del set covering è, quindi, definito dai seguentivincoli lineari

Axi ≥ 1 (3.6)

xi ≥ 0, ∀i = 1, . . . , |E| (3.7)

xi ≤ 1, ∀i = 1, . . . , |E| (3.8)

in cui la matriceA∈ {0,1}|R |×|E| ha per righe i vettori di incidenza degli elementi diR .

Un rilassamento lineare per il problema del set packing (partitioning) può essere alloradefinito dai vincoli (3.6),. . . ,(3.8) in cui viene sostituito, in (3.6), il simbolo ’≥’ con ’≤’

(risp. ’=’). Si noti che, per generici problemi di set packing e set partitioning e perproblemi di set covering con funzione obiettivo a coefficienti non negativi, i vincoli (3.8)

possono essere omessi.

Si osservi inoltre che, comunque sia dato un sistema di vincoli del tipo (3.6),(3.8),

sarà sempre possibile interpretare l’insieme delle sue soluzioni come un rilassamento lin-eare di un problema di set covering (packing / partitioning).

3.3 Il problema del commesso viaggiatore

Un ciclo hamiltonianodi un grafo non orientatoG = (V,E) è un ciclo che passa esatta-mente una volta per tutti i nodi diG (vedi Fig. 3.1). Data una funzione di costoc sugli

archi del grafo, diremo che il costo di un circuito hamiltoniano è pari alla somma deicosti degli archi che lo definiscono. Dato un grafoG = (V,E) ed un vettorec ∈ R|E|,

il problema delcommesso viaggiatore(o Traveling Salesman Problem (TSP)) consiste

§ 3.3 IL PROBLEMA DEL COMMESSO VIAGGIATORE 15

nel trovare il ciclo hamiltoniano diG di costo minimo. In termini di ottimizzazionecombinatoria, in questo caso l’insieme di base è definito dagli archi E del grafo, men-treF = {F ⊆ E tale cheFè un ciclo hamiltoniano diG}.

Figure 3.1: Gli archi in neretto definiscono un ciclo hamiltoniano del grafoG. Si osservi

che, essendo il grafo completo, ogni ordinamento dei nodi del grafo può essere associatoad un ciclo hamiltoniano.

Il problema del commesso viaggiatore è tra i problemi "difficili" più noti e studiati inletteratura (vedi, ad esempio, (Jünger, Reinelt & Rinaldi 1995)). Una sua formulazione in

termini di programmazione intera è la seguente

min ∑e∈E

cexe (3.9)

tale che:

∑e∈δ(u)

xe = 2, ∀u∈V (3.10)

∑e∈δ(U)

xe ≥ 2, ∀U ⊂V,U 6= /0 (3.11)

xe ≥ 0, ∀e∈ E (3.12)

xe ≤ 1, ∀e∈ E (3.13)

x ∈ Z|E| (3.14)

I vincoli (3.10) sono dettidegree constraintse, imponendo che vi siano esattamente due

archi della soluzione incidenti in ogni nodo del grafo, definiscono la struttura ciclica diogni soluzione ammissibile.

I vincoli (3.11) sono invece chiamatisubtour elimination constraintse sono neces-

sari affinché una soluzione ammissibile non contenga sottocicli. Si osservi che il numero

16 § 3. OTTIMIZZAZIONE COMBINATORIA

di tali disequazioni, essendo pari al numero di sottoinsiemi di nodi del grafo, cresce inmaniera esponenziale rispetto alla cardinalità diV. Si noti, infine, che le subtour elimina-tion constraint possono essere scritte equivalentemente nella forma

∑e∈E(U)

xe ≤|U |

2, ∀U ⊂V,U 6= /0. (3.15)

Il poliedro PL definito dalle disequazioni (3.10),. . . ,(3.13) è dettopoliedro delle sub-

tour (o subtour polytope).

SiaPI = conv(PL ∩Z|E|) l’involucro convesso dei vettori caratteristici dei ciclihamil-toniani del grafoG; come osservato nei precedenti capitoli,PI ⊆ PI . Per un generico

problema di TSP vale, in particolare,PI ⊂ PL; i vincoli (3.10),. . . ,(3.13), cioè, non sonosufficienti a descrivere l’involucro convesso delle soluzioni intere associate ai cicli hamil-

toniani di un qualsiasi grafoG. Siano, infatti, dati un grafoG = (V,E) ed un puntox∗ ∈ R|E| come quelli in Figura 3.2. E’ facile osservare chex∗ appartiene al subtour poly-

tope diG, poichè soddisfa tutte le disequazioni che definiscono talepoliedro. E’ lasciatocome esercizio allo studente dimostrare chex∗ non può altresì essere espresso come com-binazione convessa dei vettori caratteristici dei cicli hamiltoniani di G. Quindi, poiché

x∗ ∈ PL ex∗ /∈ PI , vale la tesiPI ⊂ PL.

Figure 3.2: Sul grafoG, gli archi tratteggiati rappresentano componenti dix∗ di valore 12

mentre quelli in neretto rappresentano componenti pari a 1.

3.4 Il problema del massimo matching

Dato un grafo non orientatoG = (V,E), un matchingdi G è un sottoinsiemeM ⊆ E di

archi tale che ogni nodov ∈ V sia estremo, al più, di un arco diM (vedi Fig. 3.3). Se

§ 3.4 IL PROBLEMA DEL MASSIMO MATCHING 17

si considera un vettore di peso sugli archic ∈ R|E|, il problema delmatching di peso

massimo(o massimo matching) è quello di trovare, fra tutti i matching diG, quello chemassimizzi la somma dei pesi degli archi che lo definiscono. Sec = {1}|E|, il problema è

quello delmatching di massima cardinalità. In forma di ottimizzazione combinatoria, ilproblema del massimo matching può essere definito come un problema di set packing in

cui l’insieme di base è definito dagli archiE del grafo eR = {R⊆ E|R= δ(v),∀v∈V}.

Figure 3.3: Sul grafoG, gli archi in neretto definiscono un matching.

Una formulazione in termini di programmazione intera del problema del massimo

matching è, invece, la seguente:

min ∑e∈E

cexe (3.16)

tale che:

∑e∈δ(u)

xe ≤ 1, ∀u∈V (3.17)

xe ≥ 0, ∀e∈ E (3.18)

xe ∈ Z, ∀e∈ E (3.19)

Come osservato nel precedente paragrafo per un generico problema di set packing, anche

in questo caso le disequazionixe ≤ 1,∀e∈ E sono ridondanti. Inoltre, i vincoli (3.17)possono essere scritti nella forma

Hx ≤ 1, (3.20)

doveH è la matrice di incidenza nodi-archi del grafoG.

18 § 3. OTTIMIZZAZIONE COMBINATORIA

Si definiscono disequazioniodd cutle disuguaglianze

∑xe∈δ(U)

xe ≤ b|U |

2c, ∀U ⊆V, |U | dispari (3.21)

Si osservi che in numero di tali disequazioni cresce in maniera esponenziale con il nu-

mero dei nodi del grafo e che esse vengono soddisfatte da tutti i vettori caratteristici deimatching diG. Vale inoltre il seguente fondamentale risultato

Teorema 3.2.L ’involucro convesso dei vettori caratteristici dei matching di un grafo

G = (V,E) è il poliedro definito dalle disequazioni lineari (3.17), (3.18) e (3.21).

3.4.1 Node cover

Dato un grafoG = (V,E) un node coverdi G è definito da un sottoinsiemeU di

nodi del grafo tale che ciascun arcoe∈ E ha almeno un nodo diU come estremo. DatoG = (V,E), un node cover diG è quindi un set covering in cui l’insieme di base è definito

daV e R = {R= {u,v}|{u,v} ∈ E}. Siac∈ Z|V| un vettore di pesi associati ai nodi diG; il problema del node cover di peso massimo può essere alloraformulato, in termini di

ottimizzazione intera come

min ∑u∈V

cuyu (3.22)

tale che:

HTy ≥ 1, (3.23)

yu ≥ 0, ∀u∈V (3.24)

yu ≤ 0, ∀u∈V (3.25)

yu ∈ Z, ∀u∈V (3.26)

Anche in questo caso, secu ≥ 0,∀u∈V, i vincoli yu ≤ 1 possono essere omessi dallaformulazione.

Tra il problema del matching di cardinalità massima ed quello del node cover di car-

dinalità minima esiste allora la sequenza di relazioni:

min 1Tx min 1Tx max 1Ty max 1Ty

Hx ≤ 1 ≤ Hx ≤ 1 = HTy ≥ 1 ≤ HTy ≥ 1x ≥ 0 x ≥ 0 y ≥ 0 y ≥ 0x ∈ Z|E| y ∈ Z|V|

§ 3.4 IL PROBLEMA DEL MASSIMO MATCHING 19

La prima e l’ultima disuguaglianza sono dovute al rilassamento dei vincoli di in-terezza, mentre la relazione di uguaglianza centrale è associata al fatto che i due problemilineari sono l’uno il duale dell’altro. Si osservi, quindi,che su un qualsiasi grafoG, la

cardinalità di un matching definisce un lower bound per il problema del node cover dicardinalità minima, così come la cardinalità di un node cover rappresenta un upper bound

al valore della soluzione ottima del prolema del matching dimassima cardinalità.

3.4.2 Stable set e edge cover

Dato un grafoG= (V,E), un insieme stabile(o stable set) di G è dato da un insieme dinodiS⊆V mutuamente non adiacenti. Unedge coverdi G è definito invece da un insieme

di archiF ⊆E tale che tutti i nodi diG siano estremi di almeno un arco diF (vedi Fig 3.4).Data una funzione di peso sui nodi (archi) del grafoG, viene lasciato come esercizio allo

studente quello di definire il problema del massimo (minimo)stable set (edge cover) diG come problema di set packing (set covering). Si definisca, inoltre, una formulazione

in termini di programmazione lineare intera dei due problemi e si evidenzino, così comefatto per il mathing ed il node cover, le relazioni esistentitra il problema dello stable setdi cardinalità massima e quello dell’edge cover di cardinalità minima.

Figure 3.4: Nella due figure sono evidenziati rispettivamente uno stable set ed un edgecover del grafoG.

20 § 3. OTTIMIZZAZIONE COMBINATORIA

Bibliography

Chvátal, V. (1973). Edmonds polytopes and a hierarchy of combinatorial problems,Dis-

crete Mathematics4: 305–337.

Eisenbrand, F. (1999). On the membership problem for the elementary closure of a poly-

hedron,Combinatorica19(2): 297–300.

Gomory, R. E. (1958). Outline of an algorithm for integer solutions to linear programs,

Bulletin of the American Mathematical Society64: 275–278.

Grötschel, M., Lovász, L. & Schrijver, A. (1981). The ellipsoid method and its conse-

quences in combinatorial optimization,Combinatorica1(2): 169–197.

Grötschel, M., Lovász, L. & Schrijver, A. (1988).Geometric Algorithms and Combina-

torial Optimization, Vol. 2 of Algorithms and Combinatorics, Springer.

Jünger, M., Reinelt, G. & Rinaldi, G. (1995). The traveling salesman problem,Handbook

on Operations Research and Management Science, Vol. 7, Elsevier, pp. 225–330.

Karp, R. M. & Papadimitriou, C. H. (1980). On linear characterizations of combinato-rial optimization problems,21st Annual Symposium on Foundations of Computer

Science (Syracuse, N.Y., 1980), IEEE, New York, pp. 1–9.

Nemhauser, G. L. & Wolsey, L. A. (1988).Integer and Combinatorial Optimization, John

Wiley.

Padberg, M. W. & Rao, M. R. (1981). The russian method for linear programming

III: Bounded integer programming,Technical Report 81-39, New York University,Graduate School of Business and Administration.