Task allocation method and device, scheduling equipment, storage medium and program product

By generating the target solution based on lane location sorting and operator adjustment in the warehousing and logistics system, the problem of accumulated order processing delays is solved, achieving efficient resource utilization and improved order processing efficiency. This method is applicable to task allocation in warehousing systems.

CN121903513APending Publication Date: 2026-04-21SHENZHEN KUBO SOFTWARE CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHENZHEN KUBO SOFTWARE CO LTD
Filing Date
2025-12-26
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

In traditional warehousing and logistics systems, the accumulation of order processing delays makes it difficult to meet the demands of high-frequency, fast-turnover operations. First-in-first-out (FIFO) strategies and deadline-based priority scheduling strategies cannot achieve optimal utilization of global resources.

Method used

Initial solutions are generated by sorting and grouping them according to the location of the roadway. The task groups are then adjusted by combining destruction operators, insertion operators, and exchange operators. The time cost is calculated to determine the target solution, thereby achieving synergistic optimization of order fulfillment and resource utilization.

Benefits of technology

It improved the utilization rate of warehousing resources and the efficiency of order processing, met the operational needs of high-frequency, fast-turnover orders, reduced the ineffective movement of robots, and balanced the task load in the aisle.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121903513A_ABST
    Figure CN121903513A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a task allocation method and device, scheduling equipment, a storage medium and a program product, and the task allocation method comprises the steps: sorting all tasks in a to-be-allocated task wave according to a roadway position corresponding to each task in the to-be-allocated task wave, and carrying out the task grouping based on a sorting result, and obtaining an initial solution; based on at least one of a destruction operator, an insertion operator and an exchange operator, adjusting the task group in the initial solution to obtain at least one adjustment solution; calculating the time cost of the initial solution and each adjustment solution, and determining a target solution from the initial solution and the at least one adjustment solution based on the time cost; and performing grouping and task allocation on the to-be-allocated task waves based on the target solution. In combination with one or more of destruction, insertion and exchange operators, dynamic grouping optimization of order tasks is realized, and the resource utilization rate and the overall efficiency of order processing are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of warehousing system technology, and in particular to a task allocation method, apparatus, scheduling equipment, storage medium and program product. Background Technology

[0002] In the warehousing and logistics sector, order processing efficiency directly impacts the overall responsiveness of the supply chain. Traditional warehousing and logistics systems typically employ a wave picking model for order processing. This model combines multiple orders into a single task wave for centralized processing, which can reduce scheduling frequency and operational costs to some extent. However, due to order consolidation, the wave picking model suffers from accumulated order processing delays. This means subsequent waves must wait for the preceding waves to complete before entering the processing flow, making it difficult to meet the demands of high-frequency, fast-turnaround operations.

[0003] To address the latency accumulation issue in wave picking, order flow picking emerged, which determines the timeliness of order processing by strictly limiting the processing window for each wave. Order flow picking often employs a first-in, first-out (FIFO) strategy or a deadline-based priority scheduling strategy. FIFO processes orders only in the order of arrival, while deadline-based priority scheduling focuses only on the time constraints of individual orders, lacking overall optimization of the global task, ultimately leading to low global resource utilization. Summary of the Invention

[0004] This disclosure provides a task allocation method, apparatus, scheduling device, storage medium, and program product. Initial solutions are generated by sorting and grouping according to the location of the tunnel. The initial solutions are adjusted by combining destruction operators, insertion operators, and exchange operators to obtain multiple solutions. The target solution is selected from these solutions based on time cost. Under the premise of meeting the wave processing time window, the task group division and resource allocation are dynamically adjusted to achieve synergistic optimization of order fulfillment and resource utilization.

[0005] In a first aspect, this disclosure provides a task allocation method, comprising: sorting all tasks in the task wave to be allocated according to the roadway location corresponding to each task in the task wave to be allocated, and grouping the tasks based on the sorting results to obtain an initial solution; adjusting the task groups in the initial solution based on at least one of a destruction operator, an insertion operator, and a swapping operator to obtain at least one adjusted solution; calculating the time cost of the initial solution and each adjusted solution, and determining a target solution from the initial solution and at least one adjusted solution based on the time cost; and grouping and allocating tasks in the task wave to be allocated based on the target solution.

[0006] In one possible implementation, the task waves to be assigned include the current task wave and the next task wave, with tasks in the current task wave being high-priority tasks and tasks in the next task wave being low-priority tasks; the target task is a low-priority task.

[0007] In one possible implementation, the insertion operator is used to insert tasks of the next task wave and insert the tasks of the next task wave into the corresponding second lane, where the number of tasks belonging to the task wave to be assigned in the second lane is less than a second quantity threshold.

[0008] In one possible implementation, the task groups in the initial solution are adjusted based on at least one of the destruction operator, insertion operator, and exchange operator to obtain at least one adjusted solution. This includes: during adjustment, based on the destruction operator, randomly determining a target boundary point from the boundary points between any two adjacent task groups in the initial solution, randomly adjusting the position of the target boundary point, determining the adjusted task group corresponding to the target boundary point, and obtaining the adjusted solution.

[0009] In one possible implementation, the task waves to be assigned include the current task wave and the next task wave. Based on at least one of the destruction operator, insertion operator, and exchange operator, the task groups in the initial solution are adjusted to obtain at least one adjusted solution. This includes: during adjustment, based on the destruction operator, randomly removing at least one task from the next task wave of the target task; and grouping the remaining tasks in the initial solution after removing the tasks to obtain the adjusted solution.

[0010] In one possible implementation, the time cost of the initial solution and each adjusted solution is calculated by: obtaining the total number of robots based on the number of workstations opened in the warehousing system and the number of robots served by each workstation; for each solution in the initial solution and each adjusted solution, calculating the time cost of each task group in the solution executed by robots of the total number of robots to obtain the time cost of the solution; wherein each task group is executed by one robot.

[0011] In one possible implementation, the time cost for the robot to perform the corresponding task group includes walking cost, box picking and placing cost, turning cost, queuing cost, and vehicle switching cost; the walking cost is determined by the walking distance of the corresponding task group; the box picking and placing cost is determined by the number of boxes in the corresponding task group; the turning cost is determined by the number of turns the robot makes when performing the corresponding task group; the queuing cost is determined by the average number of queuing robots; and the vehicle switching cost is a preset value.

[0012] In one possible implementation, determining the target solution from the initial solution and at least one adjusted solution based on time cost includes: determining a feasible solution from the initial solution and at least one adjusted solution based on time cost and constraints; wherein the constraints include the time cost of the solution being less than the available time of the task wave to be assigned, and the number of lanes accessed by each task group in the solution being less than a set number; and determining the target solution from the feasible solutions.

[0013] In one possible implementation, determining the target solution from the feasible solutions includes: calculating a score for each feasible solution based on the time cost of the feasible solutions and the time cost of low-priority tasks in the feasible solutions; and determining the feasible solution with the highest score as the target solution.

[0014] In one possible implementation, determining the target solution from the feasible solutions includes: for each feasible solution, calculating the sum of the remaining time after the robots of the total number of robots execute the feasible solution to obtain a first score for the feasible solution; the remaining time is the difference between the available time of the task group and the time cost of the corresponding robot executing the task group; calculating a second score for each feasible solution based on the time cost of the feasible solution and the time cost of the low-priority tasks in the feasible solution; and determining the target solution from the feasible solutions based on the first score and the second score of each feasible solution.

[0015] In one possible implementation, the method further includes the steps of: if no feasible solution exists, releasing at least one robot, updating the total number of robots, returning to the execution of each solution in the initial solution and each adjusted solution, calculating the time cost of each task group in the solution executed by the robots of the total number of robots, and obtaining the time cost of the solution, in order to redetermine a feasible solution.

