Planning program, planning method, and information processing device
Patent Information
- Application Number
- JP2024533389
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-07-13
- Filing Date
- 2022-07-13
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2042-07-13
AI Technical Summary
Existing scheduling methods struggle to simultaneously optimize processing completion time and operating rate in multi-step processes, often resulting in long waiting times and suboptimal device utilization due to insufficient equipment availability.
A planning program and method that combines forward and backward placement strategies, adjusting processing start times and device allocation to align with the completion order of products, while optimizing device operating rates and ensuring timely completion within predetermined constraints.
This approach allows for simultaneous optimization of both processing completion time and device operating rate, improving device availability and reducing waiting times by effectively managing equipment utilization across multiple processes.
Abstract
Description
Planning program, planning method, and information processing device
[0001] The present invention relates to a planning program, a planning method, and an information processing device.
[0002] Techniques for optimizing scheduling in a plan for processing a plurality of objects in each process have been disclosed (see, for example, Patent Documents 1 to 4).
[0003] Japanese Patent Publication No. 2007-021264 U.S. Patent Publication No. 2005 / 0149219 U.S. Patent Publication No. 2006 / 0026052 Japanese Patent Publication No. 2013-152648
[0004] However, it is difficult to satisfy predetermined conditions regarding both the processing completion time and the utilization rate.
[0005] In one aspect, the present invention aims to provide a planning program, a planning method, and an information processing device that can satisfy predetermined conditions for both processing completion time and availability.
[0006] In one aspect, a planning program is a planning program that performs a plurality of processes on a plurality of objects in a sequence, a processing time is determined for each of the plurality of processes on each of the plurality of objects, the number of processing entities for any of the plurality of objects is determined for each of the plurality of processes, and while a processing entity is performing a process on any of the objects, the processing entity does not perform a process on other objects. The planning program is configured to program a computer to perform a predetermined sequence for the plurality of objects. a first step of arranging the plurality of objects in the processing subjects of the plurality of processes by forward arrangement, which plans the arrangement starting from a predetermined point in time, in accordance with the order of completion of processing of each object in the final process in the arrangement obtained in the first step; a second step of arranging the plurality of objects in the processing subjects of the plurality of processes by backward arrangement, which plans the arrangement in the reverse direction on the time axis starting from a predetermined point in time, in accordance with the order of completion of processing of each object in the final process in the arrangement obtained in the second step; a third step of aligning the processing start time of each object in each process in the arrangement obtained in the second step by moving forward; and a fourth step of moving the arrangement obtained in the third step forward to the predetermined point in time.
[0007] It is possible to satisfy predetermined conditions regarding both the processing completion time and the utilization rate.
[0008] 1A is a diagram illustrating an example of a work line, and 1B is a diagram illustrating master data. 1A is a diagram illustrating a flow when forward allocation is applied to the priority system. 1A and 1B are diagrams for explaining an example of allocation when forward allocation is applied to the priority system. 1B is a diagram illustrating a flow when forward allocation is applied to the FIFO system. 1A and 1B are diagrams illustrating forward allocation in the FIFO system. 1A is a diagram illustrating backward allocation in the priority system, and 1B is a diagram illustrating backward allocation in the FIFO system. 1A is a diagram illustrating an example of a case where the priority of each product type is optimized under the constraint of strictly meeting the delivery deadline when forward allocation is applied to the priority system, and 1B is a diagram illustrating an example of a case where the priority of each product type is optimized under the constraint of strictly meeting the delivery deadline when backward allocation is applied to the priority system. 1A is a diagram illustrating an example of optimizing the order of introduction of each product type under the constraint of strictly adhering to delivery deadlines when forward allocation is applied to the FIFO method, and FIG. 1B is a diagram illustrating an example of optimizing the order of introduction of each product type under the constraint of strictly adhering to delivery deadlines when backward allocation is applied to the FIFO method. (a) is a diagram illustrating equipment operation rates, and (b) is a diagram illustrating equipment operation rates in each method. (a) is a functional block diagram illustrating the overall configuration of an information processing device according to a first embodiment, and (b) is a block diagram illustrating the hardware configuration of each unit of the information processing device. (a) is a diagram illustrating procedure 01, and (b) is a diagram illustrating an example of arrangement according to procedure 02. (a) and (b) are diagrams illustrating procedure 03. (a) is a diagram illustrating procedure 03, and (b) is a diagram illustrating procedure 04. (b) is a diagram illustrating an example of an optimization processing flow executed by the information processing device. 1 is a flowchart illustrating details of the processing of step S3; FIG. 2 is a flowchart illustrating details of procedure 01; FIG. 3 is a flowchart illustrating details of procedure 02; FIG. 4 is a flowchart illustrating details of procedure 03; and FIG. 5 is a diagram illustrating simulation results.1A is a diagram showing the results of the optimization process when the number of devices in process 1 is 2, the number of devices in process 2 is 2, and the number of devices in process 3 is 1, and FIG. 1B is a diagram showing the results of the optimization process when the number of devices in process 1 is 2, the number of devices in process 2 is 2, and the number of devices in process 3 is 2. FIG. 1C is a block diagram illustrating a case where the results of the output unit are output to the operating device.
[0009] First, an overview of a processing line in which multiple processes are performed in sequence on multiple objects will be described. As an example, a work line in which work is performed in each process for each type of object will be described. In the work line, multiple processes are performed in sequence for each of multiple types of objects. FIG. 1(a) is a diagram illustrating an example of a work line. In the example of FIG. 1(a), three processes, process 1, process 2, and process 3, are performed in sequence.
[0010] In each process, the number of processing entities that perform work for each product type is set. Three devices, devices 1-1 to 1-3, are provided as processing entities for performing process 1. Two devices, devices 2-1 and 2-2, are provided as processing entities for performing process 2. One device, device 3-1, is provided as a processing entity for performing process 3. In this way, the number of devices that perform each process may differ. Also, there are processes in which the number of devices is fewer than the number of product types. While a device is performing work on a product type, that device does not perform work on other product types.
[0011] 1(b) is a diagram illustrating an example of master data. The master data includes all product types for which work is performed on the production line, and the work time (takt time) required for work performed in each process for each product type. In the example of FIG. 1(b), the master data includes product types 1 to 3.
[0012] As shown in FIG. 1B, for product type 1, the takt time for process 1 is set to 70 minutes, the takt time for process 2 is set to 110 minutes, and the takt time for process 3 is set to 70 minutes. For product type 2, the takt time for process 1 is set to 60 minutes, the takt time for process 2 is set to 30 minutes, and the takt time for process 3 is set to 60 minutes. For product type 3, the takt time for process 1 is set to 50 minutes, the takt time for process 2 is set to 50 minutes, and the takt time for process 3 is set to 50 minutes. In this way, the takt time for each process may differ depending on the product type. Note that the takt time for each process is assumed to be the same regardless of which device is used to perform the work. For example, for product type 1, the takt time for device 1-1 and device 1-2 are both 70 minutes.
[0013] Furthermore, as shown in Figure 1(b), a delivery time is set for each product type. In the example of Figure 1(b), the delivery time is set to 400 minutes for each of product types 1 to 3. The delivery time is the time by which the work in the final process must be completed.
[0014] If each process is equipped with a sufficient number of devices, there will be no waiting time when work cannot be performed for each product type. However, in actual production sites, there are not always enough devices. In the example of FIG. 1(a), there is only one device for performing process 3. Therefore, waiting time for work is likely to occur. In this case, a method for optimizing the plan (scheduling) for allocating each product type to each device is desired.
[0015] Scheduling placement rules can be broadly divided into two types. The first is a priority method, and the second is a first-in first-out method. The first-in first-out method is sometimes called a FIFO method. The priority method is a method in which each product type is placed in each device of each process according to the priority set for each product type. The first-in first-out method is a method in which each product type is placed in the first process in a predetermined order, and then the products are placed in the next process in order of the earliest completion of processing in each process.
[0016] Next, there are two methods for starting the scheduling. The first is forward allocation, and the second is backward allocation. Forward allocation is a method for creating a plan based on the input to the production line. Backward allocation is a method for creating a plan based on the delivery date, moving backward along the time axis.
[0017] FIG. 2 is a diagram illustrating a flow when forward allocation is applied to the priority method. As illustrated in FIG. 2, first, the priority of the product type is set (step S101). Next, a variable n representing the order of processes is set to n=1 (step S102). Next, the nth process operation is allocated forward according to the priority (step S103). Next, it is determined whether the nth process is the final process (step S104). If the determination in step S104 is "No," 1 is added to the variable n (step S105). Then, the process is executed again from step S103. If the determination in step S104 is "Yes," the flow ends.
[0018] 3A and 3B are diagrams illustrating an example of allocation when forward allocation is applied to the priority method. As illustrated in FIG. 3A, each product type is allocated according to its priority. For example, the priority is set in the order of product type 1, product type 2, and product type 3. In this case, at 0 minutes, which is the start time of input to the production line, product type 1 is allocated to any device in process 1 (device 1-1 in the example of FIG. 3A). Next, immediately after the takt time of product type 1 in process 1, product type 1 is allocated to any device in process 2 (device 2-1 in the example of FIG. 3A). Next, immediately after the takt time of product type 1 in process 2, product type 1 is allocated to device 3-1 in the process. In this way, product type 1 is allocated to the devices in each process. There is no waiting time for product type 1.
[0019] Next, at 0 minutes, product 2 is placed in one of the devices that is not operating in process 1 (device 1-2 in the example of FIG. 3(a)). Next, immediately after the takt time of product 2 in process 1, product 2 is placed in a device that is not operating in process 2 (device 2-2 in the example of FIG. 3(a)). Next, immediately after the takt time of product 2 in process 2, product 2 is placed in a device that is not operating in process 3 (device 3-1 in the example of FIG. 3(a)). In this way, product 2 is placed in the devices of each process. There is no waiting time for product 2 either.
[0020] Next, at 0 minutes, product 3 is placed in one of the devices that is not operating in process 1 (device 1-3 in the example of Figure 3(a)). Next, immediately after the takt time of product 3 in process 1, product 3 is placed in a device that is not operating in process 2. However, in the example of Figure 3(a), both devices are operating, so product 3 cannot be placed in the device until their operations are completed. When the work of product 2 is completed in device 2-2, the operation of device 2-2 ends, so product 3 is placed in device 2-2 at the time when the work of product 2 is completed. Next, immediately after the takt time of product 3 in process 2, product 3 is placed in a device that is not operating in process 3. However, in the example of Figure 3(a), device 3-1 is operating, so product 3 cannot be placed in the device until its operation is completed. When the work of product 1 is completed in device 3-1, the operation of device 3-1 ends, so product 3 is placed in device 3-1 at the time when the work of product 1 is completed.
[0021] In this way, the priority method allocates products with high priority to all processes in accordance with the order of priority so that the constraints are satisfied, and then determines the allocation of the next highest priority product. However, with the priority method, there may be a long waiting time for at least one product.
[0022] FIG. 4 is a diagram illustrating a flow when forward allocation is applied to the FIFO method. As illustrated in FIG. 4, first, the input order of each product type is set (step S201). Next, the allocation order of the first process is determined (step S202). Next, a variable n representing the process order is set to n=1 (step S203). Next, the nth process's work is allocated forward according to the determined input order (step S204). Next, it is determined whether the nth process is the final process (step S205). If step S205 returns "No," the work completion order for the nth process is obtained (step S206). Next, the work allocation order for the (n+1)th process is determined (step S207). Next, 1 is added to variable n (step S208). Then, the process is executed again from step S204. If step S205 returns "Yes," the flow ends.
[0023] 5A and 5B are diagrams illustrating forward placement in the FIFO method, in which products are placed in order of earliest placement at each time.
[0024] First, the order in which each product type is introduced is determined. As an example, the introduction order is determined to be product type 1, product type 2, and product type 3. Next, as illustrated in FIG. 5A, at 0 minutes, which is the start time of introduction into the production line, each product type is placed in devices 1-1 to 1-3 in process 1. If the number of devices is fewer than the number of products, the products are placed in order starting with the earliest product type. Next, because product 3 has the shortest takt time in process 1, product 3 is placed in one of the devices in process 2 (device 2-1 in the example in FIG. 5B) immediately after the takt time of product 3 in process 1. Because product 2 has the next shortest takt time in process 1, product 2 is placed in an inactive device in process 2 (device 2-2 in the example in FIG. 5B) immediately after the takt time of product 2 in process 1. Because work on product 1 is completed next in process 1, product 1 is placed in one of the inactive devices in process 2 immediately after the takt time of product 1 in process 1. However, in the example in FIG. 5B, because all the devices in process 2 are operating, product 1 cannot be placed until their operations are completed. When work on product 2 is completed at device 2-2, operation of device 2-2 ends, and product 1 is placed at device 2-2 upon completion of work on product 2. In the example of Figure 5(b), work on product 2 is completed first at process 2, so product 2 is placed at a device that is not operating at process 3 (device 3-1 in the example of Figure 5(b)) immediately after the takt time of product 2 at process 2. Work on product 3 is completed after product 2 at process 2, so product 3 is placed at a device that is not operating at process 3 immediately after the takt time of product 3 at process 2. However, in the example of Figure 5(b), work on product 2 is not completed, so product 3 cannot be placed at a device that is not operating at process 3 until operation ends. When work on product 2 is completed at device 3-1, product 3 is placed at device 3-1. Work on product 1 is completed last at process 2. Product 1 is placed at a device that is not operating at process 3 immediately after the takt time of product 1 at process 2. However, in the example of Figure 5(b), work on product 3 is not completed, so product 1 cannot be placed at a device that is not operating at process 3 until operation ends. When the work for product 3 is completed at device 3-1, product 1 is placed at device 3-1.
[0025] In this way, with the FIFO method, the product type that was completed first in each process is placed in the next process at each time. However, with the FIFO method, there may be a long waiting time for at least one product type.
[0026] FIG. 6A is a diagram illustrating priority-based backward allocation. In backward allocation, product types are allocated in the reverse direction of the time axis, starting from the due date. As illustrated in FIG. 6A, each product type is allocated backward according to its priority. For example, assume that the priorities are set in the order of product type 1, product type 2, and product type 3. In this case, product type 3 is allocated to device 3-1 so that the work completion time for product type 3 is 400 minutes before the due date. Next, product type 3 is allocated to one of the devices in process 2 (device 2-1 in the example of FIG. 6A) so that the work completion time for product type 3 in process 3 is the time backdated by the takt time of product type 3. Next, product type 1 is allocated to device 1-1 in process 1 so that the work completion time for product type 3 in process 2 is the time backdated by the takt time of product type 3. In this way, product type 3 is allocated to the devices in each process. There is no waiting time for product type 3.
[0027] Next, product 2 is allocated to one of the devices that is not operating in process 3 so that the work completion time for product 2 is 400 minutes after the due date. However, because work for product 3 is being performed in device 3-1, product 2 cannot be allocated to device 3-1. Product 2 is allocated to device 3-1 so that the work completion time for product 2 is the time that is moved back by the takt time of product 3 in process 3. Next, product 2 is allocated to a device that is not operating in process 2 (device 2-1 in the example of Figure 6(a)) so that the work completion time for product 2 is the time that is moved back by the takt time of product 2 in process 3. Next, product 2 is allocated to a device that is not operating in process 1 (device 1-2 in the example of Figure 6(a)) so that the work completion time for product 2 is the time that is moved back by the takt time of product 2 in process 2. In this way, product 2 is allocated to the devices in each process. There is no waiting time for product 2 either.
[0028] Next, product 1 is allocated to one of the devices that is not operating in process 1 so that the work completion time for product 1 is 400 minutes before the delivery date. However, product 1 cannot be allocated to device 3-1 because work for product 3 is being performed at device 3-1. Because work for product 2 will be performed next at device 3-1, product 1 is allocated to device 3-1 at a time that is the sum of the takt time for product 3 and the takt time for product 2, counting back from 400 minutes before the delivery date. Next, product 1 is allocated to a device that is not operating in process 2 (device 2-1 in the example of FIG. 6A) so that the work completion time for product 1 is the time counting back by the takt time for product 1. Next, product 1 is allocated to a device that is not operating in process 1 (device 1-1 in the example of FIG. 6A) so that the work completion time for product 1 is the time counting back by the takt time for product 1.
[0029] In this way, in the priority method, each product type is allocated to all processes according to the priority order so that the constraints are satisfied, and then the allocation of the next product type is determined. However, in the priority method, there may be a long waiting time for at least one product type.
[0030] FIG. 6(b) is a diagram illustrating backward allocation using the FIFO method. In backward allocation, product types are allocated in the reverse direction of the time axis, starting from the due date. As illustrated in FIG. 6(b), each product type is allocated backward according to the specified input order. Specifically, each product type is allocated to process 3. If the number of machines is fewer than the number of product types, the latest product types are allocated according to the input order. In the example of FIG. 6(b), product 3 is allocated to machine 3-1 so that the work completion time for product 3 is 400 minutes after the due date. Next, product 2 is allocated to machine 3-1 so that the work completion time for product 2 is the time backdated by the takt time of product 3 in process 3. Next, product 1 is allocated to machine 3-1 so that the work completion time for product 1 is the time backdated by the takt time of product 2 in process 3.
[0031] Next, product 3 is placed in any device in process 2 (device 2-1 in the example of FIG. 6(b)) so that the work completion time of product 3 is the time that goes back by the takt time of product 3 in process 3. Next, product 2 is placed in any device in process 2 (device 2-1 in the example of FIG. 6(b)) so that the work completion time of product 2 is the time that goes back by the takt time of product 2 in process 3. Next, product 1 is placed in any device in process 2 (device 2-1 in the example of FIG. 6(b)) so that the work completion time of product 1 is the time that goes back by the takt time of product 1 in process 3.
[0032] Next, product 3 is placed in any device in process 1 (device 1-1 in the example of FIG. 6(b)) so that the work completion time of product 3 in process 2 is the time that goes back by the takt time of product 3. Next, product 2 is placed in any device in process 1 (device 1-2 in the example of FIG. 6(b)) so that the work completion time of product 2 in process 2 is the time that goes back by the takt time of product 2. Next, product 1 is placed in any device in process 1 (device 1-1 in the example of FIG. 6(b)) so that the work completion time of product 1 in process 2 is the time that goes back by the takt time of product 1.
[0033] In this way, with the FIFO method, the product type that was completed first in each process is placed in the next process at each time. However, with the FIFO method, there may be a long waiting time for at least one product type.
[0034] Therefore, optimizing the scheduling may be considered. For example, FIG. 7( a) is a diagram illustrating an example in which the priority of each product type is optimized under the constraint of strictly meeting the delivery deadline when forward placement is applied to the priority method. In the example of FIG. 7( a), the priorities are changed from the placements of FIGS. 3( a) and 3(b). FIG. 7( b) is a diagram illustrating an example in which the priority of each product type is optimized under the constraint of strictly meeting the delivery deadline when backward placement is applied to the priority method. In the example of FIG. 7( b), the priorities are changed from the placement of FIG. 6( a). Even in these cases, there is a risk that at least one of the product types will have a long waiting time.
[0035] FIG. 8( a) is a diagram illustrating an example in which the introduction order of each product type is optimized under the constraint of strictly adhering to delivery dates when forward allocation is applied to the FIFO system. In the example of FIG. 8( a), the introduction order of each product type is changed from the allocations of FIGS. 5( a) and 5(b). FIG. 8( b) is a diagram illustrating an example in which the introduction order of each product type is optimized under the constraint of strictly adhering to delivery dates when backward allocation is applied to the FIFO system. In the example of FIG. 8( b), the introduction order is changed from the allocation of FIG. 6(b). Even in these cases, there is a risk of a long waiting time occurring for at least one of the product types.
[0036] Therefore, it is possible to optimize the equipment operation rate by focusing on the equipment operation rate. FIG. 9( a) is a diagram illustrating an example of the equipment operation rate. For each process, the total operation time is defined as (the time span from the start time of the first product type to be worked on to the completion time of the last product type) × the number of devices. Next, for each process, the time during which each product type is assigned to each device is defined as the actual operation time. The operation rate of each process can be expressed as actual operation time / total operation time × 100 (%). For example, in the example of FIG. 9( a), the area of the region surrounded by the dotted line in process 1 is the total operation time of process 1. The sum of the time during which each product type is assigned within the region surrounded by the dotted line in process 1 is the actual operation time of process 1. In the example of FIG. 9( a), the operation rate of process 1 is 85.7%, the operation rate of process 2 is 63.3%, and the operation rate of process 3 is 100%. The average of the operation rates of each process is defined as the equipment operation rate.
[0037] FIG. 9(b) is a diagram illustrating the equipment availability rate for each method. As illustrated in FIG. 9(b), the equipment availability rate for the results of FIGS. 3(a) and 3(b) was 83%. The equipment availability rate for the results of FIGS. 5(a) and 5(b) was 83%. The equipment availability rate for the results of FIG. 6(a) was 76%. The equipment availability rate for the results of FIG. 6(b) was 76%.
[0038] Therefore, it is possible to allocate each product type to each process so as to optimize the equipment operation rate. FIG. 10 is a diagram illustrating an example of allocating each product type to each process so as to optimize the equipment operation rate. In the example of FIG. 10, the operation rate of process 2 is improved compared to FIG. 9(a). As a result, the equipment operation rate is improved. However, even with the four methods that combine the priority method and FIFO method with forward and backward allocation, it is difficult to optimize the equipment operation rate. For example, with forward allocation, each product type is packed from the front, making it difficult to consider task swaps or intentional delays during the process. With backward allocation, each product type is packed from the back, so the operation rate may decrease the further forward the process. For these reasons, it is desirable to simultaneously optimize both the task completion time and the equipment operation rate through optimal allocation that combines the advantages of both forward and backward allocation. Task completion time refers to the time from the start time of the first product type to the completion time of the last product type.
[0039] In the following embodiments, a planning program, a planning method, and an information processing device that can simultaneously optimize both the work completion time and the equipment availability rate will be described.
[0040] 11A is a functional block diagram illustrating the overall configuration of an information processing device 100 according to Example 1. The information processing device 100 is, for example, a server for optimization processing. As illustrated in FIG. 11A, the information processing device 100 includes a storage unit 10, a calculation condition setting unit 20, a posting sequence generation unit 30, a calculation unit 40, a determination unit 50, an output unit 60, and the like.
[0041] Fig. 11B is a block diagram illustrating an example of the hardware configuration of each part of the information processing device 100. As illustrated in Fig. 11B, the information processing device 100 includes a CPU 101, a RAM 102, a storage device 103, an input device 104, a display device 105, and the like.
[0042] The CPU (Central Processing Unit) 101 is a central processing unit. The CPU 101 includes one or more cores. The RAM (Random Access Memory) 102 is a volatile memory that temporarily stores programs executed by the CPU 101, data processed by the CPU 101, and the like. The storage device 103 is a non-volatile storage device. Examples of the storage device 103 include a read-only memory (ROM), a solid-state drive (SSD) such as a flash memory, and a hard disk driven by a hard disk drive. The storage device 103 stores a planning program. The input device 104 is an input device such as a mouse or keyboard. Alternatively, the input device 104 is an interface for an external memory such as a USB memory. The display device 105 is a device that displays processing results of the information processing device 100, such as a display. The CPU 101 executes the planning program to realize each unit of the information processing device 100. Each unit of the information processing device 100 may be implemented using hardware such as a dedicated circuit.
[0043] The storage unit 10 stores a layout model of an operation line. For example, the storage unit 10 stores the layout model illustrated in FIG. 1A. The storage unit 10 also stores master data. For example, the storage unit 10 stores the master data illustrated in FIG. 1B.
[0044] Next, the principle of allocation of each product type to each process in this embodiment will be explained. In this embodiment, four processes, Procedure 01 to Procedure 04, are performed in order. FIG. 12(a) is a diagram illustrating Procedure 01. As illustrated in FIG. 12(a), in Procedure 01, forward allocation is applied to the FIFO method. In this case, the results described in FIG. 5(b) are obtained. In this case, the work completion time is 270 minutes, and the equipment operation rate is 85%.
[0045] Next, procedure 02 is performed. In procedure 02, the placement order for backward placement is determined from the completion order of each product type in the final process in the placement obtained in procedure 1. Specifically, since the forward placement in procedure 01 completes the work in the order of product type 2 → 3 → 1, the placement order for backward placement is set to product type 1 → 3 → 2. If there are multiple devices that can be placed for each product type, the device with the shortest operating time before placement is placed. Figure 12(b) is a diagram illustrating a case where placement is performed according to procedure 02. In the example of Figure 12(b), the work completion time is 270 minutes, and the equipment operation rate is 76%.
[0046] Next, step 03 is performed. In step 03, the backward allocation of step 02 is replaced with forward allocation. In this case, the start times of each process are aligned as much as possible. In the example of FIG. 13(a), in process 1, the work start times of products 1 to 3 can be aligned forward. In process 2, the work deviation times of products 1 and 2 can be aligned forward. In this case, as illustrated in FIG. 13(b), the work start times of each process are moved forward so as not to violate the constraints between the preceding and following processes. For example, locations where the work start points are aligned are linked and fixed to prevent shifts between the preceding and following processes. Next, as illustrated in FIG. 14(a), the backward allocation of FIG. 13(b) is replaced with a forward allocation plan. As a result, the work completion time becomes 280 minutes, and the equipment operation rate becomes 91%.
[0047] Next, step 04 is carried out. In step 04, for the allocation obtained in step 03, the tasks that can be moved forward are individually moved forward as much as possible. For example, as shown in the example of FIG. 14(b), linked tasks are separated and moved forward as much as possible. As a result, the task completion time becomes 270 minutes, and the equipment operation rate becomes 88.3%.
[0048] These steps 01 to 04 make it possible to simultaneously optimize both the task completion time and the equipment availability. Note that steps 01 and 02 may be based on a FIFO system or a priority system.
[0049] Next, an example of the specific operation of each unit of the information processing device 100 will be described. Fig. 15 is a diagram illustrating an example of the optimization processing flow executed by the information processing device 100. As illustrated in Fig. 15, the calculation condition setting unit 20 sets calculation conditions for a genetic algorithm (GA) (step S1). The calculation conditions include, for example, the number of repetitions of step S4, which will be described later.
[0050] Next, the putting sequence generation unit 30 generates an initial putting sequence for each product type (step S2). For example, the putting sequence generation unit 30 may generate the initial putting sequence based on information input by the user using the input device 104, or may generate the initial putting sequence randomly.
[0051] Next, the calculation unit 40 executes scheduling in accordance with the initial input order (step S3). Details of step S3 will be described later.
[0052] Next, the determination unit 50 determines whether the optimization is complete (step S4). For example, the determination unit 50 determines that the optimization is complete when the number of iterations included in the calculation conditions set in step S1 is reached.
[0053] If step S4 returns "No," the building sequence generation unit 30 generates the next building sequence using a genetic algorithm or the like (step S5). In this case, the building sequence generation unit 30 generates the building sequence so that the equipment operation rate and the work completion time satisfy predetermined conditions. Then, step S3 is executed again. When step S3 is executed for the second or subsequent times, scheduling is performed according to the building sequence generated in step S5.
[0054] If step S4 returns "Yes," the output unit 60 outputs the optimal input sequence from among the "task completion time and equipment operation rate" (1) to (4) for each input sequence (step S6). The output input sequence is displayed on the display device 105 or the like. For example, the input sequence that provides the best "task completion time and equipment operation rate" (4) may be output. For example, the input sequence that provides the best "task completion time" (4) may be output, or the input sequence that provides the best "equipment operation rate" (4) may be output, or the input sequence that provides the best weighted average of the "task completion time" (4) and the "equipment operation rate" (4) may be output. The "task completion time and equipment operation rate" (1) to (4) will be described later.
[0055] Fig. 16 is a flowchart illustrating the details of the process of step S3. As illustrated in Fig. 16, the calculation unit 40 performs forward allocation according to procedure 01 described in Fig. 12(a) (step S11).
[0056] Next, the calculation unit 40 calculates the "task completion time and equipment availability rate" (1) after the placement of procedure 01 (step S12).
[0057] Next, the calculation unit 40 performs backward placement according to step 02 described in FIG. 12(b) (step S13).
[0058] Next, the calculation unit 40 calculates the "task completion time and equipment availability rate" (2) after the placement of procedure 02 (step S14).
[0059] Next, the calculation unit 40 aligns the work start times for each process and replaces them with forward allocation in accordance with step 03 described in FIG. 13(a) (step S15).
[0060] Next, the calculation unit 40 calculates the "task completion time and equipment availability rate" (3) after the placement of procedure 03 (step S16).
[0061] Next, the calculation unit 40 individually moves forward the operations that can be moved forward as far as possible in accordance with step 04 described in FIG. 13(b) (step S17).
[0062] Next, the calculation unit 40 calculates the "task completion time and device availability rate" (4) after the placement of procedure 04 (step S18). After the above processing, the execution of the flowchart ends.
[0063] Fig. 17 is a flowchart illustrating the details of step 01. As illustrated in Fig. 17, the calculation unit 40 sets the order in which each type is introduced (step S21).
[0064] Next, the calculation unit 40 determines the arrangement order of the operations in the first process (process 1) (step S22).
[0065] Next, the calculation unit 40 sets n, which indicates the order of the process, to n=1 (step S23).
[0066] Next, the calculation unit 40 places the work of the nth process forward in accordance with the determined placement order (step S24).
[0067] Next, the calculation unit 40 determines whether the nth process is the final process (step S25). In the example of FIG. 1A, process 3 is the final process.
[0068] If the determination in step S25 is "No", the calculation unit 40 acquires the work completion order for each product type in the nth process (step S26).
[0069] Next, the calculation unit 40 determines the arrangement order of the tasks for the (n+1)th process (step S27).
[0070] Next, the calculation unit 40 sets n to n+1, thereby incrementing n by 1 (step S28), and then the process is executed again from step S24.
[0071] If the determination in step S25 is "Yes", the execution of the flowchart ends.
[0072] Fig. 18 is a flowchart illustrating the details of procedure 02. As illustrated in Fig. 18, the calculation unit 40 acquires the work completion order for each product type in the final process of procedure 01 (step S31).
[0073] Next, the calculation unit 40 determines the placement order of the operations in the final process (step S32).
[0074] Next, the calculation unit 40 sets the total number of steps s and a variable m. The calculation unit 40 sets the variable m to 0 (step S33).
[0075] Next, the calculation unit 40 places the work of the (sm)th process forward in accordance with the determined placement order (step S34).
[0076] Next, the calculation unit 40 determines whether the (s−m)th process is the final process (step S35).
[0077] If the determination in step S35 is "No", the calculation unit 40 obtains the completion order of the work before the (sm)th process (step S36).
[0078] Next, the calculation unit 40 determines the placement order of the operations before the (s−m−1)th process (step S37).
[0079] Next, the calculation unit 40 substitutes m+1 for m and increments the variable m by 1 (step S38). After that, the process is executed again from step S34.
[0080] If the determination in step S35 is "Yes," the execution of the flowchart ends.
[0081] 19 is a flowchart illustrating the details of step 03. The calculation unit 40 acquires the work allocation for all steps of step 02 (step S41).
[0082] Next, the calculation unit 40 sets a variable n that indicates the order of the process: The calculation unit 40 sets n=1 (step S42).
[0083] Next, the calculation unit 40 obtains the earliest work start time of all the work in the nth process (step S43).
[0084] Next, the calculation unit 40 arranges the nth process operation in a forward-aligned manner, starting from the earliest operation start time (step S44).
[0085] Next, the calculation unit 40 arranges the work of the nth process in a forward-scheduled manner, starting from the start time of the planning period (step S45).
[0086] Next, the calculation unit 40 determines whether the nth process is the final process (step S46).
[0087] If the determination in step S46 is "No", the calculation unit 40 substitutes n+1 for n, thereby incrementing n by 1 (step S47). Thereafter, the process is executed again from step S43.
[0088] If the determination in step S46 is "Yes", the execution of the flowchart ends.
[0089] Fig. 20 is a flowchart illustrating details of step 04. As illustrated in Fig. 20, the calculation unit 40 acquires the work allocation for all steps of step 03 (step S52).
[0090] Next, the calculation unit 40 sets a variable n that indicates the order of the process. The calculation unit 40 sets the variable n to 2 (step S52).
[0091] Next, the calculation unit 40 arranges the work in the nth process in a front-to-back manner, taking into account the previous process (step S53).
[0092] Next, the calculation unit 40 determines whether the nth process is the final process (step S54).
[0093] If the determination in step S54 is "No", the calculation unit 40 assigns n+1 to the variable n, thereby incrementing the variable n by 1 (step S55). Then, the process is executed again from step S53.
[0094] If the determination in step S54 is "Yes," the execution of the flowchart ends.
[0095] Next, a simulation was performed using the optimization process according to this embodiment on the layout of FIG. 1( a) and the master data of FIG. 1(b). FIG. 21 shows the simulation results. As shown in FIG. 21, the solutions surrounded by dotted lines are the optimal solutions resulting from optimization using the optimization process according to this embodiment. As shown in FIG. 21, it can be seen that both the equipment availability rate and the task completion time were optimized simultaneously.
[0096] The solutions obtained by the FIFO method and the priority method are also shown in Fig. 21. From the results in Fig. 21, it can be seen that a solution with high equipment availability was obtained that could not be found by either the FIFO method or the priority method.
[0097] 22(a) is a diagram showing the results of optimization processing when the number of devices in process 1 is 2, the number of devices in process 2 is 2, and the number of devices in process 3 is 1. As shown in FIG. 22(a), it can be seen that the results of optimization using the optimization processing according to this embodiment are better than those using the FIFO method and the priority method.
[0098] 22(b) is a diagram showing the results of optimization processing when the number of devices in process 1 is 2, the number of devices in process 2 is 2, and the number of devices in process 3 is 2. As shown in FIG. 22(b), it can be seen that the results of optimization using the optimization processing according to this embodiment are better than those using the FIFO method and the priority method.
[0099] According to this embodiment, by repeating backward placement and forward placement while satisfying constraints in both directions based on the placement planned in forward placement, it is possible to suppress bias in one direction and simultaneously optimize both the task completion time and the equipment operation rate. In the initial forward placement, the FIFO method is used, which can further improve the equipment operation rate.
[0100] In each of the above examples, multiple product types are an example of multiple objects. The equipment for each process is an example of a processing entity for each process. Therefore, the processing entity is not limited to a machine and may be a person. Procedure 01 is an example of a first process in which multiple objects are arranged in processing entities for multiple processes by forward allocation, which plans the arrangement starting from a predetermined time point according to a predetermined order for the multiple objects. Procedure 02 is an example of a second process in which multiple objects are arranged in processing entities for multiple processes by backward allocation, which plans the arrangement in the reverse direction of the time axis starting from a predetermined time point according to the order of completion of each object in the final process in the allocation obtained in the first process. Procedure 03 is an example of a third process in which the processing start time of each object is moved forward to align it in each process in the allocation obtained in the second process. Procedure 04 is an example of a fourth process in which the allocation obtained in the third process is moved forward to a predetermined time point.
[0101] In the above examples, the results output by the output unit 60 are output to the display device 105, but they may also be output to the operating device 200. FIG. 23 is a block diagram illustrating this case. The operating device 200 is, for example, a belt conveyor for transporting each product type to each device in each process on a work line. As illustrated in FIG. 23, the results output by the output unit 60 are output to the operating device 200. The operating device 200 operates to realize the optimal solution received from the output unit 60. The operating device 200 includes a CPU, RAM, a storage device, etc., and, for example, the storage device stores a control program for controlling the operation of the operating device 200, the RAM stores the optimal solution received from the output unit 60, and the CPU controls the operation of the operating device 200 based on the control program and the optimal solution.
[0102] Although the embodiments of the present invention have been described in detail above, the present invention is not limited to such specific embodiments, and various modifications and changes are possible within the scope of the gist of the present invention as described in the claims.
[0103] REFERENCE SIGNS LIST 10 storage unit 20 calculation condition setting unit 30 input sequence generation unit 40 calculation unit 50 determination unit 60 output unit 100 information processing device 105 display device
Claims
1. A planning program for planning the allocation of a plurality of objects to processing agents for the plurality of processes under the condition that a plurality of processes are performed in sequence on a plurality of objects, a processing time is set for each of the plurality of processes on the plurality of objects, a number of processing agents for any of the plurality of objects is set for each of the plurality of processes, and while a processing agent is performing a process on any of the objects, the processing agent does not perform a process on other objects, On the computer, a first step of arranging the plurality of objects in the processing subjects of the plurality of processes by forward arrangement, which plans arrangement of the plurality of objects from a predetermined time point according to a predetermined order for the plurality of objects; a second step of arranging the plurality of objects in the processing subjects of the plurality of processes by backward arrangement, which plans an arrangement in a backward direction on a time axis starting from a predetermined time point, according to a processing completion order of each object of the final process in the arrangement obtained in the first step; a third step of aligning the start times of the processes of the respective objects in the arrangement obtained in the second step; a fourth step of moving the arrangement obtained in the third step forward to a predetermined point in time; A planning program for executing the above steps.
2. 2. The planning program according to claim 1, wherein in the first step, the plurality of objects are arranged in a first process in a predetermined order, and thereafter, the objects are arranged in the next process in order of the earliest completion of each process.
3. 2. The planning program according to claim 1, wherein in the first step, the plurality of objects are arranged in the processing subjects of the plurality of processes in accordance with priorities set for the plurality of objects.
4. The computer includes: executing a repeating step of repeating the first to fourth steps after changing an input sequence in which the plurality of objects are input to the plurality of processes, and executing a process of searching for the input sequence in the repeating step such that an operating rate and a process completion time satisfy predetermined conditions; The operating rate is defined as the total operating time for each process (the time span from the start time of the first object to be processed to the completion time of the last object) x the number of subjects, the actual operating time is the time that each object is placed on each subject in each process, and the operating rate of each process is the actual operating time / total operating time x 100 (%), and is the average operating rate of each process; 4. The planning program according to claim 1, wherein the processing completion time is defined as a time from a processing start time of a first object to a processing completion time of a last object.
5. The computer includes:
5. The planning program according to claim 4, further comprising a step of selecting and outputting a result having the best operation rate and processing completion time from among the results obtained by the repetitive process.
6. 5. The planning program according to claim 4, wherein a genetic algorithm is used when searching for the input sequence.
7. A planning method for planning the allocation of a plurality of objects to processing agents for a plurality of processes, on the condition that a processing time is set for each of the plurality of processes for the plurality of objects, a number of processing agents for any of the plurality of objects is set for each of the plurality of processes, and while a processing agent is processing any of the objects, the processing agent does not process other objects, comprising: a first step of arranging the plurality of objects in the processing subjects of the plurality of processes by forward arrangement, which plans arrangement of the plurality of objects from a predetermined time point according to a predetermined order for the plurality of objects; a second step of arranging the plurality of objects in the processing subjects of the plurality of processes by backward arrangement, which plans an arrangement in a backward direction on a time axis starting from a predetermined time point, according to a processing completion order of each object of the final process in the arrangement obtained in the first step; a third step of aligning the start times of the processes of the respective objects in the arrangement obtained in the second step; a fourth step of moving the arrangement obtained in the third step forward to a predetermined point in time; The planning method comprises executing the steps of:
8. An information processing device which performs a plurality of processes on a plurality of objects in sequence, and plans the allocation of the plurality of objects to the processing agents for the plurality of processes under the condition that a processing time is determined for each of the plurality of processes on the plurality of objects, a number of processing agents for any of the plurality of objects is determined for each of the plurality of processes, and the processing agent does not perform processing on other objects during a period in which the processing agent is performing processing on any of the objects, an information processing device comprising a calculation unit that executes the following steps: a first step of arranging the multiple objects in the processing subjects of the multiple processes by forward arrangement, which plans the arrangement starting from a predetermined time point in accordance with a predetermined order for the multiple objects; a second step of arranging the multiple objects in the processing subjects of the multiple processes by backward arrangement, which plans the arrangement in the reverse direction on the time axis starting from a predetermined time point in accordance with the processing completion order of each object of the final process in the arrangement obtained in the first step; a third step of aligning the processing start times of each object in each process in the arrangement obtained in the second step by moving forward; and a fourth step of moving the arrangement obtained in the third step forward to the predetermined time point.