Sei sulla pagina 1di 10

Algoritmi Greedy: strategia dell'ingordo

- costruisce la soluzione effettuando, ad ogni passo, la scelta migliore nell'immediato piuttosto che adottare una strategia a lungo termine. - Questa strategia euristica non sempre produce una soluzione ottima. MA QUANDO LO FA, CI CONSENTE DI SCRIVERE ALGORITMI MOLTO EFFICIENTI Gli algoritmi di greedy in genere prevedono 1. 2. ORDINAMENTO DELLE RISORSE SCELTA LOCALMENTE OTTIMA

- DA NOTARE: - Ad ogni scelta il problema si riduce ad un sotto-problema dello stesso tipo, ma di dimensione pi piccola, - Ogni scelta non viene mai rimessa in discussione. - Non sempre porta a scelte Ottime globalmente. - In alternativa c' la programmazione dinamica ma spesso costosa in termini di sviluppo e di efficienza..

Algoritmi Greedy: s...vantaggi


Propert della scelta greedy. Una soluzione globalmente ottima pu esser ottenuta effettuando, in sequenza, delle scelte localmente ottime (greedy). Vantaggi la possibilit di ottenere algoritmi semplici, intuitivi e facilmente implementabili, caratterizzati da un ridotto tempo di calcolo per la determinazione della soluzione. Svantaggi non sempre forniscono una soluzione ottima, pur trattandosi comunque di una buona soluzione di partenza per algoritmi pi sofisticati. Ad esempio, i risultati di un algoritmo greedy possono essere migliorati con un algoritmo di ricerca locale, basato sulla ricerca di una soluzione in qualche modo vicina a quella iniziale, e che la migliori. Ottimo per alcuni problemi ma non per tutti Si dimostra che questa strategia euristica di risoluzione dei problemi porta a soluzioni Ottime solo per certe categorie di problemi: - RESTO IN DENATO - ORGANIZZAZIONE DELLE ATTIVITA' - PROBLEMI DI SCHEDULING - PROBLEMA DELLO ZAINO CONTINUO - NON RISOLVE INVECE IL PROBLEMA DELLO ZAINO DISCRETO (0/1)

r.gasparotto marzo 2013

Problema della selezione di attivit


Dato linsieme di attivit S={1,2,...,N}, trovare il massimo sottoinsieme di attivit tra loro compatibili ossia i cui intervalli di utilizzo non si sovrappongono. VEDI APPUNTI TESTUALI

r.gasparotto marzo 2013

1. SCHEDULING
1 processore n job: p1, p2, ..., pn Ogni job pi ha un tempo di esecuzione t[i] OVIETTIVO Minimizzare il tempo di completamento medio.

r.gasparotto marzo 2013

Il problema dello scheduling


Il problema dello scheduling soddisfa la scelta greedy. Algoritmo di scheduling - Programmi in ritardo Dati n programmi p1, ..., pn, tali che ciascun pi richiede ti unit di tempo di esecuzione e deve essere eseguito entro una certa scadenza di, trovare un ordine S in cui eseguirli tutti in modo da minimizzare il numero di programmi per i quali la scadenza non rispettata Algoritmo di Moore (1968) - Si ordina i programmi per scadenze crescenti - Si cerca il primo programma p in ritardo - Si elimina il pi lungo programma nella sottosequenza che precede p - Si itera il procedimento sulla sottosequenza ottenuta fino ad ottenere una sottosequenza S* senza programmi in ritardo RISULTATO Si eseguono quindi i programmi in S*, seguiti dai programmi in ritardo Segue esempio e sua rappresentazione grafica.

r.gasparotto marzo 2013

I programmi sono ordinati in una sequenza S per scadenze crescenti.

Si scorre la lista per identificare il primo programma p in ritardo; Si elimina il programma p pi lungo che precede p.

r.gasparotto marzo 2013

Scheduling CON PENALITA'


NProcessi Scadenze Penalit p d w 1 4 70 2 2 60 3 4 4 3 50 40 5 1 30 6 4 20 7 6 10

Durata si considera unitaria. Le penalit APPLICATE in caso di scadenza. Obiettivo minimizzare le penalit. In base all'algoritmo greedy, Ordino in base alle scadenze NProcessi p 5 2 4 1 3 6 7 Scadenze d 1 2 3 4 4 4 6 Penalit w 30 60 40 70 50 20 10 1 P5 2 P2 3 P4 4 P1 5 6 p3 7

ELIMINO P CON PENALITA' MINORE OSSIA P5 SOSTITUISCO CON P3 1 2 3 4 5 6 7 P5 P2 P4 P1 P3 P5 E P6 SCADONO LISTA FINALE DI PROCESSI ESEGUITI: CON P5 E P6 IN PENALITA' 1 2 3 4 5 6 7 P3 P2 P4 P1 P7 P5 P6

r.gasparotto marzo 2013

Il problema dello Zaino


Il problema dello Zaino continuo (polvere d'oro ) La tecnica Greedy funziona Usare programmazione dinamica inutilmente complicato Il Problema dello Zaino discreto 0-1 (lingotto d'oro) La tecnica Greedy non funziona necessaria la programmazione dinamica

Strategia golosa per il problema dello zaino continuo: 1. si calcola il valore per unita` di peso, o valore specifico, di ciascun oggetto: Vi / Wi 2. si ordina in base a Vi / Wi 3 il ladro prende la maggiore quantita' possibile delloggetto con peso specifico maggiore. 4 esaurita la scorta di questo oggetto, se nello zaino c ancora posto ripete l'operazione 3

r.gasparotto marzo 2013

GREEDY per lo zaino continuo

r.gasparotto marzo 2013

Zaino 0-1: no greedy!!


La strategia golosa per il problema dello zaino 0-1, consiste nel prendere loggetto con peso specifico maggiore

r.gasparotto marzo 2013