Strumenti della Teoria dei Giochi per l’Informatica A.A. 2009/10 Lecture 21: 31 Maggio 2010 Aste Combinatoriali Docente Vincenzo Auletta Note redatte da: Davide Armidoro Abstract In questa lezione tratteremo il problema delle Aste Combinatoriali (Combinatorial Auction). Definiremo il problema e mostreremo la sua difficoltà anche rispetto ad un algoritmo di approssimazione. Parleremo, quindi, di una versione particolare del problema, in cui il dominio è a singolo parametro e per il quale è possibile fornire un algoritmo di approssimazione greedy, polinomiale e monotono. 1 Introduzione al problema Le Aste Combinatoriali rappresentano uno dei problemi fondamentali, se non il principale, nel campo del Mechanism Design e hanno svariate applicazioni. Questo tipo di problema, a differenza di quelli studiati fino ad ora presenta un dominio Multi-Dimensional; vale a dire che il meccanismo, per calcolare il benessere sociale, ha bisogno di conoscere le valutazioni di ogni agente per ogni possibile soluzione. Negli esempi visti nelle lezioni precedenti, invece, ogni agente aveva un numero limitato di valori privati a partire dai quali era possibile calcolare il vettore delle valutazioni. Per esempio, nell’asta di Vickrey c’era un singolo oggetto in vendita ed il giocatore riferiva al meccanismo soltanto la sua valutazione dell’oggetto. Nel problema delle Aste Combinatoriali, invece, il giocatore dovrà fornire in input al meccanismo l’intero vettore contenente le valutazioni per tutti i sottoinsiemi possibili degli oggetti messi in vendita che potrebbero essere assegnati al giocatore. Definizione del problema. Passiamo subito a definire il problema: abbiamo un insieme di m oggetti in vendita, che indichiamo con 1, 2, · · · , m, e n acquirenti (in questo caso gli agenti). Ogni agente è interessato ad acquistare un sottoinsieme degli oggetti ed ha una propria funzione di valutazione, che descrive in termini quantitativi quanto l’agente è interessato ad ogni sottoinsieme di oggetti. Formalmente, per ogni i = 1, 2, · · · , n abbiamo una funzione di valutazione vi : 2m → < tale che per ogni sottoinsieme di oggetti S, vi (S) è la massima cifra che l’agente i è disposto a spendere per acquistare l’insieme S. E’ importante sottolineare, per capire appieno la definizione di queste funzioni di valutazione, che il valore di un insieme di oggetti non deve essere necessariamente uguale alla somma dei valori dei singoli oggetti del sottoinsieme. La funzione di scelta sociale f prende in input le valutazioni di tutti i giocatori, calcola un’allocazione degli oggetti agli agenti e restituisce i sottoinsiemi di oggetti assegnati ad ogni giocatore. Quindi f (v1 , · · · , vn ) = (S1 , · · · , Sn ) dove ogni Si rappresenta il sottoinsieme di oggetti acquistati dall’agente i e ∀i, j Si ∩ Sj = ∅. 1 2 Lecture 21: Aste Combinatoriali Il nostro scopo è riuscire a trovare una funzione di scelta sociale che massimizza la somma delle valutazioni dei vari giocatori X f (v1 · · · vn ) = max vi (Si ). S i Difficoltà del problema. Notiamo che, essendo il dominio del problema Multi-Dimensional e unrestricted, vale il teorema di Roberts e quindi per sperare di poter implementare questa funzione di scelta sociale dobbiamo mostrare che è un massimizzatore affine, cioè una funzione del tipo X α + max wi vi (a). a∈A i Ovviamente, la nostra funzione di scelta sociale soddisfa questa condizione per α = 0 e i pesi wi = 1 e quindi la nostra funzione di scelta sociale è implementabile tramite un meccanismo VCG. Il problema sembrerebbe risolto, ma sorgono tre difficoltà: • il problema dell’Asta Combinatoriale è notoriamente NP-Hard (simile al problema SET1 COVER). Si potrebbe approssimare la soluzione ad un fattore pari a m 2 − solo che poi diventa impossibile utilizzare i meccanismi VGC; • oltre a far parte della categoria NP-Hard, il problema presenta anche un input di taglia esponenziale perchè il dominio delle funzioni di valutazione vi ha dimensione 2m ; • il terzo ed ultimo problema è rappresentato dagli agenti che naturalmente risultano essere strategici, quindi bisogna fare in modo da convincerli a dire la verità sulle valutazioni dei sottoinsiemi di oggetti. In poche parole bisogna rendere il meccanismo Compatibile agli Incentivi. In questa lezione tralasceremo il problema della taglia esponenziale dell’input e considereremo solo una versione particolare del problema in cui il dominio ha dimensione piccola (per l’esattezza 2). 2 Soluzione Single Minded Bidders Supponiamo che ogni agente i sia interessato ad un solo insieme di oggetti Si∗ (agenti che soddisfano questa condizione sono detti Single-Minded). Per questo tipo particolare di agenti il vettore di valutazione diventa vi (Si∗ ) Si∗ ⊂ Si ∀i vi (Si ) = 0 altrimenti In pratica è come dire che ad ogni giocatore i interessa solo il sottoinsieme di oggetti Si∗ . Naturalmente, potrebbe accadere che il meccanismo gli assegni un sottoinsieme contenente più oggetti di quelli che l’agente valuta positivamente, in questo caso l’agente accetta tutto il sottoinsieme solo nel caso in cui gli oggetti in più non gli vengano fatti pagare. Adesso il problema non è più Multi-Dimensional perchè lo abbiamo trasformato in un problema Two-Parameters dato che l’agente dovrà dichiarare al meccanismo solo la coppia di valori (Si∗ , vi (Si∗ ). L’ultimo problema che ci resta da risolvere è quello di convincere i giocatori a non barare. Dobbiamo progettare un meccanismo compatibile agli incentivi tale che ∀i vi (f (Si∗ , S−i )) − Pi (Si∗ , S−i ) ≥ vi (f (Si0 , S−i )) − Pi (Si0 , S−i ) ∀S 0 6= Si∗ . Lecture 21: Aste Combinatoriali 3 Poichè la nostra funzione di scelta sociale è di tipo utilitaristico e, quindi, è possibile costruire un meccanismo Compatibile agli Incentivi di tipo VCG. Tuttavia, abbiamo visto che calcolare l’allocazione ottima degli oggetti ai vari giocatori è NP-Hard e non è possibile usare algoritmi approssimati in VCG. E’ possibile però far vedere che per questo specifico problema esiste √ un meccanismo polinomiale (che non utilizza VCG) Compatibile agli Incentivi ed è O( m)approssimato. Lemma 1 Un meccanismo M per agenti Single-Minded è Compatibile agli Incentivi se e solo se rispetta le seguenti due proprietà: Monotonicità : se i vince dichiarando (Si∗ , vi∗ ) allora deve vincere anche se dichiara (Si0 , vi0 ) dove Si0 ⊆ Si∗ e vi0 ≥ vi∗ ; Valore Critico : ogni agente che vince paga il costo della più piccola offerta che gli permetterebbe di vincere l’asta. Proof. (⇐): Faremo vedere solo che le due proprietà sono sufficienti per ottenere un meccanismo Compatibile agli Incentivi nel caso di agenti Single-Minded. Come prima cosa osserviamo che un giocatore non potrà mai ricevere un’utilità negativa: o perderà e pagherà zero, o vincerà e pagherà il suo valore critico. Adesso faremo vedere che un agente non può mai aumentare la sua utilità dichiarando una coppia (S 0 , v 0 ) al posto dei suoi veri valori segreti (S, v). Se (S 0 , v 0 ) è una dichiarazione perdente oppure se S 0 non contiene S, allora questa dichiarazione produce utilità nulla e quindi dichiarare (S, v) non può certo produrre un’utilità peggiore. Quindi, assumeremo che (S 0 , v 0 ) sia una dichiarazione vincente e che S 0 ⊇ S. Dobbiamo far vedere che l’agente non ci perderà nulla dichiarando (S, v 0 ) al posto di (S 0 , v 0 ). Denotiamo con p0 i pagamenti calcolati dal meccanismo rispetto alla dichiarazione (S 0 , v 0 ), e con p quelli prodotti rispetto alla dichiarazione (S, v 0 ). Per ogni x < p, l’offerta (S, x) perderà perchè p è il valore critico. Dalla monotonicità, (S 0 , x) sarà un’offerta perdente per ogni x < p, e quindi il valore critico p0 è ≥ p. Da questo segue che dichiarando (S, v 0 ) al posto di (S 0 , v 0 ) i giocatori continueranno a vincere e i loro pagamenti non aumenteranno. Vediamo adesso che non conviene mentire sul valore della v. Se (S, v) è una dichiarazione vincente allora per v 0 > p il giocatore continuerà a vincere con lo stesso pagamento senza avere nessun guadagno aggiuntivo; invece per v 0 < p il giocatore perderà ed avrà utilità nulla. Mentre se (S, v) è una dichiarazione perdente allora v è minore del valore critico e per qualsiasi dichiarazione vincente il giocatore si troverà a pagare una cifra (valore critico) più alta della sua vera valutazione. 3 Algoritmo Greedy per agenti Single-Mindend In questa sezione mostreremo un algoritmo greedy per il problema delle Aste Combinatoriali con agenti Single-Minded che rispetta le condizioni del Lemma 1. Osserviamo che gli argomenti di questa sezione sono indipendenti dalla Teoria dei Gioche poichè abbiamo ridotto il problema ad una questione prettamente algoritmica: dobbiamo trovare un algoritmo per SET-COVER che rispetti le due proprietà enunciate nel Lemma 1. Algoritmo Greedy per agenti Single-Mindend v∗ - ordina i giocatori in maniera decrescente rispetto alla quantità |Si∗ | che rappresenta il valore medio di ogni o i - poni W = ∅ (W conterrà gli indici dei giocatori che vinceranno l’asta.) - for i = 1 to n 4 Lecture 21: Aste Combinatoriali - for i = 1 - S if Si∗ ∩ ( j∈W Sj∗ ) = ∅ W = W ∪ {i} to n if i 6∈ W Pi = 0 else √ - return W ; Pi = vj∗ · |Sj∗ | |Si∗ | In questo caso l’indice j che compare nella formula dei pagamenti dell’algoritmo rappresenta l’indice del primo giocatore scartato a causa del giocatore i, cioè quello per cui Si ∩ Sj 6= ∅. Naturalmente, se un tale j non esistesse allora risulterebbe pi = 0. Osserviamo che l’algoritmo è polinomiale (O(n2 )) e rispetta la monotonicità grazie all’ordinamento effettuato inizialmente dall’algoritmo. Non ci rimane, quindi, nient’altro che calcolarne l’approssimazione. X X Lemma 1 Sia OP T una soluzione al problema che massimizza vi∗ allora vi∗ ≤ √ i∈OP T m· X i∈OP T vi∗ i∈W Proof. ∀i ∈ W indichiamo con OP Ti = {j ∈ OP T, j ≥ i : Si∗ ∩ Sj∗ 6= ∅} l’insieme degli elementi [ in OP T incompatibili con i. Chiaramente, OP T ⊆ OP Ti e quindi è sufficiente provare che i∈W X ∀i vj∗ ≤ √ m · vi∗ . j∈OP Ti Osserviamo che j ∈ OP Ti allora vj∗ v∗ q ≤pi∗ |Si | |Sj∗ | e quindi q |Sj∗ | ∗ ∗ vj ≤ vi · p ∗ . |Si | Sommando su tutti gli elementi di OP Tj otteniamo che X q X v∗ |Sj∗ | vj∗ ≤ p i ∗ · |Si | j∈OP T j∈OP Ti i s X p vi∗ |Sj | (Dis. Cauchy-Schwartz) ≤ p ∗ · |OP Ti | · |Si | j∈OP Ti s X ∗ v ≤ p i ∗ · |Si∗ | · |Sj | (perchè |OP Ti | ≤ |Si |) |Si | j∈OP T i vi∗ p ∗ · |Si∗ | · |Si | √ ≤ vi∗ · m. ≤ √ m ( perchè X |Si | ≤ m) j∈OP Ti Abbiamo quindi dimostrato che il nostro algoritmo Greedy ha un fattore di approssimazione √ pari a m.