La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il problema del minimo albero ricoprente in un grafo con archi privati.

Presentazioni simili


Presentazione sul tema: "Il problema del minimo albero ricoprente in un grafo con archi privati."— Transcript della presentazione:

1 Il problema del minimo albero ricoprente in un grafo con archi privati

2 Un problema molto noto… INPUT: G=(V,E): grafo non diretto pesato, w(e) R + per ogni e E T è un albero ricoprente di G se: 1. T è un albero 2. T è un sottografo di G 3. T contiene tutti i nodi di G OUTPUT: T=(V,E T ) minimo albero ricoprente di G, ovvero che minimizza il peso totale w(T)= w(e) Miglior algoritmo centralizzato richiede tempo O(m (m,n)) e E T

3 La funzione di Ackermann A(i,j) e la sua inversa (m,n)

4 A(i,j) per piccoli valori di i e j j=1 j=2 j=3 j=4 i=1 i=2 i=3

5 La funzione (m,n)

6 Proprietà 1. Fissato n, (m,n) è monotonicamente decrescente al crescere di m (m,n)= min {i>0 : A(i, m/n ) > log 2 n} crescente in m 2. (n,n) per n (n,n)= min {i>0 : A(i, n/n ) > log 2 n} = min {i>0 : A(i, 1) > log 2 n}

7 (m,n) 4 per ogni scopo pratico (cioè per valori di n ragionevoli) A(4, m/n ) A(4,1) = A(3,2) = >> numero stimato di atomi nelluniverso osservabile (m,n)= min {i>0 : A(i, m/n ) > log 2 n} Osservazione quindi (m,n) 4 per ogni n<

8 Il problema del MSTegoistico Input: un grafo G=(V,E) biconnesso sugli archi, in cui ogni arco corrisponde in modo biunivoco ad un insieme di agenti egoisti; il tipo di un agente è il costo di utilizzo dellarco (quindi tipo > 0); la sua valutazione è uguale al suo tipo; SCF: un vero MST di G=(V,E,t).

9 Meccanismo VCG Il problema è utilitario VCG-mechanism M= : g(r): dato il grafo G e le dichiarazioni r=(r 1,…,r m ), calcola il MST T=(V,E T ) di G=(V,E,r) p e : Per ogni arco e E, p e = je v j (r j,x(r - e )) - je v j (r j,x) cioè p e =w(T G-e )-w(T)+ r e se e E T, p e =0altrimenti. Per ogni e T dobbiamo calcolare T G-e, ovvero il MST di rimpiazzo per e (MST in G-e =(V,E\{e},r -e )) Ipotesi di lavoro: Grafo 2-edge connesso (altrimenti T G-e potrebbe non esistere il possessore dellarco e terrebbe in pugno il sistema!)

10 Una soluzione banale e T applichiamo lalgoritmo di calcolo dellMST al grafo G-e Complessità: n-1 archi dellMST per O(m (m,n)): O(nm (m,n)) La soluzione efficiente che proponiamo costerà ancora O(m (m,n))!!!

11 Un problema correlato: lanalisi di sensitività degli archi di un MST Input grafo G=(V,E) pesato non orientato T=(V,E T ) minimo albero ricoprente di G Domanda quanto possono aumentare i pesi w(e) ( e T) prima di inficiare la minimalità di T?

12 Esempio

13 Notazioni G=(V,E), T albero ricoprente di G. Definiamo: Per ogni f=(x,y) E\E(T) T(f): (unico) cammino semplice in T che unisce x e y Per ogni e E(T) C(e)={f E\E(T): e T(f)}

14 Dim (per assurdo): Sia e larco più pesante in un ciclo C={e } P, e supponiamo e T e e T T=T \ {e} {e} w(e) < w(e) w(T) < w(T) T non è MST(G) X V\X P Proprietà dei cicli Teorema: Sia G=(V,E) un grafo non orientato e pesato, sia e larco più pesante di un qualsiasi ciclo in G. Allora e MST(G)

