Information processing device, information processing method, and information processing program

The information processing device optimizes vehicle routing problems with two-way one-hot constraints by excluding redundant variable swaps, improving computational efficiency and reducing calculation time.

JP7753899B2Active Publication Date: 2025-10-15FUJITSU LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2022009452
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-01-25
Publication Date
2025-10-15
Estimated Expiration
2042-01-25

AI Technical Summary

Technical Problem

Conventional methods for solving vehicle routing problems with two-way one-hot constraints face inefficiencies in computational speed and time due to the allocation of redundant base stations, leading to increased optimization calculation time and difficulty in reaching optimal solutions.

Method used

An information processing device and method that utilizes an objective function with predetermined variables, includes a candidate determination unit to exclude sets with swapped redundant variable values, and a search unit to change values based on constraints, reducing computation time by optimizing the solution process.

Benefits of technology

The solution significantly reduces computation time for problems with two-way one-hot constraints, enhancing computational efficiency and enabling faster resolution of vehicle routing problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007753899000010
    Figure 0007753899000010
  • Figure 0007753899000011
    Figure 0007753899000011
  • Figure 0007753899000012
    Figure 0007753899000012
Patent Text Reader

Abstract

To provide an information processing device which shortens calculation time for a problem following a two-way one-hot constraint, an information processing method, and an information processing program.SOLUTION: An optimization device 1 includes following units and obtains a solution of a problem to which a prescribed constraint containing a two-way one-hot constraint is given by using an objective function having a prescribed number of variables. When determining a set of candidates for changing values on the basis of the prescribed constraint from an expanded variable obtained by adding a plurality of redundant variables to the prescribed number of variables, a candidate determination unit 14 excludes one of the sets of candidates in which values of redundant variables are interchanged. An optimization unit 20 performs retrieval on the basis of the objective function by varying values of sets of candidates determined by the candidate determination unit 14 according to the prescribed constraint. An update control unit 16 determines a solution on the basis of the result of the retrieval by the optimization unit 20.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing device, an information processing method, and an information processing program. [Background technology]

[0002] Combinatorial optimization problems exist in various fields in modern society. For example, in fields such as manufacturing, distribution, and marketing, combinations of elements that optimize or minimize costs are sought. However, combinatorial optimization problems are known to be difficult to solve using conventional von Neumann computers because the computation time increases exponentially as the number of variables corresponding to the elements increases.

[0003] As a method for solving multivariable optimization problems that von Neumann computers are not good at, there are optimization devices that use an Ising energy function. Such optimization devices are also called Ising machines or Boltzmann machines. The energy function is also sometimes called a cost function or an objective function. Optimization devices calculate the problem to be calculated by replacing it with an Ising model, which is a model that represents the behavior of spin in magnetic materials.

[0004] One calculation method for solving minimum value problems using the Ising model is to find the minimum value of an Ising-type energy function using Markov Chain Monte Carlo (MCMC). In the MCMC method, state transitions, which are updates to the state variables of the energy function, are generally performed with transition probabilities according to the Boltzmann distribution. In the MCMC method, a search is performed by probabilistically flipping one of the bits in the bit string representing the state, and the feasibility of a transition is determined based on the energy difference when transitioning from the current state to a nearby state. Ising-type energy is the energy of a quadratic system of binary variables.

[0005] Among such optimization problems, there are problems that are subject to a constraint condition called a one-hot constraint. A one-hot constraint is a constraint that limits the number of state variables that take on a value of 1 in a solution when there are multiple state variables. Optimization problems that feature a one-hot constraint include many scheduling problems such as the Traveling Salesman Problem (TSP) and the Versatile Place and Route (VPR) problem, as well as the Knapsack Problem and the Bin Packing Problem.

[0006] Furthermore, there are two types of one-hot constraints. One is called a one-way one-hot (1W1H) constraint. In this case, each variable appears once in the set of constraints. Optimization problems with this constraint include traffic flow optimization and bin packing problems.

[0007] The other constraint is called the 2W2H (Two Way One Hot) constraint. In this case, n 2 When the variables are arranged in an n x n square, the sums of each row and each column are all 1. This constraint is equivalent to the constraint when determining the permutation of n different elements, for example, the integers 1, 2, . . . , n. Optimization problems with this constraint include the traveling salesman problem, the vehicle routing problem, and the quadratic assignment problem (QAP).

[0008] As a solution to such a two-way, two-hot problem, for example, in the case of a vehicle dispatching problem, a technology has been proposed that determines the maximum number of stops on each route, taking into account the upper limit on the number of stops that a vehicle can visit based on the upper load capacity. Another technology has been proposed that solves vehicle dispatching problems by automatically adjusting the values ​​of weight coefficients for constraint terms that represent constraint conditions using an update rule. Another technology has been proposed that solves vehicle dispatching problems by searching for the optimal route using an insertion method, which selects customers called seed customers from each of multiple customer groups and inserts the remaining customers based on their evaluation values ​​into a closed path connecting the main customers. [Prior art documents] [Patent documents]

[0009] [Patent Document 1] Japanese Patent Application Publication No. 8-153085 [Patent Document 2] Japanese Patent Application Laid-Open No. 2015-38429 Summary of the Invention [Problem to be solved by the invention]

[0010] However, in conventional methods that solve vehicle dispatch problems by determining the maximum number of base stations for each route, taking into account the upper limit on the number of base stations that a single vehicle can visit based on the upper load capacity limit, the problem is solved by allocating a number of redundant base stations according to the maximum value. The number of redundant base stations increases with the problem size, which can increase the optimization calculation time and make it difficult to reach an optimal solution.

[0011] Furthermore, with a technology that solves a vehicle routing problem by automatically adjusting the values ​​of weight coefficients for constraint terms that represent constraint conditions using an update rule, it is difficult to improve computational efficiency compared to solving a vehicle routing problem using redundant bases. Similarly, with a technology that solves a vehicle routing problem by searching for an optimal route using an insertion method, it is difficult to improve computational efficiency compared to solving a vehicle routing problem using redundant bases. Therefore, with either technology, when solving a vehicle routing problem, computational efficiency is not improved, and it is difficult to improve the speed at which the vehicle routing problem is solved.

