La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il problema del minimo albero ricoprente in un grafo non cooperativo.

Presentazioni simili


Presentazione sul tema: "Il problema del minimo albero ricoprente in un grafo non cooperativo."— Transcript della presentazione:

1 Il problema del minimo albero ricoprente in un grafo non cooperativo

2 Un problema molto conosciuto G=(V,E): grafo non diretto pesato, w(e) R + per ogni e E (tipo privato dellagente che possiede larco e) T è un albero ricoprente di G se: 1. T è un albero 2. T è un sottografo di G 3. T tocca tutti i nodi di G

3 Un problema molto conosciuto Input: grafo G=(V,E) pesato non orientato Output: T=(V,E T ) albero ricoprente di G che minimizza il peso totale w(T)= w(e) Miglior algoritmo centralizzato richiede tempo O(m (m,n)) e E T

4 La funzione di Ackermann (e la sua inversa)

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

6 La funzione (m,n)

7 Proprietà 1. fissato n, (m,n) monotonicamente decrescente al crescere di m 2. (n,n) per n 3. (m,n) 4 per ogni scopo pratico (m,n)= min {i>0 : A(i, m/n ) > log 2 n} 1. crescente in m

8 Proprietà 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}

9 Proprietà 3. (m,n) 4 per ogni scopo pratico 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}

10 Meccanismo VCG per il problema del MST M= g(r): dato il grafo G e le dichiarazioni r=(r 1,…,r m ), calcola il MST di G, T=(V,E T ) p e : Per ogni arco e E T p e =w(T G-e )-w(T)+ w(e) (w(e): peso riportato per e) Per ogni e T dobbiamo calcolare T G-e, ovvero il MST di rimpiazzo per e (MST in G-e =(V,E\{e})) Ipotesi di lavoro: Grafo 2-edge connesso (altrimenti T G-e potrebbe non esistere il possessore dellarco e tiene in pugno il sistema!)

11 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))!!!

12 Una soluzione un po meno banale Proprietà dei tagli di un MST: sia (V,V) un taglio in G: allora, larco di peso minimo che attraversa il taglio appartiene allMST T G-e coincide con T-e+f, dove f è larco di peso minimo che attraversa il taglio indotto dalla rimozione di e da T Controlliamo gli O(m) archi del taglio suddetto e troviamo f Complessità: n-1 archi dellMST per O(m): O(m (m,n)+mn)=O(mn)

13 Lanalisi di sensitività degli archi dellMST 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?

14 Esempio

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

16 Proprietà dei cicli G=(V,E) grafo non orientato e pesato, e larco più pesante in un qualsiasi ciclo Allora e MST(G)

17 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

18 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)

19 …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)

20 …più formalmente… Per ogni e E(T) up(e)= min f C(e) w(f) swap(e)= arg min f C(e) w(f)

21 Analisi di sensitività degli archi dellMST up(e)= e C(e)

22 Osservazioni Calcolare tutti i valori up(e) (swap(e)) vuol dire ricalcolare MST(G-e) per ogni e di T MST(G-e)=MST(G) \{e} {swap(e)} Nel meccanismo VCG il pagamento p e di un arco e della soluzione è esattamente up(e)!!

23 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))

24 Il Transmuter Dato G=(V,E) e un suo albero ricoprente T, un transmuter è un grafo diretto aciclico D che rappresenta linsieme dei cicli fondamentali di G rispetto a T, ovvero linsieme {T(f) : f arco non dellalbero} D contiene: 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 numero arbitrario di nodi ausiliari 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)

25

26 Come si costruisce il transmuter Tarjan ha mostrato come costruire un transmuter che ha O(m (m,n)) nodi 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

27 Alcuni richiami di base D=(N, A) grafo diretto ( |N|=h ) Un ordinamento topologico è un ordinamento dei nodi di D v 1, v 2, …,v h tale che: per ogni arco (v i, v j ) A, vale i < j

28 Alcuni richiami di base D=(N, A) grafo diretto 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| + |A|) (visita in profondità)

29 Calcolo degli incrementi per gli archi dellalbero 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)

30 Calcolo dei valori up(e)

31 Complessità Tempo 1. Costruzione Transmuter: O(m (m,n)) 2. Calcolo valori up(e): Trovare ordinamento topologico O(m (m,n)) Processare il transmuter in O(m (m,n)) Spazio 1. O(m (m,n))


Scaricare ppt "Il problema del minimo albero ricoprente in un grafo non cooperativo."

Presentazioni simili


Annunci Google