PROGRAMMAZIONE DINAMICA
|
|
- Filippo Leoni
- 6 anni fa
- Visualizzazioni
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 Gli algoritmi greedy sono algoritmi basati sull idea
DettagliProgrammazione 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
DettagliCorso 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
DettagliParte 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)
Dettagli3.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
DettagliMETODI 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)
DettagliOTTIMIZZAZIONE 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
DettagliMetodi 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
Dettagli3.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:
DettagliL 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
Dettagli4. 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
DettagliAlgoritmi 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à
DettagliProgrammazione 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
DettagliAlgoritmi 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
DettagliElaboratore 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
DettagliAlgoritmi 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
DettagliPrincipali 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
DettagliAlgoritmi 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
DettagliLaboratorio 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.
DettagliVISITA 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
DettagliNote 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,
DettagliLezione 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
DettagliUn 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
DettagliComplementi 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
DettagliCorso 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
DettagliPossibile 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
DettagliTecniche 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,
DettagliL 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
DettagliProblemi, 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
DettagliRilassamento 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
DettagliL 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
DettagliTEORIA 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
DettagliAlgoritmi 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
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
Dettagli2.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
DettagliFigura 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
DettagliRisoluzione 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,
DettagliAlgoritmi 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
DettagliRicerca 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)
Dettagli5.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,
DettagliLe 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
DettagliAppunti 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
DettagliParte 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
DettagliFunzioni 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
DettagliBranch-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
DettagliEquazioni, 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,
DettagliCalcolo 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
DettagliSistemi 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)
DettagliIl 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
DettagliLA 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
DettagliProgramma. 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
DettagliCenni 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,
Dettagli2.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
DettagliIntroduzione 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
DettagliDistanza 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
DettagliLa 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 ;
DettagliTecniche 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
DettagliContenuto 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à
DettagliIntroduzione 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
Dettaglii 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
Dettagli5. 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
DettagliNOTE 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
DettagliRilassamento 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
Dettagli2. 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
Dettagliin 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
DettagliAppunti 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à
DettagliAlgoritmi 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
DettagliRicerca 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
DettagliPrecorso 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
DettagliEsercizi 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
Dettagli3.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
Dettagliproblemi 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
DettagliIntroduzione 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
DettagliAlgoritmi 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
DettagliVettori 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
DettagliIntroduzione 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 Γ,
Dettagli2.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
DettagliUniversita 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
DettagliIl 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
DettagliSistemi 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.+
DettagliAlgoritmo 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
DettagliRISOLUZIONE 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
DettagliNote 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
DettagliUniversità 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
DettagliTeoria 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
DettagliGrafi 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
DettagliIntroduzione 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
DettagliAnalisi 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
DettagliLezioni 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
DettagliSistemi 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
DettagliEsercizi 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,
DettagliPROGRAMMAZIONE 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
DettagliIntroduzione 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
DettagliProblemi 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
DettagliIl 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
DettagliProblemi, 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
DettagliEsercizi 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,
DettagliProgrammazione 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
DettagliCorso 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
DettagliCOME 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