[0012] The disclosed technology has been made in view of the above, and aims to provide an information processing device, an information processing method, and an information processing program that reduce the calculation time for a problem that complies with a 2-way 1-hot constraint. [Means for solving the problem]

[0013] In one aspect of the information processing device, information processing method, and information processing program disclosed herein, the information processing device includes the following units and uses an objective function having a predetermined number of variables to find a solution to a problem given predetermined constraints, including a two-way one-hot constraint. The candidate determination unit, when determining a set of candidates whose values ​​are changed based on the predetermined constraints from augmented variables obtained by adding multiple redundant variables to the predetermined number of variables, excludes one of the sets of candidates in which the values ​​of the redundant variables are swapped. The search unit changes the values ​​of the set of candidates determined by the candidate determination unit in accordance with the predetermined constraints and performs a search based on the objective function. The update control unit determines the solution based on the results of the search by the search unit. [Effects of the Invention]

[0014] In one aspect, the present invention can reduce the computation time for problems subject to a two-way one-hot constraint. [Brief explanation of the drawings]

[0015] [Figure 1] FIG. 1 is a diagram for explaining the 2-way 1-hot constraint. [Figure 2] FIG. 2 is a configuration diagram of an optimization unit included in the optimization device according to the embodiment. [Figure 3] FIG. 3 is a diagram illustrating an example of a selection circuit. [Figure 4] FIG. 4 is a block diagram showing details of the control unit of the optimization device. [Figure 5] FIG. 5 is a diagram illustrating an example of a vehicle allocation planning problem. [Figure 6] FIG. 6 is a diagram showing an example of group variables assigned to matrix elements. [Figure 7] FIG. 7 is a flowchart of the optimization process performed by the optimization device according to the embodiment. [Figure 8] FIG. 8 is a diagram showing the degree of reduction in the number of iterations when solving a vehicle dispatching problem. DETAILED DESCRIPTION OF THE INVENTION

[0016] Hereinafter, embodiments of an information processing device, an information processing method, and an information processing program disclosed in the present application will be described in detail with reference to the accompanying drawings. Note that the information processing device, the information processing method, and the information processing program disclosed in the present application are not limited to the following embodiments. [Example]

[0017] The values ​​of N bits corresponding to the multiple spins (number of spins = N) included in the 2-way 1-hot Ising model are expressed as state variables x1 to x N In the following, x i The state variable x i Or just x i It may be expressed as:

[0018] In this case, for example, the one-hot constraint is satisfied when there is only one state variable whose value is 1 in each group in parentheses in the following formula (1).

[0019]

number

[0020] For example, if there are three state variables x1, x2, and x3 in a group, the states {x1, x2, x3} = {1, 0, 0}, {0, 1, 0}, and {0, 0, 1} satisfy the 1-hot constraint. On the other hand, the states {x1, x2, x3} = {0, 0, 0}, {1, 1, 0}, {1, 0, 1}, and {0, 1, 1} do not satisfy the 1-hot constraint.

[0021] Furthermore, in the case of a 2-way 1-hot constraint, both groups of two conditions satisfy the 1-hot constraint, that is, the number of state variables whose value is 1 in each group is one. In the case of a 2-way 1-hot constraint, for example, if both groups of two conditions have n components, the elements that collectively represent the components of each group can be arranged in an n x n square as shown in Figure 1. In this case, the sum of each row and the sum of each column are all 1. Figure 1 is a diagram for explaining the 2-way 1-hot constraint. In Figure 1, m = 1, 2,...,N, and N = n 2 is.

[0022] In this case, in order to transition from a state that satisfies the 2-way 1-hot constraint to another state that satisfies the 2-way 1-hot constraint, the optimization device changes the value of 4 bits in one state update process. For example, in Figure 1, the state variable x j If has a value of 0, then x j When x transitions from 0 to 1, j The state variable x that is in the same row as i is transitioned from 1 to 0. Also, x j The state variable x that is in the same column as g is transitioned from 1 to 0. Furthermore, x i In the same column as x g x on the same line as k is transitioned from 0 to 1. Hereinafter, transitioning the value of a certain state variable from 0 to 1 or from 1 to 0 will be referred to as inversion of the value of the state variable or bit inversion.

[0023] In this way, in order to transition from a state that satisfies the 2-way 1-hot constraint to another state that satisfies the 2-way 1-hot constraint, four state variables transition as shown in the following equation (2).

[0024]

number

[0025] In this case, the Ising-type energy function using the weight values ​​is defined by, for example, the following equation (3).

[0026]

number

[0027] The first item on the right side is the sum of the products of the two bit values ​​(0 or 1) and the weight values ​​for all combinations of two bits that can be selected from all bits included in the Ising model, without omissions or overlaps. x i is the state variable whose index (bit identification information) is i, and x j is a state variable that represents the value of the bit whose index is j. In the following, the index represented as i may be referred to as index i or simply as i. ij is a weight value that indicates the magnitude of interaction between the bit with index i and the bit with index j. ii = 0. Also, W ij =W ji This is often the case.

[0028] The two items on the right side are the sum of the products of the bias values ​​of all bits and the bit values. i denotes the bias value of the bit with index i.

[0029] Here, in formula (2), x i The value of 1-x changes i Then, x i The increase in Δx i =(1-x i )-xi =1-2x i The energy change (ΔE i ) is expressed by the following formula (4).

[0030]

number

[0031] Furthermore, as mentioned above, to transition from one state that satisfies the 2-way 1-hot constraint to another state that satisfies the 2-way 1-hot constraint, the value of 4 bits is changed. If the indexes i, j, k, and g are changed as shown in Equation (2), the energy change in that case can be calculated using Equation (3) as shown in Equation (5).

[0032]

number

[0033] x i When changes from 1 to 0, Δx i becomes -1, and x i When changes from 0 to 1, Δx i is 1. Note that h i is called the local field value or local field, and Δx i Depending on h i Multiplying by the sign (+1 or -1) is ΔE i is.

[0034] And x j When bit-flipping occurs, the local field h i The change in δh i (j) is expressed by the following equation (6).

[0035]

number

[0036] That is, h iPrepare a register to store x j When the bits are inverted, the correct h is obtained by adding the change expressed by equation (5). i is obtained.

[0037] x j h when changes from 0 to 1 m The change in is δh m (j) =+W mj and x j h when changes from 1 to 0 m The change in is δh m (j) =-W mj Similarly, x i h for the bit with index m when m The change in is δh m (i) =Δx m W mi Also, x k h for the bit with index m when m The change in is δh m (k) =Δx m W mk Also, x g h for the bit with index m when m The change in is δh m (k) =Δx m W mk This can be expressed as:

[0038] As mentioned above, to transition from one state that satisfies the 2-way 1-hot constraint to another state that satisfies the 2-way 1-hot constraint, the value of 4 bits is changed. For example, the state variable x j changes from 0 to 1, and the state variable x i changes from 1 to 0, and the state variable x k changes from 0 to 1, and the state variable x g When changes from 1 to 0, the change in the local field of index m is expressed by the following equation (7):

[0039]

number

[0040] When the optimization device searches for a ground state by repeatedly changing the values ​​of four bits in one state update process, the local field values ​​are updated in each state update process to calculate the energy change. For example, if the values ​​of the bits at index j and index k in a certain group both change from 0 to 1, and the values ​​of the bits at index i and index g both change from 1 to 0, then the values ​​of h1 to h2 for n bits are calculated as follows: n is updated based on the following equation (8):

[0041]

number

[0042] In formula (8), h1'~h n ' is the local field value after the update.

[0043] Next, details of the optimization device 1 according to the present embodiment will be described. FIG. 2 is a configuration diagram of an optimization unit included in the optimization device according to the embodiment. The optimization device 1, which is an information processing device, includes a control unit 10 and an optimization unit 20. The optimization unit 20 includes a storage unit 21, a local field generation unit 22, an energy change calculation unit 23, an offset addition unit 24, a selection circuit 25, and an update unit 26. The optimization unit 20 is an example of a "search unit." Here, a case will be described in which an optimization problem having a 2-way 1-hot constraint is solved using a group of conditions, each of which has n components.

[0044] The storage unit 21 has paths for multiple columns, and furthermore, the same number of storage elements 210 as the number of columns are arranged in each column. For example, in FIG. 2, the storage unit 21 has paths for N columns. The storage unit 21 has N storage elements 210 in each column. The storage elements 210 arranged in the same number of rows from the top of each column correspond to a row having N elements. That is, the storage unit 21 holds weight values ​​indicating the magnitude of interaction between each of the N bits in the storage elements 210 arranged in an N×N matrix. The control unit 10 stores initial values ​​of the weight value matrix in each storage element 210 of the storage unit 21 during the initial setting process. In FIG. 2, when the row number is i and the column number is j, the storage element 210 in each row and column stores W ij The storage unit 21 is realized by using, for example, a register or a static random access memory (SRAM).

[0045] When the selection circuit 25 selects a state variable whose value is to be inverted, the weight value corresponding to the selected state variable among the weight values ​​stored in each storage element 210 of the storage unit 21 is rewritten to the inverted value. For example, if x is selected as the state variable to be inverted, j When is selected, the index j is input from the selection circuit 25, and W mj In the case of a 2-way 1-hot matrix, since all four bits are inverted at once, the weight value held in the storage element 210 identified by the index indicating the other three bits corresponding to the index specified by the selection circuit 25 is also rewritten. For example, in the case of the matrix shown in FIG. 1, the indexes indicating the other three bits corresponding to the index j are i, k, and g.

[0046] The local field generating unit 22 has a plurality of local field generating circuits 220 arranged to correspond to each column of the memory elements 210 arranged in the matrix of the memory unit 21. Each local field generating circuit 220 acquires a weight value of each memory element 210 arranged in the corresponding column. Then, each local field generating circuit 220 uses the acquired weight value to generate a local field value, which is the value of the local field.

[0047] In the example of FIG. 1, the local field generator 22 generates local field values ​​h1, h2, . . . , h for each of the N bits. N Each of the local field generating circuits 220 has a holding unit, which is implemented by a register or the like (not shown), and holds local field values ​​h1 to h N Maintain and update the information.

[0048] For example, the state variable x j When the weights W are updated, each local field generating circuit 220 updates the corresponding weights W j1 ,W j2 ,~,W jN Specifically, the local field generating circuit 220 corresponding to the i-th row updates the local field by adding or subtracting the state variable x j If transitions from 0 to 1, the weight value W ji The local field h i and the state variable x j If the transition occurs from 1 to 0, the weight value W ji The local field h i Here, as described above, in the case of 2-way 1-hot, 4 bits are inverted, so the local field generation circuit 220 updates the local field by adding or subtracting Equation (7) to the local field it holds.

[0049] h1~h N The initial values ​​of the bias values ​​b1 to b N and is set by the control unit 10 during the initial setting process. The local field generating circuit 220 is realized using, for example, an adder or a subtractor in addition to a register.

[0050] The energy change calculation unit 23 calculates the energy change based on the local field value generated by the local field generation unit 22. In the example of Fig. 1, the energy change calculation unit 23 calculates ΔE1, ΔE2, ..., ΔE NIn FIG. 2, as an example, the local field h i Although the diagram shows paths extending from the local field generation circuit 220 holding the energy change calculation circuit 230 to each of the energy change calculation circuits 230, paths also extend from other local field generation circuits 220 to all of the energy change calculation circuits 230.

[0051] The energy change calculation circuit 230 calculates the amount of energy change using equation (5). Specifically, ΔE j is the amount of energy change when four state variables transition as shown in Equation 2. Thereafter, each energy change calculation circuit 230 outputs the calculated amount of energy change to the selection circuit 25.

