Scheduling device, scheduling system, scheduling method, and scheduling program

JPWO2024171380A5Active Publication Date: 2025-01-22MITSUBISHI ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023535895
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-02-16
Publication Date
2025-01-22
Estimated Expiration
2043-02-16

AI Technical Summary

Technical Problem

Existing scheduling technologies for machining equipment require complex formulations that change with minor constraint adjustments, leading to prolonged job execution schedule creation times.

Method used

A scheduling device that includes a job narrowing section to filter jobs based on constraints, an optimization calculation unit to determine execution order, and a scheduling unit to set job execution dates, allowing for efficient creation of a job execution schedule without complex re-formulation.

Benefits of technology

The scheduling device can create a job execution schedule in a short time by narrowing down jobs based on constraints and optimizing their execution order, reducing calculation time and simplifying the scheduling process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000027_0000
    Figure 00000027_0000
  • Figure 00000027_0001
    Figure 00000027_0001
  • Figure 00000028_0000
    Figure 00000028_0000
Patent Text Reader

Abstract

The scheduling device (1A) comprises: a job narrowing down unit (3) that creates a narrowed down job list, which is a job list narrowed down from jobs set in the job list to jobs that satisfy the constraints, based on a job list (41) that is a list of multiple jobs to be executed by multiple processing machines and constraint condition lists (42A, 42B) that are lists of constraints for the processing machines; an optimization calculation unit (4) that solves an optimization problem based on the narrowed down job list, and creates job order data that sets the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines so that the time taken to complete all the jobs in the job list is shortest; and a scheduling unit (5) that creates a job execution schedule (43) that sets the execution date and time of the jobs for each processing machine, based on the job order data and the job list.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0006] , ,

[0001] The present disclosure relates to a scheduling device, a scheduling system, a scheduling method, and a scheduling program for creating a job execution schedule applied to machining equipment.

Background Art

[0002] In recent years, in order to efficiently execute jobs in machining equipment, it has been desired to create a job execution schedule (schedule data) that can shorten the total execution time of a plurality of jobs.

[0003] The production plan determination device described in Patent Document 1 acquires a processing order for obtaining a product with a specific shape by performing a plurality of processing operations on a material, and calculates the processing time required for each processing operation based on the processing order. This production plan determination device uses a plurality of processing devices, generates a production plan when producing a plurality of products based on each processing order, and extracts a production plan that satisfies the target conditions from a plurality of production plans obtained based on a plurality of types of processing orders.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] However, in the technology of Patent Document 1 above, the order determination formula for determining the execution order of jobs is complicated, and if only one constraint for meeting the requirements from customers is changed, the complicated order determination formula has to be re-established, so there is a problem that it takes a long time to create a job execution schedule.

[0006] This disclosure is made in view of the above, and aims to provide a scheduling device that can create and provide job execution schedules to users in a short amount of time. [Means for solving the problem]

[0007] To solve the aforementioned problems and achieve the objective, the scheduling device of this disclosure includes a job filtering unit that creates a filtered job list, which is a list of jobs executed by multiple processing machines, and a constraint list, which is a list of constraints on the processing machines, by filtering the jobs set in the job list to include only those jobs that satisfy the constraints. The scheduling device of this disclosure also includes an optimization calculation unit that solves an optimization problem based on the filtered job list to determine which processing machines will execute the jobs and the execution order of the jobs on the processing machines so that the time it takes to complete all jobs in the job list is minimized, and creates job order data, which is data indicating which processing machines will execute the jobs and the execution order of the jobs on the processing machines, and a scheduling unit that creates a job execution schedule in which the execution date and time of each job on each processing machine are set based on the job order data and the job list. The process is repeated as follows: the job filtering unit creates a filtered job list that satisfies the first constraint; the optimization calculation unit creates job sequence data that satisfies the first constraint and adds jobs to the job sequence data that resolve the first constraint; the job filtering unit creates a filtered job list that satisfies the second constraint, which is the next strictest constraint after the first constraint; and the optimization calculation unit creates job sequence data that satisfies the second constraint and adds jobs to the job sequence data that resolve the second constraint. [Effects of the Invention]

[0008] The scheduling device described herein has the effect of being able to create and provide job execution schedules to users in a short amount of time. [Brief explanation of the drawing]

[0009] [Figure 1] Diagram showing the configuration of the scheduling device according to Embodiment 1. [Figure 2] This figure shows an example of the configuration of a job list used by the scheduling device according to Embodiment 1. [Figure 3] This figure shows an example of the configuration of the first constraint list used by the scheduling device according to Embodiment 1. [Figure 4]This figure shows an example of the configuration of the second constraint list used by the scheduling device according to Embodiment 1. [Figure 5] A flowchart showing the processing procedure of the scheduling process executed by the scheduling device according to Embodiment 1. [Figure 6] A diagram illustrating the first stage of the scheduling process performed by the scheduling device according to Embodiment 1. [Figure 7] A diagram illustrating the second stage of the scheduling process performed by the scheduling device according to Embodiment 1. [Figure 8] A diagram illustrating the third stage of the scheduling process performed by the scheduling device according to Embodiment 1. [Figure 9] This figure shows an example of the configuration of a job execution schedule created by the scheduling device according to Embodiment 1. [Figure 10] This figure shows the configuration of a scheduling system equipped with a scheduling device according to Embodiment 2. [Figure 11] This figure shows the configuration of the learning device in the scheduling system according to Embodiment 2. [Figure 12] A diagram illustrating the neural network used in the learning device according to Embodiment 2. [Figure 13] A flowchart showing the processing procedure of the learning process executed by the learning device according to Embodiment 2. [Figure 14] This figure shows the configuration of the inference device in the scheduling system according to Embodiment 2. [Figure 15] A flowchart showing the processing procedure of the inference process performed by the inference device according to Embodiment 2. [Figure 16] A flowchart illustrating the processing procedure of the scheduling process executed by the scheduling device according to Embodiment 2. [Figure 17] A diagram illustrating the scheduling process performed by the scheduling device according to Embodiment 2. [Figure 18]Figure showing the configuration of the scheduling device according to Embodiment 3 [Figure 19] Flowchart showing the processing procedure of the scheduling process executed by the scheduling device according to Embodiment 3 [Figure 20] Figure for explaining the first-stage processing of the scheduling process executed by the scheduling device according to Embodiment 3 [Figure 21] Figure for explaining the second-stage processing of the scheduling process executed by the scheduling device according to Embodiment 3 [Figure 22] Figure showing the configuration of the job list modified by the scheduling device according to Embodiment 3 [Figure 23] Figure for explaining the third-stage processing of the scheduling process executed by the scheduling device according to Embodiment 3 [Figure 24] Figure showing an example of the hardware configuration for realizing the scheduling device according to Embodiment 1

Mode for Carrying Out the Invention

[0010] Hereinafter, a scheduling device, a scheduling system, a scheduling method, and a scheduling program according to an embodiment of the present disclosure will be described in detail based on the drawings

[0011] Embodiment 1 FIG. 1 is a diagram showing the configuration of the scheduling device according to Embodiment 1. The scheduling device 1A is a computer that creates a job execution schedule 43 for jobs executed in machining equipment such as an electric discharge machine

[0012] The job execution schedule 43 created by the scheduling device 1A is applied to a machining system that uses multiple machining centers to perform machining. In this machining system, each of the multiple machining centers performs multiple types of jobs to machine multiple workpieces and produce multiple products. Therefore, the job execution schedule 43 is a schedule (schedule data) for each of the multiple machining centers to perform multiple types of jobs to machine multiple workpieces and produce multiple products. The job execution schedule 43 specifies the machining center that will perform the job, the start time of the job, and the end time of the job. The scheduling device 1A is equipped with a scheduler that creates the job execution schedule 43.

[0013] The scheduling device 1A assigns all jobs to one of the processing machines, such as a machine tool, and automatically assigns the execution order of all jobs targeted in the processing steps using the processing machine. When scheduling jobs using a combinatorial optimization problem, if constraints (execution restrictions) are applied only to the processing machine or some other environmental factors, the scheduling device 1A narrows down the jobs to be submitted to the optimization solver in advance. As a result, the scheduling device 1A solves the optimization problem by narrowing down the jobs that are candidates for schedule creation without changing the objective function and constraints, and creates the job execution schedule 43.

[0014] For example, if there are jobs that cannot be executed during a portion of the scheduled date and time, the scheduling device 1A removes those jobs from the job list 41 in advance, and then determines the execution order of the jobs in the job list 41 after the removal of those jobs.

[0015] The scheduling device 1A comprises an input unit 2, a job filtering unit 3, an optimization calculation unit 4, a scheduling unit 5, and an output unit 6. The input unit 2 reads a job list 41 and constraint list 42A, 42B from an external device or the like.

[0016] The job list 41 is a list of jobs to be executed on the machining center. The constraint lists 42A and 42B are lists of constraints used when assigning jobs to the job sequence data (job sequence data 45, described later) used when creating the job execution schedule 43. The job sequence data 45 is data that indicates which machining center will execute each job and the execution order of the jobs on each machining center. After creating the job sequence data 45, the scheduling device 1A creates the job execution schedule 43 based on the job sequence data 45. Here, an example of the configuration of the job list 41 will be described.

[0017] Figure 2 shows an example of the configuration of a job list used by the scheduling device according to Embodiment 1. In the job list 41, the job ID (IDentification), priority (priority), machining instruction, work ID, machining program ID, and estimated time are associated with each other.

