利得行列の期待値計算ツール
この利得行列期待値計算ツールは、行プレイヤーが選べる各純粋戦略を、相手の指定された混合戦略に対して評価します。行プレイヤーの利得行列と、相手の各行動に対応する確率を入力してください。各利得に同じ列の確率を掛け、行ごとに積を合計して、期待利得が最大となる純粋戦略を示します。同率なら該当する戦略をすべて表示します。ゲーム理論の演習、戦略的意思決定の分析、経済学の学習、混合戦略の推論を明確に検算する場面でご利用いただけます。
無料で実行
行プレイヤーの視点で利得行列を並べます
評価する純粋戦略を行、相手が選び得る純粋戦略を列として行列を作成してください。各セルには、その選択の組み合わせで行プレイヤーが得る利得を入力します。教科書で (3, 1) のような順序対が示され、行プレイヤーが第1プレイヤーなら、最初の数値だけを使用します。第2プレイヤーを評価する場合は、戦略の視点を入れ替えたうえで2番目の数値だけを使用してください。すべての行は、同じ順序の相手の行動に対応するため、列数をそろえる必要があります。負の利得、ゼロ、小数はいずれも入力できます。戦略名は任意ですが、行の順序に合わせてください。省略すると「Strategy 1」「Strategy 2」のような名称が割り当てられます。この明示的な構造により、あるプレイヤーの利得と、異なる順序で並んだ相手の行動確率を誤って組み合わせることを防げます。
相手の混合戦略を入力して意味を確認します
行列の各列について、そこに表された相手の戦略とまったく同じ順序で確率を1つずつ入力してください。各確率はゼロ以上1以下で、合計が1でなければなりません。確率ゼロも有効であり、対応する相手の行動はどの期待利得にも寄与しません。計算ツールは各行について、利得に列の確率を掛け、その積を合計して加重平均を求めます。したがって期待利得は、同じ純粋戦略を選び続け、相手が指定の分布に従って繰り返し無作為化した場合の長期的な平均利得です。1回のプレイの利得を保証するものでも、相手が実際に選ぶ行動を予測するものでもありません。確認用に確率の合計も返します。小さな浮動小数点許容差を超える入力は、自動的に正規化せず拒否します。そのため、指定した混合戦略と、誤入力や不完全な重みとを区別できます。
純粋戦略を比較して最適反応を特定します
expected_payoffs では、同一の相手分布に対するすべての行戦略を比較できます。maximum_expected_payoff は計算された最大値を示し、best_strategies はその値を達成する戦略をすべて列挙します。プレイヤーが複数の純粋戦略の間で無差別になる場合があるため、最大値をすべて残すことが重要です。同率の最適反応だけを台として作る任意の混合は、この固定された相手戦略に対して同じ期待利得を持ちますが、本ツールは均衡確率自体を解くものではありません。最適反応は入力した確率に依存し、相手の混合を変えると順位や同率の有無も変わり得ます。混合戦略均衡の候補を検証するときは、台に含まれる戦略が同率で、除外された純粋戦略の利得がそれを上回らないことをご確認ください。API は1リクエストにつき $0.002 です。通信や無作為標本を使わない決定的計算なので、同一入力からは同一の数値結果が得られます。
活用例
ゲーム理論の演習を検算する
各行戦略の期待利得を求め、指定された相手の混合に対してどの純粋行動が最適反応かを確認できます。
均衡における無差別条件を調べる
提案された混合戦略の台にある戦略の期待利得が等しく、除外された戦略が上回らないことを確認できます。
無作為な行動下の意思決定を比較する
参加者、市場状態、またはシナリオが既知の確率分布に従う場合に、固定した行動を評価できます。
よくある質問
どちらのプレイヤーの利得を入力しますか?
行戦略を評価するプレイヤーの利得を入力してください。セルが順序対なら、そのプレイヤーに対応する成分だけを一貫して選びます。
確率の合計は1でなければなりませんか?
はい。各値はゼロ以上1以下で、小さな数値許容差の範囲内で合計が1になる必要があります。
複数の戦略が同率になった場合はどうなりますか?
最大期待利得で同率の戦略はすべて best_strategies に表示され、同率の最適反応は除外されません。
このツールでナッシュ均衡を求められますか?
いいえ。指定された相手の混合に対する純粋反応を評価します。均衡計算における無差別条件と最適反応の確認には利用できます。
負の利得や小数も入力できますか?
はい。負の値、ゼロ、整数、小数で表した分数など、有限の数値であれば入力できます。
期待利得とは何ですか?
指定された相手分布に対して1つの純粋戦略を繰り返したときの確率加重平均であり、1回の結果を保証する値ではありません。
API リクエストの料金はいくらですか?
API の料金は1リクエストあたり $0.002 です。ブラウザ版では同じ決定的計算をローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/econ/payoff-matrix-expected-value \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"payoff_matrix":[[3,0],[1,2]],"opponent_probabilities":[0.25,0.75]}'const res = await fetch("https://api.kit.forhosting.com/econ/payoff-matrix-expected-value", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"payoff_matrix": [
[
3,
0
],
[
1,
2
]
],
"opponent_probabilities": [
0.25,
0.75
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/payoff-matrix-expected-value",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"payoff_matrix": [
[
3,
0
],
[
1,
2
]
],
"opponent_probabilities": [
0.25,
0.75
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/payoff-matrix-expected-value", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"payoff_matrix":[[3,0],[1,2]],"opponent_probabilities":[0.25,0.75]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"payoff_matrix":[[3,0],[1,2]],"opponent_probabilities":[0.25,0.75]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/payoff-matrix-expected-value", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"payoff_matrix": [
[
3,
0
],
[
1,
2
]
],
"opponent_probabilities": [
0.25,
0.75
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.payoff_matrix_expected_value",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |