Program, data processing apparatus, and data processing method

The data processing device automatically determines an optimal tabu period by analyzing the slope of state variable changes during tabu search, enhancing solution performance in combinatorial optimization problems.

JP2025150836APending Publication Date: 2025-10-09FUJITSU LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024051965
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-27
Publication Date
2025-10-09

AI Technical Summary

Technical Problem

Existing tabu search methods for combinatorial optimization problems often require manual setting of tabu periods, which is time-consuming and may not achieve optimal solution performance due to the variability of appropriate tabu periods across different problems.

Method used

A data processing device and method that automatically determines an appropriate tabu period by analyzing the slope of change in the number of state variables during the tabu search process, using a first tabu search to store and adjust tabu periods based on the derivative of the slope, and performing a second tabu search with the determined period to improve solution performance.

Benefits of technology

Enables the determination of an optimal tabu period in a short time, leading to improved solution performance and efficiency in solving combinatorial optimization problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025150836000001_ABST
    Figure 2025150836000001_ABST
Patent Text Reader

Abstract

To obtain a proper tabu period in a short period.SOLUTION: A processing unit 12 searches for a solution of a combinatorial optimization problem represented by a combination of values of a plurality of state variables by a first tabu search in which a tabu period for fixing a value of a state variable whose value has changed is changed for each predetermined period. The processing unit 12 stores the number of state variables whose values have changed in the predetermined period in a storage unit 11 for each tabu period. The processing unit 12 determines a first tabu period for fixing the value of the state variable based on a slope of change in the number with respect to change in the tabu period, and searches for the solution by a second tabu search using the determined first tabu period.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

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

[0002] Tabu search is one method for searching for solutions to combinatorial optimization problems (see, for example, Patent Documents 1-3 and Non-Patent Documents 1-3). A solution to a combinatorial optimization problem is expressed as a combination of the values ​​of multiple state variables. In tabu search, of the multiple state variables, a state variable whose value has been changed once is fixed for a certain period of time. This prevents the solution from falling into the same local solution multiple times, enabling the search of a wide solution space. The period during which the state variables are fixed is called the tabu tenure. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] International Publication No. 2006 / 118193 [Patent Document 2] US Patent Application Publication No. 2023 / 0169353 [Patent Document 3] US Patent Application Publication No. 2016 / 0042294 [Non-patent literature]

[0004] [Non-Patent Document 1] Nilgun Fescioglu-Unver, Mieczyslaw M. Kokar, “Self Controlling Tabu Search algorithm for the Quadratic Assignment Problem”, Computers & Industrial Engineering, 2011, vol.60, pp.310-319 [Non-patent document 2] Roberto Battiti, Giampietro Tecchiolli, “The Reactive Tabu Search”, ORSA Journal on Computing, 1994, Vol.6, No.2, pp.126-140 [Non-patent document 3] E. Tailllard, “Robust taboo search for the quadratic assignment problem”, Parallel computing, 1991, Vol.17, pp.443-455 Summary of the Invention [Problem to be solved by the invention]

[0005] The appropriate tabu period varies depending on the problem. For this reason, even if a tabu search is performed using a predetermined common tabu period for different problems, high solution performance may not be achieved for some problems. For this reason, in many cases, workers manually set tabu periods for each problem. However, because the number of values ​​that can be set as tabu periods can be the same as the total number of state variables, determining an appropriate tabu period by trial and error takes time.

[0006] One aspect is to achieve an appropriate taboo period in a short period of time. [Means for solving the problem]

[0007] In one embodiment, a program is provided that causes a computer to execute the following process: searching for a solution to a combinatorial optimization problem represented by a combination of values ​​of multiple state variables using a first taboo search in which a taboo period for fixing the values ​​of state variables whose values ​​have changed is changed every predetermined period; storing the number of state variables whose values ​​have changed during the predetermined period in a memory unit for each taboo period; determining a first taboo period for fixing the values ​​of the state variables based on the slope of change in the number relative to the change in the taboo period; and searching for the solution using a second taboo search using the determined first taboo period.

[0008] Also provided in one embodiment is a data processing device. Also provided in one embodiment is a data processing method. [Effects of the Invention]

[0009] On the one hand, it provides an appropriate taboo period in a short period of time. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 illustrates an example of a data processing device and its processing procedure according to a first embodiment. [Figure 2] FIG. 10 is a diagram showing the relationship between the number of types of state variables whose values ​​have changed in a predetermined period and the value of the evaluation function for the tabu period. [Figure 3] FIG. 10 is a block diagram illustrating an example of hardware of a data processing device according to a second embodiment. [Figure 4] FIG. 2 is a block diagram illustrating an example of functions of a data processing device. [Figure 5] FIG. 10 is a diagram illustrating an example of creating a taboo period stage list. [Figure 6] 10 is a flowchart showing a first example of a processing procedure of the data processing device. [Figure 7] 10 is a flowchart showing a first example of a processing procedure for taboo period adjustment processing. [Figure 8] 10 is a flowchart showing a second example of the processing procedure of taboo period adjustment processing. [Figure 9] 10 is a flowchart showing a second example of the processing procedure of the data processing device. [Figure 10] 10 is a flowchart showing the processing procedure of taboo period adjustment processing in the second example. [Figure 11] 10 is a flowchart showing a third example of the processing procedure of the data processing device. [Figure 12] FIG. 10 is a diagram showing the results of an evaluation experiment using 18 types of combinatorial optimization problems. [Figure 13] FIG. 10 is a diagram illustrating another example of a data processing device. DETAILED DESCRIPTION OF THE INVENTION

[0011] Hereinafter, embodiments of the invention will be described with reference to the drawings. FIG. 1 is a diagram illustrating an example of a data processing device and its processing procedure according to a first embodiment. The data processing device 10 according to the first embodiment searches for a solution to a combinatorial optimization problem by tabu search. The data processing device 10 may be a client device or a server device. The data processing device 10 may also be called a computer.

[0012] The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The storage unit 11 may include a volatile semiconductor memory such as a RAM (Random Access Memory), or may include a non-volatile storage such as an HDD (Hard Disk Drive) or a flash memory. Moreover, the storage unit 11 may include both a volatile semiconductor memory and a non-volatile storage.

[0013] The storage unit 11 stores problem information for a combinatorial optimization problem. A combinatorial optimization problem can be replaced with a problem of minimizing (or maximizing) the value of an evaluation function such as that shown in the following equation (1).

[0014]

number

[0015] Equation (1) is an evaluation function formulated in the QUBO (Quadratic Unconstrained Binary Optimization) format. The state vector x is made up of multiple types of state variables (x1 to x N ) as elements and represent the state.

[0016] The first term on the right side of equation (1) is the sum of the values ​​of two state variables and the weighting coefficients for all combinations of two state variables that can be selected from all state variables, without omissions or duplications. The subscripts i and j are the indexes of the state variables. i is the i-th state variable. x j is the jth state variable. W ij is the weighting coefficient that indicates the strength of the connection between the i-th state variable and the j-th state variable. ij =W ji and W ii = 0. N is the total number of state variables.

[0017] The second term on the right side of equation (1) is the sum of the products of the biases of all state variables and the values ​​of the state variables. i indicates the bias for the i-th state variable. The weighting coefficients and biases have problem-specific values. The problem information for a combinatorial optimization problem stored in the storage unit 11 includes the weighting coefficients and biases included in the evaluation function as described above.

[0018] The storage unit 11 may also store calculation conditions for the tabu search. The calculation conditions include an initial value of the tabu period, a list of multiple tabu periods used when changing the tabu period, etc. The storage unit 11 may also store the search results for a solution by the tabu search.

[0019] The processing unit 12 can be realized by an electronic circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array). However, the processing unit 12 can also be realized by a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a DSP (Digital Signal Processor). The processor executes a program stored in a memory such as a RAM (which may be the storage unit 11). A collection of processors may be called a multiprocessor or simply a "processor." The processing unit 12 may also include a processor and an electronic circuit such as an ASIC or an FPGA.

[0020] The processing unit 12 searches for a solution to the combinatorial optimization problem by tabu search. In tabu search, for example, of the N types of state variables in equation (1), a state variable whose value has been changed once is fixed for a tabu period. This prevents the solution from repeatedly falling into the same local solution, enabling the search of a wide solution space. However, the appropriate tabu period differs depending on the problem.

[0021] As a result of experiments, the inventors of the present invention have come to the following findings that apply to many combinatorial optimization problems. FIG. 2 is a diagram showing the relationship between the number of types of state variables whose values ​​change in a predetermined period of time and the value of the evaluation function, relative to the tabu period. Hereinafter, the number of types of state variables whose values ​​change in a predetermined period of time is referred to as UM (Unique Move). The value of the evaluation function is referred to as energy. In FIG. 2, the horizontal axis represents the tabu period, and the vertical axis represents the UM value, the slope of the change in UM relative to the change in the tabu period, the derivative of the slope, and the energy. The tabu period is represented by the number of steps in the tabu search. In the example of FIG. 2, the total number of state variables is 400.

[0022] In Figure 2, the smaller the energy, the better the solution obtained. As the tabu period increases, the UM value also increases. On the other hand, up to around 40 tabu periods, the energy decreases as the tabu period increases, but once that point is exceeded, the energy increases. As shown in Figure 2, there is a tabu period where the energy is minimum around the tabu period when the slope of the UM change is maximum.

[0023] This shows that it is possible to determine an appropriate tabu period based on the above gradient.In addition, it was found that the range of UM that reaches a good solution is roughly between 30% and 70% of the total number of state variables.

[0024] As mentioned above, there is a causal relationship between the tabu period, UM, and solution performance (quality of the final solution). For example, if the tabu period is 0 or too short, only the values ​​of some state variables that are more likely to change repeatedly, resulting in fewer UMs and a narrower search range. This results in poor solution performance. Conversely, if the tabu period is too long, the UMs increase, but the state variables are less likely to change overall, resulting in repeated occurrences of the same state. This results in poor solution performance. Note that if the tabu period is greater than or equal to the total number of state variables, the UMs will be equal to the total number of state variables, and all state variables will repeatedly change in a fixed order. This results in repeated occurrences of the same state, slowing down search progress, and poor solution performance. If the tabu period is appropriate, the UMs will be appropriate, the values ​​of many state variables will change, and a good balance between global and local search will be achieved. This results in high solution performance.

[0025] The processing unit 12 performs the following process in order to determine the appropriate taboo period (hereinafter referred to as the first taboo period) as described above. Step S1: The processing unit 12 searches for a solution to the combinatorial optimization problem by a first taboo search in which the taboo period is changed every predetermined period. For example, the processing unit 12 lengthens the taboo period every predetermined period. If a list of multiple taboo periods is stored in the storage unit 11, the processing unit 12 changes the taboo period every predetermined period according to the list.

[0026] Step S2: The processing unit 12 stores the UM in the storage unit 11 for each taboo period. Step S3: The processing unit 12 determines a first taboo period from among the taboo periods based on the slope of the change in UM relative to the change in the taboo period. For example, the processing unit 12 calculates the derivative of the slope (the second derivative of the change in UM) to obtain the taboo period when the slope of the change in UM is maximum, which is the taboo period when the energy is minimum as shown in FIG. 2. When the derivative of the slope changes from positive to negative, the previous taboo period (when the derivative of the slope is positive) is the taboo period when the slope of the change in UM is maximum. The processing unit 12 determines such a taboo period as the first taboo period.

[0027] Step S4: The processing unit 12 searches for a solution to the combinatorial optimization problem by a second tabu search using the determined first tabu period. When an operator determines an appropriate tabu period by trial and error, it requires a large number of steps, but with the data processing device 10 described above, an appropriate tabu period can be automatically determined during the solution search process, and therefore an appropriate tabu period can be obtained in a short period of time. Furthermore, with the data processing device 10, a tabu search (second tabu search) is performed using an appropriate first tabu period that is likely to yield a good solution with lower energy. This improves the solution performance of combinatorial optimization problems using tabu search.

[0028] Such a data processing device 10 is expected to be useful as a means for obtaining accurate solutions in a short period of time when solving various problems in modern society that can be converted into combinatorial optimization problems.

[0029] (Second embodiment) FIG. 3 is a block diagram illustrating an example of hardware of a data processing device according to the second embodiment.

[0030] The data processing device 20 is, for example, a computer, and includes a processor 21, a RAM 22, a HDD 23, a GPU 24, an input interface 25, a media reader 26, and a communication interface 27. The above units are connected to a bus.

[0031] The processor 21 is a processor such as a GPU or CPU that includes an arithmetic circuit that executes program instructions. The processor 21 loads at least a portion of the program and data stored in the HDD 23 into the RAM 22 and executes the program. The processor 21 may include multiple processor cores. The data processing device 20 may also include multiple processors. A set of multiple processors (multiprocessor) may also be called a "processor."

[0032] The RAM 22 is a volatile semiconductor memory that temporarily stores programs executed by the processor 21 and data used in calculations by the processor 21. Note that the data processing device 20 may include a type of memory other than the RAM 22, or may include multiple memories.

[0033] The HDD 23 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The programs include, for example, a program that causes the data processing device 20 to execute a process of searching for a solution to a combinatorial optimization problem using a tabu search. Note that the data processing device 20 may also be equipped with other types of storage devices, such as a flash memory or an SSD (Solid State Drive), or may be equipped with multiple non-volatile storage devices.

[0034] The GPU 24 outputs an image to a display 24a connected to the data processing device 20 in accordance with an instruction from the processor 21. The display 24a may be a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display (PDP: Plasma Display Panel), an organic EL (OEL: Organic Electro-Luminescence) display, or the like.

[0035] The input interface 25 receives an input signal from an input device 25a connected to the data processing device 20 and outputs the signal to the processor 21. The input device 25a may be a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, or a button switch. Multiple types of input devices may be connected to the data processing device 20.

[0036] The medium reader 26 is a reading device that reads programs and data recorded on a recording medium 26a. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), or a semiconductor memory can be used as the recording medium 26a. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).

[0037] The medium reader 26 copies programs and data read from the recording medium 26a to another recording medium such as the RAM 22 or the HDD 23. The read programs are executed by the processor 21, for example. The recording medium 26a may be a portable recording medium and may be used to distribute programs and data. The recording medium 26a and the HDD 23 may also be referred to as computer-readable recording media.

[0038] The communication interface 27 is connected to a network 27a and communicates with other information processing devices via the network 27a. The communication interface 27 may be a wired communication interface connected to a communication device such as a switch via a cable, or may be a wireless communication interface connected to a base station via a wireless link.

[0039] Next, the function of the data processing device 20 will be described. FIG. 4 is a block diagram illustrating an example of functions of the data processing device. The data processing device 20 includes a problem information storage unit 31, a tabu search execution unit 32, a solution storage unit 33, a history recording unit , a history storage unit 35, a setting value storage unit , a tabu period adjustment unit 37, and an output unit .

[0040] These realize the same functions as the storage unit 11 and processing unit 12 shown in FIG. The problem information storage unit 31, the solution storage unit 33, the history storage unit 35, and the setting value storage unit 36 ​​are implemented using storage areas secured in the RAM 22 or the HDD 23. The tabu search execution unit 32, the history recording unit 34, the tabu period adjustment unit 37, and the output unit 38 can be implemented, for example, using a program module executed by the processor 21 or a storage area (register or cache memory) within the processor 21.

[0041] Problem information storage unit 31 stores problem information for combinatorial optimization problems. The problem information includes, for example, weighting coefficients and biases included in an evaluation function such as that shown in equation (1). The problem information may be input by a user operating input device 25a and stored in problem information storage unit 31, or may be input via recording medium 26a or network 27a and stored in problem information storage unit 31.

[0042] The tabu search execution unit 32 searches for a solution to the combinatorial optimization problem by tabu search. The solution storage unit 33 stores the solutions obtained by the tabu search. The history recording unit 34 acquires the number of inversions of each state variable during the search by tabu search as history information, and records it in the history storage unit 35 .

[0043] The history storage unit 35 stores history information. The setting value storage unit 36 ​​stores various setting values, calculation conditions, and the like. Examples of the setting values ​​and calculation conditions stored include a threshold value (described below) that calculates the UM and determines the timing for changing the tabu period, and the increment for changing the tabu period. The setting value storage unit 36 ​​may also store a tabu period stage list used when changing the tabu period. These may be input by the user operating the input device 25a and stored in the setting value storage unit 36, or may be input via the recording medium 26a or the network 27a and stored in the setting value storage unit 36.

[0044] The taboo period adjustment unit 37 adjusts the taboo period. The output unit 38 outputs the solution of the tabu search stored in the solution storage unit 33 as the search result. The search result may include the value (energy) of the evaluation function corresponding to the solution. The output unit 38 may, for example, output the search result to be displayed on the display 24a, transmit the search result to another information processing device via the network 27a, or store the search result in an external storage device.

[0045] Figure 5 shows an example of creating a taboo period stage list. Figure 5(A) is an example of a taboo period stage list in which the taboo period interval is constant. Figure 5(B) is an example of a taboo period stage list in which the taboo period interval increases as the taboo period becomes longer.

[0046] If the tabu period interval is too small, it takes a long time to adjust the tabu period to an appropriate value. Conversely, if the tabu period interval is too large, the accuracy of adjusting the tabu period to an appropriate value decreases.

[0047] As shown in Figure 2 above, the slope of the UM change tends to be steeper in areas with short tabu periods. Therefore, when finding the optimal tabu period, the tolerable error is larger when the tabu period is long than when it is short. Therefore, if the tabu period increments are increased as the tabu period becomes longer, as shown in Figure 5(B), it is expected that both improved accuracy and reduced adjustment time can be achieved. In the example of Figure 5(B), the tabu period increments increase by 10%. Note that if the tabu period unit is the number of steps in the tabu search, when it is set as the tabu period for the tabu search, the decimal points in Figure 5(B) are rounded off.

[0048] Next, three examples of the processing procedure of the data processing device 20 will be described. (Processing procedure (first example)) FIG. 6 is a flowchart showing a first example of a processing procedure of the data processing device.

[0049] Step S10: The tabu search execution unit 32 reads the question information stored in the question information storage unit 31. Step S11: Initialization processing is performed. In the initialization processing, an initial solution is set and a tabu period stage list is created. Also, TT representing the tabu period is initialized to the initial value 1. Furthermore, x1 to x N Each state variable (x i ) Taboo Limit (TL i ) and the number of inversions (FC i ) are initialized to 0. Also, the number of steps in the tabu search (step) and the counter value (counter) are initialized to 0. Furthermore, a flag indicating whether or not tabu period adjustment can be performed is initialized to "true" (indicating that adjustment is possible).

[0050] Step S12: The tabu search execution unit 32 performs a search on x1 to x N For each of these, the change in the evaluation function value when the value is reversed (ΔE(x i )) is calculated. Step S13: The tabu search execution unit 32 executes the TL ix that satisfies ≦step i Among them, ΔE(x i ) is the state variable (x i =x i―min ) as the inversion variable whose value is to be inverted.

[0051] Step S14: The tabu search execution unit 32 inverts the value of the inversion variable. That is, if the value of the inversion variable is 0, the tabu search execution unit 32 inverts the value to 1, and if the value of the inversion variable is 1, the tabu search execution unit 32 inverts the value to 0. At this time, the tabu search execution unit 32 also updates the energy, and if an energy lower than the minimum energy obtained so far is obtained, the tabu search execution unit 32 updates the minimum energy with that energy. In addition, the tabu search execution unit 32 updates the minimum energy with the value of x1 to x2 when the minimum energy is updated. N The state represented by the combination of the values ​​of is stored as a solution candidate together with its energy.

[0052] Step S15: The tabu search execution unit 32 executes x i―min Taboo Limit (TL i-min ) is step+TT, and x i―min The number of inversions (FC i-min ) +1.

[0053] Step S16: The taboo period adjustment unit 37 sets counter=counter+1 and determines whether counter≧TH1. TH1 is a threshold value that calculates UM and determines the timing for changing the taboo period. TH1 is stored in the set value storage unit 36, for example.

[0054] If the taboo period adjustment unit 37 determines that counter≧TH1, the process of step S17 is performed, and if it determines that counter≧TH1 is not true, the process of step S20 is performed.

[0055] Step S17: The taboo period adjustment unit 37 determines whether the flag is “true.” If the taboo period adjustment unit 37 determines that the flag is “true,” it performs the process of step S18, and if it determines that the flag is not “true,” it performs the process of step S20.

[0056] Step S18: The taboo period adjustment unit 37 performs taboo period adjustment processing. The procedure for the taboo period adjustment processing will be described later. Step S19: The taboo period adjustment unit 37 calculates the number of times counter and x1 to x N All about FC i Set it back to 0.

[0057] Step S20: The tabu search execution unit 32 increments step by +1. Step S21: The tabu search execution unit 32 determines whether or not a search termination condition is satisfied. For example, if step exceeds a preset value, the tabu search execution unit 32 determines that the search termination condition is satisfied.

[0058] If it is determined that the search end condition is satisfied, the process proceeds to step S22. If it is determined that the search end condition is not satisfied, the process repeats from step S12.

[0059] Step S22: The output unit 38 outputs, for example, the solution of the tabu search stored in the solution storage unit 33 as the search result. Among the solution candidates obtained by the tabu search, the solution candidate with the smallest energy is stored as the solution together with the energy in the solution storage unit 33. The output unit 38 may also output the energy of the solution as the search result.

[0060] Two examples of the taboo period adjustment process performed by the data processing device 20 will be described below. FIG. 7 is a flowchart illustrating a first example of a processing procedure of the taboo period adjustment processing.

[0061] Step S30: The taboo period adjustment unit 37 increases TT, which represents the taboo period used in the taboo search, by one stage based on the taboo period stage list shown in FIG. 5, for example.

[0062] Step S31: The taboo period adjustment unit 37 i UM is calculated by aggregating the FCs of i=1 to N. i FC with a value of 1 or more i UM can be obtained by finding the number of

[0063] Step S32: The tabu period adjustment unit 37 calculates the second derivative of UM. The second derivative of UM represents the derivative of the gradient of the change in UM shown in FIG. Step S33: The taboo period adjustment unit 37 determines whether or not this is the first taboo period adjustment process. If the taboo period adjustment unit 37 determines that this is the first taboo period adjustment process, it ends the first taboo period adjustment process. If the taboo period adjustment unit 37 determines that this is not the first taboo period adjustment process, it performs the process of step S34.

[0064] Step S34: The tabu period adjustment unit 37 determines whether the second-order differential of UM has reversed from positive to negative. If the tabu period adjustment unit 37 determines that the second-order differential of UM has reversed from positive to negative, it performs the process of step S35. If the tabu period adjustment unit 37 determines that the second-order differential of UM has not reversed from positive to negative, it ends the adjustment process for one tabu period.

[0065] Step S35: The taboo period adjustment unit 37 sets the TT used in the taboo search during the previous predetermined period (TH1) as the optimal TT (corresponding to the first taboo period in the first embodiment).

[0066] Step S36: The taboo period adjustment unit 37 sets the flag to "false," which indicates that adjustment of the taboo period is not to be performed. This completes the taboo period adjustment, and no further adjustment of the taboo period is performed thereafter.

[0067] As shown in Figure 2, when the gradient of the change in UM is maximum, there is a taboo period with minimum energy around the taboo period. The data processing device 20 calculates the second derivative of UM (the derivative of the gradient of the change in UM), and when the second derivative changes from positive to negative, it determines the TT used in the taboo search in the previous predetermined period as the optimal TT. The taboo search execution unit 32 performs taboo search using the optimal TT until the search termination condition is satisfied.

[0068] According to the above process, the optimal TT can be automatically determined during the solution search process, resulting in an appropriate tabu period in a short period of time. Furthermore, the tabu search can be performed using the optimal TT, which is more likely to yield a good solution with lower energy. This improves the solution performance of combinatorial optimization problems using tabu search.

[0069] FIG. 8 is a flowchart illustrating a second example of the processing procedure of the taboo period adjustment processing. The processing in steps S40 to S43 is the same as the processing in steps S30 to S33 shown in FIG.

[0070] Step S44: The tabu period adjustment unit 37 determines whether the second-order differential of UM has reversed from positive to negative and UM is 30% to 70% of the total number of state variables (N). If the tabu period adjustment unit 37 determines that the second-order differential of UM has reversed from positive to negative and UM is 30% to 70% of N, it performs the process of step S46. If the tabu period adjustment unit 37 determines that the second-order differential of UM has not reversed from positive to negative or that UM is not 30% to 70% of N, it performs the process of step S45.

