Ottimizzazione Combinatoria

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Ottimizzazione Combinatoria"

Transcript

1 Ottimizzazione Combinatoria Esercitazione AMPL A.A Esercitazione a cura di Silvia Canale contatto Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Laurea in Ingegneria Gestionale 1

2 Riassumendo AMPL è un linguaggio di modellazione algebrico che ci permette di modellare problemi di programmazione matematica di diversa natura. Abbiamo visto come dichiarare (file.mod) e definire (file.dat) le entità: - Insiemi (parola chiave set); - Parametri semplici o a più dimensioni (parola chiave param); - Variabili (parola chiave var); - Funzione obiettivo (parola chiave minimize o maximize); - Vincoli (parola chiave subject to). Abbiamo visto come far interpretare i file.mod e.dat all interprete AMPL. Abbiamo visto come far risolvere il problema modellato all interprete AMPL invocando un opportuno solutore di programmazione matematica (CPLEX). Oggi vedremo altre funzionalità del linguaggio AMPL e come scrivere script in AMPL per risolvere in maniera efficiente problemi di programmazione matematica. 2

3 Materiale Oltre alle slide di questa esercitazione, è possibile trovare ulteriore materiale alla pagina relativamente a: gestione di canali di input/output in AMPL stringhe di caratteri in AMPL istruzioni iterative e if then script in AMPL 3

4 Il comando data dice all interprete che segue la definizione delle entità precedentemente dichiarate. ampl: data MCF.dat; Modalità dati // carichiamo successivamente i dati del problema Il comando data può essere anche utilizzato per porre l interprete in modalità dati e può essere utilizzato direttamente da riga di comando. ampl: model MCF.mod; ampl: data; ampl data: set NODI := A; ampl data: display NODI; set NODI := A; ampl: Per uscire dalla modalità dati occorre digitare una parola chiave diversa da quelle che identificano i dati (set, param, etc.) 4

5 Modalità dati Quando assegniamo valori dopo il comando data, l interprete verifica che ad un entità non venga assegnato più di un valore. ampl: model MCF.mod; ampl: data; ampl data: set NODI := A; ampl data: display NODI; set NODI := A; ampl: data; ampl data: set NODI := B; data for NODI already read context: set >>> NODI <<< := B; 5

6 Per aggiornare il valore assegnato ad un entità abbiamo due modi: 1) Con l istruzione reset reset data; // cancella tutte le assegnazioni reset data <lista_entità>; // cancella le assegnazioni delle entità nella lista <lista_entità> ampl: model MCF.mod; ampl: data; ampl data: set NODI := A; ampl data: display NODI; set NODI := A; Modalità dati ampl: reset data NODI; ampl: display NODI; Error executing "display" command: no data for set NODI ampl: data; ampl data: set NODI := B; ampl data: display NODI; set NODI := B; 6

7 2) Con l istruzione update update data; // aggiorna tutte le assegnazioni update data <lista_entità>; // aggiorna le assegnazioni delle entitànella lista <lista_entità> ampl: model MCF.mod; ampl: data; ampl data: set NODI := A; ampl data: display NODI; set NODI := A; ampl: update data NODI; ampl: display NODI; set NODI := A; Modalità dati ampl: data; ampl data: set NODI := B; ampl data: display NODI; set NODI := B; 7

8 Insiemi a più dimensioni Come per i parametri, anche gli insiemi (parola chiave set) possono essere a più dimensioni. In AMPL il comando dimen nella dichiarazione di un insieme specifica la dimensione dell insieme. ampl: set COPPIE dimen 2; ampl: data; ampl data: set COPPIE := (A,B) (A,C) (B,C); ampl data: display COPPIE; set COPPIE := (A,B) (A,C) (B,C); Oltre a definire insiemi e operazioni tra insiemi, il comando setof permette di creare insiemi proiezione di insiemi precedentemente dichiarati. ampl: set PROIEZIONE := setof { (i,j) in COPPIE } i; ampl: display PROIEZIONE; set PROIEZIONE := A B; 8

9 Restrizioni sulle variabili Le variabili sono le grandezze che descrivono la soluzione del problema. Le variabili vengono dichiarate nel file del.mod. L identificativo della variabile viene preceduto dalla parola chiave var e, eventualmente, viene seguito da restrizioni al suo valore. In AMPL le restrizioni sulle variabili possono essere descritte da espressioni logiche oppure dalle parole chiave integer e binary per indicare che la variabile è di tipo intero oppure binario. ampl: var x >= 0; ampl: var y binary; ampl: var z integer; 9

