PROGRAMMAZIONE DINAMICA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "PROGRAMMAZIONE DINAMICA"

Transcript

1 PROGRAMMAZIONE DINAMICA 6.1

2 PROGRAMMAZIONE DINAMICA Sebbene elementi del metodo fossero già presenti in tecniche di ottimizzazione note in precedenza, si deve a Bellman lo studio sistematico (iniziato nel 1955) e la definizione della teoria matematica della programmazione dinamica [Cfr. R. Bellman, Dynamic Programming, Princeton University Press, 1957]. In tale contesto la parola programmazione si riferisce al fatto che i metodi di risoluzione sono basati su tabelle. Come il metodo divide et impera, la programmazione dinamica risolve problemi decisionali mettendo assieme le soluzioni di un certo numero di sottoproblemi. Gli algoritmi basati sul metodo divide et impera suddividono il problema in un certo numero di sottoproblemi indipendenti, risolvono ricorsivamente tali sottoproblemi, e infine fondono assieme le soluzioni ottenute per determinare la soluzione del problema originario. Il metodo della programmazione dinamica, invece, si può applicare anche quando i sottoproblemi non sono indipendenti; in altri termini, la soluzione di alcuni sottoproblemi richiede di risolvere i medesimi sottoproblemi. 6.2

3 In questi casi, un algoritmo basato sul metodo divide et impera fa più lavoro di quello strettamente necessario, dato che risolve più volte i sottoproblemi comuni. Gli algoritmi di programmazione dinamica risolvono ciascun sottoproblema una sola volta e memorizzano la soluzione in una tabella; in questo modo si evita di calcolare nuovamente la soluzione ogni volta che deve essere risolto lo stesso sottoproblema. I problemi che possono essere risolti con la programmazione dinamica soddisfano a due proprietà basilari : sottostruttura ottima (la soluzione ottima contiene le soluzioni ottime dei sottoproblemi) e sottoproblemi comuni (l algoritmo ricorsivo richiede di risolvere più volte lo stesso problema). Ogniqualvolta un problema presenta una sottostruttura ottima, questo potrebbe essere un buon indizio dell applicabilità della tecnica della programmazione dinamica. Gli algoritmi di programmazione dinamica si avvantaggiano della proprietà dei sottoproblemi comuni. Ogni sottoproblema è risolto una sola volta, e le soluzioni di tutti i sottoproblemi sono memorizzate in una tabella. 6.3

4 Quando si presenta nuovamente il medesimo sottoproblema la sua soluzione viene trovata con un semplice accesso alla tabella (che richiede sempre un tempo costante). Esaminando il metodo vedremo: una applicazione della P.D. al Knapsack problem (problema dello zaino) ; la complessità e i limiti della P.D. ; un esempio, estensione del precedente, nella cui forma possono essere posti molti problemi P.I.: Multidimensional K.P. (problema dello zaino multidimensionale) ; lo schema generale di un problema risolubile con P.D. e il principio di ottimalità di Bellman attraverso cui si ricava la soluzione di tale problema ; un primo esempio di problema formulato secondo tale schema generale (problema di distribuzione delle risorse) ; un secondo esempio (problema del cammino minimo). 6.4

5 E` un principio generale applicabile a problemi di ottimizzazione vincolati, lineari o non lineari, con varibili discrete o continue, ma aventi la proprietà di essere decomponibili. Non è, quindi, un algoritmo: è una metodologia!. Il termine deriva dall'iniziale applicazione alla ottimizzazione di sistemi dinamici (evoluzione nel tempo). Il principio della Programmazione Dinamica (P.D.) è più generale e può essere applicato anche a sistemi che non evolvono nel tempo. 6.5

6 Esempio Soluzione del "Knapsack problem" mediante P.D. max s. t. n j = 1 n j= 1 a x j c x j j { } j b x 01, j = 1,..., n j (KP) a j, "j e b sono interi; c j, "j qualsiasi valore reale. Assumiamo: a j 0, "j (se a j <0, cambio di variabile x j =1-x' j ) b 0 Indichiamo con F * il valore ottimo della f. o. 6.6

7 Idea di fondo della P.D. Tentare di ridurre la soluzione del prolema (KP), che contiene n variabili, alla soluzione di una sequenza di problemi più semplici, ad esempio problemi contenenti una sola variabile. DUE PASSI: 1 PASSO: Si inserisce il problema dato in una famiglia di problemi dello stesso tipo. Nel caso (KP) consideriamo la famiglia di n(b+1) problemi: n F ( E) = max c x Nota: j = n Problema monodimensionale i j j j= i s. t. n j= i a x b E x j { 0, 1} j = i,..., n dove i=1,...,n ; E intero compreso tra 0 e b (quindi b+1 valori) j j [KP i (E)] 6.7

8 La quantità E, che parametrizza la famiglia di problemi, è chiamata variabile di stato (o, se è un vettore, vettore di stato). E interessa i vincoli del problema E = {0, 1,..., b} insieme dei possibili valori di E (detto spazio degli stati) N.B.: il problema originale (KP) è un membro della famiglia di problemi (i=1, E=0): Assumiamo "i = 1,...,n F * = F 1 (0) F i (E)=- per E<0 o quando [KP i (E)] non ha soluzione (per esempio quando E>b) 6.8

9 2 PASSO: Si cerca una relazione recursiva che leghi fra loro i valori ottimi dei problemi della famiglia. Nel caso della famiglia [KP i (E)] si ha: { } F E = max c x + F E + a x = i x i i i i + 1( i i ) { 0, 1} F ( E) c F ( E a ) { i + 1 i i + 1 i } = max ; + + x i = 0 x i = 1 i=n-1,...,1 Questa relazione recursiva esprime il fatto che, in una soluzione ottima (x i, x i+1,..., x n ) di [KP i (E)] si deve avere x i =0 o x i =1 e che, in ogni caso, (x i+1,..., x n ) deve essere una soluzione ottima del problema ristretto alle variabili i+1,..., n Ne consegue che, "E (0 E b), per ottenere F i (E) dai valori F i+1 (E') (con 0 E' b) è sufficiente risolvere un problema di ottimizzazione elementare: il confronto di due numeri. 6.9

10 Algoritmo 1 (soluzione del Knapsack problem con P.D.) ( 0 ) 1. (livello n): E 0 E b calcolare: 0 per E > b an vincolo non rispettato Fn ( E) = cn per E b an e cn 0 0 per E b an e cn < 0 2. per i = n 1, K,2 (livello i), calcolare in successione: E E b { } = max ; + ( + ) F E F E c F E a i i i i i 3. Calcolare il valore ottimo di (KP) (livello 1): { } ( 0) max ( 0) ; * F = F1 = F2 c1 + F2 a1 STOP Osservazione: Algoritmo 1 fornisce il valore ottimo della f.o., ma non della soluzione (x 1,..., x n )=x * Come trovarla? 6.10

11 Individuazione di x * E` sufficiente definire per ogni livello i=n-1,..., 1 dell'algoritmo e per ogni E (0 E b) i valori x i (E): xi E i= n 1, K, 1 0 E b 0 = 1 se se = F E F E i i+ 1 = + ( + ) F E c F E a i i i+ 1 i e per il livello n: x ( E) n 0 E b = 0 se Fn E = 0 1 se Fn E = c n Osservazione: al termine dell'algoritmo si avranno n(b+1) valori x i (E). Come ricavare x *? 6.11

12 Procedura 1 (calcolo di x*): So che la soluzione ottima si ha per E = 0 ; E = 0 ; for ( i = 1 ) to n do { x * i = x i ( E ) ; E = E + a i x * i ; 6.12

13 Complessità e limiti della P.D. La complessità dell'algoritmo 1 è O(nb) (cioè è lineare, ci sono n(b+1) confronti e n(b+1) addizioni) dove b è una costante. Però lo spazio di memoria occupato dall'algoritmo 1 è costituito, in ogni momento, da 2(b+1) occupazioni di memoria (i b+1 valori di F i+1 (E) ed i b+1 valori F i (E)). Se calcoliamo anche x i (E) i=1,...,n; 0 E b, occorrono altre n(b+1) occupazioni di memoria. In TOTALE: 2(b+1) + n(b+1) = (n+2)(b+1) occupazioni di memoria. Osservazione: la complessità dell'algoritmo e lo spazio di memoria di un algoritmo di P.D. dipende dalla cardinalità dello spazio degli stati E associato al problema. Questo fatto crea dei grossi limiti all'applicazione della P.D. 6.13

14 Schema generale di problema P risolubile con P.D. F(x) = F(x1,..., xn) funzione obiettivo Supponiamo che: a) F = f1( ξ 1, ξ 2) + f2( ξ 2, ξ 3) f m 1( ξ m 1, ξ m ) Definizione: f r, r=1,...,m-1 è detta fase del problema P ed è funzione reale di x r, x r+1 (e a loro volta funzioni delle x i originali). b) valga la seguente ipotesi: per la f r (x r,x r+1 ), r=1,..., m-1, l'insieme A r di variabilità della x r dipende soltanto dalla x r+1 per r=1,..., m-1 e scriveremo: x r A r (x r+1 ), r = 1,..., m-1 Per r=m si ha x m A, ove A è un insieme fisso assegnato (salvo casi particolari) c) il problema P: max F(x) (oppure min) sia così ricondotto a: { ξ1 1( ξ2 ) ξm 1 m 1( ξm ) ξm } max F A,..., A, A 6.14

15 La soluzione di P si ottiene subito dall'applicazione del Principio di ottimalità di Bellman (1957) Se e solo se la politica (sequenza di soluzioni di sottoproblemi): ( 0 ) ( 0) ( 0) (9.1) ξ 1, ξ 2,..., ξ m è ottima per il problema P, allora "i / 1 i m-1 la politica subordinata (sotto-politica) ( 0) ( 0) ( 0) ξ, ξ,..., ξ (9.2) i i + 1 m è ottima per il problema P (i) (sotto-problema) che ha per obiettivo i F = f ξ, ξ f ξ, ξ i i i + 1 m 1 m 1 m (cioè del problema che comprende soltanto le ultime m-i fasi del problema P dato). 6.15

