Sei sulla pagina 1di 30

Roberto Lucchetti, Monica Salvioli

Introduzione alla Teoria dei Giochi

Prima versione
3
La teoria cooperativa

È evidente che la teoria introdotta nel capitolo precedente non è suffi-


ciente per descrivere tutte le situazioni che prevedono l’interazione tra
agenti razionali. Ci sono infatti molte situazioni della vita quotidiana che
possono essere descritte come giochi nei quali i giocatori possono avere
un interesse comune ad un accordo, che non violi i presupposti della ra-
zionalità.
Pensiamo per esempio a un problema di contrattazione. Vedo su una
bancarella un cappello che mi piace davvero tanto, ma è un po’ trop-
po costoso. Il venditore però è disposto a farmi uno sconto. È chiaro
che abbiamo un interesse comune: concludere l’affare. Vediamo un altro
esempio. Sono a una festa e decido di chiamare un taxi per tornare a
casa. Anche i miei amici Giulia e Luca stanno cercando un passaggio e
mi propongono di dividere la corsa. Per accompagnarli devo allungare la
strada, ma dividere la spesa del taxi è conveniente per tutti e tre. Come
la divideremo? La teoria non cooperativa non offre una risposta.
In questo capitolo ci concentriamo su questa tipologia di giochi, che
chiameremo giochi cooperativi. Il termine cooperativi non deve però trar-
re in inganno. I giocatori che vedremo in questo capitolo non sono più
altruisti di quelli del capitolo precedente e le ipotesi che abbiamo fat-
to precedentemente sul comportamento dei giocatori sono ancora valide:
ogni giocatore cerca di ottenere il meglio per sé. Semplicemente, la teoria
non cooperativa si concentra sul giocatore e sulle sue strategie, mentre la
teoria cooperativa guarda all’utilità che i giocatori possono raggiungere
collaborando.
46 3 La teoria cooperativa

In questo capitolo vedremo come si può descrivere matematicamente


un gioco cooperativo e quali soluzioni propone la teoria dei giochi, e
le applicheremo in alcuni esempi.

3.1 Giochi cooperativi


Per formalizzare matematicamente un gioco dobbiamo partire dall’insie-
me dei giocatori. In particolare, siccome siamo interessati al risultato che i
giocatori possono ottenere giocando da soli o collaborando, introduciamo
il concetto di coalizione, che è piuttosto intuitivo.
Definizione 3.1.1 Dato un insieme N = {1, 2, ..., n} di giocatori, chia-
miamo coalizione ogni sottoinsieme A ⊂ N e indichiamo con P (N )
l’insieme di tutti i sottoinsiemi di N (incluso l’insieme vuoto).
La domanda sorge spontanea: dato un insieme di n giocatori, quante sono
le coalizioni possibili? Si può dimostrare che sono esattamente 2n1 .
A questo punto possiamo dare la definizione di gioco cooperativo,
concentrandoci in particolare sui giochi a utilità trasferibile, nei quali le
utilità dei giocatori sono monetarie e i giocatori possono scambiarsi e
dividersi il denaro.
Definizione 3.1.2 Un gioco cooperativo a utilità trasferibile può essere
descritto da una funzione v : P (N ) → R, con la proprietà che v(∅) = 0.
La funzione v viene detta funzione caratteristica del gioco.
Per ogni coalizione A ⊂ N , v(A) rappresenta un valore assegnato alla
coalizione A, che può essere un costo o un guadagno a seconda del gioco
che consideriamo. Vediamo due esempi.
Esempio 3.1.1 Il duetto
Giulia si diletta a suonare la chitarra e, per arrotondare, suona in un lo-
cale ogni venerdı̀ sera per 50 euro. Il suo amico Paolo invece ha una bella
voce, ed anche lui arrotonda cantando in un altro locale per 80 euro a
1
Per contarle, si fa cosı̀: si contano tutte le coalizioni di 0 elementi, 1 elemento,. . . k elementi,
. . . , n elementi. Trovare quante coalizioni ci sono di k elementi significa scegliere k oggeti
da un insieme di n, e quesa quantità è nk = k!(n−k)! n!
. Dunque tutte le coalizioni sono
Pn n
 n
k=0 k = 2 .
3.1 Giochi cooperativi 47

serata. In città apre un nuovo locale che vorrebbe organizzare delle serate
con chitarra e voce e il proprietario del locale offre a Giulia e Paolo 170
euro per ogni serata.

In questo gioco quali sono le possibili coalizioni?


• la coalizione vuota,
• le coalizioni fatte da un solo giocatore (ciascuno suona da solo):
{Giulia}, {Paolo}
• la coalizione fatta da tutti i giocatori (il duetto): {Giulia, Paolo}.
In questo caso la funzione caratteristica assegna ad ogni coalizione il suo
guadagno, quindi:
v(∅) = 0,
v(Giulia) = 50, v(Paolo) = 80,
v(Giulia, Paolo) = 170.
Esempio 3.1.2 Il taxi
Riprendiamo il gioco del taxi introdotto in precedenza: io e i miei amici
Giulia e Luca dobbiamo dividere una corsa in taxi. In questo caso quali
sono le possibili coalizioni?
• la coalizione vuota,
• le coalizioni fatte da un solo giocatore (ciascuno torna a casa da solo):
{Io}, {Giulia}, {Luca}
• le coalizioni fatte da due giocatori (due giocatori dividono la corsa e il
terzo torna a casa da solo): {Io, Giulia}, {Io, Luca}, {Giulia, Luca},
• la coalizione fatta da tutti i giocatori (torniamo a casa tutti insieme):
{Io, Giulia, Luca}
E quale potrebbe essere una funzione caratteristica che descrive il gioco?
Per esempio, potremmo assegnare a ogni coalizione il prezzo che deve
pagare affinché tutti i membri usufruiscano del servizio, in questo caso
il prezzo della corsa. So che tornare a casa da sola costerebbe 10 euro,
tornare con Giulia 18 euro, tornare con Luca 12 euro, mentre tornare
tutti insieme costerebbe 20 euro. Se Giulia tornasse da sola pagherebbe
14 euro, mentre se tornasse con Luca la corsa costerebbe 18 euro. Infine,
se Luca tornasse da solo pagherebbe la corsa 10 euro. Quindi:
48 3 La teoria cooperativa

v(∅) = 0,

v(Io) = 10, v(Giulia) = 14, v(Luca) = 10,


