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 iN 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) iN 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 ' iS (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 iN 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) | is i v(S), S 2N} Dimostrazione: Scegliamo un C(N, v),), e supponiamo che esiste un S tale che is i v(S). Indichiamo con v(S)-isi definiamo ’ n, come i S , se i S i' d i ) , se i S v( S (3) dove, d v(N) - v(S) - is 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 is i’ v(S) and i’ i per tutte le i S. Per cui, is 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 iS iN 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 is i v(S) e is i v(S), per ogni S. La superadditività di v e le definizioni implicano che a v(N) iN i v(S) + v(S) a. Per cui, isiv(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)CC + con la proprietà che w cC ,iC c 1, per ogni i N (5) La condizione (5) è equivalente a w x CC 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)cC si ha: wcv (C ) v ( N ) (7) CC 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 cC. 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 cC 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 è CC 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 ) C2 N R2 , wc 1, i N (8) c2 N ,iC C2 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)CC un sistema associato di pesi. Definiamo w' = (w’c)C2N 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) C2N w’cv(C) CC 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)C2N R2 di (D) (supponendo che esistano sempre soluzioni ammissibili). Indichiamo con C {C 2N wC 0.Ovviamente, C e (wc)cC dimostrano la definizione di equilibrio. Allora, c2N wc v(C) cCN 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è: vN v i iT Nella nostra implementazione al calcolatore l’insieme dei giocatori è: N1,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 SN. 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 iS 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 vT xi vi i iT 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 vN S vS S iN 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.