Metodi Matematici per l Ottimizzazione
|
|
- Casimiro Rocchi
- 6 anni fa
- Visualizzazioni
Transcript
1 Università di Catania L.M. in Informatica Metodi Matematici per l Ottimizzazione Modulo di Ottimizzazione Matematica Il linguaggio GAMS - Lezione I Laura Scrimali DMI - Studio 338, piano II blocco I Tel scrimali@dmi.unict.it
2 I generatori algebrici di modelli Fra gli anni 50 e gli anni 70, la programmazione matematica compì grandi progressi, cui non corrispose un applicazione altrettanto diffusa a problemi reali. Un forte ostacolo era dato dalla difficoltà di costruire i modelli, raccogliere e organizzare i dati, programmare gli algoritmi risolutivi e analizzare i risultati ottenuti.
3 Approccio modellistico
4 Nell approccio modellistico il passaggio dal problema alla strategia risolutiva è tutt altro che immediato. Anche il passaggio dal modello alla soluzione è solo apparentemente astratto e matematico. Infatti, questo passaggio comprende anche: 1 la traduzione del modello (pensato o scritto in linguaggio matematico) e dei dati (disponibili su carta o in un database informatico) in strutture dati accessibili a un risolutore 2 la realizzazione di un risolutore, che trasformi i dati in una soluzione opportunamente codificata 3 la traduzione della soluzione in un formato accessibile all utente (tabelle, grafici o altro).
5 Risolutori potenti sono poco utili a livello applicativo se l utente non dispone di un interfaccia comoda verso il risolutore, ovvero di un software che gestisca modelli e dati appartenenti al mondo reale e interroghi il risolutore. I generatori algebrici di modelli, fra cui GAMS, costituiscono quest interfaccia, cioè si occupano del primo e del terzo passo, lasciando il secondo al risolutore.
6 Caratteristiche principali Le caratteristiche principali dei generatori algebrici di modelli sono: fornire un linguaggio semplice per descrivere modelli complessi, permettere all utente di comunicare con il risolutore attraverso file di testo anziché attraverso strutture dati, in modo da non richiedere conoscenze informatiche approfondite e da consentire di formulare il modello con un semplice editor, qualunque sia la piattaforma su cui viene scritto e quella su cui viene risolto permettere all utente di comunicare con diversi risolutori, in modo da poter sfruttare i più potenti sul mercato, ovvero quelli disponibili
7 GAMS GAMS (General Algebraic Modeling System) è un linguaggio di modellazione algebrico per problemi di problemi lineari e non lineari, problemi in variabili intere e continue. GAMS consta di un compilatore e di risolutori di alto livello.
8 Una volta che il problema viene formulato tramite il linguaggio GAMS, occorre un opportuno risolutore di programmazione matematica per risolvere il problema. Sono disponibili diversi risolutori, la cui scelta dipende dal tipo di problema. In questo corso utilizzeremo l interprete GAMS ed il risolutore CPLEX, versione student.
9 Software Sito ufficiale: La pagina contiene: le istruzioni per il download, il software eseguibile per le diverse piattaforme, l elenco dei risolutori.
10 Un esempio Un imprenditore deve pianificare la produzione di cappelli della propria impresa manifatturiera per una singola giornata. La ditta può produrre 4 diversi modelli di cappelli, sfruttando la manodopera di tre artigiani. Il tempo impiegato da ogni artigiano per produrre i vari modelli è il seguente (in ore/pezzo). Modello/Artigiano Per accordi sindacali pregressi ogni artigiano deve lavorare per un minimo di 8 ore giornaliere, senza eccederne un massimo di 10.
11 Di ogni modello di scarpe sono noti il prezzo di vendita in euro e una stima della massima quantità di pezzi che il mercato può assorbire. Modello Prezzo Quantità Formulare in termini di programmazione lineare intera il problema di determinare un piano di produzione che massimizzi il profitto.
12 Traduzione in GAMS option optcr=0.0; Sets I artigiani / artigiano-1, artigiano-2, artigiano-3 /, J modelli di cappelli / modello-a, modello-b, modello-c, modello-d / ; Parameters p(j) prezzo di vendita /modello-a 56, modello-b 86, modello-c 45,modello-D 32/, q(j) quantità massima /modello-a 4, modello-b 3, modello-c 3,modello-D 5/; Parameter Tmin; Tmin = 8; Parameter Tmax; Tmax = 10; Table tempo(j,i) tempo di lavorazione artigiano-1 artigiano-2 artigiano-3 modello-a modello-b modello-c modello-d ; Variables x(j,i) numero di cappelli, z profitto totale ; Integer Variable x; Equations tempomin(i), tempomax(i), quantimax(j), profitto; tempomin(i).. sum(j,tempo(j,i)*x(j,i))=g=tmin; tempomax(i).. sum(j,tempo(j,i)*x(j,i))=l=tmax; quantimax(j).. sum(i,x(j,i))=l=q(j); profitto..z=e= sum(i,sum(j,p(j)*x(j,i))); Model produzione /all /; Solve produzione maximizing z using mip;
13 Input e output files Gli utenti preparano un file di modello di estensione.gms che contiene tutte le componenti del modello (variabili, funzione obiettivo, vincoli, etc.). Quando il file è pronto per essere eseguito, il sistema lo interpreta e, invocando il risolutore, restituisce come output il file di estensione.lst. Il file.gms può essere processato dalla linea di comando scrivendo gams filename.
14 Un modello GAMS è dato da un insieme di istruzioni nel linguaggio GAMS. Non importa l ordine con cui si inseriscono le istruzioni. L importante è che simboli e valori siano dichiarati prima di essere richiamati. Ciascuna istruzione di GAMS deve terminare con un punto e virgola. Può essere omesso nell ultima istruzione. GAMS non distingue tra lettere maiuscole e lettere minuscole. Le righe di commento devono essere precedute dal simbolo, oppure comprese tra i comandi $ Ontext... $ Offtext. Il testo che segue una specifica istruzione è sempre interpretato come un commento.
15 Organizzazione di un modello GAMS
16 Componenti fondamentali di un modello GAMS Ci sono cinque tipi fondamentali di input Parameters: (asseganti esogenamente) Variables: (variabili decisionali - sconosciute e esogene) Equations: (vincoli e funzione obiettivo) Model: (indica quali equazioni fanno parte del modello) Solve: (che tipo di problema deve essere risolto) La sintassi (dichiarazione e definizione) Parameter nome descrizione /valore/; Variables nome descrizione; Equations nome descrizione; Model nome-modello /nome-equazione,.../ (or: /all/ ); Solve nome-modello using tipo-risolutore minimizing (o maximizing) nome-variabile-funzione-obiettivo.
17 Procedura risolutiva lp: programmazione lineare; mip: programmazione lineare intera mista; rmip: rilassamento di un problema di programmazione lineare intera mista; qcp: programmazione quadratica vincolata; nlp: programmazione non lineare; dnlp: programmazione non lineare con derivate discontinue; miqcp: programmazione quadratica vincolata intera mista.
18 Risolutori Solutore Problemi Supportati Minos Cplex Lpsolve Progr. Lin. Progr. Nonlin. Progr. Lin. Progr. Quadr. Progr. Lin. Reti Progr. Lin. Intera Progr.Quadr. Intera Progr. Mista Intera Progr. Lin. Progr. Lin. Intera Progr. Mista Intera Algoritmi Implementati Simplesso Gradiente Ridotto Gradiente Proiettato Simplesso Punti Interni Simplesso su Reti Branch and Bound Cutting Planes Branch and Cut Simplesso Branch and Bound
19 Insiemi Un insieme deve essere: dichiarato con un nome che identifica l insieme attraverso la parola chiave Set (o Sets); la descrizione di cosa rappresenta; definito assegnando gli elementi all insieme dichiarato Esempio Per definire l insieme S di elementi a,b,c,d dichiariamo Set S /a, b, c, d/; Non sono ammessi nomi con più parole. Ad esempio si può scrivere San-Diego ma non San Diego.
20 In caso di più insiemi si può avere Esempio Set S /a, b, c, d/; Set A /1, 2, 3, 4/; oppure Sets S insieme di alimenti /a, b, c, d/ T insieme di principi nutritivi /f, g, h, i/; A piacimento si possono inserire spazi e righe vuote. Il testo contenuto dopo la dichiarazione dei nomi degli insiemi è solo esplicativo.
21 Per indicare successioni di elementi si usa il simbolo. Esempio Per definire l insieme S = {1, 2, 3,..., 50} dichiariamo Set S /1 * 50/; Un utile comando è alias che assegna un nome diverso ad un insieme precedentemente dichiarato. Ad esempio Alias (t,tp). Il muovo insieme può essere usato alternativamente al primo e contiene sempre gli stessi elementi del problema originario. E possibile introdurre più nomi con il comando alias. L ordine degli insiemi non conta, ma uno di essi deve essere stato definito precedentemente.
22 Dati GAMS usa tre formati per inserire i dati: liste (parametri), tabelle, assegnazione diretta.
23 Liste Esempio p(j) prezzo di vendita /modello-a 56, modello-b 86, modello-c 45,modello-D 32/, q(j) quantità massima /modello-a 4, modello-b 3, modello-c 3, modello-d 5/; Occorre dichiarare i parametri ed i loro domini, I valori sono inseriti tra i simboli /... / I valori degli elementi devono essere separati da, o inseriti su righe differenti.
24 Tabelle I dati possono essere inseriti in opportune tabelle. Esempio artigiano-1 artigiano-2 artigiano-3 modello-a modello-b modello-c modello-d ;
25 Assegnazione diretta Esempio Parameter c(i,j)=f*d(i,j)/ 1000 GAMS farà automaticamenti i calcoli per determinare i valori che assumono i parametri; ad uno stesso parametro può essere assegnato più volte un valore. Ogni assegnazione ha effetto immediato e sovrascrive ogni precedente valore. Uno scalare può essere riguardato come un parametro che non ha dominio.
26 Variabili Le variabili decisionali sono introdotte dall istruzione Variables. Ci sono cinque tipi di variabili VARIABLE (libera): ], + [ POSITIVE VARIABLE: [0, + [ NEGATIVE VARIABLE: ], 0] INTEGER: 0, 1,..., 100 BINARY: 0, 1 Le variabili hanno quattro caratteristiche upper bound.up lower bound.lo valore iniziale.l valore fissato.fx
27 Esempio Variables x(j,i) numero di cappelli, z profitto totale ; Integer Variable x; La variabili decisionali sono espresse algebricamente, specificando gli indici. La funzione obiettivo è dichiarata tra le variabili senza alcun indice e deve essere libera. La variabile z è dichiarata senza dominio perché è uno scalare. Non occorre ripetere il dominio delle variabili quando si dichiara il tipo.
28 Equazioni Le equazioni sono le istruzioni più complesse in GAMS. Le componenti sono: il nome dell equazione; il dominio; condizioni di restrizione del dominio; Il simbolo.. il primo membro dell equazione; gli operatori di relazione: =e= indica = =l= indica =g= indica il secondo membro dell equazione.
29 Equazioni Equations tempomin(i), tempomax(i), quantimax(j), profitto; tempomin(i).. sum(j,tempo(j,i)*x(j,i))=g=tmin; tempomax(i).. sum(j,tempo(j,i)*x(j,i))=l=tmax; quantimax(j).. sum(i,x(j,i))=l=q(j); profitto..z=e= sum((j,i),p(j)*x(j,i));
30 Istruzioni model e solve Model produzione /all /; Al modello viene assegnato un nome. Occorre poi specifiare quali equazioni devono essere incluse nella formulazione. Con l istruzione Solve produzione maximizing z using mip; si indica a GAMS quale modello risolvere, quale risolutore utilizzare, il tipo di problema (massimizzazione o minimizzazione), la variabile obiettivo.
31 L istruzione Display x.l; richiama i valori finali. Display
32 Output Il processo di compilazione restituisce due file di output: Process window: Status in blu, errori in rosso LST file: soluzione Contenuto del file.lst: Echo print: una copia del file di input con le righe numerate Equation listing Column Listing Model Statistics Solve Summary SolEQU SolVAR
33 Solve summary S O L V E S U M M A R Y MODEL produzione OBJECTIVE z TYPE MIP DIRECTION MAXIMIZE SOLVER CPLEX FROM LINE 43 **** SOLVER STATUS 1 Normal Completion **** MODEL STATUS 1 Optimal **** OBJECTIVE VALUE RESOURCE USAGE, LIMIT ITERATION COUNT, LIMIT IBM ILOG CPLEX r44857 Released Mar 4, 2014 VS8 x86/ Cplex
34 SolEQU ---- EQU tempomin LOWER LEVEL UPPER MARGINAL artigiano INF. artigiano INF. artigiano INF EQU tempomax LOWER LEVEL UPPER MARGINAL artigiano-1 -INF artigiano-2 -INF artigiano-3 -INF EQU quantimax LOWER LEVEL UPPER MARGINAL modello-a -INF modello-b -INF modello-c -INF modello-d -INF LOWER LEVEL UPPER MARGINAL ---- EQU profitto
35 SolVAR ---- VAR x numero di cappelli LOWER LEVEL UPPER MARGINAL modello-a.artigiano INF modello-a.artigiano-2.. +INF modello-a.artigiano-3.. +INF modello-b.artigiano INF modello-b.artigiano-2.. +INF modello-b.artigiano INF modello-c.artigiano-1.. +INF modello-c.artigiano INF modello-c.artigiano INF modello-d.artigiano-1.. +INF modello-d.artigiano INF modello-d.artigiano-3.. +INF LOWER LEVEL UPPER MARGINAL ---- VAR z -INF INF. z profitto totale
Scopo del laboratorio
p. 1/1 Scopo del laboratorio Imparare ad usare programmi che implementino metodi di ottimizzazione: simplesso, branch and bound ecc. utilizzarli per risolvere un problema proposto Modellatori Solver p.
DettagliModellazione GAMS. Sintassi di Base, Esempi. Domenico Salvagnin
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à
DettagliElementi di un modello di Programmazione Matematica
1 Ricerca Operativa Laboratorio: utilizzo di solver per programmazione matematica Elementi di un modello di Programmazione Matematica Insiemi: elementi del sistema; Parametri: dati del problema; Variabili
DettagliModelli 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
DettagliIntroduzione 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
DettagliIntroduzione 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
DettagliMiscelazione 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
DettagliRicerca Operativa A.A. 2007/ Introduzione
Ricerca Operativa A.A. 2007/2008 1. Introduzione Docente Luigi De Giovanni Dipartimento di Matematica Pura e Applicata (Torre Archimede) uff. 419 Tel. 049 827 1349 email: luigi@math.unipd.it www.math.unipd.it/~luigi
DettagliLinguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
DettagliIl Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
DettagliOttimizzazione e Controllo 2015/2016 ESERCITAZIONE
Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE Esercizio 1. Sono dati 6 job da processare su un centro di lavorazione automatizzato che può eseguire una sola lavorazione alla volta. Di ciascun job
DettagliMetodi e modelli per il supporto alle decisioni
Metodi e modelli per il supporto alle decisioni 1. Introduzione Supporto alle decisioni Supporto ai processi decisionali in sistemi complessi Problema decisionale reale Passi, operazioni Soluzioni del
DettagliInformatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati
Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Informatica 3 Lezione 10 - Modulo 1 Perchè
DettagliSoluzione di problemi di ottimizzazione
Soluzione di problemi di ottimizzazione Problema di programmazione lineare: Possibili ulteriori vincoli (Es.: x INTERO) Soluzione: Trovare x* tale che per ogni LE.1 Input: Solutori di problemi di PL/PLI
DettagliCome ragiona il computer. Problemi e algoritmi
Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema
DettagliLinguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
DettagliVBA è 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?
DettagliRicerca Operativa. Docente. 1. Introduzione
1 Ricerca Operativa 1. Introduzione Docente Luigi De Giovanni Dipartimento di Matematica (Torre Archimede) uff. 427 Tel. 049 827 1349 email: luigi@math.unipd.it www.math.unipd.it/~luigi Ricevimento: giovedì,
Dettagli1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata
Argomenti della Lezione 1) Matlab e simulazione 2) Esempi di utilizzo 1 Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata Matlab è un sistema di programmazione ad alto livello
DettagliAMPL: Risoluzione di Problemi Nonlineari
Dipartimento di Matematica Università di Padova Corso di Laurea Matematica Outline Risoluzione Problemi Non Lineari Generazione Sequenza Randomica investimenti2.run # cancella eventuali dati memorizzati
DettagliEvoluzione 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
Dettagli126 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.
DettagliRicerca Operativa. Docenti. 1. Introduzione
Ricerca Operativa 1. Introduzione Docenti Luigi De Giovanni - Giacomo Zambelli Dipartimento di Matematica Pura e Applicata (Torre Archimede) Tel. 049 827 1349 / 1348 email: luigi - giacomo @math.unipd.it
DettagliArray in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica
Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo
DettagliOttimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2-22 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma.it Università i di Roma La Sapienza Dipartimento di Informatica e Sistemistica
DettagliDalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliExcel: una piattaforma facile per l ottimizzazione. Excel ha un toolbox di ottimizzazione: Risolutore
Excel: una piattaforma facile per l ottimizzazione Excel ha un toolbox di ottimizzazione: Risolutore Il problema di produzione con Excel Consideriamo il foglio Excel Variabili di decisione reali c8,d8
DettagliProgrammazione di INFORMATICA e Laboratorio
ISIUO ECNICO SAALE settore ECNOLOGICO ad indirizzo: Elettronica ed Elettrotecnica - Informatica e elecomunicazioni Meccanica, Meccatronica ed Energia "VIORIO EMANUELE III" Via Duca della Verdura, 48-90143
DettagliUD 3.2b: Programmazione in Pascal (1)
UD 3.2b: Programmazione in Pascal (1) Il Linguaggio di Programmazione Pascal Esistono molti linguaggi di programmazione. Per motivi didattici utilizzeremo una versione ridotta di un linguaggio di programmazione
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliIntroduzione 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
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliLEZIONE N. 6 - PARTE 1 - Introduzione
LEZIONE N. 6 PROGRAMMAZIONE LINEARE IN MARKAL, SOLUZIONE DEI PROBLEMI DI PROGRAMMAZIONE LINEARE CON: IL METODO GRAFICO ED IL METODO DEL SIMPLESSO. PROPRIETÀ DELLA DUALITÀ ED ESEMPI DI SOLUZIONE DEL PROBLEMA
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliUnità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
DettagliIntroduzione alla ricerca operativa Problemi e modelli
Problemi e modelli TFA Anno Accademico 2012-13 La metodologia della matematica applicata Problema reale Denizione del modello matematico Algoritmo risolutivo Analisi dei risultati Il problema reale Reperimento
DettagliOttimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2010-20112011 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma1.it Università i di Roma La Sapienza Dipartimento di Informatica
DettagliSistemi Operativi 1. Mattia Monga. a.a. 2012/13. Dip. di Informatica Università degli Studi di Milano, Italia
1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2012/13 1 cba 2011 13 M.. Creative Commons Attribuzione-Condividi allo stesso modo 3.0 Italia License. http://creativecommons.org/licenses/by-sa/3.0/it/.
DettagliIntroduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
DettagliFortran. Introduzione.
Fortran Introduzione http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Esistono molti linguaggi di programmazione usati in vari
DettagliIntroduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
DettagliMetodi di Ottimizzazione per la Logistica e la Produzione
Metodi di Ottimizzazione per la Logistica e la Produzione Introduzione alle attività di Laboratorio Manuel Iori Dipartimento di Scienze e Metodi dell Ingegneria Università di Modena e Reggio Emilia MOLP
DettagliFREEFEM++ Marcello Bellomi. 18 Aprile Università di Verona FREEFEM++
18 Aprile 2013 Indice 1) Introduzione 2) Esempio base 3) Sintassi 4) Esempio Part I Indroduzione Dettagli iniziali Risolve problemi in 2D e 3D, creato principalmente per risolvere problemi variazionali
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
DettagliRicerca Operativa. Docente. 1. Introduzione
Ricerca Operativa 1. Introduzione Docente Luigi De Giovanni Dipartimento di Matematica Pura e Applicata (Torre Archimede) uff. 427 Tel. 049 827 1349 email: luigi@math.unipd.it www.math.unipd.it/~luigi
DettagliIntroduzione al Calcolo Scientifico
Introduzione al Calcolo Scientifico Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico 1 / 14 Calcolo Scientifico Insieme degli
DettagliEsempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina
Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono
DettagliUnità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche
DettagliCaratteristiche di un linguaggio ad alto livello
Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono
Dettagli1 Breve introduzione ad AMPL
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.
DettagliScrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
DettagliLINGO -
. p.1/13 LINGO - www.lindo.com Linear . p.1/13 LINGO - www.lindo.com Linear INteractive and . p.1/13 LINGO - www.lindo.com Linear INteractive and General . p.1/13 LINGO - www.lindo.com Linear INteractive
DettagliSTORIA E CARATTERISTICHE
IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori
DettagliModelli di Programmazione Matematica e introduzione ad AMPL
1 Modelli di Programmazione Matematica e introduzione ad AMPL Come accennato nell introduzione, all interno della Ricerca Operativa, un ruolo di fondamentale importanza è svolto dalla Programmazione Matematica
DettagliMATLAB 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 è
DettagliMetodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)
Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I) Luigi De Giovanni Giacomo Zambelli 1 Problemi di programmazione lineare Un problema
DettagliSviluppare un programma in FORTRAN
Sviluppare un programma in FORTRAN Scrivere il file sorgente Editor di testo (emacs, vi, notepad, etc) Compilare Compilatore (ifort, gfortran, etc) Eseguire il programma Riga di comando, doppio click,
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
DettagliOttimizzazione dei Sistemi Complessi
1 Martedì 17 Maggio 2016 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Programmazione con incertezza Una società di autonoleggio dispone (attualmente, oggi) di 50 macchine tutte dislocate
DettagliIl concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
DettagliI Linguaggi di Programmazione
I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliUnità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.
Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti
DettagliProgetto 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: canale@dis.uniroma.it Università di Roma La Sapienza Dipartimento di Informatica
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliTEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE
TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso
DettagliProblema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII
DettagliProgrammazione con il linguaggio LibreOffice Basic
Programmazione con il linguaggio LibreOffice Basic L ambiente di programmazione Il software LibreOffice possiede un ambiente di programmazione in linguaggio Basic, che consente di creare procedure software
DettagliLezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
DettagliDall algoritmo al programma
Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione
DettagliMetodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab
Metodi di Analisi dei Dati Sperimentali AA /2010 Pier Luca Maffettone Elementi di Matlab Sommario Introduzione Variabili Manipolazione di elementi Creazione di vettori/matrici Operazioni elementari Funzioni
DettagliEsercizi svolti di Programmazione Lineare. a cura di Laura Scrimali Dipartimento di Matematica e Informatica Università di Catania
Esercizi svolti di Programmazione Lineare a cura di Laura Scrimali Dipartimento di Matematica e Informatica Università di Catania Formulazione matematica e risoluzione grafica Esercizio Una pasticceria
DettagliAppunti 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
DettagliIntroduzione. 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
DettagliIntroduzione ai Calcolatori Elettronici
Introduzione ai Calcolatori Elettronici Elementi di Base dell ICT Information and Communication Technology Concetti Introduttivi A.A. 2013/2014 Domenica Sileo Università degli Studi della Basilicata Elementi
DettagliLingo caratteristiche generali
Introduzione a Lingo TM www.lindo.com Lingo caratteristiche generali E un software per la PL e PLI, ma anche per problemi non lineari Permette di scrivere il problemi direttamente in termini di funzione
DettagliShell: variabili di sistema. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set
PATH Shell: variabili di sistema HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set Shell: variabili di sistema Per visualizzare il
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliAnalizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.
Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,
DettagliI vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore.
I vettori in C Sintassi della definizione Definizione di costanti Operazioni di accesso Vettori Definizione di vettori in C I vettori in C Definizione di vettori in C Definizione di vettori in C Stesse
DettagliProf. Pagani Corrado ALGORITMI
Prof. Pagani Corrado ALGORITMI PRIMI APPROCCI GRAFICI ALLA PROGRAMMAZIONE Il coding (e la programmazione) è entrato con forza nella scuola anche grazie al progetto MIUR chiamato Programma il futuro (http://programmailfuturo.it/)
DettagliProblemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA1 1.1 Programmazione base 1 Prerequisiti Saper scrivere algoritmi elementari Tecniche elementari di sviluppo di una applicazione Modalità a riga di comando Utilizzo
DettagliFondamenti di Informatica
Fondamenti di Informatica Introduzione a MATLAB Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 Introduzione a MATLAB Avviso per le Prossime Lezioni
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliProgrammazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
DettagliIntroduzione 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
DettagliMetodologie informatiche per la chimica
Metodologie informatiche per la chimica Dr. Sergio Brutti Vettori & Excel Fogli di calcolo (spreadsheets) Un foglio di calcolo è un programma informatico che consente di effettuare operazioni algebriche,
DettagliSommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript
Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Il Problema computazionale È computazionale un
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi
INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università
DettagliSoluzione di problemi di Programmazione Lineare Intera
10 Soluzione di problemi di Programmazione Lineare Intera 10.1 ESERCIZI SULLA SOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE INTERA Esercizio 10.1.1 Risolvere con il metodo del Branch and Bound il seguente
DettagliElementi di informatica
Elementi di informatica Programmare in C 1 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ int base; int altezza; int area; Conosciamo base = 3; altezza = 7; area = base*altezza; printf("%d",
DettagliIndice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
DettagliIL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
DettagliESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
Dettagli