1 Breve introduzione ad AMPL
|
|
|
- Barbara Zani
- 10 anni fa
- Visualizzazioni
Transcript
1 1 Breve introduzione ad AMPL Il primo passo per risolvere un problema reale attraverso strumenti matematici consiste nel passare dalla descrizione a parole del problema al modello matematico dello stesso. Questo passaggio verrá ora illustrato in un caso particolare, il Descrizione a parole del problema Modello matematico del problema Figura 1: Il passaggio dalla descrizione a parole al modello matematico. problema della dieta. La descrizione a parole di tale problema é la seguente. Descrizione a parole Sia dato un insieme P ROD di prodotti ed un insieme SOST di sostanze nutritive. Si sa che in un unitá del prodotto j si trova una quantitá quant unit ij della sostanza nutritiva i. Inoltre si sa che il costo di un unitá di prodotto j é pari a cost unit j. Tenendo conto che una dieta deve contenere una quantitá minima quant min i di ciascuna sostanza nutritiva, si vuole determinare una dieta che abbia costo minimo. Da tale descrizione si passa al modello matematico che risulterá essere un problema di programmazione lineare. Modello matematico Ad ogni prodotto j si associa una variabile x j indicante la quantitá di prodotto da inserire nella dieta. L obiettivo é quello di minimizzare il costo complessivo della dieta, cioé min cost unit j x j. (1) j P ROD Inoltre abbiamo i vincoli di dover avere almeno una quantitá quant min i di ciascuna sostanza nutritiva, cioé quant unit ij x j quant min i i SOST. (2) j P ROD Infine di ogni prodotto dobbiamo avere una quantitá non negativa, cioé x j 0 j P ROD. (3) 1
2 Quindi il nostro modello matematico é il seguente problema di PL min j P ROD cost unit j x j j P ROD quant unit ij x j quant min i i SOST x j 0 j P ROD Una volta definito il modello matematico lo si passa ad un risolutore (nel nostro caso, tipicamente, l algoritmo del simplesso) che restituisce come output una soluzione ottima se questa esiste oppure segnala in quale caso dei due casi di impossibilitá (problema illimitato o regione ammissibile vuota) ci si trova (vedi Figura 2). Il passaggio dal modello matematico al risolutore non é peró im- Descrizione a parole Modello matematico Risolutore (Simplesso) Soluzioni o segnalazione caso di impossibilita Figura 2: Dalla descrizione a parole alla soluzione del problema. mediato. É necessario tradurre questo modello nelle strutture dati che devono essere passate come input al programma risolutore (vedi Figura 3). Ció che suc- Modello matematico su carta Input per il risolutore Figura 3: Il modello matematico su carta va tradotto nell input per il risolutore. cede nella pratica é che ci sono tipicamente grosse differenze tra il modello scritto su carta di un problema di PL e la forma in cui lo stesso modello deve essere passato come input al risolutore e la trasformazione richiede un certo sforzo. Lo scopo del linguaggio AMPL é proprio quello di facilitare questo compito. Invece di passare direttamente dal modello su carta all input per il risolutore, si scrive un modello in linguaggio AMPL che viene poi passato ad un traduttore che si occupa di trasformare il modello scritto in AMPL nell input per il programma 2
3 Modello matematico su carta Modello in linguaggio AMPL traduttore Input per il risolutore Figura 4: Il modello in AMPL traduce il modello su carta e viene a sua volta tradotto nell input per il risolutore. risolutore (vedi Figura 4). Il vantaggio di questo passaggio supplementare é che AMPL é concepito in modo che il modello scritto in AMPL sia molto simile al modello scritto su carta. Verranno ora introdotte alcune parti fondamentali di AMPL. Le stesse verranno illustrate attraverso l esempio della dieta mostrato in precedenza. In un modello di programmazione lineare (o di programmazione lineare intera) gli elementi fondamentali sono: Insiemi di indici Nel caso del problema della dieta sono i due insiemi P ROD dei prodotti e SOST delle sostanze nutritive. Parametri Sono tutte le quantitá il cui valore é noto prima di risolvere il problema. Nel problema della dieta sono i costi unitari cost unit j dei prodotti, le quantitá minime quant min i delle sostanze nutritive e le quantitá quant unit ij di sostanza i in un unitá di prodotto j. Variabili Sono le quantitá i cui valori devono essere stabiliti attraverso la soluzione del problema. Nell esempio sono le variabili x j indicanti le quantitá di prodotto j. Vincoli Limitano la scelta delle variabili. Nell esempio abbiamo i vincoli (2) sulle quantitá minime di ciascuna sostanza ed i vincoli (3) sulla non negativitá delle quantitá di ciascun prodotto. Obiettivo É la quantitá il cui valore va massimizzato (o minimizzato) scegliendo opportunamente i valori delle variabili. Nell esempio si deve minimizzare il costo della dieta, ovvero l obiettivo é dato da (1). Si tratta ora di vedere come questi elementi vengono definiti in linguaggio AMPL. Insiemi Un insieme T si dichiara semplicemente attraverso la seguente sintassi set T ; Si noti che questa é soltanto la dichiarazione dell insieme. Da una qualche altra parte, come vedremo, andrá specificato il contenuto dell insieme. 3
4 Nel nostro esempio avremo le seguenti dichiarazioni set P ROD ; set SOST ; Parametri Un parametro a si dichiara nel modo seguente param a ; Qualora sia noto che il parametro é sempre positivo conviene indicarlo esplicitamente nella dichiarazione nel modo seguente param a > 0 ; In modo analogo si puó specificare che un parametro é non negativo (>= 0), negativo (< 0) o non positivo (<= 0). Si puó anche specificare che un parametro deve avere un valore intero nel modo seguente param a > 0 integer ; In questo caso il parametro a deve essere un intero positivo. É possibile anche dichiarare vettori di parametri con indici in un insieme T attraverso la seguente dichiarazione param a{t } ; Nel caso gli indici siano gli interi da 1 a n si puó scrivere param a{1..n} ; Si possono infine anche dichiarare array bidimensionali con insiemi di indici T 1 e T 2 nel modo seguente param a{t 1, T 2 } ; Nell esempio si avranno le seguenti dichiarazioni param cost unit{p ROD} > 0 ; param quant unit{sost,p ROD} >= 0 ; param quant min{sost } > 0; Si noti che si richiede che i costi unitari e le quantitá minime siano stret- 4
5 tamente positive, mentre le quantitá di sostanza in un unitá di prodotto devono essere non negative. Variabili La definizione delle variabili é del tutto analoga a quella dei parametri. La sola differenza é che la parola chiave param viene sostituita dalla parola chiave var. Nel nostro esempio abbiamo un vettore di variabili x con indici in P ROD che sará definito in questo modo var x{p ROD} >= 0 ; Si noti che nella dichiarazione delle variabili sono giá compresi i vincoli di non negativitá (3) delle stesse. Nel caso una variabile sia vincolata ad assumere solo valori interi é sufficiente aggiungere la parola chiave integer nella sua dichiarazione, esattamente come si é fatto per i parametri. Si noti che questa aggiunta é la sola cosa che distingue un modello di AM- PL per la programmzaione lineare da uno per la programmazione lineare intera. Vincoli Un singolo vincolo viene dichiarato nel seguente modo subject to nome vincolo : formula vincolo ; Spesso peró non si hanno singoli vincoli, ma collezioni di vincoli indicizzate su degli insiemi. É questo per esempio il caso dei vincoli (2) nel problema della dieta. Tali vincoli sono indicizzati rispetto all insieme SOST. In generale, dato un insieme di indici I, la collezione di vincoli indicizzata su I viene dichiarata in questo modo subject to nome insieme vincoli {i in I} : formula vincoli ; Per i vincoli (2) si avrá la seguente dichiarazione subject to min sostanza {i in SOST } : sum {j in P ROD} quant unit[i,j]*x[j] >= quant min[i] ; Nella formula si devono notare due cose. 1. L uso di sum {j in J} per la definizione di una sommatoria con indice J; 2. l uso delle parentesi quadre [] per richiamare i singoli elementi degli array. Obiettivo L obiettivo si dichiara, in generale, nel modo seguente maximize nome obiettivo : formula obiettivo ; 5
6 (nel caso si debba minimizzare si usa la parola chiave minimize al posto di maximize). Nel nostro esempio avremo minimize total cost : sum {j in P ROD} cost unit[j]*x[j] ; Abbiamo quindi definito in AMPL tutti gli elementi del nostro problema della dieta. Questi verranno trascritti in un file a cui si assegna il nome di DIE- TA.MOD che si presenterá come segue (le scritte comprese tra ### sono commenti). DIETA.MOD ### INSIEMI ### set P ROD ; set SOST ; ### PARAMETRI ### param cost unit{p ROD} > 0 ; param quant unit{sost,p ROD} >= 0 ; param quant min{sost } > 0; ### VARIABILI ### var x{p ROD} >= 0 ; ### VINCOLI ### subject to min sostanza {i in SOST } : sum {j in P ROD} quant unit[i,j]*x[j] >= quant min[i] ; ### OBIETTIVO ### 6
7 minimize total cost : sum {j in P ROD} cost unit[j]*x[j] ; Una volta costruito il modello bisognerá inserire in un altro file i valori di insiemi e parametri. Mentre il modello viene inserito in un file con estensione.mod, i valori vengono inseriti in un file con estensione.dat. Il file DIETA.DAT dovrá contenere le definizioni degli insiemi P ROD e SOST ed i valori assegnati ai diversi parametri. Supponiamo di avere a disposizione i seguenti dati. L insieme P ROD contiene pasta, verdura, carne; l insieme SOST contiene vitamine, proteine; un unitá di pasta, verdura o carne costa rispettivamente 3,2 e 5; le quantitá minime di vitamine e proteine sono rispettivamente 8 e 6; le quantitá di vitamine in un unitá di pasta, verdura o carne sono rispettivamente 0.3, 0.5 e 0.4; le quantitá di proteine in un unitá di pasta, verdura o carne sono rispettivamente 0.5, 0.2 e 0.7. Bisogna ora vedere come questi dati devono essere scritti nel file DIETA.DAT. Per quanto riguarda la definizione di un insieme J contenente gli oggetti t 1, t 2,..., t n si usa la seguente sintassi set T := t 1 t 2... t n ; Nel nostro esempio avremo set P ROD := pasta verdura carne ; set SOST := vitamine proteine ; Per quanto riguarda i parametri si usa la seguente sintassi param a := valore parametro ; Per parametri vettore con insieme indice T = {t 1,..., t n } si usa la seguente sintassi param a := t 1 valore 1. t n valore n ; Per parametri che sono array bidimensionali con primo insieme di indici T = {t 1,..., t n } e secondo insieme di indici S = {s 1,..., s m } si usa la seguente sintassi 7
8 param a : s 1 s m := t 1 val(t 1, s 1 ) val(t 1, s m ).... t n val(t n, s 1 ) val(t n, s m ) ; Nel nostro esempio si avranno quindi i seguenti assegnamenti. param cost unit := pasta 3 verdura 2 carne 5 ; param quant min := vitamine 8 proteine 6 ; param quant unit : pasta verdura carne := vitamine proteine ; Quindi il file DIETA.DAT per questo esempio si presenterá nella seguente forma DIETA.DAT ### INSIEMI ### set P ROD := pasta verdura carne ; set SOST := vitamine proteine ; ### PARAMETRI ### param cost unit := pasta 3 8
9 verdura 2 carne 5 ; param quant min := vitamine 8 proteine 6 ; param quant unit : pasta verdura carne := vitamine proteine ; Una volta inseriti i dati nel file DIETA.DAT siamo pronti per la risoluzione del problema. Prima peró va fatta un osservazione. Qui abbiamo inserito certi dati ma puó capitare che lo stesso tipo di problema debba essere risolto con altri dati (ad esempio il costo di certi prodotti puó cambiare o tra le sostanze se ne possono aggiungere altre come i carboidrati). AMPL é concepito in modo tale che queste modifiche possano essere fatte andando a modificare il solo file.dat mentre nessuna modifica deve essere fatta nel file.mod. Ora siamo pronti per la risoluzione del problema. É sufficiente inserire i seguenti comandi in corrispondenza del prompt ampl: ampl: model DIETA.MOD; ampl: data DIETA.DAT; ampl: solve; (Si notino i ; al termine di ogni comando). Appare automaticamente il valore ottimo del problema. optimal solution; objective Per visualizzare la soluzione primale si deve dare il comando 9
10 ampl: display x; Apparirá la seguente risposta x[*] := carne 0 pasta verdura ; Infine, per visualizzare la soluzione duale, ricordando che ad ogni vincolo primale corrisponde una variabile duale, é sufficiente mandare il comando display con il nome dei vincoli primali. ampl: display min sostanza; Apparirá la seguente risposta min sostanza [*] := proteine vitamine ; Avremo quindi che il valore dell ottimo é ; che nella soluzione ottima si ha una quantitá 0 di carne, una quantitá di pasta ed una quantitá di verdura; che le variabili nella soluzione ottima del duale hanno valore quella relativa al vincolo sulle proteine e quella relativa al vincolo sulle vitamine. Si noti che, come atteso, il valore dell ottimo duale coincide con l ottimo del primale. 2 Un esempio di PLI = Vogliamo ora introdurre un altro esempio di traduzione di un modello su carta in un modello in linguaggio AMPL. In questo caso si prenderá in considerazione un problema di programmazione lineare intera, il problema dello zaino. Come 10
11 giá fatto per il problema della dieta, si dará dapprima una descrizione a parole del problema, quindi lo si tradurrá in un modello di PLI su carta ed infine si passerá alla traduzione in linguaggio AMPL. Descrizione a parole É dato un insieme OGGET T I di oggetti a ciascuno dei quali é associato un peso ed un valore. É inoltre dato uno zaino a cui é associata una capacitá, ovvero un peso massimo che puó essere trasportato all interno dello zaino. Si vogliono inserire degli oggetti nello zaino in modo tale da massimizare il valore complessivo trasportato in esso, tenendo conto che il peso totale degli oggetti inseriti non puó superare la capacitá dello zaino. Modello su carta All oggetto i associamo una variabile binaria x i, ovvero una variabile che puó assumere solamente i valori 0 e 1. Se x i = 0 l oggetto i non viene inserito nello zaino, se x i = 1 l oggetto viene inserito nello zaino. L unico vincolo é quello che gli oggetti inseriti nello zaino abbiano un peso complessivo che non superi la capacitá dello zaino, ovvero peso i x i capacitá. i OGGET T I L obiettivo é quello di massimizzare il valore degli oggetti inseriti nello zaino, quindi max valore i x i. i OGGET T I Il modello su carta avrá dunque la seguente forma max i OGGET T I valore i x i i OGGET T I peso i x i capacitá x i {0, 1} i OGGET T I Modello in linguaggio AMPL abbiamo un solo insieme, l insieme OGGET T I, che verrá dichiarato nel modo seguente set OGGET T I ; Come parametri abbiamo due vettori di parametri, peso e valore, con insieme indice OGGET T I ed il singolo parametro capacitá. Tutti questi parametri sono positivi e verranno dichiarati nel modo seguente param peso{ogget T I} > 0 ; param valore{ogget T I} > 0 ; param capacitá > 0 ; 11
12 Avremo poi un vettore di variabili con insieme indice OGGET T I. Le variabili sono vincolate ad assumere i soli valori 0 e 1. Si puó esprimere questo accoppiando la dichiarazione delle variabili ad una dichiarazione di vincoli nel modo seguente var x{ogget T I} >= 0 integer ; subject to limit var{i in OGGET T I} : x[i] <=1 ; In questo modo le variabili sono vincolate ad essere interi compresi tra 0 e 1 e quindi possono assumere i soli valori 0 e 1. Tuttavia, visto il largo uso che si fa nella PLI di variabili binarie, AMPL prevede una dichiarazione speciale per esse: invece di accoppiare la dichiarazione delle variabili ad una dichiarazione di vincoli come descritto sopra, si effettua la seguente unica dichiarazione var x{ogget T I} binary ; Per quanto riguarda i vincoli, nel problema dello zaino abbiamo solo quello sulla capacitá dello zaino che verrá dichiarato nel modo seguente subject to max capac : sum{i in OGGET T I} peso[i] x[i] <= capacitá ; Infine l obiettivo verrá dichiarato nel modo seguente maximize tot valore : sum{i in OGGET T I} valore[i] x[i] ; Mettendo assieme quanto visto, il file contenente il modello, che chiameremo ZAINO.MOD, si presenterá nella seguente forma ZAINO.MOD ### INSIEMI ### set OGGET T I ; ### PARAMETRI ### 12
13 param peso{ogget T I} > 0 ; param valore{ogget T I} > 0 ; param capacitá > 0 ; ### VARIABILI ### var x{ogget T I} binary ; ### VINCOLI ### subject to max capac : sum{i in OGGET T I} peso[i] x[i] <= capacitá ; ### OBIETTIVO ### maximize tot valore : sum{i in OGGET T I} valore[i] x[i] ; Una volta costruito il modello si tratta di considerare delle particolari istanze di problema dello zaino in cui siano date le definizioni dell insieme OGGET T I e dei parametri. Ad esempio, consideriamo un caso in cui gli oggetti sono un libro, una radio, un telefono ed una macchina fotografica, con peso rispettivamente pari a 3, 7, 2 e 4 e valore 5, 8, 4 e 7. La capacitá dello zaino é 11. Il file di dati ZAINO.DAT si presenterá come segue ZAINO.DAT ### INSIEMI ### set OGGET T I := libro radio telefono macchina fotografica ; ### PARAMETRI ### 13
14 param peso := libro 3 radio 7 telefono 2 macchina fotografica 4 ; param valore := libro 5 radio 8 telefono 4 macchina fotografica 7 ; param capacitá := 11 ; A questo punto per risolvere il problema si procede come giá visto per il problema della dieta, inserendo modello e dati e chiamndo il risolutore attraverso i seguenti comandi ampl: model ZAINO.MOD; ampl: data ZAINO.DAT; ampl: solve; Il programma risolutore é un algoritmo Branch-and-Bound la cui esecuzione resta invisibile all utente, il quale tuttavia puó scegliere alcune opzioni (si veda il manuale per i dettagli). Ad esempio é possibile scegliere diverse regole per la selezione della variabile su cui fare il branching o per la selezione del nodo dell albero da suddividere. Attraverso il comando ampl: display x; é possibile visualizzare la soluzione ottima. Nell esempio specifico essa é x[*] := libro 1 14
15 macchina fotografica 1 radio 0 telefono 1 ; Nota con valore ottimo tot valore pari a 16. Quindi la soluzione ottima ha valore 16 e consiste nel mettere nello zaino il libro, la macchina fotografica ed il telefono mentre la radio viene lasciata fuori. Va puntualizzato che questi appunti contengono solo alcune idee di base di AMPL ma il linguaggio consente di modellare problemi anche molto piú complicati rispetto al problema della dieta e dello zaino. Per tutto quello che non si trova in questi appunti si rimanda al libro AMPL: a Modeling Language for Mathematical Programming. 15
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
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
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:
Ricerca Operativa (Compito A) Appello del 18/06/2013 Andrea Scozzari
Ricerca Operativa (Compito A) Appello del 18/06/2013 Andrea Scozzari Esercizio n.1 Un azienda intende incrementare il proprio organico per ricoprire alcuni compiti scoperti. I dati relativi ai compiti
SIMULAZIONE ESAME di OTTIMIZZAZIONE Corso di Laurea in Ingegneria Gestionale 2 o anno
SIMULAZIONE ESAME di OTTIMIZZAZIONE 28 novembre 2005 SIMULAZIONE ESAME di OTTIMIZZAZIONE Corso di Laurea in Ingegneria Gestionale 2 o anno Cognome : XXXXXXXXXXXXXXXXX Nome : XXXXXXXXXXXXXX VALUTAZIONE
Problema del trasporto
p. 1/1 Problema del trasporto Supponiamo di avere m depositi in cui è immagazzinato un prodotto e n negozi che richiedono tale prodotto. Nel deposito i è immagazzinata la quantità a i di prodotto. Nel
Capitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
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
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
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
Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani
Ricerca Operativa Esercizi sul metodo del simplesso Luigi De Giovanni, Laura Brentegani 1 1) Risolvere il seguente problema di programmazione lineare. ma + + 3 s.t. 2 + + 2 + 2 + 3 5 2 + 2 + 6,, 0 Soluzione.
Registratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
Ottimizzazione Multi Obiettivo
Ottimizzazione Multi Obiettivo 1 Ottimizzazione Multi Obiettivo I problemi affrontati fino ad ora erano caratterizzati da una unica (e ben definita) funzione obiettivo. I problemi di ottimizzazione reali
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
Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
Corso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
Invio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
Convertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
Introduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
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
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
LABORATORIO DI ANALISI DEI SISTEMI
LABORATORIO DI ANALISI DEI SISTEMI Si utilizzerà, come strumento di lavoro, un foglio elettronico, il più diffuso Excel o anche quello gratuito di OpenOffice (www.openoffice.org). Tale scelta, pur non
LE FUNZIONI A DUE VARIABILI
Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre
Metodologie di programmazione in Fortran 90
Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di
Matematica in laboratorio
Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a
Algoritmi e strutture dati. Codici di Huffman
Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per
Prof.ssa Paola Vicard
Questa nota consiste perlopiù nella traduzione (con alcune integrazioni) da Descriptive statistics di J. Shalliker e C. Ricketts, 2000, University of Plymouth Consideriamo i dati nel file esercizio10_dati.xls.
La Programmazione Lineare
4 La Programmazione Lineare 4.1 INTERPRETAZIONE GEOMETRICA DI UN PROBLEMA DI PROGRAMMAZIONE LINEARE Esercizio 4.1.1 Fornire una rappresentazione geometrica e risolvere graficamente i seguenti problemi
Capitolo 13: L offerta dell impresa e il surplus del produttore
Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:
Fasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
La distribuzione Normale. La distribuzione Normale
La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una
( x) ( x) 0. Equazioni irrazionali
Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza
1. PRIME PROPRIETÀ 2
RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,
4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
1 Applicazioni Lineari tra Spazi Vettoriali
1 Applicazioni Lineari tra Spazi Vettoriali Definizione 1 (Applicazioni lineari) Si chiama applicazione lineare una applicazione tra uno spazio vettoriale ed uno spazio vettoriale sul campo tale che "!$%!
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
Un applicazione della programmazione lineare ai problemi di trasporto
Un applicazione della programmazione lineare ai problemi di trasporto Corso di Ricerca Operativa per il Corso di Laurea Magistrale in Ingegneria della Sicurezza: Trasporti e Sistemi Territoriali AA 2012-2013
APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE
APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE 1. Proporzionalità diretta e proporzionalità inversa Analizziamo le seguenti formule Peso Lordo = Peso Netto + Tara Ricavo = Utile + Costo Rata = Importo + Interesse
Database 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
Corrispondenze e funzioni
Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei
mese 1 2 3 4 5 richiesta 6000 7000 8000 9500 11000
1.7 Servizi informatici. Un negozio di servizi informatici stima la richiesta di ore di manutenzione/consulenza per i prossimi cinque mesi: mese 1 2 3 4 5 richiesta 6000 7000 8000 9500 11000 All inizio
Lezione 9: Cambio di base
Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire
E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools
Una breve introduzione operativa a STGraph Luca Mari, versione 5.3.11 STGraph è un sistema software per creare, modificare ed eseguire modelli di sistemi dinamici descritti secondo l approccio agli stati
risulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007
RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007 Rispondere alle seguenti domande marcando a penna la lettera corrispondente alla risposta ritenuta corretta (una sola tra quelle riportate). Se
Programmazione dinamica
Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)
La Minimizzazione dei costi
La Minimizzazione dei costi Il nostro obiettivo è lo studio del comportamento di un impresa che massimizza il profitto sia in mercati concorrenziali che non concorrenziali. Ora vedremo la fase della minimizzazione
Il principio di induzione e i numeri naturali.
Il principio di induzione e i numeri naturali. Il principio di induzione è un potente strumento di dimostrazione, al quale si ricorre ogni volta che si debba dimostrare una proprietà in un numero infinito
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
Prodotto Disponibilità Costo 1 3000 3 2 2000 6 3 4000 4. e rispettando le seguenti regole di composizione delle benzine:
1.1 Pianificazione degli investimenti. Una banca deve investire C milioni di Euro, e dispone di due tipi di investimento: (a) con interesse annuo del 15%; (b) con interesse annuo del 25%. Almeno 1 di C
f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale
Corso di Scienza Economica (Economia Politica) prof. G. Di Bartolomeo Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale Facoltà di Scienze della Comunicazione Università di Teramo Scelta
Dovremmo a questo punto incominciare a vedere la suddivisione della nostra superficie.
Vediamo ancora come lavorare sulle superfici attraverso la loro parametrizzazione, e suddivisione progressiva. Alcune volte in Grasshopper ci sono diversi modi per fare le stesse cose. Abbiamo visto il
Dimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
Le Macchine di Turing
Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella
Guida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo
Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito
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,
1 Estensione in strategia mista di un gioco
AVVERTENZA: Di seguito trovate alcuni appunti, poco ordinati e poco formali, che uso come traccia durante le lezioni. Non sono assolutamente da considerarsi sostitutivi del materiale didattico. Riferimenti:
Modelli di Programmazione Lineare e Programmazione Lineare Intera
Modelli di Programmazione Lineare e Programmazione Lineare Intera 1 Azienda Dolciaria Un azienda di cioccolatini deve pianificare la produzione per i prossimi m mesi. In ogni mese l azienda ha a disposizione
PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1
PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ
Problema della produzione dei monitor
Problema della produzione dei monitor Una azienda produce monitor per PC in tre diversi stabilimenti. Il costo di produzione di ciascun monitor varia a causa della diversa efficienza produttiva degli stabilimenti.
VC-dimension: Esempio
VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio
PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1
Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6
e-dva - eni-depth Velocity Analysis
Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa
Funzioni di più variabili
Funzioni di più variabili Introduzione Funzioni reali di più variabili reali Una unzione reale di due variabili è una unzione : D R dove il dominio D è un sottoinsieme di R. ESEMPI: - / ln. Considerazioni
Metodi Stocastici per la Finanza
Metodi Stocastici per la Finanza Tiziano Vargiolu [email protected] 1 1 Università degli Studi di Padova Anno Accademico 2011-2012 Lezione 6 Indice 1 Il metodo bootstrap 2 Esercitazione 3 Interpolazione
SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione
SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi
Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati
Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè
Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo
Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero
Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico
Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare
17 Gli scenari. cartelle di lavoro; unendoli poi in un
17 Gli scenari Quando siamo alle prese con la valutazione delle spese effettuate oppure delle entrate, quando lavoriamo con investimenti, richieste di finanziamenti, o qualunque altra operazione finanziaria,
Traccia di soluzione dell esercizio del 25/1/2005
Traccia di soluzione dell esercizio del 25/1/2005 1 Casi d uso I casi d uso sono in Figura 1. Ci sono solo due attori: il Capo officina e il generico Meccanico. Figura 1: Diagramma dei casi d uso. 2 Modello
RISOLUTORE AUTOMATICO PER SUDOKU
RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU
Calcolo del Valore Attuale Netto (VAN)
Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di
Mac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
METODI per effettuare previsioni con analisi di tipo WHAT-IF
METODI per effettuare previsioni con analisi di tipo WHAT-IF 1. TABELLA DATI Una tabella di dati è un intervallo che mostra come la modifica di alcuni valori nelle formule ne influenza i risultati. Le
RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL
RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL 1 RAPPRESENTAZIONE GRAFICA Per l analisi dati con Excel si fa riferimento alla versione 2007 di Office, le versioni successive non differiscono
Studente: SANTORO MC. Matricola : 528
CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente
Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente Vediamo come utilizzare Word per costruire un modulo compilabile, ovvero una scheda che contenga delle parti fisse di
Programma Gestione Presenze Manuale autorizzatore. Versione 1.0 25/08/2010. Area Sistemi Informatici - Università di Pisa
- Università di Pisa Programma Gestione Presenze Manuale autorizzatore Versione 1.0 25/08/2010 Email: [email protected] 1 1 Sommario - Università di Pisa 1 SOMMARIO... 2 2 ACCESSO AL PROGRAMMA... 3
Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.
Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. 2ELHWWLYL GD UDJJLXQJHUH SHU JOL VWXGHQWL alla fine dell esercitazione gli studenti dovranno essere in grado di: 1. utilizzare
Dispense di Informatica per l ITG Valadier
La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di
Ottimizazione vincolata
Ottimizazione vincolata Ricordiamo alcuni risultati provati nella scheda sulla Teoria di Dini per una funzione F : R N+M R M di classe C 1 con (x 0, y 0 ) F 1 (a), a = (a 1,, a M ), punto in cui vale l
Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
MANUALE D USO PIATTAFORMA FRULIO3000NET GESTIONE PREVENTIVI
MANUALE D USO PIATTAFORMA FRULIO3000NET GESTIONE PREVENTIVI 1 Sommario GESTIONE PREVENTIVI... 3 INSERIMENTO PREVENTIVO... 5 SPECIFICA... 11 FUNZIONI VARIE... 12 Elenchi:... 13 ElenchiPREVD:... 18 STAMPE:...
Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:
Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione
Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile
Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione
ALGORITMO DEL SIMPLESSO
ALGORITMO DEL SIMPLESSO ESERCITAZIONI DI RICERCA OPERATIVA 1 ESERCIZIO 1. Risolvere il seguente programma lineare (a) con il metodo del simplesso e (b) con il metodo grafico. (1) min x 1 x () (3) (4) (5)
Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.
. Sia dato un poliedro. (a) Un vettore x R n è un vertice di P se soddisfa alla seguenti condizioni: x P e comunque presi due punti distinti x, x 2 P tali che x x e x x 2 si ha x = ( β)x + βx 2 con β [0,
Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a. 2012-13 Homework n 13. Docente: Laura Palagi
Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a. 2012-13 Homework n 13 Docente: Laura Palagi A.A. 2012/2013 Laboratorio di Ricerca Operativa BGER Leonardo Mastrantoni
Interesse, sconto, ratei e risconti
TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
ESEMPIO 1: eseguire il complemento a 10 di 765
COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento
