Computer-readable recording medium storing program, data processing method, and apparatus
By calculating the first index value related to the evaluating function value change, the time period for state variable update is determined, and the problem of insufficient solution performance is solved, and a more efficient solution search process is realized.
Patent Information
- Application Number
- CN202410899464.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-14
- Filing Date
- 2024-07-05
- Publication Date
- 2025-02-21
AI Technical Summary
In solution search based on evaluation function, the value update of the state variable may not be effectively controlled within a suitable time period, resulting in the solution performance not being sufficiently improved.
By calculating the first index value, which is related to the amount of change in the evaluation function value, it is determined that the length of the time period in which the state variable is updated after the value of the state variable is updated.
The solution performance is improved, so that the update of state variables can be more effectively controlled during the solution search process, and the possibility of obtaining a better solution is improved.
Smart Images

Figure CN119493946A_ABST
Abstract
Description
Technical Field
[0001] The embodiments discussed herein relate to a non-transitory computer-readable recording medium storing a data processing program, a data processing method, and a data processing apparatus. Background Art
[0002] The information processing device can be used to find a solution to the combinatorial optimization problem. The combinatorial optimization problem is formulated by, for example, an evaluation function representing the energy of the Ising model, which is a model representing the spin behavior of a magnetic material.
[0003] The information processing device searches for a combination of values of state variables included in the evaluation function, for example, a combination that minimizes the value of the evaluation function. In this case, the combination of values of the state variables that minimizes the value of the evaluation function corresponds to a ground state or an optimal solution. Examples of methods for obtaining an approximate solution to a combinatorial optimization problem within a practical and effective amount of time include a simulated annealing (SA) method, a tabu search method, and the like.
[0004] For example, a method of searching for a candidate for an optimal setting value such as a voltage reference value or impedance of a voltage control device using a taboo search is proposed. In the proposed method, solutions obtained in past search processes and search motion patterns are stored in a taboo list, and an optimal solution is selected from solutions not included in the taboo list. In the proposed method, in the case where the amount of information in the taboo list exceeds a predetermined value, the oldest information is removed.
[0005] In addition, an information processing system that solves a large-scale problem in a distributed manner through multiple nodes using an SA method, a taboo search method, or the like is proposed.
[0006] Furthermore, a system for finding a solution to a vehicle routing problem (VRP) using a taboo search method is proposed.
[0007] In addition, a system is proposed that finds a solution to an objective function by performing a special taboo search that searches only a feasible space.
[0008] Japanese Laid-Open Patent Publication No. 2003-209926, Japanese Laid-Open Patent Publication No. 2022-164162, US Patent Application Publication No. 2010 / 0088146, and US Patent Application Publication No. 2014 / 0344322 are disclosed as related arts. Summary of the invention
[0009] Technical issues
[0010] In the solution search based on the evaluation function as described above, after the value of a state variable is updated, the update of the value of the state variable can be controlled to be suppressed within a certain time period. In this case, there is the following problem: when the length of the time period is not appropriate, the solution performance may not be fully improved.
[0011] In one aspect, an embodiment is directed to improving solution performance.
[0012] Solution to the problem
[0013] According to one aspect of the embodiment, there is provided a non-transitory computer-readable recording medium storing a program for causing a computer to perform processing, the processing comprising: when the value of any one of the multiple state variables is updated in a solution search based on an evaluation function including multiple state variables, calculating a first indicator value related to an amount of change in the value of the evaluation function when the value of a first state variable among the multiple state variables is updated from the value of the multiple state variables before the update; and based on the first indicator value, determining the length of a time 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.
[0014] Advantageous Effects of the Invention
[0015] In one aspect, solution performance can be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 is a diagram for describing a data processing device according to a first embodiment;
[0017] Figure 2 is a diagram showing a hardware example of a data processing device according to a second embodiment;
[0018] Figure 3 is a diagram showing an example of the functions of a data processing device;
[0019] Figure 4 is a diagram showing an example of determining a taboo term;
[0020] Figure 5 is a flow chart illustrating an example of a solution search;
[0021] Figure 6 It shows TT i_min A flowchart of an example of an update process;
[0022] Figure 7 TT shows the third embodiment. i min A flowchart of an example of an update process;
[0023] Figure 8is a flowchart showing an example of a solution search of the fourth embodiment;
[0024] Fig. 9 It shows TT i A flowchart of an example of an update process;
[0025] Fig.10 It shows TT i A flowchart of another example of updating determination;
[0026] Fig.11 It shows TT i A flowchart of another example of an update method; and
[0027] Fig.12 is a diagram showing an example of the relationship between the taboo term and the time to reach the optimal solution. DETAILED DESCRIPTION
[0028] Hereinafter, the present embodiment will be described with reference to the accompanying drawings.
[0029] [First embodiment]
[0030] A first embodiment will be described.
[0031] Figure 1 It is a diagram for describing the data processing device according to the first embodiment.
[0032] The data processing device 10 is used to find a solution to a combinatorial optimization problem. The data processing device 10 includes a storage unit 11 and a processing unit 12 .
[0033] The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM), or may be a non-volatile memory 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 multiple processors may be referred to as a "multiprocessor" or simply a "processor".
[0034] The combinatorial optimization problem is formulated by a predetermined evaluation function and is replaced by a problem such as minimizing the value of the evaluation function. The evaluation function represents the energy of the Ising model, for example. The evaluation function may also be referred to as an energy function, an objective function, etc. The evaluation function includes a plurality of state variables. A state variable is a binary variable that takes a value of 0 or 1. A state variable may be referred to as a bit. The solution to the combinatorial optimization problem is represented by the values of the plurality of state variables. The 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 (in other words, the evaluation value) may be referred to as energy.
[0035] The Ising type evaluation function is represented by expression (1).
[0036] [Expression 1]
[0037]
[0038] The state vector x has a plurality of state variables as elements and represents the state of the Ising model. Expression (1) is an evaluation function formulated in a quadratic unconstrained binary optimization (QUBO) format. In the case of a problem of maximizing the value of an evaluation function, it is sufficient to invert the sign of the evaluation function.
[0039] The first term on the right side of expression (1) is to integrate the product of the values of the two state variables and the weighting coefficients for all combinations of the two state variables that can be selected from all state variables without omission and repetition. The indices of the state variables are represented by the subscripts i and j. The i-th state variable is represented by x i The jth state variable is represented by x j The weighting coefficient indicating the weight or coupling strength between the i-th state variable and the j-th state variable is represented by W ij Indicates. Satisfy W ij =W ji and W ii = 0. The number of all state variables is represented by N.
[0040] The second term on the right side of expression (1) is to obtain the sum of the products of the corresponding deviations of all state variables and the values of the state variables. The deviation of the i-th state variable is given by b i The problem information including the weighting coefficient, deviation, etc. included in the evaluation function is stored in the storage unit 11.
[0041] When the state variable x i The value changes to 1-x i When the state variable x i The increment can be expressed as Δx i =(1-x i )-x i =1-2xi For the energy function E(x), with the state variable x i The energy change associated with the change is ΔE i It is expressed by expression (2).
[0042] [Expression 2]
[0043]
[0044] When the state variable x i Change from 0 to 1 or from 1 to 0 so that ΔE is satisfied i <0, the energy E(x) decreases. In this case, x i The changed solution is an improved solution obtained by improving the current solution.
[0045] Here, the processing unit 12 performs a solution search using a taboo search method. The taboo search method is a search method based on a greedy search. Greedy search is a method of repeatedly performing the following process: calculating ΔE while changing the corresponding values of all state variables for the current state. i , choose ΔE i The state variable is minimized, and the value of the state variable is flipped to obtain the next state.
[0046] On the other hand, in the taboo search method, the value of the state variable that has been changed once is fixed for a predetermined period of time. i The state variable that is minimized performs the update of the value of the state variable. Therefore, the taboo search method suppresses the repeated operation of the same state transition in the case of being trapped in a local solution, in other words, satisfying ΔE i >0 for all states and allows a broad search of the solution space.
[0047] In the taboo search method, the length of the time period during which the value of the state variable is fixed is called the taboo term. In other words, the length of the time period during which the update of the value of the state variable is suppressed is called the taboo term. i The corresponding taboo term is denoted as TT i TT i is stored in the storage unit 11. In other words, the storage unit 11 stores, for each of the plurality of state variables, the length of a time period during which the update of the value of the state variable is suppressed after the value of the state variable is updated. iThe initial value of may be 0 or a predetermined value greater than 0. In addition, for each of the plurality of state variables, information indicating a time period during which the value of the state variable is fixed may be stored in the storage unit 11. For example, the time period during which the value of the state variable is fixed is specified by specifying a time to release the fixation according to the number of attempts of state transition (= the current iteration number + (with the taboo term TT) i The corresponding number of iterations) is determined. Note that in the following, it is assumed that the taboo term TT i Represented by the iteration number.
[0048] Processing unit 12 determines the taboo term for each state variable as follows.
[0049] The processing unit 12 updates the value of any one of the plurality of state variables in the solution search based on the evaluation function. For example, by flipping the value of a state variable that minimizes the amount of change ΔE in the value of the evaluation function with respect to the 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 the 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 value of the first state variable is updated in the values of the plurality of state variables before the update (in other words, the values of the plurality of state variables in the state X1).
[0050] As will be described later, 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, processing unit 12 may select each of all state variables as the first state variable whenever a predetermined number of state transitions are attempted in the solution search.
[0051] Here, the first state variable x is updated from the values of the multiple state variables before the update i The absolute value of the change in the evaluation function E(x) is limited to |ΔE i |. In addition, the maximum value of the absolute value of the change in the evaluation function E(x) when the value of any state variable is updated from the values of multiple state variables before this update is limited to max j |ΔE j |. For example, the processing unit 12 converts |ΔE i | Divide by max j |ΔE j |To calculate the first index value I i In this case, I i =|ΔE i | / max j |ΔE j Note that processing unit 12 may obtain j from an index other than i.
[0052] The first index value I i relatively represents, for all state variables, the degree of change in the value of the evaluation function E(x) caused by updating the value of the state variable x i . This indicates that among all state variables, the larger the first index value I i , the greater the impact on the value of the evaluation function E(x) caused by updating the value of the state variable x i . On the other hand, this indicates that among all state variables, the smaller the first index value I i , the smaller the impact on the value of the evaluation function E(x) caused by updating the value of the state variable x i .
[0053] The processing unit 12 determines 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, in other words, the processing unit 12 determines the tabu tenure TT i based on the first index value I i . i .
[0054] For example, the processing unit 12 can compare the first index value I i with the first threshold Th1, and increase TT i when the first index value I i is less than the first threshold Th1. This is because a state variable that has a small impact on the value of the evaluation function E(x) has a low value for updating the value in the solution search. In this case, the processing unit 12 can increase TT i so that TT i = TT i +α. The predetermined positive integer is represented by α
[0055] In addition, the processing unit 12 can compare the first index value I i with the second threshold Th2, and decrease TT i when the first index value I i is greater than the second threshold Th2. This is because a state variable that has a large impact on the value of the evaluation function E(x) has a high value for updating the value in the solution search. In this case, the processing unit 12 can decrease TT i so that TT i = TT i -β. The predetermined positive integer is represented by β
[0056] The first threshold Th1 can be a value less than the second threshold Th2 (Th1 < Th2). When Th1 ≤ I i≤Th2, the processing unit 12 does not need to change TT i .
[0057] The determined TT i is used to control the suppression of the first state variable x in the solution search. i The processing unit 12 sets the first state variable x as follows, for example: i The value of TT i Fixed time period.
[0058] In the first example, the first state variable x i is the same state variable as the state variable whose value has been updated in the solution search this time. In other words, the processing unit 12 specifies the state variable whose value has been updated in the solution search this time as the first state variable x i .
[0059] In this case, when the first state variable x is determined i Taboo term TT i When the processing unit 12 determines TT i To set the first state variable x to be suppressed immediately after this update i In other words, the processing unit 12 updates the value of TT based on the determined i To set the update inhibition time period. For example, the processing unit 12 updates the first state variable x i The update of the value of is suppressed until the iteration number TL is reached i , the number of iterations TL i By adding TT i The update suppression period is terminated by TL i Indicates that TL i It is called tabu limit.
[0060] In the second example, each time a predetermined number of state transitions are attempted in the solution search, the processing unit 12 selects each of all state variables as the first state variable. In other words, each time a predetermined number of state transitions are attempted, the processing unit 12 collectively updates the taboo terms of all state variables. In this case, when a state variable x is selected in the solution search, i When the value of x is updated, the processing unit 12 changes i TT i TT determined previously using i Set the above TL i .
[0061] When the taboo term TT determined for each state variable is used in this way for a certain period of time iWhen performing a solution search by the taboo search method, the processing unit 12 outputs the solution that minimizes the value of the evaluation function among the solutions obtained by the solution search as the final solution. The processing unit 12 may preferentially output multiple solutions having smaller evaluation function values among the obtained solutions.
[0062] 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 any one of the plurality of state variables is updated. Then, based on the values of the plurality of state variables, 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. Based on the first index value, the length of a time 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.
[0063] Therefore, the data processing device 10 can improve the solution performance. Specifically, the data processing device 10 can appropriately determine the length of the time period in which the update of the value of the state variable is suppressed based on the first indicator value for each of the multiple state variables. For example, the data processing device 10 reduces the length of the time period of the state variable that is evaluated as having a high value for updating the value at the current time point through the first indicator value. On the other hand, the data processing device 10 increases the length of the time period of the state variable that is evaluated as having a low value for updating the value at the current time point through the first indicator value. In this way, the data processing device 10 dynamically adjusts the time period of each state variable according to the situation, thereby making it easier to reach more solutions and increasing the possibility of obtaining better solutions.
[0064] Note that, in addition to the first indicator value related to the amount of change in the value of the evaluation function, the processing unit 12 may also calculate a second indicator value related to the frequency of updating the value of the first state variable. The processing unit 12 may determine the length of a time period during which the update of the value of the first state variable is suppressed based on the first indicator value and the second indicator value. For example, a state variable that is evaluated to have a high update frequency based on the second indicator value has a low value for updating the value in the solution search. On the other hand, a state variable that is evaluated to have a low update frequency based on the second indicator value has a high value for updating the value in the solution search.
[0065] Therefore, based on both the first indicator value and the second indicator value, the processing unit 12 can shorten the time period during which the update of the value of the state variable evaluated to have a high value for updating the value is suppressed. Based on both the first indicator value and the second indicator value, the processing unit 12 can extend the time period during which the update of the value of the state variable evaluated to have a low value for updating the value is suppressed. In this way, the data processing device 10 can more appropriately determine the length of the time period during which the update of the value of each state variable is suppressed by using the second indicator value in addition to the first indicator value. Therefore, the data processing device 10 can also improve the solution performance.
[0066] In addition, in the above description, an example in which the processing unit 12 performs a solution search has been described. However, a search unit implemented by an FPGA, a GPU, or the like may perform a solution search by a taboo search method according to an instruction from the processing unit 12, and may respond to the processing unit 12 with the search results. In this 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. In the case where the solution search is implemented by a search unit different from the processing unit 12, the processing unit 12 may set the taboo term of each state variable determined by the above method in the search unit. The processing unit 12 may determine the time period during which the value of the corresponding state variable is fixed based on the taboo term, and set the time period in the search unit. For example, the processing unit 12 may set the time period by specifying the end of the time period (=current number of iterations+taboo term).
[0067] [Second embodiment]
[0068] Next, a second embodiment will be described.
[0069] Figure 2 It is a diagram showing an example of hardware of the data processing device according to the second embodiment.
[0070] The data processing device 100 searches for a solution to the combinatorial optimization problem by using the taboo search method and outputs the searched solution. The combinatorial optimization problem is formulated by the Ising type energy function of Expression (1) and is replaced by a problem of minimizing the value of the energy function, for example.
[0071] 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.
[0072] The processor 101 is a general-purpose processor that executes program commands. The processor 101 is, for example, a CPU. The processor 101 loads at least a portion of the 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. In addition, the data processing device 100 may include a plurality of processors. The processing to be described below may be performed in parallel by using a plurality of processors or processor cores. In addition, a set of a plurality of processors may be referred to as a "multiprocessor" or simply a "processor".
[0073] The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used to perform arithmetic operations by the processor 101. Note that the data processing apparatus 100 may include a type of memory other than the RAM, or may include a plurality of memories.
[0074] 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.
[0075] The GPU 104 outputs an image to a display 111 coupled to the data processing apparatus 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 electroluminescent (OEL) display may be used.
[0076] The input interface 105 acquires an input signal from an input device 112 coupled to the data processing apparatus 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, etc. may be used. In addition, various types of input devices may be coupled to the data processing apparatus 100.
[0077] The medium reader 106 is a reading device that reads the program and data recorded in the recording medium 113. As the recording medium 113, for example, a magnetic disk, an optical disk, a magneto-optical (MO) disk, a semiconductor memory, etc. can be used. The magnetic disk includes a floppy disk (FD) and an HDD. The optical disk includes a compact disk (CD) and a digital versatile disk (DVD).
[0078] The medium reader 106 copies, for example, the 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 programs and data. In addition, the recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.
[0079] The communication interface 107 is coupled to the 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.
[0080] The accelerator card 108 is a hardware accelerator that performs a taboo search method based on the energy function of the 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, FPGA, or ASIC. The processor 108a executes the taboo search method according to the command of the processor 101 and responds with a solution obtained by the search. The RAM 108b is a memory that stores data for processing by the processor 108a.
[0081] An apparatus such as the accelerator card 108 or the data processing apparatus 100 that finds a solution to a problem represented by an Ising-type energy function (in other words, an Ising problem) may be referred to as an Ising machine.
[0082] Figure 3 is a diagram showing a functional example of a data processing device.
[0083] The data processing apparatus 100 includes an optimization problem storage unit 120, a solution storage unit 130, a taboo term 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 taboo term storage unit 140, the history storage unit 150, and the setting value storage unit 160.
[0084] 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.
[0085] The optimization problem storage unit 120 stores problem information of the combinatorial optimization problem. The problem information includes information about the energy function of Expression (1). The solution storage unit 130 stores the solution searched by the search unit 170.
[0086] The taboo term storage unit 140 stores the taboo term of each state variable determined by the determination unit 180 .
[0087] 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 one state variable is updated, the amount of energy change calculated for each state variable for selecting the state variable whose value is to be updated in the taboo search method, etc. The number of times the value of any one state variable is updated, in other words, the number of times state transition is performed in the solution search, is called the number of iterations.
[0088] The setting value storage unit 160 stores setting values input by a user and used for the processing of the determination unit 180. The setting value is information indicating calculation of an index value for determining a taboo term, timing of determining a taboo term, and the like.
[0089] The search unit 170 performs a solution search by a taboo search method based on the problem information stored in the optimization problem storage unit 120. The search unit 170 calculates the energy change amount ΔE in the case where the value of each state variable is flipped for the state represented by the plurality of state variables based on Expression (2). The search unit 170 causes the current state to undergo a transition to the next state by flipping the value of the state variable that minimizes ΔE among the state variables whose values have been fixed for a period of time that has expired.
[0090] Here, based on the taboo term of each state variable determined by the determination unit 180, the search unit 170 calculates a time period during which the update of the value of the state variable is suppressed after the value of the state variable is updated, in other words, the search unit 170 calculates a time period during which the value of the state variable is fixed. i The corresponding taboo term is denoted as TT i In addition, in the state variable x i The value of the state variable x is updated when i The period during which the update of the value of is suppressed is limited by a taboo indicating the end of the period TL i The search unit 170 sets the taboo limit TL i = (current iteration number of solution search) + (taboo term TT i ).
[0091] The determination unit 180 determines the taboo term of each state variable based on the information stored in the history storage unit 150 and the setting value storage unit 160 , and stores the taboo term in the taboo term storage unit 140 .
[0092] The setting unit 190 sets the taboo term of each state variable in the searching unit 170 .
[0093] Note that the search unit 170 may be implemented by the processor 101 executing a program stored in the RAM 102. In this case, the data processing apparatus 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. In addition, at least a portion of the optimization problem storage unit 120, the solution storage unit 130, the taboo term 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.
[0094] Figure 4 is a diagram showing an example of determining a taboo term.
[0095] The search unit 170 performs a solution search by a taboo search method. As described above, the search unit 170 performs an update to flip the value of one state variable that minimizes ΔE for each iteration so that the state represented by the plurality of state variables undergoes a transition. The search unit 170 saves the taboo term and taboo limit of each state variable.
[0096] For example, in the case of satisfying the taboo term TT i =3, the search unit 170 sets the state variable x i After the value of is updated, it is forbidden to update the value of the corresponding state variable until the second step, and it is allowed to update the state variable x from the third step onwards. i The value of Figure 4 , state transitions in the case where the taboo term of each of the state variables x1, x2, and x3 is 3 are illustrated. A set of values of the state variables x1, x2, x3, ... arranged vertically corresponds to one state. The horizontal axis indicates time. The passage of time is represented by the number of iterations. The initial value of the number of iterations is 0.
[0097] Note that this control is an example, and in another example, when the taboo term TT is satisfied i =3, the search unit 170 can i After the value of is updated, control is performed to prohibit updating the value of the corresponding state variable until the third step, and to allow updating of the state variable x from the fourth step onwards. i The value of .
[0098] The determination unit 180 acquires a search history of a solution by the taboo search method performed by the search unit 170, and determines a taboo term for each state variable based on the search history. FIG20 illustrates a method of determining a taboo term for a state variable by the determination unit 180. The horizontal axis of FIG20 indicates an update frequency of a value of a state variable of interest. The vertical axis of FIG20 indicates an energy change amount in a case where the value of the state variable of interest is updated from the current state.
[0099] The determination unit 180 evaluates that the greater the update frequency and the smaller the energy change amount, the lower the value of updating the value of the corresponding state variable, and the determination unit 180 increases the taboo term of the state variable. On the other hand, the determination unit 180 evaluates that the smaller the update frequency and the greater the energy change amount, the higher the value of updating the value of the corresponding state variable, and the determination unit 180 decreases the taboo term of the state variable.
[0100] Here, in the example of the second embodiment, the determination unit 180 determines the taboo term TT of the state variable whose value has been updated in the solution search this time. i .
[0101] The determination unit 180 calculates the index value Frequency to evaluate the update frequency of the corresponding state variable. i , satisfying Frequency=(current TT i ) / (Update the state variable x from the last time i )
[0102] The value range of Frequency is 0.0 to 1.0. For example, in the case where the corresponding state variable is always changed when there is a flip opportunity, Frequency becomes 1.0. On the other hand, in the case where the value of the corresponding state variable is hardly updated, Frequency becomes a value close to 0.0.
[0103] In addition, the determination unit 180 calculates an index value Impact in order to evaluate the degree of energy change amount in a case where the value of the corresponding state variable is updated. i , satisfying Impact = (in the state variable x i The indicator value Impact may be referred to as the energy change rate when the value of the corresponding state variable is updated.
[0104] Impact values range from 0.0 to 1.0. i The smaller the relative energy change caused by updating the value of , the closer Impact becomes to 0.0. On the other hand, as the relative energy change increases, Impact becomes closer to 1.0. Note that in the state variable x i When the energy change amount when the value of is updated is the maximum value of the change amount for each of all state variables, the state variable x iThe Impact of becomes 1.0. Here, in the taboo search method, the energy change amount ΔE in the case where the value of the state variable is updated is calculated for all state variables in each iteration. Therefore, the determination unit 180 can acquire ΔE for each of all state variables from the search unit 170.
[0105] The determination unit 180 determines the taboo term TT of the corresponding state variable based on Frequency and Impact. i .
[0106] Then, the setting unit 190 sets the taboo term of each state variable determined by the determination unit 180 in the search unit 170 .
[0107] Next, the processing procedure of the data processing apparatus 100 will be described.
[0108] Figure 5 is a flow chart illustrating an example of a solution search.
[0109] (S10) The search unit 170 reads the energy function E(x) of the problem.
[0110] (S11) The search unit 170 performs initial settings. In the initial settings, an initial solution x is set. 0 , state variable x i Taboo term TT i =0, state variable x i Taboo restrictions TL i = 0 and variable step = 0. Variable step is a variable used to count the number of iterations from the start of the search. The initial solution x can be generated by randomly determining the value of each state variable using, for example, a random number. 0 In addition, a taboo term TT is set for all indexes i. i and taboo limit TL i , and the taboo term TT i and taboo limit TL i is stored in a 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 the end determination of the solution search is also set.
[0111] (S12) The search unit 170 searches for all x i Calculate ΔE(x i ). Here, ΔE(x i )(=ΔE i ) indicates that the state variable x is updated for the current state i The amount of energy change when the value of .
[0112] (S13) The search unit 170 satisfies TL i ≤ x of step i Choose ΔE(x i )The minimized index i=i_min.
[0113] (S14) The search unit 170 flips the state variable x i_min Note that search unit 170 will be by flipping the state variable x i_min The solution obtained by reversing the value of and the energy of the solution are stored 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. In addition, the search unit 170 stores the state variable x whose value has been flipped this time. i_min The current step value and index i_min are recorded in the history storage unit 150 in association with each other.
[0114] (S15) The determination unit 180 executes the taboo term TT i_min Update process. TT determined by the determination unit 180 i_min The setting unit 190 sets the TT in the search unit 170. i_min Update processing details.
[0115] (S16) The search unit 170 sets TL i_min =Step+TT i_min .
[0116] (S17) The search unit 170 sets step=step+1.
[0117] (S18) The search unit 170 determines whether the search is to be ended. In the case of ending the search, the solution search ends. In the case of ending the search, the search unit 170 outputs a predetermined number of solutions by giving priority to the solution with the minimum energy or the solution with low energy stored in the solution storage unit 130. In the case of continuing the search, the process proceeds to step S12. For example, the search unit 170 determines that the search is to be ended when step>(predetermined final value) is satisfied, and determines that the search is to be continued when step≤(predetermined final value) is satisfied.
[0118] Note that in step S13, by flipping the state variable x i To update the minimum value of the energy of the solution obtained so far, the search unit 170 can select i=i_min, and TL i Not relevant.
[0119] Furthermore, in step S14, the search unit 170 does not need to store the index obtained by flipping the value for all iterations as history information in the solution storage unit 130, and it is sufficient to store the history information of a specific time period required for determining the taboo term. In the example of the second embodiment, in order to calculate Frequency, it is sufficient to save the number of iterations whose value has been flipped last time for each state variable in the solution storage unit 130.
[0120] Figure 6 It shows TT i_min A flowchart of an example of an update process.
[0121] TT i_min The updating process corresponds to step S15.
[0122] (S20) The determination unit 180 calculates x i_min The update frequency indicator value Frequency. Satisfying Frequency = TT i_min / (step by step 前 ).step 前 is one of the i_min The step that was flipped last time.
[0123] Note that the determination unit 180 obtains TT from the taboo term storage unit 140 i_min The determination unit 180 obtains the step from the history storage unit 150. 前 .
[0124] (S21) The determination unit 180 calculates x i_min The energy change index value Impact. Satisfying Impact = |ΔE(x i_min )| / max i |ΔE(x i )|.
[0125] (S22) The determination unit 180 determines whether Frequency>threshold A and Impact<threshold B are satisfied. In the case where Frequency>threshold A and Impact<threshold B are satisfied, the process proceeds to step S23. In the case where at least one of Frequency≤threshold A and Impact≥threshold B is satisfied, the process proceeds to step S24. Threshold A and threshold B are determined in advance by the user.
[0126] (S23) The determination unit 180 sets TT i_min Update to TT i_min In other words, the determination unit 180 sets TT i_min Increase α. α is predetermined by the user. The determination unit 180 updates the TT i_minThe taboo term storage unit 140 is associated with the index i_min. The setting unit 190 sets the state variable x in the search unit 170. i_min Updated TT i_min Then, TT i_min The update process is complete.
[0127] (S24) The determination unit 180 determines whether Frequency < threshold C and Impact > threshold D are satisfied. If Frequency < threshold C and Impact > threshold D are satisfied, the process proceeds to step S25. If at least one of Frequency ≥ threshold C and Impact ≤ threshold D is satisfied, TT is terminated. i_min Update processing without changing TT i_min The threshold C and the threshold D are predetermined by the user. Note that C≤A and D≥B are satisfied.
[0128] (S25) The determination unit 180 sets TT i_min Update to TT i_min In other words, the determination unit 180 determines TT i_min Decrease β. β is predetermined by the user. The determination unit 180 updates the TT i_min The taboo term storage unit 140 is associated with the index i_min. The setting unit 190 sets the state variable x in the search unit 170. i_min Updated TT i_min Then, TT i_min The update process is complete.
[0129] As a state variable with a smaller taboo term value set, the time period during which its value is fixed becomes shorter, making it easy to update the value of the state variable. The data processing device 100 reduces the taboo term of the state variable that is evaluated as having a high value for updating the value, and increases the taboo term of the state variable that is evaluated as having a low value for updating the value.
[0130] In this way, the determination unit 180 adaptively determines the taboo term of each state variable based on the index value Frequency and the index value Impact. Therefore, the data processing device 100 can appropriately determine the taboo term. In addition, the data processing device 100 can appropriately determine the time period during which the update of the value of each state variable is suppressed in the solution search based on the determined taboo term. Therefore, the data processing device 100 can increase the possibility of reaching a better solution and improve the solution performance.
[0131] [Third Embodiment]
[0132] Next, the third embodiment will be described. Matters different from the above-described second embodiment will be mainly described, and description of common matters will be omitted.
[0133] 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 The value of is updated a predetermined number of times (M times) and the Frequency and Impact are calculated, and the taboo term TT is determined based on the Frequency and Impact. i Therefore, when TT i When TT is updated, the determination unit 180 will i The iteration number (= value of step) when updated is stored in association with the index i in the taboo term storage unit 140. Note that M is an integer equal to or greater than 1.
[0134] In the example of the third embodiment, for the state variable x i , satisfying Frequency=(current TT i )×M / (from the previous state variable x i The value of Frequency is updated M times (the number of iterations). The value range of Frequency is 0.0 to 1.0. For example, in the case where the corresponding state variable always changes when there is a flip opportunity, Frequency becomes 1.0. On the other hand, in the case where the value of the corresponding state variable is hardly updated, Frequency becomes a value close to 0.0. The calculation expression of Impact is the same as the calculation expression of the second embodiment.
[0135] Next, the processing procedure of the data processing device 100 of the third embodiment will be described. The solution search procedure of the third embodiment is similar to that of the embodiment described in reference to FIG. Figure 5 The process of the second embodiment is described.
[0136] Figure 7 TT shows the third embodiment. i_min A flowchart of an example of an update process.
[0137] TT i_min The update process corresponds to step S15. The third embodiment differs from the second embodiment in that steps S20a and S20b are executed instead of Figure 6 Therefore, step S20a and step S20b will be mainly described, and descriptions of steps S21 to S25 will be omitted.
[0138] (S20a) The determination unit 180 determines the state variable x i_min Previous Taboo Term TTi_min After the update process, the state variable x i_min Whether the value of 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 is not updated M times, TT i_min The update process is complete.
[0139] Note that the determination unit 180 may specify from the taboo term storage unit 140 a value for x i_min TT has been updated in the previous i_min In addition, the determination unit 180 obtains x according to the number of iterations based on the information stored in the history storage unit 150. i_min The number of updates to the current iteration.
[0140] (S20b) The determination unit 180 calculates the value for x i_min The update frequency indicator value Frequency. Satisfying Frequency = TT i_min ×M / (step-step 前 ).step 前 It was before x i_min The step that has been flipped M times. Note that the determination unit 180 obtains TT from the taboo term storage unit 140 i_min The determination unit 180 obtains the step from the history storage unit 150. 前 . Then, the process proceeds to step S21.
[0141] In this way, the determination unit 180 adaptively determines the taboo term of each state variable based on the two indicator values Frequency and Impact. Therefore, the data processing device 100 can appropriately determine the taboo term. In addition, the data processing device 100 can appropriately determine the time period during which the update of the value of each state variable is suppressed in the solution search based on the determined taboo term. Therefore, the data processing device 100 can increase the possibility of reaching a better solution and improve the solution performance.
[0142] In addition, the data processing device 100 can also adjust the state variable x by setting M i_min Taboo term TT i_min For example, by appropriately setting M according to the problem, there is a possibility that the performance of solving the problem can be improved. In addition, by setting M to a value equal to or greater than 2, the data processing device 100 can reduce the execution taboo term TT compared to the second embodiment. i The number of update processes is reduced, and solving performance is improved while reducing the load associated with the update process.
[0143] [Fourth Embodiment]
[0144] Next, a fourth embodiment will be described. Matters different from the above-described second and third embodiments will be mainly described, and description of common matters will be omitted.
[0145] 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 collectively determines the taboo terms of all state variables at certain iteration intervals.
[0146] In the example of the fourth embodiment, for the state variable x i , satisfying Frequency=(for state variable x i The value of Frequency ranges from 0.0 to 1.0. For example, in a case where the taboo term of the corresponding state variable is 1 and the state variable changes every time, Frequency becomes 1.0. On the other hand, in a case where the value of the corresponding state variable does not change even once, Frequency becomes 0.0. The calculation expression of Impact is the same as that of the second embodiment.
[0147] Next, the processing procedure of the data processing device 100 of the fourth embodiment will be described.
[0148] Figure 8 is a flowchart showing an example of a solution search according to the fourth embodiment.
[0149] (S30) The search unit 170 reads the energy function E(x) of the problem.
[0150] (S31) The search unit 170 performs initial settings. In the initial settings, an initial solution x is set. 0 , state variable x i Taboo term TT i =0, state variable x i Taboo restrictions TL i =0 and variable step=0. The variable step is a variable for counting the number of iterations from the start of the search. In addition, in the initial setting, a value interval is set for the variable update, which indicates the time when the taboo term of each state variable is updated. The value interval represents the period (iteration interval) at which the taboo term is updated. For example, a value such as 100 to 1000 is pre-set as the interval.
[0151] The initial solution x can be generated by randomly determining the value of each state variable using, for example, a random number.0 In addition, a taboo term TT is set for all indexes i. i and taboo limit TL i , and the taboo term TT i and taboo limit TL i is stored in a 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 the end determination of the solution search is also set.
[0152] (S32) The search unit 170 searches for all x i Calculate ΔE(x i ).
[0153] (S33) The search unit 170 satisfies TL i ≤ x of step i Choose ΔE(x i )The minimized index i=i_min.
[0154] (S34) The search unit 170 flips the state variable x i_min Note that search unit 170 will be by flipping the state variable x i_min The solution obtained by the value of and the energy of the solution are stored 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. In addition, the search unit 170 stores the state variable x whose value is flipped this time. i_min The current step value and index i_min are recorded in the history storage unit 150 in association with each other.
[0155] (S35) The search unit 170 sets TL i_min =Step+TT i_min .
[0156] (S36) The search unit 170 determines whether Step ≥ Update is satisfied. In the case where Step ≥ Update is satisfied, the process proceeds to step S37. In the case where Step < Update is satisfied, the process proceeds to step S39.
[0157] (S37) The determination unit 180 executes the taboo term TT for all state variables. i Update processing. The TT determined by the determination unit 180 is set in the search unit 170 by the setting unit 190. i TT will be described later. i Update processing details.
[0158] (S38) The search unit 170 sets Update=Update+Interval.
[0159] (S39) The search unit 170 sets step=step+1.
[0160] (S40) The search unit 170 determines whether the search is to be ended. In the case of ending the search, the solution search ends. In the case of ending the search, the search unit 170 outputs a predetermined number of solutions by giving priority to the solution with the minimum energy or the solution with low energy stored in the solution storage unit 130. In the case of continuing the search, the process proceeds to step S32. For example, the search unit 170 determines that the search is to be ended when step>(predetermined final value) is satisfied, and determines that the search is to be continued when step≤(predetermined final value) is satisfied.
[0161] Note that in step S33, by flipping the state variable x i To update the minimum value of the energy of the solution obtained so far, the search unit 170 can select i=i_min, and TL i Not relevant.
[0162] Furthermore, in step S34 , the search unit 170 does not have to store the index obtained by flipping the value for all iterations in the solution storage unit 130 as history information, and it is sufficient to store history information for a specific period of time required for determining the taboo term.
[0163] Fig. 9 It shows TT i A flowchart of an example of an update process.
[0164] TT i The updating process corresponds to step S37.
[0165] (S50) The determination unit 180 selects the next index i as the taboo term TT i The determined object.
[0166] (S51) The determination unit 180 calculates the value of x i The update frequency index value Frequency. Satisfy Frequency = Flip i / Interval. Flip i It was in the previous TT i After updating processing x i The number of changes.
[0167] Note that the determination unit 180 obtains TT from the taboo term storage unit 140 i The determination unit 180 obtains the Flip i For example, the determination unit 180 may determine the number of times the TT was previously executed based on the history information stored in the history storage unit 150. iUpdate the iteration (= current step - interval) of the process to date x i Count the number of updates of the value to get the Flip i .
[0168] (S52) The determination unit 180 calculates the value of x i The energy change index value Impact. Satisfying Impact = |ΔE(x i )| / max j≠i |ΔE(x j )|.
[0169] (S53) The determination unit 180 determines whether Frequency>threshold A and Impact<threshold B are satisfied. In the case where Frequency>threshold A and Impact<threshold B are satisfied, the process proceeds to step S54. In the case where at least one of Frequency≤threshold A and Impact≥threshold B is satisfied, the process proceeds to step S55. Threshold A and threshold B are determined in advance by the user.
[0170] (S54) The determination unit 180 sets TT i Update to TT i In other words, the determination unit 180 sets TT i Increase α. α is predetermined by the user. The determination unit 180 updates the TT i The taboo term storage unit 140 stores the taboo term storage unit 140 in association with the index i. The setting unit 190 sets the state variable x in the search unit 170. i Updated TT i . Then, the processing proceeds to step S57.
[0171] (S55) The determination unit 180 determines whether Frequency < threshold C and Impact > threshold D are satisfied. In the case where Frequency < threshold C and Impact > threshold D are satisfied, the process proceeds to step S56. In the case where at least one of Frequency ≥ threshold C and Impact ≤ threshold D is satisfied, the process proceeds to step S57 without changing TT i The threshold C and the threshold D are predetermined by the user.
[0172] (S56) The determination unit 180 sets TT i Update to TT i In other words, the determination unit 180 determines TT i Decrease β. β is predetermined by the user. The determination unit 180 updates the TT i The taboo term storage unit 140 stores the taboo term storage unit 140 in association with the index i. The setting unit 190 sets the state variable x in the search unit 170.i Updated TT i .
[0173] (S57) The determination unit 180 determines whether all indexes i have been selected. In the case where all indexes i have been selected, TT i The update process ends. In the case where there is an unselected index i, the process proceeds to step S50. In step S50, the unselected index i becomes the next selection candidate.
[0174] In this way, the determination unit 180 adaptively determines the taboo term of each state variable based on the two indicator values Frequency and Impact. Therefore, the data processing device 100 can appropriately determine the taboo term. In addition, the data processing device 100 can appropriately determine the time period during which the update of the value of each state variable is suppressed in the solution search based on the determined taboo term. Therefore, the data processing device 100 can increase the possibility of reaching a better solution and improve the solution performance.
[0175] In addition, the data processing device 100 can adjust the change time of the taboo term of all state variables by the interval value. For example, by appropriately setting the interval value according to the problem, there is a possibility that the solution performance for the problem can be improved. In addition, by setting the interval to a large value, the data processing device 100 can reduce the execution of the taboo term TT. i The number of update processes is reduced, and solving performance is improved while reducing the load associated with the update process.
[0176] Meanwhile, in the second to fourth embodiments, it is assumed that the determination unit 180 compares each of Frequency and Impact with a corresponding threshold value and increases or decreases the taboo term according to the comparison. However, the determination unit 180 may use another method. Therefore, another example of the processing of the determination unit 180 will be described.
[0177] Fig.10 It shows TT i A flowchart of another example of update determination.
[0178] Steps S60 to S63 described below may be performed instead of steps S22 to S25 of the second and third embodiments. In the case where steps S60 to S63 are applied to the second and third embodiments, i=i_min is satisfied. In addition, the previous step of step S60 is step S21. In addition, step S61, no of step S62, and the next step of step S63 are TT i_min End of update processing.
[0179] In addition, steps S60 to S63 may be performed instead of steps S53 to S56 of the fourth embodiment. In the case where steps S60 to S63 are applied to the fourth embodiment, the previous step of step S60 is step S52. In addition, step S61, step S62 No, and the next step of step S63 is step S57.
[0180] (S60) The determination unit 180 determines whether Impact / Frequency≤threshold P is satisfied. When Impact / Frequency≤threshold P is satisfied, the process proceeds to step S61. When Impact / Frequency>threshold P is satisfied, the process proceeds to step S62. The threshold P is determined in advance by the user.
[0181] (S61) The determination unit 180 sets TT i Update to TT i In other words, the determination unit 180 sets TT i Increase α. α is predetermined by the user. The determination unit 180 updates the TT i The taboo term storage unit 140 stores the taboo term storage unit 140 in association with the index i. The setting unit 190 sets the state variable x in the search unit 170. i Updated TT i . Then, the process proceeds to the next step.
[0182] (S62) The determination unit 180 determines whether Impact / Frequency≥threshold Q is satisfied. When Impact / Frequency≥threshold Q is satisfied, the process proceeds to step S63. When Impact / Frequency<threshold Q is satisfied, the process proceeds to the next step. The threshold Q is determined in advance by the user. Q≥P is satisfied.
[0183] (S63) The determination unit 180 sets TT i Update to TT i In other words, the determination unit 180 determines TT i Decrease β. β is predetermined by the user. The determination unit 180 updates the TT i The taboo term storage unit 140 stores the taboo term storage unit 140 in association with the index i. The setting unit 190 sets the state variable x in the search unit 170. i Updated TT i . Then, the process proceeds to the next step.
[0184] In this way, the determination unit 180 can compare the value obtained by dividing the index value Impact by the index value Frequency with the state variable x iThe threshold is compared and TT is changed according to the comparison. i Therefore, the data processing device 100 can appropriately determine the TT of each state variable. i , and can improve the solving performance.
[0185] Fig.11 It shows TT i A flowchart of another example of an update method.
[0186] Step S70 described below may be performed to replace steps S22 to S25 of the second and third embodiments. In the case where step S70 is applied to the second and third embodiments, i=i_min is satisfied. In addition, the previous step of step S70 is step S21. In addition, the next step of step S70 is TT i_min End of update processing.
[0187] Furthermore, step S70 may be performed in place of step S53 to step S56 of the fourth embodiment. In the case where step S70 is applied to the fourth embodiment, the previous step of step S70 is step S52. Furthermore, the next step of step S70 is step S57.
[0188] (S70) The determination unit 180 sets TT i =R / (Impact / Frequency). Here, R is a constant common to all state variables. The constant R is predetermined by the user. The setting unit 190 sets the state variable x in the search unit 170. i Updated TT i . Then, the process proceeds to the next step.
[0189] In this way, for the state variable x i , the determination unit 180 may determine the value obtained by dividing the constant R by the index value Impact and multiplying the index value Frequency as TTi. Therefore, the data processing device 100 may appropriately determine the TT of each state variable. i , and can improve the solving performance.
[0190] Next, an example of improving solving performance by appropriately setting the taboo term will be described.
[0191] Fig.12 is a diagram showing an example of the relationship between the taboo term and the time to reach the optimal solution.
[0192] Graph 30 indicates the results of an experiment in which an optimal solution has been found for a problem in which a solution is solved by a taboo search method. The horizontal axis of graph 30 indicates the classification of the taboo terms used. The vertical axis of graph 30 indicates the time to reach the optimal solution. The unit of the time reached is seconds.
[0193] Bin 31 is for the case where all state variables have a taboo term of 100.
[0194] Bin 32 is for the case where the taboo term of all state variables is 60.
[0195] Bin 33 is the case where the taboo term is 100 for some state variables and 20 for other state variables.
[0196] Bin 34 is a case where the taboo term is 200 for some state variables and 20 for other state variables.
[0197] As indicated by the graph 30, by appropriately setting the taboo term, the possibility that the optimal solution can be reached at a high speed is increased. In addition, by appropriately setting the taboo term for each state variable, the possibility that the optimal solution can be reached at a high speed is increased compared to the possibility when a uniform taboo term is set for all state variables.
[0198] According to the data processing device 100 of the second embodiment to the fourth embodiment, the taboo term of each state variable is appropriately set based on the index value Frequency and the index value Impact. Therefore, the data processing device 100 can increase the possibility of reaching a better solution in a relatively short time. In this way, the data processing device 100 can improve the solution performance.
[0199] As described above, the data processing device 100 performs the following processing. Note that, as described above, the processing of the determination unit 180 and the setting unit 190 can be performed by the processor 101 implemented by the CPU, in other words, the processing of the determination unit 180 and the setting unit 190 can be performed by a general-purpose processor. Alternatively, the processing of the determination unit 180 and the setting unit 190 can be performed by the processor 108a implemented by a GPU, FPGA, etc., in other words, the processing of the determination unit 180 and the setting unit 190 can be performed by a dedicated processor.
[0200] 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 an amount of change in the value of the evaluation function in a case where 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. Based on the first index value, the determination unit 180 determines the length of a time 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.
[0201] Therefore, the data processing device 100 can improve the solution performance. The energy function is an example of an evaluation function. The length of the time 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, in other words, the length of the update suppression time period, corresponds to the taboo term. The length of the time period during which the update of the value of the first state variable is suppressed can also be referred to as the length of the time period during which the value of the first state variable is fixed. The indicator value Impact in the second to fourth embodiments is an example of a first indicator value.
[0202] The determination unit 180 calculates the first indicator value by dividing the absolute value of the 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 value of the absolute value of the change when the value of any one state variable is updated from the values of the multiple state variables before the current update.
[0203] Therefore, the data processing device 100 can perform relative evaluation of the amount of change in the value of the evaluation function caused by the update of the value of the first state variable according to the first index value, and can appropriately determine the length of the update suppression period based on the first index value.
[0204] For example, in the case where the first index value is less than the first threshold, the determination unit 180 increases the length of the time period during which the update of the value is suppressed. In the case where the first index value is greater than a second threshold value greater than the first threshold value, the determination unit 180 decreases the length of the time period during which the update of the value is suppressed. In the 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, the determination unit 180 does not change the length of the time period during which the update of the value is suppressed.
[0205] Therefore, the data processing device 100 can appropriately determine the length of the update suppression period of the first state variable, and can improve the solving performance.
[0206] Note that the determination unit 180 may set a value obtained by dividing a constant common to all variables by the first index value as the length of the period during which the update of the value of the first state variable is suppressed.
[0207] The first state variable may be a state variable whose value has been updated in the solution search this time. Therefore, the data processing device 100 can finely adjust the length of the update suppression period of each state variable according to the progress of the solution search. Therefore, the data processing device 100 can improve the solution performance.
[0208] Note that the determination unit 180 may count the number of times the value of the first state variable has been updated, and when the number reaches a predetermined number, calculate the first indicator value of the first state variable and determine the length of the time period during which the update of the value of the first indicator value is suppressed.
[0209] In addition, whenever the value of the state variable is updated a predetermined number of times in the solution search, the determination unit 180 can set each of the multiple state variables as a first state variable, and calculate a first indicator value for each of the first state variables and determine the length of the time period during which the update of the value is suppressed.
[0210] Therefore, the data processing apparatus 100 can appropriately determine the length of the time period for each state variable, and can improve solution performance.
[0211] 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 the time 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.
[0212] Therefore, the data processing device 100 can more appropriately determine the length of the time period for each state variable, and can improve the solving performance.The index value Frequency in the second to fourth embodiments is an example of the second index value.
[0213] The first state variable may be a state variable whose value has been updated in the solution search this time. In this case, the determination unit 180 may calculate the second indicator value by dividing the length of the time period set for the first state variable by the first time interval from the last update to the current update of the value of the first state variable. 前 ) corresponds to the first time interval.
[0214] Therefore, the data processing device 100 can easily obtain the second index value as an index representing the most recent update frequency of the first state variable. Therefore, the data processing device 100 can more appropriately determine the length of the update suppression time period of the first state variable based on the first index value and the second index value, and can improve the solution performance.
[0215] Furthermore, in the case where the first state variable is a state variable whose value has been updated in the solution search this time, the determination unit 180 may calculate the second indicator value as follows. After performing the process of determining the length of the time period (update suppression time period) corresponding to the first state variable, the determination unit 180 determines whether the value of the first state variable has been updated a predetermined number of times. Then, in the case where the first state variable has been updated a predetermined number of times, the determination unit 180 calculates the second indicator value by multiplying the length of the time period set for the first state variable by a predetermined number of times and dividing the value obtained by dividing the value by a second time interval from when the value of the first state variable was updated a predetermined number of times to this update. M in the third embodiment corresponds to a predetermined number of times. (Step-by-step in the third embodiment) 前 ) corresponds to the second time interval.
[0216] Therefore, the data processing device 100 can easily obtain the second index value as an index representing the most recent update frequency of the first state variable. Therefore, the data processing device 100 can more appropriately determine the length of the update suppression time period of the first state variable based on the first index value and the second index value, and can improve the solution performance.
[0217] In addition, whenever the value of any one of the state variables described in the solution search is updated a predetermined number of times, the determination unit 180 can select each of the multiple state variables as the first state variable. In this case, the determination unit 180 calculates a first indicator value for each first state variable. The determination unit 180 calculates a second indicator 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 time period corresponding to the first state variable was determined last time by a predetermined number of times. Then, the determination unit 180 determines, for each first state variable, the length of the time period during which the update of the value is suppressed based on the first indicator value and the second indicator 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 the length of the time period corresponding to the first state variable has been determined.
[0218] Therefore, the data processing device 100 can easily obtain the second index value as an index representing the most recent update frequency of the first state variable. Therefore, the data processing device 100 can more appropriately determine the length of the update suppression time period of the first state variable based on the first index value and the second index value, and can improve the solution performance.
[0219] For example, in the case where the first index value is less than the first threshold value and the second index value is greater than the third threshold value, the determination unit 180 increases the length of the time period during which the update of the value is suppressed. In the case where the first index value is greater than the second threshold value greater than the first threshold value and the second index value is less than the fourth threshold value less than the third threshold value, the determination unit 180 decreases the length of the time period. In at least one of the 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 the 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 determination unit 180 does not change the length of the time period.
[0220] Therefore, the data processing device 100 can appropriately determine the length of the update suppression period of the first state variable, and can improve the solving performance.
[0221] In addition, the determination unit 180 may calculate a third indicator value obtained by dividing the first indicator value by the second indicator value. For example, in the case where the third indicator value is equal to or less than the fifth threshold value, the determination unit 180 increases the length of the time period during which the update of the value is suppressed. In the case where the third indicator value is equal to or greater than a sixth threshold value greater than the fifth threshold value, the determination unit 180 decreases the length of the time period. In the case where the third indicator value is greater than the fifth threshold value and less than the sixth threshold value, the determination unit 180 does not change the length of the time period.
[0222] Therefore, the data processing device 100 can appropriately determine the length of the update suppression period of the first state variable, and can improve the solving performance. The Impact / Frequency described above is an example of the third index value.
[0223] Alternatively, the determination unit 180 may set, as the length of the period during which the update of the value of the first state variable is suppressed, a value obtained by multiplying the second index value by a value obtained by dividing a predetermined constant by the first index value.
[0224] Therefore, the data processing device 100 can appropriately determine the length of the update suppression period of the first state variable, and can improve the solving performance.
[0225] In addition, the first state variable may be a state variable whose value has been updated in the solution search this time. In this case, when the length of the time period during which the update of the value of the first state variable is suppressed is determined, the setting unit 190 sets the time period during which the update of the value of the first state variable is suppressed immediately after the current update based on the length of the determined time period.
[0226] Therefore, the data processing device 100 can appropriately control the search unit 170 so that the value of the first state variable is not changed within the time period, and the solving performance can be improved. Note that, as described above, the setting unit 190 can set the time period during which the update of the value of the corresponding state variable is suppressed by specifying the iteration number at the end of the update suppression time period obtained by adding the iteration number corresponding to the length of the time period to the current iteration number.
[0227] Alternatively, the setting unit 190 may set the time period during which the update of the value of the state variable is suppressed immediately after the current update based on the length of the determined time period of the state variable whose value has been updated in the solution search this time. For example, in the case where the state variable whose value has been updated in the solution search this time is the same as the first state variable, the determination unit 180 may calculate the first indicator value for the first state variable, and when setting the first state variable (x i_min ) after the time period (e.g., after setting TL i_min After that) redefine the length of the time period (TT i_min ).
[0228] Therefore, the data processing device 100 can appropriately control the search unit 170 so as not to change the value of the corresponding state variable within the time period, and the solving performance can be improved.
[0229] Note that the information processing of the first embodiment can be realized by causing the processing unit 12 to execute a program. Furthermore, the information processing of the second to fourth embodiments can be realized by causing the processor 101 to execute a program. The program can be recorded in the computer-readable recording medium 113.
[0230] For example, the program can be distributed by distributing the recording medium 113 recording the program. In addition, the program can be stored in another computer and distributed through a network. For example, the computer can store (install) the program recorded in the recording medium 113 or received from another computer in a storage device such as RAM 102 or HDD 103, and read the program from the storage device to execute the program.
Claims
1. A non-transitory computer-readable recording medium storing a program for causing a computer to execute a process, the process comprising: When the 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, calculating a first index value related to an amount of change in the value of the evaluation function when the value of the first state variable among the plurality of state variables is updated from the value of the plurality of state variables before the update; as well as Based on the first indicator value, a length of a time period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated is determined.
2. The non-transitory computer-readable recording medium according to claim 1, wherein In the calculation of the first indicator value, the first indicator value is calculated as follows: the absolute value of the change when the value of the first state variable is updated from the values of the multiple state variables before this update is divided by the maximum value of the absolute value of the change when the value of any one state variable is updated from the values of the multiple state variables before this update.
3. The non-transitory computer-readable recording medium according to claim 1, wherein: In determining the length of the time period, When the first indicator value is less than a first threshold, increasing the length of the time period, In the case where the first indicator value is greater than a second threshold value which is greater than the first threshold value, reducing the length of the time period, and In 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, the length of the time period is not changed.
4. The non-transitory computer-readable recording medium according to claim 1, wherein: The first state variable is a state variable whose value has been updated this time in the solution search.
5. The non-transitory computer-readable recording medium according to claim 1, wherein: Whenever the value of the state variable is updated a predetermined number of times in the solution search, the first index value is calculated for each of the first state variables and the length of the time period is determined by setting each of the plurality of state variables as the first state variable.
6. The non-transitory computer-readable recording medium according to claim 1, wherein: together with the first indicator value, calculating a second indicator value related to the frequency of updating the value of the first state variable, and In the determination of the length of the time period, the length of the time period is determined based on the first index value and the second index value.
7. The non-transitory computer-readable recording medium according to claim 6, wherein: The first state variable is a state variable whose value has been updated in the solution search this time; and In calculating the second indicator value, the second indicator value is calculated by dividing the length of the time period set for the first state variable by a first time interval from a previous update to a current update of the value of the first state variable.
8. The non-transitory computer-readable recording medium according to claim 6, wherein: The first state variable is a state variable whose value has been updated in the solution search this time; and In calculating the second index value, After performing the process of determining the length of the time period corresponding to the first state variable, determining whether the value of the first state variable has been updated a predetermined number of times, and In the case where the first state variable has been updated the predetermined number of times, the second indicator value is calculated by: multiplying the length of the time period set for the first state variable by the predetermined number of times and dividing the value obtained by the second time interval from when the value of the first state variable was updated the predetermined number of times to this update.
9. The non-transitory computer-readable recording medium according to claim 6, wherein: Each of the plurality of state variables is selected as the first state variable whenever the value of any one state variable is updated a predetermined number of times in the solution search, In calculating the first index value, the first index value is calculated for each of the first state variables. In the calculation of the second indicator value, the second indicator value is calculated for each of the first state variables by dividing the number of times the value of the first state variable has been updated since the length of the time period corresponding to the first state variable has been determined last time by the predetermined number of times, and In the determination of the length of the time period, the length of the time period is determined for each of the first state variables based on the first index value and the second index value.
10. The non-transitory computer readable recording medium according to claim 6, wherein: In determining the length of the time period, When the first indicator value is less than a first threshold value and the second indicator value is greater than a third threshold value, increasing the length of the time period; When the first indicator value is greater than a second threshold value greater than the first threshold value and the second indicator value is less than a fourth threshold value less than the third threshold value, reducing the length of the time period, and In the case where the first indicator value is equal to or greater than the first threshold and equal to or less than the second threshold, or in the case where the second indicator value is equal to or greater than the fourth threshold and equal to or less than the third threshold, or in the case where the above situations are combined, the length of the time period is not changed.
11. The non-transitory computer-readable recording medium according to claim 6, wherein: In determining the length of the time period, calculating a third index value obtained by dividing the first index value by the second index value, When the third indicator value is equal to or less than a fifth threshold, increasing the length of the time period, In the case where the third indicator value is equal to or greater than a sixth threshold value which is greater than the fifth threshold value, reducing the length of the time period, and In a case where the third index value is equal to or greater than the fifth threshold value and equal to or less than the sixth threshold value, the length of the time period is not changed.
12. The non-transitory computer-readable recording medium according to claim 6, wherein: In the determination of the length of the time period, a value obtained by multiplying a value obtained by dividing a predetermined constant by the first index value by the second index value is set as the length of the time period.
13. The non-transitory computer-readable recording medium according to claim 1, wherein: The first state variable is a state variable whose value has been updated in the solution search this time, When the length of the time period is determined, a time period during which the update of the value of the first state variable is suppressed immediately after the current update is set based on the determined length of the time period.
14. The non-transitory computer readable recording medium according to claim 1, wherein: A time period during which the updating of the value of the state variable is suppressed immediately after this updating is set based on the determined length of the time period of the state variable whose value has been updated this time in the solution search.
15. A data processing method implemented by a computer, the data processing method comprising: When the 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, calculating a first index value related to an amount of change in the value of the evaluation function when the value of the first state variable among the plurality of state variables is updated from the value of the plurality of state variables before the update; as well as Based on the first indicator value, a length of a time period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated is determined.
16. A data processing device comprising: a storage unit configured to store, for each of a plurality of state variables, a length of a time period during which an update of a value of each state variable is suppressed after the value of each state variable is updated; as well as A processing unit configured to perform a process comprising: When the 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, calculating a first index value associated with an 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; as well as Based on the first indicator value, a length of a time period during which updating of the value of the first state variable is suppressed after the value of the first state variable is updated is determined.
Citation Information
Patent Citations
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