lezioni di ricerca operativa - diptem.unige.it · lezioni di ricerca operativa massimopaolucci...

139
Lezioni di Ricerca Operativa Massimo Paolucci Dipartimento di Informatica, Bioingegneria, Robotica e Ingegneria dei Sistemi massimo.[email protected] Ricerca Operativa 1 1 Corso di Laurea in Ingegneria Industriale e Gestionale Università di Genova

Upload: duongtu

Post on 15-Feb-2019

225 views

Category:

Documents


1 download

TRANSCRIPT

Lezioni di Ricerca Operativa

Massimo Paolucci

Dipartimento di Informatica, Bioingegneria, Robotica e Ingegneria dei Sistemi

[email protected]

Ricerca Operativa 1 1 Corso di Laurea in Ingegneria Industriale e Gestionale

Università di Genova

mauro
Typewritten Text
Estratto per l'insegnamento di Ricerca Operativa 1 del Corso di Laurea in Ingegneria Industriale e Gestionale A.A. 2017/2018

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