[0071] Step S45: The taboo period adjustment unit 37 determines whether UM exceeds 70% of N. If the taboo period adjustment unit 37 determines that UM exceeds 70% of N, it performs the process of step S46. If the taboo period adjustment unit 37 determines that UM does not exceed 70% of N, it ends the adjustment process for one taboo period.

[0072] The processing in steps S46 and S47 is the same as the processing in steps S35 and S36 shown in FIG. As shown in Figure 2, the range of UM that will result in a good solution is generally between 30% and 70% of N. Furthermore, as the tabu period is lengthened, UM increases. For this reason, when UM exceeds 70% of N, it is unlikely that a tabu period that will result in a good solution will be obtained even if the tabu period is further lengthened. For this reason, as shown in Figure 8, when UM exceeds 70% of N, the previous TT is set as the optimal TT, and the flag is set to "false" to complete the TT adjustment. This prevents unnecessary adjustment processing and shortens the adjustment time.

[0073] (Processing procedure (second example)) In a second example of the processing procedure of the data processing device 20, instead of successively lengthening the tabu period, the range of the tabu period is divided into two to search for the tabu period that maximizes the gradient of the change in UM.

[0074] FIG. 9 is a flowchart showing a second example of the processing procedure of the data processing device. Step S50 is the same as step S10 shown in FIG. Step S51: In the initialization process in the processing procedure of the second example, unlike the first example, the tabu period stage list is not generated, and the following process is performed.

[0075] TT and TT represent taboo periods high ToTT init is set. TT high represents the upper limit of the range of tabu periods for which the optimal TT is searched. init is a value between 1 and N. For example, a value of 50% of N is used. low is set to 0. TT low represents the lower limit of the range of tabu periods for which the optimal TT is searched. low is set to 0. low The taboo period (TT) is T low This is the UM at that time.

[0076] The other initialization processes are the same as in the first example. That is, the initial solution is set. Also, x1 to x N Each state variable (x i ) Taboo Limit (TL i ), number of inversions (FC i ), the number of steps in the tabu search (step), and the counter value (counter) are all initialized to 0. Furthermore, a flag indicating whether or not the tabu period adjustment can be performed is initialized to “true” (indicating that it can be performed).

[0077] The processes of steps S52 to S57 and S59 to S62 are the same as the processes of steps S12 to S17 and S19 to S22 in the first example shown in Fig. 6. The taboo period adjustment process of step S58 differs from the taboo period adjustment process in the first example in that the following process is performed.

[0078] FIG. 10 is a flowchart showing the processing procedure of the taboo period adjustment processing in the second example. Step S70: The taboo period adjustment unit 37 determines whether or not this is the first taboo period adjustment process. If it is determined that this is the first taboo period adjustment process, the taboo period adjustment unit 37 performs the process of step S71, and if it is determined that this is not the first taboo period adjustment process, the taboo period adjustment unit 37 performs the process of step S72.

[0079] Step S71: The taboo period adjustment unit 37 i By aggregating these, UM high Calculate UM high The taboo period (TT) is T high This is the UM at the time of

[0057] Then, the process of step S76 is carried out.

[0080] Step S72: The taboo period adjustment unit 37 i By aggregating these, UM middle Calculate UM middle TT is T middle This is the UM when T middle TT low and T.T.high is the midpoint of the range of taboo periods represented by (TT high +TT low ) / 2.

[0081] Step S73: The taboo period adjustment unit 37 low From TT middle The slope of the change in UM in the first range up to UM middle -UM low Calculated by TT middle From TT high The slope of the change in UM in the second range up to UM high -UM middle Then, the taboo period adjustment unit 37 calculates the UM high -UM middle >UM middle -UM low Determine whether UM is true or false. high -UM middle >UM middle -UM low When , it indicates that the gradient of the change in UM in the second range is greater than the gradient of the change in UM in the first range. high -UM middle >UM middle -UM low If it is determined that UM high -UM middle >UM middle -UM low If it is determined that this is not the case, the process of step S75 is carried out.

[0082] Step S74: The taboo period adjustment unit 37 low TT middle and UM low UM middle Then, the process of step S76 is carried out. Step S75: The taboo period adjustment unit 37 high TT middle and UM high UM middle Then, the process of step S76 is carried out.

[0083] Step S76: The tabu period adjustment unit 37 adjusts the TT and TT middle As, (TT high +TT low ) / 2. Step S77: The taboo period adjustment unit 37 middle -TT low The taboo period adjustment unit 37 determines whether the absolute value of TT is less than the threshold value. middle -TT low If it is determined that the absolute value of TT is smaller than the threshold, the process of step S78 is performed. middle -TT low If it is determined that the absolute value of is not less than the threshold, the tabu period adjustment process ends. An appropriate value is used as the threshold depending on the calculation time, the required accuracy, etc. The smaller the threshold, the more accurately the TT at which the slope of UM is maximized can be found.

[0084] Step S78: The taboo period adjustment unit 37 middle is set as the optimal TT. Step S79: The taboo period adjustment unit 37 sets the flag to "false," which indicates that adjustment of the taboo period is not to be performed. This completes the taboo period adjustment, and no further adjustment of the taboo period is performed.

[0085] In the above tabu period adjustment process, the range of TT to search for the optimal TT is low From TT middle The first range and TT middle From TT high The first range is divided into two, and the second range is divided into two. Then, the first range or the second range with the larger gradient of the UM change is used as the new TT range for searching for the optimal TT, and this process is repeated. This narrows the search range for the optimal TT with the largest gradient of the UM change. This process makes it possible to prevent unnecessary adjustment processes from being performed, and to obtain an accurate optimal TT in a short period of time.

[0086] (Processing procedure (third example)) In the first and second examples above, once the optimal TT is determined, the taboo period is not adjusted. In the third example of the processing procedure of the data processing device 20 shown below, even after the optimal TT has been determined, the taboo period can be readjusted under certain conditions.

[0087] FIG. 11 is a flowchart showing a third example of the processing procedure of the data processing device. Steps S80 to S86 are the same as steps S10 to S16 shown in FIG.

[0088] Step S87: The taboo period adjustment unit 37 determines whether the flag is "true." If the taboo period adjustment unit 37 determines that the flag is "true," it performs the process of step S88. If the taboo period adjustment unit 37 determines that the flag is not "true," it performs the process of step S90, which will be described later, unlike the first and second examples.

[0089] The processing in steps S88 and S89 is the same as the processing in steps S18 and S19 shown in FIG. Step S90: The tabu period adjustment unit 37 determines whether UM is outside the range of 30% to 70% of the total number of state variables (N), or whether it deviates by a threshold percentage from the UM when the previous optimal TT was determined. An appropriate value is used as the threshold depending on the calculation time, the required accuracy, etc. If the threshold is too small, the optimal TT may be redetermined too frequently, and if the threshold is too large, the optimal TT may be redetermined too infrequently. Although not particularly limited, a value of about 10 is used as the threshold, for example.

[0090] If the tabu period adjustment unit 37 determines that UM is outside the range of 30% to 70% of N or is outside the threshold % from the UM when the previous optimal TT was determined, it performs the process of step S91. If it determines that UM is neither outside the range of 30% to 70% of N nor outside the threshold % from the UM when the previous optimal TT was determined, it performs the process of step S89.

[0091] Step S91: The taboo period adjustment unit 37 sets the flag to "true", which indicates that adjustment of the taboo period is to be performed. This restarts the taboo period adjustment. That is, a taboo search with a different TT is performed every predetermined period (TH1).

[0092] Step S92: The taboo period adjustment unit 37 lowers the TT from the current stage by R stages to redetermine the optimal TT. The value of R is set in advance. Although not particularly limited, a value of about 7 is set as the value of R. Then, the process of step S89 is performed.

[0093] The processing in steps S93 to S95 is the same as the processing in steps S20 to S22 shown in FIG. As described above, in the third example, if it is determined that UM is outside the range of 30% to 70% of N, or that it deviates by a threshold percentage from the UM when the previous optimal TT was determined, the tabu search (first tabu search) with a different TT is restarted at predetermined intervals. The optimal TT is then redetermined. Since the optimal tabu period may change depending on the search status of the tabu search, enabling the redetermining of the optimal TT as described above makes it possible to adjust the tabu period appropriately according to the search status. Furthermore, when the optimal TT is redetermined, the tabu period is not returned to the initial value (TT = 1) but is returned several steps, thereby shortening the time required to determine a new optimal TT.

[0094] In the above third example, the case where the taboo period is successively lengthened has been described, but the third example can also be applied to the second example. In that case, in the process of step S92, instead of lowering the TT by R steps, for example, the range for searching for the optimal TT can be returned to the range several steps back.

[0095] (Example of evaluation experiment) FIG. 12 shows the results of an evaluation experiment using 18 types of combinatorial optimization problems. Figure 12 shows the improvement of a tabu search performed while adjusting the TT using the processing procedure of the first example using UM, compared to a tabu search performed with a fixed TT = 20. The improvement is expressed as the difference between the minimum energy values ​​obtained during the search by both tabu searches. If the minimum energy obtained by the method of adjusting the TT using UM is smaller than the minimum energy obtained by the tabu search performed with a fixed TT = 20, the improvement is a positive value. For comparison, Figure 12 also shows the improvement when using a method (grid search) that searches for the optimal TT by repeatedly performing the tabu search while manually setting different tabu periods in sequence.

[0096] As shown in Figure 12, the method of adjusting TT using UM obtained a minimum energy that was smaller in most problems than the tabu search executed with TT fixed at 20. In other words, it obtained a better solution than the tabu search executed with TT fixed at 20. Furthermore, the method of adjusting TT using UM obtained an improvement close to that of using grid search in many problems.

[0097] Grid search is a method of determining an appropriate tabu period through trial and error, which requires a lot of man-hours, but the method of adjusting the TT using UM can automatically determine an appropriate TT during the solution search process, thereby reducing the man-hours required to determine the TT.

