This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Algoritmi e Strutture DatiCapitolo 15 - Ricerca locale
Alberto MontresorUniversità di Trento
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.
✦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
✦si supponga per semplicità che gli n elementi a1, ..., an siano tutti distinti
✦sia π una permutazione degli indici 1,...,n
✦sia aπ la corrispondente permutazione degli elementi.
✦sia aπ − {ai} la sequenza aπ dalla quale è stato tolto un generico elemento ai.
✦Un intorno I(aπ) può essere definito come l’insieme di tutte le permutazioni di aπ che, a meno di un elemento ai, 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
✦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}
✦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, Er, s, p, r) ha lo stesso insieme di nodi, la stessa sorgente e pozzo, la capacità residua r, mentre l’insieme Er contiene un arco per tutte le coppie di nodi u,v tali che r(u,v) > 0
✦Flusso nullo
✦Un flusso nullo è una funzione f0 :V ×V →R+ ∪{0} tale che f0(u,v) = 0.
✦Somma di flussi
✦f1+f2 è una funzione tale per cui (f1+f2)(u,v) = f1(u)+f2(v)
✦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✦ non esiste alcun cammino aumentante per f ✦ esiste un taglio (S,P) tale che |f| = c(S,P)