JP2023079015A - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2023079015A
JP2023079015A JP2021192401A JP2021192401A JP2023079015A JP 2023079015 A JP2023079015 A JP 2023079015A JP 2021192401 A JP2021192401 A JP 2021192401A JP 2021192401 A JP2021192401 A JP 2021192401A JP 2023079015 A JP2023079015 A JP 2023079015A
Authority
JP
Japan
Prior art keywords
range
value
candidate
parameter
evaluation
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
JP2021192401A
Other languages
English (en)
Inventor
典弘 覚幸
Norihiro Kakuko
マチュー パリジ
Matthew Parisi
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 JP2021192401A priority Critical patent/JP2023079015A/ja
Priority to US17/869,813 priority patent/US20230169386A1/en
Priority to EP22186941.5A priority patent/EP4187447A1/en
Priority to CN202210968202.XA priority patent/CN116186343A/zh
Publication of JP2023079015A publication Critical patent/JP2023079015A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Databases & Information Systems (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】パラメータ探索を効率化する。【解決手段】処理部12は、イジングモデルのエネルギー関数に基づく問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および第1候補値を用いた場合の当該探索の結果に応じた第1候補値の評価を繰り返し行い、候補値範囲を第1範囲から第1範囲よりも狭い第2範囲に変更する。処理部12は、第2範囲からの第2候補値の取得および第2候補値を用いた場合の当該探索の結果に応じた第2候補値の評価を繰り返し行う。処理部12は、第1候補値を用いた評価により複数の第1候補値に対して算出された複数の評価値のうちの最良の評価値と最良の評価値よりも前の評価で得られた他の評価値との第1差分、および、エネルギー関数に応じた問題の性質を示す指標の少なくとも一方に基づいて、第1範囲から第2範囲に変更するタイミングと、第1範囲と第2範囲との第2差分とを決定する。【選択図】図1

Description

本発明は情報処理装置、情報処理方法およびプログラムに関する。
組合せ最適化問題の求解に情報処理装置が用いられることがある。情報処理装置は、組合せ最適化問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルのエネルギー関数に変換し、エネルギー関数に含まれる状態変数の値の組合せのうち、エネルギー関数の値を最小化する組合せを探索する。エネルギー関数の値を最小化する状態変数の値の組合せは、状態変数の組により表される基底状態または最適解に相当する。
実用的な時間で組合せ最適化問題の近似解を得る手法には、マルコフ連鎖モンテカルロ(MCMC:Markov-Chain Monte Carlo)法に基づく、シミュレーテッドアニーリング(SA:Simulated Annealing)法やレプリカ交換法などがある。SA法やレプリカ交換法などによる解の探索では、温度値などを表すパラメータが用いられる。そこで、当該パラメータの値を決定する方法が考えられている。
例えば、イジングモデルのエネルギーの分解能と温度パラメータが最低値のときのイジングモデルの状態遷移の許容確率とから、温度パラメータの最低値を決定する最適化装置の提案がある。提案の最適化装置は、イジングモデルに含まれる状態変数の数や状態変数間の重みを示す重み係数から決定したエネルギーの変化分の最大値に基づき、温度パラメータが最高値のときの許容確率から温度パラメータの最高値も決定する。
なお、複数の評価項目を持つ組合せ最適化問題を、SA法を用いて解決する組合せ最適化方法の提案がある。提案の組合せ最適化方法では、各評価項目の重み係数を温度パラメータの変化とともに動的に変化させる。
また、所定の探索範囲をもつパラメータを用いて遺伝的アルゴリズムにより解を探索する解探索装置の提案もある。提案の解探索装置は、複数のパラメータを持った遺伝子データを記憶する。解探索装置は、入力されたパラメータの探索範囲の少なくとも一部分に対するパラメータ値の対数値が所定の分布になるようなパラメータ値を生成し、当該パラメータ値が設定されたパラメータを用いて遺伝的アルゴリズムにより解を探索する。
特開2020-46718号公報 特開平9-34951号公報 米国特許出願公開第2006/0010091号明細書
SA法やレプリカ交換法などで用いられるパラメータの値は、情報処理装置の求解性能に影響する。そこで、情報処理装置は、SA法やレプリカ交換法などで用いられるパラメータの値を決定するために、本番の解の探索の前にパラメータ探索を行うことがある。
パラメータ探索では、情報処理装置は、所定範囲に属する値の中からパラメータの候補値を抽出し、抽出した候補値による解探索の試行の結果により当該候補値を評価する処理を当該所定範囲内の各候補値に対して繰り返し行う。情報処理装置は、各候補値のうち評価の結果が良い候補値を実際に使用するパラメータの値として採用する。
しかし、パラメータ探索では候補値の範囲が広いほど、評価対象の候補値の数が多くなり、パラメータの値の決定に時間がかかる。一方、候補値の範囲を狭めることで評価対象の候補値の数を絞り過ぎると、より良い候補値が当該範囲から外れ、パラメータの値を適切に決定できない可能性がある。
1つの側面では、本発明は、パラメータ探索を効率化する情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
1つの態様では、情報処理装置が提供される。情報処理装置は、記憶部と処理部とを有する。記憶部は、問題に対応する、イジングモデルのエネルギー関数を示す情報を記憶する。処理部は、エネルギー関数に基づく問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および第1候補値をパラメータの値として用いた場合の探索の結果に応じた第1候補値の評価を複数回行い、候補値範囲を、第1範囲から、第1範囲よりも狭い第2範囲に変更し、第2範囲からの第2候補値の取得および第2候補値をパラメータの値として用いた場合の探索の結果に応じた第2候補値の評価を複数回行う処理部と、を有する。処理部は、第1候補値を用いた評価により複数の第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と当該最良の評価値よりも前の評価によって得られた他の評価値との第1差分、および、エネルギー関数に応じた問題の性質を示す指標の少なくとも一方に基づいて、候補値範囲を第1範囲から第2範囲に変更するタイミングと、第1範囲と第2範囲との第2差分とを決定する。
また、1つの態様では、情報処理装置が提供される。情報処理装置は、記憶部と処理部とを有する。記憶部は、問題に対応する、イジングモデルのエネルギー関数を示す情報を記憶する。処理部は、エネルギー関数に基づく問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および第1候補値をパラメータの値として用いた場合の探索の結果に応じた第1候補値の評価を複数回行う第1処理と、候補値範囲を、第1範囲から、第1範囲よりも狭い第2範囲に変更する第2処理と、第2範囲からの第2候補値の取得および第2候補値をパラメータの値として用いた場合の探索の結果に応じた第2候補値の評価を複数回行う第3処理とを含む処理において、候補値範囲を、第1範囲から第2範囲に変更するタイミングと、第1範囲と第2範囲との差分とを、エネルギー関数に応じた問題の性質を示す指標に基づいて決定する。
また、1つの態様では、情報処理方法が提供される。また、1つの態様では、プログラムが提供される。
1つの側面では、パラメータ探索を効率化できる。
第1の実施の形態の情報処理装置を説明する図である。 第2の実施の形態の情報処理装置のハードウェア例を示す図である。 情報処理装置の機能例を示す図である。 パラメータ評価テーブルの例を示す図である。 パラメータの候補値の取得対象範囲の制御例を示す図である。 情報処理装置の処理例を示すフローチャートである。 情報処理装置の他の処理例を示すフローチャートである。 パラメータの候補値の取得対象範囲の例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置を説明する図である。
情報処理装置10は、組合せ最適化問題に対する解を、MCMC法を用いて探索し、探索した解を出力する。例えば、情報処理装置10は、MCMC法を基にしたSA法、パラレルテンパリング(PT:Parallel Tempering)法などを解の探索に用いる。PT法はレプリカ交換法とも言われる。情報処理装置10は記憶部11および処理部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、フラッシュメモリなどの不揮発性記憶装置でもよい。記憶部11は、レジスタなどの電子回路を含んでもよい。処理部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPU(Graphics Processing Unit)などの電子回路でもよい。処理部12はプログラムを実行するプロセッサでもよい。「プロセッサ」は、複数のプロセッサの集合(マルチプロセッサ)を含み得る。
なお、以下の説明では、処理部12が解の探索を行う例を示す。ただし、処理部12以外とは異なるFPGAやGPUなどで実現される探索部が、処理部12の指示に応じて解の探索を行い、探索結果を処理部12に応答してもよい。
組合せ最適化問題は、イジング型のエネルギー関数により定式化され、例えばエネルギー関数の値を最小化する問題に置き換えられる。エネルギー関数は、目的関数や評価関数などと言われてもよい。エネルギー関数は、複数の状態変数を含む。状態変数は、0または1の値を取るバイナリ変数である。状態変数はビットと言われてもよい。組合せ最適化問題の解は、複数の状態変数の値により表される。エネルギー関数の値を最小化する解は、イジングモデルの基底状態を表し、組合せ最適化問題の最適解に対応する。エネルギー関数の値は、エネルギーと表記される。
イジング型のエネルギー関数は、式(1)で表される。
Figure 2023079015000002
状態ベクトルxは、複数の状態変数を要素とし、イジングモデルの状態を表す。式(1)は、QUBO(Quadratic Unconstrained Binary Optimization)形式で定式化されたエネルギー関数である。なお、エネルギーを最大化する問題の場合には、エネルギー関数の符号を逆にすればよい。
式(1)の右辺第1項は、全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と重み係数との積を積算したものである。添え字i,jは状態変数のインデックスである。xは、i番目の状態変数である。xは、j番目の状態変数である。Wijは、i番目の状態変数とj番目の状態変数との間の重み、または、結合の強さを示す重み係数である。Wij=Wjiであり、Wii=0である。
式(1)の右辺第2項は、全状態変数の各々のバイアスと状態変数の値との積の総和を求めたものである。bは、i番目の状態変数に対するバイアスを示している。エネルギー関数に含まれる重み係数やバイアスなどを含む問題情報は、記憶部11に記憶される。状態変数xの変化に伴うエネルギーの変化量ΔEは、式(2)で表される。
Figure 2023079015000003
ΔE<0となる状態変数xが変化すると、式(1)のエネルギーE(x)が下がる。ただし、ΔE>0となる状態変数xが変化するときに、E(x)が下がるようにΔEが定義されてもよい。処理部12は、複数の状態変数のうちの1つの状態変数の値が変化することによるエネルギー関数の値の変化量を、複数の状態変数の各々について計算し、エネルギー関数の値が小さくなる変化が優先される形で確率的に受け入れる。
このとき、最急降下法では、局所解に陥った場合に脱出できなくなる。そこで、処理部12は、ある状態変数を変化させることによる、イジングモデルのある状態から次の状態への遷移確率の決定に、メトロポリス法やギブス法を用いる。すなわち、処理部12は、エネルギー関数の値が大きくなる変化についても、エネルギー関数の値の変化量と熱ノイズ値との比較に応じて確率的に許容する。熱ノイズ値は、温度値や乱数に基づいて求められる。温度値が大きい程、熱ノイズ値の振幅が大きくなる。熱ノイズ値の振幅が大きい程、エネルギー関数の値の増加量が大きい状態遷移が許容されやすくなる。
例えば、SA法では、処理部12は、最高温度値から最低温度値へと温度値Tを徐々に変化させることで熱ノイズ値の振幅を減少させ、イジングモデルの状態を、基底状態へと収束させる。また、レプリカ交換法では、処理部12は、最高温度値から最低温度値までの複数の温度値を用いて独立してMCMC法を実行し、各温度値で得られた状態に対して、所定タイミングで温度値を交換し、最終的に得られた最も良い解を組合せ最適化問題の解とする。
このように、SA法やレプリカ交換法では、最高温度値や最低温度値などのパラメータが用いられる。パラメータの値は、求解性能に影響する。例えば、パラメータの値が適切でないと、比較的良い解を得られるまでの時間が過大になったり、適切な解を取得できなかったりする。
そこで、処理部12は、該当の問題に対して使用するパラメータを決定するパラメータ探索を行う。パラメータ探索では、処理部12は、パラメータの候補値の取得対象の範囲である取得対象範囲から候補値を取得し、取得した候補値を用いた、一定時間の解の探索の結果に応じて、当該候補値を評価する。取得対象範囲は、候補値範囲と言われてもよい。例えば、候補値の取得および当該候補値に対する評価の結果、すなわち、評価値を得るまでが、1回分の評価に相当する。取得対象範囲からの候補値の取得方法には、例えばグリッドサーチのように総当たりで取得する方法や、ランダムサーチのようにランダムに取得する方法がある。パラメータ探索での一定時間の解の探索には、実際に使用するSA法やレプリカ交換法などの手法が用いられる。
候補値の評価では、処理部12は、例えば、一定時間の解の探索において到達した最小エネルギーや当該最小エネルギーに到達するまでの時間を評価し、候補値に対する評価値を算出する。処理部12は、到達した最小エネルギーが小さいほど、候補値の評価値を良い評価値とする。また、処理部12は、最小エネルギーに到達するまでの時間が短いほど、候補値の評価値を良い評価値とする。処理部12は、各候補値に対して評価値を算出し、評価を行った候補値の中で最良の評価値に対応する候補値を該当のパラメータの値として採用し、本番の解の探索に用いる。
なお、前述のように、解の探索は処理部12により行われてもよいし、処理部12以外の探索部により行われてもよい。また、パラメータ探索の対象となるパラメータの数は、複数でもよい。処理部12は、複数のパラメータの候補値の組に対する評価を行ってもよい。この場合、複数のパラメータそれぞれに対して取得対象範囲が定められる。また、パラメータには、最高温度値および最低温度値の他にも、SA法における温度値の下げ幅などが含まれてもよい。
パラメータ探索において、処理部12は、パラメータの候補値に対する取得対象範囲を、あるタイミングで狭める処理を行う。処理部12は、当該タイミングまでに得られた評価値のうちの最良の評価値に対応する候補値を、取得対象範囲の新たな中心値とし、当該取得対象範囲の幅αを、直前の幅α=α0よりも狭め、α=α0-Δαとする。Δαは正の実数である。このとき、処理部12は、取得対象範囲を狭めるタイミングと、取得対象範囲を狭める量Δαとを、次の第1~第3の方法の何れかにより決定する。
第1の方法では、処理部12は、現在の取得対象範囲を用いた所定期間の評価により各候補値に対して算出された評価値のうちの最良の評価値と最良の評価値よりも前に得られた他の評価値との差に基づいて、当該タイミングと狭める量Δαとを決定する。この場合、当該タイミングは、上記所定期間が完了した時点からの時間τ1により定められる。時間τ1は、当該時点からのパラメータ評価の回数によって定められてもよい。
例えば、処理部12は、上記所定期間においてN回のパラメータ評価を行いN個の評価値を得ている場合に、N個の評価値のうちの最良の評価値V1を得る。また、処理部12は、当該最良の評価値を得た回よりも所定回数kだけ前の回の評価で得られた評価値V2を得る。所定回数kは、ユーザにより情報処理装置10に予め入力される。
V1-V2が大きいほど、評価値の収束が進んでいないと推定される。このため、V1-V2が大きいほど、現在の取得対象範囲内で比較的良い候補値を得られるまでに比較的長い時間がかかると推定される。よって、処理部12は、V1-V2が大きいほど、取得対象範囲を狭めるタイミングを遅くする。当該タイミングを遅くすることは時間τ1を大きくすることに相当する。また、V1-V2が大きいほど、評価値の収束が進んでいないことから、次回の取得対象範囲の絞り込みでは、より広い範囲の候補値を評価した方が良い候補値を発見できる可能性が高いと推定される。よって、処理部12は、V1-V2が大きいほど、取得対象範囲を狭める量Δαを小さくする。ここで、V1-V2は第1差分に相当する。Δαは第2差分に相当する。
一方、V1-V2が小さいほど、評価値の収束が進んでいると推定される。このため、V1-V2が小さいほど、現在の取得対象範囲内でより良い候補値を得られるまでに比較的短い時間で済むと推定される。よって、処理部12は、V1-V2が小さいほど、取得対象範囲を狭めるタイミングを早くする。当該タイミングを早くすることは時間τ1を小さくすることに相当する。また、V1-V2が小さいほど、評価値の収束が進んでいることから、次回の取得対象範囲の絞り込みでは、より狭い範囲の候補値を評価対象としても良い候補値を発見できる可能性が高いと推定される。よって、処理部12は、V1-V2が小さいほど、取得対象範囲を狭める量Δαを大きくする。
第2の方法では、第1の方法に代えて、処理部12は、エネルギー関数に応じた問題の性質を示す指標に基づいて、取得対象範囲を狭めるタイミングと、取得対象範囲を狭める量Δαとを決定する。第2の方法では、処理部12は、エネルギー関数の情報が情報処理装置10に入力された段階で、当該エネルギー関数の情報に基づいて、取得対象範囲を狭めるタイミングや狭める量Δαを決定できる。この場合、当該タイミングは、ある取得対象範囲でのパラメータ探索を開始した時点からの時間τ2により定められてもよい。時間τ2は、当該時点からのパラメータ評価の回数によって定められてもよい。
問題の性質を示す指標は、問題の難易度を示す。例えば、当該指標は、エネルギー関数に含まれる状態変数の数、制約の種類および制約の数の少なくとも何れかに対応する指標でもよい。ここで、式(1)のエネルギー関数Eには制約項Cが含まれ得る。制約項Cの種類には、1w1h(1way1hot)制約や2w1h(2way1hot)制約などがある。1w1h制約が用いられる場合、例えば式(3)のC=C1が式(1)に加えられる。
Figure 2023079015000004
ここで、t=0,1,…,T-1である。Tは1w1h制約を示す制約の数に相当する。cは定数であり、正の実数である。C1は、状態変数のグループKの中で、1つの状態変数だけが1であり、それ以外の状態変数が0となるときに小さい値となる。グループKは、例えば、K={x,x,x}、{x,x,…,x10}、{x11,x15,…,x20}などのように定められる。
2w1h制約が用いられる場合、例えば、xjk=xj*L+kとすると、式(4)のC=C2が式(1)に加えられる。ただし、j=0,1,…,L-1であり、k=0,1,…,L-1である。
Figure 2023079015000005
Lは2w1h制約を示す制約の数に相当する。cは定数であり、正の実数である。C2は、複数の状態変数をL行L列と捉えて、各行の状態変数のうち1つの状態変数だけが1となり、かつ、各列の状態変数のうちの1つの状態変数だけが1となるときに小さい値となる。
エネルギー関数における状態変数の数が多いほど、問題の難易度は高い。制約の数が多いほど、問題の難易度は高い。また、より厳しい種類の制約の数が多いほど、問題の難易度は高い。例えば、2w1h制約は、1w1h制約よりも厳しい制約の種類である。
処理部12は、問題の難易度が高いほど、取得対象範囲を狭めるタイミングを遅くし、狭める量Δαを小さくする。一方、処理部12は、問題の難易度が低いほど、取得対象範囲を狭めるタイミングを早くし、狭める量Δαを大きくする。問題の難易度が高いほど、パラメータの適切な値の決定が難しくなり、より良い候補値を得るには、より多くの候補値の評価を要するためである。なお、当該タイミングを遅くすることは時間τ2を大きくすることに相当し、当該タイミングを早くすることは時間τ2を小さくすることに相当する。
第3の方法では、処理部12は、第1の方法および第2の方法の両方を用いて、取得対象範囲を狭めるタイミングと、取得対象範囲を狭める量Δαとを決定する。この場合、当該タイミングは、第1の方法における所定期間が完了した時点からの時間τ1により定められる。
処理部12は、V1-V2が大きいほど、取得対象範囲を狭めるタイミングを遅くし、狭める量Δαを小さくする。また、処理部12は、問題の難易度が高いほど、取得対象範囲を狭めるタイミングを遅くし、狭める量Δαを小さくする。当該タイミングを遅くすることは時間τ1を大きくすることに相当する。
一方、処理部12は、V1-V2が小さいほど、取得対象範囲を狭めるタイミングを早くし、狭める量Δαを大きくする。また、問題の難易度が低いほど、取得対象範囲を狭めるタイミングを早くし、狭める量Δαを大きくする。当該タイミングを早くすることは時間τ1を小さくすることに相当する。
ここで、グラフ20,21は、パラメータの候補値、すなわち、パラメータ値と、評価値との関係の例を示す。グラフ20,21の横軸はパラメータ値である。グラフ20,21の縦軸は評価値である。例えば、評価値が大きいほど、該当の候補値の評価が高い。
グラフ20は、パラメータ値に対する変更前の取得対象範囲を示す。変更前の取得対象範囲の中心値はP1であり、取得対象範囲の幅はα=α0である。当該変更前の取得対象範囲は、例えば、ユーザにより情報処理装置10に予め指定される。
グラフ21は、パラメータ値に対する変更後の取得対象範囲を示す。変更後の取得対象範囲の中心値はP2であり、取得対象範囲の幅はα=α0-Δαである。処理部12は、上記のように取得対象範囲を狭めるタイミングと狭める量Δαとを決定することで、変更後の取得対象範囲を適切に決定できる。例えば、変更後の取得対象範囲により良い候補値が含まれる可能性を高められる。また、例えば、パラメータ探索に要する時間を短縮できる。
処理部12は、取得対象範囲を変更した後は、変更後の取得対象範囲から抽出される各候補値の評価値の更新が一定回数ない場合に、パラメータ探索を終了する。ただし、処理部12は、取得対象範囲を変更した後に、上記の第1~第3の方法により決定されるタイミングや狭める量Δαを用いて、取得対象範囲を更に変更してもよい。すなわち、処理部12は、取得対象範囲の変更を複数回行うことで、パラメータの値の取得対象範囲を段階的に絞り込んでもよい。
そして、処理部12は、各候補値に対して得られた評価値のうち、最良の評価値に対応する候補値を解の探索に使用するパラメータの値として決定する。処理部12は、当該パラメータの値を用いて、解の探索を実行してもよいし、前述の探索部に、決定したパラメータの値を入力して解の探索を実行させてもよい。
以上説明したように、情報処理装置10によれば、エネルギー関数に基づく問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および第1候補値をパラメータの値として用いた場合の探索の結果に応じた第1候補値の評価が複数回行われる。候補値範囲が、第1範囲から、第1範囲よりも狭い第2範囲に変更される。第2範囲からの第2候補値の取得および第2候補値をパラメータの値として用いた場合の探索の結果に応じた第2候補値の評価が複数回行われる。第2範囲への変更の前に、候補値範囲を第1範囲から第2範囲に変更するタイミングと、第1範囲と第2範囲との第2差分(=Δα)とが第1の情報および第2の情報の少なくとも一方に基づいて決定される。第1の情報は、第1候補値を用いた評価により複数の第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と当該最良の評価値よりも前の評価によって得られた他の評価値との第1差分である。第2の情報は、エネルギー関数に応じた問題の性質を示す指標である。
これにより、情報処理装置10は、パラメータ探索を効率化できる。具体的には、情報処理装置10は、決定したタイミングと第2差分Δαとを用いて、第1範囲を第2範囲に変更することで、第2範囲を適切に決定できる。例えば、情報処理装置10は、第2範囲により良い候補値が含まれる可能性を高めることができる。また、例えば、情報処理装置10は、パラメータ探索に要する時間を短縮できる。
更に、情報処理装置10は、パラメータの値をより良い値に決定する可能性を高められる。このため、情報処理装置10は、決定したパラメータの値を用いて解の探索を行うことで、求解性能を高めることができる。例えば、情報処理装置10は、比較的良い解を短時間で得られる可能性を高めることができる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、組合せ最適化問題に対する解を、MCMC法を用いて探索し、探索した解を出力する。組合せ最適化問題は、式(1)のイジング型のエネルギー関数によって表される。情報処理装置100は、本番の解探索を行う前に、パラメータ探索を行い、当該解探索に用いるパラメータの値を決定する。
情報処理装置100は、CPU101、RAM102、HDD(Hard Disk Drive)103、GPU104、入力インタフェース105、媒体リーダ106、NIC(Network Interface Card)107およびアクセラレータカード108を有する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、情報処理装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
GPU104は、CPU101からの命令に従って、情報処理装置100に接続されたディスプレイ31に画像を出力する。ディスプレイ31としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力インタフェース105は、情報処理装置100に接続された入力デバイス32から入力信号を取得し、CPU101に出力する。入力デバイス32としては、マウス、タッチパネル、タッチパッド、トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体33に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体33として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ106は、例えば、記録媒体33から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体33は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体33やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
NIC107は、ネットワーク34に接続され、ネットワーク34を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。NIC107は、無線通信インタフェースでもよい。
アクセラレータカード108は、式(1)のイジング型のエネルギー関数で表される問題、すなわち、イジング問題の解を、MCMC法を用いて探索するハードウェアアクセラレータである。アクセラレータカード108は、一定温度のMCMC法または複数温度間でイジングモデルの状態を交換するレプリカ交換法を行うことで、該当温度におけるボルツマン分布に従う状態をサンプリングするサンプラーとして用いることができる。アクセラレータカード108は、イジング問題の求解のためには、レプリカ交換法や温度値を徐々に下げるSA法などのアニーリングの処理を実行する。
SA法は、各温度値におけるボルツマン分布に従う状態をサンプリングし、サンプリングに用いる温度値を最高温度値から最低温度値に徐々に下げることで、最適解を効率的に発見する手法である。例えば、SA法を用いる場合、アクセラレータカード108は、一定の温度値での状態遷移の試行を一定回数繰り返した後に温度値を下げる、という動作を繰り返す。
レプリカ交換法は、複数の温度値を用いて独立してMCMC法を実行し、各温度値で得られた状態に対して、適宜、温度値を交換する手法である。低温でのMCMCによって状態空間の狭い範囲を探索し、高温でのMCMCによって状態空間の広い範囲を探索することで、効率的に良い解を発見することができる。例えば、レプリカ交換法を用いる場合、アクセラレータカード108は、複数の温度値の各々での状態遷移の試行を並列して行い、一定回数の試行を行うごとに、各温度値で得られた状態に対して、所定の交換確率で温度値を交換する、という動作を繰り返す。
アクセラレータカード108は、FPGA108aおよびRAM108bを有する。FPGA108aは、アクセラレータカード108における探索機能を実現する。当該探索機能は、GPUやASICなどの他の種類の電子回路により実現されてもよい。RAM108bは、FPGA108aでの探索に用いられる問題情報などのデータやFPGA108aにより探索された解を保持する。また、FPGA108aは、内蔵のメモリを有する。FPGA108aは、探索処理に応じて、FPGA108aの内蔵のメモリに格納されたデータをRAM108bに書き出すことができる。
アクセラレータカード108のようにイジング形式の問題の解を探索するハードウェアアクセラレータは、イジングマシンやボルツマンマシンなどと呼ばれることがある。
以下の説明では、情報処理装置100は、パラメータ探索により、一例として最高温度値と最低温度値との組を決定するものとする。
図3は、情報処理装置の機能例を示す図である。
情報処理装置100は、問題情報記憶部110、問題入力部120、パラメータ評価部130、評価結果記憶部140、パラメータ取得範囲変更制御部150、パラメータ取得範囲変更部160、パラメータ取得部170、パラメータ探索終了判定部180、解探索部190および解出力部195を有する。
問題情報記憶部110や評価結果記憶部140には、RAM102やHDD103の記憶領域が用いられる。問題入力部120、パラメータ評価部130、パラメータ取得範囲変更制御部150、パラメータ取得範囲変更部160、パラメータ取得部170、パラメータ探索終了判定部180および解出力部195は、RAM102に記憶されたプログラムをCPU101が実行することで実現される。解探索部190は、アクセラレータカード108により実現される。
問題情報記憶部110は、イジング問題を示す問題情報を記憶する。問題情報は、エネルギー関数を示す情報を含む。例えば、問題情報は、エネルギー関数に含まれる重み係数やバイアスを含む。問題情報は、エネルギー関数に含まれるビットの数や制約の種類や制約の数を示す情報を含む。問題情報は、イジングモデルの初期状態、初期エネルギーおよびSA法における温度値の下げ幅などを含んでもよい。問題情報は、レプリカ交換法における隣接する温度値の差を含んでもよい。問題情報は、ユーザにより情報処理装置100に入力され、問題情報記憶部110に格納される。
問題入力部120は、問題情報記憶部110に記憶される問題情報をパラメータ評価部130および解探索部190に入力する。問題入力部120は、エネルギー関数に含まれるビット数、制約の種類および制約の数を示す情報を、パラメータ取得範囲変更制御部150に入力する。ここで、問題入力部120は、問題情報記憶部110に記憶された問題情報に基づいて、式(1)のエネルギー関数に含まれるビット数や、エネルギー関数に含まれる式(3)や式(4)に基づく制約の種類や制約の数を取得する。
パラメータ評価部130は、パラメータ取得部170からパラメータの候補値を取得する。パラメータの候補値は、一定の取得対象範囲に属する値の中から抽出される。前述のように、本例では、パラメータは、最高温度値および最低温度値である。最高温度値および最低温度値それぞれに対して、取得対象範囲が定められる。このため、下記の説明の「候補値」は、候補値の組または候補値セットと言われてもよい。
パラメータ評価部130は、当該候補値をパラメータ探索終了判定部180に出力し、解探索部190による一定時間の解探索を実行させる。パラメータ評価部130は、解探索部190による一定時間の解探索の結果に応じて、当該候補値を評価する。パラメータ評価部130は、解探索部190によるSA法などの解探索を一定時間実行して得られるエネルギーが低く、当該エネルギーに到達した時間が短いほど、該当の候補値を高く評価する。パラメータ評価部130は、候補値に対して評価結果を示す評価値を算出する。
例えば、パラメータ評価部130は、次の評価式を用いて、該当の候補値に対する評価値を計算する。一例として、評価値が大きいほど、評価が高いことを示すものとする。
例えば、パラメータ評価部130は、評価値=E*p+t*qとする。ここで、Eは、パラメータの値を該当の候補値として解探索を行った場合に到達した解の最小エネルギーである。tは、当該最小エネルギーの解に到達するまでに要した時間である。p,qは、評価値に対するエネルギーおよび時間それぞれの重みを示す係数である。p,qは何れも0以下の実数である。
あるいは、パラメータ評価部130は、評価値=1/(E*p+t*q)としてもよい。この場合、p,qは何れも0以上の実数である。なお、p+q>0である。すなわち、p=0かつq=0の場合はない。
パラメータ評価部130は、評価した候補値と評価値とを評価結果記憶部140に格納する。パラメータ評価部130は、パラメータ取得範囲変更制御部150およびパラメータ探索終了判定部180に評価値を出力する。パラメータ評価部130は、現在の最良の評価値に対応する候補値を、パラメータ取得範囲変更部160に出力する。
評価結果記憶部140は、パラメータ評価部130による評価結果を記憶する。評価結果は、候補値と評価値とを含む。
パラメータ取得範囲変更制御部150は、イジング問題の性質を示す指標、および、各候補値の評価値に基づいて、パラメータの候補値の取得対象範囲を狭めるタイミングと取得対象範囲を狭める量とを決定する。イジング問題の性質を示す指標は、イジング問題の難易度を示し、例えば、イジング問題のビット数、制約の種類および制約の数に対応する指標である。パラメータ取得範囲変更制御部150は、取得対象範囲を狭めるタイミングと取得対象範囲を狭める量とをパラメータ取得範囲変更部160に出力する。
パラメータ取得範囲変更部160は、現在の最良の評価値に対応する候補値と、入力された、取得対象範囲を狭めるタイミングと取得対象範囲を狭める量とに基づいて、候補値の取得対象範囲の変更をパラメータ取得部170に指示する。
パラメータ取得部170は、パラメータの候補値の現在の取得対象範囲から、次に評価対象とする候補値を取得し、パラメータ評価部130に出力する。パラメータ取得部170は、例えばグリッドサーチのように総当たりで候補値を取得してもよいし、ランダムサーチのようにランダムに候補値を取得してもよい。パラメータ探索の開始当初の取得対象範囲は、ユーザにより予め指定される。
パラメータ取得部170は、パラメータ取得範囲変更部160の指示に応じて、パラメータの候補値の取得対象範囲を変更する。変更後の取得対象範囲は、直前の取得対象範囲よりも狭い範囲である。また、変更後の取得対象範囲の中心値は、直前の取得対象範囲における最良の評価値に対応する候補値である。パラメータが複数の場合、パラメータ取得部170は、各パラメータに対して、候補値の取得対象範囲を変更する。
パラメータ探索終了判定部180は、パラメータ探索の終了を判定する。具体的には、パラメータ探索終了判定部180は、パラメータ評価部130より入力されるパラメータの候補値を用いた一定時間の解探索を解探索部190に実行させる。また、パラメータ探索終了判定部180は、各候補値に対する評価値が一定回数変化しない場合に、解探索部190を用いたパラメータ探索を終了する。すると、パラメータ探索終了判定部180は、パラメータ探索で得られた最良の評価値に対応するパラメータの値をパラメータ評価部130から取得し、当該パラメータの値を解探索部190に入力して、本番の解探索を実行させる。
解探索部190は、パラメータ探索終了判定部180より入力されるパラメータの候補値を用いて、SA法による解探索を行う。解探索部190は、パラメータ探索における解探索の結果を、パラメータ評価部130に出力する。ただし、図3では、パラメータ評価部130と解探索部190との関連線は省略されている。解探索の結果は、解探索により得られたエネルギーを含む。また、解探索部190は、パラメータ探索により決定されたパラメータの値を用いて本番の解探索を実行し、当該解探索により最終的に得られた解を解出力部195に出力する。本番の解探索は、候補値の評価用の解探索よりも長い時間が用いられる。
解出力部195は、解探索部190により得られたイジング問題の解を出力する。例えば、解出力部195は、ディスプレイ31に解を示す情報を表示させる。解出力部195は、ネットワーク34を介して他の情報処理装置に解を示す情報を送信してもよい。
図4は、パラメータ評価テーブルの例を示す図である。
パラメータ評価テーブル141は、評価結果記憶部140に格納される。パラメータ評価テーブル141は、パラメータの候補値に対してパラメータ評価部130により求められた評価値を保持する。パラメータ評価テーブル141は、項番、最高温度値、最低温度値および評価値の項目を含む。
項番の項目には、レコードを識別する番号が登録される。項番は、該当のパラメータに対する評価、すなわち、パラメータ評価が何回目に行われたかを示す。パラメータ評価テーブル141の1つのレコードが1回分のパラメータ評価の結果に相当する。最高温度値の項目には、パラメータの1つである最高温度値の候補値が登録される。最低温度値の項目には、パラメータの1つである最低温度値の候補値が登録される。評価値の項目には、最高温度値の候補値と最低温度値の候補値との組に対する評価値が登録される。
例えば、パラメータ評価テーブル141は、項番「1」、最高温度値「Tmax1」、最低温度値「Tmin1」、評価値「V11」のレコードを有する。当該レコードは、パラメータ探索における1回目の評価では、(最高温度値,最低温度値)の候補値の組(Tmax1,Tmin1)が評価され、評価値が「V11」であることを示す。
パラメータ評価テーブル141には、他のパラメータセットに対する評価値のレコードも登録される。
図5は、パラメータの候補値の取得対象範囲の制御例を示す図である。
パラメータ取得範囲変更制御部150は、パラメータ評価テーブル141に基づいて、パラメータの候補値の取得対象範囲を狭めるタイミングと取得対象範囲を狭める量とを決定する。具体的には、パラメータ取得範囲変更制御部150は、一定の取得対象範囲に対するN回の評価で得られた最高の評価値Vを得る。パラメータ取得範囲変更制御部150は、当該最高の評価値を得られた回nからk回前に得られた評価値Vn-kを得る。kは1以上の整数である。V,Vn-kは同一の取得対象範囲から取得された各候補値に対する評価値である。そして、パラメータ取得範囲変更制御部150は、V-Vn-kに基づいて、取得対象範囲を狭めるタイミングと取得対象範囲を狭める量とを決定する。なお、Nやkの値は、ユーザにより情報処理装置100に予め入力される。
グラフ41,42それぞれは、N回の評価で得られた最高の評価値Vが、V=Vである場合を例示する。グラフ41,42の横軸は、何れも評価回数を示す。グラフ41,42の縦軸は、何れも評価値を示す。
グラフ41は、差V-Vn-k=V-VN-kが比較的小さい場合を示す。差V-Vn-k=V-VN-kが小さい程、パラメータの候補値に対する評価値の収束が進んでいると推定される。当該差が小さいほど、パラメータ取得範囲変更制御部150は、取得対象範囲を狭めるタイミングを早くし、取得対象範囲を狭める量を多くする。
グラフ42は、差V-Vn-k=V-VN-kが比較的大きい場合を示す。差V-Vn-k=V-VN-kが大きい程、パラメータの候補値に対する評価値の収束が進んでいないと推定される。当該差が大きいほど、パラメータ取得範囲変更制御部150は、取得対象範囲を狭めるタイミングを遅くし、取得対象範囲を狭める量を少なくする。
例えば、パラメータ取得範囲変更制御部150は、式(5)、(6)を用いて取得対象範囲を狭めるタイミングと、取得対象範囲を狭める量Δαとを計算する。当該タイミングは、N回の評価が完了した時点からの時間τ1によって表される。τ1は、当該時点以降に行われるパラメータ評価の回数により表されてもよい。
τ1=g*(V-Vn-k)+c ・・・(5)
Δα=g/(V-Vn-k)+c ・・・(6)
g,cは、何れも正の実数である。式(5)、(6)におけるgは、互いに異なる値でもよい。式(5)、(6)におけるcは、互いに異なる値でもよい。
また、パラメータ取得範囲変更制御部150は、更に、エネルギー関数に応じたイジング問題の性質を示す指標に基づいて、τ1およびΔαを決定してもよい。イジング問題の性質を示す指標は、式(1)のエネルギー関数におけるビット数A、制約の種類および各種類の制約の数を含む。制約の種類には前述の1w1h制約や2w1h制約などがある。例えば、パラメータ取得範囲変更制御部150は、式(7)、(8)を用いてτ1とΔαとを計算してもよい。ここで、エネルギー関数は2つの種類の制約を含むと仮定する。第1の種類の制約の数はB1である。第2の種類の制約の数はB2である。
τ1=a*A+b1*B1+b2*B2+g*(V-Vn-k)+c ・・・(7)
Δα=a/A+b3/B1+b4/B2+g/(V-Vn-k)+c ・・・(8)
a,b1,b2は、何れも正の実数である。式(7)、(8)におけるaは、互いに異なる値でもよい。式(7)、(8)におけるgは、互いに異なる値でもよい。式(7)、(8)におけるcは、互いに異なる値でもよい。式(7)のb1,b2は、制約の種類に対応する係数である。複雑な種類の制約であるほど、b1,b2の値を大きくする。式(8)のb1,b2は、制約の種類に対応する係数である。複雑な種類の制約であるほど、b3,b4の値を小さくする。なお、エネルギー関数は1つの種類の制約を含んでもよいし、3種類以上の制約を含んでもよい。
また、パラメータ取得範囲変更制御部150は、式(9)、(10)を用いてτ1とΔαとを計算してもよい。
τ1=a*A*B1*B2*(V-Vn-k)+c ・・・(9)
Δα=a/{A*B1*B2*(V-Vn-k)}+c ・・・(10)
式(9)、(10)におけるaは、互いに異なる値でもよい。式(9)、(10)におけるcは、互いに異なる値でもよい。
ここで、パラメータが複数の場合、パラメータ取得範囲変更制御部150は、パラメータごとにΔαを算出してもよい。パラメータ取得範囲変更制御部150は、Δαの計算に用いられるa,b1,b2などの係数として、該当のパラメータに対応する係数を用いてもよい。また、式(5)~(10)は一例であり、情報処理装置100は、他の式を用いてτ1やΔαを求めてもよい。
なお、情報処理装置100は、イジング問題のビット数がd以下かつ第1の種類の制約の数がe1以下かつ第2の種類の制約の数がe2以下かつV-Vn-kがf以下の場合に、τ1=t、Δα=uとするなどのパターンを示すテーブルを保持してもよい。この場合、当該テーブルは、情報処理装置100が有するRAM102やHDD103により実現される記憶部に予め格納される。パラメータ取得範囲変更制御部150は、当該テーブルを参照して、条件に合うパターンを採用することで、τ1とΔαとを決定してもよい。
次に、情報処理装置100の処理手順を説明する。
図6は、情報処理装置の処理例を示すフローチャートである。
(S10)問題入力部120は、問題情報記憶部110に記憶されたイジング問題の情報を、パラメータ評価部130、パラメータ取得範囲変更制御部150および解探索部190に入力する。
(S11)パラメータ取得部170は、パラメータの候補値を一定の取得対象範囲の中から取得し、パラメータ評価部130に出力する。当初の取得対象範囲は、情報処理装置100に予め入力される。パラメータが複数の場合、取得対象範囲はパラメータごとに定められる。例えば、パラメータとして最高温度値と最低温度値とがある場合、パラメータ取得部170は、最高温度値の取得対象範囲から最高温度値の候補値を取得し、最低温度値の取得対象範囲から最低温度値の候補値を取得する。そして、パラメータ取得部170は、取得した最高温度値の候補値と最低温度値の候補値との組をパラメータ評価部130に出力する。
(S12)パラメータ評価部130は、パラメータの候補値の評価を行う。具体的には、パラメータ評価部130は、パラメータの候補値を、パラメータ探索終了判定部180を介して解探索部190に供給し、当該候補値を用いた一定時間の解探索を実行させる。パラメータ評価部130は、解探索部190による一定時間の解探索の結果として得られる、到達した最小エネルギーと、最小エネルギーに到達するまでの時間に基づいて、パラメータの候補値に対する評価値を算出する。パラメータ評価部130は、パラメータの候補値と評価値とをパラメータ評価テーブル141に格納する。
(S13)パラメータ取得範囲変更制御部150は、ステップS12のパラメータ評価をN回実行したか否かを判定する。パラメータ評価をN回実行していない場合、パラメータ取得範囲変更制御部150は、ステップS11に処理を進める。パラメータ評価をN回実行した場合、パラメータ取得範囲変更制御部150は、ステップS14に処理を進める。
(S14)パラメータ取得範囲変更制御部150は、パラメータ取得範囲、すなわち、パラメータの候補値の取得対象範囲を狭めるタイミングおよび取得対象範囲を狭める量Δαを決定する。当該タイミングの計算には、例えば式(5)、(7)、(9)の何れかが用いられる。Δαの計算には、例えば式(6)、(8)、(10)の何れかが用いられる。パラメータが複数の場合、パラメータ取得範囲変更制御部150は、各パラメータに対してΔαを決定する。パラメータ取得範囲変更制御部150は、決定したタイミングを示すτ1およびΔαを、パラメータ取得範囲変更部160に出力する。
(S15)パラメータ取得範囲変更部160は、現時点がパラメータの取得対象範囲を狭めるタイミングであるか否かを判定する。現時点が当該タイミングでない場合、パラメータ取得範囲変更部160は、ステップS17に処理を進める。現時点が当該タイミングである場合、パラメータ取得範囲変更部160は、ステップS16に処理を進める。
例えば、パラメータ取得範囲変更部160は、ステップS14の直後からの経過時間がτ1に達した場合に、現時点がパラメータの取得対象範囲を狭めるタイミングであると判定する。あるいは、パラメータ取得範囲変更部160は、ステップS14の時点からのパラメータ評価の回数がτ1に達した場合に、現時点がパラメータの取得対象範囲を狭めるタイミングであると判定してもよい。
(S16)パラメータ取得範囲変更部160は、パラメータ評価部130から現時点での最高の評価値に対応するパラメータの候補値を取得する。パラメータ取得範囲変更部160は、取得した候補値を新たな取得対象範囲の中心値とする。そして、パラメータ取得範囲変更部160は、当該中心値を中心として、取得対象範囲の幅をΔαだけ狭めた範囲を、パラメータの候補値の新たな取得対象範囲とする。例えば、中心値がPc、元の取得対象範囲の幅がα0の場合、新たな取得対象範囲は、Pc±{(α0-Δα)/2}となる。パラメータが複数の場合、パラメータ取得範囲変更部160は、各パラメータに対して、新たな取得対象範囲を決定する。そして、パラメータ取得範囲変更部160は、ステップS17に処理を進める。
(S17)パラメータ取得部170は、パラメータの候補値を現在の取得対象範囲の中から取得し、パラメータ評価部130に出力する。このとき、パラメータ取得部170は、例えばこれまでに未取得の候補値を、現在の取得対象範囲の中から取得する。
(S18)パラメータ評価部130は、パラメータの候補値の評価を行う。評価の方法は、ステップS12と同様である。パラメータ評価部130は、該当の候補値に対する評価値を、パラメータ探索終了判定部180に出力する。また、パラメータ評価部130は、パラメータの候補値と評価値とをパラメータ評価テーブル141に格納する。
(S19)パラメータ探索終了判定部180は、パラメータ探索を終了するか否かを判定する。パラメータ探索を終了しない場合、パラメータ探索終了判定部180は、ステップS15に処理を進める。パラメータ探索を終了する場合、パラメータ探索終了判定部180は、ステップS20に処理を進める。例えば、パラメータ探索終了判定部180は、各候補値に対する評価値が一定回数変化しない場合に、パラメータ探索を終了すると判定する。
(S20)パラメータ評価部130は、パラメータ評価テーブル141に基づいて、現時点までに得られた最良の評価値に対応するパラメータの値を、パラメータ探索終了判定部180を介して解探索部190に入力して、本番の解探索を実行させる。解探索部190は、最良の評価値に対応するパラメータの値を用いて解探索を実行する。
(S21)解出力部195は、解探索部190による解探索が終了すると、解探索により最終的に得られた解を解探索部190から取得し、当該解を出力する。
ここで、図6の手順では、情報処理装置100がパラメータの候補値の取得対象範囲を1回だけ変更する例を示した。一方、情報処理装置100は、当該取得対象範囲を複数回変更してもよい。例えば、パラメータ取得範囲変更部160は、周期τ1でステップS16を実行して取得対象範囲をΔαずつ狭めることで、当該取得対象範囲を段階的に絞り込んでもよい。
あるいは、パラメータ取得範囲変更部160は、変更後の取得対象範囲を用いたパラメータ評価の回数がN’回に達すると、当該N’回のパラメータ評価の結果や問題の性質を基に、現在の取得対象範囲を狭めるタイミングと狭める量とを更に決定してもよい。そして、パラメータ取得範囲変更部160は、決定したタイミングと量とに基づいて、現在の取得対象範囲を更に狭める変更を行ってもよい。こうして、パラメータ取得範囲変更部160は、パラメータの候補値の取得対象範囲を段階的に絞り込んでもよい。
なお、図6では、N回のパラメータ評価を行った後に、取得対象範囲を狭めるタイミングや狭める量を決定する例を示した。一方、パラメータ取得範囲変更制御部150は、問題の性質を示す指標のみを用いて当該タイミングや狭める量Δαを決定してもよい。一方、当該タイミングは、パラメータ探索の開始時点からの時間τ2によって表されてもよい。τ2は、当該開始時点以降に行われるパラメータ評価の回数により表されてもよい。
τ2=a*A+b1*B1+b2*B2+c ・・・(11)
Δα=a/A+b3/B1+b4/B2+c ・・・(12)
式(11)、(12)におけるaは、互いに異なる値でもよい。式(11)、(12)におけるcは、互いに異なる値でもよい。式(11)では、複雑な種類の制約であるほど、b1,b2の値を大きくする。式(12)では、複雑な種類の制約であるほど、b3,b4の値を小さくする。
また、パラメータ取得範囲変更制御部150は、式(13)、(14)を用いてτ2とΔαとを計算してもよい。
τ2=a*A*B1*B2+c ・・・(13)
Δα=a/{A*B1*B2}+c ・・・(14)
式(13)、(14)におけるaは、互いに異なる値でもよい。式(13)、(14)におけるcは、互いに異なる値でもよい。また、式(11)~(14)は一例であり、情報処理装置100は、他の式を用いてτ2やΔαを求めてもよい。
なお、情報処理装置100は、イジング問題のビット数がd以下かつ第1の種類の制約の数がe1以下かつ第2の種類の制約の数がe2以下の場合に、τ2=t、Δα=uとするなどのパターンを示すテーブルを保持してもよい。パラメータ取得範囲変更制御部150は、当該テーブルを参照して、条件に合うパターンを採用することで、τ2とΔαとを決定してもよい。
情報処理装置100は、問題の性質を示す指標のみを用いて取得対象範囲を狭めるタイミングや狭める量Δαを決定する場合、図6の手順に代えて次の手順を実行してもよい。
図7は、情報処理装置の他の処理例を示すフローチャートである。
図7の手順では、ステップS10の直後にステップS10aを実行し、ステップS10aの次にステップS15に進む点が、図6の手順と異なる。このため、以下では、ステップS10aを説明し、他の手順の説明を省略する。
(S10a)パラメータ取得範囲変更制御部150は、パラメータ取得範囲、すなわち、パラメータの候補値の取得対象範囲を狭めるタイミングおよび取得対象範囲を狭める量Δαを決定する。当該タイミングの計算には、例えば式(11)、(13)の何れかが用いられる。Δαの計算には、例えば式(12)、(14)の何れかが用いられる。パラメータが複数の場合、パラメータ取得範囲変更制御部150は、各パラメータに対してΔαを決定する。パラメータ取得範囲変更制御部150は、決定したタイミングを示すτ2およびΔαを、パラメータ取得範囲変更部160に出力する。なお、当初用いられる一定の取得対象範囲は、情報処理装置100に予め入力される。
ステップS15では、例えば、パラメータ取得範囲変更部160は、ステップS10aの直後の時点、すなわち、パラメータ探索の開始時点からの経過時間がτ2に達した場合に、現時点がパラメータの取得対象範囲を狭めるタイミングであると判定する。あるいは、パラメータ取得範囲変更部160は、当該開始時点からのパラメータ評価の回数がτ2に達した場合に、現時点がパラメータの取得対象範囲を狭めるタイミングであると判定してもよい。
このように、情報処理装置100は、パラメータの候補値の取得対象範囲を効率的に絞り込むことができる。
なお、図7の手順では、情報処理装置100がパラメータの候補値の取得対象範囲を1回だけ変更する例を示した。一方、情報処理装置100は、当該取得対象範囲を複数回変更してもよい。例えば、パラメータ取得範囲変更部160は、周期τ2でステップS16を実行して取得対象範囲をΔαずつ狭めることで、当該取得対象範囲を段階的に絞り込んでもよい。
また、パラメータ取得範囲変更制御部150は、図6の手順により、狭めるタイミングを示すτ2や量Δαを決定してパラメータ探索を行ってもよい。例えば、上記τ2は、図6の手順のステップS14の直後からの時間として決定されてもよい。
図8は、パラメータの候補値の取得対象範囲の例を示す図である。
図8(A)は、不適切な取得対象範囲を示すグラフ51を例示する。図8(B)は、適切な取得対象範囲を示すグラフ52を例示する。グラフ51,52それぞれの横軸はパラメータの候補値、すなわち、パラメータ値である。グラフ51,52それぞれの縦軸は評価値である。最も評価の高いパラメータ値、すなわち、ベストパラメータ値は、p5であると仮定する。グラフ51は、パラメータ値p3を中心値とする幅α1の取得対象範囲を示す。グラフ52は、パラメータ値p4を中心値とする幅α2の取得対象範囲を示す。
例えば、取得対象範囲を狭めるタイミングや狭める量を、何れも固定値として与えて、取得対象範囲を狭める方法も考えられる。しかし、この場合、グラフ51で示されるように、ベストパラメータ値p5が、取得対象範囲から除外される可能性がある。
そこで、情報処理装置100は、パラメータ探索における評価値の収束の度合いおよび問題の性質を示す指標の少なくとも一方を用いて、取得対象範囲を狭めるタイミングや狭める量を決定する。これにより、情報処理装置100は、パラメータ値p3より良いパラメータ値p4を発見し易くなり、パラメータ値p4を中心値とした適切な幅α2の取得対象範囲を決定できる。その結果、情報処理装置100は、ベストパラメータ値p5が取得対象範囲から除外される可能性を小さくすることができる。また、情報処理装置100は、評価値の収束の度合いが速い場合や、問題の性質から比較的難易度の低い問題では、パラメータ探索の時間を抑制できる。
更に、情報処理装置100は、解探索に使用するパラメータの値を適切に決定できるため、解探索部190による本番の解探索における求解性能を向上できる。すなわち、情報処理装置100は、ベストパラメータ値の見逃しによる求解性能の低下を回避しつつ、パラメータ探索の時間を削減できる可能性を高められる。
なお、パラメータ探索には、TPE(Tree-structured Parzen Estimator)の手法もある。TPEは、既に取得したパラメータ値に対する評価から、評価が高くなると推定されるパラメータ値を取得する手法である。ただし、TPEを用いたとしても、正確な推定ができるまでには、多くのパラメータ値の評価を要することから、ベストパラメータ値への収束に時間がかかる。一方、情報処理装置100は、TPEの手法に比べても、比較的短時間でベストパラメータ値へ収束する可能性を高めることができる。
ここで、実問題5問に対する実験が行われた。実問題5問のうち3問は、比較的小さいビット数(477~755ビット)であり、制約の数が159~250程度である。一方、残り2問は、一方のビット数が5079ビットであり、他方のビット数が6321ビットであり、制約の数がそれぞれ1693、2107である。
実問題5問に対し、他の情報処理装置を用いて、単純にパラメータ取得および評価を300回行った後にパラメータの候補値の取得対象範囲を1/4に絞って探索したパラメータの値で求解を行った。これに対し、比較的ビット数の小さい3問では、情報処理装置100の機能により、パラメータ取得および評価を200回行った後に当該取得対象範囲を絞って探索したパラメータの値で求解が行われた。両方の求解結果を比較すると次の結果となった。
比較的小さいビット数の3問について、情報処理装置100により200回後に取得対象範囲を絞った方が、同程度の求解性能を維持しつつ、求解速度が向上することが確認された。具体的には、比較的小さいビット数の3問に対して、他の情報処理装置の求解で得られたエネルギーはそれぞれ(19222,14670,25362)であり、当該エネルギーに到達するまでの時間はそれぞれ(18時間,29時間,29時間)であった。一方、当該3問に対して、情報処理装置100の求解で得られたエネルギーはそれぞれ(19215,14686,25362)であり、当該エネルギーに到達するまでの時間はそれぞれ(21時間,25時間,18時間)であった。したがって、この場合、エネルギーで平均0.024%の差の求解性能を維持しつつ、平均19%の速度向上が得られた。
以上説明したように、情報処理装置100は、次の処理を実行する。
問題情報記憶部110は、問題に対応する、イジングモデルのエネルギー関数を示す情報を記憶する。情報処理装置100は、エネルギー関数に基づく問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および第1候補値をパラメータの値として用いた場合の解の探索の結果に応じた第1候補値の評価を複数回行う。情報処理装置100は、候補値範囲を、第1範囲から第1範囲よりも狭い第2範囲に変更する。情報処理装置100は第2範囲からの第2候補値の取得および第2候補値をパラメータの値として用いた場合の解の探索の結果に応じた第2候補値の評価を複数回行う。情報処理装置100は、第2範囲への変更の前に、第1候補値を用いた評価により複数の第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と最良の評価値よりも前の評価によって得られた他の評価値との第1差分、および、エネルギー関数に応じた問題の性質を示す指標の少なくとも一方に基づいて、候補値範囲を、第1範囲から第2範囲に変更するタイミングと、第1範囲と第2範囲との第2差分とを決定する。
これにより、情報処理装置100は、パラメータ探索を効率化できる。なお、複数の第1評価値を得る期間は、パラメータの候補値に対する評価の回数により予め定められてもよい。また、パラメータの数は1つでも良いし複数でもよい。パラメータ探索の対象となるパラメータの例には、SA法やレプリカ交換法における最高温度値や最低温度値が挙げられる。パラメータ探索の対象となるパラメータは、SA法における温度値の下げ幅や、レプリカ交換法における隣接する温度値の差などの他のパラメータを含んでもよい。レプリカ交換法における隣接する温度値の差に対応するパラメータとして、レプリカの数が用いられてもよい。解の探索は、例えばアクセラレータカード108などの探索部により実行される。ただし、解の探索はCPU101により実行されてもよい。
例えば、情報処理装置100は、第1差分が大きいほど、第1範囲から第2範囲に変更するタイミングを遅くし、第2差分を小さくしてもよい。これにより、情報処理装置100は、より良いパラメータの値を発見できる可能性を高められる。また、情報処理装置100は、評価値の収束が比較的進んでいると判断される場合には、パラメータ探索の時間を効率的に削減できる。
また、情報処理装置100は、第1差分が閾値以下の場合に、第1差分が閾値より大きい場合よりも、第1範囲から第2範囲に変更するタイミングを早くし、第2差分を大きくしてもよい。これにより、情報処理装置100は、より良いパラメータの値を発見できる可能性を高められる。また、情報処理装置100は、評価値の収束が比較的進んでいると判断される場合には、パラメータ探索の時間を効率的に削減できる。
また、問題の性質を示す指標は、例えば、問題の難易度を示すものでもよい。情報処理装置100は、問題の難易度が高いほど、第1範囲から第2範囲に変更するタイミングを遅くし、第2差分を小さくしてもよい。これにより、情報処理装置100は、より良いパラメータの値を発見できる可能性を高められる。また、情報処理装置100は、問題の難易度が比較的低いと判断される場合には、パラメータ探索の時間を効率的に削減できる。
例えば、問題の性質を示す指標は、エネルギー関数に含まれる状態変数の数、制約の種類および制約の数の少なくとも何れかを示す指標である。情報処理装置100は、これらの指標により、問題の難易度を適切に判断できる。
情報処理装置100は、エネルギー関数に含まれる状態変数の数および制約の数の少なくとも一方が多いほど、第1範囲から第2範囲に変更するタイミングを遅くし、第2差分を小さくしてもよい。これにより、情報処理装置100は、より良いパラメータの値を発見できる可能性を高められる。また、情報処理装置100は、問題の難易度が比較的低いと判断される場合には、パラメータ探索の時間を効率的に削減できる。
情報処理装置100は、候補値範囲を第1範囲から第2範囲に変更する際、第1範囲から取得された第1候補値のうち最良の評価値に対応する第1候補値を、第2範囲の中心値に設定する。これにより、情報処理装置100は、より良いパラメータの値を発見できる可能性を高められる。
例えば、情報処理装置100は、第1候補値を用いた場合の一定時間の解の探索により得られたエネルギー関数の最良値、および、最良値に達するまでに要した時間に基づいて第1候補値に対応する最良の評価値を算出してもよい。すなわち、情報処理装置100は、第1候補値を用いた場合の一定時間の解の探索により得られたエネルギー関数の最良値、および、最良値に達するまでに要した時間に基づいて第1候補値に対応する第1評価値を算出する。そして、情報処理装置100は、複数の第1候補値に対応する複数の第1評価値から最良の評価値を取得する。
これにより、情報処理装置100は、パラメータの候補値を適切に評価できる。例えば、エネルギーを最小化する問題の場合、解のエネルギーが低いほど、エネルギー関数の値は良い値となり、該当の候補値の評価は高まる。また、エネルギー関数の当該最良値に達するまでに要した時間が短いほど、該当の候補値の評価は高まる。
情報処理装置100は、第2範囲から取得された複数の第2候補値に対して得られた複数の第2評価値のうちの最良の評価値に対応する第2候補値をパラメータの値として決定する。情報処理装置100は、CPU101により当該パラメータの値を用いて問題に対する解の探索を実行してもよい。または、情報処理装置100は、CPU101により決定したパラメータの値を問題の解の探索を行うアクセラレータカード108などの探索部に入力して当該探索部に解の探索を実行させてもよい。情報処理装置100は、パラメータ探索により、より良いパラメータの値を決定できるため、当該パラメータの値により解の探索を行うことで、求解性能を向上できる。なお、探索部は、情報処理装置100以外の装置が備えるものでもよい。
また、パラメータ探索の対象のパラメータは複数でもよい。情報処理装置100は、複数のパラメータの候補値それぞれの第1範囲からの候補値の組の取得および当該候補値の組を用いた場合の解の探索の結果に応じた当該候補値の組の評価を複数回行う。候補値取得範囲である第1範囲は、パラメータごとに定められる。情報処理装置100は、複数のパラメータの候補値それぞれの第1範囲を、第1範囲よりも狭い第2範囲に変更する。情報処理装置100は、複数のパラメータの候補値それぞれの第2範囲からの候補値の組の取得および当該候補値の組を用いた場合の解の探索の結果に応じた当該候補値の組の評価を複数回行う。そして、情報処理装置100は、第2範囲への変更の前に、第1範囲を用いた評価により候補値の各組に対して算出された評価値のうちの最良の評価値と最良の評価値よりも前に得られた他の評価値との第1差分、および、エネルギー関数に応じた問題の性質を示す指標の少なくとも一方に基づいて、パラメータごとの候補値取得範囲を、第1範囲から第2範囲に変更するタイミングと、第1範囲と第2範囲との第2差分とを決定する。これにより、情報処理装置100は、パラメータ探索を効率化できる。
例えば、問題に対する解の探索は、シミュレーテッドアニーリング(SA)法またはレプリカ交換法によって実行されてもよい。複数のパラメータは、SA法またはレプリカ交換法に用いられる最高温度値と最低温度値との少なくとも一方を含んでもよい。前述のように、複数のパラメータは、SA法における温度値の下げ幅や、レプリカ交換法における隣接する温度値の差などの他のパラメータを含んでもよい。これにより、情報処理装置100は、SA法やレプリカ交換法に用いられるパラメータに対するパラメータ探索を効率化できる。
更に、情報処理装置100は、第1処理と第2処理と第3処理と含むパラメータ探索処理に対して次の処理を実行してもよい。ここで、第1処理は、パラメータの候補値範囲である第1範囲からの第1候補値の取得および第1候補値をパラメータの値として用いた場合の解の探索の結果に応じた第1候補値の評価を複数回行う処理である。第2処理は、候補値範囲を、第1範囲から、第1範囲よりも狭い第2範囲に変更する処理である。第3処理は、第2範囲からの第2候補値の取得および第2候補値をパラメータの値として用いた場合の解の探索の結果に応じた第2候補値の評価を繰り返し行う処理である。問題情報記憶部110は、問題に対応する、イジングモデルのエネルギー関数を示す情報を記憶する。情報処理装置100は、第1処理を終了して第2処理を実行するタイミング、すなわち、候補値範囲を第1範囲から第2範囲に変更するタイミングと、第1範囲と第2範囲との差分とを、エネルギー関数に応じた問題の性質を示す指標に基づいて決定する。
これにより、情報処理装置100は、パラメータ探索を効率化できる。この場合、パラメータ探索処理は、情報処理装置100により実行されてもよいし、情報処理装置100以外の装置により実行されてもよい。パラメータ探索処理が情報処理装置100以外の装置により実行される場合、情報処理装置100は、決定したタイミングを示す情報と、差分を示す情報とを当該装置に送信する。
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体33に記録できる。
例えば、プログラムを記録した記録媒体33を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体33に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
以上の第1,第2の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 問題に対応する、イジングモデルのエネルギー関数を示す情報を記憶する記憶部と、
前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行い、前記候補値範囲を、第1範囲から、前記第1範囲よりも狭い第2範囲に変更し、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行う処理部と、を有し、
前記処理部は、前記第1候補値を用いた評価により複数の前記第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と当該最良の評価値よりも前の評価によって得られた他の評価値との第1差分、および、前記エネルギー関数に応じた前記問題の性質を示す指標の少なくとも一方に基づいて、前記候補値範囲を前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との第2差分とを決定する、
情報処理装置。
(付記2) 前記処理部は、前記第1差分が大きいほど、前記タイミングを遅くし、前記第2差分を小さくする、付記1記載の情報処理装置。
(付記3) 前記処理部は、前記第1差分が閾値以下の場合に、前記第1差分が前記閾値より大きい場合よりも前記タイミングを早くし、前記第2差分を大きくする、付記1記載の情報処理装置。
(付記4) 前記問題の性質を示す指標は、前記問題の難易度を示し、
前記処理部は、前記難易度が高いほど、前記タイミングを遅くし、前記第2差分を小さくする、付記1記載の情報処理装置。
(付記5) 前記問題の性質を示す指標は、前記エネルギー関数に含まれる状態変数の数、制約の種類および制約の数の少なくとも何れかを示す指標である、付記1記載の情報処理装置。
(付記6) 前記処理部は、前記エネルギー関数に含まれる状態変数の数および制約の数の少なくとも一方が多いほど、前記タイミングを遅くし、前記第2差分を小さくする、付記5記載の情報処理装置。
(付記7) 前記処理部は、前記候補値範囲を前記第1範囲から前記第2範囲に変更する際、前記第1範囲から取得された前記第1候補値のうち、前記最良の評価値に対応する前記第1候補値を、前記第2範囲の中心値に設定する、付記1記載の情報処理装置。
(付記8) 前記処理部は、前記第1候補値を用いた場合の一定時間の前記探索により得られた前記エネルギー関数の最良値、および、前記最良値に達するまでに要した時間に基づいて前記第1候補値に対応する前記最良の評価値を算出する、付記1記載の情報処理装置。
(付記9) 前記処理部は、
前記第2範囲から取得された複数の前記第2候補値に対して得られた複数の第2評価値のうちの最良の評価値に対応する前記第2候補値を前記パラメータの値として決定し、
決定した前記パラメータの値を用いて前記問題に対する解の前記探索を実行する、または、決定した前記パラメータの値を前記探索を行う探索部に入力して前記探索部に前記探索を実行させる、
付記1記載の情報処理装置。
(付記10) 前記パラメータは複数あり、
前記処理部は、
複数の前記パラメータの候補値それぞれの前記第1範囲からの前記候補値の組の取得および前記候補値の組を用いた場合の前記探索の結果に応じた前記候補値の組の前記評価を複数回行い、複数の前記パラメータの候補値それぞれの前記第1範囲を前記第2範囲に変更し、複数の前記パラメータの候補値それぞれの前記第2範囲からの前記候補値の組の取得および前記候補値の組を用いた場合の前記探索の結果に応じた前記候補値の組の前記評価を複数回行い、
前記第2範囲への変更の前に、前記第1範囲を用いた前記評価により前記候補値の各組に対して算出された評価値のうちの最良の評価値と当該最良の評価値よりも前に得られた他の評価値との前記第1差分、および、前記エネルギー関数に応じた前記問題の性質を示す前記指標の少なくとも一方に基づいて、前記タイミングと前記第2差分とを決定する、
付記1記載の情報処理装置。
(付記11) 前記問題に対する解の前記探索は、シミュレーテッドアニーリング法またはレプリカ交換法によって実行され、
複数の前記パラメータは、前記シミュレーテッドアニーリング法または前記レプリカ交換法に用いられる最高温度値と最低温度値との少なくとも一方を含む、
付記10記載の情報処理装置。
(付記12) コンピュータが、
問題に対応する、イジングモデルのエネルギー関数を示す情報を取得し、
前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行い、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更し、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行い、
前記第2範囲への変更の前に、前記第1候補値を用いた評価により複数の前記第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と当該最良の評価値よりも前の評価によって得られた他の評価値との第1差分、および、前記エネルギー関数に応じた前記問題の性質を示す指標の少なくとも一方に基づいて、前記候補値範囲を前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との第2差分とを決定する、
情報処理方法。
(付記13) コンピュータに、
問題に対応する、イジングモデルのエネルギー関数を示す情報を取得し、
前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行い、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更し、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行い、
前記第2範囲への変更の前に、前記第1候補値を用いた評価により複数の前記第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と当該最良の評価値よりも前の評価によって得られた他の評価値との第1差分、および、前記エネルギー関数に応じた前記問題の性質を示す指標の少なくとも一方に基づいて、前記候補値範囲を前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との第2差分とを決定する、
処理を実行させるプログラム。
(付記14) 問題に対応する、イジングモデルのエネルギー関数を示す情報を記憶する記憶部と、
前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行う第1処理と、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更する第2処理と、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行う第3処理とを含む処理において、前記候補値範囲を、前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との差分とを、前記エネルギー関数に応じた前記問題の性質を示す指標に基づいて決定する処理部と、
を有する情報処理装置。
(付記15) 前記問題の性質を示す指標は、前記問題の難易度を示し、
前記処理部は、前記難易度が高いほど、前記タイミングを遅くし、前記差分を小さくする、付記14記載の情報処理装置。
(付記16) 前記問題の性質を示す指標は、前記エネルギー関数に含まれる状態変数の数、制約の種類および制約の数の少なくとも何れかを示す指標である、付記14記載の情報処理装置。
(付記17) 前記処理部は、前記エネルギー関数に含まれる状態変数の数および制約の数の少なくとも一方が多いほど、前記タイミングを遅くし、前記差分を小さくする、付記16記載の情報処理装置。
(付記18) コンピュータが、
問題に対応する、イジングモデルのエネルギー関数を示す情報を取得し、
前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行う第1処理と、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更する第2処理と、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行う第3処理とを含む処理において、前記候補値範囲を、前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との差分とを、前記エネルギー関数に応じた前記問題の性質を示す指標に基づいて決定する、
情報処理方法。
(付記19) コンピュータに、
問題に対応する、イジングモデルのエネルギー関数を示す情報を取得し、
前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行う第1処理と、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更する第2処理と、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行う第3処理とを含む処理において、前記候補値範囲を、前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との差分とを、前記エネルギー関数に応じた前記問題の性質を示す指標に基づいて決定する、
処理を実行させるプログラム。
10 情報処理装置
11 記憶部
12 処理部
20,21 グラフ

Claims (16)

  1. 問題に対応する、イジングモデルのエネルギー関数を示す情報を記憶する記憶部と、
    前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行い、前記候補値範囲を、第1範囲から、前記第1範囲よりも狭い第2範囲に変更し、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行う処理部と、を有し、
    前記処理部は、前記第1候補値を用いた評価により複数の前記第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と当該最良の評価値よりも前の評価によって得られた他の評価値との第1差分、および、前記エネルギー関数に応じた前記問題の性質を示す指標の少なくとも一方に基づいて、前記候補値範囲を前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との第2差分とを決定する、
    情報処理装置。
  2. 前記処理部は、前記第1差分が大きいほど、前記タイミングを遅くし、前記第2差分を小さくする、請求項1記載の情報処理装置。
  3. 前記処理部は、前記第1差分が閾値以下の場合に、前記第1差分が前記閾値より大きい場合よりも前記タイミングを早くし、前記第2差分を大きくする、請求項1記載の情報処理装置。
  4. 前記問題の性質を示す指標は、前記問題の難易度を示し、
    前記処理部は、前記難易度が高いほど、前記タイミングを遅くし、前記第2差分を小さくする、請求項1記載の情報処理装置。
  5. 前記問題の性質を示す指標は、前記エネルギー関数に含まれる状態変数の数、制約の種類および制約の数の少なくとも何れかを示す指標である、請求項1記載の情報処理装置。
  6. 前記処理部は、前記エネルギー関数に含まれる状態変数の数および制約の数の少なくとも一方が多いほど、前記タイミングを遅くし、前記第2差分を小さくする、請求項5記載の情報処理装置。
  7. 前記処理部は、前記候補値範囲を前記第1範囲から前記第2範囲に変更する際、前記第1範囲から取得された前記第1候補値のうち、前記最良の評価値に対応する前記第1候補値を、前記第2範囲の中心値に設定する、請求項1記載の情報処理装置。
  8. 前記処理部は、前記第1候補値を用いた場合の一定時間の前記探索により得られた前記エネルギー関数の最良値、および、前記最良値に達するまでに要した時間に基づいて前記第1候補値に対応する前記最良の評価値を算出する、請求項1記載の情報処理装置。
  9. 前記処理部は、
    前記第2範囲から取得された複数の前記第2候補値に対して得られた複数の第2評価値のうちの最良の評価値に対応する前記第2候補値を前記パラメータの値として決定し、
    決定した前記パラメータの値を用いて前記問題に対する解の前記探索を実行する、または、決定した前記パラメータの値を前記探索を行う探索部に入力して前記探索部に前記探索を実行させる、
    請求項1記載の情報処理装置。
  10. 前記パラメータは複数あり、
    前記処理部は、
    複数の前記パラメータの候補値それぞれの前記第1範囲からの前記候補値の組の取得および前記候補値の組を用いた場合の前記探索の結果に応じた前記候補値の組の前記評価を複数回行い、複数の前記パラメータの候補値それぞれの前記第1範囲を前記第2範囲に変更し、複数の前記パラメータの候補値それぞれの前記第2範囲からの前記候補値の組の取得および前記候補値の組を用いた場合の前記探索の結果に応じた前記候補値の組の前記評価を複数回行い、
    前記第2範囲への変更の前に、前記第1範囲を用いた前記評価により前記候補値の各組に対して算出された評価値のうちの最良の評価値と当該最良の評価値よりも前に得られた他の評価値との前記第1差分、および、前記エネルギー関数に応じた前記問題の性質を示す前記指標の少なくとも一方に基づいて、前記タイミングと前記第2差分とを決定する、
    請求項1記載の情報処理装置。
  11. 前記問題に対する解の前記探索は、シミュレーテッドアニーリング法またはレプリカ交換法によって実行され、
    複数の前記パラメータは、前記シミュレーテッドアニーリング法または前記レプリカ交換法に用いられる最高温度値と最低温度値との少なくとも一方を含む、
    請求項10記載の情報処理装置。
  12. コンピュータが、
    問題に対応する、イジングモデルのエネルギー関数を示す情報を取得し、
    前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行い、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更し、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行い、
    前記第2範囲への変更の前に、前記第1候補値を用いた評価により複数の前記第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と当該最良の評価値よりも前の評価によって得られた他の評価値との第1差分、および、前記エネルギー関数に応じた前記問題の性質を示す指標の少なくとも一方に基づいて、前記候補値範囲を前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との第2差分とを決定する、
    情報処理方法。
  13. コンピュータに、
    問題に対応する、イジングモデルのエネルギー関数を示す情報を取得し、
    前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行い、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更し、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行い、
    前記第2範囲への変更の前に、前記第1候補値を用いた評価により複数の前記第1候補値に対して算出された複数の第1評価値のうちの最良の評価値と当該最良の評価値よりも前の評価によって得られた他の評価値との第1差分、および、前記エネルギー関数に応じた前記問題の性質を示す指標の少なくとも一方に基づいて、前記候補値範囲を前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との第2差分とを決定する、
    処理を実行させるプログラム。
  14. 問題に対応する、イジングモデルのエネルギー関数を示す情報を記憶する記憶部と、
    前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行う第1処理と、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更する第2処理と、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行う第3処理とを含む処理において、前記候補値範囲を、前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との差分とを、前記エネルギー関数に応じた前記問題の性質を示す指標に基づいて決定する処理部と、
    を有する情報処理装置。
  15. コンピュータが、
    問題に対応する、イジングモデルのエネルギー関数を示す情報を取得し、
    前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行う第1処理と、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更する第2処理と、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行う第3処理とを含む処理において、前記候補値範囲を、前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との差分とを、前記エネルギー関数に応じた前記問題の性質を示す指標に基づいて決定する、
    情報処理方法。
  16. コンピュータに、
    問題に対応する、イジングモデルのエネルギー関数を示す情報を取得し、
    前記エネルギー関数に基づく前記問題の解の探索に用いられるパラメータの候補値範囲である第1範囲からの第1候補値の取得および前記第1候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第1候補値の評価を複数回行う第1処理と、前記候補値範囲を、前記第1範囲から、前記第1範囲よりも狭い第2範囲に変更する第2処理と、前記第2範囲からの第2候補値の取得および前記第2候補値を前記パラメータの値として用いた場合の前記探索の結果に応じた前記第2候補値の評価を複数回行う第3処理とを含む処理において、前記候補値範囲を、前記第1範囲から前記第2範囲に変更するタイミングと、前記第1範囲と前記第2範囲との差分とを、前記エネルギー関数に応じた前記問題の性質を示す指標に基づいて決定する、
    処理を実行させるプログラム。
JP2021192401A 2021-11-26 2021-11-26 情報処理装置、情報処理方法およびプログラム Pending JP2023079015A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021192401A JP2023079015A (ja) 2021-11-26 2021-11-26 情報処理装置、情報処理方法およびプログラム
US17/869,813 US20230169386A1 (en) 2021-11-26 2022-07-21 Information processing apparatus, information processing method, and computer-readable recording medium storing program of searching for parameter
EP22186941.5A EP4187447A1 (en) 2021-11-26 2022-07-26 Information processing apparatus, information processing method, and program of searching for parameter
CN202210968202.XA CN116186343A (zh) 2021-11-26 2022-08-12 信息处理设备、信息处理方法和计算机可读记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021192401A JP2023079015A (ja) 2021-11-26 2021-11-26 情報処理装置、情報処理方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2023079015A true JP2023079015A (ja) 2023-06-07

Family

ID=83228792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021192401A Pending JP2023079015A (ja) 2021-11-26 2021-11-26 情報処理装置、情報処理方法およびプログラム

Country Status (4)

Country Link
US (1) US20230169386A1 (ja)
EP (1) EP4187447A1 (ja)
JP (1) JP2023079015A (ja)
CN (1) CN116186343A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934951A (ja) 1995-07-20 1997-02-07 Nec Corp 組合せ最適化方法
JP2006023868A (ja) 2004-07-07 2006-01-26 Toshiba Corp 解探索装置及びその初期値設定方法
JP7206476B2 (ja) 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム

Also Published As

Publication number Publication date
US20230169386A1 (en) 2023-06-01
CN116186343A (zh) 2023-05-30
EP4187447A1 (en) 2023-05-31

Similar Documents

Publication Publication Date Title
Nagarajan et al. Deterministic implementations for reproducibility in deep reinforcement learning
JP7108185B2 (ja) 最適化装置および最適化装置の制御方法
JP7248907B2 (ja) 最適化装置および最適化装置の制御方法
US20210150356A1 (en) Optimization device, method for controlling optimization device, and computer-readable recording medium recording program for controlling optimization device
US20210271274A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
JP2019160169A (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US20210334332A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
Zhang et al. Uniformly sampled genetic algorithm with gradient search for structural identification–Part I: global search
JP2022015503A (ja) 情報処理システム、情報処理方法及びプログラム
JP7231829B2 (ja) 機械学習プログラム、機械学習方法および機械学習装置
JP2023079015A (ja) 情報処理装置、情報処理方法およびプログラム
Chang et al. Flexible chip placement via reinforcement learning: late breaking results
US20210365605A1 (en) Optimization device, optimization method, and non-transitory computer-readable storage medium for storing optimization program
JP7498393B2 (ja) 情報処理装置、情報処理方法、プログラム及び情報処理システム
WO2021075029A1 (ja) 機械学習プログラム、機械学習方法および機械学習装置
JP2024030713A (ja) 温度調整プログラム、データ処理装置及びデータ処理方法
EP4290417A1 (en) Information processing apparatus, information processing method, and information processing program
EP4235518A1 (en) Data processing program, data processing device, and data processing method
US20230350972A1 (en) Information processing apparatus and information processing method
EP3975057A1 (en) Optimization device, optimization method, and optimization program
WO2023112099A1 (ja) 選択方法、選択装置、及びプログラム
US20240111833A1 (en) Data processing apparatus and data processing method
Chang et al. Late Breaking Results: Flexible Chip Placement via Reinforcement Learning
Lenarcic et al. Algorithmic Bayesian Group Gibbs Selection
JP2021131723A (ja) 情報処理方法、情報処理装置及びプログラム