16 Dimostrazione: questo principio è pressochè ovvio. Infatti, se per assurdo la politica subordinata (2) non fosse ottima per P (i) e lo fosse ( 1) ( 1) invece la ξ,..., ξ allora la politica i m ( 0) ( 0) ( 1) ( 1) 1,..., i 1, i,..., m ξ ξ ξ ξ (9.3) sarebbe migliore della (9.1) per il problema P contraddicendo l'ipotesi che la (9.1) è ottima. 6.16

17 In base al principio di ottimalità la soluzione di P si scompone nei seguenti passi, ognuno dei quali fa intervenire la variabilità di una sola delle x i : Passo 1: 1 determinazione di M 1 (x 2 ): M ( ξ ) [il massimo si ottiene per x 1 =x 1 (0) (x 2 )] ξ = max f ξ, ξ ξ A (9.4) Passo 2: 2 determinazione di M 2 (x 3 ): [ ] ( ξ ) = max ( ξ, ξ ) + ( ξ ) M f M ξ A ξ (9.5) [il massimo si ottiene per x 2 =x 2 (0) (x 3 )] 6.17

18 Passo k: k in generale con 2 k m-1 determinazione di M k (x k+1 ): [ ] M ξ = max f ξ, ξ + M ξ k K ξ A k ( k k + ) k ( k ) ( ξ ) k k k + 1 (9.6) [il massimo si ottiene per x k =x k (0) (x k+1 )] Per k=m-1 si ha il valore ottimo cercato: max F = max[ M 1( ξ )] [il massimo si ottiene per x m =x m (0) ] m A m m ξ (9.7) 6.18

19 Come si calcola la soluzione ottima (o politica ottima) x (0) 1,..., x (0) m? Con il valore x m (0) A ottenuto dalla (9.7) si calcola induttivamente: ( 0 ) ( 0) ( 0 ) ξ = ξ ξ... m 1 m 1 m 2 ( 0 ) ( 0) ( 0 ) ξ = ξ ξ

20 Esempio: problema della distribuzione delle risorse Si hanno Q unità di una certa risorsa R che può essere impiegata in m modi diversi. L'utilizzo di x i 0 unità nel modo i fornisce un beneficio j i (x i ). Determinare l'impiego delle Q unità di R che renda massimo il beneficio. Max F(x 1,..., x m ) = j 1 (x 1 ) j m (x m ) s.t. x 1 + x x m = Q 6.20

21 Formulazione in P.D. Si pone: x 1 = x 1, x 2 = x 1 + x 2,..., x m-1 = x x m-1 x m = x x m = Q Allora la F diventa la somma di benefici: F= j 1 (x 1 ) + j 2 (x 2 -x 1 ) j m (x m -x m-1 ) e la variabilità delle xi è: 0 x 1 x 2, cioè A 1 (x 2 ) = (0,x 2 ) 0 x 2 x 3, cioè A 2 (x 3 ) = (0,x 3 ) : 0 x m-1 x m, cioè A m-1 (x m ) = (0,x m ) mentre x m assume soltanto il valore Q. 6.21

22 Le fasi nelle quali il problema viene decomposto sono: f 1 (x 1,x 2 )= j 1 (x 1 ) + j 2 (x 2 -x 1 ) f 2 (x 2,x 3 )= j 3 (x 3 -x 2 ) : f m-1 (x m-1,x m )=j m (x m -x m-1 ) Seguendo i passi derivanti dal principio di ottimalità si ha: M e per 2 k m-1 Il massimo cercato sarà: [ ] ξ = max f ξ, ξ = max ϕ ξ + ϕ ξ ξ ξ A ξ 0 ξ ξ ( ξ ) [ k ( k k+ ) k ( k )] 1 [ ϕ k+ 1( ξ k+ 1 ξ k ) M k 1( ξ k )] M ξ = max f ξ, ξ + M ξ = k k ξ A k k k + = max + 0 ξ k ξ k + 1 ( ξ ) max F = max[ M ] = M ( Q) m A m 1 m m 1 ξ (perché A={Q}) 6.22

23 Riassumendo 6.23

24 PROGRAMMAZIONE DINAMICA Molte strategie di soluzione di problemi di ottimizzazione richiedono di risolvere più volte lo stesso sottoproblema. La programmazione dinamica diventa efficiente quando uno stesso sottoproblema si ripresenta per più di una sequenza di decisioni; l idea fondamentale è di memorizzare le soluzioni di questi sottoproblemi, in modo tale che possano essere utilizzate nel caso in cui si richieda di risolvere un sottoproblema risolto in precedenza. Questa semplice idea può permettere di trasformare algoritmi con complessità esponenziale in algoritmi con complessità polinomiale ma grande occupazione di memoria su calcolatore. 6.24

25 Lo sviluppo di un algoritmo di programmazione dinamica può essere diviso in quattro fasi o passi: 1) Caratterizzazione della struttura di una soluzione ottima. 2) Definizione ricorsiva del valore di una soluzione ottima. 3) Calcolo del valore di una soluzione ottima con una strategia bottom-up. 4) Costruzione di una soluzione ottima a partire dalle informazioni calcolate. Le fasi 1-3 definiscono la base di una soluzione di programmazione dinamica di un certo problema. Nel caso si debba determinare solamente il valore di una soluzione ottima, il passo 4 non viene preso in considerazione. Tuttavia, quando è richiesto di costruire una soluzione ottima, durante i calcoli del passo 3 possono venire memorizzate informazioni ausiliarie che facilitano l esecuzione del passo

