La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 15 - Ricerca locale Alberto Montresor Università di Trento This work is licensed under the Creative.

Presentazioni simili


Presentazione sul tema: "1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 15 - Ricerca locale Alberto Montresor Università di Trento This work is licensed under the Creative."— Transcript della presentazione:

1 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 15 - Ricerca locale Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.

2 2 © Alberto Montresor Introduzione Un approccio miope, ma talvolta efficace è quello della ricerca locale se si conosce una soluzione ammissibile (non necessariamente ottima) ad un problema di ottimizzazione, si può cercare di trovare una soluzione migliore nelle vicinanze di quella precedente. Si continua in questo modo fino a quando non si è più in grado di trovare soluzioni migliori

3 3 © Alberto Montresor Shell-sort Definizione In una sequenza di n elementi a 1,..., a n, uninversione è data da una coppia di elementi a i e a j tali che i a j. Il problema dellordinamento degli n elementi può essere formulato come problema di ottimizzazione nel modo seguente: ordinamento Data la sequenza a 1,..., a n, trovare una permutazione degli n elementi che minimizzi il numero totale di inversioni Esempio: 1,7,3,4 ha due inversioni 1,3,4,7 ha zero inversioni (è ordinata)

4 4 © Alberto Montresor Shell-sort Definizioni si supponga per semplicità che gli n elementi a 1,..., a n siano tutti distinti sia π una permutazione degli indici 1,...,n sia a π la corrispondente permutazione degli elementi. sia a π { a i } la sequenza a π dalla quale è stato tolto un generico elemento a i. Un intorno I(a π ) può essere definito come linsieme di tutte le permutazioni di a π che, a meno di un elemento a i, hanno elementi uguali nella stessa posizione relativa: Criterio di miglioramento Le sequenze di I(1,7,3,4) che diminuiscono il numero di inversioni sono 1, 3, 7, 4 e 1, 3, 4, 7

5 5 © Alberto Montresor Shell-sort Insertion sort Lavora riducendo il numero di inversioni nella sequenza originale Vantaggi Richiede pochi passi quando la sequenza è quasi ordinata (poche inversioni) Svantaggi Sposta solo elementi adiacenti fra di loro, eliminando ad ogni passo una sola inversione Shell-sort E possibile mantenere i vantaggi di Insertion Sort, eliminando gli svantaggi? Algoritmo proposto da Shell nel 1959

6 6 © Alberto Montresor Shell-sort Idea Invece di considerare elementi a distanza 1, considera elementi a distanza , 364, 121, 40, 13, 4, 1

7 7 © Alberto Montresor Shell-sort Esempio di funzionamento

8 8 © Alberto Montresor Shell-sort Alcuni commenti sulla complessità

9 9 © Alberto Montresor Shell-sort Commenti finali Valida alternativa ad algoritmi asintoticamente più efficienti per valori di n non troppo elevati Ordinamento iterativo, in loco

10 10 © Alberto Montresor Problemi di flusso Rete di flusso Una rete di flusso G = (V,E,s,p,c) è data da un grafo orientato G = (V,E), da una coppia di vertici di V detti sorgente s e pozzo p, da una funzione di capacità a valori interi positivi c:V ×V Z + {0}, tale per cui c(u,v)=0 se (u,v) E. Flusso Una funzione a valori interi f : V × V Z che soddisfa le seguenti proprietà Simmetria opposta : f(u, v) = f (v, u) per ogni coppia u, v V Vincolo di capacità : f(u, v) c(u, v) per ogni coppia u,v V Conservazione del flusso: v f(u, v) = 0 per ogni nodo u V {s, p}

11 11 © Alberto Montresor Definizioni Valore di flusso Il valore di un flusso f è la quantità di flusso uscente da s. Problema flusso massimo Data una rete G=(V,S,s,p,c), si vuole trovare un flusso f* di valore massimo:

