Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAndrea Pinto Modificato 9 anni fa
1
Meccanismi one-parameter: il problema dell’albero dei cammini minimi a sorgente singola
2
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)
3
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 unicast : 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)= TFTF TFTF eEeE
4
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(x): per ogni arco e E p e =r e w e (r) + ∫ w e (r -e,z) dz rere ∞ così da garantire la partecipazione volontaria.
5
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!
6
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
7
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
8
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 La soluzione che proponiamo costerà: O(m + n logn) time
9
Definizione di Ө e s d G-e (s,v)= min {d G (s,x)+w(f)+d G (y,v)} f=(x,y) C(e) x y u v e f ove w(f) denota il peso dichiarato per l’arco f
10
Calcolare d G-e (r,v) (e quindi Ө e ) vuol dire individuare l’arco f * tale che: Definizione di Ө e f * = arg min {d G (s,x)+w(f)+d G (y,v)} f=(x,y) C(e) = arg min {d G (s,x)+w(f)+d G (y,v)+d G (s,v)} f=(x,y) C(e) Perché d G (s,v) non dipende da f lo chiamo k(f) Osservazione: k(f) è un valore univocamente associato all’arco f: vale per tutti gli archi di S G (s) che formano un ciclo con f. = arg min {d G (s,x)+w(f)+d G (s,y)} f=(x,y) C(e)
11
Calcolo delle soglie Costruiamo il transmuter (rispetto a S G (s) ) Eseguiamo l’algoritmo (analisi di sensitività) per il calcolo dei valori up(e) etichettando i nodi pozzo t(f) con i valori k(f) (invece che w(f)) Ogni arco e S G (s) riceverà il suo valore miglior valore k(f * ) Ө e = (k(f * )-d G (s,v)) - d G (s,u) Complessità temporale: O(m (m,n)) d G-e (s,v )
12
Teorema M SPT è calcolabile in tempo O(m + n log n). Dim.: Complessità di g( ٠ ): O(m + n log n) (Dijkstra con Heap di Fibonacci) Calcolare tutti i pagamenti costa: O(m (m,n))=O(m + n log n) perché (m,n) costante quando m= (n log log n) Complessità del meccanismo
13
Approfondimento Progettare un meccanismo one-parameter per il calcolo dell’SPT modello unicast radicato in s del seguente grafo:
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.