La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Master Bioinformatica 2002: Progetto di Algoritmi1 Problemi di ottimizzazione Allocazione di risorse (merci in un magazzino) Scheduling (ordinamento temporale)

Presentazioni simili


Presentazione sul tema: "Master Bioinformatica 2002: Progetto di Algoritmi1 Problemi di ottimizzazione Allocazione di risorse (merci in un magazzino) Scheduling (ordinamento temporale)"— Transcript della presentazione:

1 Master Bioinformatica 2002: Progetto di Algoritmi1 Problemi di ottimizzazione Allocazione di risorse (merci in un magazzino) Scheduling (ordinamento temporale) Pianificazione di investimenti Pattern matching: date due sequenze di simboli: AACCGATGTACCT CGAACGATACGGTTAC trovare la piu lunga sottosequenza comune Distanza minima in reti: dato un insieme di città collegate da strade trovare il percorso minimo che collega ogni coppia di città

2 Master Bioinformatica 2002: Progetto di Algoritmi2 Soluzione di un problema di ottimizzazione Ad ogni problema è associato un costo/valore una soluzione e frutto di una sequenza di scelte, ciascuna delle quali contribuisce a determinare il costo/valore finale si è interessati a trovare una soluzione che abbia un costo/valore ottimo (minimo o massimo)

3 Master Bioinformatica 2002: Progetto di Algoritmi3 Algoritmi greedy Si applicano a problemi di ottimizzazione in cui dato un insieme di oggetti {a1,…,an} occorre selezionare un sottoinsieme ottimo S di oggetti che verificano una determinata proprietà Idea: per trovare un soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente

4 Master Bioinformatica 2002: Progetto di Algoritmi4 Esempio: Il problema del resto Avendo a disposizione monete di vario tipo determinare una collezione minima di monete la cui somma sia uguale al resto. Ad esempio: hai a disposzione monete da 50, 20,10, 2 e 1 cent.euro, il resto ottimo di 87 è formato da:

5 Master Bioinformatica 2002: Progetto di Algoritmi5 Struttura degli algoritmi greedy Si assume che gli oggetti abbiano associato un valore di appetibilità. La soluzione viene costruita incrementalmente scegliendo ad ogni passo loggetto che ha appetibilita maggiore e puo essere aggiunto a quelli già selezionati.

6 Master Bioinformatica 2002: Progetto di Algoritmi6 Greedy1 ({a 1, a 2, …a n }) S ordina gli a i in ordine non crescente di appetibilita for ogni a i nellordine do if a i puo essere aggiunto a S then S S {a i } return S Algoritmi Greedy - Schema generale 1 Se le appetibilita degli oggetti sono note fin dallinizio e non vengono modificate

7 Master Bioinformatica 2002: Progetto di Algoritmi7 Algoritmi Greedy - Schema generale 2 Se le appetibilita degli oggetti possono essere modificate dalle scelte gia fatte. Greedy2 ({a 1, a 2, …a n }) S valuta le appetibilita degli a i while ci sono elementi da scegliere do scegli la i piu appetibile if a i puo essere aggiunto a S then S S {a i } aggiorna le appetibilita degli a i return S

8 Master Bioinformatica 2002: Progetto di Algoritmi8 Esempio: Problema della Selezione di attivita Input: S = {1, 2, …, n} insieme di attivitache devono usare una risorsa in modo esclusivo. Ogni attivita i e caratterizzata da un tempo di inizio e da un tempo di fine: [s i, f i ) con (s i < f i ). [s i, f i ) e [s j, f j ) sono compatibili se s i f j o s j f i ij sisi fifi sjsj fjfj ji fjfj sisi fifi sjsj sjsj

9 Master Bioinformatica 2002: Progetto di Algoritmi9 Selezione di attvità Output: insieme che contiene il massimo numero di attivitamutuamente compatibili.

10 Master Bioinformatica 2002: Progetto di Algoritmi10

11 Master Bioinformatica 2002: Progetto di Algoritmi

12 Master Bioinformatica 2002: Progetto di Algoritmi12 Idea dellalgoritmo seleziona ad ogni passo unattività che sia compatibile con quelle già selezionate e lasci più opportunità di selezione futura seleziona ad ogni passo unattività che sia compatibile con quelle già selezionate e che abbia tempo di fine minimo tra quelle che possono ancora essere selezionate

13 Master Bioinformatica 2002: Progetto di Algoritmi13 Applicando lo schema greedy: Oggetti: le attivita Appetibilita: tempo di fine Ordiniamo le attivita per tempo di fine visita non decrescente.

14 Master Bioinformatica 2002: Progetto di Algoritmi Attività ordinate per fine visita

15 Master Bioinformatica 2002: Progetto di Algoritmi15 Activity_selector(s, f) A sia {a 1, a 2, …a n } ordinata in modo che f 1, f 2,… f n A = {1} j 1 for i = 2 to n do if s i f j then A A {i} j i return A

16 Master Bioinformatica 2002: Progetto di Algoritmi16 Spiegazione dellalgoritmo f j rappresenta il massimo tempo di fine visita delle attivita gia selezionate (quelle in A) per sapere se unattivita i e compatibile con quelle gia selezionate basta verificare che s i f j

17 Master Bioinformatica 2002: Progetto di Algoritmi Soluzione: {2,9,8,1}

18 Master Bioinformatica 2002: Progetto di Algoritmi Altra soluzione: {6,9,10,1} 6

19 Master Bioinformatica 2002: Progetto di Algoritmi19 Tutte le soluzioni {2, 9, 8, 1} {6, 9, 10, 1} {2, 9, 10, 1} {6, 9, 8, 1} Osserva che si ottiene una soluzione da un altra sostituendo unattività con unaltra con lo stesso tempo di fine visita

20 Master Bioinformatica 2002: Progetto di Algoritmi20 Proprietà1: sottostruttura ottima Sia A una soluzione ottima per S, sia k A. Considera Ak = {i A | f i f k } A = A - Ak S = {i S | s i f k } A e una soluzione ottima per S.

21 Master Bioinformatica 2002: Progetto di Algoritmi21 Dimostrazione : supponi che A non sia ottima allora esiste una soluzione B per Scon |B| > |A|. Poichè B Ak = e ogni attività in B è compatibile con quelle in Ak ottengo che Ak B è una soluzione per S e |B Ak| > |A Ak| = |A| contro lipotesi che A sia ottima.

22 Master Bioinformatica 2002: Progetto di Algoritmi22 Proprietà2: scelta greedy Sia 1 S, unattività con tempo di fine f 1 minimo. Esiste una soluzione ottima A tale che 1 A

23 Master Bioinformatica 2002: Progetto di Algoritmi23 Dimostrazione: sia A una soluzione ottima per S e sia j A unattività con tempo di fine minimo tra quelle in A, vale f 1 f j Considera linsieme A = (A -{j}) {1} poichè vale s i f j f 1 per ogni i in A -{j} anche A euna soluzione ed eottima essendo |A| = |A| e abiamo che 1 A

24 Master Bioinformatica 2002: Progetto di Algoritmi24 Correttezza dellalgoritmo Segue dalle due proprietà dimostrate mediante un ragionamento induttivo. Considera un insieme di attività S = {1,…,n} ordinate in modo che f 1 f 2 … f n. Per la Proprietà2 esiste una soluzione ottima che contiene la prima scelta greedy 1. Sia A una tale soluzione. Per la Proprietà1, A = A - {1} e una soluzione ottima per linsieme di attivita S = {i S: s i f 1 }. Riapplica lo stesso ragionamento ad S

25 Master Bioinformatica 2002: Progetto di Algoritmi25 Formalmente provo che: siano i 1,…,i k le attività gia scelte dallalgoritmo con k 0, supponi che esista una soluzione ottima i cui primi k elementi (nellordine di f) sono i 1,…,i k e che lalgoritmo scelga al prossimo passo lattività i k+1 allora esiste una soluzione ottima i cui primi k+1 elementi i 1,…i k, i k+1. Dimostrazione k = 0, allora i k+1 = 1, e la Proprietà2. k > 0, supponi che sia A soluzione ottima e che i 1,…, i k siano i primi k elementi di A, caso i se i k+1 A non cè niente da dimostrare.

26 Master Bioinformatica 2002: Progetto di Algoritmi26 caso ii se i k+1 A considera A= A - {i 1,…, i k } e sia S= {i S | s i f i k }. Per la proprietà 2 applicata a S esiste una soluzione ottima B per Sche contiene i k+1 come elemento piupiccolo. Per la Proprietà 1 A eottima per S quindi |B| =|A|. Dato che B {i 1,…, i k } = e che ogni attivita in B è compatibile con {i 1,…, i k } ho che B {i 1,…, i k } è una soluzione ottima per S e ha come primi k+1 elementi i 1,… i k+1.

27 Master Bioinformatica 2002: Progetto di Algoritmi27 Quando eapplicabile la metodologia greedy? Sottostruttura ottima: una soluzione ottima del problema contiene al suo interno una soluzione di dei sottoproblemi Scelta greedy: la scelta dellottimo locale garantisce una soluzione ottima globale

28 Master Bioinformatica 2002: Progetto di Algoritmi28 La scelta greedy riduce un problema ad un problema piupiccolo dello stesso tipo di quello di partenza. Una soluzione ottima e determinata dalla sequenza di tali scelte che alla fine producono un problema vuoto.

29 Master Bioinformatica 2002: Progetto di Algoritmi29 Il problema dello zaino Un ladro vuole rubare dei beni che trasporterà in uno zaino. Può prendere W chili di bottino (W è la capacità dello zaino). Deve scegliere tra n articoli, ognuno dei dei quali ha peso w i e valore v i. Può prendere qualsiasi articolo, purchè non ecceda la capacità W.

30 Master Bioinformatica 2002: Progetto di Algoritmi30 Problema: Quale è il massimo valore che può mettere insieme e quali articoli deve prendere per massimizzare il valore complessivo del bottino?

