JP2022107518A - Information processing system, information processing method, and information processing apparatus - Google Patents

Information processing system, information processing method, and information processing apparatus Download PDF

Info

Publication number
JP2022107518A
JP2022107518A JP2021213496A JP2021213496A JP2022107518A JP 2022107518 A JP2022107518 A JP 2022107518A JP 2021213496 A JP2021213496 A JP 2021213496A JP 2021213496 A JP2021213496 A JP 2021213496A JP 2022107518 A JP2022107518 A JP 2022107518A
Authority
JP
Japan
Prior art keywords
states
energy
processing
state
information processing
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
JP2021213496A
Other languages
Japanese (ja)
Inventor
佳希 松田
Yoshiki Matsuda
雄一 佐山
Yuichi Sayama
真暉 大野
Masaki Ono
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.)
FIXSTARS CORP
Original Assignee
FIXSTARS CORP
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 FIXSTARS CORP filed Critical FIXSTARS CORP
Publication of JP2022107518A publication Critical patent/JP2022107518A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

To obtain proper solutions at a high speed.SOLUTION: An information processing system includes a storage circuit, and one or more processing circuits for executing parallel operation. The processing circuit calculates energy in multiple neighborhood states with respect to the current state by first parallel operation, calculates an index with which each of the states is selected on the basis of the energy in the multiple neighborhood states, calculates selection probability with respect to the neighborhoods on the basis of the index so that at least one of the neighborhood states is selected, and selects the next state from the neighborhood states on the basis of the selection probability.SELECTED DRAWING: Figure 1

Description

特許法第30条第2項適用申請有り 1.ウェブサイトの掲載日 令和 2年10月21日 2.ウェブサイトのアドレス https://quantum.fixstars.com/product https://www.fixstars.com/ja/news/2143 3.公開者 株式会社フィックスターズThere is an application for application of Article 30, Paragraph 2 of the Patent Law. Website publication date October 21, 2nd year Reiwa 2. Website address https://quantum. fixstars. com / product https: // www. fixstars. com / ja / news / 2143 3. Publisher Fixstars Corporation

本開示は、情報処理システム、情報処理方法及び情報処理装置に関する。 The present disclosure relates to information processing systems, information processing methods and information processing devices.

組合せ最適化手法の有力な1つとして、焼きなまし法(Simulated Annealing Algorithm)がある。この焼きなまし法は、(1)ある状態から遷移可能な近傍を定義し、(2)適当な状態を初期とし、(3)温度を固定してマルコフ連鎖モンテカルロ法(MCMC: Markov Chain Monte Carlo method)により分布を作成し、(4)温度を下げて(3)の処理を繰り返し、(5)終了条件に従って終了することにより、最適化を実行する。焼きなまし法は、(1)におけるコスト関数とその近傍が定義できれば動作可能である点において、非常に汎用性が高い手法である。 Simulated Annealing Algorithm is one of the leading combinatorial optimization methods. This simulated annealing method (1) defines a transitionable neighborhood from a certain state, (2) initializes an appropriate state, and (3) fixes the temperature and Markov Chain Monte Carlo method (MCMC). Optimize by creating a distribution by, (4) lowering the temperature, repeating the process of (3), and (5) terminating according to the termination conditions. Simulated annealing is a very versatile method in that it can operate if the cost function and its neighborhood in (1) can be defined.

しかしながら、焼きなまし法には大きく3つの課題がある。1点目は、温度が十分に下がった状態においてはMCMCにおいて計算した結果を棄却する割合が高まり効率的な探索が困難となることである。2点目は、この棄却は温度に基づくエネルギーにより決定され、温度の初期値や変化方法に大きく依存するが、最適化の対象ごとに理想的な初期値及び変化方法は大きく異なる。また、この最適化の対象における理想的な温度条件も非自明である。このため、対象ごとに最適な非自明な温度条件を設定するか、汎用性の高い温度を設定するかで収束精度、速度が左右されることが問題となる。3点目として、今日においては、マルチコア、メニーコアのプロセッサを用いて並列計算で計算効率を向上させることが広く行われているが、上記のようなステップをこれらのプロセッサ向きに並列化をすることが難しく、並列化による性能向上が限定的であることが挙げられる。 However, simulated annealing has three major problems. The first point is that when the temperature is sufficiently low, the rate of rejecting the results calculated by MCMC increases, making efficient search difficult. The second point is that this rejection is determined by the energy based on the temperature and largely depends on the initial value and the change method of the temperature, but the ideal initial value and the change method differ greatly depending on the optimization target. The ideal temperature conditions for this optimization are also non-trivial. Therefore, there is a problem that the convergence accuracy and the speed are influenced by setting the optimum non-trivial temperature condition for each object or setting the highly versatile temperature. Thirdly, today, it is widely practiced to improve the calculation efficiency by parallel computing using multi-core and many-core processors, but it is necessary to parallelize the above steps for these processors. It is difficult to do so, and the performance improvement by parallelization is limited.

E. Sonuc, et. al., “A cooperative GPU-based Parallel Multistart Simulated Annealing algorithm for Quadratic Assignment Problem,” October 2018, Engineering Science and Technology, an International Journal, volume 21, issue 5, pp. 843-849E. Sonuc, et. Al., “A cooperative GPU-based Parallel Multistart Simulated Annealing algorithm for Quadratic Assignment Problem,” October 2018, Engineering Science and Technology, an International Journal, volume 21, issue 5, pp. 843-849 D. J. Earl, et. al., “Parallel tempering: Theory, applications, and new perspectives,” September 5, 2005, Phys. Chem. Chem. Phys., 2005, 7, pp. 3910-3916D. J. Earl, et. Al., “Parallel tempering: Theory, applications, and new perspectives,” September 5, 2005, Phys. Chem. Chem. Phys., 2005, 7, pp. 3910-3916

本開示は、高速に良好な解を取得することができる情報処理装置を提供する。 The present disclosure provides an information processing apparatus capable of obtaining a good solution at high speed.

一実施形態によれば、情報処理システムは、記憶回路と、並列演算が実行可能な1又は複数の処理回路と、を備える。前記処理回路は、第1並列演算により、現在の状態に対する複数の近傍の状態においてエネルギーを算出し、前記複数の近傍の状態における前記エネルギーに基づいてそれぞれの前記状態が採択される指標を算出し、前記複数の近傍の状態のいずれか1つが採択されるように前記指標に基づいて前記複数の近傍に対する採択確率を算出し、前記採択確率に基づいて、次の状態を前記複数の近傍の状態から選択する。 According to one embodiment, the information processing system comprises a storage circuit and one or more processing circuits capable of performing parallel operations. The processing circuit calculates energies in a plurality of neighboring states with respect to the current state by the first parallel calculation, and calculates an index for adopting each of the said states based on the energies in the plurality of neighboring states. , The adoption probability for the plurality of neighborhoods is calculated based on the index so that any one of the plurality of neighborhood states is adopted, and the next state is set to the state of the plurality of neighborhoods based on the adoption probability. Select from.

また、一実施形態によれば、情報処理方法は、処理回路により、現在の状態に対する複数の近傍の状態において第1並列処理によりエネルギーを算出し、前記複数の近傍の状態における前記エネルギーに基づいてそれぞれの前記状態が採択される第1確率を算出し、前記複数の近傍における状態のいずれか1つが採択されるように前記第1確率を規格化した第2確率を算出し、前記第2確率に基づいて、次の状態を前記複数の近傍の状態から選択する。 Further, according to one embodiment, the information processing method calculates energy by the first parallel processing in a plurality of neighboring states with respect to the current state by a processing circuit, and is based on the energy in the plurality of neighboring states. The first probability that each of the above states is adopted is calculated, the second probability that normalizes the first probability so that any one of the states in the plurality of neighborhoods is adopted is calculated, and the second probability is calculated. The next state is selected from the plurality of neighboring states based on.

また、一実施形態によれば、プログラムは、処理回路に、第1並列処理により、現在の状態に対する複数の近傍の状態におけるエネルギーを算出し、前記複数の近傍の状態における前記エネルギーに基づいてそれぞれの前記状態が採択されるか否かを示す指標を算出し、前記複数の近傍の状態のいずれか1つが採択されるように、前記指標に基づいて前記複数の近傍の状態に対する採択確率を算出し、前記採択確率に基づいて、次の状態を前記複数の近傍の状態から選択する、情報処理方法を実行させる。 Further, according to one embodiment, the program calculates the energies in a plurality of neighboring states with respect to the current state by the first parallel processing in the processing circuit, and based on the energies in the plurality of neighboring states, respectively. An index indicating whether or not the said state is adopted is calculated, and the adoption probability for the plurality of neighboring states is calculated based on the index so that any one of the plurality of neighboring states is adopted. Then, an information processing method is executed in which the next state is selected from the plurality of neighboring states based on the adoption probability.

また、一実施形態によれば、情報処理装置は、記憶回路と、1又は複数の処理回路を備える。前記処理回路は、温度を予め設定されたスケジューリングにより遷移して焼きなまし法による最適化を実行し、前記最適化の繰り返し演算において、前記最適化で算出した現在の状態の近傍におけるエネルギーが、現在の前記状態のエネルギーよりも大きくなる前記近傍の数を計数し、計数された前記近傍の数と、前記最適化により探索された前記近傍の総数と、の比を算出し、前記比と、前記近傍のエネルギーが現在の前記状態のエネルギーよりも大きくなる場合の前記温度に基づいて採択される割合と、に基づいて、前記近傍の採択確率を表す指標である逆温度を制御する。 Further, according to one embodiment, the information processing apparatus includes a storage circuit and one or more processing circuits. The processing circuit transitions the temperature by preset scheduling to execute simulated annealing, and in the iterative calculation of the optimization, the energy in the vicinity of the current state calculated by the optimization is the current energy. The number of the neighborhoods that is larger than the energy of the state is counted, the ratio of the counted number of the neighborhoods to the total number of the neighborhoods searched by the optimization is calculated, and the ratio and the neighborhoods are calculated. Based on the ratio adopted based on the temperature when the energy of the current state becomes larger than the energy of the current state, the reverse temperature, which is an index indicating the adoption probability of the neighborhood, is controlled.

一実施形態に係る情報処理システムを模式的に示す図。The figure which shows typically the information processing system which concerns on one Embodiment. 焼きなまし法の処理を示すフローチャート。A flowchart showing the processing of simulated annealing. 一実施形態に係る解の採択の処理の一例を示す擬似コード。A pseudo code indicating an example of processing for adopting a solution according to an embodiment. 一実施形態に係る温度スケジュール処理の一例を示す擬似コード。A pseudo code showing an example of temperature schedule processing according to an embodiment. 一実施形態に係る温度変化割合を求める一例を示す擬似コード。A pseudo code showing an example of obtaining the temperature change rate according to one embodiment. 図5を用いた温度スケジュールの一例を示す図。The figure which shows an example of the temperature schedule using FIG. 一実施形態に係る焼きなまし法の並列処理の一例を示すフローチャート。The flowchart which shows an example of the parallel processing of the simulated annealing method which concerns on one Embodiment. 一実施形態に係る焼きなまし法の並列処理の一例を示す擬似コード。Pseudo code showing an example of parallel processing of simulated annealing according to an embodiment. 一実施形態に係る工程の一部の一例を示す図。The figure which shows a part example of the process which concerns on one Embodiment. 一実施形態に係る工程の順番を入れ替えた例を示す図。The figure which shows the example which changed the order of the steps which concerns on one Embodiment. 一実施形態に係る工程の記述例を示す図。The figure which shows the description example of the process which concerns on one Embodiment. 一実施形態に係る仕事の処理順序の入れ替えの一例を示す図。The figure which shows an example of changing the processing order of work which concerns on one Embodiment. 一実施形態に係る仕事の処理順序の入れ替えの一例を示す図。The figure which shows an example of changing the processing order of work which concerns on one Embodiment. 一実施形態に係る仕事の処理順序の入れ替えの一例を示す図。The figure which shows an example of changing the processing order of work which concerns on one Embodiment. 一実施形態に係る工程の選択の例を示す図。The figure which shows the example of the selection of the process which concerns on one Embodiment.

以下、図面を参照していくつかの実施形態の内容を説明する。なお、以下に示す実施形態は、非限定的な例として示されるものであり、構成等は、これらに限定されるものではない。本開示において、「以上」「未満」等の用語を用いることがあるが、厳密にこれらの用語に限定されるわけではなく、適切に「より大きい」「以下」と読み替えてもよいし、逆も同様である。 Hereinafter, the contents of some embodiments will be described with reference to the drawings. The embodiments shown below are shown as non-limiting examples, and the configuration and the like are not limited to these. In the present disclosure, terms such as "greater than or equal to" and "less than or equal to" may be used, but they are not strictly limited to these terms and may be appropriately read as "greater than or equal to" and "less than or equal to", and vice versa. Is the same.

(ハードウェア実装例)
図1は、一実施形態に係る情報処理システム1の概要を模式的に示す図である。情報処理システム1は、例えば、情報処理装置100と、外部装置90、94と、ネットワーク92と、を備える。情報処理システム1は、並列化された焼きなまし法を実装するシステムである。
(Hardware implementation example)
FIG. 1 is a diagram schematically showing an outline of an information processing system 1 according to an embodiment. The information processing system 1 includes, for example, an information processing device 100, external devices 90 and 94, and a network 92. The information processing system 1 is a system that implements a parallel annealing method.

情報処理装置10は、処理回路100と、記憶回路102と、インタフェース104と、を備える。これらの構成は、適切に構成間においてデータを送受信するバス106により接続される。 The information processing device 10 includes a processing circuit 100, a storage circuit 102, and an interface 104. These configurations are appropriately connected by a bus 106 that sends and receives data between the configurations.

処理回路100は、情報処理装置10における演算等の処理を実行する回路である。処理回路100は、例えば、CPU(Central Processing Unit)等の汎用のプロセッサを備えて構成される。さらに、処理回路100は、GPU(Graphics Processing Unit)等の汎用のアクセラレータとして駆動するプロセッサを備えていてもよい。また、処理回路100は、ASIC(Application Specified Integrated Circuit)等の専用の処理を実行する回路であってもよいし、FPGA(Field Programmable Gate Array)等のプログラマブルな回路であってもよい。これらの回路は、デジタル又はアナログの回路で構成されてもよい。処理回路100は、適切に情報処理が実行できる構成であれば、上記のうち少なくとも2つを備える回路であってもよい。 The processing circuit 100 is a circuit that executes processing such as calculations in the information processing apparatus 10. The processing circuit 100 is configured to include, for example, a general-purpose processor such as a CPU (Central Processing Unit). Further, the processing circuit 100 may include a processor driven as a general-purpose accelerator such as a GPU (Graphics Processing Unit). Further, the processing circuit 100 may be a circuit that executes dedicated processing such as an ASIC (Application Specified Integrated Circuit), or may be a programmable circuit such as an FPGA (Field Programmable Gate Array). These circuits may be composed of digital or analog circuits. The processing circuit 100 may be a circuit including at least two of the above, as long as the information processing can be appropriately executed.

記憶回路102は、情報処理装置10における演算等に必要なデータ等を格納する回路である。情報処理装置10において処理回路100を用いてソフトウェアによる情報処理がハードウェア資源を用いて具体的に実現される場合には、記憶回路102は、このソフトウェアの実行に必要となるプログラム、実行ファイル等を格納してもよい。記憶回路102は、例えば、主記憶装置と、補助記憶装置とを備えていてもよい。このように、図1における記憶回路102は、非一時的なデータの格納をするストレージ等、及び、一時的なデータを格納するSRAM(Static Random Access Memory)等のキャッシュメモリ等のうち少なくとも1つを備えていてもよい。 The storage circuit 102 is a circuit for storing data and the like necessary for operations and the like in the information processing apparatus 10. When information processing by software is specifically realized by using hardware resources in the information processing apparatus 10 using the processing circuit 100, the storage circuit 102 is a program, an execution file, etc. required for executing this software. May be stored. The storage circuit 102 may include, for example, a main storage device and an auxiliary storage device. As described above, the storage circuit 102 in FIG. 1 is at least one of a storage and the like for storing non-temporary data and a cache memory and the like such as SRAM (Static Random Access Memory) for storing temporary data. May be provided.

インタフェース104は、情報処理装置10の外部とのデータの入出力を実現する。例えば、インタフェース104は、外部装置90と接続されるデバイスインタフェースであってもよいし、ネットワーク92と接続されるネットワークインタフェースであってもよい。インタフェース104から受信した情報を、記憶回路102に非一時的又は一時的に格納してもよい。 The interface 104 realizes input / output of data to / from the outside of the information processing device 10. For example, the interface 104 may be a device interface connected to the external device 90 or a network interface connected to the network 92. The information received from the interface 104 may be stored in the storage circuit 102 non-temporarily or temporarily.

