JP2023105374A - 均衡解探索プログラム、均衡解探索方法および情報処理装置 - Google Patents

均衡解探索プログラム、均衡解探索方法および情報処理装置 Download PDF

Info

Publication number
JP2023105374A
JP2023105374A JP2022006158A JP2022006158A JP2023105374A JP 2023105374 A JP2023105374 A JP 2023105374A JP 2022006158 A JP2022006158 A JP 2022006158A JP 2022006158 A JP2022006158 A JP 2022006158A JP 2023105374 A JP2023105374 A JP 2023105374A
Authority
JP
Japan
Prior art keywords
candidate data
strategy
record
evaluation value
updated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022006158A
Other languages
English (en)
Inventor
菜月 石川
Natsuki Ishikawa
雅俊 小川
Masatoshi Ogawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2022006158A priority Critical patent/JP2023105374A/ja
Publication of JP2023105374A publication Critical patent/JP2023105374A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】均衡解を効率的に探索する。【解決手段】情報処理装置10は、第1のノードの行動の候補を示す複数の第1のレコードを含む候補データ13を各第1のレコードの評価値に基づいて更新し、新しい第1のレコードの評価値を第2のノードの行動の候補を示す候補データ14に基づいて算出する、ことをそれぞれ含む複数のイテレーションを実行する。情報処理装置10は、候補データ14が更新される場合、候補データ14における評価値の変化の大きさを示す変化指標値17が閾値18を超えるか判定する。情報処理装置10は、変化指標値17が閾値18を超える場合、更新された候補データ13に含まれる新しい第1のレコード以外の他の第1のレコードの評価値を、更新された候補データ14に基づいて更新する。【選択図】図1

Description

本発明は均衡解探索プログラム、均衡解探索方法および情報処理装置に関する。
情報処理装置は、ノードの行動の候補を生成して評価関数で評価することを繰り返すことによって、ノードの行動を最適化するシミュレーションを実行することがある。例えば、遺伝的アルゴリズムでは、情報処理装置は、複数の遺伝子を含む遺伝子集合を生成し、適応度関数を用いて各遺伝子の適応度を算出する。情報処理装置は、適応度に応じて一部の遺伝子を次世代の遺伝子集合にコピーし、交叉や突然変異によって一部の遺伝子を確率的に改変して新しい遺伝子を追加する。これにより、様々な遺伝子の適応度が検討され、適応度の小さい遺伝子が淘汰されて適応度の大きい遺伝子が最終的に残る。
なお、複数のボリュームにファイルを分配する場合に、ボリューム間でファイル数、データ総量およびアクセス回数が平準化されるような最適なファイル配置を、遺伝的アルゴリズムを用いて決定するファイル再配置システムが提案されている。また、文字認識に使用する特徴量を、認識率が閾値を超える範囲で特徴量の個数ができる限り少なくなるように、遺伝的アルゴリズムを用いて選択する文字認識装置が提案されている。
また、複数のプレイヤーがそれぞれ遺伝的アルゴリズムに従って戦略を選択することで、プレイヤー間の均衡状態を探索する戦略ゲーム型遺伝的アルゴリズムが提案されている。各プレイヤーは、交叉や突然変異によって新しい戦略を生成すると、他のプレイヤーがもつ同世代の戦略を参照して当該新しい戦略の利得を算出する。各プレイヤーは、現世代の戦略それぞれの利得に基づいて、次世代に残す戦略を選択する。
特開2003-296149号公報 特開2008-71214号公報
有村幹治、田村亨、井田直人、「土木計画分野における遺伝的アルゴリズム:最適化と適応学習」、土木学会論文集D、第62巻第4号、505~518頁、2006年10月
前述の戦略ゲーム型遺伝的アルゴリズムのようにノード間の均衡解を探索する場合、情報処理装置は、あるノードの行動の候補に対する評価値を、他のノードの行動の候補を参照して算出することがある。ただし、あるノードの候補集合を反復的に更新する間に、他のノードの行動の候補が変化する可能性がある。
その場合、候補集合の世代が進む毎に全ての候補の評価値を再度算出することは、計算量が大きく非効率である。一方、新しい候補に対してのみ評価値を算出して、既存の候補の評価値を更新しないと、他のノードの行動が評価値に適切に反映されないおそれがある。そこで、1つの側面では、本発明は、均衡解を効率的に探索することを目的とする。
1つの態様では、以下の処理をコンピュータに実行させる均衡解探索プログラムが提供される。第1のノードの行動の候補をそれぞれ示す複数の第1のレコードを含む第1の候補データを、各第1のレコードの評価値に基づいて更新し、更新された第1の候補データに含まれる新しい第1のレコードの評価値を、第2のノードの行動の候補を示す第2の候補データに基づいて算出する、ことをそれぞれ含む複数のイテレーションを実行する。複数のイテレーションの間に第2の候補データが更新される場合、第2の候補データにおける評価値の変化の大きさを示す変化指標値が閾値を超えるか判定する。変化指標値が閾値を超える場合、更新された第1の候補データに含まれる第1のレコードのうち新しい第1のレコード以外の他の第1のレコードの評価値を、更新された第2の候補データに基づいて更新する。また、1つの態様では、コンピュータが実行する均衡解探索方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
1つの側面では、均衡解が効率的に探索される。
第1の実施の形態の情報処理装置を説明するための図である。 情報処理装置のハードウェア例を示すブロック図である。 複数プレイヤーの遺伝的アルゴリズムの実行例を示す図である。 複数プレイヤーの遺伝的アルゴリズムの実行例を示す図(続き1)である。 複数プレイヤーの遺伝的アルゴリズムの実行例を示す図(続き2)である。 シミュレーション対象のプレイヤーの例を示す図である。 シミュレーション上の戦略および利得の定義例を示す図である。 遺伝的アルゴリズムの実行中の戦略テーブルの例を示す図である。 世代の進行に対する最大利得の変化例を示すグラフである。 利得の比較例を示すグラフである。 情報処理装置の機能例を示すブロック図である。 均衡解探索の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、複数のノードの行動の均衡解を探索するシミュレーションを行う。シミュレーションには遺伝的アルゴリズムが用いられてもよいし、粒子群最適化(PSO:Particle Swarm Optimization)が用いられてもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、均衡解探索装置またはシミュレーション装置と呼ばれてもよい。
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
記憶部11は、第1のノードに関する候補データ13と、第2のノードに関する候補データ14とを記憶する。第1のノードおよび第2のノードは、シミュレーション上の行動主体を表してもよく、プレイヤーまたはエージェントと呼ばれてもよい。第1のノードおよび第2のノードが、それぞれプロセッサまたはコンピュータに対応してもよい。
候補データ13は、第1のノードの行動の候補をそれぞれ示す複数の第1のレコードを含む。例えば、候補データ13は、レコード15a,15bを含む。候補データ14は、第2のノードの行動の候補を示す。候補データ14が、第2のノードの行動の候補をそれぞれ示す複数の第2のレコードを含んでもよい。レコードは遺伝子または戦略と呼ばれてもよく、候補データは遺伝子集合または戦略集合と呼ばれてもよい。レコードは、複数の次元の数値を列挙したベクトルであってもよい。
また、記憶部11は、複数の第1のレコードそれぞれの評価値を記憶する。例えば、記憶部11は、レコード15aに対する評価値16aと、レコード15bに対する評価値16bとを記憶する。ある第1のレコードの評価値は、特定の評価関数に基づいて、当該第1のレコードと候補データ14とから算出される。評価関数は適応度関数または利得関数と呼ばれてもよく、評価値は適応度または利得と呼ばれてもよい。評価関数は、評価値を算出する毎に選択される乱数を含んでもよい。
処理部12は、候補データ13に対して複数のイテレーションを実行する。イテレーションは、各第1のレコードの評価値に基づいて候補データ13を更新することを含む。例えば、イテレーションは、評価値の大きい方から優先的に選択される一部の第1のレコードを残して選択されなかった第1のレコードを削除すると共に、交叉または突然変異によって生成される新しい第1のレコードを追加することを含む。よって、候補データ13の更新により、一部の第1のレコードが残り、他の第1のレコードが置換されることがある。候補データ13を更新することが、候補データ13の世代が進むと呼ばれてもよい。
また、イテレーションは、更新された候補データ13に含まれる新しい第1のレコードの評価値を、候補データ14に基づいて算出することを含む。このとき、処理部12は、後述する条件が成立する場合を除き、更新前から候補データ13に含まれている既存の第1のレコードの評価値を再度算出しなくてもよい。例えば、評価値16aが評価値16bより高く、レコード15aが残ってレコード15bが置換されることがある。この場合、処理部12は、レコード15aの評価値16aを再度算出せず、置換後の新しい第1のレコードに対する評価値のみを算出することがある。
なお、処理部12は、候補データ14に対して候補データ13と同様の複数のイテレーションを実行してもよい。その場合、処理部12は、更新された候補データ14に含まれる新しい第2のレコードの評価値を、候補データ13に基づいて算出してもよい。候補データ13に対するイテレーションと候補データ14に対するイテレーションとは、逐次的に実行されてもよいし並列に実行されてもよい。情報処理装置10が有する複数のプロセッサまたは複数の情報処理装置が、候補データ13に対するイテレーションと候補データ14に対するイテレーションとを並列に実行してもよい。
上記のように、複数のイテレーションの実行中に候補データ14が更新される場合がある。その場合、処理部12は、候補データ14における評価値の変化の大きさを示す変化指標値17を算出し、変化指標値17が閾値18を超えるか判定する。
変化指標値17は、基準のイテレーションでの評価値と現在のイテレーションでの評価値との差分(例えば、両者の差の絶対値)でもよい。また、変化指標値17は、基準のイテレーションでの評価値に対する差分の比率を示す変化率であってもよい。基準のイテレーションは、候補データ14に含まれる全ての第2のレコードに対して評価値が算出されたイテレーションのうち直近のイテレーションであってもよい。
変化を監視する評価値は、候補データ14に含まれる第2のレコードの平均評価値でもよい。例えば、処理部12は、候補データ14が更新される毎に、更新された候補データ14に含まれる全ての第2のレコードの平均評価値を算出する。また、変化を監視する評価値は、候補データ14からサンプリングされる第2のレコードに対する最新の評価値でもよい。例えば、処理部12は、候補データ14が更新される毎に、候補データ14から一部の第2のレコードを抽出する。処理部12は、抽出された第2のレコードの評価値を最新の候補データ13に基づいてそれぞれ算出し直し、その最大値、平均値、または、変化指標値17が最大化されるもの(最大値と最小値の何れか一方)を採用する。
変化指標値17が閾値18を超える場合、処理部12は、更新された候補データ13に含まれる第1のレコードのうち新しい第1のレコードでない既存の第1のレコードの評価値を、更新された候補データ14に基づいて更新する。例えば、処理部12は、更新された候補データ14に基づいて既存の第1のレコードの評価値を再度算出し、元の評価値を、元の評価値と新しい評価値との加重平均に置換する。
なお、既存の第1のレコードの評価値を再度算出する場合、処理部12は、候補データ14からランダムに1以上の第2のレコードを選択し、既存の第1のレコードと選択された第2のレコードとの組み合わせに基づいて評価値を算出してもよい。その場合、処理部12は、新しい第1のレコードの評価値についても、既存の第1のレコードと同じ方法で算出してもよい。一方、新しい第1のレコードの評価値のみを算出する場合、処理部12は、候補データ14から評価値に応じて(例えば、評価値の大きい方から優先的に)1以上の第2のレコードを選択し、新しい第1のレコードと選択された第2のレコードとの組み合わせに基づいて評価値を算出してもよい。
また、前述のように、第1の実施の形態の均衡解探索は、粒子群最適化に適応することもできる。粒子群最適化は、移動する複数の粒子それぞれの位置および速度を反復的に更新して、それら複数の粒子の位置を最適化する。粒子群最適化は、適応度関数を用いて各位置の適応度を評価し、各粒子が確率的に最良位置へ向かうように速度を変更する。粒子群最適化は、粒子全体から見たグローバルの最良位置の情報と、各粒子から見たローカルの最良位置の情報と、乱数とを用いて、各粒子の速度を更新する。粒子群最適化では、処理部12は、ある粒子集合における評価値の変化の大きさを示す変化指標値が閾値を超えた場合、全ての粒子の最良位置に対する評価値を更新すればよい。
以上説明したように、第1の実施の形態の情報処理装置10は、候補データ13を更新して新しい第1のレコードの評価値を候補データ14に基づいて算出するイテレーションを、反復的に実行する。情報処理装置10は、候補データ14の変化指標値17が閾値18を超えるか判定し、変化指標値17が閾値18を超える場合、候補データ13に含まれる既存の第1のレコードの評価値を候補データ14に基づいて更新する。
これにより、情報処理装置10は、複数のノードの間の均衡解を探索することができる。また、候補データ13が更新される毎に全ての第1のレコードの評価値を再度算出する場合と比べて、計算量が減少して均衡解探索が効率化される。また、新しい第1のレコードに対してのみ評価値を算出して既存の第1のレコードの評価値を更新しない場合と比べて、候補データ14の大きな変化が候補データ13の全ての第1のレコードの評価値に適切に反映される。よって、均衡解探索の精度や収束速度が向上する。
なお、変化指標値17は、候補データ14に含まれる複数の第2のレコードの平均評価値の変化の大きさを示すものであってもよい。これにより、候補データ14の変化の程度が効率的に推定される。また、変化指標値17は、候補データ14からサンプリングされる一部の第2のレコードに対する最新の評価値の変化の大きさを示すものであってもよい。これにより、候補データ14の変化の程度が高精度に推定される。
また、既存の第1のレコードに対する更新後の評価値は、元の評価値と最新の候補データ14に基づく新しい評価値との加重平均であってもよい。これにより、評価関数が乱数を使用する場合、乱数のみを変えながら評価値を繰り返し算出しなくても、異なる乱数の影響が評価値に反映されて評価値の妥当性が向上する。
また、情報処理装置10は、新しい第1のレコードに対してのみ評価値を算出するイテレーションでは、候補データ14から評価値に応じて一部の第2のレコードを選択し、選択した第2のレコードに基づいて新しい第1のレコードの評価値を算出してもよい。これにより、候補データ14が大きく変化しない状況では、第2のノードが選択する可能性の高い行動に基づいて評価値が算出され、評価値の妥当性が向上する。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、戦略ゲーム型遺伝的アルゴリズムを用いたシミュレーションを行う。情報処理装置100は、遺伝的アルゴリズムによって複数のプレイヤーそれぞれの戦略を利得の最大化を目指して最適化し、その結果として生じるプレイヤー間の均衡状態を探索する。このシミュレーションは、サプライチェーンのような大規模な社会システムの分析や制度設計に適用され得る。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100が、コンピュータ、均衡解探索装置またはシミュレーション装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
図2は、情報処理装置のハードウェア例を示すブロック図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101は、コア101a,101b,101cなどの複数のコアを有する。複数のコアは、プログラムの命令を並列に実行する。CPU101は、後述する3つのプレイヤーに関する遺伝的アルゴリズムを、コア101a,101b,101cを用いて並列に実行してもよい。
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
HDD103は、OS(Operating System)、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力するプロセッサである。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。
GPU104は、GPGPU(General Purpose Computing on Graphics Processing Units)として使用されてもよい。その場合、GPU104は、CPU101からの指示に応じてプログラムの命令を実行する。GPU104は、コア104a,104b,104cなどの複数のコアを有してもよい。複数のコアは、プログラムの命令を並列に実行する。GPU104は、後述する3つのプレイヤーに関する遺伝的アルゴリズムを、コア104a,104b,104cを用いて並列に実行してもよい。また、GPU104は、RAM102とは別個の揮発性半導体メモリをGPUメモリとして有してもよい。
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
次に、第2の実施の形態の戦略ゲーム型遺伝的アルゴリズムについて説明する。
図3は、複数プレイヤーの遺伝的アルゴリズムの実行例を示す図である。
ここでは、3つのプレイヤーが遺伝的アルゴリズムに従って並列に、自身の利得が最大になるように戦略集合を反復的に更新する。第2の実施の形態において、プレイヤーは自らの意思で戦略を選択する個人または企業としての行動主体であり、エージェントまたはノードと呼ばれてもよい。戦略、戦略集合、利得および利得関数は、遺伝的アルゴリズムの遺伝子、遺伝子集合、適応度および適応度関数に相当する。戦略集合が反復的に更新されることで、戦略集合の世代が進行する。3つのプレイヤーの間で、世代の進行は同期して行われる。情報処理装置100は、世代数が事前に設定された上限世代数Gに達した時点で、遺伝的アルゴリズムを停止する。
3つのプレイヤーの遺伝的アルゴリズムは、同一のプロセッサによって時分割で実行されてもよいし、異なるプロセッサによって並列に実行されてもよい。例えば、プレイヤーAの遺伝的アルゴリズムがコア101aまたはコア104aで実行され、プレイヤーBの遺伝的アルゴリズムがコア101bまたはコア104bで実行され、プレイヤーCの遺伝的アルゴリズムがコア101cまたはコア104cで実行される。
情報処理装置100は、プレイヤーAについて第1世代(初期世代)の戦略集合130を生成し、プレイヤーBについて第1世代の戦略集合140を生成し、プレイヤーCについて第1世代の戦略集合150を生成する。戦略集合130,140,150は、それぞれP個の戦略を含む。P個の戦略の中に同一の戦略が重複して含まれていてもよい。
各戦略は、利得を得るための行動の方針を示しており、複数次元の数値を列挙したベクトルである。情報処理装置100は、第1世代の戦略をランダムに生成してもよいし、偏りが小さくなるように一定の規則で生成してもよい。例えば、情報処理装置100は、プレイヤー毎に、各次元の数値の候補を列挙してベクトル空間を定義し、ベクトル空間の中からラテン超方格法によってP個のベクトルを選択する。ラテン超方格法は、偏りが小さくなるように複数のサンプルを選択する実験計画法の1つである。ラテン超方格法は、各次元について同一の数値をもつベクトルの個数が少なくなるように、P個のベクトルそれぞれの複数次元の数値の組み合わせを決定する。
情報処理装置100は、第1世代の戦略集合130,140,150に対して一斉利得算出を実行する。一斉利得算出は、プレイヤーA,B,Cの間で同期して行われる。一斉利得算出は、各プレイヤーがもつ戦略集合の中の全ての戦略の利得を、利得関数を用いて、他のプレイヤーがもつ戦略集合を参照しつつ算出する。
一斉利得算出では、情報処理装置100は、あるプレイヤーの1つの戦略の利得を算出するために、他のプレイヤーそれぞれの戦略集合からランダムに異なるK個の相手戦略を抽出する。情報処理装置100は、1つの戦略につき相手戦略の組み合わせをK通り生成し、自戦略および相手戦略を利得関数に入力することでK個の利得を算出する。情報処理装置100は、K個の利得の平均を、当該1つの戦略の利得として採用する。
例えば、情報処理装置100は、戦略集合130の第1戦略の利得を算出するために、戦略集合140からランダムに異なるK個の相手戦略を抽出し、戦略集合150からランダムに異なるK個の相手戦略を抽出する。情報処理装置100は、プレイヤーA,B,Cの戦略の組み合わせをK通り生成し、K通りの組み合わせをそれぞれ利得関数に入力する。情報処理装置100は、K個の利得の平均を第1戦略の利得として採用する。同様にして、情報処理装置100は、戦略集合130の他のP-1個の戦略それぞれの利得を算出する。また、情報処理装置100は、戦略集合140のP個の戦略それぞれの利得を算出し、戦略集合150のP個の戦略それぞれの利得を算出する。
なお、利得関数は、プレイヤーA,B,Cの行動以外の外部環境を示す乱数を使用することがある。利得関数は、利得を算出する毎に新しい乱数を選択する。ただし、利得関数は、同一プレイヤーかつ同一世代の戦略に対して同一の乱数を使用してもよい。異なるプレイヤーの戦略に対しては異なる乱数が使用されることが好ましい。これにより、複数のプレイヤーの戦略集合が過度に早期に収束して局所解に陥るリスクが低下する。
一斉利得算出によって、情報処理装置100は、戦略集合130のP個の戦略に対応するP個の利得を含む利得集合131を生成する。また、情報処理装置100は、戦略集合140のP個の戦略に対応するP個の利得を含む利得集合141を生成し、戦略集合150のP個の戦略に対応するP個の利得を含む利得集合151を生成する。
次に、情報処理装置100は、戦略集合130,140,150に対して選択を実行する。プレイヤーA,B,Cに対する選択は、同期せずに互いに独立に実行可能である。選択は、戦略集合に含まれる一部の戦略を次世代に残して他の戦略を削除する淘汰と、残した戦略を確率的に複製して戦略数をP個に増やす繁殖とを含む。
選択では、情報処理装置100は、各戦略の利得に基づいて、エリート選択付きのランキング選択を実行する。情報処理装置100は、エリート選択として、戦略集合の中から利得の大きい上位一定個数の戦略を選択して次世代に残す。情報処理装置100は、ランキング選択として、エリート選択で選択されなかった戦略に対して利得に比例する選択確率を設定し、選択確率に従って確率的に一定個数の戦略を選択して次世代に残す。よって、利得が大きい上位数個の戦略は選択される一方、それ以外の戦略は利得の高い順に選択されるわけではない。ただし、情報処理装置100は、ルーレット選択やトーナメント選択など他の選択アルゴリズムを実行してもよい。
選択を通じて、情報処理装置100は、プレイヤーAについて戦略集合130から戦略集合132を生成する。例えば、戦略集合132では、戦略集合130の第2戦略が削除されて第1戦略が複製される。また、情報処理装置100は、プレイヤーBについて戦略集合140から戦略集合142を生成する。例えば、戦略集合142では、戦略集合140の第1戦略および第3戦略が削除されて第2戦略が複製される。また、情報処理装置100は、プレイヤーCについて戦略集合150から戦略集合152を生成する。例えば、戦略集合152では、戦略集合150の第3戦略が削除されて第2戦略が複製される。
図4は、複数プレイヤーの遺伝的アルゴリズムの実行例を示す図(続き1)である。
次に、情報処理装置100は、戦略集合130,140,150が戦略集合132,142,152に更新されたことに合わせて、利得集合131,141,151を利得集合133,143,153に更新する。利得集合133,143,153は、算出済みの利得の並べ替えによって生成可能である。利得集合133は、戦略集合132のP個の戦略に対応するP個の利得を含む。利得集合143は、戦略集合142のP個の戦略に対応するP個の利得を含む。利得集合153は、戦略集合152のP個の戦略に対応するP個の利得を含む。情報処理装置100は、この時点の戦略集合132,142,152および利得集合133,143,153を一時的に保存する。
次に、情報処理装置100は、プレイヤー毎にこの時点の平均利得を算出して保存する。情報処理装置100は、利得集合133に含まれるP個の利得の平均を平均利得134として算出する。また、情報処理装置100は、利得集合143に含まれるP個の利得の平均を平均利得144として算出する。また、情報処理装置100は、利得集合153に含まれるP個の利得の平均を平均利得154として算出する。
ただし、情報処理装置100は、平均利得に代えて代表利得を算出して保存してもよい。例えば、情報処理装置100は、プレイヤー毎に、戦略集合から幾つかの戦略をサンプル戦略として抽出し、サンプル戦略の最新の利得を一斉利得算出と同様の方法で算出し直す。情報処理装置100は、サンプル戦略の最新の利得のうち最大利得を保存する。
次に、情報処理装置100は、戦略集合132,142,152に対して交叉および突然変異を実行する。例えば、交叉が先に実行され、その後に突然変異が実行される。プレイヤーA,B,Cに対する交叉および突然変異は、同期せずに互いに独立に実行可能である。交叉は、戦略集合の中から2つの戦略を選択し、選択した2つの戦略の間で一部の次元の数値を入れ替える。突然変異は、戦略集合から1つの戦略を選択し、選択した戦略に含まれる一部の次元の数値をランダムに書き換える。交叉および突然変異によって確率的に変更される戦略は、戦略集合の中の少数の戦略である。交叉および突然変異によって、前世代の戦略集合にない新しい戦略が生成されることがある。
交叉および突然変異を通じて、情報処理装置100は、プレイヤーAについて戦略集合132から戦略集合135を生成する。例えば、戦略集合135では、戦略集合132の第1戦略が新しい戦略に変更される。また、情報処理装置100は、プレイヤーBについて戦略集合142から戦略集合145を生成する。例えば、戦略集合145では、戦略集合142の第3戦略が新しい戦略に変更される。また、情報処理装置100は、プレイヤーCについて戦略集合152から戦略集合155を生成する。例えば、戦略集合155では、戦略集合152の第2戦略が新しい戦略に変更される。
戦略集合135,145,155は、第2世代の戦略集合である。第2世代の戦略集合は、第1世代の戦略集合と同じ戦略を含むことがある。また、第2世代の戦略集合は、第1世代の戦略集合と異なる戦略を含むことがある。
次に、情報処理装置100は、第2世代の戦略集合135,145,155に対して差分利得算出を実行する。差分利得算出は、プレイヤーA,B,Cの間で同期して行われる。差分利得算出は、各プレイヤーがもつ戦略集合の中の新しい戦略の利得を、利得関数を用いて、他のプレイヤーがもつ戦略集合を参照しつつ算出する。差分利得算出は、一斉利得算出と異なり、既存の戦略の利得を算出し直さなくてよい。
ここで、新しい戦略は、同一プレイヤーの前世代の戦略集合にない戦略を意味してもよく、既存の戦略は、同一プレイヤーの前世代の戦略集合にある戦略を意味してもよい。また、新しい戦略は、同一プレイヤーの過去の戦略集合に1回も出現したことのない戦略を意味してもよく、既存の戦略は、同一プレイヤーの過去の戦略集合に出現したことのある戦略を意味してもよい。新しい戦略は、利得を1回も算出したことのない戦略を意味してもよく、既存の戦略は、利得を算出したことのある戦略を意味してもよい。
差分利得算出では、情報処理装置100は、あるプレイヤーの1つの戦略の利得を算出するために、他のプレイヤーそれぞれの戦略集合から利得の大きい上位E個の相手戦略を抽出する。EはKより小さくてもよい。相手戦略を抽出する戦略集合は、直前に一時保存された戦略集合、すなわち、利得が未算出の戦略を含まない戦略集合である。ここでは、情報処理装置100は、戦略集合132,142,152から相手戦略を抽出する。情報処理装置100は、1つの戦略につき相手戦略の組み合わせをランダムにE通り生成し、自戦略および相手戦略を利得関数に入力することでE個の利得を算出する。情報処理装置100は、E個の利得の平均を、当該1つの戦略の利得として採用する。
例えば、情報処理装置100は、戦略集合135の第1戦略の利得を算出するために、戦略集合142から上位E個の相手戦略を抽出し、戦略集合152から上位E個の相手戦略を抽出する。情報処理装置100は、プレイヤーA,B,Cの戦略の組み合わせをE通り生成し、E通りの組み合わせをそれぞれ利得関数に入力する。情報処理装置100は、E個の利得の平均を第1戦略の利得として採用する。同様にして、情報処理装置100は、戦略集合145の第3戦略の利得および戦略集合155の第2戦略の利得を算出する。
差分利得算出によって、情報処理装置100は、戦略集合135のP個の戦略に対応するP個の利得を含む利得集合136を生成する。また、情報処理装置100は、戦略集合145のP個の戦略に対応するP個の利得を含む利得集合146を生成し、戦略集合155のP個の戦略に対応するP個の利得を含む利得集合156を生成する。
次に、情報処理装置100は、選択に戻り、交叉および突然変異を通じて第3世代の戦略集合を生成する。情報処理装置100は、最新の世代数gが上限世代数Gに達するまで、上記のイテレーションを繰り返す。よって、第2世代以降の戦略集合に対しては、原則として一斉利得算出ではなく差分利得算出が実行される。
ただし、少なくとも1つのプレイヤーの戦略集合が大きく変化したと判断される場合、情報処理装置100は、そのイテレーションでは差分利得算出に代えて一斉利得算出を実行する。2回目以降の一斉利得算出は、既存の戦略に対する利得を更新する。戦略集合が大きく変化したことは、変化指標値が閾値Δを超えたことによって判定される。第2の実施の形態の変化指標値は、前回の一斉利得算出からの平均利得の差分、すなわち、最新の平均利得と前回の一斉利得算出の直後の平均利得との差の絶対値である。ただし、変化指標値は、前回の一斉利得算出からの平均利得の変化率であってもよい。また、変化指標値は、前述の代表利得の差分または変化率であってもよい。
図5は、複数プレイヤーの遺伝的アルゴリズムの実行例を示す図(続き2)である。
情報処理装置100は、第n世代(nは3以上の整数)の選択を実行し、その時点のプレイヤーA,B,Cの戦略集合および利得集合を一時保存し、プレイヤーA,B,Cに対応する平均利得137,147,157を算出する。情報処理装置100は、第n世代の交叉および突然変異を実行し、プレイヤーA,B,Cに対応する戦略集合138,148,158を生成する。戦略集合138,148,158は、第n世代の戦略集合である。例えば、戦略集合138の第3戦略は、第1世代から引き継がれたものである。戦略集合148の第3戦略は、第2世代から引き継がれたものである。戦略集合158の第1戦略は、第1世代から引き継がれたものである。
次に、情報処理装置100は、平均利得137,147,157に基づいて、少なくとも1つのプレイヤーの戦略集合が前回の一斉利得算出から大きく変化したか判定し、差分利得算出と一斉利得算出の何れか一方を選択する。平均利得の変化量が閾値Δを超える場合、情報処理装置100は、一斉利得算出を選択する。
ここでは、情報処理装置100は、戦略集合138,148,158に含まれる全ての戦略の利得を算出する一斉利得算出を実行する。情報処理装置100は、1つの戦略の利得を算出するために、他のプレイヤーそれぞれの戦略集合からランダムに異なるK個の相手戦略を抽出する。相手戦略を抽出する戦略集合は、直近に一時保存された戦略集合、すなわち、平均利得137,147,157の算出に用いられた戦略集合である。情報処理装置100は、1つの戦略につきK個の利得を算出する。
新しい戦略については、情報処理装置100は、1回目の一斉利得算出と同様に、算出されたK個の利得の平均を新しい戦略の利得として採用する。一方、既存の戦略については、情報処理装置100は、1回目の一斉利得算出と異なり、算出されたK個の利得に加えて更新前の利得も用いて既存の戦略の利得を更新する。更新後の利得は、更新前の利得と新しい利得の加重平均である。具体的には、更新後の利得は、更新前の利得と今回算出されたK個の利得との合計をK+1で割ったものである。これにより、更新前の利得の算出に使用された乱数の影響が、更新後の利得に間接的に反映される。
例えば、情報処理装置100は、戦略集合138の第1戦略の利得を算出するために、一時保存されたプレイヤーBの戦略集合からK個の相手戦略を抽出し、一時保存されたプレイヤーCの戦略集合からK個の相手戦略を抽出する。情報処理装置100は、プレイヤーA,B,Cの戦略の組み合わせをK通り生成し、更新前の利得および利得関数によって算出されるK個の利得の平均を、第1戦略の利得として採用する。同様にして、情報処理装置100は、戦略集合138,148,158の全ての戦略の利得を算出する。
一斉利得算出によって、情報処理装置100は、戦略集合138のP個の戦略に対応するP個の利得を含む利得集合139を生成する。また、情報処理装置100は、戦略集合148のP個の戦略に対応するP個の利得を含む利得集合149を生成し、戦略集合158のP個の戦略に対応するP個の利得を含む利得集合159を生成する。
次に、シミュレーション対象の例としてサプライチェーンについて説明する。
図6は、シミュレーション対象のプレイヤーの例を示す図である。
シミュレーション対象のサプライチェーンは、行動主体として原料生産者31、製造業者32,33,34、小売業者35,36,37および消費者群38を含む。原料生産者31は、製造業者32,33,34に原料を販売する。製造業者32,33,34は、原料生産者31から原料を仕入れて商品を製造し、小売業者35,36,37に商品を販売する。小売業者35,36,37は、製造業者32,33,34から商品を仕入れて消費者群38に販売する。消費者群38は、小売業者35,36,37から商品を購入する。
このシミュレーションでは、情報処理装置100は、製造業者32,33,34と小売業者35,36,37との間の取引を通じて決まる商品の取引量および取引価格の均衡解を探索する。製造業者32,33,34と小売業者35,36,37との間の取引は、製造業者側と小売業者側とがそれぞれ希望の取引量および取引価格を指定するダブルオークション方式によってモデル化される。また、シミュレーション上、製造業者32および小売業者35は取引戦略を最適化するプレイヤーであり、製造業者33,34および小売業者36,37は簡単な固定ルールで取引戦略を選択する非プレイヤーである。
原料生産者31および消費者群38も非プレイヤーである。ただし、原料生産者31が販売する原料の原料価格はランダムに変動しており、製造業者32,33,34にとってそれら製造業者がコントロールしない外部環境に相当する。また、消費者群38が購入する商品の需要量はランダムに変動しており、小売業者35,36,37にとってそれら小売業者がコントロールしない外部環境に相当する。消費者群38が小売業者35,36,37から購入する商品の商品価格は、固定である。
情報処理装置100は、同一の戦略のもとで30回の取引(例えば、1日1回の取引を30日分)を連続して行った場合の製造業者32の利得および小売業者35の利得を算出する。情報処理装置100は、製造業者32および小売業者35それぞれについて、遺伝的アルゴリズムを用いて利得が最大になる戦略を探索する。
図7は、シミュレーション上の戦略および利得の定義例を示す図である。
原料生産者31の原料価格は、事前に規定された正規分布に従って1日毎に変動する。原料価格を決定するために乱数が使用される。消費者群38の需要量は、事前に規定された正規分布に従って1日毎に変動する。需要量を決定するために乱数が使用される。
製造業者32の戦略は、出荷量と出荷価格を含む二次元ベクトルである。第1次元の出荷量は1日毎の出荷量であり、500個、600個、700個、800個、900個の中から選択される。500個は0に、600個は1に、700個は2に、800個は3に、900個は4にエンコードされる。第2次元の出荷価格は商品単価である。出荷価格は、原料価格+75円、原料価格+65円、原料価格+55円、原料価格+45円、原料価格+35円の中から選択される。+75円は0に、+65円は1に、+55円は2に、+45円は3に、+35円は4にエンコードされる。製造業者32の利得は、30日分の売上高から30日分の原料仕入高を引いた粗利益である。
小売業者35の戦略は、安全在庫量と仕入価格を含む二次元ベクトルである。第1次元の安全在庫量は、1日の需要量だけ消費者群38に商品を販売した後に小売業者35のもとに残る商品の個数である。小売業者35は、その日の予想需要量から前日の在庫量を引いて安全在庫量を足した数量だけ、その日に商品を仕入れようとする。安全在庫量は、0個、100個、200個、300個、400個の中から選択される。0個は0に、100個は1に、200個は2に、300個は3に、400個は4にエンコードされる。
第2次元の仕入価格は商品単価である。仕入価格は、180円、170円、160円、150円、140円の中から選択される。180円は0に、170円は1に、160円は2に、150円は3に、140円は4にエンコードされる。小売業者35の利得は、30日分の売上高から30日分の商品仕入高を引いた粗利益である。
製造業者32,33,34および小売業者35,36,37がそれぞれ戦略を選択して希望の取引量および取引価格を提示すると、ダブルオークション方式によって取引量および取引価格が決定される。取引量は業者によって異なる一方、取引価格は製造業者32,33,34および小売業者35,36,37に共通な相場として決定される。相場は、証券取引の板寄せに準ずる方法で決定されてもよい。
例えば、情報処理装置100は、製造業者32,33,34を希望出荷価格の小さい順にソートし、小売業者35,36,37を希望仕入価格の大きい順にソートする。情報処理装置100は、順位の高い製造業者から優先的に出荷権利を付与し、順位の高い小売業者から優先的に仕入権利を付与する。情報処理装置100は、出荷権利のある製造業者の希望出荷価格と仕入権利のある小売業者の希望仕入価格とを比較し、希望出荷価格が希望仕入価格より小さい場合に、その製造業者と小売業者との間の取引を成立させる。取引量は、希望出荷量の未充足部分と希望仕入量の未充足部分とのうちの小さい方である。
情報処理装置100は、出荷権利のある製造業者の希望出荷量が取引成立によって全て充足されると、出荷権利を次の順位の製造業者に付与する。また、情報処理装置100は、仕入権利のある小売業者の希望仕入量が取引成立によって全て充足されると、仕入権利を次の順位の小売業者に付与する。情報処理装置100は、製造業者32,33,34全ての希望出荷量が充足されるか、または、小売業者35,36,37全ての希望仕入量が充足されると、オークションを終了する。また、情報処理装置100は、希望価格が合わずに取引が成立しなくなった場合、オークションを終了する。
製造業者32,33,34および小売業者35,36,37の取引量は、上記の手順を通じて業者毎に成立した取引の取引量である。一方、製造業者32,33,34および小売業者35,36,37の取引価格は、取引の成立状況から算出される単一の相場である。製造業者32,33,34の希望出荷量の合計が小売業者35,36,37の希望仕入価格の合計より小さい場合、取引価格は、最後に仕入権利をもっていた小売業者の希望仕入価格である。希望出荷量の合計が希望仕入価格の合計より大きい場合、取引価格は、最後に出荷権利をもっていた製造業者の希望出荷価格である。
図8は、遺伝的アルゴリズムの実行中の戦略テーブルの例を示す図である。
戦略テーブル126は、情報処理装置100に記憶される。戦略テーブル126は、プレイヤーである製造業者32の戦略集合および利得集合を含む。また、戦略テーブル126は、プレイヤーである小売業者35の戦略集合および利得集合を含む。
前述のように製造業者32の戦略は、出荷量および出荷価格を含む二次元ベクトルである。出荷量は0以上4以下の整数にエンコードされ、出荷価格は0以上4以下の整数にエンコードされる。交叉は、2つの戦略の間で出荷量と出荷価格の何れか一方を入れ替える。突然変異は、出荷量と出荷価格の何れか一方をランダムに書き換える。戦略テーブル126は、各戦略に対して粗利益を示す利得を対応付ける。
また、前述のように小売業者35の戦略は、安全在庫量および仕入価格を含む二次元ベクトルである。安全在庫量は0以上4以下の整数にエンコードされ、仕入価格は0以上4以下の整数にエンコードされる。交叉は、2つの戦略の間で安全在庫量と仕入価格の何れか一方を入れ替える。突然変異は、安全在庫量と仕入価格の何れか一方をランダムに書き換える。戦略テーブル126は、各戦略に対して粗利益を示す利得を対応付ける。
図9は、世代の進行に対する最大利得の変化例を示すグラフである。
曲線41,42は、以下の条件でシミュレーションを行った場合の世代数と最大利得との関係を示す。最大利得は、戦略集合に含まれる戦略の利得のうちの最大値である。上限世代数Gは300、戦略集合の戦略数Pは50、一斉利得算出時の相手戦略数Kは20、差分利得算出時の相手戦略数Eは3、変化指標値の閾値Δは2000である。また、交叉確率は30%、突然変異確率は5%、エリート選択の個数は5である。曲線41は、小売業者35の最大利得の変化を示す。曲線42は、製造業者32の最大利得の変化を示す。
曲線41,42に示すように、世代の進行に伴って、製造業者32の最大利得および小売業者35の最大利得が収束している。このシミュレーション例では、第2世代から第300世代の間に、一斉利得算出が7回行われている。7回の一斉利得算出ではそれぞれ、相手戦略の変化が認識されることで既存の戦略の評価が下がり、最大利得が大きく低下している。以下では、時点43,44における製造業者32,33,34および小売業者35,36,37の利得を比較する。時点44は時点43よりも後の世代である。
図10は、利得の比較例を示すグラフである。
グラフ45は、時点43における小売業者35,36,37の利得を示す。グラフ46は、時点43における製造業者32,33,34の利得を示す。グラフ47は、時点44における小売業者35,36,37の利得を示す。グラフ48は、時点44における製造業者32,33,34の利得を示す。グラフ45,47に示すように、前述の遺伝的アルゴリズムによって、小売業者35は小売業者36,37よりも安定して大きい利得を得ている。また、グラフ46,48に示すように、前述の遺伝的アルゴリズムによって、製造業者32は製造業者33,34よりも安定して大きい利得を得ている。
次に、情報処理装置100の機能および処理手順について説明する。
図11は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、設定情報記憶部121、戦略記憶部122、戦略生成部123、利得算出部124および世代制御部125を有する。設定情報記憶部121および戦略記憶部122は、例えば、RAM102またはHDD103を用いて実装される。戦略生成部123、利得算出部124および世代制御部125は、例えば、CPU101またはGPU104とプログラムとを用いて実装される。
設定情報記憶部121は、戦略ゲーム型遺伝的アルゴリズムを実行するための設定情報を記憶する。設定情報は、前述のG,P,K,E,Δなどのパラメータを含む。また、設定情報は、戦略を示すベクトルの定義および利得関数を含む。戦略記憶部122は、複数のプレイヤーそれぞれがもつ戦略集合を記憶する。また、戦略記憶部122は、各戦略に対して算出された利得およびある時点の平均利得を記憶する。
戦略生成部123は、ラテン超方格法によって、複数のプレイヤーそれぞれの第1世代の戦略集合を生成する。また、戦略生成部123は、複数のプレイヤーそれぞれの第n世代の戦略集合に対して、その戦略集合に含まれる各戦略の利得に応じて選択を実行し、更に交叉および突然変異を実行して第n+1世代の戦略集合を生成する。
利得算出部124は、複数のプレイヤーの第1世代の戦略集合に対して、利得関数を用いて一斉利得算出を実行する。また、利得算出部124は、複数のプレイヤーの第n世代の戦略集合に対して、利得関数を用いて差分利得算出と一斉利得算出の何れか一方を選択的に実行する。差分利得算出か一斉利得算出かは、世代制御部125から指定される。
世代制御部125は、戦略生成部123および利得算出部124のイテレーションを制御する。世代制御部125は、複数のプレイヤーの間で利得算出部124による利得の算出を同期させる。また、世代制御部125は、現在の世代数gが上限世代数Gに達したか判断し、世代数gが上限世代数Gに達した時点でシミュレーションを終了する。また、世代制御部125は、複数のプレイヤーそれぞれの戦略集合の変化指標値を監視する。少なくとも1つのプレイヤーについて変化指標値が閾値Δを超えたイテレーションでは、世代制御部125は、利得算出部124に一斉利得算出を指示する。それ以外のイテレーションでは、世代制御部125は、利得算出部124に差分利得算出を指示する。
図12は、均衡解探索の手順例を示すフローチャートである。
ここでは、1つのプレイヤーに着目して処理を説明する。
(S10)戦略生成部123は、ラテン超方格法によってベクトル空間から偏りの小さいP個の戦略を抽出し、P個の戦略を含む戦略集合を生成する。
(S11)利得算出部124は、ステップS10の戦略集合の戦略毎に、他のプレイヤーの戦略集合からランダムに異なるK個の相手戦略を抽出する。
(S12)利得算出部124は、ステップS10の戦略集合の戦略毎に、その戦略とK個の相手戦略と乱数からK個の利得を算出する。利得算出部124は、算出されたK個の利得の平均をその戦略の利得として採用する。
(S13)戦略生成部123は、現在の戦略集合に対して選択を実行する。選択は、利得に応じて一部の戦略を残して他の戦略を削除する淘汰と、戦略数がPになるまで、削除された戦略の代わりに残った戦略を複製する繁殖とを含む。
(S14)戦略生成部123は、この時点の戦略集合を一時保存する。利得算出部124は、この時点の戦略集合に含まれる戦略の平均利得を算出して一時保存する。
(S15)戦略生成部123は、ステップS13の選択の後の戦略集合に対して、交叉および突然変異を順に実行する。交叉は、一定確率で2つの戦略の一部次元の数値を入れ替える。突然変異は、一定確率で戦略の一部次元の数値をランダムに変更する。
(S16)世代制御部125は、ステップS15の交叉および突然変異の後の戦略集合の世代が第3世代以降であるか判断する。第3世代以降である場合、世代制御部125は、直近のステップS14の平均利得と前回の一斉利得算出の直後の平均利得との差分が、閾値Δを超えるか判断する。平均利得の差分が閾値Δを超える場合はステップS19に処理が進む。それ以外の場合、ステップS17に処理が進む。
(S17)利得算出部124は、直前に一時保存された他のプレイヤーの戦略集合から、利得が大きい上位E個の相手戦略を抽出する。
(S18)利得算出部124は、ステップS15の交叉および突然変異によって生成された新しい戦略毎に、新しい戦略とE個の相手戦略と乱数からE個の利得を算出する。利得算出部124は、算出されたE個の利得の平均を新しい戦略の利得として採用する。そして、ステップS21に処理が進む。
(S19)利得算出部124は、ステップS15の戦略集合の戦略毎に、直前に一時保存された他のプレイヤーの戦略集合からランダムに異なるK個の相手戦略を抽出する。
(S20)利得算出部124は、ステップS15の戦略集合の戦略毎に、その戦略とK個の相手戦略と乱数からK個の利得を算出する。利得算出部124は、更新前の利得および算出されたK個の利得の平均を、その戦略の更新後の利得として採用する。
(S21)世代制御部125は、現在の戦略集合の世代数が上限世代数Gに達したか判断する。世代数が上限世代数Gに達した場合、均衡解探索が終了する。世代数が上限世代数Gに達していない場合、ステップS13に処理が戻る。
以上説明したように、第2の実施の形態の情報処理装置100は、遺伝的アルゴリズムによって複数のプレイヤーそれぞれの戦略集合を反復的に更新し、プレイヤー間の均衡状態を探索する。これにより、社会システムの分析や制度設計に有用なシミュレーション結果が得られる。また、情報処理装置100は、異なるプレイヤーの遺伝的アルゴリズムを異なるプロセッサで並列に実行できる。これにより、シミュレーションが高速化される。
また、情報処理装置100は、各イテレーションにおいて原則として、新しい戦略に対してのみ利得を算出する差分利得算出を行う。これにより、計算量が減少してシミュレーションが効率化される。一方、情報処理装置100は、何れかのプレイヤーの戦略集合の変化指標値が閾値を超えたイテレーションでは、既存の戦略の利得も更新する一斉利得算出を行う。これにより、相手戦略が大きく変化した場合にはその変化が既存の戦略の利得に反映され、シミュレーションの精度が向上する。
また、情報処理装置100は、第1世代の戦略集合をラテン超方格法によって生成する。これにより、第1世代の戦略の偏りが小さくなり、複数のプレイヤーの戦略が不適切な均衡解に収束してしまうリスクが低減する。また、情報処理装置100は、一斉利得算出ではK個の相手戦略をランダムに抽出する。これにより、ある程度の相手戦略の変化に対してロバストな利得が算出される。一方、情報処理装置100は、差分利得算出では利得の大きい方からE個の相手戦略を抽出する。これにより、他のプレイヤーが選択する可能性の高い相手戦略のもとで妥当な利得が算出される。
また、情報処理装置100は、プレイヤーによって異なる乱数を用いて利得を算出する。これにより、複数のプレイヤーの戦略にばらつきが与えられ、不適切な均衡解に早期に収束してしまうリスクが低減する。また、情報処理装置100は、第2世代以降の一斉利得算出では、更新前の利得と新たに算出した利得との加重平均を更新後の利得とする。これにより、同一世代で乱数を変えながら利得を繰り返し算出しなくても、異なる乱数の影響を更新後の利得に反映させることができ、利得の信頼性が向上する。
なお、情報処理装置100は、第2の実施の形態における一斉利得算出と差分利得算出の選択適用を、粒子群最適化に応用することもできる。これにより、粒子群最適化の計算量が減少して効率化されると共に、最適化精度が向上する。
10 情報処理装置
11 記憶部
12 処理部
13,14 候補データ
15a,15b レコード
16a,16b 評価値
17 変化指標値
18 閾値

Claims (7)

  1. 第1のノードの行動の候補をそれぞれ示す複数の第1のレコードを含む第1の候補データを、各第1のレコードの評価値に基づいて更新し、更新された前記第1の候補データに含まれる新しい第1のレコードの評価値を、第2のノードの行動の候補を示す第2の候補データに基づいて算出する、ことをそれぞれ含む複数のイテレーションを実行し、
    前記複数のイテレーションの間に前記第2の候補データが更新される場合、前記第2の候補データにおける評価値の変化の大きさを示す変化指標値が閾値を超えるか判定し、
    前記変化指標値が前記閾値を超える場合、更新された前記第1の候補データに含まれる第1のレコードのうち前記新しい第1のレコード以外の他の第1のレコードの評価値を、更新された前記第2の候補データに基づいて更新する、
    処理をコンピュータに実行させる均衡解探索プログラム。
  2. 前記第2の候補データは、前記第2のノードの行動の候補をそれぞれ示す複数の第2のレコードを含み、前記変化指標値は、更新された前記第2の候補データに含まれる第2のレコードの平均評価値の変化の大きさを示す、
    請求項1記載の均衡解探索プログラム。
  3. 前記第2の候補データは、前記第2のノードの行動の候補をそれぞれ示す複数の第2のレコードを含み、前記変化指標値は、更新された前記第2の候補データからサンプリングされる一部の第2のレコードの評価値の変化の大きさを示す、
    請求項1記載の均衡解探索プログラム。
  4. 前記更新された評価値は、更新前の評価値と、更新された前記第2の候補データに基づいて算出される新しい評価値との加重平均である、
    請求項1記載の均衡解探索プログラム。
  5. 前記第2の候補データは、前記第2のノードの行動の候補をそれぞれ示す複数の第2のレコードを含み、
    前記他の第1のレコードの評価値を更新しないイテレーションでは、各第2のレコードの評価値に応じて前記第2の候補データから選択される一部の第2のレコードに基づいて、前記新しい第1のレコードの評価値を算出し、
    前記他の第1のレコードの評価値の更新では、前記第2の候補データからランダムに選択される一部の第2のレコードに基づいて前記他の第1のレコードの評価値を更新する、
    請求項1記載の均衡解探索プログラム。
  6. 第1のノードの行動の候補をそれぞれ示す複数の第1のレコードを含む第1の候補データを、各第1のレコードの評価値に基づいて更新し、更新された前記第1の候補データに含まれる新しい第1のレコードの評価値を、第2のノードの行動の候補を示す第2の候補データに基づいて算出する、ことをそれぞれ含む複数のイテレーションを実行し、
    前記複数のイテレーションの間に前記第2の候補データが更新される場合、前記第2の候補データにおける評価値の変化の大きさを示す変化指標値が閾値を超えるか判定し、
    前記変化指標値が前記閾値を超える場合、更新された前記第1の候補データに含まれる第1のレコードのうち前記新しい第1のレコード以外の他の第1のレコードの評価値を、更新された前記第2の候補データに基づいて更新する、
    処理をコンピュータが実行する均衡解探索方法。
  7. 第1のノードの行動の候補をそれぞれ示す複数の第1のレコードを含む第1の候補データと、各第1のレコードの評価値とを記憶する記憶部と、
    前記第1の候補データを前記各第1のレコードの評価値に基づいて更新し、更新された前記第1の候補データに含まれる新しい第1のレコードの評価値を、第2のノードの行動の候補を示す第2の候補データに基づいて算出する、ことをそれぞれ含む複数のイテレーションを実行し、前記複数のイテレーションの間に前記第2の候補データが更新される場合、前記第2の候補データにおける評価値の変化の大きさを示す変化指標値が閾値を超えるか判定し、前記変化指標値が前記閾値を超える場合、更新された前記第1の候補データに含まれる第1のレコードのうち前記新しい第1のレコード以外の他の第1のレコードの評価値を、更新された前記第2の候補データに基づいて更新する処理部と、
    を有する情報処理装置。
