[go: up one dir, main page]

JP2022165027A - Optimization program, optimization method and optimization device - Google Patents

Optimization program, optimization method and optimization device Download PDF

Info

Publication number
JP2022165027A
JP2022165027A JP2021070197A JP2021070197A JP2022165027A JP 2022165027 A JP2022165027 A JP 2022165027A JP 2021070197 A JP2021070197 A JP 2021070197A JP 2021070197 A JP2021070197 A JP 2021070197A JP 2022165027 A JP2022165027 A JP 2022165027A
Authority
JP
Japan
Prior art keywords
permutation
difference value
energy
state
backward
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021070197A
Other languages
Japanese (ja)
Other versions
JP7655061B2 (en
Inventor
芳 印
Kaoru In
浩一 神田
Koichi Kanda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021070197A priority Critical patent/JP7655061B2/en
Publication of JP2022165027A publication Critical patent/JP2022165027A/en
Application granted granted Critical
Publication of JP7655061B2 publication Critical patent/JP7655061B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

Figure 2022165027000001

【課題】順列のエネルギーの演算量を削減すること。
【解決手段】最適化装置100は、LOP(Linear Ordering Problem)行列の順列について、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第1状態のエネルギーと、移動させた後の順列の第2状態のエネルギーとの第1差分値を算出する。最適化装置100は、第1差分値を記憶部に記憶する。最適化装置100は、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第2状態のエネルギーと、移動させた後の順列の第3状態のエネルギーとの第2差分値を算出する場合に、第1差分値を再利用して、第2差分値を算出する。
【選択図】図1

Figure 2022165027000001

An object of the present invention is to reduce the amount of permutation energy computation.
An optimization device (100) selects one permutation number of a permutation of a LOP (Linear Ordering Problem) matrix, moves the selected permutation number forward or backward, A first difference value between the energy of the first state and the energy of the second state of the permutation after being moved is calculated. The optimization device 100 stores the first difference value in the storage unit. The optimization device 100 selects one permutation number of the permutation, moves the selected permutation number forward or backward, and calculates the energy of the second state of the permutation before the movement and the energy of the third state of the permutation after the movement. When calculating the second difference value with the energy of the state, the first difference value is reused to calculate the second difference value.
[Selection drawing] Fig. 1

Description

本発明は、最適化プログラム等に関する。 The present invention relates to optimization programs and the like.

製造、金融、物流等の分野で、組み合わせ最適化問題が用いられている。組み合わせ最適化問題は、解が順序や割り当てのような組み合わせの構造を持つ最適化問題である。 Combinatorial optimization problems are used in fields such as manufacturing, finance, and logistics. A combinatorial optimization problem is an optimization problem whose solution has combinatorial structures such as ordering and assignments.

たとえば、組み合わせ最適化問題の適用対象として、線形順序付け問題(Linear Ordering Problem:LOP)がある。このLOPは、複数の要素、例えば複数の候補者の順位を与える場合、できるだけ多くの投票者の意志に合うように全ての候補者を順位付けする問題である。また、LOPは、候補者の順序に対応する正方行列について、上三角行列の要素の合計が最大になるように並べ替える順列を求める。LOPでは、問題の次元数nに対し、n!通りの組合せがあるため、高次元になるほど、解くのが困難になる。 For example, there is a linear ordering problem (LOP) as an application target for combinatorial optimization problems. The LOP is a matter of ranking all the candidates to suit the will of as many voters as possible given multiple factors, eg the ranking of multiple candidates. LOP also finds a permutation for rearranging the square matrix corresponding to the order of the candidates so that the sum of the elements of the upper triangular matrix is maximized. In LOP, for dimensionality n of the problem, n! The higher the dimension, the more difficult it is to solve, because there are a number of possible combinations.

次の条件1~3の下で、LOPについて説明する。
(条件1):n名の候補者がいる。
(条件2):行列(投票数行列)の成分には、候補者のペアの各々に対して良い方を投票した人の数が指定されている。
(条件3):全てのペア候補に対して投票する。
LOP will be described under the following conditions 1-3.
(Condition 1): There are n candidates.
(Condition 2): The elements of the matrix (voting matrix) specify the number of people who voted for each of the candidate pairs.
(Condition 3): Vote for all pair candidates.

目的関数を式(1)に示し、順列πを式(2)に示す。また、制約条件を「行列の行と列とを同じ順列で並べる」とする。 The objective function is shown in Equation (1), and the permutation π is shown in Equation (2). Also, it is assumed that the constraint condition is "arrange the rows and columns of the matrix in the same permutation".

Figure 2022165027000002
Figure 2022165027000002
Figure 2022165027000003
Figure 2022165027000003

投票数行列Aを式(3)に示す。投票数行列Aの要素(成分)「aij」は、候補者iが、候補者jよりも良いと投票した人の数を示す。 A vote number matrix A is shown in Equation (3). The elements (components) “a ij ” of vote count matrix A indicate the number of people who voted that candidate i is better than candidate j.

Figure 2022165027000004
Figure 2022165027000004

順列(候補者の並び順)は、複数のバイナリ値(ビット)で表すことができ、マトリックスXで表現できる。マトリックスXでは、要素の各行と列との和が全て1になる。マトリックスXは求める順列のバイナリ表現であり、ビット更新、反転を行う場合に使われる。たとえば、初期順列1234(候補者1、候補者2、候補者3、候補者4の並び順)の場合、マトリックスXは、式(4)に示すものとなる。順列3421の場合、マトリックスXは、式(5)に示すものとなる。 A permutation (order of candidates) can be represented by a plurality of binary values (bits) and can be represented by a matrix X. In the matrix X, each row and column of elements sum to all ones. Matrix X is a binary representation of the desired permutation and is used for bit update and inversion. For example, for the initial permutation 1234 (the ordering of Candidate 1, Candidate 2, Candidate 3, and Candidate 4), the matrix X is as shown in Equation (4). For permutation 3421, matrix X is as shown in equation (5).

Figure 2022165027000005
Figure 2022165027000005

Figure 2022165027000006
Figure 2022165027000006

図12は、LOPの並べ替えを説明するための図である。図12に示すように、順列1234を順列3421に並び変える場合、XAXを計算する。行列XAXでは、行と列とが、3421の順に並んでいる。図12に示すXは、上記の式(5)に対応するマトリックスXである。 FIG. 12 is a diagram for explaining rearrangement of LOPs. As shown in FIG. 12, if permutation 1234 is permuted into permutation 3421, then t XAX is computed. In the matrix t XAX, the rows and columns are arranged in 3421 order. X shown in FIG. 12 is the matrix X corresponding to equation (5) above.

図13は、LOPのエネルギーを説明するための図である。LOPのエネルギーは、上三角行列の要素の合計(領域10に含まれる要素の合計)である。たとえば、図13に示す行列XAXのエネルギーEは、式(6)に示すものとなる。 FIG. 13 is a diagram for explaining LOP energy. The energy of the LOP is the sum of the elements of the upper triangular matrix (the sum of the elements contained in region 10). For example, the energy E of the matrix t XAX shown in FIG. 13 is given by Equation (6).

Figure 2022165027000007
Figure 2022165027000007

候補者1、2、3、4を、投票数の大きい順番に並べる場合に、エネルギーEが用いられる。エネルギーEが大きいほど、投票数の多い候補者が前方に位置することを意味する。たとえば、順列1234のエネルギーよりも、順列3421のエネルギーの方が大きい場合に、候補者の並び順1234よりも、候補者の並び順3421の方が、投票数の多い候補者が前方に位置している。 Energy E is used when placing candidates 1, 2, 3, 4 in descending order of votes. A larger energy E means that a candidate with a larger number of votes is located in the front. For example, when the energy of the permutation 3421 is higher than the energy of the permutation 1234, the candidates with the higher number of votes are positioned ahead of the candidate arrangement order 3421 of the candidate arrangement order 1234. ing.

たとえば、エネルギーEの最小値(または最大値)を探索する従来技術として、マルコフモンテカルロ法(Markov Chain Monte Carlo methods:MCMC)がある。図14は、MCMCを説明するための図である。図14の縦軸はエネルギーの値に対応し、横軸はある状態に対応する。 For example, Markov Chain Monte Carlo methods (MCMC) are known as conventional techniques for searching for the minimum value (or maximum value) of the energy E. FIG. 14 is a diagram for explaining MCMC. The vertical axis in FIG. 14 corresponds to the energy value, and the horizontal axis corresponds to a certain state.

MCMCでは、現在の状態から近傍状態に移動した場合のエネルギー変化量ΔEを計算し、条件を満たせば、次の状態に移行する。ΔEは、遷移前のエネルギーEから、遷移後のエネルギーE´を減算することで、算出される。MCMCでは、状態(ビット)を確率的に反転させることで、探索を行う。また、熱ノイズを付与することで、局所解にとどまらないようにする。 In MCMC, the energy change amount ΔE when moving from the current state to the neighboring state is calculated, and if the condition is satisfied, the state is shifted to the next state. ΔE is calculated by subtracting the energy E′ after the transition from the energy E before the transition. In MCMC, searching is performed by stochastically inverting states (bits). Also, by adding thermal noise, it is possible to avoid staying at a local optimum.

LOPに関する従来技術について説明する。この従来技術では、Step1~4を実行する。 A conventional technique relating to LOP will be described. In this prior art, Steps 1-4 are executed.

従来技術が実行する「Step1」について説明する。従来技術では、n×n行列の行列について、順列番号j(j=1,2,・・・n-1)を挿入位置i(i=j+1)に挿入し、エネルギーを計算する。順列番号jを、挿入位置iに挿入することを(Pj、i)で示す。 "Step 1" performed by the conventional technique will be described. In the prior art, permutation number j (j=1, 2, . . . n−1) is inserted at insertion position i (i=j+1) for an n×n matrix, and energy is calculated. (Pj, i) indicates that the permutation number j is inserted at the insertion position i.

従来技術は、元の順列1234から、以下の順列を生成する。
(P1、2)→順列2134
(P2、3)→順列1324
(P3、4)→順列1243
From the original permutation 1234, the prior art generates the following permutations.
(P1, 2) → permutation 2134
(P2, 3) → permutation 1324
(P3, 4) → permutation 1243

従来技術が実行する「Step2」について説明する。従来技術では、Step1で計算したエネルギーが最大となる順列を基に、順列番号j(j=1,2,・・・n)をi(i=1,2,・・・j-1,j+1,・・・m)の位置に挿入し、生成した順列についてエネルギーを計算する。 "Step 2" performed by the conventional technique will be described. In the prior art, the permutation number j (j=1, 2, . , . . . m) and calculate the energy for the generated permutation.

たとえば、Step1の各順列のうち、順列1324のエネルギーが最大の場合には、以下の順列を生成する。
(P1、2)→順列3124
(P1、3)→順列3214
(P1、4)→順列3241
(P2、1)→順列3124
(P2、3)→順列1234
(P2、4)→順列1243
(P3、1)→順列2134
(P3、2)→順列1234
(P3、4)→順列1342
For example, among the permutations in Step 1, if permutation 1324 has the largest energy, the following permutations are generated.
(P1, 2) → permutation 3124
(P1, 3) → permutation 3214
(P1, 4) → permutation 3241
(P2, 1) → permutation 3124
(P2, 3) → permutation 1234
(P2, 4) → permutation 1243
(P3, 1) → permutation 2134
(P3, 2) → permutation 1234
(P3, 4) → permutation 1342

従来技術が実行する「Step3」について説明する。従来技術では、Step2で計算したエネルギーが最大となる順列を求める。 "Step 3" performed by the conventional technique will be described. In the prior art, the permutation that maximizes the energy calculated in Step 2 is obtained.

従来技術が実行する「Step4」について説明する。従来技術では、最適解を見つけるまで、Step1~3を繰り返し実行する。 "Step 4" executed by the conventional technique will be described. In the prior art, Steps 1-3 are repeatedly executed until the optimum solution is found.

ここで、従来技術のエネルギーの計算方法について説明する。図15は、従来技術のエネルギーの計算方法を説明するための図である。 Here, a conventional energy calculation method will be described. FIG. 15 is a diagram for explaining a conventional energy calculation method.

元の順列1234のエネルギーEは、領域10の要素の合計値となり、式(7)によって示される。 The energy E of the original permutation 1234 is the sum of the elements in region 10 and is given by equation (7).

Figure 2022165027000008
Figure 2022165027000008

生成した順列が、順列2134の場合には、式(8)によって、エネルギーEを算出する。すなわち、行列A´の上三角行列の要素の合計を算出する代わりに、既に算出した順列1234のエネルギーE、行列の要素a21,a12を基にして、エネルギーEを算出する。 When the generated permutation is the permutation 2134, the energy E1 is calculated by Equation ( 8 ). That is, instead of calculating the sum of the elements of the upper triangular matrix of the matrix A ', the energy E1 is calculated based on the already calculated energy E of the permutation 1234 and matrix elements a21 and a12.

Figure 2022165027000009
Figure 2022165027000009

生成した順列が、順列3214の場合には、式(8)によって、エネルギーEを算出する。すなわち、行列A´´の上三角行列の要素の合計を算出する代わりに、既に算出した順列2134のエネルギーE、要素a21,a12,a21,a31を基にして、エネルギーEを算出する。 When the generated permutation is the permutation 3214, the energy E2 is calculated by Equation ( 8 ). That is, instead of calculating the sum of the elements of the upper triangular matrix of the matrix A '', the energy E2 is calculated based on the energy E1, elements a21, a12, a21, and a31 of the permutation 2134 already calculated.

Figure 2022165027000010
Figure 2022165027000010

Manuel Laguna「Intensification and diversification with elite tabu search solutions for the linear ordering problem」Computers & Operations Research 26 (1999) 1217-1230Manuel Laguna, "Intensification and diversification with elite tabu search solutions for the linear ordering problem," Computers & Operations Research 26 (1999) 1217-1230.

しかしながら、上述した従来技術では、生成した順列のエネルギーの演算量が多いという問題がある。 However, the conventional technique described above has a problem that the amount of calculation of the energy of the generated permutation is large.

たとえば、対象となる行列において、順列番号jと挿入位置iとの差が増えると、加減算の回数が増加し、演算量が増加する。また、従来技術では、生成した順列のエネルギーのみで、更新するか否かを判定するため、局所解にはまると、脱出しにくく、最適解にたどり着くまで時間を要し、演算量が増加する。 For example, when the difference between the permutation number j and the insertion position i increases in the target matrix, the number of additions and subtractions increases and the amount of calculation increases. In addition, in the conventional technology, only the energy of the generated permutation is used to determine whether or not to update. Therefore, if you get stuck in a local solution, it is difficult to escape, it takes time to reach the optimum solution, and the amount of calculation increases.

1つの側面では、本発明は、順列のエネルギーの演算量を削減することができる最適化プログラム、最適化方法および最適化装置を提供することを目的とする。 In one aspect, an object of the present invention is to provide an optimization program, an optimization method, and an optimization device capable of reducing the amount of permutation energy calculations.

第1の案では、コンピュータに次の処理を実行させる。コンピュータは、LOP(Linear Ordering Problem)行列の順列について、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第1状態のエネルギーと、移動させた後の順列の第2状態のエネルギーとの第1差分値を算出する。コンピュータは、第1差分値を記憶装置に記憶する。コンピュータは、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第2状態のエネルギーと、移動させた後の順列の第3状態のエネルギーとの第2差分値を算出する場合に、第1差分値を再利用して、第2差分値を算出する。 The first option is to have the computer perform the following processing. The computer selects one permutation number of the permutation of the LOP (Linear Ordering Problem) matrix, moves the selected permutation number forward or backward, and moves the energy of the first state of the permutation before moving A first difference value from the energy of the second state of the permutation after the permutation is calculated. The computer stores the first difference value in a storage device. The computer selects one permutation number of the permutation, moves the selected permutation number forward or backward, and the energy of the second state of the permutation before the movement and the energy of the third state of the permutation after the movement When calculating the second difference value from , the first difference value is reused to calculate the second difference value.

順列のエネルギーの演算量を削減することができる。 The amount of permutation energy computation can be reduced.

図1は、本実施例に係る最適化装置の構成を示す機能ブロック図である。FIG. 1 is a functional block diagram showing the configuration of the optimization device according to this embodiment. 図2は、実施例に係る計算テーブルのデータ構造の一例を示す図である。FIG. 2 is a diagram illustrating an example of the data structure of a calculation table according to the embodiment; 図3は、本実施例に係る算出部の処理を説明するための図(1)である。FIG. 3 is a diagram (1) for explaining the processing of the calculation unit according to the embodiment. 図4は、本実施例に係る算出部の処理を説明するための図(2)である。FIG. 4 is a diagram (2) for explaining the processing of the calculation unit according to the embodiment. 図5は、本実施例に係る算出部の処理を説明するための図(3)である。FIG. 5 is a diagram (3) for explaining the processing of the calculation unit according to the embodiment. 図6は、本実施例に係る算出部の処理を説明するための図(4)である。FIG. 6 is a diagram (4) for explaining the processing of the calculation unit according to the embodiment. 図7は、本実施例に係る最適化装置の処理手順を示すフローチャートである。FIG. 7 is a flow chart showing the processing procedure of the optimization device according to this embodiment. 図8は、前方挿入処理の処理手順を示すフローチャートである。FIG. 8 is a flowchart showing a processing procedure of forward insertion processing. 図9は、後方挿入処理の処理手順を示すフローチャートである。FIG. 9 is a flowchart showing a processing procedure of backward insertion processing. 図10は、最適化装置のその他の処理を説明するための図である。FIG. 10 is a diagram for explaining other processing of the optimization device. 図11は、最適化装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。FIG. 11 is a diagram showing an example of the hardware configuration of a computer that implements functions similar to those of the optimization device. 図12は、LOPの並べ替えを説明するための図である。FIG. 12 is a diagram for explaining rearrangement of LOPs. 図13は、LOPのエネルギーを説明するための図である。FIG. 13 is a diagram for explaining LOP energy. 図14は、MCMCを説明するための図である。FIG. 14 is a diagram for explaining MCMC. 図15は、従来技術のエネルギーの計算方法を説明するための図である。FIG. 15 is a diagram for explaining a conventional energy calculation method.

以下に、本願の開示する最適化プログラム、最適化方法および最適化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。 Embodiments of the optimization program, optimization method, and optimization apparatus disclosed in the present application will be described in detail below with reference to the drawings. In addition, this invention is not limited by this Example.

図1は、本実施例1に係る最適化装置の構成を示す機能ブロック図である。図1に示すように、この最適化装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。 FIG. 1 is a functional block diagram showing the configuration of the optimization device according to the first embodiment. As shown in FIG. 1 , this optimization device 100 has a communication section 110 , an input section 120 , a display section 130 , a storage section 140 and a control section 150 .

通信部110は、ネットワークを介して外部装置から各種のデータを受信する。通信部110は、通信装置の一例である。たとえば、通信部110は、後述する投票数行列情報141を、外部装置から受信してもよい。 Communication unit 110 receives various data from an external device via a network. Communication unit 110 is an example of a communication device. For example, the communication unit 110 may receive vote matrix information 141, which will be described later, from an external device.

入力部120は、最適化装置100の制御部150に各種の情報を入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。 The input unit 120 is an input device that inputs various kinds of information to the control unit 150 of the optimization device 100 . The input unit 120 corresponds to a keyboard, mouse, touch panel, or the like.

表示部130は、制御部150から出力される情報を表示する表示装置である。たとえば、表示部130は、順列の最適解の情報を表示する。 The display unit 130 is a display device that displays information output from the control unit 150 . For example, the display unit 130 displays information on the optimal permutation solution.

記憶部140は、投票数行列情報141、差分値情報142、計算テーブル143を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。 The storage unit 140 has vote matrix information 141 , difference value information 142 and a calculation table 143 . The storage unit 140 corresponds to semiconductor memory devices such as RAM (Random Access Memory) and flash memory, and storage devices such as HDD (Hard Disk Drive).

投票数行列情報141は、aijを行列の要素(成分)とする投票数行列Aの情報である。たとえば、i=1~n、j=1~nとする(正方行列)。要素「aij」には、候補者iが候補者jよりも良いと投票した人の数が設定される。投票数行列Aは、式(3)によって示される。 The vote matrix information 141 is information of the vote matrix A having a ij as elements (components) of the matrix. For example, let i=1 to n and j=1 to n (square matrix). The element “a ij ” is set to the number of people who voted that candidate i is better than candidate j. The vote count matrix A is shown by equation (3).

差分値情報142は、選択された順列の順列番号を前方または後方に移動させた場合において、移動させる前の順列の状態のエネルギーと、移動させた後の順列の状態のエネルギーとの差分値を示す情報である。後述するように、算出部152が算出する新たな差分値によって、差分値情報142の差分値は更新される。 The difference value information 142 indicates the difference value between the energy of the state of the permutation before the movement and the energy of the state of the permutation after the movement when the permutation number of the selected permutation is moved forward or backward. This is the information shown. As will be described later, the difference value of the difference value information 142 is updated by the new difference value calculated by the calculator 152 .

計算テーブル143は、n×nの行列の順列について、順列の順列番号を前方または後方に移動させた移動個数と、差分値との関係を定義するテーブルである。たとえば、元の順列1234の順列番号3を、前方に1つ移動させた場合の順列は順列1324となり、移動個数は「1」となる。元の順列1234の順列番号3を、前方に2つ移動させた場合の順列は順列3124となり、移動個数は「2」となる。 The calculation table 143 is a table that defines the relationship between the number of forward or backward shifts of the permutation number of the permutation of the n×n matrix and the difference value. For example, when the permutation number 3 of the original permutation 1234 is moved forward by one, the permutation becomes the permutation 1324, and the number of movements is "1". When the permutation number 3 of the original permutation 1234 is moved forward by two, the permutation becomes the permutation 3124, and the number of moves is "2".

元の順列1234の順列番号1を、後方に1つ移動させた場合の順列は順列2134となり、移動個数は「1」となる。元の順列1234の順列番号1を、後方に2つ移動させた場合の順列は順列2314となり、移動個数は「2」となる。 When the permutation number 1 of the original permutation 1234 is moved backward by one, the permutation becomes the permutation 2134, and the number of moves is "1". When the permutation number 1 of the original permutation 1234 is moved backward by two, the permutation becomes the permutation 2314, and the number of movements is "2".

図2は、実施例1に係る計算テーブルのデータ構造の一例を示す図である。図2に示すように、計算テーブル143は、前方テーブル143aと、後方テーブル143bとを有する。なお、元の順列123、・・・i・・・nを、式(3)に示す投票数行列A(n×nの行列)の順列とする。 FIG. 2 is a diagram illustrating an example of the data structure of a calculation table according to the first embodiment; As shown in FIG. 2, the calculation table 143 has a front table 143a and a rear table 143b. Note that the original permutation 123, . . . i .

前方テーブル143aは、前方移動個数と、ΔEの計算とを対応付ける。前方移動個数は、順列の順列番号iを選択し、かかる順列番号iを前方に何個移動させたのかを示す。順序番号iを、前方に1つ移動させた場合には、前方移動個数は「1」となる。ΔEは、移動前の順列の状態のエネルギーと、移動後の順列の状態のエネルギーとの差分値である。 The forward table 143a associates the number of forward movements with the calculation of ΔE. The forward movement count indicates how many permutations of the permutation number i are selected and the permutation number i is moved forward. If the order number i is moved forward by one, the number of items moved forward is "1". ΔE is the difference value between the energy of the state of the permutation before movement and the energy of the state of the permutation after movement.

後方テーブル143bは、後方移動個数と、ΔEの計算とを対応付ける。後方移動個数は、順列の順列番号iを選択し、かかる順列番号iを後方に何個移動させたのかを示す。順序番号iを、後方に1つ移動させた場合には、後方移動個数は「1」となる。ΔEは、移動前の順列の状態のエネルギーと、移動後の順列の状態のエネルギーとの差分値である。 The backward table 143b associates the number of backward movements with the calculation of ΔE. The number of backward shifts indicates how many times the permutation number i of the permutation is selected and the permutation number i is moved backward. When the sequence number i is moved backward by one, the backward movement number becomes "1". ΔE is a difference value between the energy of the state of the permutation before movement and the energy of the state of the permutation after movement.

図1の説明に戻る。制御部150は、取得部151と、算出部152とを有する。制御部150は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。 Returning to the description of FIG. The control unit 150 has an acquisition unit 151 and a calculation unit 152 . The control unit 150 is implemented by hardwired logic such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an ASIC (Application Specific Integrated Circuit), and an FPGA (Field Programmable Gate Array).

取得部151は、外部装置等から、ネットワークを介して、投票数行列情報141を取得する。取得部151は、投票数行列情報141を、記憶部140に登録する。取得部151は、投票数行列情報141を、入力部120を介して取得してもよい。 The obtaining unit 151 obtains the vote matrix information 141 from an external device or the like via a network. Acquisition unit 151 registers vote matrix information 141 in storage unit 140 . The acquisition unit 151 may acquire the vote matrix information 141 via the input unit 120 .

算出部152は、投票数行列Aの順列について、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の状態のエネルギーと、移動させた後の状態のエネルギーとの差分値を算出する。算出部152は、差分値を算出する場合には、計算テーブル143に定義されたΔEの計算に従い、差分値情報142に記録された前回の差分値を利用する。算出部152は、新たに算出した差分値によって、差分値情報142の差分値を更新する。 The calculation unit 152 selects one permutation number of the permutation of the vote matrix A, moves the selected permutation number forward or backward, and calculates the energy in the state before the movement and the state after the movement. Calculate the difference value with the energy of When calculating the difference value, the calculator 152 uses the previous difference value recorded in the difference value information 142 according to the calculation of ΔE defined in the calculation table 143 . The calculator 152 updates the difference value of the difference value information 142 with the newly calculated difference value.

図3~図6は、本実施例に係る算出部の処理を説明するための図である。図3について説明する。元の順列を、順列1234とする。元の順列1234のエネルギーEは、行列Aの上三角行列の合計値となり、式(7)によって、算出される。算出部152は、式(7)を基にして、元の順列のエネルギーEを算出しておく。 3 to 6 are diagrams for explaining the processing of the calculation unit according to this embodiment. FIG. 3 will be described. Let the original permutation be permutation 1234 . The energy E of the original permutation 1234 is the sum of the upper triangular matrices of matrix A and is calculated by equation (7). The calculation unit 152 calculates the energy E of the original permutation based on Equation (7).

図3では、元の順列1234の順列番号「3」を、前方に1つ移動させ、順列1324とする。順列1324の行列を、図3に示す行列Aとする。順列1324のエネルギーEは、行列Aの上三角行列の合計値となり、式(10)によって示される。ここで、エネルギーEとエネルギーEとの差分値ΔEは、式(11)によって示される。 In FIG. 3 , the permutation number “3” of the original permutation 1234 is moved forward by one to become permutation 1324 . Let the matrix of the permutation 1324 be the matrix A1 shown in FIG. The energy E 1 of permutation 1324 is the sum of the upper triangular matrices of matrix A 1 and is given by equation (10). Here, the difference value ΔE1 between the energy E and the energy E1 is given by equation ( 11 ).

Figure 2022165027000011
Figure 2022165027000011

Figure 2022165027000012
Figure 2022165027000012

すなわち、算出部152は、式(11)に示すように、行列Aの要素a23,a32を用いて、エネルギーEとエネルギーEとの差分値ΔEを算出する。なお、算出部152は、エネルギーEから差分値ΔEを減算することで、エネルギーEを算出する。算出部152は、差分値ΔEを、差分値情報142に設定する。 That is, the calculation unit 152 calculates the difference value ΔE 1 between the energy E and the energy E 1 using the elements a 23 and a 32 of the matrix A 1 as shown in Equation (11). Note that the calculation unit 152 calculates the energy E1 by subtracting the difference value ΔE1 from the energy E. The calculator 152 sets the difference value ΔE 1 in the difference value information 142 .

図4について説明する。図4では、元の順列1234の順列番号「3」を、前方に2つ移動させ、順列3214とする。順列3214の行列を、図4に示す行列Aとする。順列3214のエネルギーEは、行列Aの上三角行列の合計値となり、式(12)によって示される。ここで、エネルギーEとエネルギーEとの差分値ΔEは、式(13)によって示される。 FIG. 4 will be described. In FIG. 4 , the permutation number “3” of the original permutation 1234 is moved forward by two to become a permutation 3214 . Let the matrix of the permutation 3214 be the matrix A2 shown in FIG . The energy E 2 of permutation 3214 is the sum of the upper triangular matrices of matrix A 2 and is given by equation (12). Here, the difference value ΔE2 between the energy E and the energy E2 is given by equation ( 13).

Figure 2022165027000013
Figure 2022165027000013

Figure 2022165027000014
Figure 2022165027000014

なお、算出部152は、図3で説明したように、差分値ΔEをすでに算出している場合には、式(14)によって、差分値ΔEを算出することができる。すなわち、算出部152は、式(14)に示すように、差分値ΔE(再利用のΔE)と、行列Aの要素a13,a31の値を用いて、エネルギーEとエネルギーEとの差分値ΔEを算出する。 It should be noted that the calculation unit 152 can calculate the difference value ΔE2 by the equation (14) when the difference value ΔE1 has already been calculated as described in FIG. That is, as shown in Equation (14), the calculation unit 152 uses the difference value ΔE 1 (ΔE of reuse) and the values of the elements a 13 and a 31 of the matrix A 2 to calculate the energy E and the energy E 2 and the difference value ΔE 2 is calculated.

算出部152は、図2で説明した前方テーブル143aを基にして、差分値ΔEを算出するための、行列Aの要素a13,a31を特定する。たとえば、式(14)は、前方テーブル142aの前方移動個数「2」のΔEの計算に対応する。 The calculation unit 152 identifies the elements a 13 and a 31 of the matrix A 2 for calculating the difference value ΔE 2 based on the forward table 143a described with reference to FIG. For example, Equation (14) corresponds to the calculation of ΔE for a forward movement number of "2" of the front table 142a.

算出部152は、エネルギーEから差分値ΔEを減算することで、エネルギーEを算出する。算出部152は、差分値ΔEによって、差分値情報142を更新する。 The calculation unit 152 calculates the energy E2 by subtracting the difference value ΔE2 from the energy E. The calculator 152 updates the difference value information 142 with the difference value ΔE2 .

Figure 2022165027000015
Figure 2022165027000015

図5について説明する。図5では、元の順列1234の順列番号「1」を、後方に1つ移動させ、順列2134とする。順列2134の行列を、図5に示す行列Aとする。順列2134のエネルギーEは、行列Aの上三角行列の合計値となり、式(15)によって示される。ここで、エネルギーEとエネルギーEとの差分値ΔEは、式(16)によって示される。 FIG. 5 will be described. In FIG. 5 , the permutation number “1” of the original permutation 1234 is moved backward by one to become permutation 2134 . Let the matrix of the permutation 2134 be the matrix A3 shown in FIG. The energy E3 of permutation 2134 is the sum of the upper triangular matrices of matrix A3 and is given by equation ( 15). Here , the difference value ΔE3 between energy E and energy E3 is given by equation ( 16).

Figure 2022165027000016
Figure 2022165027000016

Figure 2022165027000017
Figure 2022165027000017

すなわち、算出部152は、式(16)に示すように、行列Aの要素a12,a21を用いて、エネルギーEとエネルギーEとの差分値ΔEを算出する。なお、算出部152は、エネルギーEから差分値ΔEを減算することで、エネルギーEを算出する。算出部152は、差分値ΔEを、差分値情報142に設定する。 That is , the calculation unit 152 calculates the difference value ΔE3 between the energy E and the energy E3 using the elements a12 and a21 of the matrix A3 , as shown in Equation ( 16). Note that the calculation unit 152 calculates the energy E3 by subtracting the difference value ΔE3 from the energy E. The calculator 152 sets the difference value ΔE 3 in the difference value information 142 .

図6について説明する。図6では、元の順列1234の順列番号「1」を、後方に2つ移動させ、順列2314とする。順列2314の行列を、図6に示す行列Aとする。順列2314のエネルギーEは、行列Aの上三角行列の合計値となり、式(17)によって示される。ここで、エネルギーEとエネルギーEとの差分値ΔEは、式(18)によって示される。 FIG. 6 will be described. In FIG. 6 , the permutation number “1” of the original permutation 1234 is moved backward by two to become a permutation 2314 . Let the matrix of the permutation 2314 be the matrix A4 shown in FIG. The energy E 4 of permutation 2314 is the sum of the upper triangular matrices of matrix A 4 and is given by equation (17). Here, the difference value ΔE4 between the energy E and the energy E4 is given by equation ( 18).

Figure 2022165027000018
Figure 2022165027000018

Figure 2022165027000019
Figure 2022165027000019

なお、算出部152は、図5で説明したように、差分値ΔEをすでに算出している場合には、式(19)によって、差分値ΔEを算出することができる。すなわち、算出部152は、式(19)に示すように、差分値ΔEと、行列Aの要素a13,a31を用いて、エネルギーEとエネルギーEとの差分値ΔEを算出する。 It should be noted that the calculation unit 152 can calculate the difference value ΔE 4 according to equation (19) when the difference value ΔE 3 has already been calculated as described with reference to FIG. 5 . That is, the calculation unit 152 calculates the difference value ΔE 4 between the energy E and the energy E 4 using the difference value ΔE 3 and the elements a 13 and a 31 of the matrix A 4 as shown in equation (19). do.

Figure 2022165027000020
Figure 2022165027000020

算出部152は、図2で説明した後方テーブル143bを基にして、差分値ΔEを算出するための、行列Aの要素a13,a31を特定する。たとえば、式(19)は、後方テーブル142bの後方移動個数「2」のΔEの計算に対応する。 The calculation unit 152 identifies the elements a 13 and a 31 of the matrix A 4 for calculating the difference value ΔE 4 based on the backward table 143b described with reference to FIG. For example, equation (19) corresponds to the calculation of ΔE for a rearward movement number “2” of the rear table 142b.

算出部152は、エネルギーEから差分値ΔEを減算することで、エネルギーEを算出する。算出部152は、差分値ΔEによって、差分値情報142を更新する。 The calculation unit 152 calculates the energy E4 by subtracting the difference value ΔE4 from the energy E. The calculator 152 updates the difference value information 142 with the difference value ΔE4 .

上記のように、算出部152は、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の状態のエネルギーと、移動させた後の状態のエネルギーとの差分値を算出する。また、算出部152は、各エネルギーを算出する過程において、エネルギーの最大値を保持する。 As described above, the calculation unit 152 selects one permutation number of the permutation, moves the selected permutation number forward or backward, and calculates the energy of the state before the movement and the energy of the state after the movement. Calculate the difference value of In addition, the calculation unit 152 holds the maximum value of energy in the process of calculating each energy.

算出部152は、複数回エネルギーを算出しても、エネルギーの最大値が変化しなくなるまで、上記処理を繰り返し実行する。算出部152は、エネルギーが最大値となる場合の順列を、最適解とする。算出部152は、最適解の情報を、表示部130に出力して表示する。または、算出部152は、最適解の情報を、外部装置に通知してもよい。たとえば、図6で示したエネルギーEが、最大値となる場合には、最適解は、順列2314となる。 The calculation unit 152 repeats the above process until the maximum value of energy does not change even if the energy is calculated a plurality of times. The calculation unit 152 takes the permutation with the maximum energy as the optimum solution. The calculation unit 152 outputs information on the optimum solution to the display unit 130 for display. Alternatively, the calculation unit 152 may notify the external device of information on the optimum solution. For example, if the energy E 4 shown in FIG.

次に、本実施例1に係る最適化装置100の処理手順の一例について説明する。図7は、本実施例に係る最適化装置の処理手順を示すフローチャートである。図7に示すように、最適化装置100の算出部152は、ステート(順列の初期値)を設定する(ステップS101)。算出部152は、順列番号iに1に設定する(ステップS102)。 Next, an example of the processing procedure of the optimization device 100 according to the first embodiment will be explained. FIG. 7 is a flow chart showing the processing procedure of the optimization device according to this embodiment. As shown in FIG. 7, the calculation unit 152 of the optimization device 100 sets states (initial values of permutations) (step S101). The calculation unit 152 sets the permutation number i to 1 (step S102).

算出部152は、順列番号iに設定された値が1である場合には(ステップS103,Yes)、ステップS106に移行する。一方、算出部152は、順列番号iに設定された値が1でない場合には(ステップS103,No)、ステップS104に移行する。 When the value set to the permutation number i is 1 (step S103, Yes), the calculation unit 152 proceeds to step S106. On the other hand, when the value set for the permutation number i is not 1 (step S103, No), the calculation unit 152 proceeds to step S104.

算出部152は、前方挿入処理を実行する(ステップS104)。算出部152は、順列番号iに設定された値が次元数Nと一致する場合には(ステップS105,Yes)、ステップS101に移行する。一方、算出部152は、順列番号iに設定された値が次元数Nと一致しない場合には(ステップS105,No)、ステップS106に移行する。 The calculation unit 152 executes forward insertion processing (step S104). If the value set for the permutation number i matches the number of dimensions N (step S105, Yes), the calculation unit 152 proceeds to step S101. On the other hand, when the value set for the permutation number i does not match the number of dimensions N (step S105, No), the calculation unit 152 proceeds to step S106.

算出部152は、後方挿入処理を実行する(ステップS106)。算出部152は、順列番号iに1を加算することで、順列番号iを更新し(ステップS107)、ステップS102に移行する。 The calculation unit 152 executes backward insertion processing (step S106). The calculation unit 152 updates the permutation number i by adding 1 to the permutation number i (step S107), and proceeds to step S102.

続いて、図7のステップ104に示した前方挿入処理の一例について説明する。図8は、前方挿入処理の処理手順を示すフローチャートである。図8に示すように、算出部152は、前方挿入位置jに1を設定する(ステップS201)。算出部152は、行列の要素aijとajiを選択する(ステップS202)。 Next, an example of forward insertion processing shown in step 104 of FIG. 7 will be described. FIG. 8 is a flowchart showing a processing procedure of forward insertion processing. As shown in FIG. 8, the calculator 152 sets 1 to the front insertion position j (step S201). The calculation unit 152 selects matrix elements a ij and a ji (step S202).

算出部152は、保存したΔE(i-1)を用いて、ΔEを算出する(ステップS203)。ステップS203において、算出部152は、前方テーブル143aに示されるΔEの計算を実行する。算出部152は、ΔEを記憶部140に保存する(ステップS204)。 The calculation unit 152 calculates ΔE j using the stored ΔE (i−1) (step S203). In step S203, the calculator 152 calculates ΔE shown in the forward table 143a. The calculation unit 152 stores ΔE j in the storage unit 140 (step S204).

算出部152は、MCMCビット反転を実行するか否かを判定する(ステップS205)。たとえば、算出部152は、ΔEがプラスなら、MCMCビット反転を実行すると判定し(ステップS205,Yes)、ステップS206に移行する。一方、算出部152は、ΔEが0以下の場合には、MCMCビット反転を実行しないと判定(ステップS205,No)し、ステップS210に移行する。 The calculation unit 152 determines whether to execute MCMC bit inversion (step S205). For example, if ΔE j is positive, the calculation unit 152 determines to execute MCMC bit inversion (step S205, Yes), and proceeds to step S206. On the other hand, when ΔE j is 0 or less, the calculation unit 152 determines not to execute the MCMC bit inversion (step S205, No), and proceeds to step S210.

算出部152は、MCMCビット反転を実行し、順列を更新する(ステップS206)。算出部152は、エネルギーEを算出する(ステップS207)。ステップS207において、算出部152は、ステップS101で設定した元行列のエネルギーから、ΔEを減算することで、エネルギーEを算出する。 The calculator 152 performs MCMC bit inversion to update the permutation (step S206). The calculator 152 calculates the energy E (step S207). In step S207, the calculation unit 152 calculates energy E by subtracting ΔE from the energy of the original matrix set in step S101.

算出部152は、エネルギーEが、E_MAX(これまでのエネルギーEの最大値)より大きいか否かを判定する(ステップS208)。算出部152は、エネルギーEが、E_MAXよりも大きくない場合には(ステップS208,No)、ステップS210に移行する。 The calculation unit 152 determines whether the energy E is greater than E_MAX (the maximum value of the energy E so far) (step S208). If the energy E is not greater than E_MAX (step S208, No), the calculator 152 proceeds to step S210.

一方、算出部152は、エネルギーEが、E_MAXよりも大きい場合には(ステップS208,Yes)、ステップS207で算出したエネルギーEによって、E_MAXを更新する(ステップS209)。 On the other hand, if the energy E is greater than E_MAX (step S208, Yes), the calculator 152 updates E_MAX with the energy E calculated in step S207 (step S209).

算出部152は、j<(i-1)の条件を満たす場合には(ステップS210,Yes)、前方挿入位置jに1を加算することで、前方挿入位置を更新し(ステップS211)、ステップS203に移行する。 If the condition j<(i−1) is satisfied (step S210, Yes), the calculator 152 updates the forward insertion position by adding 1 to the forward insertion position j (step S211). Move to S203.

一方、算出部152は、j<(i-1)の条件を満たさない場合には(ステップS210,No)、前方挿入処理を終了する。 On the other hand, if the condition j<(i−1) is not satisfied (step S210, No), the calculation unit 152 terminates the forward insertion processing.

続いて、図7のステップS106に示した後方挿入処理の一例について説明する。図9は、後方挿入処理の処理手順を示すフローチャートである。図9に示すように、算出部152は、前方挿入位置tに1を設定する(ステップS301)。算出部152は、行列の要素aitとatiを選択する(ステップS302)。 Next, an example of the backward insertion processing shown in step S106 of FIG. 7 will be described. FIG. 9 is a flowchart showing a processing procedure of backward insertion processing. As shown in FIG. 9, the calculator 152 sets the front insertion position t to 1 (step S301). The calculator 152 selects matrix elements a it and a ti (step S302).

算出部152は、保存したΔE(t-1)を用いて、ΔEを算出する(ステップS303)。ステップS303において、算出部152は、後方テーブル143bに示されるΔEの計算を実行する。算出部152は、ΔEを記憶部140に保存する(ステップS304)。 The calculation unit 152 calculates ΔE t using the stored ΔE (t−1) (step S303). In step S303, the calculator 152 calculates ΔE shown in the rear table 143b. The calculation unit 152 stores ΔE t in the storage unit 140 (step S304).

算出部152は、MCMCビット反転を実行するか否かを判定する(ステップS305)。たとえば、算出部152は、ΔEがプラスなら、MCMCビット反転を実行すると判定し(ステップS305,Yes)、ステップS306に移行する。一方、算出部152は、ΔEが0以下の場合には、MCMCビット反転を実行しないと判定し(ステップS305,No)、ステップS310に移行する。 The calculation unit 152 determines whether to execute MCMC bit inversion (step S305). For example, if ΔE t is positive, the calculator 152 determines to execute MCMC bit inversion (step S305, Yes), and proceeds to step S306. On the other hand, when ΔE t is 0 or less, the calculation unit 152 determines not to execute the MCMC bit inversion (step S305, No), and proceeds to step S310.

算出部152は、MCMCビット反転を実行し、順列を更新する(ステップS306)。算出部152は、エネルギーEを算出する(ステップS307)。ステップS307において、算出部152は、ステップS101で設定した元行列のエネルギーから、ΔEを減算することで、エネルギーEを算出する。 The calculator 152 performs MCMC bit inversion to update the permutation (step S306). The calculator 152 calculates the energy E (step S307). In step S307, the calculation unit 152 calculates energy E by subtracting ΔE from the energy of the original matrix set in step S101.

算出部152は、エネルギーEが、E_MAX(これまでのエネルギーEの最大値)より大きいか否かを判定する(ステップS308)。算出部152は、エネルギーEが、E_MAXよりも大きくない場合には(ステップS308,No)、ステップS310に移行する。 The calculation unit 152 determines whether the energy E is greater than E_MAX (the maximum value of the energy E so far) (step S308). If the energy E is not greater than E_MAX (step S308, No), the calculator 152 proceeds to step S310.

一方、算出部152は、エネルギーEが、E_MAXよりも大きい場合には(ステップS308,Yes)、ステップS307で算出したエネルギーEによって、E_MAXを更新する(ステップS309)。 On the other hand, if the energy E is greater than E_MAX (step S308, Yes), the calculator 152 updates E_MAX with the energy E calculated in step S307 (step S309).

算出部152は、t≧(次元数N-1)の条件を満たす場合には(ステップS310,Yes)、後方挿入処理を終了する。 If the condition t≧(number of dimensions N−1) is satisfied (step S310, Yes), the calculation unit 152 ends the backward insertion processing.

一方、算出部152は、t≧(次元数N-1)の条件を満たさない場合には(ステップS310,No)、後方挿入位置tに1を加算することで、後方挿入位置を更新し(ステップS311)、ステップS303に移行する。 On the other hand, if the condition t≧(the number of dimensions N−1) is not satisfied (step S310, No), the calculation unit 152 updates the backward insertion position by adding 1 to the backward insertion position t ( Step S311), and the process proceeds to step S303.

次に、本実施例に係る最適化装置100の効果について説明する。最適化装置100は、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の状態のエネルギーと、移動させた後の状態のエネルギーとの差分値を算出する。最適化装置100は、差分値を算出する場合、計算テーブル143に定義されたΔEの計算に従い、記憶部140に記憶された前回の差分値を利用する。最適化装置100は、新たに算出した差分値によって、記憶部140の差分値を更新する。これによって、順列のエネルギーの演算量を削減することができる。 Next, the effects of the optimization device 100 according to this embodiment will be described. The optimization device 100 selects one permutation number of the permutation, moves the selected permutation number forward or backward, and calculates the difference value between the energy of the state before the movement and the energy of the state after the movement. calculate. When calculating the difference value, the optimization device 100 uses the previous difference value stored in the storage unit 140 according to the calculation of ΔE defined in the calculation table 143 . The optimization device 100 updates the difference value in the storage unit 140 with the newly calculated difference value. This makes it possible to reduce the amount of permutation energy calculations.

たとえば、最適化装置100の処理により、重複する演算をなくし、投票数行列Aの一部の要素を選択してΔEを算出することで、従来技術と比較して、加減算回数を99%削減することが可能となる。 For example, the processing of the optimization device 100 eliminates redundant operations, selects some elements of the vote count matrix A, and calculates ΔE, thereby reducing the number of additions and subtractions by 99% compared to the conventional technology. becomes possible.

従来技術では、100次元で1番目の順列番号を最後に挿入する場合には、エネルギーEの差分ΔEは、式(20)によって算出される。従来技術による加減算回数は、加算回数99回と、減算回数100回を合計した199回となる。 In the prior art, when inserting the first permutation number in the 100th dimension at the end, the difference ΔE j of the energy E is calculated by equation (20). The number of additions and subtractions according to the conventional technology is 199, which is the total of 99 additions and 100 subtractions.

Figure 2022165027000021
Figure 2022165027000021

一方、本実施例に係る最適化装置100によれば、LOPの次元数に関係なく、ΔEを再利用して順番に累積することにより、加減算回数は2回となる。たとえば、順列番号jを前方にt個移動させる場合には、エネルギーEの差分値ΔEは、式(21)によって算出され、加減算回数は2回となる。 On the other hand, according to the optimization apparatus 100 according to the present embodiment, the number of additions and subtractions becomes two by reusing ΔE and accumulating in order regardless of the number of dimensions of the LOP. For example, when the permutation number j is moved forward by t, the difference value ΔE j of the energy E is calculated by equation (21), and the number of additions and subtractions is two.

Figure 2022165027000022
Figure 2022165027000022

ところで、上述した最適化装置100の処理の内容は一例であり、最適化装置100は、その他の処理を実行してもよい。最適化装置100は、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の状態のエネルギーと、移動させた後の状態のエネルギーとの差分値を算出していたが、これに限定されない。最適化装置100は、隣接しあう複数の順列番号からなる順列番号のグループを前方または後方の順列に挿入することで、行列の状態を変化させ、状態変化前のエネルギーと状態変化後のエネルギーとの差分値ΔEを算出してもよい。 By the way, the content of the processing of the optimization device 100 described above is an example, and the optimization device 100 may perform other processing. The optimization device 100 selects one permutation number of the permutation, moves the selected permutation number forward or backward, and calculates the difference value between the energy of the state before the movement and the energy of the state after the movement. Although calculated, it is not limited to this. The optimization device 100 changes the state of the matrix by inserting a group of permutation numbers consisting of a plurality of adjacent permutation numbers into the forward or backward permutation, and the energy before the state change and the energy after the state change. may be calculated.

最適化装置100は、選択したグループを、後方に移動させた際のΔEの計算、および、前方に移動させた際のΔEの計算を、計算テーブル143に登録しておく。図10は、最適化装置のその他の処理を説明するための図である。 The optimization device 100 registers in the calculation table 143 the calculation of ΔE when moving the selected group backward and the calculation of ΔE when moving the selected group forward. FIG. 10 is a diagram for explaining other processing of the optimization device.

たとえば、元の順列を12345とすると、元の順列の行列Aは、図10に示すものとなる。計算テーブル143cを用いて説明を行う。計算テーブル143cに示す順列の例は一例であり、他の順列とΔEの計算方法との関係の説明を省略する。 For example, if the original permutation is 12345, the original permutation matrix A is as shown in FIG. Description will be given using the calculation table 143c. The example of the permutation shown in the calculation table 143c is an example, and the description of the relationship between other permutations and the calculation method of ΔE will be omitted.

最適化装置100は、元の順列12345から、順列番号12を選択し、順列番号3と4との間に、順列番号12を挿入した場合には、順列は31245となる。この場合、最適化装置100は、計算テーブル143cの1行列で定義される算出方法により、順列12345のエネルギーと、順列31245のエネルギーとの差分値ΔEを算出する。 If the optimization device 100 selects the permutation number 12 from the original permutation number 12345 and inserts the permutation number 12 between the permutation numbers 3 and 4, the permutation becomes 31245. In this case, the optimization device 100 calculates the difference value ΔE between the energy of the permutation 12345 and the energy of the permutation 31245 by the calculation method defined by one matrix of the calculation table 143c.

最適化装置100は、元の順列12345から、順列番号12を選択し、順列番号4と5との間に、順列番号12を挿入した場合には、順列は34125となる。この場合、最適化装置100は、計算テーブル143cの2行列で定義される算出方法により、順列12345のエネルギーと、順列34125のエネルギーとの差分値ΔEを算出する。 If the optimization device 100 selects the permutation number 12 from the original permutation number 12345 and inserts the permutation number 12 between the permutation numbers 4 and 5, the permutation becomes 34125. In this case, the optimization device 100 calculates the difference value ΔE between the energy of the permutation 12345 and the energy of the permutation 34125 by the calculation method defined by the two matrices of the calculation table 143c.

最適化装置100は、元の順列12345から、順列番号12を選択し、順列番号5の後方に、順列番号12を挿入した場合には、順列は34512となる。この場合、最適化装置100は、計算テーブル143cの3行列で定義される算出方法により、順列12345のエネルギーと、順列34125のエネルギーとの差分値ΔEを算出する。 If the optimization device 100 selects the permutation number 12 from the original permutation number 12345 and inserts the permutation number 12 after the permutation number 5, the permutation becomes 34512. In this case, the optimization device 100 calculates the difference value ΔE between the energy of the permutation 12345 and the energy of the permutation 34125 by the calculation method defined by the three matrices of the calculation table 143c.

最適化装置100は、元の順列12345から、順列番号45を選択し、順列番号2と3との間に、順列番号45を挿入した場合には、順列は12453となる。この場合、最適化装置100は、計算テーブル143cの4行列で定義される算出方法により、順列12345のエネルギーと、順列12453のエネルギーとの差分値ΔEを算出する。 If the optimization device 100 selects the permutation number 45 from the original permutation number 12345 and inserts the permutation number 45 between the permutation numbers 2 and 3, the permutation becomes 12453. In this case, the optimization device 100 calculates the difference value ΔE between the energy of the permutation 12345 and the energy of the permutation 12453 by the calculation method defined by the four matrices of the calculation table 143c.

最適化装置100は、元の順列12345から、順列番号45を選択し、順列番号1と2との間に、順列番号45を挿入した場合には、順列は14523となる。この場合、最適化装置100は、計算テーブル143cの5行列で定義される算出方法により、順列12345のエネルギーと、順列14523のエネルギーとの差分値ΔEを算出する。 If the optimization device 100 selects the permutation number 45 from the original permutation number 12345 and inserts the permutation number 45 between the permutation numbers 1 and 2, the permutation becomes 14523. In this case, the optimization device 100 calculates the difference value ΔE between the energy of the permutation 12345 and the energy of the permutation 14523 by the calculation method defined by the five matrices of the calculation table 143c.

最適化装置100は、元の順列12345から、順列番号45を選択し、順列番号1の前に、順列番号45を挿入した場合には、順列は45123となる。この場合、最適化装置100は、計算テーブル143cの6行列で定義される算出方法により、順列12345のエネルギーと、順列45123のエネルギーとの差分値ΔEを算出する。 If the optimization device 100 selects the permutation number 45 from the original permutation number 12345 and inserts the permutation number 45 before the permutation number 1, the permutation becomes 45123. In this case, the optimization device 100 calculates the difference value ΔE between the energy of the permutation 12345 and the energy of the permutation 45123 by the calculation method defined by the six matrices of the calculation table 143c.

続いて、MCMC反転に関する補足の説明を行う。高次元の最適問題を解く汎用的技術にMCMCを応用したシミュレーテッドアニーリング(Simulated Annealing:SA)がある。SAは、現在の状態の近傍を確率的に探索し、目的関数が現在より増加すれば高い確率(例えば確率1)で新たな状態を受け入れ、減少する場合にもある小さな確率で状態を受け入れる操作を繰り返す。SAは組合せ最適化問題に限定されず例えば連続変数の目的関数の最適化にも用いられる。 Next, a supplementary explanation regarding MCMC inversion will be given. Simulated Annealing (SA), which applies MCMC, is a general-purpose technique for solving high-dimensional optimal problems. SA is an operation that stochastically searches the neighborhood of the current state, accepts the new state with a high probability (for example, probability 1) if the objective function increases from the current state, and accepts the state with a small probability if it decreases. repeat. SA is not limited to combinatorial optimization problems, but is also used for optimizing objective functions of continuous variables, for example.

ここで現在の状態から新しい状態に遷移した場合の目的関数(エネルギー)の増分をΔEとする。目的関数が増加した場合(ΔE<0)でも新しい状態を確率的に受け入れる操作は、環境から熱エネルギーをもらって目的関数の減少分を補填するという物理的アナロジーで理解することができる。SAでは温度に相当するパラメータを高い値から次第に低くすることで、局所的な最大値(local maximum)を避けて最適化を行うことができる。温度を下げていくので冶金分野の用語「アニール(焼き鈍し)」が使われる。ここで、状態をとる確率とその状態のエネルギーの関係が平衡状態でボルツマン分布になる場合を考える。この場合、MCMCのアルゴリズムでは近傍状態への遷移を受け入れる確率A(ΔE)を、式(22)とする。 Let ΔE be the increment of the objective function (energy) when the current state transitions to the new state. The operation of stochastically accepting a new state even when the objective function increases (ΔE<0) can be understood by a physical analogy of receiving thermal energy from the environment to compensate for the decrease in the objective function. In SA, optimization can be performed while avoiding a local maximum by gradually lowering the parameter corresponding to temperature from a high value. The metallurgical term "annealing" is used because the temperature is lowered. Here, consider the case where the relationship between the probability of taking a state and the energy of that state is the Boltzmann distribution in the equilibrium state. In this case, in the MCMC algorithm, the probability A(ΔE) of accepting a transition to a neighboring state is given by equation (22).

Figure 2022165027000023
Figure 2022165027000023

式(22)において、Tは温度を示す。式(22)の遷移受け入れ確率は、統計物理でいう詳細平衡を満たしており、平衡状態では状態の分布はボルツマン分布となる。なお、詳細平衡を満たす遷移受け入れ確率は式(22)以外にも作ることができる。 In Equation (22), T indicates temperature. The transition acceptance probability of Equation (22) satisfies the detailed equilibrium termed in statistical physics, and the state distribution is the Boltzmann distribution in the equilibrium state. It should be noted that the transition acceptance probability that satisfies the detailed equilibrium can be created other than the formula (22).

上記の最適化装置100は、ΔEがプラスである場合に、MCMCビット反転を実行すると判定していたが、一様乱数u[i](0<u[i]<1)を用いて、A(ΔE)と比較することで、MCMCビット反転を実行するか否かを判定してもよい。最適化装置100は、u[i]<A(ΔE)となる場合にMCMCビット反転を行い、それ以外の場合には、MCMCビット反転を行わない。 Although the optimization apparatus 100 described above has determined to execute MCMC bit inversion when ΔE is positive, using uniform random number u[i] (0<u[i]<1), A (ΔE i ) may be compared to determine whether to perform MCMC bit reversal. The optimization device 100 performs MCMC bit inversion when u[i]<A(ΔE i ), and otherwise does not perform MCMC bit inversion.

次に、上記実施例に示した最適化装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図11は、最適化装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。 Next, an example of the hardware configuration of a computer that realizes the same functions as those of the optimization device 100 shown in the above embodiment will be described. FIG. 11 is a diagram showing an example of the hardware configuration of a computer that implements functions similar to those of the optimization device.

図11に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、外部装置からデータを受信する通信装置204と、各種の装置と接続するインタフェース装置205とを有する。コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。 As shown in FIG. 11, a computer 200 has a CPU 201 that executes various arithmetic processes, an input device 202 that receives data input from a user, and a display 203 . The computer 200 also has a communication device 204 that receives data from an external device, and an interface device 205 that connects with various devices. The computer 200 has a RAM 206 that temporarily stores various information and a hard disk device 207 . Each device 201 - 207 is then connected to a bus 208 .

ハードディスク装置207は、取得プログラム207a、算出プログラム207bを有する。CPU201は、取得プログラム207a、算出プログラム207bを読み出してRAM206に展開する。 The hard disk device 207 has an acquisition program 207a and a calculation program 207b. The CPU 201 reads out the acquisition program 207 a and the calculation program 207 b and develops them in the RAM 206 .

取得プログラム207aは、取得プロセス206aとして機能する。算出プログラム207bは、算出プロセス306bとして機能する。 Acquisition program 207a functions as acquisition process 206a. The calculation program 207b functions as a calculation process 306b.

取得プロセス206aの処理は、取得部151の処理に対応する。算出プロセス206bの処理は、算出部152の処理に対応する。 The processing of the acquisition process 206 a corresponds to the processing of the acquisition unit 151 . Processing of the calculation process 206 b corresponds to processing of the calculation unit 152 .

なお、各プログラム207a,207bについては、必ずしも最初からハードディスク装置207に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a,207bを読み出して実行するようにしてもよい。 Note that the programs 207a and 207b do not necessarily have to be stored in the hard disk device 207 from the beginning. For example, each program is stored in a “portable physical medium” such as a flexible disk (FD), CD-ROM, DVD disk, magneto-optical disk, IC card, etc. inserted into the computer 200 . Then, the computer 200 may read and execute the programs 207a and 207b.

以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。 The following additional remarks are disclosed regarding the embodiments including the above examples.

(付記1)線形順序付け問題における複数の要素の順列に対応する行列の順列について、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第1状態のエネルギーと、移動させた後の順列の第2状態のエネルギーとの第1差分値を算出し、
前記第1差分値を記憶装置に格納し、
順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第2状態のエネルギーと、移動させた後の順列の第3状態のエネルギーとの第2差分値を算出する場合に、前記記憶装置に格納された前記第1差分値を読み出して、前記第2差分値を算出する
処理をコンピュータに実行させることを特徴とする最適化プログラム。
(Appendix 1) For the permutation of the matrix corresponding to the permutation of multiple elements in the linear ordering problem, select one permutation number of the permutation, move the selected permutation number forward or backward, and calculating a first difference value between the energy of the first state and the energy of the second state of the permutation after the movement;
storing the first difference value in a storage device;
Select one permutation number of the permutation, move the selected permutation number forward or backward, and combine the energy of the second state of the permutation before the movement with the energy of the third state of the permutation after the movement. 2. An optimization program that causes a computer to execute a process of reading the first difference value stored in the storage device and calculating the second difference value when calculating the second difference value.

(付記2)前記第2差分値を算出する処理は、選択した順列番号を前方または後方に移動させた個数と、前記第1差分値と、前記第1状態の一部の要素と、前記第2差分値との関係を示す情報を用いて、前記第2差分値を算出する処理を前記コンピュータに実行させることを特徴とする付記1に記載の最適化プログラム。 (Supplementary note 2) The process of calculating the second difference value includes the number of forward or backward movement of the selected permutation number, the first difference value, a part of the elements of the first state, and the 2. The optimization program according to appendix 1, causing the computer to execute a process of calculating the second difference value using information indicating the relationship between the two difference values.

(付記3)前記第2差分値によって、前記記憶装置に格納された第1差分値を更新し、順列の順列番号を一つ選択し、
算出された前記第2差分値を前記記憶装置に格納し、
選択した順列番号を前方または後方に移動させ、移動させる前の順列の第3状態のエネルギーと、移動させた後の順列の第4状態のエネルギーとの第3差分値を算出する場合に、前記記憶装置に格納された前記第2差分値を読み出して、前記第3差分値を算出する処理を更にコンピュータに実行させることを特徴とする付記1または2に記載の最適化プログラム。
(Appendix 3) updating the first difference value stored in the storage device with the second difference value, selecting one permutation number of the permutation,
storing the calculated second difference value in the storage device;
When moving the selected permutation number forward or backward and calculating the third difference value between the energy of the third state of the permutation before the movement and the energy of the fourth state of the permutation after the movement, 3. The optimization program according to appendix 1 or 2, further causing a computer to execute a process of reading out the second difference value stored in a storage device and calculating the third difference value.

(付記4)前記選択する処理において前記コンピュータに、順列の順列番号において、隣接する複数の順列番号を選択し、選択した順列番号を前方または後方に移動させることで、順列の状態を変化させることを特徴とする付記1に記載の最適化プログラム。 (Appendix 4) In the selection process, the computer selects a plurality of adjacent permutation numbers in the permutation numbers of the permutation, and changes the permutation state by moving the selected permutation numbers forward or backward. The optimization program according to appendix 1, characterized by:

(付記5)コンピュータが実行する最適化方法であって、
線形順序付け問題における複数の要素の順列に対応する行列の順列について、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第1状態のエネルギーと、移動させた後の順列の第2状態のエネルギーとの第1差分値を算出し、
前記第1差分値を記憶装置に格納し、
順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第2状態のエネルギーと、移動させた後の順列の第3状態のエネルギーとの第2差分値を算出する場合に、前記記憶装置に格納された前記第1差分値を読み出して、前記第2差分値を算出する
処理を実行することを特徴とする最適化方法。
(Appendix 5) A computer-implemented optimization method comprising:
For the permutation of the matrix corresponding to the permutation of multiple elements in the linear ordering problem, select one permutation number of the permutation, move the selected permutation number forward or backward, and the energy of the first state of the permutation before moving and the energy of the second state of the permutation after being moved, calculating the first difference value,
storing the first difference value in a storage device;
Select one permutation number of the permutation, move the selected permutation number forward or backward, and combine the energy of the second state of the permutation before the movement with the energy of the third state of the permutation after the movement. 2. An optimization method, comprising: reading out the first difference value stored in the storage device and calculating the second difference value when calculating the second difference value.

(付記6)前記第2差分値を算出する処理は、選択した順列番号を前方または後方に移動させた個数と、前記第1差分値と、前記第1状態の一部の要素と、前記第2差分値との関係を示す情報を用いて、前記第2差分値を算出する処理を前記コンピュータが更に実行することを特徴とする付記5に記載の最適化方法。 (Supplementary note 6) The process of calculating the second difference value includes the number of forward or backward shifts of the selected permutation number, the first difference value, a part of the elements of the first state, and the 6. The optimization method according to appendix 5, wherein the computer further executes a process of calculating the second difference value using information indicating the relationship between the two difference values.

(付記7)前記第2差分値によって、前記記憶装置に格納された第1差分値を更新し、順列の順列番号を一つ選択し、算出された前記第2差分値を前記記憶装置に格納し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第3状態のエネルギーと、移動させた後の順列の第4状態のエネルギーとの第3差分値を算出する場合に、前記記憶装置に格納された前記第2差分値を読み出して、前記第3差分値を算出する処理を更に前記コンピュータが実行することを特徴とする付記5または6に記載の最適化方法。 (Appendix 7) Update the first difference value stored in the storage device with the second difference value, select one permutation number of the permutation, and store the calculated second difference value in the storage device. and moving the selected permutation number forward or backward, and calculating the third difference value between the energy of the third state of the permutation before the movement and the energy of the fourth state of the permutation after the movement 7. The optimization method according to appendix 5 or 6, wherein the computer further executes a process of reading out the second difference value stored in the storage device and calculating the third difference value.

(付記8)前記選択する処理において前記コンピュータは、順列の順列番号において、隣接する複数の順列番号を選択し、選択した順列番号を前方または後方に移動させることで、順列の状態を変化させることを特徴とする付記5に記載の最適化方法。 (Appendix 8) In the selection process, the computer selects a plurality of adjacent permutation numbers in the permutation numbers of the permutation, and moves the selected permutation numbers forward or backward to change the permutation state. The optimization method according to appendix 5, characterized in that:

(付記9)線形順序付け問題における複数の要素の順列に対応する行列を取得する取得部と、
順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第1状態のエネルギーと、移動させた後の順列の第2状態のエネルギーとの第1差分値を算出し、前記第1差分値を記憶装置に格納し、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第2状態のエネルギーと、移動させた後の順列の第3状態のエネルギーとの第2差分値を算出する場合に、前記記憶装置に格納された前記第1差分値を読み出して、前記第2差分値を算出する算出部と、
を有することを特徴とする最適化装置。
(Appendix 9) an acquisition unit that acquires a matrix corresponding to a permutation of a plurality of elements in a linear ordering problem;
Select one permutation number of the permutation, move the selected permutation number forward or backward, and compare the energy of the first state of the permutation before the move and the energy of the second state of the permutation after the move. calculating one difference value, storing said first difference value in a storage device, selecting one permutation number of the permutation, moving the selected permutation number forward or backward, and the second state of the permutation before moving. and the energy of the third state of the permutation after being moved, the first difference value stored in the storage device is read, and the second difference value is calculated as a calculating unit that calculates;
An optimization device characterized by comprising:

(付記10)前記算出部は、選択した順列番号を前方または後方に移動させた個数と、前記第1差分値と、前記第1状態の一部の要素と、前記第2差分値との関係を示す情報を用いて、前記第2差分値を算出する処理を実行することを特徴とする付記9に記載の最適化装置。 (Supplementary Note 10) The calculation unit determines the relationship between the number of forward or backward shifts of the selected permutation number, the first difference value, the partial element of the first state, and the second difference value. 10. The optimization device according to appendix 9, wherein the process of calculating the second difference value is executed using information indicating .

(付記11)前記算出部は、前記第2差分値によって、前記記憶装置に格納された第1差分値を更新し、順列の順列番号を一つ選択し、算出された前記第2差分値を前記記憶装置に格納し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第3状態のエネルギーと、移動させた後の順列の第4状態のエネルギーとの第3差分値を算出する場合に、前記記憶装置に格納された前記第2差分値を読み出して、前記第3差分値を算出する処理を更に実行することを特徴とする付記9または10に記載の最適化装置。 (Additional Note 11) The calculation unit updates the first difference value stored in the storage device with the second difference value, selects one permutation number of the permutation, and calculates the calculated second difference value. Stored in the storage device, moving the selected permutation number forward or backward, and a third difference value between the energy of the third state of the permutation before the movement and the energy of the fourth state of the permutation after the movement. 11. The optimization apparatus according to Supplementary note 9 or 10, further comprising reading the second difference value stored in the storage device to calculate the third difference value .

(付記12)前記算出部は、順列の順列番号において、隣接する複数の順列番号を選択し、選択した順列番号を前方または後方に移動させることで、順列の状態を変化させることを特徴とする付記9に記載の最適化装置。 (Appendix 12) The calculation unit selects a plurality of adjacent permutation numbers in the permutation numbers and moves the selected permutation numbers forward or backward to change the permutation state. 9. The optimization device according to clause 9.

100 最適化装置
110 通信部
120 入力部
130 表示部
140 記憶部
141 投票数行列情報
142 差分値情報
143 計算テーブル
150 制御部
151 取得部
152 算出部
100 optimization device 110 communication unit 120 input unit 130 display unit 140 storage unit 141 vote matrix information 142 difference value information 143 calculation table 150 control unit 151 acquisition unit 152 calculation unit

Claims (6)

線形順序付け問題における複数の要素の順列に対応する行列の順列について、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第1状態のエネルギーと、移動させた後の順列の第2状態のエネルギーとの第1差分値を算出し、
前記第1差分値を記憶装置に格納し、
順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第2状態のエネルギーと、移動させた後の順列の第3状態のエネルギーとの第2差分値を算出する場合に、前記記憶装置に格納された前記第1差分値を読み出して、前記第2差分値を算出する
処理をコンピュータに実行させることを特徴とする最適化プログラム。
For the permutation of the matrix corresponding to the permutation of multiple elements in the linear ordering problem, select one permutation number of the permutation, move the selected permutation number forward or backward, and the energy of the first state of the permutation before moving and the energy of the second state of the permutation after being moved, calculating the first difference value,
storing the first difference value in a storage device;
Select one permutation number of the permutation, move the selected permutation number forward or backward, and combine the energy of the second state of the permutation before the movement with the energy of the third state of the permutation after the movement. 2. An optimization program that causes a computer to execute a process of reading the first difference value stored in the storage device and calculating the second difference value when calculating the second difference value.
前記第2差分値を算出する処理は、選択した順列番号を前方または後方に移動させた個数と、前記第1差分値と、前記第1状態の一部の要素と、前記第2差分値との関係を示す情報を用いて、前記第2差分値を算出する処理を前記コンピュータに実行させることを特徴とする請求項1に記載の最適化プログラム。 The process of calculating the second difference value includes the number of forward or backward shifts of the selected permutation number, the first difference value, a partial element of the first state, and the second difference value. 2. The optimization program according to claim 1, causing the computer to execute a process of calculating the second difference value using information indicating the relationship of . 前記第2差分値によって、前記記憶装置に格納された第1差分値を更新し、順列の順列番号を一つ選択し、
算出された前記第2差分値を前記記憶装置に格納し、
選択した順列番号を前方または後方に移動させ、移動させる前の順列の第3状態のエネルギーと、移動させた後の順列の第4状態のエネルギーとの第3差分値を算出する場合に、前記記憶装置に格納された前記第2差分値を読み出して、前記第3差分値を算出する処理を更にコンピュータに実行させることを特徴とする請求項1または2に記載の最適化プログラム。
updating the first difference value stored in the storage device with the second difference value, selecting a permutation number of permutations;
storing the calculated second difference value in the storage device;
When moving the selected permutation number forward or backward and calculating the third difference value between the energy of the third state of the permutation before the movement and the energy of the fourth state of the permutation after the movement, 3. The optimization program according to claim 1, further causing a computer to execute a process of reading out the second difference value stored in a storage device and calculating the third difference value.
前記選択する処理において前記コンピュータに、順列の順列番号において、隣接する複数の順列番号を選択し、選択した順列番号を前方または後方に移動させることで、順列の状態を変化させることを特徴とする請求項1に記載の最適化プログラム。 In the selection process, the computer selects a plurality of adjacent permutation numbers in the permutation numbers of the permutation, and moves the selected permutation numbers forward or backward to change the permutation state. The optimization program according to claim 1. コンピュータが実行する最適化方法であって、
線形順序付け問題における複数の要素の順列に対応する行列の順列について、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第1状態のエネルギーと、移動させた後の順列の第2状態のエネルギーとの第1差分値を算出し、
前記第1差分値を記憶装置に格納し、
順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第2状態のエネルギーと、移動させた後の順列の第3状態のエネルギーとの第2差分値を算出する場合に、前記記憶装置に格納された前記第1差分値を読み出して、前記第2差分値を算出する
処理を実行することを特徴とする最適化方法。
A computer implemented optimization method comprising:
For the permutation of the matrix corresponding to the permutation of multiple elements in the linear ordering problem, select one permutation number of the permutation, move the selected permutation number forward or backward, and the energy of the first state of the permutation before moving and the energy of the second state of the permutation after being moved, calculating the first difference value,
storing the first difference value in a storage device;
Select one permutation number of the permutation, move the selected permutation number forward or backward, and combine the energy of the second state of the permutation before the movement with the energy of the third state of the permutation after the movement. 2. An optimization method, comprising: reading out the first difference value stored in the storage device and calculating the second difference value when calculating the second difference value.
線形順序付け問題における複数の要素の順列に対応する行列を取得する取得部と、
順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第1状態のエネルギーと、移動させた後の順列の第2状態のエネルギーとの第1差分値を算出し、前記第1差分値を記憶装置に格納し、順列の順列番号を一つ選択し、選択した順列番号を前方または後方に移動させ、移動させる前の順列の第2状態のエネルギーと、移動させた後の順列の第3状態のエネルギーとの第2差分値を算出する場合に、前記記憶装置に格納された前記第1差分値を読み出して、前記第2差分値を算出する算出部と、
を有することを特徴とする最適化装置。
an obtaining unit for obtaining a matrix corresponding to permutations of multiple elements in a linear ordering problem;
Select one permutation number of the permutation, move the selected permutation number forward or backward, and compare the energy of the first state of the permutation before the move and the energy of the second state of the permutation after the move. calculating one difference value, storing said first difference value in a storage device, selecting one permutation number of the permutation, moving the selected permutation number forward or backward, and the second state of the permutation before moving. and the energy of the third state of the permutation after being moved, the first difference value stored in the storage device is read, and the second difference value is calculated as a calculating unit that calculates;
An optimization device characterized by comprising:
JP2021070197A 2021-04-19 2021-04-19 OPTIMIZATION PROGRAM, OPTIMIZATION METHOD, AND OPTIMIZATION APPARATUS Active JP7655061B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021070197A JP7655061B2 (en) 2021-04-19 2021-04-19 OPTIMIZATION PROGRAM, OPTIMIZATION METHOD, AND OPTIMIZATION APPARATUS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021070197A JP7655061B2 (en) 2021-04-19 2021-04-19 OPTIMIZATION PROGRAM, OPTIMIZATION METHOD, AND OPTIMIZATION APPARATUS

Publications (2)

Publication Number Publication Date
JP2022165027A true JP2022165027A (en) 2022-10-31
JP7655061B2 JP7655061B2 (en) 2025-04-02

Family

ID=83845792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021070197A Active JP7655061B2 (en) 2021-04-19 2021-04-19 OPTIMIZATION PROGRAM, OPTIMIZATION METHOD, AND OPTIMIZATION APPARATUS

Country Status (1)

Country Link
JP (1) JP7655061B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4658812B2 (en) 2006-01-13 2011-03-23 シャープ株式会社 Nonvolatile semiconductor memory device and writing method thereof

Also Published As

Publication number Publication date
JP7655061B2 (en) 2025-04-02

Similar Documents

Publication Publication Date Title
US11262717B2 (en) Optimization device and control method of optimization device based on temperature statistical information
US20210193257A1 (en) Phase-aware determination of identity-by-descent dna segments
Zhou et al. A Monte Carlo tree search framework for quantum circuit transformation
JP7283318B2 (en) Optimization device, optimization program, and optimization method
EP3937090A1 (en) Information processing system, information processing method, and program
US11199884B2 (en) Optimization device and method of controlling optimization device utilizing a spin bit
JP7508842B2 (en) Optimization device, optimization method, and optimization program
US11562210B2 (en) Stochastically determining to accept a state transition for an optimization device
Castelli et al. A hybrid genetic algorithm for the repetition free longest common subsequence problem
JP7655061B2 (en) OPTIMIZATION PROGRAM, OPTIMIZATION METHOD, AND OPTIMIZATION APPARATUS
Chiang et al. Hardware accelerator for genomic sequence alignment
Manfrini et al. A novel efficient mutation for evolutionary design of combinational logic circuits
US20220366011A1 (en) Non-transitory computer-readable storage medium and information processing apparatus
JP5528249B2 (en) Optimal alignment calculation device and program
EP4160489A1 (en) Optimization program, optimization method, and optimization apparatus
CN113435599A (en) Information processing apparatus, specifying method, and non-transitory computer-readable storage medium
US20240232588A9 (en) Data processing device, data processing method, and computer-readable recording medium storing data processing program
US20240153582A1 (en) Systems and methods for myopic estimation of nucleic acid binding
US20250068392A1 (en) Data processing system, computer-readable recording medium storing program, and data processing method
US20230350972A1 (en) Information processing apparatus and information processing method
US20220405347A1 (en) Data processing apparatus, computer-readable recording medium storing program of processing data, and method of processing data
Qiu et al. Towards data-driven approximate circuit design
Hiratsuka et al. A new selection circuit based on rough comparison method for GA hardware
Block et al. An FPGA implementation of a phylogenetic tree reconstruction algorithm using an alternative second-pass optimization
Opdyke Bootstraps, permutation tests, and sampling orders of magnitude faster using SAS®

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250303

R150 Certificate of patent or registration of utility model

Ref document number: 7655061

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150