La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.

Presentazioni simili


Presentazione sul tema: "Il problema del cammino minimo tra 2 nodi in un grafo con archi privati."— Transcript della presentazione:

1 Il problema del cammino minimo tra 2 nodi in un grafo con archi privati

2 Scenario Archi di un grafo controllati da agenti egoistici Solo l’agente 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à!)

3 Il problema dello shortest path 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 dell’arco (quindi tipo > 0); la sua valutazione è uguale al suo tipo; SCF: un vero cammino minimo in G=(V,E,tipi) tra s e t.

4 Più Formalmente Soluzioni ammissibili: F: insieme dei cammini in G da s a t Tipo dell’agente e:  e : peso dell’arco intuitivamente:  e è il costo che l’agente sostiene per utilizzare e Valutazione agente e di un cammino P  F : v e (  e,P)=  e se e  P, 0 altrimenti SCF: shortest path in G=(V,E,  ) fra s e t.

5 Come progettare un meccanismo truthful per il problema? Osservazione cruciale: la (vera) lunghezza di un cammino P è:  e  E v e (  e,P) problema utilitario! …usiamo i meccanismi VCG

6 Meccanismo VCG M= : g(r):= x*= arg min x  F  j v j (r j,x) p e (x): Per ogni arco e  E: p e =  j≠e v j (r j,g(r - e )) -  j≠e v j (r j,x*) cioè

7 Meccanismo VCG M SP = : g(r): calcola un cammino minimo P G (s,t) in G=(V,E,r) p e : Per ogni arco e  E: p e (P G (s,t))=  j≠e v j (r j,g(r - e )) -  j≠e v j (r j, P G (s,t)) cioè d G-e (s,t)-(d G (s,t)-r e ) se e  P G (s,t) 0 altrimenti  Per ogni e  P G (s,t), dobbiamo calcolare P G-e (s,t), ovvero il cammino minimo di rimpiazzo in G-e =(V,E\{e},r -e ) tra s e t pe=pe= {

8 Cammino di rimpiazzo per e s t e 2 2 3 4 5 6 5 10 5 12 P G-e (s,t) P G (s,t) quanto viene pagato e? p e =12-(11-2)=3

9 Quel è la complessità temporale del meccanismo? …dobbiamo calcolare con uno SP tra s e t …e il pagamento per gli archi selezionati …è solo una questione algoritmica!

10 Ipotesi di lavoro n=|V|, m=|E| d G (s,t): distanza in G da s a t (somma dei pesi degli archi di P G (s,t)) I nodi s,t sono 2-edge connessi: cioè, esistono in G almeno 2 cammini tra s e t che sono disgiunti sugli archi  per ogni arco e del cammino P G (s,t) che viene rimosso esiste almeno un cammino alternativo in G-e

11 …infatti, in caso contrario… Se s,t non sono 2-edge connessi, c’è almeno un arco in P G (s,t) che è un ponte (arco che rimosso spezza G in due componenti C 1 e C 2, s  C 1 e t  C 2 ) Se e è un ponte  d G-e (s,t) = ∞  Il possessore di quell’arco “tiene in pugno” il sistema: può chiedere qualsiasi cifra!

12 Una soluzione banale  e  P G (s,t) applichiamo l’algoritmo di Dijkstra al grafo G-e Complessità: k=O(n) archi per O(m + n logn): tempo O(mn + n 2 logn) Si può dimostrare il seguente: Teorema M SP è calcolabile in tempo O(m + n log n). Malik, Mitta, Gutpa, the k most vital arcs in the shortest path problem, 1989

13 Progettare un meccanismo veritiero per il problema del calcolo del cammino minimo tra due nodi nello scenario in cui un agente controlla più di un arco del grafo. Come nel caso del singolo arco, i pesi degli archi controllati dall’agente i sono privati e la valutazione di un agente rispetto a una soluzione (cammino) P è uguale alla somma dei (veri) pesi degli archi selezionati nel cammino. Esercizio

14 Meccanismi one-parameter

15 Tecniche note Un problema è utilitario quando: f(t)= arg min  i v i (t i,o) Meccanismi VCG Validi per problemi utilitari (es., MST e SP) g(r) = arg min {  i v i (r i,o) } p i (x=g(r)) =  j  i v j (r j,g(r -i )) -  j  i v j (r j,g(r)) o  F

16 Shortest Path Tree (SPT) non cooperativo Problema: broadcasting una sorgente s vuole spedire un messaggio ai nodi V\{s} Informazione posseduta dagli agenti: tempo di attraversamento dei link Obiettivo: minimizzare il tempo di consegna di ogni messaggio

17 Formulazione F: insieme alberi ricoprenti V (radicati in s) Per ogni T  F f(t)= arg min  d T (s,v) ||e|| è la molteplicità dell’arco e, intesa come numero di cammini ai quali appartiene (in T) v  V = arg min  t e ||e|| e  E(T) T  F il problema è utilitario? come è la funzione di valutazione? …dipende dalla funzione di valutazione dei giocatori …dipende da come è “usato” l’albero T

18 Protocollo multicast: una sola copia del messaggio viene spedita (eventualmente duplicata nei nodi) s T

19 Protocollo multicast: una sola copia del messaggio viene spedita (eventualmente duplicata nei nodi) s T

20 Protocollo multicast: v e (t e,T)= t e se e  E(T), 0 altrimenti  f(t)  arg min  v e (t e,T) problema non utilitario! e  E(T) T  F una sola copia del messaggio viene spedita (eventualmente duplicata nei nodi) s valutazione del giocatore rispetto a T: T

21 Come tratto i problemi non utilitari? …per problemi one-parameter uso i meccanismi one-parameter (OP)

22 Un problema è one-parameter se 1. L’informazione posseduta da ogni agente a i è un singolo parametro t i  2. La valutazione di a i ha la forma v i (t i,o)= t i w i (o), w i (o): carico di lavoro per a i in o

23 SPT non cooperativo (ogni agente controlla un arco) F: insieme alberi ricoprenti V (radicati in s) Per ogni T  F f(t)= arg min  d T (s,v) =  t e ||e|| v e (t e,T)= v e (t e,T)= t e w e (T) v  V e  E(T) tete se e  E(T) 0 altrimenti 1 se e  E(T) 0 altrimenti w e (T)= Multicast: caso non utilitario T  F

24 VCG vs OP Meccanismi VCG: valutazioni (costi) e tipi arbitrari ma problemi utilitari Meccanismi OP: funzione di scelta sociale arbitraria ma tipi a singolo- parametro e valutazioni vincolate Se un problema è utilitario e one- parameter  meccanismo (esatto) VCG e OP coincidono

25 Una proprietà interessante Un algoritmo g() per un problema OP di minimizzazione è monotono se  agente a i, w i (g(r -i,r i )) è non crescente rispetto a r i, per tutti gli r -i =(r 1,…,r i-1, r i+1,…,r N ) Definizione Notazione Scriveremo w i (r) al posto di w i (g(r)) Scriveremo p i (r) al posto di p i (g(r))

26 Teorema 1 Condizione necessaria affinché un meccanismo M= per un problema OP sia veritiero è che g(r) sia monotono. Dim (per assurdo) Supponiamo g() non monotono, e… …facciamo vedere che nessuno schema di pagamento può rendere M veritiero Se g( ٠ ) è non monotono esiste un agente a i e un vettore r -i tale che w i (r -i,r i ) è non “non crescente”…

27 1. Se t i =x e r i =t i  v i (t i,o)=x w i (r -i,x) 2. Se t i =y e r i =t i  v i (t i,o)=y w i (r -i,y) 3. Se t i =x e r i =y  a i aumenta il suo costo di A 4. Se t i =y e r i =x  a i ha un risparmio di A+k Ak xy w i (r -i,y) w i (r -i,x) w i (r -i,r i ) riri Dim (continua) costo per a i caso 3 costo per a i caso 4

28 Sia ∆p=p i (r -i,y) - p i (r -i,x) Se M è truthful deve essere: ∆p  A (altrimente quando t i =x, a i dichiara y, in quanto in tal caso il suo costo aumenta di A, e quindi se ∆p>A, la sua utilità aumenta!) ∆p ≥ A+k (altrimenti quando t i =y, a i dichiara x, in quanto in tal caso il suo costo diminuisce di A+k, e quindi se ∆p<A+k, ciò significa che il decremento nel pagamento è minore del decremento del costo, ovvero la sua utilità aumenta!) … ma k è strettamente positivo! Ak xy w i (r -i,y) w i (r -i,x) w i (r -i,r i ) riri Dim (continua) Assurdo: g( ٠ ) deve essere monotono!

29 Meccanismi one-parameter (OP) g(r): qualsiasi algoritmo monotono p i (r) = h i (r -i ) + r i w i (r) - ∫ w i (r -i,z) dz 0 riri h i (r -i ): funzione arbitraria indipendente da r i

30 Teorema 2 : Un meccanismo OP (per un problema OP) è veritiero. Dim: Facciamo vedere che l’utilità di un agente a i può solo decrescere se a i mente Siano r -i le dichiarazioni degli altri agenti Il pagamento fornito ad a i (quando dichiara r i ) è: p i (r) = h i (r -i ) + r i w i (r) - ∫ w i (r -i,z) dz 0 riri Ininfluente perché indipendente da r i pongo h i (r -i )=0

31 u i (t i,g(r -i,t i ))= p i (g(r -i,t i ))-v i (t i, g(r -i,t i ))= t i w i (g(r -i,t i ))-∫ w i (r -i,z) dz- t i w i (g(r -i,t i )) = -∫ w i (r -i,z) dz Se a i dichiara x>t i : La valutazione diventa: C = t i w i (r -i,x) il pagamento diventa: P= x w i (r -i,x) - ∫ w i (r -i,z) dz  a i sta perdendo G Dim (continua) titi w i (r -i,t i ) x w i (r -i,x) 0 titi C 0 x 0 titi G P

32 u i (t i,(r -i,t i ))= - ∫ w i (r -i,z) dz Se a i dichiara x<t i La valutazione diventa C il pagamento diventa P  a i sta perdendo G Dim (continua) titi w i (r -i,t i ) 0 titi G C P x w i (r -i,x) a i non ha convenienza a mentire!

33 Sulla funzione h i (r -i ) Un meccanismo garantisce la volontaria partecipazione (VP) se l’utilità di un qualsiasi agente (che dichiara il vero) ha sempre un utile non negativo Ma il pagamento di a i quando dichiara r i è: p i (r) = h i (r -i ) + r i w i (r) - ∫ w i (r -i,z) dz 0 riri Se scegliamo la costante h i (r -i )= ∫ w i (r -i,z) dz, 0 ∞ p i (r) = r i w i (r) + ∫ w i (r -i,z) dz riri ∞ il pagamento diventa:  L’utilità di un agente che dichiara il vero diventa: u i (t i,g(r)) = ∫ w i (r -i,z) dz ≥ 0. titi ∞

34 Meccanismi one-parameter: il problema dell’albero dei cammini minimi a sorgente singola

35 Input: un grafo G=(V,E) biconnesso sugli archi, in cui ogni arco corrisponde in modo biunivoco ad un insieme di agenti egoisti, ed un nodo sorgente s  V; il tipo di un agente è il costo di utilizzo dell’arco (quindi tipo>0); SCF: un albero dei cammini minimi radicato in s in G=(V,E,t). SPT non cooperativo (ogni agente controlla un arco)

36 SPT non utilitario Per ogni albero ricoprente T di G radicato in s, la funzione obiettivo minimizzata dalla SCF è: f(t)= arg min {  d T (s,v) =  t e ||e|| } Con protocollo multicast : v e (t e,T)= e quindi f(t)  arg min  v e (t e,T) (problema non utilitario) Ma il problema è one-parameter, in quanto v e (t e,T)= t e w e (T), ove v  V e  E(T) tete se e  E(T) 0 altrimenti 1 se e  E(T) 0 altrimenti w e (T) = TFTF TFTF eEeE

37 Meccanismo one-parameter per l’SPT non utilitario M SPT = g(r): dato il grafo e le dichiarazioni, calcola un SPT S G (s) di G=(V,E,r) utilizzando l’algoritmo di Dijkstra. p(r): per ogni arco e  E p e (r)=r e w e (r) + ∫ w e (r -e,z) dz rere ∞ così da garantire la partecipazione volontaria.

38 Truthfulness Osservazione: M SPT è truthful. La truthfulness segue dal fatto che M SPT è un meccanismo OP. Infatti, l’algoritmo di Dijkstra per il calcolo dell’SPT è monotono, in quanto il carico di lavoro per un agente a e ha sempre la forma: 1 Ө e : valore soglia Ө e è il valore tale che, fissato r -e : se a e dichiara al più Ө e, allora e è selezionato se a e dichiara più di Ө e, allora e non è selezionato L’algoritmo del meccanismo è monotono!

39 Sui pagamenti p e =0, se e non è un arco selezionato p e = Ө e, se e è nella soluzione 1 Ө e : valore soglia rere p e = r e w e (r) + ∫ w e (r -e,z) dz = r e + Ө e - r e = Ө e rere ∞ p e = r e w e (r) + ∫ w e (r -e,z) dz = 0+0 = 0 rere ∞ rere

40 Un problema è binary demand (BD) se 1. L’informazione posseduta da ogni agente a i è un singolo parametro t i  2. La valutazione di a i ha la forma v i (t i,o)= t i w i (o), w i (o)  {0,1} carico di lavoro per a i in o Un caso speciale dei problemi OP quando w i (o)=1 diremo che a i è selezionato in o

41 Un algoritmo g() per un problema BD di minimizzazione è monotono se  agente a i, e per tutti gli r -i =(r 1,…,r i-1,r i+1,…,r N ), w i (g(r -i,r i )) è della forma: Definizione 1 Ө i (r -i ) riri Ө i (r -i )  {+  }: valore soglia il pagamento per a i diventa: p i (r)= Ө i (r -i )

42 Sulle soglie Sia e=(u,v) un arco in S G (s) (u più vicino a s che v) e resta in S G (s) finché uso e per raggiungere v Allora, Ө e =d G-e (s,v)-d G (s,u) Esempio 1 1 2 3 2 6 s v u e r e =1 1 2+ε 2 3 2 6 s v u e r e = 2+ε 1 3+ε 2 3 2 6 s v u e r e = 3+ε Ө e = 3

43 Una soluzione banale  e=(u,v)  S G (s) applichiamo l’algoritmo di Dijkstra al grafo G-e e troviamo d G-e (s,v) Complessità: k=n-1 archi per O(m + n logn): O(mn + n 2 logn) time Si può dimostrare il seguente teorema: Teorema M SPT è calcolabile in tempo O(m + n log n).

44 Pensare allo scenario in cui un agente controlla più di un arco del grafo e si vuole progettare un meccanismo veritiero per calcolare un SPT. Come nel caso del singolo arco, i pesi degli archi controllati dall’agente i sono privati e la valutazione di un agente rispetto a una soluzione (albero) T è uguale alla somma dei (veri) pesi degli archi selezionati nel cammino. Possiamo usare i meccanismi VCG? E quelli OP? Esercizio


Scaricare ppt "Il problema del cammino minimo tra 2 nodi in un grafo con archi privati."

Presentazioni simili


Annunci Google