[0016] In one possible implementation, based on the target solution, the task waves to be assigned are grouped and tasks are assigned, including: grouping the task waves to be assigned based on the target solution to obtain multiple target task groups; determining available robots; assigning available robots to each target task group; and determining initial workstations and candidate workstations based on the target task groups assigned to the available robots, so that when the assigned available robots arrive at the station area in front of the initial workstation, they determine the target workstation from the initial workstation and candidate workstations and transport the assigned target task group to the target workstation.

[0017] In one possible implementation, allocating available robots to each target task group includes: determining the time cost for each available robot to execute each target task group; for each target task group, determining the execution score for each available robot to execute each target task group based on the difference between the available time of the target task group and the time cost for each available robot to execute the target task group; filtering and sorting the available robots based on each execution score to obtain a robot sequence corresponding to the target task group; and allocating available robots to each target task group based on the robot sequence corresponding to each target task group.

[0018] Secondly, embodiments of this disclosure provide a task allocation apparatus, comprising: an initial solution determination module, configured to sort all tasks in the task wave to be allocated according to the roadway position corresponding to each task in the task wave to be allocated, and group the tasks based on the sorting result to obtain an initial solution; an initial solution adjustment module, configured to adjust the task groups in the initial solution based on at least one of a destruction operator, an insertion operator, and a swap operator to obtain at least one adjusted solution; wherein, the destruction operator is used to remove at least one target task or adjust the boundary point between two adjacent task groups in the initial solution; in the initial solution, the number of tasks in the first roadway where the target task is located is greater than or equal to a first quantity threshold; the insertion operator is used to insert tasks outside the task wave to be allocated; the swap operator is used to swap the order of adjacent tasks in the same task group; a target solution determination module, configured to calculate the time cost of the initial solution and each adjusted solution, and determine the target solution from the initial solution and at least one adjusted solution based on the time cost; and a task allocation module, configured to group and allocate tasks in the task wave to be allocated based on the target solution.

[0019] Thirdly, embodiments of this disclosure provide a scheduling device, including: a memory and a processor; the memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory, causing the processor to perform the first aspect and / or various possible implementations of the first aspect as described above.

[0020] Fourthly, embodiments of this disclosure provide a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the first aspect and / or various possible implementations of the first aspect.

[0021] Fifthly, embodiments of this disclosure provide a computer program product, including a computer program that, when executed by a processor, implements the first aspect and / or various possible implementations of the first aspect.

[0022] The task allocation method, apparatus, scheduling device, storage medium, and program product provided in this disclosure, when allocating one or more tasks, first generate an initial solution based on the aisle location to ensure the physical location continuity of each task group in the initial solution, thereby reducing robot movement costs; adjust the initial solution using one or more of the destruction operator, insertion operator, and exchange operator; remove target tasks from aisles with task loads exceeding a threshold or adjust task group boundary points using the destruction operator to attempt to balance the task load of each aisle; introduce tasks outside the wave to be allocated using the insertion operator to break the time sequence barrier between waves, thereby alleviating the latency accumulation problem of traditional single-wave picking; change the order of adjacent tasks within the same task group using the exchange operator to find a better task processing order, thereby improving the connection efficiency of task execution; calculate the time cost of each solution, and use the time cost to determine the target solution; take the task grouping in the target solution as the final task allocation result; and achieve global optimization of task allocation by comparing multiple grouping schemes, effectively improving the utilization rate of warehouse resources and the overall order processing efficiency, meeting the operational needs of high-frequency, fast-turnover order processing scenarios. Attached Figure Description

[0023] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.

[0024] Figure 1a This is a timing diagram of traditional wave sorting;

[0025] Figure 1b This is a timing diagram of the order flow picking mode;

[0026] Figure 2 A flowchart illustrating the task allocation method provided in this embodiment of the disclosure;

[0027] Figure 3 This is a schematic diagram of the task distribution in a wave of tasks to be assigned, provided in an embodiment of this disclosure.

[0028] Figure 4 Flowchart of the task allocation method provided in the embodiments of this disclosure Figure 2 ;

[0029] Figure 5 Flowchart of the task allocation method provided in the embodiments of this disclosure Figure 3 ;

[0030] Figure 6 A schematic diagram of the structure of the task allocation device provided in the embodiments of this disclosure;

[0031] Figure 7 A schematic diagram of the structure of the scheduling device provided in the embodiments of this disclosure.

[0032] The accompanying drawings have illustrated specific embodiments of this disclosure, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concepts of this disclosure to those skilled in the art through reference to particular embodiments. Detailed Implementation

[0033] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.

[0034] Order flow picking is a dynamic picking strategy developed in the warehousing and logistics field to meet the needs of high-frequency, fast-turnover operations. It breaks down the static barriers of traditional wave picking, which involves closed waves and sequential execution. By combining rigid time window constraints with dynamic wave scheduling, it overcomes the drawbacks of sequential execution in traditional wave picking.

[0035] Figure 1a A timing diagram for traditional wave sorting, such as Figure 1a As shown, in the traditional wave picking mode, the next wave can only start after the previous wave has completed, that is, the tasks corresponding to each wave are executed sequentially in the order of wave 1 to wave 5. In this picking mode, if any wave is delayed, it will cause the delay to accumulate throughout the entire process.

[0036] Figure 1b A timing diagram of the order flow picking pattern, such as... Figure 1b As shown, for Figure 1a The five order waves shown are wave 1 to wave 5. Time windows are assigned to each wave, with wave 1 to wave 5 corresponding to the following time windows: 9:00-9:15, 9:15-9:30, 9:45-10:00, 10:00-10:15, and 10:15-10:30. During picking, the next wave does not need to wait for the previous wave to complete; it can automatically start within its corresponding time window.

[0037] Taking wave 2 as an example, if wave 1 is not completed within the specified time window, but is completed at 9:20, then in the traditional wave picking mode, wave 2 needs to start at 9:20. However, in the order flow picking mode, wave 2 does not need to wait for wave 1 to complete and can be automatically started at its corresponding time window starting point of 9:15.

[0038] However, in order flow picking mode, task allocation often adopts a First-In, First-Out (FIFO) strategy or priority scheduling based on deadlines, resulting in low global resource utilization. The former only executes scheduling according to the order of order receipt, without considering key factors such as the aisle location and resource load status of the task, which can easily cause robots or operators to go back and forth, generating a lot of ineffective movement costs; the latter only focuses on the time constraint of a single order, prioritizing the scheduling of tasks with close deadlines, which can easily lead to the fragmented processing of tasks in the same aisle and frequent switching of work areas, thus failing to achieve optimal allocation of global resources.

[0039] Based on this, this disclosure provides a task allocation method. It first generates an initial solution by sorting and grouping tasks within the same time window according to their aisle location. Then, it uses destruction, insertion, and exchange operators to adjust the initial solution in multiple dimensions. Finally, it selects the target solution based on time cost, thus achieving global optimization of task allocation in the order flow picking mode. This method takes into account both the time window constraints of orders and, through optimization of the physical location of task groups and flexible adjustment of operators, balances the task load in each aisle, reduces unnecessary robot movement, and ultimately improves the overall resource utilization of the warehouse, meeting the needs of high-frequency, fast-turnover operations.

[0040] The technical solutions of this disclosure and how they solve the aforementioned technical problems will be described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of this disclosure will now be described with reference to the accompanying drawings.