外部装置90は、例えば、マウス、キーボード等の入力ユーザインタフェース、又は、ディスプレイ等の出力ユーザインタフェースであってもよい。また、外部装置90は、情報処理装置10と接続されるストレージ等の記憶デバイスであってもよい。さらに、外部装置90は、情報処理装置10の処理の一部を実行するプロセッサを備えるサーバ、コンピュータ等であってもよい。この場合、外部装置90には、情報処理装置10とは別のCPU、GPU等の処理回路と、適切な記憶回路とが備えられてもよく、情報処理装置10と独立に又は協働して処理を実現できる実装であってもよい。 The external device 90 may be, for example, an input user interface such as a mouse or keyboard, or an output user interface such as a display. Further, the external device 90 may be a storage device such as a storage connected to the information processing device 10. Further, the external device 90 may be a server, a computer, or the like including a processor that executes a part of the processing of the information processing device 10. In this case, the external device 90 may be provided with a processing circuit such as a CPU or GPU different from the information processing device 10 and an appropriate storage circuit, and may be provided independently or in cooperation with the information processing device 10. It may be an implementation that can realize the processing.

ネットワーク92は、有線又は無線の少なくとも一方を備えるネットワークである。このネットワーク92を介して情報処理装置10は、外部装置94と接続されてもよい。 The network 92 is a network including at least one of wired and wireless. The information processing device 10 may be connected to the external device 94 via the network 92.

外部装置94は、基本的には外部装置90と同様の構成である。 The external device 94 basically has the same configuration as the external device 90.

情報処理システム1は、情報処理装置10により処理が実行されるが、上述のように、情報処理装置10に加えて外部装置90、94と協働して処理が実行されるものであってもよい。例えば、ネットワーク92を介したクラスタ等により処理が実現されてもよい。以下に示す実施形態は、情報処理装置10単独で実現するものであってもよいし、クラスタ等の構成を含めた情報処理システム1単独で実現するものであってもよい。すなわち、以下の各説明において、情報処理装置10と記載している箇所は、情報処理システム1と読み替えることが可能であることに留意されたい。 In the information processing system 1, the processing is executed by the information processing device 10, but as described above, even if the processing is executed in cooperation with the external devices 90 and 94 in addition to the information processing device 10. good. For example, the processing may be realized by a cluster or the like via the network 92. The embodiments shown below may be realized by the information processing apparatus 10 alone, or may be realized by the information processing system 1 including the configuration of a cluster or the like. That is, it should be noted that in each of the following explanations, the part described as the information processing device 10 can be read as the information processing system 1.

(焼きなまし法の実装)
図2は、焼きなまし法の処理を示すフローチャートである。このフローチャートは、一般的な焼きなまし法の処理を示すものであるが、本開示においては、このフローチャートの所定のステップにおける処理において一般的な処理とは異なる処理を実行する。まず、図2を用いて一般的な焼きなまし法の処理について説明する。また、焼きなまし法を用いて説明しているが、焼きなまし法に限定されず他の同様な最適化アルゴリズムに適用することができる。
(Implementation of Simulated Annealing)
FIG. 2 is a flowchart showing the processing of simulated annealing. This flowchart shows the processing of a general simulated annealing method, but in the present disclosure, a processing different from the general processing is executed in the processing in a predetermined step of this flowchart. First, the processing of a general simulated annealing method will be described with reference to FIG. Moreover, although it is described using the simulated annealing method, it is not limited to the simulated annealing method and can be applied to other similar optimization algorithms.

最初に、処理回路100は、最適化に必要な温度等のパラメータ及び状態の初期化を実行する(S10)。必要に応じて、処理回路100は、初期化したデータを記憶回路102に格納してもよい。 First, the processing circuit 100 performs initialization of parameters and states such as temperature required for optimization (S10). If necessary, the processing circuit 100 may store the initialized data in the storage circuit 102.

次に、処理回路100は、現在の状態の近傍を探索する(S20)。ここで、状態(以下、場合によっては解とも記載する)とは、探索空間における点を示す量(スカラー、ベクトル、又は、任意のテンソル)のことである。この状態を遷移させることにより、情報処理装置10は、最適解を取得する。 Next, the processing circuit 100 searches the vicinity of the current state (S20). Here, the state (hereinafter, also referred to as a solution in some cases) is a quantity (scalar, vector, or arbitrary tensor) indicating a point in the search space. By transitioning this state, the information processing apparatus 10 acquires the optimum solution.

次に、処理回路100は、S20において探索された近傍の状態のエネルギー(コスト関数、評価関数を用いて算出される)を算出する(S30)。このエネルギーの算出は、所定の関数により実現される。処理回路100は、対象とする物理現象、事象ごとに一般的に用いられている評価関数を、状態のエネルギーを算出する関数として用いてもよい。 Next, the processing circuit 100 calculates the energy (calculated using the cost function and the evaluation function) of the neighboring state searched in S20 (S30). The calculation of this energy is realized by a predetermined function. The processing circuit 100 may use an evaluation function generally used for each target physical phenomenon or event as a function for calculating the energy of the state.

次に、処理回路100は、S30において算出したエネルギーに基づいて、状態を更新する(S40)。状態の更新は、例えば、現在の状態のエネルギーと、探索された近傍の状態のエネルギーとを比較して、この比較結果を温度に基づいた確率により採択することで更新される。処理回路100は、例えば、探索された近傍の状態のエネルギーが現在状態のエネルギーよりも小さい場合には、この近傍状態を次のステップの状態として更新する。一方で、探索された近傍状態のエネルギーが現在状態のエネルギー以上である場合には、温度に基づいた確率により、次のステップの状態として現在状態か近傍状態かを選択する。なお、近傍状態の文言は、広義では現在状態を含む概念としてもよい。すなわち、広義の意味では、S40の処理は、次のステップの状態として近傍状態から適切な状態を選択することを意味してもよい。 Next, the processing circuit 100 updates the state based on the energy calculated in S30 (S40). The state update is performed, for example, by comparing the energy of the current state with the energy of the searched neighboring state and adopting the comparison result with a probability based on the temperature. For example, when the energy of the searched neighborhood state is smaller than the energy of the current state, the processing circuit 100 updates this neighborhood state as the state of the next step. On the other hand, when the energy of the searched neighborhood state is equal to or higher than the energy of the current state, the current state or the neighborhood state is selected as the state of the next step based on the probability based on the temperature. In a broad sense, the wording of the neighborhood state may be a concept including the current state. That is, in a broad sense, the processing of S40 may mean selecting an appropriate state from the neighboring states as the state of the next step.

次に、処理回路100は、最適化の終了条件を満たすか否かを判断する(S50)。処理回路100は、例えば、所定の温度に達した、所定の回数の更新を繰り返した、エネルギーが所定の値を下回った等の条件に基づいて、処理の終了を判断する。この終了条件は、適切に最適化が実現されるのであれば任意の条件であってもよい。 Next, the processing circuit 100 determines whether or not the optimization end condition is satisfied (S50). The processing circuit 100 determines the end of processing based on conditions such as reaching a predetermined temperature, repeating updating a predetermined number of times, and energy falling below a predetermined value. This termination condition may be any condition as long as optimization is appropriately realized.

終了条件を満たす場合(S50: YES)、処理回路100は、S40において更新された状態を出力して処理を終了する(S60)。この他、必要となる情報は適宜出力してもよい。また、出力のタイミングはこのタイミングでなくともよく、例えば、S30におけるエネルギー値、S40における更新された状態の情報等を適宜任意のタイミングで出力してもよい。 When the termination condition is satisfied (S50: YES), the processing circuit 100 outputs the updated state in S40 and terminates the processing (S60). In addition, necessary information may be output as appropriate. Further, the output timing does not have to be this timing, and for example, the energy value in S30, the updated state information in S40, and the like may be output at an appropriate timing.

終了条件を満たさない場合(S50: NO)、処理回路100は、温度を更新し(S70)、終了条件を満たすまで最適化の処理(S20~S40)を繰り返す。 If the end condition is not satisfied (S50: NO), the processing circuit 100 updates the temperature (S70) and repeats the optimization process (S20 to S40) until the end condition is satisfied.

以上が一般的な焼きなまし法の処理の流れである。本実施形態においては、この各ステップの処理において処理の精度向上及び高速化のための処理を実行する。 The above is the processing flow of the general simulated annealing method. In the present embodiment, in the processing of each step, processing for improving the accuracy and speeding up of the processing is executed.

(解採択についての実施形態)
一般的に、焼きなまし法の処理では、大きな問題として、温度が十分に低くなったタイミングにおいて状態の更新が進まないことにある。S40において、探索された次の状態のエネルギーが現在の状態のエネルギーよりも大きい場合に、解を受け入れる確率は、一例として以下のように表される。これは、例として示すものであり、この遷移確率に限定されるものではない。

Figure 2022107518000002
Figure 2022107518000003
ここで、Esは、現在状態のエネルギーであり、Es+1は、探索された近傍状態のエネルギーである。式(1)のような確率に基づいて、近傍状態のエネルギーの方が大きい、すなわち、ΔE > 0の場合においても解が採択される。γは、正数であり、エネルギー差に対して必要であれば掛け合わせるゲインである。γは、エネルギーの定義によっては1であっても構わない。 (Embodiment for adoption)
Generally, in the simulated annealing process, a major problem is that the state is not updated when the temperature becomes sufficiently low. In S40, when the energy of the next state searched is larger than the energy of the current state, the probability of accepting the solution is expressed as follows as an example. This is shown as an example, and is not limited to this transition probability.
Figure 2022107518000002
Figure 2022107518000003
Here, E s is the energy of the current state, and E s + 1 is the energy of the searched neighborhood state. Based on the probability as in Eq. (1), the solution is adopted even when the energy of the neighborhood state is larger, that is, when ΔE> 0. γ is a positive number and is a gain that is multiplied by the energy difference if necessary. γ may be 1 depending on the definition of energy.

図3は、本実施形態に係るS40における解の採択についてのアルゴリズムの一例(Algorithm 1)を示す擬似コードである。この図3を用いて本実施形態の一例による解の採択について説明する。この擬似コードにおいては、解(状態)の更新部分の処理について説明する。すなわち、入力は、現在の解xであり、出力は、次の解x’となる。 FIG. 3 is a pseudo code showing an example (Algorithm 1) of the algorithm for adopting the solution in S40 according to the present embodiment. The adoption of the solution according to an example of the present embodiment will be described with reference to FIG. In this pseudo code, the processing of the update part of the solution (state) will be described. That is, the input is the current solution x and the output is the next solution x'.

1. 処理回路100は、現在の解xの近傍の個数をNxとする。この近傍の個数は、現在の解xに対して、所定の範囲において取得できる個数の近傍であってもよい。ただし、所定の範囲内において取得できる近傍は、一般的には無数であることが多い。このため、この個数Nxを所定個数として予め決めていてもよく、この個数以内の近傍を取得する形態としてもよい。例えば、Nxは、並列演算可能な数としてもよい。処理回路100は、複数の近傍として重複がないように探索を行うのが望ましい。 1. In the processing circuit 100, let N x be the number in the vicinity of the current solution x. The number of neighborhoods may be the number of neighborhoods that can be obtained in a predetermined range with respect to the current solution x. However, in general, the number of neighborhoods that can be acquired within a predetermined range is innumerable. Therefore, this number N x may be predetermined as a predetermined number, or a form in which neighborhoods within this number may be acquired may be acquired. For example, N x may be a number that can be operated in parallel. It is desirable that the processing circuit 100 searches for a plurality of neighborhoods so that they do not overlap.

2. この採択アルゴリズムにおいては、上記で設定したNx個の近傍の探索が実行される。そこで、処理回路100は、Nx個の採択確率pacceptedを格納するための配列及びこの配列を格納するための記憶領域を準備する。この配列は、予め記憶回路102において確保されていてもよく、処理回路100は、この確保された空間を用いるものであってもよい。 2. In this adopted algorithm, the search of N x neighborhoods set above is executed. Therefore, the processing circuit 100 prepares an array for storing N x acceptance probabilities p accepted and a storage area for storing this array. This arrangement may be reserved in advance in the storage circuit 102, and the processing circuit 100 may use this reserved space.

3. 上記の設定をした上で、並列演算を実行する。この3. に記載されているfor文は、並列演算の実行を意味する。すなわち、このループ内の処理(プロセス)は、シーケンシャルに実行されるものではなく、パラレルに実行されるものである。例えば、GPUの演算コアごとに、異なる近傍の解を振り分けて、Nx個の演算を同じタイミングで実行する。以下、GPUにおける演算コアにおいてそれぞれの近傍の演算を実行させることとして説明するが、並列化の手法は、GPUの演算コアに割り振るものだけではなく、適切に並列演算が実現できる構成であれば構わない。 3. After making the above settings, execute parallel computing. The for statement described in 3. means the execution of parallel operations. That is, the processes in this loop are not executed sequentially, but are executed in parallel. For example, different neighborhood solutions are assigned to each GPU calculation core, and N x operations are executed at the same timing. Hereinafter, it will be described as executing operations in the vicinity of each of the arithmetic cores in the GPU, but the parallelization method is not limited to the one allocated to the arithmetic core of the GPU, as long as the configuration can appropriately realize parallel arithmetic. do not have.

4. 例えば、GPUの各演算コアにおいて、ΔEiを算出する。ここで、ΔEiは、i番目の近傍において算出したエネルギーと、現在の解におけるエネルギーとの差分である。一例として、このΔEiは、式(2)におけるEs+1を近傍の状態のエネルギーとし、Esを現在の状態におけるエネルギーとして算出したものに該当する。 4. For example, calculate ΔE i in each arithmetic core of GPU. Here, ΔE i is the difference between the energy calculated in the i-th neighborhood and the energy in the current solution. As an example, this ΔE i corresponds to the one calculated by using E s + 1 in Eq. (2) as the energy in the neighboring state and E s as the energy in the current state.

5. 各演算コアにおいて、例えば、上記の式(1)に基づいた演算を実行し、各演算コアにおいて演算した近傍の解の採択確率を取得するための指標を算出する。この指標は、式(1)から算出されてもよいことからわかるように、一般的な焼きなまし法における採択確率を用いて算出されてもよい。なお、ΔEi ≦ 0の場合には、例えば、採択確率を1とする。i番目の近傍を演算する演算コアにおいて算出された指標は、paccepted[i]に格納される。 5. In each arithmetic core, for example, the arithmetic based on the above equation (1) is executed, and the index for acquiring the adoption probability of the neighboring solution calculated in each arithmetic core is calculated. As can be seen from the fact that this index may be calculated from Eq. (1), it may be calculated using the adoption probability in a general simulated annealing method. When ΔE i ≤ 0, for example, the adoption probability is 1. The index calculated in the arithmetic core that computes the i-th neighborhood is stored in p accepted [i].

6. 処理回路100は、ループ処理(並列処理)を終了する。例えば、これ以降の処理をアトミック演算により実行してもよいし、ホスト側で実行してもよい。なお、上述のpaccepted[i]は、適切に格納される配列であれば、例えば、演算コア間で共有される共有メモリとして書込をしてもよいし、ループ処理の終了時に各演算コアからの出力を格納する形態であってもよい。 6. The processing circuit 100 ends the loop processing (parallel processing). For example, the subsequent processing may be executed by atomic calculation, or may be executed on the host side. The above-mentioned p accepted [i] may be written as a shared memory shared between arithmetic cores as long as it is an array that is appropriately stored, or each arithmetic core may be written at the end of loop processing. It may be in the form of storing the output from.

7. 各演算コアにより算出されたpacceptedの値の和psumを算出する。この処理は、上記の並列処理の終了後にホスト側において実行されてもよいし、3. ~ 6.までの処理の実行中に、リダクション演算等を用いた並列演算でさらに高速化されていてもよい。 7. Calculate the sum of the p accepted values calculated by each arithmetic core, p sum . This process may be executed on the host side after the above parallel process is completed, or may be further accelerated by a parallel operation using a reduction operation or the like during the execution of the processes 3 to 6. good.

8. 次に、iに対してpaccepted[i] / psumを求め、pacceptedを規格化する。この規格化された確率(解の採択確率)により、Nx個の近傍から、必ず1つの近傍が次の解として採択される。なお、規格化は、確率の分布に対する計算の一例としてあげたものであり、規格化することは必須ではない。また、規格化は、指標の和で個々の指標を除算するものであるものには限られない。規格化をしない場合には、この8.の処理は省略することが可能であり、この場合であっても、取得されたpacceptedに基づいた適切な確率で状態を遷移させる選択が可能であればよい。 8. Next, find p accepted [i] / p sum for i and standardize p accepted . Due to this standardized probability (probability of adopting a solution), one neighborhood is always adopted as the next solution from N x neighborhoods. It should be noted that standardization is given as an example of calculation for the distribution of probabilities, and standardization is not essential. In addition, standardization is not limited to the sum of indicators divided by individual indicators. If standardization is not performed, the process in 8. can be omitted, and even in this case, it is possible to select to transition the state with an appropriate probability based on the acquired p accepted . Just do it.

