Lezioni di Ricerca Operativa - diptem.unige.it · Lezioni di Ricerca Operativa MassimoPaolucci...
Transcript of Lezioni di Ricerca Operativa - diptem.unige.it · Lezioni di Ricerca Operativa MassimoPaolucci...
Lezioni di Ricerca Operativa
Massimo Paolucci
Dipartimento di Informatica, Bioingegneria, Robotica e Ingegneria dei Sistemi
Ricerca Operativa 1 1 Corso di Laurea in Ingegneria Industriale e Gestionale
Università di Genova
La Ricerca Operativa(Operation Research)
? Metodi matematici rivolti alla soluzione di problemi decisionali
? Nata durante la seconda guerra mondiale (gestione di risorse limitate e problemi logistici)
? Si è sviluppata grazie alla disponibilità di strumenti automaticidi calcolo (computer)
? Scopo: determinare la decisione ottima dato un problema inpresenza di risorse limitate
? I problemi reali vengono affrontati definendone una rappresentazione quantitativa (modello matematico)
? La soluzione dei problemi è cercata per mezzo di tecniche(algoritmi) di ottimizzazione
? Applicazioni:
? Problemi logistici della produzione? Problemi decisionali di tipo economico? Problemi di gestione operativa? ...
Ricerca Operativa 1 2 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempi di applicazioni:
? Problemi logistici della produzione? Pianificazione della produzione? Controllo delle scorte? Scheduling? Trasporto
? Problemi decisionali di tipo economico? Allocazione di capitali? Acquisto/Produzione di beni
? Problemi di gestione operativa? Definizione dei turni di lavoro? Definizione delle rotte di mezzi di trasporto? Facility location? Gestione ottima di risorse idriche? Ottimizzazione di politiche di controllo? Gestione ottima di aree di carico/scarico? Problemi in reti di comunicazione e distribuzione
Ricerca Operativa 1 3 Corso di Laurea in Ingegneria Industriale e Gestionale
Formulazione dei problemi decisionali
? Decisione: processo di selezione tra più alternative
? Alternative finite o infinite
? Alternative definite esplicitamente o implicitamente
? Scelta sulla base di uno o più criteri (obiettivi)
? Condizioni di certezza, incertezza o rischio
ProblemaReale Formulazione Modello
Matematico
ModelloMatematico
Problema fondamentale della Ricerca Operativa:
identificare un modello matematico con cui studiarein modo sistematico il problema decisionale
Ricerca Operativa 1 4 Corso di Laurea in Ingegneria Industriale e Gestionale
Struttura del problema di decisione
Caratteristiche dei problemi che saranno considerati:? Condizioni di certezza (problemi deterministici)? Presenza di un solo criterio (singolo obiettivo)
Modello MatematicoModello Matematico
VincoliVincoliVariabili decisionaliVariabili decisionaliObiettiviObiettivi
? Per risolvere i problemi decisionali sono usati algoritmi
? Un algoritmo è una procedura iterativa costituita da un numero finito di passi
? Esistono problemi facili (pochi) e difficili
? La facilità di un problema è legata all’esistenza di un algoritmo disoluzione efficiente
Ricerca Operativa 1 5 Corso di Laurea in Ingegneria Industriale e Gestionale
Un esempio: Assegnare 70 lavori a 70 persone.
? Si indichino con i=1,...,70 i lavori e con j=1,...,70 le persone.
? Se la i-esima persona esegue il j-esimo lavoro si paga un costo cij.
? Una persona può eseguire solo un lavoro (vincolo)
? Ogni lavoro deve essere eseguito (vincolo)? Lo scopo (decisione) è stabilire chi fa che cosa in modo che il
costo pagato sia minimo (obiettivo).
Un possibile algoritmo di soluzione (Brute Force):
1) costruire tutte le possibili assegnazioni persone-lavori ecalcolarne il costo
2) scegliere l’assegnazione con il costo più piccolo
Le assegnazioni alternative sono 70! (le permutazioni di 70 numeri)
PersoneLavori
PersoneLavori
1 2 701 2 70
1 2 702 1 70
70 10100! ?
Il numero delle assegnazioni alternative è molto grande
Ricerca Operativa 1 6 Corso di Laurea in Ingegneria Industriale e Gestionale
Si supponga di disporre di un calcolatore che è in grado di calcolare106 assegnazioni alternative (soluzioni) al secondo.
Quanto impiega l’algoritmo a risolvere il problema?
Supponendo di dover “esplorare” 10100 assegnazioni sono necessari1094 secondi.
In un anno ci sono:365(gg)x24(h)x60(min)x60(sec)? 31?106 ? 107 sec
Per risolvere il problema sono necessari 1087 anni !
Il Big Bang (data di inizio dell’Universo) è avvenuto circa 15?109 anni fa!
...ma se si disponesse di un calcolatore 1000 volte più veloce?
...si impiegherebbero 1084 anni.
...e se si usassero 109 calcolatori in parallelo?
...si impiegherebbero 1075 anni.
Ricerca Operativa 1 7 Corso di Laurea in Ingegneria Industriale e Gestionale
Conclusioni:
? L’algoritmo Brute Force non è efficiente!
? Se questo fosse l’unico algoritmo utilizzabile per il problema dell’assegnazione persone-lavori, il problema sarebbe difficile
? La soluzione ottima dei problemi difficili può essere trovata solo per casi di ridotte dimensioni
? I problemi in cui la scelta è tra un numero finito di alternative (levariabili decisionali possono assumere sono un numero discretodi valori) si dicono combinatorici.
? La teoria della complessità una parte della Ricerca Operativa che studia la difficoltà della soluzione dei problemi.
? Conoscere che un problema è difficile permette la scelta di unappropriato algoritmo:
? Algoritmi esatti basati sull’enumerazione esplicita delle soluzioni
? Algoritmi esatti basati sull’enumerazione implicita delle soluzioni
? Algoritmi approssimati? Algoritmi euristici
Ricerca Operativa 1 8 Corso di Laurea in Ingegneria Industriale e Gestionale
Programmazione Matematica Lineare
Problema di Programmazione Matematica (PM) ( problema diottimizzazione)
max f(x)s.t.x X Rn∈ ⊆
funzione obiettivoscalare
vettore delle variabilidecisionali
insieme delle soluzioniammissibili
Un problema di PM è lineare quando:
la funzione obiettivo è lineare
l’insieme X è espresso in termini di relazioni (uguaglianze edisuguaglianze) lineari
f x c xT( ) =
X
{ }
{ }
x Ax b
x Ax b
n
n
∈ ≤
∈ ≤
R
Z
:
:
variabili x continueProgrammazione Lineare Continua(PL)
variabili x intereProgrammazione Lineare Intera(PLI)
Ricerca Operativa 1 9 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempio grafico in 2 dimensioni
{ }X x Ax bn= ∈ ≤Z :
{ }X x Ax bn= ∈ ≤R : poliedro composto da punti∞
X
poliedro composto da un numero finito dipunti
X
x1
x2
x1
x2
Ricerca Operativa 1 10 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempio: pianificare la produzione di unapiccola azienda che produce vernici
L’azienda produce due tipi di vernici, una vernice per interni (I) eduna per esterni (E), usando due materie prime indicate con A e B.
La disponibilità al giorno di materia prima A è pari a 6 ton, mentrequella di materia prima B è di 8 ton.
La quantità di A e B consumata per produrre una ton di vernice Eed I è riportata nella seguente tabella.
E IA 1 2B 2 1
materie prime
vernici
Si ipotizza che tutta la vernice prodotta venga venduta.Il prezzo di vendita per tonnellata è 3K$ per E e 2K$ per I.
L’azienda ha effettuato un’indagine di mercato con i seguenti esisti:• la domanda giornaliera di vernice I non supera mai di più di 1 ton
quella di vernice E• la domanda massima giornaliera di vernice I è di 2 ton
Problema: determinare le quantità delle due vernici che debbonoessere prodotte giornalmente in modo da renderemassimo il guadagno.
Ricerca Operativa 1 11 Corso di Laurea in Ingegneria Industriale e Gestionale
FormulazioneMatematica
Esempio: formulare il modello matematico
Definizionedelle variabili
Definizionedei vincoli
Definizionedell’obiettivo
Definizione delle variabili
Si introducono due variabili che rappresentano le quantitàprodotte (e vendute) al giorno per le due vernici (ton):
produzione di vernice per esterniproduzione di vernice per interni
Le due variabili sono continue.
xExI
Ricerca Operativa 1 12 Corso di Laurea in Ingegneria Industriale e Gestionale
Definizione dell’obiettivo
Il guadagno giornaliero (K$) è dato da
L’obiettivo è rappresentato da un’equazione lineare.
Z x xE I= +3 2
Definizione dei vincoli
• Vincoli ( tecnologici) sull’uso delle materie prime ( l’usogiornaliero delle materie prime non può eccedere ladisponibilità):
(A)(B)
• Vincoli conseguenti le indagini di mercato
• Non negatività delle variabili
x xx x
E I
E I
+ ≤+ ≤
2 62 8
x xx
I E
I
− ≤≤
12
xx
E
I
≥≥
00
Ricerca Operativa 1 13 Corso di Laurea in Ingegneria Industriale e Gestionale
max( )( )( )( )( )( )
Z x xx xx xx x
xxx
E I
E I
E I
E I
I
E
I
= ++ ≤+ ≤
− + ≤≤
≥≥
3 22 6 1
2 8 21 32 4
0 50 6
La formulazione definisce un Problema di Programmazione Linearea variabili continue
Funzione obiettivo
vincoli che definiscono quali valorisono ammessi per le due variabili(Insieme delle soluzioni ammissibili)}
1 2 3 4 5 6
8
7
6
5
4
3
2
1
−1−2
(3)(2)
(4)
(1)
(5)
(6)X
xE
xI
Ricerca Operativa 1 14 Corso di Laurea in Ingegneria Industriale e Gestionale
1 2 3 4 5 6
1
-1-2
2
3
4
A
F
E D
B
C
(2) (3)
(4)
(1)
(5)
(6)
l’obiettivo perz=0
z=6
xE
xI
z=38/3
Ottimo
Proprietà:• le soluzioni si trovano sulla frontiera del poliedro X, quindi
corrispondono ai vertici di X;• deve essere considerato solo un numero finito di soluzioni.
A=(0,0) B=(4,0) C=(10/3,4/3) D=(2,2) E=(1,2) F=(0,1)
Ricerca Operativa 1 15 Corso di Laurea in Ingegneria Industriale e Gestionale
Se la funzione obiettivo fosse parallela ad un vincolo ...
In questo caso si potrebbe scegliere alternativamente tra i puntiestremi C e D.
La ricerca dell’ottimo resta pertanto una esplorazione tra un numerofinito di soluzioni alternative corrispondenti ad i vertici del poliedroX.
1
2
A
F
E D
B
C
I punti del segmento DCsono tutti ottimi
xE
xI
1 2 3 4
X
... esisterebbero infiniti punti di ottimo tutti equivalenti (nell’esempio,quelli del segmento DC).
un diverso obiettivoparallelo a (1)
Ricerca Operativa 1 16 Corso di Laurea in Ingegneria Industriale e Gestionale
Formulazione di Problemi Decisionali comeProblemi di Programmazione Lineare
Consideriamo i seguenti problemi decisionali ed esaminiamo comepossono essere formulati come problemi di PL:
• Il problema del trasporto
• Il problema del “product-mix”
• Il problema della pianificazione della produzione (production
planning)
Ricerca Operativa 1 17 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Problema del Trasporto
• m fonitori producono s1,..., sm quantità di un certo prodotto (ad
esempio, gas o petrolio)
• n destinatari richiedono r1,..., rn quantità di prodotto
• il prodotto può essere trasportato da ogni fornitore ad ogni
destinatario (ad esempio attraverso un gasdotto o oleodotto)
• per ogni unità di prodotto trasportata dal fornitore i al cliente j
viene pagato un costo cij
Il problema: determinare quali quantità di prodotto trasportare traogni coppia (i,j) di fornitori-destinatari in modo daminimizzare il costo complessivo del trasporto.
s1
si
sm
r1
rj
rn
cij
M
M
M
M
Ricerca Operativa 1 18 Corso di Laurea in Ingegneria Industriale e Gestionale
Formulazione del problema.
Le variabili: la quantità di prodotto trasportata su ciascun arco
sono variabili continue
x i m j nij ∈ = =R 1 1,..., ; ,...,
Ipotesi di ammissibilitàPerché il problema possa ammettere una soluzione deve essereverificata la seguente condizione sui dati
che stabilisce che la quantità totale di prodotto disponibile nonpuò essere inferiore alla richiesta totale del prodotto stesso.
s rii
mj
j
n
= =∑ ≥ ∑
1 1
i
mij ij
j
nc x
= =∑ ∑
1 1
La funzione obiettivo: il costo del trasporto complessivo
Ricerca Operativa 1 19 Corso di Laurea in Ingegneria Industriale e Gestionale
x s i mijj
ni
=∑ ≤ =
11 1,..., ( )
x r j niji
mj
=∑ = =
11 2,..., ( )
I vincoli:
• la quantità totale di prodotto fornita da ciascun fornitore nonpuò superare la disponibilità del fornitore stesso
• la quantità totale di prodotto ricevuta da ciascun destinatariodeve essere uguale a quella richiesta
x i m j nij ≥ = =0 1 1 3,.., ; ,..., ( )
• le quantità di prodotto trasportate sugli archi sono sempre nonnegative
Ricerca Operativa 1 20 Corso di Laurea in Ingegneria Industriale e Gestionale
min
,..., ( )
,..., ( )
,..., ; ,..., ( )
,..., ; ,...,
i
mij ij
j
n
ijj
ni
iji
mj
ij
ij
c x
x s i m
x r j n
x i m j n
x i m j n
= =
=
=
∑ ∑
∑ ≤ =
∑ = =
≥ = =∈ = =
1 1
1
1
1 1
1 2
0 1 1 3
1 1R
Il problema deltrasporto
• E’ un problema di PL con variabili continue.
• Può essere risolto con l’algoritmo del simplesso.
• Possibili variazioni:• introduzione della massima capacità per gli archi;• non tutti i fornitori sono connessi a tutti i destinatari;• il trasporto non avviene direttamente tra fornitore e
destinatario ma attraverso dei centri di raccolta edistribuzione intermedi
Ricerca Operativa 1 21 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Problema del Product-Mix
• si dispone di m risorse produttive in quantità limitata , in
particolare, la loro massima disponibilità è b 1,..., b m (ad
esempio, materie prime)
• possono essere eseguite n attività che necessitano delle risorse
precedenti (ad esempio, la produzione di n diversi prodotti)
• alle n attività sono associati i seguenti profitti unitari c 1,..., c n
(ad esempio, il profitto per unità di prodotto)
• sono noti i consumi di risorse per unità di attività eseguita ; in
particolare, per eseguire una unità della attività i- esima si
utilizzano aij unità della risorsa j-esima
Il problema: determinare quali attività eseguire ed a quale livello(ad esempio, quali e quanti prodotti produrre) inmodo da massimizzare il profitto conseguente.
(Nota: a questa classe di problemi appartiene il problemadell’azienda che produce vernici.)
Ricerca Operativa 1 22 Corso di Laurea in Ingegneria Industriale e Gestionale
Formulazione del problema.
Le variabili:i livelli a cui devono essere eseguite le attività (variabilicontinue)
x i ni ∈ =R 1,...,
c xi ii
n
=∑
1
La funzione obiettivo: il profitto risultante dall’esecuzione delle attività
I vincoli:• per ciascuna risorsa , la quantità totale di risorsa utilizzata per
eseguire le attività non può superare la disponibilità massimadella risorsa stessa
a x b j mij ii
nj
=∑ ≤ =
11 1,..., ( )
x i ni ≥ =0 1 2,.., ( )
• i livelli delle attività sono sempre non negativi
Ricerca Operativa 1 23 Corso di Laurea in Ingegneria Industriale e Gestionale
max
,..., ( )
,..., ( ),...,
c x
a x b j m
x i nx i n
i ii
n
ij ii
nj
i
i
=
=
∑
∑ ≤ =
≥ =∈ =
1
11 1
0 1 21R
Il problema del product-mix
Ricerca Operativa 1 24 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Problema della pianificazione della produzione(Production Planning)
• per ciascuno degli N mesi è nota la capacità produttiva
massima del prodotto, m1,...,mN
• sono noti c1,...,cN, i costi di produzione per unità di prodotto nei
diversi mesi
• sono noti r 1,...,rN, i costi di immagazzinamento per unità di
prodotto nei diversi mesi
• è nota la domanda di prodotto per i diversi mesi, d1,...,dN
• è nota la disponibilità iniziale di prodotto in magazzino M0
Caso considerato: pianificare la produzione di un singolo prodotto peri prossimi N mesi.
Il problema: determinare la quantità di prodotto da produrre neidiversi mesi minimizzando il costo complessivo diproduzione e di immagazzinamento.
Ricerca Operativa 1 25 Corso di Laurea in Ingegneria Industriale e Gestionale
Formulazione del problema.
Le variabili:• la quantità di prodotto pianificata per ciascun mese (variabili
continue)x i Ni ∈ =R 1,...,
( )c x r si i i ii
N+∑
=1
La funzione obiettivo:il costo totale pagato per la produzione più quello pagato
per l’immagazzinamento durante l’arco degli N mesi
I vincoli:• per ciascun mese , la quantità il prodotto disponibile ( prodotto
nel mese o presente perchè immagazzinato il mese precedente )soddisfa la domanda corrente ; l’eventuale rimanenza vieneimmagazzinata e resa disponibile per il mese successivo ( leggedi conservazione del prodotto)
x s d s i Ni i i i+ = + =−1 1 1,..., ( )
• la quantità di prodotto che deve essere immagazzinata perciascun mese (variabili continue)
s i Ni ∈ =R 1,...,
Ricerca Operativa 1 26 Corso di Laurea in Ingegneria Industriale e Gestionale
• la produzione mensile non può superare la relativa capacitàproduttiva
x m i Ni i≤ = 1 2,..., ( )
• il livello iniziale del magazzino è quello dato
s M0 0 3= ( )
x s i Ni i≥ ≥ =0 0 1 4,.., ( )
• il livello di produzione e la quantità di prodotto in magazzino neivari mesi non può essere negativa
( )
N,...,1isx)4(N,...,1i0s0x)3(Ms)2(N,...,1imx)1(N,...,1idssx
srxcmin
ii
ii
00
ii
ii1ii
N
1iiiii
=∈∈=≥≥
==≤
==−+
∑ +
−=
RR
Il problema del production planning (singolo prodotto)
Una possibile variante consiste nel considerare la produzione di ndiversi prodotti.
Ricerca Operativa 1 27 Corso di Laurea in Ingegneria Industriale e Gestionale
Soluzione dei Problemi diProgrammazione Lineare
Consideriamo un problema di Programmazione Lineare (PL) con mvincoli ed n variabili in Forma Standard
max( )( )
x c xAx bx
x R
T
n
01
0 2
==
≥
∈dove:
• x è il vettore nx1 delle variabili decisionali
• c è il vettore nx1 dei coefficienti della funzione obiettivo
• b è il vettore mx1 dei termini noti dei vincoli
• A è la matrice mxn dei coefficienti dei vincoli; A=[aij], i=1,...,n,j=1,...,m
Inoltre, si assumono soddisfatte le seguenti ipotesi:
• m<n
• m=rango(A)
b b j mj≥ ⇒ ≥ ∀ =0 0 1, ,K
Qualunque problema di PL può essere trasformato in un problemaequivalente in forma standard.
Ricerca Operativa 1 28 Corso di Laurea in Ingegneria Industriale e Gestionale
L’ipotesi m<n ( più variabili che vincoli ) non rappresenta unaperdita di generalità . E’ noto infatti che il sistema di equazionilineari (1):
• può ammettere una soluzione unica se m=n
• può ammettere soluzione se m>n ed almeno m-n equazioni sonoridondanti (quindi possono essere eliminate)
• può ammettere soluzioni se m<n∞ −n m
I valori di x che soddisfano i vincoli (1) sono detti soluzioni delproblema di PL.
Inoltre, i valori di x che soddisfano anche i vincoli (2) sono dettisoluzioni ammissibili del problema di PL.
Solo l’ultimo caso è significativo dal punto di vista dei problemi diottimizzazione.
Un problema di PL può essere:
a) Ammissibile con soluzioni ottime finite
b) Ammissibile senza soluzione ottime finite ( detto ancheillimitato, o con ottimo all’infinito)
c) Non Ammissibile (senza soluzioni ammissibili)
Ricerca Operativa 1 29 Corso di Laurea in Ingegneria Industriale e Gestionale
Da un punto di vista grafico i tre casi corrispondono a:
{ }X x Ax bn= ∈ ≤ ≠ ∅R :
a) una regione di ammissibilitàassociata ad un poliedro chiuso nonvuoto (Politopo) X
X ≠ ∅
b) una regione di ammissibilitàassociata ad un poliedro apertonon vuoto
(n.b., una soluzione ottimaall’infinito implica un poliedro Xaperto, ma non è vero il viceversa)
X
c) una regione di ammissibilitàassociata ad un poliedro vuoto
X1
X2
X X X= ∩ = ∅1 2
X x talechex Xn= ∅ ⇒ ∃ ∈ ∈R
(X aperto)
Ricerca Operativa 1 30 Corso di Laurea in Ingegneria Industriale e Gestionale
• Un poliedro è dato dall’intersezione di semispazi.
• Un semispazio in n dimensioni è individuato da una disuguaglianzalineare
• Un poliedro X è un insieme convesso
a x b xT n≤ ∈R
Definizione
Un insieme X è convesso se e solo se dati due punti
ogni punto y generato come
(combinazione convessa di ) è tale che
y x xa b= + − ≤ ≤λ λ λ( )1 0 1
x x Xa b, ∈
x xa b, y X∈
Xxa
xby
Vertici del Poliedro X
I vertici di un poliedro si diconoPunti Estremi
DefinizioneUn punto di un poliedro X è un punto estremo se e solo se non puòessere espresso come combinazione convessa di altri punti di X.
Ricerca Operativa 1 31 Corso di Laurea in Ingegneria Industriale e Gestionale
1. Teorema (Proprietà dei punti estremi di un poliedro)
Dato X poliedro chiuso non vuoto con punti estremi
ogni punto può essere espresso come combinazione
convessa dei punti estremi di X:
x x con ii eii
Ei
i
Ei= ∑ ∑ = ≥ ∀
= =λ λ λ
1 11 0
x i Eei , ,...,= 1
x X∈
Se X è un poliedro aperto non vuoto per esprimere tutti i suoi puntioltre ad i punti estremi si devono utilizzare anche le sue direzioniestreme.
∀ ∈ ⇒ + ∈ ≥x X x d Xµ µ 0.
X
xe1
xe2
xe3
X’Ad es., la combinazione convessadipermette di esprimere tutti i puntidi
xe1 xe2 xe3
X X'⊂
Definizione
Dato un poliedro X, d è una direzione di X se e solo se
Ricerca Operativa 1 32 Corso di Laurea in Ingegneria Industriale e Gestionale
Xd
xx d+ ≥µ µ( )0
Ad esempio:
Definizione
Una direzione d di un poliedro X, è una direzione estrema di X see solo se non è esprimibile come combinazione lineare di altredirezioni di X.
Xx d d de e= +
≥µ µ
µ µ1 1 2 2
1 2 0,
de1
de2
Ad esempio:
Ricerca Operativa 1 33 Corso di Laurea in Ingegneria Industriale e Gestionale
( )x d X x X A x d b Ad+ ∈ ∈ ≥ ⇒ + = ⇒ =λ λ λ, 0 0
2. Teorema (Proprietà dei punti estremi e delle direzioni
estreme di un poliedro)
Dato X poliedro non vuoto con punti estremi
e direzioni estreme
Ogni punto può essere espresso come combinazione
convessa dei punti estremi di X e combinazione lineare delle sue
direzioni estreme:x x d
con i j
i eii
Ej e jj
D
ii
Ei j
= ∑ + ∑
∑ = ≥ ∀ ≥ ∀
= =
=
λ µ
λ λ µ
1 1
11 0 0,
x i Eei , ,...,= 1
x X∈d j De j , ,...,= 1
Se d è una direzione del poliedro
allora si ha che
{ }X Ax b x= = ≥, 0
Ricerca Operativa 1 34 Corso di Laurea in Ingegneria Industriale e Gestionale
Soluzione Algebrica dei problemi di PL
Consideriamo il problema (PL) in Forma Standard
max( )( )
x c xAx bx
x R
T
n
01
0 2
==
≥
∈
Poiché m=rango(A) ed m<n, si può partizionare A come
xxx
m componentin m componenti
B
N=
−
(PL)
[ ]A B N= dove:• B è matrice non singolare mxm• N è matrice mx(n-m)
(det( ) )B ≠ 0
La matrice B è composta da m colonne linearmente indipendenti diA. Tali colonne sono quindi una base nello spazio vettoriale ad mdimensioni delle colonne di A.
La matrice B è detta Matrice di Base (Base).
In corrispondenza di una scelta di B ed N si può partizionare anche ilvettore delle x:
è detto Vettore delle Variabili in Base (Vettore di Base)è detto Vettore delle Variabili fuori Base
xBxN
Ricerca Operativa 1 35 Corso di Laurea in Ingegneria Industriale e Gestionale
Ax b=Il sistema di equazioni lineari si può riscrivere come
[ ]B Nxx
b Bx Nx bB
NB N
= ⇒ + =
⇒ = −− −x B b B NxB N1 1
Una soluzione del sistema di equazioni (1) corrisponde a determinareil valore per m variabili avendo fissato arbitrariamente il valoreper le restanti n-m variabili
Una scelta particolarmente importante è porre da cui si ottiene
( )xB( )xN
xN = 0
xxx
B bB
N=
=
−1
0Soluzione di Base
Se si ottiene una Soluzione di Base Ammissibile.x B bB = ≥−1 0
Ricerca Operativa 1 36 Corso di Laurea in Ingegneria Industriale e Gestionale
Le soluzioni di base sono importanti poichè vale il seguente teorema
• La ricerca delle soluzioni di un problema di PL si può effettuareesaminando solamente un numero finito di soluzioni corrispondentialle soluzioni di base associate al poliedro dei vincoli.
• In generale, a ciascuna matrice di base B ( ammissibile) corrispondeuna sola soluzione di base (ammissibile).
• Viceversa, ad una soluzione di base ( ammissibile) possonocorrispondere più matrici di base. Questi casi sono associati asoluzioni dette degeneri, ovvero per cui qualche componente delvettore di base risulta nullo.xB
Un esempio.max
( )( )( )
x x xx xx xx x
x x
0 1 2
1 2
1 2
1 2
1 2
25 10 2
6 2 21 30 0
= ++ ≤
− + ≤+ ≤
≥ ≥
Il problema non è in forma standard !
(continua)
3. Teorema
Dato insieme convesso, dove A è unamatrice mxn di rango m con m<n, xe è un punto estremo di Xse e solo se xe è una soluzione di base ammissibile.
{ }X Ax b x= = ≥, 0
Ricerca Operativa 1 37 Corso di Laurea in Ingegneria Industriale e Gestionale
Trasformazione dei problemi in forma standard.
⇒ VincoliSi introducono variabili ausiliarie positive dette Variabili di Slack(scarto):
⇒ VincoliSi introducono variabili ausiliarie positive dette Variabili diSurplus (eccedenza):
⇒ Variabili non vincolate in segno (variabili libere)Si sostituisce la variabile libera con due variabili ausiliarie positive(il problema diventa ad n+1 variabili):
⇒ Termini noti dei vincoli negativiSi moltiplicano entrambe i membri per -1 e si cambia il verso delladisuguaglianza
⇒ Problema di minimoSi trasforma il problema in massimo moltiplicando per -1 lafunzione obiettivo.
≤
≥
a x b a x s b sij jj
ni ij j
j
ni i i
= =∑ ≥ → ∑ − = ≥
1 10
a x b a x s b sij jj
ni ij j
j
ni i i
= =∑ ≤ → ∑ + = ≥
1 10
x libera x u v con u vj j j j j j→ = − ≥ ≥0 0
Ricerca Operativa 1 38 Corso di Laurea in Ingegneria Industriale e Gestionale
Un esempio (seguito).Il problema trasformato in forma standard:
max( )( )( )
x x xx x xx x xx x x
x x x x x
0 1 2
1 2 3
1 2 4
1 2 5
1 2 3 4 5
25 10 2
6 2 21 30 0 0 0 0
= ++ + =
− + + =+ + =
≥ ≥ ≥ ≥ ≥
1 2 3 4 5
5
4
3
2
1
(3)
(2)
(1)
Xx1
x2
P1
P2 P3
P4
Ottimo
x0 0=
x0 7 75= .
A b= −
=
1 1 1 0 01 1 0 1 0
6 2 0 0 1
5021
Ricerca Operativa 1 39 Corso di Laurea in Ingegneria Industriale e Gestionale
Il massimo numero di possibili basi corrisponde al numero di possibiliestrazioni di m colonne su n colonne di A:
nm
nm n m
=−!
!( )!
Nell’esempio53
53 2
10
= =!! !
In generale, non tutte le possibili sottomatrici mxm sono non-singolari(quindi invertibili). Inoltre, non tutte le matrici di base danno luogo asoluzioni ammissibili (ossia, positive).
Per questo fatto il numero delle combinazioni corrisponde ad un limitesuperiore.
Nell’esempio solo 6 combinazioni danno luogo a basi ammissibili:
xxxx
B b PB1
1
2
4
11
3
11 49 41 2
=
= =
⇒− dove B1
1 1 01 1 1
6 2 0= −
xxxx
PB2
1
2
5
2
5 25 21
=
=
⇒ xxxx
PB3
1
3
4
4
7 23 27 2
=
=
⇒
xxxx
xxxx
xxxx
PB B B4
1
3
5
52
3
5
64
3
5
1
0521
=
= =
= =
=
⇒ (soluzioni degeneri)
Ricerca Operativa 1 40 Corso di Laurea in Ingegneria Industriale e Gestionale
Dalla corrispondenza delle soluzioni di base ammissibili con i puntiestremi del poliedro X deriva il seguente teorema.
4. Teorema Fondamentale della PL
Se un problema di PL ammette soluzione , allora esiste unasoluzione ammissibile di base.
Se un problema di PL ha soluzione ottima finita , allora ha ancheuna soluzione di base ottima.
• Poiché il massimo numero di possibili basi di un problema di PL èfinito, tali problemi hanno una struttura discreta.
• I problemi di ottimizzazione corrispondenti alla selezione tra unnumero finito di alternative si dicono problemi combinatorici.
• La PL è quindi un problema combinatorico.
• Un possibile algoritmo per determinare la soluzione ottima potrebbeconsistere nella generazione esplicita di tutte le soluzioniammissibili di base, quindi nella scelta di quella soluzione che rendemassimo l’obiettivo.
• Tale strategia non è conveniente poichè il numero massimo dellepossibili basi cresce in maniera esponenziale col crescere delledimensioni del problema (numero di variabili e vincoli).
• Algoritmi che richiedono in generale un numero di passi che crescein maniera esponenziale con le dimensioni del problema non sonoefficienti.
Ricerca Operativa 1 41 Corso di Laurea in Ingegneria Industriale e Gestionale
Calcolo della soluzione ottima di un problema di PL.
Supponendo di aver individuato una base B ammissibile, riscriviamola funzione obiettivo:
[ ]x c x c cxx
c x c xTB N
B
NBT
B NT
N0 = =
= +
Sostituiamo in (1) l’espressione delle variabili di base:
x B b B NxB N= −− −1 1
(1)
(2)
ottenendo: ( )x c B b c B N c xBT
BT
NT
N01 1= − −− − (3)
Le relazioni (2) e (3) esprimono rispettivamente i vincoli e la funzioneobiettivo in funzione delle variabili fuori base.
Raccogliamo (2) e (3) in in forma matriciale:
Il valore dell’obiettivo corrispondente alla base B è x c B bBT
01= −
xx
c B bB b
c B N cB N
xB
BT
BT
NT
N0 1
1
1
1
=
− −
−−
−−
Le (4) sono m+1 equazioni.
(4)
Ricerca Operativa 1 42 Corso di Laurea in Ingegneria Industriale e Gestionale
y c B bB b
yy
y
BT
m
0
1
1
00
10
0
=
=
−− M
Trasformiamo le (4) in una forma più compatta.
x x e xx
xB B
B
Bm
0 01
= =
M
yc B a c
B a
yy
y
j RjBT
j j
j
j
j
mj
=−
=
∀ ∈−
−
1
1
0
1M
In particolare, si pone:
• R l’insieme degli indici delle variabili fuori base, ovverodelle colonne di N
• vettore (m+1)-dim
• n-m vettori (m+1)-dim
dove e sono rispettivamente la colonna di N ed il coefficiente di che moltiplicano la j-esima variabile fuori base.
a j c jcN
Ricerca Operativa 1 43 Corso di Laurea in Ingegneria Industriale e Gestionale
Le (4) si possono quindi riscrivere come segue
x y y x i mBi i ij jj R
= − ∀ =∑∈
0 0 1, , ,K (5)
Ponendo nelle (5) si ottengono il valore dell’obiettivo(i=0) e le soluzioni di base (i=1,...,m) corrispondenti alla base attuale.
x j Rj = ∀ ∈0
Verifichiamo se la soluzione corrente è ottima.
Consideriamo l’obiettivo: x y y xB j jj R
0 00 0= − ∑∈
Supponiamo che esista un coefficiente y 0k<0, e consideriamo comevaria l’obiettivo facendo diventare positiva la variabile fuori base xk,attualmente nulla.
x y y x yB k k0 00 0 00= − >
>0<0
}>0L’obiettivo migliora !
Allora si potrebbe pensare di aumentare indefinitivamente x kmigliorando sempre l’obiettivo.
Tuttavia, aumentando x k anche le equazioni (5) corrispondenti aivincoli variano, modificando i valori delle variabili di base.
Ricerca Operativa 1 44 Corso di Laurea in Ingegneria Industriale e Gestionale
Consideriamo la generica equazione i- esima in funzione dellavariabile fuori base xk che stiamo incrementando:
x y y xBi i ik k= −0
Se yik>0, aumentando xk la diminuisce.
E’ quindi possibile aumentare xk fino a che (ammissibile).
Il valore limite di x k perché la i- esima variabile di base resti
ammissibile è quindi:
xBixBi ≥ 0
x yy
xkiik
Bi= ⇒ =0 0
Facendo assumere ad x k un valore positivo significa portare lavariabile in base.Nello stesso tempo il valore delle altre variabili di base per cui y ik>0diminuisce.Il valore che x k assume in base è quello corrispondenteall’annullamento della prima variabile di base, ad es. ,cioè
yy
yy
rrk i M
yik
iik
01
0
0=
=
>
min,...,
La variabile xk entra in base con tale valore, ed in corrispondenza lavariabile esce di base.xBr
xBr
Ricerca Operativa 1 45 Corso di Laurea in Ingegneria Industriale e Gestionale
Il coefficiente y rk è detto Pivot, ( l’aggiornamento della base si dicePivoting) e viene usato per aggiornare i valori delle variabili in basedopo l’ingresso in base di xk:
x yyk
rrk
= 0
x y y yy
i m i rBi i ikrrk
= − ∀ = ≠00 0,..., ;
La nuova soluzione dibase
{ }x j R R k xj Br= ∀ ∈ = − =0 0' Le nuove variabili fuori base
Con il cambio delle variabili in base, la nuova matrice di baserisulta composta delle stesse colonne della vecchia base adeccezione del fatto che la colonna associata a è stata sostituitadalla colonna associata a xk.
Aggiorniamo le equazioni (5) dopo il cambio di base:
xBr
{ }
{ }
x y y yy
y yyy
xyy
x
i m i r
x yy
yy
xy
x
Bi i ikrrk
ij ikrj
rkj
rj
rkBr
j R k
krrk
rj
rkj
rkBr
j R k
= − − −
+∑
∀ = ≠
= − −∑
∈ −
∈ −
00
0
0 1
1
, , , ;K (5’)
Ricerca Operativa 1 46 Corso di Laurea in Ingegneria Industriale e Gestionale
La nuova soluzione di base ha migliorato il valore della funzioneobiettivo:
{>0
x y y yy
yB krrk0 00 00
00= − >}>0
{<0
E’ possibile iterare il procedimento fino a che esiste qualche variabilefuori base che può migliorare l’obiettivo se portata in base.
5. Teorema (Condizione di ottimalità)
Una soluzione di base non degenere di un problema di PL èottima se e solo se:
1) (ammissibile)
2) (non migliorabile)
y i mi0 0 1≥ = ,...,
y j Rj0 0≥ ∀ ∈
I nuovi valori delle variabili in base si ottengono ponendo nelle (5’)
{ }x j R k xj Br= ∀ ∈ − =0 0
Nel caso di soluzione degenere possono esistere soluzioni ottime incui il punto (2) del terorema 5 non è soddisfatto.Tuttavia, se un problema ammette soluzione ottima finita alloraammette una soluzione di base ottima che soddisfa le condizioni (1) e(2) del teorema 5.
Ricerca Operativa 1 47 Corso di Laurea in Ingegneria Industriale e Gestionale
k y yyj R
y j
jrrj
= −
∈<
argmax
0 0
00
y ykj Ry j
j0
0 0
0=∈
<
min
Esistono due criteri di scelta della variabile entrante:
a) Il metodo del gradiente (il più utilizzato)Sceglie la variabile che localmente fa aumentare più rapidamentel’obiettivo:
b) Il metodo del massimo incrementoSceglie la variabile che effettivamente provoca il maggioraumento dell’obiettivo:
dove r è l’indice della variabile che lascia la base a causadell’ingresso in base di xj.
Scelta della variabile entrante.
Quando la condizione di ottimalità non è verificata è sempre possibilescegliere una variabile fuori base xk da portare in base per migliorarel’obiettivo.Quando esistono più alternative la scelta non preclude ilraggiungimento della soluzione ottima, ma può al peggio aumentare iltempo necessario per la sua ricerca.
Ricerca Operativa 1 48 Corso di Laurea in Ingegneria Industriale e Gestionale
Scelta della variabile uscente.
Determinata la variabile fuori base x k da portare in base, si devescegliere la variabile uscente. Esistono due situazioni alternative:
a) yrk>0 per almeno un rAllora si può aggiornare la base come visto.
b)Allora la soluzione del problema è illimitata (non esisteottimo finito).In questo caso facendo aumentare xk il valore di nessunavariabile di base diminuisce:
y i mik ≤ ∀ =0 1,...,
x y y xBi i ik k= − ≥0 0}>0
{{<0 >0
sempre !
Nota.Se per una variabile di base i si ha che y ik>0 e y r0=0 ( soluzionedegenere), xk entra in base con valore nullo.
In questo caso la soluzione non cambia, ed in particolare rimanedegenere.
Per questa ragione la ricerca della soluzione potrebbe rimanerebloccata generando sempre la medesima soluzione (cycling).
Il cycling è piuttosto raro e comunque esistono strategie per evitalo.
Ricerca Operativa 1 49 Corso di Laurea in Ingegneria Industriale e Gestionale
1. Inizializzazione.Determinare una soluzione di base ammissibile.
2. Verifica dell’ottimalità.Seallora la soluzione corrente è ottima e l’algoritmo termina.Altrimenti andare al passo 3.
3. Scelta della variabile entrante in base.Scegliere una variabile fuori base xk tale che y0k<0 (ad esempio, conil metodo del gradiente), ed andare al passo 4.
4. Scelta della variabile uscente dalla base.Scegliere la variabile tale che
Se , allora la soluzione del problema èillimitata (non esiste ottimo finito), e l’algoritmo termina.
5. Pivoting.Risolvere le equazioni (5) ricavando xk e in funzione di
e di .La nuova soluzione si ottiene ponendo e .Andare al passo 2.
L’algoritmo del Simplesso
y j Rj0 0≥ ∀ ∈
xBr
yy
yy
rrk i M
yik
iik
01
0
0=
=
>
min,...,
y i mik ≤ ∀ =0 1,...,
x i rBi , ≠{ }x j R kj , ∈ − xBr
{ }x j R kj = ∈ −0, xBr = 0
Ricerca Operativa 1 50 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Tableau
L’algoritmo del simplesso può essere eseguito utilizzando una tabella ,detta Tableau, in cui vengono disposti i coefficienti della funzioneobiettivo e dei vincoli.Tali coefficienti sono quelli delle equazioni (5) in cui tutte le variabilisono state portate al primo membro:
x y x y i mBi ij jj R
i+ ∑ = ∀ =∈
0 0 1, , ,K
x x x x xx y y y
x y y y
x y y y
x y y y
B Br Bm j k
j k
B j k
Br rj rk r
Bm mj mk m
10 0 0 00
1 1 1 10
0
0
0 0 01 0 0
0 1 0
0 0 1
L L L L L
L L L L L
L L L L L
M M O M M M M M
L L L L L
M M M O M M M M
L L L L L
nomi delle variabili in base nomi delle variabili fuori base
coeff. dell’obiettivo
coeff. delle variabili in base
coeff. delle variabili fuori base
valore dell’obiettivo(soluzione corrente)
valori delle variabili in base(soluzione corrente)
Ricerca Operativa 1 51 Corso di Laurea in Ingegneria Industriale e Gestionale
L’algoritmo del simplesso applicato al Tableau
1. Inizializzazione.Costruire il tableau iniziale con una soluzione di base ammissibile.
2. Verifica dell’ottimalità.Se nella riga di x0 non esistono coefficienti negativi la soluzionecorrente è ottima e l’algoritmo termina. Altrimenti andare al passo 3.
3. Scelta della variabile entrante in base.Scegliere una variabile fuori base xk tale che y0k<0 (ad esempio,scegliere il coefficiente più piccolo), ed andare al passo 4.
4. Scelta della variabile uscente dalla base.Se tutti i coefficienti nella colonna di xk sononon esiste ottimo finito e l’algoritmo termina. Altrimenti calcolare irapporti
tra i coeff. dell’ultima colonna con i coeff. positivi della colonna dixk, e scegliere la riga r-esima associata al rapporto più piccolo.Il coeff. yrk è il pivot.
5. Pivoting.Portare in base xk al posto di dividendo la riga r-esima per ilpivot, quindi sottraendo la nuova riga r alle altre righe del tableau,obiettivo incluso, dopo averla moltiplicata per il corrispondentecoeff. della colonna k. In questo modo la nuova colonna k saràformata da tutti coeff. nulli tranne il coeff. r-esimo uguale ad 1.Scambiare i nomi delle variabili xk e . Andare al passo 2.
xBr
yy
i miik0 1= ,...,
y i mik ≤ ∀ =0 1,...,
xBr
Ricerca Operativa 1 52 Corso di Laurea in Ingegneria Industriale e Gestionale
L’inizializzazione dell’algoritmo del simplesso
Il problema dell’inizializzazione corrisponde a verificare se il problemadi PL ammette soluzione, ed in caso positivo a determinarne una.
Inizializzazione con variabili di slack.Un caso semplice è quello in cui tutti i vincoli sono disuguaglianze .≤
[ ]A x b A x Is b A Ixs
b≤ ⇒ + = ⇒
=
quindi si può scegliere B=I come base iniziale, corrispondente allasoluzione ammissibile
xx
sx
bB
N
=
=
0
In generale , tutte le volte che la matrice A contiene una matriceidentica I come minore mxm è possibile scegliere B=I come baseiniziale, e mettere nella base iniziale le m variabili corrispondenti allecolonne di I.
Metodi generali di inizializzazione.
Esistono due metodi generali:
a) Il metodo a due fasi (“Two-Phases” Method)
b) Il metodo del “Big-M” (o delle penalità)
Ricerca Operativa 1 53 Corso di Laurea in Ingegneria Industriale e Gestionale
Il metodo a due fasi
E’ un metodo che può essere usato per verificare l’esistenza disoluzioni in un sistema di disuguaglianze.
E’ dato il problema (P)
I Fase (Definizione e soluzione del problema ausiliario)
Si definisce un problema ausiliario (A)
max x c xAx bx
T0
0
==
≥
min z y y
Ax Iy bx y
Ti
j
m= = ∑
+ =≥ ≥
=1
0 0
1dove 1
1
1
1=
M M
m
Posto
è sempre possibile definire come soluzione di base iniziale per (A)
quindi risolvere (A) con l’algoritmo del simplesso.
zyx
mn
=
var.var.
zz
yx
bB
N
=
=
0
Ricerca Operativa 1 54 Corso di Laurea in Ingegneria Industriale e Gestionale
II Fase (Inizializzazione e soluzione del problema originale)
Se la soluzione ottima di (A) è tale che z=0, allora nessuna variabile y i,i=1,...,m, è rimasta in base all’ottimo , ed in tal caso il problemaoriginale (P) ammette soluzione.
Infatti, sia la soluzione ottima di (A), con .z yx
**
*=
y* = 0
Allora A x Iy b A x b* * *+ = ⇒ = quindi è anche soluzione di (P)x*
e può essere usata come soluzione iniziale per risolvere (P).
Se invece z>0, allora qualche variabile y i, i=1,...,m, è rimasta in baseall’ottimo, ed assume valore positivo.In questo caso il problema originale (P) non ammette soluzione.Se, infatti , fosse stato possibile determinare un vettore x tale dasoddisfare i vincoli di (P), la soluzione di (A) lo avrebbe certamenteutilizzato per annullare (quindi minimizzare) l’obiettivo z.
Ricerca Operativa 1 55 Corso di Laurea in Ingegneria Industriale e Gestionale
Il metodo del “Big-M”
Con questo metodo si introducono delle variabili ausiliarie come nelmetodo a due fasi.Quindi si risolve una versione modificata del problema originale ,penalizzando nella funzione obiettivo le variabili ausiliarie.
E’ dato il problema (P)
Si costruisce una versione modificata (P’) del problema (P)introducendo m variabili ausiliarie (una variabile per vincolo)
max x c xAx bx
T0
0
==
≥
max c x M y c x M y
Ax Iy bx y
T Ti i
i
nj
j
m− = ∑ − ∑
+ =≥ ≥
= =1
0 0
1 1
11
1
1=
M M
mdove e M è un coeff. scalare tale che
Posto una soluzione di base iniziale per (P’) èzyx
=
zz
yx
bB
N
=
=
0
M c b a i ji j ij>> ∀, , ,
Ricerca Operativa 1 56 Corso di Laurea in Ingegneria Industriale e Gestionale
Risolvendo (P’) le variabili y j, penalizzate dai “big-M” nell’obiettivo ,sono forzate ad uscire dalla base.
Se nella soluzione ottima di (P’) tutte le yj sono fuori base, si ha che
z yx x
Ax Iy b Ax b**
* ** * *=
=
⇒ + = ⇒ =0
il vettore è anche la soluzione ottima di (P).
Rispetto al metodo a due fasi risolvere il problema (P’) equivale arisolvere il problema originale (P).
x*
Ricerca Operativa 1 57 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempio 1: Soluzione con l’algoritmo del simplesso dell’esempio informa standard
max x x xx x xx x xx x x
x x x x x
0 1 2
1 2 3
1 2 4
1 2 5
1 2 3 4 5
250
6 2 210 0 0 0 0
= ++ + =
− + + =+ + =
≥ ≥ ≥ ≥ ≥
Il problema può essere inizializzato usando le variabili di slack.
xxxx
B6
3
4
5
5021
=
=
x x x x xxxxx
3 4 5 1 2
0
3
4
5
0 0 0 2 1 01 0 0 1 1 50 1 0 1 1 00 0 1 6 2 21
− −
−
è la base iniziale (degenere).
Il tableau iniziale
il Pivot
5 1
21 6 7 2−
=
entrante
uscente
1a iterazione: x1 entra in base x5 esce dalla base
Esempi di Problemi di Programmazione Lineare
Ricerca Operativa 1 58 Corso di Laurea in Ingegneria Industriale e Gestionale
x x x x xxxxx
3 4 5 1 2
0
3
4
1
0 0 1 3 0 1 3 71 0 1 6 0 2 3 3 20 1 1 6 0 4 3 7 20 0 1 6 1 1 3 7 2
−−
Il tableau dopo la 1a iterazione.
il Pivot
3 2 3 2 9 4 2 257 2 3 4 21 8 2 627 2 3 21 2 10 5
⋅ = =⋅ = =⋅ = =
( , )( , )
( , )
entrante
uscente
nuovovalore
obiettivo
Il tableau dopo la 2a iterazione.
2a iterazione: x2 entra in base x3 esce dalla base
x x x x xxxxx
3 4 5 1 2
0
2
4
1
1 2 0 1 4 0 0 31 43 2 0 1 4 0 1 9 4
2 1 1 2 0 0 1 21 2 0 1 4 1 0 11 4
−−
−
coeff. non negativi
valore ottimoobiettivo
soluzioneottima
baseottima
Il tableau è ottimo!
Ricerca Operativa 1 59 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempio 2: L’azienda che produce vernici.
max Z x xx xx xx x
xx x
E I
E I
E I
E I
I
E I
= ++ ≤+ ≤
− + ≤≤
≥ ≥
3 22 6
2 812
0 0
Deve essere trasformatoin forma standard.
max
, , , , ,
Z x xx x sx x sx x s
x sx x s s s s
E I
E I
E I
E I
I
E I
= ++ + =+ + =
− + + =+ =
≥ ≥ ≥ ≥ ≥ ≥
3 22 6
2 812
0 0 0 0 0 0
1
2
3
4
1 2 3 4
Forma standard:n=6, m=4
Il problema può essere inizializzato usando le variabili di slack.
x
ssss
B =
=
1
2
3
4
6812
La base iniziale
Ricerca Operativa 1 60 Corso di Laurea in Ingegneria Industriale e Gestionale
x x s s s sz
ssss
E I 1 2 3 4
1
2
3
4
3 2 0 0 0 0 01 2 1 0 0 0 62 1 0 1 0 0 81 1 0 0 1 0 10 1 0 0 0 1 2
− −
−
Il tableau iniziale
il Pivot 6 18 2−−
entrante
uscente
1a iterazione: xE entra in base s2 esce dalla base
Il tableau dopo la 1a iterazione.
x x s s s sz
sxss
E I
E
1 2 3 4
1
3
4
0 1 2 0 3 2 0 0 120 3 2 1 1 2 0 0 21 1 2 0 1 2 0 0 40 3 2 0 1 2 1 0 50 1 0 0 0 1 2
−−
il Pivot
2 2 3 4 34 2 85 2 3 10 32
⋅ =⋅ =⋅ =
entrante
uscente
2a iterazione: xI entra in base s1 esce dalla base
Ricerca Operativa 1 61 Corso di Laurea in Ingegneria Industriale e Gestionale
Il tableau dopo la 2a iterazione.
x x s s s sz
xxss
E I
I
E
1 2 3 4
3
4
0 0 1 3 4 3 0 0 38 30 1 2 3 1 3 0 0 4 31 0 1 3 2 3 0 0 10 30 0 1 1 1 0 30 0 2 3 1 3 0 1 2 3
−−
−−
coeff. non negativi
valore ottimoobiettivo
soluzioneottima
baseottima
Il tableau è ottimo!
Ricerca Operativa 1 62 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempio 3: Soluzione illimitata.
max x xx x
x x
0 1
1 2
1 2
10 0
=+ ≥
≥ ≥
Un problema molto semplice:
In forma standard max x xx x x
x x x
0 1
1 2 3
1 2 3
10 0 0
=+ − =
≥ ≥ ≥
1 2
2
1 X
x1
x2
La regione di ammissibilità X è aperta
Il problema ha n=3, m=1
Adottiamo il punto (1,0) come soluzione di base iniziale.
[ ] [ ]x x xxxB N= = =
=12
31 0
Ricerca Operativa 1 63 Corso di Laurea in Ingegneria Industriale e Gestionale
Costruendo il tableau iniziale si nota che l’obiettivo deve essereespresso in funzione delle variabili fuori base (si deve eliminare x1).
x x xxx
1 2 3
0
1
1 0 0 01 1 1 1
−−
le variabili in basedevono avere coeff.nullo nell’obiettivo
Il tableau iniziale si ricava eliminando x1 dalla riga dell’obiettivo.
x x xxx
1 2 3
0
1
0 1 1 11 1 1 1
−−
ora anche il valoredell’obiettivo è corretto
la variabile x3 entra in basesenza mai violare il vincolo.
La soluzione ottima è all’infinito.Aumentando x3 ci si muove lungo l’asse x1 (direzione estrema).
1 2
2
1X
x1
x2 funz. obiettivo
...
Ricerca Operativa 1 64 Corso di Laurea in Ingegneria Industriale e Gestionale
Quante sono le possibili direzioni estreme di un poliedro X?
[ ]Ad B Ndd
Bd Nd
d B Nd
B
NB N
B N
= ⇒
= ⇒ + =
⇒ = − −
0 0 0
1
d N
dove è la j-esima colonna di N.
quindi è possibile fissare arbitrariamente e calcolare unadirezione estrema come
ddd
B Nde
B
NN
j=
= −
−1
Una scelta possibile è fissare
d e j esimo
n m
eN j jn m= =
−
−
∈ −
0
1
0
1M
M
R ⇒ = −
−d
B ae
j
j
1
a j
Per ogni matrice B possono essere scelti n-m vettori distinti.Quindi il numero massimo di possibili direzioni estreme è
a j
( )n mnm
−
Ricerca Operativa 1 65 Corso di Laurea in Ingegneria Industriale e Gestionale
Si può verificare che
Nell’esempio l’asse di x1 corrisponde a
La possibilità di avere soluzioni ottime finite è regolata dalseguente teorema
dB ae
jj
j= −
=− ⋅ −
=
=−1 1 1
01
101
2( )
[ ]Ad n m= ⇒ −
= − = = =0 1 1 1101
1 1 0 3 1( , )
6. Teorema
Dato il problema di PL
siano dj, j=1,...,D le direzioni estreme del poliedro X non vuotodei vincoli.
Condizione necessaria e sufficiente perchè esista soluzioneottima finita è
in tal caso l’ottimo coincide con un punto estremo di X.
max x c xAx bx
T0
0
==
≥
c d j DTj ≤ ∀ =0 1,...,
Ricerca Operativa 1 66 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempio 4: Inizializzazione con il “Two-phases method” .
min
,
x x xx x
x xx x
x x
0 1 2
1 2
1 2
1 2
1 2
43 3
4 3 62 4
0 0
= ++ =
+ ≥+ ≤
≥ ≥
in forma standard max
, , ,
x x xx x
x x xx x x
x x x x
0 1 2
1 2
1 2 3
1 2 4
1 2 3 4
43 3
4 3 62 4
0 0 0 0
= − −+ =
+ − =+ + =
≥ ≥ ≥ ≥
I Fase (Definizione e soluzione del problema ausiliario)
min
, , , , ,
z y yx x y
x x x yx x x
x x x x y y
= ++ + =
+ − + =+ + =
≥ ≥ ≥ ≥ ≥ ≥
1 2
1 2 1
1 2 3 2
1 2 4
1 2 3 4 1 2
3 34 3 6
2 40 0 0 0 0 0
⇒ = − −max z y y1 2
Ricerca Operativa 1 67 Corso di Laurea in Ingegneria Industriale e Gestionale
x x x x y yz
yyx
1 2 3 4 1 2
1
2
4
0 0 0 0 1 1 03 1 0 0 1 0 34 3 1 0 0 1 61 2 0 1 0 0 4
−
Il tableau iniziale
si devono eliminare levar. di base dalla rigadell’obiettivo
x x x x y yz
yyx
1 2 3 4 1 2
1
2
4
7 4 1 0 0 0 93 1 0 0 1 0 34 3 1 0 0 1 61 2 0 1 0 0 4
− − −
−
Il tableau finalex x x x y y
zxxx
1 2 3 4 1 2
1
2
4
0 0 0 0 1 1 01 0 1 5 0 3 5 1 5 3 50 1 3 5 0 4 5 3 5 6 50 0 1 1 1 1 1
−− −
−
con questi valori può essere inizializzato il tableau del problema originale
Ricerca Operativa 1 68 Corso di Laurea in Ingegneria Industriale e Gestionale
x x x xxxxx
1 2 3 4
0
1
2
4
4 1 0 0 01 0 1 5 0 3 50 1 3 5 0 6 50 0 1 1 1
−
II Fase (Inizializzazione e soluzione del problema originale)
si devono eliminare levar. di base dalla rigadell’obiettivo
x x x xxxxx
1 2 3 4
0
1
2
4
0 0 1 5 0 18 51 0 1 5 0 3 50 1 3 5 0 6 50 0 1 1 1
− −
−
Il tableau iniziale del problema originale
Ricerca Operativa 1 69 Corso di Laurea in Ingegneria Industriale e Gestionale
Programmazione Matematica a Numeri Interi(Integer Programming - IP)
Problema di ottimizzazione di una funzione obiettivo linearesoggetta al rispetto di un insieme di vincoli lineari in cui tutte oparte delle variabili possono assumere solo valori interi
max c x h yAx Gy b
x y
T T
n p
++ ≤
∈ ∈+ +Z R
I problemi in cui sono presenti variabili intere sono spesso ancheindicati come Problemi Combinatorici.
Mixed IP Problem - MIP
x è il vettore delle variabili intere positivey è il vettore delle variabili reali positive
Alcuni esempi di applicazioni:• Production Scheduling (assegnazione e sequenziazione di operazioni su
macchine)• Distribuzione di beni• Facility location (localizzazione di impianti)• Progettazione di reti (trasporto e comunicazione)• Pianificazione di investimenti
Ricerca Operativa 1 70 Corso di Laurea in Ingegneria Industriale e Gestionale
Formulazione di problemi a numeri interi
I modelli di ottimizzazione a numeri interi vengono introdottiquando si deve ottimizzare l’uso di risorse non divisibili o la sceltatra alternative discrete.
Un tipo di modello molto importante e comune è quello in cui levariabili intere possono assumere solo i valori 0 e 1 (0-1Programming).
Valori binari sono usati per rappresentare la scelta tra duepossibilità o il verificarsi o meno di una condizione:
xse l eventosi verificase l evento nonsi verifica
= 10
''
Esempi di IP:• Il problema dello zaino (Knapsack Problem)• Il problema dell’assegnazione (Matching Problem)• Il problema del costo fisso (Fixed Charge Problem)• Il problema del sequenziamento (Sequencing Problem)• I problemi di copertura, partizione ed impaccamento
(Set Covering, Partitioning and Packing Problems)• Problemi sui grafi (Teoria dei Grafi):
• Percorso minimo (Shortest Path)• Commesso viaggiatore (Traveling Salesman Problem)
Ricerca Operativa 1 71 Corso di Laurea in Ingegneria Industriale e Gestionale
Il problema dello zaino(Knapsack Problem)
Si hanno n possibili progetti da realizzare con un budget massimo bdisponibile.Se un progetto j, j=1,...,n, viene finanziato deve essere investito uncapitale aj.Dalla realizzazione di un progetto j si ricava un guadagno cj.Un progetto non può essere realizzato parzialmente, ma può essereeseguito completamente o non eseguito affatto.
Il problema: stabilire quali progetti realizzare per ottenere il massimoguadagno senza superare il budget disponibile.
Il problema si formula introducendo n variabili binarie:
xil progetto j è finanziatoil progetto j non è finanziato
j n
j =
=
10
1,...,
{ }
max
, ,...,
c x
a x b
x j n
j jj
n
j jj
n
j
=
=
∑
∑ ≤
∈ = ∀ =
1
1
0 1 1B
Knapsack binario
Ricerca Operativa 1 72 Corso di Laurea in Ingegneria Industriale e Gestionale
Una variante: la realizzazione di progetti nell’arco di m mesi.
Supponendo che la realizzazione di ciascun progetto richieda unfinanziamento nell’arco di m mesi:• aij il finanziamento per il progetto j nel mese i, j=1,...,n; i=1,...,m• bi budget disponibile nel mese i, i=1,...,m
{ }
max
,...,
, ,...,
c x
a x b i m
x j n
j jj
n
ij jj
ni
j
=
=
∑
∑ ≤ ∀ =
∈ = ∀ =
1
11
0 1 1B
Knapsackmultidimensionale
Problema dello zaino: si deve stabilire quali tra n oggetti portare inuno zaino sapendo che il peso massimo trasportabile è b, che ognioggetto j pesa aj e che ad ogni oggetto è associata un’utilità (valore) cj.
Ricerca Operativa 1 73 Corso di Laurea in Ingegneria Industriale e Gestionale
Il problema dell’assegnamento(Matching Problem)
Si devono assegnare m attività ad n persone (sia n m).Una volta stabilito l’assegnamento , ogni persona eseguirà solol’attività che gli viene assegnata.Se alla persona j, j=1,...,n, viene assegnata l’attività i, i=1,..., m, ilcosto pagato è cij.
Il problema : assegnare tutte le attività alle persone in modo daminimizzare il costo pagato.
Si può rappresentare il problema con un grafo:
≥
M MAttività (i) Persone (j)cij
Il problema consiste nello stabilire quali archi introdurre tra i nodi“attività“ ed i nodi “persona” in modo che su ogni nodo “attività“incida esattamente un arco e su ogni nodo “persona” incida al più unarco.
Ricerca Operativa 1 74 Corso di Laurea in Ingegneria Industriale e Gestionale
Il problema si formula introducendo mxn variabili binarie:
xl attività i è assegnata alla persona jl attività i non è assegnata alla persona j
i mj n
ij =
==
10
11
''
,...,,...,
{ }
min
,..., ( )
,..., ( )
, ,..., ,...,
i
mij ij
j
n
ijj
n
iji
m
ji
c x
x i m a
x j n b
x i m j n
= =
=
=
∑ ∑
∑ = ∀ =
∑ ≤ ∀ =
∈ = ∀ = ∀ =
1 1
1
1
1 1
1 1
0 1 1 1B
Matching binario
Vincoli (a): ogni attività e’ assegnata ad una persona
Vincoli (b): ogni persona svolge al più una sola attività
Ricerca Operativa 1 75 Corso di Laurea in Ingegneria Industriale e Gestionale
Il problema del costo fisso(Fixed Charge Problem)
Si consideri un problema di trasporto tra m produttori ed nconsumatori (ad esempio, un trasporto di gas o petrolio).
Ogni produttore è connesso ad ogni consumatore da un canaleattraverso cui può avvenire il trasporto (e.g., un gasdotto).
Per avere un flusso trasportato tra un produttore i, i=1,...,m, ed unconsumatore j=1,...,n, si deve:
• pagare un costo fisso fij per l’affitto del canale di trasporto tra i e j;• pagare cij per ogni unità trasportata tra i e j.
La disponibilità massima del produttore i è si, i=1,...,m.
La richiesta del consumatore j che deve essere soddisfatta è rj, j=1,...,n.
Il problema : stabilire quali canali di trasporto tra i produttori ed iconsumatori affittare e quale flusso trasportare su tali canali in mododa minimizzare il costo totale , soddisfacendo la richiesta deiconsumatori.
Le variabili:
• , i=1,...,m; j=1,...,n, la quantità trasportata tra i e j
• , i=1,...,m; j=1,...,n,
xij ∈R
yij ∈B yse si utilizza il canale tra i e jse non si utilizza il canale tra i e jij =
10
Ricerca Operativa 1 76 Corso di Laurea in Ingegneria Industriale e Gestionale
costo totale
xij
cijxij
fij
La funzione di costo ha una discontinuità nell’origine.Ad esempio per la variabile xij
Il problema deltrasporto con costofisso
min ( )
,..., ( )
,..., ( )
, ( )
,..., ,...,
i
mij ij
j
nij ij
ijj
ni
iji
mj
ij ij
ij ij
c x f y
x s i m a
x r j n b
x My i j c
x y i m j n
= =
=
=
+
∑ ∑ +
∑ ≤ ∀ =
∑ = ∀ =
≤ ∀∈ ∈ ∀ = ∀ =
1 1
1
1
1
1
1 1R B
Vincoli (a) e (b): i vincoli del problema del trasporto.Vincoli (c): un flusso x ij può esistere solo se si paga il costo fisso perusare il canale tra i e j. M è un coefficiente molto più grande dellamassima quantità trasportabile tra i e j. Se fosse specificato il flussomassimo, qij, tra i e j, i vincoli (c) risulterebbero
x q y i jij ij ij≤ ∀ ,
Ricerca Operativa 1 77 Corso di Laurea in Ingegneria Industriale e Gestionale
Il problema del sequenziamento(Sequencing Problem)
Si devono sequenziare n attività (job) indipendenti su una macchina.
La macchina può eseguire solo un job alla volta.
L’esecuzione dei job non può essere interrotta.
Il tempo necessario per l’esecuzione (processing time) del job i,i=1,...,n, è pi.
Viene pagato un costo che , in generale , è funzione del temponecessario a completare i job (ad es ., il tempo medio dicompletamento dei job).
Il problema : determinare la sequenza con cui eseguire i job sullamacchina in modo da minimizzare il costo.
Le variabili continue :
• , i=1,...,n, l’istante di inizio esecuzione del job i.
Dati due job i e j, si possono verificare due casi:
1. i precede j
2. j precede i
ti ∈ +R
⇒ ≥ +t t pj i i
⇒ ≥ +t t pi j j
Vincoli disgiuntivi
I due casi sono mutuamente esclusivi, quindi solo un vincolo tra 1. e2. può essere soddisfatto da una soluzione del problema.
Ricerca Operativa 1 78 Corso di Laurea in Ingegneria Industriale e Gestionale
Si introduce un variabile binaria:
yse i precede jse j precede iij =
10
y i n j nij ∈ = =B, ,..., ; ,...,1 1
quindi per ogni coppia di job, i, j, i vincoli disgiuntivi del problema siesprimono come:
t t p M y a
t t p My bj i i ij
i j j ij
≥ + − −≥ + −
( ) ( )
( )
1
dove M è un coefficiente costante positivo scelto molto maggiore di
ogni altro coefficiente (in particolare della ) del problema.
Se yij=1:• il vincolo (a) coincide con il vincolo 1.• il vincolo (b) è sempre soddisfatto poichè M>>tj-ti+pj
pii
n
=∑
1
Se yij=0:• il vincolo (a) è sempre soddisfatto poichè M>>ti-tj+pi• il vincolo (b) coincide con il vincolo 2.
Il vettore delle yij rappresenta l’ordine di esecuzione dei job.
Ricerca Operativa 1 79 Corso di Laurea in Ingegneria Industriale e Gestionale
Metodi di soluzione dei problemi di IP
( ) maxIP x c xAx b
x
T
n
0 ==
∈ +Z
Consideriamo un problema (IP)
Il poliedro P associato ai vincoli di (IP) contiene tutti e soli i puntiinteri che sono soluzioni di (IP):
{ }P x Ax b xn= ∈ = ≥Z : , 0
Il rilassamento lineare (RL) di (IP) corrisponde a rimuovere da(IP) il vincolo di integrità:
( ) maxRL x c xAx b
x
T
n
0 ==
∈ +R
Il poliedro P’ associato al (RL) è
{ }P x A x b xn' : ,= ∈ = ≥R 0
quindi P’ contiene anche tutte le soluzioni ammissibili per (IP).
P P n= ∩' Z
Ricerca Operativa 1 80 Corso di Laurea in Ingegneria Industriale e Gestionale
Sia x* la soluzione ottima per (IP) (se esiste) e sia la soluzioneottima per (RL).E’ evidente che .Quindi se , la soluzione ottima di (RL) è anche la soluzioneottima di (IP).In generale, tuttavia, .
x
c x c xT T≥ *
x P∈
x P∉
Esistono tre classi di metodi di soluzione dei problemi (IP):
1) Metodi basati su una enumerazione implicita delle soluzioni
(Branch and Bound Methods)
2) Metodi basati sull’uso di “piani di taglio”
(Cutting Planes Methods)
3) Metodi specifici per particolari classi di problemi
(ad esempio, per il set covering, knapsack, ecc.)
Ricerca Operativa 1 81 Corso di Laurea in Ingegneria Industriale e Gestionale
Il metodo dei “Piani di Taglio”(Cutting Planes Method)
E’ un metodo di soluzione dei problemi (IP) di tipo generale.
L’idea di base:Se la soluzione di (RL) non è intera allora la soluzione ottimaintera è interna al poliedro P.Si aggiungono vincoli a P cercando di “ restringerlo”, inparticolare eliminando solamente parti di P che non contengonosoluzioni intere.Si risolve una sequenza di problemi rilassati sempre più vincolati.
Sia( ) maxIP x c x
Ax b
x
T
n
0 ==
∈ +Z
{ }P x Ax b xn= ∈ = ≥Z : , 0
( ) maxRL x c xAx b
x
T
n
0 ==
∈ +R
{ }P x Ax b xn0 0= ∈ = ≥R : ,
⇒x* la soluzione ottima di (IP)
⇒x° la soluzione ottima di (RL)
Il primo problema considerato è il problema (RL) ottenutorilassando (IP)
Ricerca Operativa 1 82 Corso di Laurea in Ingegneria Industriale e Gestionale
Si può costruire una sequenza di poliedri, detta sequenza di Gomory,tale che:
• ⊃ ⊃ ⊃
• ∩ =
• ∉
• ≡−
P P P
P P
x P
x x
t
in
i i
t
0 1
1
K
o
o
Z
*
La sequenza è costruita aggiungendo via via a P 0 un insieme divincoli detti tagli.
Definizione.Una disuguaglianza è un taglio per un poliedro P’associato al (RL) di un problema (IP) se, detta x° la soluzioneottima non intera del (RL), si ha:
1) soluzione ammissibile di (IP)(la disuguaglianza si dice valida);
2) (non è soddisfatta da x° )
a x aT ≥ 0
a y aT ≥ 0 ∀y
a x aT o < 0
Il metodo dei piani di taglio determina la soluzione ottima interaintroducendo un numero finito di tagli.Ogni taglio separa la soluzione non intera del (RL) corrente dallesoluzioni ammissibili per (IP).
Ricerca Operativa 1 83 Corso di Laurea in Ingegneria Industriale e Gestionale
Il taglio di Gomory (Taglio Frazionario)
Supponiamo di avere determinato la soluzione ottima di un (RL) di(IP). Le m variabili in base possono essere espresse come:
x y y x i mBi i ij jj R
= − =∑∈
0 1, ,K
dove R è l’insieme degli indici delle variabili fuori base.La soluzione corrispondente è quindi:
x yBi i i m xj j R= = = ∀ ∈0 1 0, , ;K
Supponiamo che non tutti i y i0 siano interi . Scegliamo unacomponente della base con valore non intero e cerchiamo di definirele condizioni che devono essere rispettate perchè essa sia inveceintera.
Sia i la componente non intera. Allora
y y f f
y y f fi i i i
ij ij ij ij
0 0 0 00 1
0 1
= + < <= + ≤ <
dove rappresenta il più grande intero che non supera a. a
(1)
Ricerca Operativa 1 84 Corso di Laurea in Ingegneria Industriale e Gestionale
Si può riscrivere il primo membro della i-esima equazione (1)
y x y x f x x y xi Bi ij jj R
ij jj R
Bi ij jj R
0 = + ∑ + ∑ ≥ + ∑∈ ∈ ∈{
≥ 0
x y x y y fBi ij jj R
i i i+ ∑ ≤ = +∈
0 0 0cioè
{(*)
Poichè si vuole imporre che sia intero, (*) risulta intero.Ma allora se (*) è intero non può essere superiore apoichè fi0<1.Quindi
xBi yi0
x y x yBi ij jj R
i+ ∑ ≤∈
0
Cambiando segno alla disuguaglianza e sostituendo dalla i-esimaequazione (1)
xBi
y x f x y f y x yij jj R
ij jj R
i i ij jj R
i∈ ∈ ∈∑ + ∑ − − − ∑ ≥ −0 0 0
quindi semplificando, si ottiene il taglio di Gomory (taglio frazionario)
f x fij jj R
i∈∑ ≥ 0
Ricerca Operativa 1 85 Corso di Laurea in Ingegneria Industriale e Gestionale
6. TeoremaPer ogni componente i non intera della soluzione di un (RL) ladisequazione
è un taglio rispetto al poliedro P.
f x fij jj R
i∈∑ ≥ 0
Dim. Dimostriamo che (2) è soddisfatta da ogni soluzioneammissibile di (IP).Supponiamo per assurdo che esista una soluzione w ammissibile per(IP) tale che
f w fij jj R
i∈∑ < 0
Poichè w è ammissibile ogni sua componente soddisfa il sistema
Ax Bx N x bB N= + =
in particolare la componente wi soddisfa l’i-esima equazione
w y y w y f y w f wi i ij jj R
i i ij jj R
ij jj R
= − ∑ = + − ∑ − ∑∈ ∈ ∈
0 0 0
poichè w è intero deve essere intero, e poichèf f wi ij jj R
0 − ∑ =∈
β
f e w fij j i> ≥ ⇒ < <0 0 10β allora β intero è negativo o nullo
β β≤ ⇒ − ≥ ⇒ ≥∑∈
0 0 0f w fij j ij R
che contraddice l’ipotesi (#).
(#)
(2)
Ricerca Operativa 1 86 Corso di Laurea in Ingegneria Industriale e Gestionale
Dimostriamo che (2) non è soddisfatta dalla soluzione di base nonintera x° da cui la disequazione (2) è stata generata ((2) separa x° dalnuovo poliedro ottenuto aggiungendo (2) al poliedro di (RL)).
Sia x i° la componente i- esima frazionaria della soluzione ,verifichiamo che x° soddisfa
f x fij jj R
io
∈∑ < 0
x x y f fi i i i io o> ⇒ = + > ⇒ >0 0 00 0 0
x j R fj io = ∀ ∈ ⇒ <0 0 0
Poichè la componente i-esima della soluzione di base è frazionariasi ha
e sostituendo la soluzione in (*) si ottiene
(*)
quindi x° soddisfa la (*).
Ricerca Operativa 1 87 Corso di Laurea in Ingegneria Industriale e Gestionale
Un esempio
max
,,
x x xx xx xx x
x xx x
0 1 2
1 2
1 2
1 2
1 2
1 2
250
6 2 210
= ++ ≤
− + ≤+ ≤
≥∈Z
max
, , , ,,
x x xx x xx x xx x x
x x x x xx x
0 1 2
1 2 3
1 2 4
1 2 5
1 2 3 4 5
1 2
250
6 2 210
= ++ + =
− + + =+ + =
≥∈Z
⇒
x x x x xxxxx
3 4 5 1 2
0
2
4
1
1 2 0 1 4 0 0 31 43 2 0 1 4 0 1 9 4
2 1 1 2 0 0 1 21 2 0 1 4 1 0 11 4
−−
−
Costruiamo un taglio dalla seconda riga del tableau ottimo di (RL)
12
34
143 5x x+ ≥
32
1 12
14
1 34
94
2 14
= +
− = − +
= +
i coefficienti il taglio
(1)(2)(3)
Ricerca Operativa 1 88 Corso di Laurea in Ingegneria Industriale e Gestionale
0
1
2
3
4
0 1 2 3 4
(1)
(2)
(3)
(fractional cut)
(11/4, 9/4)
x2
x1
12
34
143 5x x+ ≥sostituendo x1 ed x2 in
si ottiene 5 2 181 2x x+ ≤
che non è soddisfatta dal punto (11/4, 9/4)
Ricerca Operativa 1 89 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Metodo del Branch-and-Bound
E’ una strategia di esplorazione dello spazio delle soluzioni basatasu l’enumerazione implicita delle soluzioni:
il metodo esamina sottinsiemi disgiunti di soluzioni (branching) e livaluta sulla base di una stima della funzione obiettivo (bounding),eliminando quegli insiemi di soluzioni che non contengono lasoluzione ottima.
L’esplorazione viene effettuata risolvendo una sequenza di (RL)associati a sottinsiemi disgiunti di soluzioni.
Consideriamo il problema a numeri interi
( ) maxIP x c xAx b
x
T
n
0 ==
∈ +Z
si risolve il (RL) associato, determinando x0.
Scelta una componente non intera della soluzione , la regione diammissibilità del (RL) costituita dal poliedro
può essere partizionata in due regioni disgiunte , dando luogo a duenuovi problemi rilassati ottenuti aggiungendo a P rispettivamente unotra i due seguenti vincoli.
{ }P x Ax b xn' : ,= ∈ = ≥R 0
x x x xj j j j≤ ≥ +0 0 1
x j0
Ricerca Operativa 1 90 Corso di Laurea in Ingegneria Industriale e Gestionale
In questo modo si separa il problema originale in due problemidisgiunti. Quindi si considerano i nuovi due problemi iterando ilprocedimento.
L’esplorazione dello spazio delle soluzioni effettuato dal metodo delBranch-and-Bound si può rappresentare per mezzo di un albero(“enumeration tree”).
Ad ogni nodo è associato un (RL)
0
1 2
x xj j≤ 0 x xj j≥ +0 1
nodo 0 (RL) associato al (IP) originale
Si procede risolvendo gli (RL) associati ai nuovi nodi 1 e 2. Se lasoluzione non è intera si ramifica (branching) ulteriormentel’albero. Perchè l’esplorazione non sia totale , il branching deveessere fermato quando:
⇒
• il (RL) associato ad un nodo non ammette soluzione;• la soluzione di (RL) associato al nodo è intera;• la soluzione di (RL) associato al nodo non è intera , ma è
possibile stabilire che l’esplorazione della porzione di albero aldi sotto del nodo non conduce alla soluzione ottima (bounding).
Ricerca Operativa 1 91 Corso di Laurea in Ingegneria Industriale e Gestionale
Bounding: il principio baseSupponiamo di aver trovato una soluzione intera per (IP) risolvendo il(RL) associato al nodo 3.
0
1 2
x xj j≤ 0 x xj j≥ +0 1
3
x xk k≤ 1
4
x xk k≥ +1 1
x x0 03=
Il valore dell’obiettivo rappresenta la miglior soluzionecorrente. Poichè stiamo massimizzando , è il limite inferiore ( lowerbound) corrente per la soluzione di (IP).Quando si ramifica un nodo , il valore dell’obiettivo associato ai nodisuccessori non può essere migliore dell’obiettivo associato al nodopadre, poichè i (RL) dei nodi successori sono più vincolati del (RL)del nodo padre.Il valore dell’obiettivo associato ad un nodo il cui (RL) ha soluzionenon intera rappresenta quindi il limite superiore (upper bound) rispettoqualsiasi soluzione determinabile ramificando tale nodo.Quindi se, ad esempio, non ha più senso esplorare l’alberosotto il nodo 2 poichè le soluzioni associate ai suoi nodi non possonomigliorare la soluzione intera corrente.
x x0 03=
x x0 02=
x x0 04=
x x02
03≤
soluzioneintera
x x02
03≤
Ricerca Operativa 1 92 Corso di Laurea in Ingegneria Industriale e Gestionale
In generale, dati:
• il (RL)i associato ad un nodo i (dove Aix=bi è l’insieme dei vincolioriginali più i vincoli via via aggiunti ad ogni branching)
( ) maxRL x c x
A x b
x
i T
i i
n
0 =
=
∈ +R
• xlb, la migliore soluzione intera sino ad ora trovata esplorandol’albero
• xub, la soluzione non intera di (RL)i
c x c xT ub T lb≤ , poichè è noto che c x c xT T ubint ≤
dove xint è soluzione ottima intera di
( ) maxIP x c x
A x b
x
i T
i i
n
0 =
=
∈ +Z
allora ne consegue che c x c x c xT T ub T lbint ≤ ≤
Quindi la migliore soluzione intera contenuta in
non potrà mai essere migliore della soluzione intera corrente xlb.
{ }P x A x b xi n i i= ∈ = ≥R : , 0
se vale
Ricerca Operativa 1 93 Corso di Laurea in Ingegneria Industriale e Gestionale
0
1 2
x xj j≤ 0 x xj j≥ +0 1
3
x xk k≤ 1
4
x xk k≥ +1 1
x x0 03=
x x0 02=
x x0 04=
( )x x02
03≤
soluzione intera
nodo “pruned”
( )x x04
03≥
5
x xf f≤ 4
6
x xf f≥ +4 1
x x0 05=
x x0 06= ( )x x0
605≤
( )x x05
03≥
SoluzioneOttima Intera x5⇒
I nodi che non vengono tagliati (pruned) sono detti nodi attivi evengono esplorati.L’esplorazione termina quando non ci sono più nodi attivi.
Ricerca Operativa 1 94 Corso di Laurea in Ingegneria Industriale e Gestionale
L’algoritmo del Branch-and-Bound
1. Inizializzazione
Sia (0) il nodo attivo e P0 il poliedro associato al (RL).
Sia il valore corrente dell’obiettivo (lower bound), e
il valore iniziale dell’obiettivo del nodo (0) (upper bound
di (0)).
2. Branching
Se non esiste un nodo attivo andare al passo 7, altrimenti scegliere
il nodo attivo (j).
Se il (RL) di (j) è stato risolto andare al passo 3, altrimenti al 4.
3. Separazione
Scegliere una variabile frazionaria di base e
partizionare Pj in
creando due nuovi nodi con lo stesso upper bound del nodo j.
Vai a 2.
zlb = −∞z0 = ∞
x yBi ij=0
{ } { }P x x y P x x yj Bi ij
j Bi ij∩ ≤ ∩ ≥ +: :0 0 1
Ricerca Operativa 1 95 Corso di Laurea in Ingegneria Industriale e Gestionale
4. Soluzione di (RL)
Risolvere il (RL) associato a (j). Se non esiste soluzione tagliare il
nodo (il nodo non è più attivo) ed andare a 2.
Se esiste soluzione ottima porre ed andare al passo 5.
5. Pruning per integrità
Se non è intera andare al passo 6. Altrimenti tagliare il nodo (j)
e porre . Se il lower bound viene aggiornato, la
nuova soluzione corrente è quella associata al nodo (j).
Andare al passo 6.
6. Pruning per bound
Tagliare ogni nodo attivo (k) tale che
Andare al passo 2.
7. Terminazione
L’algoritmo termina.
Se allora (IP) non ammette soluzione.
Se la soluzione corrente associata a è ottima.
z xj j= 0x j
x j
{ }z z zlb lb j= max ,
z zk lb≤
zlb = −∞zlb ≥ −∞ zlb
Ricerca Operativa 1 96 Corso di Laurea in Ingegneria Industriale e Gestionale
Osservazioni sull’algoritmo di Branch-and-Bound
• La convergenza in un numero finito di passi è garantita se ilproblema ha soluzioni ottime finite.
• Le prestazioni dell’algoritmo sono influenzate dalle diverse politichedi scelta del nodo da ramificare al passo 3.Due strategie limite:
• Depth First (esplorazione in profondità):se il nodo corrente non è tagliato generare i due nodi figli eproseguire ad esplorare uno di essi al livello successivo.
• Breadth First (esplorazione in ampiezza):si esplorano tutti i nodi allo stesso livello prima di passare allivello successivo.
La strategia depth first richiede minor occupazione di memoria dellabreadth first ma può richiedere maggior tempo
Ricerca Operativa 1 97 Corso di Laurea in Ingegneria Industriale e Gestionale
Un esempio (grafico)
x1
x2
1 2 3 40
1
23
4 obiettivo
0
1 2
x1 1≤ x1 2≥
P
P
Q
x1
x2
1 2 3 40
1
23
4
Q
x1
x2
1 2 30
1
23
4
N
N
4
Ricerca Operativa 1 98 Corso di Laurea in Ingegneria Industriale e Gestionale
0
1 2
x1 1≤ x1 2≥P
Q N
3 4
x2 1≤ x2 2≥
5 6
x2 2≤ x2 3≥
M Rinteraottima
non ammissibile non ammissibile
x1
x2
1 2 3 40
1
23
4
M
x1
x2
1 2 30
1
23
4
R
peggiore di R
Ricerca Operativa 1 99 Corso di Laurea in Ingegneria Industriale e Gestionale
Teoria della Dualità
Problema Primale (P)
min. .
c x c xs ta x a x b
a x a x b
n n
n n
m mn n m
1 1
11 1 1 1
1 1
+ +
+ + ≥
+ + ≥
L
L
M
L
Ad ogni problema di PL (Primale) è associato un problema Duale
Problema Duale (D)
max. .
b y b ys ta y a y c
a y a y c
m m
m m
n mn m n
1 1
11 1 1 1
1 1
+ +
+ + ≤
+ + ≤
L
L
M
L
Il problema D ha tante variabili quanti sono i vincoli di P e tantivincoli quante sono le variabili di P.
In forma matriciale:
(n variabili, m vincoli) (m variabili, n vincoli)
( ) minP c xAx bx
x
T
n
≥≥
∈ℜ
0
( ) maxD b y
A y cy
y
T
T
m
≤≥
∈ℜ
0
Ricerca Operativa 1 100 Corso di Laurea in Ingegneria Industriale e Gestionale
Forma simmetrica della dualità: regole di trasformazione
≥≤
(P) (D)
max min vincoli
min max vincoli
Duale di un Primale con vincoli di uguaglianza:
( ) minP c xAx bx
x
T
n
=≥
∈ℜ
0
Ax bAx b Ax b
≥≤ ⇒ − ≥ −
equivale aAx b=
( ) max
var.
D b y
A y cy libere
y
T
T
m
≤
∈ℜ
Infatti:
quindi si introducono 2m variabili duali, u e v
max( )
,
b u b v
A u A v cu v
u v
T T
T T
m
−
− ≤≥ ≥
∈ℜ
0 0 e sostituendo y= u - v si ottiene D
Ricerca Operativa 1 101 Corso di Laurea in Ingegneria Industriale e Gestionale
Forma non simmetrica della dualità: regole di trasformazione
≥≤
(P) (D)
max min vincoli
min max vincoli
vincolo = var. libera
var. libera vincolo =
Le trasformazioni sono reversibili: il duale del duale è il primale.
La teoria della Dualità è importante perchè:
• le soluzioni di P e D sono legate tra loro;
• le soluzioni duali hanno un’interpretazione economica utileper l’analisi di sensitività (post-ottimalità);
• sulla teoria della dualità sono basati algoritmi, quali ilSimplesso Duale e l’Algoritmo Primale-Duale, alternativi alSimplesso (Primale) utili per certe classi di problemi;
• può in certi casi essere conveniente risolvere D al posto di P(conviene risolvere il problema con il minor numero divincoli)
Ricerca Operativa 1 102 Corso di Laurea in Ingegneria Industriale e Gestionale
Risultati fondamentali della Teoria della Dualità
Siano dati i problemi
( ) minP c xAx bx
T
≥≥ 0
( ) maxD b y
A y cy
T
T ≤≥ 0
1.Teorema (debole) della dualità
Siano x e y soluzioni ammissibili rispettivamente per (P) e(D), allora
c x b yT T≥
Dim.
xsoluzione Ax b
y Ax y b yT T⇒ ≥
≥ ⇒ ≥0 ( )
ysoluzione A y c
x A y x c x
T
T T T
⇒ ≤
≥ ⇒ ≤0 ( )
c x A y x x A y Ax y b yT T T T T T T≥ = = ≥( ) ( )
Ricerca Operativa 1 103 Corso di Laurea in Ingegneria Industriale e Gestionale
Corollario
Se (P) è illimitato (D) non è ammissibile
Se (D) è illimitato (P) non è ammissibile
Se (P) ha soluzione (D) ha soluzione ottimaottima finita finitaSe (D) ha soluzione (P) ha soluzione ottimaottima finita finita
2.Teorema (forte) della dualità
Se (P) e (D) ammettono soluzione ottima finita, allora perogni ottimo x* per (P) esiste una soluzione ottima y* per (D)tale che
c x b yT T* *=
La dimostrazione del Teorema della dualità forte evidenziache il valore della soluzione ottima di (D) corrispondente allasoluzione ottima di (P) valex B bB
* = −1 y c BT
BT* = −1
Ricerca Operativa 1 104 Corso di Laurea in Ingegneria Industriale e Gestionale
[ ] [ ] [ ][ ]
A y c y A c c B A c
c B A c
c B B N c c c c c B N c
c B N c
T T TBT T
BT T
BT
BT
NT
BT
BT
BT
NT
BT
NT
* *
| | |
|
≤ ⇒ ≤ ⇒ ≤
− ≤
− = − − =
= − ≤
−
−
− −
−
1
1
1 1
1
0
0 0
c B N cBT
NT− − ≤1 0
c x c x c B bTBT
B BT* *= = −1
Dim. Sia B la base associata a x*
x xx
B bB
N
* *
*=
=
−1
0
c x b yT T* *=Se allora ec B b b yBT T− =1 * y c B
TBT* = −1
Dimostriamo che è ammissibile per (D):yT*
Poichè è la condizione di ottimalità per(P) (problema di minimizzazione), è verificata l’ammissibilità.
Per la dualità debole
è estremo superiore per (D),
quindi la soluzione
ammissibile per cui
è ottima per (D).
b y c x c x yammissibileT T T≤ ≤ ∀*
y c BT
BT* = −1
c x b yT T* *=
quindi
c xT *
Ricerca Operativa 1 105 Corso di Laurea in Ingegneria Industriale e Gestionale
La base B è ottima per (P) e per (D). Siano infatti X e Yrispettivamente gli insiemi delle soluzioni ammissibili per (P) e(D)
c x b yT T* *=[ ]
0x0xbxNxB
xcxcmin
N|BA
NB
NB
NTNB
TB
≥≥=+
+
=
xxx
B bB
N=
=
−1
0
x X B b∈ ⇒ ≥−1 0
max
var.
b y
y B c
y N cy libere
T
TBT
TNT
≤
≤
y c BTBT= −1
y Y a c B B cb c B N c
T BT
BT
BT
NT∈ ⇒ ≤
≤
−−
) ( )) ( )
1
1
a c c
b c B N cBT
BT
BT
NT
)
)
≤
− ≤−1 0
(vera sempre)
c B a c j RBT j
j− − ≤ ∈1 0
sono le (n-m) condizioni diottimalità (costi ridotti) di (P)
una sol. di base per (P)la corrispondente per (D)
l’ammissibilità per (P) l’ammissibilità per (D)
La base B è ottima se e sono rispettivamente ammissibiliper (P) e (D).
x yT
Ricerca Operativa 1 106 Corso di Laurea in Ingegneria Industriale e Gestionale
• Solo in corrispondenza dell’ottimo dalla base B ammissibileper (P) si ottiene una soluzione ammissibile per (D) (che inparticolare è anche ottima).
• Ad una generica iterazione del simplesso dalla base correnteper (P) si può costruire un vettore
che non è soluzione di (D).
• Tale vettore è detto dei MOLTIPLICATORI DEL SIMPLESSO
è compare nel calcolo dei coefficienti di costo ridotto(problema di max):
πTBTc B= −1
[ ]( )c c B NNT
BT− −1
x x xI B N B b
c B N c c B b
B N
BT
NT
BT
01 1
1 10
− −− −−
s x xI A b
cT T
0
0 0−
s x x xB I B N B b
c B c B N c c B b
B N
BT
BT
NT
BT
01 1 1
1 1 10
− − −− − −−
s x x xI B N b
c c
B N
TBT
NT
0
0 0− −
Il tableau ottimo:
Nota: se la base iniziale è formata solamente da slack e tutte le slack sonofuori base all’ottimo, allora nel tableau ottimo si possono leggeredirettamente sia l’inversa della base ottima che il valore ottimo delle variabiliduali.
Ricerca Operativa 1 107 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Teorema dello “scarto complementare”(Complementary Slackness Theorem)
Consideriamo la coppia di problemi (P) e (D) in forma canonica etrasformiamoli in forma standard
( ) minP c xAx bx
T
≥≥ 0
( ) maxD b y
A y cy
T
T ≤≥ 0
Ad ogni variabile di (P) è associato un vincolo di (D) e quindi lacorrispondente variabile di slack e viceversa.
Ax Is bx ns m disurplus
− =≥≥
00
var.var.
A y Iv cy mv n dislack
T + =≥≥
00
var.var.
3.Teorema della slackness complementare
Data la coppia di soluzioni x e y rispettivamente ammissibiliper (P) e (D), x e y sono ottime per (P) e (D) se e solo se
s y a x b y j m
v x c a y x i n
j jj
j j
i i i iT
i
= − = =
= − = =
( ) , ,
( ) , ,
0 1
0 1
K
K
dove è il vettore riga j-esima di Aè il vettore colonna i-esima di A
a j
ai
Ricerca Operativa 1 108 Corso di Laurea in Ingegneria Industriale e Gestionale
Nota: Il teorema stabilisce che:a x a y c
b a y c x
c y a x b
d a x b y
i iT
i
iT
i i
jj
jj
j j
.
.
.
.
> ⇒ =
< ⇒ =
> ⇒ =
> ⇒ =
0
0
0
0
(vincolo duale saturo: vi=0)
(vincolo duale non saturo: vi>0)
(vincolo primale saturo: sj=0)
(vincolo primale non saturo: sj>0)
Dim. (Necessità)
Siano e le soluzioni ottime. Allora si ha
Inoltre
e
da cui
quindi poichè vale la dualità forte le relazioni precedenti sonoverificate come uguaglianze. Consideriamo ad es. la prima
x y* *
A y c y Ax c x c x y AxT T T T T* * * * * * *≤ ⇒ ≤ ⇒ ≥
c x b yT T* *=
Ax b y Ax y bT T* * * *≥ ⇒ ≥
c x y Ax y bT T T* * * *≥ ≥
c x y Ax c y A xT T T T* * * * *( )= ⇒ − = 0
poichè per ipotesi c y A e xT T− ≥ ≥* *0 0
il prodotto deve annullarsi termine per temine e quindi segue
( ) , ,* *c a y x i ni iT
i− = =0 1K
Analogamente si giunge alla seconda relazione.
Ricerca Operativa 1 109 Corso di Laurea in Ingegneria Industriale e Gestionale
Dim. (Sufficienza)
Consideriamo vere le condizioni di slackness complementare per
la coppia di soluzioni x e y:
y b Ax y b y Ax
c y A x c x y Ax
T T T
T T T T
( )
( )
− = ⇒ =
− = ⇒ =
0
0
In forma vettoriale
( ) , ,
( ) , ,
a x b y j m
c a y x i n
jj j
i iT
i
− = =
− = =
0 1
0 1
K
K
da cui segue c x b yT T=
quindi per la dualità forte le due soluzioni sono ottime.
Ricerca Operativa 1 110 Corso di Laurea in Ingegneria Industriale e Gestionale
I grafi sono un mezzo per rappresentare relazioni binarie.
Teoria dei GrafiConcetti fondamentali
Ad esempio:• due città connesse da una strada• due calcolatori connessi in una rete telematica• due persone legate da una relazione di parentela (come, padre-
figlio)• due persone che condividono una stanza• il collegamento tra due componenti elettronici• un’operazione che deve essere eseguita da una certa macchina• ...
I grafi possono essere usati come strumento per modellare in manieraschematica un vastissimo numero di problemi decisionali.
Ad esempio:• determinare il percorso più breve che connette due città• determinare come connettere nella maniera più economica (più
efficiente) un insieme di calcolatori in una rete telematica• assegnare un insieme di operazioni ad un insieme di macchine• determinare il percorso più conveniente da far percorrere ad una
flotta di veicoli commerciali per effettuare delle consegne equindi rientrare al deposito
• ...
Ricerca Operativa 1 111 Corso di Laurea in Ingegneria Industriale e Gestionale
Argomenti trattati
• Definizioni fondamentali
• Problema dell’albero ricoprente (Spanning Tree)
• Problema del percorso minimo (Shortest Path)
• Formulazione di alcuni problemi con i grafi come problemi PLI
Definizioni fondamentali
Grafo non orientato
Un grafo non orientato G=(V,E) è dato da una coppia di insiemi finiti:
l V={v1,...,vm} l’insieme degli m Nodi di G
l E={e1,..,en}⊆VxV l’insieme degli n Archi non orientati di G
Ogni arco non orientato di G corrisponde ad una coppia non ordinata
di nodi di G ek=(vi,vj).
La presenza di un arco tra una coppia di nodi indica una relazione tra i
nodi stessi.
Ricerca Operativa 1 112 Corso di Laurea in Ingegneria Industriale e Gestionale
Un esempio: G=(V,E)v1
v5
v3
v2
v4
e1
e2
e3
e4
e5
e6
e7
{ }V v v v v v= 1 2 3 4 5, , , , { }E e e e e e e e= 1 2 3 4 5 6 7, , , , , ,
( ) ( )e v v e v v1 1 5 2 1 2= =, , L
Definizioni di base:
• un arco (v,v) è detto loop
• due nodi u,v∈V sono detti adiacenti ⇔ (u,v)∈E
• due archi e,f∈E sono detti adiacenti ⇔ e=(v,w) ed f=(v,u)
• un arco f=(u,v)∈E si dice incidente su u e su v
• l’insieme di nodi N(v)={z∈V: z adiacente a v} è detto intorno di v
in G
• l’insieme di archi δ(v)={e∈E: e incide su v} è detto stella di v in G
• δ(v) è detto grado del nodo v
Ricerca Operativa 1 113 Corso di Laurea in Ingegneria Industriale e Gestionale
Grafi e Sottografi
• H=(W,F) è detto sottografo di G=(V,E) ⇔ W⊆V e F⊆E
• H=(W,F) è detto sottografo indotto da W in G=(V,E) ⇔ W⊆V e
(u,v)∈F implica che u,v∈W e (u,v)∈E
Esempio
v1
v5
v3
v2
e1
e2
sottografo di G
v1
v5
v3
v2
e1
e2
e3e6
sottografo indotto di G
v1
v5
v3
v2
v4
e1
e2
e3
e4
e5
e6
e7G=(V,E)
Ricerca Operativa 1 114 Corso di Laurea in Ingegneria Industriale e Gestionale
• G è detto completo ⇔ contiene tutti i possibili archi, ovvero
δ(v)=m-1 ∀v∈V
• il massimo numero di archi di un grafo completo è dato da
• G è detto grafo bipartito se esiste una partizione di V=V1∪V2 taleche:
– V1∩V2=∅
– ∀e=(u,v)∈E se u∈V1 allora v∈V2 oppure se u∈V2 allora v∈V1
Esempio
m m m2
12
= −( )
grafo completo
grafo non bipartitografo bipartito
Esempio
Grafi bipartiti e grafi completi
Ricerca Operativa 1 115 Corso di Laurea in Ingegneria Industriale e Gestionale
• w+(v)={e∈E: e uscente da v} è detto stella uscente di v
• w-(v)={e∈E: e entrante in v} è detto stella entrante di v
• w(v)= w+(v)∪w-(v) è detto stella di v
• le definizioni di sottografo e sottografo indotto di un grafo orientato
sono analoghe a quelle date per i grafi non orientati
• G=(V,E) è detto orientato se, dato V={v1,...,vm}, l’insieme degliarchi E={e1,..,en} è formato da coppie ordinate di nodi.Per un grafo orientato si ha che ei=(vk,vh)≠ej=(vh,vk) ei,ej∈E
Esempio
Grafi orientati
vh vkeiCoda Testa
grafo orientato
L’arco ei si dice uscente da vh ed entrante in vk
v1
v4 v3
v2
e1 e2
e3
e6e4
e5
Ricerca Operativa 1 116 Corso di Laurea in Ingegneria Industriale e Gestionale
• Dato G=(V,E) non orientato si dice cammino (walk) in G un
insieme ordinato di nodi W={v0,v1,...,vk} con k≥1 (cammino v0-vk in
G) se (vi-1,vi)∈E ∀i=1,...,k
• I nodi v0 e vk sono gli estremi del cammino W={v0,v1,...,vk}
• Se G è orientato, W={v0,v1,...,vk} con k≥1 dove (vi-1,vi)∈E
∀i=1,...,k si dice cammino orientato in G
• Il numero di archi di W si dice lunghezza di W
• La distanza tra due nodi u e v è pari alla lunghezza minima di un
cammino tra u e v
Esempio
Cammini e percorsi
cammino orientatoW’={v1,v4,v1,v4,v2,v3}
v1
v4 v3
v2
e1 e2
e3
e6e4
e5
W={v1,v4,v3,v2}cammino
Ricerca Operativa 1 117 Corso di Laurea in Ingegneria Industriale e Gestionale
• Dato G=(V,E) non orientato si dice cammino semplice o percorso
(path) in G, P={v0,v1,...,vk} un cammino tale che tutti i nodi ed archiche lo compongono sono distinti.
Esempio
v1
v4 v3
v2
e1 e2
e3
e6
percorso(cammino semplice)
e4
e5
P’P’={v1,v4,v2,v3}
• Se esiste un cammino (orientato) tra u e v, allora esiste un cammino
semplice (orientato) tra u e v
• W={v0,v1,...,vk, v0} è detto cammino chiuso
• Un cammino semplice chiuso è detto ciclo (circuito)
cammino chiuso ciclo
1
23
45
6
ciclo orientato
Esempio
Ricerca Operativa 1 118 Corso di Laurea in Ingegneria Industriale e Gestionale
• Dato G=(V,E) un nodo v∈V si dice connesso ad un nodo z∈V se
esiste un cammino (orientato o non) tra v e z in G
• v∈V è connesso a v (riflessività)
• v∈V è connesso a z∈V ⇒ z∈V è connesso a v∈V (simmetria)
• se v∈V è connesso a z∈V e z∈V è connesso a u∈V ⇒ v∈V è
connesso a u∈V (transitività)
• L’insieme V può essere partizionato in sottinsiemi
Ci={v∈V:v è connesso a z, ∀z∈Ci}
• Il sottografo indotto da Ci in G è detto componente connessa di G
• Se G possiede una sola componente connessa si dice connesso
(∀v,z∈V v è connesso a z)
Grafi connessi e componenti connesse
componenticonnesse
grafo connesso
Esempio
Ricerca Operativa 1 119 Corso di Laurea in Ingegneria Industriale e Gestionale
• Dato G=(V,E) grafo orientato, v∈Vè fortemente connesso a z∈Vse
esistono due cammini orientati in G, il primo da v a z ed il secondo da
z a v
• Un grafo può essere partizionato in componenti fortemente connesse
in maniera analoga a quanto fatto per le semplici componenti
connesse
• In una componente fortemente connessa ogni nodo è connesso ad un
altro da un cammino orientato
• G è un grafo fortemente connesso se ha una sola componente
fortemente connessa
componentifortemente connesse
grafofortemente connesso
Esempio
Ricerca Operativa 1 120 Corso di Laurea in Ingegneria Industriale e Gestionale
Percorsi e circuiti hamiltoniani
• Un percorso hamiltoniano è un percorso che passa per tutti i nodi
del grafo una sola volta (tour)
• Un circuito hamiltoniano è un cammino hamiltoniano chiuso
circuito hamiltoniano
1
2
3
45
Problemi associati:• stabilire se un grafo ha un percorso hamiltoniano• determinare in un grafo completo il circuito hamiltoniano a peso
(costo) minimo (Travelling Salesman’s Problem, TSP)
Esempi di applicazioni:• problemi di trasporto (e.g., stabilire la rotta di un veicolo per la
distribuzione di beni ad un dato insieme di clienti)• minimizzare il costo di set-up per certi tipi di produzione
manifatturiera ciclica
Esempio
Ricerca Operativa 1 121 Corso di Laurea in Ingegneria Industriale e Gestionale
• Un cammino euleriano è un percorso che passa per ogni arco una
sola volta
• Un circuito euleriano è un cammino euleriano chiuso
circuito euleriano
Esempio
Cammini e circuiti euleriani
12
3
4
5
67
8
Esempi di applicazioni:• problemi di trasporto (e.g., stabilire la rotta di un veicolo postale in
modo da distribuire la posta in maniera efficiente - ChinesePostman’s Problem)
• problemi di ispezioni di sistemi distribuiti (e.g., reti elettriche,telefoniche, ferroviarie)
Il problema dei ponti di Konigsberg (Eulero, 1736)
A B
C
D
A B
C
D
Ricerca Operativa 1 122 Corso di Laurea in Ingegneria Industriale e Gestionale
Alberi
• Un grafo è aciclico se non contiene cicli (orientati o non)
• Un albero è un grafo connesso ed aciclico
• Ogni grafo aciclico è in generale l’unione di alberi e viene detto
foresta
Dato G=(V,E), le seguenti affermazioni sono equivalenti:
• G è un albero
• ogni coppia di nodi di G è connessa da un unico cammino
• G è aciclico eE=V-1
• G è aciclico e connettendo due nodi non adiacenti con un arco si
ottiene un grafo con un unico ciclo
• G è connesso eE=V-1
grafo aciclico(foresta)
grafo non aciclico albero
Esempio
Ricerca Operativa 1 123 Corso di Laurea in Ingegneria Industriale e Gestionale
• Dato un albero T=(V,E), si dice foglia v∈V tale cheδ(v)=1
(w(v)=1 )
• Se V≥2 allora esistono almeno due foglie
foglie di un albero
• Dato G=(V,E), si dice albero ricoprente (spanning tree) di G un
albero T=(W,F) con W=V ed F⊆E (è un sottografo di G)
un albero ricoprente
Ricerca Operativa 1 124 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Problema del Minimo Albero Ricoprente(Minimum Spanning Tree)
• Si considera un grafo G=(V,E)
• Ad ogni arco ei, i=1,...,n di G è associato un costo ci, i=1,...,n
Il problema: determinare l’albero ricoprente di G con il minimocosto associato.
Esempio7
144 10
9178
13
2
11 12
6
13
16
155
Due algoritmi:• l’algoritmo di Kruskal (Greedy Algorithm)• l’algoritmo di Prim
Esempi di applicazioni:• determinare la rete di comunicazione più affidabile• determinare la connessione tra n centri a costo minimo (e.g.,
distribuzione del gas)
Ricerca Operativa 1 125 Corso di Laurea in Ingegneria Industriale e Gestionale
Algoritmo di Kruskal (Minimum Spanning Tree)
(1) E’ dato il grafo G=(V,E) con m nodi ed n archi.
Si ordinano gli archi e1, e2,..., en in modo che i costi associatinon siano decrescenti (c1≤c2≤... ≤cn ).
Si pone E0=∅, k=1 ed il grafo ST0=(V, ∅)
(2) Se (V, Ek-1∪{ek}) è un grafo aciclico allora STk=(V, Ek) conEk=Ek-1∪{ek}, altrimenti Ek=Ek-1 e STk= STk-1
(3) Se Ek=m-1 l’algoritmo si ferma ed STk è l’albero ricoprentecercato, altrimenti k=k+1 e continuare col passo (2).
Esempio:m=9n=17
714
4 109
178
13
2
11 12
6
13
16
155
Ricerca Operativa 1 126 Corso di Laurea in Ingegneria Industriale e Gestionale
Algoritmo di Prim (Minimum Spanning Tree)
(1) E’ dato il grafo G=(V,E) con m nodi ed n archi.
Si sceglie un vertice arbitrario di G, V0={vs}, si pone E0=∅ e k=1
(2) Si connette un nodo vi∈Vk-1 con un nodo vh∈V- Vk-1 tale che ilcosto dell’arco (vi,vh) sia
e si pone Vk=Vk-1∪ {vh} e Ek=Ek-1∪ {(vi,vh)}
(3) Se Ek=m-1 l’algoritmo si ferma e ST=(Vk,Ek) è l’alberoricoprente cercato, altrimenti k=k+1 e continuare col passo (2).
Esempio:m=6n=12
717
10
10.5
9
7.511
8
1216
9.5
19
L’algoritmo di Prim O(V2) è più efficiente di quello diKruskal (O(ElogE)).
[ ]c v v c v vi hv j Vk ve V Vk
v j ve E
j e( , ) min ( , ),
( , )
=∈ − ∈ − −
∈1 1
Ricerca Operativa 1 127 Corso di Laurea in Ingegneria Industriale e Gestionale
Matrici di Incidenza dei Grafi
• Dato G=(V,E) grafo non orientato, AG=[aij], con i=1,...,m e j=1,...,n
è la matrice di incidenza di G, dove m=V ed n=E, e tale che
=
altrimenti0edicodaotestaèvse1
a jiij
matrice di incidenza di un grafo non orientato
v1v2
v4v3
e1 e2 e3
e4
e5AG =
1 0 0 0 10 1 1 0 01 0 1 1 00 1 0 1 1
e e e e e1 2 3 4 5vvvv
1
2
3
4
Esempio
Ricerca Operativa 1 128 Corso di Laurea in Ingegneria Industriale e Gestionale
• Dato G=(V,E) grafo orientato, AG=[aij], con i=1,...,m e j=1,...,n è la
matrice di incidenza di G, dove m=V ed n=E, e tale che
−
=altrimenti0
editestaèvse1edicodaèvse1
a ji
ji
ij
matrice di incidenza di un grafo orientato
v1v2
v4v3
e1 e2 e3
e4
e5 AG =
−−
−− −
1 0 0 0 10 1 1 0 01 0 1 1 00 1 0 1 1
e e e e e1 2 3 4 5vvvv
1
2
3
4
Esempio
Utilizzando la matrice di incidenza si possono ridefinire:
• w+(vi)={ej∈E: aij=-1} (stella uscente)
• w-(vi)={ej∈E: aij=1} (stella entrante)
Ricerca Operativa 1 129 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Problema del Percorso Minimo(Shortest Path Problem)
• E’ dato un grafo orientato G=(V,E)
• Ad ogni arco ei, i=1,...,n di G è associato un peso wi, i=1,...,n, conwi≥0 oppure wi≤0
• Il peso di un cammino orientato P={v0,v1,...,vK} è definito come
Il problema: determinare il percorso orientato P* di G che uniscedue nodi dati s,t∈V e che abbia peso minimo.
{ }w P w dove E e v v i Kiei EP
P i i i( ) ( , ), ,...,= ∑ = = =∈
−1 1
Osservazioni:
• Se non esiste un cammino tra s e t il problema non èammissibile
• Se esiste un ciclo orientato C in G tale che w(C)<0 (pesonegativo), il problema è illimitato
• P* è sempre un percorso (cammino semplice) ⇔ non esistonocicli con peso negativo in G
Esempio
1
3
52 -5
ciclo con peso negativo
Ricerca Operativa 1 130 Corso di Laurea in Ingegneria Industriale e Gestionale
Algoritmo di Dijkstra (Shortest Path - pesi non negativi)
Algoritmo
(1) Porre g(s)=0, U={s},
h(i)=wsi e p(i)=s ∀(s,i)∈E, mentre h(j)=∞ e p(j) non definitoper ogni altro nodo tale che (s,j)∉E.
(2) Selezionare
e porre U=U∪{i}, e g(i)=h(i). Se U=V l’algoritmo termina ed ilpercorso minimo s-t resta determinato dalla sequenza dei p(i).
(3) ∀j∉U connesso ad i ((i,j)∈E) aggiornare l’etichettah(j)=min{g(i)+wij, h(j)}. Se h(j)=g(i)+wij porre p(j)=i.
Andare al passo (2).
Notazione:• g(i) peso del percorso minimo s-i• h(i) etichetta del nodo i (valore attuale del percorso)• wij peso dell’arco (i,j)∈E• p(i) predecessore del nodo i lungo il percorso minimo• U insieme dei nodi visitati
[ ]i h ii U
=∉
arg min ( )
Ricerca Operativa 1 131 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempio: il percorso minimo tra B e D
7
2
81
G2
3 E 2
41 4
7
2
10
F3
B
A
C
D
A B C D E F G
Notazione• (h(i),p(i))• *(g(i),p(i))
(7,B) *(0,B) (1,B) (∞,-) (∞,-) (∞,-) (∞,-)*(1,B)
(4,C) (5,C) (4,C)(4,C) *(0,B) *(1,B) (∞,-) (5,C) *(4,C) (∞,-)
(7,B) *(0,B) (∞,-) (∞,-) (∞,-) (∞,-)*(1,B)*(0,B) (∞,-) (∞,-)
(4,C) *(0,B) *(1,B) (14,F) (5,C) *(4,C) (11,F)*(4,C) *(0,B) *(1,B) (14,F) (5,C) *(4,C) (11,F)*(4,C) *(0,B) *(1,B) (12,A) (5,C) *(4,C) (11,F)*(4,C) *(0,B) *(1,B) (12,A) *(5,C) *(4,C) (7,F)
*(4,C) *(0,B) *(1,B) (9,G) *(5,C) *(4,C) *(7,E)
*(4,C) *(0,B) *(1,B) *(9,G) *(5,C) *(4,C) *(7,E)
il percorso minimo è B-C-E-G-D
Ricerca Operativa 1 132 Corso di Laurea in Ingegneria Industriale e Gestionale
4
3
-2
B
A
C
Osservazioni:• l’algoritmo determina tutti i percorsi minimi tra un nodo iniziale
e gli altri• l’algoritmo può fallire se esistono archi con peso negativo
A B C
*(0,A) (∞,-) (∞,-)*(0,A) (4,A) (3,A)*(0,A) (4,A) *(3,A)*(0,A) *(4,A) (2,B) L’algoritmo si contraddice!
Esempio
Ricerca Operativa 1 133 Corso di Laurea in Ingegneria Industriale e Gestionale
Algoritmo di Bellman-Ford(Shortest Path - pesi non vincolati)
Algoritmo
(1) Porre h0(s)=0, h0(j)=∞ ∀j∈V-{s}, p(j)=j ∀j∈V e k=1
(2) ∀j∈V calcolare
Se hk(j)=hk-1(i)+wij porre p(j)=i.
(3) Se hk(j)=hk-1(j) ∀ j∈V allora g(j)= hk(j) ∀ j∈V e l’algoritmo
termina ed il percorso minimo s-t resta determinato dalla
sequenza dei p(i) Altrimenti, se k<m porre k=k+1 ed andare al
passo (2); se invece k=m, il grafo contiene un ciclo di peso
negativo, l’algoritmo termina ed il problema è illimitato.
Notazione:• g(i) peso del percorso minimo s-i• hk(i) etichetta del nodo i al passo k (valore attuale del percorso)• wij peso dell’arco (i,j)∈E• p(i) predecessore del nodo i lungo il percorso minimo
[ ]h j h j w h ik ki i j E
ijk( ) min ( ), min ( )
:( , )= +
−∈
−1 1
Ricerca Operativa 1 134 Corso di Laurea in Ingegneria Industriale e Gestionale
Esempio: il percorso minimo tra A e G
8
2-1 G
3
-3
E
1-44 4
12
-2
10
FB
A
C
D
m=7, n=12
il percorso minimo è A-C-E-G
A B C D E F G
(0,A) (∞,B) (∞,C) (∞,D) (∞,E) (∞,F) (∞,G)(4,A)
(3,C)
(7,E) (5,E)
(0,A) (8,A)(14,C)
(10,F) (6,G)(9,F)
(7,D)
(∞,D) (∞,E) (∞,F) (∞,G)(4,A)(0,A) (8,A) (∞,F) (∞,G)
(3,C)(14,C)(4,A)(0,A) (8,A)
(5,E)(3,C)(4,A)(0,A) (8,A)(6,G) (5,E)(3,C)(4,A)(0,A) (8,A)
(9,F) (6,G) (5,E)(3,C)(4,A)(0,A)
1
k
234
56
0
Ricerca Operativa 1 135 Corso di Laurea in Ingegneria Industriale e Gestionale
Formulazione di problemi combinatorici su grafi
Il Problema del Percorso Minimo (Shortest Path).
Dato un grafo orientato G=(V,E) tale che ad ogni arco èassociato un peso wij.Fissati due nodi s, t , trovare il percorso P da s a t con pesominimo.
Le variabili:
( , )i j E∈
∈V
xse i j Pse i j P
i j E
ij =∈∉
∀ ∈
10
( , )( , )
( , )
{ }
{ }
min
,
, ( , )
( , )
( , ) ( ) ( , ) ( )
( ,s) ( ) ( , ) ( )
( , ) ( ) ( , ) ( )
w x
x x j V s t
x x
x x
x i j E
ij iji j E
iji j w j
iji j w j
isi w s
sjs j w s
iti t w t
tjt j w t
ij
∈
∈ − ∈ +
∈ − ∈ +
∈ − ∈ +
∑
−∑ =∑ ∀ ∈ −
−∑ = −∑
−∑ =∑
∈ ∀ ∈
0
1
1
0 1
dove w-(j) è la stella entrante di j, e w+(j) è la stella uscente di j
Ricerca Operativa 1 136 Corso di Laurea in Ingegneria Industriale e Gestionale
Data la matrice di incidenza AG del grafo, il problema si puòscrivere come
min w xA x b
x
T
GE
=
∈B
dove x è il vettore di incidenza degli archi di G e b è un vettore di mcostanti.
b =−
0
011
M
Ricerca Operativa 1 137 Corso di Laurea in Ingegneria Industriale e Gestionale
Il Problema del Commesso Viaggiatore (Traveling Salesman Problem).
E’ dato un grafo G=(V,E). L’insieme dei nodi V={1,...,n} corrispondead un insieme di città, mentre l’insieme degli archi E corrisponde allepossibili strade che collegano coppie di città.Ad ogni strada , è associato un costo cij (che, ad es., puòrappresentare una distanza o un tempo).
Il problema: determinare un percorso chiuso che passi per tutte le cittàuna sola volta (un tour di G), in modo che il suo costo sia minimo(se G è completo il problema ammette sempre soluzione).
Le variabili:
xse la città j segue immediatamente i nel touraltrimenti
x
ij
E
=
∈
10
B| |
I vincoli:
( , )i j E∈
x i Vkik k E:( ,i)∈
∑ = ∀ ∈1
Ogni città deve essere visitata una sola volta
x i Vijj i j E:( , )∈
∑ = ∀ ∈1i
(1) (2)
Ricerca Operativa 1 138 Corso di Laurea in Ingegneria Industriale e Gestionale
Questi vincoli non sono sufficienti ad escludere la formazione disub-tour:
1
2
3
4
56
7
x x x xx x x
12 23 34 41
57 76 65
11
= = = == = = è una scelta che soddisfa i vincoli (1) e (2)
Una possibilità per escludere la formazione di sub-tour:in ogni sottografo composto da un sottinsieme di nodi taleche non deve contenere cicli.
U V⊆2 2≤ ≤ −| | | |U V
x Uiji j E i j U
≤ −∑∈ ∈
| |( , ) : ,
1
Questa condizione corrisponde ad imporre che gli archi selezionatinel sottografo U formino al più un albero.
Il numero di questi vincoli è molto elevato, poichè è dell’ordine di 2| |V
Ricerca Operativa 1 139 Corso di Laurea in Ingegneria Industriale e Gestionale