WO2023020213A1 - Task allocation method and apparatus, device, storage medium, and program product - Google Patents

Task allocation method and apparatus, device, storage medium, and program product Download PDF

Info

Publication number
WO2023020213A1
WO2023020213A1 PCT/CN2022/107839 CN2022107839W WO2023020213A1 WO 2023020213 A1 WO2023020213 A1 WO 2023020213A1 CN 2022107839 W CN2022107839 W CN 2022107839W WO 2023020213 A1 WO2023020213 A1 WO 2023020213A1
Authority
WO
WIPO (PCT)
Prior art keywords
boxes
task
handling
segmentation result
tasks
Prior art date
Application number
PCT/CN2022/107839
Other languages
French (fr)
Chinese (zh)
Inventor
喻润方
周红霞
Original Assignee
深圳市库宝软件有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市库宝软件有限公司 filed Critical 深圳市库宝软件有限公司
Publication of WO2023020213A1 publication Critical patent/WO2023020213A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"

Definitions

  • the present application relates to intelligent storage technology, and in particular to a method, device, equipment, storage medium and program product for task assignment.
  • Task assignment is to assign the handling task of the box to the robot.
  • the box handling task includes which box is transported to which destination.
  • For the robot assignment and handling task it generally refers to assigning which robot performs which box handling tasks, that is, assigning which robot carries which boxes to which destinations.
  • the usual task allocation strategy is to assign handling tasks to each robot in sequence from the perspective of the robot.
  • the boxes closest to the robot are added to the task list of the robot in turn until the capacity of the robot is met.
  • the handling tasks assigned by the robots earlier in the order are better and can usually be completed quickly, but the robots in the lower order may only have poor handling tasks left, and the handling efficiency of the robots is very low, resulting in low overall handling efficiency of the robots.
  • the present application provides a task allocation method, device, equipment, storage medium and program product.
  • the present application provides a method for assigning tasks, including:
  • the boxes with the same destination are divided into tasks according to the lanes where the boxes are located, and at least one handling task is generated, wherein each of the handling tasks includes one or more boxes, and each The number of boxes included in the handling task is less than or equal to the maximum capacity of the robot;
  • Each of the handling tasks is assigned to a robot in an idle state.
  • the task segmentation is performed on the box with the same destination to generate at least one handling task, including:
  • the boxes with the same destination are grouped into the same box group;
  • the tasks of the boxes in each box group are divided to generate at least one handling task.
  • the task segmentation is performed on the box with the same destination to generate at least one handling task, including:
  • the tasks are divided according to the lanes where the boxes are located, and the initial segmentation results are generated, wherein the initial segmentation results include one or more initial handling tasks, each of the initial handling tasks
  • the number of boxes contained in the task is less than or equal to the maximum capacity of the robot;
  • the optimization goal of the iterative optimization is: the total number of cross-lanes during the execution of the at least one handling task is the smallest, and/ Or, when the at least one carrying task is performed, the total distance span across the roadway is the smallest.
  • the greedy algorithm is used to divide the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generate an initial segmentation result, including:
  • the boxes in each lane are divided into tasks according to the maximum capacity of the robot, and one or more handling tasks are obtained.
  • the tasks of the boxes in each lane are divided according to the maximum capacity of the robot to obtain one or more handling tasks, including:
  • the boxes in the next lane are added to the current handling task in turn until The current handling task is full.
  • the fullness of any carrying task means that the number of boxes included in the carrying task is equal to the maximum capacity of the robot.
  • using a heuristic algorithm to iteratively optimize the initial segmentation result to obtain the at least one handling task includes:
  • the neighborhood feasible solution of the initial segmentation result of the current round is generated, and the optimized segmentation result of the current round is obtained;
  • the next round of iterative optimization is performed according to the initial segmentation result of the next iteration, until the iteration stop condition is met, and the iterative optimization is stopped.
  • the next round of iterative optimization is performed according to the initial segmentation result of the next iteration, until the iterative optimization is stopped when the iteration stop condition is satisfied, according to the initial segmentation
  • the objective function value of the result, and the objective function value of the optimized segmentation result of each iteration determine the segmentation result with the smallest objective function value, and the segmentation result with the smallest objective function value contains at least one handling task.
  • the objective function value includes:
  • the initial segmentation result includes one or more handling tasks, each of which includes one or more lanes, and at least one box in each of the lanes.
  • the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
  • each handling task The number of contained boxes is less than or equal to the robot's maximum capacity.
  • the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
  • the two handling tasks of the initial segmentation result include boxes in the first lane, exchange the boxes in any one of the two handling tasks in the first lane to obtain the optimized segmentation result of this round , the number of boxes contained in each handling task in the optimized segmentation result is less than or equal to the maximum capacity of the robot.
  • the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
  • the number of boxes in each lane in each handling task of the initial segmentation result determine the target lane of the target handling task, the number of boxes in the target lane is the least among all lanes of the target handling task, and all The number of boxes in the target lane of the target transport task in the transport task is the least;
  • the assigning each of the handling tasks to a robot in an idle state includes:
  • each of the handling tasks is assigned to the robot in an idle state in sequence.
  • said sorting said at least one handling task includes:
  • the ranking factors include at least one of the following:
  • the priority of the handling task the queuing congestion level of the destination of the handling task, the congestion level of the laneway included in the handling task, the number of lanes crossed during the execution of the handling task, the distance span across the lanes during the execution of the handling task, and the total number of boxes included in the handling task .
  • sequentially assigning each of the handling tasks to robots in an idle state includes:
  • the boxes included in the next handling task are used as boxes to be allocated;
  • the next handling task is assigned to the idle robot with the smallest minimum distance to the box to be assigned.
  • the present application provides a device for assigning tasks, including:
  • the task segmentation module is used to divide the tasks of the boxes with the same destination according to the destination of the boxes to be transported according to the lanes where the boxes are located, and generate at least one transport task, wherein each transport task includes one or Multiple boxes, the number of boxes contained in each said handling task is less than or equal to the maximum capacity of the robot;
  • the task assignment module is used to assign each of the handling tasks to the robots in the idle state.
  • the present application provides a task allocation device, including: a memory, a processor;
  • processor a memory
  • computer program stored on said memory and executable on said processor
  • the processor implements the method described in any one of the above when running the computer program.
  • the present application provides a computer-readable storage medium, where computer-executable instructions are stored in the computer-readable storage medium, and when the computer-executable instructions are executed by a processor, they are used to implement any of the methods described above .
  • the present application provides a computer program product, including a computer program, and when the computer program is executed by a processor, the method described in any one of the foregoing is implemented.
  • the task allocation method, device, equipment, storage medium and program product provided in this application generate at least one transport Tasks, where each handling task includes one or more boxes, and the number of boxes contained in each handling task is less than or equal to the maximum capacity of the robot, so that the boxes in the same handling task have the same destination and are concentrated in the same lane or Concentrated in a few lanes, and the distance between the lanes is relatively short, each handling task is assigned to an idle robot, and the robot completes the handling of the boxes in the handling task assigned to it, which can be carried out based on global planning Task allocation greatly improves the overall handling efficiency of boxes in the intelligent storage system.
  • FIG. 1 is an overall framework diagram of the method for task assignment provided by this embodiment
  • FIG. 2 is a flow chart of a task assignment method provided in Embodiment 1 of the present application.
  • FIG. 3 is a flow chart of the task assignment method provided in Embodiment 2 of the present application.
  • FIG. 4 is a schematic structural diagram of a device for assigning tasks provided in Embodiment 3 of the present application.
  • FIG. 5 is a schematic structural diagram of a task allocation device provided by Embodiment 5 of the present invention.
  • the task allocation method provided in this embodiment can be applied to the application scenario where a large number of box tasks to be transported are generated in the field of intelligent warehousing, such as inbound and outbound, and box tasks need to be allocated to robots, where one box task corresponds to one
  • the handling requirements of the box include at least moving the box from the location to the designated destination (such as the operation table, the location in the warehouse, etc.).
  • the intelligent warehousing system will generate orders in real time, and generate storage/outbound tasks corresponding to the orders. Each storage/outbound task will involve multiple box tasks, and the box tasks need to be assigned to robots.
  • the task allocation device can execute the task allocation method at regular intervals, and assign the currently unassigned box tasks to the robot. For example, the task assignment method may be performed periodically.
  • the task assignment device 10 obtains the information of the box to be transported, at least including the destination of the box and the roadway where it is located; according to the destination of the box to be transported, According to the lanes where the boxes are located, the boxes with the same destination are divided into tasks to generate at least one handling task; each handling task includes one or more boxes, and the number of boxes contained in each handling task is less than or equal to the robot's maximum Capacity, each handling task is assigned to a robot 20, so that the overall planning of the handling task can be carried out based on the location of the box, and the handling tasks assigned to each robot include multiple box tasks with the same destination, and the roadway
  • the location is centralized, and the division of handling tasks is more reasonable, which can improve the overall handling efficiency of the robot.
  • FIG. 2 is a flow chart of the task allocation method provided by Embodiment 1 of the present application.
  • the execution subject of the method for assigning tasks provided in this application may be a warehouse management system in an intelligent warehouse system, or other equipment for assigning tasks, which is not specifically limited in this embodiment.
  • the specific steps of the method are as follows:
  • Step S101 according to the destination of the boxes to be transported, the boxes with the same destination are divided into tasks according to the lanes where the boxes are located, and at least one transport task is generated, wherein each transport task includes one or more boxes, each The number of boxes contained in the handling task is less than or equal to the maximum capacity of the robot.
  • the boxes to be transported are sorted and distinguished, and multiple sets of boxes with the same destination are determined, and the boxes in each set have the same destination.
  • the tasks are divided according to the lanes where the boxes are located, so that the boxes in the same handling task have the same destination and are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively small. close.
  • Step S102 assigning each transport task to a robot in an idle state.
  • each transport task After at least one transport task is determined, a corresponding idle robot is determined for each transport task, each transport task is assigned to the corresponding robot, and the robot completes the transport of the boxes in the assigned transport task. Since the destination of the boxes in each handling task is the same, and they are concentrated in a few lanes, and the distance between these lanes is relatively short, the handling efficiency of the handling task can be improved.
  • tasks are divided into boxes with the same destination to generate at least one handling task, wherein each handling task includes one or more boxes, each The number of boxes contained in the handling task is less than or equal to the maximum capacity of the robot, so that the boxes in the same handling task have the same destination, and are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short,
  • Each handling task is assigned to a robot in an idle state, and the robot completes the handling of the boxes in the handling task assigned to it.
  • Task allocation can be performed based on global planning, which greatly improves the overall handling efficiency of boxes in the intelligent storage system.
  • FIG. 3 is a flow chart of the task allocation method provided by Embodiment 2 of the present application.
  • the boxes with the same destination can be grouped into the same box group; according to the aisle where the boxes are located, the boxes in each box group Perform task segmentation to generate at least one handling task.
  • the process of dividing the tasks of the boxes in each box group is the process of dividing the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generating at least one handling task.
  • This process can be implemented in the following way: use a greedy algorithm to divide the tasks of boxes with the same destination according to the lanes where the boxes are located, and generate an initial segmentation result, where the initial segmentation result includes one or more initial handling tasks , the number of boxes contained in each initial handling task is less than or equal to the maximum capacity of the robot; use a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task, and the optimization goal of the iterative optimization is: at least one handling task The total number of crossing aisles is the smallest during execution, and/or, the total distance span across aisles is the smallest when at least one handling task is executed.
  • Step S201 use the greedy algorithm to divide the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generate an initial segmentation result, wherein the initial segmentation result includes one or more initial handling tasks, and each initial handling task
  • the number of contained boxes is less than or equal to the robot's maximum capacity.
  • the several restriction conditions may include at least one of the following: capacity limitation of the robot, number of crossing lanes when carrying out the carrying task, and range of crossing lanes when carrying out the carrying task.
  • the range across the roadway when the carrying task is executed may be the distance span across the roadway when the carrying task is executed.
  • a greedy algorithm may be used to sequentially segment each transport task according to the sequence of lane IDs.
  • the boxes in each lane are sequentially divided into tasks according to the maximum capacity of the robot, and one or more handling tasks are obtained.
  • the tasks of the boxes in each lane are divided according to the maximum capacity of the robot to obtain one or more handling tasks, which can be implemented in the following way:
  • the fullness of any handling task means that the number of boxes included in the handling task is equal to the maximum capacity of the robot.
  • the boxes to be transported with a certain destination are distributed in multiple lanes, and the arrangement order of the multiple lanes and the number of the first boxes are as follows: There are 12 first boxes in the first lane. Chests, 9 first chests in the second lane, 4 first chests in the second lane, ... . Assuming that the maximum capacity of the robot is 5, according to the arrangement order of the lanes, first divide the tasks of the first box in the first lane, and get 3 handling tasks, the number of the first boxes included respectively: 5, 5 ,2. By dividing the task of the first box in the second lane, two handling tasks can be obtained, and the number of the first box included is: 5 and 4 respectively. Then divide the task of the first box in the third lane to get 1 handling task, including 4 first boxes. By analogy, the first box in each lane is divided into tasks to obtain one or more handling tasks.
  • the boxes in the next lane can be sequentially added to the current handling task until the current handling task is full.
  • the boxes to be transported with a certain destination are distributed in multiple lanes, and the arrangement order of the multiple lanes and the number of the first boxes are as follows: There are 12 first boxes in the first lane. Chests, 9 first chests in the second lane, 4 first chests in the third lane, ... . Assuming that the maximum capacity of the robot is 5, according to the arrangement order of the lanes, the first box in the first lane is first divided into tasks, and two full-staffed handling tasks can be obtained. After adding the remaining 2 boxes to the third handling task, the third handling task is not full, you can continue to add the 3 boxes in the second lane to the third handling task, so that the third handling task full.
  • the fourth handling task is full. Add the last remaining box in the second lane to the fifth handling task. If the third handling task is not full, you can continue to add 4 boxes in the third lane to the fifth handling task, making the fifth handling task Five moving tasks are full.
  • the task segmentation is performed until the first boxes in all lanes are added to the handling task, and the task division of the box at the destination is completed according to the laneway where the box is located, and the handling task is obtained.
  • the last box in the current lane is added to the current handling task, if the current handling task is not full, then judge the number of tasks that can be added to the current handling task, if the number of tasks that can be added is less than the preset number threshold, If not, then the boxes in the next lane can be sequentially added to the current handling task until the current handling task is full; if so, the assignment of the current handling task can be completed.
  • the optimization objective of the iterative optimization is: the total number of crossing lanes is minimized when at least one handling task is executed, and/or the total distance span across lanes is minimized when at least one handling task is executed.
  • Step S202 according to the neighborhood operator, generate the neighborhood feasible solution of the initial segmentation result of the current round, and obtain the optimal segmentation result of the current round.
  • the initial segmentation result includes one or more transport tasks, each transport task includes one or more lanes, and at least one box in each lane.
  • the initial segmentation result of the first round of iteration is the initial segmentation result obtained in step S201, and the initial segmentation result of the second round and subsequent iterations is determined in the previous iteration.
  • the neighborhood operator used is used to generate a neighborhood feasible solution from the initial segmentation result, and the neighborhood feasible solution of the initial segmentation result is used as the optimization segmentation result of this round.
  • the quantity is less than or equal to the robot's maximum capacity.
  • the box in the aisle with ID 3 of the first handling task in the initial segmentation result can be moved to the third handling task or any other handling task, and the box is included in the moving task
  • the number of boxes is less than or equal to the robot's maximum capacity.
  • Another optional implementation of this step is:
  • the two handling tasks of the initial segmentation result both contain boxes in the first lane, exchange the boxes in any one of the first lanes in the two handling tasks to obtain the optimized segmentation result of this round.
  • the number of boxes contained in each handling task is less than or equal to the maximum capacity of the robot.
  • the third handling task contains boxes in the lane with ID 1
  • the fifth handling task also includes boxes in the lane with ID 1
  • the boxes in the aisle with ID 1 in the five handling tasks are exchanged, and the number of boxes contained in the two handling tasks after the exchange is guaranteed to be less than or equal to the maximum capacity of the robot.
  • Another optional implementation of this step is:
  • the target lane of the target handling task determines the target lane of the target handling task.
  • the number of boxes in the target lane is the least among all the lanes of the target handling task, and the target handling task among all handling tasks
  • the number of boxes in the target lane is the least; move the boxes in the target lane of the target handling task to another handling task that includes the target lane, and obtain the optimized segmentation result of this round, and optimize each handling task in the segmentation result
  • the number of contained boxes is less than or equal to the robot's maximum capacity.
  • the third handling task contains 1 box in the lane with ID 1
  • the fifth handling task also includes 3 boxes in the lane with ID 1
  • the third handling task includes The number of boxes in the lane with ID 1 is the least.
  • Step S203 calculating the objective function value of the optimized segmentation result.
  • the quality of the optimized segmentation result of the current round is evaluated, and the objective function value of the optimal segmentation result is calculated.
  • the objective function values include:
  • the total number of lanes crossed during the execution of all the handling tasks included in the segmentation result, and/or the total distance span across the lanes of all the handling tasks included in the segmentation result are the total number of lanes crossed during the execution of all the handling tasks included in the segmentation result, and/or the total distance span across the lanes of all the handling tasks included in the segmentation result.
  • the number of lanes crossed during the execution of any handling task refers to the number of lanes that the robot needs to cross when picking up multiple boxes in the handling task.
  • a transport task includes a box in an aisle with ID 1 and a box in aisle with ID 3, and there is an aisle with ID 2 between the aisle with ID 1 and the aisle with ID 3.
  • the robot performs the handling task, it needs to cross the lane with ID 1 to the lane with ID 3, and cross the three lanes with ID 1, 2, and 3, that is, the number of crossed lanes is 3.
  • the distance span across the lanes during the execution of any handling task refers to the longest distance span of the lanes that the robot needs to cross when picking up multiple boxes in the handling task.
  • the distance span across the lanes during the execution of any transport task can be the actual moving distance between the lanes; or, if the distance between adjacent lanes is the same, the distance span across the lanes can be the distance between the lanes The total length; or, the distance span across the lanes can be determined according to the lanes included in the handling task and the positions of the contained boxes in the lanes, and the walking distance of the robot across the lanes when picking up multiple boxes in the handling task.
  • a certain handling task includes boxes in the lane with ID 1 and boxes in the lane with ID 3, and the lane with ID 1 and ID are There is an alleyway with ID 2 in the middle of the alleyway of 3.
  • the robot performs the handling task, it needs to cross from the lane with ID 1 to the lane with ID 3, and across the three lanes with ID 1, 2, and 3.
  • the distance across the lanes is: the distance between lanes ⁇ 2.
  • Step S204 according to the objective function value of the optimized segmentation result and the objective function value of the initial segmentation result of the current round, determine the initial segmentation result of the next iteration.
  • the initial segmentation result of the next iteration is determined.
  • any one of the existing technologies can be used.
  • the method of determining the initial feasible solution of the next iteration according to the neighborhood feasible solution and the objective function value of the initial feasible solution is implemented, and this embodiment will not repeat it here.
  • the optimized segmentation result of the current round is smaller than the objective function value of the initial segmentation result of the current round, it means that the optimized segmentation result of the current round is relatively
  • the initial segmentation result of this round is better, and the optimized segmentation result of this round is used as the initial segmentation result of the next iteration.
  • the objective function value of the optimized segmentation result is not less than the objective function value of the initial segmentation result of the current round, there is still a certain probability that it is better than the initial segmentation result in the subsequent iterations of the optimized segmentation result.
  • the optimized segmentation result of this round is used as the initial segmentation result of the next iteration, and the iterative optimization continues.
  • the following uses the simulated annealing algorithm as an example of the heuristic algorithm. If the objective function value of the optimized segmentation result is smaller than the objective function value of the initial segmentation result of the current round, the optimized segmentation of the current round is performed with a certain probability.
  • the implementation of the segmentation result as the initial segmentation result of the next round of iteration is exemplified:
  • delta_score is the difference between the objective function value of the optimized segmentation result of the current round and the objective function value of the initial segmentation result of the current round
  • temperature is the temperature parameter
  • random_value is a generated random number
  • the random number takes a value between 0-1.
  • the objective function value of the optimized segmentation result is smaller than the objective function value of the initial segmentation result of the current round, and the implementation method of using the optimized segmentation result of the current round as the initial segmentation result of the next iteration with a certain probability can be as follows: Generate a random number random_value, calculate the difference delta_score between the objective function value of the optimized segmentation result of this round and the objective function value of the initial segmentation result of this round, and judge whether the random_value and delta_score satisfy the above inequality, and if so, accept this round The optimal segmentation result of the round is used as the initial segmentation result of the next iteration. If it is not satisfied, the optimized segmentation result of the current round will not be accepted, and the optimized segmentation result of the current round will not be used as the initial segmentation result of the next iteration.
  • the objective function value of the optimized segmentation result is smaller than the objective function value of the initial segmentation result of the current round, that is, delta_score is a negative number, and the temperature parameter temperature is a large positive integer at the beginning, and each iteration follows a certain rate.
  • Exponential decay then the value range of delta_score/temperature is from 0 to negative infinity.
  • the value range of exp delta_score/temperature is gradually reduced from 1 to 0 .
  • the part on the right side of the above inequality is a random number between 0 and 1, so when the temperature parameter temperature is high at the primary stage of iteration, the value of the left part of the above inequality is close to 1, and the possibility of the inequality is very high. With the attenuation of the temperature parameter temperature, the value of the left part of the above inequality is getting closer to 0, and the possibility of the inequality is gradually reduced, and the further to the back, the less possibility of the inequality. Therefore, the probability of accepting the optimized segmentation result of this round as the initial segmentation result of the next iteration is actually high at the beginning, and gradually decreases as the number of iterations increases. In this way, a greater search possibility can be reserved in the early stage of iterative optimization, and worse optimization segmentation results are allowed to be accepted; at the end of the iteration, it is hoped that the algorithm will converge and gradually stabilize.
  • Step S205 judging whether the iteration stop condition is satisfied.
  • step S206 is executed to determine the optimal segmentation result, that is, the segmentation result with the smallest objective function value.
  • the iteration stop condition may be: the number of iterations is greater than the number threshold, the iteration duration reaches a preset duration, etc., and the iteration stop condition may be set and adjusted according to the actual application scenario, which is not specifically limited in this embodiment.
  • Step S206 according to the objective function value of the initial segmentation result and the objective function value of the optimized segmentation result of each iteration, determine the segmentation result with the smallest objective function value, and the segmentation result with the smallest objective function value contains at least one transport Task.
  • the optimal segmentation result is selected according to the objective function value of the initial segmentation result and the objective function value of the optimized segmentation result of each iteration.
  • the segmentation result with the smallest objective function value can be determined, and the segmentation result with the smallest objective function value can be used as the optimal value.
  • At least one handling task included in the segmentation result with the smallest objective function value is taken as the final task segmentation result.
  • each handling task is allocated to an idle robot through steps S207-S208.
  • Step S207 sorting at least one transport task.
  • the at least one handling task is sorted according to the sorting factor.
  • the ranking factors include at least one of the following:
  • the priority of the handling task the queuing congestion level of the destination of the handling task, the congestion level of the laneway included in the handling task, the number of lanes crossed during the execution of the handling task, the distance span across the lanes during the execution of the handling task, and the total number of boxes included in the handling task .
  • the priority of the transport task may be determined according to the priority of boxes included in the transport task.
  • weights can be set for multiple sorting factors according to the importance (or priority) of each sorting factor, and the information of each sorting factor is quantified and standardized.
  • the sorting value corresponding to each handling task is determined, and the handling tasks are sorted according to the sorting value.
  • Step S208 according to the sorting result, sequentially assign each transport task to the robot in the idle state.
  • each handling task can be assigned to the idle robots in turn according to the sorting results until the handling tasks are assigned or all idle robots are assigned.
  • This step can specifically be implemented in the following manner:
  • the boxes included in the next handling task are used as the boxes to be allocated; according to the location of the boxes to be allocated and the positions of the robots in the idle state, the minimum distance between each idle robot and the boxes to be allocated is calculated. Distance; assign the next handling task to the idle robot with the smallest minimum distance to the box to be assigned.
  • all boxes contained in the unassigned handling tasks can be used as boxes to be assigned for the next task assignment, and the task assignment process can be performed again .
  • the priority of the boxes included in the unassigned handling tasks will be increased, and they will be used as the boxes to be allocated for the next task allocation, so as to give priority to the next task allocation.
  • Assign the move tasks where these boxes are located a certain condition that the box meets may be that the box has timeliness, etc., and can be set and adjusted according to the actual application scenario, which is not specifically limited here.
  • the boxes with the same destination are grouped into the same box group; the boxes in each box group are boxes with the same destination, and the greedy algorithm is used to group the boxes with the same destination.
  • the boxes are divided into tasks according to the lanes where the boxes are located, and the initial segmentation results are generated.
  • the initial segmentation results include one or more initial handling tasks, and the number of boxes contained in each initial handling task is less than or equal to the maximum capacity of the robot. ; Use a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task.
  • the optimization goal of the iterative optimization is: the total number of cross-lanes is minimized when at least one handling task is executed, and/or, at least one handling task is executed
  • the total distance span across the lanes is the smallest, so that the boxes in the same handling task have the same destination, and they are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short.
  • Each handling task is assigned For a robot in an idle state, the robot completes the handling of the boxes in the handling task assigned to it, and can assign tasks based on the global plan, which greatly improves the overall handling efficiency of the boxes in the intelligent storage system, and improves the storage/exit library efficiency.
  • FIG. 4 is a schematic structural diagram of an apparatus for assigning tasks provided by Embodiment 3 of the present application.
  • the task allocation apparatus provided in the embodiment of the present application may execute the processing procedure provided in the task allocation method embodiment.
  • the task allocation apparatus 40 includes: a task segmentation module 401 and a task allocation module 402 .
  • the task segmentation module 401 is configured to perform task segmentation on boxes with the same destination according to the destination of the boxes to be transported according to the aisle where the boxes are located, and generate at least one transport task, wherein each transport task includes One or more boxes, the number of boxes contained in each handling task is less than or equal to the maximum capacity of the robot.
  • the task assignment module 402 is configured to assign each handling task to an idle robot.
  • the device provided in the embodiment of the present application may be specifically configured to execute the method embodiment provided in the first embodiment above, and the specific functions will not be repeated here.
  • tasks are divided into boxes with the same destination to generate at least one handling task, wherein each handling task includes one or more boxes, each The number of boxes contained in the handling task is less than or equal to the maximum capacity of the robot, so that the boxes in the same handling task have the same destination, and are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short,
  • Each handling task is assigned to a robot in an idle state, and the robot completes the handling of the boxes in the handling task assigned to it.
  • Task allocation can be performed based on global planning, which greatly improves the overall handling efficiency of boxes in the intelligent storage system.
  • the task segmentation module is also used for:
  • the boxes with the same destination are grouped into the same box group; according to the aisle where the boxes are located, the tasks of the boxes in each box group are divided to generate at least one handling task.
  • the task segmentation module includes:
  • the initial segmentation result generation sub-module is used to use the greedy algorithm to divide the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generate the initial segmentation results, wherein the initial segmentation results include one or more initial handling task, the number of boxes contained in each initial handling task is less than or equal to the maximum capacity of the robot.
  • the segmentation result optimization sub-module is used to use a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task.
  • the optimization goal of the iterative optimization is: the total number of cross-lanes is minimized when at least one handling task is executed, and /or, at least one transport task is executed with a minimum total distance span across the aisles.
  • the initial segmentation result generation submodule is also used to:
  • the boxes in each lane are divided into tasks according to the maximum capacity of the robot, and one or more handling tasks are obtained.
  • the initial segmentation result generation submodule is also used to:
  • the initial segmentation result generation submodule is also used to:
  • the fullness of any handling task means that the number of boxes included in the handling task is equal to the maximum capacity of the robot.
  • segmentation result optimization submodule is also used to:
  • the neighborhood feasible solution of the initial segmentation result of the current round is generated, and the optimized segmentation result of the current round is obtained; the objective function value of the optimal segmentation result is calculated; according to the objective function value of the optimal segmentation result, and the objective function value of the initial segmentation result of the current round to determine the initial segmentation result of the next iteration; if the iteration stop condition is not satisfied, the next round will be performed according to the initial segmentation result of the next iteration Iterative optimization until the iterative optimization is stopped when the iteration stop condition is satisfied.
  • segmentation result optimization submodule is also used to:
  • the next round of iterative optimization will be carried out according to the initial segmentation result of the next iteration, until the iterative optimization is stopped when the iteration stop condition is satisfied, according to the objective function value of the initial segmentation result, and each Optimizing the objective function value of the segmentation result for one round of iterations, determining the segmentation result with the smallest objective function value, and the segmentation result with the smallest objective function value includes at least one handling task.
  • objective function values include:
  • the total number of lanes crossed during the execution of all the handling tasks included in the segmentation result, and/or the total distance span across the lanes of all the handling tasks included in the segmentation result are the total number of lanes crossed during the execution of all the handling tasks included in the segmentation result, and/or the total distance span across the lanes of all the handling tasks included in the segmentation result.
  • the initial segmentation result includes one or more transport tasks, each transport task includes one or more lanes, and at least one box in each lane.
  • segmentation result optimization submodule is also used to:
  • the quantity is less than or equal to the robot's maximum capacity.
  • segmentation result optimization submodule is also used to:
  • the two handling tasks of the initial segmentation result both contain boxes in the first lane, exchange the boxes in any one of the first lanes in the two handling tasks to obtain the optimized segmentation result of this round.
  • the number of boxes contained in each handling task is less than or equal to the maximum capacity of the robot.
  • segmentation result optimization submodule is also used to:
  • the target lane of the target handling task determines the target lane of the target handling task.
  • the number of boxes in the target lane is the least among all the lanes of the target handling task, and the target handling task among all handling tasks
  • the number of boxes in the target lane is the least; move the boxes in the target lane of the target handling task to another handling task that includes the target lane, and obtain the optimized segmentation result of this round, and optimize each handling task in the segmentation result
  • the number of contained boxes is less than or equal to the robot's maximum capacity.
  • the task allocation module includes:
  • the task sorting submodule is used to sort at least one handling task
  • the task assignment sub-module is used to assign each handling task to an idle robot in turn according to the sorting result.
  • the task ordering submodule is also used to:
  • Sorting at least one handling task according to the sorting factor.
  • the ranking factors include at least one of the following:
  • the priority of the handling task the queuing congestion level of the destination of the handling task, the congestion level of the laneway included in the handling task, the number of lanes crossed during the execution of the handling task, the distance span across the lanes during the execution of the handling task, and the total number of boxes included in the handling task .
  • the task assignment submodule is also used to:
  • the boxes included in the next handling task are used as the boxes to be allocated; according to the location of the boxes to be allocated and the positions of the robots in the idle state, the minimum distance between each idle robot and the boxes to be allocated is calculated. Distance; assign the next handling task to the idle robot with the smallest minimum distance to the box to be assigned.
  • the device provided in the embodiment of the present application may be specifically used to execute the method embodiment provided in the second embodiment above, and specific functions will not be repeated here.
  • the boxes with the same destination are grouped into the same box group; the boxes in each box group are boxes with the same destination, and the greedy algorithm is used to classify boxes with the same destination.
  • the boxes are divided into tasks according to the lanes where the boxes are located, and the initial segmentation results are generated.
  • the initial segmentation results include one or more initial handling tasks, and the number of boxes contained in each initial handling task is less than or equal to the maximum capacity of the robot. ; Use a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task.
  • the optimization goal of the iterative optimization is: the total number of cross-lanes is minimized when at least one handling task is executed, and/or, at least one handling task is executed
  • the total distance span across the lanes is the smallest, so that the boxes in the same handling task have the same destination, and they are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short.
  • Each handling task is assigned For a robot in an idle state, the robot completes the handling of the boxes in the handling task assigned to it, and can assign tasks based on the global plan, which greatly improves the overall handling efficiency of the boxes in the intelligent storage system, and improves the storage/exit library efficiency.
  • FIG. 5 is a schematic structural diagram of a task allocation device provided by Embodiment 5 of the present invention.
  • the task allocation device 100 includes: a processor 1001 , a memory 1002 , and a computer program stored in the memory 1002 and executable on the processor 1001 .
  • the processor 1001 implements the task allocation method provided by any one of the above method embodiments when running the computer program.
  • tasks are divided into boxes with the same destination to generate at least one handling task, wherein each handling task includes one or more boxes, each The number of boxes contained in the handling task is less than or equal to the maximum capacity of the robot, so that the boxes in the same handling task have the same destination, and are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short,
  • Each handling task is assigned to a robot in an idle state, and the robot completes the handling of the boxes in the handling task assigned to it.
  • Task allocation can be performed based on global planning, which greatly improves the overall handling efficiency of boxes in the intelligent storage system.
  • An embodiment of the present invention also provides a computer-readable storage medium, in which a computer program is stored, and the computer program is used by a processor to execute the task allocation method provided by any one of the above method embodiments.
  • the embodiment of the present invention also provides a computer program product, the program product includes: a computer program, the computer program is stored in a readable storage medium, at least one processor of the warehouse management system can read the computer program from the readable storage medium, at least A processor executes the computer program so that the warehouse management system executes the task assignment method provided in any one of the above method embodiments.
  • the disclosed devices and methods can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components can be combined or integrated. to another system, or some features may be ignored, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
  • a unit described as a separate component may or may not be physically separated, and a component displayed as a unit may or may not be a physical unit, that is, it may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware, or in the form of hardware plus software functional units.
  • the above-mentioned integrated units implemented in the form of software functional units may be stored in a computer-readable storage medium.
  • the above-mentioned software functional units are stored in a storage medium, and include several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor (processor) execute some steps of the method in each embodiment of the present invention .
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disc and other media that can store program codes. .

Abstract

Provided in the present application are a task allocation method and apparatus, a device, a storage medium, and a program product. In the method of the present application, according to the destinations of boxes to be carried, task partitioning is performed on boxes having the same destination in accordance with aisles where the boxes are located, so as to generate at least one carrying task, wherein each carrying task comprises one or more boxes, and the number of boxes contained in each carrying task is less than or equal to the maximum capacity of a robot, such that the boxes in the same carrying task have the same destination and are concentrated in the same aisle or in a few aisles, and the distances between the aisles are relatively small; and each carrying task is allocated to a robot in an idle state, and the robot completes the carrying of the boxes in the carrying task allocated thereto. Therefore, task allocation can be performed on the basis of global planning, thereby greatly improving the overall carrying efficiency of boxes in an intelligent warehousing system.

Description

任务分配的方法、装置、设备、存储介质及程序产品Method, device, device, storage medium and program product for task allocation
本申请要求于2021年08月16日提交中国专利局、申请号为202110935525.4、申请名称为“任务分配的方法、装置、设备、存储介质及程序产品”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number 202110935525.4 and the application name "task allocation method, device, equipment, storage medium and program product" submitted to the China Patent Office on August 16, 2021, the entire content of which Incorporated in this application by reference.
技术领域technical field
本申请涉及智能仓储技术,尤其涉及一种任务分配的方法、装置、设备、存储介质及程序产品。The present application relates to intelligent storage technology, and in particular to a method, device, equipment, storage medium and program product for task assignment.
背景技术Background technique
在智能仓储领域的入库、出库等应用场景下,需要机器人执行箱子的搬运任务。任务分配是将箱子的搬运任务分配给机器人。箱子搬运任务包括将哪个箱子搬运到哪个目的地,对于机器人分配搬运任务一般是指分配哪个机器人执行哪些箱子搬运任务,也即分配哪个机器人搬哪些箱子去往哪些目的地。In the application scenarios of warehousing and warehousing in the field of intelligent warehousing, robots are required to carry out the task of handling boxes. Task assignment is to assign the handling task of the box to the robot. The box handling task includes which box is transported to which destination. For the robot assignment and handling task, it generally refers to assigning which robot performs which box handling tasks, that is, assigning which robot carries which boxes to which destinations.
通常的任务分配策略是从机器人的角度,按照机器人顺序给每个机器人依次分配搬运任务。为每一机器人分配搬运任务时,按照箱子的位置与机器人的位置之间的距离,依次将与机器人距离最近的箱子加入机器人的任务列表,直至满足机器人容量。这样,顺序靠前的机器人分配的搬运任务较好,通常可以快速完成,但顺序靠后的机器人可能只剩下很差的搬运任务,机器人的搬运效率很低,导致机器人的总体搬运效率低。The usual task allocation strategy is to assign handling tasks to each robot in sequence from the perspective of the robot. When assigning handling tasks to each robot, according to the distance between the position of the box and the position of the robot, the boxes closest to the robot are added to the task list of the robot in turn until the capacity of the robot is met. In this way, the handling tasks assigned by the robots earlier in the order are better and can usually be completed quickly, but the robots in the lower order may only have poor handling tasks left, and the handling efficiency of the robots is very low, resulting in low overall handling efficiency of the robots.
发明内容Contents of the invention
本申请提供一种任务分配的方法、装置、设备、存储介质及程序产品。The present application provides a task allocation method, device, equipment, storage medium and program product.
一方面,本申请提供一种任务分配的方法,包括:In one aspect, the present application provides a method for assigning tasks, including:
根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,其中,每一所述搬运任务包括一个或多个箱子,每一所述搬运任务所包含箱子的数量小于或等于机器人的最大容量;According to the destination of the boxes to be transported, the boxes with the same destination are divided into tasks according to the lanes where the boxes are located, and at least one handling task is generated, wherein each of the handling tasks includes one or more boxes, and each The number of boxes included in the handling task is less than or equal to the maximum capacity of the robot;
将每一所述搬运任务分配给处于空闲状态的机器人。Each of the handling tasks is assigned to a robot in an idle state.
可选地,所述根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,包括:Optionally, according to the destination of the box to be transported, according to the aisle where the box is located, the task segmentation is performed on the box with the same destination to generate at least one handling task, including:
根据待搬运的箱子的目的地,将具有相同目的地的箱子归到同一箱子组;According to the destination of the boxes to be moved, the boxes with the same destination are grouped into the same box group;
按照箱子所在巷道,对每一所述箱子组内的箱子进行任务切分,生成至少一个搬运任务。According to the aisle where the boxes are located, the tasks of the boxes in each box group are divided to generate at least one handling task.
可选地,所述根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,包括:Optionally, according to the destination of the box to be transported, according to the aisle where the box is located, the task segmentation is performed on the box with the same destination to generate at least one handling task, including:
使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,其中,所述初始切分结果包括一个或者多个初始搬运任务,每一所述初始搬运任务所包含箱子的数量小于或等于机器人的最大容量;Using the greedy algorithm, for the boxes with the same destination, the tasks are divided according to the lanes where the boxes are located, and the initial segmentation results are generated, wherein the initial segmentation results include one or more initial handling tasks, each of the initial handling tasks The number of boxes contained in the task is less than or equal to the maximum capacity of the robot;
使用启发式算法,对所述初始切分结果进行迭代优化,得到所述至少一个搬运任务,所述迭代优化的优化目标为:所述至少一个搬运任务执行时跨巷道的总数量最小,和/或,所述至少一个搬运任务执行时跨巷道的总距离跨度最小。Using a heuristic algorithm, performing iterative optimization on the initial segmentation result to obtain the at least one handling task, the optimization goal of the iterative optimization is: the total number of cross-lanes during the execution of the at least one handling task is the smallest, and/ Or, when the at least one carrying task is performed, the total distance span across the roadway is the smallest.
可选地,所述使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,包括:Optionally, the greedy algorithm is used to divide the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generate an initial segmentation result, including:
使用贪心算法,对具有相同目的地的箱子,按照巷道排列顺序,依次对每一巷道内的箱子按照机器人的最大容量进行任务切分,得到一个或多个搬运任务。Using the greedy algorithm, for the boxes with the same destination, according to the order of the lanes, the boxes in each lane are divided into tasks according to the maximum capacity of the robot, and one or more handling tasks are obtained.
可选地,所述对每一巷道内的箱子按照机器人的最大容量进行任务切分,得到一个或多个搬运任务,包括:Optionally, the tasks of the boxes in each lane are divided according to the maximum capacity of the robot to obtain one or more handling tasks, including:
将当前巷道内的箱子依次添加到搬运任务中,直至所述搬运任务满员时,所述搬运任务切分完成;Add the boxes in the current laneway to the handling task in turn, until the handling task is full, the handling task is divided and completed;
将所述当前巷道内还未添加到搬运任务的箱子依次添加到下一个搬运任务中,以此类推,直至所述当前巷道内的箱子均添加到搬运任务中时,所述当前巷道内的箱子的任务切分完成,得到一个或多个搬运任务。Add the boxes in the current lane that have not been added to the handling task in turn to the next handling task, and so on, until all the boxes in the current lane are added to the handling task, the boxes in the current lane The tasks are divided and completed, and one or more handling tasks are obtained.
可选地,当所述当前巷道内的最后一个箱子添加到当前搬运任务中时,若所述当前搬运任务未满员,则将下一巷道内的箱子依次添加到所述当前搬运任务中,直至所述当前搬运任务满员。Optionally, when the last box in the current lane is added to the current handling task, if the current handling task is not full, the boxes in the next lane are added to the current handling task in turn until The current handling task is full.
可选地,任一搬运任务满员是指:所述搬运任务所包含的箱子的数量等于机器人的最大容量。Optionally, the fullness of any carrying task means that the number of boxes included in the carrying task is equal to the maximum capacity of the robot.
可选地,所述使用启发式算法,对所述初始切分结果进行迭代优化,得到所述至少一个搬运任务,包括:Optionally, using a heuristic algorithm to iteratively optimize the initial segmentation result to obtain the at least one handling task includes:
根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果;According to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated, and the optimized segmentation result of the current round is obtained;
计算所述优化切分结果的目标函数值;Calculating the objective function value of the optimized segmentation result;
根据所述优化切分结果的目标函数值,以及本轮的起始切分结果的目标函数值,确定下一轮迭代的起始切分结果;According to the objective function value of the optimized segmentation result and the objective function value of the initial segmentation result of the current round, determine the initial segmentation result of the next iteration;
若不满足迭代停止条件,则根据所述下一轮迭代的起始切分结果,进行下一轮迭代优化,直至满足迭代停止条件时停止迭代优化。If the iteration stop condition is not satisfied, the next round of iterative optimization is performed according to the initial segmentation result of the next iteration, until the iteration stop condition is met, and the iterative optimization is stopped.
可选地,若不满足迭代停止条件,则根据所述下一轮迭代的起始切分结果,进行下一轮迭代优化,直至满足迭代停止条件时停止迭代优化之后,根据所述初始切分结果的目标函数值,和每一轮迭代的优化切分结果的目标函数值,确定目标函数值最小的切分结果,所述目标函数值最小的切分结果包含至少一个搬运任务。Optionally, if the iteration stop condition is not satisfied, the next round of iterative optimization is performed according to the initial segmentation result of the next iteration, until the iterative optimization is stopped when the iteration stop condition is satisfied, according to the initial segmentation The objective function value of the result, and the objective function value of the optimized segmentation result of each iteration, determine the segmentation result with the smallest objective function value, and the segmentation result with the smallest objective function value contains at least one handling task.
可选地,所述目标函数值包括:Optionally, the objective function value includes:
切分结果所包含的所有搬运任务执行时跨巷道的总数量,The total number of lanes crossed when all handling tasks included in the segmentation result are executed,
和/或,and / or,
切分结果所包含的所有搬运任务执行时跨巷道的总距离跨度。The total distance span across the lanes when all the handling tasks included in the segmentation result are executed.
可选地,所述起始切分结果包括一个或者多个搬运任务,每一所述搬运任务包括一个或者多个巷道,以及每一所述巷道内的至少一个箱子。Optionally, the initial segmentation result includes one or more handling tasks, each of which includes one or more lanes, and at least one box in each of the lanes.
可选地,所述根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果,包括:Optionally, according to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
将所述起始切分结果中任一搬运任务的任一巷道内的箱子,随机移动到另一搬运任务中,得到本轮的优化切分结果,所述优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。Randomly move the boxes in any aisle of any handling task in the initial segmentation result to another handling task to obtain the optimized segmentation result of the current round. In the optimized segmentation result, each handling task The number of contained boxes is less than or equal to the robot's maximum capacity.
可选地,所述根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果,包括:Optionally, according to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
若所述起始切分结果的两个搬运任务均包含第一巷道内的箱子,则交换所述两个搬运任务中任一所述第一巷道内的箱子,得到本轮的优化切分结果,所述优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。If the two handling tasks of the initial segmentation result include boxes in the first lane, exchange the boxes in any one of the two handling tasks in the first lane to obtain the optimized segmentation result of this round , the number of boxes contained in each handling task in the optimized segmentation result is less than or equal to the maximum capacity of the robot.
可选地,所述根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果,包括:Optionally, according to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
根据所述起始切分结果的每一搬运任务中每一巷道内的箱子数量,确定目标搬运任务的目标巷道,所述目标搬运任务的所有巷道中所述目标巷道的箱子数量最少,且所有搬运任务中所述目标搬运任务的所述目标巷道内的箱子数量最少;According to the number of boxes in each lane in each handling task of the initial segmentation result, determine the target lane of the target handling task, the number of boxes in the target lane is the least among all lanes of the target handling task, and all The number of boxes in the target lane of the target transport task in the transport task is the least;
将所述目标搬运任务的所述目标巷道内的箱子,移动到另一包含所述目标巷道的搬运任务中,得到本轮的优化切分结果,所述优化切分结果中每一搬运任务所包含箱子的数量 小于或等于机器人的最大容量。Move the boxes in the target lane of the target handling task to another handling task that includes the target lane, and obtain the optimized segmentation result of the current round, in which each handling task in the optimized segmentation result The number of contained boxes is less than or equal to the robot's maximum capacity.
可选地,所述将每一所述搬运任务分配给处于空闲状态的机器人,包括:Optionally, the assigning each of the handling tasks to a robot in an idle state includes:
对所述至少一个搬运任务进行排序;sequencing the at least one handling task;
根据排序结果,依次将每一所述搬运任务分配给处于空闲状态的机器人。According to the sorting result, each of the handling tasks is assigned to the robot in an idle state in sequence.
可选地,所述对所述至少一个搬运任务进行排序,包括:Optionally, said sorting said at least one handling task includes:
按照排序因素,对所述至少一个搬运任务进行排序;sorting the at least one handling task according to a sorting factor;
所述排序因素包括以下至少一种:The ranking factors include at least one of the following:
搬运任务的优先级、搬运任务的目的地的排队拥堵程度、搬运任务包含巷道的拥堵程度、搬运任务执行时跨巷道的数量、搬运任务执行时跨巷道的距离跨度、搬运任务包含的箱子的总数。The priority of the handling task, the queuing congestion level of the destination of the handling task, the congestion level of the laneway included in the handling task, the number of lanes crossed during the execution of the handling task, the distance span across the lanes during the execution of the handling task, and the total number of boxes included in the handling task .
可选地,所述根据排序结果,依次将每一所述搬运任务分配给处于空闲状态的机器人,包括:Optionally, according to the sorting results, sequentially assigning each of the handling tasks to robots in an idle state includes:
根据排序结果,将下一个搬运任务所包含的箱子作为待分配箱子;According to the sorting results, the boxes included in the next handling task are used as boxes to be allocated;
根据所述待分配箱子所在的位置,以及处于空闲状态的机器人所在的位置,计算每一处于空闲状态的机器人与所述待分配箱子的最小距离;According to the location of the box to be allocated and the location of the robot in the idle state, calculate the minimum distance between each robot in the idle state and the box to be allocated;
将所述下一个搬运任务分配给与待分配箱子的最小距离最小的处于空闲状态的机器人。The next handling task is assigned to the idle robot with the smallest minimum distance to the box to be assigned.
另一方面,本申请提供一种任务分配的装置,包括:On the other hand, the present application provides a device for assigning tasks, including:
任务切分模块,用于根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,其中,每一所述搬运任务包括一个或多个箱子,每一所述搬运任务所包含箱子的数量小于或等于机器人的最大容量;The task segmentation module is used to divide the tasks of the boxes with the same destination according to the destination of the boxes to be transported according to the lanes where the boxes are located, and generate at least one transport task, wherein each transport task includes one or Multiple boxes, the number of boxes contained in each said handling task is less than or equal to the maximum capacity of the robot;
任务分配模块,用于将每一所述搬运任务分配给处于空闲状态的机器人。The task assignment module is used to assign each of the handling tasks to the robots in the idle state.
另一方面,本申请提供一种任务分配的设备,包括:存储器,处理器;In another aspect, the present application provides a task allocation device, including: a memory, a processor;
处理器,存储器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序;a processor, a memory, and a computer program stored on said memory and executable on said processor;
其中,所述处理器运行所述计算机程序时实现上述任一项所述的方法。Wherein, the processor implements the method described in any one of the above when running the computer program.
另一方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述任一项所述的方法。In another aspect, the present application provides a computer-readable storage medium, where computer-executable instructions are stored in the computer-readable storage medium, and when the computer-executable instructions are executed by a processor, they are used to implement any of the methods described above .
另一方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一项所述的方法。In another aspect, the present application provides a computer program product, including a computer program, and when the computer program is executed by a processor, the method described in any one of the foregoing is implemented.
本申请提供的任务分配的方法、装置、设备、存储介质及程序产品,通过根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少 一个搬运任务,其中每一搬运任务包括一个或多个箱子,每一搬运任务所包含箱子的数量小于或等于机器人的最大容量,使得同一搬运任务中的箱子具有相同的目的地,并且集中在同一巷道或集中在少数几个巷道内,且巷道间的距离较近,将每一搬运任务分配给处于空闲状态的机器人,由该机器人完成分配给其的搬运任务中的箱子的搬运,能够基于全局规划进行任务分配,大大提高了智能仓储系统中箱子的总体搬运效率。The task allocation method, device, equipment, storage medium and program product provided in this application generate at least one transport Tasks, where each handling task includes one or more boxes, and the number of boxes contained in each handling task is less than or equal to the maximum capacity of the robot, so that the boxes in the same handling task have the same destination and are concentrated in the same lane or Concentrated in a few lanes, and the distance between the lanes is relatively short, each handling task is assigned to an idle robot, and the robot completes the handling of the boxes in the handling task assigned to it, which can be carried out based on global planning Task allocation greatly improves the overall handling efficiency of boxes in the intelligent storage system.
附图说明Description of drawings
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the application and together with the description serve to explain the principles of the application.
图1为本实施例提供的任务分配的方法的总体框架图;FIG. 1 is an overall framework diagram of the method for task assignment provided by this embodiment;
图2为本申请实施例一提供的任务分配的方法流程图;FIG. 2 is a flow chart of a task assignment method provided in Embodiment 1 of the present application;
图3为本申请实施例二提供的任务分配的方法流程图;FIG. 3 is a flow chart of the task assignment method provided in Embodiment 2 of the present application;
图4为本申请实施例三提供的任务分配的装置的结构示意图;FIG. 4 is a schematic structural diagram of a device for assigning tasks provided in Embodiment 3 of the present application;
图5为本发明实施例五提供的任务分配的设备的结构示意图。FIG. 5 is a schematic structural diagram of a task allocation device provided by Embodiment 5 of the present invention.
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。By means of the above drawings, specific embodiments of the present application have been shown, which will be described in more detail hereinafter. These drawings and text descriptions are not intended to limit the scope of the concept of the application in any way, but to illustrate the concept of the application for those skilled in the art by referring to specific embodiments.
具体实施方式Detailed ways
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numerals in different drawings refer to the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with aspects of the present application as recited in the appended claims.
本申请所涉及的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。The terms "first", "second" and the like involved in this application are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the quantity of indicated technical features. In the descriptions of the following embodiments, "plurality" means two or more, unless otherwise specifically defined.
本实施例提供的任务分配的方法,可以应用于智能仓储领域的入库、出库等产生大量待搬运的箱子任务,需要将箱子任务分配给机器人的应用场景,其中,一个箱子任务对应于一个箱子的搬运需求,至少包括将该箱子从所在位置搬运到指定目的地(如操作台、仓库中的库位等)。在实际应用中,智能仓储系统中会实时地产生订单,并产生订单对应的入库/出库任务,每一入库/出库任务会涉及多个箱子任务,需要将箱子任务分配给机器人。本实施例中,任务分配的设备可以每间隔一段时间执行一次任务分配方法,将当前未分配 的箱子任务分配给机器人。例如,可以周期性地执行该任务分配方法。The task allocation method provided in this embodiment can be applied to the application scenario where a large number of box tasks to be transported are generated in the field of intelligent warehousing, such as inbound and outbound, and box tasks need to be allocated to robots, where one box task corresponds to one The handling requirements of the box include at least moving the box from the location to the designated destination (such as the operation table, the location in the warehouse, etc.). In practical applications, the intelligent warehousing system will generate orders in real time, and generate storage/outbound tasks corresponding to the orders. Each storage/outbound task will involve multiple box tasks, and the box tasks need to be assigned to robots. In this embodiment, the task allocation device can execute the task allocation method at regular intervals, and assign the currently unassigned box tasks to the robot. For example, the task assignment method may be performed periodically.
本实施例提供的任务分配的方法的总体框架如图1所示,任务分配的设备10获取待搬运的箱子的信息,至少包括箱子的目的地和所在巷道;根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务;其中每一搬运任务包括一个或多个箱子,每一搬运任务所包含箱子的数量小于或等于机器人的最大容量,将每一搬运任务分配给一个机器人20,以能够基于箱子所在位置进行搬运任务的全局规划,分配给每一机器人的搬运任务所包含的多个箱子任务具有相同的目的地,且所在巷道位置集中,搬运任务的切分更加合理,能够提高机器人的总体搬运效率。The overall framework of the task assignment method provided in this embodiment is shown in Figure 1, the task assignment device 10 obtains the information of the box to be transported, at least including the destination of the box and the roadway where it is located; according to the destination of the box to be transported, According to the lanes where the boxes are located, the boxes with the same destination are divided into tasks to generate at least one handling task; each handling task includes one or more boxes, and the number of boxes contained in each handling task is less than or equal to the robot's maximum Capacity, each handling task is assigned to a robot 20, so that the overall planning of the handling task can be carried out based on the location of the box, and the handling tasks assigned to each robot include multiple box tasks with the same destination, and the roadway The location is centralized, and the division of handling tasks is more reasonable, which can improve the overall handling efficiency of the robot.
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。The technical solution of the present application and how the technical solution of the present application solves the above technical problems will be described in detail below with specific embodiments. The following specific embodiments may be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. Embodiments of the present application will be described below in conjunction with the accompanying drawings.
实施例一Embodiment one
图2为本申请实施例一提供的任务分配的方法流程图。本申请提供的任务分配的方法的执行主体可以是智能仓储系统中的仓储管理系统,或者是其他用于任务分配的设备,本实施例此处不做具体限定。如图2所示,该方法具体步骤如下:FIG. 2 is a flow chart of the task allocation method provided by Embodiment 1 of the present application. The execution subject of the method for assigning tasks provided in this application may be a warehouse management system in an intelligent warehouse system, or other equipment for assigning tasks, which is not specifically limited in this embodiment. As shown in Figure 2, the specific steps of the method are as follows:
步骤S101、根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,其中,每一搬运任务包括一个或多个箱子,每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。Step S101, according to the destination of the boxes to be transported, the boxes with the same destination are divided into tasks according to the lanes where the boxes are located, and at least one transport task is generated, wherein each transport task includes one or more boxes, each The number of boxes contained in the handling task is less than or equal to the maximum capacity of the robot.
本实施例中,为机器人分配箱子任务时,并不是从机器人角度,依次为机器人挑选优选箱子任务分配给该机器人,而是从所有待搬运的箱子的总体搬运效率的角度出发,执行全局规划的任务分配策略。In this embodiment, when assigning box tasks to the robot, it is not from the perspective of the robot to select the optimal box tasks for the robot and assign them to the robot, but from the perspective of the overall handling efficiency of all boxes to be transported, the global planning is carried out. Task assignment strategy.
具体地,根据待搬运的箱子的目的地,对待搬运的箱子进行整理和区分,确定多组具有相同目的地的箱子集合,每一集合中的箱子均具有相同的目的地。对具有相同目的地的箱子按照箱子所在巷道,进行任务切分,使得同一搬运任务中的箱子具有相同的目的地,并且集中在同一巷道或集中在少数几个巷道内,且巷道间的距离较近。Specifically, according to the destinations of the boxes to be transported, the boxes to be transported are sorted and distinguished, and multiple sets of boxes with the same destination are determined, and the boxes in each set have the same destination. For the boxes with the same destination, the tasks are divided according to the lanes where the boxes are located, so that the boxes in the same handling task have the same destination and are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively small. close.
步骤S102、将每一搬运任务分配给处于空闲状态的机器人。Step S102, assigning each transport task to a robot in an idle state.
在确定至少一个搬运任务之后,为每一搬运任务确定对应的处于空闲状态的机器人,将每一搬运任务分配给对应的机器人,由该机器人完成分配给其的搬运任务中的箱子的搬运。由于每一搬运任务中箱子的目的地均相同,且集中在少数的几个巷道内,且这几个巷道间的距离较近,能够提高搬运任务的搬运效率。After at least one transport task is determined, a corresponding idle robot is determined for each transport task, each transport task is assigned to the corresponding robot, and the robot completes the transport of the boxes in the assigned transport task. Since the destination of the boxes in each handling task is the same, and they are concentrated in a few lanes, and the distance between these lanes is relatively short, the handling efficiency of the handling task can be improved.
本实施例通过根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的 箱子进行任务切分,生成至少一个搬运任务,其中每一搬运任务包括一个或多个箱子,每一搬运任务所包含箱子的数量小于或等于机器人的最大容量,使得同一搬运任务中的箱子具有相同的目的地,并且集中在同一巷道或集中在少数几个巷道内,且巷道间的距离较近,将每一搬运任务分配给处于空闲状态的机器人,由该机器人完成分配给其的搬运任务中的箱子的搬运,能够基于全局规划进行任务分配,大大提高了智能仓储系统中箱子的总体搬运效率。In this embodiment, according to the destination of the boxes to be transported, according to the lanes where the boxes are located, tasks are divided into boxes with the same destination to generate at least one handling task, wherein each handling task includes one or more boxes, each The number of boxes contained in the handling task is less than or equal to the maximum capacity of the robot, so that the boxes in the same handling task have the same destination, and are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short, Each handling task is assigned to a robot in an idle state, and the robot completes the handling of the boxes in the handling task assigned to it. Task allocation can be performed based on global planning, which greatly improves the overall handling efficiency of boxes in the intelligent storage system.
图3为本申请实施例二提供的任务分配的方法流程图。在上述实施例一的基础上,本实施例中,可以根据待搬运的箱子的目的地,将具有相同目的地的箱子归到同一箱子组;按照箱子所在巷道,对每一箱子组内的箱子进行任务切分,生成至少一个搬运任务。对每一箱子组内的箱子进行任务切分的过程,也就是按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务的过程。该过程具体可以采用如下方式实现:使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,其中,初始切分结果包括一个或者多个初始搬运任务,每一初始搬运任务所包含箱子的数量小于或等于机器人的最大容量;使用启发式算法,对初始切分结果进行迭代优化,得到至少一个搬运任务,迭代优化的优化目标为:至少一个搬运任务执行时跨巷道的总数量最小,和/或,至少一个搬运任务执行时跨巷道的总距离跨度最小。FIG. 3 is a flow chart of the task allocation method provided by Embodiment 2 of the present application. On the basis of the first embodiment above, in this embodiment, according to the destination of the boxes to be transported, the boxes with the same destination can be grouped into the same box group; according to the aisle where the boxes are located, the boxes in each box group Perform task segmentation to generate at least one handling task. The process of dividing the tasks of the boxes in each box group is the process of dividing the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generating at least one handling task. This process can be implemented in the following way: use a greedy algorithm to divide the tasks of boxes with the same destination according to the lanes where the boxes are located, and generate an initial segmentation result, where the initial segmentation result includes one or more initial handling tasks , the number of boxes contained in each initial handling task is less than or equal to the maximum capacity of the robot; use a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task, and the optimization goal of the iterative optimization is: at least one handling task The total number of crossing aisles is the smallest during execution, and/or, the total distance span across aisles is the smallest when at least one handling task is executed.
如图3所示,该方法具体步骤如下:As shown in Figure 3, the specific steps of the method are as follows:
步骤S201、使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,其中,初始切分结果包括一个或者多个初始搬运任务,每一初始搬运任务所包含箱子的数量小于或等于机器人的最大容量。Step S201, use the greedy algorithm to divide the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generate an initial segmentation result, wherein the initial segmentation result includes one or more initial handling tasks, and each initial handling task The number of contained boxes is less than or equal to the robot's maximum capacity.
该步骤中,基于若干限制条件,使用贪心算法构建一个初始可行解,即得到初始切分结果。示例性地,若干限制条件可以包括以下至少一种:机器人的容量限制,搬运任务执行时的跨巷道数量,搬运任务执行时的跨巷道范围。其中,搬运任务执行时的跨巷道范围可以是搬运任务执行时跨巷道的距离跨度。In this step, based on several restrictive conditions, a greedy algorithm is used to construct an initial feasible solution, that is, the initial segmentation result is obtained. Exemplarily, the several restriction conditions may include at least one of the following: capacity limitation of the robot, number of crossing lanes when carrying out the carrying task, and range of crossing lanes when carrying out the carrying task. Wherein, the range across the roadway when the carrying task is executed may be the distance span across the roadway when the carrying task is executed.
示例性地,可以使用贪心算法,按照巷道ID顺序依次来切分每一个搬运任务。Exemplarily, a greedy algorithm may be used to sequentially segment each transport task according to the sequence of lane IDs.
可选地,使用贪心算法,对具有相同目的地的箱子,按照巷道排列顺序,依次对每一巷道内的箱子按照机器人的最大容量进行任务切分,得到一个或多个搬运任务。Optionally, using a greedy algorithm, for boxes with the same destination, according to the order of the lanes, the boxes in each lane are sequentially divided into tasks according to the maximum capacity of the robot, and one or more handling tasks are obtained.
具体地,对每一巷道内的箱子按照机器人的最大容量进行任务切分,得到一个或多个搬运任务,可以采用如下方式实现:Specifically, the tasks of the boxes in each lane are divided according to the maximum capacity of the robot to obtain one or more handling tasks, which can be implemented in the following way:
将当前巷道内的箱子依次添加到搬运任务中,直至搬运任务满员时,搬运任务切分完 成;将当前巷道内还未添加到搬运任务的箱子依次添加到下一个搬运任务中,以此类推,直至当前巷道内的箱子均添加到搬运任务中时,当前巷道内的箱子的任务切分完成,得到一个或多个搬运任务。Add the boxes in the current laneway to the handling task in turn until the handling task is full, and the handling task is completed; add the boxes in the current laneway that have not been added to the handling task in turn to the next handling task, and so on. Until all the boxes in the current lane are added to the handling task, the task division of the boxes in the current lane is completed, and one or more handling tasks are obtained.
其中,任一搬运任务满员是指:搬运任务所包含的箱子的数量等于机器人的最大容量。Among them, the fullness of any handling task means that the number of boxes included in the handling task is equal to the maximum capacity of the robot.
例如,具有某一目的地的待搬运箱子(称为第一箱子)分布在多个巷道内,多个巷道的排列顺序及包含第一箱子的数量如下:第一个巷道内有12个第一箱子,第二个巷道内有9个第一箱子,第二个巷道内有4个第一箱子,……。假设机器人的最大容量为5,则按照巷道的排列顺序,先对第一个巷道内的第一箱子进行任务切分,可以得到3个搬运任务,分别包括的第一箱子数量为:5,5,2。对第二个巷道内的第一箱子进行任务切分,可以得到2个搬运任务,分别包括的第一箱子数量为:5,4。再对第三个巷道内的第一箱子进行任务切分,可以得到1个搬运任务,包括的第一箱子数量为:4。以此类推,对每一个巷道内的第一箱子进行任务切分,得到一个或者多个搬运任务。For example, the boxes to be transported with a certain destination (called the first box) are distributed in multiple lanes, and the arrangement order of the multiple lanes and the number of the first boxes are as follows: There are 12 first boxes in the first lane. Chests, 9 first chests in the second lane, 4 first chests in the second lane, ... . Assuming that the maximum capacity of the robot is 5, according to the arrangement order of the lanes, first divide the tasks of the first box in the first lane, and get 3 handling tasks, the number of the first boxes included respectively: 5, 5 ,2. By dividing the task of the first box in the second lane, two handling tasks can be obtained, and the number of the first box included is: 5 and 4 respectively. Then divide the task of the first box in the third lane to get 1 handling task, including 4 first boxes. By analogy, the first box in each lane is divided into tasks to obtain one or more handling tasks.
进一步地,当当前巷道内的最后一个箱子添加到当前搬运任务中时,若当前搬运任务未满员,则可以将下一巷道内的箱子依次添加到当前搬运任务中,直至当前搬运任务满员。Further, when the last box in the current lane is added to the current handling task, if the current handling task is not full, the boxes in the next lane can be sequentially added to the current handling task until the current handling task is full.
例如,具有某一目的地的待搬运箱子(称为第一箱子)分布在多个巷道内,多个巷道的排列顺序及包含第一箱子的数量如下:第一个巷道内有12个第一箱子,第二个巷道内有9个第一箱子,第三个巷道内有4个第一箱子,……。假设机器人的最大容量为5,则按照巷道的排列顺序,先对第一个巷道内的第一箱子进行任务切分,可以得到2个满员的搬运任务。将剩余的2个箱子添加到第三个搬运任务之后,第三个搬运任务未满员,可以继续将第二个巷道内的3个箱子添加到第三个搬运任务中,使得第三个搬运任务满员。此时第二个巷道内剩余6个第一箱子,将其中5个箱子切分到第四个搬运任务之后,第四个搬运任务满员。将第二巷道内剩余的最后一个箱子添加到第五个搬运任务中,第三个搬运任务未满员,可以继续将第三个巷道内的4个箱子添加到第五个搬运任务中,使得第五个搬运任务满员。依次类推,进行任务切分,直至所有巷道内的第一箱子均添加到搬运任务中时,对该目的地的箱子按照箱子所在巷道进行的任务切分完成,得到搬运任务。For example, the boxes to be transported with a certain destination (called the first box) are distributed in multiple lanes, and the arrangement order of the multiple lanes and the number of the first boxes are as follows: There are 12 first boxes in the first lane. Chests, 9 first chests in the second lane, 4 first chests in the third lane, ... . Assuming that the maximum capacity of the robot is 5, according to the arrangement order of the lanes, the first box in the first lane is first divided into tasks, and two full-staffed handling tasks can be obtained. After adding the remaining 2 boxes to the third handling task, the third handling task is not full, you can continue to add the 3 boxes in the second lane to the third handling task, so that the third handling task full. At this time, there are 6 first boxes remaining in the second lane, and after dividing 5 of them into the fourth handling task, the fourth handling task is full. Add the last remaining box in the second lane to the fifth handling task. If the third handling task is not full, you can continue to add 4 boxes in the third lane to the fifth handling task, making the fifth handling task Five moving tasks are full. By analogy, the task segmentation is performed until the first boxes in all lanes are added to the handling task, and the task division of the box at the destination is completed according to the laneway where the box is located, and the handling task is obtained.
进一步的,也可以在当前巷道内的最后一个箱子添加到当前搬运任务中时,若当前搬运任务未满员,则判断当前搬运任务可添加任务数量,若可添加任务数量是否小于预设数量阈值,若否,则可以将下一巷道内的箱子依次添加到当前搬运任务中,直至当前搬运任务满员,若是,则可以完成当前搬运任务的分配。Further, when the last box in the current lane is added to the current handling task, if the current handling task is not full, then judge the number of tasks that can be added to the current handling task, if the number of tasks that can be added is less than the preset number threshold, If not, then the boxes in the next lane can be sequentially added to the current handling task until the current handling task is full; if so, the assignment of the current handling task can be completed.
在使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果之后,通过步骤S202-206,使用启发式算法,对初始切分结果进行迭代优化, 直至满足一定的迭代停止条件,确定找到的最优的切分结果,得到至少一个搬运任务。After using the greedy algorithm to divide the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generating the initial segmentation results, through steps S202-206, use the heuristic algorithm to iteratively optimize the initial segmentation results until Satisfy a certain iteration stop condition, determine the optimal segmentation result found, and obtain at least one handling task.
其中,迭代优化的优化目标为:至少一个搬运任务执行时跨巷道的总数量最小,和/或,至少一个搬运任务执行时跨巷道的总距离跨度最小。Wherein, the optimization objective of the iterative optimization is: the total number of crossing lanes is minimized when at least one handling task is executed, and/or the total distance span across lanes is minimized when at least one handling task is executed.
步骤S202、根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果。Step S202, according to the neighborhood operator, generate the neighborhood feasible solution of the initial segmentation result of the current round, and obtain the optimal segmentation result of the current round.
其中,起始切分结果包括一个或者多个搬运任务,每一搬运任务包括一个或者多个巷道,以及每一巷道内的至少一个箱子。Wherein, the initial segmentation result includes one or more transport tasks, each transport task includes one or more lanes, and at least one box in each lane.
第一轮迭代的起始切分结果为步骤S201中得到的初始切分结果,第二轮及后续迭代的起始切分结果在上一轮迭代中确定。The initial segmentation result of the first round of iteration is the initial segmentation result obtained in step S201, and the initial segmentation result of the second round and subsequent iterations is determined in the previous iteration.
该步骤中,所使用的邻域算子用于生成从起始切分结果的邻域可行解,将起始切分结果的邻域可行解作为本轮的优化切分结果。In this step, the neighborhood operator used is used to generate a neighborhood feasible solution from the initial segmentation result, and the neighborhood feasible solution of the initial segmentation result is used as the optimization segmentation result of this round.
该步骤的一种可选地实施方式为:An optional implementation of this step is:
将起始切分结果中任一搬运任务的任一巷道内的箱子,随机移动到另一搬运任务中,得到本轮的优化切分结果,优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。Randomly move the boxes in any aisle of any handling task in the initial segmentation result to another handling task to obtain the optimized segmentation result of this round, and optimize the number of boxes contained in each handling task in the segmentation result The quantity is less than or equal to the robot's maximum capacity.
例如,可以将起始切分结果中第一个搬运任务的ID为3的巷道内的箱子,移动到第三个搬运任务或其他任意一个搬运任务中,并且箱子被移动到的搬运任务所包含箱子的数量小于或等于机器人的最大容量。For example, the box in the aisle with ID 3 of the first handling task in the initial segmentation result can be moved to the third handling task or any other handling task, and the box is included in the moving task The number of boxes is less than or equal to the robot's maximum capacity.
该步骤的另一种可选地实施方式为:Another optional implementation of this step is:
若起始切分结果的两个搬运任务均包含第一巷道内的箱子,则交换两个搬运任务中任一第一巷道内的箱子,得到本轮的优化切分结果,优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。If the two handling tasks of the initial segmentation result both contain boxes in the first lane, exchange the boxes in any one of the first lanes in the two handling tasks to obtain the optimized segmentation result of this round. The number of boxes contained in each handling task is less than or equal to the maximum capacity of the robot.
例如,假设起始切分结果中,第三个搬运任务包含ID为1的巷道内的箱子,第五个搬运任务也包含ID为1的巷道内的箱子,可以将第三个搬运任务和第五个搬运任务中的ID为1的巷道内的箱子进行互换,并保证互换后这两个搬运任务中所包含箱子的数量小于或等于机器人的最大容量。For example, assuming that in the initial segmentation results, the third handling task contains boxes in the lane with ID 1, and the fifth handling task also includes boxes in the lane with ID 1, you can combine the third handling task and the first The boxes in the aisle with ID 1 in the five handling tasks are exchanged, and the number of boxes contained in the two handling tasks after the exchange is guaranteed to be less than or equal to the maximum capacity of the robot.
该步骤的另一种可选地实施方式为:Another optional implementation of this step is:
根据起始切分结果的每一搬运任务中每一巷道内的箱子数量,确定目标搬运任务的目标巷道,目标搬运任务的所有巷道中目标巷道的箱子数量最少,且所有搬运任务中目标搬运任务的目标巷道内的箱子数量最少;将目标搬运任务的目标巷道内的箱子,移动到另一包含目标巷道的搬运任务中,得到本轮的优化切分结果,优化切分结果中每一搬运任务所 包含箱子的数量小于或等于机器人的最大容量。According to the number of boxes in each lane in each handling task of the initial segmentation result, determine the target lane of the target handling task. The number of boxes in the target lane is the least among all the lanes of the target handling task, and the target handling task among all handling tasks The number of boxes in the target lane is the least; move the boxes in the target lane of the target handling task to another handling task that includes the target lane, and obtain the optimized segmentation result of this round, and optimize each handling task in the segmentation result The number of contained boxes is less than or equal to the robot's maximum capacity.
例如,假设起始切分结果中,第三个搬运任务包含ID为1的巷道内的1个箱子,第五个搬运任务也包含ID为1的巷道内的3箱子,第三个搬运任务包含ID为1的巷道内的箱子的数量最少,可以将第三个搬运任务作为目标搬运任务,ID为1的巷道作为目标巷道,将第三个搬运任务内ID为1的巷道内的1个箱子移动到第五个搬运任务中,并且保证第五个搬运任务所包含箱子的数量小于或等于机器人的最大容量。这样可以将统一巷道内的箱子尽量集中在同一搬运任务中。For example, suppose that in the initial segmentation results, the third handling task contains 1 box in the lane with ID 1, the fifth handling task also includes 3 boxes in the lane with ID 1, and the third handling task includes The number of boxes in the lane with ID 1 is the least. You can use the third handling task as the target handling task, and the lane with ID 1 as the target lane, and use 1 box in the lane with ID 1 in the third handling task Move to the fifth handling task, and ensure that the number of boxes contained in the fifth handling task is less than or equal to the maximum capacity of the robot. In this way, the boxes in the same lane can be concentrated in the same handling task as much as possible.
步骤S203、计算优化切分结果的目标函数值。Step S203, calculating the objective function value of the optimized segmentation result.
在生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果之后,对本轮的优化切分结果的质量进行评估,计算优化切分结果的目标函数值。After generating the neighborhood feasible solution of the initial segmentation result of the current round and obtaining the optimized segmentation result of the current round, the quality of the optimized segmentation result of the current round is evaluated, and the objective function value of the optimal segmentation result is calculated.
该步骤中,目标函数值包括:In this step, the objective function values include:
切分结果所包含的所有搬运任务执行时跨巷道的总数量,和/或,切分结果所包含的所有搬运任务执行时跨巷道的总距离跨度。The total number of lanes crossed during the execution of all the handling tasks included in the segmentation result, and/or the total distance span across the lanes of all the handling tasks included in the segmentation result.
其中,任一搬运任务执行时跨巷道的数量是指机器人在取搬运任务中的多个箱子时,需要跨过的巷道数量。Among them, the number of lanes crossed during the execution of any handling task refers to the number of lanes that the robot needs to cross when picking up multiple boxes in the handling task.
例如,某一搬运任务包含ID为1的巷道内的箱子和ID为3的巷道内的箱子,且ID为1的巷道与ID为3的巷道中间还有ID为2的巷道。机器人执行该搬运任务时,需要从ID为1的巷道跨到ID为3的巷道,跨过ID为1,2,3的三个巷道,也即跨巷道的数量为3。For example, a transport task includes a box in an aisle with ID 1 and a box in aisle with ID 3, and there is an aisle with ID 2 between the aisle with ID 1 and the aisle with ID 3. When the robot performs the handling task, it needs to cross the lane with ID 1 to the lane with ID 3, and cross the three lanes with ID 1, 2, and 3, that is, the number of crossed lanes is 3.
任一搬运任务执行时跨巷道的距离跨度是指机器人在取搬运任务中的多个箱子时,需要跨过的巷道的最长距离跨度。The distance span across the lanes during the execution of any handling task refers to the longest distance span of the lanes that the robot needs to cross when picking up multiple boxes in the handling task.
可选地,任一搬运任务执行时跨巷道的距离跨度可以是巷道间间隔的实际移动距离;或者,若相邻巷道间的间隔距离一致,跨巷道的距离跨度可以是巷道间的间隔距离的总长;或者,跨巷道的距离跨度可以根据搬运任务所包含的巷道,以及所包含的箱子在巷道中的位置,确定的在取搬运任务总的多个箱子时,机器人跨巷道的行走距离。Optionally, the distance span across the lanes during the execution of any transport task can be the actual moving distance between the lanes; or, if the distance between adjacent lanes is the same, the distance span across the lanes can be the distance between the lanes The total length; or, the distance span across the lanes can be determined according to the lanes included in the handling task and the positions of the contained boxes in the lanes, and the walking distance of the robot across the lanes when picking up multiple boxes in the handling task.
例如,假设跨巷道的距离跨度可以是巷道间的间隔距离的总长,某一搬运任务包含ID为1的巷道内的箱子和ID为3的巷道内的箱子,且ID为1的巷道与ID为3的巷道中间还有ID为2的巷道。机器人执行该搬运任务时,需要从ID为1的巷道跨到ID为3的巷道,跨过ID为1,2,3的三个巷道,跨巷道的距离跨度为:巷道间间隔距离×2。For example, assuming that the distance span across the lanes can be the total length of the distance between the lanes, a certain handling task includes boxes in the lane with ID 1 and boxes in the lane with ID 3, and the lane with ID 1 and ID are There is an alleyway with ID 2 in the middle of the alleyway of 3. When the robot performs the handling task, it needs to cross from the lane with ID 1 to the lane with ID 3, and across the three lanes with ID 1, 2, and 3. The distance across the lanes is: the distance between lanes × 2.
步骤S204、根据优化切分结果的目标函数值,以及本轮的起始切分结果的目标函数值,确定下一轮迭代的起始切分结果。Step S204, according to the objective function value of the optimized segmentation result and the objective function value of the initial segmentation result of the current round, determine the initial segmentation result of the next iteration.
该步骤中,根据优化切分结果的目标函数值,以及本轮的起始切分结果的目标函数值,确定下一轮迭代的起始切分结果,具体可以采用现有技术中任意一种使用迭代优化算法的迭代过程中,根据邻域可行解和初始可行解的目标函数值,确定下一轮迭代的初始可行解的方法实现,本实施例此处不再赘述。In this step, according to the objective function value of the optimized segmentation result and the objective function value of the initial segmentation result of the current round, the initial segmentation result of the next iteration is determined. Specifically, any one of the existing technologies can be used. In the iterative process of using the iterative optimization algorithm, the method of determining the initial feasible solution of the next iteration according to the neighborhood feasible solution and the objective function value of the initial feasible solution is implemented, and this embodiment will not repeat it here.
示例性地,在计算得到优化切分结果的目标函数值之后,若优化切分结果的目标函数值小于本轮的起始切分结果的目标函数值,说明本轮的优化切分结果相对于本轮的起始切分结果更优,则将本轮的优化切分结果作为下一轮迭代的起始切分结果。For example, after calculating the objective function value of the optimized segmentation result, if the objective function value of the optimized segmentation result is smaller than the objective function value of the initial segmentation result of the current round, it means that the optimized segmentation result of the current round is relatively The initial segmentation result of this round is better, and the optimized segmentation result of this round is used as the initial segmentation result of the next iteration.
另外,若优化切分结果的目标函数值不小于本轮的起始切分结果的目标函数值,在优化切分结果后续迭代过程中,仍然有一定概率优于起始切分结果,可以将本轮的优化切分结果作为下一轮迭代的起始切分结果,继续进行迭代优化。In addition, if the objective function value of the optimized segmentation result is not less than the objective function value of the initial segmentation result of the current round, there is still a certain probability that it is better than the initial segmentation result in the subsequent iterations of the optimized segmentation result. The optimized segmentation result of this round is used as the initial segmentation result of the next iteration, and the iterative optimization continues.
示例性地,下面以使用的启发式算法为模拟退火算法为例,若优化切分结果的目标函数值小于本轮的起始切分结果的目标函数值,对一定概率将本轮的优化切分结果作为下一轮迭代的起始切分结果的实现方式进行示例性地说明:Exemplarily, the following uses the simulated annealing algorithm as an example of the heuristic algorithm. If the objective function value of the optimized segmentation result is smaller than the objective function value of the initial segmentation result of the current round, the optimized segmentation of the current round is performed with a certain probability. The implementation of the segmentation result as the initial segmentation result of the next round of iteration is exemplified:
可选地,给定不等式:exp delta_score/temperature>random_value,其中,delta_score为本轮的优化切分结果的目标函数值与本轮的起始切分结果的目标函数值的差,temperature是温度参数,random_value为生成的随机数,该随机数在0-1之间取值。 Optionally, given the inequality: exp delta_score/temperature > random_value, where delta_score is the difference between the objective function value of the optimized segmentation result of the current round and the objective function value of the initial segmentation result of the current round, and temperature is the temperature parameter , random_value is a generated random number, and the random number takes a value between 0-1.
优化切分结果的目标函数值小于本轮的起始切分结果的目标函数值,以一定概率将本轮的优化切分结果作为下一轮迭代的起始切分结果的实现方式可以为:生成一个随机数random_value,计算本轮的优化切分结果的目标函数值与本轮的起始切分结果的目标函数值的差delta_score,判断random_value和delta_score是否满足上述不等式,如果满足,则接受本轮的优化切分结果,将本轮的优化切分结果作为下一轮迭代的起始切分结果。如果不满足,则不接受本轮的优化切分结果,不会将本轮的优化切分结果作为下一轮迭代的起始切分结果。The objective function value of the optimized segmentation result is smaller than the objective function value of the initial segmentation result of the current round, and the implementation method of using the optimized segmentation result of the current round as the initial segmentation result of the next iteration with a certain probability can be as follows: Generate a random number random_value, calculate the difference delta_score between the objective function value of the optimized segmentation result of this round and the objective function value of the initial segmentation result of this round, and judge whether the random_value and delta_score satisfy the above inequality, and if so, accept this round The optimal segmentation result of the round is used as the initial segmentation result of the next iteration. If it is not satisfied, the optimized segmentation result of the current round will not be accepted, and the optimized segmentation result of the current round will not be used as the initial segmentation result of the next iteration.
其中,优化切分结果的目标函数值小于本轮的起始切分结果的目标函数值,也即delta_score是负数,温度参数temperature开始是个很大的正整数,之后每次迭代按照一定的速率呈指数衰减,那么delta_score/temperature的取值范围就是从0到负无穷,根据指数函数图像中定义域在0到负无穷的部分可知,exp delta_score/temperature的取值范围是从1逐渐减小到0。上述不等式右边的部分是个0到1之间的随机数,那么在迭代初级,温度参数temperature高的时候,上述不等式左边部分的值接近1,不等式成立的可能性很大。随着温度参数temperature的衰减,上述不等式左边部分的值越来越接近0,不等式成立的可能性逐渐变小,越到后面,不等式成立的可能性越小。所以接受本轮的优化切分结果作 为下一轮迭代的起始切分结果的概率实际上是开始高,随着迭代次数的增加逐渐降低。这样,可以在迭代优化的前期保留更大的搜索可能性,允许接受更差的优化切分结果;到迭代后期希望算法收敛,逐渐稳定下来。 Among them, the objective function value of the optimized segmentation result is smaller than the objective function value of the initial segmentation result of the current round, that is, delta_score is a negative number, and the temperature parameter temperature is a large positive integer at the beginning, and each iteration follows a certain rate. Exponential decay, then the value range of delta_score/temperature is from 0 to negative infinity. According to the part of the definition domain in the exponential function image from 0 to negative infinity, the value range of exp delta_score/temperature is gradually reduced from 1 to 0 . The part on the right side of the above inequality is a random number between 0 and 1, so when the temperature parameter temperature is high at the primary stage of iteration, the value of the left part of the above inequality is close to 1, and the possibility of the inequality is very high. With the attenuation of the temperature parameter temperature, the value of the left part of the above inequality is getting closer to 0, and the possibility of the inequality is gradually reduced, and the further to the back, the less possibility of the inequality. Therefore, the probability of accepting the optimized segmentation result of this round as the initial segmentation result of the next iteration is actually high at the beginning, and gradually decreases as the number of iterations increases. In this way, a greater search possibility can be reserved in the early stage of iterative optimization, and worse optimization segmentation results are allowed to be accepted; at the end of the iteration, it is hoped that the algorithm will converge and gradually stabilize.
步骤S205、判断是否满足迭代停止条件。Step S205, judging whether the iteration stop condition is satisfied.
在每轮迭代结束后,判断是否满足迭代停止条件。若不满足迭代停止条件,则根据下一轮迭代的起始切分结果,执行步骤S202-S205,进行下一轮迭代优化,直至满足迭代停止条件时停止迭代优化。After each round of iteration, it is judged whether the iteration stop condition is satisfied. If the iteration stop condition is not met, then according to the initial segmentation result of the next iteration, execute steps S202-S205 to perform the next iteration optimization until the iteration stop condition is satisfied.
若满足迭代停止条件,执行步骤S206,确定最优切分结果,也即目标函数值最小的切分结果。If the iteration stop condition is satisfied, step S206 is executed to determine the optimal segmentation result, that is, the segmentation result with the smallest objective function value.
其中,迭代停止条件可以是:迭代次数大于次数阈值、迭代时长达到预设时长等,迭代停止条件可以根据实际应用场景进行设置和调整,本实施例此处不做具体限定。Wherein, the iteration stop condition may be: the number of iterations is greater than the number threshold, the iteration duration reaches a preset duration, etc., and the iteration stop condition may be set and adjusted according to the actual application scenario, which is not specifically limited in this embodiment.
步骤S206、根据初始切分结果的目标函数值,和每一轮迭代的优化切分结果的目标函数值,确定目标函数值最小的切分结果,目标函数值最小的切分结果包含至少一个搬运任务。Step S206, according to the objective function value of the initial segmentation result and the objective function value of the optimized segmentation result of each iteration, determine the segmentation result with the smallest objective function value, and the segmentation result with the smallest objective function value contains at least one transport Task.
在满足迭代停止条件时,根据初始切分结果的目标函数值,和每一轮迭代的优化切分结果的目标函数值,选择最优的切分结果。When the iteration stop condition is satisfied, the optimal segmentation result is selected according to the objective function value of the initial segmentation result and the objective function value of the optimized segmentation result of each iteration.
具体地,可以根据初始切分结果的目标函数值,和每一轮迭代的优化切分结果的目标函数值,确定目标函数值最小的切分结果,将目标函数值最小的切分结果作为最优的切分结果。将目标函数值最小的切分结果包含的至少一个搬运任务作为最终的任务切分结果。Specifically, according to the objective function value of the initial segmentation result and the objective function value of the optimized segmentation result of each round of iterations, the segmentation result with the smallest objective function value can be determined, and the segmentation result with the smallest objective function value can be used as the optimal value. Excellent segmentation results. At least one handling task included in the segmentation result with the smallest objective function value is taken as the final task segmentation result.
在使用启发式算法,对初始切分结果进行迭代优化,得到至少一个搬运任务之后,通过步骤S207-S208,将每一搬运任务分配给处于空闲状态的机器人。After using a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task, each handling task is allocated to an idle robot through steps S207-S208.
步骤S207、对至少一个搬运任务进行排序。Step S207, sorting at least one transport task.
可选地,该步骤中,按照排序因素,对至少一个搬运任务进行排序。Optionally, in this step, the at least one handling task is sorted according to the sorting factor.
其中,排序因素包括以下至少一种:Among them, the ranking factors include at least one of the following:
搬运任务的优先级、搬运任务的目的地的排队拥堵程度、搬运任务包含巷道的拥堵程度、搬运任务执行时跨巷道的数量、搬运任务执行时跨巷道的距离跨度、搬运任务包含的箱子的总数。The priority of the handling task, the queuing congestion level of the destination of the handling task, the congestion level of the laneway included in the handling task, the number of lanes crossed during the execution of the handling task, the distance span across the lanes during the execution of the handling task, and the total number of boxes included in the handling task .
示例性地,搬运任务的优先级可以根据搬运任务所包含的箱子的优先级确定。Exemplarily, the priority of the transport task may be determined according to the priority of boxes included in the transport task.
搬运任务的优先级越高,箱子的排列顺序越靠前;搬运任务的目的地的排队拥堵程度越低,箱子的排列顺序越靠前;搬运任务包含巷道的拥堵程度越低,箱子的排列顺序越靠前;搬运任务执行时跨巷道的数量越少,箱子的排列顺序越靠前;搬运任务执行时跨巷道 的距离跨度越小,箱子的排列顺序越靠前;搬运任务包含的箱子的总数越少,箱子的排列顺序越靠前。The higher the priority of the handling task, the higher the arrangement order of the boxes; the lower the congestion level of the destination of the handling task, the higher the arrangement order of the boxes; the lower the congestion level of the handling task including the roadway, the higher the arrangement order of the boxes The higher the front; the fewer the number of cross-lanes during the execution of the handling task, the higher the arrangement order of the boxes; the smaller the distance span across the lanes during the execution of the handling task, the higher the arrangement order of the boxes; the total number of boxes included in the handling task The less, the higher the order of the boxes.
可选地,若按照多个排序因素进行排序,按照各个排序因素的重要程度(或优先程度)由高到低的顺序,先按照最重要的排序因素对搬运任务进行排序,对于最重要的排序因素相同的搬运任务,按照次重要的排序因素进行排序,以此类推,实现搬运任务的排序。Optionally, if sorting according to multiple sorting factors, according to the order of importance (or priority) of each sorting factor from high to low, first sort the handling tasks according to the most important sorting factor, and for the most important sorting The handling tasks with the same factors are sorted according to the next most important sorting factor, and so on to realize the sorting of the handling tasks.
可选地,若按照多个排序因素进行排序,可以按照各个排序因素的重要程度(或优先程度)为多个排序因素分别设置权重,对各个排序因素的信息进行量化及标准化后加权求和,确定各个搬运任务对应的排序值,按照排序值对搬运任务进行排序。Optionally, if sorting is performed according to multiple sorting factors, weights can be set for multiple sorting factors according to the importance (or priority) of each sorting factor, and the information of each sorting factor is quantified and standardized. The sorting value corresponding to each handling task is determined, and the handling tasks are sorted according to the sorting value.
步骤S208、根据排序结果,依次将每一搬运任务分配给处于空闲状态的机器人。Step S208, according to the sorting result, sequentially assign each transport task to the robot in the idle state.
在对搬运任务进行排序,得到排序结果之后,可以按照排序结果,依次将每一搬运任务分配给处于空闲状态的机器人,直至搬运任务分配完毕或者所有处于空闲状态的机器人分配完毕。After sorting the handling tasks and obtaining the sorting results, each handling task can be assigned to the idle robots in turn according to the sorting results until the handling tasks are assigned or all idle robots are assigned.
该步骤具体可以采用如下方式实现:This step can specifically be implemented in the following manner:
根据排序结果,将下一个搬运任务所包含的箱子作为待分配箱子;根据待分配箱子所在的位置,以及处于空闲状态的机器人所在的位置,计算每一处于空闲状态的机器人与待分配箱子的最小距离;将下一个搬运任务分配给与待分配箱子的最小距离最小的处于空闲状态的机器人。According to the sorting results, the boxes included in the next handling task are used as the boxes to be allocated; according to the location of the boxes to be allocated and the positions of the robots in the idle state, the minimum distance between each idle robot and the boxes to be allocated is calculated. Distance; assign the next handling task to the idle robot with the smallest minimum distance to the box to be assigned.
可选地,若所有处于空闲状态的机器人分配完毕时,仍然有未分配的搬运任务,则未分配的搬运任务包含的所有箱子可以作为下一次任务分配的待分配箱子,重新进行任务分配的处理。Optionally, if there are still unassigned handling tasks when all idle robots are assigned, all boxes contained in the unassigned handling tasks can be used as boxes to be assigned for the next task assignment, and the task assignment process can be performed again .
进一步地,若未分配的搬运任务包含的箱子满足一定条件时,将未分配的搬运任务包含的箱子的优先级调高后,作为下一次任务分配的待分配箱子,以在下一次任务分配时优先分配这些箱子所在的搬运任务。其中,箱子满足的一定条件可以是箱子具有时效性等,可以根据实际为应用场景进行设置和调整,此处不做具体限定。Further, if the boxes included in the unassigned handling tasks meet certain conditions, the priority of the boxes included in the unassigned handling tasks will be increased, and they will be used as the boxes to be allocated for the next task allocation, so as to give priority to the next task allocation. Assign the move tasks where these boxes are located. Among them, a certain condition that the box meets may be that the box has timeliness, etc., and can be set and adjusted according to the actual application scenario, which is not specifically limited here.
本实施例通过根据待搬运的箱子的目的地,将具有相同目的地的箱子归到同一箱子组;每一箱子组内的箱子是具有同一目的地的箱子,使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,其中,初始切分结果包括一个或者多个初始搬运任务,每一初始搬运任务所包含箱子的数量小于或等于机器人的最大容量;使用启发式算法,对初始切分结果进行迭代优化,得到至少一个搬运任务,迭代优化的优化目标为:至少一个搬运任务执行时跨巷道的总数量最小,和/或,至少一个搬运任务执行时跨巷道的总距离跨度最小,使得同一搬运任务中的箱子具有相同的目的地,并且集中在 同一巷道或集中在少数几个巷道内,且巷道间的距离较近,将每一搬运任务分配给处于空闲状态的机器人,由该机器人完成分配给其的搬运任务中的箱子的搬运,能够基于全局规划进行任务分配,大大提高了智能仓储系统中箱子的总体搬运效率,提高了入库/出库的效率。In this embodiment, according to the destination of the boxes to be transported, the boxes with the same destination are grouped into the same box group; the boxes in each box group are boxes with the same destination, and the greedy algorithm is used to group the boxes with the same destination. The boxes are divided into tasks according to the lanes where the boxes are located, and the initial segmentation results are generated. The initial segmentation results include one or more initial handling tasks, and the number of boxes contained in each initial handling task is less than or equal to the maximum capacity of the robot. ; Use a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task. The optimization goal of the iterative optimization is: the total number of cross-lanes is minimized when at least one handling task is executed, and/or, at least one handling task is executed The total distance span across the lanes is the smallest, so that the boxes in the same handling task have the same destination, and they are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short. Each handling task is assigned For a robot in an idle state, the robot completes the handling of the boxes in the handling task assigned to it, and can assign tasks based on the global plan, which greatly improves the overall handling efficiency of the boxes in the intelligent storage system, and improves the storage/exit library efficiency.
实施例三Embodiment Three
图4为本申请实施例三提供的任务分配的装置的结构示意图。本申请实施例提供的任务分配的装置可以执行任务分配的方法实施例提供的处理流程。如图4所示,该任务分配的装置40包括:任务切分模块401和任务分配模块402。FIG. 4 is a schematic structural diagram of an apparatus for assigning tasks provided by Embodiment 3 of the present application. The task allocation apparatus provided in the embodiment of the present application may execute the processing procedure provided in the task allocation method embodiment. As shown in FIG. 4 , the task allocation apparatus 40 includes: a task segmentation module 401 and a task allocation module 402 .
具体地,任务切分模块401,用于根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,其中,每一搬运任务包括一个或多个箱子,每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。Specifically, the task segmentation module 401 is configured to perform task segmentation on boxes with the same destination according to the destination of the boxes to be transported according to the aisle where the boxes are located, and generate at least one transport task, wherein each transport task includes One or more boxes, the number of boxes contained in each handling task is less than or equal to the maximum capacity of the robot.
任务分配模块402,用于将每一搬运任务分配给处于空闲状态的机器人。The task assignment module 402 is configured to assign each handling task to an idle robot.
本申请实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。The device provided in the embodiment of the present application may be specifically configured to execute the method embodiment provided in the first embodiment above, and the specific functions will not be repeated here.
本实施例通过根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,其中每一搬运任务包括一个或多个箱子,每一搬运任务所包含箱子的数量小于或等于机器人的最大容量,使得同一搬运任务中的箱子具有相同的目的地,并且集中在同一巷道或集中在少数几个巷道内,且巷道间的距离较近,将每一搬运任务分配给处于空闲状态的机器人,由该机器人完成分配给其的搬运任务中的箱子的搬运,能够基于全局规划进行任务分配,大大提高了智能仓储系统中箱子的总体搬运效率。In this embodiment, according to the destination of the boxes to be transported, according to the lanes where the boxes are located, tasks are divided into boxes with the same destination to generate at least one handling task, wherein each handling task includes one or more boxes, each The number of boxes contained in the handling task is less than or equal to the maximum capacity of the robot, so that the boxes in the same handling task have the same destination, and are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short, Each handling task is assigned to a robot in an idle state, and the robot completes the handling of the boxes in the handling task assigned to it. Task allocation can be performed based on global planning, which greatly improves the overall handling efficiency of boxes in the intelligent storage system.
实施例四Embodiment Four
在上述实施例三的基础上,本实施例中,任务切分模块还用于:On the basis of the third embodiment above, in this embodiment, the task segmentation module is also used for:
根据待搬运的箱子的目的地,将具有相同目的地的箱子归到同一箱子组;按照箱子所在巷道,对每一箱子组内的箱子进行任务切分,生成至少一个搬运任务。According to the destination of the boxes to be transported, the boxes with the same destination are grouped into the same box group; according to the aisle where the boxes are located, the tasks of the boxes in each box group are divided to generate at least one handling task.
可选地,任务切分模块包括:Optionally, the task segmentation module includes:
初始切分结果生成子模块,用于使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,其中,初始切分结果包括一个或者多个初始搬运任务,每一初始搬运任务所包含箱子的数量小于或等于机器人的最大容量。The initial segmentation result generation sub-module is used to use the greedy algorithm to divide the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generate the initial segmentation results, wherein the initial segmentation results include one or more initial handling task, the number of boxes contained in each initial handling task is less than or equal to the maximum capacity of the robot.
切分结果优化子模块,用于使用启发式算法,对初始切分结果进行迭代优化,得到至少一个搬运任务,迭代优化的优化目标为:至少一个搬运任务执行时跨巷道的总数量最小,和/或,至少一个搬运任务执行时跨巷道的总距离跨度最小。The segmentation result optimization sub-module is used to use a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task. The optimization goal of the iterative optimization is: the total number of cross-lanes is minimized when at least one handling task is executed, and /or, at least one transport task is executed with a minimum total distance span across the aisles.
可选地,初始切分结果生成子模块还用于:Optionally, the initial segmentation result generation submodule is also used to:
使用贪心算法,对具有相同目的地的箱子,按照巷道排列顺序,依次对每一巷道内的箱子按照机器人的最大容量进行任务切分,得到一个或多个搬运任务。Using the greedy algorithm, for the boxes with the same destination, according to the order of the lanes, the boxes in each lane are divided into tasks according to the maximum capacity of the robot, and one or more handling tasks are obtained.
可选地,初始切分结果生成子模块还用于:Optionally, the initial segmentation result generation submodule is also used to:
将当前巷道内的箱子依次添加到搬运任务中,直至搬运任务满员时,搬运任务切分完成;将当前巷道内还未添加到搬运任务的箱子依次添加到下一个搬运任务中,以此类推,直至当前巷道内的箱子均添加到搬运任务中时,当前巷道内的箱子的任务切分完成,得到一个或多个搬运任务。Add the boxes in the current laneway to the handling task in turn until the handling task is full, and the handling task is completed; add the boxes in the current laneway that have not been added to the handling task in turn to the next handling task, and so on. Until all the boxes in the current lane are added to the handling task, the task division of the boxes in the current lane is completed, and one or more handling tasks are obtained.
可选地,初始切分结果生成子模块还用于:Optionally, the initial segmentation result generation submodule is also used to:
当当前巷道内的最后一个箱子添加到当前搬运任务中时,若当前搬运任务未满员,则将下一巷道内的箱子依次添加到当前搬运任务中,直至当前搬运任务满员。When the last box in the current lane is added to the current handling task, if the current handling task is not full, the boxes in the next lane will be added to the current handling task in turn until the current handling task is full.
其中,任一搬运任务满员是指:搬运任务所包含的箱子的数量等于机器人的最大容量。Among them, the fullness of any handling task means that the number of boxes included in the handling task is equal to the maximum capacity of the robot.
可选地,切分结果优化子模块还用于:Optionally, the segmentation result optimization submodule is also used to:
根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果;计算优化切分结果的目标函数值;根据优化切分结果的目标函数值,以及本轮的起始切分结果的目标函数值,确定下一轮迭代的起始切分结果;若不满足迭代停止条件,则根据下一轮迭代的起始切分结果,进行下一轮迭代优化,直至满足迭代停止条件时停止迭代优化。According to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated, and the optimized segmentation result of the current round is obtained; the objective function value of the optimal segmentation result is calculated; according to the objective function value of the optimal segmentation result, and the objective function value of the initial segmentation result of the current round to determine the initial segmentation result of the next iteration; if the iteration stop condition is not satisfied, the next round will be performed according to the initial segmentation result of the next iteration Iterative optimization until the iterative optimization is stopped when the iteration stop condition is satisfied.
可选地,切分结果优化子模块还用于:Optionally, the segmentation result optimization submodule is also used to:
若不满足迭代停止条件,则根据下一轮迭代的起始切分结果,进行下一轮迭代优化,直至满足迭代停止条件时停止迭代优化之后,根据初始切分结果的目标函数值,和每一轮迭代的优化切分结果的目标函数值,确定目标函数值最小的切分结果,目标函数值最小的切分结果包含至少一个搬运任务。If the iteration stop condition is not satisfied, the next round of iterative optimization will be carried out according to the initial segmentation result of the next iteration, until the iterative optimization is stopped when the iteration stop condition is satisfied, according to the objective function value of the initial segmentation result, and each Optimizing the objective function value of the segmentation result for one round of iterations, determining the segmentation result with the smallest objective function value, and the segmentation result with the smallest objective function value includes at least one handling task.
可选地,目标函数值包括:Optionally, objective function values include:
切分结果所包含的所有搬运任务执行时跨巷道的总数量,和/或,切分结果所包含的所有搬运任务执行时跨巷道的总距离跨度。The total number of lanes crossed during the execution of all the handling tasks included in the segmentation result, and/or the total distance span across the lanes of all the handling tasks included in the segmentation result.
可选地,起始切分结果包括一个或者多个搬运任务,每一搬运任务包括一个或者多个巷道,以及每一巷道内的至少一个箱子。Optionally, the initial segmentation result includes one or more transport tasks, each transport task includes one or more lanes, and at least one box in each lane.
可选地,切分结果优化子模块还用于:Optionally, the segmentation result optimization submodule is also used to:
将起始切分结果中任一搬运任务的任一巷道内的箱子,随机移动到另一搬运任务中,得到本轮的优化切分结果,优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。Randomly move the boxes in any aisle of any handling task in the initial segmentation result to another handling task to obtain the optimized segmentation result of this round, and optimize the number of boxes contained in each handling task in the segmentation result The quantity is less than or equal to the robot's maximum capacity.
可选地,切分结果优化子模块还用于:Optionally, the segmentation result optimization submodule is also used to:
若起始切分结果的两个搬运任务均包含第一巷道内的箱子,则交换两个搬运任务中任一第一巷道内的箱子,得到本轮的优化切分结果,优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。If the two handling tasks of the initial segmentation result both contain boxes in the first lane, exchange the boxes in any one of the first lanes in the two handling tasks to obtain the optimized segmentation result of this round. The number of boxes contained in each handling task is less than or equal to the maximum capacity of the robot.
可选地,切分结果优化子模块还用于:Optionally, the segmentation result optimization submodule is also used to:
根据起始切分结果的每一搬运任务中每一巷道内的箱子数量,确定目标搬运任务的目标巷道,目标搬运任务的所有巷道中目标巷道的箱子数量最少,且所有搬运任务中目标搬运任务的目标巷道内的箱子数量最少;将目标搬运任务的目标巷道内的箱子,移动到另一包含目标巷道的搬运任务中,得到本轮的优化切分结果,优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。According to the number of boxes in each lane in each handling task of the initial segmentation result, determine the target lane of the target handling task. The number of boxes in the target lane is the least among all the lanes of the target handling task, and the target handling task among all handling tasks The number of boxes in the target lane is the least; move the boxes in the target lane of the target handling task to another handling task that includes the target lane, and obtain the optimized segmentation result of this round, and optimize each handling task in the segmentation result The number of contained boxes is less than or equal to the robot's maximum capacity.
可选地,任务分配模块包括:Optionally, the task allocation module includes:
任务排序子模块,用于对至少一个搬运任务进行排序;The task sorting submodule is used to sort at least one handling task;
任务分配子模块,用于根据排序结果,依次将每一搬运任务分配给处于空闲状态的机器人。The task assignment sub-module is used to assign each handling task to an idle robot in turn according to the sorting result.
可选地,任务排序子模块还用于:Optionally, the task ordering submodule is also used to:
按照排序因素,对至少一个搬运任务进行排序。Sorting at least one handling task according to the sorting factor.
其中,排序因素包括以下至少一种:Among them, the ranking factors include at least one of the following:
搬运任务的优先级、搬运任务的目的地的排队拥堵程度、搬运任务包含巷道的拥堵程度、搬运任务执行时跨巷道的数量、搬运任务执行时跨巷道的距离跨度、搬运任务包含的箱子的总数。The priority of the handling task, the queuing congestion level of the destination of the handling task, the congestion level of the laneway included in the handling task, the number of lanes crossed during the execution of the handling task, the distance span across the lanes during the execution of the handling task, and the total number of boxes included in the handling task .
可选地,任务分配子模块还用于:Optionally, the task assignment submodule is also used to:
根据排序结果,将下一个搬运任务所包含的箱子作为待分配箱子;根据待分配箱子所在的位置,以及处于空闲状态的机器人所在的位置,计算每一处于空闲状态的机器人与待分配箱子的最小距离;将下一个搬运任务分配给与待分配箱子的最小距离最小的处于空闲状态的机器人。According to the sorting results, the boxes included in the next handling task are used as the boxes to be allocated; according to the location of the boxes to be allocated and the positions of the robots in the idle state, the minimum distance between each idle robot and the boxes to be allocated is calculated. Distance; assign the next handling task to the idle robot with the smallest minimum distance to the box to be assigned.
本申请实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例,具体功能此处不再赘述。The device provided in the embodiment of the present application may be specifically used to execute the method embodiment provided in the second embodiment above, and specific functions will not be repeated here.
本实施例通过根据待搬运的箱子的目的地,将具有相同目的地的箱子归到同一箱子组; 每一箱子组内的箱子是具有同一目的地的箱子,使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,其中,初始切分结果包括一个或者多个初始搬运任务,每一初始搬运任务所包含箱子的数量小于或等于机器人的最大容量;使用启发式算法,对初始切分结果进行迭代优化,得到至少一个搬运任务,迭代优化的优化目标为:至少一个搬运任务执行时跨巷道的总数量最小,和/或,至少一个搬运任务执行时跨巷道的总距离跨度最小,使得同一搬运任务中的箱子具有相同的目的地,并且集中在同一巷道或集中在少数几个巷道内,且巷道间的距离较近,将每一搬运任务分配给处于空闲状态的机器人,由该机器人完成分配给其的搬运任务中的箱子的搬运,能够基于全局规划进行任务分配,大大提高了智能仓储系统中箱子的总体搬运效率,提高了入库/出库的效率。In this embodiment, according to the destination of the boxes to be transported, the boxes with the same destination are grouped into the same box group; the boxes in each box group are boxes with the same destination, and the greedy algorithm is used to classify boxes with the same destination. The boxes are divided into tasks according to the lanes where the boxes are located, and the initial segmentation results are generated. The initial segmentation results include one or more initial handling tasks, and the number of boxes contained in each initial handling task is less than or equal to the maximum capacity of the robot. ; Use a heuristic algorithm to iteratively optimize the initial segmentation results to obtain at least one handling task. The optimization goal of the iterative optimization is: the total number of cross-lanes is minimized when at least one handling task is executed, and/or, at least one handling task is executed The total distance span across the lanes is the smallest, so that the boxes in the same handling task have the same destination, and they are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short. Each handling task is assigned For a robot in an idle state, the robot completes the handling of the boxes in the handling task assigned to it, and can assign tasks based on the global plan, which greatly improves the overall handling efficiency of the boxes in the intelligent storage system, and improves the storage/exit library efficiency.
实施例五Embodiment five
图5为本发明实施例五提供的任务分配的设备的结构示意图。如图5所示,该任务分配的设备100包括:处理器1001,存储器1002,以及存储在存储器1002上并可在处理器1001上运行的计算机程序。其中,处理器1001运行计算机程序时实现上述任一方法实施例所提供的任务分配的方法。FIG. 5 is a schematic structural diagram of a task allocation device provided by Embodiment 5 of the present invention. As shown in FIG. 5 , the task allocation device 100 includes: a processor 1001 , a memory 1002 , and a computer program stored in the memory 1002 and executable on the processor 1001 . Wherein, the processor 1001 implements the task allocation method provided by any one of the above method embodiments when running the computer program.
本实施例通过根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,其中每一搬运任务包括一个或多个箱子,每一搬运任务所包含箱子的数量小于或等于机器人的最大容量,使得同一搬运任务中的箱子具有相同的目的地,并且集中在同一巷道或集中在少数几个巷道内,且巷道间的距离较近,将每一搬运任务分配给处于空闲状态的机器人,由该机器人完成分配给其的搬运任务中的箱子的搬运,能够基于全局规划进行任务分配,大大提高了智能仓储系统中箱子的总体搬运效率。In this embodiment, according to the destination of the boxes to be transported, according to the lanes where the boxes are located, tasks are divided into boxes with the same destination to generate at least one handling task, wherein each handling task includes one or more boxes, each The number of boxes contained in the handling task is less than or equal to the maximum capacity of the robot, so that the boxes in the same handling task have the same destination, and are concentrated in the same lane or in a few lanes, and the distance between the lanes is relatively short, Each handling task is assigned to a robot in an idle state, and the robot completes the handling of the boxes in the handling task assigned to it. Task allocation can be performed based on global planning, which greatly improves the overall handling efficiency of boxes in the intelligent storage system.
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行上述任一方法实施例提供的任务分配的方法。An embodiment of the present invention also provides a computer-readable storage medium, in which a computer program is stored, and the computer program is used by a processor to execute the task allocation method provided by any one of the above method embodiments.
本发明实施例还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,仓储管理系统的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得仓储管理系统执行上述任一方法实施例提供的任务分配的方法。The embodiment of the present invention also provides a computer program product, the program product includes: a computer program, the computer program is stored in a readable storage medium, at least one processor of the warehouse management system can read the computer program from the readable storage medium, at least A processor executes the computer program so that the warehouse management system executes the task assignment method provided in any one of the above method embodiments.
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅 为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided by the present invention, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated. to another system, or some features may be ignored, or not implemented. In another point, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。A unit described as a separate component may or may not be physically separated, and a component displayed as a unit may or may not be a physical unit, that is, it may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。In addition, each functional unit in each embodiment of the present invention may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit. The above-mentioned integrated units can be implemented in the form of hardware, or in the form of hardware plus software functional units.
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The above-mentioned integrated units implemented in the form of software functional units may be stored in a computer-readable storage medium. The above-mentioned software functional units are stored in a storage medium, and include several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor (processor) execute some steps of the method in each embodiment of the present invention . The aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disc and other media that can store program codes. .
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that for the convenience and brevity of description, only the division of the above-mentioned functional modules is used as an example for illustration. The internal structure of the system is divided into different functional modules to complete all or part of the functions described above. For the specific working process of the device described above, reference may be made to the corresponding process in the foregoing method embodiments, and details are not repeated here.
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。Other embodiments of the invention will be readily apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. The present invention is intended to cover any modification, use or adaptation of the present invention. These modifications, uses or adaptations follow the general principles of the present invention and include common knowledge or conventional technical means in the technical field not disclosed in the present invention . The specification and examples are to be considered exemplary only, with a true scope and spirit of the invention being indicated by the following claims.
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。It should be understood that the present invention is not limited to the precise constructions which have been described above and shown in the accompanying drawings, and various modifications and changes may be made without departing from the scope thereof. The scope of the present invention is limited only by the appended claims.

