Wok allocation device, work allocation method, and computer program
By designing a work distribution equipment for optimizing worker allocation and task scheduling, the problem of too long optimization in the prior art is solved, and efficient worker allocation and task scheduling between multiple production lines and multiple equipment is achieved.
Patent Information
- Application Number
- JP2024044064
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-16
- Filing Date
- 2024-03-19
- Publication Date
- 2025-04-28
AI Technical Summary
The prior art is difficult to optimize the allocation and task scheduling of workers between multiple production lines and multiple equipment, especially when taking into account the constraints of working hours, wages and work order, resulting in too long optimization time and the solution cannot be obtained within practical time.
A work assignment device is designed that obtains information such as work hours, work costs and workloads through information acquisition units, and generates objective functions related to these parameters. Adjust the objective function by setting weights to optimize worker allocation and task scheduling while taking into account work order constraints to reduce the number of combinations.
Optimizing the allocation and task scheduling of workers across multiple production lines and multiple equipment is achieved, significantly reducing optimization time and ensuring the best solution within practical time.
Smart Images

Figure 2025068562000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a task allocation device, a task allocation method, and a computer program. [Background technology]
[0002] There is a known method for optimizing task allocation, which allocates a number of tasks to each process of a production line (see, for example, Patent Document 1). The personnel allocation determination device described in Patent Document 1 optimizes the number of workers to be allocated to an assembly line in which a predetermined number of robots are arranged, using the takt time, the number of workers to be allocated to the assembly line as a production line, and the cost of the robots. The experiment planning program described in Patent Document 2 allocates experiments to each process in research in fields such as life sciences so that each piece of equipment, such as a robot, that performs the experiments takes as little time as possible. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2018-097801 A [Patent Document 2] Patent Publication No. 2022-170525 Summary of the Invention [Problem to be solved by the invention]
[0004] In Patent Document 1, the number of human workers to be assigned to an assembly line is optimized on the premise that a predetermined number of robots are assigned to one assembly line. Therefore, when there are multiple assembly lines and the number of robots in addition to the number of human workers assigned to each assembly line can be changed, it is difficult to optimize the number of robots in addition to the number of human workers with the technology described in Patent Document 1.
[0005] In the technology described in Patent Document 2, multiple devices that perform experiments are assigned to multiple processes that are executed simultaneously. In this technology, the order of experiments to be executed among multiple processes is set as a constraint, and an experiment plan that satisfies the constraint is formulated. However, when simultaneously optimizing the devices assigned to each process and the schedule for starting the use of the devices assigned to each process, it is necessary to include the constraint on the order as a parameter of the objective function. In this case, the number of combinations required to obtain an optimal solution is the product of the number of combinations related to the optimization of allocation and the number of combinations related to scheduling. Therefore, if the technology described in Patent Document 2 is optimized by including the constraint on the order in the parameters of the objective function, the time required for optimization becomes enormous, and there is no guarantee that it can be solved within a practical time even if a commercial solver is used.
[0006] The present invention has been made to solve at least part of the above-mentioned problems, and aims to optimize the assignment of tasks to each worker and the schedule of the time each worker starts their assigned tasks according to the user's needs when assigning tasks to each worker. [Means for solving the problem]
[0007] The present invention has been made to solve at least part of the above-mentioned problems, and can be realized in the following forms.
[0008] (1) According to one aspect of the present invention, there is provided a task allocation device, which includes: an information acquisition unit that acquires information on a task time when a worker, who is a human or a robot, performs a task, a task cost when the worker performs the task, and a workload imposed on the worker who performs the task when the task is performed by a human worker; an objective function generation unit that generates a first objective function having a parameter related to at least one of the task time, the task cost, and the workload, in which a weight is set to be multiplied for each parameter; a task allocation unit that assigns the tasks to each worker so as to minimize or maximize the first objective function; and an adjustment unit that adjusts the task start time at which each worker starts the assigned task so as to reduce a maximum task completion time, which is the maximum task completion time among the task completion times for each worker, by minimizing or maximizing a second objective function having a parameter related to each task completion time until each worker completes all the assigned tasks.
[0009] According to this configuration, the parameters of the first objective function that the task allocation unit minimizes or maximizes include a value related to at least one of the task time, task cost, and workload. In the first objective function, a weight is set to be multiplied with each parameter. Therefore, by setting the weight according to the user's request, the task is assigned to each worker by adjusting either the task time, task cost, or workload, or the balance between these. After the task is assigned, the start time of each task is adjusted so that the maximum task completion time of the worker who completes the task the slowest is reduced by minimizing or maximizing the second objective function, which has a value related to the task completion time as a parameter. As a result, the tasks performed by each worker can be optimized so that the task completion times of all workers are minimized after the task is assigned according to the user's request.
[0010] (2) In the task allocation device of the above aspect, the information acquisition unit may further acquire a task order constraint which is a constraint on the order in which the multiple tasks are performed, the objective function generation unit may generate the first objective function which includes a value related to the task order constraint as a parameter, and the adjustment unit may minimize or maximize the second objective function which includes a value related to each of the task completion time and the task order constraint as a parameter. According to this configuration, the parameters of both the first objective function that is optimized when task allocation is performed and the second objective function that is optimized by adjustment by the adjustment unit after task allocation include values related to the task sequence constraints. Therefore, with this configuration, task allocation is optimized in compliance with the task sequence constraints when task allocation is performed, and the maximum task completion time can be shortened using the task sequence constraints. Furthermore, since the number of combinations required to obtain a solution can be significantly reduced compared to the case where task allocation and task sequence are simultaneously optimized, it is possible to obtain an optimal solution in a short time.
[0011] (3) The work assignment device of the above aspect may further include a constraint weight generation unit that generates an order constraint weight, which is a weight to be set for the work depending on the work order of the work for which the work order constraint is set, and the constraint weight generation unit may extract all of the work for which the work order constraint is set into work groups into which a plurality of the work pieces are divided according to the work order constraints that are mutually related, and may set the order constraint weight for the plurality of the work pieces included in the different extracted work groups such that the work pieces can be performed simultaneously by a plurality of workers and that the earlier the work order is within the work group, the larger the order constraint weight may be. According to this configuration, the constraint weight generation unit extracts tasks for which task order constraints are set from all tasks as a task group. Furthermore, among the extracted tasks, a larger order constraint weight is set for a task that can be performed simultaneously by different workers and that is earlier in the task order. As a result, tasks with a larger weight are assigned evenly and preferentially as tasks to be performed earlier among multiple tasks performed by each worker. This allows tasks with task order constraints to be performed more efficiently by multiple workers, and the maximum task completion time can be shortened.
[0012] (4) In the task allocation device of the above aspect, the objective function generation unit may generate the first objective function that includes values related to each of the task time, the task cost, the workload, and the task sequence constraint as parameters. According to this configuration, since the parameters of the first objective function include task time, task cost, workload, and task sequence constraints, task allocation can be performed taking into consideration all of these indices.
[0013] (5) In the task allocation device of the above aspect, the objective function generation unit may use a maximum value of the task time, which differs depending on the worker performing the task, as a value related to the task time included as a parameter of the first objective function. According to this configuration, tasks are assigned taking into consideration the task time of each task, which varies depending on the worker performing the task, so that the maximum task completion time optimized by the adjustment unit can be made shorter.
[0014] (6) In the task allocation device of the above aspect, the information acquisition unit further acquires a task position, which is the position where the task is performed when the task is performed by a human worker, and a setup time, which is the time required for a robot to attach and detach tools required to perform the task when the task is performed by a robot worker, and the objective function generation unit may generate the first objective function including, as parameters, an estimated movement time, which is the time required for a human worker to move between the task positions of the tasks that are performed consecutively, and the setup time. According to this configuration, the estimated movement time and the changeover time that occur depending on the type of worker (human or robot) are each taken into consideration in optimizing the first objective function. Therefore, the task completion time until each worker completes all the tasks assigned to them becomes closer to the actual time, and the adjustment unit can perform adjustment according to the actual task completion time.
[0015] (7) In the task allocation device of the above aspect, the adjustment unit may minimize or maximize the second objective function that includes the estimated movement time and the stage change time as parameters. According to this configuration, in addition to the first objective function, the estimated movement time and the changeover time are also included as parameters of the second objective function, so that the adjustment unit can perform adjustment that is more in line with the actual task completion time.
[0016] (8) In the task allocation device of the above aspect, the task allocation unit may minimize or maximize the first objective function using mixed integer programming, and the adjustment unit may minimize or maximize the second objective function using mixed integer programming. According to this configuration, it is possible to find optimal solutions for the first objective function and the second objective function using the well-known mixed integer programming method.
[0017] (9) In the work assignment device of the above aspect, the information acquisition unit may further acquire a work location where the work is performed when the work is performed by a human worker and a travel time required for the human worker to move between the different work locations, and the objective function generation unit may generate the first objective function including the travel time as a parameter. According to this configuration, when the worker is a human, the travel time required for the worker to move between work positions each time to perform each task is taken into consideration as a parameter of the first objective function, and tasks are assigned to the human worker. Therefore, a plurality of tasks are assigned to a human worker so that the travel time is short. This allows the assignment of tasks that have a short travel time, i.e., tasks that shorten the time required to complete all tasks.
[0018] (10) In the task allocation device of the above aspect, the objective function generation unit may generate the first objective function including, as a parameter, the sum of the task time and the travel time of each of the workers when the task is performed by multiple workers. According to this configuration, the sum of each worker's work time and travel time is optimized as one parameter, and the sum for each worker is leveled out. Therefore, the travel distance between work positions for each worker is suppressed, and the start time of each worker's work is adjusted so that the total time until each worker completes their work is shortened.
[0019] (11) In the task allocation device of the above aspect, the information acquisition unit further acquires at least one of a task order constraint, which is a constraint on the order in which the tasks are performed, and a movement direction constraint, which is a constraint on the movement direction of a work object on which the tasks are performed relative to the task position, and The adjustment unit may minimize or maximize the second objective function that includes, as a parameter, a value related to at least one of the acquired work sequence constraint and the movement direction constraint. According to this configuration, the start time of the tasks assigned to each worker, i.e., the order in which the tasks are performed, is adjusted taking into consideration not only the task sequence constraints between tasks, but also the movement direction constraints of the task objects relative to the task positions. Therefore, with this configuration, the movement distance of each worker is adjusted to be shorter while satisfying the task sequence constraints and the movement direction constraints.
[0020] (12) In the task assignment device of the above aspect, the adjustment unit may minimize or maximize the second objective function that includes a value related to the required travel time as a parameter. According to this configuration, in addition to the first objective function, the second objective function also includes a parameter related to the travel time required. Therefore, in this configuration, after tasks are assigned to each worker so as to shorten the travel time of each worker, the start time of the tasks is adjusted so that the order of the tasks performed by each worker is shortened so as to shorten the travel time of each worker.
[0021] The present invention can be realized in various forms, for example, in the form of a work assignment device, a process organization device, a process design device, a work assignment method, a process organization method, a process design method, a system equipped with 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 description of the drawings]
[0022] [Figure 1] 1 is a schematic block diagram of a task allocation system according to an embodiment of the present invention; [Diagram 2] FIG. 13 is a diagram illustrating an example of a work order constraint. [Diagram 3] FIG. 11 is an explanatory diagram of an operation group extracted in accordance with an operation order constraint. [Figure 4] FIG. 13 is an explanatory diagram of weights of task constraints set for tasks of each task group. [Diagram 5] FIG. 4 is an explanatory diagram of the relationship of parameters of a first objective function. [Figure 6] FIG. 13 illustrates an example of a result of worker selection and work assignment. [Figure 7] FIG. 13 illustrates an example of a result of worker selection and work assignment. [Figure 8] FIG. 1 is an explanatory diagram of an image of an adjacency matrix. [Figure 9] FIG. 1 is an explanatory diagram of an image of an adjacency matrix. [Figure 10] FIG. 11 is an explanatory diagram of an example of a work scheduling result. [Figure 11] FIG. 11 is an explanatory diagram of an example of a work scheduling result. [Figure 12] 1 is a flowchart of a task allocation method. [Figure 13] FIG. 11 is an explanatory diagram of a task order constraint according to the first embodiment. [Figure 14] FIG. 11 is an explanatory diagram of a task order constraint according to the first embodiment. [Figure 15]FIG. 13 is a Gantt chart showing the scheduling results of the first embodiment. [Figure 16] FIG. 13 is a Gantt chart showing the scheduling results of Comparative Example 1. [Figure 17] FIG. 11 is an explanatory diagram of a scheduling result according to the second embodiment. [Figure 18] FIG. 11 is an explanatory diagram of a scheduling result according to the second embodiment. [Figure 19] FIG. 11 is an explanatory diagram of a scheduling result according to the second embodiment. [Figure 20] FIG. 11 is an explanatory diagram of a scheduling result according to the second embodiment. [Figure 21] FIG. 11 is a schematic block diagram of an operation allocation system according to a second embodiment. [Figure 22] FIG. 11 is an explanatory diagram of the work position of each work in the second embodiment. [Diagram 23] FIG. 11 is an explanatory diagram of work positions represented in a matrix. [Figure 24] FIG. 11 is an explanatory diagram of a travel time required in the second embodiment. [Diagram 25] FIG. 11 is an explanatory diagram of a scheduling result of the third embodiment. [Figure 26] FIG. 13 is an explanatory diagram of a scheduling result of the fourth embodiment. [Figure 27] FIG. 11 is an explanatory diagram of a scheduling result in Comparative Example 2. [Figure 28] FIG. 13 is an explanatory diagram of the relationship between the work time, travel time, and workload of each worker in the third embodiment. [Figure 29] FIG. 13 is an explanatory diagram of the relationship between the work time, travel time, and workload of each worker in the fourth embodiment. [Diagram 30] FIG. 13 is an explanatory diagram of the relationship between the work time, travel time, and workload of each worker in Comparative Example 2. [Diagram 31] FIG. 13 is an explanatory diagram of the average travel time of each worker. [Diagram 32] 13 is a flowchart of a modified work allocation method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0023] First Embodiment FIG. 1 is a schematic block diagram of a task assignment system (task assignment device) 100 according to one embodiment of the present invention. The task assignment system 100 of this embodiment acquires task information relating to a plurality of tasks constituting a process performed by an operator (worker), and assigns tasks to each worker so as to optimize selected parameters such as task cost. Specifically, the task assignment system 100 generates an objective function, and optimizes the generated objective function to optimize task assignment that assigns tasks to each process, and scheduling that determines the order and time at which each task assigned to each worker is performed. In this embodiment, one task is handled by one person or one worker.
[0024] The task assignment system 100 of this embodiment is configured with a so-called personal computer. As shown in Fig. 1, the task assignment system 100 includes a control unit 10, a task information database (task information DB) 21, a task order constraint database (task order constraint DB) 22, a task execution possibility database (task execution possibility DB) 23, and an output unit 30 configured with a monitor capable of displaying various images.
[0025] The various DBs 21 to 23 are configured with hard disk drives (HDD: Hard Disk Drives) etc. The work information DB 21 stores work time, work cost, work position, work load, and changeover time for all work assigned to workers.
[0026] The work time stored in the work information DB21 is the work time required for a worker to perform a work. In this embodiment, the workers include people with different work efficiencies, etc., and multiple robots with different performances. Therefore, the different time required for each worker to perform the work is stored as the work time in association with each work. The work cost is the monetary cost per unit time incurred when a worker performs a work. For example, the work cost when the worker is a person is the value obtained by dividing the labor cost by the annual work hours. The work cost when the worker is a robot is the value obtained by dividing the total of the robot's introduction cost and maintenance cost by its useful life and annual work hours, plus the electricity cost incurred during the work. The work cost, which differs for each worker, is stored in association with each work.
[0027] The work position, when the worker is a human, is information about the location where the person performs the work. When a person performs different tasks in sequence, if the work positions are different, travel time is required for the person to move between work positions. Details of travel time will be described later. The work load, when the worker is a human, is the load imposed on the person performing the work. The work load is information that represents the physical load imposed on the person performing the work (for example, bending forward while working) in a numerical value. The changeover time, when the worker is a robot, is the time required to attach and detach the robot arm and the like that are required to perform the work. The changeover time in this embodiment includes the time required to attach the robot arm and the time required to detach the robot arm when the robot performs the work.
[0028] The work sequence constraint DB22 stores information about work sequence constraints that constrain the order in which a plurality of tasks are performed in sequence by a worker. For example, when the task of attaching a cover and the task of fastening the attached cover with bolts are performed in sequence, the task of attaching the cover is performed as a preceding task that is performed first, and the task of fastening the bolts is performed as a succeeding task that is performed after that. In such a case, a work sequence constraint that is a constraint on the order in which the tasks of attaching the cover and fastening the bolts are performed is set, and information about this setting is stored in the work sequence constraint DB22.
[0029] FIG. 2 is a diagram showing an example of a task order constraint. FIG. 2 shows a matrix table as an example of the relationship between preceding tasks and following tasks in a task order constraint. In FIG. 2, the numbers "1" to "11" shown as preceding tasks and following tasks are task names assigned to each of the 11 tasks. The "1" shown in the 11-row, 11-column matrix excluding the task name numbers "1" to "11" indicates that there is a relationship between the preceding task and the following task. On the other hand, the "0" shown in the matrix indicates that there is no relationship between the preceding task and the following task. For example, when focusing on "task 1" shown in "1" which is a following task, all of the preceding task matrix in the first row is "0", which indicates that there is no task that is constrained by the preceding task of task 1. On the other hand, when we look at "Task 2" which is the succeeding task and is indicated by "2", since "1" is indicated in the matrix in the second row and first column of "Task 1" which has a preceding task of "1", Fig. 2 shows that Task 1 is set as a constraint as the preceding task of Task 2. Therefore, in Fig. 2, the constraints between the preceding tasks and the succeeding tasks are set as follows: (preceding task, succeeding task) = (task 1, task 2), (task 2, task 3), (task 3, task 4), (task 4, task 5), (task 6, task 7), (task 7, task 8), (task 9, task 10), (task 10, task 11).
[0030] The work execution capability DB 23 stores information for determining whether a worker can execute a work assigned to each process. The work execution capability DB 23 also stores an upper limit workerlimit of the number of workers to which a work can be assigned.
[0031] The control unit 10 shown in Fig. 1 is a so-called CPU (Central Processing Unit). The control unit 10 controls each unit of the task assignment system 100 by expanding a computer program stored in a ROM (Read Only Memory) into a RAM (Random Access Memory) and executing the program. The control unit 10 also functions as an information acquisition unit 11, a constraint weight generation unit 12, an objective function generation unit 13, a task assignment unit 14, and a scheduling unit (adjustment unit) 15.
[0032] The information acquisition unit 11 acquires information stored in various DBs 21 to 23. Specifically, the information acquisition unit 11 acquires information on task time, task cost, workload, task position, changeover time, task sequence constraints, upper limit on the number of workers, and whether each task can be executed.
[0033] The constraint weight generation unit 12 sets weights (sequence constraint weights) according to the work sequence of the work for which the work sequence constraint is set, using the information on the work sequence constraints stored in the work sequence constraint DB 22. The set weights of the work constraints are used in the evaluation of a first objective function, which will be described later.
[0034] In order to set a weight for each task, the constraint weight generating unit 12 extracts all tasks for which task order constraints are set as task groups, which are divided into a plurality of tasks for which task order constraints are mutually related. FIG. 3 is an explanatory diagram of task groups extracted according to task order constraints. FIG. 3 shows each task extracted as three task groups from the task order constraints shown in FIG. 2. As shown in FIG. 3, the three task groups are composed of a group including tasks 1 to 5, a group including tasks 6 to 8, and a group including tasks 9 to 11. As shown in FIG. 2, tasks 2 to 5 are all subsequent tasks after task 1 is performed as a preceding task, so tasks 1 to 5 are composed of one task group. Similarly, tasks 7 and 8 are subsequent tasks to task 6, so tasks 6 to 8 are composed of one task group. Tasks 10 and 11 are subsequent tasks to task 9, so tasks 9 to 11 are composed of one task group.
[0035] The constraint weight generation unit 12 determines the order in which the tasks included in each extracted task group are performed within the group. In Fig. 3, the determined order is shown in a box under each task name. For example, task 7 is the second task to be performed in the task group of tasks 6 to 8.
[0036] When multiple work groups are extracted or when there is a branch in the order within one work group, the constraint weight generation unit 12 sets the weights of the work constraints for the work that can be performed simultaneously in ascending order of work order numbers. Specifically, the constraint weight generation unit 12 assigns a larger work constraint weight TO taskOrder is set as shown in the following formula (1).
[0037]
number
[0038] FIG. 4 is an explanatory diagram of the weight of the task constraint set for the task of each task group. In FIG. 4, the task constraint weight TO taskOrder In this embodiment, the weight TO increases as the operation sequence number in the operation group increases. taskOrder The constant α was adjusted so that the weight of the task constraint for tasks 1, 6, and 9, which have the smallest task sequence number "1" in each task group, is rapidly reduced. Adjusting the constant α in this manner makes it possible to prevent tasks with higher task sequence numbers from being assigned to a process as preceding tasks within a task group. Therefore, as shown in FIG. 4, the constraint weight generation unit 12 sets the task constraint weights for tasks 1, 6, and 9, which have the smallest task sequence number "1" in each task group, to 30. The constraint weight generation unit 12 also sets the task constraint weight for tasks 2, 7, and 8, which have the task sequence number "2", to 5, and sets the task constraint weights for the remaining tasks 3 to 5, 8, and 11 to zero.
[0039] The objective function generator 13 shown in FIG. 1 generates a first objective function O Allo In this embodiment, the objective function generator 13 generates a first objective function Omax1, Cmax2, SI, and OC, which is a weighted sum of the four parameters Cmax1, Cmax2, SI, and OC multiplied by weights w1 to w4, as shown in the following formula (2). Allo The weights w1 to w4 may be arbitrarily set by the user, and are different from the weights generated by the constraint weight generating unit 12.
[0040]
number
[0041] The parameter Cmax1 is the maximum total working time of the worker required to complete all the tasks assigned to the worker. Therefore, the parameter Cmax1 is defined as the following formula (3).
[0042]
number
[0043] x in formula (3) ij is a task assignment variable. i corresponds to a task and j corresponds to a worker. x ij If D is "1", it means that task i is assigned to worker j. ij is the time required for worker j to perform task i. In other words, the parameter Cmax1 is the time required for each worker to perform task i using the task assignment variable x ij and working time D ij The sum of the products of and is defined as the maximum work time for each worker. Note that when the worker is a human, the estimated movement time between work positions is added, and when the worker is a robot, the changeover time is added, so in equation (3), the term added after "+" is omitted.
[0044] In this embodiment, in the scheduling performed after the tasks are assigned to each worker, the travel time according to the travel distance between the work positions of each task is taken into consideration when the worker is a human. Also, the changeover time for impairing each task is taken into consideration when the worker is a robot. If the parameter Cmax1 is calculated without taking into consideration the travel time and the changeover time, a deviation occurs from the maximum value of the actual work time. Therefore, in this embodiment, the objective function generation unit 13 estimates the work time according to the estimated travel distance when the worker is a human, and estimates the work time taking into consideration the changeover time when the worker is a robot. The objective function generation unit 13 includes the estimated estimated travel time and the changeover time as values related to the parameter Cmax1. According to the estimate, the objective function generation unit 13 defines the above formula (3) as the following formula (4) when the worker is a human, and as the following formula (5) when the worker is a robot.
[0045]
number
number
[0046] The term newly added to the above formula (3), i.e., the term on the right side of the left side in the above formula (4), is the estimated travel time calculated according to the estimated travel distance when the worker is a human. a is the average travel time for worker j to move between work locations. SL j is the number of work locations for tasks assigned to worker j. β is a weight. Equations (4) and (5) indicate that the maximum working time of all workers is set to be equal to or less than parameter Cmax1 when the workers perform all assigned tasks. In other words, parameter Cmax1 is a value that constrains the maximum working time of workers. In this embodiment, in scheduling after task allocation, the minimum number of trips between work locations (SL j -1) and the average travel time M a The product of this and the result is added as the sum of the working hours.
[0047] The term added to equation (3), that is, the term on the right side of the left side of equation (5) above, is the changeover time when the worker is a robot. RT ij is the time it takes for the robot to remove the arm after performing task i. MT ij is the time required for the robot to set up the arm required to perform task i. In addition, when the same arm is used between consecutive tasks assigned to the robot, the correction term for the task time when the same arm is used: number of times the same arm is used × (RT ij +MT ij ) may be subtracted from the left side of equation (5).
[0048] The first objective function O Allo The parameter Cmax2 is a value related to the work order constraint. Specifically, the parameter Cmax2 is a value related to the weight TO generated by the constraint weight generating unit 12. taskOrder and the work assignment variable x ijThe product of these two is defined as the maximum value of the sum of all the operations, as shown in the following equation (6).
[0049]
number
[0050] Figure 5 shows the first objective function O Allo FIG. 5 is an explanatory diagram of the relationship between the parameters Cmax1 and Cmax2 in the case where 20 tasks, tasks 1 to 20, are extracted as five task groups. In FIG. 5, the five extracted groups are shown with different hatching for each group. Specifically, the tasks included in the five task groups are tasks 1 to 5, tasks 6 to 9, tasks 10 to 13, tasks 14 to 17, and tasks 18 to 20. The numbers shown in the hatched rectangles are the task sequence numbers when performed by each worker. As shown in FIG. 5, by defining the parameter Cmax2 that changes depending on the weight of the task constraint, among tasks 3 to 17 that can be performed simultaneously by multiple workers in parallel, tasks with small task sequence numbers are assigned evenly to multiple workers. On the other hand, tasks 1, 2, and 18 to 20 that cannot be performed simultaneously are assigned to each worker so that the working time of each worker is equalized by the parameter Cmax1.
[0051] The first objective function O Allo The parameter SI of is the workload TL when a worker performs an assigned task i when the worker is a human. i is defined as the sum of the above, as shown in the following formula (7).
[0052]
number
[0053] The first objective function O Allo The parameter OC of is the cost per unit time of a worker when performing the assigned task i. jand working time D ij The sum of the products of and is defined as the following formula (8). Note that even for the same task i, the task cost varies depending on the worker performing it. j and working time D ij For example, if the worker is a person, the work cost per unit time is j is the labor cost divided by the actual working hours per year. If the worker is a robot, the work cost per unit time is j is the depreciation cost divided by the annual operating hours plus the electricity cost per unit time.
[0054]
number
[0055] As described above, the first objective function O Allo The parameters include a parameter Cmax1 related to the operation time, a parameter Cmax2 related to the operation sequence constraint, a parameter SI related to the workload, and a parameter OC related to the operation cost. The four parameters Cmax1, Cmax2, SI, and OC may be normalized to make the values of the parameters uniform.
[0056] The task allocation unit 14 shown in FIG. 1 acquires information from various DBs 21 to 23 via the information acquisition unit 11, and calculates the first objective function O generated by the objective function generation unit 13. Allo The task allocation unit 14 allocates tasks to each worker so as to minimize the first objective function O Allo The work allocation unit 14 simultaneously selects workers from the worker candidates and assigns the work to the selected workers so as to minimize . In this embodiment, the work allocation unit 14 assigns the work using a mixed integer programming method. In other embodiments, the work may be assigned using a metaheuristic search method such as a genetic algorithm.
[0057] The task allocation unit 14 calculates the decision variable x ij ,y j Define.
number
number
[0058] The decision variable x shown in the above equation (9) ij is a 0-1 variable that is "1" when task i is assigned to worker j and "0" otherwise. The decision variable y j is a 0-1 variable that is “1” if worker j is assigned one or more tasks and “0” if worker j is not assigned any tasks.
[0059] The task allocation unit 14 uses the first objective function O generated by the objective function generation unit 13. Allo The following equation (11) is defined to minimize (equation (2)).
number
[0060] The work allocation unit 14 sets the constraint conditions of the following equations (12) to (16) in order to solve the above equation (11).
[0061]
number
number
number
number
number
[0062] The above formula (12) indicates that one worker is assigned to one task. The above formulas (13) and (14) indicate that the variable y j In other words, the above formulas (13) and (14) determine whether one or more tasks are assigned to the worker j. Note that M in formula (14) is a number greater than 1.
[0063] The above formula (15) is a formula for defining the upper limit of the number of workers that can assign work. In formula (15), workerlimit is the upper limit of the number of workers that can be assigned work. The above formula (16) is a formula for not assigning work to worker j that cannot perform work i. The work execution feasibility DB23 stores Feasibilityij, which is a 0-1 variable. The variable Feasibilityij is set to "1" if worker j can perform work i, and is set to "0" if worker j cannot perform work i.
[0064] The work allocation unit 14 formulated the above formulas (11) to (14) and the above formulas (4) to (8) using a general-purpose mathematical programming modeler, and optimized the work allocation using a mixed integer programming solver. FIG. 6 and FIG. 7 are diagrams showing an example of the results of worker selection and work allocation. FIG. 6 and FIG. 7 show an example of the results of worker selection and work allocation optimization from five worker candidates including a person H, a four-axis robot R1, a six-axis robot R2, a six-axis robot R3, and a dual-arm robot R4. FIG. 6 shows an example of the work allocation result when the upper limit value of the number of workers, workerlimit, is "3". On the other hand, FIG. 7 shows an example of the work allocation result when the upper limit value of the number of workers, workerlimit, is "2".
[0065] In the example shown in Fig. 6, work is assigned to the person H, the six-axis robot R2, and the dual-arm robot R4, and work is not assigned to the four-axis robot R1 and the six-axis robot R3. In Fig. 7, work is assigned to the person H and the six-axis robot R3, and work is not assigned to the four-axis robot R1, the six-axis robot R2, and the dual-arm robot R4.
[0066] The scheduling unit 15 shown in FIG. 1 optimizes the work order and work start time (scheduling) in which the work assigned to each worker is performed so as to minimize the maximum work completion time among all workers, using the result of the work assignment generated by the work assignment unit 14 and a second objective function expressed by equation (19) described later. The parameters of the second objective function include values related to work-related time. Specifically, the scheduling unit 15 optimizes the scheduling using the result of the work assignment, the work order constraints, the work time of each worker, the estimated movement time between work positions when the worker is a human, and the changeover time when the worker is a robot. In this embodiment, the scheduling unit 15 optimizes the scheduling using mixed integer programming. In other embodiments, the scheduling may be optimized using an exploratory method such as a genetic algorithm.
[0067] In this embodiment, the scheduling unit 15 formulates the scheduling of tasks assigned to workers based on the traveling salesman problem. In the formulation, constraints on the order of tasks assigned to different workers, estimated movement times when the workers are human, and changeover times when the workers are robots are incorporated as constraint conditions.
[0068] The scheduling unit 15 selects vh as a decision variable. k ,vr l ,xh mn ,xr mn is defined as follows: vh k vr is the start time when task k assigned to worker vr lis the start time when task l assigned to the robot worker is started.
[0069] xh mn is defined as a 0-1 variable, as shown in the following formula (17), which is "1" when a worker works in the order of the preceding task m to the following task n among the tasks assigned to the worker, and "0" otherwise. mn is also called the adjacency matrix for human work.
[0070]
number
[0071] xr mn is defined as a 0-1 variable, as shown in the following formula (18), which is "1" when the robot worker works in the order of the preceding task m to the following task n among the tasks assigned to the robot worker, and "0" otherwise. mn About the robot work It is also called the adjacency matrix.
[0072]
number
[0073] Figures 8 and 9 are explanatory diagrams of an image of an adjacency matrix. An adjacency matrix is a matrix in which a directed graph showing the work sequence as shown in Figure 8 is expressed as the matrix shown in Figure 9. In the example shown in Figures 8 and 9, the work sequence is a closed circuit in which tasks are performed in the order of 1, 4, 3, 5, 2, 1.
[0074] The scheduling unit 15 defines a second objective function as an objective function expressed by the following formula (19) so as to minimize the maximum task completion time among all the workers.
number
[0075] To solve the above formula (19), the scheduling unit 15 defines constraint conditions expressed by the following formulas (20) to (31). Formulas (20) and (21) express that when the worker is a human, the work assigned to the worker is performed only once. Similarly, formulas (22) and (23) express that when the worker is a robot, the work assigned to the worker is performed only once.
[0076]
number
number
number
number
[0077] The following equations (24) and (25) express the process in which the tasks assigned to the workers form one tour. Equation (24) is the constraint when the worker is a human. Equation (25) is the constraint when the worker is a robot.
[0078]
number
number
[0079] The above formula (24) indicates that when tasks m and n have a precedence-successor relationship, the start time of the following task must be after the elapse of the task time required to perform the preceding task from the start time of the preceding task and the estimated travel time to move between task positions. Therefore, it can be said that the parameter of the second objective function shown in the above formula (19) includes a value related to the task sequence constraint. Dh in formula (24) mis the walking time required for a worker to complete task m. mn is the estimated travel time required to travel between the work locations where work m and n are performed.
[0080] The above formula (25) shows that when there is a precedence-succession relationship between tasks m and n, the start time of the succeeding task must be after the elapse of the task time and the changeover time required to perform the preceding task from the start time of the preceding task. m is the time required for a robot worker to complete task m. m is the changeover time between operations m and n. Note that M in equations (24) and (25) is a number greater than 1.
[0081] The following equations (26) and (27) mean constraints on the task completion time until all tasks assigned to worker k are completed. Equation (26) is the constraint when worker k is a human. Equation (27) is the constraint when worker k is a robot. Since equations (24), (26), and (27) are constraints related to task completion time, it can be said that the parameters of the second objective function shown in equation (19) include the task completion time.
[0082]
number
number
[0083] The following equations (28) to (31) are constraints that distinguish between the cases where a preceding task and a following task are performed by a human worker and a robot worker when a precedence-successor relationship exists between tasks. Equation (28) is a constraint when a human worker performs the preceding task and a human worker performs the following task. Equation (29) is a constraint when a human worker performs the preceding task and a robot worker performs the following task. Equation (30) is a constraint when a robot worker performs the preceding task and a human worker performs the following task. Equation (31) is a constraint when a robot worker performs the preceding task and a human worker performs the following task.
[0084]
number
number
number
number
[0085] 10 and 11 are explanatory diagrams of an example of a work scheduling result generated by the scheduling unit 15. Fig. 10 shows an example of a list of the work order in which the work assigned to three workers is performed and the start time and end time of each work. Fig. 11 shows each work corresponding to Fig. 10 in the form of a Gantt chart.
[0086] Fig. 12 is a flowchart of a task allocation method that performs tasks from task allocation to workers to scheduling. As shown in Fig. 12, first, the information acquisition unit 11 performs an information acquisition step of acquiring various information such as task time of each task stored in various DBs 21 to 23 (step S1). The constraint weight generation unit 12 uses the task sequence constraints stored in the task sequence constraint DB 22 acquired by the information acquisition unit 11 to extract task groups with task sequence constraints as shown in Figs. 2 and 3 (step S2). The constraint weight generation unit 12 calculates the weight TO of each task for the tasks included in each extracted task group according to the above formula (1). taskOrder is set (step S3).
[0087] The objective function generator 13 uses the weights TO taskOrder A first objective function O defined by parameters related to the work time of each task, the work cost of each task, and the workload when the worker is a human. Allo The task allocation unit 14 performs an objective function generation step of generating the first objective function O (equation (2)) (step S4). Allo A task allocation step is performed to allocate tasks to workers by optimizing to minimize (step S5). In this embodiment, the task allocation unit 14 formulates the above equations (11) to (14) and the above equations (4) to (8) using a general-purpose mathematical programming modeler, and optimizes the task allocation using a mixed integer programming solver.
[0088] The scheduling unit 15 uses the work allocation results generated by the work allocation unit 14 to perform an adjustment step of optimizing the scheduling so as to minimize the maximum work completion time among all workers (step S6), and the work allocation flow ends. In this embodiment, the scheduling unit 15 optimizes the scheduling by defining the decision variables shown in the above formulas (17) and (18), and optimizing the second objective function shown in the above formula (19) using the constraint conditions of the above formulas (20) to (31).
[0089] Figures 13 and 14 are explanatory diagrams of the work sequence constraints of Example 1. Figure 13, like Figure 2, shows a matrix table as an example of the relationship between preceding and succeeding operations in the work sequence constraints. Figure 14, like Figure 3, shows each operation extracted as four operation groups from the work sequence constraints shown in Figure 13.
[0090] Fig. 15 is a diagram showing the scheduling result of Example 1 in the form of a Gantt chart. The Gantt chart shown in Fig. 15 is the result of Example 1 in which task allocation and scheduling were performed using the task allocation system 100 of this embodiment. The Gantt chart of Example 1 is an example output to the output unit 30. As shown in Fig. 15, in Example 1, the task completion time for all tasks assigned to worker 3 among workers 1 to 4 to be completed was longer than the other workers 1, 2, and 4, at 68.3 seconds.
[0091] FIG. 16 is a diagram showing the scheduling result of Comparative Example 1 in the form of a Gantt chart. The Gantt chart shown in FIG. 16 is the result of Comparative Example 1, in which task allocation and scheduling were performed by the task allocation system of Comparative Example 1, which is different from the task allocation system 100, under the same conditions as those of Example 1, such as task sequence constraints and task time. In Comparative Example 1, tasks were assigned to each worker using an objective function that does not consider task sequence constraints when assigning tasks to the workers, and only executable task allocations were generated using information stored in the task execution feasibility DB 23 regarding whether the assigned tasks can be executed. After that, scheduling was performed by optimization using the executable task allocations. As shown in FIG. 16, in Comparative Example 1, the task completion time for all tasks assigned to worker 3 among workers 1 to 4 to be completed was 82.4 seconds, which was longer than the other workers 1, 2, and 4. That is, the maximum task completion time in Example 1 was 68.3 seconds, which was significantly shorter than the 82.4 seconds in Comparative Example 1.
[0092] 17 to 20 are explanatory diagrams of the scheduling results of Example 2. In Example 2, under conditions such as work time different from those in Example 1, the first objective function O Allo Change the weights w1, w3, and w4 In Example 2, since there is no work sequence constraint, the parameter Cmax2 in formula (2) is not taken into consideration.
[0093] In Fig. 17, the parameters Cmax1 (maximum task time), SI (workload), and OC (task cost) expressed in formula (2) are shown in bar graphs for the cases where task cost is prioritized, task completion time is prioritized, and a balanced type, with the weights w1, w3, and w4 adjusted. Note that in the balanced type, the weights w1 and w4 are set to be the same for both task cost and task completion time.
[0094] Fig. 18 shows a task allocation when task cost is prioritized. Fig. 19 shows a task allocation when task completion time is prioritized. Fig. 20 shows a balanced task allocation. As shown in Figs. 17 to 20, by using the task allocation system 100 of this embodiment and adjusting the weights w1 to w4 according to the item to be prioritized (such as task completion time), the user can derive a more preferable scheduling result.
[0095] As described above, in the task allocation system 100 of this embodiment, the information acquisition unit 11 acquires information on task time, task cost, and workload. The objective function generation unit 13 generates a first objective function Omax1 including a weighted sum obtained by multiplying a parameter Cmax1 related to the task time, a parameter SI related to the workload, and a parameter OC related to the task cost by weights w1, w3, and w4, respectively, as shown in the above formula (2). AlloThe work allocation unit 14 optimizes the work allocation using the above equations (11) to (14) and the above equations (4) to (8). The scheduling unit 15 optimizes the work sequence and work start times (scheduling) in which the work assigned to each worker is performed, so as to minimize the maximum work completion time of all workers, using the work allocation result generated by the work allocation unit 14 and the second objective function expressed by the above equation (19). That is, the first objective function O Allo The parameters of the first objective function O include values related to the work time, the work cost, and the work load. Allo In the example, weights w1 to w4 are set to be multiplied with each of the parameters. Therefore, as in the second embodiment (FIGS. 17 to 20), the weights w1 to w4 are set according to the user's request, and the task is assigned to each worker by adjusting either the task time, task cost, or workload, or the balance between these. After the task is assigned, the second objective function, which has a parameter related to the task completion time, is minimized or maximized, so that the maximum task completion time of the worker with the slowest task completion time is adjusted to be small. As a result, the task is assigned according to the user's request, and the tasks performed by each worker can be optimized so that the task completion times of all workers are minimized.
[0096] In this embodiment, the first objective function O Allo The parameter Cmax2 in is a value related to the work sequence constraint. The scheduling unit 15 defines a second objective function in which the parameters expressed by the above formula (19) include values related to the work completion time and the work sequence constraint, so as to minimize the maximum work completion time among all workers. In this embodiment, the first objective function O AlloThe parameters of both the first objective function (the above formula (19)) and the second objective function optimized by scheduling after task allocation contain values related to the task sequence constraints. Therefore, task allocation is optimized in compliance with the task sequence constraints when tasks are assigned, and the maximum task completion time can be shortened using the task sequence constraints. Furthermore, since the number of combinations required to obtain a solution can be significantly reduced compared to when task allocation and task sequence are optimized simultaneously, it is possible to obtain an optimal solution in a short time.
[0097] In addition, the constraint weight generation unit 12 of this embodiment extracts all the tasks for which task order constraints are set as task groups, which are divided into multiple tasks for which the task order constraints are mutually related. The constraint weight generation unit 12 assigns a task constraint weight TO to the tasks included in the multiple task groups, which is larger for tasks that can be simultaneously executed by multiple workers and that are earlier in the task order within the task group. taskOrder is set as in the above formula (1). In this embodiment, the constraint weight generation unit 12 extracts, from all the tasks, tasks for which task sequence constraints are set as a task group. Furthermore, among the extracted tasks, the task that can be simultaneously performed by different workers and that is earlier in the task sequence is assigned a larger task constraint weight TO taskOrder As a result, the larger the weight of a task is set, the earlier the task is assigned to each worker. This allows tasks with task order constraints to be performed more efficiently by multiple workers, and shortens the maximum task completion time.
[0098] In addition, the first objective function O Allo As shown in the above formula (2), the parameters of the first objective function O include a parameter Cmax1 related to the task time, a parameter Cmax2 related to the task sequence constraint, a parameter SI related to the workload, and a parameter OC related to the task cost. AlloSince the parameters Cmax1, Cmax2, SI, and OC in (Equation (2)) each include factors related to task time, task sequence constraints, workload, and task cost, task allocation can be performed taking into account all of these indicators.
[0099] In addition, the first objective function O Allo The parameter Cmax1 included in is a value that restricts the maximum value of the work time of the worker. Therefore, since the work assignment is performed taking into account the work time of each work, which varies depending on the worker who performs it, the scheduling unit 15 can shorten the maximum work completion time of all workers.
[0100] In addition, the objective function generator 13 of this embodiment includes, as a value related to the parameter Cmax1, an estimated travel time according to the travel distance between the work positions of each work when the worker is a human, and a changeover time required to attach and detach a robot arm or the like required to perform the work when the worker is a robot. That is, in this embodiment, the estimated travel time and changeover time generated according to the type of worker, whether human or robot, are each included in the first objective function O Allo This is taken into consideration when optimizing. Therefore, the time it takes for each worker to complete all the assigned tasks becomes closer to the actual time, so scheduling can be performed according to the actual task completion time.
[0101] Furthermore, the scheduling unit 15 incorporates the estimated movement time when the worker is a human and the changeover time when the worker is a robot as constraint conditions in the formulation for performing scheduling. With this configuration, the estimated movement time and the changeover time are included as parameters of the second objective function in addition to the first objective function, so that it is possible to perform scheduling that is more in line with the actual work completion time.
[0102] In addition, the task allocation unit 14 of this embodiment allocates tasks using mixed integer programming. The scheduling unit 15 optimizes scheduling using mixed integer programming. With this configuration, the first objective function OAllo and the second objective function (equation (19)).
[0103] <Second embodiment> 21 is a schematic block diagram of a task assignment system 100a according to the second embodiment. The second embodiment is significantly different from the first embodiment in that, when a human worker performs a plurality of tasks, the travel time required for movement between the task positions of two tasks that are performed consecutively among the plurality of tasks is included in the parameters of the first objective function and the second objective function, and there is a restriction on the movement path of the task target relative to the task position. Therefore, in the second embodiment, the configuration and calculations that are different from those in the first embodiment will be described, and a description of the same configuration and calculations will be omitted.
[0104] As shown in Fig. 2, the work assignment system 100a of the second embodiment includes, in addition to the configuration of the work assignment system 100 (Fig. 1) of the first embodiment, a product movement constraint database (product movement constraint DB) 24 that stores product movement constraint information that is a constraint on the movement direction of a product as a work target in a work performed by a worker. Furthermore, the work information DB 21a of the second embodiment stores the work position where each work is performed and the travel time required for a human worker to move between work positions. In the second embodiment, since the work positions where each work is performed are different, the travel time required for a worker performing the work will differ if the order in which the work is performed is different.
[0105] FIG. 22 is an explanatory diagram of the work position of each work in the second embodiment. In FIG. 22, the work time, the work load, the X coordinate and the Y coordinate representing the work position, and the shop position are shown in a list for the "work No." associated with each work. FIG. 23 is an explanatory diagram of the work position in the second embodiment. In FIG. 23, the work position in the second embodiment is shown as a position on a matrix consisting of the X axis as the horizontal axis and the Y axis as the vertical axis. For example, as shown in FIG. 22, the X coordinate of the work position of the work No. 35 is 3, and the Y coordinate is 35. Therefore, the work position of the work 35 is shown by the numerical value of the work No. in the corresponding matrix on the matrix in FIG. 23. In the second embodiment, the work time and the work load shown in FIG. 22 are determined by random numbers.
[0106] The product movement constraint information stored in the product movement constraint DB24 is information about the product movement direction indicated by the arrow in Fig. 23. In this embodiment, the product movement constraint information is stored in association with the X and Y coordinates of the area in which the product can move (hereinafter also simply referred to as the "product movement area") and the movement direction of the product in the product movement area (for example, the negative X-axis direction). In the second embodiment, the movement direction of the product is the same as the conveying direction of the belt conveyor that conveys the product.
[0107] The "shop position" shown in Fig. 22 indicates which group each operation belongs to when multiple operation positions lined up along the X axis are divided into 18 groups. For example, the shop position of operations 22 to 30, which are lined up in a row with X coordinates 3 to 11 and Y coordinate 35 in Fig. 23, is "3" as shown in Fig. 22. On the other hand, the shop position of operations 104 to 108, which are lined up in a row with X coordinates 3 to 7 and Y coordinate 9 in Fig. 23, is "13" as shown in Fig. 22.
[0108] The product movement constraint DB24 also stores information about AGVs (Automatic Guided Vehicles) that travel between the divided product movement regions to transport products. For example, one of the two AGVs shown in FIG. 23 transports products between product movement regions R1 and R2 by moving parallel to the Y axis in the range of X coordinates 1-2 and Y coordinates 29-35. The product movement region R1 is in the range of X coordinates 0-40 and Y coordinates 36-37. The product movement region R2 is an area consisting of an area of X coordinates 0-30 and Y coordinates 27-28, an area of X coordinates 29, 30 and Y coordinates 24-26, and an area of X coordinates 0-30 and Y coordinates 22-23.
[0109] FIG. 24 is an explanatory diagram of the travel time required. In FIG. 24, the travel time required when travelling along the shortest route between the task position that is the starting point at the start of travel and the task position that is the destination after the travel is shown in each cell of the matrix. For example, the travel time required along the shortest route when travelling from the task position of task 30 shown in FIG. 23 as the starting point to the task position of task 50 is "33" as shown in FIG. 24. First objective function O Allo By including the travel time in the parameters of the second objective function expressed by the above formula (19), the start time of each task assigned to each worker is adjusted so that the travel time of each worker is shortened.
[0110] The information acquisition unit 11a acquires the movement time required between work positions stored in the work information DB 21a, the product movement constraint information stored in the product movement constraint DB 24, and the work sequence constraints stored in the work sequence constraint DB 22. The objective function generation unit 13a of the second embodiment calculates the first objective function O Allo The parameter Cmax1 included in is defined as the following formula (32) instead of the above formula (4) of the first embodiment, using the movement time required between work positions stored in the work information DB 21a.
number
[0111] In the above formula (4) in the first embodiment, the term on the right side of the left side is the estimated travel time calculated according to the estimated travel distance, but in the above formula (32) in the second embodiment, the travel time required between work positions when a human worker performs each task is used. ik is the travel time of a worker from the location where task i is performed to the location where task k is performed. ik is a 0-1 variable that takes "1" if task k is performed after task i, and takes "0" otherwise. In the above equation (32), the sum of the work time and travel time of each worker is compared with one parameter Cmax1, and the parameter Cmax1 is the first objective function Omax1 of the above equation (4). Allo It is one element of.
[0112] The task allocation unit 14a of the second embodiment calculates a first objective function O Allo The scheduling unit 15a of the second embodiment allocates the work to be performed by each worker by solving the above formula (11) defined for. The scheduling unit 15a of the second embodiment adjusts the schedule of the work assigned to each worker by using the work sequence constraints, the travel time required for a worker to move between work positions, and the product movement constraint information. The scheduling unit 15a adjusts the start time of the work assigned to each worker so as to satisfy the travel time and the product movement constraint information in addition to the constraints on the precedence relationship of the work expressed by the above formulas (27) to (31) of the first embodiment.
[0113] The scheduling unit 15a defines an adjacency matrix for each worker regarding the work performed by the human worker as defined by the above formula (17) in the first embodiment. This adjacency matrix is the variable xod ik is the same as the operation sequence matrix xod ijIn addition, I in equation (33) is the set of all tasks assigned to the workers.
[0114]
number
[0115] The scheduling unit 15a of the second embodiment adjusts the start time of the work performed by each worker by solving the second objective function (the above formula (19)) that includes values related to the work sequence constraints and the product movement constraints as parameters using mixed integer programming. In addition to the definitions of formulas (17) to (18) and (20) to (31) in the first embodiment, the scheduling unit 15a also adjusts the start time of the work performed by each worker by solving the second objective function (the above formula (19)) that includes values related to the work sequence constraints and the product movement constraints as parameters. k (a positive real number). Note that index k is the number of tasks assigned to a worker. Here, since a move from task i to task j is performed only once, the following relational expression (34) is derived. Since a move from a task with a higher order to a task with a lower order is limited to only once, the following relational expression (35) is derived.
[0116]
number
number
[0117] The scheduling unit 15a calculates the operation sequence matrix xod ij The relationship between the execution order variable u and the order variable between tasks is defined as the following formula (36). Formula (36) expresses that when task j is executed after task i, the execution order variable u of task i is i is the execution order variable u of task j j This indicates that the value becomes smaller, and the order relationship between task i and task j is determined. Equations (33) to (36) indicate that the second objective function expressed by the above equation (19) includes a parameter related to the travel time.
[0118]
number
[0119] FIG. 25 is an explanatory diagram of the scheduling result of Example 3. Example 3 is a scheduling result created by the task allocation system 100a of the second embodiment for six workers A to F with 146 tasks shown in FIG. 22. In FIG. 25, alphabets (A to F) representing the workers who will perform the tasks are shown at each of the task positions 1 to 146 in the matrix shown in FIG. 23. For example, as shown in FIGS. 23 to 25, worker A performs tasks 18 to 21 at task positions 18 to 21 (shop position 2), tasks 22 to 30 at task positions 22 to 30 (shop position 3), tasks 31 to 35 at task positions 31 to 35 (shop position 4), and tasks 36 to 42 at task positions 36 to 42 (shop position 5). The scheduling results of Example 3 and Example 4 and Comparative Example 2 described later are based on the assumption that the task capabilities of the six workers A to F are the same.
[0120] FIG. 26 is an explanatory diagram of the scheduling result of Example 4. FIG. 27 is an explanatory diagram of the scheduling result of Comparative Example 2. Example 4 is a scheduling result in which 146 tasks shown in FIG. 22 are assigned to six workers A to F by the task allocation system 100 of the first embodiment. That is, in Example 4, tasks 1 to 146 are assigned to workers A to F using the estimated travel time without considering the task positions and the travel time required between the task positions, as in Example 3. Comparative Example 2 is a scheduling result in which 146 tasks shown in FIG. 22 are assigned to six workers A to F using an objective function that does not consider task order constraints when assigning tasks to workers A to F, as in Comparative Example 1. In FIGS. 26 and 27, as in FIG. 25, alphabets representing each worker are shown at each of the matrix-like task positions 1 to 146 shown in FIG. 23. In the scheduling result of Comparative Example 2 shown in FIG. 27, the task positions are such that a plurality of workers work together at some shop positions. On the other hand, in Example 3 shown in FIG. 25 and Example 4 shown in FIG. 26, each shop position is a work position where one worker performs consecutive work.
[0121] Each of Fig. 28 to Fig. 30 is an explanatory diagram of the relationship between the task time, travel time, and workload of each of workers A to F. Fig. 28 to Fig. 30 show the task time, travel time, and workload of each of workers A to F in a bar graph. Fig. 28 shows a bar graph of Example 3, Fig. 29 shows a bar graph of Example 4, and Fig. 30 shows a bar graph of Comparative Example 2. In each bar graph, the task time is shown at the bottom, the travel time is shown at the middle, and the workload is shown at the top.
[0122] 28 to 30 each show the average value and standard deviation of the total value of the work time, travel time and workload of workers A to F. The average value of Example 3 shown in FIG. 28 is 248.8, which is smaller than 250.0 of Example 4 shown in FIG. 29 and 252.2 of Comparative Example 2 shown in FIG. 30. Furthermore, the standard deviation of Example 3 is 4.5, which is smaller than 9.3 of Example 4 and 15.1 of Comparative Example 2. That is, compared with Example 4 and Comparative Example 2, Example 3 has the smallest overall load on workers A to F, and the overall load among workers A to F is leveled.
[0123] FIG. 31 is an explanatory diagram of the average value of each movement time of workers A to F. FIG. 31 shows a graph in which the average values of the movement times of Example 3, Example 4, and Comparative Example 2 are plotted. The average movement time of each worker shown in FIG. 31 is calculated using the movement time stored in the work information DB21a. In addition to plotting each average value, FIG. 31 shows a range connecting the maximum movement time and the minimum movement time among the six workers A to F with a solid line parallel to the Y axis. As shown in FIG. 31, the average movement time of Example 3 is about 12 seconds, which is shorter than about 17 seconds of Example 4 and about 19 seconds of Comparative Example 2.
[0124] As described above, the information acquisition unit 11a of the second embodiment acquires the movement time required between work positions stored in the work information DB 21a and the product movement constraint information stored in the product movement constraint DB 24. In addition, the objective function generation unit 13a calculates the first objective function O AlloThe parameter Cmax1 included in is defined as the above formula (32) using the travel time instead of the above formula (4) in the first embodiment. In the second embodiment, when the worker is a human, the travel time required for the worker to perform each task is taken into consideration as the parameter Cmax1 of the first objective function (formula (19)) and the tasks to be performed by the worker are assigned. Therefore, a plurality of tasks are assigned to the worker so that the travel time is short. As a result, tasks are assigned that have a short travel time, that is, tasks that shorten the time required to complete all tasks.
[0125] In addition, in the above equation (32) generated by the objective function generating unit 13a of the second embodiment, the total of the work time and travel time of each worker is compared with one parameter Cmax1, and the parameter Cmax1 is the first objective function O of the above equation (4). Allo Therefore, the sum of each worker's work time and travel time is optimized as one parameter, and the sum for each worker is leveled. As a result, the travel distance between the work positions of each worker is suppressed, and the start time of each worker's work is adjusted so that the total time until each worker completes their work is shortened.
[0126] The scheduling unit 15a of the second embodiment adjusts the start time of work to be performed by each worker by solving the second objective function (the above formula (19)) that includes values related to the work sequence constraints and the product movement constraints as parameters. In the second embodiment, in addition to the work sequence constraints between tasks, the movement direction constraints of the work objects relative to the work positions are taken into consideration to adjust the start time of the work assigned to each worker, i.e., the order in which the work is performed. Therefore, the movement distance of each worker is adjusted to be shorter while satisfying the work sequence constraints and the movement direction constraints.
[0127] In the second embodiment, the equations (33) to (36) as the conditions of the second objective function (the above equation (19)) solved by the scheduling unit 15a include a parameter related to the travel time. AlloIn addition, the second objective function also includes a parameter related to the travel time. Therefore, after tasks are assigned to each worker so that the travel time of each worker is shortened, the start time of the tasks is adjusted so that the order of tasks performed by each worker is shortened.
[0128] <Modifications of the embodiment> The present invention is not limited to the above-described embodiment, and can be embodied in various forms without departing from the spirit of the present invention, for example, the following modifications are possible: In the above-described embodiment, a part of the configuration realized by hardware may be replaced by software, and conversely, a part of the configuration realized by software may be replaced by hardware.
[0129] <Variation 1> In the above first embodiment, the task assignment system 100 has been described as an example of a task assignment device that performs task assignment and scheduling. However, the task assignment device can be modified as long as it performs task assignment to optimize a first objective function whose parameter is a value related to at least one of task time, task cost, and workload, and uses the task assignment results to perform scheduling that shortens the maximum task completion time.
[0130] For example, the first objective function O generated by the objective function generating unit 13 Allo The first objective function O does not have to include a parameter Cmax2 related to the work sequence constraint, as in the first embodiment. Allo may include, for example, one of the three parameters Cmax1, SI, and OC, and may include a parameter that changes depending on a value related to another task. When there is no task order constraint between tasks as in the second embodiment, the control unit 10 does not need to function as the constraint weight generation unit 12, and the task constraint weight TO taskOrder may not be generated.
[0131] FIG. 32 is a flowchart of a work allocation method according to a modified example. The work assignment flow shown in FIG. 32 is a flow for a case where there is no work order constraint, compared to the work assignment flow of the first embodiment shown in FIG. 12. Therefore, the work assignment flow of the modified example does not include the processing of steps S2 and S3 of the work assignment flow of the first embodiment. The processing of steps S11 to S14 of the modified example shown in FIG. 32 is the same as the processing of steps S1, S4 to S6 of the first embodiment shown in FIG. 12. Therefore, a description of the processing of steps S11 to S14 of the modified example will be omitted. In this way, the work assignment system 100 of the first embodiment can optimize the work assignment and scheduling of work for which there is no work order constraint, in accordance with the user's wishes.
[0132] <Variation 2> Although the task assignment system 100 includes various DBs 21-23 and an output section 30, it is not necessary to include these components. In this case, the information acquisition section 11 of the task assignment system 100 may acquire task information and the like from another database. Furthermore, the task assignment system 100 may output the scheduling results to the user using a monitor or speaker as another device instead of the output section 30.
[0133] In the first embodiment, the first objective function and the second objective function are optimized by minimizing them, but a function that is optimized by maximizing them may be generated as the objective function. Furthermore, the task allocation unit 14 and the scheduling unit 15 may use the objective function to derive a more preferable optimized solution without necessarily deriving the most suitable optimal solution. The parameters of the first objective function and the second objective function may not include values related to the estimated movement time when the worker is a human and the changeover time when the worker is a robot. By using the first objective function and the second objective function, an optimized solution is calculated using only the work time that does not consider the estimated movement time and the changeover time.
[0134] <Variation 3> The left side of the above formula (32) in the second embodiment is the task allocation variable x ijand working time D ij In the above embodiment, the sum of products of the work order constraints and the product movement constraints is included, but in a modified example, the sum is not included and the term may be composed only of the movement time required term. In the above second embodiment, scheduling is performed to satisfy two constraints, the work order constraints and the product movement constraints, but scheduling may be performed to satisfy only either the work order constraints or the product movement constraints.
[0135] Although the present aspect has been described above based on the embodiment and modified examples, the above-mentioned embodiment of the aspect is intended to facilitate understanding of the present aspect and does not limit the present aspect. The present aspect may be modified or improved without departing from the spirit and scope of the claims, and equivalents are included in the present aspect. Furthermore, if a technical feature is not described as essential in this specification, it may be deleted as appropriate.
[0136] The present invention can also be realized in the following forms. [Application example 1] A task allocation device, comprising: an information acquisition unit that acquires information on a task time when a task is performed by a human or robot worker, a task cost when the worker performs the task, and a workload imposed on the worker who performed the task when the task is performed by a human worker; an objective function generating unit that generates a first objective function having a parameter related to at least one of the task time, the task cost, and the task load, and in which a weight to be multiplied for each parameter is set; a task allocation unit that allocates the tasks to be performed by each worker so as to minimize or maximize the first objective function; an adjustment unit that adjusts the start time of each of the assigned tasks at which each worker starts so that a maximum task completion time, which is the maximum task completion time among the task completion times for each worker, becomes small by minimizing or maximizing a second objective function having as a parameter a value related to each task completion time required for each worker to complete all of the assigned tasks; A work allocation device comprising: [Application example 2] The task allocation device according to Application Example 1, The information acquisition unit further acquires a task order constraint, which is a constraint on the order in which the tasks are performed; the objective function generation unit generates the first objective function including a value related to the operation sequence constraint as a parameter; The adjustment unit minimizes or maximizes the second objective function, which includes, as parameters, values related to each of the task completion time and the task sequence constraints. [Application example 3] The task allocation device according to Application Example 1 or 2, further comprising: a constraint weight generation unit that generates an order constraint weight, which is a weight to be set for the work in accordance with a work order of the work for which the work order constraint is set, The constraint weight generation unit Extracting all of the operations for which the operation sequence constraints are set into operation groups, each of which is divided into a plurality of operations for which the operation sequence constraints are mutually related; A task allocation device that sets a larger order constraint weight for a plurality of tasks included in the extracted different task groups, the order constraint weight being larger for a task that can be performed simultaneously by a plurality of workers and that is earlier in the task order within the task group. [Application example 4] The task allocation device according to any one of Application Examples 1 to 3, The objective function generation unit generates the first objective function including, as parameters, values related to each of the task time, the task cost, the workload, and the task sequence constraint. [Application example 5] The task allocation device according to any one of Application Examples 1 to 4, The task allocation device, wherein the objective function generation unit uses a maximum value of the task time, which differs depending on the worker performing the task, as a value related to the task time included as a parameter of the first objective function. [Application Example 6] The task allocation device according to any one of Application Examples 1 to 5, The information acquisition unit further acquires a work position, which is a position where the work is performed when the work is performed by a human worker, and a changeover time, which is a time required for attaching and detaching a tool required to perform the work to and from a robot when the work is performed by a robot worker; The task allocation device, wherein the objective function generation unit generates the first objective function including, as parameters, an estimated movement time, which is the time required for a worker to move between the task positions of the tasks that are performed successively, and the changeover time. [Application Example 7] The task allocation device according to any one of Application Examples 1 to 6, The adjustment unit minimizes or maximizes the second objective function including the estimated movement time and the stage change time as parameters. [Application Example 8] The task allocation device according to any one of Application Examples 1 to 7, The task allocation unit minimizes or maximizes the first objective function using a mixed integer programming method; The adjustment unit minimizes or maximizes the second objective function using mixed integer programming. [Application Example 9] The task allocation device according to any one of Application Examples 1 to 8, The information acquisition unit further acquires a work position where the work is performed when the work is performed by a human worker, and a travel time required for the human worker to move between different work positions, The objective function generation unit generates the first objective function including the required travel time as a parameter. [Example 10] The task allocation device according to any one of Application Examples 1 to 9, The objective function generation unit generates the first objective function including, as a parameter, the sum of the work time and the travel time of each of the workers when the work is performed by a plurality of workers. [Application Example 11] The task allocation device according to any one of Application Examples 1 to 10, The information acquisition unit further acquires at least one of a task order constraint, which is a constraint on the order in which the plurality of tasks are performed, and a movement direction constraint, which is a constraint on the movement direction of a work object on which the tasks are performed relative to the work position; The adjustment unit minimizes or maximizes the second objective function, which includes a value related to at least one of the acquired work sequence constraints and the movement direction constraints as a parameter. [Example 12] The task allocation device according to any one of Application Examples 1 to 11, The adjustment unit minimizes or maximizes the second objective function that includes a value related to the travel time as a parameter. [Application Example 13] A task allocation method, comprising: an information acquisition process for acquiring information on the work time when a worker, which is a human or robot, performs a task, the work cost when the worker performs the task, and the workload that occurs on the worker who performed the task when the task is performed by a human worker; an objective function generating step of generating a first objective function having a parameter related to at least one of the task time, the task cost, and the task load, the first objective function being set with a weight to be multiplied for each parameter; a task allocation step of allocating the tasks to be performed by each worker so as to minimize or maximize the first objective function; an adjustment process of adjusting each task start time at which each worker starts the assigned task so that a maximum task completion time, which is the maximum task completion time among the task completion times for each worker, becomes small by minimizing or maximizing a second objective function having a parameter related to a task completion time required for each worker to complete all of the assigned tasks; A work allocation method that performs the above. [Example 14] A computer program comprising: an information acquisition function for acquiring information on the work time when a worker, which is a human or robot, performs a task, the work cost when the worker performs the task, and the workload that occurs on the worker who performed the task when the task is performed by a human worker; an objective function generating function that generates a first objective function having a parameter related to at least one of the operation time, the operation cost, and the operation load, and in which a weight to be multiplied for each parameter is set; A task allocation function that allocates the tasks to be performed by each worker so as to minimize or maximize the first objective function; an adjustment function that adjusts the start time of each of the assigned tasks at which each worker starts so that a maximum task completion time, which is the maximum task completion time among the task completion times for each worker, becomes small by minimizing or maximizing a second objective function having as a parameter a value related to each task completion time required for each worker to complete all of the assigned tasks; A computer program that causes a computer to execute the following: [Explanation of symbols]
[0137] 10...Control section 11,11a…Information acquisition section 12…Constraint weight generation unit 13, 13a...Objective function generator 14...Work allocation department 15, 15a…Scheduling section (adjustment section) 30...Output section 100,100a...Work allocation system Cmax1, Cmax2, OC, SI...parameters of the first objective function 21, 21a…Work information database 22...Work sequence constraint database 23...Work execution possibility database 24...Product movement constraints database O Allo …First objective function
Claims
1. A task allocation device, comprising: an information acquisition unit that acquires information on a task time when a task is performed by a human or robot worker, a task cost when the worker performs the task, and a workload imposed on the worker who performed the task when the task is performed by a human worker; an objective function generating unit that generates a first objective function having a parameter related to at least one of the task time, the task cost, and the task load, the first objective function being set with a weight to be multiplied for each parameter; a task allocation unit that allocates the tasks to be performed by each worker so as to minimize or maximize the first objective function; an adjustment unit that adjusts the start time of each of the assigned tasks at which each worker starts so that a maximum task completion time, which is the maximum task completion time among the task completion times for each worker, becomes small by minimizing or maximizing a second objective function having as a parameter a value related to each task completion time required for each worker to complete all of the assigned tasks; A work allocation device comprising:
2. The task allocation device according to claim 1, The information acquisition unit further acquires a task order constraint, which is a constraint on the order in which the tasks are performed; the objective function generation unit generates the first objective function including a value related to the operation sequence constraint as a parameter; The adjustment unit minimizes or maximizes the second objective function, which includes values related to each of the task completion time and the task sequence constraints as parameters.
3. The task allocation device according to claim 2, further comprising: a constraint weight generation unit that generates an order constraint weight, which is a weight to be set for the work in accordance with a work order of the work for which the work order constraint is set, The constraint weight generation unit Extracting all of the operations for which the operation sequence constraints are set into operation groups, each of which is divided into a plurality of operations for which the operation sequence constraints are mutually related; A task allocation device that sets a larger order constraint weight for a task that can be performed simultaneously by a plurality of workers and that is earlier in the task order within the task group, for a plurality of tasks included in the extracted different task groups.
4. The task allocation device according to claim 3, The objective function generation unit generates the first objective function including, as parameters, values related to each of the task time, the task cost, the workload, and the task sequence constraint.
5. The task allocation device according to claim 4, The objective function generation unit uses a maximum value of the task time, which differs depending on the worker performing the task, as a value related to the task time included as a parameter of the first objective function.
6. The task allocation device according to any one of claims 2 to 5, The information acquisition unit further acquires a work position, which is a position where the work is performed when the work is performed by a human worker, and a changeover time, which is a time required for attaching and detaching a tool required to perform the work to and from a robot when the work is performed by a robot worker; The objective function generation unit generates the first objective function including, as parameters, an estimated movement time, which is the time required for a worker to move between the work positions of the work tasks that are performed successively, and the changeover time.
7. The task allocation device according to claim 6, The adjustment unit minimizes or maximizes the second objective function including the estimated movement time and the changeover time as parameters.
8. The task allocation device according to any one of claims 2 to 5, The task allocation unit minimizes or maximizes the first objective function using a mixed integer programming method; The adjustment unit minimizes or maximizes the second objective function using a mixed integer programming method.
9. The task allocation device according to claim 1, The information acquisition unit further acquires a work position where the work is performed when the work is performed by a human worker, and a travel time required for the human worker to move between different work positions, The objective function generation unit generates the first objective function including the required travel time as a parameter.
10. The task allocation device according to claim 9, The objective function generation unit generates the first objective function including, as a parameter, the sum of the work time and the travel time of each of the workers when the work is performed by a plurality of workers.
11. The task allocation device according to claim 9, The information acquisition unit further acquires at least one of a task order constraint, which is a constraint on the order in which the plurality of tasks are performed, and a movement direction constraint, which is a constraint on the movement direction of a work object on which the tasks are performed relative to the work position; The adjustment unit minimizes or maximizes the second objective function, which includes a value related to at least one of the acquired work sequence constraints and the movement direction constraints as a parameter.
12. The task allocation device according to any one of claims 9 to 11, The adjustment unit minimizes or maximizes the second objective function that includes a value related to the travel time as a parameter.
13. A task allocation method, comprising: an information acquisition process for acquiring information on the work time required for a worker, which is a human or robot, to perform a task, the work cost required for the worker to perform the task, and the workload imposed on the worker who performed the task when the task is performed by a human worker; an objective function generating step of generating a first objective function having parameters related to at least one of the operation time, the operation cost, and the operation load, the first objective function being set with a weight to be multiplied for each parameter; a task allocation step of allocating the tasks to be performed by each worker so as to minimize or maximize the first objective function; an adjustment process for adjusting the start time of each of the assigned tasks at which each worker starts the tasks so that a maximum task completion time, which is the maximum task completion time among the task completion times for each worker, becomes small by minimizing or maximizing a second objective function having as a parameter a value related to each task completion time required for each worker to complete all of the assigned tasks; A work allocation method that performs the above.
14. A computer program comprising: an information acquisition function for acquiring information on the work time when a worker, which is a human or robot, performs a task, the work cost when the worker performs the task, and the workload that occurs on the worker who performed the task when the task is performed by a human worker; an objective function generating function that generates a first objective function having a parameter related to at least one of the operation time, the operation cost, and the operation load, and in which a weight to be multiplied for each parameter is set; a task allocation function that allocates the tasks to be performed by each worker so as to minimize or maximize the first objective function; an adjustment function that adjusts the start time of each of the assigned tasks at which each worker starts so that a maximum task completion time, which is the maximum task completion time among the task completion times for each worker, becomes small by minimizing or maximizing a second objective function having as a parameter a value related to each task completion time required for each worker to complete all of the assigned tasks; A computer program that causes a computer to execute the following:
Citation Information
Patent Citations
Determination device, determination method and determination program for allocated personnel number
JP2018097801A
Experimental design program, experimental design apparatus, and experimental design method
JP2022170525A
Cited By
Real-time task allocation system and real-time task allocation method for autonomous transport robots in orchards
KR103024362B1