[0018] The job ID is information that identifies a job, and in Figure 2, it is illustrated as "J001", "J002", etc. The job ID is set by the job list creation device (not shown) that creates the job list 41. In the following explanation, jobs with job IDs "J001" to "J006" may be referred to as jobs "J001" to "J006".

[0019] The scheduling device 1A may also have the function of a job list creation device. In this case, the scheduling device 1A creates the job list 41 according to the instructions from the user.

[0020] Priority indicates the order in which jobs should be executed; jobs with lower priority numbers are more likely to be executed earlier. In other words, given the constraints, jobs with lower priority numbers will be assigned earlier execution times.

[0021] Furthermore, it is not necessary to set different priority values ​​for all jobs; the same priority value may be set for different jobs. Priority may be set by the job list creation device according to user instructions, or it may be set automatically by the job list creation device.

[0022] The processing instructions include information about the delivery date of the product to be manufactured by executing the job, and the processing machine ID of the processing machine that can execute the job. The processing machine ID is information that identifies the processing machine that can be set for the job, and is shown in Figure 2 as "PM001", "PM002", etc. Among the jobs corresponding to the job ID, jobs where the processing machine ID is blank can be processed by any processing machine. Processing instructions may be set by the job list creation device according to instructions from the user, or the job list creation device may set them automatically. In the following explanation, processing machines with processing machine IDs "PM001" to "PM003" may be referred to as processing machines "PM001" to "PM003", respectively.

[0023] The work ID is information that identifies the workpiece on which the job is performed. The machining program ID is information that identifies the machining program used when executing the job. The job list 41 does not necessarily have to include the work ID and machining program ID.

[0024] The estimated time is the estimated time required to execute the job. This includes the estimated time for machining, pre-machining, and post-machining. The pre-machining time includes workpiece loading and setup. Workpiece setup includes workpiece mounting and measuring the workpiece's reference position. The post-machining time includes workpiece measurement and removal. Note that the estimated time may also be the sum of the estimated machining time, pre-machining time, and post-machining time.

[0025] Next, we will describe an example of the configuration of constraint lists 42A and 42B. Figure 3 shows an example of the configuration of the first constraint list used by the scheduling device according to Embodiment 1. In constraint list 42A, which is the first constraint list, information identifying the processing machine, information on whether the processing machine is stopped or not, unexecutable processes, estimated consumable lifespan time, and maintenance execution deadline are associated.

[0026] The stopped status information contains either information indicating that the processing machine is stopped or information indicating that the processing machine is not stopped. Figure 3 shows the case where "0" is set as the information indicating that the processing machine is not stopped, and "1" is set as the information indicating that the processing machine is stopped.

[0027] Unexecutable processes are assigned a process ID that the machine cannot execute. The process ID is information that identifies a process. For example, an unexecutable process is assigned "0" if all processes can be executed on the machine, and "9" if all processes cannot be executed. Also, if the process ID for an unexecutable process is "H13", the machine cannot execute the process corresponding to "H13".

[0028] The consumable life prediction time is the predicted time from the current time until the consumable used by the processing machine reaches the end of its lifespan. Figure 3 shows an example where the consumable life prediction time is the time until the consumable is predicted to reach the end of its lifespan, but the consumable life prediction time may also be the date and time when the consumable is predicted to reach the end of its lifespan. The consumable life prediction time is set for each consumable. Figure 3 shows an example where the consumables included in constraint list 42A are consumables B11 and B12.

[0029] The maintenance execution deadline is the time from the current time until the maintenance work is performed on the machine. Figure 3 shows the case where the maintenance execution deadline is the time until the maintenance work is performed, but the maintenance execution deadline may also be the date and time when the maintenance work is performed. The maintenance execution deadline is set for each type of maintenance work. Figure 3 shows the case where the types of maintenance work included in the constraint list 42A are maintenance H11, maintenance H12, and maintenance H13.

[0030] The estimated lifespan of consumables and the maintenance deadline may be set by the job list creation device according to user instructions, or by the job list creation device automatically.

[0031] Figure 4 shows an example of the configuration of the second constraint list used by the scheduling device according to Embodiment 1. In the second constraint list, constraint list 42B, process IDs are associated with whether or not human intervention is required. Constraint list 42B is a list of constraints for things like replacement of consumables and maintenance work.

[0032] The process ID is information that identifies work processes such as the replacement of consumables and maintenance work. In the process ID, "H11" to "H13" refer to the maintenance work H11 to H13 as explained in Figure 3, and "B11" and "B12" refer to the replacement work of consumables B11 and B12 as explained in Figure 3.

[0033] The "Requirement of Manned Work" indicator indicates whether or not a process requires a worker. In other words, the "Requirement of Manned Work" indicator is a constraint that defines whether or not a worker is required. Figure 4 shows a case where "1" is set to indicate that a process requires a worker, and "0" is set to indicate that a process does not require a worker. A process with "1" set for "Requirement of Manned Work" satisfies the constraint if a worker can be assigned, and does not satisfy the constraint if a worker cannot be assigned.

[0034] The constraint lists 42A and 42B may also include information such as the machine on which the job can be executed and the availability of the machine in the next process at the scheduled completion time of the job. If "0" is set for the requirement of manned work, cleaning jobs during periods when there are no workers (unmanned periods) can be skipped. Furthermore, if the constraint lists 42A and 42B include information such as the availability of the machine in the next process at the scheduled completion time of the job, the scheduling device 1A can shorten the waiting time between rough machining and finishing machining until a cleaning job is scheduled.

[0035] The input unit 2 inputs the job list 41 and the constraint lists 42A and 42B to the job filtering unit 3, the optimization calculation unit 4, and the scheduling unit 5. The job filtering unit 3 filters the jobs in the job list 41 to be registered in the job sequence data 45 based on the constraint lists 42A and 42B. That is, the job filtering unit 3 filters the jobs in the job list 41 to be registered in the job sequence data 45 so as to satisfy the constraint lists 42A and 42B. The job filtering unit 3 filters the jobs in the job list 41 to be registered in the job sequence data 45 so as to not set jobs for processing machines that are set to stop in the stopped information, and for processes that are set to be unexecutable in the unexecutable process. In the following description, we will explain the case in which the scheduling device 1A creates the job execution schedule 43 mainly based on the constraint list 42A.

[0036] The job filtering unit 3 filters jobs so that, for example, consumables can be replaced by the predicted lifespan of the consumables. The job filtering unit 3 also filters jobs so that, for example, maintenance work can be performed by the maintenance deadline. The job filtering unit 3 sends the filtered job list 41 to the optimization calculation unit 4. In the following explanation, the filtered job list 41 may be referred to as the filtered job list 41.

[0037] The optimization calculation unit 4 has an optimization solver that performs job optimization. Based on the narrowed-down job list 41 and the constraint condition lists 42A and 42B, the optimization calculation unit 4 determines which machining center will execute each job and the execution order of the jobs at each machining center. That is, the optimization calculation unit 4 determines which machining center will execute each job and the execution order of the jobs at each machining center by assigning the jobs in the narrowed-down job list 41 to any of the machining centers in order so as to satisfy the constraint condition lists 42A and 42B.

[0038] The optimization unit 4 solves an optimization problem to determine which machine will execute each job and the execution order of the jobs on each machine. The optimization unit 4 assigns jobs to machines so that higher-priority jobs are executed earlier. The optimization unit 4 also assigns jobs to machines so that the time it takes for all jobs in the job list 41 to be completed is minimized. In other words, the optimization unit 4 assigns jobs to machines so that the total execution time of the jobs included in the job list 41 is reduced.

[0039] In the scheduling device 1A, the job filtering unit 3 and the optimization calculation unit 4 create the job sequence data 45 while sharing it. The job filtering unit 3 sets constraints such as the maintenance execution deadline in the job sequence data 45 and extracts jobs that can be set by the maintenance execution deadline. The job filtering unit 3 sends the job sequence data 45 with the constraints such as the maintenance execution deadline set, and the jobs that satisfy the constraints (jobs that can be set by the maintenance execution deadline) to the optimization calculation unit 4. The optimization calculation unit 4 selects jobs that can be set on the machine from among the jobs that satisfy the constraints and sets them in the job sequence data 45. If there are no jobs that satisfy the constraints, the optimization calculation unit 4 resolves the constraints by setting maintenance jobs, etc., in the job sequence data 45. Then, the job filtering unit 3 sets the next constraint in the job sequence data 45 and extracts jobs that satisfy this constraint. The job filtering unit 3 and the optimization calculation unit 4 repeat these processes to set all jobs in the job list 41 in the job sequence data 45. The optimization calculation unit 4 sends job order data 45 to the scheduling unit 5 for all jobs in the job list 41, which sets the machining center that will execute each job and the execution order of the jobs on each machining center.

[0040] The scheduling unit 5 sets the execution date and time for each job based on the job sequence data 45 and the job list 41. In this case, the scheduling unit 5 refers to the machine that will execute each job in the job sequence data 45 and the execution order of the jobs on each machine. The scheduling unit 5 also refers to the estimated time in the job list 41. Furthermore, the scheduling unit 5 sets the consumable replacement date and time and the maintenance date and time by referring to the job sequence data 45, the time required for replacing consumables (replacement time) performed on each machine, and the time required for maintenance performed on each machine (maintenance time). Note that the replacement time and maintenance time may be set in the job list 41 or in the constraint list 42A, 42B.

[0041] The scheduling unit 5 creates a job execution schedule 43 for each job, which includes the processing machine to execute the job, the execution order, and the job execution date and time. The scheduling unit 5 sends the created job execution schedule 43 to the output unit 6. The output unit 6 provides the job execution schedule 43 to the user by outputting it to an external device such as a display device. As a result, the job execution schedule 43 is displayed on the display device, and the user can refer to the job execution schedule 43.