15 Condizione di minimalità di un MST Corollario G=(V,E) grafo non diretto, connesso, pesato T albero ricoprente di G. allora T è minimo se e soltanto se per ogni arco f non dellalbero vale: w(f) w(e) per ogni e in T(f)

16 …quindi… Se e è un arco dellMST, esso rimane minimo finché w(e) non cresce oltre w(f), dove f è larco più leggero che forma un ciclo con e (f è chiamato arco di swap per e); chiamiamo tale valore up(e) Più formalmente, per ogni e E(T) up(e)= min f C(e) w(f) swap(e)= arg min f C(e) w(f)

17 Analisi di sensitività degli archi del MST up(e)= e C(e)

18 Osservazione Calcolare tutti i valori up(e) è equivalente a calcolare il peso di un MST di G-e per ogni e di T; infatti w(T G-e )=w(T)-w(e)+up(e) Nel meccanismo VCG il pagamento p e di un arco e della soluzione è esattamente pari ad up(e)!!

19 Idea dellalgoritmo efficiente Per ogni e E(T) guardare efficientemente tutti gli archi che formano un ciclo con e e prendere il minimo (up(e))

20 Il Transmuter Dato G=(V,E) e un suo albero ricoprente T, un transmuter è un grafo diretto aciclico D che rappresenta in modo compatto linsieme dei cicli fondamentali di G rispetto a T, ovvero linsieme {T(f) : f arco non dellalbero} D conterrà: 1. Una sorgente (nodo con grado entrante nullo) s(e) per ogni arco e di T 2. Un pozzo (nodo con grado uscente nullo) t(f) per ogni arco f non in T 3. Un certo numero di nodi ausiliari con grado entrante pari a 2 e grado uscente diverso da zero. Proprietà fondamentale: cè un cammino in D da una data sorgente s(e) a un pozzo t(f) se e solo se e T(f)

21 Un esempio

22 Come si costruisce un transmuter Tarjan ha mostrato che ad ogni albero ricoprente di un grafo può essere associato un transmuter con O(m (m,n)) nodi ed archi, il quale può essere calcolato in tempo O(m (m,n)) La costruzione è unestensione delle tecniche usate per mantenere efficientemente insiemi di foreste disgiunte sottoposte a operazioni di LINK e operazioni di EVAL R. E. Tarjan, Application of path compression on balanced trees, J. ACM 26 (1979) pp

23 Ordinamento topologico D=(N,A) grafo diretto. Un ordinamento topologico di D è un ordinamento v 1, v 2, …,v n dei nodi tale che per ogni arco (v i, v j ) A, vale i < j. D ammette un ordinamento topologico se e solo se D è un DAG (grafo diretto aciclico). Un ordinamento topologico dei nodi può essere trovato (se esiste) in tempo O(n+m).

24 Calcolo degli incrementi per gli archi dellalbero Ordiniamo topologicamente il transmuter (che è un DAG) Etichettiamo ogni nodo del transmuter con un valore reale processando i nodi in ordine topologico inverso: Etichettiamo ogni pozzo t(f) con il valore w(f) (associamo al valore anche larco f ) Etichettiamo ogni nodo v che non è un pozzo con il valore minimo fra i valori dei suoi (immediati) successori Quando tutti i nodi sono etichettati ogni sorgente s(e) è etichettata con il valore up(e) (e relativo arco di swap)

25 Calcolo dei valori up(e)

26 Complessità temporale 1. Costruzione Transmuter: O(m (m,n)) 2. Calcolo valori up(e): Trovare lordinamento topologico: O(m (m,n)) Processare il transmuter: O(m (m,n))

27 Complessità computazionale del VCG Teorema Il meccanismo VCG per il problema del MST può essere implementato in tempo O(m (m,n)). Dim Complessità di g( ٠ ): O(m (m,n)) Complessità di p( ٠ ): calcolo tutti i valori up(e) in tempo O(m (m,n)).


Scaricare ppt "Il problema del minimo albero ricoprente in un grafo con archi privati."

Presentazioni simili


Annunci Google