31 Master Bioinformatica 2002: Progetto di Algoritmi31 Due varianti del problema: Lo zaino frazionario (o continuo): si possono prendere frazioni di ciascun articolo. Lo zaino discreto (o zaino 0-1): gli articoli sono indivisibili, quindi ciascun articolo o lo si prende oppure no (scelta 0-1)

32 Master Bioinformatica 2002: Progetto di Algoritmi32 Lo zaino frazionario è risolvibile con un metodo greedy Consideriamo come valore di appetibilità il valore di ciascun oggetto (v i ) per unità di peso (w i ): v i /w i

33 Master Bioinformatica 2002: Progetto di Algoritmi33 Idea dellalgoritmo greedy: Prendi il piu possibile delloggetto con il piu alto rapporto v i /w i. Se la dotazione delloggetto e esaurita e non hai ancora riempito lo zaino, considera il prossimo oggetto con il piualto rapporto v i /w i. Ripeti il procedimento finchè lo zaino è pieno.

34 Master Bioinformatica 2002: Progetto di Algoritmi34 Proprietà della sottostruttura ottima Se rimuovo una quantità w di un articolo j da un carico ottimo ottengo un carico ottimo che pesa al piu W-w e che posso mettere insieme avendo a disposizione n-1 articoli con le quantità originarie e w j -w chili dellarticolo j. Altrimenti: se ci fosse un carico che vale di più, potrei ottenere un carico migliore con la dotazione originaria degli n articoli e peso W, aggiungendo w chili di j a quel carico.

35 Master Bioinformatica 2002: Progetto di Algoritmi35 Proprietà della scelta greedy Sia h un articolo con il più alto rapporto v h /w h. Ce una soluzione ottima L in cui prendo il massimo di h, cioè L h = min(W,w h ) Dopo aver scelto L h il problema si riduce a trovare una soluzione ottima scegliendo tra n-1 oggetti (h escluso) e potendo mettere insieme un peso non superiore a W- L h. Si ripete il ragionamento considerando la prossima scelta greedy.

36 Master Bioinformatica 2002: Progetto di Algoritmi36 Knapsack(W, w,v) Ordina {1,…,n} per v i /w i non crescente C W for i = 1 to n do L i 0 i 1 while (i n) and (C > 0) do L i min(C, w i ) C C - L i i i+1 return L

37 Master Bioinformatica 2002: Progetto di Algoritmi37 Knapsack(W, w,v) (L valori frazionari) Ordina {1,…,n} per v i /w i non crescente C W for i = 1 to n do L i 0 i 1 while (i n) and (C > 0) do if (w i > C) then L i C (L i C/w i ) C 0 else L i w i (L i 1) C C - w i, i i+1 return L

38 Master Bioinformatica 2002: Progetto di Algoritmi38 Esempio

39 Master Bioinformatica 2002: Progetto di Algoritmi39 Esecuzione algoritmo / Soluzione: V = 10* *5+20* 4 = 240 iCL1L2 L3iCL1L2 L3

40 Master Bioinformatica 2002: Progetto di Algoritmi40 Zaino 0-1 Stesso problema, ma gli articoli vanno presi interamente: L i = 1 se prendiamo larticolo i L i = 0 se non prendiamo larticolo i Vale la proprietà della sottostruttura ottima anche per lo zaino0-1: se ad un carico ottimo di peso W tolgo un oggetto j, ottengo un carico ottimo di peso W - w j

41 Master Bioinformatica 2002: Progetto di Algoritmi41 GreedyKnapsack0-1(W, w,v) Ordina {1,…,n} per v i /w i non crescente C W for i = 1 to n do L i 0 i 1 while (i n) and (C > 0) do if (w i > C) then L i 0 else L i 1 C C - w i, i i+1 return L

42 Master Bioinformatica 2002: Progetto di Algoritmi42 Rivediamo lesempio

43 Master Bioinformatica 2002: Progetto di Algoritmi43 Esecuzione algoritmo / (w=30) Soluzione: V = 10* *5= 160 iCL1L2 L3iCL1L2 L3

44 Master Bioinformatica 2002: Progetto di Algoritmi44 Eottima la soluzione? NO!! Se prendo larticolo 2 e larticolo 3 ottengo: V = = 220 La strategia greedy non trova una soluzione ottima per il problema dello zaino 0-1

45 Master Bioinformatica 2002: Progetto di Algoritmi45 Non vale il principio della scelta greedy: la scelta se prendere o no un oggetto non dipende dalla sua appetibilità. Per trovare una soluzione ottima bisogna comparare la soluzione del sottoproblema in cui si e scelto di prendere un articolo con la soluzione in cui si e scelto di non prendere quellarticolo. Il problema è risolvibile con la Programazione Dinamica


Scaricare ppt "Master Bioinformatica 2002: Progetto di Algoritmi1 Problemi di ottimizzazione Allocazione di risorse (merci in un magazzino) Scheduling (ordinamento temporale)"

Presentazioni simili


Annunci Google