26 Gli esempi formulati dovrebbero aver messo in luce il fatto che la funzione obiettivo viene spezzata in una somma di f.o. parziali, in una somma di benefici;(se il problema è di max), poiché il problema verrà risolto partendo dal fondo, le soluzioni sono parametrizzate, e vanno a formare una catena da cui è possibile ricavare la soluzione ottima; se l ottimo locale non fosse parametrizzato, si chiuderebbero inevitabilmente delle strade e si ricadrebbe nel greedy. Quindi non bisogna confondere l approccio della programmazione dinamica con l approccio greedy, in cui l idea di base è adottare una strategia di scelta che privilegia le decisioni che localmente appaiono migliori (ottimi locali); anche se questi metodi a volte forniscono una soluzione ottima molto più velocemente di un metodo di programmazione dinamica, tuttavia, non si è in grado di dimostrare che tale soluzione è veramente ottima. 6.26

27 Forse il limite maggiore della programmazione dinamica è quello emerso quando ci siamo occupati della sua complessità nel caso del K.P.; se infatti la complessità computazionale dell algoritmo è polinomiale, lo spazio occupato di memoria limita l applicazione del metodo a quei casi in cui la cardinalità dello spazio degli stati associato al problema non è troppo elevata. Non dovrebbe infine stupire nessuno il fatto che risolvendo, come abbiamo fatto, il problema del cammino minimo attraverso i principi della programmazione dinamica enunciati da Bellman, si applica in pratica (né più, né meno) l algoritmo per la ricerca del cammino minimo di Bellman affrontato nella sezione sui flussi su reti. 6.27

28 Risolvere con la Programmazione Dinamica il seguente "Knapsack Problem" 0/1 max 15 x s. t. 5 x x i x x { 0,1} i = 1, K, x x x x

29 Passo 1 n = 4 F E 4 = 0 per E > 5 31 per E 5 Passo 2 n = 3 0 per E > 10 F3 ( E) = max { F4 ( E), c3 + F4 ( E + a3) } = 25 per 5 < E per E 5 n = 2 0 per E > per 10 < E 15 F2 ( E) = max { F3( E), c2 + F3 ( E + a2) } = 25 per 5 < E per 0 < E 5 45 per E =

30 n = 1 { } max, F E = F E c + F E + a = per E > per 15< E per 10 < E per 5 < E per 0 < E 5 46 per E =

31 F F F F 4 Soluzione ottima F * = F 1 (0) = 46 Individuazione di x * x x x x Si ottiene: x 1 = 1, x 2 = 0, x 3 = 0, x 4 =

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea

Dettagli

Programmazione dinamica

Programmazione dinamica Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione

Dettagli

Corso di Perfezionamento

Corso di Perfezionamento Programmazione Dinamica 1 1 Dipartimento di Matematica e Informatica Università di Camerino 15 febbraio 2009 Tecniche di Programmazione Tecniche di progettazione di algoritmi: 1 Divide et Impera 2 Programmazione

Dettagli

Parte III: Algoritmo di Branch-and-Bound

Parte III: Algoritmo di Branch-and-Bound Parte III: Algoritmo di Branch-and-Bound Divide et Impera Sia z * max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)

Dettagli

3.4 Metodo di Branch and Bound

3.4 Metodo di Branch and Bound 3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land

Dettagli

METODI DELLA RICERCA OPERATIVA

METODI DELLA RICERCA OPERATIVA Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)

Dettagli

OTTIMIZZAZIONE LINEARE MULTICRITERIO