10 Gestione I/O Per leggere i singoli valori di una o più entità (parametri, insiemi, etc.) è disponibile l istruzione read seguita dalla lista delle entità cui assegnare un valore nell ordine in cui i valori sono forniti e la sorgente dei dati se diversa dal canale standard di input. read <lista_entità> < <reindirizzamento>; // i valori delle entità vengono letti nell ordine in cui compaiono in // <lista_entità> dalla sorgente <reindirizzamento>; // se manca la sorgente, l interprete attende i valori da assegnare // attraverso il canale standard di input In <lista_entità> le entità della lista sono separate da virgole,. Possiamo avere anche entità a più dimensioni (ad esempio parametri a una dimensione); in questo caso l entità è preceduta dall insieme degli indici tra parentesi graffe ({}). 10

11 Gestione I/O ampl: param n; ampl: param m; ampl: param c {1..n}; ampl: read n, m, {i in 1..n} c[i]; ampl? 3 ampl? 2 ampl? 1 ampl? 2 ampl? 3 ampl: display m, n, {i in 1..n} c[i]; m = 2 n = 3 L espressione 1..n, dove n è un parametro precedentemente dichiarato, indica l intervallo di valori da 1 a n. c[i] [*] := ; 11

12 Gestione I/O ampl: param M; ampl: param N; ampl: param costi {1..N,1..N}; ampl: param i; ampl: param j; ampl: read N, M, {1..M} (i,j,costi[i,j]) < dati_grafo.txt; ampl: display N, M, costi; N = 4 M = 5 50 costi := ;

13 Gestione I/O Per leggere uno o più valori dal canale standard di input (shell dell interprete AMPL) in maniera interattiva, indichiamo il trattino nel comando read : read <lista_entità> < ; // i valori delle entità vengono letti in maniera interattiva Per scrivere uno o più valori dal canale standard di output (shell dell interprete AMPL), possiamo utilizzare sia il comando display che il comando print ampl: param n; ampl: read n; ampl? 3 ampl: display n; n = 3 ampl: print n; 3 Il comando print stampa il dato non formattato, contrariamente al comando display Il comando printf stampa il dato secondo la formattazione specificata dalla stringa che segue il comando 13

14 Stringhe in AMPL In AMPL i membri di un insieme, i valori dei parametri e i nomi dei file sono trattati come stringhe di caratteri. 14

15 Stringhe in AMPL Concatenazione ampl: model MCF.mod; ampl: data MCF.dat; ampl: display NODI; set NODI := A B C D E; ampl: set ARCHI_COMPLETO := setof {i in NODI, j in NODI} i & j; ampl: display ARCHI_COMPLETO; set ARCHI_COMPLETO := AA AC AE BB BD CA CC CE DB DD EA EC EE AB AD BA BC BE CB CD DA DC DE EB ED; ampl: set NO_LOOP := setof {i in NODI, j in NODI : i!= j } i & "_" & j ; ampl: display NO_LOOP; set NO_LOOP := A_B A_D B_A B_D C_A C_D D_A D_C E_A E_C A_C A_E B_C B_E C_B C_E D_B D_E E_B E_D; 15

16 Operazioni su stringhe in AMPL In AMPL le stringhe di caratteri possono apparire tra parentesi tonde ( ) in diversi contesti: - nomi di file che sono parte di comandi AMPL come i comandi model, data e commands # supponiamo di avere due diversi file.dat # MCF_1.dat e MCF_2.dat # e di voler modellare e risolvere il primo dei due ampl: model MCF.mod; ampl: param i := 1; ampl: data ("MCF_" & i & ".dat"); ampl: display NODI; set NODI := A B C D E; 16

17 Operazioni su stringhe in AMPL - nomi di file che seguono i simboli: - < (in lettura) - > (in scrittura: apre il file con il nome indicato, se non esiste lo crea e se esiste lo sovrascrive) - >> (in scrittura: apre il file con il nome indicato, se non esiste lo crea e se esiste si posiziona alla fine del file) per specificare il re-indirizzamento di input e output # scriviamo il valore della funzione obiettivo e il valore delle variabili # del problema di flusso a costo minimo (MCF) sul file sol.txt ampl: model MCF.mod; ampl: data MCF.dat; ampl: option solver cplex; ampl: solve; CPLEX : optimal solution; objective 33 0 dual simplex iterations (0 in phase I) ampl: display Costo_Totale >> sol.txt; ampl: display x >> sol.txt; 17

