Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Fondamenti di Ricerca Operativa (prof. Enrico Malaguti)
- Introduzione
Per affrontare i problemi studiati dalla Ricerca Operativa si adotta un approccio modellistico:
Def: Modello → rappresentazione semplificata della realtà che ne cattura ed enfatizza alcune caratteristiche.
Una tipologia di problemi affrontati dalla R.O. sans quella dei modelli di ottimizzazione. In questi problemi è richiesto di trovare la soluzione "ottima" mediante la massimizzazione/minimizzazione di una funzione definita f. obiettivo.
Def: Funzione obiettivo → f(x): Nn → R
Nella programmazione lineare la funzione obiettivo è una f. lineare e quindi gode delle seguenti proprietà:
- f(x+y) = f(x) + f(y) ∀ x,y ε G
- f(αx) = αf(x) ∀ x ε G, ∀ α ε R
La soluzione della funzione obiettivo sarà dato da un vettore n-dimensional ottenuto mediante la minimizzazione/massimizzazione di essa. Si avrà una soluzione quando ad ogni variabile che costituisce il vettore è assegnato un preciso valore.
Partendo dalla funzione obiettivo molto spesso i problemi di ottimizzazione richiedono che siano imposti dei vincoli su uno o più parametri in ingresso alla fun. obiettivo. Tali vincoli saranno espressi tramite funzioni gi:
- gi: Nn → R t.c. gi(x) ≤ bi con i = 1,2,...,n
* OSS: Nei problemi di programmazione lineare la funzione di vincolo sarà sempre una costante quindi i vincoli saranno dati da equazioni/disequazioni lineari.
I generici modelli di ottimizzazione saranno espressi da:
- Def: Generico problema di ottimizzazione
Dati S, f: Nn → R, Funzione obiettivo:
{ max f(x) gi(x) ≤ bi con i = 1,...,n
Visto e considerato che le funzioni obiettive ammetterà in ingresso i parametri si potranno esprimere tale funzioni in forma matematica:
S: Nn → R c1x1 + c2x2 + ... + cnxn [c1 c2 c3 ... cn]
| x1 | x2 | x3 | ... | xn
Lo stesso varrà per i vincoli:
[a11 a12 a13 ... a1n] [a21 a22 a23 ... a2n] [... ... ... ... ...] [am1 am2 am3 ... amn]
b1 b2 ≥ bm
Modelli di Programmazione Lineare Intera (Mixed Integer Linear Programming)
Il M.I.L.P. costituisce un paradigma di programmazione matematica caratterizzato da:
- funzioni obiettivo lineari.
- variabili delle funzioni in esame intere.
* Oggi è altresì possibile distinguere fra Integer Linear Programming (I.P) e varianti intere di Linear Programming (L.P)
- vantaggi della programmazione lineare:
- modellizzazione efficiente
- riutilizzo dei software risolutivi
- modifiche o riconfigurazione dei problemi
- svantaggi:
- Impossibilità di contemperare un'eventuale variazione di alcuni parametri
Problema Knapsack
- Dati:
- si considera un contenitore (Knapsack) di capacità W espressa in peso.
- sono forniti n oggetti ciascuno caratterizzato da:
- wj > 0 peso del j-esimo oggetto.
- pj > 0 proposto del j-esimo oggetto.
Requisiti Iniziali:
-
∑ wj <= W --> altrimenti il problema diventerebbe banale poiché tutti gli oggetti entrerebbero nel contenitore
-
wj <= W Vj --> altrimenti il contenitore non potrebbe contenere alcun oggetto.
Obiettivo: Determinare il massimo proposto ottenibile inserendo il massimo numero di oggetti nel contenitore senza oltrepassarne la sua capacità massima
Variabile
- xj ∈ {0,1} l’“oggetto e” presente nello zaino
- xj < 0 o > altrimenti
Modello Generale di Problema Knapsack
max ∑ pj * xj j=1 ∑ wj * xj <= W vincolo (peso) j=1 xj {0,1} j = 1, 2, ... n- * Oggi in qualsiasi problema di ottimizzazione le prove astratto rappresentato da U amare l'esempio quello di selezionare ne adeguata
- * Varianti di Knapsack:
- KP con vincolo di uguaglianza:
- ∑ wj * xj = W j=1
- KP con vincolo di uguaglianza:
Vector Packing Problem
- Dati
- Ciacun Bin è dotato di k dimensioni, a ciascuna delle quali si associa una capacità massima Wt (es volumi, peso, ...)
- Ciacun oggetto Oi consegnato avrà un valore wi,t che esprime una quantità associata a ciascuna delle variabili dei Bin (tramite il parametro t).
- Modello Generale di Vector Packing
min ∑ yc j=1,...,n ∑ wj,t xc,j ≤ Wt yc c=1,...,n t=1,...,k ∑ xc,j = 1 j=1,...,n
- * Osservazione: Il vincolo fondamentale ci permette di verificare che il contenuto di ciascun Bin non oltrepassi per ciascuna delle dimensioni il suo valore massimo espresso da Wt.
Set Covering Problem
- Dati
- Viene fornita una matrice [m×n] a coefficienti binari at,j.
- A ciascuna colonna di suddetta matrice è associato un costo espresso come un vettore di dimensione n, i cui termini saranno della forma ct,j.
- Oggettivo: Coprire tutte le n righe della matrice [m×n] usando il minimo costo possibile associato alla scelta delle varie colonne.
- Variabili
- xj ∈ {0, 1} 1 <> la colonna j è parte della soluzione e 0 <> altrimenti.
- Modello Generale di Set Covering Problem
min ∑ cjxj j=1,...,n ∑ at,j xj > 1 t=1,...,m xj ∈ {0,1} j=1,...,n
- * Osservazione: La matrice fornita come parte del problema è a coefficienti ti binari, cio` significa che: at,j ∈ {0,1} t → aj = {1 <> l-esima riga è coperta dall'elemento 0 altrimenti}
Modello Generale di Capacitated Facility Location Problem
min{xij, yi} (∑i=1m ∑j=1n fi yi + ∑i=1m ∑j=1n cij xij)
- ∑i=1m xij = 1 for j = 1, ..., n
- ∑j=1n dj xij ≤ bi yi; j = 1, ..., n
- dj ∈ {0, 1, 3}
- yi ∈ {0, 1}
* ODS: I vincoli∑ dj xij ≤ bj yi sono equivalenti a:∑ dj xij ≤ bj
* ODS: Nella funzione obiettivo si possono individuare due termini di significato distinto
min (∑i=1m ∑j=1n fi yi + ∑i=1m ∑j=1n cij xij)
- Costi variabili: Influenti ai sensi dei clienti
- Costi fissi: Di apertura delle facilità
Soluzione dei Problemi di Programmazione Lineare Intera
Finora abbiamo considerato solo modelli di programmazione intera, cioè caratterizzati solamente da variabili intere e perciò descrivibili tramite uno schema generale:
(p) zP = min CT x Ax ≥ d x ≥ 0, intero
- CT: Vettore trasposto dei costi
- x: Variabile intera
- zp: Soluzione ottima
È possibile osservare che i vincoli di interezza possono anche essere descritti mediante funzioni (f.d. di vincolo) "non" lineari:
xi "intera" ≤> sin(πxi) = 0
xi "binaria" ≤> 1/2 (1 + cos(πxi)) = 3/2 - x
- Potremmo quindi dire che la non linearità è "compensata" nella condizione di interezza.
- Da ciò si può intendere che la programmazione lineare intera è intrinsecamente non lineare visto lo considera.