Il problema del minimo albero ricoprente in un grafo con archi privati - PowerPoint PPT Presentation

1 / 47
About This Presentation
Title:

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

Description:

Il problema del minimum spanning tree (MST ... {m/n,2} d-heaps (Johnson 1975) 1976: Cheriton e Tarjan O(m log logd n) Mergeable leftist heaps di Crane ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 48
Provided by: Lucia166
Category:

less

Transcript and Presenter's Notes

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


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
  • T è un albero
  • T è un sottografo di G
  • T contiene tutti i nodi di G
  • OUTPUT T(V,ET) minimo albero ricoprente di G,
    ovvero che minimizza il peso totale w(T)? w(e)

e ? ET
3
Scenario
  • Archi di un grafo controllati da agenti egoistici
  • Solo lagente conosce il peso associato al
    proprio arco
  • Obiettivo calcolare una buona soluzione di un
    certo problema di ottimizzazione rispetto a pesi
    reali
  • Strumento progettazione di un meccanismo
    truthful (pagamento opportuno degli agenti per
    convincerli a dire la verità!)

4
Il problema del minimum spanning tree (MST)
egoistico
  • Input un grafo G(V,E), ogni arco è un agente
    egoistico, un nodo sorgente s e un nodo
    destinazione t il tipo di un agente è il costo
    di utilizzo dellarco (quindi tipo gt 0) la sua
    valutazione è uguale al suo tipo
  • SCF un vero MST di G(V,E,tipi).

5
Più Formalmente
  • Soluzioni ammissibili
  • F insieme degli alberi ricoprenti di G
  • Tipo dellagente e
  • ?e peso dellarco
  • intuitivamente ?e è il costo che lagente
    sostiene per utilizzare e
  • Valutazione agente e di un albero ricoprente T?F
  • ve(?e,T) ?e se e?E(T), 0 altrimenti
  • SCF minimo albero ricoprente di G(V,E,?)

6
Come progettare un meccanismo truthful per il
problema?
Osservazione cruciale il (vero) peso di un
albero ricoprente T è
?e?E ve(?e,T)
problema utilitario!
usiamo i meccanismi VCG
7
Meccanismo VCG
  • M ltg(r), p(x)gt
  • g(r) arg minx?F ?j vj(rj,x)
  • pe(x) Per ogni arco e?E
  • pe ?j?e vj(rj,g(r-e)) -?j?e vj(rj,x) cioè

8
Meccanismo VCG
  • M ltg(r), p(x)gt
  • g(r) dato il grafo G e le dichiarazioni
    r(r1,,rm), calcola il MST T(V,ET) di G(V,E,r)
  • pe Per ogni arco e ? E, pe ?j?e vj(rj,x(r-e))
    -?j?e vj(rj,x) cioè
  • pew(TG-e)-w(T) re se e?ET,
  • pe0 altrimenti.
  • dove TG-e è il MST di rimpiazzo per e (MST di
    G-e(V,E\e,r-e))

Ipotesi di lavoro Grafo 2-edge connesso
(altrimenti TG-e potrebbe non esistere ? il
possessore dellarco e terrebbe in pugno il
sistema!)
9
Quel è la complessità temporale del meccanismo?
dobbiamo calcolare con un MST di G
Miglior algoritmo centralizzato richiede tempo
O(m ?(m,n))
e il pagamento per gli archi selezionati
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
La funzione di Ackermann A(i,j) e la sua inversa
?(m,n)
12
A(i,j) per piccoli valori di i e j
j1 j2 j3 j4
24
23
22
i1
2
2
2
2
2
i2
22
22
2
2
22
22
2
.
16
.
2
2
2
16
2
.
.
.
.
2
2
2
2
2
.
.
.
16
2
2
.
.
.
.
.
2
22
i3
22
22
22
13
La funzione ?(m,n)
14
Proprietà
  1. Fissato n, ?(m,n) è monotonicamente decrescente
    al crescere di m

?(m,n) min igt0 A(i, ?m/n?) gt log2 n
crescente in m
  1. ?(n,n) ? ? per n ? ?

?(n,n) min igt0 A(i, ?n/n?) gt log2 n
min igt0 A(i, 1) gt log2 n
? ?
15
Osservazione
  • ?(m,n) ? 4 per ogni scopo pratico (cioè per
    valori di n ragionevoli)

?(m,n) min igt0 A(i, ?m/n?) gt log2 n
A(4,?m/n?)
? A(4,1)
A(3,2)
2
.
16
.
.
22
? numero stimato di atomi nelluniverso
osservabile
gtgt 1080
? quindi ?(m,n) ? 4 per ogni nlt21080
16
Un po di storia
  • 1926 Boruvka
  • riscoperto da
  • Choquete, 1938
  • Florek et. al., 1951
  • Sollin, 1961 (larticolo di Boruvka era ormai
    conosciuto!)
  • 1930 Jarnìk
  • riscoperto da
  • Prim, 1957
  • Dijkstra, 1959
  • 1956 Kruskal
  • riscoperto da
  • Loberman e Weinberg, 1956, qualche mese dopo

e le complessità temporali di questi algoritmi?
raramente menzionate negli articoli
Esempi Quick Sort è del 61, Hoare Heap binari
del 64, Williams
17
Complessità temporali
  • 1975 Yao - O(m loglogn)
  • linear time selection di Blum et al. (1972)
  • 1975 Johnson O(m logd n)
  • dmaxm/n,2
  • d-heaps (Johnson 1975)
  • 1976 Cheriton e Tarjan O(m log logd n)
  • Mergeable leftist heaps di Crane (1972)
  • 1984 Fredman e Tarjan O(m log(m,n))
  • Heap di Fibonacci di Fredman e Tarjan (1984)
  • 1986 Gabow, Galil, Spencer, Tarjan
    O(mloglog(m,n))
  • Usando meglio gli heap di Fibonacci

log(m,n) 1logn-log(m/n)
tutti usano un approccio greedy
18
Perché lapproccio greedy una proprietà forte
  • Dato G(V,E), grafo non orientato
  • F F?E F non contiene cicli
  • (E, F ) matrioide grafico

19
Complessità temporali
  • 1997 Chazelle - O(m ?(m,n) log ?(m,n))
  • Soft-heap di Chazelle (1997)
  • 2000 Chazelle O(m ?(m,n))
  • Miglior uso dei Soft-heap
  • 2002 Pettie e Ramachandran O(MST(m,n))
  • dove MST(m,n) complessità dellalbero di
    decisione del problema del minimo albero
    ricoprente (numero minimo di confronti nel caso
    peggiore)
  • MST(m,n) O(m ?(m,n)) e MST(m,n) ?(m)

20
Un problema aperto
?
  • MST(m,n) O(m)

21
Un problema correlato verifica di un MST
  • Input grafo G(V,E) pesato non orientato,
    T(V,ET) albero ricoprente di G
  • Domanda T è un MST per G?

22
Verifica di un MST
4
11
13
6
5
8
10
2
1
3
7
9
23
Un altro problema correlato lanalisi di
sensitività degli archi di un MST
  • Input
  • grafo G(V,E) pesato non orientato
  • T(V,ET) minimo albero ricoprente di G
  • Domanda
  • quanto possono aumentare i pesi w(e) (?e ? E)
    prima di inficiare la minimalità di T?

24
Esempio arco non in T
4
11
13
6
6
10
8
10
2
1
3
7
9
25
Esempio arco in T
4
11
10
13
6
8
8
10
2
1
3
7
9
26
Sulla complessità dei problemi
riduce linearmente
riduce linearmente
calcolo MST
analisi di sensitività
Verifica
  • ?(m) e
  • O(m ?(m,n))

O(m)
O(m log?(m,n))
27
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)

28
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)
  • Dim (per assurdo) Sia e larco più pesante in un
    ciclo Ce ?P, e supponiamo e ? T

X
TT \ e ? e
P
w(e) lt w(e) ? w(T) lt w(T)
e
e ? T
T non è MST(G)
V\X
29
Proprietà dei tagli
  • G(V,E) grafo non orientato e pesato
  • X ? V un qualsiasi sottoinsieme di vertici
  • e arco più leggero che attraversa il taglio
    (X,V\X),
  • allora
  • e ? MST(G)

30
  • Dim
  • Sia e larco più leggero del taglio (X,V\X). Sia
    TMST(G), e supponiamo e ? T, facciamo vedere che
    T ? MST(G)

e arco più leggero del taglio
V\X
X
T(e) cammino in T che unisce gli estremi di e
e
TT \ e ? e
T(e)
w(e) lt w(e) ? w(T) lt w(T)
e
T non è MST(G)
31
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)

32
quindi
  • Se f è un arco non dellalbero
  • T rimane minimo finché w(f) non scende sotto
    w(e), dove e è larco più pesante in T(f)
    chiamiamo tale valore down(f)
  • Se e è un arco dellalbero
  • T rimane minimo finché w(e) non cresce oltre
    w(f), dove f è larco più leggero tale che e ?
    T(f) (f è chiamato arco di swap per e) chiamiamo
    tale valore up(e)

33
più formalmente
  • Fare analisi di sensitività vuol dire calcolare
  • Per ogni f ? E\E(T)
  • down(f ) maxe ? T(f) w(e)
  • Per ogni e ? E(T)
  • up(e) minf ? C(e) w(f)
  • swap(e) arg minf ? C(e) w(f)

34
Analisi di sensitività
T(f)
4
11
13
6
down(f)6
10
8
f
10
2
1
3
7
9
35
Analisi di sensitività degli archi del MST
4
11
C(e)
10
13
6
up(e)8
e
8
10
2
1
3
7
9
36
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(TG-e)w(T)-w(e)up(e)
  • ? Nel meccanismo VCG il pagamento pe di un arco e
    della soluzione è esattamente pari ad up(e)!!

37
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))
  • Per ogni f? E\E(T) guardare efficientemente
    tutti gli archi in T(f) e prendere il massimo
    (down(e))

38
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à
  • Una sorgente (nodo con grado entrante nullo) s(e)
    per ogni arco e di T
  • Un pozzo (nodo con grado uscente nullo) t(f) per
    ogni arco f non in T
  • 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)

39
Un esempio
40
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 690-715

41
Ordinamento topologico
  • D(N,A) grafo diretto. Un ordinamento topologico
    di D è un ordinamento v1, v2, ,vn dei nodi tale
    che per ogni arco (vi, vj)? A, vale i lt 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(nm).

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

43
Calcolo dei valori up(e)
2
7
8
5
6
9
3
6
4
11
9
10
7
7
6
6
10
9
7
6
10
7
6
11
8
9
10
44
Calcolo dei decrementi per gli archi non
dellalbero
  • Etichettiamo ogni nodo del transmuter con un
    valore reale processando i nodi in ordine
    topologico
  • Etichettiamo ogni sorgente s(e) con il valore
    w(e) (associamo al valore anche larco e)
  • Etichettiamo ogni nodo v che non è una sorgente
    con il valore massimo fra i valori dei suoi
    (immediati) predecessori
  • Quando tutti i nodi sono etichettati ogni pozzo
    t(f) è etichettato con il valore down(f)

45
Calcolo dei valori down(f)
2
7
8
5
6
9
3
6
4
11
9
10
2
6
5
3
9
4
6
5
9
6
5
9
6
6
9
46
Complessità temporale
  • Costruzione Transmuter O(m ?(m,n))
  • Calcolo valori up(e) e down(f)
  • Trovare lordinamento topologico O(m ?(m,n))
  • Processare il transmuter O(m ?(m,n))

47
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)).
Write a Comment
User Comments (0)
About PowerShow.com