[0052] The offset addition unit 24 monitors the amount of energy change output from each energy change calculation circuit 230. If all of the energy change amounts output from each energy change calculation circuit 230 are positive, the offset addition unit 24 adds an offset to each value. The offset is a negative value, and the offset addition unit 24 adjusts the amount of energy change so that it appears as a negative value, i.e., an energy change amount when the energy decreases.

[0053] The selection circuit 25 receives as input the energy change amounts output from each energy change calculation circuit 230. Here, if all of the energy change amounts are positive, the selection circuit 25 receives as input a value to which an offset has been added by the offset addition unit 24.

[0054] The selection circuit 25 outputs an index that identifies one of the values ​​for which updating is permitted, based on the magnitude relationship between the thermal excitation energy and the energy change amounts output by each of the multiple energy change calculation circuits 230. The thermal excitation energy is determined based on a random number and a temperature parameter input from the control unit 10. When simulated annealing is performed in the optimization device 1, the temperature parameter is controlled by the control unit 10, for example, so that its value decreases each time the process of updating the state of the Ising model is repeated a predetermined number of times. It is also possible to select a state change in the direction of decreasing energy, but in this case, the process will stop at a local minimum. Therefore, a selection is made that probabilistically allows changes that increase energy as well.

[0055] Fig. 3 is a diagram showing an example of a selection circuit. The selection circuit 25 in Fig. 3 is a circuit that selects update bit candidates in a parallel manner. The input terminals 251 are terminals that receive input of index values ​​corresponding to the amount of energy change output from the energy change calculation circuit 230. Each terminal is connected two to a selector 252. Furthermore, outputs from the selector 252 are connected two to a selector 252 in the next stage.

[0056] The selection circuit 25 compares the amount of energy change input from the energy change calculation circuit 230 with the temperature parameter input from the control unit 10 to determine whether the transition of the state variable is acceptable. For example, the selection circuit 25 determines that the transition of the state variable is acceptable when the amount of energy change is less than a predetermined value calculated from the temperature parameter. Then, the selection circuit 25 sets an update enable flag for the index corresponding to the energy change for which the transition of the state variable is determined to be acceptable. The selection circuit 25 then inputs the indexes corresponding to each energy change to each input terminal 251, and holds a tournament using the selector 252.

[0057] The selector 252 is realized, for example, by the circuit on the right side of FIG. 3 . The selector 252 having this circuit receives two statuses 01 and 02 as inputs and acquires flags F1 and F2 and indexes #1 and #2 from them, respectively. The selector 252 then receives a random number as input and selects one of the indexes 01 or 02 for which the updateable flag is set. The selector 252 adds an entry number indicating the selected 0 or 1 to the upper part of the index. The selector 252 then outputs the selected index to the selector 252 in the next stage. The index selected by the selector 252 in the final stage indicates the bit selected by the selection circuit 25. Information on the index selected by the selection circuit 25 is output to the update unit 26 and sent to the storage unit 21. As a result, the weight values ​​held by the storage element 210 identified by the index and the storage element 210 identified by the index representing the corresponding other bit are updated.

[0058] The update unit 26 updates N-bit values ​​(x1 to x N ) is stored in the memory unit 260. The memory unit 260 is realized by using, for example, a register or an SRAM. The update unit 26 updates the value of the bit identified by the index input from the selection circuit 25 from 0 to 1. Furthermore, the update unit 26 updates the values ​​of the other three bits corresponding to the index input from the selection circuit 25. For example, the state variable x j When an index j indicating i, k, and g is input from the selection circuit 25, the update unit 26 updates the values ​​of the bits identified by the indexes i, k, and g. In this case, the update unit 26 updates each value as shown in Equation (2).

[0059] Next, the control unit 10 will be described. FIG. 4 is a block diagram showing the details of the control unit of the optimization device. As shown in FIG. 4, the control unit 10 has an upper limit calculation unit 11, an objective function generation unit 12, an initialization execution unit 13, a candidate determination unit 14, a temperature management unit 15, an update control unit 16, and a notification unit 17. The control unit 10 is realized, for example, by an FPGA (Field Programmable Gate Array). More specifically, the functions of the upper limit calculation unit 11, the objective function generation unit 12, the initialization execution unit 13, the candidate determination unit 14, the temperature management unit 15, the update control unit 16, and the notification unit 17 are realized by a computing unit and a memory unit included in a programmed FPGA.

[0060] Here, a case will be described in which the optimization device 1 solves a vehicle dispatch planning problem (CVRP). FIG. 5 is a diagram showing an example of the vehicle dispatch planning problem. In the vehicle dispatch planning problem, as shown in FIG. 5, the positions of a depot 101 and bases 102 to which goods are to be delivered are determined. Also, the distance between the depot 101 and each base 102 and the vehicle's maximum load capacity are given. Furthermore, a demand amount corresponding to the amount of goods to be delivered to each base 102 is given. Then, goods are transported to each base 102 by a plurality of vehicles departing from the depot 101 and returning to the depot 101. The vehicle dispatch planning problem is a problem of finding a route that minimizes the total distance traveled by all vehicles under the above conditions. FIG. 5 shows a vehicle dispatch planning problem in which goods are transported using four vehicles along four routes.

[0061] The initialization execution unit 13 receives input of the conditions of the vehicle dispatch planning problem to be solved. The problem instance, which is the condition of this vehicle dispatch planning problem, includes the number of delivery destination bases 102, the distance between each of the depots 101 and the bases 102, the number of routes, etc. Each element according to the input conditions is represented using a matrix that indicates a constituent requirement indicating a group of conditions indicating which route the element is included in, and a constituent requirement indicating a group of conditions indicating the point at which delivery will be made.

[0062] Thereafter, the initialization execution unit 13 receives input of information on a matrix representing each bit of a state variable that satisfies the 2-way 1-hot constraint and an objective function from the objective function generation unit 12. Then, the initialization execution unit 13 selects a storage element 210 to be used for optimization of the storage unit 21 according to the elements of the matrix. Next, the initialization execution unit 13 obtains a weight value corresponding to each state variable from the objective function and sets a weight value corresponding to each storage element 210.

