AMPL: Esempi e Comandi Avanzati
|
|
|
- Sabina Piccolo
- 9 anni fa
- Просмотров:
Транскрипт
1 Dipartimento di Matematica Università di Padova Corso di Laurea Matematica
2 Outline Comandi Avanzati
3 Script per Operazioni Complesse Ciclo For for {e in INSIEME}{... } Ciclo Repeat While (termina se espressione logica falsa) repeat while espressionelogica {... }; repeat {... }while espressionelogica; Ciclo Repeat Until (termina se espressione logica vera) repeat until espressionelogica {... }; repeat {... }until espressionelogica; If-Then-Else if espressionelogica then {... } else {... }
4 Script per Operazioni Complesse II Assegnazione: let (es. let c:=3;) Bloccare \sbloccare variabili: fix \unfix Ignorare \ripristinare particolari vincoli e funzioni obiettivo: drop \restore Stampare a video messaggi: printf (stessa sintassi C) script: printf " MESSAGGIO\n"; a video: MESSAGGIO
5 Esempio 1 Produzione di Parquet alla LegnoPadova SpA LegnoPadova SpA é un azienda specializzata nella produzione di parquet. I suoi stabilimenti producono vari tipi di parquet che vengono poi venduti sul mercato generando un determinato profitto. Ciascun settore della produzione puá lavorare un numero limitato di ore secondo la Tabella 1. Nella Tabella 2 si riporta il profitto unitario e la domanda massima per tipologia di parquet: Tabella 1 Settore Ore Falegnameria 2000 Verniciatura 1500 Assemblaggio 1700 Verifica 300 Imballaggio 500 Tabella 2 Tipo Profitto Domanda Supereconomy Economy Biocity Vintage Gaia Family Extralux Riportiamo infine le ore di lavorazione necessarie per ciascuna tipologia di parquet in Tabella 3. Determinare il piano produttivo che massimizza il profitto totale. Tabella 3 Supereconomy Economy Biocity Vintage Gaia Family Extralux Falegnameria Verniciatura Assemblaggio Verifica Imballaggio
6 Modello AMPL rip_ris.mod # INSIEMI DEL PROBLEMA # insieme dei prodotti set prodotti; # insieme delle risorse disponibili set risorse; # PARAMETRI DEL PROBLEMA # profitto per unitá venduta param c{prodotti}; # domanda massima param d{prodotti}; # quantitá di risorsa per unitá di prodotto param a{risorse,prodotti}; # disponibilitá di ciascuna risorsa param b{risorse}; # VARIABILI var x {j in prodotti}>=0, <=d[j]; # F.O. maximize profitto: sum{j in prodotti}c[j]* x[j]; # VINCOLI subject to diponib {i in risorse}: sum{j in prodotti}a[i,j] * x[j] <= b[i];
7 Script AMPL Script Esercizio 1 Creare uno script che permetta di calcolare il profitto al variare delle ore disponibili del settore Falegnameria. Le ore possono variare da un minimo di 2000 ad un massimo di 2100 (ad intervalli di 10 ore). Si vuole ottenere, per ogni variazione, un messaggio che comunichi se il corrispondente profitto é accettabile (maggiore di 5450).
8 Script AMPL rip_ris.run reset; model rip_ris.mod; data rip_ris.dat; options solver CPLEX; for {i in 0..10}{ printf "====================================\n"; solve; printf "====================================\n"; display i, profitto; display x; if (profitto > 5450) then printf "PROFITTO OK!\n"; else printf "PROFITTO NON OK!\n"; printf "====================================\n"; let b["falegnameria"]:=b["falegnameria"]+10; }
9 Parametri Randomici Alcuni parametri possono essere generati in maniera randomica: Dichiarazione(file.mod): param m; param v; param p:=normal(m,v); AMPL permette l utilizzo di diverse funzioni di distribuzione: Tabella : Funzioni di Distribuzione Beta(a,b) distribuzione beta con parametri a e b Cauchy() distribuzione di Cauchy Exponential() distribuzione esponenziale Gamma(a) distribuzione Gamma con parametro a Normal(m,v) distribuzione normale con media m e varianza v Poisson(a) distribuzione di Poisson con parametro a Uniform(a,b) distribuzione uniforme sull intervallo [a; b) Possibile scegliere seme per generatore di numeri pseudo-casuali: options randseed; # per mostra il seme options randseed value;# cambia il seme
10 Esempio: Problema Investimenti Esercizio 2 Sono dati n = 200 investimenti ciascuno di costo c i e ritorno r i. Si chiede di selezionare un sottoinsieme di investimenti in modo tale che il loro prezzo totale non ecceda B=600 (budget) e il ritorno sia massimizzato. I costi sono generati con distribuzione uniforme in [5,20) e i ritorni con distribuzione uniforme in [3,10).
11 Modello Investimenti Modello Matematico Problema Investimenti max n r i x i i=1 n c i x i B i=1 x i {0, 1} i = 1,..., n (1)
12 Modello AMPL investimenti.mod param N; param r{1..n}:= Uniform(5,20); # ritorni param c{1..n}:= Uniform(3,10); # costi param B; # Budget var x{1..n}binary; maximize ritorno_tot: sum{i in 1..N}r[i] * x[i]; subject to budget : sum{i in 1..N}c[i] * x[i] <= B;
AMPL Sintassi ed Esempi
Dipartimento di Matematica Università di Padova Corso di Laurea Informatica Outline Sintassi Elementi di un problema Insiemi Parametri Variabili Funzione Obiettivo Vincoli Dati Insiemi Gli insiemi definiscono
AMPL: Risoluzione di Problemi Nonlineari Parte 2
AMPL: Risoluzione di Problemi Nonlineari Parte 2 Dipartimento di Matematica Università di Padova Corso di Laurea Matematica Outline Esempio 1: Gestione Ottima di un Portafoglio Titoli Esempio 1 Abbiamo:
Miscelazione di benzine
Miscelazione di benzine Una raffineria deve miscelare 4 tipi di petrolio grezzo per ottenere 3 tipi di benzina. La tabella seguente mostra la massima quantità disponibile per ogni tipo di petrolio grezzo
126 APPROFONDIMENTI SUI PARAMETRI. SCRIPT IN AMPL
126 APPROFONDIMENTI SUI PARAMETRI. SCRIPT IN AMPL Esempio 8.3.2 Una fabbrica produce divani in tessuto acquistando da un magazzino all ingrosso i quantitativi di tessuto che gli occorrono settimanalmente.
AMPL Sintassi ed Esempi
Dipartimento di Matematica Università di Padova Corso di Laurea Informatica Outline Sintassi Elementi di un problema Insiemi Parametri Variabili Funzione Obiettivo Vincoli Dati Insiemi Gli insiemi definiscono
Introduzione. AMPL Introduzione. F. Rinaldi. Dipartimento di Matematica Università di Padova. Corso di Laurea Matematica. F. Rinaldi AMPL Introduzione
Dipartimento di Matematica Università di Padova Corso di Laurea Matematica Outline Introduzione Utilizzo di un Solver Definizione Un solver (o risolutore) è un software che riceve in input una descrizione
Uso avanzato di AMPL. Renato Bruni. prendendo come esempio il problema di Localizzazione di Impianti.
Uso avanzato di AMPL prendendo come esempio il problema di Localizzazione di Impianti Renato Bruni [email protected] www.dis.uniroma1.it/~bruni Localizzazione di Impianti Consideriamo il problema di
Pianificazione Multiperiodo
Pianificazione Multiperiodo Si vuole pianificare la produzione di tre prodotti A 1, A 2, A 3, su un orizzonte temporale di quattro mesi, da Gennaio ad Aprile. La domanda cambia non solo da un prodotto
Problema del Set Covering (PLI)
Problema del Set Covering (PLI) Una società deve decidere sulla costruzione di alcuni nuovi impianti per la depurazione di acque in un distretto di 5 città C i, i 1... 5. Ha a disposizione 12 aree A i,
TSP con eliminazione di sottocicli
TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 7-8 9 7 9-8 79
Ottimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2-22 Esercitazione a cura di Silvia Canale contatto e-mail: [email protected] Università i di Roma La Sapienza Dipartimento di Informatica e Sistemistica
Introduzione all uso di FICO Xpress. Metodi di Ottimizzazione per la Logistica e la Produzione
Introduzione all uso di FICO Xpress Metodi di Ottimizzazione per la Logistica e la Produzione 1 2 Alcuni risolutori per la Programmazione Matematica Indice Sono a disposizione numerosi risolutori di Programmazione
Progetto e ottimizzazione di reti 2
Progetto e ottimizzazione di reti 2 Esercitazione AMPL A.A. 2009-2010 Esercitazione a cura di Silvia Canale contatto e-mail: [email protected] Università di Roma La Sapienza Dipartimento di Informatica
Problema del Trasporto
Problema del Trasporto Una ditta di trasporto deve trasferire container vuoti dai propri 6 Magazzini, situati a Verona, Perugia, Roma, Pescara, Taranto e Lamezia, ai principali Porti nazionali (Genova,
Ottimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2009-2010 Esercitazione a cura di Silvia Canale contatto e-mail: [email protected] Università di Roma La Sapienza Dipartimento di Informatica e
Gestione Impresa. Mese 1 2 3 4 5 6 Unità richieste 700 600 500 800 900 800
Gestione Impresa Un impresa di produzione produce un solo tipo di merce. Ci sono 40 operai, ciascuno dei quali produce 20 unità di merce al mese. La domanda fluttua nel corso di un semestre secondo la
TSP con eliminazione di sottocicli
TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 3 5 7-8 9 57
Risoluzione del rilassamento continuo del problema del commesso viaggiatore
Risoluzione del rilassamento continuo del problema del commesso viaggiatore Sia G = (V,E) un grafo orientato completo, con un costo c ij R associato a ciascun arco (i, j) E. Si consideri la seguente formulazione
Problema del Trasporto. Container vuoti Verona 10 Perugia 12 Roma 20 Pescara 24 Taranto 18 Lamezia 40
Problema del Trasporto Una ditta di trasporto deve trasferire container vuoti dai propri 6 Magazzini, situati a Verona, Perugia, Roma, Pescara, Taranto e Lamezia, ai principali Porti nazionali (Genova,
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Pianificazione di Produzione in DEC
Pianificazione di Produzione in DEC L esempio considerato qui è un problema reale che la Digital Equipment Corporation (DEC) ha dovuto affrontare nell autunno del 1988 per preparare la pianificazione di
CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS
CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS Comandi da terminale Il comando sleep fa attendere un comando prima dell'esecuzione. Prova il comando: $ sleep 3s && echo Ciao Mondo! $ Comandi da terminale
Fondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
Informatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Fondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Risoluzione del rilassamento continuo del problema del commesso viaggiatore
Risoluzione del rilassamento continuo del problema del commesso viaggiatore Sia G = (V,E) un grafo orientato completo, con un costo c ij R associato a ciascun arco (i, j) E. Si consideri la seguente formulazione
VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
Esempio: somma di due numeri
Esempio: somma di due numeri Scrivere l algoritmo che esegue la somma di due numeri ESEMPIO: somma di due numeri
Prova di Ricerca Operativa - canale (A-L)
Prova di Ricerca Operativa - canale (A-L) Ingegneria Gestionale Un industria produce 4 differenti prodotti P1, P2, P3, P4 ciascuno dei quali deve essere lavorato in tutti i suoi 3 reparti. La tabella che
Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A
Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono
INFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
Uso del linguaggio di modellazione AMPL
Sapienza Sapienza Universitàdi Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Uso del linguaggio di modellazione AMPL Renato Bruni [email protected] www.dis.uniroma1.it/~bruni
Ricerca Operativa e Logistica
Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili A.A. 20/202 Lezione 6-8 Rappresentazione di funzioni non lineari: - Costi fissi - Funzioni lineari a tratti Funzioni obiettivo non lineari:
Appunti delle Esercitazioni di Ottimizzazione V.O. AMPL: A Mathematical Programming Language
Appunti delle Esercitazioni di Ottimizzazione V.O. AMPL: A Mathematical Programming Language a cura di G. Liuzzi and V. Piccialli a.a. 2004-2005 [email protected], http://www.dis.uniroma1.it/ liuzzi
Linguaggi di modellizzazione
p. 1/5 Linguaggi di modellizzazione Come visto, il primo passo per risolvere un problema di decisione consiste nel formularne il modello matematico. Una volta definito il modello matematico lo dobbiamo
Appunti delle Esercitazione di Ricerca Operativa AMPL Plus v1.6
Appunti delle Esercitazione di Ricerca Operativa AMPL Plus v1.6 acuradig.liuzzi a.a. 2001-2002 1 Uso di variabili e parametri a 3 o più dimensioni: un modello di pianificazione Negli esempi precedenti
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)
MATLAB c M-file. Lucia Gastaldi Dipartimento di Matematica http://dm.ing.unibs.it/gastaldi/ Lezione 4 (15 ottobre 2003) Esercizio Problema 3: la successione di funzioni f n (x) = (x 2 x) n per 0 x 1 è
Excel & VBA. Excel e Visual Basic for Application
Excel & VBA Excel e Visual Basic for Application Automazione Excel con VBA incorpora la tecnologia dell automazione (OLE automation) Excel dialoga con VBA attraverso un insieme di comandi detto libreria
Esercizio: dispari-pari
Esercizio: dispari-pari Dato un numero, verificare se è pari o dispari e stampare il relativo messaggio N := N - 2 write "pari" read N N > 1 N = 0 write "dispari" read N while (N > 1) N := N 2 while if
I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni
Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di
Introduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Lezione 5: Controllo del flusso e costrutti avanzati
Lezione 5: Controllo del flusso e costrutti avanzati Laboratorio di Elementi di Architettura e Sistemi Operativi 20 Marzo 2013 Parte 1: Il valore di uscita di un processo Il valore di uscita di un processo
10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II
Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
Esercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
STATISTICA LAB. Analisi dei dati con R - Ex 2. Marta Nai Ruscone. LIUC - Università Carlo Cattaneo, Castellanza STATISTICA LAB
Analisi dei dati con R - Ex 2 Marta Nai Ruscone LIUC - Università Carlo Cattaneo, Castellanza Funzioni Una funzione è un insieme di comandi elementari. In R sono disponibili un gran numero di funzioni
Qualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
AMPL Problemi su Reti
Dipartimento di Matematica Università di Padova Corso di Laurea Informatica Outline Problemi su Reti Cammino Minimo Molti problemi di ottimizzazione combinatoria possono essere modellati ricorrendo ai
