Assignment problem processing system and assignment problem processing method
By dividing assignment problems into sub-problems and iteratively optimizing candidates using CMOS annealing, the system avoids local traps, enhancing the search for high-value solutions in complex assignment scenarios.
Patent Information
- Application Number
- JP2022042261
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-17
- Publication Date
- 2024-12-19
- Estimated Expiration
- 2042-03-17
AI Technical Summary
Conventional methods for solving large-scale assignment problems, such as work shift creation and personnel assignment, often get trapped in local solutions due to insufficient search strategies, leading to sub-optimal results.
The system divides the assignment problem into multiple sub-problems, generates and optimizes numerous candidates using CMOS annealing and other computation technologies, evaluates them based on cost, and iteratively refines solutions to enhance the overall evaluation value.
This approach reduces the likelihood of being trapped in local solutions, enabling a broader search for higher-quality solutions and handling complex constraints effectively.
Smart Images

Figure 0007603033000001 
Figure 0007603033000002 
Figure 0007603033000003
Abstract
Description
[Technical field]
[0001] The present invention relates to an assignment problem processing system and an assignment problem processing method. [Background technology]
[0002] Annealing methods have been attracting attention as a fast method for solving combinatorial optimization problems to improve the productivity of social systems. Real problems such as transportation, delivery, and route planning require the consideration of many complex constraints, and allocation problems such as work shift creation and personnel deployment are classified as NP-hard problems, and it is known that it is difficult to create plans at a speed that is practical using conventional computer-based algorithms. For this reason, there is a growing need for automation of allocation planning.
[0003] The inventors of the present invention have conducted extensive research, and based on the knowledge or concept that such re-planning can be solved by a computer as an "optimization problem," they have come up with the following idea. That is, in order to solve large-scale optimization problems in the real world at high speed, it is possible to consider a method of describing the problem using an "interaction model" such as the Ising model, and performing calculations using a "computation technology dedicated to optimization problems" such as CMOS annealing. In re-planning using an interaction model, a promising method for efficiently handling complex constraint conditions is to generate candidates for sub-problems using a column generation method or the like, and then use a means for solving a set partitioning problem or a set covering problem.
[0004] Examples of related art techniques related to the above include the techniques described in the following Patent Documents 1 and 2. The technique of Patent Document 1 includes an acquisition means for acquiring candidate information that is information on subset candidates in a set partitioning problem, and a generation means for generating an equation of a Hamiltonian in an Ising model corresponding to the set partitioning problem based on the candidate information acquired by the acquisition means.
[0005] The technology of Patent Document 2 converts the set partitioning problem into a dual problem in an optimization system that finds an optimal solution to the set partitioning problem, finds a solution to the dual problem, creates a column generator problem that includes the solution to the dual problem and is expressed by binary variables, and solves the column generator problem. When the solution to the column generator problem includes a solution that does not satisfy the convergence condition, the technology of Patent Document 2 adds the solution to the column generator problem to a subset family as a subset candidate, and repeats the generation and solving of the column generator problem until the solution to the column generator problem does not include any solution that does not satisfy the convergence condition. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] JP 2017-151810 A [Patent Document 2] Patent Publication No. 2021-43693 Summary of the Invention [Problem to be solved by the invention]
[0007] Patent Document 1 describes a general set partitioning problem / set covering problem using an interaction model, and describes a configuration for solving optimization problems quickly. Patent Document 2 describes a configuration for solving optimization problems by expanding the method of Patent Document 1, dividing the original problem into sub-problems, and repeatedly finding a solution until no solutions that do not satisfy the convergence condition are included.
[0008] However, in the technology of Patent Document 2, when solving the optimization problem, if only a single solution is retained for the sub-problem and updates are performed locally, there is a concern that the search will be insufficient and there is a high possibility that the solution will be trapped in a local solution overall, even if it is partially optimal or suboptimal.
[0009] The present invention has been made to solve the above problems. That is, one of the objects of the present invention is to provide an assignment problem processing system and an assignment problem processing method that can reduce the possibility of being trapped in a local solution as a whole, enable a wider solution search, and improve the possibility of obtaining a solution with a high evaluation value. [Means for solving the problem]
[0010] In order to solve the above problem, an assignment problem processing system of the present invention is an assignment problem processing system including a computer that processes an assignment problem, wherein the computer is configured to: divide the assignment problem to generate a plurality of subproblems; generate a plurality of candidates that are to be assignment candidates for one of the subproblems; obtain a plurality of partial solutions that are solutions to one of the subproblems by performing an optimization calculation a plurality of times so as to satisfy a constraint condition and to increase an evaluation index based on a cost assigned to each of the candidates; select a predetermined number of the partial solutions from the plurality of obtained partial solutions based on a predetermined evaluation criterion; and newly generate a plurality of candidates that are to be new assignment candidates for other subproblems for which a partial solution is not required, until a predetermined number of the partial solutions have been selected for all of the subproblems; after a predetermined number of partial solutions have been selected for all of the subproblems, calculate solution candidates for the assignment problem by an optimization calculation using the predetermined number of the partial solutions selected for each of the plurality of subproblems; re-evaluate the solution candidates based on the evaluation index; and optimize based on the re-evaluation result, thereby calculating a solution to the assignment problem.
[0011] The assignment problem processing method of the present invention is a method for processing an assignment problem using a computer that processes an assignment problem, in which the computer divides the assignment problem to generate a plurality of subproblems, generates a plurality of candidates that are to be assignment candidates for one of the subproblems, obtains a plurality of partial solutions that are solutions to one of the subproblems by performing an optimization calculation a plurality of times so as to satisfy constraints and to increase an evaluation index based on a cost assigned to each of the candidates, selects a predetermined number of the partial solutions from the plurality of obtained partial solutions based on a predetermined evaluation criterion, and newly generates a plurality of candidates that are to be new assignment candidates for other subproblems for which a partial solution is not required, repeating this process until a predetermined number of the partial solutions have been selected for all of the subproblems, and after a predetermined number of partial solutions have been selected for all of the subproblems, a solution candidate for the assignment problem is calculated by an optimization calculation using the predetermined number of the partial solutions selected for each of the plurality of subproblems, re-evaluates the solution candidate based on the evaluation index, and optimizes based on the re-evaluation result, thereby calculating a solution to the assignment problem. Effect of the Invention
[0012] According to the present invention, the possibility of being trapped in a local solution as a whole can be reduced, a wider solution search can be performed, and the possibility of obtaining a solution with a high evaluation value can be improved. [Brief description of the drawings]
[0013] [Figure 1] FIG. 1 is a block diagram illustrating an example of the configuration of an information processing system according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a block diagram showing an example of the hardware configuration of a physical computer. [Diagram 3] FIG. 3 is a diagram showing the mathematical formula. [Figure 4] FIG. 4 is a flowchart showing the process flow of the process executed by the assignment problem processing system. [Diagram 5] FIG. 5 is a diagram for explaining an example of an assignment problem. [Figure 6]FIG. 6 is a diagram for explaining examples of allocation candidates for subproblems. [Figure 7A] FIG. 7A is a diagram showing Candidate 1. [Figure 7B] FIG. 7B is a diagram showing Candidate 2. [Figure 8A] FIG. 8A is a diagram showing an example of a candidate created from Candidate1. [Figure 8B] FIG. 8B is a diagram showing an example of a candidate created from Candidate2. [Figure 9] FIG. 9 is a diagram showing an example of a tentative solution. [Figure 10] FIG. 10 is a diagram showing an example of an output solution. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] <<Embodiment>> The embodiments of the present invention will be described in detail with reference to the drawings. However, the present invention is not limited to the description of the embodiments shown below. It will be easily understood by those skilled in the art that the specific configuration can be changed without departing from the concept or purpose of the present invention.
[0015] In the following description, the term "storage" may refer to at least one of memory and persistent storage. The term "memory" refers to one or more memory devices, which is an example of one or more storage devices, and may typically be a primary storage device.
[0016] In the following description, a "processor" may refer to one or more processor devices. The at least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit).
[0017] Furthermore, in the following description, for the sake of convenience, it may be described that a software block mainly executes processing, but it should be noted that the actual processing is mainly executed by a processor.
[0018] <Overview of the entire system> FIG. 1 shows processing blocks of an information processing system (allocation plan proposal output system). The information processing system shown in FIG. 1 can be configured by one physical computer. In this case, it may also be called an "information processing device". Alternatively, each component of the information processing system may be realized by a separate physical computer. Furthermore, instead of a computer system having one or more physical computers, the information processing system may be another type of system, for example, a system realized on a group of physical computing resources (for example, a cloud infrastructure) (for example, a cloud computing system).
[0019] FIG. 2 is a block diagram showing an example of the hardware configuration of a physical computer. As shown in FIG. 2, the physical computer 200 includes a CPU 201, a ROM 202, a RAM 203, a non-volatile storage device (HDD) 204 capable of reading and writing data, a network interface 205, and an input / output interface 206. These are connected to each other via a bus 207 so as to be able to communicate with each other. The CPU 201 loads various programs (not shown) stored in the ROM 202 and / or the storage device 204 into the RAM 203 and executes the programs loaded into the RAM 203 to realize various functions. As described above, various programs executed by the CPU 201 are loaded into the RAM 203, and data used when the CPU 201 executes the various programs is temporarily stored. The ROM 202 and / or the storage device 204 are non-volatile storage media, and various programs are stored therein. The network interface 205 is an interface for connecting the physical computer 200 to a network. The input / output interface 206 is an interface for connecting to an input device (operation device) such as a keyboard or a mouse, and a display device such as a display.
[0020] 1 corresponds to the "allocation plan proposal output system" of the present invention. For convenience, the allocation plan proposal output system may also be called an "allocation problem processing system." The information processing system 100 includes an input / output support unit 101, a division candidate generation unit 102, and an optimization calculation unit 103.
[0021] 1, input and output of information (data) to and from the information processing system 100 is performed via an input / output support unit 101. The input / output support unit 101 is connected to an input interface (operation input unit such as a keyboard or mouse, a communication unit such as a modem, etc.) of an external device such as a PC (Personal Computer), receives information input by a user via the input interface, stores the received information in an input data storage unit 101a described later, and supplies the information to a division candidate generation unit 102.
[0022] Furthermore, the input / output support unit 101 is connected to an output interface (such as a display unit such as an LCD, a printing unit such as a printer, an external memory such as an HDD, a communication unit such as a modem, etc.) of an external device such as a PC. The external device can receive, via the output interface, data of a plan proposal (for example, data of a re-plan proposal) that has been automatically formulated by processing input data D10 (assignment problem) by the information processing system 100 from the information processing system 100. Furthermore, the external device can display the data of the plan proposal (for example, data of the re-plan proposal) on, for example, a display provided in the external device so that the data can be visually confirmed.
[0023] The input / output support unit 101 may include a hardware processor for carrying out the above-mentioned processes while communicating with an external device such as the above-mentioned PC.
[0024] Furthermore, the input / output support unit 101 includes an input data storage unit 101a that stores, as input data, information about the plan that was originally formulated (hereinafter referred to as the "original plan") and information about accidents that have occurred, and an output data storage unit 101b that stores, as output data, information about the proposed plan (for example, information about a revised proposed plan based on the original plan); details of this configuration and the information stored therein will be described later.
[0025] The division candidate generating unit 102 determines the sequence length of the candidates to be generated and generates a partial allocation candidate group. The division candidate generating unit 102 includes a division unit determining unit 102a, a partial candidate generating unit 102b, a recalculation range determining unit 102c, and a partial candidate regenerating unit 102d. Details of each of these units will be described later.
[0026] The optimization calculation unit 103 uses a "computational technology dedicated to optimization problems" such as CMOS annealing to process the optimization problem of replanning at high speed. Here, the optimization problem refers to a problem of finding the value of a variable that minimizes or maximizes the cost, which is the evaluation value, under required constraints. The computational technology dedicated to optimization problems is an ultra-high-speed dedicated simulator of an interaction model described in the form of Equation 1 in Figure 3, such as an Ising model or a Boltzmann machine.
[0027] In formula 1, x and h are column vectors, and J is a symmetric matrix. In formula 1, x is a variable. The type of the variable x depends on the nature of the hardware, so it is sufficient to model it appropriately according to the nature of the hardware. Note that the subscript T is a code indicating a transposed matrix.
[0028] Furthermore, in Formula 1, J and h are each a constant, and the width (magnitude) of these constants, whether J and h are integers or real numbers, and the like also depend on the properties of the hardware, but are not particularly limited thereto, and in addition, are less relevant to the features of this embodiment.
[0029] Generally, in computer-related technologies that exclusively calculate optimization problems (hereinafter, sometimes referred to as "computational technologies dedicated to optimization problems"), the optimal value of variable x is found by searching or reproducing on a computer the minimum energy state of the interaction model described in Equation 1 (the value of x that minimizes H on the left side of Equation 1).
[0030] In other words, the calculation technology dedicated to optimization problems performs calculations using input values such as the interaction coefficient of the interaction model (the value corresponding to J in Equation 1) and the external field coefficient (the value corresponding to h in Equation 1), and calculates and outputs the variable x that minimizes H.
[0031] Returning to FIG. 1, the optimization calculation unit 103 is an example of a parallel processing device (a device capable of parallel processing), and serves as an accelerator for solving the allocation problem by calculating an interaction model (e.g., an Ising model) as described above in Equation 1.
[0032] The optimization calculation unit 103 is typically a hardware circuit such as an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), or a Graphics Processing Unit (GPU).
[0033] The optimization calculation unit 103 may be realized by a CPU (Central Processing Unit) having one or more physical or virtual cores.
[0034] Alternatively, the optimization calculation unit 103 can be, for example, a semiconductor computer (for example, a CMOS annealing machine) that simulates the operation of an Ising model using a semiconductor circuit (for example, a CMOS (Complementary Metal Oxide Semiconductor) circuit). The optimization calculation unit 103 may be realized by, for example, an algorithm (for example, momentum annealing) that runs on a GPU.
[0035] Furthermore, the optimization calculation unit 103 may use an annealing type quantum computer or a general-purpose quantum computer instead of a digital computer.
[0036] The optimization calculation unit 103 includes a candidate selection optimization calculation unit 103a, a KPI evaluation unit 103b, a partial solution storage unit 103c, a partial solution selection data creation unit 103d, a partial solution selection optimization calculation unit 103e, a selected partial solution storage unit 103f, a selected candidate storage unit 103g, a KPI evaluation unit 103h, and a result selection optimization calculation unit 103i. Details of each of these units will be described later.
[0037] A general-purpose computer is an example of the input / output support unit 101 and the division candidate generation unit 102. The general-purpose computer is, for example, a von Neumann type computer or the like, and is configured, for example, by the physical computer shown in FIG.
[0038] For example, the input / output support unit 101 is composed of a network interface 205 and / or an input / output interface 206, various programs stored in a ROM 202 and / or a storage device 204, and a storage device 204. The input data storage unit 101a is composed of the storage device 204. The output data storage unit 101b is composed of the storage device 204.
[0039] The division candidate generation unit 102 is configured by various programs stored in the ROM 202 and / or the storage device 204 and executed by the CPU 201. The division unit determination unit 102a, the partial candidate generation unit 102b, the recalculation range determination unit 102c, and the partial candidate regeneration unit 102d are configured by various programs stored in the ROM 202 and / or the storage device 204.
[0040] An example of the hardware configuration of the optimization calculation unit 103 includes a general-purpose computer, a dedicated computer, and a storage device. The general-purpose computer is, for example, configured with the physical computer shown in FIG. 2 above. The dedicated computer is, for example, configured with a CMOS annealing machine. The storage device is, for example, configured with the RAM 203 and / or the storage device 204 included in the physical computer shown in FIG. 2 above.
[0041] For example, the KPI evaluation unit 103b, the partial solution storage unit 103c, the partial solution selection data creation unit 103d, the selected partial solution storage unit 103f, the selection candidate storage unit 103g, and the KPI evaluation unit 103h are configured as physical computers.
[0042] For example, the KPI evaluation unit 103 b is configured with various programs stored in the ROM 202 and / or the storage device 204 and executed by the CPU 201 .
[0043] The partial solution storage unit 103 c is configured with the RAM 203 and / or the storage device 204 .
[0044] The partial solution selection data generating unit 103 d is implemented by various programs stored in the ROM 202 and / or the storage device 204 and executed by the CPU 201 .
[0045] The selection portion resolution storage unit 103 f is configured with the RAM 203 and / or the storage device 204 .
[0046] The selection candidate storage unit 103 g is configured with the RAM 203 and / or the storage device 204 .
[0047] The KPI evaluation unit 103 h is configured by various programs stored in the ROM 202 and / or the storage device 204 and executed by the CPU 201 .
[0048] The candidate selection optimization calculation unit 103a, the partial solution selection optimization calculation unit 103e, and the result selection optimization calculation unit 103i are configured, for example, by the above-mentioned CMOS annealing machine.
[0049] The operation of this system will be described with reference to Fig. 1. Input data D10 is node data D11 of assignment target groups (people, objects, tasks, etc.) and a candidate sequence length limiting parameter D12 that limits the sequence length of candidates generated by sequence generation.
[0050] The candidate sequence length limiting parameter D12 is input to a division unit determining section 102a of a division candidate generating section 102 of the information processing system 100. The division unit determining section 102a determines the sequence length of a candidate to be generated based on the candidate sequence length limiting parameter D12, and outputs the determined length to a portion candidate generating section 102b.
[0051] The partial candidate generating unit 102b uses this value (value indicating the string length) and the node data D11 to generate a partial allocation candidate group (see FIG. 6 described later). The generated partial allocation candidates are solved in the form of an allocation problem (in the form of each subproblem obtained by dividing the allocation problem) by the candidate selection optimization calculation unit 103a of the optimization calculation unit 103. The obtained solution is subjected to calculation of an evaluation value and judgment of the satisfaction of constraints by the KPI evaluation unit 103b. This series of optimization calculations and KPI evaluations are executed multiple times, and the obtained constraint satisfaction solutions are stored in the partial solution storage unit 103c.
[0052] After that, the partial solution group consisting of multiple partial solutions stored in the partial solution storage unit 103c is converted into a combinatorial optimization problem in the partial solution selection data creation unit 103d, which finds a combination of solution candidates that balances each KPI and the diversity of solutions, and calculations are performed in the partial solution selection optimization calculation unit 103e. The partial solution group selected by this calculation is stored in the selected partial solution storage unit 103f.
[0053] In the selection partial solution storage unit 103f, when there is a result of an iteration (calculation) for a previous subproblem, the partial solutions are combined and stored, and the stored solution becomes the input for the partial candidate generation unit 102b in the iteration for the next subproblem. Then, using that data and the node data D11, the partial candidate generation unit 102b generates partial candidates for the iteration, and the optimization calculation unit 103 (candidate selection optimization calculation unit 103a) calculates a partial solution in the same manner.
[0054] After a preset number of iterations, when solutions have been assigned to all assignment targets, the solution candidate with the highest KPI from the solution candidate group stored in the selected partial solution storage unit 103f is stored in the selected candidate storage unit 103g.
[0055] The solution stored in the selection candidate storage unit 103g is reevaluated in the recalculation range determination unit 102c. That is, the solution stored in the selection candidate storage unit 103g is compared in the recalculation range determination unit 102c with the KPIs of the partial solutions calculated so far and the currently held solution, an interval that lowers the KPI is detected, the partial candidate regeneration unit 102d regenerates partial candidates in that interval, the result selection optimization calculation unit 103i performs optimization calculation, the KPI evaluation unit 103h calculates the evaluation value of the solution, and if it improves the overall evaluation value, it is stored in the selection candidate storage unit 103g.
[0056] The above process is performed until a termination condition such as a specified number of times or processing time is met (for example, a condition that the specified number of times reaches a threshold number of times, or a condition that the processing time reaches a threshold time), and the result is output as allocation data D20.
[0057] FIG. 4 describes the process flow of the information processing system 100 described above. As input data D10, data D11 to be assigned and a candidate sequence length restriction parameter D12 that restricts the sequence length of the assignment candidate (the number of elements included in the candidate) are used (step 400). A partial candidate group is generated from the above data, and a candidate is selected from the candidate group by optimization calculation (steps 401 to 403). A partial evaluation value is calculated for the calculated candidate (step 404), and if the specified number of times (specified number of trials) has not been reached ("NO" in step 405), an iterative optimization calculation is performed to select a candidate. If a solution to another partial problem already exists, the obtained candidate is combined with it to create a new solution (step 406).
[0058] If allocation candidates have not been generated for all the divided subproblems after a preset number of attempts ("NO" in step 407), partial input data is created based on the currently obtained subproblem candidates (step 401). After allocation candidates have been generated for all the subproblems ("YES" in step 407), the solution candidate with the highest KPI is selected.
[0059] For the obtained solution candidates, the KPIs of the calculated subproblems are compared with the current solution candidates to find out the parts where the KPIs are dropping (step 408). For the parts that are found, partial input data is created for reassignment (step 409), a group of partial candidates is generated, and reassignment is performed (step 410). If the evaluation value of the obtained solution (step 411) exceeds that of the existing one, it is made into a new solution candidate.
[0060] This is repeated until a termination condition (such as a condition based on a reference KPI or processing time) is met (YES in step 412), and the solution that satisfies the termination condition is output as the overall solution (step 413). EXAMPLES
[0061] The present invention will be described in more detail below with reference to examples. Note that the present invention is not limited to the following examples. The following will be described with reference to the flow chart of FIG. 4, taking task scheduling as an example problem.
[0062] This example is a problem of allocating three types of tasks and days off to eight workers over a six-day period, but it is merely an example of allocating tasks to workers, and the present invention should not be interpreted as being limited to the following description. Therefore, for example, as another example, the workers may be replaced with a factory line, etc.
[0063] In such allocation problems, constraints are often imposed, such as the number of people required for each task, the minimum number of days off for each worker, prohibited patterns, day shifts, night shifts, and the allocation of experienced workers to newcomers. Indicators for evaluating the created allocation plan include the extent to which necessary tasks are assigned to each worker from the perspective of multi-skilling, and the extent to which workers' desired days off are respected.
[0064] In this embodiment, the constraint to be observed is the number of people required for each task, and the evaluation index is the degree to which each worker's desired days off are respected. The evaluation index is calculated for each candidate created, for example, the former requires worker 1 to be assigned task 1 three times during the period, and the evaluation value is reduced by the number of people that is lacking.
[0065] The input data are the number of workers, the type of tasks, the period to be assigned, the conditions associated with the constraints, and the length of the candidate sequence (in this example, 1 to 6 are possible since the data is divided by date, and 3 is used in this embodiment). The output data are the tasks assigned to each worker on each day, as shown in table 500 in FIG. 5.
[0066] In step 401 of Fig. 4, partial input data is created for given input data. The partial input data is data necessary for generating candidates for the partial problem, and the partial problem is created by dividing the original data into a plurality of partial data using a parameter that limits the sequence length of the candidates, which are the input data. In this embodiment, since the limiting parameter is 3 for a 6-day assignment period, the partial problem refers to an assignment problem of two tasks for each of the periods DAY1-3 and DAY4-6 for 8 workers. In this embodiment, since the contents of the tasks do not change over the period, there is no need to give special consideration to the partial input data.
[0067] In step 402 of FIG. 4, for the subproblem corresponding to the partial input data created in step 401, task f allocation candidates for each worker are expressed by a vector consisting of two values, 1 and 0, as shown in table 600 of FIG. 6. In this table, the columns indicate plan candidates, and the rows indicate the workers and tasks to be assigned. The column with j=1 is one of the allocation candidates in the subproblem (DAY1-3), and the row with i=1 indicates whether or not there is an allocation to worker 1, so this allocation candidate means a candidate for task allocation to worker 1. In this candidate, since i=9, 14, and 18 are each 1, worker 1 is assigned task 1 on DAY1, task 2 on DAY2, and task 2 on DAY3.
[0068] In step 403, a candidate is selected by optimization calculation. The optimization calculation performed here is to solve a set covering problem in which one task is assigned to each worker and overlapping tasks are allowed, and is generally expressed as Equation 2 in FIG. 3. In this equation, the binary variable xj determines which combination of columns j is selected. Specifically, if a planning candidate for column j is selected, xj=1, and if not, xj=0. Only the routes for which xj=1 are extracted become the actual shift plan proposal. In the example of FIG. 6, Aij in Equation 2 is a matrix of binary values of 0 / 1 surrounded by a thick frame L1. Also, Bi indicates the number of times each worker and task needs to be assigned, and usually, each worker is selected once, and each task is set for the required number of people, and Cj is counted as a cost when the day off desired by each worker is not assigned in the candidate j. In this embodiment, the "day off" shown in FIG. 5 is the desired day off, and if a day off other than this desired day is assigned, the cost is set to 1, and if it is as desired, it is set to 0. The result obtained here is a set of eight candidates that are partial task allocation plan candidates for eight workers over three days. These are candidate sets with small Cj according to formula 2, and the days off desired by workers are respected as much as possible, and the KPI can be calculated using formula 2 as is. In this embodiment, the optimization calculation unit 103 uses formula 3. KPI (Key Performance Indicator) is an index (numerical value, parameter) for monitoring, evaluating, or measuring the degree to which a goal is achieved. Such indexes, including KPI, may be referred to as "evaluation indexes" for convenience.
[0069] In step 404, a partial evaluation value is calculated from the above-mentioned evaluation index for the obtained partial allocation plan candidate, and the partial allocation plan candidate and the obtained partial evaluation value are associated with each other and saved.
[0070] In step 405, it is determined whether the candidate selection and evaluation value calculation have been performed a prescribed number of times, and the candidate selection and evaluation value calculation are repeated until the prescribed number of times is reached.
[0071] Since the subproblem to be processed next is generated taking into account the state of the previous subproblem, if all partial allocation plan candidates obtained by multiple iterations were left, the number of candidates would explode every time a subproblem is solved. Therefore, in step 406, solution candidates are selected to limit the number of candidates to be input to the next subproblem.
[0072] Specifically, for example, a solution candidate is selected by considering compatibility between KPI and diversity of solutions using the similarity between candidates calculated from the evaluation value of each partial allocation plan candidate and the distance between the candidate vectors. Regarding the similarity between candidates, since the lengths of each candidate vector are all equal as shown in FIG. 6, the similarity coefficient Sij is calculated using the Hamming distance, but other indices such as Euclidean distance may be used. In addition, in annealing, a partial allocation candidate is selected using an objective function such as Equation 4 in FIG. 3. In this embodiment, it is assumed that two candidates (cand1, cand2) are left as partial allocation plan candidates. Note that cand1 (Candidate1) is shown in FIG. 7A, and cand2 (Candidate2) is shown in FIG. 7B.
[0073] In step 407, it is determined whether this calculation has been completed for all the subproblems. At this point, since the allocation for the subproblems of DAY4 to DAY6 has not yet been completed, the process returns to step 201 again to create partial input data.
[0074] In step 402 from the second time onwards, candidates are created for each of the two partial allocation plan candidates, as shown in Figures 8A and 8B. To explain in more detail, the partial allocation plan candidate shown in Figure 8A is created from cand1 shown in Figure 7A, and the partial allocation plan candidate shown in Figure 8B is created from cand2 shown in Figure 7B. Here, j' means the allocation candidate generated for cand1, and j" is the allocation candidate generated from cand2.
[0075] Candidates are generated in this manner because, although not considered as constraints in this embodiment, when constraints are applied to the entire original problem rather than to subproblems such as "assign one holiday during a period," "assign a specific task to a specific person a specific number of times during a period," or "avoid assigning the same task consecutively (additional costs are assigned)," the number of assigned tasks, number of holidays, etc. differ for each partial allocation plan candidate, resulting in different costs and constraints for each candidate.
[0076] For example, in the case of a constraint that applies to the entire original problem (e.g., taking at least one day off in six days), when dividing the problem, it is possible to deal with the issue by adding a new constraint to each sub-problem in advance, such as "allow one day off in the first division unit (DAY1-3), and allow the number of days off to be 0 or more in the second division unit (DAY4-6)," or by changing the constraints added to subsequent sub-problems for each sub-problem allocation result.
[0077] After steps 403 to 406 are performed again, in step 407, since the selection of all subproblems has been completed, one partial allocation plan candidate with the highest evaluation index is selected as a provisional solution to the original problem (see FIG. 9).
[0078] In steps 408 and after, based on the partial evaluation values obtained so far, find the part where the evaluation value is decreasing or the part where the constraint is violated when viewed as a whole for this provisional solution, create input data for the relevant section (it is not necessary to divide it into DAY1-3 and DAY4-6, and a section different from the previous section such as DAY2-5 may be generated) (step 409), generate partial candidate groups and calculate evaluation values multiple times (steps 410, 411), and if the evaluation value seems to have improved, use it as a new provisional solution. In this embodiment, since there are no constraints for each partial problem, it is found that the cost has increased for the DAY1-3 part of the provisional optimal solution compared to cand1 obtained in step 403, so recalculate the DAY1-3 part as a cost-decreasing section and output the final solution (see FIG. 10). In step 412, the calculation process is terminated based on a termination condition, such as a specified evaluation value being satisfied or a specified calculation time being exceeded, and the solution held at that time is output as the final allocation plan.
[0079] <Effects> As described above, the allocation plan output system (information processing system 100) according to the embodiment of the present invention introduces a parameter that limits the column length (number of nodes) of candidates for column generation, suppresses the explosion of the number of candidates by dividing the problem, and performs annealing sequentially for each subproblem, thereby performing annealing while maintaining the optimal solution (means 1). Furthermore, the allocation plan output system selects a candidate that balances "KPI" and "diversity of solutions (calculated from the distance between vectors)" from the candidate group obtained by performing annealing multiple times on the divided subproblems, and uses it as the input for the next division (means 2). Furthermore, the allocation plan output system detects a section that violates constraints or reduces KPI (from the annealing result, etc.) in the selected result, and performs annealing again until the termination condition is satisfied to improve the KPI (means 3).
[0080] As a result, the allocation plan proposal output system has multiple solutions, which enables a wider solution search, and can obtain a solution with a high evaluation value. Furthermore, as a secondary effect, the allocation plan proposal output system can process data on a scale that is difficult to process with conventional methods, and can handle changes in the data content after annealing using the means 3. [Explanation of symbols]
[0081] 100...information processing system, 101...input / output support unit, 102...division candidate generation unit, 102a...division unit determination unit, 102b...partial candidate generation unit, 102c...recalculation range determination unit, 102d...partial candidate regeneration unit, 103...optimization calculation unit, 103a...candidate selection optimization calculation unit, 103b, 103h...KPI evaluation unit, 103c...partial decomposition storage unit, 103d...partial decomposition selection data creation unit, 103e...partial decomposition selection optimization calculation unit, 103f...selected partial decomposition storage unit, 103g...selected candidate storage unit, 103i...result selection optimization calculation unit
Claims
1. An assignment problem processing system including a computer that processes an assignment problem, The computer includes: Dividing the assignment problem into a plurality of subproblems; generating a plurality of candidates to be assigned to one of the subproblems, obtaining a plurality of partial solutions, which are solutions to one of the subproblems, by performing an optimization calculation a plurality of times so as to satisfy the constraint conditions and to increase an evaluation index based on a cost assigned to each of the candidates, selecting a predetermined number of the partial solutions from the plurality of partial solutions obtained based on a predetermined evaluation criterion, and generating a plurality of new candidates to be assigned to other subproblems for which a partial solution is not required, until a predetermined number of the partial solutions have been selected for all of the subproblems; after a predetermined number of the partial solutions for all of the subproblems have been selected, calculating candidate solutions to the assignment problem using the predetermined number of the partial solutions selected for each of the plurality of subproblems by an optimization calculation; re-evaluating the solution candidates based on an evaluation index and optimizing the solution candidates based on a re-evaluation result, thereby calculating a solution to the assignment problem. It was configured as follows: Assignment problem processing system.
2. 2. The assignment problem processing system according to claim 1, The computer includes: In the process, based on a predetermined number of the partial solutions selected in a previous process, a plurality of candidates are newly generated as new candidates for the allocation to the other subproblems for which the predetermined number of the partial solutions have not been selected. It was configured as follows: Assignment problem processing system.
3. 2. The assignment problem processing system according to claim 1, The computer includes: In the partial solution optimization process, a similarity is used as the predetermined evaluation criterion. It was configured as follows: Assignment problem processing system.
4. 2. The assignment problem processing system according to claim 1, The computer repeatedly optimizes the solution candidates until a predetermined termination condition is satisfied. It was configured as follows: Assignment problem processing system.
5. 2. The assignment problem processing system according to claim 1, The computer includes: If there is a part of the solution candidates with a low evaluation as a result of the reevaluation, a plurality of candidates are newly generated as allocation candidates to replace the part of the solution candidates, and a group of candidates to replace the part of the solution candidates is obtained by an optimization calculation; optimizing the solution candidates by replacing a part of the solution candidates having low evaluations with the set of candidates so that the evaluation of the solution candidates is high; It was configured as follows: Assignment problem processing system.
6. 2. The assignment problem processing system according to claim 1, The computer includes: evaluating whether the constraints are violated during the re-evaluation; If there is a part of the solution candidate that violates the constraint condition, a plurality of candidates are newly generated as allocation candidates to replace the part of the solution candidate, and a group of candidates to replace the part of the solution candidate is obtained by an optimization calculation; optimizing the solution candidates by replacing a part of the solution candidates that violate the constraint conditions with the set of candidates so that the solution candidates are evaluated highly; It was configured as follows: Assignment problem processing system.
7. 6. The assignment problem processing system according to claim 5, The computer includes: In the reevaluation, the cost of each of the solution candidates is evaluated by comparing it with the cost of each of the partial solution candidates already obtained by the optimization calculation. It was configured as follows: Assignment problem processing system.
8. 2. The assignment problem processing system according to claim 1, The computer includes: generating a plurality of candidates for the allocation to the other subproblems for which the partial solutions have not been obtained, so as to satisfy the constraint conditions of the optimization calculation; It was configured as follows: Assignment problem processing system.
9. In the assignment problem processing system according to any one of claims 1 to 8, The computer includes: The optimization calculation is performed by annealing. It was configured as follows: Assignment problem processing system.
10. An assignment problem processing method using a computer that processes an assignment problem, comprising: By the computer, Dividing the assignment problem into a plurality of subproblems; generating a plurality of candidates to be assigned to one of the subproblems, obtaining a plurality of partial solutions, which are solutions to one of the subproblems, by performing an optimization calculation a plurality of times so as to satisfy the constraint conditions and to increase an evaluation index based on a cost assigned to each of the candidates, selecting a predetermined number of the partial solutions from the plurality of partial solutions obtained based on a predetermined evaluation criterion, and generating a plurality of new candidates to be assigned to other subproblems for which a partial solution is not required, until a predetermined number of the partial solutions have been selected for all of the subproblems; after a predetermined number of the partial solutions for all of the subproblems have been selected, calculating candidate solutions to the assignment problem using the predetermined number of the partial solutions selected for each of the plurality of subproblems by an optimization calculation; re-evaluating the solution candidates based on an evaluation index and optimizing the solution candidates based on a re-evaluation result, thereby calculating a solution to the assignment problem. How to handle assignment problems.
Citation Information
Patent Citations
Vehicle allotment planning method
JP1989231200A
Resource allocation support device, resource allocation support method, and resource allocation support program
JP2009238033A
Energy management device for vehicle
JP2017136943A
Information processing device, information processing method, and program
JP2017151810A
Optimization system, optimization support device, optimization support method, and optimization support program
JP2021043693A
