Modellazione GAMS. Sintassi di Base, Esempi. Domenico Salvagnin

Documenti analoghi
Scopo del laboratorio

Miscelazione di benzine

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Introduzione all uso di FICO Xpress. Metodi di Ottimizzazione per la Logistica e la Produzione

Introduzione alla Ricerca Operativa. Cos è la Ricerca Operativa? Modellazione di problemi decisionali Fasi di uno studio di RO Applicazioni della RO

STORIA E CARATTERISTICHE

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli

Soluzione di problemi di ottimizzazione

Introduzione. AMPL Introduzione. F. Rinaldi. Dipartimento di Matematica Università di Padova. Corso di Laurea Matematica. F. Rinaldi AMPL Introduzione

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Array multidimensionali e stringhe

Manipolazioni elementari di flussi di testo strutturati

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

Prefazione... xi. Da leggere prima di iniziare...xiv. Capitolo 1 Introduzione a JavaScript Sezione A Programmazione, HTML e JavaScript...

Costrutti condizionali e iterativi

Corso di Fondamenti di Informatica

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Programmazione in Java (I modulo)

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Guida introduttiva al PHP

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

<Nome Tabella>.<attributo>

Capitolo 5 - Funzioni


Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

AMPL: Esempi e Comandi Avanzati

Esercizi di Modellazione Lineare Intera

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

I vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore.

Lingo caratteristiche generali

126 APPROFONDIMENTI SUI PARAMETRI. SCRIPT IN AMPL

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

Elementi di un modello di Programmazione Matematica

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Sviluppare un programma in FORTRAN

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Istruzioni iterative. Istruzioni iterative

Modulo 2: Strutture fondamentali della programmazione Java

TSP con eliminazione di sottocicli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Caratteristiche di un linguaggio ad alto livello

Uso del linguaggio di modellazione AMPL

TSP con eliminazione di sottocicli

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

LINGO -

28/02/2014 Copyright V. Moriggia

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

VBA Principali Comandi

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli

Corso di Matematica per la Chimica

Ottimizzazione dei Sistemi Complessi

Capitolo 7 I puntatori in C

Linguaggi di modellizzazione

Gestione di files Motivazioni

I set di caratteri WWW. Fabio Vitali 5 novembre 1999

2. Algoritmi e Programmi

Programmazione web lato client con JavaScript. Marco Camurri 1

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

Formule e funzioni. Manuale d uso

Indice. Prefazione. 3 Oggetti e Java 53

5 - Istruzioni condizionali

1 Breve introduzione ad AMPL

Strutture dati e loro organizzazione. Gabriella Trucco

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

Analizzatori Lessicali con JLex. Giuseppe Morelli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Sistemi Operativi 1. Mattia Monga. a.a. 2012/13. Dip. di Informatica Università degli Studi di Milano, Italia

Una classe Borsellino. Tipi numerici di base - Costanti. Esempio d uso. Classe Borsellino cont d. Primi passi per l implementazione di Purse

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Espressioni con effetti collaterali

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Gli statement. Gli statement. Gli statement. Gli statement. Gli statement

UD 3.2b: Programmazione in Pascal (1)

Tipi di linea. Tipi di Linea - R.Virili 1

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Informatica Applicata al Suono Tutorial Matlab

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Elementi di C++ di base

Fortran per Ingegneri

Java Le stringhe. Stringhe

Dichiarazione degli schemi in SQL DDL 1

Ulteriori comandi sui file

Programmazione I - Laboratorio

Transcript:

Modellazione GAMS Sintassi di Base, Esempi Domenico Salvagnin

GAMS General Algebraic Modeling System http://www.gams.com descrizione problema di ottimizzazione in notazione quasi algebrica possibilità di riciclare il modello con istanze diverse modello auto-documentante flessibilità sulle generazione dell output (in ogni caso user-friendly) molti solver diversi a disposizione...

Modellazione Algebrica Insiemi di oggetti (indicizzati) Parametri (costanti) relativi a tali oggetti Variabili decisionali Vincoli Funzione obiettivo

Struttura file GAMS Sets * insiemi di indici del problema Parameters * parametri numerici del problema * casi particolari: Tables, Scalars Variables * variabili del problema Equations * definizioni dei vincoli del problema * inclusa funzione obiettivo Model modello /all/; // definizione modello solve modello using solver minimizing var; display...;

GAMS Input Programma GAMS consiste in una lista di statement Ogni statement è terminato da ; Free form: spazi e EOL possono essere usati a piacere (come le stringhe di commento) Case insensitive Lunghezza massima riga: 255 caratteri Asterisco * usato per righe di commento Dollaro $ usato per direttive al parser

GAMS Input Numeri in GAMS sono sempre reali GAMS usa aritmetica estesa: +/-INF = infinito UNDF = undefined (1/0) EPS = epsilon NA = not available Blocco di commento tra $ontext e $offtext Commenti embedded con $eolcom o $inlinecom

GAMS Sets Elemento base della modellazione algebrica Notazione standard: S = {a,b,c} Notazione GAMS: set S /a,b,c/; Forma generale: set set_name [ text ] [/element [ text ] {,...}/]; Es: Set f final products / yncrude refined crude (barrels) lpg liquified petroleum (barrels) ammonia ammonia (tons) /;

GAMS Sets (II) Shortcut per sequenze: set g /a1*a5/; equivalente a set g /a1, a2, a3, a4, a5/; È possibile dichiarare più insiemi con lo stesso comando Possibilità di definire alias: alias(f,g); Definizione sottoinsiemi (domain checking): set i all sectors /light, medium, heavy, services/; set t(i) traded sectors /light, medium/;

GAMS Data Nome Sintassi Esempio Scalar Scalar name [text] /num/; Scalar rho discount rate /.15/; Parameter dd(j) / mexico 55, guadalaia 15/; Parameter Parameter name [text] / elem1 val1, elem2 val2, elem3 val3/; Parameter dd(j) / mexico = 55 guadalaia = 15/; Parameter sal(employee,manager) / anderson.murphy = 6000 hendry.smith = 9000 hoffman.morgan = 8000 /; Table Table name [text] EOL c1 c2 c3 r1 num num num EOL r2 num num num; Table ka(m,i) bla bla inchon ulsan yosu atmos 3702 12910 9875 steam 517 1207;

GAMS Data Manipulation È possibile usare espressioni di assegnamento (eventualmente indicizzate), per modificare il valore dei dati. a(i) = 2.75 * b(i); a( 1, 2 ) = 4; a(i, 1 ) = 2.44 * b(i); x = 5 + exp(3); Operatori indicizzati (somma, prodotto,...) totcap = sum(j, cap(j)); count = sum((i,j), a(i,j)); maxcost = smax(k, cost(k));

GAMS Variables Dichiarazione simile ai parametri [type] variable name [text]; Es: Variable k(t) capital stock; Variable z objective; Positive variable x(i,j) flow; Key LB UB free -inf +inf positive 0 +inf negative -inf 0 binary 0 1 integer 0 100 Tipi variabile Key Name.lo lower bound.up upper bound.l valore.m costo ridotto Attributi

GAMS Equations Sono i vincoli e la funzione obiettivo del problema Si creano in 2 fasi: dichiarazione e definizione Dichiarazione: Equation name [text]; Es: Equation invb(q) inventory balance ; Definizione: Name(domain).. lhs_expr type rhs_expr; Es: obj.. phi =e= sum(i, x(i)); Tipi possibili: =e=, =l= e =g= per =, e.

Es1: Indagine di mercato Persone D sposate D non spos. U sposati U non spos. Numero 150 110 120 100 Chi risponde Mattino Sera D sposate 30% 30% D non spos. 10% 20% U sposati 10% 30% U non spos. 10% 15% nessuno 40% 5% Il costo delle telefonate alla mattina è di 1, mentre alla sera è di 1. 6 0. S i v u o l e minimizzare il costo delle telefonate, raggiungendo un campione significativo.

Es1: Indagine di mercato Indici persone i periodo j Dati costi cj taglie bi percentuali aij min j c jx j j a ijx j b i i x 0 Variabili Chiamate xj Vincoli Dimensioni minime campioni

Es2: Miscelazione A B C 1 2 3 4 Ricavo 30% 40% 50% x 5.5 50% 10% x x 4.5 70% x x x 3.5 Prodotto Disp. Costo 1 3000 3 2 2000 6 3 4000 4 4 1000 5 M a s s i m i z z a re i l guadagno netto nella p r o d u z i o n e d i 3 b e n z i n e A, B e C o t t e n u t e d a l l a miscelazione di 4 prodotti.

Es2: Miscelazione Indici Dati prodotti i benzine j ricavi rj costi ci disponibilità di composizione max j r jy j i j x ij d i i y j = i x ij j j c ix ij Variabili Vincoli Benzina prod. yj Prodotto usato xij disponibilità prod. congruenza composizione x 1A 0.3y A... x, y 0