L'équilibre de Nash Grand Oral · mathématiques, SES, HGGSP Un support de connaissances pour construire sa propre question

← Tous les textes du Grand Oral

MathsSESHGGSP

Deux entreprises fixent leurs prix, deux pays décident de s'armer ou non, deux suspects choisissent de se taire ou d'avouer. Dans chaque cas, le résultat pour l'un dépend de ce que fait l'autre. La théorie des jeux étudie ces situations d'interaction stratégique. Son idée centrale, l'équilibre de Nash, est une situation où personne n'a intérêt à changer seul de stratégie.

Ce texte présente cette notion avec les mathématiques de terminale : tableaux de gains, dérivée et étude de fonction pour la concurrence entre entreprises, suites et limites, somme d'une suite géométrique et loi géométrique pour les jeux qui se répètent, et une simulation en Python. Il rassemble des connaissances ; à chacun d'y choisir une direction et d'y construire sa question.

Sommaire
  1. John Nash et la naissance de la théorie des jeux
  2. Le dilemme du prisonnier
  3. Course aux armements et dissuasion
  4. Le duopole de Cournot
  5. Quand le jeu se répète
  6. Les tournois d'Axelrod
  7. Un tournoi en Python
  8. Les limites du modèle
  9. Des directions pour construire sa question
John Nash et la naissance de la théorie des jeux Photographie en noir et blanc d'un homme âgé en costume, assis à une table de conférence derrière un micro et un carton portant son nom. John Nash en 2006, lors d'un colloque de théorie des jeux à l'université de Cologne. Photo : Elke Wetzig, Wikimedia Commons, licence CC BY-SA 3.0.

La théorie des jeux naît au XXe siècle. En 1928, le mathématicien John von Neumann étudie les jeux à deux joueurs où ce que l'un gagne, l'autre le perd. En 1944, avec l'économiste Oskar Morgenstern, il publie Théorie des jeux et comportement économique, qui propose d'appliquer ces outils à l'économie.

John Forbes Nash, né en 1928 aux États-Unis, est un jeune étudiant de Princeton quand il soutient, en 1950, une thèse d'une trentaine de pages qui va bien plus loin : il considère des jeux à un nombre quelconque de joueurs, où les intérêts ne sont pas forcément opposés, et il démontre que tout jeu de ce type, avec un nombre fini de stratégies, possède au moins un équilibre, à condition d'autoriser les joueurs à choisir leur stratégie au hasard. Sa démonstration repose sur un théorème de point fixe, bien au-delà du programme de terminale.

Nash fait ensuite des découvertes importantes dans d'autres domaines des mathématiques, avant d'être frappé, à partir de 1959, par une schizophrénie qui l'éloigne de la recherche pendant de longues années. Il en sort progressivement. En 1994, il reçoit le prix Nobel d'économie, avec John Harsanyi et Reinhard Selten, pour ses travaux de théorie des jeux, et en 2015 le prix Abel, l'une des plus hautes récompenses en mathématiques, pour d'autres travaux. Il meurt quelques jours plus tard dans un accident de taxi, avec sa femme. Sa vie a inspiré le film Un homme d'exception (2001).

Le dilemme du prisonnier L'histoire

Ce jeu a été étudié en 1950 par deux chercheurs de la RAND Corporation, un centre de recherche lié à l'armée américaine, et c'est le mathématicien Albert Tucker qui lui a donné son nom et son histoire. Deux complices sont arrêtés et interrogés séparément. Chacun peut se taire ou dénoncer l'autre.

  • Si les deux se taisent, faute de preuves, ils ne prennent qu'un an de prison chacun.
  • Si l'un dénonce et l'autre se tait, celui qui dénonce est libéré et l'autre prend dix ans.
  • Si les deux se dénoncent, ils prennent cinq ans chacun.
Le tableau des gains

Pour la suite, on remplace les années de prison par des gains, plus grands quand la situation est meilleure. On appelle « coopérer » le choix de se taire (coopérer avec son complice) et « trahir » le choix de dénoncer. On utilise les gains des tournois d'Axelrod, présentés plus loin. Dans chaque case, le premier nombre est le gain du joueur A (en ligne), le second celui du joueur B (en colonne).

B coopèreB trahit
A coopère$3$ ; $3$$0$ ; $5$
A trahit$5$ ; $0$$1$ ; $1$

Raisonnons à la place de A, qui ne sait pas ce que B va faire.

  • Si B coopère, A gagne $3$ en coopérant et $5$ en trahissant : il vaut mieux trahir.
  • Si B trahit, A gagne $0$ en coopérant et $1$ en trahissant : il vaut mieux trahir.

Quoi que fasse B, A a intérêt à trahir : on dit que trahir est une stratégie dominante. Le jeu est symétrique, donc B fait le même raisonnement. Les deux trahissent et gagnent $1$ chacun, alors qu'en coopérant, ils auraient gagné $3$ chacun. Chacun a agi au mieux de son intérêt, et le résultat est mauvais pour les deux : c'est le dilemme.

La définition de l'équilibre de Nash

Une situation, c'est-à-dire un choix de stratégie pour chaque joueur, est un équilibre de Nash si aucun joueur ne peut augmenter son gain en changeant seul de stratégie, les autres gardant la leur. On dit aussi que la stratégie de chaque joueur est une meilleure réponse aux stratégies des autres.

Vérifions les quatre cases du tableau.

  • (coopère ; coopère) : A passerait de $3$ à $5$ en trahissant. Ce n'est pas un équilibre.
  • (coopère ; trahit) et (trahit ; coopère) : celui qui coopère passerait de $0$ à $1$ en trahissant. Ce ne sont pas des équilibres.
  • (trahit ; trahit) : celui qui changerait seul passerait de $1$ à $0$. C'est le seul équilibre de Nash.

L'équilibre n'est pas forcément la meilleure situation collective. La situation (coopère ; coopère) est meilleure pour les deux : les économistes disent que l'équilibre n'est pas un optimum de Pareto. Ce dilemme se retrouve partout : deux entreprises qui dépensent beaucoup en publicité pour se prendre des clients, alors qu'elles gagneraient plus en dépensant moins toutes les deux ; des pays qui ont chacun intérêt à continuer à polluer, même si tous gagneraient à réduire leurs émissions ; des producteurs de pétrole qui s'entendent pour limiter leur production, et dont chacun est tenté de produire plus en secret.

Course aux armements et dissuasion

Pendant la guerre froide, la théorie des jeux est développée en grande partie à la RAND Corporation, pour l'armée américaine. La course aux armements entre les États-Unis et l'URSS ressemble à un dilemme du prisonnier : si les deux désarment, ils économisent des sommes énormes ; mais chacun craint d'être désarmé face à un adversaire armé, et les deux s'arment.

D'autres situations correspondent à un autre jeu, appelé le jeu de la poule mouillée : deux voitures foncent l'une vers l'autre, celui qui donne un coup de volant a « perdu », mais si aucun ne cède, c'est la catastrophe.

B cèdeB fonce
A cède$0$ ; $0$$-1$ ; $1$
A fonce$1$ ; $-1$$-10$ ; $-10$