[0063] Next, the initialization execution unit 13 sets the state variables x1 to x n After setting all to 0, the state variables x1 to x are set to satisfy the 2-way 1-hot constraint. n Then, the initialization execution unit 13 sets each bit representing the state variables x1 to x n The value of each bit representing h1 to h2 is output to the optimization unit 20. As a result, the value of each bit in the initial state is stored in the storage unit 260 of the update unit 26, and the local field generation unit 22 generates the local fields h1 to h2 according to the state of each bit. n is generated and maintained.

[0064] FIG. 6 is a diagram showing an example of group variables assigned to elements of a matrix. The initialization execution unit 13 assigns a row group number to elements in the same row in the matrix as the same row group, and assigns a column group number to elements in the same column as the same column group. The initialization execution unit 13 then associates an index representing each element with the row group number and column group number. Furthermore, the initialization execution unit 13 treats elements included in a column corresponding to a redundant site as one redundant variable group, and assigns a value representing the redundant variable group to each element. In FIG. 6, elements with 1 set in the redundant variable group term are elements included in the redundant variable group.

[0065] Then, the initialization execution unit 13 outputs information on the group variables associated with the indexes representing the elements to the candidate designation unit 14. Furthermore, the initialization execution unit 13 notifies the temperature management unit 15 of the setting of the initial temperature.

[0066] The upper limit calculation unit 11 sorts the demand amounts of the locations 102 in ascending order. Next, when calculating the maximum number of locations for the Mth route, the upper limit calculation unit 11 calculates the cumulative demand amount including the number of locations from the top of the sorted demand amounts to the (M-1)th location. Next, the upper limit calculation unit 11 identifies the minimum number of locations that does not exceed "M × vehicle load limit." Then, the upper limit calculation unit 11 determines the quotient when dividing the identified number of locations by M as the maximum number of locations for the Nth route. This is because, by sorting the demand amounts in ascending order, the demand amounts become a target decreasing sequence, and it is a contradiction if the Mth route has a larger number than the number obtained by dividing the minimum number of locations that does not exceed "M × vehicle load limit" by M. The upper limit calculation unit 11 varies M from 1 to the maximum number of vehicles to find the maximum number of locations for each route from the first route to the maximum number of vehicles. Then, the upper limit calculation unit 11 outputs information on the maximum number of locations for each route to the objective function generation unit 12.

[0067] The objective function generation unit 12 receives information on the maximum number of depots for each route from the upper limit calculation unit 11. Next, the objective function generation unit 12 calculates the difference between the sum of the maximum number of depots for each route and the number of depots 102. The objective function generation unit 12 then sets the calculated difference value as the number of redundant depots (dummy depots). Next, the objective function generation unit 12 creates a matrix represented by rows listing the maximum number of depots for each route in order and rows listing depots including redundant depots. In other words, if the direction of the rows is the passage of time, this matrix represents at what point in time the vehicle will visit which of the expanded depots, which are the actual depots 102 plus redundant depots. Each row is a group of conditions indicating which route a depot will be included in, and each column is a group of conditions indicating at what point in time delivery will be made to a depot. Here, the "point in time" refers to the delivery timing and is information indicating the order in which deliveries will be made along each route. Hereinafter, the delivery timing along each route will be referred to as "point in time." If the time is earlier, the delivery order will be earlier, and if the time is later, the delivery order will be later. This redundant base is an example of a "redundant variable," the variable that selects the route and time that includes the expanded base is an example of an "expanded variable," and the expanded base and the time of each route are examples of "elements with the same number as the expanded variables." Furthermore, the group of conditions that indicate which route the base is on and the group of conditions that indicate at what time the delivery will be made are examples of "two groups containing the same number of elements as the expanded variables."

[0068] Then, the objective function generation unit 12 assigns numbers to the locations 102 as i=0, 1, 2, . . . and if there is a car at the location 102 with index i at time t, then x it If there is no car, then x it is set to 0 and the bits representing the state variables are set.

[0069] In this matrix, the first row through the row with the maximum number of depots on the first route represent the positions of vehicles traveling on the first route, and the next row through the row with the maximum number of depots on the second route represent the positions of vehicles traveling on the second route. In this way, the route numbers are increased in order, and the last row of this matrix up to the row just before the maximum number of depots on the Nth route represent the positions of vehicles traveling on the Nth route. This matrix has the same number of rows and columns, and satisfies the 2-way 1-hot constraint that "each row and each column has one 1".

[0070] Then, the objective function generating unit 12 defines the objective function as the following equation (9).

[0071]

number

[0072] E(x,y) represents energy, C(x) represents the total cost, P1(x) represents the constraint on redundant locations, and P2(x,y) represents the inequality constraint on the slack variable y.

[0073] The objective function generator 12 outputs the generated matrix information and energy function to the initialization execution unit 13.

[0074] The temperature management unit 15 receives an instruction to set an initial temperature from the initialization execution unit 13. Then, the temperature management unit 15 sets a high initial temperature as a temperature parameter. Then, the temperature management unit 15 notifies the optimization unit 20 of the temperature parameter. After that, when the temperature management unit 15 receives an instruction to decrease the temperature from the update control unit 16, it decreases the value of the temperature parameter in accordance with a pre-specified temperature schedule. Every time the temperature parameter is changed, the temperature management unit 15 notifies the optimization unit 20 of the changed temperature parameter.

[0075] The candidate determination unit 14 determines an index representing a state variable to be inverted as a candidate for a transition from among the state variables indicating the route and time point including the expanded base station, and notifies the optimization unit 20. A method for selecting a state variable to be inverted as a candidate for a transition will be described below.

[0076] The candidate determination unit 14 receives information on group variables representing each index from the initialization execution unit 13. Next, the candidate determination unit 14 selects an index representing a state variable whose value is to be inverted. For example, the candidate determination unit 14 selects an index representing a state variable x in the matrix shown in FIG. j Then, the candidate determination unit 14 identifies indices indicating the other three bits determined by the 2-way 1-hot constraint according to the selected index. For example, the candidate determination unit 14 selects an index j indicating the state variable x j If we first select index j, which indicates the first indices, then we select i, k, and g as the other three indices.