12 12 © Alberto Montresor Definizioni Capacità residua La capacità residua di un flusso f in una rete G = (V, E, s, p, c) è una funzione r :V ×V R + {0} tale che r(u,v) = c(u,v)f(u,v). Rete residua La rete di flusso residua R=(V, E r, s, p, r) ha lo stesso insieme di nodi, la stessa sorgente e pozzo, la capacità residua r, mentre linsieme E r contiene un arco per tutte le coppie di nodi u,v tali che r(u,v) > 0 Flusso nullo Un flusso nullo è una funzione f 0 :V ×V R + {0} tale che f 0 (u,v) = 0. Somma di flussi f 1 +f 2 è una funzione tale per cui (f 1 +f 2 )(u,v) = f 1 (u)+f 2 (v)

13 13 © Alberto Montresor Definizioni Cammino aumentante Un cammino aumentante per f è un cammino da s a p in R. Capacità del cammino è uguale alla capacità più piccola tra quelle di tutti gli archi (u, v) che compaiono nel cammino Flusso aumentante Dato un cammino aumentante (u 1, u 2 ), (u 2, u 3 ),..., (u n-1, u n ) con su 1, p=u n, e la sua capacità δ, si definisce un flusso aumentante g come segue: g(u i-1, u i ) = δ, g(u i, u i-1 ) = δ g(u,v) = 0 altrimenti

14 14 © Alberto Montresor Metodo delle reti residue Idea informale 1. Si costruisce il flusso ottimo a partire da un flusso ammissibile, cercando nellintorno di questultimo. 2. Il flusso corrente f viene inizializzato con il flusso nullo f 0 3. Si ripeteno le seguenti operazioni 1. Si calcola la rete residua R= ( V,E,s,t,c f ) ottenuta dalla rete originale sostituendo la capacità residua alla capacità originale 2. Si cerca un flusso aumentante g per R 3. Si somma g ad f 4. finché g f 0

15 15 © Alberto Montresor Metodo delle reti residue

16 16 © Alberto Montresor Versione in Java

17 17 © Alberto Montresor Versione in Java

18 18 © Alberto Montresor Esempio

19 19 © Alberto Montresor Esempio

20 20 © Alberto Montresor Taglio Definizioni Un taglio (S,P) è una partizione dellinsieme dei nodi tale che s S, p P, S P =V, ed SP =. La capacità del taglio è c(S, P ) = u S,v P c(u, v). Un taglio di capacità minima è detto taglio minimo. Se f è un flusso ed (S, P) è un taglio, allora il flusso che attraversa il taglio è

21 21 © Alberto Montresor Alcune proprietà interessanti Lemma Il valore di un flusso è uguale al flusso che attraversa un qualsiasi taglio, il quale a sua volta non supera la capacità del taglio stesso, cioè che |f| = f(S,P) c(S,P) Dimostrazione: alla lavagna Teorema (flusso massimo / taglio minimo) Le condizioni seguenti sono tra loro equivalenti: 1. f è un flusso massimo 2. non esiste alcun cammino aumentante per f 3. esiste un taglio ( S,P ) tale che | f | = c(S,P ) Dimostrazione: alla lavagna

22 22 © Alberto Montresor Alcune varianti Ford-Fulkerson (1956) Si trova un cammino aumentante utilizzando un qualunque algoritmo di visita Assume che la capacità siano intere Ogni cammino aumentante aumenta il flusso di almeno 1 Complessità: O (| f *| ( m + n )) (valore del flusso massimo × costo di una visita) Edmonds-Karp (1972) Basato su visite in ampiezza Complessità: O ( nm 2 ) Nota: caso particolare di Ford-Fulkerson, vale il limite superiore più stretto Algoritmo dei tre indiani (Kumar, Malhotra, Maheswari, 1978) Complessità: O ( n 3 )


Scaricare ppt "1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 15 - Ricerca locale Alberto Montresor Università di Trento This work is licensed under the Creative."

Presentazioni simili


Annunci Google