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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ricerca Operativa Dualità e programmazione lineare

Ricerca Operativa Dualità e programmazione lineare Ricerca Operativa Dualità e programmazione lineare L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi alle spiegazioni del

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE IN KORN SHELL E.M.

INTRODUZIONE ALLA PROGRAMMAZIONE IN KORN SHELL E.M. INTRODUZIONE ALLA PROGRAMMAZIONE IN KORN SHELL E.M. DAVID KORN, BELL LABS, "THE KORN SHELL COMMAND AND PROGRAMMING LANGUAGE", PRENTICE HALL, 989 esecuzione: - dalla shell (prompt $) $primo il file deve

Dettagli

Il risolutore. Docente: M. Sechi - Elementi di informatica e programmazione Università degli studi di Brescia D.I.M.I - A.A.

Il risolutore. Docente: M. Sechi - Elementi di informatica e programmazione Università degli studi di Brescia D.I.M.I - A.A. Università degli Studi di Brescia Elementi di informatica e Dipartimento di Ingegneria Meccanica e Industriale Dipartimento di Ingegneria Meccanica e Industriale Programmazione EXCEL Docente: Marco Sechi

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

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

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

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

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

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

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

SIMULAZIONE ESAME di OTTIMIZZAZIONE Corso di Laurea in Ingegneria Gestionale 2 o anno

SIMULAZIONE ESAME di OTTIMIZZAZIONE Corso di Laurea in Ingegneria Gestionale 2 o anno SIMULAZIONE ESAME di OTTIMIZZAZIONE 28 novembre 2005 SIMULAZIONE ESAME di OTTIMIZZAZIONE Corso di Laurea in Ingegneria Gestionale 2 o anno Cognome : XXXXXXXXXXXXXXXXX Nome : XXXXXXXXXXXXXX VALUTAZIONE

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

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

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

Ridirezione su/da file

Ridirezione su/da file Combinare i comandi Ogni processo è associato a tre flussi di I/O standard: lo standard input dal quale riceve gli ingressi (normalmente la tastiera) lo standard output sul quale produce le uscite regolari

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

L utility Unix awk [Aho-Weinberger-Kernighan]

L utility Unix awk [Aho-Weinberger-Kernighan] L utility Unix awk [Aho-Weinberger-Kernighan] L utility awk serve per processare file di testo secondo un programma specificato dall utente. L utility awk legge riga per riga i file ed esegue una o più

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

Il problema della dieta: guida visuale all utilizzo del solutore di Excel 1

Il problema della dieta: guida visuale all utilizzo del solutore di Excel 1 Il problema della dieta: guida visuale all utilizzo del solutore di Excel 1 Un dietologo visita un uomo, da tempo un po' in sovrappeso, che desidera tornare in forma. Al primo incontro i due concordano

Dettagli

Sintesi di reti logiche multilivello. Sommario. Motivazioni. Sommario. M. Favalli

Sintesi di reti logiche multilivello. Sommario. Motivazioni. Sommario. M. Favalli Sommario Sintesi di reti logiche multilivello M. Favalli Engineering Department in Ferrara 1 2 3 Aspetti tecnologici Sommario Analisi e sintesi dei circuiti digitali 1 / Motivazioni Analisi e sintesi dei

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

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

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

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

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

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO ALGORITMI 1. GLI ALGORITMI Un algoritmo è la descrizione del percorso risolutivo di un problema per giungere dai dati iniziali ai risultati finali. Scriviamo l algoritmo pensando di rivolgerci a un esecutore,

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

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

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

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione Elementi generali Un parser generico di tipo procede operando una sequenza di riduzioni a

Dettagli

Relazione sul progetto di Column Generation per il problema dei P-Centri in linguaggio OPL

Relazione sul progetto di Column Generation per il problema dei P-Centri in linguaggio OPL UNIVERSITÀ DEGLI STUDI DI MILANO Facoltà di Scienze Naturali, Fisiche e Matematiche Corso di Laurea Magistrale in Informatica Corso di Complementi di Ricerca Operativa Professor Marco Trubian Relazione

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

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

DISPLAY REMOTO PILOTATO DALLA SERIALE. LCD_SERv10

DISPLAY REMOTO PILOTATO DALLA SERIALE. LCD_SERv10 DISPLAY REMOTO PILOTATO DALLA SERIALE su CPU18LCD LCD_SERv10 035-693737 1 FUNZIONI del sistema: Il sistema è composto da: 1. una scheda con a bordo ÄÅ Un regolatore 12Vcc / 7Vcc Ä a 5Vcc ÄÇ Un microprocessore

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

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

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