[0042] Figure 5 is a flowchart showing the processing steps of the scheduling process executed by the scheduling device according to Embodiment 1. The input unit 2 reads the job list 41 and the constraint list 42A, 42B from an external device or the like (step S10). The input unit 2 inputs the job list 41 and the constraint list 42A, 42B to the job filtering unit 3.

[0043] The job filtering unit 3 narrows down the jobs in the job list 41 to be registered in the job sequence data 45 based on the constraint condition lists 42A and 42B. That is, the job filtering unit 3 narrows down the jobs in the job list 41 according to the contents set as constraint conditions in the constraint condition lists 42A and 42B (step S20). The job filtering unit 3 sends the narrowed-down jobs (the filtered job list 41) to the optimization calculation unit 4.

[0044] The optimization calculation unit 4 determines the machining center that will execute each job and the execution order of the jobs at each machining center based on the constraint list 42A and 42B. In other words, the optimization calculation unit 4 creates the machining center for jobs under the constraints and the execution order at each machining center (step S30). To put it another way, the optimization calculation unit 4 creates job order data 45 that sets the machining center that will execute each job and the execution order of the jobs at each machining center so as to satisfy the constraints defined in the constraint list 42A and 42B.

[0045] The optimization calculation unit 4 determines whether all constraint conditions have been set in the job sequence data 45. That is, the optimization calculation unit 4 determines whether there are any constraint conditions for which the calculation has not yet been completed (step S40).

[0046] If there is a constraint that the calculation is not yet completed (step S40, Yes), the scheduling device 1A returns to the process in step S20 and repeats the processes in steps S20 to S40.

[0047] On the other hand, if there are no constraints that prevent the calculation from being completed (step S40, No), the optimization calculation unit 4 sends job order data 45 to the scheduling unit 5, which sets the determined machining center and the execution order of each job. In other words, the optimization calculation unit 4 sends the execution order of jobs on each machining center to the scheduling unit 5.

[0048] The scheduling unit 5 sets the execution date and time for each job (step S50) based on the job execution order for each processing machine and the estimated time in the job list 41 determined by the optimization calculation unit 4, and creates a job execution schedule 43.

[0049] The output unit 6 outputs the job execution schedule 43 created by the scheduling unit 5 to an external device such as a display device (step S60). This allows the user to refer to the job execution schedule 43 in which the job execution date and time are set.

[0050] Next, we will explain a specific example of scheduling processing by the scheduling device 1A using Figures 6 to 8. Figures 6 to 8 illustrate the case where the scheduling device 1A performs job scheduling processing based on the job list 41 and the constraint lists 42A and 42B.

[0051] Figure 6 is a diagram illustrating the first stage of the scheduling process performed by the scheduling device according to Embodiment 1. Figure 7 is a diagram illustrating the second stage of the scheduling process performed by the scheduling device according to Embodiment 1. Figure 8 is a diagram illustrating the third stage of the scheduling process performed by the scheduling device according to Embodiment 1. Figures 6 to 8 show the job sequence data 45 created by the scheduling device 1A.

[0052] The job filtering unit 3 registers the machine IDs registered in the job list 41 into the job sequence data 45. Based on the constraint list 42A, the job filtering unit 3 determines whether or not there are any stopped machine machines. For stopped machine machines, the job filtering unit 3 sets the machine ID in the job sequence data 45 to "Stopped". In this case, the job filtering unit 3 sets the machine "PM003" to "Stopped" based on the constraint list 42A.

[0053] The job filtering unit 3 sets constraints for assigning jobs to each machining center in the job sequence data 45 according to the constraint list 42A. Specifically, the job filtering unit 3 selects the first process to be performed from either the consumable replacement process or the maintenance process in the constraint list 42A. Based on the constraint list 42A in Figure 3, the job filtering unit 3 selects maintenance H11 for the machining center "PM002" with the closest deadline, and sets the deadline for the maintenance H11 as a constraint for the machining center "PM002" in the job sequence data 45.

[0054] The job filtering unit 3 filters the jobs in the job list 41 by extracting only the jobs that satisfy the constraints set in the job sequence data 45 from the list of jobs registered in the job list 41. Specifically, the job filtering unit 3 extracts from the job list 41 only the jobs that can be executed by the deadline for maintenance H11 on the machining center "PM002". In other words, the job filtering unit 3 extracts only the jobs that can be executed by the deadline for maintenance H11 on the machining center "PM002" from the list of jobs in the job list 41. The job filtering unit 3 filters the jobs by extracting the job ID, priority, machining instruction, work ID, machining program ID, and estimated time from the job list 41 as a list of jobs that can be executed by the deadline for maintenance H11. The job filtering unit 3 sends the filtered job list 41 to the optimization calculation unit 4. The filtered job list 41 here includes the job "J002".

[0055] The optimization calculation unit 4 sets the jobs narrowed down by the job filtering unit 3 into job sequence data 45 in order of priority, starting with the highest priority jobs, using optimization calculations. Here, the optimization calculation unit 4 sets job "J002" to the machining center "PM002". At this point, there are no jobs to be executed on the machining center "PM001" that can be completed by the maintenance deadline H11 for "PM002" (within 6 hours and 45 minutes), so the optimization calculation unit 4 does not create a schedule for the machining center "PM001". In other words, there are no jobs that can be executed on the machining center "PM001" by the maintenance deadline H11 for the machining center "PM002", so no jobs are set for the machining center "PM001".

[0056] Although job "J002" could be assigned to the processing machine "PM001," the processing machine "PM001" can only be assigned jobs longer than 6 hours and 45 minutes. Therefore, the optimization calculation unit 4 assigns job "J002" to the processing machine "PM002," which can only be assigned jobs of 6 hours and 45 minutes or less. This allows the optimization calculation unit 4 to improve processing efficiency.

[0057] The optimization calculation unit 4 sets maintenance H11 for the machining center "PM002" in the job sequence data 45 in order to resolve the most stringent constraint (maintenance H11 for the machining center "PM002"). The optimization calculation unit 4 also sets the worker who will perform maintenance H11 in the job sequence data 45 based on the constraint list 42B, and sets the date and time of work performed by this worker in the job sequence data 45. In Figure 7, the maintenance H11 performed by the worker on the machining center "PM002" is shown as "PM002_H11". Note that if "0" is set in the constraint list 42B for whether or not a worker is required, it is not necessary to set a worker in the job sequence data 45, and only the date and time of work is set.

[0058] Next, the job filtering unit 3 selects the second process to be performed from the consumable replacement process or maintenance process in the constraint list 42A. Based on the constraint list 42A in Figure 3, the job filtering unit 3 selects maintenance H11 for the processing machine "PM001" and sets the execution deadline for maintenance H11 in the job sequence data 45.

[0059] The job filtering unit 3 extracts from the job list 41 only the jobs that can be executed by the deadline for maintenance H11 on the processing machine "PM001". In other words, the job filtering unit 3 extracts only the list of jobs that can be executed by the deadline for maintenance H11 on the processing machine "PM001" from the list of jobs in the job list 41. The job filtering unit 3 sends the filtered job list 41 to the optimization calculation unit 4. The filtered job list 41 at this point includes job "J001".

[0060] The optimization calculation unit 4 sets the jobs narrowed down by the job narrowing unit 3 into job sequence data 45 in order of priority, starting with the highest priority job. In this case, the optimization calculation unit 4 sets job "J001" to the processing machine "PM001". As a result, job "J001", which has the highest priority, is set in job sequence data 45.

[0061] Subsequently, since there are no jobs that can be submitted by the next constraint, the deadline (maintenance H11 on machine "PM001"), the optimization calculation unit 4 does not create schedules for machine "PM001" and "PM002". In other words, since there are no jobs that can be executed by maintenance H11 on machine "PM001" for machine "PM001" for machine "PM002", no jobs are set for machine "PM001" and "PM002".

[0062] The optimization calculation unit 4 sets maintenance H11 for the machining center "PM001" in the job sequence data 45 in order to resolve the constraints on the machining center "PM001" (maintenance H11 for the machining center "PM001"). The optimization calculation unit 4 also sets the worker who will perform maintenance H11 in the job sequence data 45 and sets the date and time of the work performed by this worker in the job sequence data 45. In Figure 8, the maintenance H11 performed by the worker on the machining center "PM001" is shown as "PM001_H11".

[0063] Next, the job filtering unit 3 selects the third consumable replacement or maintenance process from the constraint list 42A. Based on the constraint list 42A in Figure 3, the job filtering unit 3 selects maintenance H12 for the processing machine "PM001" and sets the deadline for maintenance H12 in the job sequence data 45.

[0064] The job filtering unit 3 extracts from the job list 41 only the jobs that can be executed by the maintenance deadline H12 for the processing machine "PM001". In other words, the job filtering unit 3 extracts only the list of jobs that can be executed by the maintenance deadline H12 for the processing machine "PM001" from the list of jobs in the job list 41. The job filtering unit 3 sends the filtered job list 41 to the optimization calculation unit 4. The filtered job list 41 at this point does not contain a list of jobs.

[0065] Regarding processing machines "PM001" and "PM002," after maintenance H11 is added for processing machine "PM001," there are no jobs that can be submitted before the deadline for maintenance H12, so no jobs are set for processing machines "PM001" and "PM002."

[0066] The optimization calculation unit 4 sets maintenance H12 for the machining center "PM001" in the job sequence data 45 in order to resolve the constraint condition for the machining center "PM001" (maintenance H12 for the machining center "PM001"). In other words, maintenance H12 is set for the machining center "PM001" following maintenance H11.

[0067] Furthermore, the optimization calculation unit 4 sets the worker who will perform maintenance H12 on the processing machine "PM001" in the job sequence data 45, and sets the date and time of work performed by this worker in the job sequence data 45. In Figure 8, the maintenance H12 performed by the worker on the processing machine "PM001" is shown as "PM001_H12".

[0068] Next, the job filtering unit 3 selects the fourth process to be performed from the consumable replacement process or maintenance process in the constraint list 42A. The job filtering unit 3 sets the execution deadline for the selected maintenance or other process in the job sequence data 45.

[0069] The job filtering unit 3 extracts a list of jobs that can be executed by the deadline set in the job sequence data 45 from the job list 41 and sends the filtered job list 41 to the optimization calculation unit 4. The filtered job list 41 here includes jobs "J003" and "J005". The optimization calculation unit 4 selects jobs that can be executed by the set deadline from the filtered job list 41 and sets them in the job sequence data 45 through optimization calculation.

[0070] The optimization calculation unit 4 sets job "J003" for machining center "PM001" and job "J005" for machining center "PM002". Even if job "J004" is included in the filtered job list 41, job "J004" is assigned to machining center "PM001" and job "J005" is assigned to machining center "PM002", so the optimization calculation unit 4 sets job "J005" for machining center "PM002".

[0071] In this manner, the scheduling device 1A repeatedly performs the following processes: setting constraints such as maintenance deadlines in the job sequence data 45, creating a filtered job list 41 by extracting jobs that satisfy the constraints, and setting the jobs to one of the processing machines through optimization calculations.

[0072] The job sequence data 45 created by the optimization calculation unit 4 contains the jobs to be executed by the machining center and the order in which each machining center will execute its jobs. The optimization calculation unit 4 sends the created job sequence data 45 to the scheduling unit 5.

[0073] The scheduling unit 5 creates a job execution schedule 43 that sets the start and end times of jobs based on the job sequence data 45 created by the optimization calculation unit 4 and the job list 41.

[0074] In this way, the scheduling device 1A solves the optimization problem under constraint conditions, sets the machine and execution order for the job, and then adds a new job (such as maintenance) that resolves the most stringent constraint at that time, thereby releasing the constraint. Then, the scheduling device 1A solves the optimization problem under the next stringent constraint conditions, sets the machine and execution order for the job, and then adds a new job (such as maintenance) that resolves the most stringent constraint at that time, thereby releasing the constraint. By repeating this scheduling process, the scheduling device 1A can schedule jobs that satisfy the constraint conditions.

[0075] Figure 9 shows an example of the configuration of a job execution schedule created by the scheduling device according to Embodiment 1. In the job execution schedule 43 created by the scheduling unit 5, the job ID, the machine ID, the job start time, and the job end time are associated with each other.

[0076] The job execution schedule 43 includes the list of jobs "J001" to "J006" that were set in the job list 41, and the constraint resolution job list 50 set by the optimization calculation unit 4.

[0077] The constraint-resolving job list 50 is a list of jobs newly added by the optimization calculation unit 4 to resolve the constraints. The constraint-resolving job list 50 is a list of maintenance and other jobs to be performed to resolve the constraints. The constraint-resolving job list 50 includes a list of maintenance and other jobs set by the optimization calculation unit 4 and a list of stopped machining centers set by the optimization calculation unit 4.

[0078] The constraint resolution job list 50 in Figure 9 includes lists for maintenance H11 and H12 for machine "PM001" and a list for maintenance H11 for machine "PM002". In the job execution schedule 43 in Figure 9, the job ID for maintenance H11 for machine "PM001" is shown as "PM001_H11", the job ID for maintenance H12 for machine "PM001" is shown as "PM001_H12", and the job ID for maintenance H11 for machine "PM002" is shown as "PM002_H11".

[0079] Furthermore, in the job execution schedule 43 of Figure 9, the information indicating the stopped machining center "PM003" is shown when the job ID is set to "PM003_OUT". For the stopped machining center "PM003", the start time is the time when the machining center starts to stop, and the end time is the time when the machining center stops.

[0080] Generally, as the user's value criteria or scheduling requirements for the scheduling device become more complex, the job list 41 or constraint lists 42A, 42B also become more complex. The more complex the job list 41 or constraint lists 42A, 42B become, the more complex the strategy for determining the execution order of jobs becomes, making rule-based job scheduling impossible. Furthermore, even if the scheduling device attempts to find a solution as a combinatorial optimization problem, formulating the objective function or constraints takes time, so if even one requirement specification differs, the formulating must be redone.

[0081] On the other hand, in the scheduling device 1A of Embodiment 1, the job narrowing unit 3 performs job narrowing, and then the optimization calculation unit 4 determines which processing machine will execute each job and the execution order of the jobs on each processing machine. As a result, the scheduling device 1A only needs to assign the small number of jobs narrowed down according to the constraints to any of the processing machines, and can create a job execution schedule 43 in a short time.

[0082] Furthermore, since scheduling device 1A can perform scheduling without setting complex constraints and objective functions, there is no need to revise or add to the optimization formula. Also, scheduling device 1A can perform scheduling even without including complex constraints in the optimization condition formula. Additionally, scheduling device 1A can simplify the optimization formula, thus reducing computation time.

[0083] The job filtering unit 3 may use any or a combination of the following as job filtering conditions: priority, delivery date, processing machine capable of executing the job, product shipping destination, information on whether the workpiece is in work in progress, and the initial job registration date and time (the date and time the job was first registered in the job list 41). In other words, the job filtering unit 3 uses at least one of the following as job filtering conditions: priority, delivery date, processing machine capable of executing the job, product shipping destination, information on whether the workpiece is in work in progress, and the initial job registration date and time. By applying various filtering conditions in this way, the job filtering unit 3 can prevent a backlog of workpieces for which jobs are set, and can control the number of work-in-progress or completed items so that they do not increase excessively.

[0084] Furthermore, the scheduling device 1A may have a top priority flag set by the user to assign an execution date and time to a job with the highest priority, ignoring all constraints such as execution order constraints and execution date and time constraints. The scheduling device 1A can set jobs with this top priority flag set to be processed with the highest priority, thus enabling it to handle urgent jobs.

[0085] As described above, the scheduling device 1A of Embodiment 1 comprises a job filtering unit 3 and an optimization calculation unit 4. The job filtering unit 3 creates a filtered job list 41 by narrowing down the jobs set in the job list 41 to jobs that satisfy the constraint condition lists 42A and 42B. Based on the filtered job list 41, the optimization calculation unit 4 creates job order data 45, which is data indicating the processing machine on which the jobs will be executed and the order in which the jobs will be executed on the processing machine. As a result, the scheduling device 1A can create a job execution schedule 43 in a short time and provide it to the user.

[0086] Embodiment 2. Next, Embodiment 2 will be described using Figures 10 to 17. In Embodiment 2, the error in job execution time is learned, and scheduling is performed taking this error into consideration.

[0087] Figure 10 shows the configuration of a scheduling system equipped with a scheduling device according to Embodiment 2. Among the components in Figure 10, components that achieve the same function as the scheduling device 1A of Embodiment 1 shown in Figure 1 are denoted by the same reference numerals, and redundant explanations are omitted.

[0088] The scheduling system 10 includes a scheduling device 1B, a learning device 60, a trained model storage unit 65, and an inference device 70. The scheduling device 1B is a computer that creates a job execution schedule 43, similar to the scheduling device 1A.

[0089] In the scheduling system 10, the learning device 60 and the inference device 70 are connected to the trained model storage unit 65. The inference device 70 is also connected to the scheduling device 1B.

[0090] In Embodiment 2, the learning device 60 learns the correspondence between the estimated time set in the job list 41 and the error time relative to the estimated time. The error time relative to the estimated time is the difference between the estimated time and the actual execution time. The error time may be calculated by the learning device 60 or by a device other than the learning device 60.

[0091] The learning device 60 generates a trained model (a trained model 80, described later) by learning the correspondence between estimated time and error time. The trained model 80 is a model for inferring the error time corresponding to the estimated time. For example, the learning device 60 generates the trained model 80 based on an error list in which estimated time and error time are associated. The learning device 60 transmits the trained model 80 to the trained model storage unit 65.

[0092] The scheduling device 1B transmits the estimated time set in the job list 41 to the inference device 70. The inference device 70 infers the error time relative to the estimated time set in the job list 41. The inference device 70 calculates the error time by inputting the estimated time into the trained model 80. The inference device 70 transmits the calculated error time to the optimization calculation unit 4 of the scheduling device 1B. The scheduling device 1B creates the job execution schedule 43 using the error time relative to the estimated time.

[0093] Figure 11 shows the configuration of a learning device in the scheduling system according to Embodiment 2. The learning device 60 includes a data acquisition unit 61 and a model generation unit 62. The data acquisition unit 61 acquires the estimated time 66A and the error time 67A from outside the learning device 60.

[0094] The estimated time 66A acquired by the data acquisition unit 61 is the estimated time previously set in the job list 41 (the estimated time of a job previously executed). When the learning device 60 generates a trained model 80, the estimated time 66A and the error time 67A are input to the data acquisition unit 61. The data acquisition unit 61 sends the estimated time 66A and the error time 67A to the model generation unit 62 as training data.

