Valore di un gioco a somma zero
Questo calcolatore risolve una matrice dei payoff 2x2 a somma zero dal punto di vista del giocatore di riga.
Esegui gratis nel browser
Verifica anzitutto la presenza di un punto di sella, nel quale entrambi i giocatori possono adottare strategie pure senza trarre vantaggio da una modifica unilaterale. Se il punto non esiste, calcola le probabilità di mescolamento all’equilibrio per entrambi e il valore atteso del gioco. Il risultato specifica il metodo, il valore e le probabilità riferite alla prima e alla seconda riga o colonna.
Inserisca la matrice dalla prospettiva di un giocatore
Rappresenti il gioco con due righe e due colonne; ogni elemento deve indicare il payoff del giocatore di riga per quella combinazione di scelte. Poiché il gioco è a somma zero, il payoff del giocatore di colonna è il valore opposto e non occorre inviare una seconda matrice. Mantenga l’ordine: la prima coppia appartiene alla prima strategia di riga, la seconda alla seconda, mentre le posizioni in ciascuna coppia corrispondono alle due colonne. I valori positivi favoriscono il giocatore di riga, quelli negativi favoriscono l’avversario e zero è neutro. Sono ammessi decimali, purché tutti e quattro gli elementi siano numeri finiti. Il calcolatore accetta esattamente quattro payoff perché formule ed etichette sono specifiche per un gioco 2x2. Se il problema contiene più azioni, l’eliminazione delle strategie strettamente dominate può talvolta ridurlo a questa forma, ma tale passaggio va giustificato a parte. Le probabilità restituite mantengono l’ordine originario di righe e colonne.
Comprenda il test del punto di sella e la soluzione pura
Il giocatore di riga vuole massimizzare il payoff che può garantire dopo la risposta avversaria. Il calcolatore individua quindi il valore minimo di ogni riga e sceglie il maggiore tra questi minimi, ottenendo il maximin. Il giocatore di colonna procede al contrario: trova il valore massimo di ogni colonna e seleziona il minore tra questi massimi, ottenendo il minimax. Quando maximin e minimax coincidono, il loro elemento comune è un punto di sella e rappresenta il valore del gioco. Nessuno migliora cambiando strategia da solo, perciò è sufficiente un equilibrio in strategie pure. L’output identifica il punto con numeri di riga e colonna a partire da uno, assegnando probabilità uno all’azione scelta e zero all’altra. Una matrice degenere può avere più punti validi; in tal caso viene restituita la prima coppia coerente nell’ordine di input. Essa rimane ottimale anche se esistono altre combinazioni pure o miste equivalenti.
Legga le strategie miste e il valore del gioco
Se il maximin è inferiore al minimax, nessuna coppia di azioni pure è stabile e i giocatori devono randomizzare. Il calcolatore risolve le equazioni di indifferenza: il giocatore di riga sceglie probabilità che rendono l’avversario indifferente fra le colonne, mentre il giocatore di colonna fa lo stesso fra le righe. Ogni strategia è restituita come due numeri la cui somma è uno. Il primo riguarda la prima riga o colonna, il secondo la successiva. Queste probabilità sono frequenze strategiche e non previsioni su una singola partita. Il valore indicato è il payoff atteso del giocatore di riga quando entrambi adottano strategie ottimali; per il giocatore di colonna vale l’opposto. Un risultato positivo favorisce le righe nel gioco ripetuto, uno negativo favorisce le colonne e zero indica equità in termini di valore atteso. L’output viene arrotondato in modo deterministico, ma il calcolo usa i payoff originali prima della formattazione. Una richiesta automatizzata tramite API costa $0.002.
Casi d'uso
Verificare un esercizio didattico
Controlli se una piccola matrice presenta un punto di sella e confermi valore e strategie di equilibrio.
Confrontare decisioni competitive
Modelli due scelte contrapposte, come piani difensivi e offensivi, quando il guadagno di una parte equivale alla perdita dell’altra.
Automatizzare esercizi con matrici
Risolva tramite API serie di giochi 2x2 a somma zero con probabilità organizzate in una struttura uniforme.
Domande frequenti
Che cosa rappresentano gli elementi della matrice?
Ogni elemento è il payoff del giocatore di riga per una coppia di azioni. Il giocatore di colonna riceve il valore opposto.
Come si riconosce un punto di sella?
Esiste quando il massimo dei minimi di riga coincide con il minimo dei massimi di colonna. Il risultato usa allora il metodo saddle_point.
In quale ordine sono indicate le probabilità?
Le probabilità di riga seguono la prima e la seconda riga inserite; quelle di colonna seguono allo stesso modo le due colonne.
Che cosa significa un valore negativo?
Significa che il gioco ottimale ripetuto favorisce il giocatore di colonna. Il valore è sempre espresso dalla prospettiva del giocatore di riga.
È possibile risolvere un gioco che non sia a somma zero?
No. Il calcolo presuppone payoff esattamente opposti e non determina gli equilibri dei giochi a somma generale.
Quanto costa un calcolo tramite API?
Ogni richiesta tramite API costa $0.002. Il calcolatore nel browser esegue localmente lo stesso calcolo deterministico.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"payoff_matrix": [
[
3,
-1
],
[
0,
2
]
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.zero_sum_game_value",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_items | 4 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |