Salta ai contenuti

Somma zero, somma generale

La torta è di dimensione fissa o può crescere? Da questa sola domanda dipende se due agenti convergono ad antagonismo o a cooperazione, e se un teorema esiste o solo un’euristica.

Il capitolo precedente ha fissato la grammatica: cosa è un giocatore, cosa è una strategia, cosa è un payoff, cosa è un equilibrio. Ora la prima distinzione strutturale che cambia tutto: la somma dei payoff è costante o no? Sembra un dettaglio aritmetico. È invece la più importante leva concettuale per capire perché certi sistemi AI funzionano e altri oscillano, perché certi multi-agent system convergono e altri collassano, perché RLHF non è semplicemente regressione e perché GAN ha un training notoriamente instabile.

In somma zero quello che vinco lo perdi. Non c’è nulla da creare, solo da spostare. Esiste un teorema potente — il minimax di von Neumann — che dice che il gioco ha un valore unico e strategie ottimali ben definite. Il problema diventa di calcolo: trova la strategia che ti garantisce il valore. Le architetture di training che si appoggiano su questa struttura — adversarial training, generative adversarial networks, self-play simmetrico — ereditano la pulizia matematica e l’instabilità pratica di un mondo zero-sum.

C’è una ragione strutturale per cui la distinzione conta più di quanto sembri a prima vista. In zero-sum esiste un teorema forte (minimax) che garantisce un valore unico del gioco e una procedura ben definita per trovarlo. In non-zero-sum esiste un teorema più debole (esistenza di Nash) che garantisce solo che almeno un equilibrio esiste, senza unicità e senza algoritmo efficiente in generale. Il salto da una classe all’altra è il salto da una matematica chiusa a una matematica aperta. Per chi progetta sistemi multi-agent, questo significa: prima di scegliere algoritmi, classifica il regime di payoff, perché ogni regime ha la sua cassetta degli attrezzi e i suoi limiti.

In somma generale la torta varia con le scelte. La cooperazione può creare valore congiuntamente, la competizione può distruggerlo. Esiste sempre almeno un equilibrio di Nash, ma in generale ce ne sono molti, alcuni Pareto-dominati da altri, e il problema di sceglierne uno è separato dal problema di esistenza. Quasi tutti i sistemi che chiamiamo “multi-agent” nel senso pieno — RLHF, mechanism design, marketplaces, alignment — vivono in questo regime. Capire perché non ci si può limitare a un teorema solo è il salto concettuale di questo capitolo.

Una terza ragione per dedicare un capitolo a questa distinzione: è il fondamento concettuale per il dibattito sull’alignment fra capability e safety. Se modelliamo l’AI safety come un gioco a somma zero fra “potenza del modello” e “controllo umano” — più potente, meno controllabile, e viceversa — finiamo in scenari adversari che premono verso un trade-off netto. Se invece la modelliamo come gioco non-zero — capability e safety possono crescere insieme se il design è giusto — apriamo lo spazio a soluzioni cooperative. La scelta del modello di payoff non è neutra, e influenza profondamente cosa consideriamo “soluzione” del problema dell’allineamento. Tornare a questo punto è uno degli scopi del capitolo finale di questa Parte sul ponte gioco-principal-agent.

Il punto di partenza è il 1928. Il matematico ungherese-americano John von Neumann, già a 25 anni una delle menti più rapide del Novecento, pubblica Zur Theorie der Gesellschaftsspiele (Sulla teoria dei giochi di società) negli Mathematische Annalen. Contiene la prima dimostrazione del teorema minimax: in un gioco finito a due giocatori a somma zero esiste un valore del gioco e una coppia di strategie miste che lo realizzano. È il primo risultato strutturale forte della teoria. Vale solo per zero-sum a due giocatori. Per altri ventidue anni la teoria non si muove molto fuori da quel perimetro.

Il salto a somma generale arriva nel 1950 con un dottorando di Princeton, John Forbes Nash Jr., matematico americano, che generalizza il minimax a n giocatori non necessariamente a somma zero. Per ogni gioco finito esiste almeno un equilibrio in strategie miste — quello che oggi chiamiamo equilibrio di Nash. La nota di pagina e mezza in Proceedings of the National Academy of Sciences è il certificato di nascita della teoria moderna del non-zero-sum. Nash riceverà il Nobel per l’economia nel 1994 insieme a Reinhard Selten e John Harsanyi.

Negli anni Sessanta, l’economista americano Thomas Schelling pubblica The Strategy of Conflict (1960, Harvard University Press), libro che la critica internazionale considera il fondamento della teoria moderna dei conflitti misti: pure conflict (zero-sum) e mixed-motive games (non-zero-sum) richiedono strumenti diversi, e Schelling distingue per primo questi due regimi con nettezza editoriale. Robert Axelrod, politologo americano, nel 1984 pubblica The Evolution of Cooperation, che racconta i tornei sull’iterated prisoner’s dilemma e il successo della strategia tit-for-tat: la cooperazione può emergere in giochi non-zero ripetuti senza autorità centrale.

Fra il 1928 di von Neumann e il 1950 di Nash passano ventidue anni in cui la teoria fa pochi progressi visibili. Le ragioni sono varie: la guerra mondiale assorbe matematici, la difficoltà di trovare un linguaggio matematico adatto ai non-zero-sum, lo scetticismo degli economisti tradizionali. Nel 1944 von Neumann pubblica con l’economista austriaco Oskar Morgenstern Theory of Games and Economic Behavior (Princeton University Press), trattato di ottocento pagine che pone le basi di un programma di ricerca ambizioso: rifondare l’economia sulla matematica della decisione strategica. Il libro dà alla teoria dei giochi visibilità e attira giovani matematici ed economisti — Kenneth Arrow, Gerard Debreu, Lloyd Shapley, Martin Shubik, lo stesso Nash. Negli anni Sessanta Selten introduce il subgame perfect equilibrium per giochi sequenziali; Harsanyi estende a informazione incompleta. Negli anni Settanta-Ottanta Robert Aumann formalizza common knowledge e ripetuti. Negli anni Novanta nasce l’algoritmica dei giochi (Christos Papadimitriou, Constantinos Daskalakis, Paul Goldberg). Negli anni 2010 il deep learning importa massicciamente questo vocabolario.

Per il libro, l’attesa di vent’anni fra minimax (zero-sum) e Nash (non-zero-sum) è un promemoria utile: i risultati di esistenza arrivano molto prima dei risultati operativi, e i risultati per regimi semplici (zero-sum) molto prima di quelli per regimi complessi (non-zero-sum). Esistenza di Nash (1950) precede di sessant’anni la PPAD-completezza (2009) che ne pone i limiti computazionali. Esistenza di equilibrio in GAN (Goodfellow 2014) precede di anni la comprensione di perché in pratica il training oscilla. Sistemi che funzionano “in equilibrio” e sistemi che convergono “all’equilibrio” sono cose diverse — un punto a cui torniamo nella sezione “dove si rompe”.

Sul lato AI il filo è altrettanto chiaro. Il programma di scacchi di Claude Shannon (1950) si appoggia implicitamente al minimax. Gerald Tesauro con TD-Gammon (1992) mostra che self-play in un gioco zero-sum produce policy a livello mondiale. AlphaGo (DeepMind, 2016) e AlphaZero (2017) generalizzano. Ian Goodfellow, ricercatore canadese-statunitense, pubblica nel 2014 Generative Adversarial Nets (NeurIPS) inquadrando il training di un modello generativo come gioco minimax fra un generatore e un discriminatore. Nel 2022 il team FAIR di Meta pubblica su Science CICERO, agente di livello umano in Diplomacy: gioco a 7 giocatori semi-cooperativo che mescola fasi zero-sum e non-zero-sum.