[0077] Next, the candidate designator 14 reads out the values ​​of the redundant variable groups of two of the four selected indexes that indicate redundant variables on a diagonal different from the redundant variable indicated by the first selected index in the matrix in which the state variables are arranged.The candidate designator 14 then determines whether or not either of the values ​​of the redundant variable groups of the two read indexes is 0. For example, if i, j, k, and g are selected as the four indexes, the candidate designator 14 determines the value of the state variable x indicated by the first selected index j. j x, which is a redundant variable on a different diagonal from i and x g The candidate determination unit 14 reads out the values ​​of the redundant variable groups corresponding to the indexes i and g of the index i. Then, the candidate determination unit 14 determines whether or not either the value of the redundant variable group of index i or the value of the redundant variable group of index g is 0. If either is 0, the candidate determination unit 14 determines that the state variable corresponding to the selected index is a candidate for inverting the value. Then, the candidate determination unit 14 notifies the optimization unit 20 of the indexes determined to be candidates for inverting the value of the state variable.

[0078] On the other hand, if the values ​​of the redundant variable groups of the read index are all 1, the candidate designator 14 determines not to adopt the state variable corresponding to the selected index as a candidate for inverting the value. In this case, the candidate designator 14 does not notify the optimization unit 20 of the selected index.

[0079] Here, we will explain the case where all the values ​​of the redundant variable groups are 1. A value of 1 in a redundant variable group indicates that the state variable represented by that index is a variable for a redundant base. If the state variable for a redundant base is 1, it means that the vehicle will travel to that base. However, since a redundant base does not exist, the vehicle will not actually travel to the redundant base. Furthermore, if the redundant variable groups of two indexes are both 1, it means that both bases indicated by the two indexes are redundant bases. In this case, even if delivery to the base corresponding to one index is swapped with delivery to the base corresponding to the other index, the vehicle will not end up traveling to either base, resulting in a meaningless exchange. Therefore, reversing the value of this state variable does not change the energy, resulting in a wasteful calculation. Therefore, in this case, the candidate designator 14 can reduce the amount of calculation by the optimization unit 20 by not notifying the optimization unit 20 of the index. This process is an example of the process of "excluding one of a pair of candidates in which the values ​​of the redundant variables are swapped."

[0080] The candidate designator 14 selects an index j to be inverted one by one from 1 to N, and determines whether or not the state variable indicated by each index is a candidate for bit inversion for all indexes, and notifies the optimization unit 20. The above selection of indexes by the candidate designator 14 according to the 2-way 1-hot constraint is an example of the process of "determining a set of candidates whose values ​​are changed based on the predetermined constraint." Furthermore, the designation of candidates by changing the values ​​of state variables by the candidate designator 14 is an example of "determining a set of candidates whose values ​​are changed by changing the allocation of extension variables that do not allow overlaps and are performed according to conditions other than 2-way 1-hot that are included in the predetermined constraint."

[0081] Thereafter, when the candidate determination unit 14 receives an instruction to select the next state variable x from the update control unit 16, it again selects indices from 1 to N in order and notifies the optimization unit 20 whether or not each state variable is to be a candidate for bit inversion.

[0082] The update control unit 16 receives a notification from the optimization unit 20 that the update of the state variables has been completed. Then, the update control unit 16 determines whether or not the state variables have been selected a prescribed number of times with the same temperature setting. If the state variables have not been selected a prescribed number of times with the same temperature setting, the update control unit 16 instructs the candidate designation unit 14 to select the next state variable x.

[0083] On the other hand, when the selection of state variables at the same temperature setting has been completed a prescribed number of times, the update control unit 16 determines whether the temperature has been lowered a predetermined number of times. If the number of times the temperature has been lowered has not reached the predetermined number, the update control unit 16 instructs the temperature management unit 15 to lower the temperature and instructs the candidate designation unit 14 to select the next state variable x.

[0084] On the other hand, if the number of times the temperature has been lowered reaches a predetermined number, the update control unit 16 determines to end the optimization process. Then, the update control unit 16 updates each state variable (x1 to x N ) represents N=n 2 The update control unit 16 then acquires the value of each of the acquired state variables (x1 to x N ) represents N=n 2 The update control unit 16 deletes the bit value of the state variable representing the redundant location from the values ​​of these bits. That is, when a specific condition is met, the update control unit 16 excludes the assignment of redundant variables from the assignment of extended variables to components obtained as a search result by the optimization unit 20, and determines the solution as such. The update control unit 16 then outputs information indicating the optimized route that travels around the actual locations 102 to the notification unit 17.

[0085] The notification unit 17 receives an input of information indicating an optimized route for traveling around the actual locations 102 from the update control unit 16. Then, the notification unit 17 finds an optimal route from the acquired information indicating the optimized route for traveling around the actual locations 102, and notifies the user of the found optimal route by transmitting it to a terminal device (not shown) used by the user.

[0086] Fig. 7 is a flowchart of the optimization process by the optimization device according to the embodiment. Next, the flow of the optimization process by the optimization device 1 according to the embodiment will be described with reference to Fig. 7. This optimization process is realized by the optimization device 1 executing an information processing program.

[0087] The initialization execution unit 13 receives input of the conditions of the vehicle dispatching problem. Then, the initialization execution unit 13 outputs the acquired conditions of the vehicle dispatching problem to the upper limit calculation unit 11. The upper limit calculation unit 11 arranges the bases 102 to be delivery destinations in order of smallest demand amount. Next, the upper limit calculation unit 11 selects the bases 102 arranged in order of smallest demand amount from the top, and calculates the maximum number of bases for each route using the accumulated demand amount up to the selected base 102 and the vehicle loading upper limit value. The objective function generation unit 12 sets redundant bases using the maximum number of bases and generates a matrix indicating the routes and delivery orders included in the expanded bases including the redundant bases and the actual bases 102. Then, the objective function generation unit 12 provides bits representing each element of the generated matrix and generates an objective function using these bits. The initialization execution unit 13 acquires the matrix and objective function generated by the objective function generation unit 12. Next, the initialization execution unit 13 executes the following group index setting and initialization process (step S1).

[0088] Specifically, the initialization execution unit 13 assigns a row group number indicating each row to each element of each row of the acquired matrix, and assigns a column group number indicating each column to each element of each column.The initialization execution unit 13 then associates an index indicating each element with the row group number and column group number.Furthermore, the initialization execution unit 13 sets information indicating whether each index belongs to a redundant variable group depending on whether it indicates delivery to a redundant base.

[0089] The initialization execution unit 13 also allocates memory elements 210 in the memory unit 21 of the optimization unit 20 corresponding to each element of the matrix, and stores the weight values ​​for each bit obtained from the objective function. Furthermore, the initialization execution unit 13 sets the initial value of each bit so as to satisfy 2-way 1-hot, and notifies the optimization unit 20. As a result, the optimization unit 20 determines whether the local field generation unit 22 generates the local fields h1 to h2. N is calculated and stored, and the initial value of each bit is stored in the storage unit 260 of the update unit 26.

[0090] The temperature management unit 15 receives an instruction to set a temperature from the initialization execution unit 13. If the temperature has not yet been set, the temperature management unit 15 notifies the optimization unit 20 of a high initial temperature and sets the initial temperature. If the temperature has already been set, the temperature management unit 15 lowers the temperature from the set temperature that was set at that time in accordance with a pre-specified temperature schedule. The temperature management unit 15 then notifies the optimization unit 20 of the new lower set temperature and sets the temperature (step S2).

[0091] The candidate determination unit 14 acquires information on group variables associated with the index representing each state variable from the initialization execution unit 13. Next, the candidate determination unit 14 selects x among the elements of the matrix shown in FIG. 1 as the index representing the state variable to be inverted. j Next, the candidate determination unit 14 selects an index j corresponding to the state variable x of the matrix shown in FIG. 1 as an index indicating the other three bits determined by the 2-way 1-hot constraint according to the selected index j. i ,x k ,x g Then, the indices i, k, and g corresponding to the above are selected (step S3).

[0092] Next, the candidate designator 14 reads out the values ​​of the redundant variable groups of i and g, which are indices on a diagonal different from the state variable indicated by the initially selected index j (step S4).

[0093] Then, the candidate designator 14 determines whether or not either of the values ​​of the two read redundant variable groups is 0 (step S5).

[0094] If the values ​​of the read redundant variable groups are all 1 (step S5: No), the candidate designator 14 determines not to adopt the state variable corresponding to the selected index as a candidate for inverting the value. After that, the candidate designator 14 returns to step S3.

[0095] On the other hand, if either of them is 0 (step S5: Yes), the candidate designator 14 determines that the state variable corresponding to the selected index is a candidate for inverting the value. Then, the candidate designator 14 notifies the optimization unit 20 of the index indicating the state variable determined to be a candidate for inverting the value. The candidate designator 14 changes j from 1 to N, and selects the state variable x indicated by each index j in order. j The optimization unit 20 determines whether to make x j a candidate for bit inversion, and if it is determined that the value is a candidate for inversion, notifies the optimization unit 20 of the index j. The optimization unit 20 then updates the x j stored in the storage unit 260 of the update unit 26. j Then, the optimization unit 20 reads out the value of x j The energy change calculation unit 23 is notified whether the transition of the value of j is from 0 to 1 or from 1 to 0. Furthermore, the energy change calculation unit 23 calculates the local field h j and j, and the local field corresponding to i, k, g is identified. i ,h k ,h g is read out (step S6).

[0096] Next, the energy change calculation unit 23 calculates the energy change amount ΔE (ΔE1, ΔE2, . . . , ΔE N ) is calculated (step S7). Thereafter, the energy change calculation unit 23 outputs information on the calculated amount of energy change.

[0097] If all of the energy change amounts output from the energy change calculation unit 23 are positive, the offset adding unit 24 adds an offset to each energy change amount (step S8).

[0098] The selection circuit 25 acquires information on each amount of energy change output from the energy change calculation unit 23. Then, the selection circuit 25 sets an updateable flag to an index indicating a state variable that can accept a value inversion when compared with the set temperature acquired from the temperature management unit 15 of the control unit 10. Thereafter, the selection circuit 25 selects one index q from the indexes to which the updateable flag has been added (step S9).

[0099] The optimization unit 20 acquires information on the group variables assigned to each index from the control unit 10. Then, the optimization unit 20 selects the state variable x indicated by the index q selected by the selection circuit 25. q The state variable x whose value is inverted and satisfies the 2-way 1-hot constraint corresponds to the inversion of the value of p ,x r ,x s Then, the optimization unit 20 identifies group variables that represent the indexes p, r, and s (step S10).

[0100] Information on p, q, r, and s, which are indices indicating the state variables whose values ​​are to be updated, is input to the storage unit 21, and weight values ​​corresponding to the indices are output to each local field generation circuit 220 of the local field generation unit 22. Each local field generation circuit 220 receives the input of the weight values ​​corresponding to the updates of p, q, r, and s, and updates the local field that it holds (step S11).

[0101] Furthermore, the storage unit 21 updates the weight values ​​stored in the storage elements 210 corresponding to the indexes p, q, r, and s (step S12).

[0102] The update unit 26 receives information of p, q, r, and s, which are indices indicating the state variables whose values ​​are to be updated, and updates x, which is a state variable indicated by the index acquired from the state variables held by the storage unit 260.p ,x q ,x r ,x s Then, the update unit 26 identifies the identified state variable x p ,x q ,x r ,x s The value of is inverted and updated (step S13).

[0103] Thereafter, the update unit 26 writes all updated state variables into the storage unit 260. Furthermore, each local field generating circuit 220 writes the updated local field into the register that holds it (step S14).

[0104] When the optimization unit 20 completes updating the state variables and the local fields, the update control unit 16 determines whether the state variables have been updated a specified number of times (step S15). If the state variables have not been updated a specified number of times (step S15: No), the optimization process returns to step S6.

[0105] On the other hand, if the state variables have been updated the specified number of times (step S15: Yes), the update control unit 16 determines whether the temperature has been lowered the specified number of times (step S16).