[0041] Figure 2 This is a flowchart illustrating a task allocation method provided in an embodiment of the present disclosure. This task allocation method is applied to a warehousing system and can be executed by the system's scheduling equipment, which can be a computer, server, or other form of electronic equipment. The warehousing system can employ the aforementioned order flow picking mode for order picking.

[0042] like Figure 2 As shown, the task allocation method includes:

[0043] Step S201: Sort all tasks in the wave of tasks to be assigned according to the tunnel location corresponding to each task in the wave of tasks to be assigned, and group the tasks based on the sorting results to obtain the initial solution.

[0044] The task waves to be assigned are any one or more unassigned task waves. A task wave (or simply wave) can consist of one or more orders. Each order can be broken down into one or more tasks. One task in a task wave corresponds to one material box, and the aisle location corresponding to the task is the aisle location of the material box, such as the aisle location corresponding to the storage location of the material box.

[0045] If a task wave to be assigned contains multiple task waves, then these multiple task waves correspond to the same time window. Each task wave must be completed within its corresponding time window.

[0046] Optionally, the task wave to be assigned is the current task wave.

[0047] Optionally, the task waves to be assigned include the current task wave and the next task wave. Tasks in the current task wave are high-priority tasks, and tasks in the next task wave are low-priority tasks.

[0048] The task waves can be sorted according to their corresponding time windows, received times, priorities, deadlines, etc., to obtain a sequence of task waves to be assigned. The first task wave in this sequence is the current task wave, and the second task wave is the next task wave. After assigning a task wave, it is removed from the task wave sequence.

[0049] During task allocation, simultaneously allocating tasks to two adjacent task waves within the same time window effectively reduces the probability of resource idleness and improves resource utilization and overall task processing efficiency. By setting the priority of tasks in the current task wave higher than those in the next task wave, orderly scheduling of system resources is achieved, ensuring that each task wave is completed in wave order. This avoids the current task wave taking too long to complete due to the insertion of the next task wave, disrupting the execution rhythm, or even preventing the task from being completed within the time window.

[0050] After determining all the tasks in a wave, the scheduling system adds that wave to the end of the sequence of task waves to be assigned. Thus, when assigning tasks, the task wave at the head of the queue can be taken from the sequence as the task wave to be assigned.

[0051] A serpentine sorting algorithm can be used to sort all tasks in a wave of tasks by utilizing the aisle position corresponding to each task. The serpentine sorting algorithm sorts tasks by simulating the back-and-forth movement of a snake. Considering the characteristics of warehouse systems with multiple aisles arranged side-by-side and storage locations distributed sequentially along the aisle depth, serpentine sorting can minimize the robot's movement costs.

[0052] Figure 3This is a schematic diagram of the task distribution in the wave of tasks to be assigned provided in the embodiments of this disclosure, such as... Figure 3 As shown, the task wave to be assigned contains 16 material boxes to be retrieved, distributed in four parallel tunnels, namely tunnels H1 to H4. The positions of each material box in the corresponding tunnel are as follows: Figure 3 As shown. Taking the robot's entry from aisle H1 as an example when picking up goods, the serpentine sorting algorithm is used to sort the 16 bins as follows: bins L1 to L4, bins L7 to L5, bins L8 to L13, and bins L16 to L14.

[0053] After obtaining the sorting results, the N consecutive tasks can be grouped together according to the sorting results until the remaining tasks are less than or equal to N. The remaining tasks are then grouped together, resulting in multiple task groups, which constitutes the initial solution. N is the maximum number of boxes the robot can move at once, for example, 6.

[0054] Assuming N is 6, Figure 3 Taking the illustrated embodiment as an example, the initial solution includes three task groups: the first group consisting of bins L1 to L4, bins L7 and L6, the second group consisting of bins L5, L8 to L12, and the third group consisting of bins L13 to L6.

[0055] The various solutions mentioned in this disclosure, including initial solutions, adjusted solutions and target solutions, are all allocation methods for wave of tasks to be assigned. They are grouping results of all tasks in wave of tasks to be assigned, and the grouping results contain multiple task groups, each of which can be executed by a robot.

[0056] Step S202: Based on at least one of the destruction operator, insertion operator, and exchange operator, adjust the task group in the initial solution to obtain at least one adjusted solution.

[0057] Among them, the destruction operator is used to remove at least one target task or adjust the boundary point between two adjacent task groups in the initial solution; in the initial solution, the number of tasks in the first lane where the target task is located is greater than or equal to a first quantity threshold; the insertion operator is used to insert tasks outside the wave of tasks to be assigned; the exchange operator is used to exchange the order of adjacent tasks in the same task group.

[0058] The first quantity threshold is a configurable parameter. It can be a default value, such as 3 or 5, or it can be the quantity of tasks in the lane with the most initial task volume.

[0059] The workload of a roadway can be the total number of bins in the wave of tasks to be assigned in that roadway.

[0060] Multiple adjusted solutions can be obtained by adjusting the task group in the initial solution based on the various operators in the destruction, insertion, and exchange operators.

[0061] For example, by breaking, inserting, and swapping operators, the task group in the initial solution can be adjusted 10 times to obtain 30 adjusted solutions.

[0062] When adjusting the initial solution, one or more task boundary points can be randomly adjusted using the disruption operator. The task boundary point is the boundary separating two task groups when tasks are grouped.

[0063] Optionally, the task waves to be assigned include the current task wave and the next task wave. Tasks in the current task wave are high-priority tasks, and tasks in the next task wave are low-priority tasks; the target task is a low-priority task. One or more low-priority tasks in a lane with a large or numerous task load can be removed using a destruction operator.

[0064] Optionally, the task groups in the initial solution are adjusted based on at least one of the destruction operator, insertion operator, and exchange operator to obtain at least one adjusted solution, including: during adjustment, based on the destruction operator, a target boundary point is randomly determined from the boundary points between any two adjacent task groups in the initial solution, the position of the target boundary point is randomly adjusted, the adjusted task group corresponding to the target boundary point is determined, and the adjusted solution is obtained.

[0065] The target boundary point can be moved forward or backward by the position of one or more bins. Based on the moved target boundary point, the bins are regrouped to obtain an adjusted solution.

[0066] The target boundary point can be a partial boundary point in the wave of tasks to be assigned, or it can be a boundary point for all tasks. That is, the initial solution and the adjusted solution obtained by adjusting the task boundary points may contain the same task groups.

[0067] For example, when the target boundary point is the boundary point of the last two task groups in the initial solution, the task groups in the initial solution other than the last two task groups will be retained in the adjusted solution.

[0068] As mentioned above Figure 3 Taking the initial solution containing three task groups in the illustrated embodiment as an example, the task boundary point between any two task groups can be adjusted by the destruction operator. For example, the boundary point between the first group and the second group can be moved from between material bins L6 and L5 to between material bins L7 and L6, so that the first group becomes material bins L1 to L4 and L7, the second group consists of material bins L6, L5, L8 to L11, and the third group consists of material bins L12 to L6.

[0069] As mentioned above Figure 3 Taking the initial solution corresponding to the illustrated embodiment, which includes three task groups, as an example, the tunnel H3 contains six material boxes from L8 to L13, which has the largest number of tasks. Therefore, one or more of the material boxes from L8 to L13 can be randomly removed by the destruction operator, and the remaining material boxes can be regrouped. For example, material boxes L10 and L11 can be removed. The resulting adjusted solution is: the first group consisting of material boxes L1 to L4, L7 and L6, the second group consisting of material boxes L5, L8, L9, L12 to L14, and the third group consisting of material boxes L15 and L16.

[0070] By adjusting task demarcation points, the fixed boundaries of grouping can be broken to find grouping methods that are more time-efficient and have higher resource utilization.

