Program, data processing method, and data processing apparatus
Patent Information
- Application Number
- JP2023132079
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-14
- Publication Date
- 2025-02-27
Smart Images

Figure 2025027344000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a program, a data processing method, and a data processing device. [Background technology]
[0002] An information processing device may be used to solve a combinatorial optimization problem, which is formulated, for example, by an evaluation function that represents the energy of an Ising model, which is a model that represents the behavior of spin in a magnetic material.
[0003] The information processing device searches for a combination that minimizes the value of the evaluation function, for example, from among combinations of state variable values included in the evaluation function. In this case, the combination of state variable values that minimizes the value of the evaluation function corresponds to a ground state or an optimal solution. Methods for obtaining an approximate solution to a combinatorial optimization problem in a practical amount of time include the Simulated Annealing (SA) method and the Tabu Search method.
[0004] For example, a method has been proposed that uses tabu search to search for candidates for optimal settings such as the voltage reference value and impedance of a voltage control device. In the proposed method, solutions and search movement patterns obtained in past search processes are stored in a tabu list, and the best solution is selected from among those not included in the tabu list. In the proposed method, when the amount of information in the tabu list exceeds a predetermined value, the oldest information is removed.
[0005] There have also been proposals for information processing systems that use SA, tabu search, and other methods to solve large-scale problems in a distributed manner across multiple nodes. There has also been a proposal for a system that uses tabu search to solve the vehicle routing problem (VRP).
[0006] In addition, a system has been proposed that solves the objective function using a special tabu search that searches only the feasible space. [Prior art documents] [Patent documents]
[0007] [Patent Document 1] JP 2003-209926 A [Patent Document 2] JP 2022-164162 A [Patent Document 3] US Patent Application Publication No. 2010 / 0088146 [Patent Document 4] US Patent Application Publication No. 2014 / 0344322 Summary of the Invention [Problem to be solved by the invention]
[0008] In the solution search based on the evaluation function as described above, after updating the value of a certain state variable, control is sometimes performed so that the update of the value of the state variable is suppressed for a certain period of time. In this case, if the length of the period is inappropriate, there is a problem that the solution finding performance cannot be sufficiently improved.
[0009] In one aspect, the present invention aims to improve solution performance. [Means for solving the problem]
[0010] In one embodiment, a program is provided. The program causes a computer to execute the following process. When a value of any one of the state variables is updated in a solution search based on an evaluation function including a plurality of state variables, the computer calculates a first index value related to an amount of change in the value of the evaluation function when a value of a first state variable among the plurality of state variables is updated from the values of the plurality of state variables before the update. The computer determines, based on the first index value, the length of a period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated.
[0011] Also, in one aspect, a data processing method is provided. Also, in one aspect, a data processing device is provided having a storage unit and a processing unit. Effect of the Invention
[0012] In one aspect, the solution performance can be improved. [Brief description of the drawings]
[0013] [Figure 1] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. [Diagram 2] FIG. 11 illustrates an example of hardware of a data processing device according to a second embodiment. [Diagram 3] FIG. 2 illustrates an example of functions of a data processing device. [Figure 4] FIG. 13 is a diagram showing an example of taboo tenure determination. [Diagram 5] 13 is a flowchart showing an example of a solution search. [Figure 6] 13 is a flowchart illustrating an example of an update process of TTi_min. [Figure 7] 13 is a flowchart illustrating an example of an update process of TTi_min according to the third embodiment. [Figure 8] 13 is a flowchart showing an example of a solution search according to the fourth embodiment. [Figure 9] 13 is a flowchart showing an example of an update process of TTi. [Figure 10] 13 is a flowchart showing another example of update determination of TTi. [Figure 11] 13 is a flowchart showing another example of a method for updating TTi. [Figure 12] FIG. 13 is a diagram illustrating an example of the relationship between tabu tenure and the time required to reach an optimal solution. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] The present embodiment will be described below with reference to the drawings. [First embodiment] A first embodiment will be described.
[0015] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. The data processing device 10 is used to solve a combinatorial optimization problem. The data processing device 10 includes a storage unit 11 and a processing unit 12.
[0016] The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM), or may be a non-volatile storage such as a hard disk drive (HDD) or a flash memory. The processing unit 12 is 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 purpose 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 multiple processors may be called a "multiprocessor" or simply a "processor."
[0017] A combinatorial optimization problem is formulated by a predetermined evaluation function, and is replaced by, for example, a problem of minimizing the value of the evaluation function. The evaluation function represents, for example, the energy of an Ising model. The evaluation function is also called an energy function or an objective function. The evaluation function includes multiple state variables. The state variables are binary variables that take on values of 0 or 1. The state variables may also be called bits. A solution to the combinatorial optimization problem is represented by the values of the multiple state variables. A solution that minimizes the value of the evaluation function represents the ground state of the Ising model and corresponds to the optimal solution to the combinatorial optimization problem. The value of the evaluation function, i.e., the evaluation value, may also be called energy.
[0018] The Ising-type evaluation function is expressed by equation (1).
[0019]
number
[0020] The state vector x has multiple state variables as elements and represents the state of the Ising model. Equation (1) is an evaluation function formulated in the QUBO (Quadratic Unconstrained Binary Optimization) format. In the case of a problem of maximizing the value of the evaluation function, the sign of the evaluation function can be reversed.
[0021] The first term on the right side of equation (1) is the sum of the values of the two state variables and the weighting coefficients for all combinations of two state variables that can be selected from all state variables, without omissions or duplications. The subscripts i and j are the indices of the state variables. i is the i-th state variable. x j is the jth state variable. W ij is the weighting coefficient indicating the strength of the connection between the i-th state variable and the j-th state variable. W ij =W ji And W ii = 0. N is the number of all state variables.
[0022] The second term on the right-hand side of equation (1) is the sum of the products of the biases of all state variables and the values of the state variables. i indicates the bias for the i-th state variable. Problem information including the weighting coefficient and bias included in the evaluation function is stored in the storage unit 11.
[0023] State variable x i The value of 1-x changes i Then, the state variable x i The increase is Δx i =(1-x i )-x i =1-2x i For the energy function E(x), the state variable x i The change in energy due to the change in iis expressed by equation (2).
[0024]
number
[0025] ΔE i <0 for state variable x i When x changes from 0 to 1 or from 1 to 0, the energy E(x) decreases. i The solution after the change is an improved solution that is an improvement on the current solution.
[0026] Here, the processing unit 12 searches for a solution using a tabu search method. The tabu search method is a search technique based on a greedy search. The greedy search method calculates the solution ΔE i Calculate ΔE i This is a method of repeating the procedure of selecting the state variable for which the state is minimized, inverting the value of the state variable, and setting it as the next state.
[0027] On the other hand, in the tabu search method, the value of a state variable once changed is fixed for a certain period of time. The value of the state variable is updated by changing the value of ΔE i This allows the tabu search method to find a local solution, i.e., for all ΔE i > 0, suppresses the repetition of the same state transition, making it possible to widely search the solution space.
[0028] In the tabu search method, the length of time during which the value of a state variable is fixed, i.e., the length of time during which updates to the value of the state variable are suppressed, is called tabu tenure. i The corresponding taboo tenure is TT i It is expressed as: TT i is stored in the storage unit 11. That is, the storage unit 11 stores, for each of a plurality of state variables, the length of a period during which updating of the value of the state variable is suppressed after the value of the state variable is updated.i The initial value of may be 0 or a predetermined value greater than 0. For each of the multiple state variables, information indicating a period for which the value of the state variable is fixed may be stored in the storage unit 11. For example, the period for which the value of the state variable is fixed may be set to the timing for releasing the fixation based on the number of attempts of state transition (=current number of iterations+(taboo tenure TT i In the following, the taboo tenure TT i Let be expressed as the number of iterations.
[0029] The processing unit 12 determines the tabu tenure for each state variable as follows. The processing unit 12 updates the value of any one of the state variables in a solution search based on the evaluation function. For example, for a state X1 represented by a plurality of state variables, the value of one state variable that minimizes the amount of change ΔE in the value of the evaluation function is inverted, thereby updating the value of the state variable, and the state X1 transitions to a state X2. Then, the processing unit 12 calculates a first index value related to the amount of change in the value of the evaluation function when the values of the plurality of state variables before the update, i.e., the value of a first state variable among the values of the plurality of state variables in the state X1, is updated.
[0030] As 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 a predetermined number of state transitions are tried in the solution search.
[0031] Here, the first state variable x i The absolute value of the change in the evaluation function E(x) when updating the value of |ΔE i In addition, the maximum absolute value of the change in the evaluation function E(x) when updating the value of any state variable from the values of multiple state variables before the current update is max j |ΔE j For example, the processing unit 12 sets |ΔE i |maxj |ΔE j The first index value I is obtained by dividing by | i In this case, I i = |ΔE i | / max j |ΔE j It should be noted that the processing unit 12 may extract j from an index other than i.
[0032] First index value I i is the state variable x i This is an index that represents the degree of change in the value of the evaluation function E(x) by updating the value of I relative to all state variables. i The larger the value, the greater the probability of the state variable x i It shows that updating the value of the evaluation function E(x) has a large effect on the value of the evaluation function E(x). On the other hand, the first index value I i The smaller is, the smaller the state variable x i It is shown that updating the value of has little effect on the value of the evaluation function E(x).
[0033] The processing unit 12 determines the length of a period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated, i.e., taboo tenure TT i The first index value I i The decision will be based on:
[0034] For example, the processing unit 12 calculates a first index value I i is compared with a first threshold value Th1 to obtain a first index value I i is smaller than the first threshold Th1, i This is because it is not worth updating the value of a state variable that has a small effect on the value of the evaluation function E(x) in the solution search. In this case, the processing unit 12 increases TT i =TT i +α Like TT i may be increased, where α is a predetermined positive integer.
[0035] The processing unit 12 also calculates a first index value I iCompare it with the second threshold Th2, and for the first index value I i when it is greater than the second threshold Th2, TT i may be decreased. This is because the state variables that have a large impact on the value of the evaluation function E(x) are highly valuable to update in the solution search. In this case, the processing unit 12 may decrease TT i = TT i -β, for example, so that TT i is decreased. β is a predetermined positive integer.
[0036] 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 TT i when Th1 ≤ I i ≤ Th2. The determined TT i is used for the control that suppresses the update of the value of the first state variable x i in the solution search. The processing unit 12 sets the period for fixing the value of the first state variable x i by TT i as follows, for example.
[0037] In the first example, the first state variable x i is the same state variable as the state variable whose value was updated in this solution search. That is, the processing unit 12 identifies the state variable whose value was updated in this solution search as the first state variable x i .
[0038] In this case, when the processing unit 12 determines the tabu tenure TT i for the first state variable x i , it sets the period for suppressing the update of the value of the first state variable x i , that is, the update suppression period, immediately after this update based on the determined TT i . For example, the processing unit 12 suppresses the update of the value of the first state variable x i until the iteration number TL i obtained by adding TT i to the current iteration number of the solution search. TL irepresents the end of the update inhibition period and is called the taboo limit.
[0039] In the second example, the processing unit 12 selects each of all state variables as the first state variable every time a predetermined number of state transitions are attempted in the solution search. That is, the processing unit 12 updates the tabu tenures of all state variables collectively every time the predetermined number of state transitions are attempted. In this case, the processing unit 12 selects each of all state variables as the first state variable in the solution search. i When you update the value of x i TT against i Before making any changes to the TT i Using the above TL i Set.
[0040] The processing unit 12 determines the taboo tenure TT determined for each state variable in this way. i When a solution search is performed for a certain period of time using the tabu search method, the solution with the smallest value of the evaluation function among the solutions obtained in the solution search is output as the final solution. The processing unit 12 may output a plurality of solutions by prioritizing the solution with the smallest value of the evaluation function among the obtained solutions.
[0041] As described above, according to the data processing device 10, in a solution search based on an evaluation function including a plurality of state variables, the value of one of the plurality of state variables is updated. Then, a first index value related to the amount of change in the value of the evaluation function when the value of a first state variable among the plurality of state variables is updated is calculated from the values of the plurality of state variables before the update. The length of the period 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 based on the first index value.
[0042] This allows the data processing device 10 to improve the solution-finding performance. Specifically, the data processing device 10 can appropriately determine the length of the period during which the update of the value of each of the multiple state variables is suppressed based on the first index value. For example, the data processing device 10 reduces the length of the period for a state variable whose value is currently evaluated as being highly worth updating based on the first index value. On the other hand, the data processing device 10 increases the length of the period for a state variable whose value is currently evaluated as being low worth updating based on the first index value. In this way, the data processing device 10 dynamically adjusts the period for each state variable according to the situation, making it easier to reach more diverse solutions and increasing the possibility of obtaining a better solution.
[0043] The processing unit 12 may calculate a second index value related to the update frequency of the value of the first state variable, in addition to the first index value related to the amount of change in the value of the evaluation function. The processing unit 12 may determine the length of the period 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 is not worth updating its 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 is not worth updating its value in the solution search.
[0044] Therefore, the processing unit 12 may shorten the period during which value updates are suppressed for state variables that are evaluated to be highly worthy of updating based on both the first index value and the second index value. The processing unit 12 may lengthen the period during which value updates are suppressed for state variables that are evaluated to be low in value updates based on both the first index value and the second index value. In this way, the data processing device 10 can more appropriately determine the length of the period during which value updates are 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 can further improve the solution-finding performance.
[0045] In the above description, an example in which the processing unit 12 performs a solution search has been shown. However, a search unit realized by an FPGA, a GPU, or the like may perform a solution search by the tabu search method in response to an instruction from the processing unit 12, and respond with the search result to the processing unit 12. In that case, the search unit may be included in the data processing device 10, or may be included in another device that communicates with the data processing device 10. When the solution search is realized by a search unit different from the processing unit 12, the processing unit 12 can set the tabu tenure for each state variable determined by the above method in the search unit. The processing unit 12 may determine a period for fixing the value of the corresponding state variable based on the tabu tenure, and set the period in the search unit. For example, the processing unit 12 may set the period by specifying the end of the period (=current iteration number+tabu tenure).
[0046] [Second embodiment] Next, a second embodiment will be described. FIG. 2 illustrates an example of hardware of a data processing device according to the second embodiment.
[0047] The data processing device 100 searches for a solution to a combinatorial optimization problem using a tabu search method and outputs the searched solution. The combinatorial optimization problem is formulated by an Ising-type energy function of Equation (1), and is replaced by, for example, a problem of minimizing the value of the energy function.
[0048] The data processing device 100 has a processor 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a media reader 106, a communication interface 107, and an accelerator card 108. These units of the data processing device 100 are connected 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.
[0049] The processor 101 is a general-purpose processor that executes program instructions. The processor 101 is, for example, a CPU. The processor 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing device 100 may also have multiple processors. The processing described below may be executed in parallel using multiple processors or processor cores. A set of multiple processors may also be called a "multiprocessor" or simply a "processor."
[0050] The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used in calculations by the processor 101. Note that the data processing device 100 may include a type of memory other than a RAM, or may include multiple memories.
[0051] The HDD 103 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, and data. The data processing device 100 may include other types of storage devices such as a flash memory or an SSD (Solid State Drive), or may include multiple non-volatile storage devices.
[0052] The GPU 104 outputs an image to a display 111 connected to the data processing device 100 in accordance with an instruction from the processor 101. As the display 111, any type of display can be used, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.
[0053] The input interface 105 acquires an input signal from an input device 112 connected to the data processing device 100, and outputs the input signal 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 can be used. In addition, a plurality of types of input devices may be connected to the data processing device 100.
[0054] The medium reader 106 is a reading device that reads programs and data recorded on a recording medium 113. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), a semiconductor memory, etc. can be used as the recording medium 113. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).
[0055] The medium reader 106 copies, for example, the program or 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, for example, by the processor 101. Note that the recording medium 113 may be a portable recording medium, and may be used for distributing the program or data. Also, the recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.
[0056] The communication interface 107 is connected to a network 114 and communicates with other information processing devices via the network 114. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or a wireless communication interface connected to a wireless communication device such as a base station or an access point.
[0057] The accelerator card 108 is a hardware accelerator that executes a tabu search method based on an energy function of an Ising model. The accelerator card 108 has a processor 108a and a RAM 108b. The processor 108a is a dedicated processor such as a GPU, an FPGA, or an ASIC. The processor 108a executes the tabu search method according to an instruction from the processor 101, and returns a solution obtained by the search. The RAM 108b is a memory that stores data used in the processing of the processor 108a.
[0058] An apparatus that solves a problem expressed by an Ising-type energy function, that is, an Ising problem, such as the accelerator card 108 or the data processing apparatus 100, is sometimes called an Ising machine.
[0059] FIG. 3 is a diagram illustrating an example of functions of the data processing device. The data processing device 100 has 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. 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 use storage areas of, for example, the RAM 102 or the HDD 103.
[0060] The search unit 170 is realized by, for example, the processor 108a. The determination unit 180 and the setting unit 190 are realized by, for example, the processor 101 executing a program stored in the RAM 102.
[0061] The optimization problem storage unit 120 stores problem information for a combinatorial optimization problem. The problem information includes information on the energy function of equation (1). The solution storage unit 130 stores the solution searched for by the search unit 170.
[0062] The tabu tenure storage unit 140 stores the tabu tenure for each state variable determined by the determination unit 180. The history storage unit 150 stores history information of the solution search in the search unit 170. The history information includes the number of times the value of any state variable has been updated, and the amount of change in energy calculated for each state variable for selecting the state variable whose value is to be updated in the tabu search method. The number of times the value of any state variable has been updated, i.e., the number of times a state transition has been performed in the solution search, is called the number of iterations.
[0063] The setting value storage unit 160 stores setting values input by the user and used in the processing of the determination unit 180. The setting values are information representing the calculation of index values for determining taboo tenure, the timing of determining taboo tenure, and the like.
[0064] The search unit 170 performs a solution search using a tabu search method based on the problem information stored in the optimization problem storage unit 120. For a state represented by a plurality of state variables, the search unit 170 calculates an amount of change in energy ΔE when the value of each state variable is inverted based on equation (2). The search unit 170 transitions the current state to the next state by inverting the value of the state variable that minimizes ΔE among the state variables whose value fixing period has expired.
[0065] Here, the search unit 170 calculates a period during which the update of the value of the state variable is suppressed after the value of the state variable is updated, that is, a period during which the value of the state variable is fixed, based on the tabu tenure for each state variable determined by the determination unit 180. i The corresponding taboo tenure is TT i Also, the state variable x i When the value of the state variable x is updated, i The period during which the update of the value of is suppressed is the taboo limit TL i The search unit 170 determines the taboo limit TL i = (current iteration number of solution search) + (taboo tenure TT i )
[0066] The determining unit 180 determines a taboo tenure for each state variable based on the information stored in the history storage unit 150 and the set value storage unit 160 , and stores the taboo tenure in the taboo tenure storage unit 140 .
[0067] The setting unit 190 sets the tabu tenure for each state variable in the search unit 170 . The search unit 170 may be realized by the processor 101 executing a program stored in the RAM 102. In that case, the data processing device 100 does not need to include the accelerator card 108. Alternatively, the search unit 170, the determination unit 180, and the setting unit 190 may be realized by the processor 108a. Also, 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 realized using the storage area of the RAM 108b.
[0068] FIG. 4 is a diagram showing an example of taboo tenure determination. The search unit 170 searches for a solution using the tabu search method. As described above, the search unit 170 performs an update for each iteration, inverting the value of one state variable for which ΔE is the smallest, thereby transitioning the state represented by multiple state variables. The search unit 170 holds a tabu tenure and a tabu limit for each state variable.
[0069] For example, Taboo Tenure TT i If x = 3, the search unit 170 searches for the state variable x until the second step after updating the value of the state variable. i prohibits updating the value of state variable x from the third step onwards. i The value of x1 is allowed to be updated. Figure 4 shows an example of state transitions when the tabu tenure of state variables x1, x2, and x3 is 3. A set of values of state variables x1, x2, x3, ... arranged vertically corresponds to one state. The horizontal axis is time. The passage of time is represented by the number of iterations. The initial value of the number of iterations is 0.
[0070] Note that this control is just one example. In other examples, taboo tenure TT iIf x = 3, the search unit 170 searches for the state variable x until the third step after updating the value of the state variable. i prohibits updating the value of state variable x from the fourth step onwards. i The value of may be controlled to be updated.
[0071] The determination unit 180 acquires a search history of solutions obtained by the search unit 170 using the tabu search method, and determines tabu tenure for each state variable based on the search history. Graph 20 illustrates a method for determining tabu tenure for state variables by the determination unit 180. The horizontal axis of graph 20 represents the update frequency of the value of the state variable of interest. The vertical axis of graph 20 represents the amount of change in energy when the value of the state variable of interest is updated from the current state.
[0072] The determining unit 180 evaluates that the value of the state variable is less worth updating as the update frequency increases and the change in energy decreases, and increases the tabu tenure for the state variable. On the other hand, the determining unit 180 evaluates that the value of the state variable is more worth updating as the update frequency decreases and the change in energy increases, and decreases the tabu tenure for the state variable.
[0073] In the example of the second embodiment, the determination unit 180 determines the tabu tenure TT for the state variables whose values have been updated this time in the solution search. i Make a decision. The determination unit 180 calculates an index value Frequency to evaluate the update frequency of the corresponding state variable. i For Frequency=(current TT i ) / (previous state variable x i (the number of iterations since updating the value of
[0074] The range of Frequency values is 0.0 to 1.0. For example, if the corresponding state variable is always changed whenever there is an opportunity for inversion, Frequency will be 1.0. On the other hand, if the value of the corresponding state variable is rarely updated, Frequency will be close to 0.0.
[0075] In addition, the determination unit 180 calculates an index value Impact in order to evaluate the degree of change in energy when updating the value of the state variable x i Impact = (state variable x i The index value Impact may be referred to as the rate of change of energy when the value of the corresponding state variable is updated.
[0076] The range of the Impact value is 0.0 to 1.0. State variable x i The smaller the relative energy change caused by updating the value of x, the closer the Impact will be to 0.0. On the other hand, the larger the relative energy change, the closer the Impact will be to 1.0. Note that the state variable x i If the change in energy when updating the value of x is the maximum value of the change in energy for all state variables, then i The impact for is 1.0. In the tabu search method, the change in energy ΔE when the value of each state variable is updated is calculated for each state variable in each iteration. Therefore, the determination unit 180 can obtain ΔE for each of all state variables from the search unit 170.
[0077] The determination unit 180 determines the taboo tenure TT for the corresponding state variable based on the Frequency and Impact. i Determine. Then, the setting unit 190 sets the tabu tenure for each state variable determined by the determination unit 180 in the search unit 170 .
[0078] Next, the processing procedure of the data processing device 100 will be described. FIG. 5 is a flowchart showing an example of a solution search. (S10) The search unit 170 reads the energy function E(x) in question.
[0079] (S11) The search unit 170 performs an initial setting. In the initial setting, an initial solution x 0 , state variable x i Taboo against Tenure TT i =0, state variable x i Taboo limit for TL i = 0, and the variable step = 0. The variable step is used to count the number of iterations from the start of the search. The initial solution x 0 may be generated by randomly determining the value of each state variable using, for example, random numbers. i and Taboo Limit TL i is set for all indexes i and is held in a storage unit such as the RAM 108b used by the search unit 170. In addition, in the initial setting, the final value of the number of iterations used to determine the end of the solution search is also set.
[0080] (S12) The search unit 170 searches all x i For ΔE(x i ) is calculated, where ΔE(x i )(=ΔE i ) is the state variable x i This shows the change in energy when the value of is updated.
[0081] (S13) The search unit 170 searches for the TL i x that satisfies ≦step i In the above, ΔE(x i ) is minimized. (S14) The search unit 170 searches for the state variable x i_min The search unit 170 inverts the value of the state variable x i_min The solution with the inverted value of x and the energy of the solution are stored in the solution storage unit 130. For example, the search unit 170 may store a predetermined number of solutions in the solution storage unit 130, prioritizing solutions with low energy among the solutions obtained so far. The search unit 170 also stores the current step value and the state variable x whose value has been inverted this time. i_minThe index i_min is recorded in the history storage unit 150 in association with the index i_min.
[0082] (S15) The determination unit 180 determines the taboo tenure TT i_min The update process of TT determined by the determination unit 180 is performed. i_min is set in the search unit 170 by the setting unit 190. i_min The update process will be described in detail later.
[0083] (S16) The search unit 170 searches for the TL i_min =step+TT i_min Let us assume that. (S17) The searching unit 170 sets step=step+1. (S18) The search unit 170 determines whether the search has ended. If the search has ended, the solution search ends. If the search has ended, the search unit 170 outputs a predetermined number of solutions, prioritizing the solution with the minimum energy or those with low energy stored in the solution storage unit 130. If the search is to continue, the process proceeds to step S12. For example, the search unit 170 determines that the search has ended if step>(predetermined final value), and determines to continue the search if step≦(predetermined final value).
[0084] In step S13, the search unit 170 calculates the state variable x i If the minimum value of the energy of the solution obtained so far is updated by inverting i You may choose i=i_min regardless of
[0085] In step S14, the search unit 170 does not need to store the index whose value has been inverted for all iterations in the solution storage unit 130 as history information, and it is sufficient to store history information for a certain period required to determine the tabu tenure. In the example of the second embodiment, it is sufficient that the solution storage unit 130 holds the number of iterations in which the previous value for each state variable was inverted for the calculation of Frequency.
[0086] Figure 6 shows the T.T. i_min13 is a flowchart showing an example of an update process. TT i_min The update process corresponds to step S15. (S20) The determination unit 180 determines whether x i_min Calculate the update frequency index value Frequency for TT. i_min / (step-step prev ). prev x i_min is the step that was inverted last time.
[0087] In addition, the determination unit 180 i_min The taboo tenure storage unit 140 obtains the taboo tenure from the taboo tenure storage unit 140. The determination unit 180 performs the step prev is obtained from the history storage unit 150. (S21) The determination unit 180 determines whether x i_min Calculate the index value Impact of the change in energy for the i_min )| / max i |ΔE(x i )|.
[0088] (S22) The determination unit 180 determines whether or not Frequency>threshold A and Impact<threshold B. If Frequency>threshold A and Impact<threshold B, the process proceeds to step S23. If at least one of Frequency≦threshold A and Impact≧threshold B is true, the process proceeds to step S24. The thresholds A and B are determined in advance by the user.
[0089] (S23) The determination unit 180 determines whether i_min TT i_min +α. That is, the determination unit 180 updates TT i_min The determination unit 180 increases the TT after the update by α. α is determined in advance by the user. i_min The setting unit 190 stores the state variable x i_min Updated TT for i_min is set in the search unit 170. Then, TTi_min The update process is completed.
[0090] (S24) The determination unit 180 judges whether or not Frequency<threshold C and Impact>threshold D. If Frequency<threshold C and Impact>threshold D, the process proceeds to step S25. If at least one of Frequency≧threshold C and Impact≦threshold D, TT i_min No changes were made to TT i_min The update process is completed. The thresholds C and D are determined in advance by the user. Note that C≦A and D≧B.
[0091] (S25) The determination unit 180 determines whether i_min TT i_min -β. That is, the determination unit 180 updates TT i_min The determination unit 180 reduces the updated TT by β, which is determined in advance by the user. i_min The setting unit 190 stores the state variable x i_min Updated TT for i_min is set in the search unit 170. Then, TT i_min The update process is completed.
[0092] The smaller the taboo tenure is set for a state variable, the shorter the period for fixing the value, making it easier to update the value of that state variable. The data processing device 100 sets a small taboo tenure for state variables whose values are evaluated as being highly worth updating, and sets a large taboo tenure for state variables whose values are evaluated as being less worth updating.
[0093] In this way, the determination unit 180 adaptively determines the tabu tenure for each state variable based on the index value Frequency and the index value Impact. This allows the data processing device 100 to appropriately determine the tabu tenure. Furthermore, the data processing device 100 can appropriately determine the period during which value updates are suppressed in a solution search for each state variable based on the determined tabu tenure. As a result, the data processing device 100 can increase the possibility of arriving at a better solution, and can improve solution-finding performance.
[0094] [Third embodiment] Next, a third embodiment will be described. Differences from the second embodiment will be mainly described, and descriptions of common points will be omitted.
[0095] The hardware and functions of the data processing device 100 of the third embodiment are similar to those of the second embodiment. However, in the third embodiment, the determination unit 180 determines the state variable x i For each update of the value, a certain number of times (M times), the Frequency and Impact are calculated, and the taboo tenure TT based on the Frequency and Impact is calculated. i Therefore, the determination unit 180 determines TT i When you update, TT i The number of iterations (= value of step) when is updated is stored in the tabu tenure storage unit 140 in association with the index i. Note that M is an integer of 1 or more.
[0096] In the third embodiment, the state variable x i For Frequency=(current TT i )×M / (Mth previous state variable x i Frequency is the number of iterations from the update of the value of the state variable. The value of Frequency ranges from 0.0 to 1.0. For example, if the state variable is always changed if there is an opportunity for reversal, Frequency will be 1.0. On the other hand, if the value of the state variable is rarely updated, Frequency will be close to 0.0. The formula for calculating Impact is the same as that in the second embodiment.
[0097] Next, a description will be given of the processing procedure of the data processing device 100 according to the third embodiment. The procedure of a solution search according to the third embodiment is similar to the procedure according to the second embodiment described with reference to FIG. FIG. 7 shows the TT of the third embodiment. i_min 13 is a flowchart showing an example of an update process.
[0098] TT i_min This update process corresponds to step S15. The third embodiment differs from the second embodiment in that steps S20a and S20b are executed instead of step S20 in Fig. 6. Therefore, steps S20a and S20b will be mainly described, and a description of steps S21 to S25 will be omitted.
[0099] (S20a) The determination unit 180 determines the state variable x i_min Previous Taboo Tenure TT i_min After the update process, the state variable x i_min It is determined whether the value of x has been updated M times. M is preset by the user. i_min If the value of has been updated M times, the process proceeds to step S20b. i_min If the value of has not been updated M times, TT i_min The update process is completed.
[0100] The determination unit 180 receives the taboo tenure from the taboo tenure storage unit 140. i_min Previous TT i_min The determination unit 180 can specify the number of iterations for which x has been updated. i_min The number of updates is obtained based on the information stored in the history storage unit 150.
[0101] (S20b) The determination unit 180 determines whether x i_min Calculate the update frequency index value Frequency for TT. i_min ×M / (step-step prev ). prev x i_minis the step that was inverted M times before. i_min The taboo tenure storage unit 140 obtains the taboo tenure from the taboo tenure storage unit 140. The determination unit 180 performs the step prev is obtained from the history storage unit 150. Then, the process proceeds to step S21.
[0102] In this way, the determination unit 180 adaptively determines the tabu tenure for each state variable based on the two index values of Frequency and Impact. This allows the data processing device 100 to appropriately determine the tabu tenure. Furthermore, the data processing device 100 can appropriately determine the period during which value updates are suppressed in a solution search for each state variable based on the determined tabu tenure. As a result, the data processing device 100 can increase the possibility of arriving at a better solution, and can improve solution-finding performance.
[0103] The data processing device 100 also calculates a state variable x i_min Taboo against Tenure TT i_min The timing of changing the taboo tenure TT can be adjusted by setting M. For example, by setting M appropriately according to the problem, it is possible to improve the problem solving performance. Furthermore, by setting M to a value of 2 or more, the data processing device 100 can reduce the taboo tenure TT compared to the second embodiment. i It is also possible to reduce the number of times the update process is executed, thereby improving solution-finding performance while reducing the load associated with the update process.
[0104] [Fourth embodiment] Next, a fourth embodiment will be described. Differences from the fourth embodiment will be mainly described, and descriptions of common points will be omitted.
[0105] The hardware and functions of the data processing device 100 of the fourth embodiment are similar to those of the second embodiment. However, the fourth embodiment differs from the second and third embodiments in that the determination unit 180 determines tabu tenures for all state variables at a fixed iteration interval.
[0106] In the fourth embodiment, the state variable x i For Frequency=(state variable x i Frequency is calculated by dividing the number of updates to the value of the state variable by the number of iterations. The value of Frequency ranges from 0.0 to 1.0. For example, if the taboo tenure for the state variable is 1 and the state variable is changed every time, Frequency is 1.0. On the other hand, if the value of the state variable has not been changed even once, Frequency is 0.0. The formula for calculating Impact is the same as that in the second embodiment.
[0107] Next, a processing procedure of the data processing device 100 according to the fourth embodiment will be described. FIG. 8 is a flowchart showing an example of a solution search according to the fourth embodiment. (S30) The search unit 170 reads the energy function E(x) in question.
[0108] (S31) The search unit 170 performs an initial setting. In the initial setting, an initial solution x 0 , state variable x i Taboo against Tenure TT i =0, state variable x i Taboo limit for TL i =0, and the variable step =0. The variable step is a variable used to count the number of iterations from the start of the search. In addition, in the initial setting, the value interval is set for the variable update, which indicates the timing for updating the tabu tenure of each state variable. The value interval represents the period (iteration interval) for updating the tabu tenure. A value such as 100 to 1000 is preset for the interval.
[0109] initial solution x 0 may be generated by randomly determining the value of each state variable using, for example, random numbers. i and Taboo Limit TL iIt is set for all indexes i and is held in a storage unit such as RAM108b used by the search unit 170. Also, in the initial setting, the final value of the number of iterations used for determining the end of the solution search is set.
[0110] (S32) The search unit 170 calculates ΔE(x i ) for all x i . (S33) The search unit 170 selects the index i = i_min for which ΔE(x i ) is the minimum among the x for which TL i ≦ step. i
[0111] (S34) The search unit 170 reverses the value of the state variable x i_min . The search unit 170 stores the solution obtained by reversing the value of the state variable x i_min and the energy of the solution in the solution storage unit 130. For example, the search unit 170 may preferentially store a predetermined number of solutions with low energy among the solutions obtained so far in the solution storage unit 130. Also, the search unit 170 associates the current step value with the index i_min of the state variable x i_min whose value has been reversed this time and records it in the history storage unit 150.
[0112] (S35) The search unit 170 sets TL i_min = step + TT i_min . (S36) The search unit 170 determines whether step ≧ update. If step ≧ update, the process proceeds to step S37. If step < update, the process proceeds to step S39.
[0113] (S37) The determination unit 180 performs an update process of the tabu tenure TT i for all state variables. The TT i determined by the determination unit 180 is set in the search unit 170 by the setting unit 190. Details of the update process of TT i will be described later.
[0114] (S38) The searching unit 170 sets update=update+interval. (S39) The searching unit 170 sets step=step+1. (S40) The search unit 170 determines whether the search has ended. If the search has ended, the solution search ends. If the search has ended, the search unit 170 outputs a predetermined number of solutions, prioritizing the solution with the minimum energy or those with low energy stored in the solution storage unit 130. If the search is to continue, the process proceeds to step S32. For example, the search unit 170 determines that the search has ended if step>(predetermined final value), and determines to continue the search if step≦(predetermined final value).
[0115] In step S33, the search unit 170 calculates the state variable x i If the minimum value of the energy of the solution obtained so far is updated by inverting i You may choose i=i_min regardless of
[0116] Also, in step S34, the search unit 170 does not need to store the index whose value is inverted for all iterations in the solution storage unit 130 as history information, and it is sufficient to store history information for a certain period of time required to determine the tabu tenure.
[0117] Figure 9 shows the T.T. i 13 is a flowchart showing an example of an update process. TT i The update process corresponds to step S37. (S50) The determination unit 180 determines the taboo tenure TT i Select the next index i for which to make the determination.
[0118] (S51) The determination unit 180 determines whether x i Calculate the update frequency index value Frequency for Flip i / interval. Flip i Last time, TT i x after updatei is the number of changes.
[0119] In addition, the determination unit 180 i The taboo tenure determination unit 180 obtains the taboo tenure from the taboo tenure storage unit 140. i from the history storage unit 150. For example, the determination unit 180 acquires the previous TT based on the history information stored in the history storage unit 150. i x from the iteration (=current step-interval) where the update process was performed to the present i By counting the number of updates to the value of Flip i can be obtained.
[0120] (S52) The determination unit 180 determines whether x i Calculate the index value Impact of the change in energy for the i )| / max j≠i |ΔE(x j )|. (S53) The determination unit 180 determines whether or not Frequency>threshold A and Impact<threshold B. If Frequency>threshold A and Impact<threshold B, the process proceeds to step S54. If at least one of Frequency≦threshold A and Impact≧threshold B is true, the process proceeds to step S55. The thresholds A and B are determined in advance by the user.
[0121] (S54) The determination unit 180 determines whether i TT i +α. That is, the determination unit 180 updates TT i The determination unit 180 increases the TT after the update by α. α is determined in advance by the user. i The tabu tenure storage unit 140 stores the state variable x i Updated TT for i is set in the search unit 170. Then, the process proceeds to step S57.
[0122] (S55) The determination unit 180 judges whether or not Frequency<threshold C and Impact>threshold D. If Frequency<threshold C and Impact>threshold D, the process proceeds to step S56. If at least one of Frequency≧threshold C and Impact≦threshold D, TT i The thresholds C and D are not changed, and the process proceeds to step S57. The thresholds C and D are determined in advance by the user.
[0123] (S56) The determination unit 180 determines whether i TT i -β. That is, the determination unit 180 updates TT i The determination unit 180 reduces the updated TT by β, which is determined in advance by the user. i The tabu tenure storage unit 140 stores the state variable x i Updated TT for i is set in the search unit 170.
[0124] (S57) The determination unit 180 judges whether or not all indexes i have been selected. If all indexes i have been selected, TT i This completes the update process. If an unselected index i exists, the process proceeds to step S50. In step S50, the unselected index i becomes a candidate for the next selection.
[0125] In this way, the determination unit 180 adaptively determines the tabu tenure for each state variable based on the two index values of Frequency and Impact. This allows the data processing device 100 to appropriately determine the tabu tenure. Furthermore, the data processing device 100 can appropriately determine the period during which value updates are suppressed in a solution search for each state variable based on the determined tabu tenure. As a result, the data processing device 100 can increase the possibility of arriving at a better solution, and can improve solution-finding performance.
[0126] Moreover, the data processing device 100 can adjust the timing of changing the tabu tenure of all state variables by the interval value. For example, by appropriately setting the interval value according to the problem, it is possible to improve the performance of solving the problem. Furthermore, the data processing device 100 can adjust the tabu tenure T i It is also possible to reduce the number of times the update process is executed, thereby improving solution-finding performance while reducing the load associated with the update process.
[0127] Incidentally, in the second to fourth embodiments, the determining unit 180 compares each of the Frequency and the Impact with the corresponding threshold value, and increases or decreases the taboo tenure in accordance with the comparison, but the determining unit 180 may use other methods. Therefore, another example of the processing of the determining unit 180 will be described.
[0128] Figure 10 shows the T.T. i 13 is a flowchart showing another example of update determination. Steps S60 to S63 shown below may be executed instead of steps S22 to S25 in the second and third embodiments. When steps S60 to S63 are applied to the second and third embodiments, i=i_min. The step before step S60 is step S21. Furthermore, the step after step S61, step S62 NO, and step S63 is TT i_min This is the end of the update process.
[0129] Furthermore, steps S60 to S63 may be executed instead of steps S53 to S56 in the fourth embodiment. When steps S60 to S63 are applied to the fourth embodiment, the step before step S60 is step S52. Furthermore, the step after step S61, step S62 NO, and step S63 is step S57.
[0130] (S60) The decision unit 180 judges whether or not Impact / Frequency≦threshold P. If Impact / Frequency≦threshold P, the process proceeds to step S61. If Impact / Frequency>threshold P, the process proceeds to step S62. The threshold P is preset by the user.
[0131] (S61) The determination unit 180 determines whether i TT i +α. That is, the determination unit 180 updates TT i The determination unit 180 increases the TT after the update by α. α is determined in advance by the user. i The tabu tenure storage unit 140 stores the state variable x i Updated TT for i is set in the search unit 170. Then, the process proceeds to the next step.
[0132] (S62) The decision unit 180 judges whether or not Impact / Frequency≧threshold Q. If Impact / Frequency≧threshold Q, the process proceeds to step S63. If Impact / Frequency<threshold Q, the process proceeds to the next step. The threshold Q is determined in advance by the user. Q≧P.
[0133] (S63) The determination unit 180 determines whether i TT i -β. That is, the determination unit 180 updates TT i The determination unit 180 reduces the updated TT by β, which is determined in advance by the user. i The tabu tenure storage unit 140 stores the state variable x i Updated TT for i is set in the search unit 170. Then, the process proceeds to the next step.
[0134] In this way, the determination unit 180 determines the state variable x iFor each, the index value Impact is divided by the index value Frequency, and the resulting value is compared with the threshold value, and the TT i In this way, the data processing device 100 can change the TT for each state variable. i can be appropriately determined, improving solution performance.
[0135] Figure 11 shows the TT i 13 is a flowchart showing another example of an update method. Step S70 shown below may be executed instead of steps S22 to S25 in the second and third embodiments. When step S70 is applied to the second and third embodiments, i=i_min. The step before step S70 is step S21. Furthermore, the step after step S70 is TT i_min This is the end of the update process.
[0136] Furthermore, step S70 may be executed in place of steps S53 to S56 in the fourth embodiment. When step S70 is applied to the fourth embodiment, the step before step S70 is step S52. Moreover, the step after step S70 is step S57.
[0137] (S70) The determination unit 180 determines whether i =R / (Impact / Frequency), where R is a constant common to all state variables. The constant R is determined in advance by the user. The setting unit 190 determines the state variable x i Updated TT for i is set in the search unit 170. Then, the process proceeds to the next step.
[0138] In this way, the determination unit 180 determines the state variable x i The value obtained by dividing the constant R by the index value Impact and multiplying it by the index value Frequency is called TT. i In this way, the data processing device 100 can determine the TT i can be appropriately determined, improving solution performance.
[0139] Next, an example will be described in which the solution performance is improved by setting an appropriate tabu tenure. FIG. 12 is a diagram showing an example of the relationship between tabu tenure and the time required to reach an optimal solution. Graph 30 shows the results of an experiment in which a problem for which the optimal solution is known was solved using the tabu search method. The horizontal axis of graph 30 shows the tabu tenure classification used. The vertical axis of graph 30 shows the time to reach the optimal solution. The unit of the time to reach the optimal solution is seconds.
[0140] Bin 31 is when tabu tenure is 100 for all state variables. Bin 32 is when tabu tenure is 60 for all state variables. Bin 33 is when tabu tenure is 100 for some state variables and 20 for other state variables.
[0141] Bin 34 is when tabu tenure is 200 for some state variables and 20 for other state variables. As shown in Graph 30, by setting tabu tenure appropriately, the possibility of quickly reaching an optimal solution increases. Also, by setting tabu tenure appropriately for each state variable, the possibility of quickly reaching an optimal solution increases compared to setting a uniform tabu tenure for all state variables.
[0142] According to the data processing device 100 of the second to fourth embodiments, the tabu tenure for each state variable is appropriately set based on the index value Frequency and the index value Impact. This allows the data processing device 100 to increase the possibility of arriving at a better solution in a relatively short time. In this way, the data processing device 100 can improve the solution-finding performance.
[0143] As described above, the data processing device 100 executes the following processes. As described above, the processes of the determination unit 180 and the setting unit 190 may be executed by the processor 101 implemented by a CPU, i.e., a general-purpose processor. Alternatively, the processes of the determination unit 180 and the setting unit 190 may be executed by the processor 108a implemented by a GPU, FPGA, or the like, i.e., a dedicated processor.
[0144] In a solution search based on an evaluation function including a plurality of state variables, when the value of any one of the plurality of state variables is updated, the determination unit 180 calculates a first index value related to the amount of change in the value of the evaluation function when the value of a first state variable among the plurality of state variables is updated from the value of the plurality of state variables before the update. The determination unit 180 determines the length of a period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated, based on the first index value.
[0145] This enables the data processing device 100 to improve the solution-finding performance. The energy function is an example of an evaluation function. The length of the period during which updating of the value of the first state variable is suppressed after the value of the first state variable has been updated, i.e., the length of the update suppression period, corresponds to tabu tenure. The length of the period during which updating of the value of the first state variable is suppressed can also be said to be the length of the period 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 a first index value.
[0146] The determination unit 180 calculates the first index value by dividing the absolute value of the amount of change when the value of the first state variable is updated from the values of the multiple state variables before the current update by the maximum absolute value of the amount of change when the value of any state variable is updated from the values of the multiple state variables before the current update.
[0147] This enables the data processing device 100 to perform a relative evaluation of the amount of change in the value of the evaluation function due to the update of the value of the first state variable using the first index value, and makes it possible to appropriately determine the length of the update suppression period based on the first index value.
[0148] For example, when the first index value is smaller than the first threshold, the decision unit 180 increases the length of the period during which value updates are suppressed. When the first index value is greater than a second threshold that is greater than the first threshold, the decision unit 180 decreases the length of the period during which value updates are suppressed. When the first index value is equal to or greater than the first threshold and equal to or less than the second threshold, the decision unit 180 does not change the length of the period during which value updates are suppressed.
[0149] This enables the data processing device 100 to appropriately determine the length of the update suppression period for the first state variable, thereby improving solution-finding performance. The determining section 180 may determine the value obtained by dividing a constant common to all variables by the first index value as the length of the period during which updating of the value of the first state variable is suppressed.
[0150] The first state variable may be a state variable whose value has been updated this time in the solution search. This allows the data processing device 100 to finely adjust the length of the update suppression period for each state variable according to the progress of the solution search. As a result, the data processing device 100 can improve the solution-finding performance.
[0151] In addition, the determination unit 180 may count the number of times the value of the first state variable is updated, and when the number of updates reaches a predetermined number, calculate a first index value for the first state variable and determine the length of a period for suppressing updating of the value based on the first index value.
[0152] In addition, the determination unit 180 may calculate a first index value and determine the length of a period for suppressing value updates for each of the multiple state variables as a first state variable each time the values of the state variables in the solution search are updated a predetermined number of times.
[0153] This enables the data processing device 100 to appropriately determine the length of the period for each state variable, thereby improving solution-finding performance. Furthermore, the determination unit 180 may calculate a second index value related to the 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 a period during which updates to the value of the first state variable are suppressed based on the first index value and the second index value.
[0154] This enables the data processing device 100 to more appropriately determine the length of the period for each state variable, thereby improving the solution-finding performance.The index value Frequency in the second to fourth embodiments is an example of a second index value.
[0155] The first state variable may be a state variable whose value has been updated this time in the solution search. In this case, the determination unit 180 may calculate the second index value by dividing the length of the period already set for the first state variable by a first time interval from when the value of the first state variable was last updated to when it is currently updated. prev ) corresponds to the first time interval.
[0156] This allows the data processing device 100 to easily obtain the second index value as an index representing the recent update frequency for the first state variable. As a result, the data processing device 100 can more appropriately determine the length of the update suppression period for the first state variable based on the first index value and the second index value, and can improve the solution-finding performance.
[0157] Furthermore, when 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 a process of determining the length of the period (update suppression period) corresponding to the first state variable, the determination unit 180 judges whether or not the value of the first state variable has been updated a predetermined number of times. If the value of the first state variable has been updated the predetermined number of times, the determination unit 180 calculates the second index value by multiplying the length of the period already set for the first state variable by the predetermined number of times and dividing the result by a second time interval from when the value of the first state variable was updated the predetermined number of times ago to when it is updated this time. M in the third embodiment corresponds to the predetermined number of times. (step-step prev) corresponds to the second time interval.
[0158] This allows the data processing device 100 to easily obtain the second index value as an index representing the recent update frequency for the first state variable. As a result, the data processing device 100 can more appropriately determine the length of the update suppression period for the first state variable based on the first index value and the second index value, and can improve the solution-finding performance.
[0159] Furthermore, the determination unit 180 may select each of the multiple state variables as the first state variable every time the value of any one of the state variables in the solution search is updated a predetermined number of times. In this case, the determination unit 180 calculates a first index value for each first state variable. The determination unit 180 calculates a 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 previous determination of the length of the period corresponding to the first state variable was performed by the predetermined number of times. Then, the determination unit 180 determines the length of the period during which value updates are suppressed for each first state variable based on the first index value and the second index value. The interval in the fourth embodiment corresponds to the predetermined number of times. Flip in the fourth embodiment i corresponds to the number of times the value of the first state variable has been updated since the last time a determination was made of the length of the period corresponding to the first state variable.
[0160] This allows the data processing device 100 to easily obtain the second index value as an index representing the recent update frequency for the first state variable. As a result, the data processing device 100 can more appropriately determine the length of the update suppression period for the first state variable based on the first index value and the second index value, and can improve the solution-finding performance.
[0161] For example, when the first index value is smaller than the first threshold and the second index value is larger than the third threshold, the decision unit 180 increases the length of the period during which value updates are suppressed. When the first index value is larger than a second threshold that is larger than the first threshold and the second index value is smaller than a fourth threshold that is smaller than the third threshold, the decision unit 180 decreases the length of the period. When the first index value is equal to or larger than the first threshold and equal to or smaller than the second threshold, and when the second index value is equal to or larger than the fourth threshold and equal to or smaller than the third threshold, the decision unit 180 does not change the length of the period.
[0162] This enables the data processing device 100 to appropriately determine the length of the update suppression period for the first state variable, thereby improving solution-finding performance. Furthermore, the decision unit 180 may calculate a third index value by dividing the first index value by the second index value. For example, when the third index value is equal to or less than a fifth threshold, the decision unit 180 increases the length of the period during which updating of the value is suppressed. When the third index value is equal to or greater than a sixth threshold that is greater than the fifth threshold, the decision unit 180 decreases the length of the period. When the third index value is greater than the fifth threshold and less than the sixth threshold, the decision unit 180 does not change the length of the period.
[0163] This allows the data processing device 100 to appropriately determine the length of the update suppression period for the first state variable, thereby improving the solution-finding performance. The above-mentioned Impact / Frequency is an example of a third index value.
[0164] Alternatively, the determination section 180 may determine the length of the period during which updating of the value of the first state variable is suppressed to be the value obtained by dividing a predetermined constant by the first index value and multiplying the value obtained by dividing the value by the second index value.
[0165] This enables the data processing device 100 to appropriately determine the length of the update suppression period for the first state variable, thereby improving solution-finding performance. The first state variable may be a state variable whose value has been updated this time in the solution search. In this case, when the setting unit 190 determines the length of the period during which updating of the value of the first state variable is suppressed, the setting unit 190 sets the period during which updating of the value of the first state variable is suppressed from immediately after the current update based on the determined length of the period.
[0166] This allows the data processing device 100 to appropriately control the search unit 170 so as not to change the value of the first state variable during the period, thereby improving the solution-finding performance. Note that, as described above, the setting unit 190 may set the period during which updating of the value of the corresponding state variable is suppressed by specifying the number of iterations at the end of the period, which is obtained by adding the number of iterations corresponding to the length of the update suppression period to the current number of iterations.
[0167] Alternatively, the setting unit 190 may set a period during which updating of the value of a state variable is suppressed from immediately after the current update, based on the length of the period already determined for the state variable whose value has been updated this time in the solution search. For example, when 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 set the first state variable (x i_min ) for the period (e.g. TL i_min After setting the first index value for the first state variable, the length of the period (TT i_min ) may be redetermined.
[0168] This enables the data processing device 100 to appropriately control the search section 170 so as not to change the value of the relevant state variable during that period, thereby improving solution-finding performance. The information processing in the first embodiment may be realized by causing the processing unit 12 to execute a program. Also, the information processing in the second to fourth embodiments may be realized by causing the processor 101 to execute a program. The program can be recorded in a computer-readable recording medium 113.
[0169] For example, the program can be distributed by distributing recording medium 113 on which the program is recorded. Alternatively, the program may be stored in another computer and distributed via a network. The computer may store (install) the program recorded in recording medium 113 or a program received from another computer in a storage device such as RAM 102 or HDD 103, and read and execute the program from the storage device. [Explanation of symbols]
[0170] 10 Data Processing Device 11 Storage section 12 Processing section
Claims
1. In a solution search based on an evaluation function including a plurality of state variables, when a value of any one of the plurality of state variables is updated, a first index value is calculated that is related to an amount of change in a value of the evaluation function when a value of a first state variable among the plurality of state variables is updated from the values of the plurality of state variables before the update; determining a length of a period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated, based on the first index value; A program that causes a computer to carry out processing.
2. In calculating the first index value, an absolute value of the amount of change when the value of the first state variable is updated from the values of the plurality of state variables before the current update is divided by a maximum value of the absolute value of the amount of change when the value of any of the state variables is updated from the values of the plurality of state variables before the current update, thereby calculating the first index value. The program according to claim 1.
3. In determining the length of the period, increasing a length of the period if the first indicator value is less than a first threshold; decreasing a length of the period when the first indicator value is greater than a second threshold value that is greater than the first threshold value; when the first index value is equal to or greater than the first threshold and equal to or less than the second threshold, the length of the period is not changed; The program according to claim 1.
4. the first state variable is the state variable whose value has been updated this time in the solution search; The program according to claim 1.
5. each time the values of the state variables are updated a predetermined number of times in the solution search, the calculation of the first index value and the determination of the length of the period are performed for each of the first state variables, with each of the plurality of state variables being set as the first state variable. The program according to claim 1.
6. calculating, together with the first indicator value, a second indicator value relating to an update frequency of the value of the first state variable; In determining the length of the period, the length of the period is determined based on the first index value and the second index value. The program according to claim 1.
7. the first state variable is the state variable whose value has been updated this time in the solution search; In calculating the second index value, the length of the period already set for the first state variable is divided by a first time interval from when the value of the first state variable is last updated to when the value of the first state variable is currently updated, thereby calculating the second index value. The program according to claim 6.
8. the first state variable is the state variable whose value has been updated this time in the solution search; In the calculation of the second index value, determining whether or not the value of the first state variable has been updated a predetermined number of times after performing a process of determining the length of the period corresponding to the first state variable; when the first state variable has been updated the predetermined number of times, the second index value is calculated by multiplying the length of the period already set for the first state variable by the predetermined number of times and dividing the result by a second time interval from when the value of the first state variable was updated the predetermined number of times before until when the value of the first state variable is currently updated. The program according to claim 6.
9. selecting each of the plurality of state variables as the first state variable each time a value of any one of the state variables is updated a predetermined number of times in the solution search; In the calculation of the first index value, the first index value is calculated for each of the first state variables; In calculating the second index value, the number of times the value of the first state variable has been updated since the length of the period corresponding to the first state variable was previously determined is divided by the predetermined number of times to calculate the second index value for each of the first state variables; In determining the length of the period, the length of the period is determined for each of the first state variables based on the first index value and the second index value. The program according to claim 6.
10. In determining the length of the period, increasing a length of the period when the first indicator value is smaller than a first threshold and the second indicator value is greater than a third threshold; decreasing a length of the period when the first index value is greater than a second threshold value that is greater than the first threshold value and the second index value is smaller than a fourth threshold value that is less than the third threshold value; not changing the length of the period in at least one of a case where the first index value is equal to or greater than the first threshold value and equal to or less than the second threshold value and a case where the second index value is equal to or greater than the fourth threshold value and equal to or less than the third threshold value; The program according to claim 6.
11. In determining the length of the period, Calculating a third index value by dividing the first index value by the second index value; increasing a length of the period when the third index value is equal to or less than a fifth threshold; decreasing a length of the period when the third index value is equal to or greater than a sixth threshold value that is greater than the fifth threshold value; when the third index value is greater than the fifth threshold and less than a sixth threshold, the length of the period is not changed; The program according to claim 6.
12. In determining the length of the period, a value obtained by dividing a predetermined constant by the first index value and multiplying the value by the second index value is set as the length of the period. The program according to claim 6.
13. the first state variable is the state variable whose value has been updated this time in the solution search; when the length of the period is determined, the period during which updating of the value of the first state variable is suppressed immediately after the current update is set based on the determined length of the period; The program according to claim 1.
14. setting the period during which updating of the value of the state variable is suppressed from immediately after the current update based on the length of the period already determined for the state variable whose value has been currently updated in the solution search; The program according to claim 1.
15. The computer In a solution search based on an evaluation function including a plurality of state variables, when a value of any one of the plurality of state variables is updated, a first index value is calculated that is related to an amount of change in a value of the evaluation function when a value of a first state variable among the plurality of state variables is updated from the values of the plurality of state variables before the update; determining a length of a period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated, based on the first index value; Data processing methods.
16. a storage unit that stores, for each of a plurality of state variables, information indicating a length of a period during which updating of the value of the state variable is suppressed after the value of the state variable is updated; a processing unit that, when a value of any one of the plurality of state variables is updated in a solution search based on an evaluation function including the plurality of state variables, calculates a first index value related to an amount of change in a value of the evaluation function when a value of a first state variable of the plurality of state variables is updated from values of the plurality of state variables before the update, and determines, based on the first index value, a length of a period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated; A data processing device comprising:
Citation Information
Patent Citations
Optimum setting method for voltage control apparatus in distribution system
JP2003209926A
Information processing system, information processing method, and program
JP2022164162A
Core Area Territory Planning for Optimizing Driver Familiarity and Route Flexibility
US20100088146A1
Quantum processor based systems and methods that minimize a continuous variable objective function
US20140344322A1