La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte II)"— Transcript della presentazione:

1 Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte II)

2 Problema del cambio di denaro Input Un numero intero positivo n Output Il più piccolo numero intero di banconote per cambiare n mila lire usando pezzi da 20 mila, 10 mila, 5 mila, e mille lire. Esempi n = 58 (mila),7 banconote: n = 18 (mila),5 banconote: Algoritmo Dispensa una banconota alla volta Ad ogni passo, utilizza la banconota più grande che non superi la cifra rimanente. Criterio di scelta greedy

3 Il criterio greedy non garantisce ottimalità Un altro problema del cambio di denaro Input Un intero positivo n Output Il più piccolo numero di banconote per cambiare n dollari usando banconote da 12, 8, e 1 dollari. Esempio n = 31 9 banconote: banconote :

4 Il criterio greedy non garantisce ottimalità Un altro problema del cambio di denaro Input Un intero positivo n Output Il più piccolo numero di banconote per cambiare n dollari usando banconote da 50, 25, 10 e 1 dollari. Esempio n = 55 6 banconote: banconote :

5 Algoritmo Greedy Costituito da una sequenza di scelte. Ad ogni punto di decisione, sceglie quella chesembra essere la scelta migliore in quel momento. Procede in maniera top-down Prende una decisione greedy dopo laltra Iterativamente riduce il problema ad uno di entità (complessità) minore

6 Ingredienti per garantire lottimalità Ottimo per alcuni problemi ma non per tutti Propertà della scelta greedy Una soluzione globalmente ottima può esser ottenuta effettuando, in sequenza, delle scelte localmente ottime (greedy). Propertà della sottostruttura ottima Una soluzione ottima al problema contiene le soluzioni ottime dei sottoproblemi Simile al caso della programmazione dinamica

7 Problema del cambio di denaro Input Un numero intero positivo n Output Il più piccolo numero intero di banconote per cambiare n mila lire usando pezzi da 20 mila, 10 mila, 5 mila, e mille lire. Esempi n = 58 (mila),7 banconote: n = 18 (mila),5 banconote: Algoritmo Dispensa una banconota alla volta Ad ogni passo, utilizza la banconota più grande che non superi la cifra rimanente. Criterio di scelta greedy

8 Problema del cambio di denaro Teorema: Il problema del cambio di denaro precedente soddisfa sia la proprietà della sottostruttura ottima che la proprietà della scelta greedy. Dimostrazione (cenni): Se b 1,…,b k è una soluzione ottima al problema di cambiare n mila lire, b 2,…,b k deve essere una soluzione ottima al problema di cambiare n - b 1 v 1 mila lire (la ban- conota 1 vale v 1 mila lire). La seconda parte (scelta greedy) si basa sul fatto che non è possibile che in una soluzione ottima non compaia la scelta greedy.

9 Problema del cambio di denaro Teorema: Il problema del cambio di denaro precedente soddisfa sia la proprietà della sottostruttura ottima che la proprietà della scelta greedy. Dimostrazione (cenni): Assumiamo b 1,…,b k sia una soluzione ottima, che la banconota h sia la più grande non superiore allimporto n e che h non compaia nella soluzione. Analizzando i casi possibili, si nota che se h non supera n, esisterà sempre nella soluzione un insieme di almeno due biglietti d i tagia inferiore ad h la cui somma sia proprio h ( tutti i tagli sono infatti divisibili per qualsiasi dei tagli minori).

10 Problema del cambio di denaro Teorema: Il problema del cambio di denaro precedente soddisfa sia la proprietà della sottostruttura ottima che la proprietà della scelta greedy. Dimostrazione (cenni): Assumiamo b 1,…,b k sia una soluzione ottima, che la banconota h sia la più grande non superiore allimporto n e che h non compaia nella soluzione. Analizzando i casi possibili, si nota che se h non supera n, esisterà sempre nella soluzione un insieme di almeno due biglietti di tagia inferiore ad h la cui somma sia proprio h (tutti i tagli sono infatti divisibili per qualsiasi dei tagli minori). Quindi sostituendo nella soluzione il biglietto di taglia maggiore si otterrebbe una soluzione migliore di b 1,…,b k, il che è una contraddizione.

11 Problema dellinstradamento

12 Instradamento con collegamenti bloccati

13

14 Un semplice problema di Scheduling Criterio: esegui il job più piccolo per primo = = 27 n job e 1 macchina Ogni job ha un tempo di esecuzione Esegui i job sulla macchina Minimizzare il tempo di comletamento totale

15 = = = = 27 43

16 = = 23 Sottoproblema

17 Un semplice problema di Scheduling Teorema: Il problema dello scheduling soddisfa la sottostruttura ottima. Teorema: Il problema dello scheduling soddisfa la scelta greedy. Dimostrare i due teoremi per esercizio!

18 Vantaggi e Svantaggi Svantaggi Fornisce una soluzione subottima: Cambio di denaro Non riesca a fornire una soluzione: Instradamento con collegamenti bloccati Vantaggi Facile da sviluppare e realizzare Basso tempo di esecuzione Spesso i problemi che si vogliono risolvere con questo metodo sono difficili. È improbabile riuscire a trovare una soluzione ottima in ogni caso.

19 Proprietà della scelta greedy Perché sia applicabile la tecnica greedy, il problema deve esibire la proprietà della scelta greedy: per ogni sottoproblema, esiste una solu- zione ottima che inizia con la scelta greedy. Questa proprietà va dimostrata per induzione. A partire da una soluzione ottima ad un sottoproblema, si costruisce una soluzione che inizia con una scelta greedy e che è ancora ottima. La scelta riduce il problema ad un sotto- problema analogo più piccolo Linduzione ci permette di completare la prova. Dipende dal criterio greedy scelto.

20 Proprietà della sottostruttura ottima Perché sia applicabile la tecnica greedy, il problema deve esibire la proprietà della sottostruttura ottima Ovviamente anche questa proprietà va dimostrata come per la programmazione dinamica. La tecnica per dimostrarla è essenzialmente la stessa.

21 Problema dello Zaino Ci sono n oggetti a disposizione. Loggetto i-esimo pesa p i chili e vale c i mila lire. Vogliamo caricare uno zaino con un carico di oggetti in modo da massimizzare il valore complessivo del carico ma di non superare un peso fissato di W chili. Si possono anche inserire porzioni di oggetti di meno di p i chili.

22 £ £ £ £6.000 per chilo £5.000 per chilo £4.000 per chilo /30 £ £ = £ £ £ = £ £ £ £ = £ Scegli per primo loggetto che ha il più alto valore Scegli per primo loggetto che ha il magior peso Scegli per primo loggetto che ha il più alto valore per chilo

23 £6.000 per chilo £5.000 per chilo £4.000 per chilo /30 55 £ £ £ = £ £ £ £ /30 £ £ = £ (45) £5.000 per chilo £4.000 per chilo £ £ Sottoproblema

24 Sottostruttura ottima Teorema: Il problema dello zaino frazionario soddisfa la sottostruttura ottima. Dimostrazione: Sia S = w i la soluzione ottima al problema W con n oggetti di peso massimo p i S associa ad ogni oggetto i un peso 0 w i p i Il costo di W sarà quindi w i c i /p i e W = w i Se rimuoviamo la quantità w delloggetto h da S otteniamo una sol. S per il sottoproblema W - w con n-1 oggetti più p h - w S deve essere ottima! Perché?

25 Scelta greedy Teorema: Il problema dello zaino frazionario soddisfa la scelta greedy. Dimostrazione (cenni): ¶ Possiamo dimostrare che: nella soluzione ottima deve comparire la quantità massima delloggetto con il maggior rapporto costo/peso (c i /p i ) (scelta greedy). · Successamente si può dimostrare che: la scelta greedy può sempre essere fatta per prima.

26 Scelta greedy Teorema: Il problema dello zaino frazionario soddisfa la scelta greedy. Dimostrazione (cenni): ¶ Nella soluzione ottima deve comparire la quantità massima delloggetto con il maggior rapporto costo/peso (c i /p i ) (scelta greedy). Siano c h e p h valore e peso disponibile delloggetto col massimo rapporto c i /p i e w i il peso delli-esimo oggetto nella solu- zione. C = i=1..n w i c i /p i Se w j 0 e avanza p h w j delloggetto h allora sostituendolo nella soluzione per j ci da una soluzione migliore, infatti w j c j /p j w j c h /p h

27 Scelta greedy Teorema: Il problema dello zaino frazionario soddisfa la scelta greedy. Dimostrazione (cenni): · la scelta greedy può sempre essere fatta per prima Caso 1: W p h allora w h = W e w i =0 per gli altri. Caso 2: Se W p h e w i è la prima scelta e per la dimostrazione precedente tutto h deve comparire. C = w i c i /p i + p h c h /p h + i 1,h w i c i /p i Se scambiamo i con h, otteniamo una nuova soluzione con valore C = p h c h /p h + w i c i /p i + i 1,h w i c i /p i Ma se C è ottima, lo è anche C, poiché C = C


Scaricare ppt "Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte II)"

Presentazioni simili


Annunci Google