v(Io, Giulia) = 18, v(Io, Luca) = 12, v(Giulia, Luca) = 18,
v(Io, Giulia, Luca) = 20.
Introduciamo ora una classe particolare di giochi, in cui possiamo
individuare coalizioni perdenti e coalizioni vincenti.
Definizione 3.1.3 Un gioco (N, v) si dice semplice se verifica le seguenti
proprietà:
1. la funzione caratteristica assume solo i valori 0 e 1;
2. v(N ) = 1;
3. A ⊂ B ⇒ v(A) ≤ v(B).
In questo caso non ci interessa rappresentare l’utilità della coalizione,
ma la sua forza. Per questo motivo la funzione caratteristica assume solo
i valori 0 e 1: v(A) = 0 significa che la coalizione A è perdente o non ha
la forza di imporre decisioni, mentre v(A) = 1 significa che la coalizione
A è vincente e ha potere decisionale. La seconda condizione dice che
la coalizione formata da tutti i giocatori è vincente. La terza condizione
dice che se si aggiungiamo giocatori a una coalizione vincente essa rimane
vincente, e se una coalizione è perdente non può diventare vincente se
togliamo qualche giocatore. Vediamo un esempio.
Esempio 3.1.3 Gli azionisti
Una società per azioni ha 4 azionisti: A possiede il 10% delle azioni, B il
20%, C il 30% e D il 40%. Per prendere decisioni è necessaria la maggio-
ranza assoluta, cioè il 51% delle azioni.

Come possiamo descrivere questo gioco? In questo caso ci interessa sapere


quali coalizioni possono prendere decisioni e quali no, quindi:

v(∅) = 0,

v(A) = v(B) = v(C) = v(D) = 0,


v(A,B) = v(A,C) = v(A,D) = (B,C) = 0,
3.2 Soluzioni di un gioco cooperativo 49