9. 処理回路100は、この規格化された確率に基づいてNx個から1つであるisを抽出する。上述したように、規格化をすることにより、全ての近傍からいずれか1つが選択されることとなり、解が棄却されることはない。指標を採択確率として規格化をする場合及び規格化をしない場合のいずれにおいても、個々に設定された確率に基づいて1つの解が選択される一般的な手法を用いて、1つの解を取得する方法を用いてもよい。 9. The processing circuit 100 extracts one is from N x based on this standardized probability. As described above, by standardizing, one of all the neighborhoods is selected, and the solution is not rejected. Obtain one solution using a general method in which one solution is selected based on the individually set probability in both cases where the index is standardized as the adoption probability and when it is not standardized. You may use the method of

10. 処理回路100は、選択されたis番目の近傍の状態x’を次の解として更新する。 10. Processing circuit 100 updates the state x'near the selected isth neighborhood as the next solution.

11. そして、処理回路100は、この次の解x’を出力して、図2におけるS30~S40の処理を終了する。 11. Then, the processing circuit 100 outputs the next solution x'and ends the processing of S30 to S40 in FIG.

以上のように、解の更新において、温度により解を棄却することなく解を選択することで、処理速度の向上を図ることができる。特に、温度が下がっている最適化の後半における近傍の探索効率を高めることが可能となる。上記に示したように、近傍の探索は、並列化をすることが可能であるので、例えば、数万コアを並列処理として用いることができるGPUを用いることにより、効率よく解の探索を実現することができる。 As described above, in updating the solution, the processing speed can be improved by selecting the solution without rejecting the solution due to the temperature. In particular, it is possible to improve the search efficiency of the vicinity in the latter half of the optimization in which the temperature is lowered. As shown above, the search for the neighborhood can be parallelized, so for example, by using a GPU that can use tens of thousands of cores as parallel processing, the search for a solution can be realized efficiently. be able to.

なお、GPUでなくてもよく、CPU、ベクトルマシン、その他の並列処理に有効なアーキテクチャを用いることもできる。 It does not have to be a GPU, and a CPU, vector machine, or other architecture that is effective for parallel processing can be used.

上記においては、ΔEに基づいて選択確率を算出したが、さらに、ΔEの値により選択される確率を変動させてもよい。例えば、pacceptedを算出する処理において、ΔE < 0となるような遷移が優先されるように、確率を設定してもよい。同様に、ΔE = 0となるような遷移がΔE > 0である場合よりも優先度を上げるように制御してもよいし、逆に優先度を下げるように制御してもよい。一例として、処理回路100は、ΔEの正負に拘わらず、式(1)に基づいて、paccepted[j] = pとして算出し、このpacceptedを規格化することにより、いずれかの近傍を選択してもよい。また、この解の遷移において、処理回路100は、タブーサーチに基づき、一度探索された近傍については優先順位をさげるようにpacceptedの値を設定してもよい。 In the above, the selection probability is calculated based on ΔE, but the probability of selection may be further changed depending on the value of ΔE. For example, in the process of calculating p accepted , the probability may be set so that the transition such that ΔE <0 is prioritized. Similarly, the transition such that ΔE = 0 may be controlled to have a higher priority than the case where ΔE> 0, or conversely, it may be controlled to lower the priority. As an example, the processing circuit 100 calculates p accepted [j] = p based on Eq. (1) regardless of whether ΔE is positive or negative, and by standardizing this p accepted , one of the neighborhoods is selected. You may. Further, in the transition of this solution, the processing circuit 100 may set the value of p accepted so as to lower the priority of the neighborhood once searched based on the tabu search.

また、ΔEで場合分けする場合においても、各演算コアにおいてΔEにおいて優先度を設定し、決められた優先度の配列に近傍の状態を格納してもよい。各近傍の状態について演算する演算コアは、例えば、ΔEが負となる場合には、第1優先度の配列に格納し、ΔEが正となる場合には、第2優先度の配列に格納し、ΔE = 0である場合には、第3優先度の配列に格納してもよい。そして、最終的な1つの解として、第1優先度の配列から順番に選択してもよい。 Further, even when the cases are divided by ΔE, the priority may be set in ΔE in each arithmetic core, and the neighboring states may be stored in the array of the determined priority. For example, when ΔE is negative, the arithmetic core that calculates the state of each neighborhood is stored in the array of the first priority, and when ΔE is positive, it is stored in the array of the second priority. , ΔE = 0, it may be stored in a third priority array. Then, as one final solution, the first priority array may be selected in order.

例えば、第1優先度の配列に近傍が格納されている場合には、この配列から1つの状態を抽出して次の解としてもよい。第1優先度の配列に近傍が格納されていない場合には、第2優先度の配列を参照して第2優先度の配列から近傍を抽出する。同様に、第2優先度の配列に近傍が格納されていない場合には、第3優先度の配列を参照して、次の解を取得する。このように、解が停滞する場合を抑制しつつ、解の探索空間を広げることも可能である。 For example, when the neighborhood is stored in the array of the first priority, one state may be extracted from this array and used as the next solution. If the neighborhood is not stored in the first priority array, the neighborhood is extracted from the second priority array by referring to the second priority array. Similarly, if the neighborhood is not stored in the second priority array, the next solution is obtained by referring to the third priority array. In this way, it is possible to expand the search space for the solution while suppressing the case where the solution is stagnant.

(温度更新についての実施形態)
以下、温度更新について説明する。特に断りがない限り、温度Tの逆数(又は温度Tの逆数に比例する値)をβとし、このβを逆温度と記載する。本実施形態では、この逆温度βを用いて解の選択を定義する。例えば、式(1)に示す選択確率は、以下のように書き換えることができる。

Figure 2022107518000004
(Embodiment for temperature update)
The temperature update will be described below. Unless otherwise specified, the reciprocal of temperature T (or a value proportional to the reciprocal of temperature T) is defined as β, and this β is referred to as inverse temperature. In this embodiment, the reverse temperature β is used to define the solution selection. For example, the selection probability shown in Eq. (1) can be rewritten as follows.
Figure 2022107518000004

図4は、温度更新の処理についてのアルゴリズムの一例(Algorithm 2-1)を示す擬似コードである。まず、パラメータとして、逆温度の更新頻度fβ、逆温度の初期値βinit、最大ステップ数stepmaxが設定される。この最大ステップ数stepmaxにより、最適化における温度遷移の回数が定義される。この処理は、例えば、図2におけるS70の処理に想到する処理である。 FIG. 4 is a pseudo code showing an example of an algorithm (Algorithm 2-1) for the temperature update process. First, as parameters, the update frequency f β of the reverse temperature, the initial value β init of the reverse temperature, and the maximum number of steps step max are set. This maximum number of steps, step max , defines the number of temperature transitions in the optimization. This process is, for example, a process that conceives of the process of S70 in FIG.

1. ~ 3. まず、各変数の初期化を実行する。改悪した近傍における平均採択率(以降、逆行採択確率と呼ぶ)を計測するために、seおよびsnを使用する。seは、改悪した近傍の採択率の総和を表す情報である。改悪とは、前述した解の採択アルゴリズムの並列処理中にΔE > 0となることを表す。snは、観測した改悪する近傍の個数である。この観測した近傍の個数は、解の採択アルゴリズムにおける探索する近傍の個数であり、Nxが固定値である場合には、固定値であってもよい。逆温度βは、初期値βinitに初期化される。 1. ~ 3. First, initialize each variable. S e and s n are used to measure the average acceptance rate (hereinafter referred to as the retrograde acceptance probability) in the deteriorated neighborhood. s e is information that represents the total acceptance rate of the deteriorated neighborhood. Deterioration means that ΔE> 0 during parallel processing of the above-mentioned solution adoption algorithm. s n is the number of observed neighborhoods that deteriorate. The number of observed neighborhoods is the number of neighborhoods to be searched for in the solution adoption algorithm, and may be a fixed value when N x is a fixed value. The reverse temperature β is initialized to the initial value β init .

4. 上記のパラメータに基づいて、上記の採択アルゴリズムにおける逆温度の制御を実行する。一般的な焼きなまし法においては、例えば、温度を線形に低下させたり、指数関数的に低下させたりすることにより、広義の意味での単調減少をさせる。本実施形態においては、ΔEの状況により、逆温度を単調減少させるのではなく、また、線形関数、指数関数といった関数にとらわれることなく温度を制御する。この温度の更新処理は、上記のstepmax回繰り返される。 4. Based on the above parameters, perform the reverse temperature control in the above adopted algorithm. In general simulated annealing, for example, the temperature is lowered linearly or exponentially to cause a monotonous decrease in a broad sense. In the present embodiment, the inverse temperature is not monotonically reduced depending on the situation of ΔE, and the temperature is controlled without being bound by a function such as a linear function or an exponential function. This temperature update process is repeated max times as described above.

5. 以下の6.から12.において説明する処理は、上記のAlgorithm 1の処理中に実行される処理である。 5. The processes described in 6 to 12 below are the processes executed during the above Algorithm 1.

6. 、7. これらの処理は、上記のAlgorithm 1において説明したものであるので、詳細は省略する。 6., 7. These processes are explained in Algorithm 1 above, so the details are omitted.

8. ~ 11. ΔEiが算出された後に、各コアは、ΔEi > 0である場合、すなわち、解の更新において解が改悪された場合における平均採択率を計測する。この処理は、並列処理中に実行されるため、例えば、アトミック演算により実現されてもよい。処理回路100は、この処理によりseとして、解が改悪された近傍の採択率の総和を計数する。また、snとして、ループ内の処理における近傍の改悪した個数を設定する。なお、逆温度の更新においては、改悪する近傍の個数を用いずに適切な別の処理を用いてもよい。このような変形をする場合には、本段落の処理は、必要でなければ省略してもよい。 8. ~ 11. After ΔE i is calculated, each core measures the average acceptance rate when ΔE i > 0, that is, when the solution is aggravated in the update of the solution. Since this processing is executed during parallel processing, it may be realized by, for example, an atomic operation. The processing circuit 100 counts the sum of the acceptance rates in the vicinity where the solution has been aggravated as se by this processing. Also, as s n , set the number of deteriorated neighborhoods in the processing in the loop. In addition, in updating the reverse temperature, another appropriate process may be used without using the number of neighbors that deteriorate. In the case of such a modification, the processing in this paragraph may be omitted if it is not necessary.

12. ~ 13. 例えば、Algorithm 1の他の並列処理が実行される。 12. ~ 13. For example, other parallel processing of Algorithm 1 is executed.

14. 現ループにおいて、逆温度の更新を行うか否かを判定する。なお、この箇所で判定をしているが、Algorithm 1の前にこの判定をしてもよい。この場合、Algorithm 1の実行において、8. ~ 10.の処理を省略したアルゴリズムを実行してもよい。別の例として、フラグを立てておくことにより、8. ~ 10.の処理を更新しないタイミングにおいては省略できるものとしてもよい。このようにすることで、アトミック演算の回数を下げることができる。このような処理は、処理の対象により必ずしも速度が向上するとは限られないため、対象ごと、プログラムごと、最適化ごとに適切に設定されてもよい。この14.の条件を満たす場合、すなわち、逆温度の更新を実行する場合には、以下の15. ~ 19.の処理を実行して逆温度の更新を行う。 14. Determine whether to update the reverse temperature in the current loop. Although the judgment is made at this point, this judgment may be made before Algorithm 1. In this case, in the execution of Algorithm 1, the algorithm in which the processes of 8 to 10 are omitted may be executed. As another example, by setting a flag, it may be possible to omit it at the timing when the processes of 8. to 10. are not updated. By doing so, the number of atomic operations can be reduced. Since such processing does not always improve in speed depending on the processing target, it may be appropriately set for each target, each program, and each optimization. When the condition of 14. is satisfied, that is, when the reverse temperature is updated, the following processes 15. to 19. are executed to update the reverse temperature.

15. まず、現ステップstep / 最大ステップ数stepmaxを算出することにより、処理全体に対する現段階の進行度合いpを取得する。 15. First, by calculating the current step step / maximum number of steps step max , the progress p of the current stage with respect to the entire process is obtained.

16. 次に、後述するAlgorithm 2-2の処理により、βの変化割合Δβを計算する。このΔβは、9.で求めたse、13.で求めたsn、及び、15.で求めたpにより計算される。 16. Next, the rate of change Δβ of β is calculated by the processing of Algorithm 2-2 described later. This Δβ is calculated by s e obtained in 9., s n obtained in 13., and p obtained in 15.

17. 16.で求められたΔβに基づいて、β = β(1 - Δβ)として逆温度βを更新する。 17. Based on Δβ obtained in 16., update the inverse temperature β with β = β (1-Δβ).

18.、19. se及びsnを再初期化する。 18., 19. Reinitialize s e and s n .

この一連の処理により、温度の逆数である逆温度βが所定ステップfβごとに更新される。この逆温度は、16.において算出した変化割合に応じて増減する。この増減について説明する。 By this series of processing, the reciprocal of the temperature β, which is the reciprocal of the temperature, is updated every predetermined step f β . This reverse temperature increases or decreases according to the rate of change calculated in 16. This increase / decrease will be described.

図5は、上述のΔβを求める処理の一例(Algorithm 2-2)を示す擬似コードである。図4における16.に示したように、このアルゴリズムにおいては、入力が処理の進行度合いp、改悪する近傍の個数se、観測した近傍の個数snとなる。そして、出力は、逆温度の更新に乗ずる割合Δβである。パラメータとして必要となるのは、逆温度の最大変化量Δβmaxである。 FIG. 5 is a pseudo code showing an example (Algorithm 2-2) of the above-mentioned processing for obtaining Δβ. As shown in 16. in Fig. 4, in this algorithm, the input is the degree of progress of processing p, the number of neighborhoods that deteriorate s e , and the number of observed neighborhoods s n . Then, the output is a ratio Δβ that is multiplied by the update of the reverse temperature. What is required as a parameter is the maximum amount of change Δβ max of the reverse temperature.

1. まず、探索した近傍において改悪した近傍の割合rrealを算出する。この割合は、入力された変数の比se / snにより取得される。 1. First, calculate the ratio r real of the deteriorated neighborhood in the searched neighborhood. This ratio is obtained by the ratio s e / s n of the input variables.

2. 処理回路100は、pに依存した近傍の改悪する割合の目標値として、rtargetを取得する。このrtargetは、予め算出されていてもよいし、対象により決められたパラメータにより算出されてもよい。上述したように、この目標値は、例えば、線形関数、指数関数等によりあらわされる。予め算出されている場合には、記憶回路102に格納されているものであってもよい。 2. The processing circuit 100 acquires r target as a target value of the deterioration rate of the neighborhood depending on p. This r target may be calculated in advance or may be calculated by a parameter determined by the target. As described above, this target value is represented by, for example, a linear function, an exponential function, or the like. If it is calculated in advance, it may be stored in the storage circuit 102.

3. 処理回路100は、目標値と計算された値の差、すなわち、rtargetとrrealとの差に基づいてΔβを算出し、出力する。例えば、処理回路100は、Δβ = Δβmax(rtarget - rreal)を算出して出力する。 3. The processing circuit 100 calculates and outputs Δβ based on the difference between the target value and the calculated value, that is, the difference between r target and r real . For example, the processing circuit 100 calculates and outputs Δβ = Δβ max (r target --r real ).

図6は、温度スケジュールの一例についてその遷移を示す図である。破線は、最適化における理想の逆行採択確率(rtargetに対応)を示し、実線は、実測された逆行採択確率(rrealに対応)を示す。横軸は、温度(逆温度)の更新回数を示し、縦軸は、逆行採択確率を示す。処理回路100は、温度を直接的に調節するのではなく、温度と、現在の改悪される近傍の割合に基づいて、次の逆温度の更新までの逆温度を制御する。このように処理をすることにより、温度を直接的に制御することなく、逆行採択確率の実測値に基づいて、逆行採択確率を理想値に近づけることができる。 FIG. 6 is a diagram showing the transition of an example of the temperature schedule. The dashed line indicates the ideal retrograde adoption probability (corresponding to r target ) in optimization, and the solid line indicates the measured retrograde adoption probability (corresponding to r real ). The horizontal axis shows the number of times the temperature (reverse temperature) is updated, and the vertical axis shows the retrograde adoption probability. The processing circuit 100 does not directly regulate the temperature, but controls the reverse temperature until the next reverse temperature update based on the temperature and the ratio of the current deteriorated neighborhood. By performing the processing in this way, the retrograde adoption probability can be brought close to the ideal value based on the measured value of the retrograde adoption probability without directly controlling the temperature.

