Ottimizzazione Combinatoria
|
|
- Lazzaro Ottavio Paoletti
- 8 anni fa
- Visualizzazioni
Transcript
1 Ottimizzazione Combinatoria Esercitazione AMPL A.A Esercitazione a cura di Silvia Canale contatto canale@dis.uniroma1.it 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 Esercitazione AMPL A.A. 2009-2010 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma1.it Università di Roma La Sapienza Dipartimento di Informatica
DettagliOttimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2010-20112011 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma1.it Università i di Roma La Sapienza Dipartimento di Informatica
DettagliProgetto e ottimizzazione di reti 2
Progetto e ottimizzazione di reti 2 Esercitazione AMPL A.A. 29-2 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma.it Università di Roma La Sapienza Dipartimento di Informatica
DettagliProgetto e ottimizzazione di reti 2
Progetto e ottimizzazione di reti 2 Esercitazione AMPL A.A. 2009-20102010 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma1.it Università i di Roma La Sapienza Dipartimento di
DettagliProgetto e ottimizzazione di reti 2
Progetto e ottimizzazione di reti 2 Esercitazione AMPL A.A. 29-2 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma.it Università di Roma La Sapienza Dipartimento di Informatica
DettagliOttimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2-22 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma.it Università i di Roma La Sapienza Dipartimento di Informatica e Sistemistica
DettagliIntroduzione. AMPL Introduzione. F. Rinaldi. Dipartimento di Matematica Università di Padova. Corso di Laurea Matematica. F. Rinaldi AMPL Introduzione
Dipartimento di Matematica Università di Padova Corso di Laurea Matematica Outline Introduzione Utilizzo di un Solver Definizione Un solver (o risolutore) è un software che riceve in input una descrizione
DettagliOttimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2-22 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma.it Università i di Roma La Sapienza Dipartimento di Informatica e Sistemistica
DettagliTSP 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
DettagliTSP 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
DettagliOttimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2010-20112011 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma1.it Università i di Roma La Sapienza Dipartimento di Informatica
Dettagli1 Breve introduzione ad AMPL
1 Breve introduzione ad AMPL Il primo passo per risolvere un problema reale attraverso strumenti matematici consiste nel passare dalla descrizione a parole del problema al modello matematico dello stesso.
DettagliLinguaggi 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
DettagliIntroduzione 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
DettagliScopo 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.
DettagliOttimizzazione Combinatoria
Ottimizzazione Combinatoria Esercitazione AMPL A.A. 29-2 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma.it Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica
DettagliPianificazione 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
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliGestione 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
DettagliProgrammazione 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)
DettagliAnalisi 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
Dettaglib 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
DettagliRicerca 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:
DettagliLe 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
DettagliMetodi 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
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili 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 Corso di
DettagliIl 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
DettagliLezione 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
DettagliLaboratorio 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
DettagliMetodologie 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
DettagliIl foglio elettronico: Excel
Il foglio elettronico: Excel Laboratorio di Informatica Corso di Laurea triennale in Biologia Dott. Fabio Aiolli (aiolli@math.unipd.it) Dott.ssa Elisa Caniato (ecaniato@gmail.com) Anno accademico 2007-2008
DettagliMetodi 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
DettagliRISOLUTORE AUTOMATICO PER SUDOKU
RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU
DettagliNOZIONI 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
DettagliObiettivi d esame PHP Developer Fundamentals on MySQL Environment
Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web
DettagliMacchine 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
DettagliNOZIONI 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
DettagliAutomatizzare 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
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliAlgoritmi e strutture dati. Codici di Huffman
Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per
DettagliIntroduzione 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
DettagliIl 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
DettagliLINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliInsegnamento 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
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliProblema 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,
DettagliLaboratorio 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
DettagliEditor vi. Editor vi
Editor vi vi 1 Editor vi Il vi è l editor di testo standard per UNIX, è presente in tutte le versioni base e funziona con qualsiasi terminale a caratteri Permette di visualizzare una schermata alla volta
DettagliLa selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
DettagliElementi 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
DettagliRIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova
RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi
DettagliNozione di algoritmo. Gabriella Trucco
Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliElementi di semantica operazionale
Elementi di semantica operazionale 1 Contenuti sintassi astratta e domini sintattici un frammento di linguaggio imperativo semantica operazionale domini semantici: valori e stato relazioni di transizione
DettagliObiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico
M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p. 3/43 M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p.
Dettagli1 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
DettagliRicerca Operativa e Logistica
Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili A.A. 2011/2012 Lezione 10: Variabili e vincoli logici Variabili logiche Spesso nei problemi reali che dobbiamo affrontare ci sono dei
DettagliGli 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
DettagliAlgoritmi 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
DettagliAMPL 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
DettagliFondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi
Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni
DettagliAA 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
DettagliEsempi di algoritmi. Lezione III
Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni
DettagliIstruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.
Istruzioni condizionali Istruzioni condizionali Statistica computazionale Carla Rampichini a.a. 2008/09 Subsetting I I espressione; I-THEN-ELSE I espress THEN istr; [ELSE istr;] DO WHILE DO UNTIL I-THEN-
DettagliSoftware di base. Corso di Fondamenti di Informatica
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Software di base Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
DettagliOttimizzazione delle interrogazioni (parte I)
Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di
DettagliMETODI per effettuare previsioni con analisi di tipo WHAT-IF
METODI per effettuare previsioni con analisi di tipo WHAT-IF 1. TABELLA DATI Una tabella di dati è un intervallo che mostra come la modifica di alcuni valori nelle formule ne influenza i risultati. Le
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliMATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c
Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione
DettagliGian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliAppunti 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)
DettagliAPPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL
APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione
DettagliAppunti 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)
DettagliCorso 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
DettagliSono 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
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
Dettaglimin 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:
DettagliGiovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema
Giovanna Rosone 04/03/2010 04/03/2010 SQL, Istruzioni per la modifica dello schema 1 Riepilogo Impiegato Pagamenti Nome colonna PAG_COD PAG_MATR Tipo dati CHAR(6) CHAR(6) Nome colonna Tipo dati PAG_STIPENDIO
DettagliTelerilevamento e GIS Prof. Ing. Giuseppe Mussumeci
Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme
DettagliAppunti di Sistemi Elettronici
Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare
DettagliStudente: SANTORO MC. Matricola : 528
CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice
DettagliCos è 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
DettagliStruttura 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
DettagliProtezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
DettagliA destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.
La finestra di Excel è molto complessa e al primo posto avvio potrebbe disorientare l utente. Analizziamone i componenti dall alto verso il basso. La prima barra è la barra del titolo, dove troviamo indicato
DettagliOperazioni sui database
Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
DettagliEsame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie
Facoltà di Scienze Motorie CHE COS È UN FOGLIO ELETTRONICO Una tabella che contiene parole e numeri che possono essere elaborati applicando formule matematiche e funzioni statistiche. Esame di Informatica
DettagliCodifica: dal diagramma a blocchi al linguaggio C++
Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliUso avanzato di AMPL. Renato Bruni. prendendo come esempio il problema di Localizzazione di Impianti.
Uso avanzato di AMPL prendendo come esempio il problema di Localizzazione di Impianti Renato Bruni bruni@dis.uniroma1.it www.dis.uniroma1.it/~bruni Localizzazione di Impianti Consideriamo il problema di
DettagliProgrammazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliIntroduzione 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
DettagliProblema 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
DettagliAlgoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
DettagliLa gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
DettagliInforma(ca Appun% dal laboratorio 2
Informa(ca Appun% dal laboratorio 2 Conce- fondamentali Esistono programmi, come Microso8 Word oppure Acrobat Reader, che vengono usa% dagli uten% per far eseguire al computer determinate operazioni (come
DettagliBasi di Dati Relazionali
Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica
DettagliArchitettura 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
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
Dettagli