プログラム均衡は、プレイヤーがコンピュータプログラムを提出してゲームを代行させ、プログラム同士が互いのソースコードを読み取ることができるシナリオにおけるゲーム理論上の解概念である。この用語は、 2004 年にMoshe Tennenholtzによって導入された。 [ 1 ]同じ設定は、以前にR. Preston McAfee [ 2 ]、JV Howard [ 3 ]、Ariel Rubinstein [ 4 ]によって研究されていた。
プログラム均衡に関する文献では、以下の設定が考慮されています。標準形ゲームを基本ゲームとして考えます。簡略化のため、2人プレイのゲームを考えます。そして利用可能な戦略のセットとそしてはプレイヤーの効用関数である。次に、各プレイヤーがコンピュータプログラムを選択するプレイヤーの報酬(効用)は次のように決定されます。各プレイヤーのプログラム他のプログラムと一緒に実行されます入力と出力としての戦略プレイヤー向け便宜上、プログラムは自身のソースコードにアクセスできると想定されることもよくあります。[注1 ]最後に、プレイヤーのユーティリティは次のように与えられます。のためにすなわち、基本ゲームの効用関数を選択された戦略に適用することによって。
さらに、プログラムの一つが停止しない。これに対処する一つの方法は、停止しないプログラムを防ぐために、両方のプレイヤーが使用できるプログラムのセットを制限することである。[ 1 ] [ 5 ]
プログラム均衡とは、一対のプログラムのことである。これは、プログラムゲームのナッシュ均衡を構成する。言い換えれば、どちらのプレイヤーもプログラム均衡でない場合代替プログラムに逸脱する可能性があるそのため、その効用はより。
プログラムの代わりに、対戦相手が提出した論理式のエンコードに応じてプレイするアクションを指定する論理式など、他の種類のオブジェクトをプレイヤーに提出させる著者もいる。[ 6 ] [ 7 ]
囚人のジレンマにおいて、協力的なプログラム均衡を達成する方法については、様々な著者が提案している。
複数の著者が囚人のジレンマに対して以下のプログラムを独自に提案している。[ 1 ] [ 3 ] [ 2 ]
アルゴリズムCliqueBot(opponent_program): 対するプログラムが this_program と等しい場合は Cooperate を返し、そうでない場合は Defect を返す
両方のプレイヤーがこのプログラムを提出した場合、両方のプログラムの実行においてif節は真となります。結果として、両方のプログラムは協力します。さらに、(CliqueBot,CliqueBot)は均衡状態です。どちらかのプレイヤーが他のプログラムに逸脱した場合、CliqueBotと異なる場合、相手は裏切るだろう。したがって、最悪の場合、相互裏切りという結果に終わる可能性があり、それは相互協力という結果よりも悪い。
このアプローチは脆弱であると批判されてきた。[ 5 ]プレイヤーが提出するソースコードの正確性について調整に失敗した場合(例えば、一方のプレイヤーが余分なスペース文字を追加した場合)、両方のプログラムが不正行為を行う。以下の技術の開発は、この脆弱性の問題が一因となっている。
別のアプローチは、各プレイヤーのプログラムが相手のプログラムについて、あるいは2つのプログラムがどのように関連しているかについて何かを証明しようとすることに基づいています。[ 6 ] [ 8 ] [ 9 ] [ 10 ]そのようなプログラムの1つは次のとおりです。
アルゴリズムFairBot(opponent_program): 反対プログラム(this_program)が協力的であるという証明があれば協力 的 を返す、そうでなければ 欠陥を返す
Löbの定理を用いると、両方のプレイヤーがこのプログラムを提出した場合、互いに協力し合うことが示される。[ 8 ] [ 9 ] [ 10 ]さらに、一方のプレイヤーが上記のプログラムに反するプログラムを提出した場合、(証明システムの一貫性が使用されると仮定すると)if条件は偽となり、上記のプログラムは反することになる。したがって、(FairBot,FairBot)もプログラム均衡である。
別の提案プログラムは次のとおりです。[ 5 ] [ 11 ] [ 12 ]
アルゴリズムGroundedFairBot(対戦相手プログラム): 確率: 協力を 返すreturn 対戦相手プログラム(this_program)
ここは小さな正の数です。
両方のプレイヤーがこのプログラムを提出した場合、ほぼ確実に終了し、協力します。終了までの期待ステップ数は等比級数で与えられます。さらに、両方のプレイヤーがこのプログラムを提出した場合、どちらも利益を得られるような逸脱はできません。は十分に小さいので、確率で裏切る相手を裏切る可能性が高い。
本稿では、プログラム均衡において達成可能な利得を特徴づける定理を示す。
この定理では、次の用語を使用します。一対の利得(混合戦略の)ペアが存在する場合、それは実行可能であると呼ばれる。そのため両プレイヤーにとってつまり、ある戦略プロファイルで達成される場合、ペイオフのペアは実行可能であると呼ばれます。ペイオフが、そのプレイヤーのミニマックス利得よりも優れている場合、それは個別に合理的であると呼ばれます。つまり、ここで最小値は、プレイヤーのすべての混合戦略についてである。[注2 ]
定理(プログラム均衡に関するフォーク定理):[ 4 ] [ 1 ] Gを基本ゲームとする。を実数値の利得のペアとする。このとき、以下の2つの主張は同等である。
この結果は、均衡利得に関する同じ条件を用いる繰り返しゲームに関するいわゆるフォーク定理(ゲーム理論)にちなんで、フォーク定理と呼ばれている。。