JP2022006158A 2022-01-19 2022-01-19 均衡解探索プログラム、均衡解探索方法および情報処理装置 Pending JP2023105374A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022006158A JP2023105374A (ja) 2022-01-19 2022-01-19 均衡解探索プログラム、均衡解探索方法および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022006158A JP2023105374A (ja) 2022-01-19 2022-01-19 均衡解探索プログラム、均衡解探索方法および情報処理装置

Publications (1)

Publication Number Publication Date
JP2023105374A true JP2023105374A (ja) 2023-07-31

Family

ID=87468815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022006158A Pending JP2023105374A (ja) 2022-01-19 2022-01-19 均衡解探索プログラム、均衡解探索方法および情報処理装置

Country Status (1)

Country Link
JP (1) JP2023105374A (ja)

Similar Documents

Publication Publication Date Title
CN110782096A (zh) 一种外汇时间序列预测方法
WO2015040789A1 (ja) 商品推薦装置、商品推薦方法、及び、記録媒体
JP6344396B2 (ja) 発注量決定装置、発注量決定方法、プログラム、及び、発注量決定システム
US11727420B2 (en) Time series clustering analysis for forecasting demand
TWI781461B (zh) 資訊處理裝置、資訊處理方法及程式
Pramono et al. Estimating customer segmentation based on customer lifetime value using two-stage clustering method
CN107292666A (zh) 销售潜力判断方法及装置
CN112256209B (zh) 一种云存储系统的参数配置优化方法及优化系统
CN117236278B (zh) 一种基于数字孪生技术的芯片生产仿真方法及系统
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
WO2018088277A1 (ja) 予測モデル生成システム、方法およびプログラム
KR101998294B1 (ko) 작업장 계정 검출 장치 및 방법
JP2023105374A (ja) 均衡解探索プログラム、均衡解探索方法および情報処理装置
KR20240029504A (ko) 금융 서비스를 위한 데이터 이코노미 설정 방법 및 이러한 방법을 수행하는 장치
KR20240002900A (ko) 데이터 이코노미에서 금융 데이터 가치 측정 방법 및 이러한 방법을 수행하는 장치
CN113254783B (zh) 一种对象推荐方法、装置及设备
WO2018088276A1 (ja) 予測モデル生成システム、方法およびプログラム
Spolaôr et al. Use of multiobjective genetic algorithms in feature selection
Tunali et al. Multi-objective evolutionary product bundling: a case study
JP2023118523A (ja) 均衡解探索プログラム、均衡解探索方法および情報処理装置
Zafar et al. Webscraping Laptop Prices to Estimate Hedonic Models and Extensions to Other Predictive Methods
KR102587477B1 (ko) 데이터 이코노미를 기반으로 금융 서비스를 제공하는 방법 및 이러한 방법을 수행하는 장치
KR102587476B1 (ko) 금융 서비스를 위한 금융 서비스 매트릭스 조정 방법 및 이러한 방법을 수행하는 장치
KR102587475B1 (ko) 금융 서비스를 위한 금융 서비스 매트릭스 설정 방법 및 이러한 방법을 수행하는 장치
Khan et al. Evolving technical trading strategies using genetic algorithms: A case about Pakistan stock exchange