Claims (21)

  1. 一种任务分配的方法,其特征在于,包括:A method for assigning tasks, comprising:
    根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,其中,每一所述搬运任务包括一个或多个箱子,每一所述搬运任务所包含箱子的数量小于或等于机器人的最大容量;According to the destination of the boxes to be transported, the boxes with the same destination are divided into tasks according to the lanes where the boxes are located, and at least one handling task is generated, wherein each of the handling tasks includes one or more boxes, and each The number of boxes included in the handling task is less than or equal to the maximum capacity of the robot;
    将每一所述搬运任务分配给处于空闲状态的机器人。Each of the handling tasks is assigned to a robot in an idle state.
  2. 根据权利要求1所述的方法,其特征在于,所述根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,包括:The method according to claim 1, characterized in that, according to the destination of the box to be transported, according to the laneway where the box is located, performing task segmentation on the box with the same destination to generate at least one handling task, including:
    根据待搬运的箱子的目的地,将具有相同目的地的箱子归到同一箱子组;According to the destination of the boxes to be moved, the boxes with the same destination are grouped into the same box group;
    按照箱子所在巷道,对每一所述箱子组内的箱子进行任务切分,生成至少一个搬运任务。According to the aisle where the boxes are located, the tasks of the boxes in each box group are divided to generate at least one handling task.
  3. 根据权利要求1或2所述的方法,其特征在于,所述根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,包括:The method according to claim 1 or 2, characterized in that, according to the destination of the boxes to be transported, the boxes with the same destination are divided into tasks according to the lanes where the boxes are located, and at least one transport task is generated, including :
    使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,其中,所述初始切分结果包括一个或者多个初始搬运任务,每一所述初始搬运任务所包含箱子的数量小于或等于机器人的最大容量;Using the greedy algorithm, for the boxes with the same destination, the tasks are divided according to the lanes where the boxes are located, and the initial segmentation results are generated, wherein the initial segmentation results include one or more initial handling tasks, each of the initial handling tasks The number of boxes contained in the task is less than or equal to the maximum capacity of the robot;
    使用启发式算法,对所述初始切分结果进行迭代优化,得到所述至少一个搬运任务,所述迭代优化的优化目标为:所述至少一个搬运任务执行时跨巷道的总数量最小,和/或,所述至少一个搬运任务执行时跨巷道的总距离跨度最小。Using a heuristic algorithm, performing iterative optimization on the initial segmentation result to obtain the at least one handling task, the optimization goal of the iterative optimization is: the total number of cross-lanes during the execution of the at least one handling task is the smallest, and/ Or, when the at least one carrying task is performed, the total distance span across the roadway is the smallest.
  4. 根据权利要求3所述的方法,其特征在于,所述使用贪心算法,对具有相同目的地的箱子,按照箱子所在巷道进行任务切分,生成初始切分结果,包括:The method according to claim 3, wherein the greedy algorithm is used to divide the tasks of the boxes with the same destination according to the lanes where the boxes are located, and generate an initial segmentation result, including:
    使用贪心算法,对具有相同目的地的箱子,按照巷道排列顺序,依次对每一巷道内的箱子按照机器人的最大容量进行任务切分,得到一个或多个搬运任务。Using the greedy algorithm, for the boxes with the same destination, according to the order of the lanes, the boxes in each lane are divided into tasks according to the maximum capacity of the robot, and one or more handling tasks are obtained.
  5. 根据权利要求4所述的方法,其特征在于,所述对每一巷道内的箱子按照机器人的最大容量进行任务切分,得到一个或多个搬运任务,包括:The method according to claim 4, wherein the tasks are divided into the boxes in each lane according to the maximum capacity of the robot to obtain one or more handling tasks, including:
    将当前巷道内的箱子依次添加到搬运任务中,直至所述搬运任务满员时,所述搬运任务切分完成;Add the boxes in the current laneway to the handling task in turn, until the handling task is full, the handling task is divided and completed;
    将所述当前巷道内还未添加到搬运任务的箱子依次添加到下一个搬运任务中,以此类推,直至所述当前巷道内的箱子均添加到搬运任务中时,所述当前巷道内的箱子的任务切 分完成,得到一个或多个搬运任务。Add the boxes in the current lane that have not been added to the handling task in turn to the next handling task, and so on, until all the boxes in the current lane are added to the handling task, the boxes in the current lane The tasks are divided and completed, and one or more handling tasks are obtained.
  6. 根据权利要求5所述的方法,其特征在于,还包括:The method according to claim 5, further comprising:
    当所述当前巷道内的最后一个箱子添加到当前搬运任务中时,若所述当前搬运任务未满员,则将下一巷道内的箱子依次添加到所述当前搬运任务中,直至所述当前搬运任务满员。When the last box in the current lane is added to the current handling task, if the current handling task is not full, the boxes in the next lane will be added to the current handling task in turn until the current handling task The task is full.
  7. 根据权利要求5或6所述的方法,其特征在于,任一搬运任务满员是指:所述搬运任务所包含的箱子的数量等于机器人的最大容量。The method according to claim 5 or 6, wherein the fullness of any transport task means that the number of boxes included in the transport task is equal to the maximum capacity of the robot.
  8. 根据权利要求3所述的方法,其特征在于,所述使用启发式算法,对所述初始切分结果进行迭代优化,得到所述至少一个搬运任务,包括:The method according to claim 3, wherein the use of a heuristic algorithm to iteratively optimize the initial segmentation results to obtain the at least one handling task includes:
    根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果;According to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated, and the optimized segmentation result of the current round is obtained;
    计算所述优化切分结果的目标函数值;Calculating the objective function value of the optimized segmentation result;
    根据所述优化切分结果的目标函数值,以及本轮的起始切分结果的目标函数值,确定下一轮迭代的起始切分结果;According to the objective function value of the optimized segmentation result and the objective function value of the initial segmentation result of the current round, determine the initial segmentation result of the next iteration;
    若不满足迭代停止条件,则根据所述下一轮迭代的起始切分结果,进行下一轮迭代优化,直至满足迭代停止条件时停止迭代优化。If the iteration stop condition is not satisfied, the next round of iterative optimization is performed according to the initial segmentation result of the next iteration, until the iteration stop condition is met, and the iterative optimization is stopped.
  9. 根据权利要求8所述的方法,其特征在于,若不满足迭代停止条件,则根据所述下一轮迭代的起始切分结果,进行下一轮迭代优化,直至满足迭代停止条件时停止迭代优化之后,还包括:The method according to claim 8, characterized in that, if the iteration stop condition is not met, then according to the initial segmentation result of the next round of iteration, the next round of iteration optimization is performed until the iteration stop condition is met, and the iteration is stopped After optimization, it also includes:
    根据所述初始切分结果的目标函数值,和每一轮迭代的优化切分结果的目标函数值,确定目标函数值最小的切分结果,所述目标函数值最小的切分结果包含至少一个搬运任务。According to the objective function value of the initial segmentation result and the objective function value of the optimized segmentation result of each round of iterations, the segmentation result with the smallest objective function value is determined, and the segmentation result with the smallest objective function value contains at least one Handling tasks.
  10. 根据权利要求8所述的方法,其特征在于,所述目标函数值包括:The method according to claim 8, wherein the objective function value comprises:
    切分结果所包含的所有搬运任务执行时跨巷道的总数量,The total number of lanes crossed when all handling tasks included in the segmentation result are executed,
    和/或,and / or,
    切分结果所包含的所有搬运任务执行时跨巷道的总距离跨度。The total distance span across the lanes when all the handling tasks included in the segmentation result are executed.
  11. 根据权利要求8所述的方法,其特征在于,所述起始切分结果包括一个或者多个搬运任务,每一所述搬运任务包括一个或者多个巷道,以及每一所述巷道内的至少一个箱子。The method according to claim 8, wherein the initial segmentation result includes one or more handling tasks, each of the handling tasks includes one or more lanes, and at least a box.
  12. 根据权利要求11所述的方法,其特征在于,所述根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果,包括:The method according to claim 11, characterized in that, according to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
    将所述起始切分结果中任一搬运任务的任一巷道内的箱子,随机移动到另一搬运任务中,得到本轮的优化切分结果,所述优化切分结果中每一搬运任务所包含箱子的数量小于 或等于机器人的最大容量。Randomly move the boxes in any aisle of any handling task in the initial segmentation result to another handling task to obtain the optimized segmentation result of the current round. In the optimized segmentation result, each handling task The number of contained boxes is less than or equal to the robot's maximum capacity.
  13. 根据权利要求11所述的方法,其特征在于,所述根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果,包括:The method according to claim 11, characterized in that, according to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
    若所述起始切分结果的两个搬运任务均包含第一巷道内的箱子,则交换所述两个搬运任务中任一所述第一巷道内的箱子,得到本轮的优化切分结果,所述优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。If the two handling tasks of the initial segmentation result include boxes in the first lane, exchange the boxes in any one of the two handling tasks in the first lane to obtain the optimized segmentation result of this round , the number of boxes contained in each handling task in the optimized segmentation result is less than or equal to the maximum capacity of the robot.
  14. 根据权利要求11所述的方法,其特征在于,所述根据邻域算子,生成本轮的起始切分结果的邻域可行解,得到本轮的优化切分结果,包括:The method according to claim 11, characterized in that, according to the neighborhood operator, the neighborhood feasible solution of the initial segmentation result of the current round is generated to obtain the optimal segmentation result of the current round, including:
    根据所述起始切分结果的每一搬运任务中每一巷道内的箱子数量,确定目标搬运任务的目标巷道,所述目标搬运任务的所有巷道中所述目标巷道的箱子数量最少,且所有搬运任务中所述目标搬运任务的所述目标巷道内的箱子数量最少;According to the number of boxes in each lane in each handling task of the initial segmentation result, determine the target lane of the target handling task, the number of boxes in the target lane is the least among all lanes of the target handling task, and all The number of boxes in the target lane of the target transport task in the transport task is the least;
    将所述目标搬运任务的所述目标巷道内的箱子,移动到另一包含所述目标巷道的搬运任务中,得到本轮的优化切分结果,所述优化切分结果中每一搬运任务所包含箱子的数量小于或等于机器人的最大容量。Move the boxes in the target lane of the target handling task to another handling task that includes the target lane, and obtain the optimized segmentation result of the current round, in which each handling task in the optimized segmentation result The number of contained boxes is less than or equal to the robot's maximum capacity.
  15. 根据权利要求1所述的方法,其特征在于,所述将每一所述搬运任务分配给处于空闲状态的机器人,包括:The method according to claim 1, wherein the assigning each of the carrying tasks to a robot in an idle state comprises:
    对所述至少一个搬运任务进行排序;sequencing the at least one handling task;
    根据排序结果,依次将每一所述搬运任务分配给处于空闲状态的机器人。According to the sorting result, each of the handling tasks is assigned to the robot in an idle state in sequence.
  16. 根据权利要求15所述的方法,其特征在于,所述对所述至少一个搬运任务进行排序,包括:The method according to claim 15, wherein said sorting said at least one handling task comprises:
    按照排序因素,对所述至少一个搬运任务进行排序;sorting the at least one handling task according to a sorting factor;
    所述排序因素包括以下至少一种:The ranking factors include at least one of the following:
    搬运任务的优先级、搬运任务的目的地的排队拥堵程度、搬运任务包含巷道的拥堵程度、搬运任务执行时跨巷道的数量、搬运任务执行时跨巷道的距离跨度、搬运任务包含的箱子的总数。The priority of the handling task, the queuing congestion level of the destination of the handling task, the congestion level of the laneway included in the handling task, the number of lanes crossed during the execution of the handling task, the distance span across the lanes during the execution of the handling task, and the total number of boxes included in the handling task .
  17. 根据权利要求15所述的方法,其特征在于,所述根据排序结果,依次将每一所述搬运任务分配给处于空闲状态的机器人,包括:The method according to claim 15, characterized in that, according to the sorting results, sequentially assigning each of the handling tasks to a robot in an idle state comprises:
    根据排序结果,将下一个搬运任务所包含的箱子作为待分配箱子;According to the sorting results, the boxes included in the next handling task are used as the boxes to be allocated;
    根据所述待分配箱子所在的位置,以及处于空闲状态的机器人所在的位置,计算每一处于空闲状态的机器人与所述待分配箱子的最小距离;According to the location of the box to be allocated and the location of the robot in the idle state, calculate the minimum distance between each robot in the idle state and the box to be allocated;
    将所述下一个搬运任务分配给与待分配箱子的最小距离最小的处于空闲状态的机器 人。Assign the next handling task to the idle robot with the smallest minimum distance to the box to be assigned.
  18. 一种任务分配的装置,其特征在于,包括:A device for assigning tasks, characterized in that it comprises:
    任务切分模块,用于根据待搬运的箱子的目的地,按照箱子所在巷道,对具有相同目的地的箱子进行任务切分,生成至少一个搬运任务,其中,每一所述搬运任务包括一个或多个箱子,每一所述搬运任务所包含箱子的数量小于或等于机器人的最大容量;The task segmentation module is used to divide the tasks of the boxes with the same destination according to the destination of the boxes to be transported according to the lanes where the boxes are located, and generate at least one transport task, wherein each transport task includes one or A plurality of boxes, the number of boxes contained in each said handling task is less than or equal to the maximum capacity of the robot;
    任务分配模块,用于将每一所述搬运任务分配给处于空闲状态的机器人。The task allocation module is configured to allocate each of the carrying tasks to the robots in an idle state.
  19. 一种任务分配的设备,其特征在于,包括:存储器,处理器;A task distribution device, characterized in that it includes: a memory, a processor;
    处理器,存储器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序;a processor, a memory, and a computer program stored on said memory and executable on said processor;
    其中,所述处理器运行所述计算机程序时实现如权利要求1-17中任一项所述的方法。Wherein, the processor implements the method according to any one of claims 1-17 when running the computer program.
  20. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-17中任一项所述的方法。A computer-readable storage medium, characterized in that, computer-executable instructions are stored in the computer-readable storage medium, and when the computer-executable instructions are executed by a processor, they are used to implement any one of claims 1-17. described method.
  21. 一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-17中任一项所述的方法。A computer program product, characterized in that it includes a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1-17 is implemented.
PCT/CN2022/107839 2021-08-16 2022-07-26 Task allocation method and apparatus, device, storage medium, and program product WO2023020213A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110935525.4 2021-08-16
CN202110935525.4A CN115907051A (en) 2021-08-16 2021-08-16 Method, device, equipment, storage medium and program product for task allocation

Publications (1)

Publication Number Publication Date
WO2023020213A1 true WO2023020213A1 (en) 2023-02-23

Family

ID=85239464

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/107839 WO2023020213A1 (en) 2021-08-16 2022-07-26 Task allocation method and apparatus, device, storage medium, and program product

Country Status (2)

Country Link
CN (1) CN115907051A (en)
WO (1) WO2023020213A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116307645A (en) * 2023-05-22 2023-06-23 浙江凯乐士科技集团股份有限公司 Method and device for partitioning operation area of warehouse vehicle, electronic equipment and medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2420980A1 (en) * 2010-08-06 2012-02-22 Logotecna S.R.L. Automatic storage system for pharmacies
CN106892233A (en) * 2017-02-23 2017-06-27 北京京东尚科信息技术有限公司 Method, device, electronic equipment and storage medium for commodity layout for storekeeping
CN110111048A (en) * 2019-04-29 2019-08-09 西安电子科技大学 Order taking responsibility dispatching method in warehousing system
WO2020006010A1 (en) * 2018-06-25 2020-01-02 Ahmann Robert D Automated warehouse system and method for optimized batch picking
CN110803447A (en) * 2019-09-20 2020-02-18 北京旷视机器人技术有限公司 Article transportation management method, device and system and storage medium
CN112101620A (en) * 2020-08-12 2020-12-18 久恒理树 Logistics line planning method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2420980A1 (en) * 2010-08-06 2012-02-22 Logotecna S.R.L. Automatic storage system for pharmacies
CN106892233A (en) * 2017-02-23 2017-06-27 北京京东尚科信息技术有限公司 Method, device, electronic equipment and storage medium for commodity layout for storekeeping
WO2020006010A1 (en) * 2018-06-25 2020-01-02 Ahmann Robert D Automated warehouse system and method for optimized batch picking
CN110111048A (en) * 2019-04-29 2019-08-09 西安电子科技大学 Order taking responsibility dispatching method in warehousing system
CN110803447A (en) * 2019-09-20 2020-02-18 北京旷视机器人技术有限公司 Article transportation management method, device and system and storage medium
CN112101620A (en) * 2020-08-12 2020-12-18 久恒理树 Logistics line planning method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116307645A (en) * 2023-05-22 2023-06-23 浙江凯乐士科技集团股份有限公司 Method and device for partitioning operation area of warehouse vehicle, electronic equipment and medium

Also Published As

Publication number Publication date
CN115907051A (en) 2023-04-04

Similar Documents

Publication Publication Date Title
US11724879B2 (en) Management method, device and system applied to goods-to-person system, server and computer storage medium
WO2020238657A1 (en) Goods sorting method and goods sorting system
US20210133534A1 (en) Cloud task scheduling method based on phagocytosis-based hybrid particle swarm optimization and genetic algorithm
US20210056482A1 (en) Inventory scheduling method and device and non-transitory computer readable storage medium
Pan et al. Storage assignment problem with travel distance and blocking considerations for a picker-to-part order picking system
Wutthisirisart et al. A two-phased heuristic for relation-based item location
KR20120092930A (en) Distributed memory cluster control apparatus and method using map reduce
JP6376865B2 (en) Computer-implemented method, storage medium, and computer system for parallel tree-based prediction
CN111476413A (en) Warehouse storage position distribution method and system based on big data
WO2022057248A1 (en) Order processing method and apparatus, device, system and storage medium
US10363659B2 (en) System and method for load balancing of robots to create more equivalent task loads across task servers
CN112785132B (en) Task allocation method for multi-robot mobile shelf for intelligent warehouse
WO2023020213A1 (en) Task allocation method and apparatus, device, storage medium, and program product
CN112685138B (en) Multi-workflow scheduling method based on multi-population hybrid intelligent optimization in cloud environment
CN115660380B (en) Order processing method and device for picking goods to person
Zhuang et al. Rack retrieval and repositioning optimization problem in robotic mobile fulfillment systems
CN116542365A (en) Order allocation and AGV scheduling combined optimization method in mobile robot fulfillment system
Mrazovic et al. Multi-vehicle route planning for efficient urban freight transport
EP1524599B1 (en) A method of reassigning objects to processing units
WO2023173992A1 (en) Goods delivery method and apparatus, and device
CN116629495A (en) Method and device for outputting information
Shafahi et al. An efficient task scheduling in cloud computing based on ACO algorithm
CN115344050A (en) Stacker path planning method based on improved clustering algorithm
CN112948087A (en) Task scheduling method and system based on topological sorting
CN113407336A (en) Full-comparison data distribution method based on tabu search optimization algorithm

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22857526

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE