Valeur d’un jeu à somme nulle
Ce calculateur résout une matrice de gains 2x2 à somme nulle du point de vue du joueur en lignes.
Lancer gratuitement
Il vérifie d’abord si la matrice possède un point selle, auquel cas les deux joueurs peuvent adopter des stratégies pures sans profiter d’un changement unilatéral. En l’absence de point selle, il calcule les probabilités du mélange d’équilibre pour chaque joueur ainsi que la valeur espérée du jeu. Le résultat précise la méthode, la valeur et les probabilités associées à la première et à la seconde ligne ou colonne.
Saisissez la matrice du point de vue d’un joueur
Représentez le jeu par deux lignes et deux colonnes, chaque case indiquant le gain du joueur en lignes pour la combinaison d’actions correspondante. Puisque le jeu est à somme nulle, le gain du joueur en colonnes est l’opposé de cette valeur ; aucune seconde matrice n’est nécessaire. Respectez l’ordre : la première paire décrit la première stratégie de ligne, la deuxième décrit la seconde, et les positions de chaque paire correspondent aux deux colonnes. Une valeur positive favorise le joueur en lignes, une valeur négative favorise son adversaire et zéro est neutre. Les décimales sont admises si les quatre valeurs sont des nombres finis. Le calculateur exige exactement quatre gains, car ses formules et ses libellés concernent exclusivement les jeux 2x2. Un jeu comportant davantage d’actions peut parfois être réduit après élimination de stratégies strictement dominées, mais cette réduction doit être justifiée séparément. Les probabilités produites conservent strictement l’ordre des lignes et colonnes fourni.
Comprenez le test du point selle et la solution pure
Le joueur en lignes cherche à maximiser le gain qu’il peut garantir après la réponse adverse. Le calculateur relève donc le plus petit gain de chaque ligne, puis retient le plus grand de ces minimums : le maximin. Le joueur en colonnes raisonne à l’inverse ; il relève le plus grand gain de chaque colonne, puis choisit le plus petit de ces maximums : le minimax. Lorsque ces deux valeurs sont égales, leur case commune constitue un point selle et donne la valeur du jeu. Aucun joueur ne peut améliorer seul son résultat, si bien qu’un équilibre en stratégies pures suffit. La sortie désigne le point par des numéros de ligne et de colonne commençant à un, attribue la probabilité un à l’action retenue et zéro à l’autre. Une matrice dégénérée peut contenir plusieurs points selle valides. Le calculateur renvoie alors la première paire cohérente dans l’ordre de saisie ; elle reste optimale même si d’autres combinaisons pures ou mixtes le sont également.
Interprétez les stratégies mixtes et la valeur du jeu
Si le maximin est inférieur au minimax, aucune paire d’actions pures n’est stable et chaque joueur doit tirer ses actions au sort. Le calculateur résout les équations d’indifférence : le joueur en lignes choisit des probabilités qui rendent son adversaire indifférent entre les colonnes, tandis que le joueur en colonnes fait de même entre les lignes. Chaque stratégie est un tableau de deux nombres dont la somme vaut un. Le premier correspond à la première ligne ou colonne, le second à la suivante. Il s’agit de fréquences stratégiques, et non d’une prédiction pour une manche précise. La valeur affichée est le gain espéré du joueur en lignes lorsque les deux adversaires jouent de façon optimale ; celle du joueur en colonnes est son opposé. Une valeur positive favorise les lignes à long terme, une valeur négative favorise les colonnes et zéro décrit un jeu équitable en espérance. L’arrondi est déterministe, mais le calcul utilise les gains saisis avant formatage. Une requête automatisée par API coûte $0.002.
Cas d’usage
Vérifier un exercice de cours
Déterminez si une petite matrice possède un point selle, puis confirmez sa valeur et ses stratégies d’équilibre.
Comparer des décisions concurrentes
Modélisez deux choix opposés, par exemple des plans défensifs et offensifs, lorsque le gain d’un camp égale la perte de l’autre.
Automatiser des exercices matriciels
Résolvez par API des séries de jeux 2x2 à somme nulle avec des probabilités présentées dans une structure constante.
Questions fréquentes
Que représentent les cases de la matrice ?
Chaque case est le gain du joueur en lignes pour une paire d’actions. Le joueur en colonnes reçoit la valeur opposée.
Comment reconnaître un point selle ?
Il existe lorsque le plus grand minimum des lignes égale le plus petit maximum des colonnes. La sortie emploie alors la méthode saddle_point.
Dans quel ordre figurent les probabilités ?
Celles des lignes suivent la première puis la seconde ligne saisie ; celles des colonnes suivent pareillement les deux colonnes.
Que signifie une valeur négative ?
Elle indique que le jeu optimal répété favorise le joueur en colonnes. La valeur est toujours exprimée du point de vue du joueur en lignes.
Le calculateur traite-t-il les jeux qui ne sont pas à somme nulle ?
Non. Il suppose des gains exactement opposés et ne calcule pas les équilibres des jeux à somme générale.
Quel est le coût d’un calcul par API ?
Chaque requête par API coûte $0.002. Le calculateur du navigateur exécute localement le même calcul déterministe.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/econ/zero-sum-game-value \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"payoff_matrix":[[3,-1],[0,2]]}'const res = await fetch("https://api.kit.forhosting.com/econ/zero-sum-game-value", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"payoff_matrix": [
[
3,
-1
],
[
0,
2
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/zero-sum-game-value",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"payoff_matrix": [
[
3,
-1
],
[
0,
2
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/zero-sum-game-value", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"payoff_matrix":[[3,-1],[0,2]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"payoff_matrix":[[3,-1],[0,2]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/zero-sum-game-value", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"payoff_matrix": [
[
3,
-1
],
[
0,
2
]
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.zero_sum_game_value",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items | 4 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |