Modelli Matematici per i Mercati Finanziari I 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) dove: x è 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) s.t. s.t.
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) dove: x variabili reali f(x) funzione obiettivo g(x) insieme di vincoli L e U bounds delle variabili s.t.
Non-Linear Programming with Discontinuous Derivatives dove: x variabili reali f(x) funzione obiettivo g(x) insieme di vincoli L e U bounds delle variabili Come NLP, ma f(x) e g(x) possono avere derivate discontinue (contenenti ad es. abs, min, max) s.t.
Mixed-Integer Programming (MIP) dove: x variabili reali y variabili intere cx+dy funzione obiettivo Ax+By > b insieme di vincoli L e U bounds delle variabili reali {0, 1, 2, …} insieme dei numeri interi s.t.
Mixed-Integer Non-Linear Programming (MINLP) dove: x variabili reali y variabili intere f(x)+Dy funzione obiettivo g(x)+Hy insieme di vincoli L e U bounds delle variabili reali {0, 1, 2, …} insieme dei numeri interi s.t.
Mixed Complementarity Problems (MCP) Find z, w, v such that F(z) = w-v l < z < u, w > 0, v > 0 w'(z-l) = 0, v'(u-z) = 0 MCP's arise in many application areas including applied economics, game theory, structural engineering and chemical engineering
Problemi di complementarietà mista Complementarity problems are easily formulated in the GAMS language. The only additional requirement beyond general NLP's is the definition of complementarity pairs. MCP's constitute a fairly general problem class. It encompasses systems of nonlinear equations, non-linear complementarity problems and finite dimensional variational inequalities. Also inequality-constrained linear, quadratic and nonlinear programs are MCP's (although for these problems you may expect specialized solvers to do better)
Mixed Complementarity Problems (MCP) For instance, when we set the lower bounds l to minus infinity and u to plus infinity, both w and v have to be zero. This results in the problem Find z such that F(z) = 0 which is a system of non-linear equations
Constrained Nonlinear Systems (CNS) find x F(x) = 0 subject to L < x < U G(x) < b where F and x are of equal dimension and the variables x are continuous. The (possibly empty) constraints L < x < U are not intended to be binding at the solution, but instead are included to constrain the solution to a particular domain or to avoid regions where F(x) is undefined. The (possibly empty) constraints G(x) < b are intended for the same purpose and are silently converted to equations with bounded slacks
Constrained Nonlinear Systems (CNS) find x F(x) = 0 subject to L < x < U G(x) < b The CNS model is a generalization of the square system of equations F(x) = 0. There are a number of advantages to using the CNS model type (compared to solving as an NLP with a dummy objective, say), including: A check by GAMS that the model is really square, solution/model diagnostics by the solver (e.g. singular at solution, locally unique solution), and potential improvement in solution times, by taking better advantage of the model properties.
Mathematical Programs with Equilibrium Constraints (MPEC) Maximize or Minimize f(x,y) subject to g(x,y) < 0 Lx < x < Ux F(x,y) perp-to Ly < y < Uy where x and y are vectors of continuous real variables. The variables x are often called the control or upper-level variables, while the variables y are called the state or lower-level variables. f(x,y) is the objective function. g(x,y) represents the set of traditional (i.e. NLP-type) contraints; in some cases, they can only involve the control variables x
Mathematical Programs with Equilibrium Constraints (MPEC) The function F(x,y) and the bounds Ly and Uy define the equilibrium constraints. If x is fixed, then F(x,y) and the bounds Ly and Uy define an MCP; the perp-to indicates that such a complementary relationship holds. From this definition, we see that the MPEC model type contains NLP and MCP models as special cases of MPEC. While the MPEC model formulation is very general, it also results in problems that are very difficult to solve. Work on MPEC algorithms is not nearly so advanced as that for the other model types. As a result, the MPEC solvers included in the GAMS distribution are experimental or beta versions
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 dove: vincolo del limite delle capacità produttive vincolo di soddisfazione della domanda 0) funzione obiettivo
Struttura del linguaggio SETS dati: PARAMETERS, TABLES, SCALARS VARIABLES EQUATIONS dichiarazione definizione MODEL SOLVE [DISPLAY]
Riferimenti http://www.gams.com