Professional Documents
Culture Documents
v1.0
SegmentationFault Team
Indice
I Programmazione Lineare 8
1 Un po’ di glossario 9
2 I poliedri 11
2.1 Riflessioni sparse sui poliedri . . . . . . . . . . . . . . . . . . . 11
2.2 Rappresentazione algebrica . . . . . . . . . . . . . . . . . . . . 11
2.3 Soluzioni di base . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Complementi 21
5.1 Cono di competenza . . . . . . . . . . . . . . . . . . . . . . . 21
5.2 Problema duale ausiliario . . . . . . . . . . . . . . . . . . . . . 21
8 Cammini minimi 30
1
9 Problemi di PL su reti capacitate 31
9.1 Ricerca dell’ottimo . . . . . . . . . . . . . . . . . . . . . . . . 32
9.2 Simplesso per flussi su reti capacitate . . . . . . . . . . . . . . 33
9.2.1 Arco entrante proveniente da L . . . . . . . . . . . . . 34
9.2.2 Arco entrante proveniente da U . . . . . . . . . . . . . 35
9.3 Max flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
10 Algoritmi su reti 38
10.1 Algoritmo di Ford-Fulkerson . . . . . . . . . . . . . . . . . . . 38
10.2 Algoritmo di Dijkstra . . . . . . . . . . . . . . . . . . . . . . . 39
10.3 Algorimto di Kruskal . . . . . . . . . . . . . . . . . . . . . . . 40
2
16.1.1 Gradiente . . . . . . . . . . . . . . . . . . . . . . . . . 55
16.1.2 Matrice hessiana . . . . . . . . . . . . . . . . . . . . . 56
16.1.3 Teoremi sui punti stazionari . . . . . . . . . . . . . . . 56
16.2 Funzione obiettivo . . . . . . . . . . . . . . . . . . . . . . . . 56
16.2.1 Regolarità . . . . . . . . . . . . . . . . . . . . . . . . . 57
16.2.2 Concavità e convessità . . . . . . . . . . . . . . . . . . 57
16.2.3 Direzione . . . . . . . . . . . . . . . . . . . . . . . . . 57
16.2.4 Coercività . . . . . . . . . . . . . . . . . . . . . . . . . 58
16.3 Tipologia dei punti cercati . . . . . . . . . . . . . . . . . . . . 58
V Modelli matematici 72
20 Modelli per problemi di PL 73
20.1 Produzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
20.2 Dieta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
20.3 Miscelazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3
21.5 Taglio di massima capacità . . . . . . . . . . . . . . . . . . . . 77
21.6 Albero dei cammini minimi . . . . . . . . . . . . . . . . . . . 77
21.7 Cammini minimi con vincoli di budget . . . . . . . . . . . . . 77
21.8 T.S.P. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
21.8.1 T.S.P. asimmetrico . . . . . . . . . . . . . . . . . . . . 78
21.8.2 T.S.P. simmetrico . . . . . . . . . . . . . . . . . . . . . 78
4
Lista delle definizioni
2 Definizione (Poliedro) . . . . . . . . . . . . . . . . . . . . . . . 11
3 Definizione (Combinazione convessa) . . . . . . . . . . . . . . 11
4 Definizione (Combinazione conica) . . . . . . . . . . . . . . . 12
5 Definizione (Vertice di un poliedro) . . . . . . . . . . . . . . . 12
6 Definizione (Soluzione di base primale) . . . . . . . . . . . . . 13
7 Definizione (Soluzione di base duale) . . . . . . . . . . . . . . 14
15 Definizione (k-albero) . . . . . . . . . . . . . . . . . . . . . . . 50
16 Definizione (convessità) . . . . . . . . . . . . . . . . . . . . . . 57
17 Definizione (coercività) . . . . . . . . . . . . . . . . . . . . . . 58
5
Lista dei teoremi
12 Teorema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
13 Teorema ((Lemma)) . . . . . . . . . . . . . . . . . . . . . . . 45
14 Teorema (di equivalenza tra PL e PLI) . . . . . . . . . . . . . 45
20 Teorema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
21 Teorema (di convergenza) . . . . . . . . . . . . . . . . . . . . 61
22 Teorema (di convergenza (bis)) . . . . . . . . . . . . . . . . . 61
6
25 Teorema (LKKTsuf f (minimo)) . . . . . . . . . . . . . . . . . 65
26 Teorema (LKKTsuf f (massimo)) . . . . . . . . . . . . . . . . . 65
27 Teorema (Teorema del secondo ordine) . . . . . . . . . . . . . 66
7
Parte I
Programmazione Lineare
8
Capitolo 1
Un po’ di glossario
9
Il problema di programmazione lineare
8
>
> min cx
>
>
>
> Xn
>
< xij = rj 8j
i=1
>
>
>
> Xm
>
> xij pi 8i
>
:
j=1
10
Capitolo 2
I poliedri
Definizione: Poliedro
Intersezione di un numero finito di semispazi chiusi
oppure
Soluzioni del sistema di disequazioni lineari Ax b
11
Definizione: Combinazione conica
y 2 Rn si dice combinazione conica di x1 ...xk 2 Rn se
k
X
i
y= ix con i 0
i=1
9V = {v 1 ...v k } v i 2 P
9E = {e1 ...ep } ⇢ Rn
tali che
P = convV coneE
I vettori e1 ...ek vengono spesso chiamati direzioni di recessione. Il simbolo
indica la somma insiemistica: A B = {x : 9a 2 A, b 2 B : x = a + b}
In parole povere, tutti i poliedri si possono scomporre come somma
di combinazioni convesse di elementi di V e coniche di elementi di
E.
Osservazioni:
12
Teorema fondamentale della PL
Dato un problema di PL (
max cx
Ax b
Supponendo che P 6= ? e che la soluzione ottima esista finita, allora
9r 2 {1...k} : max cx = cv r , x 2 P
Dato x 2 P :
Teorema
Un punto x 2 P è un vertice del poliedro se e solo se è una soluzione di
base ammissibile
bi Ai (AB1 bB ) 0 8i 2 N
13
Per testare se sia degenere
9i 2 N : bi Ai (AB1 bB ) = 0
Il problema 8
>
<min yb
yA = c
>
:
y 0
prende il nome di problema duale standard, ovvero problema di PL con
tutti vincoli di uguaglianza e le cui variabili sono vincolate in segno ad essere
positive. L’attributo standard sottolinea che qualsiasi problema di PL può
essere ricondotto in questa forma, attraverso le seguenti tecniche:
Teorema
Un punto y è vertice del poliedro duale se e solo se esso è una soluzione
di base duale ammissibile.
14
Capitolo 3
1. P = ? e D = ?
2. P = ? e min yb = 1
y2D
3. D = ? e max cx = +1
x2P
15
4. P, D 6= ? e max cx = min yb
x2P y2D
yB AB = c ! yB = cAB1 ! ȳ = (cAB1 , 0)
Passo 3
Calcoliamo cx̄ e ȳb
cx̄ = c(AB1 bB )
✓ ◆
b
ȳb = (cAB , 0) B = (cAB1 )bB
1
bN
da cui il valore calcolato nella soluzione ammissibile e nella comple-
mentare è uguale.
Ottengo cosı̀ un test di ottimalità primale: cAB1 0
Tutto quello che si è detto vale, mutatis mutandis, partendo da un pro-
blema di PL duale standard. Ciò vuol dire che, per testare l’ottimalità di
una soluzione, mi basta testare l’ammissibilità della complementare.
16
Capitolo 4
• no loop
• inversa facile
17
dove cx̄ è la soluzione calcolata nel vertice in cui mi trovo. Essendo i
tutti non negativi, il segno di cW i = c( AB1 ) = ȳi mi determinerà la
direzione in cui muovermi per raggiungere la soluzione ottima.
Riassumendo: Se sono partito da una soluzione che non era ottima, al-
meno un indice del vettore ȳ complementare a x̄ è negativa. Calcolando
cW i = c( AB1 ) = ȳi , tutti i valori cambiano di segno, quindi le compo-
nenti negative (ce ne deve essere almeno una, altrimenti sarei all’ottimo),
diventano positive e trovo almeno una direzione con valori crescenti della
funzione obiettivo. Proseguendo in quella direzione mi avvicinerò all’ottimo.
Regola dell’indice uscente h 2 B: h = min{i 2 B : ȳi < 0}
A(x̄ + W h ) = Ax̄ + AW h b
Ai x̄ + Ai W h bi 8i = 1...m
Per i 2 B
Essendo Ai x̄ = bi e 0 necessariamente Ai W h deve essere non positivo per
rispettare la disequazione. In particolare, essendo quest’ultimo il prodotto
scalare di una riga di una matrice per una colonna della sua inversa cambiata
di segno, tale prodotto potrà valere solamente o 0 o 1.
Per i 2 N
In questo caso il prodotto può assumere qualunque valore. Esplicitando :
bi Ai x̄
, ri (Ai W h > 0, i 2 N )
Ai W h
I rapporti ri prendono il nome di rapporti del simplesso. Dalla disequazione
precedente si ha che 0 min ri
L’indice k sarà appunto l’indice in cui il minimo è raggiunto. Dalla dise-
quazione precedente si ottiene anche la condizione d’uscita nel caso in
cui l’ottimo non esista finito:
Ai W h 0
Ad ogni passo del simplesso è necessario calcolare m n prodotti Ai W h
(tanti quanti gli indici non di base) e al più m n rapporti ri , in quanto
alcuni di essi potrebbero essere non positivi.
18
Geometricamente, il valore mi dice dopo quanto tempo, percorrendo lo
spigolo, ”sbatto” contro un altro vincolo. Viene preso il minimo in quanto
esso è l’ultimo entro il quale continuo ad essere nel poliedro.
Nel caso in cui ci siano più rapporti con lo stesso valore, viene preso come
k il più piccolo indice i dei rapporti.
Nel caso in cui Ai x̄ = bi , il rapporto ri risulta nullo. Mi trovo di fronte
ad una soluzione degenere. Una soluzione degenere potrebbe comunque non
avere ri = 0 in quanto, se Ai W h 0, essa non entra a far parte dei ri .
Teorema di Bland
La doppia regola anticiclo
• primo degli indici uscenti
• primo degli indici entranti
mi assicura che non si vengono a creare cicli su vertici degeneri e che l’algo-
ritmo termina in un numero finito di passi.
Data una matrice di base, ci si può trovare di fronte ad uno di questi casi:
1. x̄ e ȳ ammissibili ! ottimo
2. x̄ ammissibile e ȳ non ammissibile ! simplesso primale
3. x̄ non ammissibile e ȳ ammissibile ! simplesso duale
4. x̄ e ȳ non ammissibili ! cambio base
19
• se sono tutti non negativi allora il (P) = 1
y¯i
• altrimenti si calcolano i rapporti del simplesso ri = Ak W i
e l’indice del
minimo dei rapporti sarà l’indice uscente
20
Capitolo 5
Complementi
21
prendendo come base quella costituista dalle variabili "i . Il valore ottimo del
P
n
problema ausiliario (0 vott ci ) stabilisce se esiste una base ammissibile
i=1
per il problema duale.
22
Parte II
Programmazione Lineare su
reti
23
Capitolo 6
Introduzione
• n nodi
• m archi
• il vettore b 2 Rn
• il vettore c 2 Rm
• il vettore u 2 Rm
24
il valore -1 se l’arco è uscente, 1 se entrante e 0 se scollegato. Il modello
generale di un problema di PL su reti è quindi
8
>
<min cx
Ex = b
>
:
0xu
25
Capitolo 7
Dato il problema 8
>
<min cx
Ex = b
>
:
x 0
si evince che esso ha una forma molto simile ad un problema di PL duale
standard 8
>
<min yb
yA = c
>
:
y 0
il cui studio è sempre stato trattato supponendo A non singolare.
Nel caso delle reti abbiamo che la matrice E T = A non ha rango massimo,
in quanto una colonna è combinazione lineare delle altre e, secondo quanto
detto, sembrerebbe non avere soluzioni di base.
Nello studio delle reti il concetto di base viene rimpiazzato da quello di
albero di copertura: si definisce albero di copertura T quell’albero che
collega tutti i nodi senza creare cicli. Siano n i nodi di una rete, un albero
di copertura avrà sempre n 1 archi.
Rimuovendo un vincolo (ridondante in quanto il sistema è sovradetermi-
nato) e utilizzando un albero di copertura come base, è possibile costruire la
matrice di una visita posticipata per foglie: questà sarà sempre una matrice
triangolare con elementi non nulli sulla diagonale, la quale è non singolare
ed ammette soluzione unica.
26
Teorema di caratterizzazione delle basi su reti non capacitate
Una sottomatrice quadrata (n 1) ⇥ (n 1) di E è invertibile se e solo se si
selezionano n 1 archi relativi ad un albero di copertura.
Nel caso degenere, posso avere due alberi di copertura diversi che
generano lo stesso flusso.
⇡i + ⇡j = cij
27
Prendendo il potenziale di un nodo come riferimento (⇡ = 0), il potenziale
di base si ottiene risolvendo un sistema di n 1 equazioni (archi dell’albero
di copertura) in n 1 incognite (tutti i nodi escluso quello a potenziale asse-
gnato). Esiste tuttavia una tecnica ad ispezione diretta molto più rapida per
la costruzione del potenziale, e↵ettuando una visita anticipata dalla radice:
partendo dalla radice (potenziale assegnato), si aggiunge ad ogni arco che si
incontra il costo dell’arco se concorde, mentre si sottrae se discorde.
La condizione di ammissibilità del potenziale si ottiene studiando gli archi
che non fanno parte dell’albero di copertura: la di↵erenza di potenziale degli
archi di L deve essere inferiore al costo dell’arco
⇡i + ⇡j cij 8(i, j) 2 L
Se il potenziale eguaglia il costo dell’arco, il potenziale si dice degenere,
non degenere altrimenti.
Definizione: Costo ridotto
Dato un albero di copertura T ed il suo potenziale associato ⇡, si definisce
costo ridotto di un arco (i, j)
c⇡ij , cij + ⇡i ⇡j
Teorema di Bellman per reti non capacitate
Supponiamo di avere un albero di copertura T che generi un flusso di ba-
se ammissibile. Se i costi ridotti degli archi di L sono 0, allora siamo
all’ottimo.
28
Per determinare l’arco uscente studio come si modifica la funzione obiet-
tivo
cx(✓) = cx̄ + ✓c⇡ij
con ✓ 0 e c⇡ij < 0 in quanto viola Bellman. Posso sottrarre quindi flusso
finché un arco non si svuota (se diventasse negativo non sarebbe ammissible),
quindi
✓ = min{x¯ij }
C
Questa operazione rispetta sia i bilanci che la positività del flusso: l’arco che
si svuota sarà l’arco uscente dell’algoritmo del simplesso per flussi.
29
Capitolo 8
Cammini minimi
Uno dei problemi più noti nella letteratura sui grafi è quello dei cammini
minimi. Dato un grafo, qual è il percorso che costa meno per andare da una
parte ad un’altra? Il grafo in questione non ha né bilanci, né capacità, ma
può essere leggermente modificato per trasformarlo in un problema di PL su
reti.
Assegnamo alla sorgente il bilancio n + 1 e a tutti gli altri nodi 1.
8
>
<min cx
Ex = b
>
:
x 0
dove (
(n 1) i = radice
bi =
1 altrimenti
Questo è a tutti gli e↵etti un problema di PL su reti non capacitate: proble-
ma dell’albero orientato di costo minimo (che è un albero di copertura
in quanto il minimo è in un vertice del poliedro). Esso è un albero radica-
to nella sorgente e orientato dai padri verso i figli. Le soluzioni di base
dell’albero dei cammini minimi non sono mai degeneri. Non essendo
mai degeneri, posso prendere il costo ridotto più negativo senza possibilità di
loop. Questo implica che la velocità di queso simplesso è di gran lunga mag-
giore di quello standard. Per scrivere il flusso mi basta contare i nodi eredi
del nodo da cui esce l’arco (i bilanci sono unitari per tutti i nodi apparte la
radice). Per vedere se la soluzione è ammissibile calcolo tutti i costi ridotti.
Quello che viola Bellman con modulo massimo sarà l’arco entrante. L’arco
uscente sarà quello appartenente al vecchio albero di copertura sullo stesso
nodo dell’arco entrante.
30
Capitolo 9
Problemi di PL su reti
capacitate
che non è né primale, né duale. È comunque possibile trasformare il vincolo
di disequazione sulle capacità in un vincolo di equazione attraverso variabili
di scarto definite positive (
x+w =u
w 0
che rappresentano quanto manca a saturare l’arco. Il problema diventa quindi
8
>
> min cx + 0w
>
<Ex = b
>
> x+w =u
>
:
x, w 0
31
La matrice risulta quindi esapartizionata negli insiemi T , L, U , T 0 , L0 e
0
U.
Teorema di caratterizzazione delle basi su reti capacitate
Tutte e sole le basi sono quelle che si ottengono dalla tripartizione scegliando
T , U , T 0 , L0 . La matrice ottenuta è quadrata ed invertibile.
Il flusso si dirà
• non ammissibile se possiede componenti negative, ammissibile al-
trimenti
⇡ET = cT
32
Per testare l’ammissibilità è necessario verificare
(
⇡EL + H L cL
µH
µU 0
33
9.2.1 Arco entrante proveniente da L
Inserendo l’arco entrante in base, si viene a create un ciclo C formato dall’u-
nione degli insiemi C + (archi concordi) e C (archi discordi). Successiva-
mente, si ridistribuisce il flusso nel seguente modo
8
> +
<x¯ij + ✓ (ij) 2 C
x(✓) = x¯ij ✓ (ij) 2 C
>
:
x¯ij altrimenti
Questa redistribuzione del flusso viola qualche vincolo? Porta a migliorare
la soluzione?
34
Arco uscente per ✓ = ✓+
In questo caso, si ha che un arco di L (arco entrante) è andato in T , mentre
un arco di T (arco uscente) si è saturato a causa della ridistribuzione di flusso
ed è andato in U . È possibile che l’arco sia lo stesso, ma questo non è un
problema: la base è data dalla tripartizione, quindi il passaggio da un insieme
all’altro provoca un cambio di base anche se l’arco non resta in T .
Osservazioni
Se ✓ = 0 ci troviamo al caso degenere, mentre non è vero che nel caso degenere
✓ = 0 in quanto l’arco degenere potrebbe non essere nel ciclo.
Se C è vuoto ci troviamo nel caso in cui min ! 1: siamo davanti ad
un ciclo con costi negativi, ovvero con guadagni.
Non può accadere che ✓ = +1 in quanto nel ciclo ci sarà sempre almeno
un arco (insieme chiuso e limitato, ammette massimo e minimo).
35
Essendo ✓ 0 e c⇡ij > 0 in quanto l’arco entrante che viola Bellman proviene
da U , si vede come la f.o. diminuisca. Per ”massimizzare” il risultato voglio
✓ il più grande possibile.
Definendo
0 ✓ min{x¯ij }
C
e
0 ✓+ min
+
{uij x¯ij }
C
si ha che
0 ✓ min{✓ , ✓+ }
ma, volendo il ✓ più grande possibile
✓ = min{✓ , ✓+ }
Osservazioni
Se sul ciclo ho un arco vuoto o saturo sono al caso degere.
36
letteratura col nome di problema di flusso massimo o max flow. Per stu-
diarlo sono di interesse solo le capacità superiori degli archi, mentre possono
essere cancellati bilanci e costi. Si introducono poi un nodo fittizio sorgente
con archi uscenti e connessi alle sorgenti reali della rete, ed un nodo fittizio
destinatario con archi entranti dai nodi pozzi della rete. Le capacità degli
archi appena inseriti sono +1. Se il flusso sulla rete cosı̀ costruita è maggio-
re o uguale alla somma dei bilanci dei pozzi, allora la rete è ben progettata,
e l’ottimo esiste finito.
Eliminando i nodi fittizi e inserendo bilanci nulli su tutti i nodi, si ottiente
il seguente problema di PL
8
>
<max v + 0x
Ex = b
>
:
0 x u, v 0
con 8
>
<0 i 6= s, t
bi = v i=s
>
:
v i=t
Di fatto, portando i termini noti v e v al primo membro delle varie
equazioni, ho aggiunto una colonna alla matrice di incidenza; il che equivale
ad aver aggiunto un arco dal target alla sorgente di costo 1 e di capacità
+1.
Dato il problema, non è però necessario sviluppare un simplesso su reti
vero e proprio, in quanto è un problema particolare e sono stati sviluppati
algoritmi ad hoc.
Definizione: Taglio di una rete
Si definisce taglio di una rete una partizione dei nodi in 2 blocchi: uno che
contiene almeno l’origine (NS ) e uno almeno il target (NT ). N = NS [ NT
Definizione: Archi diretti del taglio
Dato un taglio (NS , NT ) si definiscono archi diretti del taglio A+ (NS , NT )
tutti gli archi aventi origine in NS e coda in NT .
Definizione: Capacità di taglio
Si definisce capacità di taglio la quantità
X
u(NS , NT ) , uij
(ij)2A+ (N S ,NT )
37
Capitolo 10
Algoritmi su reti
Data l’ampia di↵usione e la semplicità delle reti, sono stati sviluppati algo-
ritmi semplici ed efficienti per risolvere problemi di varia natura.
38
2. aggiorno x secondo la seguente regola (r viene aggiornato di conse-
guenza) (
xij + (ij) 2 Caum
x=
xij altrove
Definita la stella uscente dal nodo i F S(i) come l’insieme dei nodi j
raggiungibili attraverso gli archi uscenti da i, viene ora introdotto l’algoritmo
della croce per la determinazione dei cammini aumentanti. Tracciata una
corce, si inserisce nella colonna di sinistra il nodo di partenza, e su quella di
destra la stella uscente da quel nodo.
Considerando l’elenco di sinistra come una FIFO, si prende il primo nodo
e si trascrive nella colonna di sinistra e si determina la sua stella uscente. In
questo caso, bisogna considerare tutti gli archi a capacità non nulla, anche
quelli fittizzi, ma stando attenti a non inserire nodi che erano già stati inseriti
precedentemente nella croce. Proseguo cosı̀ finche nella colonna di destra non
raggiungo l’ultimo nodo. Partendo da esso e risalendo a ritroso tutti i nodi
che mi hanno permesso di raggiungerlo, ottengo un cammino aumentante.
L’algoritmo termina in un numero finito di passi.
L’uscita dell’algoritmo è corretta per il teorema del max flow/min cut. Gli
archi fittizzi ji sono necessari per eventuali ”ripensamenti”: posso ridistrui-
buire alcune unità di flusso cosı̀ da trovare il taglio corretto. Rimuovendoli
potrei non trovare la soluzione corretta. All’ultimo passo l’algoritmo della
croce si interromperà prima di raggiungere l’ultimo nodo: questo notifica
che ho ottenuto il taglio desiderato: l’insieme NS sarà formato dai nodi che
compaiono nella colonna di sinistra, mentre NT da tutti gli altri.
Inizializzazione
p = 1 0 0 ... 0
39
⇡ = 0 +1 +1 . . . +1
Passo k-esimo
Seleziono il nodo j: 8i 2 F S(j) testo la seguente condizione
⇡i > ⇡j + cji
40
Parte III
41
Capitolo 11
Introduzione
Dato il problema di PL 8
>
<max cx
Ax b
>
:
x 2 Zn
il vincolo x 2 Zn è il vincolo di interezza. Questi sono problemi mol-
to complessi dal punto di vista computazionale (problemi NP-hard ) e, nella
maggior parte dei casi, non ottengo l’ottimo, ma una sua approssimazio-
ne. Per n sufficientemente piccolo è possibile trovare l’ottimo, ma, essendo
algoritmi a complessità esponenziale, al crescere di n si giunge rapidamente
a soluzioni difficili da calcolare in maniera esatta.
42
Capitolo 12
Valutazioni superiori ed
inferiori
Il metodo classico per avere stime sull’ottimo per un problema di PLI consiste
nella stima delle valutazioni inferiori VI e delle stime superiori VS . Definito
VPott ott
LI = cxP LI
con xott
P LI la soluzione ottima del problema di PLI.
Sarà sempre verificata la seguente relazione
VI VPott
LI VS
Osservazioni
• Se VIP LI è una valutazione inferiore, allora anche dVI e è una valutazione
inferiore
43
è lo stesso che viene fatto nel simplesso primale (genero di volta in volta
valutazioni inferiori) o nel simplesso duale (genero di volta in volta valutazioni
superiori).
• VPamm
L = cxamm
PL
• VPott ott
LI = cxP LI
• VPamm amm
LI = cxP LI
44
In realtà ci sono casi in cui il punto 3 delle osservazioni precedenti non è
del tutto inutile. Infatti
Teorema
Dato il problema di PLI avente Ax b con aij , bi 0 allora i valori bxamm
PL c
sono sempre interni al poliedro.
Questo teorema è molto utile in problemi come quello di produzione o lo
zaino, in cui la matrice A ed il vettore b sono a coefficienti positivi.
Il gap è la di↵erenza tra i coefficienti angolari delle linee di iso-guadagno.
Se prendo bxott
P L c anche se per problemi di produzione è ammissibili,
non è l’ottimo. Non è nemmeno il più vicino, ma il vero ottimo può
essere del tutto diverso.
45
Capitolo 13
13.1 Rilassamento
Dato un problema di PLI di cui si sono trovate una VI ed una VS , il con-
cetto che sta alla base degli algoritmi per la riduzione del gap è quello di
rilassamento.
46
ammissibile del rilassato continuo non contententi punti a coordinate inte-
re. Si cercano dei vincoli che riducano il gap tra VI e VS e che rispettino le
seguenti proprietà
2. xott
PL > 0, ovvero deve essere un cosiddetto piano di taglio
Ottenuto un piano di taglio, esso viene inserito nel problema di PLI, del quale
si calcola l’ottimo del rilassato continuo. La regione ammissible si è ridotta,
e l’ottimo è sceso. Ho ottenuto una nuova VS e quindi il gap si è ridotto.
• xott
RC il vertice ottimo del rilassato continuo
• AB la matrice di base
• a 2 R, {a} , a bac
allora X
{e
arj }xj {(xott
RC )r }
j2N
47
Capitolo 14
48
14.1 T.S.P. asimmetrico
Problemi T.S.P. in cui il termine asimmetrico deriva dal fatto che cij 6= cji .
Un problema di T.S.P. asimmetrico si prensenta nella seguente forma
8
>min cx
>
>
>
> X n
>
>
>
> xij = 1 8i
>
>
>
> j=1
>
<X n
> xij = 1 8j
>
>
>
> i=1
X
>
>
>
> xij 1 8S 2 N
>
>
>
> i2S,j 2S
/
>
:
xij 2 {0, 1}
Valutazione inferiore
Si opera alla costruzione di un assegnamento di costo minimo.
Valutazione superiore
Si parte dall’assegnamento di costo minimo e si applica l’algoritmo delle
toppe: siano dati due cicli disgiunti (ma l’algoritmo vale anche per più
cicli, applicandolo iterativamente), si rimuovano un arco dal primo ciclo,
supponiamo ij, ed uno dal secondo, supponiamo kl. A questo punto si ”ricuce
la toppa” inserendo gli archi il e kj. Quello ottenuto è un ciclo hamiltoniano
e quindi una soluzione ammissibile. Necessariamente il valore del ciclo è
maggiore di quello dell’assegnamento di partenza, altrimenti esisterebbe un
assegnamento di costo minore di quello trovato precedentemente.
49
14.2 T.S.P. simmetrico
Problemi T.S.P. in cui il termine simmetrico deriva dal fatto che cij = cji .
Un problema di T.S.P. simmetrico si prensenta nella seguente forma
8
>
> min cx
>
> X X
>
>
>
> x hi + xik = 2
<
h<i i<k
X X
>
> x + xij 2 8S
>
> ij
>
> i2S,j 2S
/ i 2S,j2S
/
>
>
:x 2 {0, 1}
ij
Definizione: k-albero
Data una rete completa non orientata con n nodi ed n2 archi, si chiama
k-albero un sottoinsieme di archi cosı̀ formato: isolato il nodo k, si cerca
un albero di copertura per i restanti nodi. Fatto ciò, si connette il nodo k
all’albero di copertura attraverso 2 archi.
Valutazione inferiore
Per ottenere una VI si cerca quindi il k-albero di costo minimo. Posso far-
ne tanti e poi prendere il maggiore. Il k-albero di consto minimo si ottiene
costruendo un k-albero in cui l’albero di copertura è ottenuto a partire dal-
l’algoritmo d Kruskal, ed il nodo k è connesso attraverso gli archi disponibili
di costo minore.
Valutazione superiore
La soluzione ammissibile per la VS si ottiene attraverso l’algoritmo del no-
do più vicino: scelto un nodo, ci si sposta di volta in volta al successivo
50
prendendo l’arco di costo minore (ovviamente senza creare sottocicli). Pos-
so farlo scegliendo diversi nodi di partenza e, tra tutti i risultati ottenuti,
prendere quello minore.
51
Capitolo 15
52
2. VI (Pij ) < VS (P) ed è un ciclo hamiltoniano (soluzione ammissibile)
! aggiorno VS (P) dei nodi aperti e taglio al nodo corrente (taglio
post-aggiornamento)
53
Parte IV
54
Capitolo 16
Richiami di Analisi II
16.1.1 Gradiente
✓ ◆
@f @f
rf (x̄) , (x̄), . . . , (x̄)
@x1 @xn
55
16.1.2 Matrice hessiana
0 1
@2f @2f
@x21
(x̄) ... @x1 xn
(x̄)
B . .. .. C
Hf (x̄) = B
@ .. . . C
A
@2f @2f
@xn x1
(x̄) . . . @x2
(x̄)
n
• indefinita altrimenti
Teorema
Sia f : Rn ! R, f 2 C 2 e rf (x̄) = 0
allora
56
16.2.1 Regolarità
La regolarità di una funzione è definita rispetto a gradiente e matrice
hessiana. Una funzione avente gradiente e matrice hessiana appartiene a
C 2.
16.2.3 Direzione
Data una direzione d, una funzione f , un punto x̄ ed un 0, si definisce
la restrizione della funzione lungo la direzione d
( ) = f (x̄ + d)
57
16.2.4 Coercività
Definizione: coercività
Una funzione si dice coerciva se
lim f (x) = +1
kxk!+1
Teorema
Le funzioni continue e coercive hanno sempre minimo assoluto.
Le funzioni continue e con opposta coerciva hanno sempre massimo
assoluto.
58
Capitolo 17
59
Tutti gli algoritmi iterativi avranno questa forma
xk+1 = xk + tk dk
• dk ! W h di ascesa se cW h > 0
• xk+1 ! xk+1 = xk + ¯ W h
60
17.2 Direzione di ascesa
Data la direzione x̄ + td¯ (con t ¯ la restrizione
0), sia (t) , f (x̄ + td)
della funzione lungo quella direzione. 0 (0) si dice direzione di ascesa
locale, ovvero spostandomi di poco lungo quella direzione ho la certezza
che la funzione aumenti. Dal teorema delle funzioni composte si ottiene che
0 ¯
(0) = rf (x̄)d.
Teorema
Sia rf (x̄)d > 0, allora quella presa in considerazione è una direzione d’ascesa
Teorema di convergenza
Sia {xk } la successione del metodo del gradiente con ricerca esatta. Si sup-
ponga f coerciva, allora ogni punto di accumulazione di {xk } è stazionario,
indipendentemente dal punto iniziale x0
61
Il problema di questi metodi è che non danno una netta distizione tra
massimi locali e massimi assoluti. Inoltre, partendo da un punto stazionario,
la successione si ferma. Si può provare a rimediare a questo inconveniente
piastrellando il dominio: lo si suddivide in una griglia e si applica il metodo
del gradiente a partire dal centro di ogni casella; tra tutti i punti trovati si
prende quello in cui la funzione obiettivo ha il valore maggiore.
62
Capitolo 18
63
18.2 Moltiplicatori di Lagrange
Dato il problema di ottimizzazione
8
>
<min/max f#(x)
g(x) 0
>
: D
h(x) = 0
tali che
8 m p
> X X
>
> rf (x̄) + ¯ rg (x̄) + µ̄j rhj (x̄) = 0
>
< i i
i=1 j=1
>
> ¯ i gi (x̄) = 0 8i = 1...m
>
>
:
hj (x̄) = 0 8j = 1...p
tali che
8 m p
> X X
>
> ¯
<rf (x̄) +
> i rgi (x̄) + µ̄j rhj (x̄) = 0
i=1 j=1
>
> ¯ i gi (x̄) = 0 8i = 1...m
>
>
:
hj (x̄) = 0 8j = 1...p
64
Definizione: Dominio convesso
Un dominio si dice convesso quando
65
Derivando la funzione lagrangiana rispetto alla variabile (vettoriale) x si
ottiene
rx L(x, , µ) = rf (x) + rg(x) + µrh(x)
dove 0 1 0 1
rg1 (x) rh1 (x)
B .. C B C
rg(x) , @ . A, rh(x) , @ ... A
rgm (x) rhp (x)
sono le matrici iacobiane (o iacobiani) rispettivamente delle funzioni g e
h.
Il sistema del teorema LKKT può quindi essere riscritto come
8
> ¯
<rx L(x̄, , µ̄) = 0
rµ L(x̄, ¯ , µ̄) = h(x̄) = 0
>
:¯
g(x̄) = 0 (condizione di complementarità)
Nel caso non vincolato (libero) posso dire che in un punto di minimo
(o di massimo) il gradiente della funzione si annulla. Nel caso vincolato
non è il gradiente della funzione ad annullarsi, bensı̀ il gradiente della
funzione lagrangiana.
66
Capitolo 19
Quanto proposto funziona nel caso di ricerca di massimi e minimi liberi; nel
caso vincolato non è applicabile, in quanto il passo esatto potrebbe farmi
uscire dal dominio.
Dato il problema
(
max f (x) f : Rn ! R
x2P P ⇢ Rn
67
19.1 Metodo di Franke-Wolfe
Questo metodo consiste nel calcolare, ad ogni iterazione, rf (xk ) e di risolvere
il problema linearizzato nel punto xk
(
max rf (xk )x
Ax b
Tale problema è un semplice problema di Pl. Sia y k la sua soluzione, allora
dk = y k xk
che è sicuramente una direzione d’ascesa in quanto forma col gradiente un an-
golo acuto. Come restrizione su cui calcolare il massimo si prende il segmento
che congiunge i punti xk e y k
xk + t(y k xk )
| {z }
dk
con t 2 [0, 1]. La restrizione su questo segmento assicura che non si esca mai
dal poliedro. Per determinare il passo
tk+1 2 argmax f (xk + tdk )
t2[0,1]
La correttezza di questo metodo è garantita dal
Teorema di Franke-Worlfe
La successione {xk } costruita attraverso il metodo iterativo di Franke-Worlfe
converge a x̄, con x̄ soluzione di LKKT. Se la f fosse concava, allora x̄ sarebbe
punto di massimo assoluto.
68
Teorema di Armijo-Goldstein-Wolfe
Se f è limitata dal basso, esiste un intervallo [b, a] in cui le condizioni sono
verificate entrambe
Teorema
Se scelgo come passo tk dell’algoritmo del gradiente un qualunque punto
dell’intervallo [b, a] che soddisfi che condizioni di Armijo-Goldstein-Wolfe,
allora esso converge ad un punto stazionario
Caso multivariabile
Nel caso di più variabili le regole di Armijo-Goldstein-Wolfe possono essere
riscritte come
(t ) (0) 0 (0)
z }|k { z }| { z }| {
f ( xk tk rf (x )) f (x ) ↵ krf (xk )k2 tk
k k
(19.3)
dove la (t) non è altro che la f (x) del caso mono variabile in quanto è la
restrizione della funzione obiettivo lungo la direzione di massima discesa.
69
19.3 Metodo di Newton
Fino ad ora sono stati presentati solo metodi del primo ordine. Il metodo
di Newton è invece un metodo del secondo ordine, definito come segue
Hf (xk )
z }| {
xk+1 = xk [r2 f (xk )] 1 rf (xk )
H=I M T (M M T ) 1 M
con M : Rn ! Rk
Teorema di proiezione
Hy è la proiezione di y sulla varietà M y = 0
Supponiamo x0 2 P come starting point. Ad ogni iterazione definiamo
l’insieme dei vincoli attivi
I = {i : Ai xk = bi }
e la matrice di proiezione
(
I se I = ?
H=
I M T (M M T ) 1 M 6 ?
se I =
70
Per quanto riguarda il massimo spostamento tmax , basta risolvere un proble-
ma di PL in una variabile, ovvero
(
max t
A(xk + tdk ) b
Teorema
Sia 2 Rk il vettore cosı̀ definito
= (M M T ) 1 M rf (xk )
71
Parte V
Modelli matematici
72
Capitolo 20
20.1 Produzione
Supponiamo di dover produrre n oggetti, ciascuno composto da m diverse
materie prime in proporzioni diverse tra loro. La composizione va a costituire
la matrice A, in cui l’elemento aij indica la quantità di materia prima i
necessaria per il prodotto j. Ogni materia prima è disponibile in quantità bi
ed ogni prodotto viene venduto ad un prezzo cj . Il vettore x rappresenta che
quantità produrre di ciascuno prodotto. Si intende massimizzare il profitto.
8 n
> X
>
> max cj xj
>
>
>
>
< j=1
Xn
>
> aij xj bi 8i = 1 . . . m
>
>
>
> j=1
>
:
xj 0 8j = 1 . . . n
20.2 Dieta
Supponiamo di avere a disposizione n cibi contenenti m principi nutrizionali
essenziali. Supponiamo di conoscere la quantità aij dell’i esimo principio
nutrizionale contenuta ed il costo unitario cj del j esimo cibo. Si vuole de-
terminare una dieta giornaliera, ovvero un piano nutrizionale che minimizzi il
costo totale e che soddisfi il fabbisogno giornaliero minimo bi di ciascun prin-
cipio nutrizionale. Il vettore x rappresenta la quantità di cibo da introdurre
73
nella dieta. 8 n
> X
>
>min cj xj
>
>
>
>
< j=1
Xn
>
> aij xj bi 8i = 1 . . . m
>
>
>
> j=1
>
:
xj 0 8j = 1 . . . n
20.3 Miscelazione
Supponiamo di avere a disposizione alcuni prodotti che devono essere misce-
lati al fine di ottenerne altri. Nella produzione di nuovi materiali si suppone
che la miscela debba contenere almeno una certa quantità percentuale di cia-
scuno dei prodotti di base.I costi di miscelazione si suppongono proporzionali,
ed è normalmente fissata una quantità di partenza disponibile di ognuno dei
prodotti di base.
74
Capitolo 21
21.1 Trasporto
Supponiamo di avere m luoghi di produzione collegati a n luoghi di raccolta.
Supponiamo siano note le capacità produttive oi e le domande dj ed il costo
di trasporto dal luogo di produzione i a quello di raccolta j cij . Si indichi
con xij la quantità da trasportare da i a j. Si intende minimizzare il costo
di trasporto. 8
X m X n
>
>
>
> min cij xij
>
>
>
> i=1 j=1
>
> m
>
> X
< xij = dj 8j = 1 . . . n
> i=1
>
> Xn
>
>
>
> xij oi 8i = 1 . . . m
>
>
>
> j=1
>
:
x 0
75
intende minimizzare il costo complessivo.
8 n X n
> X
>
> min cij xij
>
>
>
> i=1 j=1
>
>
>
> Xn
>
< xij = 1 8j = 1 . . . n
> i=1
>
> Xn
>
>
>
> xij = 1 8i = 1 . . . m
>
>
>
> j=1
>
:
xij 2 {0, 1}
76
21.5 Taglio di massima capacità
Il problema del taglio di capacità massima è stato trattato precedentemente
in queste dispense. Viene qui presentato solo il modello matematico.
8
>
> max v + 0x
>
> 8
>
> > i 6= s, t
< <0
Ex = b bi = v i=s
>
> >
:
>
> v i=t
>
>
:0 x u, v 0
21.8 T.S.P.
Il problema del T.S.P. è stato trattato precedentemente in queste dispense.
Vengono qui presentati solo i modelli matematici.
77
21.8.1 T.S.P. asimmetrico
8
>
> min cx
>
>
>
> X n
>
> xij = 1 8i
>
>
>
>
>
>
j=1
<X n
> xij = 1 8j
>
>
>
> i=1
X
>
>
>
> xij 1 8S 2 N
>
>
>
> i2S,j 2S
/
>
:
xij 2 {0, 1}
78
Capitolo 22
22.1 Zaino
Dato un contenitore di volume b ed n oggetti, ciascuno di valore ci e volu-
me ai , vogliamo scegliere quali oggetti inserire nel contenitore in modo da
massimizzare il valore complessivo.
22.1.1 Intero
Il valore xi indica quante unità del bene i sono state selezionate.
8 n
>
> X
>
> max ci xi
>
>
>
< i=1
X n
>
> ai x i b
>
>
>
> i=1
>
: x 2 Zn
79
22.1.2 Binario
Il valore xi indica se l’i esimo bene è selezionato o meno
8 n
>
> X
>
> max ci xi
>
>
>
< i=1
Xn
>
> ai x i b
>
>
>
> i=1
>
:x 2 {0, 1}
i 8i = 1 . . . n
22.3 Dislocazione
Supponiamo di voler minimizzare il numero di postazioni da dislocare sul
territorio, scegliendo tra fisse (x con costo c) e mobili (y con costo d). Il
costo delle postazioni mobili è superiore di quello delle postazioni fisse. È
necessario coprire tutto il territorio, e le postazioni fisse possono controllare
solo il posto in cui si trovano, mentre quelle mobili anche le postazioni a
distanza unitaria. Il modello diventa
8
>
> min cx + dy
>
< X
xi + yi + yj 1 8i
>
> j2 (i)
>
:
xi 2 {0, 1}, yj 2 {0, 1}
80
22.4 Plant location
Supponiamo di avere un impianto costituito da n terminali e k concentratori.
Sostengo un costo cij per connettere un terminale i ad un concentratore j.
Voglio connettere tutti i terminali ad almeno un concentratore, minimizzando
i costi. Esiste anche un costo fj che sostengo nell’attivare il concentratore j.
8
>
> min cx + f y
>
>
>
> Xk
>
< xij = 1 8i
> j=1
>
>
>
>
> xij yj 8i, 8j
>
:
xi , yj 2 {0, 1}
22.5 Dimensionamento
Supponiamo di avere n progetti da realizzare, ciascuno dei quali richiede di
rispettare determinati requisiti, ma posso rispettarli tutti. Quali requisiti mi
conviene rispettare per massimizzare il guadagno generato dalla realizzazione
dei progetti?
8
>
> max gx
>
> m
>
> X
< yi C (C = capacità massima)
> i=1
>
>
>
> xi yj 8i, 8j 2 requisiti(i)
>
:
xi , yj 2 {0, 1}
81