[0071] Optionally, the task waves to be assigned include the current task wave and the next task wave. Based on at least one of the destruction operator, insertion operator, and exchange operator, the task groups in the initial solution are adjusted to obtain at least one adjusted solution, including: during adjustment, based on the destruction operator, randomly removing at least one task from the next task wave of the target task; and grouping the remaining tasks in the initial solution after removing the tasks to obtain the adjusted solution.

[0072] The destructive operator can remove at least one low-priority task from the next wave in a roadway with a large workload. This allows the remaining tasks—those remaining in the wave of tasks to be assigned after removing the removed tasks—to be regrouped as needed. This regrouping is done by sorting the tasks according to their corresponding roadway locations and then grouping them based on that sorting. The regrouping process is similar to the grouping process used when obtaining the initial solution and will not be elaborated upon here.

[0073] Regrouping as needed here means that after a task is removed, the task groups that were previously in the initial solution for the removed task will not be affected, and these tasks do not need to be regrouped; only the remaining tasks need to be regrouped.

[0074] By removing low-priority tasks through the destruction operator, we can find a grouping method that satisfies the current task wave and avoid the problem of execution time exceeding the corresponding time window.

[0075] The exchange operator can swap the order of any two adjacent tasks in any group of tasks. For example, ... Figure 3 In the illustrated embodiment, the order of adjacent bins L8 and L9 in the second group is swapped, so that the order of tasks in the second group becomes: L5, L9, L8, L10, L11, L12.

[0076] The insertion operator can be used to insert tasks that do not belong to the task wave to be assigned in the next task wave into the task wave to be assigned.

[0077] After inserting low-priority tasks from the next task wave into other task waves using the insertion operator, the tasks are regrouped as needed to obtain the adjusted solution.

[0078] Regrouping the insertion operator on demand means that there may be cases where some task groups in the initial solution do not need to be adjusted. In such cases, these task groups can remain unchanged, and only the remaining task groups need to be regrouped. For example, after inserting a task, one possible case is that a new task is added to the last task group of the initial solution.

[0079] Optionally, the insertion operator is used to insert tasks of the next task wave, and inserts the tasks of the next task wave into the corresponding second lane, wherein the number of tasks belonging to the task wave to be assigned in the second lane is less than the second quantity threshold.

[0080] The second quantity threshold is a configurable parameter. It can be a fixed value, such as 3, 4, 5 or other values, or it can be the quantity of tasks in the roadway with the fewest tasks in the initial solution.

[0081] One or more tasks corresponding to the second lane in the next task wave can be used as insertion operators to insert into the task wave to be assigned, and after insertion, they can be regrouped as needed.

[0082] By inserting tasks into lanes with smaller workloads, the method of adjusting the insertion method was avoided, which exacerbated lane congestion. While seeking an allocation method to improve resource utilization, the balance of task group load was also taken into account.

[0083] Step S203: Calculate the time cost of the initial solution and each adjusted solution, and determine the target solution from the initial solution and at least one adjusted solution based on the time cost.

[0084] After obtaining each adjusted solution, the time cost of each solution in the initial and adjusted solutions is calculated according to a preset formula. The solution with the lowest time cost can be directly determined as the target solution, or the target solution can be determined from among the solutions based on the time cost of each solution and other factors. Other factors may include the time cost of each task group in the solution, the time cost of a single task, and the number of lanes the robot needs to access when each task group is executed.

[0085] Each solution can be scored using an evaluation function that assesses its time cost. The objective function can be calculated based on the ideal execution conditions of the task groups within the solution. By combining the scores and the objective function values, the target solution can be determined from all solutions.

[0086] Step S204: Based on the target solution, group and assign tasks to the waves of tasks to be assigned.

[0087] According to the task grouping method in the target solution, that is, each task group in the target solution is assigned a robot, and the assigned robot executes the corresponding task group.

[0088] In addition to assigning robots, task allocation can also assign workstations. Based on the spatial layout of each task in a task group and the task progress of each workstation, workstations can be assigned to each task group, so that the robot can be controlled to move the assigned task group to the assigned workstation for picking.

[0089] The task allocation method provided in this disclosure first generates an initial solution based on the aisle location when allocating one or more task waves, ensuring the physical location of each task group in the initial solution is continuous to reduce robot movement costs. The initial solution is then adjusted using one or more of the following operators: destruction, insertion, and exchange. The destruction operator removes target tasks from aisles with excessive task loads or adjusts task boundary points to attempt to balance the task load across aisles. The insertion operator introduces tasks outside the assigned wave, breaking down the time-sequence barriers between waves to alleviate the latency accumulation problem of traditional single-wave picking. The exchange operator changes the order of adjacent tasks within the same task group to find a better task processing order, thereby improving the efficiency of task execution. The time cost of each solution is calculated, and the target solution is determined based on this time cost. The task grouping in the target solution is then used as the final task allocation result. By comparing multiple grouping schemes, global optimization of task allocation is achieved, effectively improving warehouse resource utilization and overall order processing efficiency, meeting the operational needs of high-frequency, fast-turnover order processing scenarios.

[0090] Figure 4 Flowchart of the task allocation method provided in the embodiments of this disclosure Figure 2 In this embodiment Figure 2 Based on the illustrated embodiment, the task allocation method will be described in detail, such as... Figure 4 As shown, this task allocation method may specifically include the following steps:

[0091] Step S401: Sort all tasks in the wave of tasks to be assigned according to the tunnel location corresponding to each task in the wave of tasks to be assigned, and group the tasks based on the sorting results to obtain the initial solution.

[0092] Step S402: The first destruction operator is called multiple times to randomly determine the target boundary point from the boundary points between any two adjacent task groups in the initial solution. The position of the target boundary point is randomly adjusted to determine the adjusted task group corresponding to the target boundary point, thus obtaining multiple adjusted solutions.

[0093] The first destruction operator can be invoked once to determine one or more target boundary points.

[0094] Step S403: The second destruction operator is called multiple times to randomly remove at least one task from the next wave of the target task. The remaining tasks in the initial solution after the task removal are grouped to obtain multiple adjusted solutions.

[0095] The second destruction operator can be invoked once to remove one or more tasks.

[0096] Step S404: The insertion operator is called multiple times to insert the task of the next task wave into the task sequence corresponding to the initial solution, and the tasks are grouped to obtain multiple adjusted solutions.

[0097] The insertion operator can be called once to insert one or more tasks.

[0098] Step S405: The swap operator is called multiple times to swap the order of adjacent tasks in the same task group in the initial solution, resulting in multiple adjusted solutions.

[0099] A single call to the swap operator can swap the order of one or more adjacent tasks.

[0100] For example, five adjusted solutions can be generated by the first breaking operator, five adjusted solutions can be generated by the second breaking operator, ten adjusted solutions can be generated by the insertion operator, and ten adjusted solutions can be generated by the exchange operator, for a total of 30 adjusted solutions.

[0101] Step S406: Calculate the time cost of the initial solution and each adjusted solution, and determine the target solution from the initial solution and at least one adjusted solution based on the time cost.

[0102] Step S407: Based on the target solution, group and assign tasks to the waves of tasks to be assigned.

[0103] Steps S402, S403, S404, and S405 can be executed in parallel.

[0104] Figure 5 Flowchart of the task allocation method provided in the embodiments of this disclosure Figure 3 In this embodiment Figure 2 Based on the illustrated embodiment, the task allocation method will be described in detail, such as... Figure 5 As shown, after obtaining at least one adjusted solution, such as 30 adjusted solutions, the task allocation method can further implement time cost calculation, target solution determination, and task allocation through the following steps:

[0105] Step S501: Based on the number of workstations activated in the warehousing system and the number of robots served by each workstation, the total number of robots is obtained.

[0106] If different workstations serve the same number of robots, then the total number of robots can be calculated by multiplying the number of robots served by a single workstation by the number of workstations that are active.

[0107] In a warehouse system, there may be workstations with different numbers of robots serving different tasks. In this case, the total number of robots can be calculated by summing the number of robots served by each of the workstations that are in operation.

[0108] The total number of robots is used to calculate the time cost under a unified and ideal state, that is, assuming that all robots in the total number of robots can be used to perform the tasks in the solution. The time cost of the solution is calculated through this unified assumption.

[0109] Step S502: For each solution in the initial solution and each adjusted solution, calculate the time cost of each task group in the solution executed by the robots of the total number of robots, and obtain the time cost of the solution.

[0110] Each task group is executed by a robot.

[0111] The assumption that each task group in the solution is executed by a number of robots is a general assumption. It is assumed that all task groups contained in the solution can be executed simultaneously and in parallel by a number of robots, so as to uniformly measure the time cost of different solutions.

[0112] If the number of task groups N in the solution is less than the total number of robots M, then the time cost can be calculated by leaving some robots idle. In this way, the time cost of M robots executing each task group in the solution is equal to the time cost of N robots executing each task group in the solution.

[0113] If the number of task groups N in the solution is greater than the total number of robots M, then multiple task groups can be assigned to some or all of the robots, and the time cost can be calculated in a way that distributes them as evenly as possible.

[0114] When calculating the time cost of a robot performing a set of tasks, the calculation can be based on the location of each task within that set, i.e., the location of the toy bin. After obtaining the time cost of each task set in the solution, the time cost of the solution is determined based on the time cost of each task set.

[0115] Since multiple robots execute different task groups in parallel, if a single robot is assigned multiple task groups, those multiple task groups need to be executed serially by that robot; therefore, the time cost of the solution can be taken as the maximum value of the time cost of the robot executing one or more task groups in its assigned solution.

[0116] Optionally, the time cost for the robot to execute the corresponding task group includes walking cost, box picking and placing cost, turning cost, queuing cost, and vehicle switching cost; walking cost is determined by the walking distance of the corresponding task group; box picking and placing cost is determined by the number of boxes in the corresponding task group; turning cost is determined by the number of turns the robot makes when executing the corresponding task group; queuing cost is determined by the average number of queuing robots; and vehicle switching cost is a preset value.

[0117] The task group corresponding to the robot is one of the task groups assigned to the hypothetical robot in the solution when calculating the time cost.

[0118] Walking cost is used to characterize the time it takes for a robot to walk between different task points within a task group when executing an assigned task group. The walking distance for a task group is the sum of the path lengths of all task points within that task group, moved sequentially in the order of execution.

[0119] The walking cost can be calculated as the product of the walking distance corresponding to the task group, such as the Manhattan distance, and the robot's average walking speed. The robot's average walking speed can be calculated by statistically analyzing the robot's actual walking speed during historical task executions.

[0120] The bin retrieval cost characterizes the cost of retrieving a bin from a given location after the robot arrives at that location within a task group. The bin retrieval cost is the product of the number of bins in the task group and the cost of retrieving or placing a single bin. The cost of retrieving or placing a single bin is the pre-configured time consumption.

[0121] Turning cost characterizes the time spent by a robot turning when performing a corresponding task group. Turning cost is the product of the number of turns the robot makes when performing a corresponding task group and the time spent on each turn. The time spent on each turn is a pre-configured time.

[0122] The reserved queuing cost characterizes the average queuing time for a robot in a warehousing system after retrieving materials from its task group and reaching its corresponding workstation. This time is a pre-determined time. The average number of robots queuing at each workstation in the warehousing system can be calculated by counting the number of robots queuing at each workstation. The reserved queuing cost can then be the product of this average number of robots and the preset mechanical time. The preset mechanical time is the time required for a robot to move forward one queue unit during queuing.

[0123] The switching cost is used to characterize the time it takes for a robot to leave an operating point after it has been queued at the corresponding workstation, where a robot currently unloading goods is waiting. The switching cost is a pre-determined preset value.

[0124] By fully evaluating the costs of the robot at each stage of executing the assigned task groups, the accuracy of time cost calculation for individual task groups has been improved.

[0125] Step S503: Based on time cost and constraints, determine whether there is a feasible solution among the initial solution and at least one adjusted solution. If yes, proceed to step S504; otherwise, proceed to step S505.

[0126] After obtaining the time cost of each solution, feasible solutions are found from among the solutions using the constraints and the time cost of each solution.

[0127] Constraints are used to ensure that each task in the solution is completed within its corresponding deadline, and that each task wave is completed before the deadline of its corresponding time window.

[0128] The constraints include that the time cost of the solution is less than the available time of the wave of tasks to be assigned, and that the number of tunnels visited by each task group in the solution is less than a set number.

[0129] The available duration of the task wave to be assigned is used to limit the overall execution time limit of the task wave. It can be determined by the corresponding time window, which can be the difference between the deadline and the start time of the corresponding time window, such as 15 minutes.

[0130] The setting used to constrain the number of lanes accessed by a single task group is pre-configured based on factors such as the lane resource scheduling rules of the warehousing system and the efficiency of robot movement across lanes, so as to avoid path congestion caused by too many task groups crossing lanes.

[0131] Constraints can also include constraints for individual task groups to ensure that the time cost of a single task group is less than the available time for that task group. The available time for a task group is the difference between the deadline of the earliest-due task in the group and the current time.

[0132] Based on the time cost of the solution, a feasible solution that satisfies the constraints is searched from the initial solution and each adjusted solution. If a feasible solution is found, then step S504 selects the better solution from the feasible solutions as the target solution. If no feasible solution is found, then step S505 releases some robot resources to increase the total number of robots, and returns to step S502 to recalculate the time cost of each solution under the increased total number of robots, so as to search for a feasible solution again.

[0133] Step S504: Determine the target solution from the feasible solutions.

[0134] The feasible solution with the lowest time cost, i.e. the least time consumption, can be directly identified as the target solution.

[0135] In some embodiments, since the insertion operator inserts tasks other than the task wave to be assigned, the time cost of inserting tasks other than the task wave to be assigned into the feasible solution also needs to be considered when evaluating the feasible solution.

[0136] The feasible solution with the smallest value among the feasible solutions can be determined as the target solution: the time cost of the feasible solution minus the time cost of the low-priority tasks in the feasible solution.

[0137] Optionally, from the feasible solutions, the target solution is determined, including: calculating a score for each feasible solution based on the time cost of the feasible solutions and the time cost of the low-priority tasks in the feasible solutions; and determining the feasible solution with the highest score as the target solution.

[0138] Low-priority tasks are those that are not part of the current task wave, such as tasks in the next task wave.

[0139] The time cost of a single task can be determined by the walking distance between that task and the previous or next task. This can include walking cost and box retrieval cost, and can also include the result obtained by adding the turning cost, queuing cost, and vehicle switching cost of the task group and dividing by the number of boxes in the task group.

[0140] The score of a feasible solution can be determined by the difference between the time cost of the feasible solution and the time cost of the low-priority tasks in the feasible solution. For example, it can be directly equal to the difference, or it can be the result obtained by normalizing the difference.

[0141] When evaluating feasible solutions, the time cost of low-priority tasks in the feasible solutions is taken into account, and the problem of increased time cost caused by merging the next wave of tasks is eliminated. This improves the accuracy of feasible solution evaluation and achieves global resource balance scheduling for multiple task waves.