v(B,D) = v(C,D) = 1,
v(A,B,C) = v(A,B,D) = v(A,C,D) = v(B,C,D) = 1,
v(A,B,C,D) = 1.
In questi giochi distinguiamo le coalizioni minimali, cioè quelle coali-
zioni vincenti che non sono più tali quando perdono un membro:
Definizione 3.1.4 In un gioco semplice (N, v) una coalizione A ⊂ N è
detta minimale (vincente) se:
• v(A) = 1
• B ( A ⇒ v(B) = 0
Nell’esempio precedente la coalizione {A,B,C} è minimale, mentre {A,C,D}
non lo è, perché risulterebbe vincente anche se A se ne andasse.
Questi esempi ci mostrano che, dato che assegnamo sempre 0 alla coa-
lizione vuota, per descrivere un gioco cooperativo è sufficiente un vettore
di 2n − 1 elementi. Ma è davvero cosı̀? In realtà non tutte le funzioni
caratteristiche che possiamo immaginare si prestano bene per descrivere
un gioco cooperativo. Un gioco cooperativo deve soddisfare la seguente
proprietà, chiamata superadditività:
Definizione 3.1.5 Consideriamo un gioco (N, v) in cui v rappresenta
una utilità. Siano A e B due coalizioni tali che A ∩ B = ∅. Il gioco si
definisce superadditivo se v(A ∪ B) ≥ v(A) + v(B).
Questa proprietà ci dice che l’utilità di una coalizione è superiore alla
somma delle utilità delle sue componenti e si può riassumere con il motto
”l’unione fa la forza”. Significa che i giocatori sono incentivati a cooperare
per ottenere risultati migliori.

3.2 Soluzioni di un gioco cooperativo


Dopo aver introdotto i giochi cooperativi e osservato come si possono
descrivere, siamo pronti a parlare di soluzioni. Come ci immaginiamo la
soluzione di un gioco cooperativo? Visto che v rappresenta generalmente
un costo o un guadagno, ci aspettiamo che una soluzione di un gioco
cooperativo ripartisca questi costi o guadagni tra i giocatori. Per esempio,
50 3 La teoria cooperativa

se decido di dividere la corsa in taxi con i miei amici Giulia e Luca, quanto
dovrò pagare?
Definizione 3.2.1 Un vettore soluzione di un gioco cooperativo con n
giocatori è un vettore (x1 , x2 , ...xn ) che rappresenta una distribuzione di
costi o utilità. Un concetto di soluzione, invece, è una funzione che associa
a ciascun gioco un insieme (anche vuoto) di vettori soluzione.
È importante sottolineare che le coalizioni sono soltanto uno strumento
per ottenere dei risultati, una soluzione determina quanto viene assegna-
to ai singoli individui: il valore assegnato alle coalizioni dalla funzione
caratteristica serve solo a determinare quanto è ragionevole assegnare ai
singoli giocatori.
La teoria dei giochi cooperativi si applica a cosı̀ tanti contesti e situa-
zioni che non èragionevole aspettarsi un’unica idea di soluzione. Tutto
dipende da cosa abbiamo in mente, che tipo di soluzione cerchiamo, da
quali proprietà ci aspettiamo che soddisfi. In alcuni casi potremmo tro-
vare più soluzioni che rispondono alle nostre richieste, in altri una sola,
in altri nessuna...
Per iniziare, introduciamo un concetto di soluzione molto intuitivo,
chiamato imputazione.

3.2.1 Imputazioni

Consideriamo un gioco con n giocatori in cui la funzione caratteristica v


rappresenta una utilità. Introduciamo un primo concetto di soluzione:
Definizione 3.2.2 Si chiama insieme delle imputazioni del gioco (N, v),
e si indica con I(v), l’insieme dei vettori (x1 , x2 , ..., xn ) che verificano le
seguenti relazioni:

xi ≥ v({i}) ∀i

Xn

 xi = v(N ).
i=1

La prima condizione dice che ogni giocatore non deve ricevere meno di
quanto sia in grado di ottenere da solo. Quindi non ci saranno proteste da
3.2 Soluzioni di un gioco cooperativo 51

parte dei singoli giocatori. La seconda condizione dice invece che la som-
ma delle utilità individuali deve coincidere con l’utilità della coalizione
formata da tutti i giocatori, cioè l’utilità che si genera deve essere intera-
mente distribuita tra i giocatori. In altre parole, queste distribuzioni di
utilità sono efficienti. Se invece la funzione caratteristica v rappresenta
un costo, le prime disuguaglianze vanno ovviamente rovesciate. L’impu-
tazione è un concetto di soluzione molto ragionevole, ma che utilizza
solamente una parte delle informazioni fornite dalla funzione caratteri-
stica che descrive il gioco. La definizione di imputazione, infatti, prende
in considerazione il valore delle coalizioni formate da un singolo giocato-
re e quello della coalizione formata da tutti i giocatori, ma non i valori
assegnati alle altre coalizioni. Viene naturale allora tenere conto anche di
quanto possono fare el coalizioni.

3.2.2 Nucleo
La prima condizione della definizione di imputazione impone che non
vengano sollevate obiezioni da parte dei singoli. È ragionevole richiedere
la stessa cosa per le coalizioni, cosa che ci porta alla definizione di nucleo.

Si chiama nucleo del gioco (N, v) l’insieme di tutti i vettori che


soddisfano le seguenti relazioni:
P
 i∈A xi ≥ v(A) ∀A ⊂ N

X n

 xi = v(N ).
i=1

Vediamo questo concetto di soluzione applicato ad alcuni esempi.


Nell’Esempio 3.1.1 i giocatori sono solamente due (Giulia e Paolo) e
non esistono coalizioni diverse da quelle formate dai singoli giocatori
che non coincidano con la grande coalizione. Quindi, il nucleo coincide
con l’insieme delle imputazioni e contiene i vettori (x, 170 − x), dove
50 ≤ x ≤ 170 − 80 = 90. Per evitare proteste, infatti, Giulia deve guada-
gnare almeno 50 euro (quanto sarebbe in grado di guadagnare da sola),
ma non più di 90, altrimenti sarebbe Paolo a ricevere meno di quanto
52 3 La teoria cooperativa

sarebbe in grado di guadagnare da solo.


In questo esempio, la soluzione proposta non è unica.
Consideriamo ora il gioco seguente.
Esempio 3.2.1 Ci sono tre giocatori, uno ha un guanto sinistro e due
un guanto destro. Naturalmente, un guanto spaiato non è utile, quindi
assumiamo che lo scopo del gioco sia formare paia di guanti. Scegliamo
allora come funzione caratteristica quella che assegna a ogni coalizione il
numero di paia di guanti che riesce a formare. Si ha quindi

v(i) = 0 = v({1, 2}), v({1, 3}) = v({2, 3}) = v(N ) = 1.

Per determinare il nucleo abbiamo le disequazioni




 xi ≥ 0

x1 + x2 ≥ 0



x1 + x3 ≥ 1

x2 + x3 ≥ 1





x + x + x = 1
1 2 3

Si vede che la soluzione, unica è (0, 0, 1).


Ecco un altro esempio interessante.
Esempio 3.2.2 Meglio figlio unico
Un padre consegna a ciascuno dei suoi tre figli un foglietto e chiede loro
di scrivere il nome di uno dei fratelli. Se un nome è ripetuto almeno
due volte, quel fratello si aggiudica un premio in denaro. Sono ammesse
contrattazioni e accordi, che in tal caso saranno vincolanti. Immaginiamo
che la funzione caratteristica assegni valore 0 ai singoli giocatori (perché
non si trova un accordo) e valore 1 a tutte le altre coalizioni formate da
almeno due giocatori. Impostando le disequazioni si ha:


 xi ≥ 0

x 1 + x 2 ≥ 1



x1 + x3 ≥ 1

x2 + x3 ≥ 1





x + x + x = 1
1 2 3
3.2 Soluzioni di un gioco cooperativo 53

Sommando le tre disequazioni che riguardano le coalizioni di due elemen-


ti, si ottiene la diseguaglianza

2(x1 + x2 + x3 ) ≥ 3

che ovviamente è in contraddizione con x1 + x2 + x3 = 1, il che implica


che nessun vettore può soddisfare le diseguaglianze/eguaglianza imposte
dal nucleo, che cosı̀risulta vuoto: per qualsiasi assegnazione c’è sempre
almeno una coalizione che è scontenta del risultato. E infatti possiamo
immaginarci che due fratelli si accordino per fare il nome di uno dei due e
dividersi a metà il premio. Il terzo fratello, che rimarrebbe a mani vuote,
propone al primo di accordarsi con lui: è disposto a rinunciare a una parte
del premio e a lasciargli il 60%. Al primo fratello conviene accettare. Ma
a questo punto il secondo fratello potrebbe proporre un 50-50 al terzo
fratello e cosı̀ via. . .
Vediamo ora come funziona il concetto di nucleo nel caso dei giochi
semplici. Introduciamo una definizione:
Definizione 3.2.3 In un gioco (N, v) un giocatore i ∈ N è detto gioca-
tore di veto se v(A) = 0 per ogni coalizione A tale che i ∈
/ A.
Osserviamo che in un gioco semplice può esserci un solo giocatore
di venuto, nessun giocatore di veto o anche più giocatori di veto, come
nell’esempio che segue.
Esempio 3.2.3 Il consiglio di sicurezza
Nel consiglio di sicurezza dell’Onu siedono 5 membri permanenti e 10 a
rotazione. Perché una risoluzione sia approvata, il vecchio sistema pre-
vedeva che dovesse avere il voto favorevole di tutti i membri permanenti
e di almeno 4 membri a rotazione. In questo caso i membri permanenti
sono tutti giocatori di veto.
Nel caso dei giochi semplici il nucleo ha una proprietà interessante:
Teorema 3.2.1 In un gioco semplice il nucleo è diverso dal vuoto se e
solo se c’è almeno un giocatore di veto.
Dimostrazione. Vediamo la prima implicazione. Supponiamo, per as-
surdo, che non ci sia alcun giocatore di veto. Allora per ogni giocatore i
54 3 La teoria cooperativa

esiste una coalizione che non contiene i e risulta vincente, cioè v(Ai ) = 1.
Supponiamo che un vettore (x1 , x2 , ..., xn ) appartenga al nucleo. Allora:
X X
xj ≥ xj = 1,
j6=i j∈Ai

e questo vale per ogni i = 1, 2, ..., n.


X n
X
Per esempio, quando prendo i = 1 ottengo xj = xj − x1 ≥ 1. Per
j6=1 j=1
X n
X
i = 2 ottengo xj = xj − x2 ≥ 1 e cosı̀ via fino a i = n, per cui
j6=2 j=1
X Xn
otterrò xj = xj − xn ≥ 1.
j6=n j=1
Sommando tutte le disuguaglianze per i che va da 1 a n, si ottiene:
n
X
(n − 1) xj ≥ n.
j=1

n
X
Ricordiamo però che xj = 1 per la definizione di nucleo. Quindi si
j=1
ottiene n − 1 = n che è assurdo.
Per l’altra implicazione, si verifica facilmente che assegnare 1 a un gioca-
tore (qualunque) di veto, e 0 a tutti gli altri, è un vettore del nucleo. In
generale, sta nel nucleo ogni vettore le cui componenti sommano a uno a
che assgna 0 ai giocatori che non sono di veto.
Il concetto di nucleo è sicuramente interessante, ma, dal momento
che non sempre propone delle soluzioni (come nell’Esempio 3.2.2), sia-
mo tentati di guardare altrove. Inoltre, anche quando il nucleo propone
soluzioni, alcune di queste sembrano ”ingiuste”. Per esempio, nel gioco
dei guanti viene assegnato 0 a chi possiede un guanto destro. È vero che
i guanti destri sono sovrabbondanti mentre quelli sinistri scarseggiano,
ma i giocatori che possiedono un guanto sinistro hanno comunque biso-
gno di guanti destri, quindi sembra poco ragionevole l’assegnazione del
nucleo. Vediamo quindi un concetto di soluzione simile che risolve alcune
di queste debolezze.
3.2 Soluzioni di un gioco cooperativo 55

3.2.3 Nucleolo

Come anticipato, il nucleolo cerca di risolvere alcuni problemi del nucleo:


Per esempio, abbiamo visto che in alcuni giochi il nucleo è vuoto. Questo
significa che, qualsiasi soluzione proponiamo, ci sarà sempre almeno una
coalizione che si lamenta. Possiamo quantificare questo lamento?
Definizione 3.2.4 Data un’imputazione x = (x1 , x2 , ..., xn ), il grado di
insoddisfazione (o lamento) di una coalizione A rispetto a x è dato dal-
la differenza tra quanto la coalizione può ottenere da sola e quanto la
soluzione x le assegna, quindi:
X
e(A, x) = v(A) − xi .
xi ∈A

Intuitivamente, tanto più è grande e(A, x) tanto più la coalizione A si


lamenta di x. Se e(A, x) < 0 la coalizione A è contenta, mentre se
e(A, x) = 0 è indifferente. Naturalmente, se un’imputazione sta nel nu-
cleo e soddisfa quindi tutte le coalizioni, i lamenti delle coalizioni saranno
tutti negativi. Se invece il nucleo è vuoto ci sarà sempre una coalizione
che si lamenta. L’idea è quella di considerare, per ogni imputazione, la
coalizione che si lamenta di più e in seguito scegliere l’imputazione che
minimizza questo ”massimo lamento”. In altre parole, il nucleolo cerca di
favorire le coalizioni più ”sfortunate”. Se troviamo una sola imputazione
abbiamo finito. Se invece ci sono più imputazioni che minimizzano il mas-
simo lamento, le consideriamo tutte e ricominciamo da capo, eliminando
questa volta il massimo lamento (che è uguale per tutte le imputazioni).
Si va avanti cosı̀ fino a che non rimane una sola imputazione che chia-
miamo nucleolo del gioco. Si può dimostrare che se il nucleo non è vuoto,
allora il nucleolo sta nel nucleo.
Esempio 3.2.4 Determiniamo il nucleolo nel caso del gioco del duetto
(Esempio 3.1.1). Abbiamo visto in precedenza che il nucleo di questo
gioco contiene i vettori (x, 170 − x), dove 50 ≤ x ≤ 90, quindi il nucleolo
coinciderà con una di queste distribuzioni. Prendiamone una a caso, per
esempio y = (60, 110) e calcoliamo e(A, y) per ogni coalizione A:

e({Giulia}, y) = 50 − 60 = −10, e({Paolo}, y) = 80 − 110 = −30.


56 3 La teoria cooperativa

Ignoriamo la grande coalizione, che è indifferente (e(N, y) = 0). Vediamo


che in questo caso il giocatore più sfortunato è Giulia. Posso aumentare
la sua soddisfazione con la distribuzione (70, 100), ma non posso andare
oltre, perché Paolo diventerebbe il più sfortunato. Il nucleolo è quindi
(70, 100) e sembra una soluzione ragionevole. Se ciascuno suonasse da solo
otterrebbero 50+70 = 130, mentre duettando riescono a guadagnare 170.
Ecco che il nucleolo suggerisce di dividere questo surplus 170 − 130 = 40
esattamente in parti uguali.
Il nucleolo è un concetto di soluzione intuitivo e molto interessante. Ha
però il difetto che il suo calcolo è in genere piuttosto complesso, anche
in esempi semplici. Passiamo allora a considerare un altro concetto di
soluzione, molto interessante.

3.2.4 Il valore Shapley

Il valore Shapley deve il suo nome al matematico Lloyd Shapley, premio


Nobel nel 2012, ed è probabilmente il concetto di soluzione più famoso
di tutta la teoria cooperativa. Dal momento che è più complesso rispetto
ai concetti di soluzione introdotti finora, partiamo da un esempio e in
seguito passiamo alla formalizzazione.
Consideriamo il gioco dell’aeroporto (Esempio 3.2.1), in cui tre compa-
gnie hanno bisogno di una pista di atterraggio. Alla prima compagnia
serve una pista di 1km che costa 6000 euro, alla seconda una pista da
2km che costa 4000 euro in più e alla terza una pista da 3km che costa
altri 3000 euro in più. Anziché immaginare le compagnie impegnate a
discutere su quanto ciascuna dovrebbe pagare per contribuire alla pista
da 3km che può soddisfare tutte, immaginiamo che agiscano in modo in-
dipendente. La prima compagnia si presenta per prima e chiede di poter
costruire una pista da 1km, per cui che paga 6000 euro. Successivamente
arriva la seconda compagnia che ha bisogno di un chilometro extra e paga
4000 euro. Infine arriva la terza compagnia che mette la cifra rimanente
per costruire l’ultimo chilometro di pista, cioè 3000 euro. Questa soluzio-
ne appare ragionevole perché nessuna paga più di quanto pagherebbe da
sola, ma risente troppo del fatto che l’ordine di arrivo delle compagnie
è fissato in maniera del tutto arbitraria. Cosa succederebbe se le com-
pagnie si presentassero in un ordine diverso? Supponiamo, per esempio,
3.2 Soluzioni di un gioco cooperativo 57

che la seconda compagnia arrivi per prima. Naturalmente, dovrebbe pa-


gare il prezzo della pista di 2km, cioè 10000 euro. La prima compagnia si
presenta per seconda e non paga nulla, perché la pista di 1km che chiede
è già stata costruita. A questo punto possiamo immaginare che arrivi la
terza compagnia che mette i 3000 euro rimanenti. Come si può vedere, la
soluzione è completamente diversa! Consideriamo quindi quanto paghe-
rebbe ciascuna compagnia per ogni possibile ordine di arrivo e facciamo
la media:
Ordine di arrivo
Compagnie 123 132 213 231 312 321 Media
1 6000 6000 0 0 0 0 2000
2 4000 0 10000 10000 0 0 4000
3 3000 7000 3000 3000 13000 13000 7000
La media è proprio il valore Shapley. Osserviamo anzitutto che è una so-
luzione efficiente, perché la somma delle assegnazioni è 13000, cioè il prez-
zo della pista lunga 3 km. Inoltre, sembra anche piuttosto ragionevole.
Infatti:
• Il primo chilometro serve a tutte e tre le compagnie. Il suo costo, 6.000,
viene quindi ripartito equamente tra tutte e tre: ognuna paga 2000.
• Aggiungere un secondo chilometro costa 4.000. Dal momento che que-
sto pezzo di pista non viene usato dalla prima compagnia, il suo costo
viene ripartito in parti uguali tra la seconda e la terza.
• Il costo del terzo chilometro viene sostenuto interamente dalla com-
pagnia 3, che è l’unica ad utilizzare questo pezzo di pista.
Vediamo allora come formalizzare questo concetto.
Consideriamo un giocatore i in un gioco a n giocatori: dato un certo
ordine di arrivo, quanto deve pagare i? Se chiamiamo S la coalizione dei
giocatori che sono arrivati prima, i deve pagare la differenza tra il costo
della pista che soddisfa tutti (S ∪ {i}) e quella che soddisfa solamente la
coalizione S.
Definizione 3.2.5 Chiamiamo contributo (o costo) marginale che il
giocatore i porta alla coalizione S ∪ {i} la quantità

v(S ∪ {i}) − v(S).


58 3 La teoria cooperativa

Intuitivamente, il valore Shapley è una somma pesata dei contributi mar-


ginali di un giocatore. Possiamo verificare (guardando la tabella) che per
ogni i questo costo dipende da chi sono i giocatori di S, ma non dipende
dal loro ordine di arrivo e non dipende nemmeno dall’ordine di arrivo dei
giocatori che seguono i. Se indichiamo con s il numero di giocatori di S, ci
sono esattamente s! modi per ordinare tutti questi giocatori che arrivano
prima del giocatore i e ci sono (n − s − 1)! modi per ordinare i giocatori
che arrivano dopo i. Quindi nella tabella il valore v(S ∪ {i}) − v(S) si
ripeterà esattamente s!(n − s − 1)! volte. A questo punto dobbiamo con-
siderare tutte le possibili coalizioni S.

Dato un gioco cooperativo (N, v) il valore Shapley di un giocatore


i è dato da:
X s!(n − s − 1)!
σi (v) = [v(S ∪ {i}) − v(S)].
n!
S⊂N \{i}

I pesi s!(n−s−1)!
n!
che compaiono nella formula del valore Shapley han-
no un’interpretazione probabilistica interessante. Supponiamo che tutti i
giocatori debbano incontrarsi a una certa ora e che l’ordine di arrivo sia
equiprobabile. Diciamo poi inoltre che il giocatore i entra nella coalizio-
ne S soltanto se al suo arrivo trova tutti i membri di S già presenti. Il
coefficiente rappresenta esattamente la probabilità che questo accada.
Vediamo ora alcune proprietà interessanti del valore Shapley.
Proprietà 3.2.1 Chiamiamo giocatore nullo un giocatore i che non por-
ta contributo ad alcuna coalizione, né positivo né negativo. In altre
parole:
v(S ∪ {i}) = v(S) ∀S.
Il valore Shapley di un giocatore nullo è pari a 0.
Proprietà 3.2.2 Due giocatori i e j si dicono simmetrici se il loro con-
tributo, quando si uniscono a una qualunque coalizione, risulta essere
identico, cioè:
v(S ∪ {i}) = v(S ∪ {j})
3.2 Soluzioni di un gioco cooperativo 59

per ogni coalizione S tale che i ∈


/S ej∈ / S.
Il valore Shapley di due giocatori simmetrici i e j è lo stesso.
Proprietà 3.2.3 Poiché un gioco è semplicemente una funzione defini-
ta sulle coalizioni, sommare due funzioni caratteristiche significa avere
un’altra funzione caratteristica, quindi la somma di due giochi è anco-
ra un gioco. Una soluzione si dice additiva se nel gioco somma quanto
ottenuto dai giocatori è la somma di quanto ottengono nei due giochi
componenti.
Il valore Shapley è una soluzione additiva.
Vale allora il seguente teorema, molto importante.
Teorema 3.2.2 Il valore Shapley è l’unico concetto di soluzione che
verifica le proprietà di giocatore nullo, simmetria, additività ed efficienza.
Dimostrazione. Verifichiamo che Shapley soddisfa tutte le proprietà,
ma non dimostriamo l’unicità, che richiede strumenti un po’ troppo
sofisticati.
• Simmetria: supponiamo che v sia tale che per ogni A che non contiene
i e j si abbia v(A∪{i}) = v(A∪{j}). Dobbiamo dimostrare che σi (v) =
σj (v). Scriviamo il valore Shapley per il giocatore i, distinguendo tra
le coalizioni che contengono j e quelle che non lo contengono:
X s!(n − s − 1)!
σi (v) = [v(S ∪ {i}) − v(S)]+
N \{i∪j}
n!
S∈2

X (s + 1)!(n − s − 2)!
+ [v(S ∪ {i ∪ j}) − v(S ∪ {j})],
n!
S∈2N \{i∪j}

e facciamo la stessa cosa per il valore Shapley di j:


X s!(n − s − 1)!
σj (v) = [v(S ∪ {j}) − v(S)]+
N \{i∪j}
n!
S∈2

X (s + 1)!(n − s − 2)!
+ [v(S ∪ {i ∪ j}) − v(S ∪ {i})],
n!
S∈2N \{i∪j}

Osserviamo che i termini delle sommatorie sono gli stessi, quindi


σi (v) = σj (v).
60 3 La teoria cooperativa

• La proprietà di giocatore nullo è ovvia.


• L’additività è ovvia.
• Efficienza: vogliamo dimostrare che ni=1 σi (v) = v(N ).
P
Consideriamo il generico termine v(S ∪ {i}) = v(S). Il termine v(N )
appare esattamente n volte, una volta per ciascun giocatore, quando
S = N \ {i}. Il suo coefficiente è (n−1)!(n−n)!
n!
= n1 , e si ripete n volte:
buon segno.
Consideriamo ora A 6= N ; il termine v(A) compare sia con coefficienti
positivi che negativi:
– il coefficiente (positivo) (a−1)!(n−a)!
n!
compare a volte, una per ogni
giocatore i ∈ A, quando S = A \ {i}: il contributo totale è quindi
a!(n−a)!
n!
– il coefficiente (negativo) − a!(n−a−1)!
n!
compare n − a volte, una per
ogni giocatore i ∈ / A, quando S = A: il contributo totale è quindi
− a!(n−a)!
n!
.
Quindi, nella somma
n
X X s!(n − s − 1)!
[v(S ∪ {i} − v(S)]
i=1 S∈2N \{i}
n!

il termine v(N ) compare con coefficiente 1 e ogni A 6= N compare con


coefficiente nullo.

Vediamo ora il valore Shapley utilizzato nei giochi semplici, quei giochi
in cui le coalizioni si dividono in perdenti e vincenti. Nel caso dei giochi
semplici, il valore Shapley diventa:
X (a − 1)!(n − a)!
σi (v) = ,
A∈W
n!
i

dove Wi è l’insieme delle coalizioni A tali che:


• i∈A
• A è vincente
• A \ {i} è perdente.
3.2 Soluzioni di un gioco cooperativo 61

In generale, nei giochi semplici il valore Shapley non rappresenta un uti-


lità per i giocatori, ma piuttosto il loro potere e i rapporti di forza che si
creano. In altre parole, occorre vedere quando l’arrivo del giocatore i è
criuciale, nel senso che fa diventare vincente una coalizione che senza di
lui è perdente.
Esempio 3.2.5 Calcoliamo il valore di Shapley dei componenti del Con-
siglio di Sicurezza dell’ONU (Esempio 3.2.3). In questo caso è indispen-
sabile sfruttare le proprietà della soluzione per semplificarsi la vita, al-
trimenti non finiremo mai considerando che abbiamo 215 coalizioni da
considerare. . . La prima osservazione da fare è che dobbiamo calcolare il
valore Shapley di un solo giocatore! Infatti, la proprietà di simmetria ci
dice che tutti i giocatori di veto hanno la stesso valore Shapley, e tutti
i membri a rotazione hanno lo stesso valore Shapley. D’altra parte, una
volta calcolato, ad esempio, quello dei giocatori a rotazione, quello degli
altri si ottiene sfruttando l’ipotesi di efficienza (la somma di tutit i va-
lori Shapley deve dare 1). Calcoliamo allora il valore di un membro non
permanente. Quando diventa cruciale? Quando si aggiunge a una coali-
zione che contiene tutti e 5 i membri permanenti e esattamente 3 dei non
permanenti. Tale coalizione ha 8 membri, e di cosiffatte ce ne sono 93 .


Quindi il valore Shapley è


 
9 8!6!
' 0, 0018648
3 15!

Si ottiene poi che il valore dei permanenti è ' 0, 1962704.


Esercizio 3.2.1 La pista di atterraggio
Tre compagnie hanno bisogno di una nuova pista di atterraggio in città.
La prima compagnia ha bisogno solo di 1km di pista, il cui costo di rea-
lizzazione è 6000; la seconda compagnia ha bisogno di una pista lunga 2
km che costerebbe 10000, mentre la terza vuole una pista di 3 km al costo
13000. Decidono di costruire un’unica pista lunga 3 km e di dividersi i
costi. Determinare la funzione caratteristica.
Esercizio 3.2.2 Verificare che i giochi degli Esempi 3.1.1 3.1.2 3.1.3
sono superadditivi.
62 3 La teoria cooperativa

Esercizio 3.2.3 Determinare il nucleo nel caso del gioco del taxi (Esem-
pio 3.1.2).
Esercizio 3.2.4 Questo gioco estende quello dei guanti già visto con tre
giocatori (Esempio 3.2.1. Consideriamo un gruppo di 25 giocatori, di cui
10 possiedono un guanto sinistro e 15 un guanto destro. Verificare che il
nucleo contiene un solo vettore, che assegna 1 a ogni giocatore del gruppo
meno numeroso e 0 agli altri.
Esercizio 3.2.5 Determinare il nucleolo nel caso del gioco dei guanti
(Esempio 3.2.1).
Esercizio 3.2.6 Determinare il nucleolo nel caso del gioco dei tre fratelli
(Esempio 3.2.2).
Esercizio 3.2.7 Determinare il valore Shapley del seguente gioco:

N = {1, 2, 3},

v({1}) = 0, v({2}) = v({3}) = 1, v({1, 2}) = v({1, 3}) = 4,


v({2, 3}) = 2, v(N ) = 8.
Esercizio 3.2.8 Determinare il valore Shapley nel gioco dei guanti (Eser-
cizio 3.2.1) e confrontare con la soluzione ottenuta col nucleolo.
Esercizio 3.2.9 Determinare il valore Shapley nel gioco degli azionisti
(Esempio 3.1.3).
4
Problemi di matching

I problemi di matching, di cui parliamo in questo capitolo, sono stati in-


trodotti da Gale e Shapley nel 1962, per modellizzare i mercati a doppio
lato (two-sided markets in inglese), in cui si devono abbinare gli elementi
di un lato a quelli dell’altro. Tra gli esempi più famosi, lavoratori e richie-
ste d’impiego, studenti e corsi di studio, macchine industriali e tipologie
di lavori, studenti e professori, utenti e server per traffico su Internet.
L’esempio più semplice, cui faremo sempre o quasi riferimento, è quello
di formare coppie donna-uomo. In questo caso di parla di matching uno a
uno, ma esistono ovviamente i matching uno a molti, e molti a molti. Un
esempio di uno a molti è quello degli studenti che si iscrivono a un corso
di studio, di molti a molti quello degli utenti e providers per Internet.
La caratteristica fondamentale di questo modello è che ogni elemento
di un insieme, ad esempio ogni donna, ha una sua personale lista di
preferenze, cioè una classifica, sugli elementi dell’altro insieme, nel nostro
esempio gli uomini, e viceversa. Si suppone che non ci siano né possibili
trasferimenti di denaro, né utilità espresse da parte degli agenti, solo
preferenze.
Come possiamo rappresentare graficamente un problema del genere? Il
prossimo esempio, che a prima vista può sembrare di difficile interpreta-
zione, riguarda l’abbinamento tra studenti e college. Vediamo di capirlo,
perché è un sistema molto utile.
La Figura 4.1 mostra 9 studenti, messi sulle colonne, e 5 Università,
sulle righe. I numeri q1 , . . . , q5 rappresentano le quote massime di studenti
ammesse nelle varie Università, le frecce orizzontali indicano le preferenze
64 4 Problemi di matching

s1 s2 s3 s 4 s5 s 6 s7 s8 s9
u1 q1 = 1
u2 q2 = 2
u3 q3 = 2
u4 q4 = 2
u5 q5 = 1
Figura 4.1. Un problema di matching: abbinare studenti e college.

delle Università, e la punta della frecce indica la direzione di migliora-


mento della classifica. Cosı̀ ad esempio per l’Università 1 lo studente s1 è
il meno preferito, mentre la prima scelta è lo studente s9 . Le preferenze
degli studenti sono messe in verticale, cosı̀ ad esempio lo studente s2 ha
come prima scelta u1 , come seconda u2 , come terza u4 (alle altre non è
interessato).
Una volta rappresentato graficamente il problema, passiamo a darne
una definizione più formale:
Definizione 4.0.1 Un problema di matching è costituito da:
• due insiemi finiti W and M che rappresentano le due facce del
mercato;
• un sottoinsieme di coppie ammissibili A ⊆ W × M;
• per ogni w ∈ W una quota qw ∈ N e una relazione di preferenza ≺w
su M;
• per ogni m ∈ M una quota qm ∈ N e una relazione di prefernza ≺m
su W.
Un matching ammissibile è un insieme L ⊆ A tale che
• ogni w ∈ W appare al più in qw coppie in L;
• ogni m ∈ M appare al più in qm coppie in L.
4 Problemi di matching 65

Il caso di matching uno-uno si ha qw = 1 e qm = 1, uno-molti qw ≥ 1


e qm = 1, molti-molti qw ≥ 1 e qm ≥ 1.
Adesso che abbiamo messo le basi anche formali, per la definizione del
modello, ci aspetta la domanda fondamentale:
Che cosa significa in questo contesto un matching efficiente1 ?
Ecco l’idea.
Definizione 4.0.2 Una coppia ammissibile (w, m) ∈ A si dice che è una
coppia che blocca un matching L ⊆ A se w e m preferiscono entrambi
essere accoppiati insieme piuttosto che con i partner in L. Un matching
ammissibile L si dice stabile se non ci sono coppie che lo bloccano.
Vediamo nell’esempio di Figura 4.2 che segue perché il matching pro-
posto, evidenziato da pallini blu, è stabile. Proviamo a considerare le
donne, indicate con la lettera w. Può w1 far parte di una coppia che
blocca? Certamente no, a lei è assegnato il primo uomo nella sua lista
di preferenze, quindi nessuna proposta eventuale le interessa. Può w2 far
parte di una coppia che blocca? Anche qui la risposta è negativa, perché
accetterebbe solo una proposta di m3 , che però non è interessato a lei,
perché è accoppiato con w3 che lui preferisce a w2 . Infine w3 accetterebbe
una proposta solo da m2 , che però preferisce la sua partner. Poiché nes-
suna donna può fare parte di una coppia che blocca, il matching proposto
è stabile.

m1 m2 m3

w1

w2

w3 )

Figura 4.2. Un matching stabile tra tre uomini e tre donne. Gli accoppiamenti sono
evidenziati dai pallini blu.

1
Si usa anche dire un matching ottimale, o una soluzione razionale del problema
66 4 Problemi di matching

Il problema successivo, naturalmente, è di stabilire se esiste un mat-


ching stabile, qualunque siano le preferenze degli agenti. Anche in questo
caso, si ha una risposta interessante, che descriviamo tramite una proce-
dura “algoritmica”. Si tratta di costruire un matching a passi successivi.
Ecco la procedura, che chiamiamo donne in visita:
Primo step (giorno 1)

1. Ogni donna visita la sua prima scelta;


2. Ogni uomo scarta tutte le donne che sono alla sua porta, esclusa
quella che preferisce tra le presenti.

Se ogni donna viene accettata l’algoritmo si ferma, perché si è formato


un matching ammissibile. Altrimenti si passa al
Secondo step (giorno 2)

1. Ogni donna rifiutata il primo giorno cancella dalla sua lista


l’uomo che l’ha rifiutata;
2. Si ripete la stessa procedura del primo giorno, le donne in visita
alla loro prima scelta (aggiornata) e gli uomini che scelgono.

Se ogni donna viene accettata l’algoritmo si ferma, perché si è formato


un matching ammissibile. Altrimenti si torna al secondo step.
Adesso vediamo che:
1. L’algoritmo si arresta;
2. Ciò che si ottiene è un insieme stabile.
Per il primo punto, si capisce subito il perché: ad ogni step o l’algorit-
mo si ferma o almeno una coppia viene scartata e quindi la procedura si
arresta dopo non più di |A| ≤ |W| · |M| iterazioni (in realtà si possono
ottenere limiti superiori sul numero di iterazioni inferiori di questo).
Osserviamo anche che passando da uno step a quello successivo:
1. Le donne scendono nelle loro preferenze;
4 Problemi di matching 67

2. gli uomini invece salgono.


Detto questo, vediamo perché il matching trovato è stabile. Per far-
lo, vediamo che nessuna donna può far parte di una coppia che blocca.
Consideriamo dunque una generica donna w:
1. Non è interessata a far parte di una coppia che blocca con un uomo
che non ha visitato: quello con cui è accoppiata per lei è meglio, visto
che da uno step all’altro scende nella sua classifica;
2. Non può far parte di una coppia che blocca con un uomo che ha
visitato: infatti è stata rifiutata in favore di un’altra donna, che quin-
di per lui sta più in alto in classifica; siccome nei giorni successivi
l’uomo o rimane con la stessa donna o sta con un’altra ancora più
alta in classifica, quindi non è interessato a riprendere una donna già
rifiutata.
Ecco dunque che abbiamo dimostrato il teorema seguente.
Teorema 4.0.1 Ogni problema di matching ammette un insieme stabi-
le2 .
Vediamo l’applicazione dell’algoritmo precedente nel caso semplice,
già considerato in precedenza, di un matching tra tre uomini e tre donne.

m1 m2 m3

w1

w2

w3

Figura 4.3. L’esempio della Figura 4.2, col matching stabile determinato dall’algoritmo
donne in visita.
2
La dimostrazione precedente è scritta per un matching uno-uno, ma si adatta facilmente
a matching più generali.
68 4 Problemi di matching

Osserviamo che in questo caso (fortunato), l’algoritmo termina il pri-


mo giorno, le donne si recano tutte da un uomo differente, e quindi finisce
immediatamente. Osserviamo anche che le preferenze degli uomini in que-
sto caso non hanno nessun peso: questo dipende non solo dal fatto che
le donne visitano uomini differenti, ma anche che gli uomini non rifiuta-
no a priori nessuna donna (e viceversa, siamo nel caso in cui le coppie
ammissibili sono tutte le coppie).
Perché abbiamo scelto l’algoritmo delle donne in visita? Non si poteva
mandare gli uomini in visita? Ovviamente sı̀! E che succede se mandiamo
in visita gli uomini? Viene un insieme stabile differente? Ecco che succede
nell’esempio che stiamo portando avanti.

m1 m2 m3

w1

w2

w3

Figura 4.4. L’esempio della Figura 4.2, col matching stabile determinato dall’algoritmo
uomini in visita.

Come si vede, abbiamo un secondo matching stabile, diverso dal prece-


dente; anzi, per essere precisi, questo è un terzo matching stabile, perché
il primo che avevamo visto era differente dagli altri due.
Il fatto di avere esistenza, ma non unicità, pone qualche problema;
come abbiamo più volte ricordato, avere diverse soluzioni in teoria dei
giochi crea situazioni complicate, perché gli agenti possono avere prefe-
renze diverse riguardo alle soluzioni proposte, e allora chi si favorisce? In
questo caso, possiamo dare un risultato molto interessante, anche se non
lo dimostreremo. Innanzitutto mettiamo un ordine di preferenze parziale
sui matching.
4 Problemi di matching 69

Definizione 4.0.3 Dati due matchings stabili L e L̃, scriviamo che


L m L̃ se per ogni uomo vale che:
1. o è insieme alla stessa donna nei due matching;
2. oppure in L è accoppiato con una donna che nella sua classifica sta
più in alto rispetto a quella con cui è accoppiato in L̃.
In maniera simile, scriveremo L w L̃ scambiando uomini e donne.

Il significato è chiaro, se si prende il gruppo degli uomini, qualcuno


sarà indifferente rispetto ai due matching, qualcuno preferisce L, nessu-
no preferisce il secondo. Quindi, dal punto di vista degli uomini, come
categoria, L è più attraente di L̃.
È importante osservare che ci possono essere matching stabili che non
sono comparabili, secondo la relazione precedente, per gli uomini: se que-
sto succede tra due matching, vuol dire che qualche uomo sta meglio
nel primo, qualche altro nel secondo. Tuttavia, vale una proprietà molto
importante:

L’algoritmo donne in vista produce il matching stabile preferibile


per le donne rispetto a qualsiasi altro matching stabile, e il peg-
giore per gli uomini. Vale il viceversa per il matching ottenuto con
l’algoritmo uomini in visita.

In altre parole, ogni donna, se mandata in visita, si troverà alla fine


con l’uomo che preferisce, tra tutti quelli che potrebbero essere accoppiati
a lei in un insieme stabile.
Naturalmente il criterio, nei problemi concreti, di quale algoritmo sce-
gliere, è politico sociale più che matematico. Per esempio, questo sistema
di matching (con qualche piccolo adattamento) viene utilizzato in Cile
per le iscrizioni degli studenti ai corsi di studio, con questa procedura:
1. Viene fatto un concorso nazionale per l’accesso ai corsi di studio, con
varie materie;
2. Ogni corso di studio stabilisce le percentuali da dare alle varie materie
per la determinazione del punteggio (cosı̀ per esempio matematica
avrà un’alta percentuale per chi vuole fare una materia scientifica,
70 4 Problemi di matching

molto meno per chi vuole fare storia, e cosı̀ via); inoltre dichiara la
quota di posti disponibile;
3. Ogni studente dichiara la sua classifica sui vari corsi di studio;
4. Viene implementato l’algoritmo studenti in visita.
L’ultimo punto è una variante interessante, rispetto all’goritmo prece-
dente, introdotta recentemente e quanto mai opportuna. Sembra infatti
ragionevole che siano gli studenti ad avere la sistemazione stabile migliore
possibile, perché l’Università è un servizio pagato dalla collettività, che
tra i suoi compiti ha quello di dare competenze di livello elevato, e quindi
come servizio agli studenti sembra socialmente ragionevole che siamo gli
studenti favoriti. Ma c’è un altro motivo che è ancora più interessante, e
lo descriviamo per concludere.
In tutto quanto abbiamo visto, abbiamo dato per scontato che le pre-
ferenze siano note a tutti, in particolare a chi cerca i matching stabili.
Tuttavia, in genere queste sono informazioni private, e quindi è lecito
chiedersi se è possibile che gli agenti mentano sulle preferenze, nel ten-
tativo di ottenere risultati migliori. La risposta è sı̀, è possibile che un
agente, mentendo, ottenga una situazione migliore. Però vale il risultato
seguente:

Nell’algoritmo uomini in visita nessun uomo può ottenere risultati


migliori mentendo, e viceversa nell’algoritmo donne in visita.

Il risultato non è sorprendente, visto che mandando gli uomini in visita


ottengono il loro accoppiamento migliore tra quelli possibili, e dunque è
intuitivo che non sia conveniente mentire, mentre in questo caso le donne
in alcuni casi potrebbero trarre vantaggio dal mentire.
Tornando al problema del matching tra studenti e corsi di studio,
col sistema cileno allora gli studenti dichiareranno le loro reali preferen-
ze, mentre le Università in questo caso non fanno classifiche sui singoli
studenti, ma rendono pubblici i loro criteri di scelta, basati su parame-
tri oggettivi, e su questi potrebbero anche mentire, ma la cosa avrebbe
davvero poco senso.
Negli esempi fatti prima avevamo tre donne e tre uomini, e tutti for-
mavano coppie. Naturalmente può succedere che i numeri non siano gli
4 Problemi di matching 71

stessi, cosı̀ come nell’ammissione all’Università i posti disponibili siano


in qualche caso più degli studenti che fanno domanda, o viceversa. In
questo caso, vale il risultato seguente:

• Uno studente che non è assegnato in un matching stabile, non


lo è in nessun matching stabile;
• Un corso che ha posti non assegnati in un matching stabile
rimane con posti liberi in tutti i matching stabili.

Concludiamo con un breve cenno a situazioni concrete in cui il


problema di matching è stato applicato:
• 2004 – Boston School Admissions: 17.000 studenti / 140 scuole
differenti livelli di entrata: K, 1, 6, 9 (≈ 4000 studenti ciascuno)

• 2005 – New York HighSchool Admissions: 90.000 studenti / 530 scuole


secondarie

• 2013 – Ammissione all’Università in Cile:


– 1.396 corsi di studio in 33 diverse Università;
– 112.608 posti liberi + 4.299 riservati ai figli di famiglie a basso
reddito;
– 118.208 studenti hanno fatto applicazione;
– 93.750 studenti iscritti alla fine del processo.
Esercizio 4.0.1 Considerare le seguenti situazioni e dimostrare che c’è
sempre almeno una coppia fissata in ogni matching stabile.
1. Alberto è in cima alla lista di preferenze di Caterina, e Caterina è in
cima alla lista di preferenze di Alberto;
2. Jessica è in cima alla lista di preferenze di tutti gli uomini;
3. Tutti gli uomini hanno le stesse preferenze.
Esercizio 4.0.2 Consideriamo un gruppo di 3 donne (Elena, Androma-
ca, Lavinia) e 3 uomini (Ettore, Enea, Paride). Le preferenze dei singoli
sono le seguenti:
72 4 Problemi di matching

Ettore : Elena  Andromaca  Lavinia


Enea : Elena  Lavinia  Andromaca
P aride : Andromaca  Elena  Lavinia

Elena : P aride  Ettore  Enea


Andromaca : Ettore  P aride  Enea
Lavinia : Enea  Ettore  P aride

1. Verificare che Elena è abbinata ad Ettore nell’insieme stabile M.


2. C’è un modo in cui Elena può migliorare la propria situazione e essere
abbinata a un uomo che preferisce?
Esercizio 4.0.3 Quattro ragazzi (Alberto, Bernardo, Carlo e Davide)
devono dividersi in due camere con due letti ciascuna. Date le loro
preferenze:
B A C A D,
C B A B D,
A C B C D,
dire se esiste un insieme stabile.
Esercizio 4.0.4 Consideriamo il seguente problema di matching, con
W = {Catwoman, W onderwoman} e
M = {Superman, Batman, F lash}. Supponiamo che Catwoman prefe-
risca Batman a Superman e Superman a Flash, mentre Wonderwoman
preferisca Superman a Flash e Flash a Batman.
1. Se le donne visitano gli uomini, quale è un insieme stabile?
2. Determinare le preferenze degli uomini in modo che ci sia un altro
insieme stabile.
Esercizio 4.0.5 Dato il problema di matching M = {a, b, c, d}, W =
{E, F, G, H}, con preferenze:
4 Problemi di matching 73

H a G a F a E b E a E c E d
F b E b G b H c F a F d F b
F c H c G c E d G a G c G b
E d H d G d F d H c H b H a

determinare un insieme stabile e uno non stabile. Verificare che M = W.

Potrebbero piacerti anche