Sullo sfondo, una tesi più ambiziosa: Robert Wright, giornalista e saggista americano, in Nonzero: The Logic of Human Destiny (2000, Pantheon) sostiene che la storia umana e biologica si caratterizza per una crescita di interazioni a somma non-zero. È una tesi storiografica, non un teorema. La citiamo come quadro, non come prova.

concept graph: minimax theorem (1928) -> zero-sum 2P; Nash (1950) -> general-sum n-players; bridges to GAN, RLHF, MARL, mechanism design, markets, adversarial training

Vale la pena fissare una piccola tassonomia di partenza. La distinzione zero-vs-non-zero è una delle dimensioni di classificazione di un gioco; abbiamo già visto, nel capitolo precedente, che ci sono altre dimensioni — cooperativo vs non-cooperativo, simultaneo vs sequenziale, informazione perfetta vs imperfetta, completa vs incompleta, one-shot vs ripetuto. Sono dimensioni ortogonali, e una stessa interazione si descrive specificandole tutte. Quando in questo capitolo diciamo “zero-sum” senza altre qualificazioni, intendiamo per default 2 giocatori, finito, non-cooperativo, simultaneo, informazione completa, one-shot. È il caso più semplice e quello su cui si fonda il teorema di von Neumann. Tutti gli altri regimi sono estensioni, ognuna con le sue subtleties.

Una nota terminologica utile. In letteratura inglese si trovano “zero-sum”, “constant-sum”, “non-zero-sum”, “general-sum”, “mixed-motive”. La mappa è semplice: zero-sum è caso speciale di constant-sum (con costante zero), e la differenza è cosmetica. Non-zero-sum, general-sum e mixed-motive sono nomi diversi della stessa classe — giochi in cui la somma dei payoff non è obbligata a essere costante. Schelling preferisce “mixed-motive” perché enfatizza che i giocatori hanno motivazioni in parte allineate e in parte conflittuali; matematicamente è equivalente.

Prima del formalismo, due angoli distinti per arrivare a “somma zero vs somma generale”.

Immagina due persone davanti a una torta. La torta ha 1 chilo. Quello che mangia uno non lo mangia l’altro: ogni morso che prendo è un morso che ti tolgo. Non importa come la dividiamo, il peso totale resta 1 chilo. Questo è il regime somma zero (più precisamente, somma costante: 1 chilo). Le strategie ottimali esistono, ma non c’è nulla da creare. L’unico problema strategico è “quanto riesco a prendere prima di te”.

Adesso immagina che la torta non sia data: c’è una cucina e farina, e voi due dovete decidere se collaborare a cuocere insieme o no. Se collaborate, esce una torta grande. Se litigate, escono due tortine bruciate. Se uno cucina e l’altro non aiuta, esce qualcosa di mediocre. La torta finale dipende da cosa fate entrambi. Questo è il regime somma generale: la torta cresce o si distrugge in funzione delle scelte. Esistono profili di azione che sono Pareto-superiori ad altri — fanno star meglio entrambi — e c’è un problema strategico nuovo: come arrivare al profilo congiunto migliore, dato che ciascuno è tentato di defezionare.

L’analogia della torta è didattica e va marcata come tale: serve a far percepire che la differenza non è un dettaglio aritmetico. Non è una filiazione storica e non è un teorema, è una metafora. Ma cattura il salto: in zero-sum si redistribuisce, in non-zero si crea o si distrugge.

Secondo angolo: la conservazione del payoff totale

Sezione intitolata “Secondo angolo: la conservazione del payoff totale”

Pensa al payoff totale come a una grandezza fisica. In un gioco a somma zero, il payoff totale è conservato come un’energia: quello che un giocatore guadagna lo perde un altro. Le interazioni sono ridistributive. In un gioco a somma generale il payoff totale non è conservato: può aumentare (cooperazione produttiva) o diminuire (competizione distruttiva). Le interazioni sono produttive o distruttive di valore.

Questa metafora fisica chiarisce perché certi sistemi AI funzionano meglio se progettati come zero-sum (adversarial training: vuoi proprio una struttura di pura opposizione per indurre robustezza) e altri lavorano meglio in non-zero (RLHF: vuoi creare valore congiunto fra modello, annotatore e utente). Il regime di payoff è una scelta di progettazione, e la scelta fissa il tipo di dinamica che il sistema può avere.

Considera la frase “io vinco se tu perdi”. In un gioco a somma zero a due giocatori questa frase è letteralmente vera per definizione: la mia utilità è l’opposto della tua. In un gioco a somma generale può essere falsa o solo parzialmente vera. Nel dilemma del prigioniero, una versione canonica del non-zero-sum, c’è una mossa congiunta (entrambi cooperano) che è meglio per entrambi rispetto a un’altra (entrambi defezionano). Perdere insieme è possibile, e vincere insieme pure. La logica strategica cambia di conseguenza.

Per chi progetta sistemi multi-agente, questa è la diagnosi più importante. Se modelli un’interazione come zero-sum dove non lo è, induci antagonismo dove la cooperazione era possibile e stai lasciando valore sul tavolo. Se la modelli come non-zero quando in realtà è puro conflitto, ti aspetti cooperazione che non arriverà. La classificazione è una decisione del progettista, non un dato del sistema.

Fissato il vocabolario, scendiamo nella forma.

Gioco in forma normale. Una tripla (N, A, u) dove N è l’insieme di giocatori, A_i è lo spazio di azioni del giocatore i, A = A_1 x … x A_n il prodotto cartesiano dei profili, u_i: A -> R la funzione di utilità (payoff) del giocatore i.

Somma zero. Un gioco è a somma zero se per ogni profilo a in A: u_1(a) + u_2(a) + … + u_n(a) = 0. È a somma costante se la somma è una costante k. La differenza è cosmetica: traslando tutte le utilità di -k/n si passa da somma costante a somma zero senza cambiare gli incentivi. Useremo “somma zero” includendo somma costante.

Somma generale (non-zero-sum, general-sum): nessun vincolo sulla somma. La classe contiene la somma zero come caso particolare. La distinzione qualitativa: in 2 giocatori a somma zero u_2 = -u_1, quindi un solo numero per cella basta a descrivere il gioco. In somma generale serve una coppia (u_1, u_2) per cella.

Una strategia mista del giocatore i è una distribuzione di probabilità p_i su A_i. L’utilità attesa di un profilo misto (p_1, …, p_n) è il valore atteso E[u_i] sotto la distribuzione prodotto.

Teorema minimax (von Neumann 1928). Sia G = (A_1, A_2, u) un gioco finito a 2 giocatori a somma zero, con A_1, A_2 finiti. Sia Delta(A_i) lo spazio delle strategie miste. Allora:

max_{p in Delta(A_1)} min_{q in Delta(A_2)} E_{p,q}[u(p, q)] = min_{q in Delta(A_2)} max_{p in Delta(A_1)} E_{p,q}[u(p, q)]

Il valore comune si chiama valore del gioco, denotato v*. Esiste una coppia (p*, q*) tale che p* garantisce al giocatore 1 di ottenere almeno v* qualunque strategia adotti il 2, e q* garantisce al giocatore 2 di non perdere più di v* qualunque strategia adotti il 1.

Marco esplicitamente: questa è una affermazione di classe TEOREMA. Esiste una prova matematica (von Neumann la dimostra con argomenti di topologia/punto fisso; più tardi George Dantzig mostra l’equivalenza con il teorema di dualità della programmazione lineare). Vale per giochi finiti a 2 giocatori a somma zero con strategie miste. Non vale, in generale, fuori da questo perimetro.

