(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5954750
(24)【登録日】2016年6月24日
(45)【発行日】2016年7月20日
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06N 99/00 20100101AFI20160707BHJP
G06N 3/12 20060101ALI20160707BHJP
G06F 19/00 20110101ALI20160707BHJP
【FI】
G06N99/00 180
G06N3/12 160
G06F19/00 110
【請求項の数】20
【全頁数】17
(21)【出願番号】特願2014-134426(P2014-134426)
(22)【出願日】2014年6月30日
(65)【公開番号】特開2016-12285(P2016-12285A)
(43)【公開日】2016年1月21日
【審査請求日】2016年1月12日
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成25年度、科学技術振興機構、戦略的創造研究推進事業(CREST)、産業技術力強化法第19条の適用を受ける特許出願
【早期審査対象出願】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】牟田 英正
(72)【発明者】
【氏名】ルディー・レイモンド・ハリー・プテラ
(72)【発明者】
【氏名】原 聡
(72)【発明者】
【氏名】森村 哲郎
【審査官】
多賀 実
(56)【参考文献】
【文献】
特開2002−288624(JP,A)
【文献】
特開2001−147913(JP,A)
【文献】
田中雅晴 外4名,“遺伝的アルゴリズムを用いた複数飛行経路の生成法”,電子情報通信学会論文誌,社団法人電子情報通信学会,2002年 8月 1日,第J85−D−I巻,第8号,pp.767−775
【文献】
水田秀行 外2名,“都市計画のための交通シミュレーション”,情報処理,一般社団法人情報処理学会,2014年 5月15日,第55巻,第6号,pp.579−584
(58)【調査した分野】(Int.Cl.,DB名)
G06N3/00−99/00
G06F17/50
G06F19/00
G06Q10/04
(57)【特許請求の範囲】
【請求項1】
経時的な試行過程に入力される入力パラメータの最適化を目的として探索を行う情報処理装置であって、
複数の入力パラメータを取得する取得部と、
前記複数の入力パラメータのそれぞれについて試行過程を実行する実行部と、
前記複数の入力パラメータのそれぞれについて実行した前記試行過程の評価値を算出する評価算出部と、
前記複数の入力パラメータのそれぞれについて実行した前記試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する類似度算出部と、
前記複数の入力パラメータのそれぞれに対する試行過程の評価値及び前記複数の試行過程間の類似度に基づいて前記複数の入力パラメータを更新するパラメータ更新部と、
を備える情報処理装置。
【請求項2】
前記類似度算出部は、前記経時的な試行過程の期間の途中時点での評価値を、前記特徴量として抽出する、
請求項1に記載の情報処理装置。
【請求項3】
前記類似度算出部は、前記期間の複数時点における前記評価値を抽出して前記特徴量に含める、
請求項2に記載の情報処理装置。
【請求項4】
前記類似度算出部は、前記複数時点のうちより新しい時点における評価値により大きな重み付けをして前記特徴量に含める、
請求項3に記載の情報処理装置。
【請求項5】
前記情報処理装置は、経時的な試行過程に入力される入力パラメータを複数の目的関数に対して最適化する方向に探索するものであり、
前記評価算出部は、複数の前記試行過程の各々について複数の目的関数の値を計算し、計算した前記複数の目的関数の値に基づいて前記評価値を算出する、
請求項1に記載の情報処理装置。
【請求項6】
前記類似度算出部は、複数種類の特徴量を抽出し、前記試行過程の類似度を算出する、
請求項5に記載の情報処理装置。
【請求項7】
前記複数の入力パラメータのそれぞれは、複数の個体が持つ遺伝子のそれぞれにより定義され、
前記パラメータ更新部は、
前記複数の入力パラメータのそれぞれに対する前記試行過程の前記評価値に基づいて、前記個体を淘汰し、
2以上の前記個体を交叉させて新たな個体を生成し、
前記実行部は、前記新たな個体が持つ遺伝子により定義される入力パラメータについて試行過程を実行する、
請求項1から6のいずれか1項に記載の情報処理装置。
【請求項8】
前記パラメータ更新部は、
複数の前記個体を対応する前記入力パラメータによる前記試行過程間の類似度に基づいてグループ化し、グループ毎にグループ内の前記個体を対応する前記入力パラメータの評価値に基づいて淘汰する、
請求項7に記載の情報処理装置。
【請求項9】
前記評価算出部は、前記試行過程としてエージェントベースのシミュレーションを実行する、
請求項1から8のいずれか1項に記載の情報処理装置。
【請求項10】
コンピュータに実行される、経時的な試行過程に入力される入力パラメータを最適化を目的として探索を行う情報処理方法であって、
複数の入力パラメータを取得する取得段階と、
前記複数の入力パラメータのそれぞれについて試行過程を実行する実行段階と、
前記複数の入力パラメータのそれぞれについて実行した前記試行過程の評価値を算出する評価算出段階と、
前記複数の入力パラメータのそれぞれについて実行した前記試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する類似度算出段階と、
前記複数の入力パラメータのそれぞれに対する評価値及び前記複数の試行過程間の類似度に基づいて前記複数の入力パラメータを更新するパラメータ更新段階と、
を備える情報処理方法。
【請求項11】
前記類似度算出段階において、前記経時的な試行過程の期間の途中時点での評価値を、前記特徴量として抽出する、
請求項10に記載の情報処理方法。
【請求項12】
前記類似度算出段階において、前記期間の複数時点における前記評価値を抽出して前記特徴量に含める、
請求項11に記載の情報処理方法。
【請求項13】
前記類似度算出段階において、前記複数時点のうちより新しい時点における評価値により大きな重み付けをして前記特徴量に含める、
請求項12に記載の情報処理方法。
【請求項14】
前記情報処理方法は、経時的な試行過程に入力される入力パラメータを複数の目的関数に対して最適化する方向に探索するものであり、
前記評価算出段階において、複数の前記試行過程の各々について複数の目的関数の値を計算し、計算した前記複数の目的関数の値に基づいて前記評価値を算出する、
請求項10に記載の情報処理方法。
【請求項15】
前記類似度算出段階において、複数種類の特徴量を抽出し、前記試行過程の類似度を算出する、
請求項14に記載の情報処理方法。
【請求項16】
前記複数の入力パラメータのそれぞれは、複数の個体が持つ遺伝子のそれぞれにより定義され、
前記パラメータ更新段階において、
前記複数の入力パラメータのそれぞれに対する前記試行過程の前記評価値に基づいて、前記個体を淘汰し、
2以上の前記個体を交叉させて新たな個体を生成し、
前記実行段階において、前記新たな個体が持つ遺伝子により定義される入力パラメータについて試行過程を実行する、
請求項10から15のいずれか1項に記載の情報処理方法。
【請求項17】
前記パラメータ更新段階において、
複数の前記個体を対応する前記入力パラメータによる前記試行過程間の類似度に基づいてグループ化し、グループ毎にグループ内の前記個体を対応する前記入力パラメータの評価値に基づいて淘汰する、
請求項16に記載の情報処理方法。
【請求項18】
前記評価算出段階において、前記試行過程としてエージェントベースのシミュレーションを実行する、
請求項10から17のいずれか1項に記載の情報処理方法。
【請求項19】
コンピュータを、請求項1から9のいずれか1項に記載の情報処理装置として機能させるプログラム。
【請求項20】
コンピュータに、請求項10から18のいずれか1項に記載の情報処理方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
近似解を探索する手法として、生物の進化モデルを取り入れた遺伝的アルゴリズムが知られている(例えば、非特許文献1を参照)。また、遺伝的アルゴリズムにより互いに競合する複数の目的関数の値を最大化(又は最小化)する問題を解くと、複数の目的関数の値を同時に改善することができず、互いにトレードオフの関係となる解の集合がパレート境界面を形成する。
【0003】
しかし、従来の遺伝的アルゴリズムにおいて、複数の目的関数の値を相加平均等することにより解を評価した評価値を用いて解の集合を進化させると、最終的に得られる解の集合が一箇所に集中してしまい、解の多様性が失われることが多い。
【0004】
この問題に対して、パレート境界面から近い順に解をランク付けして、ランクに応じた優先度で解同士を交叉させる方法(非特許文献2)、及び、目的関数空間において距離が近い解同士を複数のグループにグループ化し、各グループで最も評価の高い解を残存させて他の解を淘汰する方法(非特許文献3)が知られている。
【0005】
また、複数の入力パラメータを入力し、複数の出力パラメータを出力するモデルを複数の目的関数を用いて最適化を目的として探索する問題に対して、遺伝的アルゴリズム以外にアニーリング法、粒子群最適化、又は、タブー探索法等のメタヒューリスティックアルゴリズムが用いられている。
[非特許文献1]D.Goldbergs: "Genetic algorithms in search, optimization, and machine learning," Addison-Wasley Publishing Company, 1989
[非特許文献2]CM.Fonseca and PJ.Fleming: "Multiobjective genetic algorithms," IEE colloquium on Genetic Algorithms for Control Systems Engineering, Digest No. 1993/130, 1993
[非特許文献3]J.Horn, N.Nafpliotis and D.E.Goldberg: "A niched Pareto genetic a lgorithm for multiobjective optimization," Proceedings of the First IEEE Conference on Evolutionary Computation, 82-87, 1994
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、非特許文献3の手法を用いてシミュレーションの初期条件等を最適化を目的として探索する場合、シミュレーションの終了時点における目的関数の値のみで解のグループ化をすることとなり、シミュレーションの過程が全く考慮されていなかった。例えば、当該手法によると、シミュレーション過程で異なる現象が生じていても、最終的な目的関数の値が偶然近くなったことで解同士がグループ化されることがあった。このため、グループ化の不正確さに起因して解の多様性が十分に担保されなかった。
【0007】
そこで、シミュレーション等の経時的な試行過程を評価に用いる探索に対して遺伝的アルゴリズム、アニーリング法、粒子群最適化、又は、タブー探索法等のメタヒューリスティックアルゴリズムを適用する場合に、最適解群の多様性を確保しつつ、効率的に最適解群を探索することを課題とする。
【課題を解決するための手段】
【0008】
本発明の第1の態様においては、経時的な試行過程に入力される入力パラメータを最適化を目的として探索する情報処理装置であって、複数の入力パラメータを取得する取得部と、複数の入力パラメータのそれぞれについて試行過程を実行する実行部と、複数の入力パラメータのそれぞれについて実行した試行過程の評価値を算出する評価算出部と、複数の入力パラメータのそれぞれについて実行した試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する類似度算出部と、複数の入力パラメータのそれぞれに対する評価値及び複数の試行過程間の類似度に基づいて前記複数の入力パラメータを更新するパラメータ更新部とを備える情報処理装置、当該情報処理装置を用いた情報処理方法、及び、当該情報処理装置に用いるプログラムを提供する。
【0009】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態の情報処理装置10のブロック図を示す。
【
図2】本実施形態の情報処理装置10による処理フローを示す。
【
図3】情報処理装置10が処理の対象とする入力パラメータの一例を示す。
【
図4】類似度算出部140が算出する類似度の一例を示す。
【
図5】評価算出部130が算出する評価値の一例を示す。
【
図6】複数の遺伝子と対応する目的関数の値との関係を示す。
【
図7】パラメータ更新部150による個体のグループ化の一例を示す。
【
図8】パラメータ更新部150による個体の淘汰の一例を示す。
【
図9】パラメータ更新部150による新しい個体の生成の一例を示す。
【
図10】情報処理装置10が処理対象とする試行過程の一例を示す。
【
図11】本実施形態の情報処理装置10の実施例及び比較例の処理結果を示す。
【
図12】コンピュータ1900のハードウェア構成の一例を示す。
【発明を実施するための形態】
【0011】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
図1は、本実施形態に係る情報処理装置10のブロック図を示す。情報処理装置10は、エージェントベースのシミュレーション等の経時的な試行過程に入力される入力パラメータを、遺伝的アルゴリズム等を用いて複数の目的関数に対して最適化し、多様性が保たれた入力パラメータの最適解の集合を探索する。情報処理装置10は、取得部110、実行部120、評価算出部130、類似度算出部140、パラメータ更新部150、及び出力部160を備える。
【0013】
取得部110は、データベース20から経時的な試行過程に入力するための複数の入力パラメータを取得する。例えば、取得部110は、入力パラメータとして遺伝的アルゴリズムにおける個体が持つ遺伝子により定義されるパラメータを複数取得してよい。取得部110は、取得した複数の入力パラメータを実行部120に供給する。
【0014】
実行部120は、複数の入力パラメータのそれぞれについて、複数の時点を含む経時的な試行過程を実行する。例えば、実行部120は、経時的な試行過程として、エージェントベースのシミュレーションを実行する。実行部120は、経時的な試行過程の実行状態に関する情報を評価算出部130及び類似度算出部140に供給する。
【0015】
評価算出部130は、複数の入力パラメータのそれぞれについて実行部120が実行する試行過程の評価値を算出する。評価算出部130は、試行過程の一時点の実行状態を数値化する目的関数を用いて評価値を算出する。例えば、評価算出部130は、複数の入力パラメータの各々について、試行過程の各時点の実行状態における目的関数の値を計算し、計算した目的関数の値に基づいて評価値を算出する。評価算出部130は、算出した評価値を類似度算出部140及びパラメータ更新部150に供給する。
【0016】
類似度算出部140は、複数の入力パラメータのそれぞれについて実行した試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する。例えば、類似度算出部140は、入力パラメータ毎に経時的な試行過程の期間の1又は複数の途中時点での評価値又は目的関数の値を特徴量として抽出し、複数の試行過程間の類似度を試行過程間の特徴量の近さに基づき算出する。類似度算出部140は、算出した類似度をパラメータ更新部150に供給する。
【0017】
パラメータ更新部150は、複数の入力パラメータのそれぞれに対する評価値及び複数の試行過程間の類似度に基づいて複数の入力パラメータを更新する。例えば、パラメータ更新部150は、遺伝的アルゴリズムに基づき、それぞれが試行過程に対応する遺伝子を持った個体の集合を交叉、突然変異、選択して新しい遺伝子を生成する。
【0018】
一例として、パラメータ更新部150は、複数の入力パラメータのそれぞれに対する試行過程の評価値及び試行過程間の類似度に基づいて、類似関係にある複数の遺伝子の中で評価値が低い遺伝子の個体を淘汰し、淘汰されなかった2以上の遺伝子を交叉させて新たな遺伝子を生成する。パラメータ更新部150は、新たな遺伝子に対応する次世代の入力パラメータを実行部120に供給してさらに試行過程を実行させる。
【0019】
パラメータ更新部150は、入力パラメータの探索が完了した場合には、探索が完了した入力パラメータの集合を出力部160に供給してよい。例えば、パラメータ更新部150は、遺伝的アルゴリズムにおいて予め定められた数の世代の処理が完了した場合、最終的に生き残った個体群の遺伝子に対応する入力パラメータを出力部160に供給してよい。
【0020】
出力部160は、探索が完了した入力パラメータの集合を出力する。例えば、出力部160は、得られた入力パラメータの集合をディスプレイに表示してよく、及び/又は、データベース20等の記憶装置にこれらの入力パラメータの集合を記憶してよい。
【0021】
このように本実施形態の情報処理装置10によると、複数の入力パラメータに対応する試行過程の最終的な評価値のみではなく、複数の試行過程の特徴から得られる類似度を用いて複数の入力パラメータの集合を最適化を目的として探索することができる。従って、情報処理装置10は、シミュレーションの過程で生じる様々な現象に応じて、最終的に得られる入力パラメータの解の集合の多様性を確保することができる。
【0022】
図2は、本実施形態の情報処理装置10による処理フローを示す。本実施形態において、情報処理装置10は、遺伝的アルゴリズムに基づいてS110〜S190の処理を実行することにより、入力パラメータを最適化を目的として探索する。
【0023】
まず、S110において、取得部110は、データベース20からそれぞれが遺伝的アルゴリズムにおける各個体の遺伝子のそれぞれにより定義される複数の入力パラメータを取得する。例えば、取得部110は、各入力パラメータとして、各々が1又は複数個のビットを含む複数の変数を有するデータを取得してよい。この場合、取得部110は、各入力パラメータを構成するビット列を、遺伝的アルゴリズムにおける各個体の遺伝子として取得する。また、取得部110は、複数のランダムな値を有するビット列を遺伝的アルゴリズムにおける各個体の遺伝子として生成してもよい。取得部110は、取得した複数の入力パラメータを実行部120に供給する。
【0024】
次に、S120において、実行部120は、複数の個体の遺伝子にそれぞれ対応する複数の入力パラメータについて経時的な試行過程の実行を開始する。例えば、実行部120は、複数の個体について、各個体の遺伝子に含まれる複数の変数を各試行過程の初期条件として入力し、各試行過程を実行してよい。
【0025】
一例として、実行部120は、各試行過程として、時系列上の複数の時点における複数のエージェントの動作/状態をシミュレートする、エージェントベースのシミュレーションを実行してよい。実行部120は、実行中の複数の試行過程について、各エージェントの状態等の試行過程の実行状態に関する情報を、評価算出部130及び類似度算出部140に供給する。
【0026】
評価算出部130は、複数の試行過程の各々について複数の時点における評価値を算出する。例えば、評価算出部130は、各試行過程の各時点について、エージェントの状態から複数の目的関数の値を計算し、計算した複数の目的関数の値の相加平均又は相乗平均を評価値としてよい。評価算出部130は、目的関数として、予め定義された又はユーザから設定された関数を用いてよく、また、複数の目的関数を用いることに代えて単一の目的関数を用いてもよい。評価算出部130は、算出した評価値を類似度算出部140及びパラメータ更新部150に供給する。
【0027】
次に、S130において、類似度算出部140は、実行部120が複数の入力パラメータのそれぞれについて実行した試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する。類似度算出部140は、特徴量を、予め定義された方法又はユーザに設定された方法により決定してよい。例えば、まず、類似度算出部140は、各試行過程について、複数の期間の評価値のうち期間の途中時点を含む1又は複数の時点での評価値を、評価算出部130から特徴量として取得する。
【0028】
類似度算出部140は、試行過程の評価値を特徴量とする代わりに、試行過程の特徴を表す複数種類の特徴量を抽出し、試行過程間の類似度を算出してよい。例えば、類似度算出部140は、各期間の評価値の代わりに、各期間における目的関数の値を特徴量として抽出してもよい。この場合、類似度算出部140は、各時点の複数の目的関数の値に対して複数の特徴量を抽出してよい。
【0029】
ここで、類似度算出部140は、複数の時点のうちより新しい時点における評価値等がより大きな値となるように、新しい時点における評価値等により大きな重み付けをして特徴量に含めてよい。例えば、類似度算出部140は、新しい時点における評価値等に対して、古い時点における評価値等より大きな重み係数を乗じた値を特徴量として取得してよい。
【0030】
次に、類似度算出部140は、複数の試行過程間の類似度を試行過程間の特徴量の近さに基づき算出する。例えば、類似度算出部140は、複数の試行過程の各々について、試行過程の途中時点を含む1又は複数の時点の1又は複数の目的関数の値の各々を特徴量とする。そして、類似度算出部140は、試行過程毎に特徴量を各成分として含む特徴ベクトルを生成し、複数の試行過程間の特徴ベクトルの距離(例えば、ユークリッド距離、その累乗又は累乗根等)の逆数を特徴量の近さとして算出し、当該逆数を類似度としてよい。
【0031】
一例として、類似度算出部140は、特徴ベクトルとして、試行過程の時点n〜時点m(n及びmは、試行過程が1〜N番目(Nは3以上の整数)までの時点を含むとした場合における1≦n<m≦Nを満たす整数)における時点nの評価値v
n、次の時点の評価値v
n+1…、v
mに基づいて特徴ベクトル(v
n,v
n+1,…,v
m)を生成してよい。また、別の一例として、類似度算出部140は、特徴ベクトルとして、試行過程の時点nにおける第1の目的関数の値f
1n及び第2の目的関数の値f
2n、次の時点の第1の目的関数の値f
1n+1及び第2の目的関数の値f
2n+1…、時点mにおける評価値f
1m及び第2の目的関数の値f
2mに基づいて特徴ベクトル(f
1n,f
2n,f
1n+1,f
2n+1,…,f
1m,f
2m)を生成してよい。
【0032】
特徴ベクトルを用いることに代えて、類似度算出部140は、最初の時点及び最後の時点の間の途中の一時点nにおける、一の試行過程の評価値v
nと別の試行過程の評価値v'
nとの差の絶対値の逆数を、これらの試行過程間の類似度としてもよい。
【0033】
更にこれらに代えて、類似度算出部140は、突発的な現象が近い時点で生じているか否かに基づいて類似度を算出してもよい。例えば、類似度算出部140は、複数の試行過程において、同一又は近接する時点で評価値及び/又は目的関数が大きく同じ方向に変化する現象が生じている場合、これらの試行過程の組み合わせに対して相対的に高い類似度を与えてよい。
【0034】
類似度算出部140は、複数の試行過程同士の組み合わせの各々について、試行過程間の類似度を算出し、算出した類似度をパラメータ更新部150に供給する。
【0035】
次に、S140において、評価算出部130は、複数の試行過程の最終的な評価値を算出する。例えば、評価算出部130は、各試行過程における最後の時点において、複数の目的関数から算出した評価値を、各試行過程の最終的な評価値として算出してよい。これに代えて、評価算出部130は、各試行過程における複数の時点における評価値の相加平均又は相乗平均等を、各試行過程の最終的な評価値として算出してもよい。
【0036】
次に、S150において、パラメータ更新部150は、複数の個体を、その遺伝子に対応する入力パラメータによる試行過程間の類似度に基づいてグループ化する。例えば、パラメータ更新部150は、対応する入力パラメータによる試行過程の互いの類似度が予め定められた閾値以下となる一群の入力パラメータが一のグループを形成するように、複数の個体をグループ化してよい。
【0037】
次に、S160において、パラメータ更新部150は、グループ毎にグループ内の個体を遺伝子に対応する入力パラメータの評価値に基づいて淘汰する。例えば、パラメータ更新部150は、各グループについて、グループ内の個体のうち、遺伝子に対応する入力パラメータの最終的な評価値が予め定められた順位以内及び/又は予め定められた閾値以上となるものを残存させ、それ以外の遺伝子を削除する。一例として、パラメータ更新部150は、各グループについて、グループ内の最も優れた最終的な評価値を有する個体のみを残して残りを淘汰してよい。
【0038】
これに代えて、パラメータ更新部150は、各遺伝子を含む個体に最終的な評価値の大きさに対応する大きさの生存率を割り当てて、当該生存率に応じた確率で個体を生存させ、生存しなかった個体を淘汰してもよい。
【0039】
次に、S170において、パラメータ更新部150は、S160で生存した個体の遺伝子を用い、予め定められた遺伝的アルゴリズムに基づいて、交叉、突然変異、及び/又は、自己複製を実行して新たな遺伝子を生成する。
【0040】
例えば、パラメータ更新部150は、生存した個体の遺伝子から2個を選択してペアを形成し、遺伝子の組み換えを生じさせるビット列上の交叉点をランダムで1個以上選択し、交叉点においてペア内の遺伝子の交叉を実行してよい。また、例えば、パラメータ更新部150は、ペア内の個体同士で、遺伝子に含まれる対応する変数を交換すること、又は、対応する変数の相加平均を算出することで交叉を実行し、次世代の個体用の新しい遺伝子を生成してもよい。また、パラメータ更新部150は、遺伝子のペアに代えて3個以上の遺伝子の組を用いて交叉を実行してもよい。
【0041】
例えば、パラメータ更新部150は、生存した個体の遺伝子に含まれるビット列の一部の値を予め定められた確率で反転して次世代の個体用の新しい遺伝子を生成することにより、突然変異を実行してよい。また、例えば、パラメータ更新部150は、生存した個体の遺伝子をそのまま次世代に残存させることにより自己複製を実行してよい。
【0042】
次に、S180において、パラメータ更新部150は、探索を終了させるか否かを判断する。例えば、パラメータ更新部150は、予め定められた世代数分の探索が完了したと判断した場合、予め定められた閾値以上の最終的な評価値を与える遺伝子を持つ個体群が生成されたと判断した場合、及び/又は、遺伝子により得られる最終的な評価値の改善が予め定められた閾値以上改善しない状態が予め定められた世代数以上続いた場合等に、試行過程を終了させてよい。
【0043】
パラメータ更新部150は、試行過程を終了させない場合は、新しく生成した遺伝子に対応する入力パラメータを実行部120に供給して、処理をS120に戻す。実行部120は、2回目以降のS120の処理において、次世代の個体の新たな遺伝子により定義される入力パラメータについて試行過程を再度実行する。
【0044】
パラメータ更新部150は、試行過程を終了させる場合は、入力パラメータの集合を出力部160に供給し、処理をS190に進める。例えば、パラメータ更新部150は、最終的に生き残った個体群の遺伝子に対応する入力パラメータの全て又はそのうちの評価値の高い一部を出力部160に供給してよい。
【0045】
S190において、出力部160は、探索が完了した入力パラメータの集合を出力する。例えば、出力部160は、探索された入力パラメータの集合をディスプレイに表示してよい。また、出力部160は、探索された入力パラメータにより試行過程を実行して得られる目的関数の値及び/又は評価値をディスプレイに表示してよい。
【0046】
このように、本実施形態の情報処理装置10は、S110からS190の処理を実行することにより、試行過程の途中時点における特徴に基づいて複数の個体をグループ化するので、新しく生成される個体の多様性をより確実に確保することができる。
【0047】
ここで、仮に試行過程の最終的な評価値の類似性のみにより複数の個体をグループ化する場合、試行過程の途中で発生した現象が異なり、途中段階の目的関数の値も全く異なっているが偶然に最終的な評価値が近くなる複数の試行過程に対応する個体同士、すなわち、試行過程が実質的に類似しない個体同士が類似するものとしてグループ化されてしまうことがあり、この場合、新しく生成される個体の多様性が結果的に損なわれる。
【0048】
一方で、本実施形態の情報処理装置10によると、試行過程の途中段階の特徴に基づいて、試行過程で生じる現象が類似する可能性が高い個体同士をグループ化するので、グループ内の淘汰の結果、各グループを代表して生存する個体同士の多様性を担保する。その結果、情報処理装置10によると、新しく生成される個体の多様性も維持することができる。このため、情報処理装置10は、パレート境界付近に並ぶ多様な入力パラメータの解の候補を意思決定者に提供することができ、優先順位及び好み等に応じて意思決定者に最終的な解を選択させることができる。
【0049】
図3は、情報処理装置10が処理の対象とする入力パラメータの一例を示す。入力パラメータは、遺伝的アルゴリズムにおいて遺伝子として扱われ、図示するように複数のビットを含むビット列から構成される。入力パラメータのビット列は、試行過程の初期条件等を定義する複数の変数を構成してよい。一例として、入力パラメータは、図示するように1〜4ビットで変数1を構成し、5〜8ビットで変数2を構成し、9〜12ビットで変数3を構成し、13〜16ビットで変数4を構成してよい。
【0050】
図4は、類似度算出部140が算出する類似度の一例を示す。2つの試行過程における評価値の変化を図中の直線及び点線により示す。類似度算出部140は、S130において、試行過程の複数の時点(図中では4個の時点)の評価値を当該試行期間の特徴量としてよい。この結果、類似度算出部140は、各時点における評価値の差の絶対値(図中の矢印)に基づいて、複数の試行過程同士の類似度を算出することができる。
【0051】
図5は、評価算出部130が算出する評価値の一例を示す。評価算出部130は、S140において、試行過程の終了時点における評価値を、個体の淘汰に用いるための最終的な評価値として算出する。
【0052】
図6は、複数の個体と対応する目的関数の値との関係の一例を示す。図中の複数の点は複数の個体の各々に対応し、グラフの縦軸及び横軸は各個体に対応する試行過程で最終的に得られる目的関数1及び目的関数2を示す。本例では、目的関数1及び目的関数2の値が小さい(すなわち原点に近い)ほど、試行過程の評価値が高くなるものとする。この場合、図中の点線に示す位置付近にパレート境界が生じる。
【0053】
図7は、パラメータ更新部150による個体のグループ化の一例を示す。図示するように、パラメータ更新部150は、S150において
図6に示す複数の個体を、互いに試行過程の特徴が類似する(すなわち、2個の目的関数の値を含む特徴ベクトル間の距離が近い)G1〜G4の4個のグループにグループ化してよい。
【0054】
図8は、パラメータ更新部150による個体の淘汰の一例を示す。図示するように、パラメータ更新部150は、S160において
図7に示す各グループにおいて、複数の個体のうち最も評価値の高い1つを残して残りの個体を削除してよい。
【0055】
図9は、パラメータ更新部150による新しい個体の生成の一例を示す。図示するように、パラメータ更新部150は、S170において
図8に示す生存した個体に基づいて、新しい個体を生成する。パラメータ更新部150は、類似度に基づいてグループ化された個体同士を交叉することで、多様性の保たれた遺伝子の個体を新しく生成することができる。
【0056】
図10は、情報処理装置10が処理対象とする試行過程の一例を示す。情報処理装置10は、試行過程として交通シミュレーションを実行してよい。例えば、取得部110は、入力パラメータとして、ある都市の複数の場所における交通規制の内容を入力する。
【0057】
一例として、取得部110は、都市の16か所の道路について、「交通規制なし」、「一方通行(一方向は通行禁止で逆方向の交通量は2倍)」、「逆一方通行(一方向の交通量は2倍で逆方向は通行禁止)」、及び「通行止め(両方向とも通行禁止)」のいずれかを入力パラメータとして入力する。例えば、取得部110は、第1世代の遺伝子として、データベース20から16か所の道路上の場所について、4種類の規制のいずれかをランダムに設けた入力パラメータを取得してよい。
【0058】
実行部120が、入力パラメータに基づいて、多数の車両をエージェントとする交通状態のシミュレーションを実行すると、図の斜線で示すように道路の一部で交通渋滞が発生する。ここで、評価算出部130は、都市の中心部(図中の点線内側領域)において発生する渋滞の距離の総和を第1の目的関数とし、都市の郊外(図中の点線外側領域)において発生する渋滞の距離の総和を第2の目的関数として、第1及び第2の目的関数の値の相加平均により評価値を算出してよい。例えば、評価算出部130は、10〜60分まで10分ごとの交通状態の評価値を算出してよい。
【0059】
また、類似度算出部140は、都市中心部の渋滞距離の総和及び都市郊外の渋滞距離の総和をそれぞれ特徴量として、類似度を算出してよい。
【0060】
図11は、本実施形態の情報処理装置10の実施例及び比較例の処理結果を示す。実施例1は、情報処理装置10が、複数の個体について
図10で説明した試行過程を実行し、本実施形態の遺伝的アルゴリズムを完了した結果を示す。比較例1は、非特許文献2に記載の方法に基づいたこと以外は、実施例1と同じ条件で遺伝子アルゴリズムを実行した結果を示す。
【0061】
表中の世代は、遺伝的アルゴリズムにおいて交叉、選択が実行された世代数を示し、評価値は各世代における全個体の評価値の平均(ここでは、評価値は低いほど優れているものとする)を示し、個体数は全個体のうち各世代におけるパレート境界に近い位置(ランク1)に位置する個体の数を示す。図示するように、実施例1は、比較例1と比較してランク1上に多くの個体を維持し、これにより個体群の多様性を維持する。実施例1によると、比較例1よりも高い多様性を維持する結果、新しく生成される個体が局所最適化されることがなく、結果的に比較例1よりも優れた評価値の個体群を生成することが示された。
【0062】
本実施形態の変形例として、実行部120は、試行過程としてシミュレーションを実行する代わりに実試験の結果を取得してよい。例えば、実行部120は、入力パラメータに応じた条件で化学物質の効能試験等の実試験を実施し、実試験中の各時刻において効能を測定した結果を目的関数の値としてよい。また、実行部120は、試行過程としてエージェントベースのシミュレーションを実行する代わりにセル・オートマトンを用いた流体シミュレーションを実行してもよい。
【0063】
また、本実施形態の変形例として、情報処理装置10は、遺伝的アルゴリズム以外のメタヒューリスティックアルゴリズムに基づいて入力パラメータを最適化してもよい。例えば、情報処理装置10は、アニーリング法、粒子群最適化、又は、タブー探索法等の手法を用いて経時的な試行過程に入力される複数の入力パラメータを最適化してよく、各手法において試行過程の中から抽出した特徴量に基づいて試行過程間の類似度を算出し、この類似度を利用して入力パラメータの多様性を確保しつつ最適解の探索を実行してよい。これにより、情報処理装置10は、遺伝的アルゴリズム以外のメタヒューリスティックアルゴリズムにおいても多様性のある解の集合を取得することができる。
【0064】
図12は、情報処理装置10として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部を備える。
【0065】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0066】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0067】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0068】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0069】
コンピュータ1900にインストールされ、コンピュータ1900を情報処理装置10として機能させるプログラムは、取得モジュール、実行モジュール、評価算出モジュール、類似度算出モジュール、最適化モジュール、及び、出力モジュールを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、取得部110、実行部120、評価算出部130、類似度算出部140、パラメータ更新部150、及び、出力部160としてそれぞれ機能させてよい。
【0070】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部110、実行部120、評価算出部130、類似度算出部140、パラメータ更新部150、及び、出力部160として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置10が構築される。
【0071】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0072】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。例えば、情報処理装置10の記憶部は、取得部110、実行部120、評価算出部130、類似度算出部140、パラメータ更新部150、及び/又は、出力部160から受け取った/へ提供するデータを適宜記憶してよい。例えば、記憶部は、パラメータ更新部150が生成した遺伝子を受け取って記憶してよい。
【0073】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0074】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0075】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0076】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0077】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0078】
10 情報処理装置、20 データベース、110 取得部、120 実行部、130 評価算出部、140 類似度算出部、150 パラメータ更新部、160 出力部、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 CD−ROMドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 CD−ROM