18 Operazioni su stringhe in AMPL - valori da assegnare alle opzioni AMPL attraverso il comando option Abbiamo visto l uso del comando option solver per indicare all interprete AMPL quale solutore invocare per la soluzione del problema, ma esistono molte altre opzioni. # per eliminare le restrizioni di tipo integer e binary sulle variabili di un problema, usiamo il comando option per cambiare il valore dell opzione relax_integrality ampl: model MCF.mod; ampl: data MCF.dat; ampl: option relax_integrality 1; 18

19 Script in AMPL Uno script in AMPL è una sequenza di comandi AMPL da eseguire. Il comando commands legge il file.run contenente lo script da eseguire. # script_mcf_1.run script che legge i file MCF.mod e MCF.dat e # invoca il solutore CPLEX per risolvere il problema di flusso a costo # minimo stampando la soluzione primale e duale nel file MCF.sol.txt model MCF.mod; data MCF.dat; option solver cplex; solve; display x > MCF.sol.txt; display Incidenza > MCF.sol.txt; ampl: commands script_mcf_1.run; CPLEX : optimal solution; objective 33 0 dual simplex iterations (0 in phase I) 19

20 Cicli in AMPL Il comando for esegue un blocco di istruzioni AMPL per ciascun elemento di un insieme, specificato tra parentesi graffe {}. Utilizzando le stringhe in AMPL ed il comando for possiamo risolvere più problemi scrivendo un unico script AMPL. # script_mcf_2.run script che legge il file MCF.mod e successivamente # legge i file MCF.dat, CM.dat e MF.min.dat e invoca il solutore CPLEX # per risolvere i tre problemi, stampando la soluzione nei relativi file model MCF.mod; set CASI := {"MCF","CM","MF.min"}; for {j in CASI} { reset data; data ( j & ".dat"); solve; display x > ( j & ".sol.txt"); display Incidenza > (j & ".sol.txt"); } 20

21 Problema Taglio minimo in un grafo Sia G(N,A) un grafo orientato connesso. Sia dato il vettore c di capacità definito sull insieme A degli archi del grafo G(N,A) c = { 4, 2, 3, 7, 4, 5, 1 } A = {AC, BA, BC, CD, DB, DE, EB} 2 B 1 A 3 4 E 4 C 7 D 5 Vogliamo risolvere il problema di determinare il taglio di capacità minima sul grafo orientato G(N,A) rispetto al vettore c di capacità. 21

22 Algoritmo di soluzione Sappiamo risolvere il problema di determinare il taglio di capacità minima st con s e t nodi speciali in N. Aggiungiamo l arco ts (e quindi una colonna alla matrice M) di capacità infinita. c = {4, 2, 3, 7, 4, 5, 1, } A ={AC, BA, BC, CD, DB, DE, EB, EA} 2 B 1 A 3 4 E 4 C 7 D 5 IDEA Risolviamo tanti problemi di massimo flusso modificando il grafo. 22

23 Algoritmo di soluzione Facciamo variare s e t in N e risolviamo il problema di massimo flusso da s a t. Il vettore w dei costi definito sull insieme A degli archi del grafo G(N,A) non cambia w = { 0, 0, 0, 0, 0, 0, 0, 1 } A = {AB, AC, BC, BE, CD, DB, DE, ts} Il vettore d di domande definito sull insieme N dei nodi del grafo G(N,A) non cambia d = {0, 0, 0, 0, 0} N = {A, B, C, D, E} Il vettore c di capacità definito sull insieme A degli archi del grafo G(N,A) non cambia c = {4, 2, 3, 7, 4, 5, 1, } A ={AC, BA, BC, CD, DB, DE, EB, ts} 23

24 Algoritmo di soluzione La matrice M di incidenza cambia: la colonna relativa all arco ts varia in funzione di s e t colonna ts per t = E e s = A M = Occorre modificare il grafo al variare di s e t in N e risolvere di volta in volta il problema di massimo flusso da s a t. Realizziamo due script: - modifica_grafo.run che modifica l ultima colonna della matrice M - taglio_minimo.run che dichiara i parametri e definisce il problema, assegna i valori iniziali ai parametri, fa variare i parametri s e t modificando il grafo e risolvendo il problema di massimo flusso. 24

25 # file MF_modf.mod param N; param A; param domanda {1..N}; param capacita {1..A}; param costo {1..A}; param M {1..N, 1..A}; Implementazione in AMPL var x {j in 1..A} >= 0, <= capacita[j]; maximize Costo_Totale: sum {j in 1..A} costo[j] * x[j]; subject to Incidenza {i in 1..N}: sum {j in 1..A} M[i,j] * x[j] = domanda[i]; 25

26 # file MF_modf.dat data; param N := 5 ; param A := 8; Implementazione in AMPL param domanda := ; param: capacita costo := Infinity 1 ; 26

27 Implementazione in AMPL # file MF_modf.dat continua param M : := ; 27

28 Implementazione in AMPL # script taglio_minimo.run - script per determinare # il taglio di capacità minima in un grafo model MF_modf.mod; data MF_modf.dat; param ind_s default 0; param ind_t default 0; param valore_minimo default Infinity; param valore_taglio_minimo { 1..N, 1..N} default 0; param taglio_minimo {1..N, 1..N, 1..N} default 0; option solver cplex; 28

29 Implementazione in AMPL for {s in 1..N, t in 1..N} { if( s!= t ) then { commands modifica_grafo.run; solve; let valore_taglio_minimo[s,t] := Costo_Totale; for { k in 1..N } let taglio_minimo[s,t,k] := Incidenza[k]; if( Costo_Totale < valore_minimo ) then { let valore_minimo := Costo_Totale; let ind_s := s; let ind_t := t; } 29

30 Implementazione in AMPL } } display s > TCM.sol.txt; display t > TCM.sol.txt; display Costo_Totale > TCM.sol.txt; display Incidenza > TCM.sol.txt; display ind_s > TCM.sol.txt; display ind_t > TCM.sol.txt; display valore_minimo > TCM.sol.txt; 30

31 Implementazione in AMPL # script modifica_grafo.run - script per modificare # la matrice di incidenza del grafo in funzione dei # nodi s e t in N for { k in 1..N } let M[k,A] := 0; let M[s,A] := 1; let M[t,A] := -1; M = colonna ts inseriamo -1 nella riga t e 1 nella riga s A (numero degli archi) 31

32 Esecuzione e soluzione ampl: commands taglio_minimo.run; Nel file TCM.sol.txt sono riportati, al variare di s e t in N: - capacità del taglio st di capacità minima - vettore di incidenza dell insieme S di nodi separabili dal taglio st Alla fine del file, viene riportata la coppia st in corrispondenza della quale abbiamo il taglio di capacità minima e la capacità del taglio ind_s = 5 ind_t = valore_minimo =

33 Metodo del Simplesso Dinamico Descrizione implicita di: P ={x R n : Ax<b, x > 0 n } ^ x R n Oracolo di Separazione di P ^x P ^x P a i ^x > b i vincolo violato A x^ < b x^ Riga i a i b i P x^ 33

34 Definizione del problema core A D 0 d 0 b D=D 0 ; d=d 0 min c T x x Q = Dx<d, (P Q) 1 n > x > 0 n Nuova D e nuovo d D a i T d b i Aggiunta del vincolo violato Metodo del Simplesso Q= x * ottima (in Q) Oracolo di Separazione x * P di P x * P a T i x>bi P= x* ottima 34

35 Algoritmo di soluzione Per implementare il metodo del Simplesso Dinamico in AMPL dobbiamo prevedere una struttura dati che ci consenta di definire, iterazione per iterazione, quali vincoli del sistema Ax<b si trovano nel sottoproblema corrente. Dichiariamo nel file.mod -un parametro M che indichi il numero di vincoli -un parametro z che indichi il numero di vincoli presenti nel sottoproblema corrente -un vettore di parametri I che indichi gli indici dei vincoli presenti nel sottoproblema corrente Nel file.dat definiamo i coefficienti e i termini noti di tutti i vincoli. Modificando opportunamente i parametri z e I definiamo di volta in volta il sottoproblema definendo solamente i vincoli con indici in I. 35

