(57)【特許請求の範囲】
【請求項１】
経時的な試行過程に入力される入力パラメータの最適化を目的として探索を行う情報処理装置であって、
複数の入力パラメータを取得する取得部と、
前記複数の入力パラメータのそれぞれについて試行過程を実行する実行部と、
前記複数の入力パラメータのそれぞれについて実行した前記試行過程の評価値を算出する評価算出部と、
前記複数の入力パラメータのそれぞれについて実行した前記試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する類似度算出部と、
前記複数の入力パラメータのそれぞれに対する試行過程の評価値及び前記複数の試行過程間の類似度に基づいて前記複数の入力パラメータを更新するパラメータ更新部と、
を備える情報処理装置。
【請求項２】
前記類似度算出部は、前記経時的な試行過程の期間の途中時点での評価値を、前記特徴量として抽出する、
請求項１に記載の情報処理装置。
【請求項３】
前記類似度算出部は、前記期間の複数時点における前記評価値を抽出して前記特徴量に含める、
請求項２に記載の情報処理装置。
【請求項４】
前記類似度算出部は、前記複数時点のうちより新しい時点における評価値により大きな重み付けをして前記特徴量に含める、
請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、経時的な試行過程に入力される入力パラメータを複数の目的関数に対して最適化する方向に探索するものであり、
前記評価算出部は、複数の前記試行過程の各々について複数の目的関数の値を計算し、計算した前記複数の目的関数の値に基づいて前記評価値を算出する、
請求項１に記載の情報処理装置。
【請求項６】
前記類似度算出部は、複数種類の特徴量を抽出し、前記試行過程の類似度を算出する、
請求項５に記載の情報処理装置。
【請求項７】
前記複数の入力パラメータのそれぞれは、複数の個体が持つ遺伝子のそれぞれにより定義され、
前記パラメータ更新部は、
前記複数の入力パラメータのそれぞれに対する前記試行過程の前記評価値に基づいて、前記個体を淘汰し、
２以上の前記個体を交叉させて新たな個体を生成し、
前記実行部は、前記新たな個体が持つ遺伝子により定義される入力パラメータについて試行過程を実行する、
請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記パラメータ更新部は、
複数の前記個体を対応する前記入力パラメータによる前記試行過程間の類似度に基づいてグループ化し、グループ毎にグループ内の前記個体を対応する前記入力パラメータの評価値に基づいて淘汰する、
請求項７に記載の情報処理装置。
【請求項９】
前記評価算出部は、前記試行過程としてエージェントベースのシミュレーションを実行する、
請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
コンピュータに実行される、経時的な試行過程に入力される入力パラメータを最適化を目的として探索を行う情報処理方法であって、
複数の入力パラメータを取得する取得段階と、
前記複数の入力パラメータのそれぞれについて試行過程を実行する実行段階と、
前記複数の入力パラメータのそれぞれについて実行した前記試行過程の評価値を算出する評価算出段階と、
前記複数の入力パラメータのそれぞれについて実行した前記試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する類似度算出段階と、
前記複数の入力パラメータのそれぞれに対する評価値及び前記複数の試行過程間の類似度に基づいて前記複数の入力パラメータを更新するパラメータ更新段階と、
を備える情報処理方法。
【請求項１１】
前記類似度算出段階において、前記経時的な試行過程の期間の途中時点での評価値を、前記特徴量として抽出する、
請求項１０に記載の情報処理方法。
【請求項１２】
前記類似度算出段階において、前記期間の複数時点における前記評価値を抽出して前記特徴量に含める、
請求項１１に記載の情報処理方法。
【請求項１３】
前記類似度算出段階において、前記複数時点のうちより新しい時点における評価値により大きな重み付けをして前記特徴量に含める、
請求項１２に記載の情報処理方法。
【請求項１４】
前記情報処理方法は、経時的な試行過程に入力される入力パラメータを複数の目的関数に対して最適化する方向に探索するものであり、
前記評価算出段階において、複数の前記試行過程の各々について複数の目的関数の値を計算し、計算した前記複数の目的関数の値に基づいて前記評価値を算出する、
請求項１０に記載の情報処理方法。
【請求項１５】
前記類似度算出段階において、複数種類の特徴量を抽出し、前記試行過程の類似度を算出する、
請求項１４に記載の情報処理方法。
【請求項１６】
前記複数の入力パラメータのそれぞれは、複数の個体が持つ遺伝子のそれぞれにより定義され、
前記パラメータ更新段階において、
前記複数の入力パラメータのそれぞれに対する前記試行過程の前記評価値に基づいて、前記個体を淘汰し、
２以上の前記個体を交叉させて新たな個体を生成し、
前記実行段階において、前記新たな個体が持つ遺伝子により定義される入力パラメータについて試行過程を実行する、
請求項１０から１５のいずれか１項に記載の情報処理方法。
【請求項１７】
前記パラメータ更新段階において、
複数の前記個体を対応する前記入力パラメータによる前記試行過程間の類似度に基づいてグループ化し、グループ毎にグループ内の前記個体を対応する前記入力パラメータの評価値に基づいて淘汰する、
請求項１６に記載の情報処理方法。
【請求項１８】
前記評価算出段階において、前記試行過程としてエージェントベースのシミュレーションを実行する、
請求項１０から１７のいずれか１項に記載の情報処理方法。
【請求項１９】
コンピュータを、請求項１から９のいずれか１項に記載の情報処理装置として機能させるプログラム。
【請求項２０】
コンピュータに、請求項１０から１８のいずれか１項に記載の情報処理方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近似解を探索する手法として、生物の進化モデルを取り入れた遺伝的アルゴリズムが知られている（例えば、非特許文献１を参照）。また、遺伝的アルゴリズムにより互いに競合する複数の目的関数の値を最大化（又は最小化）する問題を解くと、複数の目的関数の値を同時に改善することができず、互いにトレードオフの関係となる解の集合がパレート境界面を形成する。
【０００３】
しかし、従来の遺伝的アルゴリズムにおいて、複数の目的関数の値を相加平均等することにより解を評価した評価値を用いて解の集合を進化させると、最終的に得られる解の集合が一箇所に集中してしまい、解の多様性が失われることが多い。
【０００４】
この問題に対して、パレート境界面から近い順に解をランク付けして、ランクに応じた優先度で解同士を交叉させる方法（非特許文献２）、及び、目的関数空間において距離が近い解同士を複数のグループにグループ化し、各グループで最も評価の高い解を残存させて他の解を淘汰する方法（非特許文献３）が知られている。
【０００５】
また、複数の入力パラメータを入力し、複数の出力パラメータを出力するモデルを複数の目的関数を用いて最適化を目的として探索する問題に対して、遺伝的アルゴリズム以外にアニーリング法、粒子群最適化、又は、タブー探索法等のメタヒューリスティックアルゴリズムが用いられている。
［非特許文献１］D.Goldbergs: "Genetic algorithms in search, optimization, and machine learning," Addison-Wasley Publishing Company, 1989
［非特許文献２］CM.Fonseca and PJ.Fleming: "Multiobjective genetic algorithms," IEE colloquium on Genetic Algorithms for Control Systems Engineering, Digest No. 1993/130, 1993
［非特許文献３］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
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、非特許文献３の手法を用いてシミュレーションの初期条件等を最適化を目的として探索する場合、シミュレーションの終了時点における目的関数の値のみで解のグループ化をすることとなり、シミュレーションの過程が全く考慮されていなかった。例えば、当該手法によると、シミュレーション過程で異なる現象が生じていても、最終的な目的関数の値が偶然近くなったことで解同士がグループ化されることがあった。このため、グループ化の不正確さに起因して解の多様性が十分に担保されなかった。
【０００７】
そこで、シミュレーション等の経時的な試行過程を評価に用いる探索に対して遺伝的アルゴリズム、アニーリング法、粒子群最適化、又は、タブー探索法等のメタヒューリスティックアルゴリズムを適用する場合に、最適解群の多様性を確保しつつ、効率的に最適解群を探索することを課題とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様においては、経時的な試行過程に入力される入力パラメータを最適化を目的として探索する情報処理装置であって、複数の入力パラメータを取得する取得部と、複数の入力パラメータのそれぞれについて試行過程を実行する実行部と、複数の入力パラメータのそれぞれについて実行した試行過程の評価値を算出する評価算出部と、複数の入力パラメータのそれぞれについて実行した試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する類似度算出部と、複数の入力パラメータのそれぞれに対する評価値及び複数の試行過程間の類似度に基づいて前記複数の入力パラメータを更新するパラメータ更新部とを備える情報処理装置、当該情報処理装置を用いた情報処理方法、及び、当該情報処理装置に用いるプログラムを提供する。
【０００９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の情報処理装置１０のブロック図を示す。
【図２】本実施形態の情報処理装置１０による処理フローを示す。
【図３】情報処理装置１０が処理の対象とする入力パラメータの一例を示す。
【図４】類似度算出部１４０が算出する類似度の一例を示す。
【図５】評価算出部１３０が算出する評価値の一例を示す。
【図６】複数の遺伝子と対応する目的関数の値との関係を示す。
【図７】パラメータ更新部１５０による個体のグループ化の一例を示す。
【図８】パラメータ更新部１５０による個体の淘汰の一例を示す。
【図９】パラメータ更新部１５０による新しい個体の生成の一例を示す。
【図１０】情報処理装置１０が処理対象とする試行過程の一例を示す。
【図１１】本実施形態の情報処理装置１０の実施例及び比較例の処理結果を示す。
【図１２】コンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、本実施形態に係る情報処理装置１０のブロック図を示す。情報処理装置１０は、エージェントベースのシミュレーション等の経時的な試行過程に入力される入力パラメータを、遺伝的アルゴリズム等を用いて複数の目的関数に対して最適化し、多様性が保たれた入力パラメータの最適解の集合を探索する。情報処理装置１０は、取得部１１０、実行部１２０、評価算出部１３０、類似度算出部１４０、パラメータ更新部１５０、及び出力部１６０を備える。
【００１３】
取得部１１０は、データベース２０から経時的な試行過程に入力するための複数の入力パラメータを取得する。例えば、取得部１１０は、入力パラメータとして遺伝的アルゴリズムにおける個体が持つ遺伝子により定義されるパラメータを複数取得してよい。取得部１１０は、取得した複数の入力パラメータを実行部１２０に供給する。
【００１４】
実行部１２０は、複数の入力パラメータのそれぞれについて、複数の時点を含む経時的な試行過程を実行する。例えば、実行部１２０は、経時的な試行過程として、エージェントベースのシミュレーションを実行する。実行部１２０は、経時的な試行過程の実行状態に関する情報を評価算出部１３０及び類似度算出部１４０に供給する。
【００１５】
評価算出部１３０は、複数の入力パラメータのそれぞれについて実行部１２０が実行する試行過程の評価値を算出する。評価算出部１３０は、試行過程の一時点の実行状態を数値化する目的関数を用いて評価値を算出する。例えば、評価算出部１３０は、複数の入力パラメータの各々について、試行過程の各時点の実行状態における目的関数の値を計算し、計算した目的関数の値に基づいて評価値を算出する。評価算出部１３０は、算出した評価値を類似度算出部１４０及びパラメータ更新部１５０に供給する。
【００１６】
類似度算出部１４０は、複数の入力パラメータのそれぞれについて実行した試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する。例えば、類似度算出部１４０は、入力パラメータ毎に経時的な試行過程の期間の１又は複数の途中時点での評価値又は目的関数の値を特徴量として抽出し、複数の試行過程間の類似度を試行過程間の特徴量の近さに基づき算出する。類似度算出部１４０は、算出した類似度をパラメータ更新部１５０に供給する。
【００１７】
パラメータ更新部１５０は、複数の入力パラメータのそれぞれに対する評価値及び複数の試行過程間の類似度に基づいて複数の入力パラメータを更新する。例えば、パラメータ更新部１５０は、遺伝的アルゴリズムに基づき、それぞれが試行過程に対応する遺伝子を持った個体の集合を交叉、突然変異、選択して新しい遺伝子を生成する。
【００１８】
一例として、パラメータ更新部１５０は、複数の入力パラメータのそれぞれに対する試行過程の評価値及び試行過程間の類似度に基づいて、類似関係にある複数の遺伝子の中で評価値が低い遺伝子の個体を淘汰し、淘汰されなかった２以上の遺伝子を交叉させて新たな遺伝子を生成する。パラメータ更新部１５０は、新たな遺伝子に対応する次世代の入力パラメータを実行部１２０に供給してさらに試行過程を実行させる。
【００１９】
パラメータ更新部１５０は、入力パラメータの探索が完了した場合には、探索が完了した入力パラメータの集合を出力部１６０に供給してよい。例えば、パラメータ更新部１５０は、遺伝的アルゴリズムにおいて予め定められた数の世代の処理が完了した場合、最終的に生き残った個体群の遺伝子に対応する入力パラメータを出力部１６０に供給してよい。
【００２０】
出力部１６０は、探索が完了した入力パラメータの集合を出力する。例えば、出力部１６０は、得られた入力パラメータの集合をディスプレイに表示してよく、及び／又は、データベース２０等の記憶装置にこれらの入力パラメータの集合を記憶してよい。
【００２１】
このように本実施形態の情報処理装置１０によると、複数の入力パラメータに対応する試行過程の最終的な評価値のみではなく、複数の試行過程の特徴から得られる類似度を用いて複数の入力パラメータの集合を最適化を目的として探索することができる。従って、情報処理装置１０は、シミュレーションの過程で生じる様々な現象に応じて、最終的に得られる入力パラメータの解の集合の多様性を確保することができる。
【００２２】
図２は、本実施形態の情報処理装置１０による処理フローを示す。本実施形態において、情報処理装置１０は、遺伝的アルゴリズムに基づいてＳ１１０〜Ｓ１９０の処理を実行することにより、入力パラメータを最適化を目的として探索する。
【００２３】
まず、Ｓ１１０において、取得部１１０は、データベース２０からそれぞれが遺伝的アルゴリズムにおける各個体の遺伝子のそれぞれにより定義される複数の入力パラメータを取得する。例えば、取得部１１０は、各入力パラメータとして、各々が１又は複数個のビットを含む複数の変数を有するデータを取得してよい。この場合、取得部１１０は、各入力パラメータを構成するビット列を、遺伝的アルゴリズムにおける各個体の遺伝子として取得する。また、取得部１１０は、複数のランダムな値を有するビット列を遺伝的アルゴリズムにおける各個体の遺伝子として生成してもよい。取得部１１０は、取得した複数の入力パラメータを実行部１２０に供給する。
【００２４】
次に、Ｓ１２０において、実行部１２０は、複数の個体の遺伝子にそれぞれ対応する複数の入力パラメータについて経時的な試行過程の実行を開始する。例えば、実行部１２０は、複数の個体について、各個体の遺伝子に含まれる複数の変数を各試行過程の初期条件として入力し、各試行過程を実行してよい。
【００２５】
一例として、実行部１２０は、各試行過程として、時系列上の複数の時点における複数のエージェントの動作／状態をシミュレートする、エージェントベースのシミュレーションを実行してよい。実行部１２０は、実行中の複数の試行過程について、各エージェントの状態等の試行過程の実行状態に関する情報を、評価算出部１３０及び類似度算出部１４０に供給する。
【００２６】
評価算出部１３０は、複数の試行過程の各々について複数の時点における評価値を算出する。例えば、評価算出部１３０は、各試行過程の各時点について、エージェントの状態から複数の目的関数の値を計算し、計算した複数の目的関数の値の相加平均又は相乗平均を評価値としてよい。評価算出部１３０は、目的関数として、予め定義された又はユーザから設定された関数を用いてよく、また、複数の目的関数を用いることに代えて単一の目的関数を用いてもよい。評価算出部１３０は、算出した評価値を類似度算出部１４０及びパラメータ更新部１５０に供給する。
【００２７】
次に、Ｓ１３０において、類似度算出部１４０は、実行部１２０が複数の入力パラメータのそれぞれについて実行した試行過程の中から抽出した特徴量に基づいて、複数の試行過程間の類似度を算出する。類似度算出部１４０は、特徴量を、予め定義された方法又はユーザに設定された方法により決定してよい。例えば、まず、類似度算出部１４０は、各試行過程について、複数の期間の評価値のうち期間の途中時点を含む１又は複数の時点での評価値を、評価算出部１３０から特徴量として取得する。
【００２８】
類似度算出部１４０は、試行過程の評価値を特徴量とする代わりに、試行過程の特徴を表す複数種類の特徴量を抽出し、試行過程間の類似度を算出してよい。例えば、類似度算出部１４０は、各期間の評価値の代わりに、各期間における目的関数の値を特徴量として抽出してもよい。この場合、類似度算出部１４０は、各時点の複数の目的関数の値に対して複数の特徴量を抽出してよい。
【００２９】
ここで、類似度算出部１４０は、複数の時点のうちより新しい時点における評価値等がより大きな値となるように、新しい時点における評価値等により大きな重み付けをして特徴量に含めてよい。例えば、類似度算出部１４０は、新しい時点における評価値等に対して、古い時点における評価値等より大きな重み係数を乗じた値を特徴量として取得してよい。
【００３０】
次に、類似度算出部１４０は、複数の試行過程間の類似度を試行過程間の特徴量の近さに基づき算出する。例えば、類似度算出部１４０は、複数の試行過程の各々について、試行過程の途中時点を含む１又は複数の時点の１又は複数の目的関数の値の各々を特徴量とする。そして、類似度算出部１４０は、試行過程毎に特徴量を各成分として含む特徴ベクトルを生成し、複数の試行過程間の特徴ベクトルの距離（例えば、ユークリッド距離、その累乗又は累乗根等）の逆数を特徴量の近さとして算出し、当該逆数を類似度としてよい。
【００３１】
一例として、類似度算出部１４０は、特徴ベクトルとして、試行過程の時点ｎ〜時点ｍ（ｎ及びｍは、試行過程が１〜Ｎ番目（Ｎは３以上の整数）までの時点を含むとした場合における１≦ｎ＜ｍ≦Ｎを満たす整数）における時点ｎの評価値ｖｎ、次の時点の評価値ｖｎ＋１…、ｖｍに基づいて特徴ベクトル（ｖｎ，ｖｎ＋１，…，ｖｍ）を生成してよい。また、別の一例として、類似度算出部１４０は、特徴ベクトルとして、試行過程の時点ｎにおける第１の目的関数の値ｆ１ｎ及び第２の目的関数の値ｆ２ｎ、次の時点の第１の目的関数の値ｆ１ｎ＋１及び第２の目的関数の値ｆ２ｎ＋１…、時点ｍにおける評価値ｆ１ｍ及び第２の目的関数の値ｆ２ｍに基づいて特徴ベクトル（ｆ１ｎ，ｆ２ｎ，ｆ１ｎ＋１，ｆ２ｎ＋１，…，ｆ１ｍ，ｆ２ｍ）を生成してよい。
【００３２】
特徴ベクトルを用いることに代えて、類似度算出部１４０は、最初の時点及び最後の時点の間の途中の一時点ｎにおける、一の試行過程の評価値ｖｎと別の試行過程の評価値ｖ'ｎとの差の絶対値の逆数を、これらの試行過程間の類似度としてもよい。
【００３３】
更にこれらに代えて、類似度算出部１４０は、突発的な現象が近い時点で生じているか否かに基づいて類似度を算出してもよい。例えば、類似度算出部１４０は、複数の試行過程において、同一又は近接する時点で評価値及び／又は目的関数が大きく同じ方向に変化する現象が生じている場合、これらの試行過程の組み合わせに対して相対的に高い類似度を与えてよい。
【００３４】
類似度算出部１４０は、複数の試行過程同士の組み合わせの各々について、試行過程間の類似度を算出し、算出した類似度をパラメータ更新部１５０に供給する。
【００３５】
次に、Ｓ１４０において、評価算出部１３０は、複数の試行過程の最終的な評価値を算出する。例えば、評価算出部１３０は、各試行過程における最後の時点において、複数の目的関数から算出した評価値を、各試行過程の最終的な評価値として算出してよい。これに代えて、評価算出部１３０は、各試行過程における複数の時点における評価値の相加平均又は相乗平均等を、各試行過程の最終的な評価値として算出してもよい。
【００３６】
次に、Ｓ１５０において、パラメータ更新部１５０は、複数の個体を、その遺伝子に対応する入力パラメータによる試行過程間の類似度に基づいてグループ化する。例えば、パラメータ更新部１５０は、対応する入力パラメータによる試行過程の互いの類似度が予め定められた閾値以下となる一群の入力パラメータが一のグループを形成するように、複数の個体をグループ化してよい。
【００３７】
次に、Ｓ１６０において、パラメータ更新部１５０は、グループ毎にグループ内の個体を遺伝子に対応する入力パラメータの評価値に基づいて淘汰する。例えば、パラメータ更新部１５０は、各グループについて、グループ内の個体のうち、遺伝子に対応する入力パラメータの最終的な評価値が予め定められた順位以内及び／又は予め定められた閾値以上となるものを残存させ、それ以外の遺伝子を削除する。一例として、パラメータ更新部１５０は、各グループについて、グループ内の最も優れた最終的な評価値を有する個体のみを残して残りを淘汰してよい。
【００３８】
これに代えて、パラメータ更新部１５０は、各遺伝子を含む個体に最終的な評価値の大きさに対応する大きさの生存率を割り当てて、当該生存率に応じた確率で個体を生存させ、生存しなかった個体を淘汰してもよい。
【００３９】
次に、Ｓ１７０において、パラメータ更新部１５０は、Ｓ１６０で生存した個体の遺伝子を用い、予め定められた遺伝的アルゴリズムに基づいて、交叉、突然変異、及び／又は、自己複製を実行して新たな遺伝子を生成する。
【００４０】
例えば、パラメータ更新部１５０は、生存した個体の遺伝子から２個を選択してペアを形成し、遺伝子の組み換えを生じさせるビット列上の交叉点をランダムで１個以上選択し、交叉点においてペア内の遺伝子の交叉を実行してよい。また、例えば、パラメータ更新部１５０は、ペア内の個体同士で、遺伝子に含まれる対応する変数を交換すること、又は、対応する変数の相加平均を算出することで交叉を実行し、次世代の個体用の新しい遺伝子を生成してもよい。また、パラメータ更新部１５０は、遺伝子のペアに代えて３個以上の遺伝子の組を用いて交叉を実行してもよい。
【００４１】
例えば、パラメータ更新部１５０は、生存した個体の遺伝子に含まれるビット列の一部の値を予め定められた確率で反転して次世代の個体用の新しい遺伝子を生成することにより、突然変異を実行してよい。また、例えば、パラメータ更新部１５０は、生存した個体の遺伝子をそのまま次世代に残存させることにより自己複製を実行してよい。
【００４２】
次に、Ｓ１８０において、パラメータ更新部１５０は、探索を終了させるか否かを判断する。例えば、パラメータ更新部１５０は、予め定められた世代数分の探索が完了したと判断した場合、予め定められた閾値以上の最終的な評価値を与える遺伝子を持つ個体群が生成されたと判断した場合、及び／又は、遺伝子により得られる最終的な評価値の改善が予め定められた閾値以上改善しない状態が予め定められた世代数以上続いた場合等に、試行過程を終了させてよい。
【００４３】
パラメータ更新部１５０は、試行過程を終了させない場合は、新しく生成した遺伝子に対応する入力パラメータを実行部１２０に供給して、処理をＳ１２０に戻す。実行部１２０は、２回目以降のＳ１２０の処理において、次世代の個体の新たな遺伝子により定義される入力パラメータについて試行過程を再度実行する。
【００４４】
パラメータ更新部１５０は、試行過程を終了させる場合は、入力パラメータの集合を出力部１６０に供給し、処理をＳ１９０に進める。例えば、パラメータ更新部１５０は、最終的に生き残った個体群の遺伝子に対応する入力パラメータの全て又はそのうちの評価値の高い一部を出力部１６０に供給してよい。
【００４５】
Ｓ１９０において、出力部１６０は、探索が完了した入力パラメータの集合を出力する。例えば、出力部１６０は、探索された入力パラメータの集合をディスプレイに表示してよい。また、出力部１６０は、探索された入力パラメータにより試行過程を実行して得られる目的関数の値及び／又は評価値をディスプレイに表示してよい。
【００４６】
このように、本実施形態の情報処理装置１０は、Ｓ１１０からＳ１９０の処理を実行することにより、試行過程の途中時点における特徴に基づいて複数の個体をグループ化するので、新しく生成される個体の多様性をより確実に確保することができる。
【００４７】
ここで、仮に試行過程の最終的な評価値の類似性のみにより複数の個体をグループ化する場合、試行過程の途中で発生した現象が異なり、途中段階の目的関数の値も全く異なっているが偶然に最終的な評価値が近くなる複数の試行過程に対応する個体同士、すなわち、試行過程が実質的に類似しない個体同士が類似するものとしてグループ化されてしまうことがあり、この場合、新しく生成される個体の多様性が結果的に損なわれる。
【００４８】
一方で、本実施形態の情報処理装置１０によると、試行過程の途中段階の特徴に基づいて、試行過程で生じる現象が類似する可能性が高い個体同士をグループ化するので、グループ内の淘汰の結果、各グループを代表して生存する個体同士の多様性を担保する。その結果、情報処理装置１０によると、新しく生成される個体の多様性も維持することができる。このため、情報処理装置１０は、パレート境界付近に並ぶ多様な入力パラメータの解の候補を意思決定者に提供することができ、優先順位及び好み等に応じて意思決定者に最終的な解を選択させることができる。
【００４９】
図３は、情報処理装置１０が処理の対象とする入力パラメータの一例を示す。入力パラメータは、遺伝的アルゴリズムにおいて遺伝子として扱われ、図示するように複数のビットを含むビット列から構成される。入力パラメータのビット列は、試行過程の初期条件等を定義する複数の変数を構成してよい。一例として、入力パラメータは、図示するように１〜４ビットで変数１を構成し、５〜８ビットで変数２を構成し、９〜１２ビットで変数３を構成し、１３〜１６ビットで変数４を構成してよい。
【００５０】
図４は、類似度算出部１４０が算出する類似度の一例を示す。２つの試行過程における評価値の変化を図中の直線及び点線により示す。類似度算出部１４０は、Ｓ１３０において、試行過程の複数の時点（図中では４個の時点）の評価値を当該試行期間の特徴量としてよい。この結果、類似度算出部１４０は、各時点における評価値の差の絶対値（図中の矢印）に基づいて、複数の試行過程同士の類似度を算出することができる。
【００５１】
図５は、評価算出部１３０が算出する評価値の一例を示す。評価算出部１３０は、Ｓ１４０において、試行過程の終了時点における評価値を、個体の淘汰に用いるための最終的な評価値として算出する。
【００５２】
図６は、複数の個体と対応する目的関数の値との関係の一例を示す。図中の複数の点は複数の個体の各々に対応し、グラフの縦軸及び横軸は各個体に対応する試行過程で最終的に得られる目的関数１及び目的関数２を示す。本例では、目的関数１及び目的関数２の値が小さい（すなわち原点に近い）ほど、試行過程の評価値が高くなるものとする。この場合、図中の点線に示す位置付近にパレート境界が生じる。
【００５３】
図７は、パラメータ更新部１５０による個体のグループ化の一例を示す。図示するように、パラメータ更新部１５０は、Ｓ１５０において図６に示す複数の個体を、互いに試行過程の特徴が類似する（すなわち、２個の目的関数の値を含む特徴ベクトル間の距離が近い）Ｇ１〜Ｇ４の４個のグループにグループ化してよい。
【００５４】
図８は、パラメータ更新部１５０による個体の淘汰の一例を示す。図示するように、パラメータ更新部１５０は、Ｓ１６０において図７に示す各グループにおいて、複数の個体のうち最も評価値の高い１つを残して残りの個体を削除してよい。
【００５５】
図９は、パラメータ更新部１５０による新しい個体の生成の一例を示す。図示するように、パラメータ更新部１５０は、Ｓ１７０において図８に示す生存した個体に基づいて、新しい個体を生成する。パラメータ更新部１５０は、類似度に基づいてグループ化された個体同士を交叉することで、多様性の保たれた遺伝子の個体を新しく生成することができる。
【００５６】
図１０は、情報処理装置１０が処理対象とする試行過程の一例を示す。情報処理装置１０は、試行過程として交通シミュレーションを実行してよい。例えば、取得部１１０は、入力パラメータとして、ある都市の複数の場所における交通規制の内容を入力する。
【００５７】
一例として、取得部１１０は、都市の１６か所の道路について、「交通規制なし」、「一方通行（一方向は通行禁止で逆方向の交通量は２倍）」、「逆一方通行（一方向の交通量は２倍で逆方向は通行禁止）」、及び「通行止め（両方向とも通行禁止）」のいずれかを入力パラメータとして入力する。例えば、取得部１１０は、第１世代の遺伝子として、データベース２０から１６か所の道路上の場所について、４種類の規制のいずれかをランダムに設けた入力パラメータを取得してよい。
【００５８】
実行部１２０が、入力パラメータに基づいて、多数の車両をエージェントとする交通状態のシミュレーションを実行すると、図の斜線で示すように道路の一部で交通渋滞が発生する。ここで、評価算出部１３０は、都市の中心部（図中の点線内側領域）において発生する渋滞の距離の総和を第１の目的関数とし、都市の郊外（図中の点線外側領域）において発生する渋滞の距離の総和を第２の目的関数として、第１及び第２の目的関数の値の相加平均により評価値を算出してよい。例えば、評価算出部１３０は、１０〜６０分まで１０分ごとの交通状態の評価値を算出してよい。
【００５９】
また、類似度算出部１４０は、都市中心部の渋滞距離の総和及び都市郊外の渋滞距離の総和をそれぞれ特徴量として、類似度を算出してよい。
【００６０】
図１１は、本実施形態の情報処理装置１０の実施例及び比較例の処理結果を示す。実施例１は、情報処理装置１０が、複数の個体について図１０で説明した試行過程を実行し、本実施形態の遺伝的アルゴリズムを完了した結果を示す。比較例１は、非特許文献２に記載の方法に基づいたこと以外は、実施例１と同じ条件で遺伝子アルゴリズムを実行した結果を示す。
【００６１】
表中の世代は、遺伝的アルゴリズムにおいて交叉、選択が実行された世代数を示し、評価値は各世代における全個体の評価値の平均（ここでは、評価値は低いほど優れているものとする）を示し、個体数は全個体のうち各世代におけるパレート境界に近い位置（ランク１）に位置する個体の数を示す。図示するように、実施例１は、比較例１と比較してランク１上に多くの個体を維持し、これにより個体群の多様性を維持する。実施例１によると、比較例１よりも高い多様性を維持する結果、新しく生成される個体が局所最適化されることがなく、結果的に比較例１よりも優れた評価値の個体群を生成することが示された。
【００６２】
本実施形態の変形例として、実行部１２０は、試行過程としてシミュレーションを実行する代わりに実試験の結果を取得してよい。例えば、実行部１２０は、入力パラメータに応じた条件で化学物質の効能試験等の実試験を実施し、実試験中の各時刻において効能を測定した結果を目的関数の値としてよい。また、実行部１２０は、試行過程としてエージェントベースのシミュレーションを実行する代わりにセル・オートマトンを用いた流体シミュレーションを実行してもよい。
【００６３】
また、本実施形態の変形例として、情報処理装置１０は、遺伝的アルゴリズム以外のメタヒューリスティックアルゴリズムに基づいて入力パラメータを最適化してもよい。例えば、情報処理装置１０は、アニーリング法、粒子群最適化、又は、タブー探索法等の手法を用いて経時的な試行過程に入力される複数の入力パラメータを最適化してよく、各手法において試行過程の中から抽出した特徴量に基づいて試行過程間の類似度を算出し、この類似度を利用して入力パラメータの多様性を確保しつつ最適解の探索を実行してよい。これにより、情報処理装置１０は、遺伝的アルゴリズム以外のメタヒューリスティックアルゴリズムにおいても多様性のある解の集合を取得することができる。
【００６４】
図１２は、情報処理装置１０として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部を備える。
【００６５】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６６】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００６７】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６８】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６９】
コンピュータ１９００にインストールされ、コンピュータ１９００を情報処理装置１０として機能させるプログラムは、取得モジュール、実行モジュール、評価算出モジュール、類似度算出モジュール、最適化モジュール、及び、出力モジュールを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、取得部１１０、実行部１２０、評価算出部１３０、類似度算出部１４０、パラメータ更新部１５０、及び、出力部１６０としてそれぞれ機能させてよい。
【００７０】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部１１０、実行部１２０、評価算出部１３０、類似度算出部１４０、パラメータ更新部１５０、及び、出力部１６０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置１０が構築される。
【００７１】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００７２】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。例えば、情報処理装置１０の記憶部は、取得部１１０、実行部１２０、評価算出部１３０、類似度算出部１４０、パラメータ更新部１５０、及び／又は、出力部１６０から受け取った／へ提供するデータを適宜記憶してよい。例えば、記憶部は、パラメータ更新部１５０が生成した遺伝子を受け取って記憶してよい。
【００７３】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００７４】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００７５】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００７６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７７】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７８】
１０  情報処理装置、２０  データベース、１１０  取得部、１２０  実行部、１３０  評価算出部、１４０  類似度算出部、１５０  パラメータ更新部、１６０  出力部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＣＤ−ＲＯＭドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＣＤ−ＲＯＭ
【図１】
0005954750.tif 000002
【図２】
0005954750.tif 000003
【図３】
0005954750.tif 000004
【図４】
0005954750.tif 000005
【図５】
0005954750.tif 000006
【図６】
0005954750.tif 000007
【図７】
0005954750.tif 000008
【図８】
0005954750.tif 000009
【図９】
0005954750.tif 000010
【図１０】
0005954750.tif 000011
【図１１】
0005954750.tif 000012
【図１２】
0005954750.tif 000013