Conseguenza: in somma zero a 2 giocatori “maxmin = minmax”. Non c’è vantaggio strategico nell’osservare la mossa dell’altro: entrambi possono pre-commitarsi a strategie miste ottimali e raggiungere lo stesso valore atteso. Questa equivalenza CADE in giochi a somma generale. In non-zero-sum, max_p min_q u_1(p, q) <= min_q max_p u_1(p, q) con disuguaglianza in generale stretta. L’ordine di commitment diventa parte della strategia.

Una visualizzazione geometrica utile. Considera la funzione f(p, q) = E[u(p, q)] su Delta(A_1) x Delta(A_2). In zero-sum a 2 giocatori, il giocatore 1 vuole massimizzarla in p, il 2 vuole minimizzarla in q. L’equilibrio (p*, q*) è un punto di sella di f: massimo in p (con q fissato a q*) e minimo in q (con p fissato a p*). La superficie ha la forma di una sella di cavallo, e l’equilibrio è il punto di passaggio.

Questa è la stessa struttura geometrica che si trova nell’ottimizzazione minimax in deep learning. Quando addestri un GAN o un modello adversarially robust, stai cercando un saddle point in uno spazio molto più grande (i pesi delle reti) di una funzione molto più complicata della E[u]. La differenza è che in uno spazio finito convesso il punto di sella esiste e SGD alternato converge sotto ipotesi mild; in uno spazio non-convesso ad alta dimensione né l’esistenza né la convergenza sono garantite. Il pattern visivo è identico, le proprietà matematiche radicalmente diverse.

vector-svg: 3D saddle surface showing f(p,q) for a 2x2 zero-sum game, with the saddle point marked, plus a 2D projection showing maxmin and minmax cuts converging to the same value

Definizione. Un profilo (s_1*, …, s_n*) di strategie (pure o miste) è un equilibrio di Nash se nessun giocatore può migliorare il proprio payoff deviando unilateralmente: per ogni i e per ogni s_i, u_i(s_i*, s_{-i}) >= u_i(s_i, s_{-i}).

Teorema di Nash (1950, 1951). Ogni gioco finito non-cooperativo ha almeno un equilibrio in strategie miste.

Anche questa è una affermazione di classe TEOREMA. La prova originale di Nash usa il teorema del punto fisso di Kakutani; una prova alternativa usa Brouwer. Nei 2 giocatori a somma zero, Nash equilibrio coincide con la coppia maxmin/minmax di von Neumann e dà il valore del gioco.

In somma generale, il Nash NON è in generale unico e NON è in generale Pareto-ottimale. Esempi concreti nella sezione successiva.

Dettaglio matematico utile da ricordare: somma zero e somma costante sono equivalenti dal punto di vista delle strategie ottimali. Se G ha somma costante k, definendo u_i’(a) = u_i(a) - k/n si ottiene un gioco G’ a somma zero con esattamente le stesse strategie ottimali, gli stessi equilibri, lo stesso contenuto strategico. Più in generale, le strategie ottimali sono invarianti per traslazioni affini delle utilità individuali (a patto di non cambiare i confronti relativi che contano per la decisione). Questo significa che la “scala” assoluta delle utilità non importa per la teoria classica — importa solo la struttura relativa dei payoff.

Per agent system, questa è una proprietà importante: si possono normalizzare le utilità (z-score, min-max, ranking) senza alterare l’analisi strategica. Allo stesso tempo, è una sottigliezza che cade quando si introducono utilità non-trasferibili o quando la magnitudine dei payoff entra in gioco (rischio di rovina, vincoli di budget, soglie di sopravvivenza). Per questi casi serve una teoria più sofisticata che esce dal perimetro di questo capitolo.

Il fatto che un equilibrio di Nash possa essere Pareto-dominato da un altro profilo è il cuore del problema strategico in non-zero-sum. Un profilo a* è Pareto-ottimale se non esiste un altro profilo a tale che u_i(a) >= u_i(a*) per ogni i e u_j(a) > u_j(a*) per almeno un j. In zero-sum, ogni profilo è banalmente Pareto-ottimale: per migliorare uno bisogna peggiorare l’altro per definizione. In non-zero-sum, esistono profili Pareto-superiori al Nash. Il dilemma del prigioniero è il caso paradigmatico: l’unico Nash è (D, D) ma (C, C) lo Pareto-domina. La razionalità individuale si scontra con l’efficienza collettiva.

Quando la cooperazione è permessa (giochi cooperativi, accordi vincolanti), si possono usare soluzioni assiomatiche come il Nash bargaining solution (Nash 1950, articolo separato dal precedente): assegna a ogni problema di bargaining un punto specifico sulla frontiera di Pareto, caratterizzato da assiomi di simmetria, indipendenza da alternative irrilevanti, invarianza affine, efficienza. Più in generale, lo Shapley value (Shapley 1953) distribuisce il valore di una coalizione in modo equo rispetto al contributo marginale dei membri. Sono strumenti centrali della teoria dei giochi cooperativi, oggetto del capitolo dedicato.

Per il presente capitolo basta tenere a mente che in non-zero-sum esistono almeno tre concetti di soluzione distinti — equilibrio di Nash (non-cooperativo, plausibile come previsione di comportamento razionale), Pareto-ottimo (efficienza congiunta), bargaining solution (equa divisione del valore creato dalla cooperazione). Confonderli è un errore comune nei progetti multi-agent.

Per fissare le idee, ecco come si calcola il valore di un gioco 2x2 a somma zero quando esistono strategie miste ottimali. Sia M la matrice 2x2 dei payoff per il giocatore 1.

def minimax_2x2(M):
# M = [[a, b], [c, d]]: payoff matrix per il giocatore 1.
a, b = M[0]
c, d = M[1]
# Cerchiamo p tale che il giocatore 2 sia indifferente fra colonne.
# Probabilità p di scegliere riga 0 per giocatore 1.
# Indifferenza per giocatore 2: p*(-a) + (1-p)*(-c) = p*(-b) + (1-p)*(-d)
# Semplificando: p*(d - b - a + c) = d - c
denom_p = (a - b - c + d)
if denom_p == 0:
# Caso degenere: equilibrio in pure o LP completo.
return None
p = (d - c) / denom_p
# Probabilità q di scegliere colonna 0 per giocatore 2.
denom_q = (a - b - c + d)
q = (d - b) / denom_q
# Valore del gioco
v = a*p*q + b*p*(1 - q) + c*(1 - p)*q + d*(1 - p)*(1 - q)
return p, q, v

Spiegato per riga: la riga denom_p calcola il denominatore comune del sistema di indifferenza che garantisce al giocatore 2 la stessa utilità attesa qualunque colonna scelga (questa è la condizione affinché una mista sia equilibrio). Le righe p = ... e q = ... sono le soluzioni esplicite del sistema 2x2. La riga v = ... valuta la matrice nel profilo (p, q): è il valore del gioco. Per matrici più grandi servirebbe un programma lineare standard (la versione duale dà direttamente p e q).

Vale la pena spendere una riga sulla condizione di indifferenza. In equilibrio misto, ogni giocatore deve essere indifferente fra le strategie pure su cui mette probabilità positiva. Se così non fosse, il giocatore guadagnerebbe spostando massa di probabilità sull’opzione migliore — non sarebbe più equilibrio. Questa condizione di indifferenza è ciò che permette di calcolare l’equilibrio risolvendo un sistema lineare nelle probabilità dell’avversario, non nelle proprie. È un punto sottile ma fondamentale: in un equilibrio misto, la mia strategia è scelta in modo da rendere l’altro indifferente, e viceversa. È il motivo per cui in matching pennies il 50/50 è ottimale: rende l’avversario indifferente.