処理回路100は、図4から図6に示されるように逆温度を制御する。図6を参照すると、現ステップにおいて逆行する確率が、温度スケジュールに基づく理想の逆行採択確率よりも高い場合には、逆行採択確率を小さくするように逆温度を制御する。これは、Algorithm 2-2の3.の式に基づく。 The processing circuit 100 controls the reverse temperature as shown in FIGS. 4 to 6. With reference to FIG. 6, when the probability of retrograde adoption in the current step is higher than the ideal retrograde adoption probability based on the temperature schedule, the reverse temperature is controlled so as to reduce the retrograde adoption probability. This is based on Equation 3 of Algorithm 2-2.

現ステップにおける逆行採択確率が理想の逆行採択確率よりも高い場合には、Algorithm 2-2の出力は、負方向に大きく、Algorithm 2-1の17.より逆温度が高くなる。この結果は、Algorithm 1の5.の値に影響を及ぼし、探索された近傍が改悪する場合に採択される確率を低くする。 If the retrograde adoption probability in the current step is higher than the ideal retrograde adoption probability, the output of Algorithm 2-2 is large in the negative direction, and the inverse temperature is higher than 17. of Algorithm 2-1. This result affects the value of 5. of Algorithm 1 and reduces the probability of being adopted if the searched neighborhood deteriorates.

逆に、現ステップにおける逆行採択確率が理想の逆行採択確率よりも低い場合には、Algorithm 2-2の出力は、正方向に大きくなり、逆温度が低く制御される。この結果、Algorithm 1の5.の計算により、探索された近傍が改悪する場合に採択される確率を高くする。 On the contrary, when the retrograde adoption probability in the current step is lower than the ideal retrograde adoption probability, the output of Algorithm 2-2 is increased in the positive direction and the inverse temperature is controlled to be low. As a result, the calculation in 5. of Algorithm 1 increases the probability of being adopted when the searched neighborhood deteriorates.

このように、温度を直接的に制御するのではなく、本実施形態において処理回路100は、理想の採択確率スケジュールに対して採択確率を制御する。上述したように、処理回路100は、理想の逆行採択確率よりも実際の近傍における逆行の割合が高い場合には、逆行採択確率を低くし、逆の場合には、逆行採択確率を高くする。 In this way, instead of directly controlling the temperature, the processing circuit 100 in this embodiment controls the adoption probability with respect to the ideal adoption probability schedule. As described above, the processing circuit 100 lowers the retrograde adoption probability when the rate of retrograde adoption in the actual neighborhood is higher than the ideal retrograde adoption probability, and increases the retrograde adoption probability in the opposite case.

以上のように、逆行採択確率を制御することにより、観測、探索した近傍において改悪される割合が理想よりも大きい場合には、改悪する確率を現ステップよりも高くなるように制御し、改悪される割合が理想よりも小さい場合には、改悪する確率を現ステップよりも低くなるように制御する。このように制御することで、適応的に逆行する場合における解が採択される確率を制御することが可能となる。 As described above, by controlling the retrograde adoption probability, if the rate of deterioration in the observed and searched neighborhood is larger than ideal, the probability of deterioration is controlled to be higher than the current step, and the deterioration is performed. If the ratio is smaller than ideal, the probability of deterioration is controlled to be lower than the current step. By controlling in this way, it is possible to control the probability that the solution will be adopted in the case of adaptively reversing.

温度の本来の役割は、探索中の近傍が改悪する割合を調整することであり、この温度を変化させることは、問題の依存性が高く、種々の問題に対して調節することが困難である。一方で、本実施形態のように、採択確率を統計情報に基づいて制御することにより、問題に対する依存性を低くすることが可能である。 The original role of temperature is to adjust the rate of deterioration of the neighborhood being searched for, and changing this temperature is highly problem-dependent and difficult to adjust for various problems. .. On the other hand, as in the present embodiment, by controlling the acceptance probability based on the statistical information, it is possible to reduce the dependence on the problem.

なお、図4、図5の擬似コードは、一例として示したものであり、アルゴリズム中の計算等は、この通りでなくてもよい。例えば、逆行採択確率の計算方法である図5の1.、2.等は、これに限定されるものではなく、上述したように逆行採択確率を適切に制御できるものであればよい。また、図6に示す破線である理想的な逆行採択確率は、一例として線形関数として描かれているが、これもこの限りではなく、指数関数等のように、適切に採択確率が温度に対して設定される関数であればよい。例えば、逆数に準ずる関数、又は、シグモイド関数、双曲線余弦関数等のロジスティック関数の逆数で表される関数等が挙げられるが、これらにも限定されるものではない。 The pseudo codes in FIGS. 4 and 5 are shown as an example, and the calculations in the algorithm may not be the same. For example, the methods of calculating the retrograde adoption probability, such as 1 and 2 in FIG. 5, are not limited to these, and may be any one that can appropriately control the retrograde adoption probability as described above. In addition, the ideal retrograde adoption probability, which is the broken line shown in FIG. 6, is drawn as a linear function as an example, but this is not limited to this, and the adoption probability is appropriately set with respect to the temperature as in the exponential function. Any function may be set. For example, a function equivalent to the reciprocal, or a function represented by the reciprocal of a logistic function such as a sigmoid function or a hyperbolic cosine function can be mentioned, but the function is not limited thereto.

上記の別の例としては、改悪する近傍の個数で制御するのではなく、改悪する近傍の採択確率に何らかの値、例えば、所定の値、又は、温度スケジュールに基づいた採択確率を加算し、又は、乗算することにより、改悪する場合の採択確率を制御してもよい。例えば、改悪する近傍の個数ではなく、近傍の採択確率を加算することにより、採択確率を制御してもよい。 As another example of the above, instead of controlling by the number of deterioration neighborhoods, some value, for example, a predetermined value or the adoption probability based on the temperature schedule is added to the adoption probability of the deterioration neighborhood, or , The adoption probability in the case of deterioration may be controlled by multiplying. For example, the adoption probability may be controlled by adding the adoption probabilities of the neighborhoods instead of the number of the neighborhoods that deteriorate.

さらに、図5の1.、2.ではなく、図4の17.の更新自体を変更してもよい。例えば、一定の割合を乗じることには限られず、慣性、移動平均等を用いてこの割合を変更してもよい。 Furthermore, the update itself of 17. of FIG. 4 may be changed instead of 1 and 2 of FIG. For example, it is not limited to multiplying by a certain ratio, and this ratio may be changed by using inertia, moving average, or the like.

近年、最適化問題を高速で実行するハードウェアとして量子アニーリングマシンが注目されており、量子アニーリングマシンと似た動作を古典コンピュータで焼きなまし法を用いて実現する取り組みが数多く為されている。これらの取り組みにおいては、イジングモデルで問題を記述した後に、このイジングモデルに対応するQUBO(Quadratic Unconstrained Binary Optimization)形式でモデルを表現して最適化を実行する。この定式化は、0、1のバイナリ変数を用いて行われる。また、直接的にQUBO形式で最適化の問題を記述することもできる。 In recent years, quantum annealing machines have been attracting attention as hardware that executes optimization problems at high speed, and many efforts have been made to realize operations similar to quantum annealing machines using simulated annealing on classical computers. In these efforts, after describing the problem with the Ising model, the model is expressed in the QUBO (Quadratic Unconstrained Binary Optimization) format corresponding to this Ising model and optimization is executed. This formulation is done using binary variables 0 and 1. You can also describe optimization problems directly in QUBO format.

少ない変数又は低次元の関連性を有する変数における最適化を実現する場合には、この0、1のバイナリを用いて演算を実現することが可能である。一方で、変数が多くなったり、変数間の関連性が複雑であったりする場合には、バイナリ形式で問題を表現し、バイナリ変数を用いての最適化は、計算コストが高くなる。 When optimizing for variables with few variables or low-dimensional relevance, it is possible to realize operations using these 0 and 1 binaries. On the other hand, when there are many variables or the relationships between variables are complicated, the problem is expressed in binary format, and optimization using binary variables increases the calculation cost.

特に、焼きなまし法で近傍の状態の探索における状態の遷移を繰り返す場合には、遷移の過程における制約が非常に多くなり、計算負荷が高くなる。 In particular, when the state transition in the search for the neighboring state is repeated by the simulated annealing method, the restrictions in the transition process become very large and the calculation load becomes high.

そこで、バイナリ変数ではなく、整数変数に拡張することで、計算コストを削減することができる。整数変数に拡張した後は、上記のアルゴリズムを用いて近傍の探索を繰り返すことが容易となる。このように現在の状態やその近傍の状態等の状態を表す変数、制約を、整数を用いて実現してもよい。 Therefore, the calculation cost can be reduced by expanding to an integer variable instead of a binary variable. After expanding to an integer variable, it becomes easy to repeat the search for the neighborhood using the above algorithm. In this way, variables and constraints representing states such as the current state and states in the vicinity thereof may be realized by using integers.

(並列処理について実施形態)
上記の各アルゴリズムにおいては、近傍の探索に対して並列化が実現されているが、さらに並列化の粒度を向上させることが可能である。情報処理装置10は、例えば、複数の焼きなまし法を並列に実行してもよい。並列に実行されている焼きなまし法において、前述の近傍探索アルゴリズムが並列に実現される。
(Implementation for parallel processing)
In each of the above algorithms, parallelization is realized for the search of the neighborhood, but it is possible to further improve the particle size of parallelization. The information processing apparatus 10 may, for example, execute a plurality of simulated annealing methods in parallel. In the simulated annealing method executed in parallel, the above-mentioned neighborhood search algorithm is realized in parallel.

図7は、焼きなまし法を並列に実行する場合における処理を示すフローチャートである。情報処理装置10は、2段階の並列化を実行する。外側の並列処理は、焼きなまし法をそれぞれの状態(レプリカ)に基づいて実行する並列処理である。内側の並列処理は、焼きなまし法自体を前述の実施形態、又は、それに準ずる方法に基づいて状態に対する近傍の探索を実行する並列処理である。以下においては、Algorithm 1等に基づいた近傍の探索を第1並列処理、図7等に基づいた最適化の並列を第2並列処理と記載する。 FIG. 7 is a flowchart showing processing when the simulated annealing method is executed in parallel. The information processing device 10 executes two-step parallelization. The outer parallel processing is parallel processing in which simulated annealing is executed based on each state (replica). The inner parallel processing is a parallel processing in which the annealing method itself is executed by searching for a neighborhood with respect to the state based on the above-described embodiment or a method similar thereto. In the following, the search for the neighborhood based on Algorithm 1 etc. will be referred to as the first parallel processing, and the parallel optimization based on FIG. 7 etc. will be referred to as the second parallel processing.

まず、それぞれのレプリカに対する処理(第2並列処理)を実行する処理回路100は、初期状態(初期値)を選択する(S100)。この初期状態は、最適化の最初においては、予め設定された所定の初期状態を設定してもよいし、ランダムに与えられた状態を取得してもよい。また、状態とともに逆温度を設定する処理であってもよい。 First, the processing circuit 100 that executes the processing (second parallel processing) for each replica selects the initial state (initial value) (S100). At the beginning of optimization, this initial state may be set to a predetermined initial state set in advance, or a randomly given state may be acquired. Further, the process may be a process of setting the reverse temperature together with the state.

次に、それぞれのレプリカにおいて、焼きなまし法が実行される(S110)。この焼きなまし法は、近傍探索において、図3から図6において説明された並列処理が実行される。この焼きなまし法は、第1並列処理により実行されてもよい。 Simulated annealing is then performed on each replica (S110). In this simulated annealing method, the parallel processing described in FIGS. 3 to 6 is executed in the neighborhood search. This simulated annealing method may be executed by the first parallel processing.

次に、それぞれのレプリカにおいて、焼きなましにより取得された現段階において取得されている最適解を更新するか否かを判断し、更新する場合には、最適解を更新する(S120)。更新するか否かの判断は、例えば、レプリカにおいて格納されている前段階の焼きなましの結果のエネルギー値と、現段階の焼きなましの結果のエネルギー値とを比較し、現段階におけるエネルギーが小さくなっている場合に更新するとしてもよい。この更新に関しても、温度に準ずるパラメータを用いて、当該パラメータに基づいた割合でエネルギー値が大きくなる場合でも採択するようにしてもよい。 Next, in each replica, it is determined whether or not to update the optimum solution acquired at the present stage acquired by annealing, and if updating, the optimum solution is updated (S120). To determine whether to update, for example, the energy value of the result of annealing in the previous stage stored in the replica is compared with the energy value of the result of annealing in the current stage, and the energy in the current stage becomes smaller. You may update it if you have one. This update may also be adopted even when the energy value increases at a rate based on the parameter by using a parameter based on the temperature.

次に、第2並列処理において各レプリカにより出力された最適解に基づいて、処理回路100は、終了条件を満たすか否かを判断する(S50)。この判断は、図2のS50の処理と同様に、所定回の繰り返し演算を行った、エネルギーが所定値を下回った、等の条件であってもよい。エネルギー値を参照する場合には、複数のレプリカにおいて求められた解に対するエネルギー値を比較して、最小のものを選択してもよいし、他の手法によりエネルギー値を決定してもよい。 Next, the processing circuit 100 determines whether or not the termination condition is satisfied based on the optimum solution output by each replica in the second parallel processing (S50). This determination may be made under the same conditions as the process of S50 in FIG. 2, such as performing the repeated calculation a predetermined number of times, the energy falling below the predetermined value, and the like. When referring to the energy value, the energy value for the solution obtained in a plurality of replicas may be compared and the minimum one may be selected, or the energy value may be determined by another method.

終了条件を満たす場合、状態を出力して(S60)、処理を終了する。 If the end condition is satisfied, the status is output (S60) and the process ends.

一方で、終了条件を満たさない場合には、S100からの処理を繰り返す。ここで、2回目以降のS100の処理においては、複数のレプリカから取得された解のうち、最適な、例えば、エネルギー値が最小となる解、逆温度を初期状態として設定してもよい。 On the other hand, if the end condition is not satisfied, the process from S100 is repeated. Here, in the second and subsequent processing of S100, among the solutions obtained from a plurality of replicas, the optimum solution, for example, the solution having the minimum energy value, and the reverse temperature may be set as the initial state.

上記の近傍探索の処理は、マルチコアプロセッサ又はメニーコアプロセッサを用いて適切に実行されてもよい。例えば、GPUを演算器として用いる場合には、演算ブロック並列、スレッド並列及び複数ボードを用いての並列演算で実行してもよい。ここで、スレッド並列は、複数のスレッドを平行して処理することを意味する。また、本開示において、演算ブロック並列とは、スレッドをグルーピングした、スレッド並列よりも一段上位の並列化概念を意味する。限定されない例として、同じ演算ブロック内のそれぞれのスレッドから高速にアクセスすることができる共有メモリが備えられていてもよい。 The above-mentioned neighborhood search process may be appropriately executed using a multi-core processor or a many-core processor. For example, when a GPU is used as an arithmetic unit, it may be executed by arithmetic block parallel, thread parallel, or parallel arithmetic using a plurality of boards. Here, thread parallel means processing a plurality of threads in parallel. Further, in the present disclosure, the operation block parallel means a parallelization concept in which threads are grouped and one step higher than the thread parallel. As a non-limiting example, a shared memory that can be accessed at high speed from each thread in the same arithmetic block may be provided.

例えば、レプリカごとに並列演算を実行し、又は、レプリカ内における近傍ごとに並列演算を実行してもよい。このように並列に演算することで、図2に示すような焼きなまし法等のメタヒューリスティクスな手法における近傍探索を高速に実現することができる。なお、メタヒューリスティクスな手法は、図2に示すように、各初期状態(初期値)に対する複数の近傍の状態のエネルギーの算出(S30)、状態の更新(S40。採択確率を取得するための指標の算出、採択確率の算出、および次の状態の選択)を少なくとも含む。 For example, parallel operation may be executed for each replica, or parallel operation may be executed for each neighborhood in the replica. By performing the operations in parallel in this way, it is possible to realize the neighborhood search at high speed in a metaheuristic method such as Simulated Annealing as shown in FIG. As shown in FIG. 2, the metaheuristic method is to calculate the energy of a plurality of neighboring states for each initial state (initial value) (S30) and update the state (S40. To obtain the adoption probability). Includes at least index calculation, adoption probability calculation, and selection of next state).

別の例として、複数のレプリカの出力した既知最良解(上記における各レプリカにより出力された最適解)においてエネルギー値が小さい方から所定個の状態を取得し、次の処理の初期値として、所定の割合ごとに既知最良解を振り分けてもよい。例えば、現段階における最小のエネルギーである第1最良解と、2番目に小さいエネルギーである第2最良解と、を複数のレプリカの初期状態として振り分けてもよい。 As another example, in the known best solutions output by a plurality of replicas (optimal solutions output by each replica in the above), a predetermined number of states are acquired from the one with the smallest energy value, and a predetermined value is set as the initial value of the next process. The known best solution may be distributed according to the ratio of. For example, the first best solution, which is the minimum energy at the present stage, and the second best solution, which is the second smallest energy, may be assigned as the initial states of a plurality of replicas.

具体的には、50個のレプリカがあるとして、30個のレプリカには第1最良解を初期状態とし、20個のレプリカには第2最良解を初期状態として設定してもよい。選択する既知最良解は、3以上であってもよいし、振り分ける割合は、上記に限定されるものではない。選択する既知最良解の個数は、所定値であってもよいし、別の例としては、最小エネルギー値に所定値を乗算したエネルギー値以下の既知最良解を振り分けるようにしてもよい。 Specifically, assuming that there are 50 replicas, the first best solution may be set as the initial state for 30 replicas, and the second best solution may be set as the initial state for 20 replicas. The known best solution to be selected may be 3 or more, and the distribution ratio is not limited to the above. The number of known best solutions to be selected may be a predetermined value, or as another example, known best solutions having an energy value equal to or less than the minimum energy value multiplied by a predetermined value may be distributed.

別の例としては、第1最良解等から所定の範囲内にある状態を複数抽出して、振り分けてもよい。この場合、統計値等にしたがってエネルギー、逆温度等を算出し直してもよいし、第1最良解等の状態に対するエネルギー、逆温度等を用いてもよい。 As another example, a plurality of states within a predetermined range may be extracted from the first best solution and the like and sorted. In this case, the energy, the reverse temperature, etc. may be recalculated according to the statistical value or the like, or the energy, the reverse temperature, etc. for the state of the first best solution or the like may be used.

上記のように複数の最良解を取得する場合には、次のイテレーションにおける解の探索をする段階において、第1最良解に対して第1所定数パターンの最適化パラメータを与え、第2最良解に対して第1所定数以下の第2所定数パターンの最適化パラメータを与えて、近傍探索を実行してもよい。もちろん、第1最良解及び第2最良解に限定されるものではなく、3以上の最良解を取得してもよい。 When obtaining a plurality of best solutions as described above, the optimization parameters of the first predetermined number pattern are given to the first best solution at the stage of searching for the solution in the next iteration, and the second best solution is obtained. The neighborhood search may be executed by giving the optimization parameters of the second predetermined number pattern equal to or less than the first predetermined number. Of course, the solution is not limited to the first best solution and the second best solution, and three or more best solutions may be obtained.

ここで最適化パラメータとは、逆行採択確率や、温度スケジューリングに係るパラメータである。より具体的な例として、最適化パラメータは、逆行採択確率の目標値、当該目標値のスケジューリングパラメータ又は逆温度の更新頻度のうち少なくとも1つであってもよいが、これらに限定されるものではない。 Here, the optimization parameters are parameters related to the retrograde adoption probability and temperature scheduling. As a more specific example, the optimization parameter may be at least one of, but is not limited to, the target value of the retrograde adoption probability, the scheduling parameter of the target value, or the update frequency of the reverse temperature. do not have.

さらに別の例として、複数のレプリカの出力した既知最良解の所定順位の状態(例えば、エネルギー中央値の既知最良解、エネルギー最大値の既知最良解)を少なくとも1つのレプリカの初期状態としてもよい。また別の例として、状態の平均値等の統計量に基づいた状態を少なくとも1つのレプリカの初期値としてもよい。このようにエネルギーが最小値、又は、それに近い値を有する状態以外の状態を初期値として設定するレプリカを加えることにより、広範囲の状態を探索することもできる。 As yet another example, the predetermined order state of the known best solutions output by a plurality of replicas (for example, the known best solution of the median energy value and the known best solution of the maximum energy value) may be set as the initial state of at least one replica. .. As another example, a state based on a statistic such as an average value of the state may be used as the initial value of at least one replica. By adding a replica that sets a state other than the state in which the energy has the minimum value or a value close to the minimum value as the initial value in this way, a wide range of states can be searched.

この他、ランダムに状態等を選択される形態であってもよいし、各レプリカにおいて格納(レプリカ間で共有)されているエネルギー値に基づいた比率で初期状態が採択される形態、例えば、エネルギー値が小さいほど採択される確率が高くなるように選択される形態であってもよい。このように、初期状態の選択には、種々の方法を実装することが可能である。 In addition, a form in which a state or the like is randomly selected may be used, or a form in which an initial state is adopted at a ratio based on an energy value stored (shared between replicas) in each replica, for example, energy. The form may be selected so that the smaller the value, the higher the probability of being adopted. In this way, various methods can be implemented for selecting the initial state.

最適化の段階においては、GPU等の並列演算ブロックにそれぞれの初期値(初期状態)に対する近傍探索を割り当ててもよい。同じ演算ブロックの演算コアは、例えば、同じ初期値に基づいた近傍探索を並列に実行することができる。複数の演算ブロックを用いることで、複数の初期値からの演算を並列に実行することもできる。それぞれの初期値に基づいて、近傍の状態及び評価を並列演算することで、より高速な最適化を実行することができる。 In the optimization stage, a neighborhood search for each initial value (initial state) may be assigned to a parallel computing block such as a GPU. The arithmetic cores of the same arithmetic block can, for example, execute neighborhood searches based on the same initial values in parallel. By using a plurality of operation blocks, operations from a plurality of initial values can be executed in parallel. Higher-speed optimization can be executed by performing parallel operations on neighboring states and evaluations based on each initial value.

複数の初期値から探索された状態から、あらかじめ設定したルールに基づいて複数個の状態を選択して、これらを新たな初期値としてもよい。この新たな初期値を再度演算ブロックに割り当てることで、新たな初期値についても適切に並列演算を実行することができる。 From the states searched from a plurality of initial values, a plurality of states may be selected based on a preset rule and these may be set as new initial values. By reassigning this new initial value to the calculation block, parallel calculation can be appropriately executed for the new initial value as well.

上記のように初期値ごとに演算ブロックを割り当てる場合には、最適化における演算ブロックの数を、GPU等に適している演算ブロックの数の約数と設定してもよい。約数と設定することで、GPU等の演算コアにおいて、まとまった単位ごとに適切に初期値を設定した近傍探索の並列演算を実行することができる。さらに、1つのGPU等を同じ演算ブロックとしてもよい。すなわち、複数のGPU等を用いる場合において、個々のGPU等が同じ初期値からの近傍探索を実行する形態とすることもできる。 When allocating arithmetic blocks for each initial value as described above, the number of arithmetic blocks in optimization may be set as a divisor of the number of arithmetic blocks suitable for GPU or the like. By setting it as a divisor, it is possible to execute parallel operations of neighborhood search in which initial values are appropriately set for each unit in an arithmetic core such as GPU. Further, one GPU or the like may be the same arithmetic block. That is, when a plurality of GPUs or the like are used, it is possible that each GPU or the like executes a neighborhood search from the same initial value.

また、1つのレプリカに対して複数の演算ブロックが割り当てられる場合には、異なる最適化パラメータ(例えば、温度パラメータ)を演算ブロックごとに割り当ててもよい。異なる最適化パラメータを同じ初期値に対して用いることで、異なる探索経路における状態を用いて最適化を実行することができる。 Further, when a plurality of arithmetic blocks are assigned to one replica, different optimization parameters (for example, temperature parameters) may be assigned to each arithmetic block. By using different optimization parameters for the same initial value, optimization can be performed using the states in different search paths.

図8は、図7の第2並列処理についてのアルゴリズムの一例(Algorithm 3)を擬似コードとして示す。出力は、最適化により取得される解である。パラメータとして、同時に実行するレプリカの数nr、最適化の反復回数niterが定義される。同時に実行するレプリカは、上記の第2並列処理を同時に実行する数である。 FIG. 8 shows an example (Algorithm 3) of the algorithm for the second parallel processing of FIG. 7 as pseudo code. The output is the solution obtained by optimization. As parameters, the number of replicas to be executed at the same time n r and the number of optimization iterations n iter are defined. The number of replicas executed at the same time is the number of replicas that execute the above-mentioned second parallel processing at the same time.

1. まず、レプリカにおける最適解を格納する配列result[nr]を準備する。resultは、要素ごとに、例えば、状態、逆温度、エネルギーを格納する構造体の配列である。例えば、result[i] = (xi, βi, Ei)という構造を有する。xiは、i番目のレプリカにおける状態、βiは、i番目のレプリカにおける逆温度、Eiは、i番目のレプリカにおけるエネルギーを表す。 1. First, prepare the array result [n r ] that stores the optimal solution in the replica. result is an array of structures that store, for example, state, reverse temperature, and energy for each element. For example, it has a structure of result [i] = (x i , β i , E i ). x i is the state in the i-th replica, β i is the inverse temperature in the i-th replica, and E i is the energy in the i-th replica.

2. このループは、並列に実行される焼きなましを、何度繰り返すかを表す。すなわち、nr個のレプリカにおいて並列に焼きなましを用いて最適化すること、をniter回繰り返すことを意味する。 2. This loop represents how many times the annealing performed in parallel is repeated. That is, it means that optimization using annealing in parallel in n r replicas is repeated n iter times.

3. 一方でこちらのループは、焼きなましの第2並列処理を表すループである。4.から17.までの処理をnrのレプリカを用いて並列にnr通りの焼きなましによる最適化を行うことを表す。すなわち、このループ内の処理(プロセス)は、シーケンシャルに実行されるものではなく、パラレルに実行されるものである。 3. On the other hand, this loop is a loop that represents the second parallel processing of annealing. It means that the processes from 4 to 17 are optimized by annealing in parallel in n r ways using n r replicas. That is, the processes in this loop are not executed sequentially, but are executed in parallel.

4. ~ 8. レプリカにおける初期値の設定をする。ループの最初においては、5.の処理によりレプリカの状態の初期値を設定する。例えば、予め与えられた状態であってもよいし、乱数で取得される状態であってもよい。初期のエネルギーは、十分大きな値(例えば、変数型における最大値等)としてもよい。逆温度の初期値は、全てのレプリカに対して設定される温度の初期値を設定する。 4. ~ 8. Set the initial value for the replica. At the beginning of the loop, the initial value of the replica state is set by the process of 5. For example, it may be in a state given in advance or in a state of being acquired by a random number. The initial energy may be a sufficiently large value (for example, the maximum value in the variable type). The initial value of the reverse temperature sets the initial value of the temperature set for all replicas.

2回目のループからは、7.の処理により、レプリカの状態をresult[]の中から選択して設定する。選択方法は、上記のフローチャート説明でしたように、例えば、エネルギーが最小となる状態を選択したり、所定の割合によりいくつかの状態を振り分けたりする。 From the second loop, the replica state is selected from result [] and set by the process of 7. As the selection method, as described in the flowchart above, for example, the state in which the energy is minimized is selected, or some states are distributed according to a predetermined ratio.

9. このループは、レプリカごとにどの程度の焼きなましにおける最適化を実行するかを設定する。例えば、このループは、Algorithm 2-1の処理に対応する処理が何度実行されるかを定義するものであり、この場合、温度の更新回数に基づいて繰り返し回数が決定されてもよい。MaxStepは、繰り返しの回数を示す。 9. This loop sets how much annealing optimization to perform for each replica. For example, this loop defines how many times the processing corresponding to the processing of Algorithm 2-1 is executed, and in this case, the number of repetitions may be determined based on the number of temperature updates. MaxStep indicates the number of repetitions.

10. ここで、Algorithm 1, 2-1, 2-2の処理(第1並列処理)が実行される。なお、前述のアルゴリズムと厳密に同じ処理に限定されるものではない。例えば、Algorithm 1のような近傍の探索の並列を行わないアルゴリズム(第1並列処理を用いない処理)であってもよいが、もちろん近傍の探索においても第1並列処理により実行された方がよい。同様に、Algorithm 2-1等のように、逆温度の制御を行わない、すなわち、Algorithm 1のみを用いた最適化であってもよい。また、Algorithm 2-2にしたがわない逆温度の更新割合が定義されていてもよい。このように、この行での処理は、焼きなましによる処理が適切に実現されるものであればよいが、精度面、計算速度面から、第1並列処理を含む上記のAlgorithm 1, 2-1, 2-2に準ずる処理であることが望ましい。 10. Here, the processing of Algorithm 1, 2-1, 2-2 (first parallel processing) is executed. It should be noted that the processing is not limited to exactly the same as the above-mentioned algorithm. For example, an algorithm such as Algorithm 1 that does not perform parallel search of the neighborhood may be used (processing that does not use the first parallel processing), but of course, it is better to execute the search of the neighborhood by the first parallel processing. .. Similarly, optimization using only Algorithm 1 may be performed without controlling the reverse temperature, such as Algorithm 2-1 and the like. In addition, the update rate of the reverse temperature may be defined according to Algorithm 2-2. As described above, the processing in this line may be any one that can appropriately realize the processing by annealing, but from the viewpoint of accuracy and calculation speed, the above Algorithm 1, 2-1, including the first parallel processing It is desirable that the process conforms to 2-2.

11. ~ 15. 前述のアルゴリズムにより取得された状態に基づいて、エネルギー値により最良エネルギー、逆温度、解を更新する。詳細は、上記のフローチャートの説明においてしたとおりである。例えば、i番目のレプリカにおいて、10.の処理において取得された最良エネルギー値、この最良エネルギーを与える逆温度、最良エネルギーに対する状態を、それぞれEi best、βi best、xi bestとする。なお、10.の処理の最終的な出力を更新する状態等としてもよいし、10.の処理において最小エネルギーとなった状態を更新する状態等としてもよい。 11. ~ 15. Based on the state obtained by the above algorithm, the best energy, inverse temperature, and solution are updated by the energy value. The details are as described in the above flowchart. For example, in the i-th replica, the best energy value obtained in the process of 10., the inverse temperature giving this best energy, and the state with respect to the best energy are set as E i best , β i best , and x i best , respectively. The final output of the process of 10. may be updated, or the state of the minimum energy in the process of 10. may be updated.

後者の場合、最適化においてもエネルギー、逆温度、状態を格納するメモリ領域を確保しておき、10.の処理、例えば、図4の5.の実行の後、格納されているエネルギーがより小さくなる場合には、エネルギー、逆温度、状態を更新しておいてもよい。このようにすることで、逆温度により改悪された場合が最終的に出力された場合においても、最適化の経過において取得された最適値を用いて状態等を更新することができる。 In the latter case, the memory area for storing energy, reverse temperature, and state is secured even in the optimization, and the stored energy becomes smaller after the processing of 10. For example, the execution of 5. in Fig. 4. If so, the energy, reverse temperature, and state may be updated. By doing so, even when the case of deterioration due to the reverse temperature is finally output, the state or the like can be updated using the optimum value acquired in the process of optimization.

17. 4. ~ 16.の処理において取得された最良エネルギーに対する解等をresult[i]に格納する。 17. Store the solution for the best energy obtained in the processes of 4. to 16. in result [i].

そして、2回目以降3. ~ 17.のループにおいて、7.の処理で各レプリカの初期値として前回のループまでにおいて最適であった状態等、若しくは、それに準ずる状態等、又は、全体としての広範囲な最適化が実現できる状態等を設定することが可能となる。 Then, in the loops 3 to 17. from the second time onward, the state that was optimal as the initial value of each replica up to the previous loop in the process of 7. It is possible to set a state in which various optimizations can be realized.

以上のように、良好な解及び逆温度等のパラメータを他のレプリカと共有し、良好な解の周辺を効率よく探索することが可能となる。このように探索を実行することにより、解の配置、初期温度等の設定が困難である焼きなまし法の処理を、最適化の実行中に解決することが可能となる。 As described above, parameters such as a good solution and reverse temperature can be shared with other replicas, and the periphery of the good solution can be efficiently searched. By executing the search in this way, it is possible to solve the simulated annealing process in which it is difficult to arrange the solution, set the initial temperature, and the like during the execution of the optimization.

なお、図8の7.の処理においては、複数のレプリカに同一の状態等が設定されることがあるが、この場合においても、焼きなまし法はランダム性が高い手法であるので、レプリカごとに異なる状態に収束させ、多様性を確保することが可能となる。上記のことから、よりよい解を見つけるために初期解の配置、初期パラメータ等が自明ではない場合にも、本実施形態に係る手法を用いることにより、初期段階ではより広範囲に解を探索し、徐々に範囲を狭めていきつつ、狭い範囲内における解の探索をも高精度、高性能で実現することが可能となる。 In the process of 7. in Fig. 8, the same state may be set for multiple replicas, but even in this case, Simulated Annealing is a highly random method, so it differs for each replica. It is possible to converge on the state and secure diversity. From the above, even when the arrangement of the initial solution, the initial parameters, etc. are not obvious in order to find a better solution, by using the method according to the present embodiment, the solution can be searched for in a wider range at the initial stage. While gradually narrowing the range, it is possible to search for a solution within a narrow range with high accuracy and high performance.

