Data processing apparatus, data processing method, and program

The data processing device enhances solution performance by dynamically adjusting constraint coefficients based on constraint satisfaction, balancing constraint adherence and solution quality through a storage and processing unit that replaces solutions using a second evaluation function with different constraint weights.

JP2026028311APending Publication Date: 2026-02-20FUJITSU LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024130609
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-07
Publication Date
2026-02-20

Smart Images

  • Figure 2026028311000001_ABST
    Figure 2026028311000001_ABST
Patent Text Reader

Abstract

To improve solution performance.SOLUTION: The storage unit 11 stores a plurality of first solutions each of which is a set of values of a plurality of state variables. The processing unit 12 acquires, from the search unit 20 that searches for a solution based on the first evaluation function, a second solution obtained as a result of a search using an initial solution generated from a plurality of first solutions. The first evaluation function includes a constraint term indicating a violation amount of the constraint with respect to the plurality of state variables and a first constraint coefficient indicating a weight of the constraint term. The processing unit 12 replaces any of the plurality of first solutions stored in the storage unit 11 with the second solution according to a comparison between the first evaluation value of each of the plurality of first solutions and the second evaluation value of the second solution indicated by the second evaluation function in which the first limiting coefficient included in the first evaluation function is replaced with the second limiting coefficient. The processing unit 12 specifies a first constraint coefficient to be used for the next search by the search unit 20 based on a determination as to whether or not the constraint is satisfied in at least one of a plurality of solutions including the second solution obtained by a plurality of searches.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 data processing device, a data processing method, and a program. [Background technology]

[0002] Information processing devices are sometimes used to solve combinatorial optimization problems. The information processing device searches for a combination of state variable values ​​included in an evaluation function that minimizes the value of the evaluation function, for example. In this case, the combination of state variable values ​​that minimizes the value of the evaluation function corresponds to the ground state or optimal solution represented by the set of state variables. Search methods that can obtain an approximate solution to a combinatorial optimization problem in a practical amount of time include steepest descent (greedy search), tabu search, and simulated annealing (SA).

[0003] Here, for example, a combinatorial optimization device has been proposed that solves combinatorial optimization problems by minimizing or maximizing the value of the objective function of the problem using an interconnected neural network. This combinatorial optimization device expresses the objective function as the sum of the product of a constraint function that indicates the degree of violation of the constraint conditions and a penalty parameter, and an evaluation function that indicates the quality of the solution.

[0004] There has also been proposed a system that calculates an objective function based on values ​​including energy market values, electricity prices, and power production, storage, and consumption, and identifies an optimization solution for charging or discharging an energy storage device based on the objective function. In this system, the objective function is optimized using feasibility constraints and then optimized again using technical constraints and additional constraints.

[0005] Also proposed is a system that determines an objective function and corresponding constraints for a residential microgrid for a future period based on power load data and solar power generation output data. The optimization objective of the objective function is to minimize the total cost of the residential microgrid. The system obtains a load dispatch plan for the residential microgrid for a future period by solving the objective function using a particle swarm optimization algorithm.

[0006] There has also been a proposal for a system that determines the optimal settings for resource actuators such as fans that change the supply of resources such as cooling airflow to entities such as blade servers. This system formulates a constrained optimization problem with an objective function that calculates the power consumption level and multiple constraints, and solves the constrained optimization problem using Lagrange multipliers, dynamic programming, interior point methods, etc. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] Japanese Patent Application Publication No. 6-175995 [Patent Document 2] Japanese Patent Publication No. 2022-130284 [Patent Document 3] US Patent Application Publication No. 2020 / 0161867 [Patent Document 4] US Patent Application Publication No. 2010 / 0235011 Summary of the Invention [Problem to be solved by the invention]

[0008] The evaluation function may include a constraint term that indicates the amount of violation of a constraint on a state variable. The constraint term adds the amount of violation of the constraint depending on the value of the state variable to the evaluation function. Here, constraint coefficients, which are coefficients that weight the amount of violation of constraints, are sometimes used as constraint terms. In this case, it is not easy to determine the appropriate constraint coefficients. For example, if the constraint coefficients are too large, the search range for solutions will be narrowed, making it difficult to arrive at a better solution. On the other hand, if the constraint coefficients are too small, it will be difficult to obtain a solution that satisfies the constraints.

[0009] In one aspect, the present invention aims to improve solution performance. [Means for solving the problem]

[0010] In one aspect, a data processing device is provided. The data processing device includes a storage unit and a processing unit. The storage unit stores a plurality of first solutions, each of which is a set of values ​​of a plurality of state variables. The processing unit acquires a second solution obtained as a result of a search using an initial solution generated based on the plurality of first solutions from a search unit that searches for a solution based on a first evaluation function that indicates an evaluation value corresponding to the values ​​of the plurality of state variables and that includes a constraint term indicating the amount of violation of a constraint on the plurality of state variables and a first constraint coefficient indicating a weight of the constraint term. The processing unit replaces one of the plurality of first solutions stored in the storage unit with the second solution in response to a comparison between a first evaluation value of each of the plurality of first solutions and a second evaluation value of the second solution, the second evaluation function being a function obtained by replacing the first constraint coefficient included in the first evaluation function with a second constraint coefficient different from the first constraint coefficient. The processing unit determines whether the constraint is satisfied in at least one solution among the multiple solutions, including the second solution, obtained by multiple searches, and identifies a first constraint coefficient to be used by the search unit in the next search based on the result of the determination of whether the constraint is satisfied.

[0011] Also, in one aspect, a data processing method executed by a computer is provided. Also, in one aspect, a program executed by a computer is provided. [Effects of the Invention]

[0012] In one aspect, the solution performance can be improved. [Brief explanation of the drawings]

[0013] [Figure 1] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. [Figure 2] FIG. 10 illustrates an example of hardware of a data processing device according to a second embodiment. [Figure 3] FIG. 2 is a diagram illustrating an example of functions of a data processing device. [Figure 4] FIG. 10 is a diagram illustrating an example of data stored in a solution pool. [Figure 5] 10 is a flowchart illustrating an example of a search process of the data processing device. [Figure 6] FIG. 10 is a diagram illustrating a first operation example of the data processing device. [Figure 7] FIG. 10 is a diagram illustrating a second operation example of the data processing device. [Figure 8] FIG. 10 is a diagram illustrating a third operation example of the data processing device. [Figure 9] FIG. [Figure 10] FIG. 10 is a diagram showing a continuation of the comparative example. DETAILED DESCRIPTION OF THE INVENTION

[0014] The present embodiment will be described below with reference to the drawings. [First embodiment] A first embodiment will be described.

[0015] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. The data processing device 10 controls a search unit 20 that searches for a solution to a combinatorial optimization problem. The search unit 20 may or may not be included in the data processing device 10. The data processing device 10 has a storage unit 11 and a processing unit 12.

[0016] The storage unit 11 may be a volatile semiconductor memory such as a dynamic random access memory (DRAM), or a non-volatile storage such as a hard disk drive (HDD) or flash memory. The storage unit 11 may include an electronic circuit such as a register. The processing unit 12 and the search unit 20 are processors such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). However, the processing unit 12 and the search unit 20 may also include electronic circuits for specific applications such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processor executes a program stored in a memory such as a DRAM (which may be the storage unit 11). A set of multiple processors is sometimes called a "multiprocessor" or simply a "processor."

[0017] A combinatorial optimization problem is formulated by an objective function that indicates the energy of the Ising model, and can be replaced by, for example, a problem of minimizing the value of the objective function. The objective function includes multiple state variables. The state variables are binary variables that take on values ​​of 0 or 1. The state variables may also be called bits. The solution to the combinatorial optimization problem is represented by the values ​​of the multiple state variables.

[0018] For example, the solution that minimizes the value of the objective function represents the ground state of the Ising model and corresponds to the optimal solution of the combinatorial optimization problem. In this case, the combinatorial optimization problem is expressed by Equation (1) using the Ising-type objective function C(x).

[0019]

number

[0020] The state vector x has multiple state variables as elements and represents the state of the Ising model. For the problem of maximizing energy, simply reverse the sign of C(x). The problem represented by C(x) in equation (1) is called an unconstrained quadratic binary problem (QUBO: Quadratic Unconstrained Binary Optimization). C(x) may also be called a cost function.

[0021] The first term on the right side of equation (1) is the sum of the values ​​of the two state variables and the weighting coefficients for all combinations of two state variables that can be selected from all state variables, without omissions or duplications. The subscripts i and j are the 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. The total number of state variables is n, where n is an integer equal to or greater than 2.

[0022] 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 denotes the bias for the i-th state variable, and c is a constant.

[0023] Here, constraints may be imposed on multiple state variables, such as in a constrained quadratic programming problem. For example, a first-order inequality constraint is expressed as equation (2).

[0024]

number

[0025] In equation (2), k is the index of the inequality constraints, k = 1, 2, ..., m. m is the number of inequality constraints, and is an integer greater than or equal to 1. A ki ,B kis a constant given according to the content of the constraint. In this example, a quadratic programming problem is taken as an example, but problems of other types may also be used.

[0026] When the constraint of equation (2) is imposed, the combinatorial optimization problem is expressed as a problem of minimizing the value of the evaluation function E(x) of equation (3), that is, the evaluation value.

[0027]

number

[0028] Here, L(x) is called the penalty function and is expressed by equation (4).

[0029]

number

[0030] The max operator indicates an operation to take the maximum value among the values ​​in the parentheses. k is a hyperparameter. k is the constraint coefficient that indicates the weight of the inequality constraint k. k For example, L is a real number greater than 0. k =max(0,Σ i A ki x i -B k ) L k is the constraint term corresponding to the inequality constraint k, and indicates the amount of violation of the inequality constraint k. k is a positive value when the inequality constraint k is violated, and is 0 when the inequality constraint k is satisfied.

[0031] The search unit 20 uses a heuristic method to gradually change the variable x based on E(x) to transition the state and search for a better solution. The search unit 20 uses methods such as steepest descent, tabu search, and SA to search for a solution. In addition, in a problem of minimizing an evaluation value, the smaller the evaluation value, the better the solution, and the larger the evaluation value, the worse the solution.

[0032] Here, the constraint coefficient λ k The value of affects the solution performance. For example, λ k If is too large, the effect of L(x) becomes strong in the search for a solution based on E(x), and the solution after the search is likely to satisfy the constraints with L(x) = 0, but C(x) is not small enough. k If is too small, the effect of L(x) is weakened in the search for a solution based on E(x), and C(x) becomes small, but L(x)>0, which is likely to result in a constraint violation. Therefore, the processing unit 12 controls the solution search using the search unit 20 as follows.

[0033] The storage unit 11 stores a plurality of first solutions, each of which is a set of values ​​of a plurality of state variables. The number of first solutions held in the storage unit 11 is determined in advance. In the example of FIG. 1, the number of first solutions held in the storage unit 11 is four. As will be described later, the processing unit 12 may replace a first solution held in the storage unit 11 with a new solution acquired from the search unit 20. The area in the storage unit 11 that holds the plurality of first solutions may also be referred to as a solution pool.

[0034] The multiple first solutions stored in the memory unit 11 are used to generate an initial solution for the search in the search unit 20. The initial solution is the state at the start of the search, and may be referred to as a search start state. The processing unit 12 generates an initial solution based on the multiple first solutions stored in the memory unit 11, inputs the generated initial solution to the search unit 20, and causes the search unit 20 to start a search starting from the initial solution. For example, a different initial solution is provided to the search unit 20 each time the search unit 20 starts a search.

[0035] The processing unit 12 can use a predetermined method such as Path Relinking to generate the initial solution. The following document 1 is useful for Path Relinking. Reference 1: Y. Wang, et al., "Path relinking for unconstrained binary quadratic programming", European Journal of Operational Research, volume 223, issue 3, December 16, 2012, pp.595-604 The search unit 20 searches for a solution based on a first evaluation function corresponding to the problem to be solved. The first evaluation function is expressed by equation (3). The first evaluation function has a constraint term and a first constraint coefficient indicating the weight of the constraint term. The first constraint coefficient used as λ in equation (3) is set to λ1. Note that the first evaluation function may include multiple constraint terms, as described above. When the first evaluation function includes multiple constraint terms {L k}, the first evaluation function is a function of multiple constraints {L k}, a plurality of first constraint coefficients {λ1 k The value of each of the plurality of first constraint coefficients is determined individually.

[0036] The search unit 20 performs a search starting from the input initial solution and outputs a second solution obtained as a result of the search. The processing unit 12 acquires the second solution output by the search unit 20. The processing unit 12 evaluates the second solution using a second evaluation function. The second evaluation function is obtained by replacing the first constraint coefficients in the first evaluation function with second constraint coefficients different from the first constraint coefficients. In other words, the first evaluation function and the second evaluation function have the same form of C(x) and the constraint terms, but the constraint coefficients multiplied by the constraint terms are different. The second constraint coefficient used as λ in equation (3) is defined as λ2. The second constraint coefficient λ2 is set to a value (λ2>>C(x)) that is sufficiently larger than the possible values ​​of C(x). In addition, when the second evaluation function uses a plurality of constraint terms {L k}, the second evaluation function is a function of multiple constraints {L k}, the second constraint coefficients {λ2 k}. The value of each of the plurality of second constraint coefficients is determined individually. The value of the second constraint coefficient is fixed.

[0037] In evaluating the second solution, the processing unit 12 calculates a first evaluation value for each of the multiple first solutions stored in the storage unit 11 and a second evaluation value for the newly acquired second solution based on the second evaluation function. The processing unit 12 compares the second evaluation value with the first evaluation value. If the second evaluation value is better than any of the first evaluation values, the processing unit 12 replaces one of the multiple first solutions stored in the storage unit 11 with the second solution.

[0038] For example, the processing unit 12 replaces the worst solution among the multiple first solutions with the second solution. As a result, the worst solution is removed from the storage unit 11, and the second solution is added to the storage unit 11 as a new first solution. In this case, the processing unit 12 can perform the process of "comparing the first evaluation value of each of the multiple first solutions with the second evaluation value of the second solution" by "comparing the worst first evaluation value among the first evaluation values ​​of each of the multiple first solutions with the second evaluation value of the second solution." If the second evaluation value is better than the worst first evaluation value, the processing unit 12 replaces the first solution corresponding to the worst first evaluation value with the second solution; otherwise, the processing unit 12 does not perform the replacement and maintains the solution held in the storage unit 11.

[0039] In this way, by using the second evaluation function to evaluate the solutions stored in the storage unit 11, solutions where L(x)=0 and C(x) is smaller are preferentially stored in the storage unit 11. For example, it is assumed that the storage unit 11 stores four solutions X1, X3, X6, and X7 obtained as a result of a search by the search unit 20. In this case, it is assumed that the processing unit 12 causes the search unit 20 to perform a search using an initial solution generated based on the solutions X1, X3, X6, and X7, and acquires a solution X11 from the search unit 20.

[0040] Here, among solutions X1, X3, X6, and X7, it is assumed that solution X7 has the worst evaluation value based on the second evaluation function. Processing unit 12 compares the evaluation value of solution X11 with the evaluation value of solution X7 based on the second evaluation function. If the evaluation value of solution X11 is better than the evaluation value of solution X7, processing unit 12 replaces solution X7 stored in storage unit 11 with solution X11. The initial solution for the next search will be generated based on solutions X1, X3, X6, and X11.

[0041] Furthermore, the processing unit 12 acquires from the search unit 20 a plurality of solutions, including the second solution, obtained by multiple searches, and adjusts the first constraint coefficient λ1. In the example of FIG. 1, the processing unit 12 adjusts the first constraint coefficient λ1 based on three solutions obtained by three searches. Here, the plurality of solutions used to adjust the first constraint coefficient λ1 are stored in the storage unit 11 or another storage unit of the data processing device 10, separately from the solutions used to generate the initial solution (e.g., solutions X1, X3, X6, and X7).

[0042] Furthermore, the processing unit 12 can use a plurality of search units 20. In this case, the processing unit 12 may cause the plurality of search units 20 to execute searches in parallel, and obtain a plurality of solutions from the plurality of search units 20. Alternatively, the processing unit 12 may cause one search unit 20 to execute searches multiple times, and obtain a plurality of solutions from the search unit 20.

[0043] In the example of FIG. 1, the processing unit 12 acquires solutions X9, X10, and X11 as the results of three searches. For example, the processing unit 12 may acquire solutions X9, X10, and X11 as the results of executing searches in parallel using three search units 20. Alternatively, the processing unit 12 may acquire solutions X9, X10, and X11 as the results of three searches executed by one search unit 20. Note that, upon acquiring each of solutions X9 and X10, the processing unit 12 determines whether or not to store the solutions in the storage unit 11, similar to the solution X11. In the example of FIG. 1, it is assumed that it has been determined not to store solutions X9 and X10 in the storage unit 11.

[0044] Then, the processing unit 12 determines whether or not the constraint is satisfied in at least one of the solutions based on the plurality of solutions. Whether or not a solution satisfies the constraint k is determined by the constraint term L as described above. k That is, the value of L k If L = 0, constraint k is satisfied. kIf k is greater than 0, the constraint k is not satisfied, i.e., the constraint is violated. The processing unit 12 adjusts the first constraint coefficient λ1 used by the search unit 20 according to the result of the determination as to whether the constraint is satisfied or not.

[0045] Specifically, when the constraint is satisfied in at least one of the plurality of solutions (e.g., solutions X9, X10, and X11) obtained from the search unit 20, the processing unit 12 reduces the first constraint coefficient λ1 corresponding to the constraint. One method for reducing the first constraint coefficient λ1 is to multiply the previous λ1 by a predetermined value (e.g., 0.9) smaller than 1 to set the new λ1 as the new λ1.

[0046] On the other hand, if none of the solutions obtained from the search unit 20 satisfies the constraint, the processing unit 12 increases the first constraint coefficient λ1 corresponding to the constraint. One method for increasing the first constraint coefficient λ1 is to multiply the previous λ1 by a predetermined value greater than 1 (such as 1.1) and set the resulting value as the new λ1.

[0047] When the number of constraints is m (k=1, . . . , m), the processing unit 12 calculates m first constraint coefficients λ1 k Adjustments are made to each independently. Then, the processing unit 12 causes the search unit 20 to start searching for a solution using the adjusted first constraint coefficients. In this way, the processing unit 12 repeats the search by the search unit 20 a fixed number of times or for a fixed period of time. After repeating the search a fixed number of times or for a fixed period of time, the processing unit 12 outputs the multiple first solutions stored in the storage unit 11 as the finally obtained solutions. For example, the processing unit 12 may output all of the first solutions stored in the storage unit 11. Alternatively, the processing unit 12 may output a predetermined number of solutions from the multiple first solutions stored in the storage unit 11, giving priority to those with better evaluation values ​​according to the second evaluation function.

[0048] As described above, according to the data processing device 10, a plurality of first solutions, each of which is a set of values ​​of a plurality of state variables, are stored in the storage unit 11. A second solution obtained as a result of a search using an initial solution generated based on the plurality of first solutions is acquired from the search unit 20, which searches for a solution based on a first evaluation function including constraint terms indicating the amount of violation of constraints on the plurality of state variables and first constraint coefficients indicating the weights of the constraint terms. One of the plurality of first solutions stored in the storage unit 11 is replaced with the second solution based on a comparison between a first evaluation value of each of the plurality of first solutions and a second evaluation value of the second solution, as indicated by the second evaluation function. The second evaluation function is a function in which the first constraint coefficient included in the first evaluation function is replaced with a second constraint coefficient different from the first constraint coefficient. Furthermore, it is determined whether or not the constraint is satisfied in at least one solution among the plurality of solutions, including the second solution, obtained by multiple searches. Based on the result of determining whether or not the constraint is satisfied, the search unit 20 identifies a first constraint coefficient to be used in the next search.

[0049] This allows the data processing device 10 to improve the solution-finding performance of the search unit 20. Specifically, the data processing device 10 can control the magnitude of the first constraint coefficient so as to vary the boundary around which the constraint is just barely satisfied, and the search unit 20 can perform both a search with relaxed constraints and a search that satisfies the constraints. As a result, the data processing device 10 can increase the possibility of arriving at a better solution in the solution-finding by the search unit 20. Furthermore, by automatically and appropriately controlling the constraint coefficient, the data processing device 10 can improve the solution-finding performance while reducing the user's effort in adjusting the constraint coefficient.

[0050] Furthermore, depending on the type of problem, it may be desirable to limit the solutions used to generate the initial solution to constraint-satisfying solutions, thereby making the initial solution of the search unit 20 closer to the constraint-satisfying solution. According to the data processing device 10, by setting the second constraint coefficient to a sufficiently large value, it is possible to control the storage unit 11 to preferentially store solutions where L(x)=0 and C(x) is smaller, as described above. That is, the data processing device 10 can easily control the solutions used to generate the initial solution to be only constraint-satisfying solutions, thereby increasing the possibility of arriving at a better solution in the vicinity of the constraint-satisfying solution. In this way, the data processing device 10 can also improve solution-finding performance by narrowing down the solutions used to generate the initial solution to constraint-satisfying solutions.

[0051] [Second embodiment] Next, a second embodiment will be described. FIG. 2 illustrates an example of hardware of a data processing device according to the second embodiment.

[0052] The data processing device 100 searches for a solution to a combinatorial optimization problem, such as a quadratic programming problem, with constraints, using a greedy search, tabu search, SA, or the like, and outputs the searched solution. A combinatorial optimization problem with constraints is formulated by an evaluation function E(x) of equation (3), and is replaced by a problem of minimizing the value of the evaluation function E(x), for example. The constraints may be inequality constraints or other constraints such as equality constraints. The evaluation function E(x) has m constraint terms corresponding to the m constraints. The value (evaluation value) of the evaluation function E(x) may be referred to as energy. Furthermore, the combinatorial optimization problem may be a problem other than a quadratic programming problem.

[0053] The data processing device 100 has a processor 101, a DRAM 102, an HDD 103, a GPU 104, an input interface 105, a media reader 106, a communication interface 107, and an accelerator card 108. These units of the data processing device 100 are connected to a bus inside the data processing device 100. The processor 101 corresponds to the processing unit 12 of the first embodiment. The DRAM 102 corresponds to the storage unit 11 of the first embodiment.

[0054] The processor 101 is an arithmetic device that executes program instructions. 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 DRAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing device 100 may also have multiple processors. The processes described below may be executed in parallel using multiple processors or processor cores. A set of multiple processors may also be referred to as a "multiprocessor" or simply as a "processor." A processor may also be referred to as a "processor circuitry." Each of the multiple processes executed by the data processing device 100 may be executed by a different processor, or at least some of the multiple processes may be executed by the same processor.

[0055] The DRAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used in calculations by the processor 101. Note that the data processing device 100 may include a type of memory other than a DRAM, or may include multiple memories.

[0056] The HDD 103 is a nonvolatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The data processing device 100 may also include other types of storage devices, such as flash memory or an SSD (Solid State Drive), or may include multiple nonvolatile storage devices.

[0057] The GPU 104 outputs an image to a display 51 connected to the data processing device 100 in accordance with an instruction from the processor 101. The display 51 may be any type of display, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.

[0058] The input interface 105 acquires an input signal from an input device 52 connected to the data processing device 100 and outputs the signal to the processor 101. The input device 52 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. In addition, multiple types of input devices may be connected to the data processing device 100.

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

[0060] The medium reader 106 copies, for example, programs and data read from the recording medium 53 to another recording medium such as the RAM 102 or the HDD 103. The read programs are executed by, for example, the processor 101. The recording medium 53 may be a portable recording medium, which may be used to distribute programs and data. The recording medium 53 and the HDD 103 may also be referred to as computer-readable recording media.

[0061] The communication interface 107 is connected to the network 54 and communicates with other information processing devices via the network 54. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or may be a wireless communication interface connected to a wireless communication device such as a base station or an access point.

[0062] The accelerator card 108 is a hardware accelerator that searches for solutions to combinatorial optimization problems. The accelerator card 108 includes a processor 110 and a DRAM 120. The processor 110 searches for solutions using a greedy algorithm, a tabu search, an SA, or the like. The processor 110 may be, for example, a GPU, a DSP, an ASIC, or an FPGA. The DRAM 120 stores data used in the processing of the processor 110.

[0063] FIG. 3 is a diagram illustrating an example of functions of the data processing device. The data processing device 100 has a solution pool 130, search units 140-1, 140-2, ..., 140-N, judgment units 150-1, 150-2, ..., 150-N, a spatial filter unit 160, a time filter unit 170, and a constraint coefficient adjustment unit 180. The number of search units 140-1, 140-2, ..., 140-N is N. The number of judgment units 150-1, 150-2, ..., 150-N is N. N is an integer equal to or greater than 1. The number of search units is the same as the number of judgment units.

[0064] The solution pool 130 holds a predetermined number of solutions with good evaluation values, prioritized among the solutions searched by the search units 140-1, 140-2, ..., 140-N. The solution pool 130 uses a storage area of ​​the DRAM 102. The solution pool 130 may also use a storage area of ​​the HDD 103.

[0065] The search units 140-1, ..., 140-N generate an initial solution based on a predetermined number of solutions held in the solution pool 130, and perform a search based on the evaluation function E(x) of equation (3). The search units 140-1, ..., 140-N can perform searches in parallel. The evaluation function E(x) is calculated based on m constraint coefficients λ k(k=1,...,m). As will be described later, the constraint coefficient λ included in L(x) in Eq. (3) k is adjusted by the constraint coefficient adjustment unit 180.

[0066] The search units 140-1, ..., 140-N search for a solution by a method such as a greedy search, a tabu search, or an SA, and obtain a local solution. i For (i=1, 2, ..., n), the difference ΔE in E(x) when a specific state variable is changed from 0 to 1 or from 1 to 0 is calculated, and the state variable to be changed next is determined based on ΔE. For example, after the search process, each of search units 140-1, ..., 140-N obtains a set S of the top multiple solutions with the smallest E(x) values.

[0067] The search units 140-1, ..., 140-N evaluate each solution in the set S to determine whether it is an improvement over the solutions in the solution pool 130, and write the improved solution obtained as a result of the search back to the solution pool 130. The evaluation of the improved solution to be written back is performed based on the evaluation function E'(x). The evaluation function E'(x) is calculated by dividing m constraint coefficients λ of the evaluation function E(x). k Each is expressed as a fixed constraint coefficient λ k ' is replaced with λ. k ' is a value (λ k '>>C(x)) is used. λ k '>λ k That's fine too.

[0068] The search units 140-1, ..., 140-N calculate the value of the evaluation function E'(x) for the solution obtained as a result of the current search. If the value of E'(x) is smaller than the solution (worst solution) in the solution pool 130 with the largest value of E'(x), the search units 140-1, ..., 140-N update the worst solution in the solution pool 130 with the solution obtained in the current search. After the search units 140-1, ..., 140-N have repeated the search a predetermined number of times or for a predetermined period of time, each solution in the solution pool 130 can be adopted as the final solution to the problem.

[0069] The determination units 150-1, ..., 150-N determine whether or not the solution searched for by the search units 140-1, ..., 140-N satisfies the constraint. The determination units 150-1, ..., 150-N determine whether or not the obtained solution satisfies each of the m constraints, and output a 1-bit flag for each constraint indicating whether or not the constraint is satisfied. A flag "1" indicates satisfied. A flag "0" indicates not satisfied.

[0070] The spatial filter unit 160 aggregates the flags for each constraint output by the determination units 150-1, ..., 150-N, performs an OR operation on the flags for each constraint, and outputs the result of the OR operation for each constraint. Since there are n determination units, the spatial filter unit 160 performs an OR operation on the n flags for each constraint. The spatial filter unit 160 outputs the result of the OR operation for each of the m constraints. If a constraint-satisfying solution is obtained by any one of the search units for a given constraint through the OR operation, the constraint is considered to be satisfied.

[0071] The time filter unit 170 holds the output results of the spatial filter unit 160 for the past T times, and outputs one determination result for each constraint based on the results of the past T times and input from the spatial filter unit 160. The time filter unit 170 holds bits of the constraint satisfaction determination results of the past T times by the spatial filter unit 160 for each constraint, and outputs "1" if the sum of the determination results of the T+1 bits, combined with new input from the spatial filter unit 160, is 1 or more, and outputs "0" otherwise. The time filter unit 170 has a buffer (not shown) for holding the output results of the spatial filter unit 160 for the past T times. For example, a storage area such as the RAM 102 is used as the buffer.

[0072] The constraint coefficient adjustment unit 180 adjusts the constraint coefficient λ for each constraint based on the output result of the time filter unit 170. k The constraint coefficient adjustment unit 180 adjusts the constraint coefficients λ for the m constraint terms independently. k Adjust the following.

[0073] If the result of the determination of whether the constraint k is satisfied by the time filter unit 170 is "0" (not satisfied), the constraint coefficient adjustment unit 180 adjusts λ k Increase λ k There are several ways to increase λ, for example, k The new λ is calculated by multiplying k There are methods such as:

[0074] If the result of the determination by the time filter unit 170 as to whether the constraint k is satisfied is "1" (satisfied), the constraint coefficient adjustment unit 180 adjusts λ k Reduce λ k There are several ways to reduce λ, for example, k The new λ is calculated by multiplying k There are methods such as:

[0075] Here, the search units 140-1, ..., 140-N, the determination units 150-1, ..., 150-N, the spatial filter unit 160, the time filter unit 170, and the constraint coefficient adjustment unit 180 are realized by the processor 101 executing a program stored in the RAM 102. However, the search units 140-1, ..., 140-N may cause the processor 110 of the accelerator card 108 to search for a solution using a greedy search, a tabu search, an SA, or the like, and obtain the resulting solution from the accelerator card 108. In other words, the search units 140-1, ..., 140-N may also search for a solution using the accelerator card 108. Furthermore, the accelerator card 108 may be an example of the search units 140-1, ..., 140-N.

[0076] Furthermore, the generation of initial solutions to be input to the search units 140-1, ..., 140-N and the updating of solutions in the solution pool 130 may be executed by a search control unit that controls the search units 140-1, ..., 140-N. In this case, the search control unit may also be realized by the processor 101 executing a program stored in the RAM 102. Alternatively, the search control unit may be realized by the processor 110.

[0077] FIG. 4 is a diagram illustrating an example of data stored in the solution pool. As an example, the solution pool 130 holds records corresponding to six solutions. Six indexes (idx) "0" to "5" identify the records in the solution pool 130. For example, the records in the solution pool 130 may be sorted so that the smaller the index, the smaller the solution's E'(x) value.

[0078] One record is a state vector x=(x1,x2,…,x n ), the value of the objective function C(x) corresponding to the solution, the constraint terms L1(x), L2(2), …, L corresponding to the constraint k (k=1, 2, …, m), m (x) (constraint violation amount). k =max(0,Σ i A ki x i -B k )

[0079] Next, the processing procedure of the data processing device 100 will be described. FIG. 5 is a flowchart showing an example of a search process of the data processing device. (S10) The solution pool 130 is initialized. In the initialization of the solution pool 130, predetermined solutions are stored in the solution pool 130. The predetermined solutions may be randomly generated solutions or user-specified solutions. In addition, the constraint coefficient adjustment unit 180 adjusts the constraint coefficient λ k The initial value of the constraint coefficient is "1" or a user-specified value.

[0080] (S11) The search units 140-1, ..., 140-N generate initial solutions from the solutions in the solution pool 130 and search for solutions based on the evaluation function E(x) including the constraint coefficient λk for a certain period of time. Each of the search units 140-1, ..., 140-N obtains a solution with the smallest value of E(x) obtained during the certain period of time.

[0081] (S12) Each of the search units 140-1, ..., 140-N updates the solution pool 130. Specifically, each of the search units 140-1, ..., 140-N updates the solution pool 130 with a fixed constraint coefficient λ for the solution with the smallest value of E(x) obtained in step S11. kEach of the search units 140-1, ..., 140-N calculates the value of the evaluation function E'(x) including E'(x). Each of the search units 140-1, ..., 140-N compares the calculated value of the evaluation function E'(x) with the value of E'(x) of the worst solution in the solution pool 130. The worst solution is the solution in the solution pool 130 for which E'(x) is the largest value. If the value of E'(x) of the solution after the current search is smaller than the value of E'(x) of the worst solution, each of the search units 140-1, ..., 140-N updates the worst solution in the solution pool 130 with the solution after the current search.

[0082] (S13) Determination units 150-1, ..., 150-N determine whether each constraint is satisfied for the solution obtained after the current search by search units 140-1, ..., 140-N, and output a 1-bit flag as the determination result. The flag is "1" if the constraint is satisfied, and "0" if the constraint is not satisfied. The number of bits of all flags output by determination units 150-1, ..., 150-N is (number of constraints m) x (number of determination units n).

[0083] (S14) The spatial filter unit 160 performs spatial filtering. Specifically, the spatial filter unit 160 performs an OR operation on the output results of each determination unit for each constraint. The number of bits of the output of the spatial filter unit 160 is the number of constraints m.

[0084] (S15) The time filter unit 170 performs time filtering. Specifically, the time filter unit 170 holds the outputs of the spatial filter unit 160 for the past T times for each constraint, and outputs "1" if the sum of the determination results of the T+1 bits, including the current input from the spatial filter unit 160, is 1 or more, and outputs "0" otherwise.

[0085] (S16) The constraint coefficient adjustment unit 180 adjusts the constraint coefficient λ for each constraint based on the output result of the time filter unit 170. k If the result of the determination of whether the constraint k is satisfied by the time filter unit 170 is "0" (not satisfied), the constraint coefficient adjustment unit 180 adjusts the current λ k than the adjusted λ kIf the result of the determination by the time filter unit 170 as to whether the constraint k is satisfied is "1" (satisfied), the constraint coefficient adjustment unit 180 increases the current λ k than the adjusted λ k Make it smaller.

[0086] (S17) The search units 140-1, ..., 140-N determine whether the search has ended. If the search has ended, the solutions in the solution pool 130 are output, and the processing of the data processing device 100 ends. If the search has not ended, the process proceeds to step S11. For example, the search units 140-1, ..., 140-N can determine whether the search has ended based on whether steps S11 to S16 have been executed for a predetermined search time (predetermined period) or number of times set by the user. If steps S11 to S16 have been executed for the predetermined search time or number of times, the search has ended. If steps S11 to S16 have not been executed for the predetermined search time or number of times, the search has not ended.

[0087] For example, in outputting the solutions in the solution pool 130 in step S17, the processor 101 may cause the display 51 to display an image indicating the solutions in the solution pool 130. Alternatively, in outputting the solutions in the solution pool 130, the processor 101 may store information indicating the solutions in the solution pool 130 in a non-volatile storage device such as the HDD 103, or transmit the information to an external device via the communication interface 107.

[0088] Note that the updating of the solution pool in step S12 may be performed immediately after any of steps S13 to S16. As described above, the generation of the initial solution in step S11 and the updating of the solution pool 130 in step S12 may be performed by a search control unit that controls the search units 140-1, ..., 140-N.

[0089] Here, the data processing device 100 can operate as follows depending on the application: In the following description, as an example, it is assumed that the processor 101 has 16 processor cores.

[0090] FIG. 6 is a diagram illustrating a first operation example of the data processing device. In the first operation example, the processor 101 uses 16 processor cores to operate 16 search units in parallel. The data processing device 100 has a program execution unit P1. A "program execution unit" is a set of functions of the data processing device 100 used to find a solution. The program execution unit P1 includes a solution pool 130, search units 140-1, 140-2, ..., 140-16, determination units 150-1, 150-2, ..., 150-16, a spatial filter unit 160, a temporal filter unit 170, and a constraint coefficient adjustment unit 180.

[0091] In the spatial filter unit 160, for each constraint, an OR operation is performed on the satisfaction determination results of the 16 search units by the 16 determination units. The time filtering process of the time filter unit 170 is off, that is, T=0.

[0092] Here, in a problem with hard constraints, λ k Even if λ is large enough, the output solution of the search part may violate the constraints. k The data processing device 100 uses the multiple search units and the spatial filter unit 160 to adjust the satisfaction determination results of each constraint to the satisfaction side, thereby reducing the λ k This can prevent excessive increases in

[0093] Furthermore, in the first operation example, multiple search units update the solution pool 130 from the initial state of one solution pool 130, thereby speeding up solution finding. FIG. 7 is a diagram illustrating a second operation example of the data processing device.

[0094] In the second operation example, the processor 101 uses 16 processor cores to run 16 independent programs. The data processing device 100 has 16 program execution units P1a, P2a, ..., P16a. The program execution unit P1a includes a solution pool 130, a search unit 140, a determination unit 150, a spatial filter unit 160, a temporal filter unit 170, and a constraint coefficient adjustment unit 180. Like the program execution unit P1a, each of the program execution units P2a, ..., P16a includes a solution pool, one search unit, one determination unit, a spatial filter unit, a temporal filter unit, and a constraint coefficient adjustment unit. The following mainly describes the program execution unit P1a, but the program execution units P2a, ..., P16a also perform the same processing as the program execution unit P1a.

[0095] In the program execution units P1a, P2a, . . . , P16a, search processing for the same problem starts from the initial state of each different solution pool. The spatial filter unit 160 performs OR operations in the same way as when there are multiple search units and decision units, but because there is only one search unit 140 and one decision unit 150, it simply outputs the decision result of decision unit 150 that the constraints are satisfied. T in the time filtering process of the time filter unit 170 is, for example, T=15.

[0096] Here, in a problem with hard constraints, λ k Even if λ is large enough, the output solution of the search part may violate the constraints. k The time filter unit 170 can adjust the satisfaction determination result of each constraint to be closer to satisfaction, thereby reducing the λ k This can prevent excessive increases in

[0097] Furthermore, in the second operating example, the update speed of the solution pool 130 is slower than in the first operating example, but by increasing the number of solution pools compared to the first operating example, it is possible to prevent the program execution units P1a, ..., P16a as a whole from falling into a local solution.

[0098] When a predetermined number of searches or a predetermined period of time have been completed, the data processing device 100 outputs all or part of the solutions held in the multiple solution pools. The data processing device 100 may select a predetermined number of solutions from the solutions held in the multiple solution pools, giving priority to those with better evaluation values, and output the selected predetermined number of solutions.

[0099] FIG. 8 is a diagram illustrating a third operation example of the data processing device. In the third operation example, the processor 101 uses 16 processor cores to run four entire programs independently. The data processing device 100 has four program execution units P1b, P2b, P3b, and P4b. The program execution unit P1b includes a solution pool 130, search units 140-1, 140-2, 140-3, and 140-4, judgment units 150-1, 150-2, 150-3, and 150-4, a spatial filter unit 160, a temporal filter unit 170, and a constraint coefficient adjustment unit 180. Like the program execution unit P1b, the program execution units P2b, P3b, and P4b each include a solution pool, four search units, four judgment units, a spatial filter unit, a temporal filter unit, and a constraint coefficient adjustment unit.

[0100] In program execution units P1b, ..., P4b, search processing for the same problem begins with the initial state of a different solution pool. Four search units operate in parallel in one program execution unit. The following mainly describes program execution unit P1b, but similar processing is also performed in program execution units P2b, P3b, and P4b.

[0101] The spatial filter unit 160 performs an OR operation on the satisfaction determination results of the four search units by the four determination units for each constraint. T in the time filtering process of the time filter unit 170 is, for example, T=3.

[0102] The third operation example provides the advantages of both the first and second operation examples. That is, the data processing device 100 can speed up solution generation by increasing the update speed of the solution pool, and can also prevent the program execution units P1b, ..., P4b as a whole from falling into a local solution.

[0103] Next, a comparative example will be described. FIG. 9 is a diagram showing a comparative example. The data processing device 200 of the comparative example includes a solution pool 210 , a search unit 220 , an output solution buffer 230 , and a constraint coefficient adjustment unit 240 .

[0104] The solution pool 210 holds a predetermined number of solutions obtained by the search unit 220. The number of solutions held in the solution pool 210 is two or more. In the example of Fig. 9, the number of solutions held in the solution pool 210 is four.

[0105] The search unit 220 searches for a solution based on the evaluation function E(x) of equation (3) using an initial solution generated from a predetermined number of solutions held in the solution pool 210. If the value of E(x) of a new solution obtained by the search is better than the value of E(x) of the worst solution in the solution pool 210, the search unit 220 replaces the worst solution in the solution pool 210 with the new solution obtained by the search.

[0106] The output solution buffer 230 stores a predetermined number of solutions searched by the search unit 220. The solutions stored in the output solution buffer 230 are candidates for the final solution to the problem. The quality of the solutions stored in the output solution buffer 230 is judged based on the value of the evaluation function E'(x). The evaluation function E'(x) is calculated by multiplying the constraint coefficient λ k is a predetermined fixed constraint coefficient λ k ' is replaced with λ. k A sufficiently large value is used for '. If the value of E'(x) of the new solution is better than the value of E'(x) of the worst solution in output solution buffer 230, search unit 220 replaces the worst solution in output solution buffer 230 with the new solution. As a result, solutions that satisfy the constraints and have small C(x) are preferentially stored in output solution buffer 230.

[0107] The constraint coefficient adjustment unit 240 adjusts the constraint coefficient λ when there is one or more constraint-satisfying solutions among the predetermined number of solutions held in the solution pool 210. k If there is no solution satisfying the constraint, the constraint coefficient λ k Control is performed to increase the value.

[0108] FIG. 10 is a diagram showing a continuation of the comparative example. However, the data processing device 200 of the comparative example has a problem in that it cannot be used in a way that limits the solutions stored in the solution pool 210 to constraint satisfying solutions. For example, depending on the type of problem, it may be preferable to limit the solutions held in the solution pool 210 to constraint satisfying solutions, so that the initial solution of the search unit 220, which is generated from the solutions in the solution pool 210, is close to a constraint satisfying solution.

[0109] For example, when the data processing device 200 evaluates the solutions stored in the solution pool 210, λ included in E(x) is k is fixed to a value sufficiently larger than the possible values ​​of the objective function C(x), and the solution pool 210 is controlled to store only constraint satisfying solutions. In this case, however, there will always be constraint satisfying solutions in the solution pool 210. For this reason, the constraint coefficient adjustment unit 240 adjusts λ to be used for search in the search unit 220 depending on the number of constraint satisfying solutions held in the solution pool 210. k You will no longer be able to control the

[0110] In contrast to the comparative example, the data processing device 100 of the second embodiment adjusts the solutions in the solution pool 130 by the constraint coefficient λ by the constraint coefficient adjustment unit 180. k The output solution of the search unit is passed through the spatial filter unit 160 and the time filter unit 170 to adjust λ k That is, the data processing device 100 can separate the feedback loop of the constraint coefficient adjustment from the update of the solution pool. kBy setting ' to a sufficiently large value, it is possible to control so that solutions where L(x)=0 and C(x) are smaller are preferentially stored in the solution pool 130, as described above. That is, the data processing device 100 can easily control so that only constraint satisfying solutions are used to generate an initial solution, thereby increasing the possibility of arriving at a better solution in the vicinity of the constraint satisfying solution. In this way, the data processing device 100 can improve solution-finding performance by narrowing down the solutions used to generate an initial solution to constraint satisfying solutions.

[0111] Furthermore, the data processing device 100 uses a constraint coefficient λ k The magnitude of the constraint coefficient can be controlled to vary around the boundary where the constraint is just satisfied, and each search unit can perform both a search with relaxed constraints and a search that satisfies the constraints. As a result, the data processing device 100 can increase the possibility of arriving at a better solution in the solution search of each search unit, thereby improving solution search performance. Furthermore, by automatically and appropriately controlling the constraint coefficients, the data processing device 100 can improve solution search performance while reducing the user's effort in adjusting the constraint coefficients.

[0112] The data processing device 100 may further include an output solution buffer equivalent to the output solution buffer 230. For example, a storage area such as RAM 102 is used for the output solution buffer. For example, the data processing device 100 may store some of the top solutions in one solution pool in the output solution buffer, or some of the top solutions in multiple solution pools in the output solution buffer. In this case, the data processing device 100 can easily extract and output the final solution from the output solution buffer.

[0113] As described above, the data processing device 100 of the second embodiment executes the following process. The solution pool 130, realized by a storage area such as the DRAM 102, stores multiple first solutions, each of which is a set of values ​​of multiple state variables. The processor 101 acquires a second solution obtained as a result of a search using an initial solution generated based on the multiple first solutions from a search unit that searches for a solution based on a first evaluation function. The first evaluation function indicates evaluation values ​​corresponding to the values ​​of the multiple state variables and includes constraint terms indicating the amount of violation of constraints on the multiple state variables and first constraint coefficients indicating the weights of the constraint terms. The processor 101 replaces one of the multiple first solutions stored in the solution pool 130 with a second solution based on a comparison between the first evaluation value of each of the multiple first solutions and the second evaluation value of the second solution, as indicated by the second evaluation function. The second evaluation function is obtained by replacing the first constraint coefficient included in the first evaluation function with a second constraint coefficient different from the first constraint coefficient. The processor 101 determines whether the constraint is satisfied in at least one solution among the multiple solutions, including the second solution, obtained by the multiple searches. The processor 101 specifies a first constraint coefficient to be used in the next search by the search unit based on the result of the determination whether the constraint is satisfied.

[0114] This enables the data processing device 100 to improve the solution-finding performance. For example, the data processing device 100 can perform control such that only constraint-satisfying solutions are pooled in the solution pool 130 while adjusting the constraint coefficients, and can set an initial solution based on the constraint-satisfying solutions in the solution pool 130.

[0115] As described above, the processor 101 may be a set of multiple processors. In this case, at least two of the multiple processes executed by the processor 101 may be executed by different processors. For example, at least two of the processes of obtaining the second solution, replacing the first solution in the solution pool 130 with the second solution, determining whether the constraint is satisfied, and adjusting the first constraint coefficient may be executed by different processors.

[0116] The search unit may be realized by the processor 101 (for example, any one of the multiple processors) or may be realized by the processor 110 in the accelerator card .

[0117] The processor 101 may acquire the above-mentioned multiple solutions by causing each of the multiple search units to perform a search, as shown in the first operation example of Fig. 6. This allows the data processing device 100 to speed up solution-finding. Each of the multiple search units may perform a search in parallel.

[0118] The processor 101 may obtain the above-mentioned multiple solutions by executing a search multiple times using one search unit, as shown in the second operation example of Fig. 7. This allows the data processing device 100 to secure a large number of solution pools and control the search unit to perform searches independently for each solution pool, thereby preventing the data processing device 100 from falling into a local solution overall.

[0119] Furthermore, as shown in the third operation example of FIG. 8 , the processor 101 may acquire some of the multiple solutions by causing each of the multiple search units to perform a search. The processor 101 may generate a flag indicating whether or not a constraint is satisfied in at least one of the partial solutions. The processor 101 may determine whether or not a constraint is satisfied in at least one of the multiple solutions based on the flag generated this time and a predetermined number of flags generated up to the previous time for solutions other than the partial solutions. This enables the data processing device 100 to speed up solution generation through parallel search, secure a large number of solution pools, and control the parallel search to be performed independently for each solution pool, thereby preventing the data processing device 100 from falling into a local solution overall. Each of the multiple search units may perform a search in parallel.

[0120] In adjusting the first constraint coefficient, the processor 101 decreases the first constraint coefficient when the constraint is satisfied in at least one solution among the plurality of solutions including the second solution, and increases the first constraint coefficient when the constraint is not satisfied in any solution among the plurality of solutions including the second solution.

[0121] This allows the data processing device 100 to control the magnitude of the first constraint coefficient so as to vary around the boundary where the constraint is just barely satisfied, and enables each search unit to perform both a search with relaxed constraints and a search that satisfies the constraints. As a result, the data processing device 100 can increase the possibility of arriving at a better solution in the solution-finding of each search unit, thereby improving solution-finding performance. Furthermore, the data processing device 100 can control the first constraint coefficient so that it does not become larger than necessary by adjusting the constraint satisfaction determination result toward satisfaction.

[0122] The first evaluation function is an objective function C(x) that includes multiple state variables and a constraint term L k and the first constraint coefficient λ k The second evaluation function is the sum of the product of the objective function C(x) and the constraint term L k and the second constraint coefficient λ k ' and the sum of the product of the second constraint coefficient λ k ' is a fixed value greater than any possible value of the objective function C(x). This allows the data processing device 100 to control so that only constraint satisfying solutions are pooled in the solution pool 130, making it possible to set an initial solution based on the constraint satisfying solutions in the solution pool 130. As a result, the data processing device 100 can improve solution-finding performance.

[0123] Furthermore, if the second evaluation value is better than the worst value among the first evaluation values ​​of the multiple first solutions in the solution pool 130, the processor 101 replaces the first solution corresponding to the worst value held in the solution pool 130 with the second solution. This allows the data processing device 100 to control so that only constraint-satisfying solutions are pooled in the solution pool 130, and enables setting an initial solution based on the constraint-satisfying solutions in the solution pool 130 to each search unit. As a result, the data processing device 100 can improve solution-finding performance. Furthermore, the data processing device 100 can appropriately pool final output candidate solutions in the solution pool 130.

[0124] When the search unit completes a predetermined number of search iterations or a predetermined period of time, the processor 101 outputs at least one of the first solutions held in the solution pool 130 at the time the iterations are completed. This allows the data processing device 100 to efficiently output a final solution to the problem corresponding to the second evaluation function.

[0125] The information processing of the first embodiment can be realized by causing the processing unit 12 to execute a program. The information processing of the second embodiment can be realized by causing the processor 101 to execute a program. The program can be recorded on a computer-readable recording medium 53.

[0126] For example, the program can be distributed by distributing recording medium 53 on which the program is recorded. Alternatively, the program may be stored in another computer and distributed via a network. For example, a computer may store (install) a program recorded on recording medium 53 or a program received from another computer in a storage device such as RAM 102 or HDD 103, and then read and execute the program from the storage device. [Explanation of symbols]

[0127] 10 Data processing device 11 Storage section 12 Processing section 20 Exploration Department

Claims

1. a storage unit that stores a plurality of first solutions, each of which is a set of values ​​of a plurality of state variables; a search unit that searches for a solution based on a first evaluation function that indicates an evaluation value corresponding to values ​​of the plurality of state variables, the first evaluation function including a constraint term that indicates a violation amount of a constraint on the plurality of state variables and a first constraint coefficient that indicates a weight of the constraint term, and a second solution obtained as a result of the search using an initial solution generated based on the plurality of first solutions; replacing one of the plurality of first solutions stored in the storage unit with the second solution in accordance with a comparison between a first evaluation value of each of the plurality of first solutions and a second evaluation value of the second solution, the second evaluation function being a function obtained by replacing the first constraint coefficients included in the first evaluation function with second constraint coefficients different from the first constraint coefficients; determining whether or not the constraint is satisfied in at least one solution among a plurality of solutions including the second solution obtained by the plurality of searches, and specifying the first constraint coefficient to be used in the next search by the search unit based on the result of the determination whether or not the constraint is satisfied; a processing unit; A data processing device having:

2. the processing unit acquires the plurality of solutions by causing each of the plurality of search units to execute the search.

2. The data processing device according to claim 1.

3. the processing unit causes the search unit to execute the search multiple times to obtain the multiple solutions.

2. The data processing device according to claim 1.

4. The processing unit acquiring a part of the solutions from the plurality of solutions by causing each of the plurality of search units to execute the search; generating a flag indicating whether the constraint is satisfied in at least one solution among the subset of solutions; determining whether or not the constraint is satisfied in at least one solution among the plurality of solutions based on the flag generated this time and a predetermined number of flags generated up to the previous time for solutions other than the part of the solutions among the plurality of solutions; 2. The data processing device according to claim 1.

5. The processing unit, in adjusting the first constraint coefficient, If the constraint is satisfied in at least one solution of the plurality of solutions, decreasing the first constraint coefficient; If the constraint is not satisfied for any of the plurality of solutions, the first constraint coefficient is increased.

2. The data processing device according to claim 1.

6. the second evaluation function is a sum of an objective function including the plurality of state variables and a product of the constraint term and the second constraint coefficient; The second constraint coefficient is a fixed value greater than any possible value of the objective function.

2. The data processing device according to claim 1.

7. when the second evaluation value is better than a worst value among the first evaluation values ​​of the plurality of first solutions, the processing unit replaces the first solution corresponding to the worst value, which is stored in the storage unit, with the second solution; 2. The data processing device according to claim 1.

8. When the search unit has completed the repetition of the search a predetermined number of times or for a predetermined period of time, the processing unit outputs at least one of the plurality of first solutions stored in the storage unit at the time the repetition has completed.

2. The data processing device according to claim 1.

9. The computer storing a plurality of first solutions in a storage unit, each of the first solutions being a set of values ​​of a plurality of state variables; a search unit that searches for a solution based on a first evaluation function that indicates an evaluation value corresponding to values ​​of the plurality of state variables, the first evaluation function including a constraint term that indicates a violation amount of a constraint on the plurality of state variables and a first constraint coefficient that indicates a weight of the constraint term, and a second solution obtained as a result of the search using an initial solution generated based on the plurality of first solutions; replacing one of the plurality of first solutions stored in the storage unit with the second solution in accordance with a comparison between a first evaluation value of each of the plurality of first solutions and a second evaluation value of the second solution, the second evaluation function being a function obtained by replacing the first constraint coefficients included in the first evaluation function with second constraint coefficients different from the first constraint coefficients; determining whether or not the constraint is satisfied in at least one solution among a plurality of solutions including the second solution obtained by the plurality of searches, and specifying the first constraint coefficient to be used in the next search by the search unit based on the result of the determination whether or not the constraint is satisfied; Data processing methods.

10. On the computer, storing a plurality of first solutions in a storage unit, each of the first solutions being a set of values ​​of a plurality of state variables; a search unit that searches for a solution based on a first evaluation function that indicates an evaluation value corresponding to values ​​of the plurality of state variables, the first evaluation function including a constraint term that indicates a violation amount of a constraint on the plurality of state variables and a first constraint coefficient that indicates a weight of the constraint term, and a second solution obtained as a result of the search using an initial solution generated based on the plurality of first solutions; replacing one of the plurality of first solutions stored in the storage unit with the second solution in accordance with a comparison between a first evaluation value of each of the plurality of first solutions and a second evaluation value of the second solution, the second evaluation function being a function obtained by replacing the first constraint coefficients included in the first evaluation function with second constraint coefficients different from the first constraint coefficients; determining whether or not the constraint is satisfied in at least one solution among a plurality of solutions including the second solution obtained by the plurality of searches, and specifying the first constraint coefficient to be used in the next search by the search unit based on the result of the determination whether or not the constraint is satisfied; A program that executes a process.

Citation Information

Patent Citations

  • Method and device for optimizing combination

    JP1994175995A

  • Risk restriction optimization of virtual power plant in pool and futures market

    JP2022130284A

  • Determining optimal settings for resource actuators

    US20100235011A1

  • Method, system and storage medium for load dispatch optimization for residential microgrid

    US20200161867A1