Per giochi a somma generale 2x2 si applica una logica simile, ma il sistema da risolvere è più articolato perché la matrice ha due payoff per cella. L’equilibrio si calcola con il metodo di Lemke-Howson (1964) o, per giochi piccoli, brute force su tutti i possibili supporti. In giochi più grandi, come anticipato, il problema è PPAD-completo.

Una distinzione che vale la pena rendere esplicita. Il teorema di Nash dice che un equilibrio esiste; non dice come trovarlo. Lo stesso vale per il teorema di von Neumann: garantisce esistenza del valore del gioco, ma la prova originale (via Brouwer/Kakutani) è non costruttiva. Le procedure operative (programmi lineari, fictitious play, regret minimization) sono sviluppi successivi e in alcuni casi (giochi a somma generale grandi) non hanno garanzie polinomiali.

Per chi viene da un background ingegneristico questo gap fra esistenza e costruzione è spesso sorprendente. La matematica garantisce che la soluzione c’è ma lascia il problema computazionale aperto. È uno dei motivi per cui la teoria dei giochi computazionale è una disciplina viva e in evoluzione.

In questo senso, lavorare con sistemi multi-agent reali significa accettare di muoversi in un regime in cui i teoremi danno esistenza ma non garanzie operative, e in cui la pratica colma il vuoto con euristiche, esperimenti, ingegneria. Non è un difetto della teoria; è la natura del problema.

Un concetto operativo importante anche fuori da zero-sum: la strategia maxmin (anche detta strategia di sicurezza o strategia conservativa). Per il giocatore i, è la strategia che massimizza il payoff garantito nel caso peggiore: argmax_{s_i} min_{s_{-i}} u_i(s_i, s_{-i}). In zero-sum a 2 giocatori coincide con la strategia di equilibrio (per il teorema minimax). In non-zero-sum è in generale diversa dall’equilibrio Nash, ma resta utile come baseline: dà al giocatore un payoff minimo garantito indipendentemente da cosa fanno gli altri.

Per agent system con avversari ignoti o non modellabili, la maxmin è spesso il punto di partenza prudente. Si rinuncia all’ottimo possibile in cambio della garanzia di un minimo. È il principio di robust optimization applicato alla strategia: ottimizza per il caso peggiore, non per il caso medio. In adversarial training questo è esplicito; in mechanism design è implicito quando si chiede che le proprietà desiderate (truthfulness, individual rationality) valgano in equilibrio dominante e non solo in equilibrio Bayesiano.

Una domanda naturale: quando un gioco a somma zero ammette equilibrio in strategie pure, senza bisogno di miste? La risposta è: quando la matrice ha un punto di sella. Un elemento M[i][j] è un punto di sella se è il minimo della sua riga e il massimo della sua colonna. In quel caso il giocatore 1 sceglie deterministicamente la riga i, il 2 sceglie deterministicamente la colonna j, e il valore del gioco è M[i][j]. Non tutti i giochi a somma zero hanno punto di sella (matching pennies non lo ha), ma quelli che ce l’hanno permettono soluzione in pure. È una condizione che si verifica più spesso in giochi sequenziali a informazione perfetta (scacchi, dama, Go in versione finita) per via della backward induction. Per giochi simultanei in forma normale è raro: la regola è strategie miste.

In giochi sequenziali la nozione di strategia mista si scinde in due. Una strategia mista è una distribuzione di probabilità su strategie pure (piani completi che specificano cosa fare in ogni nodo decisionale). Una strategia behavior è una distribuzione di probabilità sulle azioni in ogni nodo, indipendentemente. Kuhn (1953) dimostra che in giochi a richiamo perfetto le due nozioni sono equivalenti — generano le stesse distribuzioni sui risultati. Per giochi a richiamo imperfetto possono divergere. È un dettaglio tecnico ma rilevante per agenti LLM che decidono in molti turni: il “richiamo perfetto” assume che l’agente ricordi tutte le sue azioni passate, ipotesi che con context window limitate è false.

Esempio 1 — Matching pennies, calcolo numerico (zero-sum)

Sezione intitolata “Esempio 1 — Matching pennies, calcolo numerico (zero-sum)”

Due giocatori scelgono indipendentemente Testa (T) o Croce (C). Se le scelte coincidono, il giocatore 1 vince un euro dal 2; se differiscono, il 2 vince un euro dal 1. Matrice di payoff per il giocatore 1:

T C

T [ +1 -1 ] C [ -1 +1 ]

Nessun equilibrio in strategie pure: per ogni scelta deterministica esiste una controdeviazione. Cerchiamo l’equilibrio in miste. Sia p la probabilità che il giocatore 1 scelga T, q la probabilità che il 2 scelga T. L’utilità attesa del giocatore 1 è:

u_1 = pq(+1) + p*(1-q)(-1) + (1-p)q(-1) + (1-p)(1-q)(+1) = (2q - 1)(2p - 1)

Il giocatore 2 sceglie q per minimizzare u_1. Se p > 1/2, il 2 sceglie q = 0 e u_1 = -(2p-1) < 0. Se p < 1/2, sceglie q = 1 e u_1 = -(1-2p) < 0. L’unico p che garantisce al 1 un valore non negativo qualunque sia q è p = 1/2. Per simmetria, q = 1/2. Valore del gioco: v = 0. Strategia ottimale: 50/50 per entrambi.

Lezione operativa: in matching pennies, contro un avversario ottimale, qualunque tua strategia non-uniforme può essere sfruttata. Solo l’uniforme è invulnerabile. Questa è la versione canonica della “ricetta” minimax: rendi la tua strategia indecifrabile facendo l’altro indifferente.

Esempio 2 — Iterated prisoner’s dilemma, codice (non-zero-sum, ripetuto)

Sezione intitolata “Esempio 2 — Iterated prisoner’s dilemma, codice (non-zero-sum, ripetuto)”

Il dilemma del prigioniero one-shot ha matrice (payoff in (utilità, utilità)):

C D

C [(3, 3) (0, 5)] D [(5, 0) (1, 1)]

Unico Nash: (D, D) con payoff (1, 1). Pareto-dominato da (C, C) con (3, 3). In one-shot la teoria predice defezione mutua. In ripetuto cambia tutto: la cooperazione può emergere come equilibrio di un super-gioco. Simulazione numerica con tit-for-tat (TFT, strategia di Anatol Rapoport che vinse il torneo di Axelrod):

import numpy as np
def play(strategy_a, strategy_b, n_rounds=200, payoff=None):
if payoff is None:
payoff = {('C','C'):(3,3), ('C','D'):(0,5),
('D','C'):(5,0), ('D','D'):(1,1)}
history_a, history_b = [], []
score_a, score_b = 0, 0
for t in range(n_rounds):
a = strategy_a(history_a, history_b)
b = strategy_b(history_b, history_a)
pa, pb = payoff[(a, b)]
score_a += pa
score_b += pb
history_a.append(a)
history_b.append(b)
return score_a, score_b
def tit_for_tat(my_hist, opp_hist):
return 'C' if not opp_hist else opp_hist[-1]
def always_defect(my_hist, opp_hist):
return 'D'
def always_cooperate(my_hist, opp_hist):
return 'C'
# Esecuzioni
print(play(tit_for_tat, tit_for_tat)) # (600, 600)
print(play(tit_for_tat, always_defect)) # (199, 204)
print(play(tit_for_tat, always_cooperate)) # (600, 600)
print(play(always_defect, always_cooperate)) # (1000, 0)