以上のような実施形態によれば、収束速度を向上させることが可能であり、理想的な逆行採択確率に基づいて、適切に改悪する状態への遷移を制御し、かつ、マルチコア、メニーコアのプロセッサを含むデバイスにおける並列演算を有効的に実現するアルゴリズムを実行することができる。 According to the above-described embodiment, it is possible to improve the convergence speed, control the transition to an appropriately deteriorating state based on the ideal retrograde adoption probability, and use a multi-core or many-core processor. It is possible to execute an algorithm that effectively realizes parallel computing in a device including.

(実装例)
以下、限定されない一例として、製造工程におけるスケジュール管理問題であるジョブショップスケジューリング問題の最適化を用いて具体例を挙げて説明する。
(Implementation example)
Hereinafter, as an example without limitation, a specific example will be described using optimization of the job shop scheduling problem, which is a schedule management problem in the manufacturing process.

ジョブショップスケジューリング問題は、例えば、複数機械を用いて複数の仕事(製品)を処理する場合に、どのように仕事を割り振れば効率よく作業が進められるかを決定する最適化問題である。この最適化は、例えば、最も時間効率がよい、最も早くから製品を出荷できる、又は、時間平均的に製品の製造個数がぶれない等の種々の条件付けにより最適化を実行することができる。本実装例においては、このジョブショップスケジューリング問題を前述の実施形態においてどのように解くかを説明する。本願においては以後、ある機械に対する仕事(製品)の処理順序を単に工程と呼ぶこともある。また、以下ではジョブショップスケジューリング問題を例に説明するが、本願の手法は、例えば巡回セールスマン問題など、処理順序を決定するスケジュール問題に広く適用可能である。 The job shop scheduling problem is, for example, an optimization problem that determines how to allocate jobs to efficiently proceed when processing a plurality of jobs (products) using a plurality of machines. This optimization can be performed by various conditions such as, for example, the most time-efficient, the earliest product can be shipped, or the number of products manufactured does not fluctuate on an average time. In this implementation example, how to solve this job shop scheduling problem in the above-described embodiment will be described. In the present application, the processing order of work (product) for a certain machine may be simply referred to as a process. Further, although the job shop scheduling problem will be described below as an example, the method of the present application can be widely applied to a schedule problem for determining the processing order, such as a traveling salesman problem.

例えば、スケジューリングの最適化として、ある仕事と、別のある仕事との順番を入れ替える場合には、バイナリ形式においては、例えば、バイナリで示されている行列に対して、対応する2要素の組を入れ替えることに等しい。この順番の入れ替えにおいて、制約条件を満たすか否かを判定する必要がある。例えば、行に対する制約、列に対する制約、及び、その他の制約を入れ替えの前後において判定する必要があり、変数間の関係が複雑になると、この制約条件の判定に莫大な計算コストが費やされる。 For example, as a scheduling optimization, when the order of one job and another is swapped, in the binary format, for example, for the matrix shown in binary, the corresponding pair of two elements is used. Equivalent to swapping. In this order change, it is necessary to determine whether or not the constraint condition is satisfied. For example, constraints on rows, constraints on columns, and other constraints need to be determined before and after swapping, and when the relationships between variables become complicated, enormous computational costs are spent in determining these constraints.

一方で、例えば、仕事を整数値で表すことで、これらの入れ替えは、時系列に沿った順番に並べられた2変数を入れ替えるだけで実現することができる。また、整数値で表すことで、変数の次元を削減することが可能でなる。このため、仕事の順序だけを考慮したコスト関数に着目して最適化を実現することができる。さらに、複数の仕事を入れ替えた近傍についても、変数を入れ替えるだけで実現することができるので、近傍探索の効率をより向上させることが可能となる。 On the other hand, for example, by expressing the work as an integer value, these exchanges can be realized only by exchanging two variables arranged in order in chronological order. Moreover, by expressing it as an integer value, it is possible to reduce the dimension of the variable. Therefore, the optimization can be realized by paying attention to the cost function considering only the work order. Further, since it is possible to realize a neighborhood in which a plurality of jobs are exchanged only by exchanging variables, it is possible to further improve the efficiency of neighborhood search.

なお、ここでは、限定されない一例としてジョブショップスケジューリング問題を扱うが、他のスケジューリング問題についても同様に適用することが可能である。 Although the job shop scheduling problem is dealt with here as an example without limitation, it can be applied to other scheduling problems as well.

図9は、一実施形態に係る工程表の一部の初期状態 (最適化前の状態) における例を示す図である。各機械1~4がそれぞれの時刻1~3にどの仕事A~Fを処理するかを示している。このスケジュールについて、例えば、何らかのコストが削減できパフォーマンスの向上が図られるスケジュールを最適化により取得することを考える。例えば、機械3における仕事を入れ替える場合について例を挙げる。 FIG. 9 is a diagram showing an example in a part of the initial state (state before optimization) of the process table according to the embodiment. It shows which work A to F is processed by each machine 1 to 4 at each time 1 to 3. Regarding this schedule, for example, consider acquiring a schedule that can reduce some cost and improve performance by optimization. For example, a case where the work in the machine 3 is exchanged will be given.

図10は、図9のスケジュールにおける機械3の工程を入れ替えた例を挙げたものである。この図10に示すように、B、C、Fであった機械3の工程を、近傍探索として、F、C、Bと入れ替えたり、B、F、Cと入れ替えたりした後に、評価値を取得し、ヒューリスティクス又はメタヒューリスティクスの手法を用いてスケジュールの最適化を実現する。情報処理システム1は、例えば、評価が高くなるように、又は、エネルギーが小さくなるように、スケジュールの最適化を実行する。 FIG. 10 shows an example in which the processes of the machine 3 in the schedule of FIG. 9 are replaced. As shown in FIG. 10, the process of the machine 3 which was B, C, F is replaced with F, C, B or B, F, C as a neighborhood search, and then the evaluation value is acquired. Then, heuristics or metaheuristics are used to optimize the schedule. The information processing system 1 executes schedule optimization so that the evaluation is high or the energy is low, for example.

評価又はエネルギーは、例えば、それぞれの仕事を入れ替えることにより変更する処理時間の加速/遅延等の情報に基づいて、算出される。情報処理システム1は、例えば、実処理時間あたりの製造個数、納期遅れ時間、パイプライン処理の加速/遅延、又は、推定される歩留まり等を用いて評価値を算出してもよい。 The evaluation or energy is calculated based on information such as acceleration / delay of processing time that is changed by exchanging each work, for example. The information processing system 1 may calculate an evaluation value using, for example, the number of products manufactured per actual processing time, the delivery delay time, the acceleration / delay of pipeline processing, the estimated yield, and the like.

この評価又はエネルギーを、機械3に限定せずに、ヒューリスティクス、メタヒューリスティクスの手法を用いて実行する。そして、情報処理システム1は、前述した実施形態における複数のレプリカ、及び、逆温度を用いて評価に基づいて最適化をする。 This evaluation or energy is not limited to the machine 3, but heuristics and metaheuristics are used to carry out this evaluation or energy. Then, the information processing system 1 optimizes based on the evaluation using the plurality of replicas in the above-described embodiment and the reverse temperature.

図11は、量子アニーリングマシン、もしくは、量子アニーリングマシンと似た動作を古典コンピュータで焼きなまし法を用いて最適化を実行する場合にQUBO変数で定式化されている工程を示す表現と、本実施形態に係る工程の実装について示す図である。量子コンピューティングを用いた最適化を実現する形式における工程は、左図に示されるように、時間のステップと、仕事IDと、を指定したマトリクス状に0、1のバイナリ表示で状態を表すことにより実装される。例えば左図では、時刻1ではID 1の仕事が、時刻2ではID 3の仕事が、といったようにスケジュールが表現される。 FIG. 11 shows an expression showing a process formulated by QUBO variables when optimizing a quantum annealing machine or an operation similar to a quantum annealing machine by using simulated annealing on a classical computer, and the present embodiment. It is a figure which shows the implementation of the process which concerns on. As shown in the figure on the left, the process in the form that realizes optimization using quantum computing is to represent the state in a binary representation of 0 and 1 in a matrix with time steps and work IDs. Implemented by. For example, in the figure on the left, the schedule is expressed such that the work of ID 1 at time 1 and the work of ID 3 at time 2.

状態の遷移、ここでは仕事の入れ替え等は、変数制約違反を伴う変更が必要となる。QUBOモデルでは、このように工程が表現される。例えば、時刻2の仕事ID 3の仕事と、時刻4の仕事ID 4の仕事を入れ替える場合、マトリクスの3行目2列目の”1”及び4行目4列目の”1”を、それぞれ、4行目2列目の”0”及び3行目4列目の”0”に入れ替える必要がある。 State transitions, here work changes, etc., require changes that involve variable constraint violations. In the QUBO model, the process is expressed in this way. For example, when exchanging the job with job ID 3 at time 2 and the job with job ID 4 at time 4, "1" in the 3rd row and 2nd column of the matrix and "1" in the 4th row and 4th column are used, respectively. , It is necessary to replace with "0" in the 4th row and 2nd column and "0" in the 3rd row and 4th column.

しかしながら、このバイナリ表現を用いると、各工程で順次仕事が処理される場合には変数の次元が高次となり、また、焼きなましにおける遷移を繰り返すときには、遷移で考慮しなくてはならない制約が多くなり、このような拘束条件を考慮した演算により計算コストが高くなる。例えば、上記の例では、3行目の値の入れ替えと、4行目の値の入れ替えと、においてそれぞれ制約が生じるし、2列目の値の入れ替えと、4列目の値の入れ替えと、においてそれぞれ制約が生じる。このような制約を最適化の近傍を探索するたびに実行する必要があり、変数同士の制約やその他の要因に関しての制約において、計算コストが非常に高くなる蓋然性がある。 However, when this binary representation is used, the dimension of the variable becomes higher when the work is processed sequentially in each process, and when the transition in annealing is repeated, there are many restrictions that must be taken into consideration in the transition. , The calculation cost becomes high by the calculation considering such a constraint condition. For example, in the above example, there are restrictions on the replacement of the values in the 3rd row and the replacement of the values in the 4th row, and the replacement of the values in the 2nd column and the replacement of the values in the 4th column, respectively. Each has its own restrictions. Such constraints must be executed each time the optimization neighborhood is searched, and there is a possibility that the calculation cost will be very high in the constraints on variables and other factors.

そこで、本実施形態では、例えば、量子アニーリングにおいてバイナリで記述される変数を整数変数に拡張することにより計算コストを大幅に削減可能とする。右図は、仕事IDの表現を整数変数に拡張したものであり、例えば、工程P1が左図のマトリクスが表す工程であり、この工程内の各処理を任意に入れ替えることが可能となる。また、図11の右図中にP2、P3、P4として示すように、複数の工程に対しても同様に整数表現をすることができるので、QUBO変数で表す場合よりも変数の次元を少なくすることができる。 Therefore, in the present embodiment, for example, the calculation cost can be significantly reduced by expanding the variable described in binary in quantum annealing to an integer variable. The figure on the right is an extension of the expression of the work ID to an integer variable. For example, the process P1 is the process represented by the matrix in the figure on the left, and each process in this process can be arbitrarily replaced. In addition, as shown as P2, P3, and P4 in the right figure of FIG. 11, since integer representation can be performed for a plurality of processes in the same manner, the dimension of the variable is reduced as compared with the case of expressing with the QUBO variable. be able to.

図12は、一実施形態に係る工程内の処理順序の入れ替え(近傍探索)の一例を示す図である。情報処理システム1は、例えば、焼きなましの過程において、工程P1の時刻2、4の処理である仕事3、4を入れ替える。この図12では、1つの工程P1に係る処理だけを入れ替えているがこれに限定されるものではない。 FIG. 12 is a diagram showing an example of switching the processing order (neighborhood search) in the process according to the embodiment. The information processing system 1 replaces jobs 3 and 4, which are processes at times 2 and 4 in process P1, for example, in the annealing process. In FIG. 12, only the processes related to one step P1 are replaced, but the present invention is not limited to this.

図13は、一実施形態に係る工程の処理順序の入れ替えの別の例を示す図である。情報処理システム1は、例えば、焼きなましの過程において、複数の工程の処理順序を入れ替えてもよい。 FIG. 13 is a diagram showing another example of changing the processing order of the steps according to the embodiment. In the information processing system 1, for example, in the annealing process, the processing order of a plurality of processes may be exchanged.

図12は、例えば、工程内の1つの製品における処理順序の変更として説明したが、工程内における2つの製品の入れ替え、を意味してもよい。この場合、図13は、複数の工程における2つの製品の入れ替えを意味する。 Although FIG. 12 has been described as, for example, changing the processing order in one product in the process, it may mean the replacement of two products in the process. In this case, FIG. 13 means the replacement of two products in a plurality of steps.

図14は、一実施形態に係る工程内の処理順序の入れ替えのさらに別の例を示す図である。情報処理システム1は、例えば、複数の工程における同じ組み合わせの処理を入れ替えてもよい。図14では、全ての仕事2、3の処理順序を入れ替えているが、これに限定されるものではない。処理回路10は、例えば、全ての工程ではない任意の複数の工程の組み合わせにおいて、同じ組み合わせの仕事の処理順序を入れ替えてもよい。 FIG. 14 is a diagram showing still another example of changing the processing order in the process according to the embodiment. The information processing system 1 may replace the same combination of processes in a plurality of steps, for example. In FIG. 14, the processing order of all jobs 2 and 3 is exchanged, but the processing order is not limited to this. The processing circuit 10 may replace the processing order of the work of the same combination in the combination of any plurality of processes, for example, not all the processes.

焼きなましの処理における上記の処理順序の入れ替えは、入れ替える組み合わせごとにコストが設定されていてもよい。情報処理システム1は、コストを定式化することで、焼きなましの過程におけるエネルギー値の演算を実行してもよい。 For the above-mentioned replacement of the processing order in the annealing process, a cost may be set for each combination to be replaced. The information processing system 1 may execute the calculation of the energy value in the annealing process by formulating the cost.

例えば、図12のように仕事3、4の処理順序を入れ替える場合と、図14のように仕事2、3の処理順序を入れ替える場合とで別々のコストを割り当て、このコストを考慮したエネルギー値を算出してもよい。また、図12のように1つの工程における処理順序の入れ替えに関するコストと、図13のように複数の工程における処理順序の入れ替えに関するコストとで別々のコストを割り当ててもよい。 For example, different costs are assigned to the case where the processing order of work 3 and 4 is changed as shown in Fig. 12 and the case where the processing order of work 2 and 3 is changed as shown in Fig. 14, and the energy value considering this cost is assigned. It may be calculated. Further, different costs may be assigned to the cost related to the replacement of the processing order in one process as shown in FIG. 12 and the cost related to the replacement of the processing order in a plurality of processes as shown in FIG.

このようにコストを定式化することで、管理者がある程度の工程の処理順序を拘束した状態で、最適化を実現することができる。 By formulating the cost in this way, optimization can be realized while the administrator constrains the processing order of the process to some extent.

本実施形態では、近傍探索をいくつかの限定されない例として図12から図14に示すように実行するが、この処理は、並列処理として実行することができる。情報処理システム1は、並列処理をすることで、多くの近傍探索を同じタイミングで実行することができる。上記に示したレプリカを用いる処理方法によれば、焼きなましの処理を並列化して実現することもできる。 In the present embodiment, the neighborhood search is executed as shown in FIGS. 12 to 14 as some non-limiting examples, but this process can be executed as a parallel process. The information processing system 1 can execute many neighborhood searches at the same timing by performing parallel processing. According to the processing method using the replica shown above, the annealing process can be realized in parallel.

図15は、複数のレプリカにおける工程における処理の入れ替えの様子とエネルギー値の一部を抜き出した例を示す図である。ここでは、一部のレプリカとしてレプリカR1からR8の8個のレプリカを抽出している。レプリカR1、R2は、同じ初期状態を有する。同様に、レプリカR3、R4、レプリカR5、R6、レプリカR7、R8は、同じ初期状態を有する。 FIG. 15 is a diagram showing a state of replacement of processing in a process in a plurality of replicas and an example of extracting a part of energy values. Here, eight replicas of replicas R1 to R8 are extracted as some replicas. Replicas R1 and R2 have the same initial state. Similarly, replicas R3, R4, replicas R5, R6, replicas R7, R8 have the same initial state.

図の中抜きの右矢印は、焼きなまし過程を示し、矢印の左側に示す工程が焼きなましにより矢印の右側に示す工程にそれぞれのレプリカにおいて最適化されていることを示す。矢印の右側の表におけるA、B行に記載されている数字は、時刻1~7のそれぞれにおいて、実際に処理される仕事を示す数値である。表の右に示す数値は、それぞれのレプリカにおける最適化後のエネルギーである。これらの処理は、図4、図5に基づき、図8のレプリカ内の処理に沿って実行される。 The hollow right arrow in the figure indicates the annealing process and indicates that the process shown on the left side of the arrow is optimized for each replica to the process shown on the right side of the arrow by annealing. The numbers in rows A and B in the table to the right of the arrow are numbers indicating the work actually processed at each of the times 1 to 7. The numbers shown to the right of the table are the optimized energies for each replica. These processes are executed according to the processes in the replica of FIG. 8 based on FIGS. 4 and 5.

レプリカごとに最適化された後、情報処理システム1は、エネルギー値が重複するレプリカ同士について、1つの結果を除き削除することで、次の焼きなましのサイクルの初期値の候補として取得する。続いて、情報処理システム1は、エネルギーに基づいて取得されたレプリカからの候補を順序付けする。これは、図8に記載されているアルゴリズムに沿って実行される。例えば、図11の例では、レプリカR2、R5、R8から取得される解を、この順番で result[i] に格納し、最良解を更新する。そして、図8のアルゴリズムにしたがって、順序付けされた候補から次の初期値を選択し、次のイテレーションの演算が実行される。 After being optimized for each replica, the information processing system 1 acquires replicas with overlapping energy values as candidates for the initial value of the next annealing cycle by deleting all but one result. The information processing system 1 then orders the candidates from the replicas acquired based on energy. This is done according to the algorithm shown in Figure 8. For example, in the example of FIG. 11, the solutions obtained from replicas R2, R5, and R8 are stored in result [i] in this order, and the best solution is updated. Then, according to the algorithm of FIG. 8, the next initial value is selected from the ordered candidates, and the operation of the next iteration is executed.

なお、本実施形態においてはレプリカごとに最適化された後に、エネルギー値が重複するレプリカ同士について、1つの結果を除き削除することとしたが、重複するレプリカの削除方法はこれに限られるものではない。例えば複数のレプリカが重複するかどうかの判定を、エネルギー値が同じかどうかではなく、1または複数の工程が同じかどうかに基づいて判定してもよい。 In this embodiment, after optimization for each replica, replicas with overlapping energy values are deleted except for one result, but the method for deleting duplicate replicas is not limited to this. do not have. For example, whether or not a plurality of replicas are duplicated may be determined based on whether or not one or a plurality of steps are the same, rather than whether or not the energy values are the same.

さらに、図15に示すように、複数のレプリカに同じ初期値を与えてもよい。これは、図8におけるアルゴリズムにおいて、3行目から17行目に示すレプリカの設定において、レプリカ間で同じ初期値を設定することに対応する。図8の例では、全てのレプリカ値が同じデフォルト値で初期化されるように示されているように見えるが、これに限定されるものではない。例えば、図15に示すように、複数のレプリカ群に対して同じデフォルト値を用い、異なるレプリカ群間では異なるデフォルト値を用いる形態としてもよい。 Further, as shown in FIG. 15, the same initial value may be given to a plurality of replicas. This corresponds to setting the same initial value between replicas in the replica settings shown in the 3rd to 17th lines in the algorithm shown in FIG. In the example of FIG. 8, it appears that all replica values are initialized with the same default values, but it is not limited to this. For example, as shown in FIG. 15, the same default value may be used for a plurality of replica groups, and different default values may be used among different replica groups.

情報処理システム1は、それぞれの初期値に対する近傍の状態の評価を複数のGPU等の演算ブロックに割り当ててもよい。例えば、100の仕事がある場合、それぞれの仕事を1回のみ入れ替える場合において、 100 C 2 = 4950 の組み合わせとなり、1演算ブロックで1024のスレッドにおいて並列処理ができるとすると、 4950 / 1024 = 4.8 となり、5回のループ演算が必要となる。一方で、この処理を5演算ブロックで実行することにより、1回のループ演算で、この入れ替えにおける評価値を取得することができる。 The information processing system 1 may assign the evaluation of the state of the vicinity to each initial value to a plurality of arithmetic blocks such as GPUs. For example, if there are 100 jobs and each job is replaced only once, the combination is 100 C 2 = 4950, and if one arithmetic block can perform parallel processing in 1024 threads, then 4950/1024 = 4.8. , 5 loop operations are required. On the other hand, by executing this process in 5 arithmetic blocks, the evaluation value in this replacement can be acquired by one loop arithmetic.

初期値の選択は、上記に限定されるものではない。情報処理システム1は、例えば、複数の初期値から導かれた前のループの最終状態から、あらかじめ設定したルールに基づいて、複数個の状態を選択し、これらを新たな初期値として再度近傍探索を実行してもよい。 The selection of the initial value is not limited to the above. For example, the information processing system 1 selects a plurality of states from the final state of the previous loop derived from the plurality of initial values based on a preset rule, and searches the neighborhood again using these as new initial values. May be executed.

GPU等で実装される場合、情報処理システム1は、上記の複数の演算ブロック数を、演算ブロック並列可能な数の約数とすることもできる。 When implemented on a GPU or the like, the information processing system 1 can also set the number of the above-mentioned plurality of arithmetic blocks to be a divisor of the number of arithmetic blocks that can be paralleled.

複数の初期値から初期値ごとに独立にメタヒューリスティクスな手法による処理を実行する場合、この数を演算ブロック並列数の約数とすることにより、効率的にGPUを使用することが可能となる。情報処理システム1は、例えば、演算ブロック並列数が80である場合には、初期値を与えるレプリカ数として、80の約数である2、4、5、8、・・・とすることで、それぞれのレプリカが並列に計算される数を均等化することができる。この結果、効率的にGPUを使用することが可能となる。また、情報処理システム1として複数のGPUを備える場合についても同様に、この使用可能なGPUのうち、並列数の約数に基づいた数のGPUを用いることもできる。 When processing by a metaheuristic method is executed independently for each initial value from multiple initial values, it is possible to use the GPU efficiently by making this number a divisor of the number of parallel arithmetic blocks. .. In the information processing system 1, for example, when the number of parallel arithmetic blocks is 80, the number of replicas that give initial values is 2, 4, 5, 8, ..., which is a divisor of 80. The number of each replica calculated in parallel can be equalized. As a result, it becomes possible to use the GPU efficiently. Similarly, when the information processing system 1 is provided with a plurality of GPUs, the number of usable GPUs based on the divisor of the number of parallels can be used.

このように、情報処理システム1は、処理順列の入れ替え候補の列挙と評価を、GPUの演算ブロック並列、スレッド並列、及び、複数ボードを用いた並列で実行してもよい。以下の様な場合に、このような実装は、より高速化及び精度向上の効果を奏する。 In this way, the information processing system 1 may perform enumeration and evaluation of replacement candidates of the processing sequence in parallel with the arithmetic blocks of the GPU, in parallel with threads, and in parallel with a plurality of boards. In the following cases, such an implementation has the effect of increasing the speed and improving the accuracy.

また、上述したように、同一の初期値に対して、温度等の異なる最適化パラメータを用いた解の探索を、異なる演算ブロックを用いて実行することもできる。 Further, as described above, it is also possible to search for a solution using different optimization parameters such as temperature for the same initial value by using different arithmetic blocks.

情報処理システム1は、同一の初期値に対して上述したように複数のレプリカを構成してもよい。メタヒューリスティクスな手法が焼きなまし法である場合には、情報処理システム1は、温度パラメータ等の各種パラメータに対して異なる値を設定することで、選択される近傍の領域の大きさを異なる状態で探索を実現することができる。このように実装することで、逆温度が小さく設定されているレプリカにおいては、広い範囲での探索を実現し、逆温度が大きく設定されているレプリカにおいては、狭い範囲でのより細かい粒度での探索を実現することができる。 The information processing system 1 may configure a plurality of replicas for the same initial value as described above. When the metaheuristic method is simulated annealing, the information processing system 1 sets different values for various parameters such as temperature parameters, so that the size of the selected neighborhood area is different. Search can be realized. By implementing in this way, the search in a wide range is realized in the replica where the reverse temperature is set small, and in the replica where the reverse temperature is set large, the fine grain size in a narrow range is realized. The search can be realized.

このような実装は、例えば、タブーサーチ等の探索手法においても有効であるし、他のメタヒューリスティクスな手法についても同様の実装をすることが可能である。 Such an implementation is also effective in a search method such as tabu search, and it is possible to implement the same in other metaheuristic methods.

また、初期値として与えた処理順から解を探索する処理を複数の初期値、複数(2以上)の最適化パラメータで実行させてもよい。この場合、探索途中で高い評価を得ている候補を複数抽出し、この抽出した処理順に対して、1又は複数の最適化パラメータを与えて、再度解の探索を実行してもよい。すなわち、情報処理システム1は、初期で与えた処理順から解を探索する処理を複数の初期値、複数の最適化パラメータで実行する場合に、探索の途中で高い評価を取得した候補を複数抽出し、前記抽出した処理順に対して、複数の最適化パラメータを与えて、図8等に示す探索を実行してもよい。 Further, the process of searching for a solution from the process order given as the initial value may be executed with a plurality of initial values and a plurality of (two or more) optimization parameters. In this case, a plurality of candidates that are highly evaluated during the search may be extracted, one or a plurality of optimization parameters may be given to the extracted processing order, and the solution search may be executed again. That is, when the information processing system 1 executes the process of searching for a solution from the processing order given at the initial stage with a plurality of initial values and a plurality of optimization parameters, the information processing system 1 extracts a plurality of candidates who have obtained a high evaluation during the search. Then, a plurality of optimization parameters may be given to the extracted processing order, and the search shown in FIG. 8 or the like may be executed.

なお、前述と同様に、最適化パラメータは、逆行採択確率の目標値、当該目標値のスケジューリングパラメータ又は逆温度の更新頻度のうち少なくとも1つであってもよいが、これらに限定されるものではない。 As described above, the optimization parameter may be at least one of the target value of the retrograde adoption probability, the scheduling parameter of the target value, or the update frequency of the reverse temperature, but is not limited to these. do not have.

情報処理システム1は、例えば、図15の例で説明したように、複数の異なるレプリカR2、R5、R8から取得される解を、この順番で result[i] に格納し、最良解を更新する。そして、情報処理システム1は、これらの最良解のうち、例えば、上位から抽出した複数の最良解を用いて、これらを次のレプリカのデフォルト値として初期化して最適化を実現してもよい。 For example, as described in the example of FIG. 15, the information processing system 1 stores the solutions obtained from a plurality of different replicas R2, R5, and R8 in the result [i] in this order, and updates the best solution. .. Then, the information processing system 1 may realize optimization by using, for example, a plurality of best solutions extracted from the upper level among these best solutions and initializing them as default values of the next replica.

情報処理システム1は、例えば、レプリカR2から取得された最良解を次のレプリカR1からR4の初期値としてもよい。そして、レプリカR5から取得された最良解を次のレプリカR5、R6とし、レプリカR8から取得された最良解を次のレプリカR7、R8としてもよい。その上で、それぞれのレプリカに対して温度(逆温度)等の最適化パラメータを与えてもよい。このように、順序付けした候補に対して異なるレプリカ数を割り当てることで、評価がよい(エネルギーが低い)最良解においてより広範囲かつ高粒度の近傍探索を効率よく実行することができる。 The information processing system 1 may use, for example, the best solution obtained from the replica R2 as the initial value of the next replicas R1 to R4. Then, the best solution obtained from the replica R5 may be the next replica R5, R6, and the best solution obtained from the replica R8 may be the next replica R7, R8. Then, optimization parameters such as temperature (reverse temperature) may be given to each replica. By assigning different numbers of replicas to the ordered candidates in this way, it is possible to efficiently execute a wider-range and high-grain size neighborhood search in the best solution with good evaluation (low energy).

上記においては、工程内の仕事の処理としたが、これはこれらの文言に拘束される概念ではない。例えば、仕事は、処理(プロセス)、タスク、サブタスク、用いる/生成される/処理される製品(プロダクト)等の別の概念を意味していてもよいし、工程は、プロセス、パイプライン等と置き換えることもできる。これらは、特許請求の範囲の記載についても同様である。 In the above, the processing of work in the process is used, but this is not a concept bound by these words. For example, work may mean another concept such as processing (process), task, subtask, used / generated / processed product (product), and process may mean process, pipeline, etc. It can also be replaced. The same applies to the description of the scope of claims.

前述の複数の実施形態に亘り、情報処理システム1は、焼きなまし法を用いた最適化を実行するとしたが、用いることが可能な最適化法は、これに限られるものではない。情報処理システム1は、別の例として、他の進化的アルゴリズム、メタヒューリスティクスな最適化アルゴリズムにおいて、焼きなまし法の温度に対応する概念を取り入れて適用することも可能である。 The information processing system 1 has been determined to perform optimization using simulated annealing over the plurality of embodiments described above, but the optimization method that can be used is not limited to this. As another example, the information processing system 1 can be applied by incorporating the concept corresponding to the temperature of simulated annealing in other evolutionary algorithms and metaheuristic optimization algorithms.

本開示の内容をまとめると、情報処理システムは、記憶回路と、並列演算が実行可能な1又は複数の処理回路と、を備える。処理回路は、第1並列処理により、現在の状態に対する複数の近傍の状態においてエネルギーを算出し、複数の近傍の状態におけるエネルギーに基づいてそれぞれの複数の近傍の状態が採択されるか否かを示す指標を算出し、複数の近傍の状態のいずれか1つが採択されるように、算出した指標に基づいて複数の近傍の状態に対する採択確率を算出し、この採択確率に基づいて、次の状態を前記複数の近傍の状態から選択する。 To summarize the contents of the present disclosure, the information processing system includes a storage circuit and one or more processing circuits capable of executing parallel operations. The processing circuit calculates the energy in a plurality of neighborhood states with respect to the current state by the first parallel processing, and determines whether or not each of the plurality of neighborhood states is adopted based on the energy in the plurality of neighborhood states. Calculate the indicated index, calculate the adoption probability for multiple neighboring states based on the calculated index so that any one of the multiple neighboring states is adopted, and based on this adopted probability, the next state Is selected from the plurality of neighboring states.

上記の処理において、処理回路は、指標を規格化して採択確率を取得してもよい。また、前述した形態に示すように、処理回路は、焼きなましの最適化の処理として、上記の処理を行ってもよい。この場合、指標は、温度や、現在の状態のエネルギーと近傍の状態のエネルギーとの差に基づいて算出されてもよい。処理回路は、この指標を次の近傍の状態が選択される採択確率として取得してもよい。 In the above processing, the processing circuit may standardize the index and acquire the adoption probability. Further, as shown in the above-described embodiment, the processing circuit may perform the above processing as the processing for optimizing the annealing. In this case, the index may be calculated based on the temperature or the difference between the energy of the current state and the energy of the neighboring state. The processing circuit may acquire this index as the adoption probability that the next nearby state is selected.

前述したように、例えば、図6等にしめされるように、処理回路は、現段階までの計算段階における遷移後の近傍の状態のエネルギーが遷移前の状態のエネルギーよりも大きくなる逆行採択確率と、あらかじめスケジューリングされた理想逆行採択確率と、に基づいて、逆行採択確率が理想逆行採択確率に近づくように逆温度を制御することもできる。そして、処理回路は、この逆温度に基づいて、採択確率を決定する指標を算出してもよい。 As described above, for example, as shown in FIG. 6, the processing circuit has a retrograde adoption probability in which the energy of the state in the vicinity after the transition in the calculation stage up to the current stage is larger than the energy of the state before the transition. And, based on the pre-scheduled ideal retrograde adoption probability, the reverse temperature can be controlled so that the retrograde adoption probability approaches the ideal retrograde adoption probability. Then, the processing circuit may calculate an index for determining the adoption probability based on the reverse temperature.

処理回路は、複数の現在の状態を示すレプリカを用い、レプリカにおいて第1並列処理を、第2並列処理の一部として実行してもよい。この場合、処理回路は、それぞれの第1並列処理により算出されたエネルギーに基づいて状態を更新し、第2並列処理として更新された複数の状態から次のレプリカの状態を選択することができる。 The processing circuit may use a plurality of replicas showing the current state, and the first parallel processing may be executed in the replica as a part of the second parallel processing. In this case, the processing circuit updates the state based on the energy calculated by each first parallel processing, and can select the state of the next replica from the plurality of states updated as the second parallel processing.

具体例において説明したように、処理回路は、状態を、整数値を用いて記述してもよい。スケジューリング問題においては、機械における1つの製品の処理順序の変更、2つの製品の入れ替え又は複数の機械における同じ組み合わせにおける2つの製品についての処理順序の入れ替え、のうち少なくとも1つを複数の近傍の状態のうち少なくとも1つとしてもよい。 As described in the specific example, the processing circuit may describe the state using an integer value. In a scheduling problem, at least one of the changes in the processing order of one product on a machine, the swapping of two products, or the swapping of the processing order of two products in the same combination on multiple machines, is in multiple neighborhood states. It may be at least one of them.