[0142] When determining the target solution from feasible solutions, in addition to time cost, it is also necessary to consider the time remaining until the deadline after the tasks are completed after the tasks are assigned according to the feasible solutions. The longer this time is, the higher the score of the feasible solution and the higher the probability of it being determined as the target solution.

[0143] Optionally, determining the target solution from the feasible solutions includes: for each feasible solution, calculating the sum of the remaining time after the robots of the total number of robots execute the feasible solution to obtain the first score of the feasible solution; the remaining time is the difference between the available time of the task group and the time cost of the corresponding robot executing the task group; calculating the second score of each feasible solution based on the time cost of the feasible solution and the time cost of the low-priority tasks in the feasible solution; and determining the target solution from each feasible solution based on the first score and the second score of each feasible solution.

[0144] For each feasible solution, assume that a certain number of robots will execute each task group in the feasible solution. Based on the calculated time cost of each task group and the known deadline of each task in the task group, determine the remaining time of the robot after executing the corresponding task group. Add up the remaining time of the robots and determine the first score of the feasible solution based on the sum.

[0145] The deadline for a task group is the earliest deadline for each task within that group.

[0146] In some embodiments, the first score may also be determined by the maximum value of the robot's remaining time.

[0147] The second score of a feasible solution is determined by subtracting the time cost of the low-priority tasks in the feasible solution from the time cost of the feasible solution.

[0148] Based on the first and second scores of feasible solutions, the score of a feasible solution can be calculated, and the feasible solution with the highest score can be determined as the target solution.

[0149] The score of a feasible solution can be the average of the first and second scores or a weighted average.

[0150] The more available time a robot has after completing a task, the higher the time redundancy of the feasible solution, and the less likely it is to time out. By considering both time cost and remaining time when determining the target solution, we can avoid the execution risks caused by excessively pursuing low time costs, and also avoid the waste of resources caused by unilaterally retaining redundant time.

[0151] Step S505: Release at least one robot and update the total number of robots. Return to step S502 to recalculate the time cost of each task group in each solution to find a feasible solution again.

[0152] If no feasible solution is found, the solution is to release robots. One robot can be released at a time.

[0153] The number of robots to be released can be determined based on parameters calculated when searching for feasible solutions, such as the first score, the second score, and the remaining time.

[0154] Additional robots can be released by scheduling robots in non-core operations such as replenishment workstations, thereby increasing the total number of robots and updating the total number of robots. With the updated total number of robots, return to step S502 to recalculate the time cost of each solution under the updated total number of robots, so as to use the calculated time cost to find feasible solutions again.

[0155] Step S506: Based on the target solution, the waves of tasks to be assigned are grouped to obtain multiple target task groups.

[0156] After determining the target solution, the tasks to be assigned, or the task waves containing inserted tasks, are grouped according to the grouping method of the target solution to obtain multiple target task groups. That is, each task group in the target solution is determined as a target task group.

[0157] Step S507: Determine the available robots.

[0158] Available robots are those that can be used to perform the assigned task waves.

[0159] Available robots can include idle robots, robots that have completed their retrieval tasks and are heading to the workstation, robots queuing at the workstation, and robots located at workstation operation points. Idle robots are robots that have not been assigned any tasks.

[0160] Step S508: Assign available robots to each target task group.

[0161] Based on parameters such as the remaining task duration required for each available robot, the location of idle robots among the available robots, and the location of the first or last task in each target task group, available robots can be assigned to each target task group. This reduces the time that the target task group waits for the assigned available robot to be retrieved, as well as the walking distance that the robot needs to travel to retrieve the first task in the target task group.

[0162] Optionally, an available robot is assigned to each target task group, including: determining the time cost for each available robot to execute each target task group; for each target task group, determining the execution score for each available robot to execute each target task group based on the difference between the available time of the target task group and the time cost for each available robot to execute the target task group; filtering and sorting the available robots based on each execution score to obtain the robot sequence corresponding to the target task group; and assigning available robots to each target task group based on the robot sequence corresponding to each target task group.

[0163] The available time for the target task group is the difference between the deadline of the task with the earliest deadline in the target task group and the current time.

[0164] If the available robot is an idle robot, the time cost of the idle robot to execute the target task group can be obtained by adding the walking time corresponding to the walking distance of the idle robot to the first task in the target task group to the time cost of the target task group calculated above.

[0165] If an available robot is currently performing a task, the waiting time for the target task group can be determined based on the remaining time of the task being performed by the available robot, the robot's location after completing the task, or the corresponding workstation's operation point. The sum of the time cost of the target task group and the waiting time is the time cost for the available robot to perform the target task group.

[0166] If the difference between the available time for the target task group and the time cost for the available robots to execute the target task group is less than 0, the execution score is 0 or a negative value. This type of allocation can be filtered out during the allocation process. For the remaining allocation methods, various permutations and combinations can be used to obtain multiple combinations of the target task groups and multiple available robots. The sum of the execution scores under each combination is calculated, and the combination with the largest sum is used to allocate available robots to each target task group.

[0167] The target task group can be traversed in a certain order. For each target task group, the remaining available robots with the highest execution score are assigned to it. The remaining available robots refer to available robots that have not been assigned to a target task group.

[0168] By using the aforementioned method of allocating available robots, precise matching between multi-objective task groups and multiple available robots is achieved. Through the calculation of execution scores and the filtering and sorting based on execution scores, the risk of task execution timeout is effectively avoided, while further improving the utilization rate of robot resources.

[0169] Step S509: Based on the target task group assigned to the available robots, determine the initial workstation and candidate workstations, so that when the assigned available robots arrive at the station area in front of the initial workstation, they can determine the target workstation from the initial workstation and candidate workstations and transport the assigned target task group to the target workstation.

[0170] Candidate workstations can be workstations located within the preset range of the initial workstation. For example, workstations on the left and right sides of the initial workstation.

[0171] Candidate workstations can be workstations whose x-axis coordinates fall within the range of [x0-D, x0+D], where x0 is the x-axis coordinate of the initial workstation, and the x-axis direction is the horizontal direction containing the left and right sides of the initial workstation. D is the product of the preset duration and the robot's average walking speed. This preset duration can be the duration corresponding to the switching cost and the average picking cost.

[0172] After allocating available robots to each target task group, an initial workstation needs to be assigned to each available robot for reference and decision-making. After retrieving each bin from the target task group, on the way to the initial workstation, it is determined whether to modify the workstation, i.e. whether to use the candidate workstation as the final workstation.

[0173] The initial workstation corresponding to an available robot can be determined based on the area where each task or most of the tasks are located in the target task group assigned to the available robot.

[0174] The initial workstation can be determined based on the position of the available robot when it retrieves the last task group from the assigned target task group.

[0175] When the distance between the available robot and the initial workstation is reduced to a preset distance, the robot can determine whether to modify the workstation based on the status of each workstation among the initial and candidate workstations. That is, whether to adjust the workstation from the predetermined initial workstation to one of the candidate workstations.

[0176] In this embodiment, the time cost of each solution is obtained by estimating the total number of robots executing each task group in the solution, thus achieving unified quantification of time cost and providing a precise basis for selecting feasible solutions. Feasible solutions are searched from each solution based on time cost and constraints, and the target solution is selected from the feasible solutions, taking into account both the time limit requirements of task waves and the optimization of task processing efficiency. When no feasible solution is found, the robot release remedial measure breaks through the quantity limit and avoids task allocation stagnation due to insufficient robot resources, adapting to high-load operation scenarios. After determining the target solution, multiple workstations, including initial workstations and candidate workstations, are allocated to available robots. This allows available robots to determine the final workstation for the target task group for picking and allocation while on their way to the workstation after completing the picking task. This effectively reduces the probability of robots queuing and congesting at a single workstation, shortens the actual handover time, and improves the utilization rate of workstation resources, achieving dynamic optimal matching between robots and workstations.

