Uso di MPL e Solver per problemi LP ed ILP. Uso di Modelli Matematici (1)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Uso di MPL e Solver per problemi LP ed ILP. Uso di Modelli Matematici (1)"

Transcript

1 Uso di MPL e Solver per problemi LP ed ILP Michele Monaci e Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 3.0 ottobre 2002 Uso di Modelli Matematici (1) Problema della dieta: n possibili cibi m sostanze nutritive b i fabbisogno giornaliero sostanza i c j costo cibo j a ij quantità di sostanza i per unità di cibo j minimizzare il costo totale assicurando il fabbisogno giornaliero di ogni sostanza MPL.Intro.2 1

2 Uso di Modelli Matematici (2) Modello matematico: min n = 1 j n j = 1 c j x j = K a x b i 1,, m ij j i x j 0 j = 1, K, n MPL.Intro.3 n = 5 m = 8 c j = { 10, 8, 15, 6, 16 } Dieta - esempio b i = {40,20,30,10,42,41,65,17} a ij = {0, 14, 2, 36, 0, 55, 33, 44 36, 89, 1, 99, 30, 17, 7, 10 8, 42, 15, 9, 26, 3, 23, 11 20, 17, 0, 6, 55, 1, 0, 0 7, 44, 16, 19, 28, 0, 10, 4 } MPL.Intro.4 2

3 Soluzione 1: scrittura manuale /* file CPLEX */ MINIMIZE z: 10 x1 + 8 x x3 + 6 x x5 SUBJECT TO CONSTR1: 36 x2 + 8 x x4 + 7 x5 >= 40 CONSTR2: 14 x x x x x5 >= 20 CONSTR3: 2 x1 + x x x5 >= 30 CONSTR4: 36 x x2 + 9 x3 + 6 x x5 >= 10 CONSTR5: 30 x x x x5 >= 42 CONSTR6: 55 x x2 + 3 x3 + x4 >= 41 CONSTR7: 33 x1 + 7 x x x5 >= 65 CONSTR8: 44 x x x3 + 4 x5 >= 17 END MPL.Intro.5 Soluzione 2: scrittura su File Void scrivi( n, m, a, b, c) { int i, j; FILE *fout; fout = fopen( input.lp,w); fprintf(fout, MINIMIZE\n Z: ); for ( j = 1; j <= n; j++ ) if (c[j] > 0) fprintf(fout, +%d x%d,c[j], j ); fprintf(fout, \n SUBJECT TO \n ); for ( i = 1; i <= m; i++ ) { fprintf(fout, CONSTR%d :,i ); for ( j = 1; j <= n; j++ ) if (a[i][j]>0) fprintf(fout, +%d x%d,a[i][j],j); fprintf(fout, >= %d \n,b[i] ); } fprintf(fout, END\n ); fclose(fout); } MPL.Intro.6 3

4 Soluzione 3: MPL { Diet.mpl } TITLE Example INDEX nutrients = 1..8 foods := ( pasta, ham, cheese, egg, bread ) DATA Required[nutrients] = ( 40! Calories [thousands] 20! Protein [grams] 30! Calcium [grams] 10! Iron [milligrams] 42! Avitamin [thousand ius] 41! Thiamine (B1) [milligrams] 65! Riboflavin (B2) [milligrams] 17 );! Niacin [milligrams] Cost[foods] = ( 10, 8, 15, 6, 16 ); A[foods,nutrients] = DATAFILE(input.dat)! Nuritive values of foods. DECISION x[foods]! dollars of food to be purchased daily MODEL MIN z = SUM(foods: Cost*x) ; SUBJECT TO CONSTR[nutrients] : SUM(foods: A*x) > Required[nutrients] END MPL.Intro.7 Soluzione 4: Solver di Excel Problema della Dieta B C D E F G H I J K (1000) (g) (g) (mg) (1000 ius) (B1) (mg) (B2) (mg) (mg) Costo Calorie Proteine Calcio Ferro Vit. A Tiamina Riboflavina Niacina /Kg Fabbisogno giornaliero qta (Kg) Cibo Cibo Cibo Cibo Cibo Contenuto dieta costo complessivo ( ) =MATR.SOMMA.PRODOTTO(B7:B11;$K$7:$K$11) =MATR.SOMMA.PRODOTTO(J7:J11;K7:K11) MPL.Intro.8 4

