This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2023-132079, filed on Aug. 14, 2023, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a non-transitory computer-readable recording medium storing a data processing program, a data processing method, and a data processing apparatus.
An information processing device may be used to find a solution of a combinatorial optimization problem. The combinatorial optimization problem is formulated by, for example, an evaluation function representing energy of an Ising model, which is a model representing behavior of spins of a magnetic material.
The information processing device searches for, for example, a combination that minimizes a value of the evaluation function among combinations of values of state variables included in the evaluation function. In this case, the combination of the values of the state variables that minimizes the value of the evaluation function corresponds to a ground state or an optimal solution. Examples of a method of obtaining an approximate solution of the combinatorial optimization problem in a practical amount of time include a simulated annealing (SA) method, a tabu search method, and the like.
For example, there is a proposal of a method using a tabu search for a search for a candidate for an optimal setting value such as a voltage reference value or impedance of a voltage control device. In the proposed method, solutions obtained in past search processes and search movement patterns are stored in a tabu list, and the best solution is selected from solutions not included in the tabu list. In the proposed method, in a case where an amount of information in the tabu list exceeds a predetermined value, oldest information is removed.
Furthermore, there is a proposal of an information processing system that solves a large-scale problem in a distributed manner by a plurality of nodes using the SA method, the tabu search method, or the like.
Furthermore, there is a proposal of a system using the tabu search method for finding a solution of a vehicle routing problem (VRP).
Moreover, there is a proposal of a system that finds a solution to an objective function by a special tabu search that searches only a feasible space.
Japanese Laid-open Patent Publication No. 2003-209926, Japanese Laid-open Patent Publication No. 2022-164162, U.S. Patent Application Publication No. 2010/0088146, and U.S. Patent Application Publication No. 2014/0344322 are disclosed as related art.
According to an aspect of the embodiments, there is provided a non-transitory computer-readable recording medium storing a program for causing a computer to execute processing including: calculating, when a value of any one state variable among a plurality of state variables is updated in a solution search based on an evaluation function that includes the plurality of state variables, a first index value related to a change amount of a value of the evaluation function in a case where a value of a first state variable among the plurality of state variables is updated from values of the plurality of state variables before the update; and determining, based on the first index value, a length of a period of time during which update of the value of the first state variable is suppressed after the value of the first state variable is updated.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
In a solution search based on an evaluation function as described above, after a value of a certain state variable is updated, update of the value of the state variable may be controlled to be suppressed for a certain period of time. In this case, there is a problem that solution finding performance may not be sufficiently improved when a length of the period of time is inappropriate.
In one aspect, an object of an embodiment is to improve solution finding performance.
Hereinafter, the present embodiments will be described with reference to the drawings.
A first embodiment will be described.
A data processing device 10 is used to find a solution of a combinatorial optimization problem. The data processing device 10 includes a storage unit 11 and a processing unit 12.
The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM) or may be a nonvolatile storage such as a hard disk drive (HDD) or a flash memory. The processing unit 12 is, for example, a processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). The processing unit 12 may include an electronic circuit for a specific application such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processing unit 12 may be a processor that executes a program stored in a memory such as a RAM (which may be the storage unit 11). A set of a plurality of processors may be referred to as a “multiprocessor” or simply “processors”.
The combinatorial optimization problem is formulated by a predetermined evaluation function, and is replaced with, for example, a problem of minimizing a value of an evaluation function. The evaluation function represents, for example, energy of an Ising model. The evaluation function may also be referred to as an energy function, an objective function, or the like. The evaluation function includes a plurality of state variables. The state variable is a binary variable that takes a value of 0 or 1. The state variable may be referred to as a bit. A solution of the combinatorial optimization problem is represented by values of the plurality of state variables. A solution that minimizes the value of the evaluation function represents a ground state of the Ising model, and corresponds to an optimal solution of the combinatorial optimization problem. The value of the evaluation function, in other words, an evaluation value, may be referred to as energy.
The Ising-type evaluation function is represented by Expression (1).
A state vector x has the plurality of state variables as elements, and represents a state of the Ising model. Expression (1) is the evaluation function formulated in a quadratic unconstrained binary optimization (QUBO) format. In the case of a problem of maximizing the value of the evaluation function, it is sufficient to reverse a sign of the evaluation function.
A first term on a right side of Expression (1) is to integrate products of values of two state variables with a weighting coefficient without omission and duplication for all combinations of two state variables that may be selected from all the state variables. Indices of the state variables are denoted by subscripts i and j. An i-th state variable is denoted by xi. A j-th state variable is denoted by xj. A weighting coefficient indicating a weight or coupling strength between the i-th state variable and the j-th state variable is denoted by Wij. Wij=Wji and Wii=0 are satisfied. The number of all the state variables is denoted by N.
A second term on the right side of Expression (1) is to obtain a total sum of products of the respective biases for all the state variables and the values of the state variables. A bias for the i-th state variable is denoted by bi. Problem information including the weighting coefficients, the biases, or the like included in the evaluation function is stored in the storage unit 11.
When a value of the state variable xi changes to 1−xi, an increment of the state variable xi may be represented as Δxi=(1−xi)−xi=1−2xi. For an energy function E(x), an energy change amount ΔEi associated with the change in the state variable xi is represented by Expression (2).
When the state variable xi changes from 0 to 1 or from 1 to 0 such that ΔEi<0 is satisfied, the energy E(x) decreases. In this case, a solution after the change of xi is an improved solution obtained by improving a current solution.
Here, the processing unit 12 performs a solution search using a tabu search method. The tabu search method is a search method based on a greedy search. The greedy search is a method in which a procedure of calculating ΔEi in a case where the respective values of all the state variables are changed for a current state, selecting a state variable that minimizes ΔEi, and flipping a value of the state variable to obtain the next state is repeated.
On the other hand, in the tabu search method, a value of a state variable that has been changed once is fixed for a predetermined period of time. Update of the value of the state variable is performed for a state variable that the minimizes ΔEi among state variables not to be fixed. As a result, the tabu search method suppresses repeated operations of the same state transition in the case of falling into a local solution, in other words, all states where ΔEi>0 is satisfied, and makes it possible to widely search a solution space.
In the tabu search method, a length of the period of time during which the value of the state variable is fixed, in other words, a length of a period of time during which update of the value of the state variable is suppressed is referred to as tabu tenure. Tabu tenure corresponding to the state variable xi is represented as TTi. The TTi is held in the storage unit 11. In other words, the storage unit 11 stores, for each of the plurality of state variables, a length of a period of time during which update of a value of the state variable is suppressed after the value of the state variable is updated. An initial value of the TTi for each state variable may be 0 or a predetermined value larger than 0. Furthermore, for each of the plurality of state variables, information indicating the period of time during which the value of the state variable is fixed may be held in the storage unit 11. For example, the period of time during which the value of the state variable is fixed is determined by specifying a timing of releasing the fixation by the number of attempts of the state transition (=the current number of iterations+(the number of iterations corresponding to the tabu tenure TTi)). Note that, hereinafter, it is assumed that the tabu tenure TTi is represented by the number of iterations.
The processing unit 12 determines tabu tenure for each state variable as follows.
The processing unit 12 updates a value of any one state variable among a plurality of state variables in a solution search based on an evaluation function. For example, by flipping a value of one state variable that minimizes a change amount ΔE of a value of the evaluation function for a state X1 represented by the plurality of state variables, the value of the state variable is updated, and the state X1 undergoes a transition to a state X2. Then, the processing unit 12 calculates a first index value related to a change amount of the value of the evaluation function in a case where a value of a first state variable is updated among values of the plurality of state variables before the update, in other words, values of the plurality of state variables in the state X1.
As will be described later, the processing unit 12 may set the state variable whose value has been updated this time in the solution search as the first state variable. Alternatively, the processing unit 12 may select each of all the state variables as the first state variable every time the state transition is attempted a predetermined number of times in the solution search.
Here, an absolute value of a change amount of an evaluation function E(x) in a case where a value of a first state variable xi is updated from the values of the plurality of state variables before the update of this time is defined as |ΔEi|. Furthermore, a maximum value of the absolute value of the change amount of the evaluation function E(x) in a case where a value of any one state variable is updated from the values of the plurality of state variables before the update of this time is defined as maxj|ΔEj|. For example, the processing unit 12 calculates a first index value Ii by dividing |ΔEi| by maxj|ΔEj|. In this case, Ii=|ΔEi|/maxj|ΔEj| is satisfied. Note that the processing unit 12 may extract j from indices other than i.
The first index value Ii is an index relatively representing, for all the state variables, a degree of change in a value of the evaluation function E(x) by updating the value of the state variable xi. It is indicated that the larger the first index value Ii, the larger an influence on the value of the evaluation function E(x) by updating the value of the state variable xi among all the state variables. On the other hand, it is indicated that the smaller the first index value Ii, the smaller the influence on the value of the evaluation function E(x) by updating the value of the state variable xi among all the state variables.
The processing unit 12 determines, based on the first index value Ii, a length of a period of time during which update of the value of the first state variable is suppressed after the value of the first state variable is updated, in other words, the tabu tenure TTi.
For example, the processing unit 12 may compare the first index value Ii with a first threshold Th1, and increase the TTi in a case where the first index value Ii is smaller than the first threshold Th1. This is because a state variable having a small influence on the value of the evaluation function E(x) has a low value of updating the value in the solution search. In this case, the processing unit 12 may increase the TT such that TTi=TTi+α is satisfied. A predetermined positive integer is denoted by α.
Furthermore, the processing unit 12 may compare the first index value Ii with a second threshold Th2, and decrease the TTi in a case where the first index value Ii is larger than the second threshold Th2. This is because a state variable having a large influence on the value of the evaluation function E(x) has a high value of updating the value in the solution search. In this case, the processing unit 12 may decrease the TTi such that TTi=TTi−β is satisfied. A predetermined positive integer is denoted by β.
The first threshold Th1 may be a value smaller than the second threshold Th2 (Th1<Th2). The processing unit 12 does not have to change the TTi in a case where Th1≤Ii≤Th2 is satisfied.
The determined TTi is used for control to suppress the update of the value of the first state variable xi in the solution search. The processing unit 12 sets the period of time during which the value of the first state variable xi is fixed by the TTi as follows, for example.
In a first example, the first state variable xi is the same state variable as the state variable whose value has been updated this time in the solution search. In other words, the processing unit 12 specifies the state variable whose value has been updated this time in the solution search as the first state variable xi.
In this case, when the tabu tenure TTi for the first state variable xi is determined, the processing unit 12 sets, based on the determined TTi, the period of time during which the update of the value of the first state variable xi is suppressed immediately after the update of this time, in other words, an update suppression period of time. For example, the processing unit 12 suppresses the update of the value of the first state variable xi up to the number of iterations TLi obtained by adding the TTi to the current number of iterations of the solution search. A termination of the update suppression period of time is represented by TLi, which is referred to as a tabu limit.
In a second example, the processing unit 12 selects each of all the state variables as the first state variable every time the state transition is attempted a predetermined number of times in the solution search. In other words, the processing unit 12 collectively updates tabu tenure of all the state variables every time the state transition is attempted the predetermined number of times. In this case, when a value of a certain state variable xi is updated in the solution search, the processing unit 12 sets the TLi described above using the determined TTi before changing TTi for the xi.
When the solution search by the tabu search method is performed using the tabu tenure TTi determined for each state variable for a certain period of time in this manner, the processing unit 12 outputs, as a final solution, a solution that minimizes the value of the evaluation function among solutions obtained by the solution search. The processing unit 12 may preferentially output a plurality of solutions having a smaller value of the evaluation function among the obtained solutions.
As described above, according to the data processing device 10, in the solution search based on the evaluation function including the plurality of state variables, the value of any one state variable among the plurality of state variables is updated. Then, from the values of the plurality of state variables, the first index value related to the change amount of the value of the evaluation function in a case where the value of the first state variable is updated among the plurality of state variables is calculated. Based on the first index value, the length of the period of time during which the update of the value of the first state variable is suppressed after the value of the first state variable is updated is determined.
As a result, the data processing device 10 may improve solution finding performance. Specifically, the data processing device 10 may appropriately determine, for each of the plurality of state variables, the length of the period of time during which the update of the value of the state variable is suppressed based on the first index value. For example, the data processing device 10 reduces the length of the period of time for a state variable evaluated to have a high value of updating the value at a current time point by the first index value. On the other hand, the data processing device 10 increases the length of the period of time for a state variable evaluated to have a low value of updating the value at the current time point by the first index value. In this manner, the data processing device 10 dynamically adjusts the period of time for each state variable according to a situation, thereby making it easier to reach more various solutions and increasing a possibility of obtaining a better solution.
Note that the processing unit 12 may calculate a second index value related to an update frequency of the value of the first state variable in addition to the first index value related to the change amount of the value of the evaluation function. The processing unit 12 may determine the length of the period of time during which the update of the value of the first state variable is suppressed based on the first index value and the second index value. For example, a state variable evaluated to have a high update frequency based on the second index value has a low value of updating the value in the solution search. On the other hand, a state variable evaluated to have a low update frequency based on the second index value has a high value of updating the value in the solution search.
Therefore, based on both the first index value and the second index value, the processing unit 12 may shorten the period of time during which the update of the value is suppressed for the state variable evaluated to have the high value of updating the value. Based on both the first index value and the second index value, the processing unit 12 may lengthen the period of time during which the update of the value is suppressed for the state variable evaluated to have the low value of updating the value. In this manner, the data processing device 10 may more appropriately determine the length of the period of time during which the update of the value is suppressed for each state variable by using the second index value in addition to the first index value. As a result, the data processing device 10 may further improve the solution finding performance.
Furthermore, in the above description, the example has been described in which the processing unit 12 performs the solution search. However, a search unit implemented by an FPGA, a GPU, or the like may perform the solution search by the tabu search method according to an instruction from the processing unit 12, and may respond to the processing unit 12 with a search result. In that case, the search unit may be included in the data processing device 10 or may be included in another device communicating with the data processing device 10. In a case where the solution search is implemented by the search unit different from the processing unit 12, the processing unit 12 may set the tabu tenure for each state variable determined by the method described above in the search unit. The processing unit 12 may determine the period of time during which the value of the corresponding state variable is fixed based on the tabu tenure, and set the period of time in the search unit. For example, the processing unit 12 may set the period of time by specifying a termination of the period of time (=the current number of iterations+tabu tenure).
Next, a second embodiment will be described.
A data processing device 100 searches for a solution to a combinatorial optimization problem by using the tabu search method, and outputs a searched solution. The combinatorial optimization problem is formulated by the Ising-type energy function of Expression (1), and is replaced with, for example, a problem of minimizing a value of the energy function.
The data processing device 100 includes a processor 101, a RAM 102, an HDD 103, a GPU 104, an input interface 105, a medium reader 106, a communication interface 107, and an accelerator card 108. These units included in the data processing device 100 are coupled to a bus inside the data processing device 100. The processor 101 corresponds to the processing unit 12 of the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 of the first embodiment.
The processor 101 is a general-purpose processor that executes a program command. The processor 101 is, for example, a CPU. The processor 101 loads at least a part of a program and data stored in the HDD 103 into the RAM 102, and executes the program. Note that the processor 101 may include a plurality of processor cores. Furthermore, the data processing device 100 may include a plurality of processors. Processing to be described below may be executed in parallel by using the plurality of processors or processor cores. Furthermore, a set of the plurality of processors may be referred to as a “multiprocessor” or simply “processors”.
The RAM 102 is a volatile semiconductor memory that temporarily stores a program to be executed by the processor 101 and data to be used by the processor 101 for arithmetic operations. Note that the data processing device 100 may include a memory of a type other than the RAM, or may include a plurality of memories.
The HDD 103 is a nonvolatile storage device that stores software programs such as an operating system (OS), middleware, and application software, and data. Note that the data processing device 100 may include another type of storage device such as a flash memory or a solid state drive (SSD), or may include a plurality of nonvolatile storage devices.
The GPU 104 outputs an image to a display 111 coupled to the data processing device 100 according to a command from the processor 101. As the display 111, an optional type of display such as a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display, or an organic electro-luminescence (OEL) display may be used.
The input interface 105 acquires input signals from an input device 112 coupled to the data processing device 100, and outputs the input signals to the processor 101. As the input device 112, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, or the like may be used. Furthermore, a plurality of types of input devices may be coupled to the data processing device 100.
The medium reader 106 is a reading device that reads a program and data recorded in a recording medium 113. As the recording medium 113, for example, a magnetic disk, an optical disk, a magneto-optical (MO) disk, a semiconductor memory, or the like may be used. The magnetic disk includes a flexible disk (FD) and an HDD. The optical disk includes a compact disc (CD) and a digital versatile disc (DVD).
The medium reader 106 copies, for example, a program and data read from the recording medium 113 to another recording medium such as the RAM 102 or the HDD 103. The read program is executed by, for example, the processor 101. Note that the recording medium 113 may be a portable recording medium, and may be used for distribution of the program and the data. Furthermore, the recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.
The communication interface 107 is coupled to a network 114, and communicates with another information processing device via the network 114. The communication interface 107 may be a wired communication interface coupled to a wired communication device such as a switch or a router, or may be a wireless communication interface coupled to a wireless communication device such as a base station or an access point.
The accelerator card 108 is a hardware accelerator that executes the tabu search method based on an energy function of an Ising model. The accelerator card 108 includes a processor 108a and a RAM 108b. The processor 108a is, for example, a dedicated processor such as a GPU, an FPGA, or an ASIC. The processor 108a executes the tabu search method according to a command of the processor 101, and responds with a solution obtained by a search. The RAM 108b is a memory that stores data used for processing by the processor 108a.
A device that finds a solution of a problem represented by an Ising-type energy function, in other words, an Ising problem, such as the accelerator card 108 or the data processing device 100, may be referred to as an Ising machine.
The data processing device 100 includes an optimization problem storage unit 120, a solution storage unit 130, a tabu tenure storage unit 140, a history storage unit 150, a setting value storage unit 160, a search unit 170, a determination unit 180, and a setting unit 190. For example, storage areas of the RAM 102 and the HDD 103 are used for the optimization problem storage unit 120, the solution storage unit 130, the tabu tenure storage unit 140, the history storage unit 150, and the setting value storage unit 160.
The search unit 170 is implemented by, for example, the processor 108a. The determination unit 180 and the setting unit 190 are implemented by, for example, the processor 101 executing a program stored in the RAM 102.
The optimization problem storage unit 120 stores problem information of the combinatorial optimization problem. The problem information includes information regarding the energy function of Expression (1). The solution storage unit 130 stores a solution searched for by the search unit 170.
The tabu tenure storage unit 140 stores tabu tenure for each state variable determined by the determination unit 180.
The history storage unit 150 stores history information of a solution search in the search unit 170. The history information includes the number of times a value of any one state variable has been updated, an energy change amount calculated for each state variable for selection of a state variable whose value is to be updated in the tabu search method, and the like. The number of times the value of any one state variable has been updated, in other words, the number of times a state transition has been performed in the solution search is referred to as the number of iterations.
The setting value storage unit 160 stores a setting value input by a user and used for processing of the determination unit 180. The setting value is information representing calculation of an index value for determining tabu tenure, a timing of determining the tabu tenure, and the like.
The search unit 170 performs a solution search by the tabu search method based on problem information stored in the optimization problem storage unit 120. The search unit 170 calculates, based on Expression (2), an energy change amount ΔE in a case where a value of each state variable is flipped for a state represented by a plurality of state variables. The search unit 170 causes a current state to undergo a transition to the next state by flipping a value of a state variable that minimizes ΔE among state variables for which periods of time during which values are fixed have expired.
Here, based on tabu tenure for each state variable determined by the determination unit 180, the search unit 170 calculates a period of time during which update of a value of the state variable is suppressed after the value of the state variable is updated, in other words, a period of time during which the value of the state variable is fixed. Tabu tenure corresponding to a state variable xi is represented as TTi. Furthermore, a period of time during which update of a value of the state variable xi is suppressed in a case where the value of the state variable xi is updated is specified by a tabu limit TLi representing a termination of the period of time. The search unit 170 sets the tabu limit TLi=(the current number of iterations of the solution search)+(tabu tenure TTi).
The determination unit 180 determines tabu tenure for each state variable based on information stored in the history storage unit 150 and the setting value storage unit 160, and stores the tabu tenure in the tabu tenure storage unit 140.
The setting unit 190 sets tabu tenure for each state variable in the search unit 170.
Note that the search unit 170 may be implemented by the processor 101 executing a program stored in the RAM 102. In that case, the data processing device 100 does not have to include the accelerator card 108. Alternatively, the search unit 170, the determination unit 180, and the setting unit 190 may be implemented by the processor 108a. Furthermore, at least a part of the optimization problem storage unit 120, the solution storage unit 130, the tabu tenure storage unit 140, the history storage unit 150, and the setting value storage unit 160 may be implemented by a storage area of the RAM 108b.
The search unit 170 performs a solution search by the tabu search method. As described above, the search unit 170 performs update to flip a value of one state variable that minimizes the ΔE for each iteration to cause a state represented by a plurality of state variables to undergo a transition. The search unit 170 holds tabu tenure and a tabu limit for each state variable.
For example, in a case where the tabu tenure TTi=3 is satisfied, the search unit 170 prohibits the update of the value of the state variable xi until a second step after the value of the corresponding state variable is updated, and permits the update of the value of the state variable xi from a third step. In
Note that the present control is an example, and in another example, in a case where the tabu tenure TTi=3 is satisfied, the search unit 170 may perform control so as to prohibit the update of the value of the state variable xi until the third step after the value of the corresponding state variable is updated, and permit the update of the value of the state variable xi from a fourth step.
The determination unit 180 acquires a search history of a solution by the tabu search method by the search unit 170, and determines tabu tenure for each state variable based on the search history. A graph 20 exemplifies a method of determining tabu tenure for a state variable by the determination unit 180. A horizontal axis of the graph 20 indicates an update frequency of a value of a state variable of interest. A vertical axis of the graph 20 indicates an energy change amount in a case where the value of the state variable of interest is updated from a current state.
The determination unit 180 evaluates that the larger the update frequency and the smaller the energy change amount, the lower a value of updating the value of the corresponding state variable, and increases tabu tenure for the state variable. On the other hand, the determination unit 180 evaluates that the smaller the update frequency and the larger the energy change amount, the higher the value of updating the value of the corresponding state variable, and decreases tabu tenure for the state variable.
Here, in the example of the second embodiment, the determination unit 180 determines the tabu tenure TTi for a state variable whose value has been updated this time in the solution search.
The determination unit 180 calculates an index value Frequency in order to evaluate the update frequency of the corresponding state variable. In the example of the second embodiment, for the state variable xi, the Frequency=(current TTi)/(the number of iterations from update of the value of the state variable xi of a previous time) is satisfied.
A value range of the Frequency is 0.0 to 1.0. For example, in a case where the corresponding state variable is always changed when there is a flipping opportunity, the Frequency becomes 1.0. On the other hand, in a case where the value of the corresponding state variable is hardly updated, the Frequency becomes a value close to 0.0.
Furthermore, the determination unit 180 calculates an index value Impact in order to evaluate a degree of the energy change amount in a case where the value of the corresponding state variable is updated. For the state variable xi, the Impact=(an absolute value of the energy change amount in a case where the value of the state variable xi is updated)/(a maximum value of the absolute value of the energy change amount in a case where a value of another state variable is updated) is satisfied. The index value Impact may be referred to as an energy change rate in a case where the value of the corresponding state variable is updated.
A value range of the Impact is 0.0 to 1.0. As a relative energy change caused by updating the value of the state variable xi is smaller, the Impact becomes a value closer to 0.0. On the other hand, as the relative energy change is larger, the Impact becomes a value closer to 1.0. Note that, in a case where the energy change amount in a case where the value of the state variable xi is updated is a maximum value of the change amount for each of all the state variables, the Impact for the state variable xi becomes 1.0. Here, in the tabu search method, the energy change amount ΔE in a case where values of the state variables are updated is calculated for all the state variables in each iteration. Thus, the determination unit 180 may acquire the ΔE for each of all the state variables from the search unit 170.
The determination unit 180 determines the tabu tenure TTi for the corresponding state variable based on the Frequency and the Impact.
Then, the setting unit 190 sets the tabu tenure for each state variable determined by the determination unit 180 in the search unit 170.
Next, a processing procedure of the data processing device 100 will be described.
(S10) The search unit 170 reads the energy function E(x) of a problem.
(S11) The search unit 170 performs initial setting. In the initial setting, an initial solution x0, the tabu tenure TTi=0 for the state variable xi, the tabu limit TLi=0 for the state variable xi, and a variable step=0 are set. The variable step is a variable used for counting the number of iterations from a start of the search. The initial solution x0 may be generated by randomly determining a value of each state variable using, for example, a random number or the like. Furthermore, the tabu tenure TTi and the tabu limit TLi are set for all indices i, and are held in the storage unit such as the RAM 108b used by the search unit 170. Furthermore, in the initial setting, a final value of the number of iterations used for end determination of the solution search is also set.
(S12) The search unit 170 calculates ΔE(xi) for all xi. Here, ΔE(xi) (=ΔEi) indicates an energy change amount in a case where the value of the state variable xi is updated for a current state.
(S13) The search unit 170 selects an index i=i_min that minimizes the ΔE(xi) among xi satisfying TLi≤step.
(S14) The search unit 170 flips a value of a state variable xi_min. Note that the search unit 170 stores, in the solution storage unit 130, a solution obtained by flipping the value of the state variable xi_min and energy of the solution. For example, the search unit 170 may preferentially store, in the solution storage unit 130, a predetermined number of solutions having low energy among solutions obtained so far. Furthermore, the search unit 170 records, in the history storage unit 150, a current step value and the index i_min of the state variable xi_min whose value has been flipped this time in association with each other.
(S15) The determination unit 180 performs tabu tenure TTi_min update processing. The TTi_min determined by the determination unit 180 is set in the search unit 170 by the setting unit 190. Details of the TTi_min update processing will be described later.
(S16) The search unit 170 sets TLi_min=step+TTi_min.
(S17) The search unit 170 sets step=step+1.
(S18) The search unit 170 determines whether or not the search is to be ended. In a case where the search is to be ended, the solution search ends. In a case where the search is to be ended, the search unit 170 outputs a predetermined number of solutions by giving priority to a solution with minimum energy or a solution with low energy held in the solution storage unit 130. In a case where the search is to be continued, the processing proceeds to step S12. For example, the search unit 170 determines that the search is to be ended in a case where step> (a predetermined final value) is satisfied, and determines that the search is to be continued in a case where step≤(the predetermined final value) is satisfied.
Note that, in step S13, in a case where a minimum value of energy of the solutions obtained so far is updated by flipping the state variable xi, the search unit 170 may select the i=i_min regardless of the TLi.
Furthermore, in step S14, the search unit 170 does not have to store, in the solution storage unit 130, the index obtained by flipping the value for all the iterations as history information, and it is sufficient that history information for a certain period of time needed for determining tabu tenure is stored. In the example of the second embodiment, it is sufficient that the number of iterations in which the value has been flipped at a previous time for each state variable is held in the solution storage unit 130 in order to calculate the Frequency.
The TTi_min update processing corresponds to step S15.
(S20) The determination unit 180 calculates the index value Frequency of an update frequency for the xi_min. The Frequency=TTi_min/(step−stepprev) is satisfied. The stepprev is a step in which the xi_min has been flipped at the previous time.
Note that the determination unit 180 acquires the TTi_min from the tabu tenure storage unit 140. The determination unit 180 acquires the stepprev from the history storage unit 150.
(S21) The determination unit 180 calculates the index value Impact of the energy change amount for the xi_min. The Impact=|ΔE (xi_min)|/maxi|ΔE(xi)| is satisfied.
(S22) The determination unit 180 determines whether or not the Frequency>a threshold A and the Impact<a threshold B are satisfied. In a case where the Frequency>the threshold A and the Impact<the threshold B are satisfied, the processing proceeds to step S23. In a case where at least one of the Frequency≤the threshold A and the Impact≥the threshold B is satisfied, the processing proceeds to step S24. The thresholds A and B are determined in advance by a user.
(S23) The determination unit 180 updates the TTi_min to TTi_min+α. In other words, the determination unit 180 increases the TTi_min by α. The α is determined in advance by the user. The determination unit 180 stores the updated TTi_min in the tabu tenure storage unit 140 in association with the index i_min. The setting unit 190 sets the updated TTi_min for the state variable xi_min in the search unit 170. Then, the TTi_min update processing ends.
(S24) The determination unit 180 determines whether or not the Frequency<a threshold C and the Impact>a threshold D are satisfied. In a case where the Frequency<the threshold C and the Impact>the threshold D are satisfied, the processing proceeds to step S25. In a case where at least one of the Frequency≥the threshold C and the Impact≤the threshold D is satisfied, the TTi_min update processing ends without changing the TTi_min. The thresholds C and D are determined in advance by the user. Note that C≤A is satisfied. D≥B is satisfied.
(S25) The determination unit 180 updates the TTi_min to TTi_min−β. In other words, the determination unit 180 decreases the TTi_min by β. The β is determined in advance by the user. The determination unit 180 stores the updated TTi_min in the tabu tenure storage unit 140 in association with the index i_min. The setting unit 190 sets the updated TTi_min for the state variable xi_min in the search unit 170. Then, the TTi_min update processing ends.
As a state variable for which a smaller value of tabu tenure is set, a period of time during which the value is fixed becomes shorter, so that the value of the state variable is easily updated. The data processing device 100 decreases tabu tenure of a state variable evaluated to have a high value of updating the value and increases tabu tenure of a state variable evaluated to have a low value of updating the value.
In this manner, the determination unit 180 adaptively determines tabu tenure for each state variable based on the index value Frequency and the index value Impact. As a result, the data processing device 100 may appropriately determine the tabu tenure. Furthermore, the data processing device 100 may appropriately determine a period of time during which update of a value is suppressed for each state variable in a solution search based on the determined tabu tenure. As a result, the data processing device 100 may increase a possibility of reaching a better solution, and improve the solution finding performance.
Next, a third embodiment will be described. Matters different from the second embodiment described above will be mainly described, and description of common matters will be omitted.
Hardware and functions of a data processing device 100 of the third embodiment are similar to those of the second embodiment. However, in the third embodiment, a determination unit 180 calculates Frequency and Impact every time a value of a state variable xi is updated a predetermined number of times (M times), and determines tabu tenure TTi based on the Frequency and the Impact. Therefore, when the TTi is updated, the determination unit 180 stores the number of iterations (=a value of step) when the TTi is updated in a tabu tenure storage unit 140 in association with an index i. Note that the M is an integer equal to or larger than 1.
In the example of the third embodiment, for the state variable xi, the Frequency=(current TTi)×M/(the number of iterations from update of the value of the state variable xi M times before) is satisfied. A value range of the Frequency is 0.0 to 1.0. For example, in a case where the corresponding state variable is always changed when there is a flipping opportunity, the Frequency becomes 1.0. On the other hand, in a case where the value of the corresponding state variable is hardly updated, the Frequency becomes a value close to 0.0. A calculation expression of the Impact is the same as that of the second embodiment.
Next, a processing procedure of the data processing device 100 of the third embodiment will be described. A procedure of a solution search of the third embodiment is similar to the procedure of the second embodiment described with reference to
The TTi_min update processing corresponds to step S15. The third embodiment is different from the second embodiment in that steps S20a and S20b are executed instead of step S20 in
(S20a) The determination unit 180 determines whether or not a value of a state variable xi_min has been updated M times after the tabu tenure TTi_min update processing at a previous time for the state variable xi_min. The M is preset by a user. In a case where the value of the xi_min has been updated M times, the processing proceeds to step S20b. In a case where the value of the xi_min has not been updated M times, the TTi_min update processing ends.
Note that the determination unit 180 may specify, from the tabu tenure storage unit 140, the number of iterations in which the TTi_min has been updated at a previous time for the xi_min. Furthermore, the determination unit 180 acquires the number of times of update of the xi_min to a current iteration from the number of iterations based on information stored in a history storage unit 150.
(S20b) The determination unit 180 calculates the index value Frequency of an update frequency for the xi_min. The Frequency=TTi_min×M/(step−stepprev) is satisfied. The stepprev is a step in which the xi_min has been flipped M times before. Note that the determination unit 180 acquires the TTi_min from the tabu tenure storage unit 140. The determination unit 180 acquires the stepprev from the history storage unit 150. Then, the processing proceeds to step S21.
In this manner, the determination unit 180 adaptively determines tabu tenure for each state variable based on the two index values of the Frequency and the Impact. As a result, the data processing device 100 may appropriately determine the tabu tenure. Furthermore, the data processing device 100 may appropriately determine a period of time during which update of a value is suppressed for each state variable in a solution search based on the determined tabu tenure. As a result, the data processing device 100 may increase a possibility of reaching a better solution, and improve solution finding performance.
Furthermore, the data processing device 100 may also adjust a change timing of the tabu tenure TTi_min for the state variable xi_min by setting of the M. For example, by appropriately setting the M according to a problem, there is a possibility that solution finding performance for the problem may be improved. Furthermore, by setting the M to a value of equal to or larger than 2, the data processing device 100 may reduce the number of times of executing tabu tenure TTi update processing as compared with the second embodiment, and improve the solution finding performance while reducing a load associated with the update processing.
Next, a fourth embodiment will be described. Matters different from the second and third embodiments described above will be mainly described, and description of common matters will be omitted.
Hardware and functions of a data processing device 100 of the fourth embodiment are similar to those of the second embodiment. However, the fourth embodiment is different from the second and third embodiments in that a determination unit 180 collectively determines tabu tenure for all state variables at a certain iteration interval.
In the example of the fourth embodiment, for a state variable xi, Frequency=(the number of times of update of a value of the state variable xi)/(the number of iterations) is satisfied. A value range of the Frequency is 0.0 to 1.0. For example, in a case where tabu tenure for the corresponding state variable is 1 and the state variable is changed every time, the Frequency becomes 1.0. On the other hand, in a case where the value of the corresponding state variable is not changed even once, the Frequency becomes 0.0. A calculation expression of Impact is the same as that of the second embodiment.
Next, a processing procedure of the data processing device 100 of the fourth embodiment will be described.
(S30) A search unit 170 reads an energy function E(x) of a problem.
(S31) The search unit 170 performs initial setting. In the initial setting, an initial solution x0, tabu tenure TTi=0 for the state variable xi, a tabu limit TLi=0 for the state variable xi, and a variable step=0 are set. The variable step is a variable used for counting the number of iterations from a start of the search. Furthermore, in the initial setting, a value interval is set for a variable update indicating a timing to update tabu tenure of each state variable. The value interval represents a cycle (iteration interval) of updating the tabu tenure. For example, a value such as 100 to 1000 is preset as the interval.
The initial solution x0 may be generated by randomly determining a value of each state variable using, for example, a random number or the like. Furthermore, the tabu tenure TTi and the tabu limit TLi are set for all indices i, and are held in the storage unit such as the RAM 108b used by the search unit 170. Furthermore, in the initial setting, a final value of the number of iterations used for end determination of the solution search is also set.
(S32) The search unit 170 calculates ΔE(xi) for all xi.
(S33) The search unit 170 selects an index i=i_min that minimizes the ΔE(xi) among xi satisfying TLi≤step.
(S34) The search unit 170 flips a value of a state variable xi_min. Note that the search unit 170 stores, in the solution storage unit 130, a solution obtained by flipping the value of the state variable xi_min and energy of the solution. For example, the search unit 170 may preferentially store, in the solution storage unit 130, a predetermined number of solutions having low energy among solutions obtained so far. Furthermore, the search unit 170 records, in the history storage unit 150, a current step value and the index i_min of the state variable xi_min whose value has been flipped this time in association with each other.
(S35) The search unit 170 sets TLi_min=step+TTi_min.
(S36) The search unit 170 determines whether or not step≥update is satisfied. In a case where step≥update is satisfied, the processing proceeds to step S37. In a case where step<update is satisfied, the processing proceeds to step S39.
(S37) The determination unit 180 performs tabu tenure TTi update processing for all the state variables. The TTi determined by the determination unit 180 is set in the search unit 170 by a setting unit 190. Details of the TTi update processing will be described later.
(S38) The search unit 170 sets update=update+interval.
(S39) The search unit 170 sets step=step+1.
(S40) The search unit 170 determines whether or not the search is to be ended. In a case where the search is to be ended, the solution search ends. In a case where the search is to be ended, the search unit 170 outputs a predetermined number of solutions by giving priority to a solution with minimum energy or a solution with low energy held in the solution storage unit 130. In a case where the search is to be continued, the processing proceeds to step S32. For example, the search unit 170 determines that the search is to be ended in a case where step> (a predetermined final value) is satisfied, and determines that the search is to be continued in a case where step≤(the predetermined final value) is satisfied.
Note that, in step S33, in a case where a minimum value of energy of solutions obtained so far is updated by flipping the state variable xi, the search unit 170 may select the i=i_min regardless of the TLi.
Furthermore, in step S34, the search unit 170 does not have to store, in the solution storage unit 130, the index obtained by flipping the value for all the iterations as history information, and it is sufficient that history information for a certain period of time needed for determining tabu tenure is stored.
The TTi update processing corresponds to step S37.
(S50) The determination unit 180 selects the next index i as a determination object of the tabu tenure TTi.
(S51) The determination unit 180 calculates the index value Frequency of an update frequency for the xi. The Frequency=Flipi/interval is satisfied. The Flipi is the number of changes of the xi after the TTi update processing at a previous time.
Note that the determination unit 180 acquires the TTi from a tabu tenure storage unit 140. The determination unit 180 acquires the Flipi from the history storage unit 150. For example, the determination unit 180 may obtain the Flipi by counting the number of times of update of the value of the xi from an iteration (=current step−interval) in which the TTi update processing at the previous time is performed to the present based on history information stored in the history storage unit 150.
(S52) The determination unit 180 calculates the index value Impact of an energy change amount for the xi. The Impact=|ΔE(xi)|/maxj≠i|ΔE(xj)| is satisfied.
(S53) The determination unit 180 determines whether or not the Frequency>a threshold A and the Impact<a threshold B are satisfied. In a case where the Frequency>the threshold A and the Impact<the threshold B are satisfied, the processing proceeds to step S54. In a case where at least one of the Frequency≤the threshold A and the Impact≥the threshold B is satisfied, the processing proceeds to step S55. The thresholds A and B are determined in advance by a user.
(S54) The determination unit 180 updates the TTi to TTi+α. In other words, the determination unit 180 increases the TTi by α. The α is determined in advance by the user. The determination unit 180 stores the updated TTi in the tabu tenure storage unit 140 in association with the index i. The setting unit 190 sets the updated TTi for the state variable xi in the search unit 170. Then, the processing proceeds to step S57.
(S55) The determination unit 180 determines whether or not the Frequency<a threshold C and the Impact>a threshold D are satisfied. In a case where the Frequency<the threshold C and the Impact>the threshold D are satisfied, the processing proceeds to step S56. In a case where at least one of the Frequency≥the threshold C and the Impact≤the threshold D is satisfied, the processing proceeds to steps S57 without changing the TTi. The thresholds C and D are determined in advance by the user.
(S56) The determination unit 180 updates the TTi to TTi−β. In other words, the determination unit 180 decreases the TTi by β. The β is determined in advance by the user. The determination unit 180 stores the updated TTi in the tabu tenure storage unit 140 in association with the index i. The setting unit 190 sets the updated TTi for the state variable xi in the search unit 170.
(S57) The determination unit 180 determines whether or not all the indices i have been selected. In a case where all the indices i have been selected, the TTi update processing ends. In a case where there is an unselected index i, the processing proceeds to step S50. In step S50, the unselected index i becomes the next selection candidate.
In this manner, the determination unit 180 adaptively determines tabu tenure for each state variable based on the two index values of the Frequency and the Impact. As a result, the data processing device 100 may appropriately determine the tabu tenure. Furthermore, the data processing device 100 may appropriately determine a period of time during which update of a value is suppressed for each state variable in a solution search based on the determined tabu tenure. As a result, the data processing device 100 may increase a possibility of reaching a better solution, and improve solution finding performance.
Furthermore, the data processing device 100 may adjust a change timing of the tabu tenure of all the state variables by the interval value. For example, by appropriately setting the interval value according to a problem, there is a possibility that solution finding performance for the problem may be improved. Furthermore, by setting the interval to a large value, the data processing device 100 may reduce the number of times of executing the tabu tenure TTi update processing, and improve the solution finding performance while reducing a load associated with the update processing.
Meanwhile, in the second to fourth embodiments, it is assumed that the determination unit 180 compares each of the Frequency and the Impact with the corresponding threshold, and increases or decreases the tabu tenure according to the comparison. However, the determination unit 180 may use another method. Thus, another example of the processing of the determination unit 180 will be described.
Steps S60 to S63 described below may be executed instead of steps S22 to S25 of the second and third embodiments. In a case where steps S60 to S63 are applied to the second and third embodiments, i=i_min is satisfied. Furthermore, a previous step of step S60 is step S21. Moreover, the next step of step S61, step S62 NO and step S63 is the end of the TTi_min update processing.
Furthermore, steps S60 to S63 may be executed instead of steps S53 to S56 of the fourth embodiment. In a case where steps S60 to S63 are applied to the fourth embodiment, a previous step of step S60 is step S52. Furthermore, the next step of step S61, step S62 NO, and step S63 is step S57.
(S60) The determination unit 180 determines whether or not the Impact/Frequency≤a threshold P is satisfied. In a case where the Impact/Frequency≤the threshold P is satisfied, the processing proceeds to step S61. In a case where the Impact/Frequency>the threshold P is satisfied, the processing proceeds to step S62. The threshold P is predetermined by the user.
(S61) The determination unit 180 updates the TTi to TTi+α. In other words, the determination unit 180 increases the TTi by α. The α is determined in advance by the user. The determination unit 180 stores the updated TTi in the tabu tenure storage unit 140 in association with the index i. The setting unit 190 sets the updated TTi for the state variable xi in the search unit 170. Then, the processing proceeds to the next step.
(S62) The determination unit 180 determines whether or not the Impact/Frequency≥a threshold Q is satisfied. In a case where the Impact/Frequency≥the threshold Q is satisfied, the processing proceeds to step S63. In a case where the Impact/Frequency<the threshold Q is satisfied, the processing proceeds to the next step. The threshold Q is predetermined by the user. Q≥P is satisfied.
(S63) The determination unit 180 updates the TTi to TTi−β. In other words, the determination unit 180 decreases the TTi by β. The β is determined in advance by the user. The determination unit 180 stores the updated TTi in the tabu tenure storage unit 140 in association with the index i. The setting unit 190 sets the updated TTi for the state variable xi in the search unit 170. Then, the processing proceeds to the next step.
In this manner, the determination unit 180 may compare the value obtained by dividing the index value Impact by the index value Frequency with the threshold for the state variable xi, and change the TTi according to the comparison. As a result, the data processing device 100 may appropriately determine the TTi for each state variable, and may improve the solution finding performance.
Step S70 described below may be executed instead of steps S22 to S25 of the second and third embodiments. In a case where step S70 is applied to the second and third embodiments, i=i_min is satisfied. Furthermore, a previous step of step S70 is step S21. Moreover, the next steps of step S70 is the end of the TTi_min update processing.
Furthermore, step S70 may be executed instead of steps S53 to S56 of the fourth embodiment. In a case where step S70 is applied to the fourth embodiment, a previous step of step S70 is step S52. Furthermore, the next step of step S70 is step S57.
(S70) The determination unit 180 sets TTi=R/(Impact/Frequency). Here, the R is a constant common to all the state variables. The constant R is predetermined by the user. The setting unit 190 sets the updated TTi for the state variable xi in the search unit 170. Then, the processing proceeds to the next step.
In this manner, for the state variable xi, the determination unit 180 may determine, as the TTi, the value obtained by multiplying the value obtained by dividing the constant R by the index value Impact by the index value Frequency. As a result, the data processing device 100 may appropriately determine the TTi for each state variable, and may improve the solution finding performance.
Next, an example in which the solution finding performance is improved by appropriate setting of tabu tenure will be described.
A graph 30 indicates a result of an experiment in which solution finding by the tabu search method is performed for a problem for which an optimal solution has been found. A horizontal axis of the graph 30 indicates classification of tabu tenure used. A vertical axis of the graph 30 indicates a time to reach the optimal solution. A unit of the time to reach is seconds.
A bin 31 is a case where the tabu tenure is 100 for all the state variables.
A bin 32 is a case where the tabu tenure is 60 for all the state variables.
A bin 33 is a case where the tabu tenure is 100 for a part of the state variables and the tabu tenure is 20 for other state variables.
A bin 34 is a case where the tabu tenure is 200 for a part of the state variables and the tabu tenure is 20 for other state variables.
As indicated by the graph 30, a possibility that the optimal solution may be reached at a high speed is increased by appropriately setting the tabu tenure. Furthermore, by appropriately setting the tabu tenure for each state variable, the possibility that the optimal solution may be reached at a high speed is increased than that when uniform tabu tenure is set for all the state variables.
According to the data processing device 100 of the second to fourth embodiments, tabu tenure for each state variable is appropriately set based on the index value Frequency and the index value Impact. As a result, the data processing device 100 may increase a possibility of reaching a better solution in a relatively short time. In this manner, the data processing device 100 may improve the solution finding performance.
As described above, the data processing device 100 executes the following processing. Note that, as described above, the processing of the determination unit 180 and the setting unit 190 may be executed by the processor 101 implemented by the CPU, in other words, the general-purpose processor. Alternatively, the processing of the determination unit 180 and the setting unit 190 may be executed by the processor 108a implemented by the GPU, the FPGA, or the like, in other words, the dedicated processor.
In a solution search based on an evaluation function including a plurality of state variables, when a value of any one state variable among the plurality of state variables is updated, the determination unit 180 calculates a first index value related to a change amount of a value of the evaluation function in a case where a value of a first state variable among the plurality of state variables is updated from values of the plurality of state variables before the update. Based on the first index value, the determination unit 180 determines a length of a period of time during which update of the value of the first state variable is suppressed after the value of the first state variable is updated.
As a result, the data processing device 100 may improve the solution finding performance. An energy function is an example of the evaluation function. The length of the period of time during which the update of the value of the first state variable is suppressed after the value of the first state variable is updated, in other words, a length of an update suppression period of time corresponds to tabu tenure. The length of the period of time during which the update of the value of the first state variable is suppressed may also be referred to as a length of a period of time during which the value of the first state variable is fixed. The index value Impact in the second to fourth embodiments is an example of the first index value.
The determination unit 180 calculates the first index value by dividing an absolute value of the change amount in a case where the value of the first state variable is updated from values of the plurality of state variables before the update of this time by a maximum value of the absolute value of the change amount in a case where the value of the any one state variable is updated from the values of the plurality of state variables before the update of this time.
As a result, the data processing device 100 may perform relative evaluation of the change amount of the value of the evaluation function by the update of the value of the first state variable with the first index value, and may appropriately determine the length of the update suppression period of time based on the first index value.
For example, in a case where the first index value is smaller than a first threshold, the determination unit 180 increases the length of the period of time during which the update of the value is suppressed. In a case where the first index value is larger than a second threshold larger than the first threshold, the determination unit 180 decreases the length of the period of time during which the update of the value is suppressed. In a case where the first index value is equal to or larger than the first threshold and equal to or smaller than the second threshold, the determination unit 180 does not change the length of the period of time during which the update of the value is suppressed.
As a result, the data processing device 100 may appropriately determine the length of the update suppression period of time for the first state variable, and may improve the solution finding performance.
Note that the determination unit 180 may set a value obtained by dividing a constant common to all the variables by the first index value as the length of the period of time during which the update of the value of the first state variable is suppressed.
The first state variable may be the state variable whose value has been updated this time in the solution search. As a result, the data processing device 100 may finely adjust the length of the update suppression period of time for each state variable according to progress of the solution search. As a result, the data processing device 100 may improve the solution finding performance.
Note that the determination unit 180 may count the number of times the value of the first state variable has been updated, and may calculate the first index value for the first state variable and determine the length of the period of time during which the update of the value based on the first index value is suppressed at a timing when the number of times reaches a predetermined number of times.
Furthermore, every time the value of the state variable is updated a predetermined number of times in the solution search, the determination unit 180 may set each of the plurality of state variables as the first state variable, and calculate the first index value and determine the length of the period of time during which the update of the value is suppressed for each of the first state variables.
As a result, the data processing device 100 may appropriately determine the length of the period of time for each state variable, and may improve the solution finding performance.
Furthermore, the determination unit 180 may calculate a second index value related to an update frequency of the value of the first state variable together with the first index value. The determination unit 180 may determine the length of the period of time during which the update of the value of the first state variable is suppressed based on the first index value and the second index value.
As a result, the data processing device 100 may more appropriately determine the length of the period of time for each state variable, and may improve the solution finding performance. The index value Frequency in the second to fourth embodiments is an example of the second index value.
The first state variable may be the state variable whose value has been updated this time in the solution search. In that case, the determination unit 180 may calculate the second index value by dividing the length of the period of time set for the first state variable by a first time interval from update of a previous time of the value of the first state variable to the update of this time. The (step−stepprev) in the second embodiment corresponds to the first time interval.
As a result, the data processing device 100 may easily obtain the second index value as an index representing a recent update frequency of the first state variable. As a result, the data processing device 100 may more appropriately determine the length of the update suppression period of time for the first state variable based on the first index value and the second index value, and may improve the solution finding performance.
Furthermore, in a case where the first state variable is the state variable whose value has been updated this time in the solution search, the determination unit 180 may calculate the second index value as follows. After performing the processing of determining the length of the period of time (update suppression period of time) corresponding to the first state variable, the determination unit 180 determines whether or not the value of the first state variable has been updated a predetermined number of times. Then, in a case where the first state variable has been updated the predetermined number of times, the determination unit 180 calculates the second index value by dividing a value obtained by multiplying the length of the period of time set for the first state variable by the predetermined number of times by a second time interval from when the value of the first state variable is updated the predetermined number of times before to the update of this time. The M in the third embodiment corresponds to the predetermined number of times. The (step−stepprev) in the third embodiment corresponds to the second time interval.
As a result, the data processing device 100 may easily obtain the second index value as an index representing a recent update frequency of the first state variable. As a result, the data processing device 100 may more appropriately determine the length of the update suppression period of time for the first state variable based on the first index value and the second index value, and may improve the solution finding performance.
Furthermore, the determination unit 180 may select each of the plurality of state variables as the first state variable every time the value of the any one state variable is updated the predetermined number of times in the solution search. In this case, the determination unit 180 calculates the first index value for each first state variable. The determination unit 180 calculates the second index value for each first state variable by dividing the number of times the value of the first state variable has been updated since the length of the period of time corresponding to the first state variable has been determined in a previous time by the predetermined number of times. Then, the determination unit 180 determines, for each first state variable, the length of the period of time during which the update of the value is suppressed based on the first index value and the second index value. The interval in the fourth embodiment corresponds to the predetermined number of times. The Flipi in the fourth embodiment corresponds to the number of times the value of the first state variable has been updated since the length of the period of time corresponding to the first state variable has been determined in the previous time.
As a result, the data processing device 100 may easily obtain the second index value as an index representing a recent update frequency of the first state variable. As a result, the data processing device 100 may more appropriately determine the length of the update suppression period of time for the first state variable based on the first index value and the second index value, and may improve the solution finding performance.
For example, in a case where the first index value is smaller than the first threshold and the second index value is larger than a third threshold, the determination unit 180 increases the length of the period of time during which the update of the value is suppressed. In a case where the first index value is larger than the second threshold larger than the first threshold and the second index value is smaller than a fourth threshold smaller than the third threshold, the determination unit 180 decreases the length of the period of time. In at least one of a case where the first index value is equal to or larger than the first threshold and equal to or smaller than the second threshold and a case where the second index value is equal to or larger than the fourth threshold and equal to or smaller than the third threshold, the determination unit 180 does not change the length of the period of time.
As a result, the data processing device 100 may appropriately determine the length of the update suppression period of time for the first state variable, and may improve the solution finding performance.
Furthermore, the determination unit 180 may calculate a third index value obtained by dividing the first index value by the second index value. For example, in a case where the third index value is equal to or smaller than a fifth threshold, the determination unit 180 increases the length of the period of time during which the update of the value is suppressed. In a case where the third index value is equal to or larger than a sixth threshold larger than the fifth threshold, the determination unit 180 decreases the length of the period of time. In a case where the third index value is larger than the fifth threshold and smaller than the sixth threshold, the determination unit 180 does not change the length of the period of time.
As a result, the data processing device 100 may appropriately determine the length of the update suppression period of time for the first state variable, and may improve the solution finding performance. The Impact/Frequency described above is an example of the third index value.
Alternatively, the determination unit 180 may set a value obtained by multiplying a value obtained by dividing a predetermined constant by the first index value by the second index value as the length of the period of time during which the update of the value of the first state variable is suppressed.
As a result, the data processing device 100 may appropriately determine the length of the update suppression period of time for the first state variable, and may improve the solution finding performance.
Furthermore, the first state variable may be the state variable whose value has been updated this time in the solution search. In this case, when the length of the period of time during which the update of the value is suppressed for the first state variable is determined, the setting unit 190 sets, based on the determined length of the period of time, the period of time during which the update of the value of the first state variable is suppressed immediately after the update of this time.
As a result, the data processing device 100 may appropriately control the search unit 170 so as not to change the value of the first state variable during the period of time, and may improve the solution finding performance. Note that, as described above, the setting unit 190 may set the period of time during which the update of the value of the corresponding state variable is suppressed by specifying the number of iterations at a termination of the update suppression period of time obtained by adding the number of iterations corresponding to the length of the period of time to the current number of iterations.
Alternatively, the setting unit 190 may set the period of time during which the update of the value of the state variable is suppressed immediately after the update of this time based on the length of the determined period of time for the state variable whose value has been updated this time in the solution search. For example, in a case where the state variable whose value has been updated this time in the solution search is the same as the first state variable, the determination unit 180 may calculate the first index value for the first state variable and re-determine the length of the period of time (TTi_min) after setting the period of time for the first state variable (xi_min) (for example, after setting TLi_min).
As a result, the data processing device 100 may appropriately control the search unit 170 so as not to change the value of the corresponding state variable during the period of time, and may improve the solution finding performance.
Note that the information processing of the first embodiment may be implemented by causing the processing unit 12 to execute a program. Furthermore, the information processing of the second to fourth embodiments may be implemented by causing the processor 101 to execute a program. The program may be recorded in the computer-readable recording medium 113.
For example, the program may be distributed by distributing the recording medium 113 in which the program is recorded. Furthermore, the program may be stored in another computer and distributed through a network. For example, a computer may store (install), in a storage device such as the RAM 102 or the HDD 103, the program recorded in the recording medium 113 or received from another computer, and read the program from the storage device to execute the program.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2023-132079 | Aug 2023 | JP | national |