Arithmetic method, program, and arithmetic apparatus
By dividing scheduling problems into sub-problems and assigning unallocated jobs to subsequent slots, the computational load of Ising models is reduced, enabling efficient and optimal solutions within the bit capacity limits of the Ising machine.
Patent Information
- Application Number
- JP2024062781
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-09
- Publication Date
- 2025-10-22
AI Technical Summary
Existing computational methods using Ising models for scheduling problems result in high computational load due to the complexity of the problems and the limitations of Ising machines in handling large numbers of bits.
A calculation method that divides the scheduling problem into multiple sub-problems by setting divided time slots and using an Ising machine to allocate jobs to these slots, ensuring that unallocated jobs are assigned to subsequent slots, thereby reducing the computational load and adhering to the bit capacity limits of the Ising machine.
This approach reduces the overall computational load on the Ising machine by breaking down the scheduling problem into manageable sub-problems, allowing for efficient calculation of optimal solutions within the bit capacity constraints of the Ising machine.
Smart Images

Figure 2025159919000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a computing method, a program, and a computing device. [Background technology]
[0002] There is known a computational method for finding a solution to an Ising model consisting of multiple bits that can be in one of two states. For example, Patent Document 1 describes a solution calculation step in which an Ising machine that physically simulates annealing is used to find a feasible solution that can complete multiple operations within a predetermined end time Tu, and when a feasible solution is found, updating the end time Tu to Tu-1 and repeating the solution calculation step to calculate an approximate solution to a scheduling problem corresponding to the Ising model. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 6778942 Summary of the Invention [Problem to be solved by the invention]
[0004] Here, when a solution to a scheduling problem is obtained using an Ising model, it is desired to reduce the computational load caused by using the Ising model.
[0005] The present disclosure is intended to solve the above-described problems, and aims to provide a calculation method, a program, and a calculation device that can reduce the calculation load using an Ising model. [Means for solving the problem]
[0006] A calculation method according to the present disclosure is a calculation method for performing calculations for a scheduling problem of allocating jobs to time slots per unit time, and includes the steps of: acquiring job information indicating a plurality of jobs to be calculated; setting a plurality of divided time slots, each of which includes a plurality of time slots, for each time series; and acquiring, for each divided time slot, a calculation result obtained by an Ising machine in which the jobs indicated by the job information are allocated to the time slots included in the divided time slots, and the calculation result obtained in which the jobs are allocated to the time slots included in the divided time slot and the subsequent time slot, on the condition that the jobs that are not allocated to the time slots included in the divided time slot are assigned to the subsequent time slot, which is the time slot immediately after the divided time slot.
[0007] A program according to the present disclosure is a program that causes a computer to execute a calculation for a scheduling problem of allocating jobs to time slots per unit time, and causes the computer to execute the following steps: acquiring job information indicating a plurality of jobs to be calculated; setting a plurality of divided time slots, each of which includes a plurality of time slots, for each time series; and acquiring, for each divided time slot, a calculation result obtained by an Ising machine in which the jobs indicated by the job information are assigned to the time slots included in the divided time slots. In the step of acquiring the calculation results, the program acquires the calculation result in which the jobs are assigned to the time slots included in the divided time slot and the subsequent time slot, on the condition that the jobs that are not assigned to the time slots included in the divided time slot are assigned to the subsequent time slot, which is the time slot immediately after the divided time slot.
[0008] A computing device according to the present disclosure is a computing device that performs computations for a scheduling problem of allocating jobs to time slots per unit time, and includes: a job information acquisition unit that acquires job information indicating a plurality of jobs to be computed; a split time slot setting unit that sets a plurality of split time slots, each including a plurality of time slots, for each time series; and a computation result acquisition unit that acquires, for each split time slot, a computation result obtained by an Ising machine in which the jobs indicated by the job information are allocated to the time slots included in the split time slots, and the computation result acquisition unit acquires the computation result in which the jobs are allocated to the time slots included in the split time slot and the subsequent time slot, on the condition that the jobs that are not allocated to the time slots included in the split time slot are assigned to the subsequent time slot, which is the time slot immediately after the split time slot. [Effects of the Invention]
[0009] According to the present disclosure, the computational load using an Ising model can be reduced. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a schematic block diagram of a computing system according to this embodiment. [Figure 2] FIG. 2 is a schematic block diagram of the arithmetic unit. [Figure 3] FIG. 3 is a schematic diagram for explaining an example of divided time periods. [Figure 4] FIG. 4 is a table showing an example of the calculation results. [Figure 5] FIG. 5 is a table showing an example of the calculation results for the divided time periods. [Figure 6] FIG. 6 is a table showing an example of the calculation results for the divided time periods. [Figure 7] FIG. 7 is a flowchart illustrating the process flow for calculating the scheduling problem. [Figure 8] FIG. 8 is a schematic diagram illustrating an example of job information. [Figure 9]FIG. 9 is a schematic diagram showing an example of setting non-execution time slots. [Figure 10] FIG. 10 is a schematic diagram showing an example of setting non-execution time slots. DETAILED DESCRIPTION OF THE INVENTION
[0011] Preferred embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. Note that the present disclosure is not limited to these embodiments, and when there are multiple embodiments, the present disclosure also includes configurations in which the respective embodiments are combined.
[0012] (Calculation System) FIG. 1 is a schematic block diagram of a computing system according to this embodiment. As shown in FIG. 1, the computing system 1 according to this embodiment includes a computing device 10 and an Ising machine 12. The computing system 1 is a system in which information is transmitted from the computing device 10 to the Ising machine 12 and a solution to a scheduling problem is computed by the Ising machine 12. The computing device 10 and the Ising machine 12 are separate pieces of hardware and are provided in separate facilities. However, the computing device 10 and the Ising machine 12 may be provided in any location, and may be provided in the same facility, for example. Furthermore, in the example of FIG. 1, the computing device 10 and the Ising machine 12 directly transmit and receive information, but this is not limiting and the computing device 10 and the Ising machine 12 may transmit and receive information via another device (for example, a server).
[0013] (Scheduling problem) A scheduling problem refers to a problem in which the execution order and execution times of multiple jobs are calculated as a solution. More specifically, a scheduling problem is a problem in which jobs are assigned to time slots set for each unit of time along a time series, and the result of assigning jobs to time slots is calculated as a solution. The jobs in a scheduling problem may be any task, such as a manufacturing process, a worker's work, or information communication.
[0014] (Ising machine) The Ising machine 12 is a device that calculates a solution to a combinatorial optimization problem using an Ising model. An example of a combinatorial optimization problem is calculating a solution to a scheduling problem. An Ising model is a physical system consisting of multiple bits that can take one of two states. An example of an Ising model is multiple magnetic elements that can take a spin state of +1 or -1. Here, the scheduling problem can be expressed using an Ising model because it is a problem of calculating, for each job, two states, whether or not the job is assigned to each time slot. Therefore, in this embodiment, the Ising machine 12 has an Ising model that expresses the scheduling problem using the Ising model. The Ising machine 12 performs calculations on the scheduling problem expressed using the Ising model using quantum annealing, and calculates the calculation results of allocating jobs to time slots as a solution. In other words, the Ising machine 12 is a so-called quantum computer (a computer that utilizes pseudo or actual quantum mechanical effects) that has an Ising model and performs calculations using quantum annealing, and is hardware that is different from classical computers such as personal computers. In the following, processing is explained using equations in the QUBO (Quadratic Unconstrained Binary Optimization) format. QUBO is a mathematical model that can take on a spin state of +1 or 0, and can be converted into an equivalent Ising model. Therefore, when modeling a scheduling problem, whether it is created in the QUBO or Ising model format, it can be executed on an Ising machine.
[0015] (computing device) FIG. 2 is a schematic block diagram of a computing device. The computing device 10 is a computer, in other words, a classical calculator different from a quantum computer. As shown in FIG. 2, the computing device 10 has an input unit 20, an output unit 22, a communication unit 24, a storage unit 26, and a control unit 28. The computing device 10 may be configured as a standalone device, may be configured integrally with other devices, or may be configured as a system combining various devices such as a processor and a data server, and is not particularly limited.
[0016] The input unit 20 is an input device such as a keyboard, and accepts information input by a user of the arithmetic device 10. The output unit 22 is a device that outputs information, and may include, for example, a display device that displays images and a speaker that outputs sound. The communication unit 24 is a module that is used in the control unit 28 and communicates with external devices such as the Ising machine 12, and may include, for example, an antenna. The storage unit 26 is a memory that stores various information such as the calculation contents and programs of the control unit 28, and includes, for example, at least one of a random access memory (RAM), a main storage device such as a read only memory (ROM), and an external storage device such as an HDD (hard disk drive).
[0017] The control unit 28 is a processor that processes information and includes an arithmetic circuit such as a CPU (Central Processing Unit). The control unit 28 includes a job information acquisition unit 30, a divided time slot setting unit 32, an information transmission unit 34, and a calculation result acquisition unit 36. The control unit 28 reads and executes a program (software) from the storage unit 26, thereby realizing the job information acquisition unit 30, the divided time slot setting unit 32, the information transmission unit 34, and the calculation result acquisition unit 36 and executing the processes. The control unit 28 may execute the processes using a single CPU, or may be provided with multiple CPUs and execute the processes using the multiple CPUs. At least some of the job information acquisition unit 30, the divided time slot setting unit 32, the information transmission unit 34, and the calculation result acquisition unit 36 may be implemented using hardware circuits. The program for the control unit 28 stored in the storage unit 26 may be stored in a recording medium readable by the calculation device 10.
[0018] The job information acquisition unit 30 acquires job information, which is information about a job O of the scheduling problem to be calculated. The divided time slot setting unit 32 sets a plurality of divided time slots DT, each including a plurality of time slots, for each time series. The information transmission unit 34 transmits information (calculation information) necessary for calculating the scheduling problem, such as the job information and the divided time slots DT, to the Ising machine 12. The calculation result acquisition unit 36 acquires the calculation results of the scheduling problem by the Ising machine 12. The specific processing contents of these will be described later.
[0019] (Scheduling problem computation) Hereinafter, the computational processing of the scheduling problem by the computation system 1 will be described.
[0020] (Get job information) The job information acquisition unit 30 of the computing device 10 acquires job information for the scheduling problem to be computed. The job information acquisition unit 30 acquires, as the job information, information indicating the job O to be computed. In this embodiment, the job information acquisition unit 30 preferably acquires, as the job information, information on the execution time of the job O, information on the execution order of the job O, and information on the resources of the job O for each job O to be computed. The execution time of the job O refers to the time from the start to the end of the job O, and the execution order of the job O refers to a constraint on the execution order of the job O relative to other jobs. Examples of execution order constraints include a constraint (Finish To Start) that the job O starts after another job finishes, a constraint (Start To Start) that the job O starts after another job starts, a constraint (Start To Start) that another job starts after the job O finishes, a constraint (Start To Start) that another job starts after the job O finishes, a constraint (Start To Start) that another job starts after the job O finishes, or a constraint (Start To Start) that another job starts after the job O starts. The resource information of the job O is information indicating the resources (machines and workers) used to execute the job O. The job information acquisition unit 30 may acquire job information in any manner, for example, it may acquire job information from another device via the communication unit 24, or it may read out job information that has been previously stored in the memory unit 26.
[0021] (Setting split time zones) The divided time slot setting unit 32 of the calculation device 10 sets a plurality of divided time slots DT, each including a plurality of time slots t, for each time series. A time slot t refers to a time frame of a unit time. In other words, a time slot t is a time frame having a predetermined time length, and the respective time slots t are shifted in time series without overlapping. The time length (unit time) of the time slots t may be set arbitrarily. In this embodiment, the time length of each time slot t is the same, but this is not limited thereto, and the time length of each time slot t may be different. For example, the divided time slot setting unit 32 may acquire information on scheduled time slots, which are time periods during which each job O of the scheduling problem to be calculated is scheduled to be executed, and set the time slots t by dividing the scheduled time slots into predetermined time lengths (unit times). The information on the scheduled time slots may be acquired by the job information acquisition unit 30 as job information.
[0022] FIG. 3 is a schematic diagram illustrating an example of a divided time slot, and FIG. 4 is a table showing an example of a calculation result. The divided time slot setting unit 32 sets a collection of multiple time slots t that are consecutive in chronological order as a divided time slot DT. The divided time slot setting unit 32 sets multiple divided time slots DT by setting the divided time slots DT while shifting the time order of the multiple time slots t to be collected. That is, the divided time slots DT are shifted without overlapping in chronological order. Furthermore, it is preferable that divided time slots DT that are closest in chronological order are consecutive with each other. In other words, it is preferable that there is no other time slot t between the divided time slots DT that are closest in chronological order. Using FIG. 3 as an example, consecutive time slots t1 to t16 are set, and divided time slots DT1 including time slots t1 to t5, divided time slot DT2 including time slots t6 to t10, divided time slot DT3 including time slots t11 to t15, and divided time slot DT4 including time slots t16 and onward are set.
[0023] The divided time slot setting unit 32 may arbitrarily set the number of time slots t included in the divided time slots DT. However, in this embodiment, the divided time slot setting unit 32 sets the number of time slots t included in the divided time slots DT based on the number of jobs O indicated in the job information and the upper limit number of bits that the Ising machine 12 can handle. More specifically, the divided time slot setting unit 32 sets the number of time slots t included in the divided time slots DT so that the value obtained by multiplying the number of jobs O indicated in the job information by the number of time slots t included in the divided time slots DT (the total number of bits in the divided time slots DT) is equal to or less than the upper limit number of bits that the Ising machine 12 can handle. The upper limit number of bits that the Ising machine 12 can handle refers to the upper limit of the number of bits that the Ising machine 12 can handle in one set of calculations, and may refer to, for example, the total number of magnetic elements included in the Ising model. That is, for example, in the examples of FIGS. 3 and 4, the upper limit number of bits of the Ising machine 12 is equal to or less than the value obtained by multiplying the number of jobs O (10) by the number of time slots t (5) included in the divided time slots DT (5). The divided time slot setting unit 32 may obtain the upper limit number of bits in any manner, for example, it may read out the number of upper limit numbers of bits that has been stored in advance in the storage unit 26. Furthermore, it is preferable that the number of time slots t included in each divided time slot DT is the same for each divided time slot DT, but this is not limiting, and the number of time slots t for each divided time slot DT may be different.
[0024] (Transmission of calculation information) The information transmitting unit 34 transmits calculation information required for calculating the scheduling problem to the Ising machine 12 via the communication unit 24. The information transmitting unit 34 transmits, as the calculation information, the job information acquired by the job information acquiring unit 30 and information on the divided time slot DT set by the divided time slot setting unit 32 to the Ising machine 12. The information transmitting unit 34 transmits, as the information on the divided time slot DT, information indicating the time slot t included in the divided time slot DT to the Ising machine 12.
[0025] (Calculation) After receiving the calculation information (job information and information on the divided time slots DT) from the calculation device 10, the Ising machine 12 executes a calculation for the scheduling problem using an Ising model based on the calculation information. More specifically, the Ising machine 12 executes a calculation for allocating each job O included in the job information to a time slot t included in the divided time slot DT using the Ising model. That is, the Ising machine 12 executes a calculation for allocating each job O included in the job information to a time slot t for each divided time slot DT. By executing a calculation for each divided time slot DT in this manner, it is possible to obtain a solution in which the time slot t is assigned to all jobs O included in the scheduling problem, as shown in the example of FIG. 4, for example. Note that FIG. 4 shows jobs O1 to O10 as jobs O, and the calculation result shows that each job O1 to O10 is assigned to one of the time slots t1 to t16. The number "1" in FIG. 4 indicates that the job O is assigned to the time slot t. In other words, the calculation result indicates that the job O will start in the time slot t. Also, the number "0" in Figure 4 indicates that the job O is not assigned to the time slot t, in other words, the calculation result indicates that the job O will not start in the time slot t. The numbers "1" and "0" correspond to the spin states in the Ising model.
[0026] The calculation for each divided time slot DT will be explained in more detail below.
[0027] (Calculation when there are no other split time periods in the previous time series) FIG. 5 is a table showing an example of calculation results for a divided time slot. A calculation method will be described for the case where the divided time slot DT to be calculated does not have any other divided time slots DT in the time series that precede it. That is, a calculation method for the divided time slot DT that is the first in the time series will be described. When calculating the divided time slot DT that is the first in the time series, the Ising machine 12 extracts, based on the job information, multiple time slots t included in the divided time slot DT and a subsequent time slot that is the time slot t immediately following the divided time slot DT. That is, the Ising machine 12 extracts the time slot t included in the divided time slot DT indicated in the job information and the subsequent time slot immediately following the divided time slot DT. The subsequent time slot can be said to be the time slot t immediately following the last time slot t in the time series among the time slots t included in the divided time slot DT. In the example of FIG. 5, time slots t1 to t5 included in the divided time slot DT1 to be calculated and time slot t6, which is the subsequent time slot immediately following time slot t5, are extracted. The following description will be given using FIG. 5 as an example.
[0028] The Ising machine 12 assigns jobs O indicated in the job information to each of the time slots t1 to t5 included in the divided time slot DT1 and to time slot t6 (the subsequent time slot), on the condition that jobs O that are not assigned to time slots t1 to t5 included in the divided time slot DT1 are assigned to time slot t6 (the subsequent time slot). More specifically, the Ising machine 12 assigns jobs O indicated in the job information to time slots t1 to t6, on the condition that all jobs O that are not assigned to time slots t1 to t5 are assigned to time slot t6. In the example of FIG. 5, jobs O1 and O7 are assigned to time slot t1, jobs O2, O4, and O8 are assigned to time slot t4, and all jobs O3, O5, O6, O9, and O10 that were not assigned to time slots t1 to t5 are assigned to time slot t6.
[0029] In order to satisfy the above conditions, the Ising machine 12 executes a calculation to calculate an optimal solution for the allocation of job O by satisfying the constraint conditions for time slots t1 to t5 as much as possible while relaxing the constraint conditions for time slot t6. In this embodiment, a job generation constraint, an order constraint, and a resource constraint are set as the constraint conditions. The constraint conditions may be set by any entity, and may be set by the calculation device 10 or the Ising machine 12.
[0030] The job creation constraint means that one job O cannot be assigned to multiple time slots t in one divided time period DT (one job O is assigned to only one time slot t). For example, in Figure 5, all jobs O1 to O10 are assigned to only one time slot t.
[0031] An order constraint refers to a constraint on the execution order of a target job O relative to other jobs O. The order constraint is set based on information about the execution order of the jobs O indicated in the job information and information about the execution time of the jobs O indicated in the job information. For example, in FIG. 5, orders K1, K2, and K3 are set as a job group including multiple jobs O, and an order constraint is set between the jobs O included in one order. In the example of FIG. 5, order K1 includes jobs O1 to O3, order K2 includes jobs O4 to O6, and order K3 includes jobs O7 to O10. For example, the job information sets a constraint that job O2 starts after job O1 finishes, and sets the execution time of job O1 to be three time slots. In this case, an order constraint is imposed such that job O2 cannot be assigned from time slot t1, to which job O1 is assigned, to time slot t3, when the execution of job O1 finishes.
[0032] A resource constraint is a constraint that prevents jobs O that use the same resource from being executed simultaneously. In other words, it is a constraint that prevents a job O that uses the same resource as a job O from being assigned to a time slot t in which the job O is being executed. The resource constraint is set based on resource information and execution time information indicated in the job information. In the example of FIG. 5, the job information specifies that jobs O1 and O4 use the same resource and that the execution time of job O1 is three time slots. In this case, a resource constraint is imposed on job O4 such that job O4 cannot be assigned from time slot t1, in which job O1 is assigned, to time slot t3, in which job O1 finishes executing. A resource constraint is also imposed on job O1 such that job O1 cannot be assigned from the time slot in which job O4 is assigned to the time slot in which job O4 finishes executing.
[0033] The Ising machine 12 calculates an optimal solution for allocating jobs O such that the constraint conditions of the job creation constraint, the order constraint, and the resource constraint are satisfied as much as possible for time slots t1 to t5 included in the divided time slot DT1 to be calculated, and that only the job creation constraint is satisfied for time slot t6, which is the subsequent time slot. That is, the Ising machine 12 does not apply the order constraint or the resource constraint to time slot t6, which is the subsequent time slot, and applies only the job creation constraint out of the job creation constraint, the order constraint, and the resource constraint. In this way, the Ising machine 12 can calculate an optimized calculation result in which jobs O are allocated to time slots t1 to t5 that satisfy all the constraint conditions as much as possible, and all jobs O that were not allocated to time slots t1 to t5 are assigned to time slot t6.
[0034] In this way, by performing calculations under the condition that all jobs O that were not assigned to time slots t1 to t5 are assigned to time slot t6, it is possible to converge the solution even if it is not possible to assign all jobs O to time slots t1 to t5 included in one divided time slot DT1, and the optimal solution for each divided time slot DT can be properly calculated.
[0035] Note that any calculation method by the Ising machine 12 that satisfies the above constraints may be used, but an example of such a calculation method will be described below. The Ising machine 12 uses an Ising model to calculate the energy function H shown in equation (5) using functions H1, H2, H3, and H4 shown in the following equations (1) to (4), thereby allocating all jobs O (jobs O1 to O10 in this example) to time slots t (time slots t1 to t5 in this example) and subsequent time slots (time slot t6 in this example) included in the divided time slot DT. H1 is a function indicating an order constraint, H2 is a function indicating a resource constraint, H3 is a function indicating a job generation constraint, and H4 is a function indicating the makespan (the period from when the first job O is allocated to when all jobs O have been allocated).
[0036]
number
number
number
number
number
[0037] In the formulas (1) to (5), x i、t is the job O in time slot t (t=1...T) i(i=1...k1, k1+1...k2...,k n-1 ...k n ) and is either "1" or "0." Note that jobs O with i=1...k1 belong to the same order, jobs O with i=k1+1...k2 belong to the same order, and jobs O with i=k n-1 ...k n Jobs O such that P belong to the same order. i Job O i where m indicates the type of resource, and α, β, γ, and η are coefficients that may be set appropriately. Furthermore, Rm is shown in the following formula (6) and indicates the set of jobs that violate the resource contract and the allocation method of time slot t. Am and Bm shown in formula (6) are shown in formulas (7) and (8), respectively.
[0038]
number
number
number
[0039] (Determine whether calculation is necessary in the next divided time period DT) When the Ising machine 12 completes the calculation for the divided time slot DT (here, divided time slot DT1), it transmits the calculation result to the calculation device 10. The calculation device 10 determines whether calculation is necessary for the next divided time slot DT based on the calculation result for the acquired divided time slot DT. If the calculation device 10 determines that calculation is necessary for the next divided time slot DT, it sets the next divided time slot DT and transmits information about the divided time slot DT to the Ising machine 12. The Ising machine 12 executes calculation to allocate job O for the transmitted next divided time slot DT. Note that the determination of whether calculation is unnecessary for the next divided time slot DT does not necessarily have to be made by the calculation device 10, but may be made by the Ising machine 12. In this case, the Ising machine 12 may perform calculations for each divided time slot DT transmitted from the calculation device 10 in chronological order, and determine whether calculation is unnecessary for the next divided time slot DT each time calculation for one divided time slot DT is completed. Furthermore, the method of determining whether calculation is necessary for the next divided time slot DT may be arbitrary. For example, if all jobs O have been assigned to any of the time slots t included in the divided time slot DT in the calculations performed up to that point, it may be determined that calculation is unnecessary for the next divided time slot DT. Also, for example, if the number of divided time slots DT for which calculations have been performed up to that point reaches a predetermined threshold, it may be determined that calculation is unnecessary for the next divided time slot DT.
[0040] (Calculation when there are other split time periods in the previous time series) When it is determined that a calculation is necessary in the next divided time slot DT, the Ising machine 12 executes a calculation to allocate job O to that divided time slot DT. In this case, the divided time slot DT to be calculated is the divided time slot DT that is the second or later in the time series, and there are other divided time slots DT that have already been calculated in the previous time series. In other words, the divided time slot DT that is the second or later in the time series will be described below.
[0041] FIG. 6 is a table showing an example of the calculation results for a divided time slot. When performing calculations on a divided time slot D that is second or later in the time series, the Ising machine 12 extracts, based on job information, multiple time slots t included in the divided time slot DT, a preceding time slot that is the time slot immediately preceding the divided time slot DT, and a subsequent time slot that is the time slot t immediately following the divided time slot DT. The preceding time slot can be said to be the time slot t that is immediately preceding the first time slot t in the time series among the time slots t included in the divided time slot DT. In the example of FIG. 6, time slots t6 to t10 included in the divided time slot DT2 to be calculated, time slot t5 that is the preceding time slot immediately preceding time slot t6, and time slot t11 that is the subsequent time slot immediately following time slot t10 are extracted. The following description will be given using FIG. 6 as an example.
[0042] The Ising machine 12 assigns jobs O indicated in the job information to each of the time slots t6 to t10 included in the divided time slot DT2 and to the time slots t5 and t11 (preceding and succeeding time slots), on the condition that all jobs O already assigned to the time slots t (in this example, time slots t1 to t5) included in the divided time slot DT1 before the divided time slot DT2 are assigned to the time slot t5 (preceding time slot), and all jobs O not assigned to the time slots t6 to t10 included in the divided time slot DT2 and the time slot t5 (preceding time slot) are assigned to the time slot t11 (successor time slot). 6, jobs O1, O2, O4, O7, and O8 that have already been assigned to time slots t1 to t5 of divided time slot DT1 are assigned to time slot t5 (preceding time slot), jobs O5 and O9 are assigned to time slot t7, and all jobs O3, O6, and O10 that have not been assigned to time slots t5 to t10 are assigned to time slot t11 (subsequent time slot). Note that in the example of Figure 6, since only divided time slot DT1 exists before divided time slot DT2, only job O assigned to a time slot included in divided time slot DT1 is assigned to time slot t5 (preceding time slot), but if there are multiple divided time slots DT in the previous time series, jobs O assigned to time slots included in all of those divided time slots DT are assigned to the preceding time slot.
[0043] In order to perform calculations to satisfy the above conditions, the Ising machine 12 executes calculations to calculate an optimal solution for the allocation of jobs O such that, for time slot t5 (preceding time slot), the constraint conditions under which all jobs O already assigned in time slots t1 to t5 included in the previous divided time slot DT1 are assigned are satisfied, for time slots t6 to t10, the constraint conditions of the job creation constraint, the order constraint, and the resource constraint are satisfied as much as possible, and for time slot t11 (subsequent time slot), only the job creation constraint is satisfied. As a result, the Ising machine 12 can calculate optimized calculation results such that, for time slots t6 to t10, jobs O are assigned that satisfy as many constraint conditions as possible.
[0044] In this way, by performing calculations under the condition that all jobs O that have been assigned so far are assigned to time slot t5 (preceding time slot), and all jobs O that have not been assigned to time slots t5 to t10 are assigned to time slot t11 (subsequent time slot), it becomes possible to converge on a solution even if it is not possible to assign all jobs O to time slots t5 to t10, and the optimal solution for each divided time period DT can be properly calculated.
[0045] Note that any calculation method may be used by the Ising machine 12 that satisfies the above constraints, but an example of the calculation method will be described below. The Ising machine 12 uses an Ising model to calculate the energy function H shown in the following formula (10), thereby allocating all jobs O (jobs O1 to O10 in this example) to the preceding time slot (time slot t5 in this example), the time slots t included in the divided time slot DT (time slots t6 to t10 in this example), and the succeeding time slot (time slot t11 in this example). Note that H in formula (10) 1_2 is a function indicating the constraint condition for allocating all jobs O allocated in the previous divided time slot to the preceding time slot, and is the function shown in equation (9).
[0046]
number
number
[0047] In Equation 9, AL refers to the set of all jobs O assigned in the previous split time slot, and I m indicates a set of jobs O that use resource m among jobs O that were not allocated in the previous divided time slot. Also, ξ is a coefficient that may be set appropriately.
[0048] The Ising machine 12 repeats the calculation for each divided time slot DT in the above-described manner until it is determined that the calculation for the next divided time slot DT is unnecessary.
[0049] (Setting a solution for the scheduling problem) The computation result acquisition unit 36 of the computing device 10 acquires, for each divided time slot DT, the computation result obtained by the Ising machine 12 in which job O is allocated to a time slot t included in the divided time slot DT. That is, the computation result acquisition unit 6 acquires, for each divided time slot DT, the computation result calculated by the Ising machine 12 until it is determined that computation in the next divided time slot DT is unnecessary. The computation result acquisition unit 36 generates a solution to the scheduling problem indicating the result of allocating job O to time slot t based on the computation result for each divided time slot DT. Specifically, the computation result acquisition unit 36 excludes the allocation result of job O to the preceding time slot and the allocation result of job O to the succeeding time slot from the computation results for each divided time slot DT, and generates a set of the remaining allocation results of job O to time slot t as the solution to the scheduling problem. 5 and 6, the allocation result of job O to the subsequent time slot (time slot t5) in divided time slot DT1, the allocation result of job O to the preceding time slot (time slot t5) in divided time slot DT2, and the allocation result of job O to the subsequent time slot (time slot t11) in divided time slot DT2 are excluded, and the allocation result of job O to the remaining time slots t1 to t10 is generated as the solution to the scheduling problem. This makes it possible to appropriately extract a solution to the scheduling problem from the calculation results for each divided time slot DT.
[0050] (Processing flow) The processing flow of the calculation of the scheduling problem described above will now be described. FIG. 7 is a flowchart illustrating the processing flow of the calculation of the scheduling problem. The calculation device 10 acquires job information using the job information acquisition unit 30 and sets the divided time slots DT using the divided time slot setting unit 32 (step S10). The calculation device 10 transmits the job information and the information on the divided time slots DT to the Ising machine 12 using the information transmission unit 34. The Ising machine 12 acquires the job information and the information on the divided time slots DT from the calculation device 10 and performs a calculation to allocate a job O for the acquired divided time slots DT using an Ising model (step S12). The calculation device 10 acquires from the Ising machine 12 the calculation result of the allocation of the job O for the divided time slots DT and determines whether a calculation for the next divided time slot DT is unnecessary, i.e., whether the calculation has ended (step S14). If the calculation has not ended (step S14; No), i.e., if a calculation for the next divided time slot DT is necessary, the process returns to step S12, and the Ising machine 12 acquires the information on the next divided time slot DT from the calculation device 10 and performs a calculation for that divided time slot DT. On the other hand, if the calculation is completed (step S14; Yes), that is, if calculation is not required for the next divided time period DT, the calculation device 10 generates a solution to the scheduling problem from the calculation results of the allocation of job O for each divided time period DT (step S16).
[0051] (effect) As described above, in this embodiment, multiple sets of divided time slots DT, each including multiple time slots t, are set, and an Ising machine executes a calculation for allocating jobs O to the time slots t for each divided time slot DT. That is, the scheduling problem is divided into multiple divided time slots DT to create sub-problems, and calculations are performed for each sub-problem. Therefore, according to this embodiment, the calculation load for each problem (sub-problem) can be reduced, and as a result, the calculation load using the Ising model can be reduced. That is, in this embodiment, the scheduling problem is divided into multiple sub-problems and a solution is calculated for each sub-problem. This reduces the number of bits in each problem, thereby reducing the calculation load of the Ising machine. On the other hand, when the scheduling problem is divided into sub-problems, calculations are performed for each sub-problem, which may make it impossible to calculate an optimal solution that has converged taking each sub-problem into account. In contrast, in this embodiment, calculations are performed under the condition that all jobs O that were not assigned to the time slot t of the sub-problem are assigned to the subsequent time slot, thereby calculating an optimal solution that has converged taking each sub-problem into account.
[0052] Furthermore, when an Ising machine is used, it is not possible to calculate a solution to a scheduling problem with a number of bits that exceeds the upper limit of the number of bits of the Ising model. In contrast, for example, by setting the number of bits in a sub-problem to be equal to or less than the upper limit of the number of bits of the Ising model, calculations can be performed for each sub-problem, and even if the number of bits of the scheduling problem is greater than the upper limit of the number of bits that the Ising machine can handle, the solution to the scheduling problem can be calculated appropriately.
[0053] (Second embodiment) Next, a second embodiment will be described. In the second embodiment, for a job O to be calculated, a non-execution time slot, which is a time slot t in which the job O is not executed, is set in advance, and the non-execution time slot is excluded from the allocation candidates for the job O, and the calculation is executed. In the second embodiment, explanations of parts of the configuration common to the first embodiment will be omitted.
[0054] FIG. 8 is a schematic diagram showing an example of job information. As described above, the job information acquisition unit 30 of the arithmetic device 10 acquires, as job information, information on the execution time of each job O to be computed and information on the execution order of the job O. In the example of FIG. 8, the execution time of job O1 is two t time slots, the execution time of job O2 is one t time slot, the execution time of job O3 is two t time slots, the execution time of job O4 is three t time slots, and the execution time of job O5 is two t time slots. In addition, in the example of FIG. 8, job O2 is constrained to start after job O1 is completed, job O3 is constrained to start after job O2 is completed, job O4 is constrained to start after job O3 is completed, and job O5 is constrained to start after job O4 is completed. The following description will be given taking as an example a case where the execution times and execution orders are set as shown in FIG. 8.
[0055] The divided time slot setting unit 32 of the calculation device 10 sets, for each job O indicated by the job information, a non-execution time slot, which is a time slot t at which the job O is not executed, based on the execution time information and execution order information included in the job information. That is, the calculation device 10 sets in advance, before the calculation of the Ising machine 12, a time slot t to which the job O will not be assigned based on the execution time and execution order. Note that it is not necessary to set a non-execution time slot for all jobs O, and a non-execution time slot may be set only for jobs O for which a non-execution time slot can be calculated in advance.
[0056] 9 is a schematic diagram showing an example of setting a non-execution time slot. While any method for setting a non-execution time slot based on the execution time and execution order may be used, in this embodiment, the arithmetic device 10 extracts a time slot t in which a job O other than the target job O is predicted to be executed from the execution time information and execution order information, and sets a non-execution time slot for the target job O based on the extracted time slot t. For example, the arithmetic device 10 does not apply resource constraints, executes job O during the execution time, and allocates jobs O1 to O5 to time slots t in a scheduled time period in which job O is scheduled to be executed, according to the execution order of jobs O1 to O5 (applying the order constraint of jobs O1 to O5), and so that the allocation of time slots t is brought forward in chronological order (assignment is made from the previous time slot t in chronological order). Then, the arithmetic device 10 sets a time slot t before the time slot t allocated to the target job O as a non-execution time slot for that job O. 9, the execution order is set as jobs O1, O2, O3, O4, and O5, so the arithmetic device 10 assigns time slots t1 and t2 to job O1, time slot t3 to job O2, time slots t4 and t5 to job O3, time slots t6 and t7 to job O4, and time slots t8 and t9 (not shown) to job O5. Therefore, in the example of FIG. 9, the arithmetic device 10 sets time slots t1 and t2 before time slot t3 as non-execution time slots for job O2. Similarly, the arithmetic device 10 sets time slots t1 to t3 as non-execution time slots for job O3, time slots t1 to t5 as non-execution time slots for job O4, and time slots t1 to t7 as non-execution time slots for job O5.
[0057] FIG. 10 is a schematic diagram showing an example of setting non-execution time slots. Another example of setting non-execution time slots will be described. The computing device 10 may apply resource constraints, execute job O during the execution time, and allocate jobs O1 to O5 to time slots t in accordance with the execution order of jobs O1 to O5 (applying order constraints on jobs O1 to O5), and so that the allocation of time slots t is brought forward in chronological order (so that allocation begins with the previous time slot t in chronological order). The computing device 10 sets the time slot including the total number of time slots t allocated to jobs O1 to O5 in this way as the upper-bound time slot. The upper-bound time slot calculated in this way is the upper limit value of the number of time slots t. Then, the computing device 10 executes job O for the execution time without applying resource constraints, and allocates jobs O1 to O5 to time slots t in the upper bound time slot in accordance with the execution order of jobs O1 to O5 (applying the order constraint of jobs O1 to O5), and in such a way that the allocation of time slots t is closed up in chronological order (assignment is made starting from the last time slot t in chronological order). The computing device 10 sets time slots t after the time slot t allocated to the target job O as non-execution time slots for that job O. For example, in the example of FIG. 10, the upper bound time slot includes time slots t1 to t12. Therefore, the computing device 10 allocates time slots t11 and t12 to job O5, time slots t8 to t10 to job O4, time slots t6 and t7 to job O3, time slot t5 to job O2, and time slots t3 and t4 to job O1. 10, the arithmetic device 10 sets time slots t5 to t12 before time slot t4 as non-execution time slots for job O1. Similarly, the arithmetic device 10 sets time slots t6 to t12 as non-execution time slots for job O2, time slots t8 to t12 as non-execution time slots for job O3, and time slots t11 to t12 as non-execution time slots for job O4.
[0058] The calculation device 10 transmits, as calculation information, information on non-execution time slots for each job O to the Ising machine 12, in addition to the job information and information on the divided time slots DT. The Ising machine 12 executes calculations for each job O on the condition that the non-execution time slots set for that job O are not assigned. That is, the Ising machine 12 excludes the non-execution time slots from the allocation candidates for that job O, in other words, excludes the bits for the combination of that job O and the non-execution time slot, and executes a calculation to assign job O to time slot t for the remaining bits. The Ising machine 12 executes a calculation to assign job O to time slot t for each scheduled time slot DT in the same manner as in the first embodiment, except that the condition is that the non-execution time slots set for job O are not assigned to that job O. For example, in FIG. 9, the Ising machine 12 executes a calculation to allocate jobs O1 to O5 to time slot t, with the conditions that job O2 is not allocated to time slots t1 and t2, job O3 is not allocated to time slots t1 to t3, job O4 is not allocated to time slots t1 to t5, and job O5 is not allocated to time slots t1 to t7, and other conditions are the same as those in the first embodiment.
[0059] In this way, by performing calculations while excluding non-executed time slots from the allocation candidates for job O in advance, the number of bits included in the sub-problem can be reduced, and the calculation load on the Ising machine 12 can be reduced more suitably.
[0060] In the second embodiment, the calculation device 10 may also set the number of time slots t included in the divided time slot DT in the same manner as in the first embodiment. However, the calculation device 10 in the second embodiment may set the number of time slots t included in the divided time slot DT so that the value obtained by subtracting the number of non-executed time slots from the number of time slots t included in the divided time slot DT multiplied by the number of jobs O indicated in the job information is equal to or less than the upper limit number of bits that the Ising machine 12 can handle.
[0061] (effect) As described above, the calculation method according to the first aspect of the present disclosure is a calculation method for a scheduling problem in which a job O is assigned to a time slot t per unit time. The calculation method includes the steps of acquiring job information indicating multiple jobs O to be calculated, setting multiple divided time slots DT each including multiple time slots t, and acquiring, for each divided time slot DT, a calculation result obtained by the Ising machine 12, in which the job O indicated by the job information is assigned to the time slot t included in the divided time slot DT. In the step of acquiring the calculation result, the calculation result is acquired in which the job O is assigned to the time slot t included in the divided time slot DT and the subsequent time slot, on the condition that a job O that is not assigned to the time slot t included in the divided time slot DT is assigned to the subsequent time slot t immediately following the divided time slot DT. According to the present disclosure, the scheduling problem is divided into multiple divided time slots DT to form sub-problems, and calculations are performed for each sub-problem. Therefore, according to this embodiment, the calculation load for each problem (sub-problem) can be reduced, and as a result, the calculation load using the Ising model can be reduced. On the other hand, if the problem is divided into sub-problems, it may not be possible to calculate an optimal solution that has converged while taking into account each of the sub-problems.In contrast, in the present disclosure, by performing calculations under the condition that job O that was not assigned to the sub-problem's time slot t is assigned to the subsequent time slot, it is possible to calculate an optimal solution that has converged while taking into account each of the sub-problems.
[0062] A calculation method according to a second aspect of the present disclosure is the calculation method according to the first aspect, and in the step of acquiring calculation results, a calculation result is acquired in which job O is assigned to time slot t included in the divided time slot DT, the preceding time slot, and the subsequent time slot, under the condition that job O already assigned to a divided time slot DT before the divided time slot DT is assigned to the preceding time slot, which is the time slot t immediately preceding the divided time slot DT, and all jobs O not assigned to time slot t included in the divided time slot DT or the preceding time slot are assigned to the subsequent time slot. According to the present disclosure, job O already assigned to the previous sub-problem is assigned to the preceding time slot, and all jobs O other than job O assigned to the previous sub-problem and the current sub-problem are assigned to the subsequent time slot. Therefore, an optimal solution that converges taking into account each sub-problem can be calculated.
[0063] A calculation method according to a third aspect of the present disclosure is the calculation method according to the first or second aspect, and in the step of setting the divided time slots DT, the number of time slots t to be included in the divided time slots DT is set so that the value obtained by multiplying the number of jobs O by the number of time slots included in the divided time slots DT (the number of bits in the divided time slots DT) is equal to or less than the upper limit number of bits that can be handled by the Ising machine 12. According to the present disclosure, by setting the number of bits in the sub-problems to be equal to or less than the upper limit number of bits of the Ising model, calculations can be performed for each sub-problem, and even if the number of bits of the scheduling problem is greater than the upper limit number of bits that can be handled by the Ising machine 12, a solution to the scheduling problem can be properly calculated.
[0064] A calculation method according to a fourth aspect of the present disclosure is the calculation method according to any of the first to third aspects, wherein the step of acquiring job information further includes a step of acquiring, as job information, information on the execution time required to execute job O and information indicating the execution order of job O relative to other jobs, and setting, for job O to be calculated based on the execution time and the execution order, a non-execution timeslot, which is a timeslot t in which job O is not executed. The Ising machine 12 executes a calculation to allocate job O to the job O to be calculated, on the condition that the non-execution timeslot set for job O is not assigned to the job O. According to the present disclosure, by performing a calculation while excluding the non-execution timeslot from allocation candidates for job O in advance, the number of bits included in the sub-problem can be reduced, and the calculation load on the Ising machine 12 can be more suitably reduced.
[0065] A program according to a fifth aspect of the present disclosure causes a computer to execute a calculation for a scheduling problem of allocating a job O to a time slot t per unit time, and causes the computer to execute the following steps: acquiring job information indicating a plurality of jobs O to be calculated; setting a plurality of divided time slots DT, each including a plurality of time slots t, for each time series; and acquiring, for each divided time slot DT, a calculation result obtained by the Ising machine 12 in which the job O indicated by the job information is allocated to the time slot t included in the divided time slot DT. In the step of acquiring the calculation result, a calculation result is acquired in which the job O is allocated to the time slot t included in the divided time slot DT and the subsequent time slot, on the condition that a job O that is not assigned to the time slot t included in the divided time slot DT is assigned to the subsequent time slot, which is the time slot t immediately after the divided time slot DT. According to the present disclosure, the calculation load on the Ising machine 12 can be reduced.
[0066] A computing device 10 according to a sixth aspect of the present disclosure is a computing device that performs a computation for a scheduling problem of allocating a job O to a time slot t per unit time, and includes: a job information acquisition unit 30 that acquires job information indicating a plurality of jobs O to be computed; a divided time slot setting unit 32 that sets a plurality of divided time slots DT each including a plurality of time slots t for each time series; and a computation result acquisition unit 36 that acquires, for each divided time slot DT, a computation result obtained by the Ising machine 12 in which the job O indicated by the job information is allocated to the time slot t included in the divided time slot DT. The computation result acquisition unit 36 acquires the computation result in which the job O is allocated to the time slot t included in the divided time slot DT and the subsequent time slot, on the condition that a job O that is not allocated to the time slot t included in the divided time slot DT is assigned to the subsequent time slot, which is the time slot t immediately after the divided time slot DT. According to the present disclosure, the computation load on the Ising machine 12 can be reduced.
[0067] Although the embodiments of the present disclosure have been described above, the embodiments are not limited to the contents of these embodiments. Furthermore, the above-described components include those that can be easily imagined by a person skilled in the art, those that are substantially the same, and those that are within the so-called equivalent range. Furthermore, the above-described components can be combined as appropriate. Furthermore, various omissions, substitutions, or modifications of the components can be made without departing from the spirit of the above-described embodiments. [Explanation of symbols]
[0068] 1. Computing System 10 Arithmetic unit 12 Ising machine 30 Job information acquisition unit 32 Division time zone setting section 34 Information Transmission Unit 36 Operation result acquisition section DT Split Time Zone O Job t time slot
Claims
1. A calculation method for performing calculations on a scheduling problem of allocating jobs to time slots per unit time, comprising: acquiring job information indicating a plurality of jobs to be processed; setting a plurality of divided time periods each including a plurality of time slots for each time series; acquiring, for each divided time period, a calculation result obtained by an Ising machine in which the job indicated by the job information is assigned to the time slot included in the divided time period; Including, In the step of acquiring the calculation result, the job is assigned to the time slot included in the divided time period and the subsequent time slot under the condition that the job that is not assigned to the time slot included in the divided time period is assigned to the subsequent time slot, which is the time slot immediately after the divided time period, and the calculation result is acquired. Calculation method.
2. 2. The calculation method according to claim 1, wherein the step of acquiring the calculation result acquires the calculation result in which the jobs are assigned to the time slots included in the divided time period, the preceding time slots, and the subsequent time slots, under the condition that the jobs already assigned to the divided time period before the divided time period are assigned to the preceding time slot, which is the time slot immediately preceding the divided time period, and all the jobs that are not assigned to the time slots included in the divided time period and the preceding time slots are assigned to the subsequent time slots.
3. 3. The calculation method according to claim 1 or 2, wherein in the step of setting the divided time periods, the number of time slots to be included in the divided time periods is set so that a value obtained by multiplying the number of jobs by the number of time slots included in the divided time periods is equal to or less than an upper limit number of bits that can be handled by the Ising machine.
4. In the step of acquiring the job information, information on an execution time required for executing the job and information indicating an execution order of the job relative to other jobs are acquired as the job information; The method further includes a step of setting, for a job to be calculated based on the execution time and the execution order, a non-execution time slot, which is a time slot in which the job is not executed; 3. The calculation method according to claim 1, wherein the Ising machine executes a calculation to allocate a job on the condition that the non-execution time slot set for the job is not allocated to the job to be calculated.
5. A program that causes a computer to perform calculations for a scheduling problem of allocating jobs to time slots per unit time, acquiring job information indicating a plurality of jobs to be processed; setting a plurality of divided time periods each including a plurality of time slots for each time series; acquiring, for each divided time period, a calculation result obtained by an Ising machine in which the job indicated by the job information is assigned to the time slot included in the divided time period; causing the computer to execute In the step of acquiring the calculation result, the job is assigned to the time slot included in the divided time period and the subsequent time slot under the condition that the job that is not assigned to the time slot included in the divided time period is assigned to the subsequent time slot, which is the time slot immediately after the divided time period, and the calculation result is acquired. program.
6. A computing device that performs a computation on a scheduling problem of allocating jobs to time slots per unit time, a job information acquisition unit that acquires job information indicating a plurality of jobs to be processed; a divided time slot setting unit that sets a plurality of divided time slots, each including a plurality of time slots, for each time series; a calculation result acquisition unit that acquires, for each divided time period, a calculation result obtained by an Ising machine in which the job indicated by the job information is assigned to the time slot included in the divided time period; Including, the calculation result acquisition unit acquires the calculation result in which the job is assigned to the time slot included in the divided time period and the subsequent time slot, on the condition that the job that is not assigned to the time slot included in the divided time period is assigned to the subsequent time slot, which is the time slot immediately after the divided time period; Computing device.
Citation Information
Patent Citations
Method and program for calculating approximate solutions to scheduling problems
JP6778942B1