[0098] As mentioned above, the above processing contents can be realized by causing the data processing device 20 to execute a program. The program can be recorded on a computer-readable recording medium (e.g., recording medium 26a). Examples of recording media that can be used include magnetic disks, optical disks, magneto-optical disks, and semiconductor memories. Magnetic disks include FDs and HDDs. Optical disks include CDs, CD-R (Recordable) / RW (Rewritable), DVDs, and DVD-R / RWs. The program may be recorded on a portable recording medium and distributed. In this case, the program may be copied from the portable recording medium to another recording medium (e.g., HDD 23) and executed.

[0099] Fig. 13 is a diagram showing another example of a data processing device, in which the same elements as those shown in Fig. 3 are denoted by the same reference numerals. The data processing device 50 has an accelerator card 51 connected to the bus.

[0100] The accelerator card 51 is a hardware accelerator that searches for a solution to a combinatorial optimization problem and includes an FPGA 51a and a DRAM 51b.

[0101] In the data processing device 50, the FPGA 51a and the DRAM 51b perform processing of, for example, the processing unit 12 and the storage unit 11 shown in Fig. 1, or each unit shown in Fig. 4. In this case, the processing unit 12 and the storage unit 11 shown in Fig. 1, or each unit shown in Fig. 4, are realized by various circuits constructed in the FPGA 51a, memories in the FPGA 51a, or the DRAM 51b.

[0102] There may be multiple accelerator cards 51. While one aspect of the program, data processing device, and data processing method of the present invention has been described above based on the embodiment, these are merely examples and the present invention is not limited to the above description. [Explanation of symbols]

[0103] 10 Data Processing Device 11 Storage section 12 Processing section

Claims

1. searching for a solution to a combinatorial optimization problem expressed by a combination of values ​​of a plurality of state variables using a first tabu search in which a tabu period for fixing the values ​​of state variables whose values ​​have changed is changed every predetermined period; storing the number of the state variables whose values ​​have changed during the predetermined period in a storage unit for each taboo period; determining a first tabu period for fixing the value of the state variable based on a slope of the change in the number relative to the change in the tabu period; searching for the solution by a second tabu search using the determined first tabu period; A program that causes a computer to perform a process.

2. The program according to claim 1 , wherein the first taboo period is the taboo period when the slope is at its maximum.

3. lengthening the taboo period for each of the predetermined periods, and calculating a derivative of the slope for each of the predetermined periods; When the value of the derivative of the slope changes from positive to negative, the taboo period used in the previous predetermined period is determined to be the first taboo period. The program according to claim 1 , which causes the computer to execute a process.

4. when the number of the state variables whose values ​​have changed during the predetermined period exceeds 70% of the total number of the plurality of state variables, determining the taboo period used during the previous predetermined period as the first taboo period; The program according to claim 3, which causes the computer to execute processing.

5. Dividing a range of the taboo period in which the first taboo period is searched into two ranges, a first range and a second range; the first taboo period is searched for by repeating a process of dividing the first range or the second range, whichever has the larger slope, into two as a new range. The program according to claim 1 , which causes the computer to execute a process.

6. the gradient of the first range is calculated by a difference between a first number of the state variables whose values ​​have changed during the predetermined period by the first tabu search using a lower limit value of the range and a second number of the state variables whose values ​​have changed during the predetermined period by the first tabu search using an intermediate value of the range; the gradient of the second range is calculated by a difference between the second number and a third number of the state variables whose values ​​have changed during the predetermined period by the first tabu search using an upper limit value of the range; The program according to claim 5.

7. restarting the search by the first taboo search and redetermining the first taboo period when it is determined that the number of the state variables whose values ​​have changed during the predetermined period after the determination of the first taboo period is outside the range of 30% to 70% of the total number of the plurality of state variables or is outside a threshold percentage of the value when the first taboo period was determined; The program according to claim 1 , which causes the computer to execute a process.

8. The program according to claim 1 , wherein the step size for changing the tabu period increases as the tabu period increases.

9. A memory unit; a processing unit that searches for a solution to a combinatorial optimization problem expressed by a combination of values ​​of a plurality of state variables by a first tabu search in which a tabu period for fixing values ​​of state variables whose values ​​have changed is changed every predetermined period, stores the number of state variables whose values ​​have changed during the predetermined period in the storage unit for each tabu period, determines a first tabu period for fixing values ​​of the state variables based on a slope of change in the number relative to the change in the tabu period, and searches for the solution by a second tabu search using the determined first tabu period; A data processing device having:

10. The computer searching for a solution to a combinatorial optimization problem expressed by a combination of values ​​of a plurality of state variables using a first tabu search in which a tabu period for fixing the values ​​of state variables whose values ​​have changed is changed every predetermined period; storing the number of the state variables whose values ​​have changed during the predetermined period in a storage unit for each taboo period; determining a first tabu period for fixing the value of the state variable based on a slope of the change in the number relative to the change in the tabu period; searching for the solution by a second tabu search using the determined first tabu period; Data processing methods.

Citation Information

Patent Citations

  • Quantum processor based systems and methods that minimize an objective function

    US20160042294A1

  • Information processing apparatus, information processing method, and computer-readable recording medium storing program

    US20230169353A1

  • Agent and distributed restriction supplementing method

    WO2006118193A1