Ottimizzazione Combinatoria
|
|
|
- Clementina Bernardini
- 7 anni fa
- Просмотров:
Транскрипт
1 Ottimizzazione Combinatoria Esercitazione AMPL A.A Esercitazione a cura di Silvia Canale contatto [email protected] Università i di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Laurea in Ingegneria Gestionale
2 Pagina del corso Oltre al materiale delle esercitazioni, sulla pagina del corso sono disponibili informazioni relative a: - appelli d esame (date, orari, prenotazioni); - programma del corso; - orari e avvisi per il ricevimento studenti; - testi di tesine dei precedenti; - attività di laboratorio - 2
3 Riassumendo AMPL è un linguaggio di modellazione algebrico che ci permette di modellare problemi di programmazione matematica di diversa natura. Abbiamo visto come dichiarare (file.mod) e definire (file.dat) le entità: - Insiemi (parola chiave set); - Parametri semplici i o a più dimensioni i i (parola chiave param); - Variabili (parola chiave var); - Funzione obiettivo (parola chiave minimize o maximize); - Vincoli (parola chiave subject to). Abbiamo visto come far interpretare i file.mod e.dat all interprete AMPL. Abbiamo visto come far risolvere il problema modellato all interprete AMPL invocando un opportuno solutore di programmazione matematica (CPLEX). Oggi vedremo altre funzionalità del linguaggio AMPL. 3
4 Parametri a più dimensioni in AMPL E possibile definire un vettore di parametri indicizzato su un insieme ordinato in base ad un ordinamento predefinito. Esempio: Per definire i il vettore di parametri vett2 di componenti indicizzate su un insieme ordinato di N elementi dichiariamo nel file prova4.mod: param N; param vett2{..n}; Successivamente definiamo nel file prova4.dat i valori dei parametri: param N := 3; param vett2 := ; Ovunque si desideri specificare una precisa componente del vettore di parametri, occorre usare le parentesi [] dopo l identificativo del vettore. Esempio: Per stampare la seconda componente del vettore di parametri vett2 usiamo l istruzione display seguita dall espressione vett2[2] display vett2[2]; 4
5 Parametri a più dimensioni in AMPL E possibile definire un vettore di parametri a più di una dimensione. Le matrici di parametri sono vettori di parametri a due dimensioni e Sono molto utili per definire matrici di coefficienti. Esempio: Per definire la matrice di parametri Mat di componenti indicizzate i su un insieme i ordinato di M elementi per le righe e di N elementi per le colonne dichiariamo nel file prova5.mod: param M; param N; param Mat{..M,..N}; Successivamente definiamo i nel file prova5.dat i valori dei parametri: param M := 3; param N := 2; param Mat := ; 5
6 Parametri a più dimensioni in AMPL Per stampare tutti gli elementi della matrice è possibile usare l istruzione display seguita dall identificativo. Se invece vogliamo stampare solo una componente della matrice allora dobbiamo usare l operatore []. Esempio: Per stampare l intera matrice di parametri Mat dichiarata nel file prova5.mod e definita nel file prova5.dat scriviamo: display Mat; Una volta eseguita l istruzione, l interprete mostrerà il seguente output: ampl: display Mat; Mat := ; 6
7 Espressioni di indicizzazione Le parentesi {} ci permettono di indicare un insieme, ordinato o meno. Esse servono a definire espressioni di indicizzazione che possono essere più o meno complesse. Se A e B sono insiemi e p è un vettore di parametri, allora - {A} o {i in A} indicano tutti gli elementi dell insieme A - {A,B} o {i in A, j in B} indica tutte le coppie tali che il primo elemento appartiene all insieme A ed il secondo all insieme B - {i in A, i in B} indica tutte le coppie tali che il primo elemento appartiene all insieme A ed il secondo all insieme B purché uguali - {i in A: p[i] > } indica tutti gli elementi dell insieme A tali che il corrispondente valore del vettore p sia positivo 7
8 Grafo Esercitazione AMPL A.A
9 Problema Problema Il grafo Il grafo Sia dato il grafo orientato G(N,A) in figura N = {A, B, C, D, E} A = {AB AC BC BE CD DB DE} A = {AB, AC, BC, BE, CD, DB, DE} B A E C D C D Matrice di incidenza M di G(N,A) matrice 5 x 7 a valori {,, -} M = 9
10 Problema del massimo flusso (MF) Esercitazione AMPL A.A. 2-22
11 Definizione del problema Sia dato un grafo orientato G(N,A). Sia dato un nodo sorgente s N ed un nodo pozzo t N {s}. Sia dato un vettore c di capacità definito sull insieme A degli archi del grafo G(N,A) s 2 4 t
12 Definizione di flusso Si definisce flusso s-t di (G, c) un vettore x R A tale che (x uv,c uv ) x c uv A u v uv uv (2,8). ciascuna componente di x rispetti il vincolo di capacità x + uv δ G uv ( v) vu δ G x uv ( v) = v { s, t } (3,3) (2,3) v (,5) (,) 2. il vettore x rispetti il vincolo di conservazione del flusso ad ogni nodo tu δ + G x tu (t) = x us δ G us (s) = (,3) (2,5) s (,3) t (,5) (,) 3. nulla entri nel nodo s ed esca dal nodo t (,2) 2
13 Definizione di flusso Si definisce valore di un flusso s-t di (G, c) per il valore f(x) del flusso entrante nel nodo pozzo t oppure del flusso uscente dal nodo sorgente s f ( x) = x = ut x su + ut δ t) su δ (s) G ( G Un flusso s-t x di (G, c) per il grafo mostrato prima è (2,4) (,6) s (2,3) (,2) (,4) (,8) 2 (2,2) (,4) 3 4 t (,3) Il valore del flusso è f(x) = 3 3
14 Il problema di massimo flusso Determinare il flusso s-t x di (G, c) che massimizzi il valore f(x) max f x ut ut δ G ( t ) + su δ G x su ( s) = f = f xuv + uv δ G ( v) x uv vu δ c G uv x uv ( v) M matrice di incidenza del grafo (G, c) b: b s = -; b t = ; b v = v N {s,t} = v { s, t} uv A max f Mx = bf x uv c uv uv A 4
15 Il problema di massimo flusso Siano s = A e t = E due nodi speciali del grafo G(N,A). Sia dato il vettore c di capacità definito sull insieme A degli archi del grafo G(N,A) c = { 6, 4, 2, 7, 8, 4, 5 } A = {AB, AC, BC, BE, CD, DB, DE} B 6 7 s 2 4 t 4 C 8 D 5 Vogliamo risolvere il problema di massimo flusso (MF) da s a t sul grafo orientato G(N,A) rispetto al vettore c di capacità. 5
16 à Problema Problema Massimo flusso Massimo flusso Aggiungiamo l arco ts (e quindi una colonna alla matrice M) di capacità infinita. c = { 6, 4, 2, 7, 8, 4, 5, } A ={AB, AC, BC, BE, CD, DB, DE, EA} M= B A E C D
17 Problema Massimo flusso max w T x = x EA (MF) M x = d A x c Modelliamo il poblematamite problema tramite AMPL Vogliamo determinare un flusso x di (G, c) di valore massimo B (x AB,6) (x BE, 7) A (x BC, 2) (x DB, 4) E (x AC, 4) ) (x DE, 5) (x CD, 8) C D (x EA, ) 7
18 Modellazione con AMPL (MF) max w T x M x = d A x c Modelliamo il problema tramite AMPL creando due file: - file.mod contenente: - la dichiarazione dei parametri: insiemi N, A; vettori w, d, c e M; - la dichiarazione delle variabili: vettore x; - la struttura e la definizione della funzione obiettivo: w T x; - la struttura e la descrizione dei vincoli: M x = d, A x c. - file.dat contenente i valori numerici dei parametri - N = { A, B, C, D, E} - A = {AB, AC, BC, BE, CD, DB, DE,EA} EA} - w = {,,,,,,, } M= - d = {,,,, } - c = {6, 4, 2, 7, 8, 4, 5, } 8
19 File modello File modello MF.mod Definiamo il problema di massimizzazione maximize Costo_Totale: sum {j in ARCHI} costo[j] * x[j]; Scriviamo esplicitamente i vincoli di capacità subject to Capacita {j in ARCHI}: x[j] <= capacita[j]; senza inserirli nella dichiarazione delle variabili x var x {j in ARCHI} >= ; 9
20 File dati MF.dat File dati - definizione dei parametri set ARCHI := AB AC BC BE CD DB DE EA; param domanda := A B C D E ; param: capacita costo := AB 6 AC 4 BC 2 BE 7 CD 8 DB 4 DE 5 EA Infinity ; 2
21 File dati MF.dat File dati - definizione dei parametri: definiamo i vettori a due dimensioni (M): param M : AB AC BC BE CD DB DE EA := A - - B - - C - D - - E -; 2
22 Interprete AMPL ampl: reset; // cancelliamo i modelli e/o i dati precedentemente caricati // (obbligatorio se abbiamo già caricato un problema) ampl: model MF.mod; // carichiamo prima il modello del problema ampl: data MF.dat; // carichiamo successivamente i dati del problema 22
23 Soluzione del problema ampl: option solver cplex; // scegliamo il solutore di Programmazione Matematica con cui // risolvere il problema: CPLEX (attualmente vers..2.) ampl: solve; // risolviamo il problema caricato valore ottimo // output ottenuto: CPLEX.2.: optimal solution; objective dual simplex iterations ( in phase I) informazioni sul metodo di soluzione soluzione disponibile 23
24 Soluzione del problema ampl: display x; // chiediamo i valori della soluzione ottenuta (componenti di x) // output ottenuto: x [*] := AB 6 AC 4 BC BE 7 CD 4 DB DE 3 EA ; soluzione a componenti intere 24
25 Soluzione del problema (MF) Abbiamo determinato il flusso x* ottimo di (G, c, d) B (6,6) (7, 7) A (, 2) (, 4) E (4, 4) (3, 5) (4, 8) C D (, ) ) x* soddisfa sia i vincoli di capacità che i vincoli di domanda: M x* = d A x* c. valore costo(x*) = x = ottimo 25
26 Soluzione duale ampl: display Incidenza; // chiediamo i valori della soluzione duale ottenuta // output ottenuto: Incidenza [*] := A B C D E ; 26
27 Soluzione duale ampl: display Capacita; // chiediamo i valori della soluzione duale ottenuta // output ottenuto: Capacita [*] := AB AC BC BE CD DB DE EA ; 27
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
Progetto e ottimizzazione di reti 2
Progetto e ottimizzazione di reti 2 Esercitazione AMPL A.A. 29-2 Esercitazione a cura di Silvia Canale contatto e-mail: [email protected] Università di Roma La Sapienza Dipartimento di Informatica
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
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
Flusso a Costo Minimo
Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Flusso a Costo Minimo Docente: Renato Bruni [email protected] Corso di: Ottimizzazione Combinatoria Dal
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
Ottimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2010-20112011 Esercitazione a cura di Silvia Canale contatto e-mail: [email protected] Università i di Roma La Sapienza Dipartimento di Informatica
Ottimizzazione Combinatoria 2 Presentazione
Ottimizzazione Combinatoria Presentazione ANTONIO SASSANO Università di Roma La Sapienza Dipartimento di Informatica, Automatica e Gestionale «Antonio Ruberti» Roma, Febbraio Prerequisiti (cosa sapete)
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
Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33
Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33 Ottimizzazione su grafi:massimo flusso (parte 1) p. 2/33 Reti di flusso Una rete di flusso è una
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
GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!
G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono
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
Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015
1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)
Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi
Università degli Studi di Roma La Sapienza Ottimizzazione nella Gestione dei Progetti - Esercitazione : calcolo degli schedule ottimi di FABIO D ANDREAGIOVANNI Dipartimento di Informatica e Sistemistica
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 a Matlab
INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi
Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso
Claudio Arbib Università di L Aquila Ricerca Operativa Reti di flusso Sommario Definizioni di base Flusso di un campo vettoriale Divergenza Integrale di Gauss-Greene Flusso in una rete Sorgenti, pozzi
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
UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013
A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N
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,
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
Introduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte
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
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
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
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
Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:
Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione
Gestione della produzione e della supply chain Logistica distributiva
Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non
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.
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
Esercitazioni di Algebra e Geometria
Esercitazioni di Algebra e Geometria Anno Accademico 2011 2012 Dott.ssa Elisa Pelizzari e-mail [email protected] Esercitazioni: lunedì 14.30 16.30 venerdì 14.30 16.30 Ricevimento studenti: venerdì 13.00
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
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,
Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli
Ricerca Operativa 2. Modelli di Programmazione Lineare Modelli di programmazione lineare Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli Sotto queste ipotesi (come
Esercitazioni di Algebra e Geometria
Esercitazioni di Algebra e Geometria Anno Accademico 2010 2011 Dott.ssa Elisa Pelizzari e-mail [email protected] Esercitazioni: lunedì 14.30 16.30 venerdì 14.30 16.30 Ricevimento studenti: venerdì 13.30
Introduzione alla Teoria dei Grafi
Sapienza Uniersità di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Introduzione alla Teoria dei Grafi Docente: Renato Bruni [email protected] Corso di: Ottimizzazione Combinatoria
Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
Problemi di Localizzazione Impianti
Sapienza Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Problemi di Localizzazione Impianti Renato Bruni [email protected] Il materiale presentato è derivato
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. 2002-2003 1 Introduzione ad AMPL AMPL(scaricabile all indirizzo: http://www.ampl.com/downloads/index.html)
Lezioni di Ricerca Operativa
Lezioni di Ricerca Operativa Estratto per la parte di programmazione lineare e ottimizzazione sui grafi Corso di Metodi di Ottimizzazione per l'ingegneria della Sicurezza Laurea Magistrale in Ingegneria
Introduzione ai grafi
TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale
Esercizio 1. Esercizio 2
A-2 a PI Ricerca Operativa 1 Seconda prova intermedia La Pharmatix è un azienda di Anagni che produce due principi attivi, A e B, che consentono un profitto per grammo venduto di 20 e 30 euro rispettivamente.
Matrici unimodulari e totalmente unimodulari
Matrici unimodulari e totalmente unimodulari Sia una matrice intera di dimensione con, si dice unimodulare se presa una qualsiasi sottomatrice di ordine massimo (di dimensione ) vale det = 1, +1, 0. Una