処理回路は、1又は複数の演算ブロックを有するGPUを含んでもよく、複数の現在の状態である初期値に対して、メタヒューリスティクスな手法を実行することができる。それぞれの初期値に対する複数の近傍の状態は、例えば、複数の近傍の状態における構成要素の組み合わせの列挙や評価をGPUの演算ブロック並列、スレッド並列及び複数のGPUを用いた並列化のうち少なくとも1つを用いて処理してもよい。また、複数の演算ブロックを用いて、少なくとも1つの複数の初期値に対する修正候補の組み合わせの列挙や評価を実現することができる。また、演算ブロックの数は、演算ブロック並列可能な数の約数であってもよい。また、同一の初期値に対して、異なる最適化パラメータを用いた近傍の探索を、異なる演算ブロックを用いて実行してもよい。 The processing circuit may include a GPU having one or more arithmetic blocks, and can execute a metaheuristic method for a plurality of initial values in the current state. Multiple neighborhood states for each initial value are, for example, at least one of GPU arithmetic block parallelism, thread parallelism, and parallelization using multiple GPUs for enumerating and evaluating the combination of components in multiple neighborhood states. You may process using one. Further, by using a plurality of arithmetic blocks, it is possible to enumerate and evaluate a combination of correction candidates for at least one plurality of initial values. Further, the number of arithmetic blocks may be a divisor of the number of arithmetic blocks that can be paralleled. Further, for the same initial value, a search for a neighborhood using different optimization parameters may be executed using different arithmetic blocks.

処理回路は、複数の近傍の状態を選択する処理において、エネルギーに基づいて複数の状態のうち他の状態よりも高い評価を取得した候補を複数抽出して順序付けしてもよく、この順序付けに基づいて、例えば、順序が前である候補に対して、異なる最適化パラメータを用いた近傍の探索を異なる演算ブロックを用いて実行してもよい。この結果、順序が高い候補については、他の候補よりも広い範囲における探索を実現することができる。 In the process of selecting a plurality of neighboring states, the processing circuit may extract and order a plurality of candidates that have obtained a higher evaluation than the other states among the plurality of states based on energy, and based on this ordering. For example, a neighborhood search using different optimization parameters may be performed using different arithmetic blocks for candidates whose order is earlier. As a result, it is possible to realize a search in a wider range than other candidates for the candidates having a high order.

処理回路を用いて、上記のそれぞれを実行する方法も同様に本開示に含まれる。同様に、ハードウェアである処理回路にソフトウェアによる情報処理を具体的に実現するプログラムも本開示に含まれる。もちろん、処理回路は、情報処理装置又は情報処理システムの一部として組み込まれてもよい。 Methods of performing each of the above using a processing circuit are also included in the present disclosure. Similarly, the present disclosure also includes a program that specifically realizes information processing by software in a processing circuit that is hardware. Of course, the processing circuit may be incorporated as a part of an information processing device or an information processing system.

本開示の態様は、前述した実施形態に限定されるものではなく、想到しうる種々の変形も含むものであり、本開示の効果も前述の内容に限定されるものではない。各実施形態における構成要素は、適切に組み合わされて適用されてもよい。すなわち、特許請求の範囲に規定された内容及びその均等物から導き出される本開示の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更及び部分的削除が可能である。 The aspects of the present disclosure are not limited to the above-described embodiments, but include various possible modifications, and the effects of the present disclosure are not limited to the above-mentioned contents. The components in each embodiment may be applied in an appropriate combination. That is, various additions, changes and partial deletions are possible without departing from the conceptual idea and purpose of the present disclosure derived from the contents defined in the claims and their equivalents.

1: 情報処理システム、
10: 情報処理装置、
100: 処理回路、
102: 記憶回路、
104: インタフェース、
106: バス、
90, 94: 外部装置、
92: ネットワーク
1: Information processing system,
10: Information processing equipment,
100: Processing circuit,
102: Memory circuit,
104: Interface,
106: Bus,
90, 94: External device,
92: Network

Claims (16)

記憶回路と、並列演算が実行可能な1又は複数の処理回路と、を備え、
前記処理回路は、
第1並列処理により、現在の状態に対する複数の近傍の状態においてエネルギーを算出し、前記複数の近傍の状態における前記エネルギーに基づいてそれぞれの前記複数の近傍の状態が採択されるか否かを示す指標を算出し、
前記複数の近傍の状態のいずれか1つが採択されるように、前記指標に基づいて前記複数の近傍の状態に対する採択確率を算出し、
前記採択確率に基づいて、次の状態を前記複数の近傍の状態から選択する、
情報処理システム。
It includes a storage circuit and one or more processing circuits capable of executing parallel operations.
The processing circuit
By the first parallel processing, energy is calculated in a plurality of neighborhood states with respect to the current state, and it is shown whether or not each of the plurality of neighborhood states is adopted based on the energy in the plurality of neighborhood states. Calculate the index,
The adoption probability for the plurality of neighborhood states is calculated based on the index so that any one of the plurality of neighborhood states is adopted.
Based on the adoption probability, the next state is selected from the plurality of neighboring states.
Information processing system.
前記処理回路は、
前記複数の近傍の状態から算出された前記指標を規格化して、前記採択確率を取得する、
請求項1に記載の情報処理システム。
The processing circuit
The index calculated from the plurality of neighborhood states is standardized, and the adoption probability is acquired.
The information processing system according to claim 1.
前記処理回路は、選択した前記状態に基づいて焼きなまし法に基づいて最適化を実行し、
前記指標は、温度、及び、前記現在の状態のエネルギーと前記近傍の状態のエネルギーの差に基づいて算出される焼きなまし法における解の選択確率に相当する、
請求項1又は請求項2に記載の情報処理システム。
The processing circuit performs optimization based on simulated annealing based on the selected state.
The index corresponds to the temperature and the probability of selecting a solution in simulated annealing calculated based on the difference between the energy of the current state and the energy of the nearby state.
The information processing system according to claim 1 or 2.
前記処理回路は、
現段階までの段階において、遷移後の前記近傍の状態の前記エネルギーが遷移前の前記状態の前記エネルギーよりも大きくなる逆行採択確率と、予めスケジューリングされた理想逆行採択確率と、に基づいて、前記逆行採択確率が前記理想逆行採択確率に近くなるように、前記温度の逆数である逆温度を制御する、
請求項3に記載の情報処理システム。
The processing circuit
In the stages up to the present stage, the reciprocal adoption probability in which the energy in the neighboring state after the transition is larger than the energy in the state before the transition and the ideal retrograde adoption probability scheduled in advance are used as the basis. The reverse temperature, which is the reciprocal of the temperature, is controlled so that the retrograde adoption probability is close to the ideal retrograde adoption probability.
The information processing system according to claim 3.
前記処理回路は、
前記逆温度に基づいて、前記指標を算出する、
請求項4に記載の情報処理システム。
The processing circuit
Calculate the index based on the reverse temperature.
The information processing system according to claim 4.
前記処理回路は、
複数の現在の状態であるレプリカにおける前記第1並列処理を第2並列処理により実行し、
それぞれの前記レプリカにおいて前記第1並列処理により算出されたエネルギーに基づいて前記状態を更新し、
前記第2並列処理により更新された前記状態から、次の前記レプリカの前記状態を選択する、
請求項1から請求項5のいずれかに記載の情報処理システム。
The processing circuit
The first parallel processing in a plurality of replicas in the current state is executed by the second parallel processing,
In each of the replicas, the state is updated based on the energy calculated by the first parallel processing.
From the state updated by the second parallel processing, the state of the next replica is selected.
The information processing system according to any one of claims 1 to 5.
前記処理回路は、前記現在の状態及び前記複数の近傍の状態を、整数値を用いて記述する、
請求項1から6のいずれかに記載の情報処理システム。
The processing circuit describes the current state and the plurality of neighboring states using integer values.
The information processing system according to any one of claims 1 to 6.
前記処理回路は、スケジューリング問題において、1つの機械における1つの製品の処理順序の変更、2つの製品の処理順序の入れ替え、又は、複数の機械における同じ組み合わせの2つの製品についての処理順序の入れ替え、のうちの少なくとも1つの操作により得られた状態を、前記複数の近傍の状態のうちの少なくとも1つとする、
請求項1から7のいずれかに記載の情報処理システム。
In a scheduling problem, the processing circuit changes the processing order of one product on one machine, swaps the processing order of two products, or swaps the processing order of two products of the same combination on multiple machines. The state obtained by the operation of at least one of the above is defined as at least one of the plurality of neighboring states.
The information processing system according to any one of claims 1 to 7.
前記処理回路は、
前記現在の状態に対して、互いに異なる複数の最適化パラメータを用いて、各々の前記最適化パラメータに対応する前記複数の近傍の状態をそれぞれ探索する請求項1から8のいずれかに記載の情報処理システム。
The processing circuit
The information according to any one of claims 1 to 8, which searches for the plurality of neighboring states corresponding to the respective optimization parameters by using a plurality of optimization parameters different from each other with respect to the current state. Processing system.
前記処理回路は、
前記複数の現在の状態の前記エネルギーに基づいて、前記複数の現在の状態のうち他よりも高い評価を取得した現在の状態を複数抽出し、
抽出した複数の前記現在の状態のうちの少なくとも1つに対して互いに異なる複数の最適化パラメータを用いて、各々の前記最適化パラメータに対応する前記複数の近傍の探索を再度行う
請求項1から請求項5、又は、請求項7から請求項9のいずれかに記載の情報処理システム。
The processing circuit
Based on the energies of the plurality of current states, a plurality of the current states that have obtained a higher evaluation than the others among the plurality of current states are extracted.
From claim 1, the search for the plurality of neighborhoods corresponding to the respective optimization parameters is performed again using the plurality of optimization parameters different from each other for at least one of the plurality of extracted current states. The information processing system according to claim 5, or any of claims 7 to 9.
前記処理回路は、1又は複数のGPU(Graphics Processing Unit)を含み、
前記GPUは、互いに並列処理が可能な1又は複数の演算ブロックを有し、
1又は複数の前記現在の状態に対する複数の近傍の状態に対して行う、前記エネルギーの算出、前記指標の算出、前記採択確率の算出、および前記次の状態の選択を含むメタヒューリスティクスな手法の実行を、前記GPUの演算ブロック並列、スレッド並列、または、複数ボードを用いた並列の少なくとも1つを用いて実行する、
請求項1から10のいずれかに記載の情報処理システム。
The processing circuit includes one or more GPUs (Graphics Processing Units).
The GPU has one or more arithmetic blocks capable of parallel processing with each other.
A metaheuristic technique that involves calculating the energy, calculating the index, calculating the adoption probability, and selecting the next state for one or more neighboring states relative to the current state. Execution is performed using at least one of the GPU's arithmetic block parallel, thread parallel, or parallel using multiple boards.
The information processing system according to any one of claims 1 to 10.
前記処理回路は、
前記1又は複数の現在の状態のうちの少なくとも1つに対する前記メタヒューリスティクスな手法の実行を、複数の前記演算ブロックを用いて実行する
請求項11に記載の情報処理システム。
The processing circuit
The information processing system according to claim 11, wherein the execution of the metaheuristic method for at least one of the one or a plurality of current states is executed by using the plurality of the arithmetic blocks.
前記複数の演算ブロックの数は、演算ブロック並列可能な数の約数である、
請求項12に記載の情報処理システム。
The number of the plurality of arithmetic blocks is a divisor of the number of arithmetic blocks that can be paralleled.
The information processing system according to claim 12.
処理回路により、
現在の状態に対する複数の近傍の状態において第1並列処理によりエネルギーを算出し、
前記複数の近傍の状態における前記エネルギーに基づいてそれぞれの前記状態が採択される第1確率を算出し、
前記複数の近傍における状態のいずれか1つが採択されるように前記第1確率を規格化した第2確率を算出し、
前記第2確率に基づいて、次の状態を前記複数の近傍の状態から選択する、
情報処理方法。
By the processing circuit
The energy is calculated by the first parallel processing in multiple neighboring states with respect to the current state.
Based on the energy in the plurality of neighboring states, the first probability that each of the above states is adopted is calculated.
A second probability normalizing the first probability is calculated so that any one of the states in the plurality of neighborhoods is adopted.
Based on the second probability, the next state is selected from the plurality of neighboring states.
Information processing method.
処理回路に、
第1並列処理により、現在の状態に対する複数の近傍の状態におけるエネルギーを算出し、
前記複数の近傍の状態における前記エネルギーに基づいてそれぞれの前記状態が採択されるか否かを示す指標を算出し、
前記複数の近傍の状態のいずれか1つが採択されるように、前記指標に基づいて前記複数の近傍の状態に対する採択確率を算出し、
前記採択確率に基づいて、次の状態を前記複数の近傍の状態から選択する、
情報処理方法を実行させるプログラム。
In the processing circuit
By the first parallel processing, the energy in multiple neighboring states with respect to the current state is calculated,
Based on the energy in the plurality of neighboring states, an index indicating whether or not each of the above states is adopted is calculated.
The adoption probability for the plurality of neighborhood states is calculated based on the index so that any one of the plurality of neighborhood states is adopted.
Based on the adoption probability, the next state is selected from the plurality of neighboring states.
A program that executes an information processing method.
記憶回路と、1又は複数の処理回路を備え、
前記処理回路は、
温度を予め設定されたスケジューリングにより遷移して焼きなまし法による最適化を実行し、
前記最適化の繰り返し演算において、前記最適化で算出した現在の状態の近傍におけるエネルギーが、現在の前記状態のエネルギーよりも大きくなる前記近傍の数を計数し、
計数された前記近傍の数と、前記最適化により探索された前記近傍の総数と、の比を算出し、
前記比と、前記近傍のエネルギーが現在の前記状態のエネルギーよりも大きくなる場合の前記温度に基づいて採択される割合と、に基づいて、前記近傍の採択確率を表す指標である逆温度を制御する、
情報処理装置。
Equipped with a storage circuit and one or more processing circuits,
The processing circuit
The temperature is transitioned by preset scheduling to perform simulated annealing optimization.
In the iterative calculation of the optimization, the number of the neighborhoods whose energy in the vicinity of the current state calculated by the optimization is larger than the energy of the current state is counted.
The ratio of the counted number of the neighborhoods to the total number of the neighborhoods searched by the optimization was calculated.
Based on the ratio and the ratio adopted based on the temperature when the energy in the vicinity becomes larger than the energy in the current state, the reverse temperature, which is an index indicating the adoption probability in the vicinity, is controlled. do,
Information processing device.
JP2021213496A 2021-01-08 2021-12-27 Information processing system, information processing method, and information processing apparatus Pending JP2022107518A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021002218 2021-01-08
JP2021002218 2021-01-08

Publications (1)

Publication Number Publication Date
JP2022107518A true JP2022107518A (en) 2022-07-21

Family

ID=82457653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021213496A Pending JP2022107518A (en) 2021-01-08 2021-12-27 Information processing system, information processing method, and information processing apparatus

Country Status (1)

Country Link
JP (1) JP2022107518A (en)

Similar Documents

Publication Publication Date Title
Hamta et al. A hybrid PSO algorithm for a multi-objective assembly line balancing problem with flexible operation times, sequence-dependent setup times and learning effect
Pan et al. An effective hybrid discrete differential evolution algorithm for the flow shop scheduling with intermediate buffers
Hong et al. MultiGraph: Efficient graph processing on GPUs
Gates et al. Accelerating collaborative filtering using concepts from high performance computing
CA2588246A1 (en) Method and system for solving an optimization problem
US11556757B1 (en) System and method of executing deep tensor columns in neural networks
Turan et al. A multi-skilled workforce optimisation in maintenance logistics networks by multi-thread simulated annealing algorithms
JP2020520519A (en) Dynamic parallelization of calculation process
CN113569511A (en) Quantum circuit simulation method and device
Yang et al. Target shape design optimization by evolving B-splines with cooperative coevolution
Gao A bottleneck detection-based tabu search algorithm for the buffer allocation problem in manufacturing systems
JP7111966B2 (en) Optimization device and control method for optimization device
JP7139805B2 (en) Compound search device, compound search method, and compound search program
Ashayeri et al. A modified simple heuristic for the p-median problem, with facilities design applications
JP2020079991A (en) Optimization apparatus, control method of optimization apparatus, and control program of optimization apparatus
JP2022107518A (en) Information processing system, information processing method, and information processing apparatus
Schmidt et al. Load-balanced parallel constraint-based causal structure learning on multi-core systems for high-dimensional data
Pattison et al. Scalable analytic placement for FPGA on GPGPU
JP2022135909A (en) Production route determination device and production route determination program
JP4881435B2 (en) Method and apparatus for aggregating tabular data in a shared memory parallel processing system
Leinweber et al. GPU-based cloud computing for comparing the structure of protein binding sites
Nguyen et al. Strategic capacity portfolio planning under demand uncertainty and technological change
Jung et al. Accelerating implicit integration in multi-body dynamics using GPU computing
CN114386211A (en) Optimization device, optimization method, and computer-readable medium storing optimization program
Azad et al. Modified constrained differential evolution for solving nonlinear global optimization problems

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20211228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220104