5 MPL: Introduzione MPL è un pacchetto software che permette di implementare problemi di programmazione lineare (LP) e programmazione lineare intera (ILP) in modo chiaro, efficiente e conciso. E un linguaggio ad alto livello che permette di descrivere sistemi anche molto complessi. E possibile introdurre commenti e definizioni linguistiche che facilitano la comprensione anche ai non programmatori. MPL.Intro.9 MPL: Introduzione (2) I programmi vengono scritti con un semplice editor di testo e sono indipendenti dalla piattaforma sulla quale sono eseguiti (Windows, Unix, Macintosh, OSF Motif). Nell output sono indicate, in modo comprensibile, tutte le operazioni svolte dal risolutore. Si può interfacciare con strumenti di grafica. MPL.Intro.10 5

6 MPL Modeling System (1) MODELS DATA MPL SOLVERS MPL.Intro.11 MPL Modeling System (2) MPL si può utilizzare i seguenti Solvers: CPLEX OSL XA FrontLine Lindo FortMP C-Whiz XPress-MP MPL.Intro.12 6

7 MPL: Input data MPL consente di acquisire i dati di input: Direttamente nel file MPL Da file di testo (ASCII) Da database esterno (ACCESS, EXCEL, ODBC, ORACLE...) Da database interno a MPL MPL.Intro.13 MPL Modeling Language Alcune caratteristiche: Utilizzo di nomi lunghi e alias. Importazione dati da altri programmi. Inclusione di file e direttive condizionali. Utilizzo di sommatorie di vettori e matric Lunghezza righe: 255 caratteri (oltre ignorati) Separatori: i diversi statement all interno dello stesso blocco devono essere divisi dal punto e virgola ; Commenti: le parentesi graffe {} racchiudono un blocco di commenti anche su piu` righe. Il punto esclamativo! delimita l inizio di un commento che termina a fine riga. MPL.Intro.14 7

8 Struttura file MPL (1) Parte 1: Dichiarazioni TITLE: Nome del Modello (Opzionale) INDEX: Definizione indici per insiemi DATA: Vettori di input e costanti DECISION: Variabili decisionali MACRO: Definizione di macro MPL.Intro.15 Struttura file MPL (2) Parte 2: Il modello MODEL MAX/MIN: Funzione obiettivo SUBJECT TO: Vincoli del modello BOUNDS: Upper e Lower bounds sulle variabili INTEGER: Variabili intere BINARY: Variabili binarie FREE: Variabili libere END MPL.Intro.16 8

9 INDEX (1) Gli indici definiscono i domini del problema. Possono essere: Numerici: nutrients:= 1..8; Nominali: foods:=(pasta, ham, cheese, egg, bread); Associati ad Alias: foods:=(pasta, ham, cheese, egg, bread) -> (p, h, c, e, b); MPL.Intro.17 INDEX (2) E possibile definire indici circolari (modulo) day := (mo, tu, we, th, fr, sa, su) CIRCULAR; month := CIRCULAR; sottoinsiemi di indici. holiday[day] := (sa, su); summer[month] := (7..9); MPL.Intro.18 9

10 DATA (1) In questa sezione si specificano i coefficienti utilizzati dal modello (costanti o vettori) Costanti: MinP:= 1 Vettori: Required[nutrients] := (40, 20, 30, 10, 42, 41, 65, 17); Vengono generate le variabili Required1, Required2, Required3, Required4, Required5, Required6, Required7, Required8 MPL.Intro.19 DATA (2) Dati da una fonte esterna: File di testo: A[foods,nutrients]:=DATAFILE( input.dat"); { input.dat } Calories Protein Calcium Iron VitaminA Thiamine Riboflavin Niacin! (1000) (grams) (grams) (MG) (1000 IU) (MG) (MG) (MG) WheatFlour CornMeal EvapMilk Margarine Cheese Database Excel: A [foods,nutrients]= EXCELRANGE( input.xls", foods"); MPL.Intro.20 10

11 DECISION (1) DECISION In questa sezione sono definite le variabili decisionali del problema Per definire un insieme di variabili con lo stesso nome, si indica il nome del vettore e la dimensione del vettore stesso Es: X[foods]; Si possono definire variabili multidimensionali. Es: MultiVar[foods,nutrients] -> Y; MPL.Intro.21 DECISION (2) Se alcune delle variabili decisionali sono intere bisogna indicare ciò con la parola chiave INTEGER Nel caso in cui siano binarie si usa BINARY Es: INTEGER VARIABLES MultiVar[foods,nutrients]; MPL.Intro.22 11

12 FUNZIONE OBIETTIVO Esprime la funzione lineare da ottimizzare. Deve essere indicata all inizio del file MPL; preceduta dalla parola chiave MIN o MAX; ES: MAX 3x1 + 5x2 ; MIN Z = SUM(foods:cost*x); MINIMIZE Cost = SUM(foods,nutrients : Y) ; MPL.Intro.23 VINCOLI (1) I vincoli del modello vengono definiti immediatamente dopo la funzione obiettivo. Preceduti dalla parola chiave SUBJECT TO Ogni vincolo deve terminare con il carattere ; I plain constraints sono espressi direttamente Es: X1 + X2 + X3 >= 2; I vector constraints sono associati ad indici. Es: CONSTRAINT[nutrients]: SUM(foods:A*x)>required[nutrients]; MPL.Intro.24 12

13 VINCOLI (2) è possibile scrivere dei vector constraints solo su un sottoinsieme degli indici o in base a determinate condizioni. Es: CONSTR[nutrients=1..4] : CONSTR[foods,nutrients] WHERE (foods > bread) : MPL.Intro.25 VINCOLI (3) VINCOLO NON CIRCOLARE Xj + X(j+1) +.X(j+k) >= a INDEX j:= 1..10; SUM(h=j..j+k: x) >= a VINCOLO CIRCOLARE se j+k > 10 (es.: j=7, k=5) X7 + X8 + X9 + X10 + X1 + X2 >= a INDEX kk:= 1..5; SUM(kk: x[j+kk]) >= a MPL.Intro.26 13

14 BOUNDS è possibile indicare nel modello un lower bound e/o un upper bound per ogni variabile. Si utilizza la parola chiave BOUNDS Es: BOUNDS X1 >= MinP; y_bound: 2 < Y(1,1) < 8 ; Default: lower bound =0 per tutte le variabili. Il file MPL deve terminare con la parola END MPL.Intro.27 Modello completo { Diet.mpl } TITLE Example INDEX nutrients = 1..8 foods := ( pasta, ham, cheese, egg, bread ) DATA Required[nutrients] = ( 40! Calories [thousands] 20! Protein [grams] 30! Calcium [grams] 10! Iron [milligrams] 42! Avitamin [thousand ius] 41! Thiamine (B1) [milligrams] 65! Riboflavin (B2) [milligrams] 17 );! Niacin [milligrams] Cost[foods] = ( 10, 8, 15, 6, 16 ); A[foods,nutrients] = DATAFILE(input.dat)! Nuritive values of foods. DECISION x[foods]! dollars of food to be purchased daily MODEL MIN z = SUM(foods: Cost*x) ; SUBJECT TO CONSTR[nutrients] : SUM(foods: A*x) > Required[nutrients] END MPL.Intro.28 14

15 Ambiente MPL MPL.Intro.29 15

Soluzione di problemi di ottimizzazione

Soluzione di problemi di ottimizzazione Soluzione di problemi di ottimizzazione Problema di ottimizzazione: min z = c x A x b x 0 Possibili ulteriori vincoli (Es.: x INTERO) Soluzione: Trovare x* tale che c x* =0 MPL-LE.1

Dettagli

Soluzione di problemi di ottimizzazione

Soluzione 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

Dettagli

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

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

Dettagli

Scopo del laboratorio

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.

Dettagli

Programmazione Matematica: III.1 - Programmazione Lineare

Programmazione Matematica: III.1 - Programmazione Lineare Programmazione Matematica: III.1 - Programmazione Lineare Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 1.0 ottobre 2003 Programmazione Lineare Def.: (F, ϕ ) è un problema di Programmazione

Dettagli

LINGO -

LINGO - . 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

Dettagli

Ricerca Operativa A.A. 2008/2009

Ricerca Operativa A.A. 2008/2009 Ricerca Operativa A.A. 08/09 Esercizi di modellazione 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

Dettagli

Ottimizzazione Combinatoria

Ottimizzazione Combinatoria Ottimizzazione Combinatoria 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 e Sistemistica

Dettagli

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

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

Dettagli

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

Introduzione all uso di FICO Xpress. Metodi di Ottimizzazione per la Logistica e la Produzione 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

Dettagli

Teoria della Dualità: I Introduzione

Teoria della Dualità: I Introduzione Teoria della Dualità: I Introduzione Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 1.2 Maggio 2004 Dualità Per ogni problema PL, detto primale, ne esiste un altro, detto duale, costruito

Dettagli

Programmazione Matematica: I - Introduzione

Programmazione Matematica: I - Introduzione Programmazione Matematica: I - Introduzione Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 3.0 ottobre 2002 Problemi di Ottimizzazione x = (x,, x n ) R n : vettore di variabili decisionali

Dettagli

Metodi di Ottimizzazione per la Logistica e la Produzione

Metodi 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

Dettagli

Elementi di un modello di Programmazione Matematica

Elementi 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

Dettagli

p. 1/22 IBM ILOG CPLEX SIMPLEX implementato in C.

p. 1/22 IBM ILOG CPLEX SIMPLEX implementato in C. p. 1/22 IBM ILOG CPLEX SIMPLEX implementato in C. p. 1/22 IBM ILOG CPLEX SIMPLEX implementato in C. Sono implementati anche altri metodi per trattare diversi problemi di ottimizzazione. p. 1/22 IBM ILOG

Dettagli

Modellazione GAMS. Sintassi di Base, Esempi. Domenico Salvagnin

Modellazione 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à

Dettagli

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

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

Dettagli

Problemi di Ottimizzazione

Problemi di Ottimizzazione Problemi di Ottimizzazione Obiettivo: misura della qualità di una soluzione. Vincoli: condizioni che devono essere soddisfatte per ottenere una soluzione ammissibile. Problema di Ottimizzazione: determina

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, 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

Dettagli

Lingo caratteristiche generali

Lingo 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

Dettagli

INTRODUZIONE A LINGO. Dispense a cura di Antonio Tiano

INTRODUZIONE A LINGO. Dispense a cura di Antonio Tiano INTRODUZIONE A LINGO Dispense a cura di Antonio Tiano 1 LINGO (LINear Generalized Optimization) E un software che consente di : Risolvere problemi di ottimizzazione di vario tipo (PL, PQ, PNL) in presenza

Dettagli

Ottimizzazione Combinatoria

Ottimizzazione 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

Dettagli

Uso di Optimax MPL OptiMax

Uso di Optimax MPL OptiMax Uso di Optimax 2000 Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it rev. 1.0 - gennaio 2003 MPL OptiMax OptiMax 2000 è una libreria di oggetti che rende disponibile le funzionalità di

Dettagli

AMPL: Esempi. F. Rinaldi. Corso di Laurea Matematica. Dipartimento di Matematica Università di Padova. Esempi di Modellazione in AMPL

AMPL: Esempi. F. Rinaldi. Corso di Laurea Matematica. Dipartimento di Matematica Università di Padova. Esempi di Modellazione in AMPL Dipartimento di Matematica Università di Padova Corso di Laurea Matematica Outline Esempi di Modellazione in AMPL Esempio 2 Problema della Dieta In questo problema é data una lista di cibi, a ciascuno

Dettagli

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

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli Ricerca Operativa 2. Modelli di Programmazione Lineare - TESTI Modelli di programmazione lineare Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli Sotto queste ipotesi

Dettagli

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev..0 Maggio 2004 Scomposizione di problemi Accade spesso che un problema

Dettagli

Programmazione Matematica: Modelli di Programmazione Intera

Programmazione Matematica: Modelli di Programmazione Intera Programmazione Matematica: Modelli di Programmazione Intera Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 2.0 Aprile 2004 Indagine di Mercato Mix di utenti da intervistare telefonicamente:

Dettagli

Progetto e ottimizzazione di reti 2

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: canale@dis.uniroma1.it Università di Roma La Sapienza Dipartimento di Informatica

Dettagli

Introduzione alla programmazione A. Ferrari

Introduzione alla programmazione A. Ferrari Introduzione alla programmazione A. Ferrari Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi ad

Dettagli

Progetto e ottimizzazione di reti 2

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: canale@dis.uniroma.it Università di Roma La Sapienza Dipartimento di Informatica

Dettagli

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr. Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XII, parte I ) Gestione dell input Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

Le basi del linguaggio Java

Le 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

Dettagli

Strumenti software per la soluzione di problemi di PL e PLI

Strumenti software per la soluzione di problemi di PL e PLI Strumenti software per la soluzione di problemi di PL e PLI Fabrizio Marinelli marinelli@di.univaq.it Università degli Studi dell Aquila Pescara, 2 dicembre 2004 www.oil.di.univaq.it Agenda L OTTIMIZZAZIONE

Dettagli

Teoria della Complessità Computazionale Parte I: Introduzione

Teoria della Complessità Computazionale Parte I: Introduzione Teoria della Complessità Computazionale Parte I: Introduzione Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it rev. 3.0 - ottobre 2003 Teoria della Complessità Studia la difficoltà dei

Dettagli

Linguaggi di modellizzazione

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

Dettagli

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 1.0 Aprile 2004 Algoritmo del Simplesso L algoritmo del Simplesso

Dettagli

Ottimizzazione Combinatoria

Ottimizzazione 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

Dettagli

Metodi numerici con elementi di Programmazione A.A

Metodi numerici con elementi di Programmazione A.A Metodi numerici con elementi di Programmazione A.A. 2013-2014 Introduzione al MatLab VI parte 1 Docente: Vittoria Bruni Email: vittoria.bruni@sbai.uniroma1.it Ufficio: Via A. Scarpa, Pal. B, I piano, Stanza

Dettagli

Miscelazione di benzine

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

Dettagli

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

1) 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

Dettagli

Introduzione al C. Fondamenti di Informatica. Daniele Loiacono

Introduzione al C. Fondamenti di Informatica. Daniele Loiacono Introduzione al C Fondamenti di Informatica Il nostro primo programma in C /* Questo è il nostro primo programma in C */ #include int main( ) printf("hello world\n"); Il nostro primo programma

Dettagli

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21 Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...

Dettagli

Fondamenti di Business Analytics classi M2/M3 Michele Impedovo anno accademico

Fondamenti di Business Analytics classi M2/M3 Michele Impedovo anno accademico Fondamenti di Business Analytics 20486 classi M2/M3 Michele Impedovo anno accademico 2016-2017 Lezione 10 Tre classici problemi Il problema della dieta l problema dei trasporti Il problema del cioccolato

Dettagli

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Dettagli

Fondamenti di Informatica. Ingegneria elettronica

Fondamenti di Informatica. Ingegneria elettronica Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse

Dettagli

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

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)

Dettagli

Introduzione a Lingo TM

Introduzione a Lingo TM Introduzione a Lingo TM www.lindo.com Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova 2001/2002 Lingo caratteristiche generali 2!E un software per la PL e IP, ma anche per problemi

Dettagli

File binari e file di testo

File binari e file di testo I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file

Dettagli

1. Calcolo dell indice di condizionamento di una matrice

1. Calcolo dell indice di condizionamento di una matrice 1 Esercizi sul condizionamento con matlab laboratorio di Calcolo Scientifico per Geofisici Prof. A. Murli a.a. 2006/07 1. Calcolo dell indice di condizionamento di una matrice Determinare una function

Dettagli

Metodi Matematici per l Ottimizzazione

Metodi Matematici per l Ottimizzazione 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.

Dettagli

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

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

Dettagli

Progetto e ottimizzazione di reti 2

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: canale@dis.uniroma.it Università di Roma La Sapienza Dipartimento di Informatica

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

TEORIA della DUALITÀ. Una piccola introduzione. Ricerca Operativa. Prof. R. Tadei. Politecnico di Torino. Teoria della Dualità / 1.

TEORIA della DUALITÀ. Una piccola introduzione. Ricerca Operativa. Prof. R. Tadei. Politecnico di Torino. Teoria della Dualità / 1. Prof. R. adei EORIA della DUALIÀ Una piccola introduzione R. adei 1 R. adei 2 EORIA DELLA DUALIA' Il concetto di dualità fu introdotto nel 1947 da Von Neumann, anche se il teorema della dualità fu formulato

Dettagli

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

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:

Dettagli

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi

Dettagli

2 Operatori matematici e costrutto if

2 Operatori matematici e costrutto if Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni

Dettagli

Esercitazione 1: Introduzione a MATLAB

Esercitazione 1: Introduzione a MATLAB Laboratorio di Immagini Esercitazione 1: Introduzione a MATLAB Mauro Zucchelli 09/03/2016 MATLAB Cos è MATLAB? MATLAB Cos è MATLAB? MATLAB non è un linguaggio di programmazione MATLAB Cos è MATLAB? MATLAB

Dettagli

Gestione dei files in linguaggio C. Fondamenti

Gestione dei files in linguaggio C. Fondamenti Programmazione e Laboratorio di Programmazione Gestione dei files in linguaggio C Fondamenti 1 Che cosa è un file? Un file può essere visto come un contenitore di informazioni simile ad un vettore di bytes

Dettagli

1 Breve introduzione ad AMPL

1 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.

Dettagli

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

Indice 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

Dettagli

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://www.ing.unibs.it/gastaldi/ Indice 1 M-file di tipo Script e Function Script Function 2 Gestione

Dettagli

Excel: 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 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

Dettagli

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell

Dettagli

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo

Dettagli

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi

Dettagli

Progetto di rete con unica sorgente e costi fissi

Progetto di rete con unica sorgente e costi fissi Progetto di rete con unica sorgente e costi fissi Si consideri la topologia di rete data dal grafo G = (V,E) in figura. Ogni nodo i V = {1...n} rappresenta un router connesso ad una rete fissa ed ogni

Dettagli

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Cicli Concetti di base (MATrix LABoratory) programma interattivo per calcolo

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Introduzione al C. InformaticaB. Daniele Loiacono

Introduzione al C. InformaticaB. Daniele Loiacono Introduzione al C InformaticaB Facciamo un passo indietro Compilare o Interpretare? q Come rendo comprensibili al calcolatore i programmi scritti in un linguaggio di programmazione (ad es. C, C++, Java)?

Dettagli

Esercitazioni di Progetto di Reti di Telecomunicazioni. Anno Accademico Semestre

Esercitazioni di Progetto di Reti di Telecomunicazioni. Anno Accademico Semestre Esercitazioni di Progetto di Reti di Telecomunicazioni Anno Accademico 2007-2008 2 Semestre Per contattarmi Massimo Tornatore Int. 3691, Ufficio 329 tornator@elet.polimi.it http://networks.cs.ucdavis.edu/~tornatore

Dettagli

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico: Struttura di un linguaggio Il C nel C++ Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture

Dettagli

Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a Homework n 3. Docente: Laura Palagi

Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a Homework n 3. Docente: Laura Palagi Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a. 2012-13 Homework n 3 Docente: Laura Palagi 2 TESTO DEL PROBLEMA Si vuole programmare la dieta di un individuo su un

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Il linguaggio GNU MathProg con esempi commentati e risolti

Il linguaggio GNU MathProg con esempi commentati e risolti Il linguaggio GNU MathProg con esempi commentati e risolti Roberto Cordone 6 agosto 2010 1 Linguaggi algebrici di modellizzazione Gli indubbi vantaggi del solver di Excel nell affrontare problemi decisionali

Dettagli

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

Unità 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

Dettagli

Lezione 8. Sottoprogrammi

Lezione 8. Sottoprogrammi Lezione 8 Il linguaggio C: Sottoprogrammi e Funzioni I puntatori Input/Output su file Sottoprogrammi Per risolvere un problema si può scomporlo in problemi più semplici e comporre le loro soluzioni in

Dettagli

Struttura di un linguaggio

Struttura di un linguaggio Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture

Dettagli

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

MATLAB c. Lucia Gastaldi Dipartimento di Matematica  Lezione 4 (15 ottobre 2003) MATLAB c M-file. Lucia Gastaldi Dipartimento di Matematica http://dm.ing.unibs.it/gastaldi/ Lezione 4 (15 ottobre 2003) Esercizio Problema 3: la successione di funzioni f n (x) = (x 2 x) n per 0 x 1 è

Dettagli

I Appello Ricerca Operativa 2 bis Compito A

I Appello Ricerca Operativa 2 bis Compito A I Appello Ricerca Operativa 2 bis Compito A Cognome e nome:. Esercizio 1. Si consideri il problema del matching di cardinalità massima in un grafo G ed il suo problema di decisione associato: esiste un

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 10 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Abbiamo

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Input/Output. Console e File.

Input/Output. Console e File. Input/Output Console e File http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Le istruzioni di stampa servono a rendere visibili

Dettagli

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:

Dettagli

Problemi iniziali di Programmazione Lineare (LP) I problemi di cui ci si occupa possono essere descritti matematicamente nel modo seguente:

Problemi iniziali di Programmazione Lineare (LP) I problemi di cui ci si occupa possono essere descritti matematicamente nel modo seguente: 1 Problemi iniziali di Programmazione Lineare (LP) I problemi di cui ci si occupa possono essere descritti matematicamente nel modo seguente: min/ max f ( x) st.. g ( x) 0 1 g ( x) = 0 2 g ( x) 0 3 qualche

Dettagli

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

Dettagli

Il modello duale. Capitolo settimo. Introduzione

Il modello duale. Capitolo settimo. Introduzione Capitolo settimo Il modello duale Introduzione Il modello duale e la teoria della dualità assumono una grande importanza nella teoria della programmazione matematica. In questo testo i modelli primale

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica 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

Dettagli

Metodi e modelli per il supporto alle decisioni

Metodi 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

Dettagli

I tipi strutturati e i record in C++

I tipi strutturati e i record in C++ I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi

Dettagli

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

Unità 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

Dettagli

Primo programma in C

Primo programma in C Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file

Dettagli

Programmazione Lineare Intera: Piani di Taglio

Programmazione Lineare Intera: Piani di Taglio Programmazione Lineare Intera: Piani di Taglio Andrea Scozzari a.a. 2014-2015 April 22, 2015 Andrea Scozzari (a.a. 2014-2015) Programmazione Lineare Intera: Piani di Taglio April 22, 2015 1 / 23 Programmazione

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli