JP2021192139A - 情報処理装置、情報処理方法、プログラム及び情報処理システム - Google Patents

情報処理装置、情報処理方法、プログラム及び情報処理システム Download PDF

Info

Publication number
JP2021192139A
JP2021192139A JP2020098271A JP2020098271A JP2021192139A JP 2021192139 A JP2021192139 A JP 2021192139A JP 2020098271 A JP2020098271 A JP 2020098271A JP 2020098271 A JP2020098271 A JP 2020098271A JP 2021192139 A JP2021192139 A JP 2021192139A
Authority
JP
Japan
Prior art keywords
state
search
value
group
unit
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.)
Granted
Application number
JP2020098271A
Other languages
English (en)
Other versions
JP7498393B2 (ja
Inventor
マチュー パリジ
Matthew Parisi
崇之 柴▲崎▼
Takayuki Shibazaki
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 JP2020098271A priority Critical patent/JP7498393B2/ja
Priority claimed from JP2020098271A external-priority patent/JP7498393B2/ja
Priority to EP21159207.6A priority patent/EP3920054A1/en
Priority to US17/189,312 priority patent/US20210382960A1/en
Priority to CN202110233714.7A priority patent/CN113761783A/zh
Publication of JP2021192139A publication Critical patent/JP2021192139A/ja
Application granted granted Critical
Publication of JP7498393B2 publication Critical patent/JP7498393B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • 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
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】最適解に到達する可能性を高める。【解決手段】処理部12は、探索部20に第1ステート及び第2ステートを設定する。処理部12は、第1ステート及び第2ステートをそれぞれ始点とする探索であって、目的関数の値の増減に影響する所定の外部パラメータの値を、目的関数の値の増加を促す方向に変化させる探索を探索部20に実行させる。処理部12は、当該探索の過程で第1ステートに基づいて得られた第1ステート群及び第2ステートに基づいて得られた第2ステート群を取得する。処理部12は、第1ステート群及び第2ステート群に基づいて、未探索のステートのうち第3ステートを決定する。処理部12は、第3ステートを始点として探索部20に探索を実行させる。【選択図】図1

Description

本発明は情報処理装置、情報処理方法、プログラム及び情報処理システムに関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する情報処理システムがある。情報処理システムは、例えばシミュレーテッド・アニーリング(SA:Simulated Annealing)法やレプリカ交換法などのマルコフ連鎖モンテカルロ法により、問題に対応する目的関数の値が最小となる基底状態を探索する。目的関数は、エネルギー関数や評価関数などと呼ばれることもある。また、基底状態は最適化問題の最適解に対応する。
例えば、プラント機器の配置計画などのように、複数の局所最適解をもつ可能性のある非線形計画問題を対話的に解くための対話型計画装置の提案がある。提案の対話型計画装置は、既に発見された局所最適解と探索出発点との距離を基に、その探索出発点からの最適化を実行するか否かを判定することで、無駄な局所最適化の回数を減らす。
また、探索ステップごとに、探索範囲に影響する所定の水準幅を最適値のトレンドに基づいて変化させる最適値探索装置の提案もある。
特開昭62−61101号公報 特開2006−293478号公報
上記のように、SA法やレプリカ交換法などによる探索で得られた解は、局所解であるが最適解でない可能性がある。すなわち、全探索空間のうちの未探索の部分に最適解が存在する可能性がある。
1つの側面では、本発明は、最適解に到達する可能性を高める情報処理装置、情報処理方法、プログラム及び情報処理システムを提供することを目的とする。
1つの態様では、情報処理装置が提供される。この情報処理装置は、通信部と処理部とを有する。通信部は、目的関数に含まれる複数の状態変数の値により表されるステートを変化させることで目的関数の値を最小にする解の探索を行う探索部と通信する。処理部は、通信部を介して探索部に第1ステート及び第2ステートを設定し、第1ステート及び第2ステートをそれぞれ始点とする探索であって、目的関数の値の増減に影響する所定の外部パラメータの値を、目的関数の値の増加を促す方向に変化させる探索を探索部に実行させ、当該探索の過程で第1ステートに基づいて得られた第1ステート群及び第2ステートに基づいて得られた第2ステート群を取得し、第1ステート群及び第2ステート群に基づいて、未探索のステートのうち第3ステートを決定し、第3ステートを始点として探索部に探索を実行させる。
また、1つの態様では、情報処理方法が提供される。
また、1つの態様では、プログラムが提供される。
また、1つの態様では、情報処理システムが提供される。
1つの側面では、最適解に到達する可能性を高めることができる。
第1の実施の形態の情報処理システムの処理例を説明する図である。 第2の実施の形態の情報処理システムのハードウェア例を示す図である。 情報処理装置の機能例を示す図である。 近傍ステートテーブルの例を示す図である。 ステートのマッピングの第1の例を示す図である。 ステートのマッピングの第2の例を示す図である。 始点候補ステートの計算例を示す図である。 情報処理システムの全体制御例を示すフローチャートである。 強化フェーズの例を示すフローチャートである。 多様化フェーズの例を示すフローチャートである。 始点候補ステートの計算例を示すフローチャートである。 局所解近傍のステートのエネルギー値の例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理システムの処理例を説明する図である。
情報処理システム1は、組合せ最適化問題の解を探索し、解を出力する。情報処理システム1は、情報処理装置10及び探索部20を有する。情報処理装置10は、探索部20に接続される。
探索部20は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などの半導体集積回路により実現される。また、探索部20は、RAM(Random Access Memory)やレジスタなどの記憶部を含み得る。例えば、FPGAなどの集積回路を用いて実現される探索回路が、探索部20として機能してもよい。なお、探索部20は、複数のサブ探索部を含んでもよく、複数のサブ探索部を並列に用いて解の探索を行ってもよい。その場合、複数のサブ探索部は複数の装置に分散して配置されてもよい。
探索部20は、組合せ最適化問題を定式化したイジング型の目的関数に基づいて、目的関数に含まれる複数の状態変数の値により表されるステート(State)を変化させることで、目的関数の値を最小にする解、すなわち、最適解の探索を行う。解の探索には、例えば、SA法やレプリカ交換法などのマルコフ連鎖モンテカルロ法が用いられる。
ここで、ステートは、複数の状態変数の値により表されるイジングモデルの状態である。状態変数は「0」または「1」の値を取るバイナリ変数である。目的関数は、ステートに対応するエネルギー値を表す。目的関数は、エネルギー関数、評価関数あるいはハミルトニアンなどとも呼ばれる。目的関数の値は、エネルギー値や評価値などと呼ばれてもよい。
上記のように、組合せ最適化問題は、目的関数の値を最小化する解を求める問題として定式化される。この場合、目的関数の値を最小化する解は、イジングモデルの基底状態を表し、組合せ最適化問題の最適解に相当する。イジング型の目的関数E(x)は、例えば、式(1)で表される。
Figure 2021192139
状態ベクトルxは、複数の状態変数を要素とし、イジングモデルのステートを表す。目的関数の値を最大化する問題の場合には、目的関数の符号を逆にすればよい。
式(1)の右辺第1項は、全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と重み係数との積を積算したものである。xは、i番目の状態変数である。xは、j番目の状態変数である。Wijは、i番目の状態変数とj番目の状態変数との間の重み、または、結合の強さを示す重み係数である。
式(1)の右辺第2項は、全状態変数の各々のバイアス係数と状態変数の値との積の総和を求めたものである。bは、i番目の状態変数に対するバイアス係数を示している。
例えば、イジングモデルにおけるスピンの「−1」は、状態変数の値「0」に対応する。イジングモデルにおけるスピンの「+1」は、状態変数の値「1」に対応する。このため、状態変数を0または1の値をとるビットと呼ぶこともできる。
探索部20には情報処理装置10により組合せ最適化問題に対応する目的関数の情報を含む問題データが入力される。まず、探索部20は、問題データに基づいて、第1の探索方法での探索を異なる初期ステートを用いてm(mは2以上の整数)回実行することで基底状態の探索を行い、その結果としてm個の局所解を得る。探索部がサブ探索部を複数個含む場合、複数のサブ探索部により並列に探索を実行させることで処理を高速化できる。サブ探索部はレプリカと呼ばれることがある。
ここで、第1の探索方法では、目的関数の値の増減に影響する所定の外部パラメータの値を漸減させることで基底状態の探索が行われる。外部パラメータは、組合せ最適化問題を表す問題データとは別に、探索部20に対して与えられるパラメータである。外部パラメータは、例えばイジングモデルに作用する外部環境の所定の物理量を示すパラメータまたは当該物理量を模したパラメータであることがある。あるいは、外部パラメータは、イジングモデルに作用する当該物理量の影響の強さを調整するパラメータであることもある。外部パラメータとしてどのようなパラメータを用いるかは探索方法に応じて異なる。
第1の探索方法の例としては、SA法、レプリカ交換法などが挙げられる。また、第1の探索方法の例としては、後述されるように、量子アニーリング(QA:Quantum Annealing)法やシミュレーテッド量子アニーリング(SQA:Simulated Quantum Annealing)法も挙げられる。
例えば、SA法やレプリカ交換法では、外部パラメータとして、温度値が用いられる。SA法を用いる場合、探索部20は、情報処理装置10から与えられた温度スケジュールに基づき基底状態を探索する。例えば、SA法では、探索過程で、探索に用いられる温度値が最高温度値から最低温度値へ徐々に下がるようにスケジューリングされる。
基底状態の探索では、ある状態変数、すなわち、ビットを変化させることによる状態遷移が繰り返し実行される。SA法やレプリカ交換法では、あるビットを変化させることによる、あるステートから次のステートへの遷移確率の決定に、メトロポリス法やギブス法が用いられる。探索部20は、複数のビットの何れかのビットを変化させたときの目的関数の値の変化量と、ノイズ値との比較結果に基づいて、ビットの変化を許容するか否かを判定する。探索部20は、許容すると判定した場合、該当のビットの値を変えることで、状態遷移を発生させる。ノイズ値は、温度値や乱数に基づいて求められる。温度値が大きい程、ノイズ値の振幅が大きくなる。ノイズ値の振幅が大きい程、目的関数の値の増加量が大きい状態遷移が許容されやすくなる。このため、温度値が大きい程、目的関数の値の増加が促される。すなわち、目的関数の値が比較的大きく増加する状態遷移が生じ易くなる。
探索部20は、第1の探索方法による探索の結果として得られたm個の局所解を情報処理装置10に出力する。局所解は、第1の探索方法による探索で到達した解のうちの目的関数の値を最小にする解である。当該探索をm(mは2以上の整数)回実行することで、m個の局所解が得られる。
ここで、探索部20は、複数の状態変数により表される全てのステート、すなわち、全探索空間を探索して解を出力するわけではない。このため、探索部20により出力される解は、局所的に最良の解、すなわち局所解である。一方、局所解は、必ずしも大域的に最良の解、すなわち最適解であるとは限らない。そこで、情報処理装置10は、探索部20により当該局所解を基に再探索を行わせることで、最適解を得られる可能性を高める機能を提供する。
情報処理装置10は、通信部11及び処理部12を有する。
通信部11は、探索部20と通信する。通信部11は、探索部20が備えるメモリまたは探索部20が参照する情報処理装置10内のメモリに対するIO(Input/Output)を行うIOインタフェースにより実現される。探索部20がネットワークを介して接続された他の装置により実現される場合、通信部11は、ネットワークと接続されるNIC(Network Interface Card)などの通信インタフェースにより実現されてもよい。
処理部12は、CPU、DSP、ASIC、FPGAなどの集積回路を含み得る。処理部12はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。処理部12は、通信部11を介して探索部20と通信する。
また、図示を省略しているが、情報処理装置10は、処理部12の処理に用いられるステートなどのデータを記憶するRAMやHDDなどの記憶部を備える。
処理部12は、通信部11を介して、探索部20に第1ステート及び第2ステートを設定する。例えば、処理部12は、第1ステート及び第2ステートを順に設定し、第1ステート及び第2ステートのそれぞれを始点とする第2の探索方法による探索を探索部20に実行させる。あるいは、探索部20が複数のサブ探索部を有する場合、複数のサブ探索部のうちの2つに第1ステート及び第2ステートを一斉に設定することもできる。第1ステート及び第2ステートそれぞれは、第1の探索方法による探索が終了した直後の段階では、第1の探索方法による探索で得られた2つの局所解である。
第2の探索方法による探索は、上記の外部パラメータの値を、目的関数の値の増加を促す方向に変化させる探索である。例えば、外部パラメータは、外部パラメータが取り得る最小値を初期値とする。処理部12は、ステートの所定回数の変化、あるいは、所定期間の経過ごとに、外部パラメータの値を増加するように探索部20に指示する。外部パラメータの1回当たりの増加幅は一定幅でもよいし、0.1,1,10,100,1000,…のような対数幅で徐々に増やしてもよい。なお、前述のように、外部パラメータは、例えば温度値である。また、探索部20が複数のサブ探索部を含み、第1の探索方法としてレプリカ交換法が用いられる場合であっても、第2の探索方法による探索ではサブ探索部間でのレプリカ交換、すなわち、温度値やステートの交換を行わず、サブ探索部ごとに独立した探索を行う。
第2の探索方法による探索は、始点の近傍のステートを探索するものである。例えば、上記のように、一定回数の状態遷移ごとに温度値を最低温度値から段階的に大きくしながら状態遷移を進めて、近傍のステートをサンプリングする。例えば、始点からのハミング距離が一定値未満であるステート、あるいは、最低温度値からの温度値の増加量が一定値未満のときにサンプリングされたステートが、該当の始点に対する近傍のステートとなる。
処理部12は、第2の探索方法による探索の過程で第1ステートに基づいて得られた第1ステート群及び第2ステートに基づいて得られた第2ステート群を取得する。例えば、3個の局所解を始点とした場合、処理部12は、3個のステート群{s1},{s2},{s3}を探索部20から取得する。処理部12は、ステート群{s1},{s2},{s3}を、ステート群{s1},{s2},{s3}それぞれの始点のステートに対応付けて、情報処理装置10の記憶部に格納する。ステート群{s1},{s2},{s3}が、始点のステートを含んでもよい。例えば、ステート群{s1}を第1ステート群の一例と考えてもよく、ステート群{s2}を第2ステート群の一例と考えてもよい。
処理部12は、取得した第1ステート群及び第2ステート群に基づいて、未探索のステートのうち新たな始点とする第3ステートを決定する。具体的には次の通りである。
まず、処理部12は、第1ステート群及び第2ステート群のそれぞれに含まれるステート間の関係を示すマップ情報を生成する。マップ情報は、例えば、サンプリングされたステート群(始点を含む)について、ステート間の関係をn(nは2以上の整数)次元の座標系にマッピングした情報である。ステート間の関係は、2つのステートの類似の度合い、すなわち、類似度を表す。例えば、類似度は、2つのステート間のハミング距離により表される。この場合、ハミング距離が小さいほど、2つのステートの類似度は高い。または、類似度は、一方のステートにより表される、組合せ最適化問題における複数の第1パラメータ値p11,p12,…と他方のステートにより表される複数の第2パラメータ値p21,p22,…との距離{Σ(p2i−p1i)^2}^(1/2)でもよい。この場合、当該距離が小さいほど、2つのステートの類似度は高い。ステート間の類似度は、これらの例とは別の尺度で評価されてもよい。
処理部12は、ステートの次元数、すなわち、複数の状態変数の数よりも小さい次元数をもつマップ情報を生成してもよい。その場合、任意の2つのステート間の類似度が維持されるように、当該マップ情報が生成される。このようなマップ情報の生成方法として、多次元尺度構成法(MDS:Multi-Dimensional Scaling)を用いることができる。MDSには次の文献1を参考にできる。
文献1:J.B.Kruskal,“Multidimensional scaling by optimizing goodness of fit to a nonmetric hypothesis,” Psychometrika. 29 (1), 1964, p.1-27.
マップ情報30は、一例として、2次元の座標系によりステート間の関係を表す場合を示している。当該座標系は、x軸及びy軸を有する。マップ情報30は、始点のステートや当該始点に対してサンプリングされたステートに対応するxy座標の情報を含む。2つのステート間の類似の関係は、当該座標系にプロットされた一方のステートに対応する座標と、他方のステートに対応する座標との間の距離により表される。
例えば、マップ情報30は、座標a0〜a5,b0〜b4,c0〜c3を含む。
座標a0は、第2の探索方法による探索の第1の始点に対応する。座標a1〜a5それぞれは、ステート群{s1}に含まれる何れかのステートに対応する。
座標b0は、第2の探索方法による探索の第2の始点に対応する。座標b1〜b4それぞれは、ステート群{s2}に含まれる何れかのステートに対応する。
座標c0は、第2の探索方法による探索の第3の始点に対応する。座標c1〜c3それぞれは、ステート群{s3}に含まれる何れかのステートに対応する。
処理部12は、始点とステート群との対応関係及びマップ情報に基づいて、未探索のステートのうち第3ステートを決定する。
例えば、処理部12は、第1の始点に対応する座標a0及び第1の始点から探索されたステート群{s1}に対応する座標a1〜a5を特定する。そして、処理部12は、第1の始点及びステート群{s1}に対応する各座標を囲う図形を求める。当該図形は、例えば、座標a0〜a5を囲う最小バウンディングポリゴン(Minimum Bounding Polygon)や最小バウンディングレクタングル(Minimum Bounding Rectangle)でもよい。図形R1は、第1の始点を含むステート群{s1}に対応する各座標を囲う図形の一例である。
また、処理部12は、第2の始点に対応する座標b0及び第2の始点から探索されたステート群{s2}に対応する座標b1〜b4を特定する。そして、処理部12は、始点となった第2の始点及びステート群{s2}に対応する各座標を囲う図形R2を求める。
更に、処理部12は、第3の始点に対応する座標c0及び第3の始点を始点として探索されたステート群{s3}に対応する座標c1〜c3を特定する。そして、処理部12は、始点となった第3の始点及びステート群{s3}に対応する各座標を囲う図形R3を求める。
この場合、図形R1,R2,R3は、全探索空間のうちの探索済の部分空間に対応する領域であると推定される。このため、既に得られている解以外に最適解があるとすれば、全探索空間のうち、当該領域の外に対応する未探索の部分空間に存在する可能性が高いと推定される。そこで、処理部12は、図形R1,R2,R3それぞれに属するステートに基づいて、図形R1,R2,R3に属さない第3ステートを求める。
例えば、処理部12は、下記の方法により、図形R1,R2,R3に対応する探索済の部分空間からの距離が適度に離れた第3ステートを求めることができる。
処理部12は、図形R1に対応する始点のステートを含むステート群{s1}の各ステートを比較して、ステート群{s1}の各ステートの同位置のビットを、常に1のビット、常に0のビット、及び、1または0のビットに分類する。ステート群{s1}に対する分類結果を第1のビットパターンと称する。
処理部12は、図形R2に対応する始点のステートを含むステート群{s2}の各ステートを比較して、ステート群{s2}の各ステートの同位置のビットを、常に1のビット、常に0のビット、及び、1または0のビットに分類する。ステート群{s2}に対する分類結果を第2のビットパターンと称する。
処理部12は、図形R3に対応する始点のステートを含むステート群{s3}の各ステートを比較して、ステート群{s3}の各ステートの同位置のビットを、常に1のビット、常に0のビット、及び、1または0のビットに分類する。ステート群{s3}に対する分類結果を第3のビットパターンと称する。
例えば、処理部12は、2つのステート群{s1},{s2}に対して、次のように第3ステートの候補となる候補ステートを生成する。第1に、処理部12は、第1及び第2のビットパターンの両方で常に1または常に0で共通であるビットについては、当該ビットに対応する候補ステートのビットも同じ値とする。第2に、処理部12は、第1及び第2のビットパターンの一方で常に1であり、他方で常に0であるビットについては、当該ビットに対応する候補ステートのビットで1及び0が半々に含まれるようにする。第3に、処理部12は、上記の第1,第2の基準の何れにも当てはまらない場合、候補ステートの該当のビットを、1または0にランダムに決定する。処理部12は、こうして求めた候補ステートを、マップ情報30にマッピングし、候補ステートに対応する座標が、図形R1,R2,R3の何れにも属さない場合、当該候補ステートを第3ステートとして確定する。
マップ情報30には、図形R1,R2,R3の何れにも属さない座標d0,e0,f0が例示されている。座標d0は、ステート群{s1},{s2}に対して求められたステートsdに対応する座標である。座標e0は、ステート群{s2},{s3}に対して求められたステートseに対応する座標である。座標f0は、ステート群{s3},{s1}に対して求められたステートsfに対応する座標である。ステートsd,se,sfそれぞれは、第3ステートの一例である。
処理部12は、第3ステートを始点として探索部20に探索を実行させる。例えば、処理部12は、ステートsdを探索部20に出力し、ステートsdを始点、すなわち、始点ステートとして、第2の探索方法による探索を探索部20に実行させ、当該探索により得られたステートを取得する。また、処理部12は、ステートseを探索部20に出力し、ステートseを始点として、第2の探索方法による探索を探索部20に実行させ、当該探索により得られたステートを取得する。更に、処理部12は、ステートsfを探索部20に出力し、ステートsfを始点として、第2の探索方法による探索を探索部20に実行させ、当該探索により得られたステートを取得する。
処理部12は、探索部20による再探索の結果、既に得られているよりも良いステート、すなわち既存の解よりも目的関数の値が小さい解が得られた場合には、新たに得られた解を採用し、最終的に得られた最良の解を外部に出力する。なお、処理部12は、新たに得られたステート群を始点ごとに探索部20から取得し、当該ステート群を基に上記の手順を一定時間または一定回数だけ繰り返し実行することで、探索部20に更に良い解を探索させてもよい。
上記の例では、第3ステートとして、3個のステートsd,se,sfを示したが、第3ステートの数は、1個でもよいし、2個または4個以上でもよい。例えば、処理部12は、第1ステート群に対応する図形R1および第2ステート群に対応する図形R2に基づいて、1つのステートsdを第3ステートとして求めてもよい。
情報処理システム1によれば、第1ステート及び第2ステートのそれぞれを始点とする探索であって、目的関数の値の増減に影響する所定の外部パラメータの値を、目的関数の値の増加を促す方向に変化させる探索が実行される。当該探索の過程で第1ステートに基づいて得られた第1ステート群及び第2ステートに基づいて得られた第2ステート群が取得される。第1ステート群及び第2ステート群に基づいて、未探索のステートのうち第3ステートが決定される。第3ステートを始点として探索が実行される。
これにより、最適解に到達する可能性を高めることができる。また、全探索空間のうちの未探索の部分に絞って効率的に解の探索を行うことができ、短時間で最適解を得ることができる。こうして、組合せ最適化問題に対する求解性能を向上できる。
なお、探索部20は、デジタル回路を用いてSA法やレプリカ交換法などを実行するハードウェアにより実現されてもよいし、QA法を実行するハードウェアにより実現されてもよい。SA法、レプリカ交換法またはQA法などを実行するハードウェアは最適化装置と呼ばれることがある。また、SA法、レプリカ交換法またはSQA法を実行する探索部20は、情報処理装置10が有するCPUなどのプロセッサにより実現されてもよい。
QA法やSQA法では、目的関数に対応するハミルトニアンに横磁場項が付加される。例えば、横磁場項を含むハミルトニアンH(t)は、H(t)=H+Γ(t)Hと表される。
ここで、tは時間である。Hは、イジングモデルのハミルトニアンである。Hは横磁場を表すハミルトニアンである。Γ(t)Hは横磁場項である。横磁場項Γ(t)HにおけるΓ(t)は、目的関数における横磁場の影響の強さを表す係数である。Γ(t)は、横磁場の強さを表す係数であると言われることもある。
QA法やSQA法では、時間経過とともに横磁場項における当該係数Γ(t)を小さくすることで、イジングモデルに対する横磁場の影響が小さくなるように制御される。すなわち、QA法やSQA法では、外部パラメータとして、横磁場項に含まれる係数Γ(t)が用いられる。したがって、第1の探索方法としてQA法やSQA法を用いる場合、第2の探索方法では、係数Γ(t)の値を比較的小さい値から時間経過とともに漸増させることで、横磁場の影響が徐々に強くなるように制御して、探索部20に探索を実行させることが考えられる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムのハードウェア例を示す図である。
情報処理システム2は、情報処理装置100及び最適化装置200を有する。
情報処理装置100は、CPU101、RAM102、HDD(Hard Disk Drive)103、IOインタフェース104、画像信号処理部105、入力信号処理部106、媒体リーダ107及びNIC108を有する。CPU101は、第1の実施の形態の処理部12の一例である。IOインタフェース104は、第1の実施の形態の通信部11の一例である。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、情報処理装置100は複数のプロセッサを有してもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。なお、情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
IOインタフェース104は、最適化装置200と接続され、CPU101からの命令に従って、最適化装置200に対するデータの入出力を行う。例えば、IOインタフェース104は、CPU101の命令に応じて、RAM102のデータを最適化装置200のレジスタまたはメモリに書き込んだり、最適化装置200からデータを読み出して、RAM102に書き込んだりする。IOインタフェース104としては、例えば、PCI−e(Peripheral Component Interconnect - Express)などが用いられる。
画像信号処理部105は、CPU101からの命令に従って、情報処理装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部106は、情報処理装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ107は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ107は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
NIC108は、ネットワーク40に接続され、ネットワーク40を介して他のコンピュータと通信を行うインタフェースである。NIC108は、例えば、ネットワーク40に含まれるスイッチやルータなどの通信装置とケーブルで接続される。
最適化装置200は、組合せ最適化問題を定式化した目的関数に基づいて、SA法やレプリカ交換法による基底状態探索をハードウェアにより行うアクセラレータである。最適化装置200は、例えば、FPGAなどの集積回路により実現される。最適化装置200は、ボルツマンマシン、イジングマシンまたはイジング最適化装置などと呼ばれることもある。第2の実施の形態では、目的関数をエネルギー関数と称し、目的関数の値をエネルギー値と称することがある。
最適化装置200は、探索部210を有する。探索部210は、SA法やレプリカ交換法などを用いて基底状態の探索を行う。
探索部210には、CPU101によって、探索に用いられる温度値が設定される。例えば、探索部210は、CPU101により設定された温度スケジュールに従って、SA法による基底状態の探索を行える。また、探索部210は、SA法に代えて、複数の温度値を用いてレプリカ交換法による基底状態の探索を行ってもよい。更に、探索部210は、後述されるように、CPU101により設定された固定温度での探索を行うこともできる。
なお、CPU101またはネットワーク40に接続された他の情報処理装置のCPUが所定のソフトウェアを実行することで、SA法やレプリカ交換法などを実行する探索部210の機能を実現してもよい。また、情報処理装置100は、コンピュータでもよい。
図3は、情報処理装置の機能例を示す図である。
情報処理装置100は、記憶部120、制御部130及びステート取得部140を有する。記憶部120には、RAM102やHDD103の記憶領域を用いることができる。制御部130及びステート取得部140は、RAM102に記憶されたプログラムがCPU101により実行されることで実現される。
記憶部120は、近傍ステートテーブルを記憶する。近傍ステートテーブルは、あるステートを始点として再探索された、当該始点の近傍のステートである。近傍とは、例えば始点となったステートに対するハミング距離が一定値未満であることを意味する。再探索とは、SA法やレプリカ交換法で探索された局所解を基にして、更に探索を行う段階を意味する。
また、記憶部120は、探索部210の探索で得られたステートをエネルギー値とともに保持する。更に、記憶部120は、得られたステートのうち、エネルギー値が最小のステートをベスト解として保持する。
制御部130は、組合せ最適化問題の問題データを探索部210に設定する。また、制御部130は、SA法やレプリカ交換法による探索の初期ステートや温度スケジュール、再探索の始点ステートや温度値、再探索におけるステートのサンプリングレートなどを探索部210に設定する。ここで、温度値は、第1の実施の形態の外部パラメータの値の一例である。
制御部130は、探索部210に対して、まずはSA法またはレプリカ交換法による解の探索を実行させる。制御部130は、SA法やレプリカ交換法により、複数の局所解が取得されると、複数の局所解を用いた再探索を探索部210に実行させる。再探索では、制御部130は、温度値が低い方から高い方へ徐々に上がるように探索部210を制御する。
再探索は、強化フェーズ(Intensification phase)及び多様化フェーズ(Diversification phase)と呼ばれる2つの処理段階を含む。強化フェーズでは、始点ステートから近傍ステートをサンプリングする処理が行われる。多様化フェーズでは、サンプリングした近傍ステートを基に、新たな始点ステートを生成する処理が行われる。強化フェーズ及び多様化フェーズについては次の文献2を参考にできる。
文献2:M.Morita, H.Ochiai, K.Tamura and K.Yasuda,“Multi-point Search Combinatorial Optimization Method Based on Neighborhood Search Using Evaluation of Big Valley Structure,” 2015 IEEE International Conference on Systems, Man, and Cybernetics, Kowloon, 2015, p.2835-2840.
ステート取得部140は、探索部210により得られたステート及び当該ステートに対応するエネルギー値を取得し、制御部130に供給する。ステート取得部140は、取得したステートとエネルギー値とを記憶部120に格納してもよい。ステート取得部140は、得られたステート及びエネルギー値に基づいて、記憶部120に保存されているベスト解を更新する。
ここで、探索部210は、サブ探索部211,212,213,…を有する。サブ探索部211,212,213,…それぞれは、前述の式(1)で示されるエネルギー関数に基づいて、同一の組合せ最適化問題についてSA法やレプリカ交換法などによる基底状態の探索を行う。サブ探索部211,212,213,…それぞれは、レプリカやレプリカ回路などと呼ばれてもよい。また、サブ探索部211,212,213,…は、複数の装置に分散して配置されてもよい。例えば、サブ探索部211,212,213,…それぞれが個別のイジングマシンにより実現されてもよい。サブ探索部211,212,213,…それぞれは、自身の探索により得られたステートやエネルギー値などを保持するメモリまたはレジスタを有する。
ここで、式(1)における状態変数xの値が変化して1−xとなると、状態変数xの増加分は、δx=(1−x)−x=1−2xと表せる。したがって、エネルギー関数E(x)に対して、状態変数xの変化に伴うエネルギー値の変化量ΔEは、式(2)で表される。
Figure 2021192139
は局所場(ローカルフィールド)と呼ばれ、式(3)で表される。
Figure 2021192139
状態変数xが変化したときの局所場hの変化分δh (j)は、式(4)で表される。
Figure 2021192139
サブ探索部211,212,213,…それぞれは、自身が備えるメモリやレジスタに局所場hを保持し、状態変数xの値が変化したときに変化分δh (j)をhに加算することで、ビット反転後の状態に対応するhを得る。
ここで、エネルギー値を最小化する基底状態の探索に、例えば最急降下法を用いることが考えられる。しかし、最急降下法では、一旦、局所解に陥ると脱出できなくなる。
そこで、サブ探索部211,212,213,…では、基底状態の探索において、エネルギー値の変化量がΔEとなる状態遷移(状態変数xの値の変化)を許容するか否かを決定するためにメトロポリス法やギブス法が用いられる。すなわち、サブ探索部211,212,213,…は、ある状態から当該状態よりもエネルギー値の低い他の状態への遷移を探索する近傍探索において、エネルギー値が下がる状態だけでなく、エネルギー値が上がる状態への遷移を確率的に許容する。例えば、エネルギー値の変化量ΔEの状態変数の値の変化を受け入れる確率A(ΔE)は、式(5)で表される。
Figure 2021192139
逆温度βは温度値T(T>0)の逆数(β=1/T)である。min演算子は、引数のうちの最小値を取ることを示す。したがって、例えば、メトロポリス法を用いる場合、一様乱数u(0<u≦1)に対して、エネルギー値の変化量ΔEが式(6)を満たす場合に、該当の状態変数の値の変化が許容される。
Figure 2021192139
制御部130は、サブ探索部211,212,213,…を並列に用いて、SA法やレプリカ交換法による探索を行わせることができる。
ただし、サブ探索部211,212,213,…によりレプリカ交換法を用いて局所解を探索させた場合、再探索ではサブ探索部間でのレプリカ交換、すなわち、温度値やステートの交換は行われず、サブ探索部ごとに独立して探索が行われる。
図4は、近傍ステートテーブルの例を示す図である。
近傍ステートテーブル121は、記憶部120に記憶される。近傍ステートテーブル121は、始点と当該始点からの探索により得られたステート群との対応関係を示す。近傍ステートテーブル121は、始点及び近傍ステートの項目を含む。
始点の項目には、始点のステートが登録される。近傍ステートの項目には、再探索における強化フェーズで、当該始点からの探索によりサンプリングされた近傍ステートが登録される。
例えば、近傍ステートテーブル121には、始点「start1」、近傍ステート「start1_state1」、「start1_state2」、…のレコードが登録される。当該レコードは、「start1」で示される始点のステートに対し、近傍ステートとしてステート群{「start1_state1」、「start1_state2」、…}がサンプリングされたことを示す。
近傍ステートテーブル121には、他の始点及び当該他の始点に対応する近傍ステートを示すレコードも登録される。
図5は、ステートのマッピングの第1の例を示す図である。
近傍ステートテーブル121に記録された各ステートは、前述のMDSの方法を用いて所定の座標系における座標にマッピングされる。マッピング先の座標系の次元数は、ステートの次元数と異なってもよい。例えば、マッピング先の座標系の次元数がステートの次元数よりも小さい場合、ステートの次元が、マッピング先の次元に圧縮されることになる。マッピング先の座標系の次元数は2以上とすることができる。
座標系50は、MDSによるマッピング先の2次元の座標系の例である。座標系50は、例えば、直交するx軸及びy軸を有する。座標系50における2つの(x,y)座標の間の距離(MDS Distance)には所定の尺度で評価された、当該2つの座標に対応する2つのステートの類似度が反映される。類似度の評価の尺度には、例えば、2つのステートの間のハミング距離や、2つのステートで表される、組合せ最適化問題における2つのパラメータ群の間の距離を用いることができる。ただし、ステート間の類似度の評価には、他の尺度が用いられてもよい。座標系50における各ステートに対応する座標の情報は、第1の実施の形態のマップ情報30の一例である。
このように、各ステートをMDSにより座標系50にマッピングすることで、各ステート間がどの程度離れているか、あるステートから他のステートにどの程度到達し難いかを、座標間の距離により簡便に評価可能になる。なお、座標系50に更にz軸を加え、当該z軸をエネルギー値として表してもよい。
座標系50には、座標を表す印が示されている。プラス(+)印(例えば、座標A1上の印)は、再探索における前の始点ステートに対応する座標を示す。丸(〇)印(例えば、座標B1上の印)は、再探索により得られた近傍ステートに対応する座標を示す。クロス(X)印(座標C1〜C4上の印)は、再探索における次の始点ステートに対応する座標を示す。
座標系50には、更に、ポリゴン51,52,53,54が示されている。ポリゴン51,52,53,54それぞれは、前の始点ステートと当該始点ステートに対して再探索により探索された近傍ステートとを囲う、3以上の頂点をもつ図形である。ポリゴン51,52,53,54それぞれは、最小バウンディングポリゴンや最小バウンディングレクタングル(矩形)でもよい。最小バウンディングレクタングルについては、URL「https://en.wikipedia.org/wiki/Minimum_boundig_rectangle」(2020年5月21日検索)を参考にできる。「WIKIPEDIA」は登録商標である。
例えば、ポリゴン51,52のように複数の図形の一部分が重なることもある。
ポリゴン51,52,53,54は、全探索空間のうちの探索済みの部分空間に対応する領域であると推定される。このため、既に得られている解以外に最適解があるとすれば、全探索空間のうち、当該領域の外に対応する未探索の部分空間に存在する可能性が高いと推定される。そこで、制御部130は、ポリゴン51,52,53,54それぞれに属するステートに基づいて、ポリゴン51,52,53,54に属さない次の始点ステートを求める。
例えば、制御部130は、ポリゴン51,52に対して、座標C1に対応する次の始点ステートを求める。制御部130は、ポリゴン52,54に対して、座標C2に対応する次の始点ステートを求める。制御部130は、ポリゴン53,54に対して、座標C3に対応する次の始点ステートを求める。制御部130は、ポリゴン54及び図示されていない他のポリゴンに対して、座標C4に対応する次の始点ステートを求める。
図6は、ステートのマッピングの第2の例を示す図である。
座標系50aでは、座標系50に対して、ポリゴン55,56,57,58が追加されている。ポリゴン55,56,57,58は、それぞれ座標C1,C2,C3,C4に対応する次の始点ステートから再探索を行ってサンプリングされたステート群を囲うポリゴンである。座標系50aにおける星形印は、最適解に対応する座標D1を示す。
なお、制御部130は、座標系50,50aや座標系50,50aにz軸のエネルギー値を加えた図5,6のような画像をディスプレイ111に表示したり、ネットワーク40を介して他の装置に表示させたりしてもよい。これにより、ユーザによる探索状況のモニタリングを可能にすることもできる。
図7は、始点候補ステートの計算例を示す図である。
図7では、ポリゴン51に属する座標群に対応するステート群、及び、ポリゴン52に属する座標群に対応するステート群に対して、始点候補ステートを計算する例を示す。
まず、制御部130は、ポリゴン51に属する座標群に対応する各ステートにおける同じ位置のビット同士を比較して、ビットパターン61を生成する。ビットパターン61では、各位置について、当該位置のビットが常に1である場合、当該位置が同等ビット(1)に分類され、当該位置のビットが常に0である場合、当該位置が同等ビット(0)に分類される。また、当該位置のビットが1であることもあるし、0であることもある場合、差異ビット(図中の「don’t care」)に分類される。
例えば、ビットパターン61は、ポリゴン51に対応する各ステートについて、0〜9番目の位置(bit0〜bit9)の各ビットを次のように分類することを示す。0,2,4,6番目のビットは同等ビット(1)である。1,3,5番目のビットは同等ビット(0)である。7,8,9番目のビットは、差異ビットである。
同様に、制御部130は、ポリゴン52に対して、ビットパターン62を生成する。例えば、ビットパターン62は、ポリゴン52に対応する各ステートについて、0〜9番目の位置(bit0〜bit9)の各ビットを次のように分類することを示す。0,2,4,5番目のビットは同等ビット(1)である。1,6,7番目のビットは同等ビット(0)である。3,8,9番目のビットは差異ビットである。
そして、制御部130は、ビットパターン61,62に基づき、次のように始点候補ステートを生成することで、未探索区間の中央を狙い易くする。
制御部130は、ビットパターン61,62の同じ位置のビットが両方とも同等ビット(1)、または両方とも同等ビット(0)の場合、始点候補ステートの当該位置のビットの属性を「キープ(keep)」とする。ビットパターン61,62の例では、0,1,2,4番目のビットで、両方とも同等ビット(1)、または両方とも同等ビット(0)なので、属性はキープとなる。
また、制御部130は、ビットパターン61,62の同じ位置のビットについて、一方が同等ビット(1)であり、かつ、他方が同等ビット(0)の場合、始点候補ステートの当該位置のビットの属性を「優先リリンキング(relinking)対象」とする。図7では、優先リリンキング対象を、「優先」と略記している。ビットパターン61,62の例では、5,6番目のビットで、一方が同等ビット(1)かつ他方が同等ビット(0)なので、属性は優先リリンキング対象となる。
更に、制御部130は、ビットパターン61,62の同じ位置のビットについて、少なくとも一方が差異ビットの場合、始点候補ステートの当該位置のビットの属性を「非優先リリンキング対象」とする。図7では、非優先リリンキング対象を、「非優先」と略記している。ビットパターン61,62の例では、3,7,8,9番目のビットで、少なくとも一方が差異ビットなので、属性は非優先リリンキング対象となる。
制御部130は、始点候補ステートの各位置のビットの属性に応じて、当該位置のビットの値を決定する。具体的には、制御部130は、属性がキープの場合、始点候補ステートの該当位置のビットを、ビットパターン61,62の同じ位置のビットと同じ値にする。例えば、制御部130は、ビットパターン61,62に対して、始点候補ステートの0,2,4番目のビットを1とし、1番目のビットを0とする。
また、制御部130は、属性が優先リリンキング対象の場合、優先リリンキング対象の複数のビットで、1及び0がほぼ同じ数だけ含まれるように、始点候補ステートの該当位置のビットの値を決める。すなわち、優先リリンキング対象のビットのみに注目したとき、ビットパターン61と始点候補ステートとのハミング距離及びビットパターン62と始点候補ステートとのハミング距離は同等となる。例えば、ビットパターン61,62の例では、制御部130は、始点候補ステートの5番目のビットを1とするとき、6番目のビットを0とする。あるいは、制御部130は、始点候補ステートの5番目のビットを0とするとき、6番目のビットを1とする。
更に、制御部130は、属性が非優先リリンキング対象の場合、始点候補ステートの該当位置のビットを、1または0にランダム(random)に決定する。例えば、制御部130は、ビットパターン61,62に対して、始点候補ステートの3,7,8,9番目のビットの値を1または0にランダムに決定する。
制御部130は、生成された始点候補ステートを座標系50にプロットする。すなわち、制御部130は、当該始点候補ステートに対応する、座標系50における座標をMDSの方法により求める。そして、制御部130は、プロットした当該始点候補ステートに対応する座標が何れのポリゴンにも含まれない場合に、当該始点候補ステートを、次の始点ステートとして確定する。
このようにして次の始点ステートを生成することで、全探索空間のうちの未探索部分について、探索済部分から適度に離れた始点ステートが生成され易くなる。
次に、情報処理システム2の処理手順を説明する。
図8は、情報処理システムの全体制御例を示すフローチャートである。
(S10)制御部130は、サブ探索部211,212,213,…を並列に用いて、互いに異なる初期ステートからSA法やレプリカ交換法による、組合せ最適化問題に対する解の探索を実行させる。サブ探索部211,212,213,…は、それぞれ探索により得られたエネルギー値が最小の解、すなわち、局所解を情報処理装置100に出力する。ステート取得部140は、サブ探索部211,212,213,…により出力された複数の局所解を取得する。複数の局所解それぞれは、強化フェーズにおける最初の始点ステートとなる。
(S11)制御部130は、強化フェーズの処理を実行する。強化フェーズでは、始点ステートの近傍ステートがサンプリングされる。ステート取得部140は、当該近傍ステートを取得し、取得した近傍ステートを始点ステートに対応付けて近傍ステートテーブル121に記録する。強化フェーズの詳細は後述される。
(S12)制御部130は、複数の始点ステート及び複数の始点ステートそれぞれに対してサンプリングされた近傍ステート群に基づいてMDS計算を実行する。制御部130は、MDS計算を実行することで、複数の始点ステート及びサンプリングされた複数の近傍ステートを、ステート間の類似度を表す距離を維持して、例えば座標系50にマッピングする。
(S13)制御部130は、強化フェーズで得た近傍ステートを、始点ステートで区別する。すなわち、制御部130は、近傍ステートテーブル121に基づいて、座標系50における始点ステート及び当該始点ステートに対応する座標群を、始点ステートごとに特定する。
(S14)制御部130は、多様化フェーズの処理を実行する。多様化フェーズでは、次の強化フェーズにおける新たな始点ステートの生成が行われる。多様化フェーズの詳細は後述される。
(S15)制御部130は、所定の終了条件を充足したか否かを判定する。終了条件を充足した場合、制御部130は、ステップS16に処理を進める。終了条件を充足していない場合、制御部130は、ステップS11に処理を進める。当該終了条件は、例えば、ステップS11〜S14の手順が一定回数実行されたこと、あるいは、全体制御の開始から一定時間が経過したことなどである。
(S16)制御部130は、ベスト解を出力する。すなわち、制御部130は、全体制御の過程で取得されたステートのうち、最も良いステート、すなわち、エネルギー関数の値を最小にするステートを最終的な解として出力する。例えば、制御部130は、ディスプレイ111に解を表す画像を表示させてもよいし、ネットワーク40を介して、他のコンピュータに解の情報を送信してもよい。そして、全体制御の処理が終了する。
図9は、強化フェーズの例を示すフローチャートである。
強化フェーズは、ステップS11に相当する。
(S20)制御部130は、サブ探索部211,212,213,…それぞれに、互いに異なる始点ステートを設定する。
(S21)制御部130は、各サブ探索部による初期温度値での探索を並列に開始させる。ここで、初期温度値は、例えば、温度値として取り得る最小の温度値である。ただし、当該最小の温度値よりも大きい温度値を初期温度値としてもよい。
(S22)サブ探索部211,212,213,…それぞれは、現在の温度値を用いて、式(6)に基づく1ビット分のビット変化を、現在保持するステートに対して実行する。例えば、サブ探索部211は、各ビットの変化、すなわち各状態変数の値の変化を許容するか否かを式(6)に基づいて判定し、変化が許容されたビットを乱数を用いてランダムに1つ選択し、選択したビットについて1ビット分のビット変化を実行してもよい。サブ探索部212,213,…もサブ探索部211と同様にビット変化を実行する。
(S23)サブ探索部211,212,213,…は、制御部130により予め設定されたイタレーション数に達したか否かを判定する。設定されたイタレーション数に達した場合、サブ探索部211,212,213,…は、現ステートを情報処理装置100に出力して、ステップS24に処理を進める。設定されたイタレーション数に達していない場合、サブ探索部211,212,213,…は、ステップS22に処理を進める。ここで、イタレーション数は、現在の温度値でのステップS22の実行回数に相当する。
(S24)制御部130は、始点ステートと現ステートとの距離が一定値未満であるか否かを、始点ステートと当該始点ステートに対応する現ステートとの組ごとに判定する。始点ステートと現ステートとの距離が一定値未満の場合、該当の組についてステップS25に処理を進める。始点ステートと現ステートとの距離が一定値以上の場合、該当の組について、該当のサブ探索部から今回得られた現ステートを破棄して、該当のサブ探索部に対する強化フェーズの処理を終了する。強化フェーズが終了したサブ探索部は他のサブ探索部の強化フェーズが完了するまで待機する。ここで、始点ステートと現ステートの距離は、例えばハミング距離によって評価される。判定に用いられる一定値は、ユーザによって情報処理装置100に予め設定される。
(S25)制御部130は、該当のサブ探索部から今回得られた現ステートを始点ステートに対応付けて、近傍ステートテーブル121の近傍ステートの項目に記録する。
(S26)制御部130は、該当のサブ探索部の温度値をインクリメントする。すなわち、制御部130は、該当のサブ探索部の探索に用いられる温度値を増加させる。温度値の増加幅は、ユーザによって情報処理装置100に予め設定される。温度値の増加幅は、一定幅でもよいし、0.1,1,10,100,1000,…のような対数幅で徐々に増やしてもよい。そして、制御部130は、ステップS22に処理を進める。
このようにして、始点ステートに対する近傍ステートがサンプリングされる。
図10は、多様化フェーズの例を示すフローチャートである。
多様化フェーズは、ステップS14に相当する。
(S30)制御部130は、強化フェーズで得られた近傍ステート群を始点ステートごとに取得する。
(S31)制御部130は、始点ステート及び近傍ステート群のMDS座標を囲うポリゴンを始点ステートごとに計算する。当該ポリゴンは、最小バウンディングポリゴンあるいは最小バウンディングレクタングルと呼ばれるものでもよい。
(S32)制御部130は、ポリゴンのペアに対して始点候補ステートを計算する。始点候補ステートの計算の処理の詳細は後述される。
(S33)制御部130は、計算した始点候補ステートに対応するMDS座標が、ステップS31で求めた何れかのポリゴンの中にあるか否かを判定する。当該MDS座標が何れかのポリゴンの中にある場合、制御部130は、ステップS34に処理を進める。当該MDS座標が何れのポリゴンの中にもない場合、制御部130は、ステップS35に処理を進める。
(S34)制御部130は、該当の始点候補ステートを破棄する。そして、制御部130は、ステップS36に処理を進める。
(S35)制御部130は、該当の始点候補ステートを次の強化フェーズの始点ステートとして確定する。そして、制御部130は、ステップS36に処理を進める。
(S36)制御部130は、ポリゴンの全ペアに対してステップS32を処理済であるか否かを判定する。ポリゴンの全ペアを処理済の場合、制御部130は、多様化フェーズの処理を終了する。ポリゴンの全ペアを処理済でない場合、制御部130は、ステップS32に処理を進める。
図11は、始点候補ステートの計算例を示すフローチャートである。
始点候補ステートの計算は、ステップS32に相当する。
(S40)制御部130は、各ポリゴンの所属点のステート情報を取得する。ここで、ステート情報の取得対象となるポリゴンは、始点候補ステートの計算の用いる2つのポリゴンである。
(S41)制御部130は、ポリゴンごとに、当該ポリゴンに対応する各ステートについて同等ビットと、差異ビットとを抽出し、ポリゴンごとに、同等ビット及び差異ビットのビットパターンを生成する。同等ビット及び差異ビットの抽出及びビットパターンの生成には、図7で例示した方法を用いることができる。
(S42)制御部130は、ステップS41を未処理のポリゴンがあるか否かを判定する。未処理のポリゴンがある場合、制御部130は、ステップS41に処理を進める。未処理のポリゴンがない場合、制御部130は、ステップS43に処理を進める。ここで、ステップS41の処理は、各ポリゴンに対して1回実行されればよい。このため、始点候補ステートの計算対象となるポリゴンに対して、ビットパターンを生成済の場合、当該ポリゴンについては、ステップS41をスキップしてよい。
(S43)制御部130は、ペアのポリゴンの各ビットパターンにおける同位置のビットを順に抽出する。
(S44)制御部130は、両ビットが同等ビットかつ同じ値であるか否かを判定する。両ビットが同等ビットかつ同じ値である場合、制御部130は、ステップS45に処理を進める。両ビットが同等ビットかつ同じ値でない場合、制御部130は、ステップS46に処理を進める。
(S45)制御部130は、始点候補ステートの該当位置のビットの値の属性をキープとし、当該ビットの値を、各ビットパターンにおける同位置の両ビットと同じ値に決定する。そして、制御部130は、ステップS49に処理を進める。
(S46)制御部130は、両ビットが同等ビットかつ異なる値であるか否かを判定する。両ビットが同等ビットかつ異なる値である場合、制御部130は、ステップS47に処理を進める。それ以外の場合、制御部130は、ステップS48に処理を進める。
(S47)制御部130は、始点候補ステートの該当位置のビットの属性を優先リリンキング対象とする。そして、制御部130は、ステップS49に処理を進める。
(S48)制御部130は、始点候補ステートの該当位置のビットの属性を非優先リリンキング対象とする。そして、制御部130は、ステップS49に処理を進める。
(S49)制御部130は、全位置のビットを処理済であるか否かを判定する。全位置のビットを処理済の場合、制御部130は、ステップS50に処理を進める。全位置のビットを処理済でない場合、制御部130は、ステップS43に処理を進める。
(S50)制御部130は、始点候補ステートの各位置のビットの値を、当該ビットの属性に応じて決定する。なお、始点候補ステートのビットの中には、ステップS45により既に1または0の何れかに決定されているものもあり得る。図7で例示したように、制御部130は、優先リリンキング対象の複数のビットについて、1及び0が均等になるように設定する。ただし、優先リリンキング対象のビットが1つしかない場合には、1または0をランダムに設定してよい。また、制御部130は、非優先リリンキング対象のビットについては、1または0をランダムに設定する。そして、制御部130は、始点候補ステートの計算の処理を終了する。
このようにして、始点候補ステートを効率的に生成することができる。
以上で説明したように、第2の実施の形態の情報処理装置100によれば、最適解に到達する可能性を高めることができる。また、全探索空間のうちの未探索の部分に絞って効率的に解の探索を行うことができ、短時間で最適解を得られる可能性を高められる。こうして、組合せ最適化問題に対する求解性能を向上できる。
例えば、上記の多様化フェーズの手順によれば、次の始点ステートとして、「未探索の部分に対応するポリゴンの中央」を狙い易くなる。「未探索の部分に対応するポリゴンの中央」のステートとは便宜的な表現であり、当該ステートは全探索空間の探索済の各部分から、ハミング距離などの所定の尺度で評価される距離が適度に離れているステートを意味する。このため、探索済のステートが重複して探索される可能性を減らせ、解の探索を一層効率化できる。また、短時間で最適解を得られる可能性を一層高められる。
ここで、SA法やレプリカ交換法などのメタヒューリスティック手法を用いる探索部210のような最適化ソルバーでは、組合せ最適化問題を解く際に、解の探索空間が近傍ベースで探索される。しかし、解こうとする問題の種類によっては最適解に到達し難くなる。そのような問題の例として、二次割り当て問題やナップザック問題が挙げられる。
最適解に到達し難くなる原因としては、例えば、SA法やレプリカ交換法において比較的高い温度値では変化し易いが比較的低い温度値では変化し難い特定のビット、あるいは特定のビットの組で表される特定の変数があることが挙げられる。一方、比較的高い温度値では、全てのビットが変化し易いため、当該特定のビットまたは特定のビットの組が最適解の値に揃い難くなる。このため、局所解に陥り易くなり、最適解に到達するのが難しくなることがある。
情報処理装置100は、探索部210によりSA法やレプリカ交換法などの第1の探索方法だけでは探索され難い区間に的を絞って探索させることで、早く最適解に到達する可能性を高められる。
図12は、局所解近傍のステートのエネルギー値の例を示す図である。
グラフ70は、横軸をステートとし、縦軸をエネルギー値Eとして、ステートに対するエネルギー値を表したものである。ただし、グラフ70では、探索空間における各ステートを便宜的に一次元で表している。
上記のように、SA法やレプリカ交換法では、局所解L1,L2に陥り易いことがある。また、局所解L1の近傍の比較的高いエネルギー障壁のエネルギー値E1と、局所解L2の近傍の比較的高いエネルギー障壁のエネルギー値E2との差が極めて小さくなることがある。この場合、局所解L1または局所解L2に到達した後、到達した局所解L1または局所解L2を脱出して最適解へ到達するためには、極めて精密に温度値が設定される必要があり、最適解へ到達することが難しい。
一方、情報処理装置100によれば、例えば、強化フェーズで局所解L1,L2それぞれの近傍ステート群を特定し、多様化フェーズで特定した近傍ステート群から適度に離れた次の始点ステートを求めて再探索を行える。このため、局所解L1,L2の近傍を避けて効率的に探索を行うことができ、より早く最適解へ到達できるようになる。
サブ探索部211,212,213,…の各々が用いる第1の探索方法としては、上記で例示したSA法やレプリカ交換法の他にも、QA法やSQA法が考えられる。
局所解を求めるための第1の探索方法として、QA法やSQA法を用いる場合、前述のように、外部パラメータとして、横磁場の影響の強さを表す係数Γ(t)が用いられる。その場合、強化フェーズに対応する第2の探索方法では、組合せ最適化問題を定式化したハミルトニアンに含まれる係数Γ(t)の値を比較的小さい値(例えば、0)から時間経過とともに漸増させることで、近傍ステートの探索を行うことが考えられる。
以上をまとめると、第2の実施の形態の情報処理装置100は、例えば、次の機能を有する。
制御部130は、探索部210に第1ステート及び第2ステートを設定する。制御部130は、第1ステート及び第2ステートをそれぞれ始点とする探索であって、目的関数の値の増減に影響する所定の外部パラメータの値を、目的関数の値の増加を促す方向に変化させる探索を探索部210に実行させる。ステート取得部140は、当該探索の過程で第1ステートに基づいて得られた第1ステート群及び第2ステートに基づいて得られた第2ステート群を取得する。制御部130は、第1ステート群及び第2ステート群に基づいて、未探索のステートのうち第3ステートを決定する。制御部130は、第3ステートを始点として探索部210に探索を実行させる。
これにより、最適解に到達する可能性を高めることができる。また、全探索空間のうちの未探索の部分に絞って効率的に解の探索を行うことができ、短時間で最適解を得られる可能性を高められる。こうして、組合せ最適化問題に対する求解性能を向上できる。
例えば、再探索を最初に行う前に求める局所解をSA法やレプリカ交換法で求める場合、外部パラメータは、温度値を示すパラメータである。あるいは、当該局所解をQA法やSQA法で求める場合、外部パラメータは、目的関数における横磁場の影響の強さを示すパラメータである。
強化フェーズでは、当該温度値または横磁場の影響の強さを示す外部パラメータの値を時間経過とともに徐々に増加させる、すなわち漸増させることで、始点のステートに対する近傍のステートを適切にサンプリングできる。
また、制御部130は、第1ステート及び第2ステートをそれぞれ始点とする探索では、探索部210によりステートの変化が所定回数行われるたびに、または、所定期間が経過するたびに、外部パラメータの値を増加させる。
これにより、始点のステートに対する近傍のステートを適切にサンプリングできる。
また、制御部130は、第1ステートを始点とする探索では、探索部210で得られたステートと第1ステートとの間の距離が一定値を超えると、第1ステートに基づく探索を終了させる。制御部130は、第2ステートを始点とする探索では、探索部210で得られたステートと第2ステートとの間の距離が一定値を超えると、第2ステートに基づく探索を終了させる。距離は、前述のようにハミング距離でもよいし、他の所定の尺度で評価された距離でもよい。
これにより、始点のステートに対する近傍のステートを適切にサンプリングできる。
また、例えば、第1ステート及び第2ステートはそれぞれ、外部パラメータの値を、目的関数の値の増加を抑制する方向に変化させて行われる探索を探索部210が実行することで得られた局所解である。目的関数の値の増加を抑制する方向に変化させることは、例えば、外部パラメータの値を、時間経過とともに徐々に小さくすることである。
これにより、例えば、初回の再探索で、局所解の近傍のステートを特定でき、当該局所解の近傍の探索空間を、次の始点のステートの抽出候補から除外できる。このため、当該局所解の近傍が再探索される可能性を減らせ、効率的に解を探索できる。
多様化フェーズでは、制御部130は、強化フェーズでサンプリングされた複数のステート群に含まれるステート間の関係を示すマップ情報を生成する。マップ情報は、例えば、座標系50における各ステートに対応する座標の情報を含む。制御部130は、第1ステートと第1ステート群との対応関係、第2ステートと第2ステート群との対応関係及びマップ情報に基づいて、第3ステートを決定する。
これにより、全探索空間のうちの未探索の部分から新たな始点のステートを抽出する処理を簡便に行える。
また、制御部130は、第1ステートと第1ステート群との対応関係及び第2ステートと第2ステート群との対応関係のそれぞれに基づいて、マップ情報における複数の座標それぞれを第1ステート及び第2ステートに対応付ける。制御部130は、第1ステート及び第2ステートのそれぞれに対応する座標群を包含する第1図形及び第2図形を特定し、第1図形及び第2図形の外部の座標に対応するステートを、第3ステートとして決定する。
これにより、全探索空間のうちの未探索の部分から新たな始点のステートを適切に抽出できる。
制御部130は、第1ステート群に属する各ステートを、対応する状態変数ごとに比較することで、第1ステート群に属する各ステートの状態変数の値の第1のパターンを特定する。制御部130は、第2ステート群に属する各ステートを、対応する状態変数ごとに比較することで、第2ステート群に属する各ステートの状態変数の値の第2のパターンを特定する。前述のビットパターン61,62は、第1及び第2のパターンの一例である。制御部130は、第1のパターン及び第2のパターンに基づいて、第3ステートの候補である候補ステートを生成し、候補ステートに対応する、マップ情報における座標が、第1図形及び第2図形の外部の座標である場合、候補ステートを第3ステートとして決定する。
これにより、全探索空間のうちの未探索の部分から新たな始点のステートを適切に抽出できる。
第1のパターン及び第2のパターンそれぞれは、第1の値または第2の値のまま変化がない状態変数、及び、値の変化がある状態変数を示す。
制御部130は、第1のパターン及び第2のパターンの両方において同一の値で、かつ、当該同一の値のまま変化がない状態変数に対応する、候補ステートの状態変数を当該同一の値に設定する。また、制御部130は、第1のパターン及び第2のパターンの一方で第1の値のまま変化がなく、他方で第2の値のまま変化がない1以上の状態変数に対応する、候補ステートの1以上の状態変数に対して、当該1以上の状態変数の中で第1の値の数及び第2の値の数の差が小さくなるように、第1の値及び第2の値を設定する。更に、制御部130は、第1のパターン及び第2のパターンの両方において値の変化がある状態変数に対応する、候補ステートの状態変数に対して、第1の値または第2の値をランダムに設定する。
これにより、全探索空間のうちの探索済の部分から適度に離れた候補ステートを生成できる。このため、当該候補ステートを始点とすることで全探索空間のうちの探索済の部分が重複して探索される可能性を減らせ、探索を効率的に行えるようになる。
例えば、マップ情報の座標を表す次元の数は、複数の状態変数の数よりも小さい。
これにより、マップ情報を基に、全探索空間のうちの未探索の部分から次の始点のステートを決定する処理を比較的少ない演算量により容易に行える。例えば、複数の状態変数の数は、1024や8192などであることがある。マップ情報の次元の数は2以上とすることができる。
また、探索部210は、それぞれが解の探索を行う複数のサブ探索部(例えば、サブ探索部211,212,213,…)を含む。探索部210は、複数のサブ探索部により、第1ステート及び第2ステートをそれぞれ始点とする探索を並列に実行する。
これにより、1つのサブ探索部を用いて直列に解の探索を行うよりも、探索を高速化できる。ただし、探索部210は、1つのサブ探索部を用いて直列に解の探索を行ってもよい。
更に、制御部130は、探索部210により得られたステートのうち、目的関数の値を最小にするステートを、最終的な解として出力する。
これにより、探索の過程で得られたベスト解を、最終的な解として適切に取得できる。
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体113に記録できる。
例えば、プログラムを記録した記録媒体113を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体113に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1 情報処理システム
10 情報処理装置
11 通信部
12 処理部
20 探索部
30 マップ情報
R1,R2,R3 図形
a0〜a5,b0〜b4,c0〜c3,d0,e0,f0 座標

Claims (15)

  1. 目的関数に含まれる複数の状態変数の値により表されるステートを変化させることで前記目的関数の値を最小にする解の探索を行う探索部と通信する通信部と、
    前記通信部を介して前記探索部に第1ステート及び第2ステートを設定し、前記第1ステート及び前記第2ステートをそれぞれ始点とする前記探索であって、前記目的関数の値の増減に影響する所定の外部パラメータの値を、前記目的関数の値の増加を促す方向に変化させる前記探索を前記探索部に実行させ、当該探索の過程で前記第1ステートに基づいて得られた第1ステート群及び前記第2ステートに基づいて得られた第2ステート群を取得し、前記第1ステート群及び前記第2ステート群に基づいて、未探索のステートのうち第3ステートを決定し、前記第3ステートを始点として前記探索部に前記探索を実行させる処理部と、
    を有する情報処理装置。
  2. 前記外部パラメータは、温度値を示すパラメータまたは前記目的関数における横磁場の影響の強さを示すパラメータである、
    請求項1記載の情報処理装置。
  3. 前記処理部は、前記第1ステート及び前記第2ステートをそれぞれ始点とする前記探索では、前記探索部により前記ステートの変化が所定回数行われるたびに、または、所定期間が経過するたびに、前記外部パラメータの値を変化させる、
    請求項1記載の情報処理装置。
  4. 前記処理部は、前記第1ステートを始点とする前記探索では、前記探索部で得られた前記ステートと前記第1ステートとの間の距離が一定値を超えると、前記第1ステートに基づく前記探索を終了させ、前記第2ステートを始点とする前記探索では、前記探索部で得られた前記ステートと前記第2ステートとの間の距離が前記一定値を超えると、前記第2ステートに基づく前記探索を終了させる、
    請求項1記載の情報処理装置。
  5. 前記第1ステート及び前記第2ステートはそれぞれ、前記外部パラメータの値を、前記目的関数の値の増加を抑制する方向に変化させて行われる前記探索を前記探索部が実行することで得られた局所解である、
    請求項1記載の情報処理装置。
  6. 前記処理部は、前記第1ステート群及び前記第2ステート群に含まれるステート間の関係を示すマップ情報を生成し、前記第1ステートと前記第1ステート群との対応関係、前記第2ステートと前記第2ステート群との対応関係及び前記マップ情報に基づいて、前記第3ステートを決定する、
    請求項1記載の情報処理装置。
  7. 前記マップ情報は、前記第1ステート群及び前記第2ステート群に含まれる複数の前記ステートに対応する複数の座標を含み、
    前記処理部は、前記第1ステートと前記第1ステート群との前記対応関係及び前記第2ステートと前記第2ステート群との前記対応関係のそれぞれに基づいて前記複数の座標それぞれを前記第1ステート及び前記第2ステートに対応付け、前記第1ステート及び前記第2ステートのそれぞれに対応する座標群を包含する第1図形及び第2図形を特定し、前記第1図形及び前記第2図形の外部の座標に対応する前記ステートを、前記第3ステートとして決定する、
    請求項6記載の情報処理装置。
  8. 前記処理部は、
    前記第1ステート群に属する各ステートを、対応する状態変数ごとに比較することで、前記第1ステート群に属する各ステートの状態変数の値の第1のパターンを特定し、
    前記第2ステート群に属する各ステートを、対応する状態変数ごとに比較することで、前記第2ステート群に属する各ステートの状態変数の値の第2のパターンを特定し、
    前記第1のパターン及び前記第2のパターンに基づいて、前記第3ステートの候補である候補ステートを生成し、前記候補ステートに対応する、前記マップ情報における座標が、前記第1図形及び前記第2図形の外部の座標である場合、前記候補ステートを前記第3ステートとして決定する、
    請求項7記載の情報処理装置。
  9. 前記第1のパターン及び前記第2のパターンそれぞれは、第1の値または第2の値のまま変化がない状態変数、及び、値の変化がある状態変数を示し、
    前記処理部は、
    前記第1のパターン及び前記第2のパターンの両方において同一の値で、かつ、当該同一の値のまま変化がない状態変数に対応する、前記候補ステートの状態変数を当該同一の値に設定し、
    前記第1のパターン及び前記第2のパターンの一方で前記第1の値のまま変化がなく、他方で前記第2の値のまま変化がない1以上の状態変数に対応する、前記候補ステートの1以上の状態変数に対して、当該1以上の状態変数の中で前記第1の値の数及び前記第2の値の数の差が小さくなるように、前記第1の値及び前記第2の値を設定し、
    前記第1のパターン及び前記第2のパターンの両方において値の変化がある状態変数に対応する、前記候補ステートの状態変数に対して、前記第1の値または前記第2の値をランダムに設定する、
    請求項8記載の情報処理装置。
  10. 前記マップ情報の座標を表す次元の数は、前記複数の状態変数の数よりも小さい、
    請求項7記載の情報処理装置。
  11. 前記探索部は、それぞれが前記探索を行う複数のサブ探索部を含み、前記複数のサブ探索部により、前記第1ステート及び前記第2ステートをそれぞれ始点とする前記探索を並列に実行する、
    請求項1記載の情報処理装置。
  12. 前記処理部は、前記探索部により得られた前記ステートのうち、前記目的関数の値を最小にする前記ステートを、前記解として出力する、
    請求項1記載の情報処理装置。
  13. コンピュータが、
    目的関数に含まれる複数の状態変数の値により表されるステートを変化させることで前記目的関数の値を最小にする解の探索を行う探索部に第1ステート及び第2ステートを設定し、
    前記第1ステート及び前記第2ステートをそれぞれ始点とする前記探索であって、前記目的関数の値の増減に影響する所定の外部パラメータの値を、前記目的関数の値の増加を促す方向に変化させる前記探索を前記探索部に実行させ、
    当該探索の過程で前記第1ステートに基づいて得られた第1ステート群及び前記第2ステートに基づいて得られた第2ステート群を取得し、前記第1ステート群及び前記第2ステート群に基づいて、未探索のステートのうち第3ステートを決定し、
    前記第3ステートを始点として前記探索部に前記探索を実行させる、
    情報処理方法。
  14. コンピュータに、
    目的関数に含まれる複数の状態変数の値により表されるステートを変化させることで前記目的関数の値を最小にする解の探索を行う探索部に第1ステート及び第2ステートを設定し、
    前記第1ステート及び前記第2ステートをそれぞれ始点とする前記探索であって、前記目的関数の値の増減に影響する所定の外部パラメータの値を、前記目的関数の値の増加を促す方向に変化させる前記探索を前記探索部に実行させ、
    当該探索の過程で前記第1ステートに基づいて得られた第1ステート群及び前記第2ステートに基づいて得られた第2ステート群を取得し、前記第1ステート群及び前記第2ステート群に基づいて、未探索のステートのうち第3ステートを決定し、
    前記第3ステートを始点として前記探索部に前記探索を実行させる、
    処理を実行させるプログラム。
  15. 目的関数に含まれる複数の状態変数の値により表されるステートを変化させることで前記目的関数の値を最小にする解の探索を行う探索部と、
    前記探索部に第1ステート及び第2ステートを設定し、前記第1ステート及び前記第2ステートをそれぞれ始点とする前記探索であって、前記目的関数の値の増減に影響する所定の外部パラメータの値を、前記目的関数の値の増加を促す方向に変化させる前記探索を前記探索部に実行させ、当該探索の過程で前記第1ステートに基づいて得られた第1ステート群及び前記第2ステートに基づいて得られた第2ステート群を取得し、前記第1ステート群及び前記第2ステート群に基づいて、未探索のステートのうち第3ステートを決定し、前記第3ステートを始点として前記探索部に前記探索を実行させる処理部と、
    を有する情報処理システム。
JP2020098271A 2020-06-05 2020-06-05 情報処理装置、情報処理方法、プログラム及び情報処理システム Active JP7498393B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020098271A JP7498393B2 (ja) 2020-06-05 情報処理装置、情報処理方法、プログラム及び情報処理システム
EP21159207.6A EP3920054A1 (en) 2020-06-05 2021-02-25 Information processing apparatus, information processing method, and program
US17/189,312 US20210382960A1 (en) 2020-06-05 2021-03-02 Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
CN202110233714.7A CN113761783A (zh) 2020-06-05 2021-03-03 信息处理设备、信息处理方法以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020098271A JP7498393B2 (ja) 2020-06-05 情報処理装置、情報処理方法、プログラム及び情報処理システム

Publications (2)

Publication Number Publication Date
JP2021192139A true JP2021192139A (ja) 2021-12-16
JP7498393B2 JP7498393B2 (ja) 2024-06-12

Family

ID=

Also Published As

Publication number Publication date
US20210382960A1 (en) 2021-12-09
EP3920054A1 (en) 2021-12-08
CN113761783A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
Marcus et al. Bao: Making learned query optimization practical
Janga Reddy et al. An efficient multi-objective optimization algorithm based on swarm intelligence for engineering design
CN110168578A (zh) 具有任务特定路径的多任务神经网络
Marcus et al. Bao: Learning to steer query optimizers
US20210256179A1 (en) Information processing method and information processing system
US20200042570A1 (en) Optimization apparatus and method for controlling thereof
Gao et al. Runtime performance prediction for deep learning models with graph neural network
US11521077B1 (en) Automatic recommendation of predictor variable values for improving predictive outcomes
JP2021033657A (ja) 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム
CA3188066A1 (en) Methods and systems for hyperparameter tuning and benchmarking
Zhang et al. Buffer pool aware query scheduling via deep reinforcement learning
Costa et al. Efficient parameter estimation for information retrieval using black-box optimization
US11580124B2 (en) Method and apparatus for mining competition relationship POIs
Kaedi et al. Biasing Bayesian optimization algorithm using case based reasoning
CN111325254A (zh) 构建条件关系网络、进行条件业务处理的方法及装置
CN108761310B (zh) 一种量子芯片的测试方法
EP3920054A1 (en) Information processing apparatus, information processing method, and program
US11537916B2 (en) Optimization apparatus, control method for optimization apparatus, and recording medium
JP7498393B2 (ja) 情報処理装置、情報処理方法、プログラム及び情報処理システム
Soltaninia et al. Comparison of Quantum Simulators for Variational Quantum Search: A Benchmark Study
US11960868B2 (en) Branch objects for dependent optimization problems
JP2021144443A (ja) 情報処理システム、情報処理方法およびプログラム
JP6112233B2 (ja) エネルギー解析装置、エネルギー解析プログラム及び記録媒体
Jekabsons et al. Polynomial regression modelling using adaptive construction of basis functions
Lin et al. Exploration scheduling for replay events in GUI testing on android apps

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240307

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240430