min 4x 1 +x 2 +x 3 2x 1 +x 2 +2x 3 = 4 3x 1 +3x 2 +x 3 = 3 x 1 +x 2 3x 3 = 5 Innanzitutto scriviamo il problema in forma standard: x 1 x 2 +3x 3 = 5

min 4x 1 +x 2 +x 3 2x 1 +x 2 +2x 3 = 4 3x 1 +3x 2 +x 3 = 3 x 1 +x 2 3x 3 = 5 Innanzitutto scriviamo il problema in forma standard: x 1 x 2 +3x 3 = 5 IL METODO DEL SIMPLESSO 65 Esercizio 7.4.4 Risolvere utilizzando il metodo del simplesso il seguente problema di PL: min 4 + + + + = 4 + + = + = 5 Innanzitutto scriviamo il problema in forma standard:

Dettagli

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Scopo di questo approfondimento Lo scopo di questo approfondimento è rispondere alla domanda: e se nella vita mi troverò a dover utilizzare un linguaggio

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

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

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

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

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

Dettagli

Formulazioni PLI di problemi di decisione. 1 Introduzione: La formulazione dei problemi di ottimizzazione combinatoria

Formulazioni PLI di problemi di decisione. 1 Introduzione: La formulazione dei problemi di ottimizzazione combinatoria Formulazioni PLI di problemi di decisione Dispensa per il modulo di Analisi e Ottimizzazione dei Processi di Produzione Università di Roma Tor Vergata a cura di Andrea Pacifici, Claudio Cavalletti, Daniela

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File 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 di.unipi.it

Dettagli

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò Corso di Visione Artificiale Matlab per Visione Samuel Rota Bulò Cos'è Matlab? MATLAB MATLAB - - MATrix MATrix LABoratory LABoratory Ambiente Ambiente di di sviluppo sviluppo ed ed esecuzione esecuzione

Dettagli

Sintesi di reti combinatorie. Sommario. Motivazioni. Sommario. Funzioni Espressioni. M. Favalli

Sintesi di reti combinatorie. Sommario. Motivazioni. Sommario. Funzioni Espressioni. M. Favalli Sommario Sintesi di reti combinatorie Funzioni Espressioni 1 Teorema di espansione di Shannon (Boole) M. Favalli Engineering Department in Ferrara 2 Forme canoniche 3 Metriche per il costo di una rete

Dettagli

GUIDA RAPIDA ALL USO DI EXCEL

GUIDA RAPIDA ALL USO DI EXCEL GUIDA RAPIDA ALL USO DI EXCEL I fogli elettronici vengono utilizzati in moltissimi settori, per applicazioni di tipo economico, finanziario, scientifico, ingegneristico e sono chiamati in vari modi : fogli

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Il formato BITMAP. Introduzione. Il formato BITMAP

Il formato BITMAP. Introduzione. Il formato BITMAP Il formato BITMAP Introduzione Il Bitmap è il formato di visualizzazione delle immagini dei sistema operativo Windows e, anche se è uno dei formati più vecchi, è ancora molto utilizzato e soprattutto è

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 PAS Anno 2014. ESEMPIO. Per n = 3, Z 3 contiene 3 elementi:

Corso PAS Anno 2014. ESEMPIO. Per n = 3, Z 3 contiene 3 elementi: Corso PAS Anno 2014 Matematica e didattica 3 Correzione esercizi 1. Definizione. Sia n un fissato intero maggiore di 1. Dati due interi a, b si dice che a è congruo a b modulo n, e si scrive a b (mod n),

Dettagli

22 Introduzione all uso di MatLab

22 Introduzione all uso di MatLab 22 Introduzione all uso di MatLab INTERFACCIA UTENTE E STRINGHE Per visualizzare su schermo il valore di una variabile a senza farla precedere dalla scritta a=, si usa il comando disp (abbreviazione di

Dettagli

CORSO DI LAUREA IN INGEGNERIA.

CORSO DI LAUREA IN INGEGNERIA. CORSO DI LAUREA IN INGEGNERIA. FOGLIO DI ESERCIZI 4 GEOMETRIA E ALGEBRA LINEARE 2010/11 Esercizio 4.1 (2.2). Determinare l equazione parametrica e Cartesiana della retta dello spazio (a) Passante per i

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

- Trovare soluzione ottima primale ( con il simplesso o algoritmo analogo)

- Trovare soluzione ottima primale ( con il simplesso o algoritmo analogo) Se si ha un problema lineare e' possibile risolverlo in piu' modi (equivalenti ) - Trovare soluzione ottima primale ( con il simplesso o algoritmo analogo) - Trovare soluzione ottima duale (con il simplesso

Dettagli

Lezione 9: Cambio di base

Lezione 9: Cambio di base Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire

Dettagli