Spiegato per riga: la funzione play simula n_rounds partite del dilemma del prigioniero, accumulando score. tit_for_tat coopera al primo turno e poi imita l’ultima mossa dell’avversario. Le esecuzioni mostrano che TFT contro TFT produce (600, 600) — cooperazione perfetta. TFT contro AD viene punita una volta sola e poi defeziona. TFT contro AC coopera sempre. AD contro AC sfrutta — ma in popolazione mista AD non si replica facilmente.

Lezione: la struttura non-zero del gioco apre la porta alla cooperazione, ma serve memoria, ripetizione, e una strategia che punisca selettivamente. Tit-for-tat è “nice” (mai defeziona per primo), “retaliating” (punisce immediatamente), “forgiving” (riprende a cooperare appena l’altro lo fa), “clear” (facile da leggere per l’avversario). Quattro proprietà che Axelrod identifica come ricetta empirica per cooperazione robusta.

Una nota storica importante. Il torneo di Axelrod del 1980 raccolse strategie inviate da accademici (informatici, matematici, economisti, biologi). TFT, inviata da Anatol Rapoport, vinse pur essendo la più semplice (poche righe di codice). Il torneo iterato — quello in cui i risultati di un round influenzano la composizione delle strategie nel round successivo, simulando selezione evolutiva — confermò il risultato. La lezione applicata ai sistemi multi-agent: in ambienti popolati da molte strategie diverse, le strategie semplici, oneste e robuste tendono a sopravvivere meglio di quelle complesse e opportunistiche. Per agent system reali, questa è un’osservazione operativa: design semplici e prevedibili spesso superano design sofisticati ma fragili.

vector-svg: payoff stream over time for IPD: TFT vs TFT (steady cooperation, monotone increase), TFT vs always-defect (one cooperation then permanent defection), TFT vs random (oscillating with average between cooperation and defection)

Esempio 3 — GAN come zero-sum, scenario reale (deep learning)

Sezione intitolata “Esempio 3 — GAN come zero-sum, scenario reale (deep learning)”

Goodfellow et al. (2014) costruiscono il training di un modello generativo come gioco a somma zero a due giocatori. Sia G una rete generatore che mappa rumore z ~ p_z in campioni G(z). Sia D una rete discriminatore che prende un campione x e produce D(x) in [0,1], la probabilità che x sia un dato reale. La loss congiunta è:

V(D, G) = E_{x ~ p_data}[log D(x)] + E_{z ~ p_z}[log(1 - D(G(z)))]

Il discriminatore massimizza V (vuole identificare correttamente i veri e i falsi). Il generatore minimizza V (vuole ingannare il discriminatore). Equivalenza marcabile: il payoff del generatore è -V, quindi G e D giocano un gioco a somma zero in payoff.

Equilibrio di Nash teorico: G* tale che p_G = p_data (la distribuzione generata coincide con quella reale), D* identicamente uguale a 1/2 (il discriminatore non distingue meglio del caso). Valore del gioco al punto fisso: -log 4. Il problema teorico ha una soluzione pulita.

Il problema pratico no. Il teorema minimax richiede compattezza degli spazi e concavità/convessità del payoff nei due argomenti. I pesi delle reti neurali vivono in spazi alta-dimensione e V è non-concava non-convessa nei pesi. SGD alternato (un passo di D, un passo di G) non converge in generale all’equilibrio: oscilla, gira in cicli, collassa in mode collapse (G genera solo poche modalità della distribuzione vera, D non riesce a punirlo abbastanza). Tutta la letteratura su Wasserstein GAN, spectral normalization, gradient penalty, two-time-scale updates è una serie di trucchi per “raddrizzare” il gioco a somma zero abbastanza da farlo convergere.

Lezione strutturale: GAN è il caso paradigmatico di sistema progettato esplicitamente come zero-sum minimax. La sua eleganza concettuale e la sua instabilità pratica derivano dalla stessa scelta architettturale.

flowchart LR
  Z[noise z ~ p_z] --> G[Generator G]
  G --> Fake[sample fake]
  Real[dati reali x ~ p_data] --> D[Discriminator D]
  Fake --> D
  D --> V["V(D, G) = E[log D(x)] + E[log(1 - D(G(z)))]"]
  V -- maximize w.r.t. D --> D
  V -- minimize w.r.t. G --> G
  V -.zero-sum.- V

Figura 6 — training loop GAN come gioco zero-sum tra Generator e Discriminator, con V(D, G) ottimizzato in direzioni opposte (max rispetto a D, min rispetto a G)

vector-svg: side-by-side payoff matrices for matching pennies (zero-sum: single number per cell) vs prisoner's dilemma (non-zero-sum: pair per cell), with arrows indicating Nash equilibria and Pareto-superior cells

Esempio 4 — Stag hunt e battle of the sexes (coordinazione non-zero)

Sezione intitolata “Esempio 4 — Stag hunt e battle of the sexes (coordinazione non-zero)”

Per fissare l’idea che non-zero-sum non implica automaticamente cooperazione facile, due esempi più sottili.

Stag hunt (caccia al cervo, parabola di Rousseau). Due cacciatori possono decidere di cacciare un cervo (S) — che richiede cooperazione e produce un grosso bottino — o una lepre (H) — che si caccia da soli con bottino piccolo ma sicuro:

S H

S [(4, 4) (0, 3)] H [(3, 0) (3, 3)]

Due Nash in pure: (S, S) e (H, H). Il primo è Pareto-superiore (4 contro 3), ma il secondo è “risk-dominant” perché paga 0 se l’altro defeziona, mentre H paga 3 in qualunque caso. Il dilemma non è “cooperare o tradire” ma “fidarsi o no”. Per un sistema multi-agent che deve coordinare su un equilibrio Pareto-superiore, serve un meccanismo di selezione (segnalazione, focal points, comunicazione preliminare).

Battle of the sexes. Due partner devono scegliere un’attività serale, opera (O) o football (F). Preferenze diverse ma entrambi preferiscono stare insieme:

O F

O [(2, 1) (0, 0)] F [(0, 0) (1, 2)]

Due Nash in pure (O, O) e (F, F), più uno in miste. Asimmetria: ognuno preferisce un equilibrio diverso. Lezione: non-zero-sum non implica simmetria. Coordinazione su “quale” equilibrio è un problema politico, non solo tecnico. In un agent system con preferenze divergenti, serve un mechanism design che selezioni un equilibrio (alternanza, lottery, hierarchy).

Entrambi gli esempi mostrano che la classificazione non-zero-sum è solo l’inizio della diagnosi, non la conclusione. Identificato che il regime è non-zero, restano da risolvere problemi di selezione, coordinazione, robustezza alle deviazioni — tutti aperti, tutti con strumenti dedicati.

Una connessione con l’ottimizzazione min-max in deep learning

Sezione intitolata “Una connessione con l’ottimizzazione min-max in deep learning”

Per il lettore che ha familiarità con l’ottimizzazione, vale la pena notare esplicitamente il ponte. Il problema min-max in deep learning — minimizza in un set di parametri, massimizza in un altro — è formalmente la stessa struttura del valore di un gioco a somma zero. Ottimizzazione robusta, GAN, adversarial training, distributionally robust optimization, sono tutte istanze dello stesso pattern matematico, declinate su diversi spazi di parametri e diverse funzioni di payoff. Le tecniche per trovarne una soluzione (gradient ascent-descent alternato, extragradient, optimistic gradient, two-time-scale updates) sono tecniche per cercare punti di sella in spazi non-convessi-non-concavi. La teoria dei giochi e l’ottimizzazione si incontrano qui in modo non superficiale.

Tre lezioni che il capitolo tira fuori dalla meccanica

Sezione intitolata “Tre lezioni che il capitolo tira fuori dalla meccanica”