[0106] If the temperature has not been lowered the specified number of times (step S16: No), the optimization process returns to step S2. On the other hand, if the temperature has been lowered the specified number of times (step S16: Yes), the optimization device 1 ends the optimization process.

[0107] 8 is a diagram showing the degree of reduction in the number of iterations when solving a vehicle allocation planning problem. Here, the problem instance of the vehicle allocation planning problem when the number of locations, including the depot 101 and the location 102, is #P and the number of routes is #R, is represented as n#Pk#R.

[0108] The degree of reduction in the number of iterations in FIG. 8 represents the degree of reduction in the number of iterations when using the optimization device 1 according to this embodiment, compared to the number of iterations when optimization processing is performed without excluding the exchange of redundant sites. For example, when the problem instance is n13k4, the number of iterations is reduced by 3% compared to when optimization processing is performed without excluding the exchange of redundant sites. Similarly, when the problem instances are n22k4, n23k3, n30k3, n51k5, and n76k8, the reduction degrees are 4%, 6%, 8%, 9%, and 11%, respectively. In this way, the optimization device 1 according to this embodiment can reduce the number of iterations required to reach the optimal value by eliminating exchanges between redundant sites in accordance with the 2-way 1-hot constraint.

[0109] As described above, when solving an optimization problem with a 2-way 1-hot constraint, the optimization device 1 according to this embodiment excludes selection changes due to the exchange of redundant points introduced for calculation when changing selections according to the 2-way 1-hot constraint. This reduces the number of iterations required to reach an optimal value, thereby shortening the calculation time for an optimization problem with a 2-way 1-hot constraint. [Explanation of symbols]

[0110] 1 Optimization device 10 Control Unit 11 Upper limit calculation section 12 Objective function generator 13 Initialization execution unit 14 Candidate Decision Department 15 Temperature control section 16 Update control section 17 Notification Department 20 Optimization Section 21 Memory section 22 Local field generator 23 Energy change calculation section 24 Offset addition section 25 Selection circuit 26 Update section 210 Memory element 220 Local Field Generator 230 Energy change calculation circuit 260 Storage section

Claims

1. 1. An information processing device for finding a solution to a problem given predetermined constraints including a two-way one-hot constraint, using an objective function having a predetermined number of variables, a candidate determination unit that, when determining a set of candidates whose values ​​are changed based on the predetermined constraint from expanded variables obtained by adding a plurality of redundant variables to a predetermined number of the variables, excludes one of the sets of candidates in which the values ​​of the redundant variables are swapped; a search unit that performs a search based on the objective function by changing the values ​​of the set of candidates determined by the candidate determination unit in accordance with the predetermined constraint; an update control unit that determines the solution based on the result of the search by the search unit; An information processing device comprising:

2. the candidate determination unit determines a set of candidates for changing the value of each of two groups of elements, each of which includes the same number of elements as the extended variables, by changing the assignment of the extended variables that is made in accordance with conditions other than the 2-way 1-hot that are included in the predetermined constraints and that do not allow overlapping, and excludes one of the assignments of the extended variables to the elements in which the redundant variables have been swapped; The search unit performs the search based on the assignment of the extension variables to the components determined by the candidate determination unit.

2. The information processing apparatus according to claim 1, wherein:

3. The information processing device described in claim 2, characterized in that the update control unit causes the candidate determination unit to repeat the determination of a set of candidates for which the value is changed and the search unit to repeat the search, and when a specific condition is met, the update control unit excludes the assignment of the redundant variables from the assignments of the extended variables to the components obtained as a search result by the search unit, and sets the solution as the solution.

4. 4. The information processing device according to claim 1, wherein the search unit performs a search by calculating an energy change using the objective function for each of the sets of candidates determined by the candidate determination unit.

5. an upper limit calculation unit that calculates an upper limit number of the elements that can be included in each of a plurality of divided groups that are generated by dividing one of the constraint groups based on constraints other than the 2-way 1-hot that are included in the predetermined constraints, for two constraint groups that each have the predetermined number of elements and in which the 2-way 1-hot constraint is satisfied by assigning the variables to the elements without allowing overlaps; The candidate determination unit determines the number of redundant variables according to the upper limit number calculated by the upper limit calculation unit.

5. The information processing device according to claim 1, wherein the information processing device is a computer.

6. 1. An information processing method for causing a computer to execute a process for finding a solution to a problem given predetermined constraints, including a two-way one-hot constraint, using an objective function having a predetermined number of variables, the method comprising: When determining a set of candidates whose values ​​are to be changed based on the predetermined constraint from expanded variables obtained by adding a plurality of redundant variables to a predetermined number of the variables, one of the sets of candidates in which the values ​​of the redundant variables are swapped is excluded to determine the set of candidates whose values ​​are to be changed; changing the values ​​of the determined candidate set in accordance with the predetermined constraint and performing a search based on the objective function; The solution is determined based on the results of the search. An information processing method characterized by causing the computer to execute processing.

7. An information processing program that causes a computer to execute a process of finding a solution to a problem given predetermined constraints, including a two-way one-hot constraint, using an objective function having a predetermined number of variables, the program comprising: When determining a set of candidates whose values ​​are to be changed based on the predetermined constraint from expanded variables obtained by adding a plurality of redundant variables to a predetermined number of the variables, one of the sets of candidates in which the values ​​of the redundant variables are swapped is excluded to determine the set of candidates whose values ​​are to be changed; changing the values ​​of the determined candidate set in accordance with the predetermined constraint and performing a search based on the objective function; The solution is determined based on the results of the search. An information processing program that causes the computer to execute processing.

Citation Information

Patent Citations

  • Method and device for searching optimal solution of allocation and despatching scheduling program problem

    JP1996153085A

  • Route search method, route search device, and program

    JP2015038429A

  • Optimization device and control method for optimization device

    JP2019121137A

  • Combination optimization device, combination optimization method, and combination optimization program

    JP2021033657A

  • Optimization apparatus, optimization program, and optimization method

    JP2021043787A