[0095] The model generation unit 62 learns the error time 67A corresponding to the estimated time 66A based on training data created based on the combination of estimated time 66A and error time 67A sent from the data acquisition unit 61. In other words, the model generation unit 62 learns the error time 67A corresponding to the estimated time 66A based on training data created based on the combination of estimated time 66A and error time 67A. Here, the training data is data in which the estimated time 66A and error time 67A are related to each other.

[0096] The data acquisition unit 61 may also acquire the estimated time 66A and error time 67A for each processing machine. In this case, the model generation unit 62 learns the error time 67A corresponding to the estimated time 66A for each processing machine.

[0097] The data acquisition unit 61 may also acquire the estimated time 66A and error time 67A for each process. In this case, the model generation unit 62 learns the error time 67A corresponding to the estimated time 66A for each process.

[0098] The data acquisition unit 61 may also acquire the estimated time 66A and error time 67A for each job. In this case, the model generation unit 62 learns the error time 67A corresponding to the estimated time 66A for each job.

[0099] Alternatively, the data acquisition unit 61 may acquire the estimated time 66A and error time 67A for each workpiece. In this case, the model generation unit 62 learns the error time 67A corresponding to the estimated time 66A for each workpiece.

[0100] The data acquisition unit 61 may also acquire estimated time 66A and error time 67A for at least two combinations of processing machine, process, job, and workpiece. In this case, the model generation unit 62 learns the error time 67A corresponding to the estimated time 66A for at least two combinations of processing machine, process, job, and workpiece.

[0101] The model generation unit 62 can use known algorithms such as supervised learning, unsupervised learning, and reinforcement learning as learning algorithms. As an example, we will explain the case where a neural network is applied to the learning algorithm used by the model generation unit 62.

[0102] The model generation unit 62 learns an appropriate error time 67A corresponding to the estimated time 66A by so-called supervised learning, for example, according to a neural network model. Here, supervised learning is a method of learning the features contained in the learning data by providing the learning device 60 with pairs of data (training data) of input and result (labels), and inferring the result from the input.

[0103] A neural network consists of an input layer made up of multiple neurons, a hidden layer (intermediate layer) made up of multiple neurons, and an output layer made up of multiple neurons. The hidden layer may be one layer or two or more layers.

[0104] The trained model storage unit 65 stores the trained model 80 generated by the learning device 60. The trained model 80 stored in the trained model storage unit 65 is read out by the inference device 70 when the inference device 70 infers the error time (error time 67B, described later).

[0105] At least one of the learning device 60, the inference device 70, and the trained model storage unit 65 may be a separate device from the scheduling system 10, for example, connected to the scheduling system 10 via a network. At least one of the learning device 60, the inference device 70, and the trained model storage unit 65 may also be built into the scheduling device 1B. Furthermore, at least one of the learning device 60, the inference device 70, and the trained model storage unit 65 may reside on a cloud server. In addition, the learning device 60 and the inference device 70 may be implemented on different computers, or the learning device 60 and the inference device 70 may be implemented on a single computer.

[0106] Figure 12 is a diagram illustrating the neural network used in the learning device according to Embodiment 2. For example, in a three-layer neural network as shown in Figure 12, when multiple inputs are input to the input layer (X1~X3), the values ​​are multiplied by weights W1 (w11~w16) and input to the hidden layer (Y1~Y2). Then, the result is further multiplied by weights W2 (w21~w26) and output from the output layer (Z1~Z3). This output result varies depending on the values ​​of weights W1 and W2.

[0107] The neural network used by the learning device 60 in Figure 12 learns the error time 67A corresponding to the estimated time 66A through so-called supervised learning, according to training data created based on the combination of estimated time 66A and error time 67A acquired by the data acquisition unit 61. In other words, the neural network used by the learning device 60 in Figure 12 learns the error time 67A corresponding to the estimated time 66A through so-called supervised learning, according to the estimated time 66A and error time 67A created based on the combination of the first input and the second input (correct answer) acquired by the data acquisition unit 61.

[0108] In other words, the neural network learns by adjusting weights W1 and W2 so that the result output from the output layer approaches the second input (the correct answer) when it receives the first input, which is an estimated time of 66A.

[0109] In this way, the neural network learns by adjusting weights W1 and W2 so that when an estimated time 66A is input to the input layer, the result output from the output layer approaches the error time 67A. By learning the correspondence between the estimated time 66A and the error time 67A, the neural network generates a trained model 80 that can output an appropriate error time 67A when an estimated time 66A is input. In this way, the learning device 60 learns a trained model 80 that can output the correct error time 67A when an estimated time 66A is input.

[0110] The model generation unit 62 generates and outputs a trained model 80 by performing the training described above. The trained model storage unit 65 stores the trained model 80 output from the model generation unit 62.

[0111] Next, using Figure 13, the processing procedure for the learning device 60 to learn the trained model 80 will be described. Figure 13 is a flowchart showing the processing procedure for the learning process executed by the learning device according to Embodiment 2.

[0112] The data acquisition unit 61 acquires training data to be used for training (step S110). Specifically, the data acquisition unit 61 acquires the estimated time 66A and the error time 67A. The data acquisition unit 61 acquires the estimated time 66A and the error time 67A simultaneously, but it is sufficient that the estimated time 66A and the error time 67A are input in association. For this reason, the data acquisition unit 61 may acquire the estimated time 66A and the error time 67A at different times. The data acquisition unit 61 sends the estimated time 66A and the error time 67A to the model generation unit 62.

[0113] The model generation unit 62 performs a learning process using the estimated time 66A and the error time 67A (step S120). Specifically, the model generation unit 62 learns the error time 67A corresponding to the estimated time 66A by so-called supervised learning, according to the training data created based on the combination of the estimated time 66A and the error time 67A acquired by the data acquisition unit 61, and generates a trained model 80.

[0114] The model generation unit 62 generates a trained model 80 and then outputs the trained model 80 to the trained model storage unit 65 (step S130). The trained model storage unit 65 stores the trained model 80 generated by the model generation unit 62.

[0115] Figure 14 shows the configuration of the inference device in the scheduling system according to Embodiment 2. The inference device 70 includes a data acquisition unit 71 and an inference unit 72. The data acquisition unit 71 acquires the estimated time 66B from outside the inference device 70 (the scheduling device 1B in Embodiment 2). The estimated time 66B is the same information as the estimated time 66A. That is, the estimated time 66B is the estimated time set in the job list 41.

[0116] The data acquisition unit 71 acquires the estimated time 66B in the same manner as the data acquisition unit 61. The data acquisition unit 71 sends the acquired estimated time 66B to the inference unit 72. In the scheduling system 10, the data acquisition unit 71 is the first data acquisition unit, and the data acquisition unit 61 is the second data acquisition unit.

[0117] The inference unit 72 receives the estimated time 66B sent from the data acquisition unit 71. The inference unit 72 also reads the trained model 80 from the trained model storage unit 65. The inference unit 72 uses the trained model 80 to infer the error time 67B corresponding to the estimated time 66B. That is, the inference unit 72 can output the error time 67B inferred from the estimated time 66B by inputting the estimated time 66B acquired by the data acquisition unit 71 into the trained model 80. The inference unit 72 transmits the inferred error time 67B to the scheduling device 1B.

[0118] In Embodiment 2, the case was described in which the inference device 70 outputs an appropriate error time 67B using a trained model 80 learned by the model generation unit 62 of the scheduling system 10. However, the inference device 70 may also obtain the trained model 80 from an external source, such as another scheduling system. In this case, the inference device 70 outputs an appropriate error time 67B based on the trained model 80 obtained from the other scheduling system.

[0119] Next, using Figure 15, we will explain the processing procedure for the inference device 70 to infer the error time 67B using the trained model 80. Figure 15 is a flowchart showing the processing procedure for the inference process executed by the inference device according to Embodiment 2.

[0120] The data acquisition unit 71 acquires inference data to be used for inference with an error time of 67B (step S210). Specifically, the data acquisition unit 71 acquires an estimated time of 66B. The data acquisition unit 71 sends the estimated time of 66B to the inference unit 72. The inference unit 72 acquires the estimated time of 66B from the data acquisition unit 71 and acquires the trained model 80 from the trained model storage unit 65.

[0121] The inference unit 72 inputs an estimated time 66B into the trained model 80 (step S220) and obtains an appropriate error time 67B.

[0122] The inference unit 72 outputs data inferred using the trained model 80 and the estimated time 66B (step S230). Specifically, the inference unit 72 transmits the appropriate error time 67B obtained by the trained model 80 to the scheduling device 1B.

[0123] The scheduling unit 5 of the scheduling device 1B creates a job execution schedule 43 using the error time 67B corresponding to the estimated time 66B.

[0124] Figure 16 is a flowchart showing the processing steps of the scheduling process executed by the scheduling device according to Embodiment 2. Note that among the processes shown in Figure 16, those processes similar to those described in Figure 5 are given the same step numbers, and redundant explanations are omitted.

[0125] The processes performed by the scheduling device 1B in steps S10 and S20 are the same as those performed by the scheduling device 1A in steps S10 and S20. The optimization calculation unit 4 sends the estimated time (the execution time of the job to be set in the job execution schedule 43) set in the job sequence data 45 to the inference device 70. The inference device 70 then infers the error time corresponding to the estimated time and sends it to the optimization calculation unit 4. The optimization calculation unit 4 obtains the error time corresponding to the estimated time from the inference device 70 (step S25).