Prima di passare agli esempi e alle applicazioni, vale la pena estrarre tre lezioni dalla meccanica appena vista, perché ricorreranno in tutto ciò che segue.

Prima lezione: in zero-sum a 2 giocatori, “essere ottimale” e “essere prevedibile” sono tendenzialmente in conflitto. La strategia ottimale è spesso mista, casuale, indecifrabile. Un avversario che riesce a leggere la tua strategia ti sfrutta. Per questo motivo, in adversarial training si introduce esplicitamente rumore (data augmentation, dropout, perturbazioni casuali) per evitare che il modello converga a regolarità sfruttabili. La randomizzazione è una difesa strutturale, non un trucco euristico.

Seconda lezione: in non-zero-sum, il commitment è una risorsa strategica. Se posso impegnarmi pubblicamente a una strategia (legarmi le mani, in senso schellinghiano), cambio l’equilibrio del gioco a mio favore. Schelling chiama questo “the paradox of commitment”: meno opzioni ho, più potere strategico ho. Per agent system, il commitment si concretizza in policy fisse, contratti smart, regole esposte pubblicamente. È il motivo per cui nei mechanism design ben progettati le regole sono trasparenti e non rinegoziabili.

Terza lezione: in entrambi i regimi, la qualità della soluzione dipende criticamente dal modello. Un equilibrio elegante in un modello sbagliato è una soluzione di carta. In zero-sum, il modello sbagliato di solito significa payoff misurati male o azioni omesse. In non-zero-sum, significa anche partner omessi, vincoli istituzionali ignorati, externalities non contabilizzate. Buon modeling è la metà del lavoro; risolvere è l’altra metà.

flowchart LR
  Z[noise z ~ p_z] --> G[Generator G]
  G --> Fake[sample fake]
  Real[dati reali x ~ p_data] --> D[Discriminator D]
  Fake --> D
  D --> V["V(D, G) = E[log D(x)] + E[log(1 - D(G(z)))]"]
  V -- maximize w.r.t. D --> D
  V -- minimize w.r.t. G --> G
  V -.zero-sum.- V

Figura 6 — mermaid: GAN training loop as a zero-sum game between G and D, with feedback arrows showing alternating SGD updates and the V(D,G) payoff at the center

Generative Adversarial Networks. Già discusso. La struttura zero-sum è esplicita; il payoff è -log V per G e log V per D. Tutta la famiglia di varianti (DCGAN, WGAN, StyleGAN) eredita questa struttura. Applicazione: image generation, data augmentation, simulation.

Adversarial training per robustezza. Madry et al. (2017): allenare un classificatore robusto a perturbazioni avversarie equivale a un gioco minimax fra il modello e un attaccante che cerca perturbazioni epsilon-bounded. Esplicitamente zero-sum. Stesso framework di GAN, payoff diverso. Applicazione: image classifiers robusti, security ML.

Self-play in giochi zero-sum simmetrici. AlphaZero, Leela Chess Zero, OpenAI Five (in Dota 2, parzialmente). Self-play sfrutta la struttura zero-sum simmetrica: due copie dello stesso modello giocano una contro l’altra, e la vittoria di una è la sconfitta dell’altra. La convergenza a strategie ottimali è garantita asintoticamente in setting tabular; empiricamente regge anche con reti profonde. Self-play in giochi non-zero-sum è molto più rischioso: può produrre collusioni inintenzionali o equilibri sub-ottimali.

Self-play in zero-sum vs in non-zero-sum. Self-play in zero-sum simmetrico (Go, scacchi, backgammon) converge a strategie ottimali asintoticamente: due copie dello stesso modello migliorano entrambe perché il loro reward è perfettamente anti-correlato. AlphaZero (DeepMind, 2017) sfrutta esattamente questa proprietà. Self-play in non-zero-sum è molto più rischioso: due copie possono convergere a equilibri sub-ottimali, sviluppare collusioni inintenzionali, o oscillare. La letteratura su MARL ha numerosi esempi di self-play non-zero che produce policy degenerate. Lezione operativa: prima di usare self-play come paradigma di training, classifica il regime di payoff. Se è zero-sum simmetrico, vai avanti; se non lo è, serve un approccio più articolato.

Cooperative MARL. Quando la classificazione è non-zero-sum cooperativo (team reward condiviso), gli algoritmi cambiano: QMIX, COMA, MAPPO sono progettati per credit assignment in team. L’obiettivo è un Pareto-ottimo, non un Nash adversariale. Applicazione: agenti coordinati in robotics simulation, swarm, supply chain optimization.

flowchart LR
  Z[noise z ~ p_z] --> G[Generator G]
  G --> Fake[sample fake]
  Real[dati reali x ~ p_data] --> D[Discriminator D]
  Fake --> D
  D --> V["V(D, G) = E[log D(x)] + E[log(1 - D(G(z)))]"]
  V -- maximize w.r.t. D --> D
  V -- minimize w.r.t. G --> G
  V -.zero-sum.- V

Figura 6 — mermaid: RLHF as a non-zero-sum bargaining loop, with three nodes (user, annotator, model) and edges showing preference flow, reward signal, and KL regularization, emphasizing joint value creation

RLHF e alignment come bargaining non-zero. Il paradigma standard di addestramento post-2022: addestra un policy model pi a massimizzare un reward model r appreso da preferenze umane, con regolarizzazione KL. Tre attori — utente, annotatore, modello — cooperano per produrre comportamento utile. Equivalenza marcabile: alignment problem ↔ bargaining non-zero su superficie capability-safety. Caveat: alcune sotto-formulazioni (red-teaming, jailbreak detection) sono esplicitamente zero-sum.

flowchart LR
  User[Utente finale] -- esprime preferenze --> Annot[Annotator]
  Annot -- label di preferenza --> RM[Reward model r]
  RM -- segnale di reward --> Pi[Policy model π]
  Pi -- generazioni --> User
  Pi -- regolarizzatore KL --> Base[Base model]
  Pi -- bargaining --> RM
  RM -- valore congiunto --> User

Figura 7 — RLHF come loop non-zero-sum di bargaining multi-attore — utente esprime preferenze, annotator etichetta, reward model produce segnale di reward, policy genera, base model fa da KL anchor

Mechanism design per agent platforms. Quando si progetta una piattaforma in cui agenti AI offrono servizi (es. MCP marketplaces, agent-to-agent protocols), il problema centrale è: come strutturare incentivi affinché l’aggregato di agenti razionali produca esiti desiderabili? Vickrey (1961) mostra che la second-price auction è truthful (rivelare la propria valutazione vera è strategia dominante). Mechanism design è la branca della teoria dei giochi dedicata a costruire le regole, non a giocare le regole esistenti.

Negoziazione fra agenti LLM e bargaining computazionale. Quando due o più agenti LLM negoziano (per esempio per dividere risorse, allocare task, fissare prezzi), il regime è non-zero-sum: la negoziazione può creare valore congiunto se trovano un buon split, distruggerlo se falliscono. La letteratura recente (2023-2026) sui negotiating LLM agents mostra che modelli base prompted con ruoli negoziali raggiungono spesso accordi sub-ottimali — convergono a equilibri Pareto-dominati o falliscono per disaccordo. Tecniche di prompt engineering, few-shot di trascrizioni umane, e fine-tuning su corpora di negoziazioni reali (es. CraigslistBargain dataset) migliorano i risultati ma non chiudono il gap. La diagnosi teorica è chiara: il regime non-zero-sum richiede capacità di selezione di equilibrio e di reciproco modeling che gli LLM hanno solo in forma approssimativa.

Markets e gains from trade. Mercati come gioco non-zero per costruzione: il commercio crea valore (entrambe le parti preferiscono il dopo al prima). Estensione naturale a agent ecosystems: provider diversi cooperano via API per task complessi. La pulizia teorica del modello mercatuale spiega perché molti propongono “agent marketplaces” come paradigma economico nuovo.

Security come zero-sum attacker-defender. Difesa di sistemi software contro attaccanti adversari è naturalmente zero-sum: ogni vulnerabilità sfruttata dall’attaccante è una perdita per il difensore. Questa modellazione si trasferisce a security ML: detection di prompt injection, jailbreak, data poisoning. Il framework minimax dà la cornice teorica per worst-case analysis e robust design. Limite della modellazione: nei sistemi reali ci sono asimmetrie informative e payoff non simmetrici (l’attaccante guadagna meno di quanto perde il difensore, in tipici scenari). Trattare come zero-sum è approssimazione utile ma imperfetta.

Negoziazione mista — CICERO. Diplomacy è gioco a 7 giocatori semi-cooperativo: alleanze, tradimenti, comunicazione naturale. CICERO (FAIR 2022, Bakhtin et al. su Science) raggiunge livello umano combinando strategic reasoning con language modeling. Il sistema è obbligato a operare in regime misto: zero-sum sull’esito finale (vince uno solo), non-zero-sum nelle fasi di alleanza.

Cinque problemi seri da tenere a mente prima di applicare la teoria a un sistema reale.

Primo: la classificazione zero vs non-zero è una scelta del modellatore, non un fatto del sistema. Un’interazione “fisica” non viene con un’etichetta. Lo stesso scenario può essere modellato come zero-sum o non-zero-sum a seconda di come misuri le utilità, di quali agenti includi, di che orizzonte temporale consideri. Un’asta è non-zero (gains from trade) se conti il valore per il vincitore e per il venditore; è zero-sum se confronti solo i partecipanti che competono per lo stesso oggetto. RLHF è non-zero in fase di alignment costruttivo, zero-sum in fase di red-teaming. Cambia il modello, cambia il regime. Conseguenza pratica: prima di scegliere algoritmi, esplicita il modello di payoff, e fai sanity check su scenari estremi.

Secondo: molti scenari reali sono “quasi zero-sum” con piccoli incentivi cooperativi. Mercati competitivi sono in larga parte zero-sum sulle quote di mercato, ma con marginali non-zero su innovazione condivisa. Trattare un quasi-zero-sum come puro zero-sum induce antagonismo eccessivo; trattarlo come puro non-zero invita free-riding. Il dosaggio è arte applicata, non teoria.

Terzo: equilibri Nash multipli e il problema della selezione. In giochi non-zero-sum a equilibri multipli (battle of the sexes, stag hunt) la teoria dice “ne esiste almeno uno” ma non dice quale. La selezione richiede strumenti aggiuntivi: focal points (Schelling), evolutionary stability (Maynard Smith), risk-dominance (Harsanyi-Selten). Per un sistema multi-agente che deve auto-organizzarsi, non sapere a quale equilibrio convergere è un problema di design, non di ottimizzazione.

Quarto: trovare un Nash in non-zero-sum è computazionalmente difficile. Daskalakis, Goldberg, Papadimitriou (2009) dimostrano che il problema è PPAD-completo: non si conosce algoritmo polinomiale, e si congettura che non esista. In pratica si usano euristiche (fictitious play, regret minimization, counterfactual regret minimization per giochi a informazione imperfetta). La consolazione è che in 2 giocatori a somma zero il problema è in P (programma lineare). La punizione computazionale del passaggio a non-zero-sum è severa e non aggirabile.

flowchart LR
  User[Utente finale] -- esprime preferenze --> Annot[Annotator]
  Annot -- label di preferenza --> RM[Reward model r]
  RM -- segnale di reward --> Pi[Policy model π]
  Pi -- generazioni --> User
  Pi -- regolarizzatore KL --> Base[Base model]
  Pi -- bargaining --> RM
  RM -- valore congiunto --> User

Figura 7 — vector-svg: 2D plane showing Pareto frontier in a non-zero-sum 2-player game, with Nash equilibria marked as points, and a Pareto-superior region shaded; arrows show the gap between Nash and Pareto-optimal outcomes

Quinto: GAN training raramente raggiunge l’equilibrio teorico. Anche restando in zero-sum, le condizioni del teorema minimax (compattezza, concavità/convessità) non valgono nei pesi delle reti neurali. SGD alternato non converge in generale; mode collapse è un fallimento sistematico. Tutta la pratica di adversarial training è una serie di hack per stabilizzare un sistema che teoricamente non ha garanzie. La pulizia matematica del minimax non si trasferisce automaticamente al deep learning.

Sesto, più filosofico: assumere razionalità degli agenti è un’approssimazione. La teoria assume che i giocatori massimizzino utilità attesa con conoscenza comune della razionalità altrui. LLM-based agent non sono razionali in questo senso: hanno bias, allucinazioni, inconsistenze inter-prompt, sensibilità a frame irrilevanti. Modellarli come agenti razionali in un gioco è utile come prima approssimazione e fuorviante come predizione fine. Cooperazione e competizione fra LLM possono emergere in modi che la teoria classica non cattura.

Sesto-bis: la frontiera di payoff può essere non-convessa. La teoria standard del bargaining non-zero presuppone una frontiera di Pareto convessa (ottenuta tramite strategie miste o lottery sui risultati). Nei sistemi reali, dove le utilità sono valutate su outcome discreti e non-trasferibili, la frontiera può avere salti, plateau, regioni non raggiungibili. Soluzioni come il Nash bargaining solution sono ben definite solo sotto convessità. Tecniche di lottizzazione (randomized agreements) ripristinano la convessità ma non sono sempre praticabili (un trial clinico non si “lotteggia”). Per agent system, questa è un’osservazione concreta: la geometria dello spazio di outcome influenza quali soluzioni cooperative sono raggiungibili.

Settimo: la trasferibilità delle utilità. La teoria standard di somma zero/somma generale assume che i payoff siano numeri reali confrontabili. Nei sistemi reali le utilità sono spesso non-trasferibili: il “valore” per un utente di un risultato medico non si somma al “valore” per il provider di un servizio. Comparing apples and oranges è un problema concreto in mechanism design e in alignment. Tecniche come la revealed preference o l’utility elicitation servono a costruire utilità misurabili, ma sono approssimazioni e introducono errori sistematici.

Ottavo: incentivi dinamici e fuori-equilibrio. Anche quando un equilibrio esiste, può non essere raggiunto. Il sistema può oscillare, divergere, restare in regimi transient permanentemente. Questo è il cuore della differenza fra “sistema che funziona in equilibrio” e “sistema che converge all’equilibrio”. GAN è esempio canonico di sistema progettato per convergere a un equilibrio che in pratica non raggiunge mai esattamente. Multi-agent reinforcement learning con esplorazione attiva è esempio di sistema che oscilla in modo fertile (esplorando lo spazio strategico) ma può collassare in policy degenerati. La teoria classica dice poco su queste dinamiche; l’apprendimento sotto giochi (Fudenberg-Levine, evolutionary game theory) dice qualcosa, ma è un’area aperta.

Ultimo, sulla tesi di Wright. Nonzero (2000) sostiene che la storia tende verso giochi non-zero-sum crescenti. È una tesi storiografica, non un teorema. Ha valore narrativo per pensare a agent ecosystems come ambienti che premiano cooperazione, ma non è una garanzia strutturale: nulla impedisce la regressione verso regimi zero-sum (concorrenza geopolitica, race-to-the-bottom su safety, capture di rendite). Citare Wright come orientamento, non come prova.

Sintesi operativa per chi progetta sistemi multi-agent

Sezione intitolata “Sintesi operativa per chi progetta sistemi multi-agent”

Riepilogando il lavoro fatto, ecco una check-list pratica per chi sta progettando un sistema con più agenti AI che interagiscono.

Primo: classifica il regime di payoff. Calcola la somma dei payoff su una manciata di profili rappresentativi. Se è costante, sei in zero-sum (o constant-sum) e hai accesso al teorema minimax. Se varia, sei in non-zero-sum e devi gestire equilibri multipli e selezione.

Secondo: se sei in non-zero-sum, identifica gli equilibri Pareto-superiori al Nash. Spesso esistono e sono raggiungibili con meccanismi di commitment, ripetizione, o comunicazione. Non assumere che il sistema converga al Nash di default; spesso si può fare di meglio.

Terzo: progetta il mechanism prima di addestrare gli agenti. Le regole del gioco (payoff, ordine, informazione) determinano il tipo di equilibrio raggiungibile. Aggiustare le regole è quasi sempre più efficace che addestrare meglio gli agenti su regole sub-ottimali.

Quarto: in zero-sum, aspettati instabilità nel training se usi gradient descent in spazi non-convessi. In non-zero-sum, aspettati problemi di selezione di equilibrio. Entrambi i problemi hanno soluzioni note ma richiedono cura.

Quinto: testa empiricamente. La teoria classica assume razionalità perfetta che gli LLM non hanno. Esegui simulazioni, misura comportamenti reali, itera. La teoria è una bussola, non una mappa precisa del territorio.

  • Cos’è un gioco, in senso tecnico. Capitolo precedente: stabilisce vocabolario di base (giocatori, strategie, payoff, equilibri) su cui qui si differenzia il regime di payoff.
  • Probabilità di base. Distribuzioni e valore atteso: necessari per definire strategie miste e utilità attesa.
  • Discesa del gradiente. SGD alternato come metodo di ottimizzazione minimax in GAN; la non-convergenza pratica nasce dall’interazione fra struttura zero-sum e dinamica di gradient descent.
  • equilibrio-nash (in preparazione). Capitolo successivo: approfondimento formale del Nash, esistenza, calcolo, raffinamenti (subgame perfect, trembling-hand).
  • minimax (in preparazione). Capitolo dedicato all’algoritmo minimax e alpha-beta in giochi sequenziali a informazione perfetta.
  • giochi-cooperativi (in preparazione). Coalition games, Shapley value, Nash bargaining: cosa cambia quando gli accordi sono enforceable.
  • dilemma-prigioniero (in preparazione). Approfondimento su iterated prisoner’s dilemma, Folk Theorem, evolution of cooperation.
  • gan (in preparazione). Trattazione completa di Generative Adversarial Networks: architettura, training, varianti, fallimenti.
  • rlhf-ppo (in preparazione). RLHF con Proximal Policy Optimization: il paradigma di alignment standard, leggibile come bargaining non-zero.
  • ponte-gioco-principal-agent (in preparazione). Alignment come problema principal-agent, quadro teorico-economico per safety e capability.

Nel testo abbiamo usato “somma zero” e “somma generale” come traduzioni italiane standard di “zero-sum” e “non-zero-sum”/“general-sum”. È bene segnalare che la letteratura italiana di teoria dei giochi (manuali di Patrone, Lucchetti, e altri) usa indifferentemente le due forme, italiana e inglese. In contesto AI, l’inglese è dominante. Useremo entrambe a seconda della naturalezza locale, mantenendo “somma zero” e “somma generale” come forme italiane preferite e “zero-sum”/“non-zero-sum” come accettate quando il contesto è tecnico-anglofono.

Una sottigliezza: la traduzione letterale “somma non zero” è più rara in italiano e suona meno naturale. “Somma generale” cattura meglio il senso strutturale (generalizzazione che include zero-sum come caso speciale). Schelling avrebbe forse preferito “motivi misti” come traduzione di “mixed-motive”, che resta un’espressione vivida e accurata. Per questo capitolo, “somma generale” è la forma standard, “non-zero-sum” è il sinonimo accettato.

Vale la pena chiudere con una nota meta. La teoria dei giochi classica (von Neumann, Nash, Schelling) è stata sviluppata pensando ad agenti umani idealizzati: razionali, con utilità ben definite, in giochi finiti e ben specificati. Quasi nessuna di queste ipotesi vale strettamente per agenti AI moderni. Modelli LLM hanno bias, allucinazioni, sensibilità al frame; il loro reward è imparato da preferenze umane rumorose; lo spazio di azione non è finito ma testuale e quasi-illimitato; il “gioco” si svolge su orizzonti temporali e contesti che la teoria classica non sa modellare.

E tuttavia la teoria classica resta utile, per due ragioni. Primo: come bussola concettuale. Distinguere zero-sum da non-zero-sum, capire che esiste un teorema di esistenza ma non di unicità, sapere che il calcolo di un Nash è in generale difficile — tutto questo orienta il design molto prima di diventare una formula da applicare. Secondo: come case-of-study di idealizzazioni. La teoria descrive cosa farebbero agenti perfettamente razionali; misurando lo scarto fra teoria e comportamento osservato si impara qualcosa sulla razionalità reale degli LLM. Il mismatch è informativo. Ricerca recente sull’analisi behavioral degli agenti LLM in giochi standard sfrutta esattamente questo gap.

Il punto operativo per chi progetta sistemi: studia la teoria, non per applicarla letteralmente, ma per avere il vocabolario giusto per ragionare su sistemi reali e per riconoscere quando le ipotesi della teoria sono violate. La teoria è una mappa parziale; il territorio è ancora largamente da esplorare.

  • Schelling, T. C. (1960). The Strategy of Conflict. Harvard University Press. Riferimento canonico per la distinzione fra puro conflitto e mixed-motive games. Lettura accessibile, rigorosa, ancora attuale.
  • Axelrod, R. (1984). The Evolution of Cooperation. Basic Books. Tornei sull’iterated prisoner’s dilemma, emergenza di tit-for-tat, lezioni su cooperazione robusta. Per chi vuole capire perché la cooperazione non è ingenua.
  • Osborne, M. J., Rubinstein, A. (1994). A Course in Game Theory. MIT Press. Manuale accademico standard. Capitoli 2-3 per zero-sum e Nash, capitoli 8-9 per giochi ripetuti.
  • Goodfellow, I. (2017). “NIPS 2016 Tutorial: Generative Adversarial Networks”, arXiv:1701.00160. Tutorial autorevole sulle GAN dal loro inventore, con discussione esplicita della struttura di gioco e delle ragioni dell’instabilità.
  • Wright, R. (2000). Nonzero: The Logic of Human Destiny. Pantheon Books. Tesi storiografica sull’evoluzione di interazioni non-zero. Da leggere come narrazione, non come prova.
  • Shoham, Y., Leyton-Brown, K. (2008). Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press. Manuale moderno, con focus computazionale e algoritmi per giochi non-cooperativi e cooperativi. Capitoli 3-4 per equilibri, capitoli 7-9 per giochi a informazione imperfetta e mechanism design.
  • Daskalakis, C., Goldberg, P. W., Papadimitriou, C. H. (2009). “The Complexity of Computing a Nash Equilibrium”, SIAM Journal on Computing 39(1), 195-259. Risultato chiave sulla PPAD-completezza del calcolo di equilibri Nash. Per chi vuole capire i limiti computazionali della teoria.
  • Goodfellow, I. et al. (2014). “Generative Adversarial Nets”, NeurIPS 2014, arXiv:1406.2661. Paper originale GAN. Sezione 4 contiene la prova che, sotto convessità ideale, il training converge all’equilibrio teorico — e implicitamente perché in pratica non converge.