OPTIMIZATION PROGRAM, OPTIMIZATION METHOD, AND OPTIMIZATION APPARATUS
Through the energy calculation of linear sorting problems, the reuse mechanism of difference values is used to solve the problem of excessive complexity of energy calculation in high-dimensionality, and a more efficient optimization process is achieved.
Patent Information
- Application Number
- JP2021070197
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-04-19
- Publication Date
- 2025-04-02
- Estimated Expiration
- 2041-04-19
AI Technical Summary
When solving the linear sorting problem (LOP), the energy calculation amount of generating the arrangement sequence is too large, especially in high-dimensional situations, and the calculation complexity increases, resulting in slow optimization process and huge calculation amount.
When calculating energy, the difference value ΔE is calculated by using the reuse mechanism of the previous and subsequent differences, and the difference information is updated in the storage to reduce repeated calculations, thereby reducing the calculation complexity.
It effectively reduces the complexity and calculation amount of the energy calculation of the arrangement sequence, improves the efficiency of the optimization process, especially in high-dimensional situations, significantly reduces the time required for calculation.
Smart Images

Figure 0007655061000023 
Figure 0007655061000024 
Figure 0007655061000025
Abstract
Description
[Technical field]
[0001] The present invention relates to an optimization program and the like. [Background technology]
[0002] Combinatorial optimization problems are used in fields such as manufacturing, finance, and logistics. Combinatorial optimization problems are optimization problems whose solutions have a combinatorial structure such as ordering or allocation.
[0003] For example, the Linear Ordering Problem (LOP) is an application of combinatorial optimization problems. Given multiple factors, such as the rankings of multiple candidates, the LOP is a problem of ranking all candidates in a way that matches the will of as many voters as possible. The LOP also seeks a permutation that rearranges a square matrix corresponding to the order of the candidates so that the sum of the elements in the upper triangular matrix is maximized. In the LOP, there are n! combinations for the number of dimensions of the problem, n, so the higher the dimension, the more difficult it becomes to solve.
[0004] We will explain LOP under the following conditions 1 to 3. (Condition 1): There are n candidates. (Condition 2): The elements of the matrix (vote matrix) specify the number of people who voted for the better candidate for each pair of candidates. (Condition 3): Vote for all pair candidates.
[0005] The objective function is shown in formula (1), and the permutation π is shown in formula (2). In addition, the constraint is set to "arrange the rows and columns of the matrix in the same permutation."
[0006]
number
number
[0007] The vote matrix A is shown in formula (3). The elements (components) of the vote matrix A are a ij " denotes the number of people who voted for candidate i as better than candidate j.
[0008]
number
[0009] A permutation (the order of candidates) can be represented by multiple binary values (bits), and can be expressed as a matrix X. In matrix X, the sum of each row and column of elements is all 1. Matrix X is a binary representation of the desired permutation, and is used when performing bit updates and inversions. For example, in the case of initial permutation 1234 (the order of candidates 1, 2, 3, and 4), matrix X is as shown in equation (4). In the case of permutation 3421, matrix X is as shown in equation (5).
[0010]
number
[0011]
number
[0012] 12 is a diagram for explaining the rearrangement of LOPs. As shown in FIG. 12, when rearranging the permutation 1234 to the permutation 3421, t Calculate the matrix XAX. t In XAX, the rows and columns are arranged in the order of 3421. X shown in Fig. 12 is the matrix X corresponding to the above formula (5).
[0013] FIG. 13 is a diagram for explaining the energy of the LOP. The energy of the LOP is the sum of the elements of the upper triangular matrix (the sum of the elements included in the region 10). For example, the matrix shown in FIG. t The energy E of XAX is given by equation (6).
[0014]
number
[0015] Energy E is used when ordering candidates 1, 2, 3, and 4 in order of the number of votes. The larger the energy E, the closer the candidates with more votes are to the front. For example, if the energy of permutation 3421 is greater than the energy of permutation 1234, then candidates with more votes are closer to the front in candidate ordering 3421 than in candidate ordering 1234.
[0016] For example, Markov Chain Monte Carlo methods (MCMC) are a conventional technique for searching for the minimum (or maximum) value of energy E. Figure 14 is a diagram for explaining MCMC. The vertical axis of Figure 14 corresponds to the value of energy, and the horizontal axis corresponds to a certain state.
[0017] In MCMC, the amount of energy change ΔE when moving from the current state to a nearby state is calculated, and if the conditions are met, the state moves to the next state. ΔE is calculated by subtracting the energy after the transition E' from the energy before the transition E. In MCMC, the search is performed by probabilistically inverting the state (bit). Thermal noise is also added to prevent the state from remaining in a local solution.
[0018] A conventional technique for LOP will be described. In this conventional technique, Steps 1 to 4 are executed.
[0019] The "Step 1" executed by the conventional technology will be explained. In the conventional technology, for an n×n matrix, permutation number j (j=1, 2,...n-1) is inserted into insertion position i (i=j+1) and the energy is calculated. The insertion of permutation number j into insertion position i is denoted by (Pj, i).
[0020] From the original permutation 1234, the prior art generates the following permutations: (P1, 2) → Permutation 2134 (P2, 3) → Permutation 1324 (P3, 4) → Permutation 1243
[0021] The following describes "Step 2" performed by the conventional technology. In the conventional technology, based on the permutation with the maximum energy calculated in Step 1, permutation number j (j = 1, 2,... n) is inserted into position i (i = 1, 2,... j-1, j+1,... m), and the energy of the generated permutation is calculated.
[0022] For example, if permutation 1324 has the maximum energy among the permutations in Step 1, 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
[0023] The following describes "Step 3" performed by the conventional technology. In the conventional technology, a permutation that maximizes the energy calculated in Step 2 is found.
[0024] The following describes "Step 4" performed by the conventional technology. In the conventional technology, Steps 1 to 3 are repeatedly performed until an optimal solution is found.
[0025] Here, a conventional energy calculation method will be described. Fig. 15 is a diagram for explaining the conventional energy calculation method.
[0026] The energy E of the original permutation 1234 is the sum of the elements in region 10, and is given by equation (7).
[0027]
number
[0028] When the generated permutation is permutation 2134, energy E1 is calculated by equation (8). That is, instead of calculating the sum of the elements of the upper triangular matrix of matrix A', energy E1 is calculated based on the already calculated energy E of permutation 1234 and matrix elements a21 and a12.
[0029]
number
[0030] When the generated permutation is permutation 3214, energy E2 is calculated by equation (8). That is, instead of calculating the sum of the elements of the upper triangular matrix of matrix A'', energy E2 is calculated based on energy E1 of permutation 2134 already calculated and elements a21, a12, a21, and a31.
[0031]
number
[0032] [Non-Patent Document 1] Manuel Laguna, “Intensification and diversification with elite tabu search solutions for the linear ordering problem,” Computers & Operations Research 26 (1999) 1217-1230 Summary of the Invention [Problem to be solved by the invention]
[0033] However, the above-mentioned conventional techniques have a problem in that the amount of calculation required to calculate the energy of the generated permutation is large.
[0034] For example, in a target matrix, if the difference between permutation number j and insertion position i increases, the number of additions and subtractions increases, and the amount of calculations increases. Also, in conventional technology, whether to update is determined only based on the energy of the generated permutation, so once a local solution is reached, it is difficult to escape, and it takes time to reach the optimal solution, increasing the amount of calculations.
[0035] In one aspect, the present invention aims to provide an optimization program, an optimization method, and an optimization device that can reduce the amount of calculation for the energy of a permutation. [Means for solving the problem]
[0036] In the first proposal, the computer is made to execute the following process. For permutations of a Linear Ordering Problem (LOP) matrix, the computer selects one permutation number of the permutation, moves the selected permutation number forward or backward, and calculates a first difference value between the energy of a first state of the permutation before the move and the energy of a second state of the permutation after the move. The computer stores the first difference value in a storage device. When the computer selects one permutation number of the permutation, moves the selected permutation number forward or backward, and calculates a second difference value between the energy of a second state of the permutation before the move and the energy of a third state of the permutation after the move, the computer reuses the first difference value to calculate the second difference value. Effect of the Invention
[0037] The amount of calculation of the energy of the permutation can be reduced. [Brief description of the drawings]
[0038] [Figure 1] FIG. 1 is a functional block diagram showing the configuration of an optimization device according to this embodiment. [Diagram 2]FIG. 2 is a diagram illustrating an example of a data structure of a calculation table according to the embodiment. [Diagram 3] FIG. 3 is a diagram (1) for explaining the process of the calculation unit according to the present embodiment. [Figure 4] FIG. 4 is a diagram (2) for explaining the process of the calculation unit according to the present embodiment. [Diagram 5] FIG. 5 is a diagram (3) for explaining the process of the calculation unit according to the present embodiment. [Figure 6] FIG. 6 is a diagram (4) for explaining the process of the calculation unit according to the present embodiment. [Figure 7] FIG. 7 is a flowchart showing a processing procedure of the optimization device according to the present embodiment. [Figure 8] FIG. 8 is a flowchart showing the procedure of the front insertion process. [Figure 9] FIG. 9 is a flowchart showing the procedure of the rear insertion process. [Figure 10] FIG. 10 is a diagram for explaining other processes of the optimization device. [Figure 11] FIG. 11 is a diagram illustrating an example of a hardware configuration of a computer that realizes the same functions as the optimization device. [Figure 12] FIG. 12 is a diagram for explaining rearrangement of LOPs. [Figure 13] FIG. 13 is a diagram for explaining the energy of the LOP. [Figure 14] FIG. 14 is a diagram for explaining MCMC. [Figure 15] FIG. 15 is a diagram for explaining a conventional energy calculation method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0039] Hereinafter, an embodiment of the optimization program, optimization method, and optimization device disclosed in the present application will be described in detail with reference to the accompanying drawings. Note that the present invention is not limited to the embodiment. EXAMPLES
[0040] Fig. 1 is a functional block diagram showing a configuration of an optimization device according to the present embodiment 1. As shown in Fig. 1, the optimization device 100 includes a communication unit 110, an input unit 120, a display unit 130, a storage unit 140, and a control unit 150.
[0041] The communication unit 110 receives various data from an external device via a network. The 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 the external device.
[0042] The input unit 120 is an input device that inputs various pieces of information to the control unit 150 of the optimization device 100. The input unit 120 corresponds to a keyboard, a mouse, a touch panel, or the like.
[0043] 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 solution of the permutation.
[0044] The storage unit 140 has vote number matrix information 141, difference value information 142, and a calculation table 143. The storage unit 140 corresponds to a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as an HDD (Hard Disk Drive).
[0045] The vote matrix information 141 is a ij This is information on the vote matrix A, whose elements (components) are i=1 to n, j=1 to n (square matrix). ij " is set to the number of people who voted for candidate i to be better than candidate j. The vote matrix A is shown by equation (3).
[0046] The difference value information 142 is information indicating, when the permutation number of the selected permutation is moved forward or backward, a difference value between the energy of the permutation state before the movement and the energy of the permutation state after the movement. As will be described later, the difference value of the difference value information 142 is updated by a new difference value calculated by the calculation unit 152.
[0047] Calculation table 143 is a table that defines the relationship between the number of moves made by moving the permutation number forward or backward for the permutation of an n×n matrix, and the difference value. For example, if permutation number 3 of the original permutation 1234 is moved forward by one place, the permutation becomes permutation 1324, and the number of moves is "1". If permutation number 3 of the original permutation 1234 is moved forward by two places, the permutation becomes permutation 3124, and the number of moves is "2".
[0048] When permutation number 1 of the original permutation 1234 is moved backward by one place, the permutation becomes 2134, and the number of moves is "1." When permutation number 1 of the original permutation 1234 is moved backward by two places, the permutation becomes 2314, and the number of moves is "2."
[0049] Fig. 2 is a diagram illustrating an example of a data structure of a calculation table according to the first embodiment. As illustrated in Fig. 2, the calculation table 143 has a forward table 143a and a backward table 143b. Note that the original permutation 123, i n is the permutation of the vote number matrix A (n × n matrix) shown in Equation (3).
[0050] The forward table 143a associates the number of forward moves with the calculation of ΔE. The number of forward moves indicates how many positions the permutation number i of the permutation is moved forward when the permutation number i is selected. When the sequence number i is moved forward by one position, the number of forward moves becomes "1". ΔE is the difference value between the energy of the permutation state before the move and the energy of the permutation state after the move.
[0051] The backward table 143b associates the backward movement number with the calculation of ΔE. The backward movement number indicates how many positions the permutation number i of the permutation is moved backward when the permutation number i is selected. When the sequence number i is moved backward by one position, the backward movement number becomes "1". ΔE is the difference value between the energy of the permutation state before the movement and the energy of the permutation state after the movement.
[0052] Returning to the description of Fig. 1, the control unit 150 includes an acquisition unit 151 and a calculation unit 152. The control unit 150 is realized by a hardwired logic such as a central processing unit (CPU), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), or a field programmable gate array (FPGA).
[0053] The acquiring unit 151 acquires the vote number matrix information 141 from an external device or the like via a network. The acquiring unit 151 registers the vote number matrix information 141 in the storage unit 140. The acquiring unit 151 may acquire the vote number matrix information 141 via the input unit 120.
[0054] The calculation unit 152 selects one permutation number for the permutations of the vote number matrix A, moves the selected permutation number forward or backward, and calculates a difference value between the energy in the state before the movement and the energy in the state after the movement. When calculating the difference value, the calculation unit 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 calculation unit 152 updates the difference value in the difference value information 142 with the newly calculated difference value.
[0055] 3 to 6 are diagrams for explaining the processing of the calculation unit according to this embodiment. FIG. 3 will be explained. The original permutation is assumed to be permutation 1234. The energy E of the original permutation 1234 is the sum of the upper triangular matrix 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).
[0056] In Fig. 3, the permutation number "3" of the original permutation 1234 is moved forward by one to become permutation 1324. The matrix of permutation 1324 is matrix A1 shown in Fig. 3. Energy E1 of permutation 1324 is the sum of the upper triangular matrix of matrix A1, and is shown by equation (10). Here, the difference value ΔE1 between energy E and energy E1 is shown by equation (11).
[0057]
number
[0058]
number
[0059] That is, the calculation unit 152 calculates the element a of the matrix A1 as shown in equation (11). 23 ,a 32 Using this, the calculation unit 152 calculates a difference value ΔE1 between the energy E and the energy E1. The calculation unit 152 calculates the energy E1 by subtracting the difference value ΔE1 from the energy E. The calculation unit 152 sets the difference value ΔE1 in the difference value information 142.
[0060] Referring now to Fig. 4, the permutation number "3" of the original permutation 1234 is moved forward by two places to become permutation 3214. The matrix of permutation 3214 is matrix A2 shown in Fig. 4. Energy E2 of permutation 3214 is the sum of the upper triangular matrix of matrix A2, and is shown by equation (12). Here, the difference value ΔE2 between energy E and energy E2 is shown by equation (13).
[0061]
number
[0062]
number
[0063] 3, when the calculation unit 152 has already calculated the difference value ΔE1, the calculation unit 152 can calculate the difference value ΔE2 by the formula (14). That is, as shown in the formula (14), the calculation unit 152 calculates the difference value ΔE1 (the reused ΔE) and the element a of the matrix A2. 13 ,a 31 Using this value, the difference value ΔE2 between the energy E and the energy E2 is calculated.
[0064] The calculation unit 152 calculates the difference value ΔE2 based on the forward table 143a described in FIG. 2 by using the element a of the matrix A2. 13 ,a 31 For example, formula (14) corresponds to the calculation of ΔE when the number of forward movements of the front table 142a is "2".
[0065] The calculation unit 152 calculates the energy E2 by subtracting the difference value ΔE2 from the energy E. The calculation unit 152 updates the difference value information 142 with the difference value ΔE2.
[0066]
number
[0067] Referring now to Fig. 5, the permutation number "1" of the original permutation 1234 is moved backward by one to obtain permutation 2134. The matrix of permutation 2134 is matrix A3 shown in Fig. 5. Energy E3 of permutation 2134 is the sum of the upper triangular matrix of matrix A3, and is shown by equation (15). Here, the difference value ΔE3 between energy E and energy E3 is shown by equation (16).
[0068]
number
[0069]
number
[0070] That is, the calculation unit 152 calculates the element a of the matrix A3 as shown in equation (16). 12 ,a 21 The calculation unit 152 calculates a difference value ΔE3 between the energy E and the energy E3 by using the above. Note that the calculation unit 152 calculates the energy E3 by subtracting the difference value ΔE3 from the energy E. The calculation unit 152 sets the difference value ΔE3 in the difference value information 142.
[0071] Referring now to Fig. 6, the permutation number "1" of the original permutation 1234 is moved backward by two places to obtain permutation 2314. The matrix of permutation 2314 is matrix A4 shown in Fig. 6. Energy E4 of permutation 2314 is the sum of the upper triangular matrix of matrix A4, and is given by equation (17). Here, the difference value ΔE4 between energy E and energy E4 is given by equation (18).
[0072]
number
[0073]
number
[0074] 5, when the calculation unit 152 has already calculated the difference value ΔE3, the calculation unit 152 can calculate the difference value ΔE4 by the formula (19). That is, as shown in the formula (19), the calculation unit 152 calculates the difference value ΔE3 and the element a of the matrix A4. 13 ,a 31 A difference value ΔE4 between the energy E and the energy E4 is calculated using the above formula.
[0075]
number
[0076] The calculation unit 152 calculates the difference value ΔE4 based on the rear table 143b described in FIG. 2 by using the element a 13,a 31 For example, formula (19) corresponds to the calculation of ΔE when the rear movement number of the rear table 142b is "2".
[0077] The calculation unit 152 calculates energy E4 by subtracting the difference value ΔE4 from the energy E. The calculation unit 152 updates the difference value information 142 with the difference value ΔE4.
[0078] 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 difference between the energy before the movement and the energy after the movement. In addition, the calculation unit 152 holds the maximum energy value in the process of calculating each energy.
[0079] The calculation unit 152 repeatedly executes the above process until the maximum value of the energy does not change even if the energy is calculated multiple times. The calculation unit 152 determines the permutation when the energy is maximum as the optimal solution. The calculation unit 152 outputs information about the optimal solution to the display unit 130 for display. Alternatively, the calculation unit 152 may notify an external device of the information about the optimal solution. For example, when the energy E4 shown in FIG. 6 is maximum, the optimal solution is the permutation 2314.
[0080] Next, an example of the processing procedure of the optimization device 100 according to the first embodiment will be described. Fig. 7 is a flowchart showing the processing procedure of the optimization device according to the first embodiment. As shown in Fig. 7, the calculation unit 152 of the optimization device 100 sets a state (initial value of a permutation) (step S101). The calculation unit 152 sets the permutation number i to 1 (step S102).
[0081] If the value set in the permutation number i is 1 (step S103, Yes), the calculation unit 152 proceeds to step S106. On the other hand, if the value set in the permutation number i is not 1 (step S103, No), the calculation unit 152 proceeds to step S104.
[0082] The calculation unit 152 executes a forward insertion process (step S104). If the value set in 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, if the value set in the permutation number i does not match the number of dimensions N (step S105, No), the calculation unit 152 proceeds to step S106.
[0083] The calculation unit 152 executes a rear insertion process (step S106). The calculation unit 152 updates the permutation number i by adding 1 to the permutation number i (step S107), and the process proceeds to step S102.
[0084] Next, an example of the front insertion process shown in step 104 in Fig. 7 will be described. Fig. 8 is a flowchart showing the procedure of the front insertion process. As shown in Fig. 8, the calculation unit 152 sets 1 to the front insertion position j (step S201). The calculation unit 152 calculates the element a ij and a ji (Step S202).
[0085] The calculation unit 152 calculates the stored ΔE (i-1) Using ΔE j (Step S203). In step S203, the calculation unit 152 executes the calculation of ΔE shown in the forward table 143a. The calculation unit 152 calculates ΔE j is stored in the storage unit 140 (step S204).
[0086] The calculation unit 152 determines whether to perform MCMC bit inversion (step S205). For example, the calculation unit 152 calculates ΔE j If ΔE is positive, it is determined that MCMC bit inversion is to be performed (Yes in step S205), and the process proceeds to step S206. j If is equal to or less than 0, it is determined that MCMC bit inversion is not to be performed (step S205, No), and the process proceeds to step S210.
[0087] The calculation unit 152 executes MCMC bit inversion and updates the permutation (step S206). The calculation unit 152 calculates the energy E (step S207). In step S207, the calculation unit 152 calculates the energy E by subtracting ΔE from the energy of the original matrix set in step S101.
[0088] The calculation unit 152 determines whether the energy E is greater than E_MAX (the maximum value of the energy E up to now) (step S208). If the energy E is not greater than E_MAX (step S208, No), the calculation unit 152 proceeds to step S210.
[0089] On the other hand, if the energy E is greater than E_MAX (Yes at step S208), the calculation unit 152 updates E_MAX with the energy E calculated at step S207 (step S209).
[0090] If the condition j<(i-1) is satisfied (Yes at step S210), the calculation unit 152 adds 1 to the forward insertion position j to update the forward insertion position (step S211), and the process proceeds to step S203.
[0091] On the other hand, if the condition j<(i-1) is not satisfied (step S210, No), the calculation unit 152 ends the front insertion process.
[0092] Next, an example of the rear insertion process shown in step S106 in Fig. 7 will be described. Fig. 9 is a flowchart showing the procedure of the rear insertion process. As shown in Fig. 9, the calculation unit 152 sets 1 to the front insertion position t (step S301). The calculation unit 152 calculates the element a it and a ti (Step S302).
[0093] The calculation unit 152 calculates the stored ΔE (t-1) Using ΔE t(Step S303). In step S303, the calculation unit 152 executes the calculation of ΔE shown in the rear table 143b. The calculation unit 152 calculates ΔE t is stored in the storage unit 140 (step S304).
[0094] The calculation unit 152 determines whether to perform MCMC bit inversion (step S305). For example, the calculation unit 152 calculates ΔE t If ΔE is positive, it is determined that MCMC bit inversion is to be performed (Yes in step S305), and the process proceeds to step S306. t If is equal to or less than 0, it is determined that MCMC bit inversion is not to be performed (step S305, No), and the process proceeds to step S310.
[0095] The calculation unit 152 executes MCMC bit inversion and updates the permutation (step S306). The calculation unit 152 calculates the energy E (step S307). In step S307, the calculation unit 152 calculates the energy E by subtracting ΔE from the energy of the original matrix set in step S101.
[0096] The calculation unit 152 determines whether the energy E is greater than E_MAX (the maximum value of the energy E up to now) (step S308). If the energy E is not greater than E_MAX (step S308, No), the calculation unit 152 proceeds to step S310.
[0097] On the other hand, if the energy E is greater than E_MAX (Yes at step S308), the calculation unit 152 updates E_MAX with the energy E calculated at step S307 (step S309).
[0098] If the condition t≧(number of dimensions N−1) is satisfied (Yes at step S310), the calculation unit 152 ends the rear insertion process.
[0099] On the other hand, if the condition t≧(number of dimensions N−1) is not satisfied (step S310, No), the calculation unit 152 updates the rear insertion position by adding 1 to the rear insertion position t (step S311), and proceeds to step S303.
[0100] Next, the effect 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 a difference value between the energy in the state before the movement and the energy in the state after the movement. 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 calculation of the energy of the permutation.
[0101] For example, by using the processing of the optimization device 100 to eliminate duplicate calculations and select some elements of the vote number matrix A to calculate ΔE, it is possible to reduce the number of additions and subtractions by 99% compared to the conventional technology.
[0102] In the conventional technology, when the first permutation number is inserted at the end in 100 dimensions, the difference in energy E is ΔE j is calculated by equation (20). The number of additions and subtractions performed by the conventional technology is 199, which is the sum of 99 additions and 100 subtractions.
[0103]
number
[0104] On the other hand, according to the optimization device 100 of this embodiment, regardless of the number of dimensions of the LOP, the number of additions and subtractions is two by reusing and accumulating ΔE in order. For example, when the permutation number j is moved forward by t units, the difference value ΔE of the energy E is j is calculated using equation (21), and the number of additions and subtractions is two.
[0105]
number
[0106] Incidentally, the above-described content of the process of the optimization device 100 is an example, and the optimization device 100 may execute other processes. The optimization device 100 selects one permutation number of the permutation, moves the selected permutation number forward or backward, and calculates a difference value between the energy in the state before the movement and the energy in the state after the movement, but is not limited to this. The optimization device 100 may change the state of the matrix by inserting a group of permutation numbers consisting of a plurality of adjacent permutation numbers into a forward or backward permutation, and calculate a difference value ΔE between the energy before the state change and the energy after the state change.
[0107] The optimization device 100 registers, in the calculation table 143, the calculation of ΔE when the selected group is moved backward and the calculation of ΔE when the selected group is moved forward. Fig. 10 is a diagram for explaining other processes of the optimization device.
[0108] For example, if the original permutation is 12345, the matrix A of the original permutation is as shown in Fig. 10. The explanation will be given using the calculation table 143c. The example of the permutation shown in the calculation table 143c is just an example, and the explanation of the relationship between other permutations and the calculation method of ΔE will be omitted.
[0109] When the optimization device 100 selects permutation number 12 from the original permutation 12345 and inserts permutation number 12 between permutation numbers 3 and 4, the permutation becomes 31245. In this case, the optimization device 100 calculates a difference value ΔE between the energy of permutation 12345 and the energy of permutation 31245 by a calculation method defined by one matrix of the calculation table 143c.
[0110] When the optimization device 100 selects permutation number 12 from the original permutation 12345 and inserts permutation number 12 between 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 permutation 12345 and the energy of permutation 34125 by the calculation method defined by two matrices in the calculation table 143c.
[0111] When the optimization device 100 selects permutation number 12 from the original permutation 12345 and inserts permutation number 12 after permutation number 5, the permutation becomes 34512. In this case, the optimization device 100 calculates the difference value ΔE between the energy of permutation 12345 and the energy of permutation 34125 by the calculation method defined by the three matrices in the calculation table 143c.
[0112] When the optimization device 100 selects permutation number 45 from the original permutation 12345 and inserts permutation number 45 between 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 permutation 12345 and the energy of permutation 12453 by the calculation method defined by the four matrices of calculation table 143c.
[0113] When the optimization device 100 selects permutation number 45 from the original permutation 12345 and inserts permutation number 45 between permutation numbers 1 and 2, the permutation becomes 14523. In this case, the optimization device 100 calculates a difference value ΔE between the energy of permutation 12345 and the energy of permutation 14523 by a calculation method defined by five matrices in calculation table 143c.
[0114] When the optimization device 100 selects permutation number 45 from the original permutation 12345 and inserts permutation number 45 before permutation number 1, the permutation becomes 45123. In this case, the optimization device 100 calculates the difference value ΔE between the energy of permutation 12345 and the energy of permutation 45123 by the calculation method defined by the 6 matrices of calculation table 143c.
[0115] Next, a supplementary explanation regarding MCMC inversion will be provided. There is Simulated Annealing (SA) which applies MCMC to a general-purpose technique for solving high-dimensional optimization problems. SA stochastically explores the vicinity of the current state, and if the objective function increases from the current state, it accepts a new state with a high probability (e.g., probability 1), and also accepts the state with a small probability even when it decreases, and repeats this operation. SA is not limited to combinatorial optimization problems and is also used, for example, for optimizing the objective function of continuous variables.
[0116] Here, let ΔE be the increment of the objective function (energy) when transitioning from the current state to a new state. The operation of stochastically accepting a new state even when the objective function increases (ΔE < 0) can be understood in terms of a physical analogy of receiving thermal energy from the environment to compensate for the decrease in the objective function. In SA, by gradually lowering the parameter corresponding to temperature from a high value, optimization can be performed while avoiding local maxima. Since the temperature is lowered, the term "annealing" from the metallurgical field is used. Here, consider the case where the relationship between the probability of taking a state and the energy of that state follows a 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).
[0117]
Equation
[0118] In Equation (22), T represents temperature. The transition acceptance probability of Equation (22) satisfies detailed balance in statistical physics, and in the equilibrium state, the distribution of states becomes a Boltzmann distribution. Note that a transition acceptance probability that satisfies detailed balance can be created other than Equation (22).
[0119] The above optimization device 100 determined to execute MCMC bit inversion when ΔE is positive, but using a uniform random number u[i] (0 < u[i] < 1), A(ΔE i) to determine whether to perform MCMC bit inversion. <A(ΔE i ), perform MCMC bit inversion; otherwise, do not perform MCMC bit inversion.
[0120] Next, an example of a hardware configuration of a computer that realizes the same functions as the optimization device 100 shown in the above embodiment will be described. Fig. 11 is a diagram showing an example of a hardware configuration of a computer that realizes the same functions as the optimization device.
[0121] 11, the computer 200 has a CPU 201 that executes various arithmetic processes, an input device 202 that accepts 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 to various devices. The computer 200 has a RAM 206 that temporarily stores various information, and a hard disk device 207. The devices 201 to 207 are connected to a bus 208.
[0122] The hard disk device 207 stores an acquisition program 207a and a calculation program 207b. The CPU 201 reads out the acquisition program 207a and the calculation program 207b and loads them in the RAM 206.
[0123] The acquisition program 207a functions as an acquisition process 206a. The calculation program 207b functions as a calculation process 306b.
[0124] The processing of the acquisition process 206a corresponds to the processing of the acquisition unit 151. The processing of the calculation process 206b corresponds to the processing of the calculation unit 152.
[0125] It is not necessary that each of the programs 207a and 207b is stored in the hard disk device 207 from the beginning. For example, each of the programs may be stored in a "portable physical medium" such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card that is inserted into the computer 200. Then, the computer 200 may read and execute each of the programs 207a and 207b.
[0126] The following supplementary notes are further disclosed regarding the embodiments including the above examples.
[0127] (Appendix 1) For a permutation of a matrix corresponding to a permutation of a plurality of elements in a linear ordering problem, selecting one permutation number of the permutation, moving the selected permutation number forward or backward, and calculating a first difference value between the energy of a first state of the permutation before the move and the energy of a second state of the permutation after the move; storing the first difference value in a storage device; a first permutation number of the permutation is selected, the selected permutation number is moved forward or backward, and a second difference value between an energy of a second state of the permutation before the movement and an energy of a third state of the permutation after the movement is calculated by reading the first difference value stored in the storage device and calculating the second difference value. An optimization program that causes a computer to execute a process.
[0128] (Appendix 2) The optimization program according to appendix 1, characterized in that the process of calculating the second difference value is performed by causing the computer to execute a process of calculating the second difference value using information indicating a relationship between the number of times a selected permutation number has been moved forward or backward, the first difference value, some of the elements in the first state, and the second difference value.
[0129] (Note 3) updating the first difference value stored in the storage device with the second difference value, and selecting one permutation number of the permutation; storing the calculated second difference value in the storage device; 3. The optimization program according to claim 1 or 2, further comprising a step of causing a computer to execute a process of reading out the second difference value stored in the storage device and calculating the third difference value when a selected permutation number is moved forward or backward and a third difference value between an energy of a third state of the permutation before the move and an energy of a fourth state of the permutation after the move is calculated.
[0130] (Appendix 4) The optimization program according to appendix 1, characterized in that in the selection process, the computer selects multiple adjacent permutation numbers in the permutation and moves the selected permutation numbers forward or backward to change the state of the permutation.
[0131] (Appendix 5) A computer-implemented optimization method, comprising: For a permutation of a matrix corresponding to a permutation of a plurality of elements in a linear ordering problem, selecting a permutation number of the permutation, moving the selected permutation number forward or backward, and calculating a first difference value between an energy of a first state of the permutation before the move and an energy of a second state of the permutation after the move; storing the first difference value in a storage device; a first permutation number of the permutation is selected, the selected permutation number is moved forward or backward, and a second difference value between an energy of a second state of the permutation before the movement and an energy of a third state of the permutation after the movement is calculated by reading the first difference value stored in the storage device and calculating the second difference value. Optimization method comprising:
[0132] (Appendix 6) The optimization method according to appendix 5, characterized in that the process of calculating the second difference value is further performed by the computer using information indicating a relationship between the number of times a selected permutation number has been moved forward or backward, the first difference value, some of the elements in the first state, and the second difference value.
[0133] (Supplementary Note 7) The optimization method according to Supplementary Note 5 or 6, characterized in that the computer further executes a process of reading out the second difference value stored in the storage device and calculating the third difference value when 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, moving the selected permutation number forward or backward, and calculating a third difference value between an energy of a third state of the permutation before the move and an energy of a fourth state of the permutation after the move.
[0134] (Appendix 8) The optimization method according to appendix 5, characterized in that in the selecting process, the computer selects multiple adjacent permutation numbers in the permutation numbers of the permutation and changes the state of the permutation by moving the selected permutation numbers forward or backward.
[0135] (Appendix 9) An acquisition unit for acquiring a matrix corresponding to a permutation of a plurality of elements in a linear ordering problem; a calculation unit for selecting one permutation number of the permutation, moving the selected permutation number forward or backward, calculating a first difference value between an energy of a first state of the permutation before the movement and an energy of a second state of the permutation after the movement, storing the first difference value in a storage device, selecting one permutation number of the permutation, moving the selected permutation number forward or backward, and calculating a second difference value between an energy of the second state of the permutation before the movement and an energy of a third state of the permutation after the movement, the calculation unit reading out the first difference value stored in the storage device and calculating the second difference value; An optimization device comprising:
[0136] (Supplementary Note 10) The optimization device according to Supplementary Note 9, wherein the calculation unit executes a process of calculating the second difference value using information indicating a relationship between the number of times the selected permutation number has been moved forward or backward, the first difference value, a portion of elements in the first state, and the second difference value.
[0137] (Supplementary Note 11) The optimization device according to Supplementary Note 9 or 10, characterized in that the calculation unit further executes a process of reading out the second difference value stored in the storage device and calculating the third difference value when 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, moving the selected permutation number forward or backward, and calculating a third difference value between an energy of a third state of the permutation before the movement and an energy of a fourth state of the permutation after the movement.
[0138] (Appendix 12) The optimization device according to appendix 9, wherein the calculation unit selects adjacent permutation numbers from among the permutation numbers of the permutation, and changes the state of the permutation by moving the selected permutation numbers forward or backward. [Explanation of symbols]
[0139] 100 Optimizer 110 Communications Department 120 Input section 130 Display section 140 Storage section 141 Voting matrix information 142 Differential Value Information 143 Calculation Table 150 Control section 151 Acquisition Department 152 Calculation section
Claims
1. a first movement process for selecting one permutation number of a first permutation for a matrix permutation corresponding to a permutation of a plurality of elements in the linear ordering problem, and moving the selected permutation number forward or backward by a first predetermined number; a first calculation process for calculating a first difference value between an energy of a first state of the first permutation and an energy of a second state of a second permutation after the permutation is shifted in the first shift process; a storage process of storing the first difference value in a storage device; a second movement process for moving the permutation numbers of the first permutation by a second predetermined number larger than the first predetermined number in the same direction as the direction of the movement in the first movement process; a second calculation process for calculating a second difference value between the energy of the first state and the energy of a third state of a third permutation after the movement in the second movement process, by using the first difference value stored in the storage device; An optimization program that causes a computer to execute the above steps.
2. 2. The optimization program according to claim 1, wherein the second calculation process causes the computer to execute a process of calculating the second difference value using the second predetermined number, the first difference value, and some elements of the first state.
3. 2. The optimization program according to claim 1, wherein in the first movement process, the computer selects a plurality of adjacent permutation numbers from among the permutation numbers and moves the selected permutation numbers forward or backward to change the state of the permutation.
4. 1. A computer implemented optimization method comprising: selecting a permutation number of a first permutation for a matrix corresponding to a permutation of a plurality of elements in the linear ordering problem, and shifting the selected permutation number forward or backward by a first predetermined number; calculating a first difference value between an energy of a first state of the first permutation and an energy of a second state of a second permutation after the shift; storing the first difference value in a storage device; for the first permutation, moving the permutation number by a second predetermined number greater than the first predetermined number in the same direction as the direction in which the permutation number was moved; When calculating a second difference value between the energy of the first state and the energy of a third state of a third permutation after the shift, the second difference value is calculated using the first difference value stored in the storage device. Optimization method comprising:
5. an acquisition unit that acquires a matrix corresponding to a permutation of a plurality of elements in a linear ordering problem; a calculation unit that selects one permutation number of a first permutation for a permutation of the matrix, moves the selected permutation number forward or backward by a first predetermined number, calculates a first difference value between an energy of a first state of the first permutation and an energy of a second state of a second permutation after the movement, stores the first difference value in a storage device, moves the permutation number for the first permutation by a second predetermined number greater than the first predetermined number in the same direction as the movement direction, and calculates a second difference value between the energy of the first state and an energy of a third state of a third permutation after the movement using the first difference value stored in the storage device; An optimization device comprising:
Citation Information
Patent Citations
Signal discrimination device in coding communication system, receiver, signal discrimination method and communication channel state estimate method
JP1997074404A
Nonvolatile semiconductor storage device and writing method thereof
JP2007188593A