OTTIMIZZAZIONE LINEARE MULTICRITERIO OTTIMIZZAZIONE LINEARE MULTICRITERIO NOTAZIONE Siano x ed y vettori di R n indicati estesamente con x x x x 1 Μ i Μ n, y y1 Μ yi Μ y n e si ponga N = {1,2,, n}. Scriveremo allora: x y ( x è diverso da

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities L. De Giovanni M. Di Summa In questa lezione introdurremo una classe di disuguaglianze, dette cover inequalities, che permettono di

Dettagli

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI 3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI ESISTENZA DI UN PUNTO DI OTTIMO VINCOLATO Il problema di ottimizzazione vincolata introdotto nel paragrafo precedente può essere formulato nel modo seguente:

Dettagli

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO! L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

4. METODI DUALI DEL SIMPLESSO

4. METODI DUALI DEL SIMPLESSO 4. MEODI DUALI DEL SIMPLESSO R. adei 1 Una piccola introduzione R. adei 2 MEODI DUALI DEL SIMPLESSO L obiettivo del capitolo è illustrare e giustificare i metodi duali del simplesso. Entrambi i metodi

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Golosi (Greedy) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino un algoritmo goloso correttezza Problema della selezione di attività

Dettagli

Programmazione dinamica

Programmazione dinamica Programmazione dinamica Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 29/21 I. Castelli Programmazione dinamica, A.A. 29/21 1/35

Dettagli

Algoritmi esatti. La teoria ci dice che per problemi difficili (come il

Algoritmi esatti. La teoria ci dice che per problemi difficili (come il p. 1/4 Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP ) i tempi di risoluzione delle istanze, calcolati tramite analisi worst-case, tendono a crescere

Dettagli

Elaboratore Elettronico

Elaboratore Elettronico L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti

Dettagli

Algoritmi e strutture di dati 2

Algoritmi e strutture di dati 2 Paola Vocca Lezione 4: Programmazione dinamica 1 Caratteristiche Programmazione dinamica: paradigma basato sullo stesso principio utilizzato per il divide et impera o il problema viene decomposto in sotto-problemi

Dettagli

Principali strumenti per lo sviluppo di algoritmi in pascal-like. concetti universali presenti in tutti i linguaggi di programmazione

Principali strumenti per lo sviluppo di algoritmi in pascal-like. concetti universali presenti in tutti i linguaggi di programmazione LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 12 LA COMPLESSITA COMPUTAZIONALE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 8 gennaio 8 Il problema è simile all esercizio 5.6 del libro di testo di algoritmi (Introduzione agli algoritmi e strutture dati, T.

Dettagli

VISITA IL SITO PER ALTRO MATERIALE E GUIDE

VISITA IL SITO  PER ALTRO MATERIALE E GUIDE COPYRIGHT SEGO LICENSE Questo documento viene fornito così come è: se pensate che faccia schifo problemi vostri, nessuno vi obbliga a leggerlo. Se pensate che sia qualcosa di positivo e/o avete suggerimenti

Dettagli

Note per la Lezione 6 Ugo Vaccaro

Note per la Lezione 6 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,

Dettagli

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare

Dettagli

Un tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:

Un tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente: Pag 29 4) La ricorsione 4.1 Funzioni matematiche ricorsive Partiamo da un concetto ben noto, quello delle funzioni matematiche ricorsive. Una funzione matematica è detta ricorsiva quando la sua definizione

Dettagli

Complementi ed Esercizi di Informatica Teorica II

Complementi ed Esercizi di Informatica Teorica II Complementi ed Esercizi di Informatica Teorica II Vincenzo Bonifaci 21 maggio 2008 4 Problemi di ottimizzazione: il Bin Packing Il problema bin packing è il seguente: dato un insieme di n oggetti di dimensioni

Dettagli

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Problem Solving Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/30 Tipi di Problemi Primitivi Risolubili

Dettagli

Possibile applicazione

Possibile applicazione p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile

Dettagli

Tecniche Algoritmiche

Tecniche Algoritmiche Tecniche Algoritmiche Damiano Macedonio Università Ca' Foscari di Venezia mace@unive.it Original work Copyright Alberto Montresor, Università di Trento, Italy Modifications Copyright 2009 2012 Moreno Marzolla,

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Problemi, istanze, soluzioni

Problemi, istanze, soluzioni lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un

Dettagli

Rilassamento Lagrangiano

Rilassamento Lagrangiano RILASSAMENTO LAGRANGIANO 1 Rilassamento Lagrangiano Tecnica più usata e conosciuta in ottimizzazione combinatoria per il calcolo di lower/upper bounds (Held and Karp (1970)). Si consideri il seguente problema

Dettagli

L INFORMATICA c1. Informatica è qualcosa che ha a che fare con l uso del computer

L INFORMATICA c1. Informatica è qualcosa che ha a che fare con l uso del computer L INFORMATICA c1 Negli incontri precedenti ci siamo occupati di cercare la soluzione di alcuni problemi. Ora cerchiamo di definire cosa si intende per informatica. Informatica è qualcosa che ha a che fare

Dettagli

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

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

Dettagli

Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I)

Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I) Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I) Algoritmi greedy Gli algoritmi per problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di

Dettagli

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli. ESERCIZIO 1 Sia dato il grafo orientato in Figura 1. Si consideri il problema di flusso a 1 2 4 Figura 1: costo minimo su tale grafo con b 1 = 4 b 2 = 2 b = b 4 = e c 12 = 2 c 1 = 4 c 14 = 1 c 2 = 1 c

Dettagli

Risoluzione di problemi di programmazione lineare tramite generazione di colonne

Risoluzione di problemi di programmazione lineare tramite generazione di colonne Risoluzione di problemi di programmazione lineare tramite generazione di colonne A. Agnetis 1 Introduzione In alcune applicazioni, un problema può essere formulato in termini di programmazione lineare,

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 5 In questa lezione inizieremo a studiare gli algoritmi di approssimazione per problemi di ottimizzazione NP-hard

Dettagli

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

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015 1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)

Dettagli

5.4.5 Struttura dell algoritmo ed esempi

5.4.5 Struttura dell algoritmo ed esempi CAPITOLO 5. IL METODO DEL SIMPLESSO 6 5.4.5 Struttura dell algoritmo ed esempi Come abbiamo già ampiamente osservato, la fase II del metodo del simplesso, a partire da una soluzione di base ammissibile,

Dettagli

Le equazioni e i sistemi di primo grado

Le equazioni e i sistemi di primo grado Le equazioni e i sistemi di primo grado prof. Roberto Boggiani Isiss Marco Minghetti 1 settembre 009 Sommario In questo documento verrà trattato in modo semplice e facilmente comprensibile la teoria delle

Dettagli

Appunti lezione Capitolo 14 Greedy

Appunti lezione Capitolo 14 Greedy Appunti lezione Capitolo 14 Greedy Alberto Montresor 21 Novembre, 2016 1 Domanda: dimostrare che S[i, j] = con i j Nel problema della selezione delle attività, il sottoinsieme S[i, j] è definito nel modo

Dettagli

Parte V: Rilassamento Lagrangiano

Parte V: Rilassamento Lagrangiano Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice

Dettagli

Funzioni implicite - Esercizi svolti

Funzioni implicite - Esercizi svolti Funzioni implicite - Esercizi svolti Esercizio. È data la funzione di due variabili F (x, y) = y(e y + x) log x. Verificare che esiste un intorno I in R del punto di ascissa x 0 = sul quale è definita

Dettagli

Branch-and-bound per KNAPSACK

Branch-and-bound per KNAPSACK p. 1/1 Branch-and-bound per KNAPSACK Rispetto allo schema generale visto in precedenza dobbiamo specificare: come si calcola un upper bound su un sottinsieme; come si effettua il branching; come si individuano

Dettagli

Equazioni, funzioni e algoritmi: il metodo delle secanti

Equazioni, funzioni e algoritmi: il metodo delle secanti Equazioni, funzioni e algoritmi: il metodo delle secanti Christian Ferrari 1 Introduzione La risoluzione di equazioni in R ci ha mostrato che solo per le equazioni polinomiali di primo e secondo grado,

Dettagli

Calcolo Parallelo. Domanda. In particolare. Qual è l algoritmo parallelo. PROBLEMA: Prodotto Matrice-Vettore

Calcolo Parallelo. Domanda. In particolare. Qual è l algoritmo parallelo. PROBLEMA: Prodotto Matrice-Vettore Calcolo Parallelo Algoritmi Paralleli per il prodotto Matrice-Vettore Laura Antonelli PROBLEMA: Prodotto Matrice-Vettore Progettazione di un algoritmo parallelo per architettura MIMD a memoria distribuita

Dettagli

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)

Dettagli

Il problema dello zaino: dalla gita in montagna ai trasporti internazionali. Luca Bertazzi

Il problema dello zaino: dalla gita in montagna ai trasporti internazionali. Luca Bertazzi Il problema dello zaino: dalla gita in montagna ai trasporti internazionali Luca Bertazzi 0 Ricerca Operativa (Operations Research) The Science of Better Modelli e algoritmi per la soluzione di problemi

Dettagli

LA PROGRAMMAZIONE MATEMATICA (p.m.)

LA PROGRAMMAZIONE MATEMATICA (p.m.) LA PROGRAMMAZIONE MATEMATICA (p.m.) Un problema di programmazione matematica è un problema di ottimizzazione riconducibile alla seguente espressione generale: ricercare i valori delle variabili x 1, x

Dettagli

Programma. Algoritmi e Strutture Dati 2. Docenti. Programma (cont.) Materiale didattico. Modalità d esame

Programma. Algoritmi e Strutture Dati 2. Docenti. Programma (cont.) Materiale didattico. Modalità d esame Algoritmi e Strutture Dati 2 Naturale continuazione del corso di Algoritmi 1 Obiettivi: studiare algoritmi e strutture dati fondamentali; studiare le tecniche per risolvere algoritmicamente alcune classi

Dettagli

Cenni di ottimizzazione dinamica

Cenni di ottimizzazione dinamica Cenni di ottimizzazione dinamica Testi di riferimento: K. Dixit Optimization in Economic Theory. Second Edition, 1990, Oxford: Oxford University Press. A. C. Chiang Elements of Dynamic Optimization, 1992,

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

Introduzione alla ricerca operativa Problemi e modelli

Introduzione alla ricerca operativa Problemi e modelli Problemi e modelli TFA Anno Accademico 2012-13 La metodologia della matematica applicata Problema reale Denizione del modello matematico Algoritmo risolutivo Analisi dei risultati Il problema reale Reperimento

Dettagli

Distanza di Edit. Speaker: Antinisca Di Marco Data:

Distanza di Edit. Speaker: Antinisca Di Marco Data: Distanza di Edit Speaker: Antinisca Di Marco Data: 14-04-2016 Confronto di sequenze Il confronto tra sequenze in biologia computazionale è la base per: misurare la similarità tra le sequenze allineamento

Dettagli

La notazione usata è quella usuale nel caso scalare, ed è estesa al caso generale. Consideriamo una forma quadratica:

La notazione usata è quella usuale nel caso scalare, ed è estesa al caso generale. Consideriamo una forma quadratica: . SU ALCUNI OPERAORI DI DERIVAZIONE Alcune operazioni tipiche dell analisi matematica hanno un diretto riscontro in termini matriciali. Consideriamo ad esempio una forma lineare: f() l l + l +..l n n ;

Dettagli

Tecniche Algoritmiche: divide et impera

Tecniche Algoritmiche: divide et impera Tecniche Algoritmiche: divide et impera Una breve presentazione F. Damiani - Alg. & Lab. 04/05 Divide et impera (o Divide and conquer) Per regnare occorre tenere divisi i nemici e trarne vantaggio F. Damiani

Dettagli

Contenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/

Contenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/ Contenuto e scopo presentazione Contenuto: viene presentato un altro metodo di soluzione di problemi di ILP o di MILP. Modelli Lineari Interi/Misti Piani di taglio Versione /8/. Scopo: fornire le capacità

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

i completi l'esecuzione dell'algoritmo di programmazione dinamica per questo problema restituendo il valore ottimo e una soluzione ottima del problema

i completi l'esecuzione dell'algoritmo di programmazione dinamica per questo problema restituendo il valore ottimo e una soluzione ottima del problema Compito di Ricerca Operativa II Esercizio ( punti). ia dato il problema di flusso massimo sulla rete in figura (le capacit a degli archi sono riportate sopra di essi). 0 8 i consideri il seguente flusso

Dettagli

5. ANALISI DI SENSIBILITÀ

5. ANALISI DI SENSIBILITÀ 5. ANALISI DI SENSIBILITÀ R. Tadei 1 Una piccola introduzione R. Tadei 2 ANALISI DI SENSIBILITÀ Nei precedenti capitoli abbiamo visto come, partendo da un problema reale, si possa giungere alla costruzione

Dettagli

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE ROBERTO GIAMBÒ 1. DEFINIZIONI E PRIME PROPRIETÀ In queste note saranno presentate alcune proprietà principali delle funzioni convesse di una variabile

Dettagli

Rilassamento Lagrangiano

Rilassamento Lagrangiano Rilassamento Lagrangiano AA 2009/10 1 Rilassamento Lagrangiano Tecnica più usata e conosciuta in ottimizzazione combinatoria per il calcolo di lower/upper bounds (Held and Karp (1970)). Si consideri il

Dettagli

2. ALGORITMO DEL SIMPLESSO

2. ALGORITMO DEL SIMPLESSO . ALGORITMO DEL SIMPLESSO R. Tadei Una piccola introduzione R. Tadei SIMPLESSO L obiettivo del capitolo è quello di fornire un algoritmo, l algoritmo del simplesso, che risolve qualsiasi problema di programmazione

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

Appunti sui Codici di Reed Muller. Giovanni Barbarino

Appunti sui Codici di Reed Muller. Giovanni Barbarino Appunti sui Codici di Reed Muller Giovanni Barbarino Capitolo 1 Codici di Reed-Muller I codici di Reed-Muller sono codici lineari su F q legati alle valutazioni dei polinomi sullo spazio affine. Per semplicità

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi

Dettagli

Ricerca Operativa. Ricerca Operativa p. 1/2

Ricerca Operativa. Ricerca Operativa p. 1/2 Ricerca Operativa Ricerca Operativa p. 1/2 Ricerca Operativa Disciplina basata sulla modellizzazione e la risoluzione tramite strumenti automatici di problemi di decisione complessi. In tali problemi la

Dettagli

Precorso di Matematica

Precorso di Matematica UNIVERSITÀ DEGLI STUDI ROMA TRE FACOLTA DI ARCHITETTURA Precorso di Matematica Anna Scaramuzza Anno Accademico 2005-2006 4-10 Ottobre 2005 INDICE 1. ALGEBRA................................. 3 1.1 Equazioni

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore

Dettagli

3.6 Metodi basati sui piani di taglio

3.6 Metodi basati sui piani di taglio 3.6 Metodi basati sui piani di taglio Problema generale di Programmazione Lineare Intera (PLI) con A matrice m n e b vettore n 1 razionali min{ c t x : x X = {x Z n + : Ax b} } Sappiamo che esiste una

Dettagli

problemi di assegnazione

problemi di assegnazione problemi di assegnazione I problemi di assegnazione fanno parte dei problemi lineari. I problemi di assegnazione (o problemi di assegnamento) sono quei problemi di ricerca operativa in cui bisogna assegnare

Dettagli

Introduzione ai Problemi di Flusso su Reti

Introduzione ai Problemi di Flusso su Reti UNIVERSI DI PIS IROCINIO ORMIVO IVO - I CICLO CLSSE DI BILIZIONE MEMIC PPLIC Introduzione ai Problemi di lusso su Reti Relatore: Prof. V. Georgiev.U: Prof. M. Berni Elisabetta lderighi R.O e Riforma della

Dettagli

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare

Dettagli

Vettori nel Piano e nello Spazio

Vettori nel Piano e nello Spazio Vettori nel Piano e nello Spazio Caratteristiche di un vettore Componenti di un vettore e Vettore applicato all origine Vettore definito da due punti Operazioni unarie sul vettore Lunghezza di un vettore

Dettagli

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema.

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema. Introduzione al Metodo agli Elementi Finiti (FEM) Consideriamo come problema test l equazione di Poisson 2 u x 2 + 2 u = f(x, y) u = f y2 definita su un dominio Ω R 2 avente come frontiera la curva Γ,

Dettagli

2.3.3 Cammini ottimi nei grafi senza circuiti

2.3.3 Cammini ottimi nei grafi senza circuiti .. Cammini ottimi nei grafi senza circuiti Sia un grafo G = (N, A) orientato senza circuiti e una funzione di costo che assegna un valore c ij R ad ogni arco (i, j) A circuito Proprietà I nodi di un grafo

Dettagli

Universita degli Studi di Siena

Universita degli Studi di Siena Universita degli Studi di Siena Facolta di Ingegneria Dispense del corso di Sistemi di Supporto alle Decisioni I La Programmazione Dinamica Chiara Mocenni Corso di Laurea triennale in Ingegneria Gestionale

Dettagli

Il problema dello zaino

Il problema dello zaino Il problema dello zaino Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 25 gennaio 2010 Il problema dello zaino 0-1

Dettagli

Sistemi II. Sistemi II. Elisabetta Colombo

Sistemi II. Sistemi II. Elisabetta Colombo Corso di Approfondimenti di Matematica per Biotecnologie, Anno Accademico 2011-2012, http://users.mat.unimi.it/users/colombo/programmabio.html 1 2 3 con R.C.+ o 1.10 Rango massimo e determinante con R.C.+

Dettagli

Algoritmo di Branch & Bound

Algoritmo di Branch & Bound Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Algoritmo di Branch & Bound Docente: Renato Bruni bruni@dis.uniroma.it Corso di: Ottimizzazione Combinatoria

Dettagli

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

Dettagli

Note per la Lezione 7 Ugo Vaccaro

Note per la Lezione 7 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 7 Ugo Vaccaro Sempre sulla tecnica Programmazione Dinamica Ricordiamo che lo sviluppo di algoritmi basati sulla Programmazione Dinamica

Dettagli

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni

Dettagli

Teoria della Programmazione Lineare Intera

Teoria della Programmazione Lineare Intera Teoria della Programmazione Lineare Intera Laura Galli Dipartimento di Informatica Largo B. Pontecorvo, 567 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 7 Ottobre 0 Ricerca Operativa Laurea

Dettagli

Grafi e reti di flusso

Grafi e reti di flusso Grafi e reti di flusso Molti problemi di ottimizzazione sono caratterizzati da una struttura di grafo: in molti casi questa struttura emerge in modo naturale, in altri nasce dal particolare modo in cui

Dettagli

Introduzione alla programmazione lineare

Introduzione alla programmazione lineare Introduzione alla programmazione lineare struttura del problema di PL forme equivalenti rappresentazione e soluzione grafica rif. Fi 1.2; BT 1.1, 1.4 Problema di programmazione lineare Dati: un vettore

Dettagli

Analisi algoritmi ricorsivi e relazioni di ricorrenza

Analisi algoritmi ricorsivi e relazioni di ricorrenza Analisi algoritmi ricorsivi e relazioni di ricorrenza Punto della situazione Finora abbiamo affrontato: il tempo di esecuzione di un algoritmo, l analisi asintotica con le notazioni asintotiche e la tecnica

Dettagli

Lezioni di Ricerca Operativa

Lezioni di Ricerca Operativa Lezioni di Ricerca Operativa Massimo Paolucci Dipartimento di Informatica, Sistemistica e Telematica (DIST) Università di Genova paolucci@dist.unige.it Anno accademico 2000/2001 La Ricerca Operativa (Operation

Dettagli

Sistemi con vincoli. Docente: Francesca Rossi.

Sistemi con vincoli. Docente: Francesca Rossi. E-mail: frossi@math.unipd.it Scopo del corso Dare le nozioni di base della programmazione con vincoli Come rappresentare un problema reale con un insieme di vincoli Tecniche principali per risolverlo Approccio

Dettagli

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Dettagli

PROGRAMMAZIONE DINAMICA. Prof. Reho Gabriella Olimpiadi di Informatica

PROGRAMMAZIONE DINAMICA. Prof. Reho Gabriella Olimpiadi di Informatica PROGRAMMAZIONE DINAMICA Quando si usa P.D.? La programmazione dinamica si usa nei casi in cui esista una definizione ricorsiva del problema, ma la trasformazione diretta di tale definizione in un algoritmo

Dettagli

Introduzione al Corso di Algoritmi

Introduzione al Corso di Algoritmi Introduzione al Corso di Algoritmi Di cosa parliamo oggi: Una discussione generale su cosa studieremo, perchè lo studeriemo, come lo studieremo,... Un esempio illustrativo di cosa studeriemo Informazione

Dettagli

Problemi di localizzazione di servizi (Facility Location Problems)

Problemi di localizzazione di servizi (Facility Location Problems) 9. Problemi di Localizzazione di Servizi 1 Problemi di localizzazione di servizi (Facility Location Problems) Dato un insieme di clienti richiedenti una data domanda di merce e dato un insieme di possibili

Dettagli

Il problema dello zaino

Il problema dello zaino Il problema dello zaino (knapsack problem) Damiano Macedonio mace@unive.it Copyright 2010 2012 Moreno Marzolla, Università di Bologna (http://www.moreno.marzolla.name/teaching/asd2011b/) This work is licensed

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Dettagli

Programmazione Lineare Intera: Piani di Taglio

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

Dettagli

Corso di Analisi Numerica

Corso di Analisi Numerica Corso di Laurea in Ingegneria Informatica Corso di 3 - PROBLEMI DI INTERPOLAZIONE Lucio Demeio Dipartimento di Scienze Matematiche 1 Interpolazione: Polinomio di Lagrange 2 3 Introduzione Problemi di interpolazione

Dettagli

COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI

COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI In questa Appendice, mostreremo come un impresa possa individuare la sua combinazione di minimo costo dei fattori produttivi attraverso il calcolo

Dettagli