Task organization device, task organization method, and computer program
The task orchestration device employs sequential optimal allocation with random number addition to efficiently allocate tasks, addressing suboptimal solutions and reducing computation time, thereby enhancing productivity and finding multiple optimal solutions.
Patent Information
- Application Number
- JP2024040984
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-15
- Publication Date
- 2025-09-29
AI Technical Summary
Existing work allocation technologies struggle with managing a large number of processes and constraints, leading to suboptimal solutions and increased computational time, especially with genetic algorithms converging to local solutions and requiring extensive computation.
A task orchestration device that uses sequential optimal allocation with random number addition to evaluate and allocate tasks, reducing calculation time and searching for multiple optimal solutions by varying the evaluation values with random numbers.
This approach reduces calculation time and enhances the likelihood of finding task reorganization results closer to optimal solutions by exploring a wider area without relying on genetic algorithms, thus improving productivity and efficiency.
Smart Images

Figure 2025141173000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a task orchestration device, a task orchestration method, and a computer program. [Background technology]
[0002] Techniques related to work organization that allocate multiple tasks to multiple processes are known (see, for example, Patent Documents 1 and 2). Patent Document 1 describes a method for incorporating the know-how of workers and work managers who are familiar with work organization as rules and algorithms, and automating work allocation based on the incorporated rules, etc. Patent Document 2 describes a technique for using a genetic algorithm to create a work allocation that satisfies constraints on non-allocation and constraints on the precedence relationships between elemental tasks. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 5-2594 [Patent Document 2] Japanese Patent Application Laid-Open No. 2000-40106 Summary of the Invention [Problem to be solved by the invention]
[0004] There are a wide variety of constraints on products and elemental operations manufactured through multiple processes, and this trend will become even stronger in the future. Therefore, the technology described in Patent Document 1 may not be able to organize operations to accommodate a large number of processes and constraints. The work allocation using a genetic algorithm described in Patent Document 2 can organize operations close to the optimal solution in simple cases with a small number of operations. On the other hand, as the number of operations increases, the system tends to converge to a local solution, and an optimal work organization may not be achieved. Mutation can be used to escape from a local solution, but increasing the probability of mutation reduces the possibility of convergence. Furthermore, because genetic algorithms generate and evaluate multiple individuals over multiple generations, the computational time required for work organization may be long.
[0005] The present invention has been made to solve at least some of the problems described above, and aims to reduce calculation time, search for work organization over a wide area, and obtain work organization results that are close to multiple optimal solutions. [Means for solving the problem]
[0006] The present invention has been made to solve at least part of the above-mentioned problems, and can be realized in the following forms.
[0007] (1) According to one aspect of the present invention, a task orchestration device includes an information acquisition unit that acquires task information about a plurality of tasks for producing a product; a task selection unit that determines one of the plurality of tasks to be newly allocated to a process; an evaluation value calculation unit that calculates an evaluation value for each process that varies depending on the task information and tasks already allocated to the processes; a random number addition unit that generates a random number and adds the generated random number to the evaluation value; and a task allocation unit that allocates the selected task to the process with the largest evaluation value after adding the random number, wherein the task selection unit determines the one selected task, the evaluation value calculation unit calculates the evaluation value, the random number addition unit adds the random number to the evaluation value, and the task allocation unit allocates the selected task until all of the plurality of tasks have been allocated to the processes.
[0008] According to this configuration, sequential optimal allocation, in which each task is treated as a selected task and sequentially allocated to the process with the highest evaluation value, is performed until all tasks are allocated to one of the processes. In sequential optimal allocation, the selected task is allocated to the process with the highest evaluation value, calculated by adding a random number to the evaluation value calculated by the evaluation value calculation unit. The magnitude relationship of the evaluation values of each process to which a random number is added may change depending on the random number during sequential allocation. Therefore, when task reorganization using sequential optimal allocation is repeated multiple times, multiple different task reorganization results are generated depending on the changing random number. On the other hand, because the evaluation value used as the basis for sequential optimal allocation of each selected task includes not only random numbers but also the evaluation value for each process, it is difficult to create a task reorganization that is far from the optimal solution. Furthermore, because task reorganization is created using sequential optimal allocation without using a genetic algorithm or the like, the calculation time required for search is reduced. As a result, this configuration reduces the calculation time required for creating task reorganization, searches for a wide-area task reorganization, and obtains task reorganization results close to multiple optimal solutions.
[0009] (2) The task orchestration device of the above aspect may further include a pattern number designation unit that designates the number of patterns to search for in order to allocate tasks to processes, and the determination of one selected task by the task selection unit, the calculation of the evaluation value by the evaluation value calculation unit, the addition of a random number to the evaluation value by the random number addition unit, and the allocation of the selected task by the task allocation unit may be performed a number of times equal to the number of patterns. With this configuration, multiple searches are performed for the specified number of patterns, i.e., multiple times to create multiple work organization schemes. By performing multiple searches, different random numbers are added to the evaluation value, and the processes to which each selected task is allocated vary depending on the search, making it highly likely that different combinations of work organization schemes will be created. As a result, more work organization schemes close to the optimal solution can be obtained.
[0010] (3) In the task scheduling device of the above aspect, the random number addition unit may increase the variance of the random number to be added as the number of tasks that have not been assigned to the process increases. With this configuration, when there are many unassigned tasks, i.e., when the initial task allocation is performed in sequential optimal allocation, the magnitude relationship between the random numbers added to the evaluation values is likely to change significantly. In the opposite case to this configuration, the more tasks there are unassigned to a process, the smaller the variation in the random numbers added, which could lead to convergence to a local solution and the lack of a global search. Therefore, by using this configuration, task reorganization can be searched for on a wider scale, resulting in a task reorganization result that is closer to the optimal solution more often.
[0011] (4) In the task orchestration device of the above aspect, the task selection unit may use the task information to determine, as the selected task, a task that is difficult to allocate to a process, among unallocated tasks, with priority. With this configuration, tasks that are difficult to allocate to processes are given priority as the initial selected tasks in the sequential optimal allocation. With this configuration, tasks that are difficult to allocate to processes are given priority as the initial selected tasks in the sequential optimal allocation, which increases the number of process options to which the difficult-to-allocate tasks can be allocated, makes it easier to avoid infeasible task lineups, and increases the evaluation value of identical processes, etc., resulting in higher productivity, allowing for the search for a more appropriate task lineup.
[0012] The present invention can be realized in various forms, for example, in the form of a work organization device, a work allocation device, a process organization device, a process design device, a work organization method, a work allocation method, a process organization method, a process design method, a system including these devices or realizing these methods, a computer program for executing these devices or methods, a server device for distributing this computer program, a non-transitory storage medium on which a computer program is stored, etc. [Brief explanation of the drawings]
[0013] [Figure 1] 1 is a schematic block diagram of a task orchestration device according to an embodiment of the present invention; [Figure 2] FIG. 10 is an explanatory diagram of organization information. [Figure 3] FIG. 10 is an explanatory diagram of work time information. [Figure 4] FIG. 10 is an explanatory diagram of same process information. [Figure 5] FIG. 10 is an explanatory diagram of travel time information. [Figure 6] 1 is a flowchart of a work organization method according to the present embodiment. [Figure 7] FIG. 10 is an explanatory diagram of evaluation values for each process to which selection work is allocated. [Figure 8] FIG. 10 is an explanatory diagram of an evaluation value for each process and a random number added to the evaluation value. [Figure 9] FIG. 10 is an explanatory diagram of allocation destinations of selected work. [Figure 10] FIG. 10 is an explanatory diagram of the evaluation value and random number addition evaluation value for each process to which a selection task is allocated. [Figure 11] FIG. 10 is an explanatory diagram of allocation destinations of selected work and allocated work. [Figure 12] FIG. 10 is an explanatory diagram of the evaluation value and random number addition evaluation value for each process to which a selected task is allocated. [Figure 13] FIG. 10 is an explanatory diagram of allocation destinations of selected work and allocated work. [Figure 14] FIG. 10 is an explanatory diagram of the evaluation value and random number addition evaluation value for each process to which a selection task is allocated. [Figure 15] FIG. 10 is an explanatory diagram of allocation destinations of selected work and allocated work. [Figure 16] FIG. 10 is an explanatory diagram showing the relationship between the tasks allocated to each process and the order in which the tasks are allocated. [Figure 17] FIG. 10 is an explanatory diagram of the evaluation value and random number addition evaluation value for each process to which a selection task is allocated. [Figure 18] FIG. 10 is an explanatory diagram of allocation destinations of selected work. [Figure 19] FIG. 10 is an explanatory diagram of evaluation values for each process to which selection work is allocated. [Figure 20] FIG. 10 is an explanatory diagram showing the relationship between the tasks allocated to each process and the order in which the tasks are allocated. [Figure 21] FIG. 10 is an explanatory diagram of the allocation of tasks in the second embodiment. [Figure 22] FIG. 10 is an explanatory diagram of constraints on precedence-successor relationships. DETAILED DESCRIPTION OF THE INVENTION
[0014] <Embodiment> 1 is a schematic block diagram of a task orchestration device 100 according to one embodiment of the present invention. The task orchestration device 100 of this embodiment adds a random number to an evaluation value used when determining the process to which multiple tasks should be allocated, and determines the process to which each task should be allocated based on the evaluation value after adding the random number. By executing task orchestration using random numbers a predetermined number of times, the magnitude relationship between the evaluation values to which the random numbers have been added changes, allowing multiple optimal task orchestrations to be created through a wide-area search.
[0015] As shown in Fig. 1, the work orchestration device 100 includes a control device 10, a storage device 20 that stores work information about multiple work tasks for producing a product, a communication unit 30 that transmits and receives information to and from other devices, servers, etc. via wireless communication, an input unit 40 that accepts input of various information, and an output unit 50 that outputs various information. In this embodiment, the control device 10 is configured as a personal computer. Details of the control device 10 will be described later. The input unit 40 is configured by a keyboard, a mouse, and a microphone. The output unit 50 is configured by a monitor that displays various images and a speaker.
[0016] The storage device 20 is composed of a hard disk drive (HDD: Hard Disk Drive), etc. The storage device 20 includes an organization information database (organization information DB) 21 that stores the number of processes to which tasks are allocated and the takt time, a task time database (task time DB) 22 that stores the task time required for each task to be performed in the process, an identical process database (same process DB) 23 that stores identical process information, a travel time database (travel time DB) 24 that stores the travel time between task positions where tasks are performed when two adjacent tasks are performed in the same process, and a task organization database (task organization DB) 25 that stores the results of task organization in which all tasks are allocated to processes by the control device 10.
[0017] Fig. 2 is an explanatory diagram of the organization information stored in the organization information DB 21. Fig. 2 shows an example of the organization information as a table. In the organization information shown in Fig. 2, the number of processes to which work is allocated is three, and the takt time of each process is set to 60 seconds. Therefore, the total time for the work performed in each of the three processes must be set to within 60 seconds.
[0018] FIG. 3 is an explanatory diagram of the task time information stored in the task time DB 22. FIG. 3 shows an example of task time information for eight tasks associated with task IDs in a table. FIG. 3 also shows the ideal allocation process, which indicates the process to which each task should be allocated, and the task time required to perform the task at each process. For example, there is no ideal allocation process for task 1, so it is shown as "0" in FIG. 3. The task time for task 1 is 15 seconds. The ideal allocation process for task 2 is process 1, so the amount of change in the evaluation value, described below, will be different if task 2 is allocated to process 1 than if task 2 is allocated to processes 2 and 3. The task time for task 2 is 15 seconds. The ideal allocation process and task time are used in the evaluation value calculated when allocating each task to a process, described below.
[0019] FIG. 4 is an explanatory diagram of the same process information stored in the same process DB 23. FIG. 4 shows an example of the same process information associated with three same process IDs as a list. The same process information shown in FIG. 4 indicates combinations that are preferable when two tasks are allocated to the same process. Three combinations are stored in FIG. 4. The three combinations are a combination of Task 2 and Task 5, a combination of Task 1 and Task 4, and a combination of Task 3 and Task 6. Therefore, for example, when Task 2 and Task 5 are allocated to the same Process 1, the change in the evaluation value, which will be described later, becomes large. In other words, when Task 2 is allocated to Process 1 and Task 5 is then allocated, the evaluation value of Process 1 increases due to the same process information. As will be described in detail later, processes with higher evaluation values are given higher priority in allocation of tasks.
[0020] FIG. 5 is an explanatory diagram of travel time information stored in the travel time DB 24. FIG. 5(a) shows an example of travel time information in a table. In FIG. 5(a), when two tasks are performed consecutively in the same process, the preceding task that is performed first is shown as a row and the following task that is performed later is shown as a column, and travel time (seconds) due to changes in task position is shown. For example, when the preceding task is task 1 and the following task is task 2, a travel time of 1 second is incurred. When the preceding task is task 2 and the following task is task 7, a travel time of 6 seconds is incurred.
[0021] Figure 5(b) shows the relationship between the task locations where each task allocated to a process is performed. As shown in Figure 5(b), for example, the distance between task 1 and tasks 2, 3, and 4 is a distance that requires one second of travel time. Note that tasks 2, 3, and 4 are located in the same location, so no travel time is incurred when these tasks are performed consecutively. Similarly, tasks 5 and 6 are located in the same location, and tasks 7 and 8 are located in the same location. For example, the distance between task 1 and tasks 5 and 6 is a distance that requires three seconds of travel time. The travel time shown in Figure 5(a) is calculated from the relationship between the task locations of each task shown in Figure 5(b).
[0022] 1 functions as a CPU (Central Processing Unit) and executes a computer program stored in a ROM (Read Only Memory), not shown, by expanding it into a RAM (Random Access Memory). As a result, the control device 10 not only controls each unit of the control device 10 but also functions as an acquisition unit (information acquisition unit) 11, a designation unit (pattern number designation unit) 12, a selection unit (task selection unit) 13, an evaluation value calculation unit 14, a random number addition unit 15, and an allocation unit (task allocation unit) 16.
[0023] The acquisition unit 11 acquires input information via the input unit 40 and work information stored in the storage device 20. The acquisition unit 11 acquires organization information, work time information, same process information, and movement time information from the storage device 20.
[0024] The designation unit 12 designates the number of patterns to be searched for in order to allocate tasks to processes. In this embodiment, a number input by the user via the input unit 40 is selected as the number of patterns. The number of patterns is the number of times to search for allocating tasks to processes (sequential allocation process for all tasks), i.e., the control device 10 attempts to organize tasks the number of times equal to the number of patterns. The number of patterns may be a preset number.
[0025] The selection unit 13 determines a selected task, which is one of multiple tasks allocated to a process, to be newly allocated to the process. The selection unit 13 determines one task to be allocated to the process by the next processing operation from among unallocated tasks that have not been allocated to a process. In this embodiment, the selection unit 13 uses task information to prioritize unallocated tasks that are difficult to allocate to a process as selected tasks. A task that is difficult to allocate is one that is difficult to satisfy constraints. For example, a task with a long operation time is one that is difficult to satisfy constraints within the takt time, and a task with many constraints within the same process is one that is difficult to satisfy constraints within the same process. These difficult tasks become more difficult to allocate in the later stages of sequential optimal allocation than in the early stages. For example, if a task with an operation time of 30 seconds is allocated early in the sequential allocation for a takt time of 60 seconds, all processes have a large amount of free time (takt time - the sum of the operation times of already allocated tasks), making the task allocable. On the other hand, in the later stages of allocation, processes with free time of 30 seconds or more are rare, and the possibility of it being zero increases, which may result in the creation of an unrealizable work organization that does not satisfy the constraints. Work that is difficult to allocate is not only work time, but also work with many identical processes, work with many ideal processes, and, although not in this example, work with many precedence-sequence constraints (for example, part A final tightening must always be performed after part A temporary tightening).
[0026] The evaluation value calculation unit 14 calculates an evaluation value for each process, which changes depending on the task information and the tasks already allocated to the process. In this embodiment, as will be described in detail later, an evaluation value for each process is calculated each time a selected task is allocated to a process, and the process to which the selected task is allocated is determined based on the calculated evaluation value. Note that when no tasks have been allocated to a process, i.e., before the first task is allocated, the evaluation value calculation unit 14 calculates an evaluation value without using the assigned tasks.
[0027] The random number addition unit 15 generates a random number and calculates a random number addition evaluation value by adding the generated random number to the evaluation value calculated by the evaluation value calculation unit 14. In this embodiment, the random number addition unit 15 increases the variance of the random number to be added as the number of tasks unassigned to the process increases. For example, if there are eight tasks to be assigned to the processes and all eight tasks are now assigned to processes 1 to 3, the variance of the random number added to the evaluation value will be greater than the variance of the random number added to the evaluation value when allocating all eight tasks. In this embodiment, eight positive random numbers are arranged in descending order to sequentially allocate the eight tasks, and the variance of the random number added to the evaluation value is determined according to the values of the eight random numbers. When task organization trials are performed according to the number of patterns, the evaluation value to which the random numbers are added changes, resulting in different task organization trials.
[0028] The allocation unit 16 allocates the selected work to the process with the largest random number added evaluation value. The determination of the selected work to be allocated to the processes by the selection unit 13, the calculation of the evaluation value for each process by the evaluation value calculation unit 14, the calculation of the random number added evaluation value by the random number addition unit 15, and the allocation of the selected work to the processes by the allocation unit 16 are repeated until all the works are allocated to some process and a work organization is created.
[0029] <First Example> FIG. 6 is a flowchart of the task organization method in this embodiment. The task organization flow shown in FIG. 6 shows the flow of creating one task organization using the task information (FIGS. 2 to 5) of the above embodiment. In the task organization flow, first, the acquisition unit 11 performs an information acquisition process to acquire task information from the storage device 20 (step S1). The designation unit 12 designates the number of patterns, which is the number of attempts to create a task organization (step S2). In this embodiment, the number of patterns is designated as "1000" by user input via the input unit 40.
[0030] The selection unit 13 performs a task selection process to determine one selected task to be allocated to the process using the task information (step S3). In this example, the selection unit 13 selects tasks with the longest task times from among the tasks not yet allocated to the process. As shown in FIG. 3, the task times for tasks 5, 7, and 8 are 30 seconds, task 4 is 25 seconds, and tasks 1, 2, 3, and 6 are 15 seconds. In this example, the selection unit 13 randomly determines the order in which tasks with the same task times are allocated. The selection unit 13 determines the order in which the tasks are allocated as follows: tasks 7, 8, 5, 4, 6, 3, 2, and 1. Therefore, the selection unit 13 determines task 7 as the first selected task to be allocated to the process.
[0031] The evaluation value calculation unit 14 performs an evaluation value calculation process to calculate an evaluation value F for each of the three processes (step S4). In this embodiment, the evaluation value F is calculated using the following formula (1). F = α1 × process work time + α2 × ideal allocation process + α3 × same process + α4 × travel time...(1) α1, α2, α3, α4: weighting coefficients
[0032] The "process work time" in the above formula (1) is a term of the individual evaluation value used to ensure that the total work time for each process is within the takt time (Figure 2). The "ideal allocation process" in the above formula (1) is a term of the individual evaluation value for allocating work to processes that are set as ideal allocation processes shown in Figure 3. The "same process" in the above formula (1) is a term of the individual evaluation value for allocating combined work corresponding to the three same process IDs shown in Figure 4 to the same process. The "travel time" in the above formula (1) is a term of the individual evaluation value for shortening travel time that occurs due to differences in work positions between each task. In other words, the evaluation value F is a weighted sum of the individual evaluation values. In this embodiment, the evaluation value is calculated with all of the weighting coefficients α1 to α4 set to "1".
[0033] Figure 7 is an explanatory diagram of the evaluation value F for each process to which task 7 of the selected task is allocated. Figure 7 shows a table of the individual evaluation values for each term in formula (1) above when task 7 is allocated to processes 1 to 3. The individual evaluation value of the process work time is calculated as "0" if the selected task is allocated within the takt time. On the other hand, if the selected task exceeds the takt time when allocated, the value (in seconds) of the difference is calculated as the individual evaluation value of the process work time. For example, if multiple tasks have been allocated to process 1 before task 7 of the selected task, and the total work time (the allocated work time plus the 30 seconds of task 7) is 75 seconds, the individual evaluation value of the process work time is calculated as "-15," which is the takt time (60 seconds) minus 75 seconds (Figure 2). Therefore, task 7 is the first task to be allocated to a process, and since it will fit within the takt time regardless of which process it is allocated to, the individual evaluation values of the process work time for processes 1 to 3 shown in Figure 7 are zero.
[0034] The individual evaluation value for travel time is calculated as the reference evaluation value of "10" minus the travel time per process. There are three processes, processes 1 to 3. For example, if process 7 is allocated to processes 1 and 3, each of which already has one task assigned to it, and the total travel time for the three tasks is "6," the travel time per process is "2," calculated by dividing the total travel time of 6 by the number of processes, 3. In this case, the individual evaluation value for travel time is calculated as "8.0," calculated by subtracting the travel time per process, 2, from the reference evaluation value of 10. Note that when task 7 of the selected task shown in Figure 7 is allocated, there is no task assigned to any of the processes, and the total travel time is zero, so the individual evaluation values for travel time for processes 1 to 3 are calculated as the reference evaluation value of 10.0.
[0035] The individual evaluation value of the same process is calculated as the number of combinations that are preferable when allocated to the same process, as shown in Figure 4, multiplied by "5.0." For example, if task 2 has already been allocated to process 1 and task 5 is allocated to process 1, tasks 2 and 5 are a combination that is preferable when allocated to the same process, as shown in Figure 4, and 5.0 is added to the individual evaluation value of process 1. Note that if a preferable combination other than the combination of tasks 2 and 5 is allocated to process 1, the individual evaluation value of process 1 may be 10.0 or 15.0. In the state shown in Figure 7, no tasks are allocated to any of processes 1-3, so even if the selected task task 7 is allocated to any process, the combination shown in Figure 4 is not established, and the individual evaluation values of the same process are the same, "0.0."
[0036] The evaluation value of the ideal allocation process is increased by "5.0" when an operation for which the ideal allocation process shown in Figure 3 is set is allocated to the same process as the ideal allocation process. In other words, the individual evaluation value of the ideal allocation process is the value obtained by multiplying the number of operations allocated to the ideal allocation process by 5.0. As shown in Figure 3, the ideal allocation process for operation 7 in the operation selection is operation 1. Therefore, if operation 7 is allocated to operation 1, the number of successful completions will be 1, and if operation 7 is allocated to operations 2 and 3, the number of successful completions will be 0. Therefore, the individual evaluation value of the ideal allocation process for operation 1 shown in Figure 7 is "5.0", and the values for operations 2 and 3 are set to "0.0".
[0037] Once the individual evaluation value for each process is calculated, the random number addition unit 15 generates a random number to be added to the evaluation value F, which is the sum of the values obtained by multiplying each individual evaluation value by a weight (step S5 in FIG. 6). The random number addition unit 15 calculates a random number added evaluation value by adding the random number to the evaluation value F for each process (step S6 in FIG. 6).
[0038] FIG. 8 is an explanatory diagram of the evaluation value F for each process and the random number added to the evaluation value F. In addition to the list shown in FIG. 7, FIG. 8 also shows the evaluation value F for each process, the random number added to the evaluation value F, and the random-number-added evaluation value obtained by adding the random number to the evaluation value F. The evaluation value F of process 1, hatched in FIG. 8, 15.0, is the largest of the evaluation values F of the three processes. FIG. 8 also shows the random numbers generated by the random number addition unit 15: 61.0 added to the evaluation value of process 1, 28.2 added to the evaluation value of process 2, and 5.5 added to the evaluation value of process 3.
[0039] As shown by the hatching in FIG. 8, of the random number additive evaluation values of the three processes 1 to 3, the random number additive evaluation value of process 1 is the highest, 76.0. Therefore, the allocation unit 16 performs a task allocation process to allocate task 7, which is the selected task, to process 1, which has the highest random number additive evaluation value (step S7 in FIG. 6). Note that the process with the highest evaluation value F and random number additive evaluation value of task 7 is process 1, and these values do not change depending on the random number. FIG. 9 is an explanatory diagram of task allocation destinations. In FIG. 9, task 7 is allocated to process 1 (hatched), and the processes to which the other unallocated tasks are allocated are shown as "0". Note that the processes in steps S5 and S6 in FIG. 6 correspond to the random number addition process.
[0040] When task 7 is allocated to process 1 as a selected task, the allocation unit 16 determines whether allocation of all tasks to be allocated to processes 1 to 3 has been completed (step S8 in FIG. 6). Because there are tasks other than task 7 that have not been allocated, it is determined that allocation of all tasks has not been completed (step S8: NO), and the selection unit 13 selects task 8, which has the longest working time, from among the unallocated tasks (step S3).
[0041] The evaluation value calculation unit 14 calculates the evaluation value F for each process for task 8 (step S4). FIG. 10 is an explanatory diagram of the evaluation value F and random number sum evaluation value for each process to which task 8 of the selected task is allocated. FIG. 10 shows a list of the individual evaluation values and evaluation value F (weighted sum of the individual evaluation values) of each term in the above formula (1), as well as the generated random numbers and random number sum evaluation values, for the case where task 8 is allocated to processes 1 to 3. Since task 8 will not exceed the takt time regardless of which process it is allocated to, the individual evaluation values for the process work times of all processes are set to 0. Note that the work time for task 7 is 30 seconds (FIG. 3), the work time for task 8 is 30 seconds, and the takt time for each process is 60 seconds (FIG. 2).
[0042] As shown in Figure 5(b), the task location of task 7 and the task location of task 8 are the same, and no travel time is incurred even if tasks 7 and 8 are allocated to the same process. Therefore, the individual evaluation value for travel time shown in Figure 10 is the same value of 10.0 for process 1, to which task 7 is allocated, and processes 2 and 3, to which no tasks are allocated. Task 7 allocated to process 1 and task 8, which is a selected task, are not part of the same process combination shown in Figure 4, so the individual evaluation value for the same process shown in Figure 10 is the same 0.0 for each process.
[0043] The individual evaluation value of the ideal allocation process is 5.0 (the ideal allocation process reference value), which is the number of tasks that are completed and allocated to the ideal allocation process. Task 7 has already been allocated to process 1, which is the ideal allocation process. Therefore, when task 8 is allocated to process 1 (FIG. 3), which is the ideal allocation process, two tasks, tasks 7 and 8, are allocated to the ideal allocation process, and the number of tasks that are completed is 2. On the other hand, when task 8 is allocated to processes 2 and 3, which are not ideal allocation processes, task 7 is the only task allocated to the ideal allocation process, and the number of tasks that are completed remains 1. Therefore, the individual evaluation values of the ideal allocation process shown in FIG. 10 are 10.0 (5.0 × 2 (number of tasks completed)) for process 1, and 5.0 (5.0 × 1.0) for processes 2 and 3. As a result, as shown by the hatching in FIG. 10, the maximum evaluation value F calculated by the evaluation value calculation unit 14 is 20.0, which is the evaluation value F of process 1.
[0044] Once the evaluation value F for each process is calculated, the random number addition unit 15 generates a random number to be added to the evaluation value F for each process (step S5 in FIG. 6). The random number addition unit 15 calculates a random number addition evaluation value by adding the generated random number to the evaluation value F for each process (step S6). As shown in FIG. 10, the random numbers added to each process are 42.7, 9.9, and 21.9, starting with process 1. Therefore, the random number addition evaluation value for process 1 is the maximum of 62.7 (hatched), the random number addition evaluation value for process 2 is 24.9, and the random number addition evaluation value for process 3 is 36.9.
[0045] The allocation unit 16 allocates the selected task, task 8, to process 1, which has the largest random number addition evaluation value (step S7 in FIG. 6). FIG. 11 is an explanatory diagram of task allocation destinations. In FIG. 11, tasks 7 and 8 are allocated to process 1, as indicated by hatching, and the processes to which the other unallocated tasks are allocated are indicated as "0."
[0046] The allocation unit 16 determines whether the allocation of all tasks to be allocated to processes 1 to 3 has been completed (step S8 in FIG. 6). Because there are tasks other than tasks 7 and 8 that have not been allocated, it is determined that the allocation of all tasks has not been completed (step S8: NO), and the selection unit 13 selects and determines task 5, which has the longest working time, from among the unallocated tasks (step S3).
[0047] The evaluation value calculation unit 14 calculates the evaluation value F for each step of the work 5 (step S4). FIG. 12 is an explanatory diagram of the evaluation value F and random number additive evaluation value for each process to which task 5 of the selected task is allocated. FIG. 12 lists the individual evaluation values and evaluation value F (weighted sum of the individual evaluation values) used in each term of formula (1) above when task 5 is allocated to processes 1 to 3, as well as the generated random numbers and random number additive evaluation values. Tasks 7 and 8 have already been allocated to process 1, and tasks 7 and 8 each have a work time of 30 seconds. Therefore, the total work time of the tasks allocated to process 1 is 60 seconds (=30+30). Therefore, if task 5, which has a work time of 30 seconds (FIG. 3), is allocated to process 1, the total work time for process 1 will exceed 30 seconds. Therefore, the individual evaluation value of the process work time shown in FIG. 10 is -30.0. On the other hand, allocating task 5 to processes 2 and 3 does not result in a takt time exceedance, so the individual evaluation values of the process work times for processes 2 and 3 are set to 0.
[0048] As shown in Figure 5(b), the location of task 8 is different from the location of task 5, and they are separated by a distance that requires 4 seconds of travel. Therefore, when task 5 is allocated to process 1, the total travel time for process 1 is 4. Because there are 3 processes, the individual evaluation value for the travel time of process 1 shown in Figure 12 is 8.7, which is the reference evaluation value of 10 minus 1.3 (≒4 / 3), which is the travel time of 4 divided by the number of processes, 3. On the other hand, the individual evaluation value for the travel time of processes 2 and 3 is 10.0.
[0049] The task that is desired to be the same process as task 5, which is the selected task, is task 2 shown in Figure 4. Because task 2 is an unallocated task at this point, the number of identical tasks completed will be 0 regardless of which process task 5 is allocated to, and therefore the individual evaluation values for the identical processes shown in Figure 12 are the same for each process, 0.0. The ideal allocation process for task 5 is process 1. Since tasks 7 and 8 have already been allocated to process 1, which is the ideal allocation process, if task 5 is allocated to process 1, which is the ideal allocation process, the number of identical tasks completed for the ideal allocation process will be 3. However, if task 5 is allocated to processes 2 and 3, which are not ideal allocation processes, the number of identical tasks completed for the ideal allocation process will remain 2. Therefore, as shown in Figure 3, the individual evaluation values for the ideal allocation processes shown in Figure 12 are 15.0 (= 5.0 x 3) for process 1, the maximum, and 10.0 (= 5.0 x 2) for processes 2 and 3. As a result, as shown in FIG. 12, the evaluation value F of process 1 calculated by the evaluation value calculation unit 14 is −6.3, and the evaluation values F of processes 2 and 3, which are indicated by hatching, are both 20.0.
[0050] Once the evaluation value F for each process is calculated, the random number addition unit 15 generates a random number to be added to the evaluation value F for each process (step S5 in FIG. 6). The random number addition unit 15 calculates a random number addition evaluation value by adding the generated random number to the evaluation value F for each process (step S6). As shown in FIG. 12, the random numbers added to each process are 27.8, 5.0, and 6.2, starting with process 1. Therefore, the random number addition evaluation value for process 1 is 21.5, the random number addition evaluation value for process 2 is 25.0, and the random number addition evaluation value for process 3 is the maximum of 26.2 (hatched).
[0051] The allocation unit 16 allocates the selected task, task 5, to process 3, which has the largest random number addition evaluation value (step S7 in FIG. 6). FIG. 13 is an explanatory diagram of task allocation destinations. In FIG. 13, as indicated by hatching, task 5 is allocated to process 3, tasks 7 and 8 are allocated to process 1, and the processes to which the other unallocated tasks are allocated are indicated as "0."
[0052] The allocation unit 16 determines whether the allocation of all tasks to be allocated to processes 1 to 3 has been completed (step S8 in FIG. 6). Because there are unallocated tasks other than tasks 5, 7, and 8, it is determined that the allocation of all tasks has not been completed (step S8: NO), and the selection unit 13 selects and determines task 4, which has the longest working time, from among the unallocated tasks (step S3). Note that the explanation of the allocation of tasks 4, 6, 3, and 2 to processes will be omitted, and the allocation of task 1, which is determined as the last selected task, to a process will be described.
[0053] The evaluation value calculation unit 14 calculates the evaluation value F for each step of task 1 (step S4). FIG. 14 is an explanatory diagram of the evaluation value F and the random number sum evaluation value for each step to which task 1 of the selected task is allocated. FIG. 14 shows a list of the individual evaluation values and evaluation values (weighted sums of the individual evaluation values) used in each term of formula (1) above when task 1 is allocated to tasks 1 to 3, as well as the generated random numbers and random number sum evaluation values. Before task 1 was determined as the selected task, tasks 7 and 8 were allocated to task 1, tasks 4 and 2 were allocated to task 2, and tasks 5, 6, and 3 were allocated to task 3. In this case, using the task times for each task shown in FIG. 3, the total task time for task 1 is 60 seconds, the total task time for task 2 is 40 seconds, and the total task time for task 3 is 60 seconds. In other words, if task 1 is allocated to processes 1 and 3, the total work time for processes 1 and 3 will be 75 seconds (=30+30+15), which exceeds the takt time of 60 seconds. Therefore, for the process work times shown in Figure 14, the individual evaluation values for processes 1 and 3 are -15.0.
[0054] When task 1 is allocated to process 1, the tasks allocated to process 1 are tasks 7, 8, and 1. In this embodiment, the travel time between each task location is calculated on the assumption that the tasks allocated to each process will be performed in the order of their task IDs. The travel time between tasks 1 and 7 is 7 seconds, as shown in FIG. 5. The travel time between tasks 7 and 8 is zero. Therefore, the total travel time for process 1 when task 1 is allocated to process 1 is 7 seconds. Note that in this embodiment, the order in which the tasks are performed is optimized so as to minimize the travel time between the tasks allocated to each process, rather than the travel time in the order of the tasks allocated to each process.
[0055] When task 1 is allocated to process 1, the tasks allocated to process 2 are tasks 4 and 2. The travel time for tasks 4 and 2 is zero, which is the travel time between tasks 2 and 4. When task 1 is allocated to process 1, the tasks allocated to process 3 are tasks 5, 3, and 6. Therefore, the travel time for process 3 in this case is 2 seconds, which is the travel time between tasks 3 and 5. As a result, the total travel time for processes 1 to 3, 9 seconds, divided by the number of processes, 3, is the travel time per process, which is 3 seconds. Therefore, the individual evaluation value for the travel time for process 1 is calculated as 7.0, which is the base evaluation value of 10 minus the travel time per process, 3. Similarly, the individual evaluation values for the travel time when task 1 is allocated to process 2 and when it is allocated to process 3 are calculated. As a result, as shown in Figure 14, the individual evaluation values for the travel time for each process are set to 7.0, 9.0, and 9.0.
[0056] In the allocation before task 1 was allocated, tasks 3 and 6 were allocated to the same process 3, so as shown in Figure 4, the number of favorable combinations before task 1 was allocated was 1. Task 4, which is the same process task as task 1 (the selected task) (Figure 4), is allocated to process 2. Therefore, if task 1 is allocated to process 2, the number of favorable combinations will be 2. On the other hand, if task 1 is allocated to process 1 or process 3, the number of favorable combinations will remain 1. Therefore, the individual evaluation values for the same process are calculated to be 10.0 for process 2 and 5.0 for processes 1 and 3, as shown in Figure 14.
[0057] As shown in Fig. 3, there is no ideal allocation process for task 1, and therefore the individual evaluation values of the ideal allocation process for each process shown in Fig. 14 are the same, 15.0 (tasks 3, 7, and 8 have already been allocated to ideal allocation processes). As a result, as shown in Fig. 14, the evaluation value F of task 1 calculated by the evaluation value calculation unit 14 is 12.0, the evaluation value F of task 2 is 34.0, and the evaluation value F of task 3 is 14.0.
[0058] Once the evaluation value F for each process is calculated, the random number addition unit 15 generates a random number to be added to the evaluation value F for each process (step S5 in FIG. 6). The random number addition unit 15 calculates a random number addition evaluation value by adding the generated random number to the evaluation value F for each process (step S6). As shown in FIG. 14, the random numbers added to each process are 0.5, 0.1, and 0.3 in order from process 1. Therefore, the random number addition evaluation value for process 1 is 12.5, the random number addition evaluation value for process 2 is the maximum of 34.1 (hatched), and the random number addition evaluation value for process 3 is 14.3.
[0059] The allocation unit 16 allocates task 1, which is the selected task, to process 2, which has the largest random number addition evaluation value (step S7 in FIG. 6). FIG. 15 is an explanatory diagram of task allocation destinations. As shown by the hatching in FIG. 15, task 1 is allocated to process 2. Furthermore, tasks 2 and 4 are allocated to process 2, tasks 3, 5, and 6 are allocated to process 3, and tasks 7 and 8 are allocated to process 1.
[0060] FIG. 16 is an explanatory diagram of the relationship between the tasks allocated to each process and the order in which the tasks are allocated. In FIG. 16, the tasks allocated to each process that are to be performed first are placed at the bottom. Each task is represented by a rectangle, with the height of the rectangle indicating the task time and the task ID shown within the rectangle. The number added to the bottom right of the task ID indicates the order in which the task is allocated to the process. For example, task 7 is allocated to process 1, and is the first task of the eight tasks allocated to the process. Task 1 is allocated to process 2, and is the eighth task of the eight tasks allocated to the process.
[0061] When task 1, which is a selected task, is allocated to process 2, the allocation unit 16 determines whether or not the allocation of all tasks to be allocated to processes 1 to 3 has been completed (step S8 in FIG. 6). Since the allocation of all tasks has been completed (step S8: YES), the allocation unit 16 determines whether or not the number of task formations specified by the designation unit 12 has been created (step S9). If it is determined that the number of task formations specified by the designation unit 12 has not been created (step S9: NO), task 7 is selected from the state in which all tasks have not been allocated, and a new task formation is created (step S3).
[0062] The evaluation value calculation unit 14 calculates an evaluation value F for each process for the task 7 (step S4). FIG. 17 is an explanatory diagram of the evaluation value F and random number addition evaluation value for each process to which task 7 of the selected task is allocated. In the table shown in FIG. 17, the individual evaluation values and evaluation value F for the process work time, travel time, same process, and ideal allocation process are the same as the numerical values shown in FIG. 8. Once the evaluation value F for each process is calculated, the random number addition unit 15 generates a random number to be added to the evaluation value F for each process (step S5 in FIG. 6). The random number addition unit 15 calculates a random number addition evaluation value by adding the generated random number to the evaluation value F for each process (step S6).
[0063] The random numbers added to each process shown in FIG. 17 are different from those shown in FIG. 8, and are 8.9, 53.3, and 1.7, starting with process 1. Therefore, as shown by the hatching in FIG. 17, the process with the highest random number added evaluation value is process 2, 63.3, which is different from process 1, which has the highest evaluation value without adding a random number, 15.0. As a result, the allocation unit 16 allocates the selected task, task 7, to process 2, which has the highest random number added evaluation value (step S7 in FIG. 6). FIG. 18 is an explanatory diagram of task allocation destinations. In FIG. 18, task 7 is allocated to process 2, as shown by the hatching, and the processes to which other unallocated tasks are allocated are indicated as "0." That is, in this task organization, task 7 is allocated to process 2, which has the highest random number added evaluation value after adding a random number, rather than process 1, which has the highest evaluation value without adding a random number. 6 are performed in the allocation order of tasks 8, 5, 4, 6, 3, 2, and 1. The following describes the case where task 1 is the last selected task to be allocated.
[0064] FIG. 19 is an explanatory diagram of the evaluation value F for each process to which task 1 of the selected task is allocated. FIG. 19 lists the individual evaluation values and evaluation value F used in each term of formula (1) above when task 1 is allocated to processes 1 to 3, as well as the generated random numbers and random number sum evaluation values. Before task 1 was determined as the selected task, tasks 5, 6, and 2 were allocated to process 1, tasks 7 and 8 were allocated to process 2, and tasks 4 and 3 were allocated to process 3. In this case, the total work time for processes 1 and 2 is 60 seconds, and the total work time for process 3 is 40 seconds. In other words, the total work time for processes 1 and 2 reaches the takt time of 60 seconds. Therefore, when task 1 is allocated to processes 1 and 2, the total work time for processes 1 and 2 becomes 75 seconds, exceeding the takt time of 60 seconds. Therefore, the individual evaluation values for the process work times shown in FIG. 19 are -15 for processes 1 and 2.
[0065] Before task 1 was allocated, tasks 2, 5, and 6 were allocated to process 1, tasks 7 and 8 to process 2, and tasks 3 and 4 to process 3. The travel time between each process is 2 seconds, 0 seconds, and 0 seconds, for a total of 2.0 seconds. The preceding task of process 1 is task 2, the preceding task of process 2 is task 7, and the preceding task of process 3 is task 3. As shown in Figure 5, the time required to travel between the selected tasks, task 1, and tasks 2 and 3, is 1 second. The time required to travel between the task position of task 1 and the task position of task 8 is 7 seconds. When combined with the 2-second task time before task 1 was allocated, the total is 3 seconds and 9 seconds. Therefore, the travel time per process is 1.0 between processes 1 and 3, and 3.0 for process 2. As a result, a value is calculated by subtracting the travel time per process from the reference evaluation value "10.0", and the individual evaluation values of the travel time for each process shown in FIG. 19 are set to 9.0, 7.0, and 9.0.
[0066] Since the selected task, task 1, and task 4 allocated to process 3 are a combination that is preferably performed in the same process as shown in Figure 4, the individual evaluation value of the same process for process 3 shown in Figure 10 is set to 10.0, which is larger than the value of 5.0 for processes 1 and 2. As shown in Figure 3, there is no ideal process for allocation of task 1, so the ideal process allocation values for each process shown in Figure 19 are the same, 15.0 (15.0 (= 5.0 x 3) because three tasks, tasks 2, 3, and 5, are allocated to ideal processes, as shown in Figure 20). As a result, as shown in Figure 19, the evaluation value F for process 1 calculated by the evaluation value calculation unit 14 is 14.0, the evaluation value F for process 2 is 12.0, and the evaluation value F for process 3 is 34.0 (hatched).
[0067] Once the evaluation value F for each process is calculated, the random number addition unit 15 generates a random number to be added to the evaluation value F for each process (step S5 in FIG. 6). The random number addition unit 15 calculates a random number addition evaluation value by adding the generated random number to the evaluation value F for each process (step S6). As shown in FIG. 19, the random numbers added to each process are 0.9, 0.4, and 0.7, starting with process 1. Therefore, the random number addition evaluation value for process 1 is 14.9, the random number addition evaluation value for process 2 is 12.4, and the random number addition evaluation value for process 3 is the maximum of 34.7 (hatched).
[0068] The allocation unit 16 allocates the selected task, task 1, to process 3, which has the largest random number-added evaluation value (step S7 in FIG. 6). FIG. 20 is an explanatory diagram illustrating the relationship between the tasks allocated to each process and the order in which the tasks are allocated. In FIG. 20, the tasks and allocation order of a task organization in which task 7 is allocated to process 2 and then tasks 1 to 6 and 8 are allocated to each process are shown in the same bar graph as in FIG. 16. The task organization shown in FIG. 20 differs from the task organization shown in FIG. 16. On the other hand, as can be seen from FIGS. 14 and 19, the final evaluation value in FIGS. 16 and 20 is the same, 34.0, which means that the two tasks with the largest evaluation values were output. In this embodiment, different task organization results are calculated by performing task organization with multiple patterns using random number-added evaluation values.
[0069] When the process of step S7 ends and it is determined in the process of step S8 that all work allocation has been completed (step S8: YES), the allocation unit 16 determines whether work organization has been completed for the specified number of patterns (step S9). If it is determined that work organization has been created and completed for the specified number of patterns (step S9: YES), the work organization flow ends.
[0070] <Second Example> FIG. 21 is an explanatory diagram of the allocation of tasks in the second embodiment. FIG. 21 shows, in a tree diagram, the allocation of each process when three tasks 1 to 3 are allocated to two processes 1 and 2. In the second embodiment shown in FIG. 21, the selected tasks are determined in the order of task 1, task 2, and task 3. The values enclosed in the rectangles in FIG. 21 are evaluation values before the addition of random numbers. For example, if the selected task is task 1, the evaluation value when task 1 is allocated to process 1 is 2.0, and the evaluation value when task 1 is allocated to process 2 is 1.8. In the second embodiment, a random number (not shown) is added to the evaluation value enclosed in the rectangle to calculate a random number added evaluation value, and the process to which the selected task will be allocated is determined based on the random number added evaluation value (not shown).
[0071] In addition to the tree diagram, FIG. 21 also shows the allocation of task organization IDs "a" through "h" to identify the eight created task organization, as well as the evaluation value of each task organization. The higher the evaluation value of each task organization, the more favorable the task organization. In a comparative example in which the processes to which selected tasks are allocated are determined based on evaluation values without random numbers added, rather than random number-added evaluation values, task organization c is created in which task 1 is allocated to process 1, task 2 is allocated to process 2, and task 3 is allocated to process 1 based on the magnitude relationship of the evaluation values. In this case, task organization c has an evaluation value of 10.0. However, the highest evaluation value of the eight task organizations a through c is task organization b, which has an evaluation value of 10.1. In other words, the task organization method of the comparative example does not create an optimal solution task organization.
[0072] On the other hand, in the task organization method of the second embodiment, random-number-added evaluation values, in which random numbers are added to evaluation values, are used to allocate selected tasks, rather than evaluation values. Therefore, for example, after task 1 is allocated to process 1, the evaluation value of 2.0 for task 2, which is a selected task, allocated to process 1 is smaller than the evaluation value of 2.1 for task 2. However, in the second embodiment, depending on the random number added to the evaluation value, among the number of trials specified by the designation unit 12, the task with a lower evaluation value may be allocated to process 1. In this case, task organization b, with the maximum task organization evaluation value of 10.1, may be created. In other words, in the second embodiment, the selected tasks are allocated to processes using random-number-added evaluation values, in which random numbers are added, instead of evaluation values, thereby searching for task organizations over a wide area and creating task organizations close to an optimal solution or multiple optimal solutions.
[0073] As described above, in the task orchestration device 100 of this embodiment, the selection unit 13 determines a selected task to be newly allocated to a task, which is one of multiple tasks allocated to the task. The evaluation value calculation unit 14 calculates an evaluation value for each task, which varies depending on the task information and tasks already allocated to the task. The random number addition unit 15 generates a random number and calculates a random number-added evaluation value by adding the generated random number to the evaluation value calculated by the evaluation value calculation unit 14. The allocation unit 16 allocates the selected task to the task with the largest random number-added evaluation value. The selection unit 13 determines the selected task to be allocated to the task, the evaluation value calculation unit 14 calculates the evaluation value for each task, the random number addition unit 15 calculates the random number-added evaluation value, and the allocation unit 16 allocates the selected task to the task. The selection unit 13 determines the selected task to be allocated to the task, the evaluation value calculation unit 14 calculates the evaluation value for each task, the random number addition unit 15 calculates the random number-added evaluation value, and the allocation unit 16 allocates the selected task to the task until all tasks are allocated to a task and a task orchestration is created. In this embodiment, a sequential optimal allocation is performed in which each task is sequentially allocated as a selected task to the task with the largest random number-added evaluation value until all tasks are allocated to a task. In sequential optimal allocation, selected tasks are allocated to the process with the largest random number sum evaluation value, calculated by adding a random number to the evaluation value calculated by the evaluation value calculation unit 14. The magnitude relationship between the random number sum evaluation values of each process to which a random number is added changes depending on the random number generated during sequential allocation. Therefore, when task reorganization using sequential optimal allocation is repeated multiple times, multiple different task reorganization results are generated depending on the changing random number. However, since the random number sum evaluation value used as the basis for sequential optimal allocation of each selected task includes not only random numbers but also evaluation values calculated for each process, it is difficult to create a task reorganization with a low evaluation value far from the optimal solution. Furthermore, because task reorganization is created using sequential optimal allocation without using a genetic algorithm or the like, the calculation time required for search is reduced. As a result, in this embodiment, the calculation time required for creating a task reorganization is reduced, a wide-area search for a task reorganization is performed, and task reorganization results close to multiple optimal solutions are obtained.
[0074] In addition, the designation unit 12 of this embodiment specifies the number of patterns to search for when allocating tasks to processes. In this embodiment, the search is performed the same number of times as the number of patterns specified, i.e., multiple times to create multiple task formations. With multiple searches, different random numbers are added to the evaluation value, and the process to which each selected task is allocated varies depending on the search, making it highly likely that different combinations of task formations will be created. As a result, task formations that are closer to the optimal solution can be obtained more frequently.
[0075] Furthermore, the random number addition unit 15 of this embodiment increases the variance of the random numbers to be added as the number of unassigned tasks increases. As shown in the comparison of the "random numbers to be added" between FIG. 8 and FIG. 12 for the first embodiment, the variance of the random numbers when task 7, the first selected task, is assigned to a task is greater than the variance of the random numbers when task 1, the last selected task, is assigned to a task. In other words, the magnitude relationship between the random numbers added to the evaluation values is likely to change significantly during the initial task assignment of sequential optimal assignment. In the opposite case to this embodiment, the more tasks are unassigned to a task, the smaller the variance of the random numbers to be added, which may result in convergence to a local solution and failure to perform a global search. (For example, in FIG. 21, task 1, the initial task assignment, is less likely to be assigned to task 2, reducing the likelihood of reaching a branch on the right despite the existence of a branch with a high task assignment evaluation value.) Therefore, this embodiment searches for task assignments over a wider area, resulting in task assignments closer to the optimal solution.
[0076] Furthermore, the selector 13 of this embodiment uses task information to prioritize unallocated tasks that are difficult to allocate to processes as selected tasks. In this embodiment, tasks that are difficult to allocate to processes, such as tasks with long operation times, are prioritized as initial selected tasks in the sequential optimal allocation. For tasks that are difficult to allocate, i.e., tasks that are difficult to satisfy constraints (either because each constraint is difficult to satisfy or because the task has many constraints), the later the allocation stage, the more difficult it becomes to satisfy the constraints. For example, if a task with an operation time of 30 seconds is allocated to a takt time of 60 seconds at the beginning of sequential allocation, all processes will have a large amount of free time (takt time minus the sum of the operation times of the tasks already allocated), making the allocation feasible. On the other hand, later in the allocation stage, processes with free time of 30 seconds or more will be rare, and the possibility of free time being zero will increase. As a result, there is a risk that the task organization created after allocation of tasks that are difficult to allocate will be an unrealizable task organization that does not satisfy the constraints. In contrast, in this embodiment, tasks that are difficult to allocate to processes are given priority as selected tasks at the beginning of the sequential optimal allocation, which increases the number of process options to which selected tasks can be allocated later in the sequential optimal allocation, allowing for a search for a broader work organization.
[0077] <Modifications of the embodiment> The present invention is not limited to the above-described embodiment, and can be implemented in various forms without departing from the spirit of the present invention, including, for example, the following modifications: In the above-described embodiment, part of the configuration realized by hardware may be replaced by software, and conversely, part of the configuration realized by software may be replaced by hardware.
[0078] <Variation 1> The above embodiment and Examples 1 and 2 describe an example of the task organization device 100 that creates a task organization by allocating all tasks to one of the processes. However, the task organization by the task organization device 100 can be modified within the scope of sequentially allocating each task to a process using a random number sum evaluation value to which a random number is added. For example, the random number addition unit 15 does not need to increase the variance of the random number to be added when there are many tasks not yet allocated to a process; for example, the variance of the random number can be set randomly. The selection unit 13 prioritizes tasks that are difficult to allocate to a process among the unallocated tasks as selected tasks, but the method of determining the selected tasks can be modified. The selection unit 13 may also determine the selected tasks without considering whether the tasks are difficult to allocate to a process. Furthermore, in the above embodiment, whether a task is difficult to allocate to a process is determined using the work time of each task, but it may also be determined based on factors other than work time. For example, in the same process information shown in Figure 4, tasks that are included in many same process IDs may be prioritized as selected tasks, or they may be determined by combination (long work time and same process defined).
[0079] In the first embodiment, all tasks are assigned to processes, and the tasks assigned to each process shown in Fig. 5(b) are rearranged to minimize the amount of movement and then executed in each process. However, the order in which tasks are executed in each process can be modified. For example, tasks 1, 2, and 4 are assigned to process 2 shown in Fig. 16. Here, if the parts handled in process 2 are the same as those in task 1 and task 4, and consecutive tasks are more efficient, then tasks 1, 4, and 2 may be executed in process 2 in order to improve efficiency.
[0080] In the above embodiment, the information shown in FIGS. 2 to 5 is given as an example of the task information used in task organization, but the task information may include other information. For example, the task information may include information regarding constraints on the precedence relationship between tasks. A precedence relationship constraint is a constraint that when two tasks are performed, one task cannot be performed until the other task is performed. In this case, the selection unit 13 may prioritize tasks for which multiple precedence relationships are defined as selected tasks.
[0081] <Variation 2> Figure 22 is an explanatory diagram of the precedence-sequence relationship constraints. Figure 22 shows a portion of a tree diagram in which tasks 7, 8, and 5, which are the first to third selected tasks in the first embodiment, are allocated to three processes 1 to 3. Note that Figure 22 does not show the evaluation values or random number added evaluation values, but shows the relationship between the three tasks and the processes to which they are allocated. In the example shown in Figure 22, there is a precedence-sequence relationship constraint between task 8 and task 5, and task 5, which is the preceding task, must be performed before task 8, which is the following task.
[0082] In the example shown in Figure 22, the evaluation value and random number added evaluation value are calculated when task 8, which is a selected task, is allocated to process 1, and then task 5, which is a selected task, is allocated to processes 1 to 3. Here, if there is a precedence-sequence constraint, the evaluation value based on the precedence-sequence constraint can be set to a large value, or processes 2 and 3, which are not allocated task 8, which is a subsequent task as an option, according to the precedence-sequence constraint, can be excluded from the allocation destinations. In this way, the created task organization can satisfy the precedence-sequence constraint.
[0083] This aspect has been described above based on embodiments and modifications. However, the above-described embodiments are intended to facilitate understanding of this aspect and are not intended to limit this aspect. This aspect may be modified or improved without departing from the spirit and scope of the claims, and equivalents thereof are included in this aspect. Furthermore, if a technical feature is not described as essential in this specification, it may be deleted as appropriate.
[0084] The present invention can also be realized in the following forms. [Application example 1] A work orchestration device, comprising: an information acquisition unit that acquires task information about a plurality of tasks for producing a product; a task selection unit that determines one task among the plurality of tasks to be newly allocated to the process; an evaluation value calculation unit that calculates an evaluation value for each process that changes depending on the work information and the work already allocated to the process; a random number addition unit that generates a random number and adds the generated random number to the evaluation value; a task allocation unit that allocates the selected task to the process having the largest evaluation value to which the random number has been added; Equipped with a task orchestration device in which the task selection unit determines one of the selected tasks, the evaluation value calculation unit calculates the evaluation value, the random number addition unit adds a random number to the evaluation value, and the task allocation unit allocates the selected tasks until all of the tasks are allocated to processes. [Application example 2] The task orchestration device according to Application Example 1 further comprises: a pattern number designation unit that designates the number of patterns to be searched for in order to allocate the work to the processes; A task orchestration device in which the task selection unit determines one of the selected tasks, the evaluation value calculation unit calculates the evaluation value, the random number addition unit adds a random number to the evaluation value, and the task allocation unit allocates the selected tasks a number of times equal to the number of patterns. [Application example 3] The task orchestration device according to Application Example 1 or Application Example 2, The random number addition unit increases the variation in the random number to be added as the number of unassigned tasks to the process increases. [Application example 4] The task orchestration device according to any one of Application Examples 1 to 3, The task selection unit uses the task information to determine, as the selected task, tasks that are difficult to allocate to a process, among unallocated tasks, with priority. [Application example 5] A method for organizing work, comprising: an information acquisition process for acquiring operation information about a plurality of operations for producing a product; a task selection process for determining a selected task to be newly allocated to the process, the selected task being one of the plurality of tasks; an evaluation value calculation process for calculating an evaluation value for each process that changes depending on the work information and the work already allocated to the process; a random number addition process for generating a random number and adding the generated random number to the evaluation value; a task allocation process for allocating the selected task to the process having the largest evaluation value to which the random number has been added; Run The task selection process, the evaluation value calculation process, the random number addition process, and the task allocation process are executed until all of the tasks are allocated to processes. [Application Example 6] A computer program comprising: an information acquisition function for acquiring work information about a plurality of works for producing a product; a task selection function that determines one task among the plurality of tasks to be newly allocated to the process; an evaluation value calculation function that calculates an evaluation value for each process that changes depending on the work information and the work already allocated to the process; a random number addition function that generates a random number and adds the generated random number to the evaluation value; a task allocation function that allocates the selected task to the process having the largest evaluation value to which the random number has been added; This is realized on a computer, The steps of determining one of the selected tasks using the task selection function, calculating the evaluation value using the evaluation value calculation function, adding a random number to the evaluation value using the random number addition function, and allocating the selected tasks using the task allocation function are repeated until all of the multiple tasks are allocated to processes. [Explanation of symbols]
[0085] 10...Control device 11…Acquisition Department (Information Acquisition Department) 12...Specifying section (number of patterns specifying section) 13...Selection section (work selection section) 14...Evaluation value calculation unit 15...Random number addition section 16...Distribution Department (Work Distribution Department) 20…Storage device 21...Train information database 22...Work time database 23...Same process database 24...Travel time database 30…Communications Department 40...Input section 50...Output section 100…Work organization device F...Evaluation value
Claims
1. A work orchestration device, comprising: an information acquisition unit that acquires task information about a plurality of tasks for producing a product; a task selection unit that determines one task among the plurality of tasks to be newly allocated to the process; an evaluation value calculation unit that calculates an evaluation value for each process that changes depending on the work information and the work already allocated to the process; a random number addition unit that generates a random number and adds the generated random number to the evaluation value; a task allocation unit that allocates the selected task to the process having the largest evaluation value to which the random number has been added; Equipped with a task orchestration device in which the task selection unit determines one of the selected tasks, the evaluation value calculation unit calculates the evaluation value, the random number addition unit adds a random number to the evaluation value, and the task allocation unit allocates the selected tasks until all of the tasks are allocated to processes.
2. The task orchestration device according to claim 1, further comprising: a pattern number designation unit that designates the number of patterns to be searched for in order to allocate the work to the processes; a task orchestration device in which the task selection unit determines one of the selected tasks, the evaluation value calculation unit calculates the evaluation value, the random number addition unit adds a random number to the evaluation value, and the task allocation unit allocates the selected tasks a number of times equal to the number of patterns.
3. The task orchestration device according to claim 1, The random number addition unit increases the variation in the random number to be added as the number of unassigned tasks to the process increases.
4. The task orchestration device according to any one of claims 1 to 3, The task selection unit uses the task information to determine, as the selected task, tasks that are difficult to allocate to a process, among unallocated tasks, with priority.
5. A method for organizing work, comprising: an information acquisition process for acquiring operation information about a plurality of operations for producing a product; a task selection process for determining a selected task to be newly allocated to the process, the selected task being one of the plurality of tasks; an evaluation value calculation process for calculating an evaluation value for each process that changes depending on the work information and the work already allocated to the process; a random number addition process for generating a random number and adding the generated random number to the evaluation value; a task allocation process for allocating the selected task to the process having the largest evaluation value to which the random number has been added; Run The task selection process, the evaluation value calculation process, the random number addition process, and the task allocation process are executed until all of the tasks are allocated to processes.
6. A computer program comprising: an information acquisition function for acquiring work information about a plurality of works for producing a product; a task selection function for determining a selected task to be newly allocated to a process, the selected task being one of the plurality of tasks; an evaluation value calculation function that calculates an evaluation value for each process that changes depending on the work information and the work already allocated to the process; a random number addition function that generates a random number and adds the generated random number to the evaluation value; a task allocation function that allocates the selected task to the process having the largest evaluation value to which the random number has been added; This is realized on a computer, A computer program in which the steps of determining one of the selected tasks by the task selection function, calculating the evaluation value by the evaluation value calculation function, adding a random number to the evaluation value by the random number addition function, and allocating the selected tasks by the task allocation function are performed until all of the multiple tasks are allocated to processes.
Citation Information
Patent Citations
Automatic work organizing device
JP1993002594A
Process arrangement method for production system, process arrangement device for production system and storage medium stored with process arrangement program of production system
JP2000040106A