Una applicazione informatica di una soluzione di tipo Core in giochi

1
Un’ applicazione informatica per una soluzione di tipo “Core” in
giochi cooperativi con un numero massimo di quattro
partecipanti.
di M. Ferrara, S. Leonardi.
Sunto.
In questo lavoro gli autori si soffermano, partendo da una esemplificazione di natura pratica, su
alcune classi di problemi collocabili nell’ambito della teoria dei giochi cooperativi con utilità
trasferibile, come ad esempio il raggiungimento di una allocazione ottimale dei costi e il problema
della divisione di una proprietà comune a più persone. Nelle pagine che seguiranno, si presenterà un
programma informatico elaborato sulla base di importanti proprietà relative ai giochi cooperativi,
classiche in letteratura, ma dalle quali, gli autori, cogliendo degli interessanti aspetti di natura
topologica hanno tratto spunto per formalizzare un modello attraverso il quale si ottengono delle
soluzioni nel caso di giochi con un numero massimo di quattro partecipanti.
Parole chiave e frasi: Funzione caratteristica, Soluzioni di tipo Core, simplesso k-dimensionale.
Classificazione MSC 2000: 90D12, 90D44, 90D80.
1. Giochi cooperativi con utilità trasferibile: alcuni richiami introduttivi.
Per gioco cooperativo si intende una situazione nella quale i partecipanti
godono della libertà incondizionata di comunicare tra di loro prima di giocare,
allo scopo di stabilire degli accordi congiuntamente vincolanti. Di frequente
questi accordi si prefiggono finalità diverse quali, ad esempio, il coordinamento
delle strategie, la divisione dei guadagni, la ripartizione dei costi. Prima della
presentazione del modello contenente un caso esemplificativo, si procederà ad
una rassegna di alcuni aspetti inerenti i giochi cooperativi con utilità trasferibile,
importanti per la successiva modellizzazione del programma informatico
presentata nella seconda parte di questo lavoro.
Il modello classico di gioco con utilità trasferibile (TU game) consiste in una
coppia (N, v), dove: N = l, 2, ....., nè l'insieme dei giocatori; v: 2N  , è
chiamata funzione caratteristica del gioco la quale descrive completamente tutte
le possibilità strategiche del gioco qualunque sia la situazione considerata.1
Per ogni coalizione S  N, v(S) si interpreta come il valore della coalizione.
Convenzionalmente abbiamo v() 0.
Con v(S) indichiamo il guadagno totale su cui i giocatori di S possono contare
1
La funzione caratteristica è quindi quella funzione che associa ad ogni coalizione di un
gioco cooperativo una vincita; tale vincita è nulla per la coalizione vuota.
2
con certezza coalizzandosi tra di loro, indipendentemente dalle azioni portate a
termine dai giocatori che non fanno parte della coalizione S. Con v(i)
indichiamo il valore atteso della strategia maxmin scelta dall'i-esimo giocatore
quando mancano delle informazioni precise su quali saranno le azioni poste in
essere dagli altri giocatori.
Quindi v(i) non è altro che il guadagno che l'i-esimo giocatore otterrebbe
agendo da solo. Se due generici giocatori, i e j, formano una coalizione, allora si
avrà v(i, j)  v(i) + v(j) in quanto l'alleanza dei due giocatori non potrà
procurare un guadagno inferiore a quello ottenuto dai giocatori agendo
separatamente. Questo è un caso particolare della superadditività.
Le proprietà della funzione caratteristica generalmente esprimono il beneficio
che i giocatori traggono dalla cooperazione.
DEFINIZIONE 1.1. La funzione caratteristica v è superadditiva se:
v(S  T)  v(S) + v(T),
(1)
per ogni due coalizioni disgiunte S, T,  N, S  T  .
Se v è additiva, l'uguaglianza è sempre soddisfatta nella relazione (1) allora la
funzione caratteristica è detta inessenziale (il gioco (N v) è detto anche
inessenziale.) Altrimenti, la funzione caratteristica (e pure il gioco) è detta
essenziale.
PROPOSIZIONE 1.1. La funzione caratteristica v è essenziale se e solo se
iN v({i})  v(N). Gli outputs del gioco sono chiamati vettori di payoff. Un
vettore di payoff è un vettore n-dimensionale,   n. Il suo componente iesimo, i è considerato come l'utilità ricevuta dal giocatore i.
Nella teoria del gioco cooperativo classico solo i risultati razionali sono
considerati come soluzioni. La razionalità ha due componenti:
DEFINIZIONE 1.2. Il vettore di payoff  è individualmente razionale se:
(a)
i  v(i), i  N
ed è collettivamente razionale se:
(b)
iN i  v(N).
DEFINIZIONE 1.3. Qualunque vettore di payoff che soddisfi (a) e (b) è
chiamato imputazione. L 'insieme di tutte le imputazioni del gioco (N, v) sarà
3
indicato da I(N,v).
PROPOSIZIONE 1.2 Normalmente si ha che I(N, v) per ogni gioco (N, v).
Se il gioco è inessenziale,allora I(N, v) {0}, dove i0  v({i}) i. Se il gioco è
essenziale, allora I(N, v) è un poliedro non degenere di n , e 0  I(N, v).2
Se S è una coalizione, si definisce una relazione binaria su I(N, v), indicata da 
chiamata relazione di dominanza con riferimento ad S:
  s     i  v( S ) and  i   i' i  S
'
iS
(si dice che  domina ', con riferimento ad S.)

Ovviamente, " s" è transitiva ed asimmetrica. Se | S |  1, o S = N allora tutti gli
elementi di I(N, v) sono massimi rispetto a  s.
Si scrive semplicemente,   ’, e si dice che  domina ’, se esiste S  N tale
che   s .
Due concetti classici nella teoria dei giochi TU3 sono basati su questa relazione
di dominanza. Questi sono gli insiemi stabili (soluzioni von NeumannMorgenstern) e il Core.
DEFINIZIONE 1.4. Un insieme stabile è qualunque sottoinsieme S di I(N, v),,
che soddisfa le seguenti condizioni:
(a)
Non esistono , ’  S, tali che risulti   ’. (Stabilità interna.)
(b)
Per ogni ’  I(N, v) \ S esiste   S, tale che   ’. (Stabilità esterna.)
Quindi gli insiemi stabili sono gli insiemi delle imputazioni che sono soluzioni,
secondo von Neumann, di un gioco cooperativo. Nessuna imputazione di un
insieme stabile è dominata da un'altra di tale insieme; inoltre, per ogni
imputazione non appartenente all'insieme stabile, ne esiste almeno una che la
domina.
2
Quindi in un gioco essenziale esiste almeno una coppia di coalizioni disgiunte che trae
vantaggio dalla fusione, invece in un gioco inessenziale nessuna coalizione ha incentivo a
fondersi con un'altra.
3
TU indica la categoria dei giochi con utilità trasferibile (in inglese Transferable Utility).
4
DEFINIZIONE 1.5. Il Core del gioco (N, v) è l'insieme C(N, v) di tutte le
imputazioni non dominate, ossia, C (N, v)  {  I(N, v) |  S  N e ’  I(N,
v) tali che iN i’ v (S) e i’  i per tutte le i S.
Gli elementi di un insieme stabile non sono caratterizzati da proprietà
intrinseche, mentre la definizione di Core mette in evidenza separatamente ogni
elemento. Da qui risulta che, tutte le imputazioni nel Core sono, logicamente,
equivalenti. Ovviamente, ciascun giocatore può avere le sue preferenze tra gli
elementi del Core ma ogni elemento particolare può essere distinto da una
proprietà che è comune a tutti gli altri. In genere ogni elemento del Core è un
vettore di payoff ammissibile non oggettivabile; è ammissibile nel senso che
può essere realmente ottenuto dai giocatori come un output del gioco
determinato dalla volontà della coalizione totalitaria e non oggettivabile nel
senso che nessuna coalizione particolare può fare una obiezione giustificata.
PROPOSIZIONE 1.3. Il Core del gioco C sarà uguale a C(N, v) = {   I(N,
v) | is i  v(S), S  2N}
Dimostrazione: Scegliamo un   C(N, v),), e supponiamo che esiste un S tale
che is i  v(S). Indichiamo con
v(S)-isi definiamo ’  n, come


 i  S , se i  S

i'  
d
i )  , se i  S
v(
S

(3)
dove, d  v(N) - v(S) - is v({i})  0 (per la superadditività di v.)
Si può facilmente verificare che ’  I(N, v) e che ’  S, contraddicendo la
proprietà di .
Viceversa, supponiamo che  soddisfi tutte le disuguaglianze presenti nella
proposizione (1.3) e dimostriamo che essa rappresenta una imputazione non
dominata. Se questo non succede, allora esistono S e ’  I(N, v) tali che is
i’  v(S) and i’  i per tutte le i  S. Per cui, is   v(S) è evidentemente
una contraddizione.
5
PROPOSIZIONE 1.4. il Core C (N, v) consiste nella totalità delle soluzioni
ottime del seguente problema di programmazione lineare:


( L) : min   μi   R n ,  i  v( S ), S  2 N 
iS
iN

a condizione che il suo valore ottimo sia uguale a v(N).
Ovviamente, l'insieme delle soluzioni ammissibili del problema è un insieme
poliedrico convesso non vuoto (illimitato nella parte superiore) e la funzione
obiettivo è limitata nella parte inferiore di esso. Per cui il problema (L) ammette
sempre soluzioni ed il valore ottimo è uguale almeno a v(N). In caso di
uguaglianza, il Core del gioco può essere determinato totalmente con tecniche
tradizionali della programmazione lineare basati su semplici algoritmi. Se il
valore ottimo del problema risultasse maggiore di v(N), allora il Core sarebbe
vuoto.
Il verificarsi della situazione di un Core vuoto risulta un grave inconveniente
nel caso in cui si seguisse un approccio cooperativo nell’ambito di un modello
competitivo. Sfortunatamente, esistono giochi non banali con Core vuoto.
DEFINIZIONE 1.6. Il gioco (N, v) ha somma costante a, se v(S) + v(S)= a,
per ogni S  N.
PROPOSIZIONE 1.5. Ogni gioco essenziale con somma costante ha Core
vuoto.
Dimostrazione: Supponiamo che il gioco (N, v) con somma costante a, abbia
Core non vuoto, e scegliamo un   C(N, v). Allora, dalla Proposizione 1.4, si
ha is i  v(S) e is i  v(S), per ogni S. La superadditività di v e le
definizioni implicano che a  v(N)  iN i  v(S) + v(S)  a. Per cui,
isiv(S) per ogni coalizione S, che ovviamente ci dice che il gioco è
inessenziale.
Le tipologie di giochi con Core non vuoto sono rappresentati dai giochi a due
persone e dai giochi inessenziali (in entrambi i casi il Core coincide con l'intero
insieme delle imputazioni).
6
1.2. Il Core dei giochi bilanciati.
Sia C una famiglia di sottoinsiemi di N.
DEFINIZIONE 1.7. C si dice bilanciata se esiste un sistema di pesi positivi
(wc)CC  + con la proprietà che
w
cC ,iC
c
 1, per ogni i  N
(5)
La condizione (5) è equivalente a
w x
CC
c c
 xN
(6)
Qui, xc denota la funzione indice dell'insieme C,
 i, se i  C
xC (i)  
0, se i  C
OSSERVAZIONE 1.1 Ogni partizione di N è una famiglia bilanciata (i pesi
associati sono necessariamente pari a 1)
DEFINIZIONE 1.8. Il gioco (N,v) è bilanciato se, per ogni famiglia bilanciata
di coalizioni C e per ogni sistema associato di pesi (Wc)cC si ha:
 wcv (C )  v ( N )
(7)
CC
Si può interpretare la condizione di equilibrio come segue: se C è una partizione
di N, allora la disuguaglianza (7) scaturisce dalla superadditività di v (dato che
tutti i pesi sono uguali a 1). La situazione non banale si verifica quando la
famiglia bilanciata considerata non ha una partizione. Supponiamo che ogni
giocatore sia attratto da diverse coalizioni (le coalizioni in C), che gli appaiono
vantaggiose, in modo tale da essere pronto a partecipare a ogni coalizione di C.
Questo significa che il suo sforzo totale sarà diviso tra le diverse coalizioni che
si formano in C. Si indichi con wc la frazione del suo sforzo totale che esso
7
destina nella coalizione cC. Supponiamo che nessuno dei giocatori consideri
la possibilità di inserire sforzi positivi nelle coalizioni tranne che in quelli di C e
che tutti i membri della coalizione cC considerino la stessa frazione wc del loro
sforzo in C. Allora l'utilità massima attesa della coalizione C è wc v(C) e l'utilità
totale attesa è CC wc v(C). La condizione (6) ci dice che la coalizione totalitaria
può riuscire ad ottenere la sua utilità totale a non meno di questa quantità.
TEOREMA 1.6. Si avrà C(N, v)   se e solo se il gioco (N, v) è bilanciato.
La dimostrazione del teorema è basata sul seguente lemma:
LEMMA 1.7. C(N, v) se e solo se il seguente problema di programmazione
lineare:


N


( D ) : max   wC v(C ) ( wC ) C2 N  R2 ,  wc  1, i  N  (8)


c2 N ,iC
C2 N

ha come soluzione ottima v(N).
Dimostrazione. Segue direttamente dalla Proposizione 1.4, poiché (D) e (L)
sono problemi di programmazione lineare duale.
Dimostrazione del Teorema 1.6
Il precedente lemma basta per dimostrare che il gioco (N, v) è bilanciato, se e
solo se il problema (D) ha come soluzione ottima v(N)..
Si supponga innanzitutto che il problema (D) abbia come soluzione ottima v(N).
Scegliamo una qualsiasi famiglia bilanciata C, e sia (wc)CC un sistema
associato di pesi. Definiamo w' = (w’c)C2N  R2  , con:
N
w , se c  C
w' c   c
 0, se c  C
Ovviamente, w' è una soluzione ammissibile di (D) e allora il valore della
funzione obiettivo non potrà essere maggiore del valore ottimo, ossia:
v(N) C2N w’cv(C)  CC wcv(C)
(9)
8
La disuguaglianza tra i termini estremi della (9) dimostra che il gioco è
bilanciato.
Supponiamo che il gioco (N, v) sia bilanciato. Scegliamo una soluzione
ammissibile arbitraria w  (wC)C2N  R2 di (D) (supponendo che esistano
sempre soluzioni ammissibili). Indichiamo con C  {C  2N  wC 
0.Ovviamente, C e (wc)cC dimostrano la definizione di equilibrio. Allora,
c2N wc v(C)  cCN wc v(C)  v(N), cosicché, il valore della funzione obiettivo
del problema (D) è al massimo v(C). Il valore v(N) è uguagliato da almeno una
soluzione ammissibile (prendiamo per esempio wN  1,e wc  0). Per cui, il
valore ottimo di (D) è v(N).
N
2. I risultati proposti.
Un importante applicazione della teoria dei giochi cooperativi è quella
relativa ai problemi di allocazione dei costi, alla divisione di proprietà comuni.
Consideriamo un esempio concreto supponendo che una azienda
sottoposta a procedura fallimentare disponga di un patrimonio di 100 milioni di
lire con i quali deve soddisfare tre creditori che reclamano rispettivamente 30,
40 e 50 milioni. Il debito complessivo di 120 milioni non può essere, dunque,
completamente rimborsato; il problema consiste nel distribuire la somma
disponibile per soddisfare i creditori nel modo più equo possibile.
Supponiamo che sia dato ai creditori stessi la possibilità di giungere ad un
accordo e che, legalmente, sia possibile che uno dei creditori possa assumere il
controllo dell’azienda rimborsando gli altri creditori e tenendo per sé il residuo
della somma. Procedendo in questo modo il creditore 1 dovendo rimborsare 90
milioni potrebbe trattenere per se 10 milioni, il creditore 2 rimborserebbe invece
80 milioni tenendone 20 e il creditore 3 ne rimborserebbe 70 tenendone 30.
Sebbene, probabilmente, sotto certi aspetti nessun creditore approverebbe
l’iniziativa, risulta evidente che il creditore 3 è il meno svantaggiato della
situazione e che, dunque, ha una posizione più forte che dovrà essere presa in
considerazione all’atto della liquidazione finale. Partendo da questa idea se due
dei creditori decidessero di mettersi in società rilevando l’azienda, rimborsando
il terzo creditore, mantenendo per loro il residuo, si evince che la combinazione
creditore 1 e creditore 2 tratterrebbe 50 milioni, creditore 1 e creditore 3, 60
milioni mentre creditore 2 e creditore 3, 70 milioni. Anche in questa situazione
c’è una posizione dominante che è quella creditore 2 e creditore 3. Riassumendo
in una tabella avremo:
9
CREDITORI
1
2
3
1,2
1,3
2,3
1,2,3
Residuo del debito
10
20
30
50
60
70
100
Tabella 1
Questo è un esempio tipico che può essere modellizato come gioco cooperativo:
un gruppo di agenti, chiamati giocatori, hanno a disposizione una somma di
denaro da distribuire tra di loro secondo modalità concordate; sottogruppi di
giocatori, chiamati coalizioni, possono disporre di somme inferiori da potersi
ridistribuire se decidono di procedere da soli senza altri giocatori.
Una soluzione al gioco è una distribuzione dell’intera somma che, in qualche
modo, rifletta le varie opportunità disponibili ai giocatori nelle varie coalizioni.
Modelliziamo matematicamente questo problema:
Dato un insieme di giocatori N, l’insieme delle coalizioni è l’insieme di tutti i
sottoinsiemi di N. La forza delle varie coalizioni è misurata dalla funzione
caratteristica v[.] che associa ad ogni coalizione il suo valore, che è
rappresentato dalla somma ad essa disponibile,come se agisse singolarmente.
Dunque un gioco cooperativo G=(N,v) è costituito da:
 Un insieme N di giocatori
N
 Una funzione v:2   definita nell’insieme di tutte le coalizioni.
Facciamo qualche osservazione, riprendendo dei risultati presentati nel
paragrafo precedente:
1.
2.
In modo rigoroso, abbiamo definito una particolare sottoclasse di giochi
chiamati giochi con utilità trasferibile, utilità rappresentata dalla somma
di denaro da distribuire.
La coalizione vuota  e la coalizione totale N sono coalizioni presenti in
qualunque gioco. Per convenzione, il valore della coalizione vuota  è
sempre assunta uguale a zero, (si veda par.1) cioè:
v[]=0
10
3.
Per rendere il gioco interessante occorre che ci sia un surplus da
distribuire, cioè:
vN    v
i
iT
Nella nostra implementazione al calcolatore l’insieme dei giocatori è:
N1,2,3
(1)4
La funzione caratteristica v[] assume i valori relativi alla Tabella 1 dell’esempio
considerato (2);
L’insieme delle coalizioni è l’insieme dei sottoinsiemi di N (3), indicati col
simbolo SN.
E’ opportuno far riferimento all’insieme delle coalizioni proprie vale a dire
all’insieme delle coalizioni escluse la coalizione totale N e l’insieme vuoto 
(4).
2.1. Imputazioni e Soluzioni.
Un risultato di un gioco cooperativo consiste in una allocazione della somma
disponibile v[N] ad ognuno dei giocatori.
Vi è un vettore   (1 ,  2 , n ) , chiamato vettore di payoff la cui somma dei
componenti è v[N]. Ogni componente del vettore è l’allocazione (payoff) per il
giocatore i.
In effetti, un vettore di payoff è una mappa dall’insieme dei giocatori
all’insieme dei numeri reali (5).
E’ utile estendere la definizione di allocazione [.] per includere sia coalizioni
che giocatori individuali, vale a dire che:
 S     i 
iS
rappresenta la somma totale accumulata dai componenti di S in base alle
allocazioni . (9).
Possiamo rappresentare il requisito che una allocazione esaurisce la somma
disponibile, con la condizione che chiamiamo convenzionalmente Ottimalità di
Pareto (6).
Sulla base del fatto che nessun giocatore sarebbe disposto ad accordarsi per
4
Da questo momento in poi, i numeri inseriti in parentesi tonda (.) fanno riferimento alle
linee del programma, sviluppato e riportato di seguito nel paragrafo 3.
11
nessun risultato che dia meno del suo valore v[i], concentriamo l’attenzione
sul sottoinsieme di allocazioni per le quali risulta  [i]v[i] per ogni i. Questa
restrizione sulle assegnazioni ammesse, è chiamata Razionalità Individuale (7)
ed utilizza una funzione per rappresentare la disuguaglianza  [i]v[i]
sull’insieme dei giocatori N.
Le allocazioni che sono Pareto-Ottime e Individualmente Razionali sono
chiamate imputazioni. L’insieme delle imputazioni per un insieme G, che
indicheremo con I[G], è


I G    x  n /  xi  vT   xi  vi i 
iT


che può essere definita come l’insieme di soluzioni al sistema di disuguaglianze
(10).
Per esempio nel nostro caso l’insieme delle imputazioni (10) ha come risultato:
 1  10
 2  20
 3  30
 1   2   3  100
I punti di estremo dell’insieme delle imputazioni sono descritti in (15).
Prima di procedere diamo adesso alcune definizioni:
Sia C un insieme convesso sottoinsieme dello spazio affine An5,per ogni
famiglia C di insiemi convessi,  C è anche convesso. La chiusura convessa
C(P) di un insieme finito di punti P  p0 , p1 ,  p k in An è chiamata cella
convessa, e dim( p0   pk ) è chiamata dimensione della cella convessa. In
particolare, quando p0 , p1 , pk sono indipendenti, C(P) è chiamato simplesso kdimensionale di vertici p0 , p1 , pk . Il simplesso 1-dimensionale avente due punti
distinti p e q come vertici è il segmento pq , e i vertici p e q sono chiamati limiti
del segmento. Un punto è considerato un simplesso 0-dimensionale. Ogni
simplesso 2-dimensionale è chiamato triangolo ed ogni simplesso 3dimensionale è chiamato tetraedro. Un simplesso k-dimensionale S con vertici
5
Lo spazio affine A si dice di dimensione n (dim A=n) se e solo se il numero massimo di
punti indipendenti in A è n+1.
12
è un insieme di punti le cui coordinate del baricentro
 (0    k ,    1) soddisfano la condizione   0 riguardo ai vertici.
Tornando adesso al nostro esempio, il grafico di Fig.1, ricavato da (16) illustra
graficamente che l’insieme delle imputazioni per un gioco a tre giocatori è un
sottoinsieme del simplesso 2-dimensionale in  3 .
In generale lo spazio delle imputazioni per ogni gioco a n giocatori è un
simplesso a dimensione n-1. Di conseguenza, convenzionalmente si illustra il
concetto di soluzione per giochi a tre giocatori con un simplesso 2-dimensionale
e il concetto di soluzione per giochi a quattro giocatori con un simplesso a 3
dimensioni (fig.1).
Una soluzione del gioco comprende o un particolare risultato (imputazione) o
un insieme di risultati (imputazioni).
Possiamo suddividere i concetti di soluzione per giochi cooperativi in due
classi:
p0 , p1 , pk

1.
2.
Point valued – una funzione dall’insieme dei giochi all’insieme delle
imputazioni.
Set valued – una corrispondenza dall’insieme dei giochi all’insieme delle
imputazioni.
Vediamo adesso l’esempio più importante appartenente alla seconda classe di
soluzioni: il ”Core”.
2.2. Alcune considerazioni sulla soluzione di tipo “Core”.
Il concetto di “Core” è importante, in quanto fornisce un’idea di quali siano i
risultati da escludere in forza del fatto che dimostrano la non convenienza
(economica) ad agire come coalizione ma bensì atomisticamente. Una
allocazione  è razionale per la coalizione se nessuna coalizione riceve meno
del suo valore, cioè:
 [S]v[S] S.
Analoghi requisiti sono richiesti affinché ci sia razionalità individuale. Questo
viene espresso al p.to (8) del programma.
Il “Core” di un gioco, indicato con Core[N,v], è semplicemente l’insieme di
tutte le allocazioni Razionali e Pareto-Ottime per la coalizione cioè:
13


Core[ N , v]     n /  i  vN    S   vS S 
iN


Poiché la Razionalità per la coalizione implica la Razionalità Individuale, la
soluzione di tipo “Core” è sempre un sottoinsieme dell’insieme delle
imputazioni (11).
Nel nostro esempio questa soluzione è definita dal sistema di disequazioni dato
come output dal p.to (13) del programma.
Il modo più semplice di apprezzare il “Core” è rappresentarlo graficamente,
cosa possibile nel caso di tre e quattro giocatori. La funzione definita al p.to
(12) e richiamata dopo al p.to (17) produce in output il grafico (Fig. 2) di quanto
esposto.
3. Programma e Grafici
(* Condizioni Iniziali *)
GiocoEsempio := (
N = {1,2,3};
Clear[v];
v[{}]
= 0;
v[{1}]
= 10;
v[{2}]
= 20;
v[{3}]
= 30;
v[{1,2}]
= 50;
v[{1,3}]
= 60;
v[{2,3}]
= 70;
v[N] = 100;
)
(1)
(2)
Coalizioni := Subsets[N];
CoalizioniProprie := Rest[Drop[Coalizioni,-1]];
VettorePayoff
:= x /@ N;
(3)
(4)
(5)
(*
Descrizione del Vettore di payoff
*)
ParetoOttimalità := [T] == v[T];
RazionalitàIndividuale :=  [#] >=v[{#}] & /@ N;
(6)
(7)
14
RazionalitàCoalizionale :=  [#] >= v[#] & /@ CoalizioniProprie;
(8)
Options[Draw] = {ConstraintLabels ->True};
 [S_List] := Plus @@  /@ S
(9)
Imputazioni[game_:Null] :=
Append[RazionalitàIndividuale, ParetoOttimalità]
(10)
Core[game_:Null] :=
Append[RazionalitàCoalizionale, ParetoOttimalità]
(11)
CoreQ[game_:Null] := v[T] >=
ConstrainedMin[ [T],
RazionalitàCoalizionale,
VettorePayoff][[1]]
InCoreQ[y_List,game_:Null] := And @@
Core[game] /. Payoff[y]
Blocking[y_List,game_:Null] := Module[{violated},
violated = Flatten @
Position[Core[game] /. Payoff[y], False];
Part[Rest[Coalitioni], violated]
]
(*
Grafici
*)
Draw[objects_, opts___] := Module[{cLabels},
cLabels = ConstraintLabels /. {opts} /. Options[Draw];
Show[Graphics[{
Simplex[],
objects /. {
pt_?NVectorQ :> {PointSize[0.03], Point[pt]},
{pt_?NVectorQ,label_String} :>
{PointSize[0.01], Point[pt],
Text[label,pt,{0,1}]},
(12)
15
{pt1_?NVectorQ, pt2_?NVectorQ} :>
{Thickness[0.02], Line[{pt1,pt2}]},
ineq_GreaterEqual :> plotConstraint[ineq,cLabels],
eqn_Equal :> {}
}
}] /.toSimplex,
PlotRange -> All
]]
toSimplex = {x1_?NumberQ, x2_?NumberQ, x3_?NumberQ} ->
{(x2-x1) Sqrt[3]/2, x3-(x1+x2)/2};
Simplex[] := Module[{unitVectors},
unitVectors = IdentityMatrix[Length[T]];
{{Thickness[0.01],
Line[(v[N] Append[ unitVectors, First[unitVectors]])]},
MapThread[Text[FontForm[#1,{"Courier",20}],#2] &,
{N,(1.1 v[N] unitVectors)}]}
]
plotConstraint[ineq_, labels_] :=
Module[{p, fixedcomp, offset=v[N]/4, textpoint},
p = Solve[{Equal @@ ineq,
ParetoOptimality},VettorePayoff];
p = Flatten[VettorePayoff /. p];
fixedcomp = First[Select[p,NumberQ]];
p = {p /.  [_] -> - offset, p /.  [_] ->
v[N] - fixedcomp + offset};
If[labels,
List[Line[p],
Text[
HoldForm[v] @ Variables[ineq[[1]]] /.  [i_] -> i,
(textpoint = p[[2]] /. toSimplex),
- Sign[textpoint]]
],
Line[p]
]
]
(*
Funzione di Utilità
16
*)
Payoff[y_List] := Thread[Rule[VettorePayoff,y]]
Subsets[N_List] :=
Sort[Flatten /@ Distribute[{{},{#}} & /@ N, List]]
Core[GiocoEsempio] // MatrixForm
Imputations[GiocoEsempio] //TableForm
extremepoints = {{10,20,70}, {10,60,30}, {50,20,30}};
Show[Graphics3D[{{Hue[0.4],Polygon[v[N]
IdentityMatrix[3]]}, {Hue[0.6],Polygon[extremepoints]}}],
Lighting -> False,
Axes -> True, ViewPoint -> {2.627,-1.122,1.310}]
Draw[Core[GiocoEsempio]]
(13)
(14)
(15)
(16)
(17)
17
Grafici.
Fig.1
Fig.2
18
4. Conclusioni.
Il “Core” rappresenta un importante condizione da imporre alla soluzione di un
gioco e risulta particolarmente appropriata in alcune applicazioni. Per esempio
nella teoria della allocazione dei costi, allocazioni soddisfacenti la soluzione
proposta possono essere individuate in quelle che non producono esternalità
negative gravanti sulla collettività. I limiti, invece, risiedono nel fatto che in
molti giochi il “Core” è o troppo grande (quindi non abbastanza selettivo) o
troppo piccolo (cioè vuoto).
Il nucleolo rappresenta un interessante affinamento che fornisce un'unica
soluzione appartenente al “Core” se questo non è vuoto. Il “Core”, quindi,
rappresenta un approccio fondamentale per dare una soluzione a giochi di tipo
cooperativo, orientati alla selezione (screening) di insiemi di imputazioni che in
qualche modo contengono risultati significativi per il decisore.
BIBLIOGRAFIA
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Ferrara M., Cooperative Games with trasferable utilty, in “Quaderni
dell’Istituto di Matematica” n.2, 1997.
von Newman J., Morgestern O., Theory of Games and economic
behaviour, Princeton University Press, 1944.
Gambarelli G., Giochi competitivi e cooperativi, CEDAM, 1997.
Hart, S., and A. MasColell (1989): Potential, Value and Consistency.
Econometrica.
Luce, R.D., and H Raiffa, (1957): Games and Decisions. New York:
Wiley.
Maschler, M., Peleg, B., and Shapley, L. S. (1979): “Geometric
Properties of the Kernel, Nucleolus and Related Solution Concepts”,
Mathematics of Operations Research.
Owen, G. (1982) Game Theory.2nd edition New York: Academic
Press.
Shubik, M. (1982) Game Theory in the Social Sciences. Concepts and
Solutions. Cambridge, MA: MIT Press.
Young, H. P. (1988): Cost Allocation: Methods, Principles,
Applications. Amsterdam: North Holland.
Wolfram S, Mathematica (1991): A System for Doing Mathematics by
Computer, 2nd edition.