[0126] The optimization calculation unit 4 determines the machining center that will execute each job and the execution order of the jobs at each machining center based on the constraint list 42A, 42B and the error time. In other words, the optimization calculation unit 4 creates the machining center and the execution order of the jobs at each machining center under the constraint conditions using the error time (step S31). To put it another way, the optimization calculation unit 4 creates job order data 45 using the error time, which sets the machining center that will execute each job and the execution order of the jobs at each machining center so as to satisfy the constraint conditions defined in the constraint list 42A, 42B.

[0127] The optimization calculation unit 4 determines whether there are any constraints that have not yet been completed (step S40). If there are constraints that have not yet been completed (step S40, Yes), the scheduling device 1B returns to the process in step S20 and repeats the processes in steps S20 to S40.

[0128] On the other hand, if there are no constraints that prevent the calculation from being completed (step S40, No), the scheduling unit 5 sets the execution date and time for each job based on the execution order of jobs at each machining center determined by the optimization calculation unit 4, the estimated time in the job list 41, and the error time (step S52), and creates a job execution schedule 43.

[0129] The output unit 6 outputs the job execution schedule 43 created by the scheduling unit 5 to an external device such as a display device (step S60). This allows the user to refer to the job execution schedule 43 in which the job execution date and time are set.

[0130] Furthermore, when creating the trained model 80, the learning device 60 may calculate the number of training data sets used by the model generation unit 62 and send this number to the inference device 70. In this case, when the inference device 70 infers the error time corresponding to the job execution time, it calculates the confidence level of the inferred error time. The inference device 70 calculates a higher confidence level the larger the number of training data sets. The confidence level calculated by the inference device 70 is displayed by a display device or the like. This allows the user to refer to the confidence level of the error time.

[0131] Alternatively, the job filtering unit 3 may transmit the estimated time to the inference unit 70. In this case, the inference unit 70 transmits the inferred error time to the job filtering unit 3. The job filtering unit 3 filters the jobs based on the estimated time and the error time. The optimization calculation unit 4 sets the jobs in the job sequence data 45 based on the estimated time and the error time.

[0132] In this way, the scheduling system 10, the learning device 60 learns the error time corresponding to the estimated time based on the estimated time and error time of jobs executed in the past, and generates a trained model 80. The inference device 70 infers the error time corresponding to the estimated time by inputting the estimated time set in the job list 41 into the trained model 80. The scheduling device 1B creates a job execution schedule 43 so that the job satisfies the constraints based on the estimated time set in the job list 41 and the inferred error time. Since the scheduling system 10 learns and infers the estimation error, it can reduce the risk that the job will exceed the constraints that have an execution deadline.

[0133] Figure 17 is a diagram illustrating the scheduling process performed by the scheduling device according to Embodiment 2. Figure 17 illustrates the case in which the optimization calculation unit 4 determines which machining center will execute each job and the execution order of the jobs on each machining center, based on the narrowed-down job list 41, constraint condition lists 42A and 42B, and error time. Figure 17 shows the state in which job "J002" and the error time Tx for job "J002" are set in the job order data 45.

[0134] The optimization calculation unit 4 sets the job and error time in the job sequence data 45 so that the total time of the job's estimated time and error time satisfies the constraint (the deadline for the maintenance H11 of the processing machine "PM002"). In other words, even if the job satisfies the constraint, if the total time of the job's estimated time and error time does not satisfy the constraint, the optimization calculation unit 4 does not set the job and error time in the job sequence data 45.

[0135] Thus, the scheduling system 10 of the second embodiment includes a learning device 60 that creates a trained model 80 for inferring error time from the estimated job time, and an inference device 70 that uses the trained model 80 to infer error time from the estimated job time. The scheduling device 1B then creates a job execution schedule 43 using the error time inferred using the trained model 80. As a result, the scheduling system 10 can reduce the risk of jobs exceeding constraints with execution deadlines.

[0136] Embodiment 3. Next, Embodiment 3 will be described using Figures 18 to 23. In Embodiment 3, after the optimization calculation is performed, it is detected whether there is a violation of the constraint conditions (constraint violation), and if there is a constraint violation, the optimization calculation is performed again.

[0137] The scheduling device of Embodiment 3 determines the execution order of jobs, including jobs with constraints, and temporarily removes jobs that violate constraints (conditions under which jobs with execution restrictions cannot be executed) from the job order data 45, and then resets them to the job order data 45 according to the constraints.

[0138] Figure 18 shows the configuration of the scheduling device according to Embodiment 3. Among the components in Figure 18, components that achieve the same function as the scheduling device 1A of Embodiment 1 shown in Figure 1 are denoted by the same reference numerals, and redundant explanations are omitted.

[0139] The scheduling device 1C, like the scheduling device 1A, is a computer that creates a job execution schedule 43. The scheduling device 1C comprises an input unit 2, an optimization calculation unit 4, a scheduling unit 5, a constraint violation detection unit 7, and an output unit 6.

[0140] In the scheduling device 1C, the input unit 2 is connected to the optimization calculation unit 4, the scheduling unit 5, and the constraint violation detection unit 7, with the optimization calculation unit 4 connected to the scheduling unit 5. Furthermore, in the scheduling device 1C, the scheduling unit 5 is connected to the constraint violation detection unit 7. The constraint violation detection unit 7 is connected to the output unit 6 and the optimization calculation unit 4.

[0141] The input unit 2 of the scheduling device 1C inputs the job list 41 to the optimization calculation unit 4, the scheduling unit 5, and the constraint violation detection unit 7. The input unit 2 also inputs the constraint condition lists 42A and 42B to the constraint violation detection unit 7.

[0142] The optimization calculation unit 4 of the scheduling device 1C determines which machining center will execute each job and the execution order of the jobs on each machining center, based on the job list 41 before the jobs are narrowed down. The optimization calculation unit 4 assigns the jobs to the machining centers in such a way that the time it takes for all jobs in the job list 41 to be completed is minimized.

[0143] The scheduling unit 5 creates a job execution schedule 43 for each job, which includes the processing machine that will execute the job, the execution order, and the execution date and time. The scheduling unit 5 sends the created job execution schedule 43 to the constraint violation detection unit 7.

[0144] The constraint violation detection unit 7 detects jobs that violate constraints within the job execution schedule 43 or job sequence data 45, based on the job execution schedule 43 and constraint condition lists 42A and 42B. In Embodiment 3, the optimization calculation unit 4 determines which machine will execute each job and the execution order of jobs on each machine without considering the constraints set in the constraint condition lists 42A and 42B. Therefore, the job execution schedule 43 and job sequence data 45 may contain jobs that violate constraints (jobs that do not satisfy the constraints). For this reason, the constraint violation detection unit 7 detects jobs that violate constraints within the job execution schedule 43 or job sequence data 45.

[0145] If the constraint violation detection unit 7 detects a job that violates a constraint, it removes the job that violates the constraint from the job execution schedule 43 and the job sequence data 45. Furthermore, if the constraint violation detection unit 7 detects a job that violates a constraint, it modifies the job list 41 by removing jobs that do not violate the constraint from the job list 41. That is, the constraint violation detection unit 7 creates a modified job list 41 by removing jobs that do not violate the constraint from the job list 41. In this way, the constraint violation detection unit 7 determines the execution schedule for jobs that do not violate the constraint and removes these jobs from the job list 41. As a result, the job list 41 is left with jobs that violate the constraint.

[0146] Furthermore, the constraint violation detection unit 7 adds jobs corresponding to the constraint conditions (jobs to resolve the constraint conditions) to the job list 41. For example, the constraint violation detection unit 7 adds jobs such as maintenance that are performed to resolve the constraint conditions to the job list 41.

[0147] The constraint violation detection unit 7 sends a job list 41 to the optimization calculation unit 4 in which jobs that do not violate the constraints have been deleted and jobs such as maintenance have been added. The constraint violation detection unit 7 also sends job sequence data 45 in which jobs that violate the constraints have been deleted to the optimization calculation unit 4. The constraint violation detection unit 7 also sends a job execution schedule 43 in which jobs that violate the constraints have been deleted to the optimization calculation unit 4.

[0148] If the constraint violation detection unit 7 does not detect any jobs that violate the constraint conditions, it sends the job execution schedule 43 to the output unit 6. The output unit 6 outputs the job execution schedule 43 to an external device such as a display device.

[0149] When the optimization calculation unit 4 receives the modified job list 41 from the constraint violation detection unit 7, it determines which machining center will execute each job and the execution order of the jobs at each machining center based on this job list 41. In other words, the optimization calculation unit 4 determines which machining center will execute each job and the execution order of the jobs at each machining center based on the job list 41, which has been modified by removing jobs that do not violate the constraints and adding jobs such as maintenance jobs. Here again, the optimization calculation unit 4 assigns jobs to machining centers in such a way that the time it takes for all jobs in the job list 41 to be completed is minimized. The optimization calculation unit 4 adds the determined machining centers and the execution order of the jobs at each machining center to the modified job list 41. Then, the optimization calculation unit 4 leaves the jobs that do not violate the constraints in the job order data 45 and removes the jobs that violated the constraints from the job order data 45.

[0150] In the scheduling device 1C, the processes executed by the optimization calculation unit 4, the scheduling unit 5, and the constraint violation detection unit 7 are repeated. Specifically, the processes in which the optimization calculation unit 4 determines the execution order of jobs on each machining center, the scheduling unit 5 creates a job execution schedule 43, and the constraint violation detection unit 7 detects jobs that violate the constraint conditions within the job execution schedule 43 are repeated.

[0151] Figure 19 is a flowchart showing the processing steps of the scheduling process executed by the scheduling device according to Embodiment 3. Note that among the processes shown in Figure 19, those processes similar to those described in Figure 5 are given the same step numbers, and redundant explanations are omitted.