En vérifiant les cases comme pour le dilemme, on trouve deux équilibres de Nash, ceux où l'un cède et l'autre fonce. Le jeu ne dit pas lequel se produira : chacun a intérêt à convaincre l'autre qu'il ne cédera jamais. C'est la logique de la dissuasion, étudiée par l'économiste Thomas Schelling (prix Nobel d'économie 2005) : une menace n'est efficace que si elle est crédible. La crise des missiles de Cuba, en 1962, est souvent analysée de cette façon, avec prudence, car les dirigeants ne disposaient pas de tableaux de gains.

Le duopole de Cournot Un modèle de 1838 Portrait photographique ancien en noir et blanc d'un homme aux cheveux gris, en habit sombre, portant une décoration. Antoine Augustin Cournot (1801-1877). Wikimedia Commons, domaine public.

Plus d'un siècle avant Nash, le mathématicien et économiste français Antoine Augustin Cournot étudie en 1838 deux producteurs d'eau de source qui se partagent un marché : c'est un duopole. L'équilibre qu'il trouve est, en langage moderne, un équilibre de Nash. Prenons un exemple chiffré, inventé pour le calcul.

  • Deux entreprises produisent le même bien, en quantités $q_1$ et $q_2$ (en milliers d'unités).
  • Le prix de vente dépend de la quantité totale mise sur le marché : $p = 120 - (q_1 + q_2)$ euros. Plus on produit, plus il faut baisser le prix pour tout vendre.
  • Chaque unité coûte $30$ euros à produire.

Le profit de l'entreprise 1 est sa recette moins son coût : $\pi_1 = p\,q_1 - 30\,q_1$, soit

$$\pi_1 = q_1\,(90 - q_1 - q_2).$$
La meilleure réponse

Un exemple à la main. Si l'entreprise 2 produit $q_2 = 40$, le profit de l'entreprise 1 est $\pi_1 = q_1(50 - q_1)$. Avec $q_1 = 10$ : $400$ ; avec $q_1 = 25$ : $625$ ; avec $q_1 = 40$ : $400$. Le meilleur choix semble être $q_1 = 25$.

La meilleure réponse de l'entreprise 1 est $q_1 = \dfrac{90 - q_2}{2}$

On fixe $q_2$ entre $0$ et $90$, et on étudie la fonction $f(x) = x(90 - q_2 - x)$ pour $x \geqslant 0$.

Étape 1. En développant, $f(x) = -x^2 + (90 - q_2)\,x$, donc $f'(x) = -2x + 90 - q_2$.

Étape 2. $f'(x) > 0$ équivaut à $x < \dfrac{90 - q_2}{2}$. La fonction $f$ est croissante puis décroissante : elle atteint son maximum en $x = \dfrac{90 - q_2}{2}$.

Avec $q_2 = 40$, on retrouve $q_1 = 25$.

Par symétrie, la meilleure réponse de l'entreprise 2 est $q_2 = \dfrac{90 - q_1}{2}$.

L'équilibre

À l'équilibre de Nash, chaque entreprise joue sa meilleure réponse à la production de l'autre. On résout le système

$$q_1 = \frac{90 - q_2}{2} \quad \text{et} \quad q_2 = \frac{90 - q_1}{2}.$$
  • En soustrayant les deux égalités : $q_1 - q_2 = \dfrac{q_1 - q_2}{2}$, donc $q_1 - q_2 = 0$ : les deux entreprises produisent la même quantité $q$.
  • Alors $q = \dfrac{90 - q}{2}$, soit $3q = 90$ et $q = 30$.
  • Le prix vaut $p = 120 - 60 = 60$ euros, et chaque entreprise gagne $30 \times (60 - 30) = 900$ (milliers d'euros).

Comparaison avec le monopole. Une seule entreprise maximiserait $Q(90 - Q)$, d'où $Q = 45$, $p = 75$ euros et un profit de $2\,025$. Les deux entreprises de Cournot produisent plus ($60$), vendent moins cher ($60$ euros) et gagnent moins à elles deux ($1\,800$). Le consommateur y gagne.

Le dilemme réapparaît. Si les deux entreprises s'entendaient pour produire chacune la moitié du monopole, $22{,}5$, chacune gagnerait $22{,}5 \times 45 = 1\,012{,}5$, plus que $900$. Mais face à un concurrent qui produit $22{,}5$, la meilleure réponse est $\dfrac{90 - 22{,}5}{2} = 33{,}75$, qui rapporte $33{,}75 \times 33{,}75 \approx 1\,139$ : chacune est tentée de tricher. C'est pourquoi les ententes entre entreprises (les cartels) sont instables, et pourquoi elles sont interdites par le droit de la concurrence.

Avec $n$ entreprises : une limite

Avec $n$ entreprises identiques, le même raisonnement donne, pour chacune, la condition $90 - 2q_i - (\text{production des autres}) = 0$. À l'équilibre, toutes produisent la même quantité $q$, et les $n - 1$ autres produisent $(n-1)q$ : $90 - 2q - (n-1)q = 0$, soit

$$q = \frac{90}{n+1}, \qquad p_n = 30 + \frac{90}{n+1}.$$

Pour $n = 1$, on retrouve le monopole ($p_1 = 75$), pour $n = 2$ le duopole ($p_2 = 60$). La suite $(p_n)$ est décroissante et tend vers $30$, le coût de production : plus il y a d'entreprises, plus le prix se rapproche du coût, et le profit de chacune tend vers $0$. C'est la situation de concurrence parfaite décrite par les économistes. Le modèle de Cournot relie ainsi le monopole et la concurrence par une limite.

Quand le jeu se répète L'ombre du futur

Dans la vie réelle, on rencontre souvent les mêmes personnes, les mêmes entreprises concurrentes, les mêmes pays. Si le dilemme du prisonnier se répète, trahir aujourd'hui peut coûter cher demain : l'autre peut se venger. Pour en tenir compte, on suppose qu'après chaque partie, il y a une nouvelle partie avec la probabilité $\delta$ (avec $0 < \delta < 1$), indépendamment des parties précédentes.

Le nombre de parties. Le jeu s'arrête après chaque partie avec la probabilité $1 - \delta$. Le nombre $N$ de parties jouées suit donc la loi géométrique de paramètre $1 - \delta$, d'espérance $\dfrac{1}{1 - \delta}$. Avec $\delta = 0{,}9$, on joue en moyenne $10$ parties.

Le gain total espéré. La partie numéro $k$ (en comptant la première comme la partie $0$) a lieu avec la probabilité $\delta^k$. Si on gagne $g$ à chaque partie, le gain total espéré est la somme des termes d'une suite géométrique :

$$g + g\delta + g\delta^2 + \cdots + g\delta^{n} = g\,\frac{1 - \delta^{n+1}}{1 - \delta}.$$

Comme $0 < \delta < 1$, $\delta^{n+1}$ tend vers $0$ et ce gain tend vers $\dfrac{g}{1 - \delta}$ quand $n$ tend vers $+\infty$. Les économistes appellent $\delta$ le facteur d'actualisation : il mesure le poids que l'on donne au futur.

Quand la coopération devient rationnelle

Supposons que B joue la stratégie « rancunière » : il coopère tant que A coopère, mais trahit pour toujours dès que A a trahi une fois. A a deux possibilités.

  • Toujours coopérer : A gagne $3$ à chaque partie, soit en tout $\dfrac{3}{1 - \delta}$.
  • Trahir dès la première partie : A gagne $5$ une fois, puis $1$ à chaque partie suivante, soit $5 + \delta + \delta^2 + \cdots$, c'est-à-dire $5 + \dfrac{\delta}{1 - \delta}$.
Coopérer rapporte plus que trahir si et seulement si $\delta \geqslant \dfrac{1}{2}$

On compare $\dfrac{3}{1 - \delta}$ et $5 + \dfrac{\delta}{1 - \delta}$. Comme $1 - \delta > 0$, on peut multiplier l'inégalité par $1 - \delta$ sans changer son sens :

$$\frac{3}{1 - \delta} \geqslant 5 + \frac{\delta}{1 - \delta}$$

équivaut à

$$3 \geqslant 5(1 - \delta) + \delta.$$

Or $5(1 - \delta) + \delta = 5 - 4\delta$. L'inégalité devient $3 \geqslant 5 - 4\delta$, soit $4\delta \geqslant 2$ et $\delta \geqslant \dfrac{1}{2}$.

Si le futur compte assez (si l'on a au moins une chance sur deux de se revoir), la coopération devient la stratégie la plus rentable, sans aucune morale : c'est l'ombre du futur. À l'inverse, si l'on sait que le jeu s'arrête à une date connue, le raisonnement change : à la dernière partie, il n'y a plus de futur, donc chacun trahit ; mais alors, à l'avant-dernière partie, la dernière est déjà jouée d'avance, donc chacun trahit aussi, et ainsi de suite en remontant. C'est l'un des paradoxes de la théorie des jeux.

Les tournois d'Axelrod

Vers 1980, le politologue américain Robert Axelrod organise un tournoi original : il demande à des chercheurs de plusieurs disciplines d'envoyer un programme informatique qui joue au dilemme du prisonnier répété. Chaque programme affronte tous les autres sur de nombreuses parties, avec les gains $5$, $3$, $1$ et $0$. Une quinzaine de programmes participent au premier tournoi ; une soixantaine au second, organisé après la publication des résultats du premier.

Les deux tournois sont gagnés par le programme le plus court de tous, envoyé par le mathématicien et psychologue Anatol Rapoport : donnant-donnant (tit for tat en anglais). Sa règle tient en une ligne : coopérer à la première partie, puis refaire ce que l'adversaire a fait à la partie précédente. Axelrod en tire quatre qualités des stratégies qui réussissent :

Un fait étonnant : donnant-donnant ne gagne aucun de ses duels. Au mieux, elle fait jeu égal ; face à un traître, elle perd de peu. Mais elle obtient beaucoup de points avec tous ceux qui coopèrent, et c'est la somme qui compte. Axelrod a publié en 1984 The Evolution of Cooperation, en partie avec le biologiste William Hamilton, qui applique ces idées à l'évolution des espèces : la coopération entre individus peut apparaître sans être imposée, par simple intérêt, dès que les rencontres se répètent.

Un tournoi en Python

Le programme suivant organise un petit tournoi entre six stratégies. Chaque stratégie est une fonction qui reçoit la liste des coups déjà joués par soi-même et par l'adversaire, et renvoie "C" (coopérer) ou "T" (trahir). Chaque paire de stratégies joue $200$ parties, et chaque stratégie joue aussi contre elle-même. La stratégie « hasard » coopère ou trahit avec la probabilité $\frac{1}{2}$ : les scores changent un peu d'une exécution à l'autre. On peut ajouter ses propres stratégies.

from random import random def toujours_cooperer(moi, lui): return "C" def toujours_trahir(moi, lui): return "T" def donnant_donnant(moi, lui): if len(lui) == 0: return "C" return lui[-1] # refaire le dernier coup de l'adversaire def rancunier(moi, lui): if "T" in lui: return "T" # trahi une fois : trahir pour toujours return "C" def hasard(moi, lui): if random() < 0.5: return "C" return "T" def sondeur(moi, lui): if len(lui) == 0: return "T" # trahir d'abord pour tester return lui[-1] GAINS = {("C", "C"): (3, 3), ("C", "T"): (0, 5), ("T", "C"): (5, 0), ("T", "T"): (1, 1)} def match(s1, s2, parties): h1 = [] h2 = [] g1 = 0 g2 = 0 for k in range(parties): c1 = s1(h1, h2) c2 = s2(h2, h1) a, b = GAINS[(c1, c2)] g1 = g1 + a g2 = g2 + b h1.append(c1) h2.append(c2) return g1, g2 strategies = [toujours_cooperer, toujours_trahir, donnant_donnant, rancunier, hasard, sondeur] score = {} for s in strategies: score[s.__name__] = 0 for i in range(len(strategies)): for j in range(i, len(strategies)): a, b = match(strategies[i], strategies[j], 200) score[strategies[i].__name__] = score[strategies[i].__name__] + a if i != j: score[strategies[j].__name__] = score[strategies[j].__name__] + b classement = sorted(score.items(), key=lambda x: -x[1]) for nom, points in classement: print(nom, ":", points) print() print("Duels de donnant-donnant :") for s in strategies: a, b = match(donnant_donnant, s, 200) print("contre", s.__name__, ":", a, "à", b)

Dans nos essais, donnant-donnant arrive en tête, devant la stratégie rancunière, alors qu'elle ne remporte aucun de ses duels. Le résultat dépend toutefois des stratégies présentes : dans une population où presque tout le monde trahit, donnant-donnant ne gagne pas. C'est ce qu'ont confirmé les tournois suivants, et c'est une bonne expérience à faire en modifiant la liste.

Les limites du modèle Des directions pour construire sa question

Ce texte n'est pas un Grand Oral. Il rassemble des connaissances dans lesquelles chacun peut choisir une direction, la creuser et formuler sa propre question. Quelques directions possibles :

Pour l'échange avec le jury : les notions du cours à maîtriser

Le jury peut interroger sur les chapitres de spécialité mobilisés. Avec ce thème, il est utile de connaître parfaitement : la dérivation, le signe de la dérivée et les variations d'une fonction, la recherche d'un maximum ; les suites géométriques, la somme de leurs termes et leur limite ; les suites définies par une formule explicite et leurs limites ; la loi géométrique et son espérance ; les probabilités et l'indépendance ; les bases de la programmation en Python (fonctions, listes, boucles).

Pour réviser ces chapitres, l'application Maths FlashBac reprend tout le cours de spécialité en cartes.

Pour aller plus loin