36 Algoritmo di soluzione Per risolvere un generico problema di PL con poliedro P ={x R n : Ax<b, x > 0 n } l oracolo di separazione più semplice che possiamo immaginare è quello che verifica che la soluzione x * ottima (in Q) in input verifichi tutti i vincoli del sistema Ax<b (separazione per look-up). x* R n Realizziamo due script: Oracolo di Separazione di P verifica Ax*< b x* P x* P a i x > b i - oracolo.run che trova, se esiste, un vincolo violato, aggiungendolo a I - main.run che dichiara i parametri e definisce il problema, assegna i valori iniziali ai parametri, risolve il sottoproblema corrente e invoca l oracolo. 36

37 # file test.mod param N; param M; param z; param I {1..M}; param c {1..N}; param d {1..M}; param D {1..M, 1..N}; var x {j in 1..N} >= 0; Implementazione in AMPL minimize Funzione_Obiettivo: sum {j in 1..N} c[j] * x[j]; subject to Insieme_Vincoli {i in 1..z}: sum {j in 1..N} D[I[i],j] * x[j] >= d[i[i]]; 37

38 # file test.dat data; param N := 10; param M := 100; Implementazione in AMPL param c := ; // segue definizione dei vettori di parametri D e d 38

39 Implementazione in AMPL # script main.run - script per risolvere un problema # di PL con il metodo del Simplesso Dinamico model test.mod; data test.dat; param nv; let z := 10; let {i in 1..z} I[i] := i; option solver cplex; 39

40 repeat { solve; Implementazione in AMPL commands oracolo.run; display Funzione_Obiettivo > sol.txt; display x > sol.txt; display I > sol.txt; } until nv = 0; display Funzione_Obiettivo; display x; 40

41 Implementazione in AMPL # script oracolo.run - script per l'oracolo di # separazione per look-up let nv := 0; for {i in 1..M} { } if( sum {j in 1..N} D[i,j] * x[j] >= d[i] ) then continue; else { let z := z + 1; let I[z] := i; let nv := 1; break; } 41

42 Esecuzione e soluzione ampl: commands main.run; Nel file sol.txt sono riportati per le diverse iterazioni: - il valore della soluzione -la soluzione - il vettore di indici dei vincoli nel sottoproblema corrente A monitor viene stampata la soluzione ottima: ottenuta risolvendo un problema di PL con 10 variabili e 15 vincoli (anzichè 100): Funzione_Obiettivo = 10 x [*] := ; 42

43 Implementazione in AMPL # script main.run - script per risolvere un problema # di PL con il metodo del Simplesso Dinamico # variante con lettura del valore del parametro z da tastiera model test.mod; data test.dat; param nv; # se al posto di let z := 10; scriviamo: printf "\nhow many of the periods do you want to use?\n"; read z <- ; # il valore del parametro z viene letto da tastiera let {i in 1..z} I[i] := i; option solver cplex; 43

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

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

TSP con eliminazione di sottocicli

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

Dettagli

TSP con eliminazione di sottocicli

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

Dettagli

Ottimizzazione Combinatoria

Ottimizzazione 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

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

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

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

Introduzione al MATLAB c Parte 2

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

Dettagli

Pianificazione di Produzione in DEC

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

Dettagli

Gestione Impresa. Mese 1 2 3 4 5 6 Unità richieste 700 600 500 800 900 800

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

Dettagli

Problema del Trasporto. Container vuoti Verona 10 Perugia 12 Roma 20 Pescara 24 Taranto 18 Lamezia 40

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,

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Breve guida all uso di AMPL

Breve guida all uso di AMPL Breve guida all uso di AMPL Renato Bruni AMPL (A Modeling Language for Mathematical Programming) è un linguaggio di modellazione per la programmazione matematica. Serve ad esprimere un problema di ottimizzazione

Dettagli

AMPL Plus: Introduzione all uso

AMPL Plus: Introduzione all uso AMPL Plus: Introduzione all uso A cura di Renato Bruni, Giovanni Fasano, Giampaolo Liuzzi, Sara Mattia Preliminari In questa breve introduzione verranno chiariti alcuni aspetti di base relativi all uso

Dettagli

Ricerca Operativa e Logistica

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:

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

b i 1,1,1 1,1,1 0,1,2 0,3,4

b i 1,1,1 1,1,1 0,1,2 0,3,4 V o Appello // RICERCA OPERATIVA - Corso A (a.a. 9/) Nome Cognome: Corso di Laurea: L C6 LS LM Matricola: ) Si consideri il problema di flusso di costo minimo in figura. Si verifichi se il flusso ammissibile

Dettagli

Laboratorio. Ricerca Operativa

Laboratorio. Ricerca Operativa Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Gestionale Appunti dalle lezioni del corso di Laboratorio di Ricerca Operativa Massimo Roma Dipartimento

Dettagli

PROMEMORIA: Come creare, compilare ed eseguire programmi in Fortran 95

PROMEMORIA: Come creare, compilare ed eseguire programmi in Fortran 95 Corso di Laurea in Matematica - Laboratorio di Programmazione gr.2 a.a. 2014/15 SECONDA esercitazione in laboratorio --- Creazione e modifica di files ASCII per mezzo del programma gedit. --- Uso del compilatore

Dettagli

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica GLI SCRIPT DI SHELL Lucidi a cura di B.De Carolis Shell Unix - Linux comandi Interfaccia di alto livello tra utente e SO. Il processore interpreta e mette in esecuzione comandi da: 1) standard input o

Dettagli

Servizio ISEE Invio comandi alla carta

Servizio ISEE Invio comandi alla carta Servizio ISEE Invio comandi alla carta Versione 1.1 04/12/2012 RTI Funzione Nome Redazione Approvazione Capo progetto RTI (Aruba) Esperto di dominio (Actalis) Capo progetto CMS (Engineering) Esperto architetture

Dettagli

Le Macchine di Turing

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

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

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

Il sistema operativo UNIX/Linux. Gli script di shell

Il sistema operativo UNIX/Linux. Gli script di shell Il sistema operativo UNIX/Linux Gli script di shell Introduzione Le shell permettono La gestione di comandi su linea di comando La shell comprende automaticamente quando il costrutto termina e lo esegue

Dettagli

Programmazione dinamica

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)

Dettagli

Cos è un Calcolatore?

Cos è un Calcolatore? Cos è un Calcolatore? Definizione A computer is a machine that manipulates data according to a (well-ordered) collection of instructions. 24/105 Riassumendo... Un problema è una qualsiasi situazione per

Dettagli

Problema del trasporto

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

Dettagli

126 APPROFONDIMENTI SUI PARAMETRI. SCRIPT IN AMPL

126 APPROFONDIMENTI SUI PARAMETRI. SCRIPT IN AMPL 126 APPROFONDIMENTI SUI PARAMETRI. SCRIPT IN AMPL Esempio 8.3.2 Una fabbrica produce divani in tessuto acquistando da un magazzino all ingrosso i quantitativi di tessuto che gli occorrono settimanalmente.

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

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO CLASSE DISCIPLINA MODULO Conoscenze Abilità e competenze Argomento 1 Concetti di base Argomento 2 Sistema di elaborazione Significato dei termini informazione, elaborazione, comunicazione, interfaccia,

Dettagli

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

Dettagli

DNA sequence alignment

DNA sequence alignment DNA sequence alignment - Introduzione: un possibile modello per rappresentare il DNA. Il DNA (Acido desossiribonucleico) è una sostanza presente nei nuclei cellulari, sia vegetali che animali; a questo

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Esercitazione. Fig. B.1 L ambiente di lavoro Exel

Esercitazione. Fig. B.1 L ambiente di lavoro Exel Esercitazione Exel: il foglio di lavoro B.1 Introduzione Exel è un applicazione che serve per la gestione dei fogli di calcolo. Questo programma fa parte del pacchetto OFFICE. Le applicazioni di Office

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

CALCOLO COMBIN I A N T A O T RIO

CALCOLO COMBIN I A N T A O T RIO CALCOLO COMBINATORIO Disposizioni Si dicono disposizioni di N elementi di classe k tutti quei gruppi che si possono formare prendendo ogni volta k degli N elementi e cambiando ogni volta un elemento o

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

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

Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a. 2012-13 Homework n 33. Docente: Laura Palagi Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a. 2012-13 Homework n 33 Docente: Laura Palagi Homework in Ricerca Operativa gruppo n 33 Turni del Personale Martina Conti

Dettagli

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica CONTROLLI AUTOMATICI e AZIONAMENTI ELETTRICI INTRODUZIONE A MATLAB Ing. Alberto Bellini Tel. 0522 522626 e-mail: alberto.bellini@unimore.it

Dettagli

Programmare script e Add-Ons per Blender 3D 2.5

Programmare script e Add-Ons per Blender 3D 2.5 Programmare script e Add-Ons per Blender 3D 2.5 Volume 1 www.redbaron85.com 1 SOMMARIO Premessa...5 Le basi del linguaggio Python...6 Il linguaggio Python...6 Cosa serve per programmare in Python...7 Il

Dettagli

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,... Automi Con il termine automa 1 s intende un qualunque dispositivo o un suo modello, un qualunque oggetto, che esegue da se stesso un particolare compito, sulla base degli stimoli od ordini ricevuti detti

Dettagli

Un problema di Capital Budgeting

Un problema di Capital Budgeting LABORATORIO RICERCA OPERATIVA Un problema di Capital Budgeting Laura Palagi Dipartimento di Ingegneria informatica automatica e gestionale A. Ruberti Sapienza Universita` di Roma Capital Budgeting (Pianificazione

Dettagli

Laboratorio di Matematica Computazionale A.A. 2008-2009 Lab. 1 - Introduzione a Matlab

Laboratorio di Matematica Computazionale A.A. 2008-2009 Lab. 1 - Introduzione a Matlab Laboratorio di Matematica Computazionale A.A. 2008-2009 Lab. 1 - Introduzione a Matlab Alcune informazioni su Matlab Matlab è uno strumento per il calcolo scientifico utilizzabile a più livelli, dalla

Dettagli

Problema della produzione dei monitor

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.

Dettagli

Microsoft Excel. Il foglio elettronico Microsoft Excel Cartelle, Fogli di lavoro e celle Contenuto delle celle. Numeri, date, formule, testo, funzioni

Microsoft Excel. Il foglio elettronico Microsoft Excel Cartelle, Fogli di lavoro e celle Contenuto delle celle. Numeri, date, formule, testo, funzioni Microsoft Excel Sommario Il foglio elettronico Microsoft Excel Cartelle, Fogli di lavoro e celle Contenuto delle celle Numeri, date, formule, testo, funzioni Formattazione dei dati Creazione di serie di

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory Montaggio di un file system Condivisione di file Protezione 9.1 File E un insieme di informazioni correlate e

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Uso di Excel per l analisi e soluzione di Modelli di Programmazione Matematica

Uso di Excel per l analisi e soluzione di Modelli di Programmazione Matematica Capitolo 9 Uso di Excel per l analisi e soluzione di Modelli di Programmazione Matematica 9.1 Introduzione La soluzione grafica di problemi di ottimizzazione che abbiamo visto nel Capitolo 4 può essere

Dettagli

Progetto e Ottimizzazione di Reti 1. Presentazione del Corso

Progetto e Ottimizzazione di Reti 1. Presentazione del Corso Progetto e Ottimizzazione di Reti 1. Presentazione del Corso PAOLO NOBILI (M-Z) ANTONIO SASSANO (A-L) Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Laurea in Ingegneria

Dettagli

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI PROBLEMA: un azienda deve scegliere fra due possibili investimenti al fine di massimizzare il profitto netto nel rispetto delle condizioni interne e di mercato

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

NOZIONI BASE SHELL E SCRIPT LINUX

NOZIONI BASE SHELL E SCRIPT LINUX NOZIONI BASE SHELL E SCRIPT LINUX Aggiornato al 11 gennaio 2006 Ermes ZANNONI (ermes@zannoni.to.it) (http://www.zannoni.to.it) Indice : 1. Introduzione 2. La Shell 2.1 Comandida Shell 2.1.1 File e directory

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema La CMC produce automobili in uno stabilimento

Dettagli

Corso di Calcolo Numerico

Corso di Calcolo Numerico Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La

Dettagli

Algoritmi, dati e programmi

Algoritmi, dati e programmi 1 Algoritmi, dati e programmi 2 Informatica Informatica: Scienza che studia l informazione e la sua elaborazione. informazione rappresentazione dell informazione (dati) dati elaborazione dei dati tramite

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

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 e e Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario e ed implementazione in Java Visita di un grafo e e Concetti di base Struttura

Dettagli

Sommario della lezione

Sommario della lezione Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/36 Sommario della lezione Ulteriori esempi di applicazione della Programmazione Dinamica Esempio di applicazione

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Informatica Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, ed elaborazione dell informazione.

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Ricerca Operativa 2. Introduzione al metodo del Simplesso

Ricerca Operativa 2. Introduzione al metodo del Simplesso Ricerca Operativa 2. Introduzione al metodo del Simplesso Luigi De Giovanni Giacomo Zambelli 1 Problemi di programmazione lineare Un problema di ottimizzazione vincolata è definito dalla massimizzazione

Dettagli

Metodologie di programmazione in Fortran 90

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

Dettagli

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso Programmazione 1 Capitolo 01: Concetti Elementari Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA DAL PROBLEMA AL PROGRAMMA Scopo del modulo Conoscere alcuni concetti fondamentali dell informatica:algoritmo, l automa, linguaggio formale Essere in grado di cogliere l intreccio tra alcuni risultati della

Dettagli

Introduzione al Corso di Algoritmi

Introduzione al Corso di Algoritmi Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 1/36 Introduzione al Corso di Algoritmi Di cosa parliamo oggi: Una discussione generale su cosa studieremo, perchè

Dettagli

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili. Uso di Excel nella Programmazione Matematica

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili. Uso di Excel nella Programmazione Matematica Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili Uso di Ecel nella Programmazione Matematica Uso degli spreadsheet (formulazione nel formato richiesto da Ecel) Conversione della formulazione

Dettagli

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

NOZIONI BASE PER ESERCITAZIONI

NOZIONI BASE PER ESERCITAZIONI NOZIONI BASE PER ESERCITAZIONI Shahram Rahatlou Laboratorio di Calcolo, Anno Accademico 2015-16 http://www.roma1.infn.it/people/rahatlou/labcalc/ Sistema Operativo Hardware Software n Routine e programmi

Dettagli

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Dettagli

Macchine sequenziali

Macchine sequenziali Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine sequenziali Lezione 14 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Automa a Stati Finiti (ASF) E una prima astrazione di

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

2 - Introduzione al linguaggio Java

2 - Introduzione al linguaggio Java 2 - Introduzione al linguaggio Java Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo

Dettagli

I tipi di dato astratti

I tipi di dato astratti I tipi di dato astratti.0 I tipi di dato astratti c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 001/00.0 0 I tipi di dato astratti La nozione di tipo di dato

Dettagli

Operazioni di input e output in Fortran 90

Operazioni di input e output in Fortran 90 Operazioni di input e output in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: file e formattazione DIS - Dipartimento di informatica

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Reti Logiche A Appello del 24 febbraio 2010

Reti Logiche A Appello del 24 febbraio 2010 Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A Appello del 24 febbraio 2010 Matricola prof.ssa Cristiana Bolchini Cognome Nome

Dettagli

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard) Capitolo 6 Input/output su file BOZZA 6.1 Stream e file L input/output in C ++, in particolare quello su file, avviene tramite stream. stream. Uno stream è un astrazione di un canale di comunicazione,

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

Il Metodo Branch and Bound

Il Metodo Branch and Bound Il Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale

Dettagli

Introduzione al Foglio Elettronico

Introduzione al Foglio Elettronico Microsoft Excel Introduzione al Foglio Elettronico Il Foglio Elettronico Si presenta come una grande tabella su un foglio di carta Le celle contengono differenti dati Numeri Testo Date Ecc I dati possono

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Metodi Computazionali

Metodi Computazionali Metodi Computazionali Elisabetta Fersini fersini@disco.unimib.it A.A. 2009/2010 Catene di Markov Applicazioni: Fisica dinamica dei sistemi Web simulazione del comportamento utente Biologia evoluzione delle

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

Metodi Stocastici per la Finanza

Metodi Stocastici per la Finanza Metodi Stocastici per la Finanza Tiziano Vargiolu vargiolu@math.unipd.it 1 1 Università degli Studi di Padova Anno Accademico 2011-2012 Lezione 6 Indice 1 Il metodo bootstrap 2 Esercitazione 3 Interpolazione

Dettagli

Alcuni Preliminari. Prodotto Cartesiano

Alcuni Preliminari. Prodotto Cartesiano Alcuni Preliminari Prodotto Cartesiano Dati due insiemi A e B, si definisce il loro prodotto cartesiano A x B come l insieme di tutte le coppie ordinate (a,b) con a! A e b! B. Es: dati A= {a,b,c} e B={,2,3}

Dettagli