[0152] The processes in steps S10 and S60 performed by the scheduling device 1C are the same as those in steps S10 and S60 performed by the scheduling device 1A. The input unit 2 reads the job list 41 and the constraint list 42A and 42B from an external device or the like (step S10). The input unit 2 inputs the job list 41 to the optimization calculation unit 4, the scheduling unit 5, and the constraint violation detection unit 7. The input unit 2 also inputs the constraint list 42A and 42B to the constraint violation detection unit 7.

[0153] The optimization calculation unit 4 determines, based on the job list 41, which machine will execute each job and the execution order of the jobs at each machine. In other words, the optimization calculation unit 4 creates the machine and execution order for each job (step S30a).

[0154] The scheduling unit 5 sets the execution date and time for each job (step S50a) based on the job execution order for each processing machine and the estimated time in the job list 41 determined by the optimization calculation unit 4, and creates a job execution schedule 43.

[0155] The constraint violation detection unit 7 determines whether or not there are any jobs in the job execution schedule 43 that violate the constraint conditions, based on the job execution schedule 43 and the constraint condition lists 42A and 42B (step S55).

[0156] If there are jobs in the job execution schedule 43 that violate the constraints (step S56, Yes), the constraint violation detection unit 7 removes jobs that do not violate the constraints from the job list 41 and leaves the jobs that violate the constraints in the job list 41. The constraint violation detection unit 7 also adds jobs to resolve the constraints to the job list 41. In this way, the constraint violation detection unit 7 removes jobs that do not violate the constraints from the job list 41 and adds jobs to resolve the constraints to the job list 41 (step S57). The job list 41 from which jobs that do not violate the constraints have been removed and jobs to resolve the constraints have been added is the job list 41X described later.

[0157] The constraint violation detection unit 7 sends a job list 41X to the optimization calculation unit 4, in which jobs violating the constraints have been deleted and jobs to resolve the constraints have been added. The scheduling device 1C returns to the processing of step S30a and repeats the processing of steps S30a to S56.

[0158] If there are no jobs in the job execution schedule 43 that violate the constraints (step S56, No), the output unit 6 outputs the job execution schedule 43 created by the scheduling unit 5 to an external device such as a display device (step S60). This allows the user to refer to the job execution schedule 43 in which the job execution dates and times are set.

[0159] In this way, scheduling device 1C determines which machining center will execute each job and the execution order of the jobs on each machining center without using constraint lists 42A and 42B. That is, scheduling device 1C determines the execution order of jobs, including jobs with constraints. Furthermore, if scheduling device 1C finds a job that does not meet the constraints that prevent it from being executed, it automatically excludes that job from the job execution schedule 43 and does not allocate execution time to the job. As a result, scheduling device 1C does not exclude jobs from the beginning, but performs scheduling assuming that all jobs will be executed, and then excludes only the jobs that do not meet the constraints from the job execution schedule 43, thus simplifying the rules for excluding jobs that do not meet the constraints. Consequently, scheduling device 1C can create a job execution schedule 43 that satisfies the constraints with fewer calculations and shorter calculation time than scheduling device 1A.

[0160] Figure 20 is a diagram illustrating the first stage of the scheduling process performed by the scheduling device according to Embodiment 3. Figure 21 is a diagram illustrating the second stage of the scheduling process performed by the scheduling device according to Embodiment 3.

[0161] The optimization calculation unit 4 assigns each job to a machine in order of priority, starting with the highest priority job, based on the job list 41. For example, the optimization calculation unit 4 sets job "J001" to machine "PM001", job "J002" to machine "PM003", and job "J003" to machine "PM001". The optimization calculation unit 4 also sets job "J004" (not shown in Figures 20 and 21) to machine "PM001", job "J005" to machine "PM002", and job "J006" to machine "PM003". Job "J002" may also be set to machine "PM001".

[0162] The scheduling unit 5 creates a job execution schedule 43 based on the job execution order for each processing machine and the estimated time in the job list 41, which have been determined by the optimization calculation unit 4.

[0163] The constraint violation detection unit 7 determines whether or not there are any jobs in the job execution schedule 43 that violate the constraints, based on the job execution schedule 43 and the constraint condition lists 42A and 42B.

[0164] For example, if the job execution schedule 43 corresponds to the job sequence data 45 shown in Figure 20, the constraint violation detection unit 7 determines that jobs "J002" and "J006" set for the stopped processing machine "PM003" violate the constraint conditions.

[0165] Furthermore, the constraint violation detection unit 7 determines that job "J005" is in violation of the constraint conditions if maintenance H11 for "PM002" is not set by the deadline and is set to a date and time past the execution deadline for maintenance H11 for "PM002".

[0166] Furthermore, the constraint violation detection unit 7 determines that jobs "J003" and "J004" that are set up after the deadline for the maintenance H11 and H12 of "PM001" have passed, without the maintenance H11 and H12 of "PM001" being set up by the deadline, constitute a constraint violation.

[0167] Figure 21 shows the state in which the constraint violation detection unit 7 has extracted jobs that violate the constraints. The constraint violation detection unit 7 leaves the jobs that violate the constraints in the job list 41 and deletes the job "J001" that does not violate the constraints from the job list 41.

[0168] Figure 22 shows the configuration of the job list modified by the scheduling device according to Embodiment 3. As described above, the constraint violation detection unit 7 of the scheduling device 1C leaves jobs "J002" to "J006" that violate constraints in the job list 41 and deletes job "J001" that does not violate constraints from the job list 41. As a result, the constraint violation detection unit 7 generates a modified job list 41X from the job list 41.

[0169] Furthermore, the constraint violation detection unit 7 adds jobs to the job list 41X to resolve the constraint conditions. Figure 22 shows the case where "PM001_H11", "PM001_H12", "PM002_H11", and "PM003_OUT" are added to the job list 41X as job IDs for jobs to resolve the constraint conditions.

[0170] As mentioned above, "PM003_OUT" indicates that the processing machine "PM003" is stopped. "PM001_H11" and "PM001_H12" indicate maintenance H11 and H12 for processing machine "PM001," respectively, and "PM002_H11" indicates maintenance H12 for processing machine "PM002." The deadline for the job to resolve the constraints is the job execution deadline.

[0171] The constraint violation detection unit 7 sets the highest priority for the stopped processing machine. Here, the constraint violation detection unit 7 sets the priority of "PM003_OUT" to 1st place. The constraint violation detection unit 7 also sets higher priorities for jobs that resolve the constraint conditions, with jobs whose execution deadline (delivery date) is approaching. In addition, the constraint violation detection unit 7 lowers the priority of the original job set in job list 41 in job list 41X.

[0172] The optimization calculation unit 4 determines, based on the job list 41X, which machine will execute each job and the execution order of the jobs on each machine. Figure 23 is a diagram illustrating the third stage of the scheduling process performed by the scheduling device according to Embodiment 3.

[0173] The optimization calculation unit 4 assigns each job to the machine in order of priority, starting with the highest priority job, based on the job list 41X. In this case, if there are jobs that can be executed before maintenance, the optimization calculation unit 4 will set those jobs to take precedence over maintenance, even if they have a lower priority.

[0174] The optimization calculation unit 4 here sets "PM003_OUT" for the machining center "PM003" to indicate that it is stopped, based on the job sequence data 45. The optimization calculation unit 4 also sets job "J002" for the machining center "PM002" to be executable before maintenance H11 for the machining center "PM002", and then sets maintenance H11 for the machining center "PM002".

[0175] Furthermore, the optimization calculation unit 4 sets job "J001" for the machining center "PM001" to be executable before maintenance H11 for the machining center "PM001", and then sets maintenance H11 for the machining center "PM001". Also, similar to Embodiment 1, the optimization calculation unit 4 sets maintenance H12 for the machining center "PM001", and then sets job "J003" for the machining center "PM001". Furthermore, the optimization calculation unit 4 sets job "J005" for the machining center "PM002".

[0176] In the scheduling device 1C, the processes executed by the optimization calculation unit 4, the processes executed by the scheduling unit 5, and the processes executed by the constraint violation detection unit 7 are repeated. If the job execution schedule 43 created by the scheduling unit 5 does not contain any jobs that violate the constraints, the constraint violation detection unit 7 sets maintenance jobs in the job execution schedule 43 based on the constraint list 42B.

[0177] This enables the scheduling device 1C to create a job execution schedule 43 similar to that of the scheduling device 1A. The constraint violation detection unit 7 may set the maintenance job in the job execution schedule 43 at any time, as long as there are no constraint violations in the job that resolves constraints such as maintenance, and the setting of this job in the job execution schedule 43 has been confirmed.

[0178] The scheduling device 1C may also be applied to the scheduling system 10 described in Embodiment 2. In this case, the scheduling system 10 includes the scheduling device 1C, a learning device 60, a trained model storage unit 65, and an inference device 70. In this scheduling system 10 as well, the inference device 70 is connected to the scheduling unit 5 and sends the inferred error time to the scheduling unit 5.

[0179] As described above, the scheduling device 1C of Embodiment 3 includes an optimization calculation unit 4 and a constraint violation detection unit 7. The optimization calculation unit 4 creates job sequence data 45 without considering the constraints, and the constraint violation detection unit 7 removes jobs that do not satisfy the constraints from the job execution schedule 43 and job sequence data 45, removes jobs that satisfy the constraints from the job list 41, and adds jobs to the job list 41 to resolve the constraints, thereby creating a modified job list 41. The optimization calculation unit 4 solves an optimization problem based on the modified job list 41 to determine which machines will execute the jobs and the execution order of the jobs on the machines, so that the time it takes for all jobs in the modified job list 41 to be completed is minimized, and adds these to the job sequence data 45. As a result, the scheduling device 1C can simplify the rules for excluding jobs that do not satisfy the constraints. Therefore, the scheduling device 1C can create a job execution schedule 43 that satisfies the constraints in a short amount of time.

