U N I V E R S I T A' D E G L I S T U D I D I B E R G A M O
DIPARTIMENTO DI MATEMATICA, STATISTICA, INFORMATICA E APPLICAZIONI
“Lorenzo Mascheroni”
Modelli Matematici per i
Mercati Finanziari I
Introduzione a GAMS
(Vittorio Moriggia)
General Algebraic Modeling
System (GAMS)
Software realizzato per problemi di
ottimizzazione lineare (LP), non-lineare
(NLP) e mista intera (MIP)
Progettato per risolvere problemi grandi
e complessi
Disponibile per personal computers,
workstations, mainframes e
supercomputers
GAMS language
GAMS consente all’utente di concentrarsi sulla
formulazione del problema attraverso un
impiego semplice del risolutore richiesto
Il linguaggio di GAMS è simile alle comuni
formalizzazioni dei problemi di ottimizzazione
Familiare a tutti coloro che hanno esperienze
di programmazione
Tipi di modelli
GAMS è in grado di formulare modelli in
diversi tipi di classi di problemi
Il passaggio da una classe all’altra è
relativamente semplice in quanto si
possono impiegare gli stessi dati, le
stesse variabili e le stesse equazioni in
differenti tipi di modelli nello stesso
istante
Tipi di modelli
GAMS supporta i seguenti tipi di modelli di base:
LP
Linear Programming
NLP
Non-Linear Programming
DNLP Non-Linear Programming with
Discontinuous Derivatives
MIP
Mixed-Integer Programming
MINLP Mixed-Integer Non-Linear Programming
MCP
Mixed Complementarity Problems
CNS
Constrained Nonlinear Systems
MPEC Mathematical Programs with Equilibrium
Constraints
Linear Programming (LP)
min cx
s.t. Ax  b
L  x U
max cx
s.t. Ax  b
L  x U
dove:
è un vettore di variabili nell’insieme dei
numeri reali
cx
è la funzione obiettivo (lineare)
Ax > b è l’insieme dei vincoli lineari
L e U sono i vettori dei limiti inferiori e superiori
delle variabili (lower e upper bounds)
x
Programmazione lineare in
GAMS
GAMS accetta sia variabili libere (senza
vincoli), sia variabili positive, sia variabili
negative. L’utente può, inoltre, specificare
degli specifici intervalli di esistenza (lower e
upper bounds)
In GAMS le equazioni sono specificate come
equazioni vere e proprie o disequazioni
“minore-uguale” o “maggiore-uguale”
Non-Linear Programming (NLP)
min f ( x)
s.t.
dove:
x
f(x)
g(x)
LeU
g ( x)  0
L  x U
variabili reali
funzione obiettivo
insieme di vincoli
bounds delle variabili
Non-Linear Programming with
Discontinuous Derivatives
min f ( x)
s.t.
dove:
x
f(x)
g(x)
LeU
g ( x)  0
L  x U
variabili reali
funzione obiettivo
insieme di vincoli
bounds delle variabili
Come NLP, ma f(x) e g(x) possono avere derivate
discontinue (contenenti ad es. abs, min, max)
Mixed-Integer Programming (MIP)
dove:
min cx  d y
s.t. Ax  By  b
L  x U
y  0,1, 2, ...
variabili reali
x
y
variabili intere
cx+dy
funzione obiettivo
Ax+By > b
insieme di vincoli
LeU
bounds delle variabili reali
{0, 1, 2, …}
insieme dei numeri interi
Mixed-Integer Non-Linear
Programming (MINLP)
dove:
min f ( x)  Dy
s.t. g ( x)  Hy  0
L  x U
y  0,1, 2, ...
x
variabili reali
y
variabili intere
f(x)+Dy
funzione obiettivo
g(x)+Hy
insieme di vincoli
LeU
bounds delle variabili reali
{0, 1, 2, …}
insieme dei numeri interi
Esempio di problema LP
Modello lineare per la soluzione del
problema dei trasporti, storicamente
utilizzato nell’evoluzione delle tecniche di
ottimizzazione [cfr. Dantzig (1963)]
Problema del trasporto
Il classico problema dei trasporti prevede un certo
numero di impianti e un certo numero di mercati
di un certo bene di cui sono noti:
il costo unitario per il trasporto da uno specifico
impianto a uno specifico mercato
la capacità produttiva di ciascun impianto
la domanda di quel bene in ciascun mercato
ci si chiede quanto bene deve essere fornito da
ciascun impianto per ciascun mercato in modo da
minimizzare il costo totale per la fornitura
Formalizzazione del problema
Indici:
i = impianti (unità produttive)
j = mercati
Dati del problema:
ai = capacità produttiva dell’impianto i (in scatole)
bj = domanda del bene nel mercato j (scatole)
cij = costo unitario per il trasporto del bene
dall’impianto i al mercato j ($/scatola)
Variabili decisionali:
xij = quantità di bene trasportata da i a j (scatole),
dove xij 0, per ogni i, j
Formalizzazione del problema
 x  a , i
2)  x  b , j
0) min  c x
1)
dove:
1)
2)
0)
j
ij
i
i
ij
j
ij ij
i
j
vincolo del limite delle capacità produttive
vincolo di soddisfazione della domanda
funzione obiettivo
Struttura del linguaggio
SETS
dati: PARAMETERS, TABLES, SCALARS
VARIABLES
EQUATIONS
dichiarazione
definizione
MODEL
SOLVE
[DISPLAY]
Riferimenti
http://www.gams.com
Scarica

Introduzione a GAMS - Università degli Studi di Bergamo