[0177] Corresponding to the task allocation method provided in the foregoing embodiments, this disclosure also provides a task allocation device. Figure 6 This is a schematic diagram of the structure of the task allocation device provided in the embodiments of this disclosure, such as... Figure 6As shown, the task allocation device 60 provided in this embodiment includes: an initial solution determination module 610, used to sort all tasks in the task wave to be allocated according to the roadway position corresponding to each task in the task wave to be allocated, and to group tasks based on the sorting result to obtain an initial solution; an initial solution adjustment module 620, used to adjust the task groups in the initial solution based on at least one of a destruction operator, an insertion operator, and a swap operator to obtain at least one adjusted solution; wherein, the destruction operator is used to remove at least one target task or adjust the boundary point of two adjacent task groups in the initial solution; in the initial solution, the number of tasks in the first roadway where the target task is located is greater than or equal to a first quantity threshold; the insertion operator is used to insert tasks outside the task wave to be allocated; the swap operator is used to swap the order of adjacent tasks in the same task group; a target solution determination module 630, used to calculate the time cost of the initial solution and each adjusted solution, and to determine the target solution from the initial solution and at least one adjusted solution based on the time cost; and a task allocation module 640, used to group and allocate tasks in the task wave to be allocated based on the target solution.

[0178] In one possible implementation, the task waves to be assigned include the current task wave and the next task wave, with tasks in the current task wave being high-priority tasks and tasks in the next task wave being low-priority tasks; the target task is a low-priority task.

[0179] In one possible implementation, the insertion operator is used to insert tasks of the next task wave and insert the tasks of the next task wave into the corresponding second lane, where the number of tasks belonging to the task wave to be assigned in the second lane is less than a second quantity threshold.

[0180] In one possible implementation, in order to adjust the task groups in the initial solution based on at least one of the destruction operator, insertion operator, and exchange operator to obtain at least one adjusted solution, the solution adjustment module 620 is specifically used to: during adjustment, based on the destruction operator, randomly determine a target boundary point from the boundary points between any two adjacent task groups in the initial solution, randomly adjust the position of the target boundary point, determine the adjusted task group corresponding to the target boundary point, and obtain the adjusted solution.

[0181] In one possible implementation, the task waves to be assigned include the current task wave and the next task wave. In terms of adjusting the task groups in the initial solution based on at least one of the destruction operator, insertion operator, and exchange operator to obtain at least one adjusted solution, the solution adjustment module 620 is specifically used to: during adjustment, randomly remove at least one task from the next task wave in the target task based on the destruction operator; and group the remaining tasks in the initial solution after removing the tasks to obtain the adjusted solution.

[0182] In one possible implementation, the target solution determination module 630 includes a time cost calculation unit, which, in calculating the time cost of the initial solution and each adjusted solution, specifically: obtains the total number of robots based on the number of workstations opened in the warehousing system and the number of robots served by each workstation; for each solution in the initial solution and each adjusted solution, calculates the time cost of each task group in the solution executed by robots of the total number of robots, and obtains the time cost of the solution; wherein each task group is executed by one robot.

[0183] In one possible implementation, the time cost for the robot to perform the corresponding task group includes walking cost, box picking and placing cost, turning cost, queuing cost, and vehicle switching cost; the walking cost is determined by the walking distance of the corresponding task group; the box picking and placing cost is determined by the number of boxes in the corresponding task group; the turning cost is determined by the number of turns the robot makes when performing the corresponding task group; the queuing cost is determined by the average number of queuing robots; and the vehicle switching cost is a preset value.

[0184] In one possible implementation, the target solution determination module 630 includes a target solution determination unit, which, in determining a target solution from an initial solution and at least one adjusted solution based on time cost, specifically: determining a feasible solution from the initial solution and at least one adjusted solution based on time cost and constraints; wherein the constraints include the time cost of the solution being less than the available time of the task wave to be assigned, and the number of lanes visited by each task group in the solution being less than a set number; and determining the target solution from the feasible solutions.

[0185] In one possible implementation, the target solution determination unit is specifically used to: calculate a score for each feasible solution based on the time cost of the feasible solutions and the time cost of the low-priority tasks in the feasible solutions; and determine the feasible solution with the highest score as the target solution.

[0186] In one possible implementation, the target solution determination unit is specifically configured to: for each feasible solution, calculate the sum of the remaining time after the robots of the total number of robots execute the feasible solution to obtain a first score for the feasible solution; the remaining time is the difference between the available time of the task group and the time cost of the corresponding robot executing the task group; calculate a second score for each feasible solution based on the time cost of the feasible solution and the time cost of the low-priority tasks in the feasible solution; and determine the target solution from each feasible solution based on the first score and the second score of each feasible solution.

[0187] In one possible implementation, the task allocation device 60 further includes a remedial module for: if no feasible solution exists, releasing at least one robot, updating the total number of robots, returning to the steps of executing each solution for the initial solution and each adjusted solution, calculating the time cost of executing each task group in the solution by robots of the total number of robots, and obtaining the time cost of the solution, in order to redetermine a feasible solution.

[0188] In one possible implementation, the task allocation module, in terms of grouping and allocating tasks based on the target solution, specifically performs the following: grouping the tasks to be allocated based on the target solution to obtain multiple target task groups; determining available robots; allocating available robots to each target task group; and determining initial workstations and candidate workstations based on the target task groups allocated to the available robots, so that when the allocated available robots arrive at the station area in front of the initial workstation, they determine the target workstation from the initial workstation and candidate workstations and transport the allocated target task group to the target workstation.

[0189] In one possible implementation, the task allocation module, in allocating available robots to each target task group, specifically performs the following: determining the time cost for each available robot to execute each target task group; for each target task group, determining the execution score for each available robot to execute each target task group based on the difference between the available time of the target task group and the time cost for each available robot to execute the target task group; filtering and sorting the available robots based on each execution score to obtain the robot sequence corresponding to the target task group; and allocating available robots to each target task group based on the robot sequence corresponding to each target task group.

[0190] The task allocation device 60 provided in this embodiment can execute the task allocation method provided in the above method embodiment. Its implementation principle and technical effect are similar, and will not be described in detail here.

[0191] Figure 7 This is a schematic diagram of the structure of a scheduling device provided in an embodiment of this disclosure. Figure 7 As shown, the scheduling device 70 provided in this embodiment includes a processor 701 and a memory 702.

[0192] In the specific implementation process, the memory 702 stores computer execution instructions; the processor 701 executes the computer execution instructions stored in the memory 702, causing the processor 701 to execute the above-mentioned task allocation method.

[0193] The specific implementation process of processor 701 can be found in the above method embodiments, and its implementation principle and technical effect are similar. It will not be repeated here.

[0194] Optionally, the scheduling device 70 also includes a communication component 703. The processor 701, memory 702, and communication component 703 can be connected via a bus.

[0195] In the above embodiments, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this invention can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules within the processor.

[0196] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage device.

[0197] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.

[0198] This disclosure also provides a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, are used to implement the above-described method.

[0199] This disclosure also provides a computer program product, including a computer program that, when executed by a processor, implements the above-described method.

[0200] The aforementioned readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as Static Random Access Memory (SRAM), Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), magnetic storage, flash memory, magnetic disk, or optical disk. The readable storage medium can be any available medium accessible to a general-purpose or special-purpose computer.

[0201] An exemplary readable storage medium is coupled to a processor, enabling the processor to read information from and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can reside in an Application Specific Integrated Circuit (ASIC). Alternatively, the processor and the readable storage medium can exist as discrete components in the device.

[0202] The division of units is merely a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or units, and may be electrical, mechanical, or other forms.

[0203] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment, depending on actual needs.

[0204] In addition, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0205] If a function is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0206] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.

[0207] Finally, it should be noted that other embodiments of the invention will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This invention is intended to cover any variations, uses, or adaptations of the invention that follow the general principles of the invention and include common knowledge or customary techniques in the art not disclosed herein, and is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of the invention is limited only by the appended claims.

Claims

1. A task allocation method, characterized in that, include: According to the tunnel location corresponding to each task in the wave of tasks to be assigned, all tasks in the wave of tasks to be assigned are sorted, and tasks are grouped based on the sorting results to obtain an initial solution; Based on at least one of a destruction operator, an insertion operator, and a swap operator, the task groups in the initial solution are adjusted to obtain at least one adjusted solution; wherein, the destruction operator is used to remove at least one target task or adjust the boundary point between two adjacent task groups in the initial solution; in the initial solution, the number of tasks in the first lane where the target task is located is greater than or equal to a first quantity threshold; the insertion operator is used to insert tasks outside the wave of tasks to be assigned; the swap operator is used to swap the order of adjacent tasks in the same task group; Calculate the time cost of the initial solution and each of the adjusted solutions, and determine the target solution from the initial solution and the at least one adjusted solution based on the time cost; Based on the target solution, the waves of tasks to be assigned are grouped and tasks are assigned.

2. The method according to claim 1, characterized in that, The task waves to be assigned include the current task wave and the next task wave. The tasks in the current task wave are high-priority tasks, and the tasks in the next task wave are low-priority tasks. The target task is the low-priority task.

3. The method according to claim 1, characterized in that, The insertion operator is used to insert tasks for the next task wave, and inserts the tasks of the next task wave into the corresponding second lane, wherein the number of tasks belonging to the task wave to be assigned in the second lane is less than a second quantity threshold.

4. The method according to claim 1, characterized in that, The adjustment of the task group in the initial solution based on at least one of the destruction operator, insertion operator, and exchange operator yields at least one adjusted solution, including: During adjustment, based on the destruction operator, a target boundary point is randomly determined from any two adjacent boundary points between the task groups in the initial solution. The position of the target boundary point is randomly adjusted, and the adjusted task group corresponding to the target boundary point is determined to obtain the adjusted solution.

5. The method according to claim 1, characterized in that, The task waves to be assigned include the current task wave and the next task wave. The task groups in the initial solution are adjusted based on at least one of the destruction operator, insertion operator, and exchange operator to obtain at least one adjusted solution, including: During adjustment, based on the disruption operator, at least one task from the next task wave in the target task is randomly removed; The remaining tasks in the initial solution after removing tasks are grouped to obtain the adjusted solution.

6. The method according to claim 1, characterized in that, The time cost of calculating the initial solution and each adjusted solution includes: The total number of robots is obtained based on the number of workstations opened in the warehousing system and the number of robots served by each workstation. For each of the initial solution and each of the adjusted solutions, the time cost of executing each task group in the solution by the total number of robots is calculated to obtain the time cost of the solution; wherein each task group is executed by one robot.

7. The method according to claim 6, characterized in that, The time cost for the robot to perform the corresponding task group includes walking cost, box retrieval cost, turning cost, queuing cost, and vehicle switching cost; The walking cost is determined by the walking distance corresponding to the corresponding task group; The cost of the pick-and-place box is determined by the number of boxes in the corresponding task group; The turning cost is determined by the number of turns the robot makes when performing the corresponding task group; The reserved queuing cost is determined by the average number of queuing robots; The cost of switching vehicles is a preset value.

8. The method according to claim 6, characterized in that, Determining the target solution from the initial solution and the at least one adjusted solution based on the time cost includes: Based on the time cost and constraints, a feasible solution is determined from the initial solution and the at least one adjusted solution; wherein the constraints include the time cost of the solution being less than the available time of the task wave to be assigned, and the number of lanes visited by each task group in the solution being less than a set number. The target solution is determined from the feasible solutions.

9. The method according to claim 8, characterized in that, Determining the target solution from the feasible solutions includes: Based on the time cost of the feasible solution and the time cost of the low-priority tasks in the feasible solution, calculate the score of each feasible solution; The feasible solution with the highest score is determined as the target solution.

10. The method according to claim 8, characterized in that, Determining the target solution from the feasible solutions includes: For each feasible solution, the sum of the remaining time after the robots of the total number of robots execute the feasible solution is calculated to obtain the first score of the feasible solution; the remaining time is the difference between the available time of the task group and the time cost of the corresponding robot executing the task group; Based on the time cost of the feasible solution and the time cost of the low-priority tasks in the feasible solution, a second score is calculated for each feasible solution; The target solution is determined from the feasible solutions based on the first score and the second score of each feasible solution.

11. The method according to claim 8, characterized in that, The method further includes: If no feasible solution exists, at least one of the robots is released, the total number of robots is updated, and the process of executing each of the initial solution and each of the adjusted solutions, calculating the time cost of each task group in the solution by the robots of the total number of robots, and obtaining the time cost of the solution is returned to redetermine the feasible solution.

12. The method according to any one of claims 1-11, characterized in that, The step of grouping and assigning tasks to the waves of tasks to be assigned based on the target solution includes: Based on the target solution, the waves of tasks to be assigned are grouped to obtain multiple target task groups; Identify available robots; Assign the available robots to each of the target task groups; Based on the target task group assigned to the available robots, an initial workstation and candidate workstations are determined, so that when the assigned available robots arrive at the station area in front of the initial workstation, they can determine the target workstation from the initial workstation and the candidate workstations and transport the assigned target task group to the target workstation.

13. The method according to claim 12, characterized in that, The allocation of the available robots to each of the target task groups includes: Determine the time cost for each of the available robots to perform each of the target task groups; For each target task group, the execution score of each available robot in executing each target task group is determined based on the difference between the available time of the target task group and the time cost of each available robot in executing the target task group. Based on the execution scores, the available robots are filtered and sorted to obtain the robot sequence corresponding to the target task group; Based on the robot sequence corresponding to each target task group, an available robot is assigned to each target task group.

14. A task allocation device, characterized in that, include: The initial solution determination module is used to sort all the tasks in the wave of tasks to be assigned according to the roadway location corresponding to each task in the wave of tasks to be assigned, and to group the tasks based on the sorting results to obtain the initial solution. An initial solution adjustment module is used to adjust the task groups in the initial solution based on at least one of a destruction operator, an insertion operator, and a swap operator to obtain at least one adjusted solution; wherein, the destruction operator is used to remove at least one target task or adjust the boundary point between two adjacent task groups in the initial solution; in the initial solution, the number of tasks in the first lane where the target task is located is greater than or equal to a first quantity threshold; the insertion operator is used to insert tasks outside the wave of tasks to be assigned; the swap operator is used to swap the order of adjacent tasks in the same task group; A target solution determination module is used to calculate the time cost of the initial solution and each of the adjusted solutions, and to determine the target solution from the initial solution and the at least one adjusted solution based on the time cost; The task allocation module is used to group and allocate tasks to the waves of tasks to be allocated based on the target solution.

15. A scheduling device, characterized in that, include: Memory, processor; The memory stores computer-executed instructions; The processor executes computer execution instructions stored in the memory, causing the processor to perform the method as described in any one of claims 1-13.

16. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, are used to implement the method as described in any one of claims 1-13.

17. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method described in any one of claims 1-13.