[0180] Here, we will describe the hardware configuration of scheduling devices 1A to 1C. Since scheduling devices 1A to 1C have similar hardware configurations, we will describe the hardware configuration of scheduling device 1A here.

[0181] Figure 24 shows an example of a hardware configuration for realizing a scheduling device according to Embodiment 1. The scheduling device 1A can be realized by an input device 300, a processor 100, a memory 200, and an output device 400. An example of the processor 100 is a CPU (Central Processing Unit, also known as a microprocessor, microcomputer, or DSP (Digital Signal Processor)) or a system LSI (Large Scale Integration). An example of the memory 200 is RAM (Random Access Memory) or ROM (Read Only Memory).

[0182] The scheduling device 1A is realized by the processor 100 reading and executing a computer-executable scheduling program stored in memory 200 for performing the operations of the scheduling device 1A. The scheduling program, which is the program for performing the operations of the scheduling device 1A, can also be said to cause the computer to execute the procedures or methods of the scheduling device 1A.

[0183] The scheduling program executed by the scheduling device 1A has a modular configuration including a job filtering unit 3, an optimization calculation unit 4, and a scheduling unit 5. The job filtering unit 3, the optimization calculation unit 4, and the scheduling unit 5 are loaded into the main memory, and the job filtering unit 3, the optimization calculation unit 4, and the scheduling unit 5 are generated in the main memory.

[0184] The input device 300 receives the job list 41 and the constraint lists 42A and 42B and sends them to the processor 100.

[0185] Memory 200 stores scheduling programs and other data. Memory 200 is also used as temporary memory when the processor 100 performs various processes. Output device 400 outputs the job execution schedule 43.

[0186] The scheduling program may be provided as a computer program product, stored on a computer-readable storage medium, in an installable or executable file format. Alternatively, the scheduling program may be provided to the scheduling device 1A via a network such as the Internet. Furthermore, some functions of the scheduling device 1A may be implemented using dedicated hardware, such as dedicated circuits, while others are implemented using software or firmware.

[0187] Furthermore, the hardware configuration of the job filtering unit 3 may be the hardware configuration shown in Figure 24. Similarly, the hardware configuration of the optimization calculation unit 4 may be the hardware configuration shown in Figure 24. Also, the hardware configuration of the scheduling unit 5 may be the hardware configuration shown in Figure 24. Furthermore, the hardware configuration of the learning device 60 may be the hardware configuration shown in Figure 24. Finally, the hardware configuration of the inference device 70 may be the hardware configuration shown in Figure 24.

[0188] The configurations shown in the above embodiments are merely examples, and it is possible to combine them with other known technologies, combine different embodiments, and omit or modify parts of the configuration without departing from the gist of the invention. [Explanation of symbols]

[0189] 1A~1C Scheduling device, 2 Input unit, 3 Job filtering unit, 4 Optimization calculation unit, 5 Scheduling unit, 6 Output unit, 7 Constraint violation detection unit, 10 Scheduling system, 41,41X Job list, 42A,42B Constraint condition list, 43 Job execution schedule, 45 Job sequence data, 50 Constraint resolution job list, 60 Learning device, 61,71 Data acquisition unit, 62 Model generation unit, 65 Trained model storage unit, 66A,66B Estimated time, 67A,67B Error time, 70 Inference device, 72 Inference unit, 80 Trained model, 100 Processor, 200 Memory, 300 Input device, 400 Output device.

Claims

1. a job narrowing unit that creates a narrowed-down job list, which is a job list that is a list of jobs executed by a plurality of processing machines, and a constraint condition list that is a list of constraint conditions for the processing machines, by narrowing down jobs set in the job list to jobs that satisfy the constraint conditions; an optimization calculation unit that solves an optimization problem based on the narrowed-down job list to determine the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines so that the time required for all jobs in the job list to be completed is minimized, and creates job order data that indicates the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines; a scheduling unit that creates a job execution schedule in which execution dates and times of the jobs for each of the processing machines are set based on the job order data and the job list; Equipped with the job narrowing-down unit uses at least one of a priority order for executing the job, a shipping destination of a product manufactured by executing the job, information on whether the work for which the job is executed is in process, and a date and time when the job is first registered in the job list as a job narrowing-down condition; A scheduling device comprising:

2. the optimization calculation unit sets a processing machine that is to execute the job and an execution sequence of the job on the processing machine so as to satisfy the constraint condition.

2. The scheduling device according to claim 1.

3. The job that satisfies the constraint condition is a job that can be completed by a deadline for performing maintenance work on the processing machine.

2. The scheduling device according to claim 1.

4. A job that satisfies the constraint condition is a job that can be completed within the life of a consumable of the processing machine.

2. The scheduling device according to claim 1.

5. A job that satisfies the constraints is a job to which a worker can be assigned.

2. The scheduling device according to claim 1.

6. the optimization calculation unit sets the processing machines that will execute the jobs and the execution order of the jobs in the processing machines in the job order data, and then adds a job for eliminating the strictest constraint condition at the time of setting to the job order data, thereby releasing the strictest constraint condition.

2. The scheduling device according to claim 1.

7. a process in which the job narrowing-down unit creates the narrowed-down job list that satisfies a first constraint condition among the constraint conditions; a process in which the optimization calculation unit creates the job order data that satisfies the first constraint condition and adds a job for solving the first constraint condition to the job order data; a process in which the job narrowing-down unit creates the narrowed-down job list that satisfies a second constraint condition that is the second strictest constraint condition after the first constraint condition among the constraint conditions; a process in which the optimization calculation unit creates the job order data that satisfies the second constraint condition and adds a job for solving the second constraint condition to the job order data; is repeated, 2. The scheduling device according to claim 1.

8. an optimization calculation unit that solves an optimization problem based on a job list that is a list of a plurality of jobs to be executed by a plurality of processing machines, determines the processing machines that will execute the jobs and the order in which the jobs will be executed by the processing machines so that the time required for all of the jobs in the job list to be completed is the shortest, and creates job order data that is data indicating the processing machines that will execute the jobs and the order in which the jobs will be executed by the processing machines; a scheduling unit that creates a job execution schedule in which execution dates and times of the jobs for each of the processing machines are set based on the job order data and the job list; a constraint violation detection unit which, when detecting a job that does not satisfy a constraint condition for the processing machine among the jobs set in the job execution schedule or the job order data, deletes the job that does not satisfy the constraint condition from the job execution schedule and the job order data, deletes the job that satisfies the constraint condition from the job list, and adds a job for eliminating the constraint condition to the job list, thereby creating a corrected job list; Equipped with the optimization calculation unit creates the job order data without taking into account the constraint conditions; the optimization calculation unit solves an optimization problem based on the modified job list, thereby determining the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines so as to minimize the time required for all the jobs in the modified job list to be completed, and adds data indicating the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines to the job order data. A scheduling device comprising:

9. A scheduling device according to any one of claims 1 to 8; an inference device for inferring an error time, which is an error in an estimated time required for executing the job; having The inference device comprises: A first data acquisition unit that acquires the estimated time; an inference unit that infers the error time from the estimated time by using a trained model for inferring the error time corresponding to the estimated time; Equipped with the optimization calculation unit creates the job order data using the error time; A scheduling system comprising:

10. A learning device that generates the trained model based on the estimated time and the error time, The learning device includes: a second data acquisition unit that acquires the estimated time and the error time as learning data; A model generation unit that generates the trained model using the training data; Equipped with The scheduling system according to claim 9 .

11. a job narrowing step in which the scheduling device creates a narrowed-down job list, which is a job list that is a list of jobs to be executed by a plurality of processing machines, and a constraint condition list that is a list of constraint conditions for the processing machines, by narrowing down jobs set in the job list to jobs that satisfy the constraint conditions; an optimization calculation step in which the scheduling device solves an optimization problem based on the narrowed-down job list to determine the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines so that the time required for all jobs in the job list to be completed is minimized, and creates job order data that indicates the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines; a scheduling step in which the scheduling device creates a job execution schedule in which execution dates and times of the jobs for each of the processing machines are set based on the job order data and the job list; Including, In the job narrowing down step, the scheduling device uses at least one of a priority order for executing the job, a shipping destination of a product manufactured by executing the job, information on whether or not the work for which the job is executed is in process, and a date and time when the job is first registered in the job list as a job narrowing down condition. A scheduling method comprising:

12. a job narrowing step of creating a narrowed-down job list, which is a job list that is a list of jobs executed by a plurality of processing machines, and a constraint list that is a list of constraints for the processing machines, by narrowing down jobs set in the job list to jobs that satisfy the constraints; an optimization calculation step of determining the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines so that the time taken for all jobs in the job list to be completed is minimized by solving an optimization problem based on the narrowed-down job list, and creating job order data that indicates the processing machines that will execute the jobs and the order in which the jobs will be executed on the processing machines; a scheduling step of creating a job execution schedule in which execution dates and times of the jobs for each of the processing machines are set based on the job order data and the job list; on the computer, In the job narrowing down step, at least one of a priority order for executing the job, a shipping destination of a product manufactured by executing the job, information on whether or not the work for which the job is executed is in process, and a date and time when the job is first registered in the job list is used as a job narrowing down condition. A scheduling program comprising: