Dynamic Programming Testi di riferimento per approfondimenti: Dimitri Bertsekas, Dynamic Programming, deterministic and stochastic models, Prentice-Hall.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Flusso Massimo Applicazione di algoritmi
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
TSP Traveling Salesman’s Problem Università di Camerino
Sistemi dinamici discreti e computabilità intrinseca
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
Politecnico di Torino Tesi di Laurea
Introduzione ai grafi Grafo diretto e non diretto
Algoritmi e Strutture Dati (Mod. B)
Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOMENOMECAPO RossiVerdi NeriVerdi DeSio TucciDeSio DeLucaDeSio Lazio selezionare.
6. Catene di Markov a tempo continuo (CMTC)
Introduzione Cosa sono le reti di Petri?
Algoritmi e Strutture Dati
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Scelte di consumo Chiara Mocenni Corso di laurea.
6. Catene di Markov a tempo continuo (CMTC)
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Algoritmi e Strutture Dati
Macchine non completamente specificate
Esercizi su alberi binari
Analisi e Sintesi di circuiti sequenziali
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Boruvka Algoritmi.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Flusso Massimo Applicazione di algoritmi
Flusso Massimo Applicazione Algoritmi Esercizio 1 Sia dato la seguente rete di flusso, in cui la sorgente è il nodo 1 e la destinazione è il nodo 6. I.
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Algoritmi e Strutture Dati (Mod. A)
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Algoritmi e Strutture Dati (Mod. B)
Trovare il percorso minimo da b ad ogni altro vertice
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Euristiche: algoritmi costruttivi e di ricerca locale
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Ricorsione CORDA – Informatica A. Ferrari Testi da Alessandro Bugatti
Master Bioinformatica 2002: Grafi
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
R. Soncini Sessa, MODSS, L 26 Stima degli effetti Calcolo degli obiettivi (Laplace) Rodolfo Soncini Sessa MODSS Copyright 2004 © Rodolfo Soncini.
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Esercizi (attrito trascurabile)
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Flusso Massimo Applicazione di algoritmi
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Corso di Matematica Discreta 4
Flusso di Costo Minimo Trasformazioni Equivalenti e Trasformazioni Inverse Viene data la seguente rete di flusso, in cui i valori riportati vicino agli.
Prof. Cerulli – Dott. Carrabs
Capitolo 13 Cammini minimi: Bellman e Ford Algoritmi e Strutture Dati.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte III)
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Algoritmi e Strutture Dati Luciano Gualà
11/05/20161/37 Corso di ELETTROTECNICA I metodi delle correnti cicliche e dei potenziali ai nodi Presentazione a cura del Prof. Alvise Maschio Dipartimento.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

Dynamic Programming Testi di riferimento per approfondimenti: Dimitri Bertsekas, Dynamic Programming, deterministic and stochastic models, Prentice-Hall 1987 In rete, Art Lew, Holger Mauch, Dynamic Programming: a computational tool Part I (Chapters 1 and 2)

Per risolvere un problema attraverso la Programmazione Dinamica (DP) occorre che la sua soluzione sia esprimibile come il raggiungimento di uno stato dello stadio finale del problema, si possa definire una funzione di transizione pesata (con un costo associato a ciascuna transizione) da uno stato s di uno stadio i a uno stato s’ dello stadio i+1, il cui costo dipende esclusivamente dalle coppie (i,s), (i+1, s’). Il concetto di stadio (stage) e’ associato a un sottoproblema del problema di partenza. Lo stadio finale e’ costituito da sottoproblemi “elementari” che hanno un’unica soluzione ammissibile (o nessuna) e pertanto e’ immediato risolverli all’ottimo. Lo stadio iniziale corrisponde al problema originale. Associando a ogni coppia (i,s) un nodo e ad ogni transizione (i,s)  (i+1, s’) un arco pesato, si definisce il grafo degli stati, su cui risolvere il problema diventa determinare il cammino ottimo dal nodo iniziale al nodo finale. Attenzione, il grafo degli stati e’ ben diverso dall’albero delle decisioni del Branch and Bound, anche se ogni transizione corrisponde a prendere una decisione parziale.

Questa struttura incarna “fisicamente” il principio di ottimalita’ di Bellman, secondo cui “una politica ottima e’ fatta di un certo numero di subpolitiche ottime”. Se cosi’ non fosse, sostituendo a una subpolitica non ottima una ottima, si migliorerebbe la politica finale, contraddicendo il fatto che la precedente fosse ottima. Un semplice esempio e’ fornito dal problema del cammino di costo minimo da un nodo s a un nodo t: sia i un nodo parte del cammino ottimo p*, allora il sottocammino di p* compreso da s a i (indicato come p*(s,i)) e’ anche il cammino ottimo da s a i. Infatti, se cosi’ non fosse, ma fosse invece p’(s,i) il cammino ottimo da s a i, allora p* non sarebbe ottimo poiche’ il nuovo cammino composto dai sottocammini p’(s,i) e p*(i,t) sarebbe migliore di p*. In forma ricorsiva, questo equivale a definire le “dynamic programming functional equations” che definiscono il passaggio da uno stadio al successivo per ricorsione. Per il problema del cammino minimo da s a t, d*(t) = Min {d*(i)+c it tale che i  Pred(t)} Testo di riferimento per approfondimenti: Dimitri Bertsekas, Dynamic Programming, deterministic and stochastic models, Prentice-Hall 1987

Il prolema di zaino binario come problema di programmazione dinamica Uno stato e’ un livello di riempimento della zaino. Uno stadio e’ avere preso decisioni (si/no) fino all’oggetto k- esimo compreso. Si osservi che lo stesso livello di riempimento puo’ essere raggiunto attraverso scelte si/no diverse su un insieme di oggetti tali che la somma dei pesi di quelli selezionati nei due casi coincide. Esempio, siano i pesi di 7 oggetti pari a {4, 7, 2, 9, 5, 8, 5} Hanno pari peso (20) i sottoinsiemi di oggetti di peso {4, 7, 9} e {2, 5, 8, 5} Per questo il grafo degli stati non coincide con l’albero delle decisioni del B&B, anche se la transizione da uno stadio a quello successivo si attua scegliendo o meno un oggetto (branching)

Esempio: Pesi:{2, 4, 5, 5, 7, 8, 9} Valore:{3, 7, 13, 13, 18, 20, 27} Capacita’ = 20 Il problema ha 8 stadi (da nessun oggetto a tutti e 7) e 21 (da 0 a 20) stati. Il nodo iniziale e’ lo stadio 0 che ha come unico stato 0 Le transizioni possibili portano un nodo (k,s) dello stadio k a due nodi dello stadio k+1, di cui uno e’ allo stesso stato (k+1, s) e rappresenta il caso in cui l’oggetto k+1 non e’ scelto per cui il peso corrente resta uguale, e l’altro e’ allo stato s+w k+1 pari al peso precedente sommato al peso delll’oggetto k+1 esimo. Il valore della transizione nel primo caso e’ nullo e nel secondo e’ pari a v k+1 ovverossia al valore dell’oggetto k+1. 0, 0 k, s k+1, s+w k+1 k+1, s 0 v k+1 n+1, cap Il nodo finale e’ un nodo fittizzio a cui sono collegati da transizioni di peso nullo tutti i nodi dello stadio k=n+1 Tale nodo serve come destinazione di ogni cammino dal nodo (0,0) associato una generica soluzione.

Pesi:{2, 4, 5, 5, 7, 8, 9}Valore:{3, 7, 13, 13, 18, 20, 27}Capacita’ = 20 0, 0 0 8, 20+ Stadi (oggetti su cui si e’ deciso) Stati (peso corrente) da 0 a 20 1, 0 1, 2 3 2, 03, 04, 05, 06, 07, , , 6 3, 5 7 3, 2 3, 6 3, , , 4 3, 7 3, 94, 95, 9 4, 2 13 ….. 7, 2 ….. 7, 9 ….. 6,11 7,20 27 Si osservi come due distinti camini (selezione degli oggetti 1 e 3 e dell’oggetto 5) portano allo stesso nodo (5,7)… 5, 7 ….. 4, 7 Il problema diventa determinare il cammino massimo sul grafo degli stati (aciclico) Complessita’Pseudopolinomiale

Esercizi: formulare come problemi di programmazione dinamica i seguenti problemi TSP su grafo diretto G=(N,A): usare la formula ricorsiva f(S,k)= Min { f(S\{k},m)+ c m,k } dove f(S,k) e’ il costo del cammino hamiltoniano che dal nodo 1 raggiunge il nodo k visitando esattamente una volta tutti i nodi di S  N, e m e’ un nodo di S\{k}. Il nodo iniziale del grafo degli stati e’ f({1},1) e il nodo finale che rappresenta un generico tour e’ f(N, k). Optimal Covering: Date K reti su cui si ipotizza un traffico pari a t k con t k < t k+1 occorre scegliere per ciascuna di esse la tecnologia di implementazione, dato che la tecnologia k-esima gestisce al + traffico pari a t k. Sia c k il costo della tecnologia k-esima (con c k < c k+1 ) e si possono selezionare al piu’ n<K diverse tecnologie. Esempio, siano 10 livelli di traffico associati a 10 tecnologie di costo (1,4,5,7,8,12,13,18,19,21), la soluzione ottima consiste nell’implementare le prime 5 con la V tecnologia (costo 5x8), la 6 e la 7 con la VII (costo 2x13) e infine le restanti tre con la X (costo 3x21) con costo totale pari a 129. La formula ricorsiva e’ f(h) = Min { (h-k)c h + f(k), per k  1..h-1} dove h e’ l’indice del livello maggiore di traffico della rete ancora da realizzare. Infatti con la tecnologia h-esima realizzo la rete k e le precedenti fino a k+1 incluso, mentre per le successive usero’ almeno una volta la tecnologia k (infatti f(k) e’ il costo della soluzione ottima del sottoproblema con k reti).