Task scheduling method, device, computer equipment, and readable storage medium

By combining the task execution area and site characteristics of the task processing object, selecting appropriate task types and allocation principles, the problems of task aggregation and inefficiency in traditional task scheduling are solved, and more efficient task allocation and execution are achieved.

CN118761605BActive Publication Date: 2025-01-07HUBEI JOINTOWN TECH
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411239717.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-05
Publication Date
2025-01-07
Estimated Expiration
2044-09-05

AI Technical Summary

Technical Problem

Traditional task scheduling methods easily form aggregation of task processing objects during task execution, resulting in a decrease in task execution efficiency and an increase in the probability of congestion.

Method used

By obtaining the task execution area and site characteristics of the task processing object, selecting the task type corresponding to the site characteristics, and assigning the target tasks according to the task type and timeout status, avoiding the task processing object from forming aggregation locally.

Benefits of technology

It reduces the probability of congestion during task execution, improves task execution efficiency, and ensures the rationality and efficiency of task allocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118761605B_ABST
    Figure CN118761605B_ABST
Patent Text Reader

Abstract

The present application relates to a task scheduling method, device, computer equipment and computer-readable storage medium. The method comprises: selecting a task type corresponding to the site characteristics from the tasks to be assigned according to the site characteristics of the task execution area of ​​the task processing object, the task type comprises a first task type and a second task type, and the first task type and the second task type correspond to task execution areas with different site characteristics; selecting a task that complies with the task allocation principle of the task processing object from the task type corresponding to the site characteristics as the target task, if there is no task that complies with the task allocation principle of the task processing object in the task type corresponding to the site characteristics, selecting a task that complies with the task allocation principle of the task processing object from the task type that does not correspond to the site characteristics as the target task; and assigning the target task to the task processing object. The use of this method can reduce the probability of congestion in the task execution process and improve the efficiency of task execution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of warehouse task scheduling, and in particular to a task scheduling method, device, computer equipment, and computer-readable storage medium. Background Art

[0002] In traditional technology, when scheduling tasks, most of them prioritize searching for tasks that are closest to the task processing object (such as robots, automatic guided vehicles, etc.) within a certain range, and then assign the closest tasks to the task processing object for execution. However, this task scheduling method is prone to local clustering of task processing objects during task execution, increasing the probability of congestion of task processing objects, thereby reducing task execution efficiency. Summary of the invention

[0003] Based on this, it is necessary to provide a task scheduling method, device, computer equipment, computer-readable storage medium and computer program product that can reduce the probability of congestion during task execution and improve task execution efficiency in response to the above technical problems.

[0004] In a first aspect, the present application provides a task scheduling method, including: when there is a task processing object to which tasks need to be assigned, obtaining the tasks to be assigned, and determining the task execution area where the task processing object is located; according to the site characteristics of the task execution area, selecting the task type corresponding to the site characteristics from the tasks to be assigned; the task types include a first task type and a second task type, and the first task type and the second task type respectively correspond to task execution areas with different site characteristics; selecting the task that complies with the task allocation principle of the task processing object from the task types corresponding to the site characteristics as the target task; if there is no task that complies with the task allocation principle of the task processing object in the task types corresponding to the site characteristics, selecting the task that complies with the task allocation principle of the task processing object from the task types that do not correspond to the site characteristics as the target task; and assigning the target task to the task processing object.

[0005] In one embodiment, the task allocation principle of the task processing object includes: if there is a timeout task in the first task type and / or the second task type, the timeout task closest to the task processing object is used as the target task; if there is no timeout task, the non-timeout task closest to the task processing object is used as the target task.

[0006] In one of the embodiments, the task scheduling method further includes: determining whether there is a timeout task within the search range of the task processing object; if so, taking the timeout task closest to the task processing object as the target task, otherwise taking the non-timeout task closest to the task processing object within the search range as the target task; if there is no non-timeout task within the search range, taking the timeout task closest to the task processing object outside the search range as the target task, or abandoning the task allocation to the task processing object.

[0007] In one of the embodiments, the task scheduling method further includes: when there is no task to be assigned, updating the task after waiting for a preset period of time to obtain an updated task to be assigned; and assigning a target task to the task processing object based on the updated task to be assigned.

[0008] In one of the embodiments, the task scheduling method further includes: after assigning the target task to the task processing object, taking the task processing object as the current object, and taking the task processing object that is executing the task as the historical object; obtaining the historical task execution path when the historical objects execute their respective tasks; generating the current task initial path when the current object executes the target task based on the target task point position of the target task and the object position of the current object; if there is a path conflict between the historical task execution path and the current task initial path, changing the current task initial path to obtain the current task execution path of the current object; there is no path conflict between the current task execution path and the historical task execution path, and the increase in task execution distance between the current task execution path and the current task initial path is the smallest.

[0009] In one embodiment, determining whether there is a path conflict between a historical task execution path and an initial path of a current task includes: screening a cross path from the historical task execution path that has a path intersection with the initial path of the current task; determining the intersection point where the cross path and the initial path of the current task intersect; determining a first time point when a historical object belonging to the cross path arrives at the intersection point along the cross path, and a second time point when the current object arrives at the intersection point along the initial path of the current task; when the time difference between the first time point and the second time point is less than a preset duration, determining that there is a path conflict between the historical task execution path and the initial path of the current task.

[0010] In one of the embodiments, the task execution distance of the current task execution path is determined by: obtaining the number of tasks at the target task point location; determining the task execution distance when the current object executes the target task based on the object position of the current object, the target task point location of the target task point, and the number of tasks at the target task point location.

[0011] In one embodiment, the task execution distance when the current object performs the target task is determined based on the object position of the current object, the target task point position of the target task point, and the number of tasks at the target task point position, including: determining a first influence coefficient corresponding to the coordinate distance based on the degree of influence of the coordinate distance between the positions on the time consumption of performing the task; determining a second influence coefficient corresponding to the number of tasks based on the degree of influence of the number of tasks on the time consumption of performing the task; and determining the task execution distance when the current object performs the target task based on the first influence coefficient, the second influence coefficient, the object position of the current object, the target task point position, and the number of tasks at the target task point position.

[0012] In the second aspect, the present application also provides a task scheduling device, including: a task execution area determination module, which is used to obtain the tasks to be assigned and determine the task execution area where the task processing object is located when there is a task processing object to which tasks need to be assigned; a task type selection module, which is used to select the task type corresponding to the site characteristics from the tasks to be assigned according to the site characteristics of the task execution area; the task type includes a first task type and a second task type, and the first task type and the second task type respectively correspond to task execution areas with different site characteristics; a first target task selection module, which is used to select the task that complies with the task allocation principle of the task processing object from the task type corresponding to the site characteristics as the target task; a second target task selection module, which is used to select the task that complies with the task allocation principle of the task processing object from the task type that does not correspond to the site characteristics as the target task if there is no task that complies with the task allocation principle of the task processing object in the task type corresponding to the site characteristics; a target task allocation module, which is used to allocate the target task to the task processing object.

[0013] In a third aspect, the present application also provides a computer device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the following steps when executing the computer program: when there is a task processing object to which a task needs to be assigned, obtain the task to be assigned, and determine the task execution area where the task processing object is located; according to the site characteristics of the task execution area, select the task type corresponding to the site characteristics from the tasks to be assigned; the task type includes a first task type and a second task type, and the first task type and the second task type respectively correspond to task execution areas with different site characteristics; select the task that complies with the task allocation principle of the task processing object from the task type corresponding to the site characteristics as the target task; if there is no task that complies with the task allocation principle of the task processing object in the task type corresponding to the site characteristics, select the task that complies with the task allocation principle of the task processing object from the task type that does not correspond to the site characteristics as the target task; and assign the target task to the task processing object.

[0014] In a fourth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, which implements the following steps when executed by a processor: when there is a task processing object to which a task needs to be assigned, obtain the task to be assigned, and determine the task execution area where the task processing object is located; according to the site characteristics of the task execution area, select a task type corresponding to the site characteristics from the tasks to be assigned; the task type includes a first task type and a second task type, and the first task type and the second task type respectively correspond to task execution areas with different site characteristics; select a task that complies with the task allocation principle of the task processing object from the task type corresponding to the site characteristics as a target task; if there is no task that complies with the task allocation principle of the task processing object in the task type corresponding to the site characteristics, select a task that complies with the task allocation principle of the task processing object from the task type that does not correspond to the site characteristics as the target task; and assign the target task to the task processing object.

[0015] In a fifth aspect, the present application also provides a computer program product, including a computer program, which implements the following steps when executed by a processor: when there is a task processing object to which tasks need to be assigned, obtain the tasks to be assigned, and determine the task execution area where the task processing object is located; according to the site characteristics of the task execution area, select the task type corresponding to the site characteristics from the tasks to be assigned; the task type includes a first task type and a second task type, and the first task type and the second task type respectively correspond to task execution areas with different site characteristics; select the task that complies with the task allocation principle of the task processing object from the task types corresponding to the site characteristics as the target task; if there is no task that complies with the task allocation principle of the task processing object in the task type corresponding to the site characteristics, select the task that complies with the task allocation principle of the task processing object from the task types that do not correspond to the site characteristics as the target task; and assign the target task to the task processing object.

[0016] The above-mentioned task scheduling method, apparatus, computer equipment, computer-readable storage medium and computer program product, when there is a task processing object to be assigned a task, obtain the task to be assigned and determine the task execution area where the task processing object is located, and then select the task type corresponding to the site characteristics from the tasks to be assigned according to the site characteristics of the task execution area, and the task type includes a first task type and a second task type, and the first task type and the second task type correspond to task execution areas with different site characteristics. Further, select the task that meets the task allocation principle of the task processing object from the task types corresponding to the site characteristics as the target task, if there is no task that meets the task allocation principle of the task processing object in the task types corresponding to the site characteristics, select the task that meets the task allocation principle of the task processing object from the task types that do not correspond to the site characteristics as the target task, and assign the target task to the task processing object. The entire task scheduling process does not allocate tasks only based on task distance as in traditional technology, but rather implements task scheduling in combination with the site characteristics of the task execution area where the task processing object is located, and the overall situation of the tasks to be assigned (such as whether there are tasks in the first task type and / or second task type of the tasks to be assigned that meet the task allocation principles of the task processing object). Therefore, it is possible to avoid local aggregation of task processing objects when they execute tasks, thereby reducing the probability of congestion during task execution and improving task execution efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0018] FIG1 is an application environment diagram of a task scheduling method in one embodiment;

[0019] FIG2 is a schematic diagram of a process flow of a task scheduling method in one embodiment;

[0020] 3 is a flowchart of a task scheduling method in an embodiment, taking the first task type as a storage-in task and the second task type as a storage-out task as an example;

[0021] FIG4 is a flowchart of a task scheduling method in an embodiment, taking the task execution area as a sorting area as an example;

[0022] FIG5 is a flowchart of a task scheduling method in an embodiment, taking the task execution area as a storage area as an example;

[0023] FIG6 is a flowchart of a task scheduling method in accordance with a task search range, taking a task execution area as a storage area as an example in an embodiment;

[0024] FIG7 is a schematic flow diagram of a task scheduling method including task updating in one embodiment;

[0025] FIG8 is a schematic diagram of a flow chart of determining path conflicts after assigning a target task to a task processing object in one embodiment;

[0026] FIG9 is a schematic diagram showing the distribution of terminal devices and tasks to be assigned in a storage area in one embodiment;

[0027] FIG10 is a structural block diagram of a task scheduling device in one embodiment;

[0028] FIG. 11 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0029] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0030] The task scheduling method provided in the embodiment of the present application can be applied to the application environment shown in FIG1. ​​Among them, the server 102 of the task scheduling center can communicate with the terminal device 104 that can execute tasks in the storage area through a wireless network or a dedicated communication protocol or other remote communication methods. The terminal device 104 includes but is not limited to various devices that can execute tasks such as material storage, retrieval, and transportation, and the terminal device 104 is configured with a positioning system, which can provide real-time feedback of positioning to the server 102. The terminal device 104 includes but is not limited to robots, forklifts, etc., such as pallet handling robots for material handling and stacking operations. The server 102 can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides cloud computing services. The data storage system connected to the server 102 can store data that the server 102 needs to process, such as storing tasks to be assigned (the tasks to be assigned can be imported into the data storage system by the storage management personnel). The data storage system can be integrated on the server 102, or it can be placed on the cloud or other network servers.

[0031] Specifically, the terminal device 104 in the idle state in the storage area can send a task allocation request to the server 102, and the server 102 can sequentially allocate tasks to the terminal devices 104 in the idle state according to the order in which the task allocation requests are received. For the terminal device 104 that currently needs to be allocated a task, the server 102 can use it as a task processing object that needs to be allocated a task, and obtain the task to be allocated from the data storage system, and determine the task execution area where the task processing object is located. Further, the server 102 can select a task type corresponding to the site characteristics from the tasks to be allocated according to the site characteristics of the task execution area where the task processing object is located, wherein the task type includes a first task type and a second task type, and the first task type and the second task type correspond to task execution areas with different site characteristics. Further, the server 102 can select a task that meets the task allocation principle of the task processing object from the task type corresponding to the site characteristics as the target task. If there is no task that meets the task allocation principle of the task processing object in the task type corresponding to the site characteristics, the server 102 can select a task that meets the task allocation principle of the task processing object from the task type that does not correspond to the site characteristics as the target task, and then allocate the target task to the task processing object.

[0032] In an exemplary embodiment, as shown in FIG2 , a task scheduling method is provided, which is described by taking the method applied to the server 102 in FIG1 as an example, and includes the following steps 202 to 210. Among them:

[0033] Step 202: when there is a task processing object to which a task needs to be assigned, the task to be assigned is obtained, and the task execution area where the task processing object is located is determined.

[0034] Among them, the task execution area can include: the sorting area and the storage area in the storage area. The sorting area is equipped with a sorting platform (workstation), and the task to be assigned in the sorting area is the warehousing task. The specific warehousing task is: send the materials in the sorting area to the designated shelf to complete the warehousing. The storage area is equipped with shelves, and the task to be assigned in the storage area is the outbound task. The specific outbound task is: take out the materials from the designated shelf and send them to the sorting platform to complete the outbound. The task to be assigned is configured with a task identifier, which carries the task point location and task timeout status of the task to be assigned.

[0035] Optionally, the terminal devices in the storage area that are idle can send task assignment requests to the server, and the server can assign tasks to the idle terminal devices in sequence according to the order in which the task assignment requests are received. For the terminal devices that currently need to be assigned tasks, the server can treat them as task processing objects, obtain the current tasks to be assigned from the data storage system, and determine the task execution area where the task processing object is located based on the positioning information carried in the task assignment request sent by the task processing object.

[0036] Step 204, according to the site characteristics of the task execution area, select a task type corresponding to the site characteristics from the tasks to be assigned; the task type includes a first task type and a second task type, and the first task type and the second task type correspond to task execution areas with different site characteristics respectively.

[0037] Among them, the task types include inbound tasks and outbound tasks. The site characteristics of the sorting area are: there are sorting tables (workstations), and the task processing objects in the sorting area need to give priority to inbound tasks to avoid blocking the sorting tables in the storage area. When there are no inbound tasks, consider assigning outbound tasks to the task processing objects in the sorting area. The site characteristics of the storage area are: there are a large number of shelves, and the task processing objects in the storage area need to give priority to outbound tasks to avoid affecting the efficiency of material outbound. When there are no outbound tasks, consider assigning inbound tasks to the task processing objects in the storage area.

[0038] Optionally, taking the example that the first task type is an incoming task and the second task type is an outgoing task, if the task execution area is a sorting area, the server can select the first task type (incoming task) corresponding to the site characteristics from the tasks to be assigned based on the site characteristics of the task execution area; if the task execution area is a storage area, the server can select the second task type (outgoing task) corresponding to the site characteristics from the tasks to be assigned based on the site characteristics of the task execution area.

[0039] Optionally, taking the example that the first task type is an outbound task and the second task type is an inbound task, if the task execution area is a sorting area, the server can select the second task type (inbound task) corresponding to the site characteristics from the tasks to be assigned based on the site characteristics of the task execution area; if the task execution area is a storage area, the server can select the first task type (outbound task) corresponding to the site characteristics from the tasks to be assigned based on the site characteristics of the task execution area.

[0040] If there are tasks in the task type corresponding to the site characteristics, the server can determine that there are tasks in the task type corresponding to the site characteristics that meet the task allocation principle of the task processing object, and then execute step 206 to select a task that meets the task allocation principle of the task processing object from the task type corresponding to the site characteristics as the target task.

[0041] Optionally, when there are tasks in the task types corresponding to the site characteristics, taking the first task type as an incoming task and the second task type as an outgoing task as an example, if the task execution area is a sorting area, the server can further select a task that complies with the task allocation principle of the task processing object from the selected first task type (incoming task) as the target task; if the task execution area is a storage area, the server can further select a task that complies with the task allocation principle of the task processing object from the selected second task type (outgoing task) as the target task.

[0042] Optionally, when there are tasks in the task types corresponding to the site characteristics, taking the first task type as an outbound task and the second task type as an inbound task, if the task execution area is a sorting area, the server can further select a task that complies with the task allocation principle of the task processing object from the selected second task type (inbound task) as the target task; if the task execution area is a storage area, the server can further select a task that complies with the task allocation principle of the task processing object from the selected first task type (outbound task) as the target task.

[0043] If there is no task in the task type corresponding to the site characteristics, the server can determine that there is no task in the task type corresponding to the site characteristics that meets the task allocation principle of the task processing object, and then execute step 208 to select a task that meets the task allocation principle of the task processing object from the task type that does not correspond to the site characteristics as the target task.

[0044] For example, if the first task type is a warehousing task and the second task type is an outbound task, if the task execution area is a sorting area (the task type corresponding to the site characteristics is the first task type) and there is no task in the first task type, since there are tasks to be assigned, at this time, there are still tasks in the second task type, and the server can select tasks that meet the task allocation principle of the task processing object from the second task type as the target task. If the task execution area is a storage area (the task type corresponding to the site characteristics is the second task type) and there is no task in the second task type, since there are tasks to be assigned, at this time, there are still tasks in the first task type, and the server can select tasks that meet the task allocation principle of the task processing object from the first task type as the target task.

[0045] Step 210: assign the target task to the task processing object.

[0046] Optionally, the server may assign the selected target task to a task processing object so that the task processing object can execute it.

[0047] Based on step 202 to step 210, as shown in FIG3, taking the first task type as an incoming task and the second task type as an outgoing task as an example, a flow chart of a task scheduling method is provided, including the following process:

[0048] The server can first determine the task processing object and the task execution area where the task processing object is located, and obtain the task to be assigned, and then determine whether the task execution area is a sorting area. If the task execution area is a sorting area, first select the inbound task corresponding to the site characteristics of the sorting area from the tasks to be assigned. If there is an inbound task, select the task that complies with the task allocation principle of the task processing object from the inbound task as the target task. If there is no inbound task, select the task that complies with the task allocation principle of the task processing object from the outbound task as the target task. If the task execution area is a storage area, first select the outbound task corresponding to the site characteristics of the storage area from the tasks to be assigned. If there is an outbound task, select the task that complies with the task allocation principle of the task processing object from the outbound task as the target task. If there is no outbound task, select the task that complies with the task allocation principle of the task processing object from the inbound task as the target task. Finally, assign the target task to the task processing object.

[0049] In the above task scheduling method, when there is a task processing object to be assigned a task, the task to be assigned is obtained and the task execution area where the task processing object is located is determined, and then according to the site characteristics of the task execution area, the task type corresponding to the site characteristics is selected from the tasks to be assigned, and the task type includes a first task type and a second task type, and the first task type and the second task type respectively correspond to task execution areas with different site characteristics. Further, a task that meets the task allocation principle of the task processing object is selected from the task types corresponding to the site characteristics as the target task. If there is no task that meets the task allocation principle of the task processing object in the task types corresponding to the site characteristics, a task that meets the task allocation principle of the task processing object is selected from the task types that do not correspond to the site characteristics as the target task, and the target task is assigned to the task processing object. The entire task scheduling process does not allocate tasks only based on task distance as in traditional technology, but rather implements task scheduling in combination with the site characteristics of the task execution area where the task processing object is located, and the overall situation of the tasks to be assigned (such as whether there are tasks in the first task type and / or second task type of the tasks to be assigned that meet the task allocation principles of the task processing object). Therefore, it is possible to avoid local aggregation of task processing objects when they execute tasks, thereby reducing the probability of congestion during task execution and improving task execution efficiency.

[0050] In an exemplary embodiment, the task processing object task allocation principle includes:

[0051] If there is a timeout task in the first task type and / or the second task type, the timeout task closest to the task processing object is used as the target task; if there is no timeout task, the non-timeout task closest to the task processing object is used as the target task.

[0052] Optionally, after obtaining the task to be assigned (i.e., the task to be assigned exists), taking the site characteristics of the task execution area where the task processing object is located corresponding to the first task type as an example: if there are tasks in the first task type and there are timed-out tasks, the server can first use the timed-out task closest to the task processing object in the first task type as the target task. If there are tasks in the first task type but there are no timed-out tasks, the server can use the non-timed-out task closest to the task processing object in the first task type as the target task. If there are no tasks in the first task type and there are timed-out tasks in the second task type, the server can use the timed-out task closest to the task processing object in the second task type as the target task. If there are no tasks in the first task type and there are no timed-out tasks in the second task type, since the task to be assigned exists, at this time, there are non-timed-out tasks in the second task type, and the server can use the non-timed-out task closest to the task processing object in the second task type as the target task.

[0053] Exemplarily, the first task type in the tasks to be assigned is a storage-in task, and the second task type is an outbound task. As shown in FIG4, if the task execution area is a sorting area, there is a storage-in task in the tasks to be assigned and there is a timeout task in the storage-in task, the server can use the timeout task in the storage-in task that is closest to the task processing object as the target task. If there is a storage-in task in the tasks to be assigned, but there is no timeout task in the storage-in task, the server can use the non-timeout task in the storage-in task that is closest to the task processing object as the target task. If there is no storage-in task in the tasks to be assigned, since there is a storage-in task to be assigned, there is an outbound task at this time. If there is a timeout task in the outbound task, the server can use the timeout task in the outbound task that is closest to the task processing object as the target task. If there is no timeout task in the outbound task, the server can use the non-timeout task in the outbound task that is closest to the task processing object as the target task.

[0054] Exemplarily, the first task type in the tasks to be assigned is a storage task, and the second task type is an outbound task. As shown in FIG5, if the task execution area is a storage area, there is an outbound task in the tasks to be assigned and there is a timeout task in the outbound task, the server can use the timeout task closest to the task processing object in the outbound task as the target task. If there is an outbound task in the tasks to be assigned, but there is no timeout task in the outbound task, the server can use the non-timeout task closest to the task processing object in the outbound task as the target task. If there is no outbound task in the tasks to be assigned, since there is a task to be assigned, there is a storage task at this time. If there is a timeout task in the storage task, the server can use the timeout task closest to the task processing object in the storage task as the target task. If there is no timeout task in the storage task, the server can use the non-timeout task closest to the task processing object in the storage task as the target task.

[0055] In this embodiment, when assigning tasks to task processing objects in different task execution areas, task scheduling can be performed based on the site characteristics of the task execution area where the task processing objects are located, and the situation of the tasks in the task execution area (the global distribution of the tasks to be assigned in the storage area). For example, in this embodiment, the task processing objects in the sorting area are given priority to the warehousing tasks set in the sorting area, and the overdue warehousing tasks are given priority, which can not only ensure the timely processing of tasks, but also reduce the situation where the task processing objects in the sorting area preferentially cross regions to the storage area to perform tasks, which is conducive to reducing the probability of congestion due to the long moving path during the task execution process, thereby improving the task execution efficiency. In this embodiment, the task processing objects in the storage area can also be given priority to the outbound tasks set in the storage area, and the overdue outbound tasks are given priority, which can not only ensure the timely processing of tasks, but also reduce the probability of congestion in the storage area, thereby improving the task execution efficiency.

[0056] Considering that the outbound tasks in the storage area are usually more than the inbound tasks in the sorting area, in order to improve the outbound efficiency, the task processing object in the storage area should execute the nearest outbound task as soon as possible (for example, if there is a non-timeout outbound task within the task search range, and the timeout outbound tasks are all outside the task search range, the nearest non-timeout task will be executed first), but the influence of the timeout factor also needs to be considered (for example, if both the timeout and non-timeout outbound tasks are outside the task search range, the nearest timeout outbound task will be executed first). Based on this, when allocating outbound tasks to the task processing objects in the storage area, in an achievable embodiment, the above-mentioned task scheduling method further includes:

[0057] Determine whether there is a timeout task within the search range of the task processing object;

[0058] If yes, the timeout task closest to the task processing object is taken as the target task, otherwise the non-timeout task closest to the task processing object within the search range is taken as the target task;

[0059] If there is no non-timeout task within the search range, the timeout task closest to the task processing object outside the search range is used as the target task, or the task allocation to the task processing object is abandoned.

[0060] Optionally, based on FIG. 5, as shown in FIG. 6, if the task processing object is in the storage area, when scheduling tasks according to the tasks to be assigned, the server can first determine whether there is an outbound task, and if so, determine whether there is a timeout task in the outbound task within the search range of the task processing object. If there is a timeout task in the outbound task within the search range of the task processing object, the timeout task closest to the task processing object in the outbound task is used as the target task. If there is no timeout task in the outbound task within the search range of the task processing object, and there is a non-timeout task in the outbound task within the search range, the non-timeout task closest to the task processing object in the outbound task within the search range is used as the target task. If there is no timeout task in the outbound task within the search range of the task processing object, and there is no non-timeout task in the outbound task, the server can use the timeout task that is outside the search range and closest to the task processing object in the outbound task as the target task.

[0061] Optionally, if there is no outbound task within the search range of the task processing object, at this time, the assignable outbound tasks are all far away from the task processing object. The server can also give up assigning tasks to the task processing object first, so that after adding outbound tasks that are closer to the task processing object, outbound tasks can be assigned to the task processing object, avoiding the task processing object from traveling a long distance to the task point to pick up goods, which is conducive to reducing congestion in the task execution process.

[0062] In this embodiment, tasks can be allocated according to the task execution distances of timed tasks and non-timed tasks in the outbound tasks, that is, task scheduling can be achieved while taking into account both outbound efficiency and task timeout status.

[0063] In a possible implementation, based on Figure 3, as shown in Figure 7, the above-mentioned task scheduling method also includes: when there is no task to be assigned, updating the task after waiting for a preset period of time to obtain an updated task to be assigned; based on the updated task to be assigned, assigning a target task to the task processing object.

[0064] Among them, the preset duration can be flexibly configured according to actual needs to ensure timely updating and allocation of tasks to be assigned.

[0065] Optionally, after determining the task processing object and the task execution area where the task processing object is located, the server may first determine whether there is a task to be assigned. If there is no task to be assigned, the server may wait for a preset time to update the task, thereby obtaining an updated task to be assigned, and then assigning a target task to the task processing object based on the updated task to be assigned. If there is a task to be assigned, the server may assign a target task to the task processing object based on the task to be assigned.

[0066] In this embodiment, if there is no task to be assigned, task scheduling can be performed after the task is updated.

[0067] In one embodiment, after allocating the target task to the task processing object, the task scheduling method further includes:

[0068] The task processing object is taken as the current object, and the task processing object that is executing the task is taken as the historical object;

[0069] Get the historical task execution path when the historical objects execute their respective tasks;

[0070] Generate an initial path of the current task when the current object performs the target task according to the target task point position of the target task and the object position of the current object;

[0071] If there is a path conflict between the historical task execution path and the current task initial path, the current task initial path is changed to obtain the current task execution path of the current object; there is no path conflict between the current task execution path and the historical task execution path, and the increase in the task execution distance between the current task execution path and the current task initial path is the smallest.

[0072] Optionally, based on FIG. 7 , as shown in FIG. 8 , a flow chart of determining path conflicts after assigning the target task to the task processing object is provided. That is, after assigning the target task to the task processing object, the server can use the task processing object as the current object, and use the task processing object that is executing the task as the historical object, wherein before each historical object starts to execute the task assigned to it, the server will automatically generate the historical task execution path of each historical object when it executes its own task, and store the historical task execution path of each historical object when it executes its own task in the data storage system until the historical object completes the assigned task, and then deletes the historical object. Therefore, the server can obtain the historical task execution path of each historical object when it executes its own task, and according to the target task point position of the target task and the object position of the current object, through the pre-constructed storage area map model, based on the principle of the shortest path, perform path planning within the storage area for the current object, and generate the initial path of the current task when the current object executes the target task. Furthermore, if it is detected that any historical task execution path has a path conflict with the current task initial path, the server can change the current task initial path based on the principle of minimizing the increase in task execution distance between the current task execution path and the current task initial path, and obtain a current task execution path that does not have a path conflict with all historical task execution paths. If all historical task execution paths do not have a path conflict with the current task initial path, the server can use the current task initial path of the current object as the current task execution path of the current object.

[0073] Exemplarily, the methods for determining whether there is a path conflict include but are not limited to: (1) firstly screening out the cross paths that intersect with the initial path of the current task and the historical objects to which the cross paths belong from the historical task execution paths to narrow the judgment scope, and then judging whether there is a path conflict between the cross paths and the initial path of the current task based on the time difference between the historical objects to which the cross paths belong and the current objects arriving at the intersection. (2) judging whether there is a path conflict between the historical task execution paths and the initial path of the current task based on the time window method. The time window method is to assign a time window to each node on each path in the time dimension. The time window represents the time period during which the terminal device is expected to stay at the node, including acceleration, constant speed driving, deceleration, turning, etc. By comparing whether the time windows of different terminal devices at the same node overlap, it is judged whether there is a path conflict between the historical task execution paths and the initial path of the current task. (3) judging whether there is a path conflict between the historical task execution paths and the initial path of the current task based on the trajectory intersection detection method. The trajectory intersection detection method can check whether these positions are in the same spatial position or close enough to the extent that a conflict may occur based on the positions of the terminal devices in the storage area at each time step, so as to judge whether there is a path conflict between the historical task execution paths and the initial path of the current task.

[0074] Exemplarily, the server may use "the increase in task execution distance between the current task execution path and the current task initial path is the smallest" and "there is no path conflict between the changed current task execution path and all historical task execution paths" as path selection conditions, and search in a pre-built storage area map model based on a graph search algorithm or a heuristic search algorithm to generate at least multiple initial candidate paths. Furthermore, the server may screen multiple initial candidate paths based on the path selection conditions to obtain the final current task execution path. Among them, a graph search algorithm or a heuristic search algorithm is an important algorithm in computer science for finding paths in a graph.

[0075] In this embodiment, after the target task is assigned to the task processing object, it will also be determined whether there will be a path conflict with the historical object that is executing the task when the task processing object executes the task along the initial path of the current task. When it is detected that a path conflict will occur in the future, the path of the task processing object can be adjusted in time with the minimum cost, which is beneficial to reduce the probability of congestion of terminal devices in the storage area when executing tasks, thereby improving the task execution efficiency in the storage area.

[0076] In one embodiment, determining whether there is a path conflict between the historical task execution path and the current task initial path includes:

[0077] Filter out intersecting paths that intersect with the initial path of the current task from the historical task execution paths;

[0078] Determine the intersection point where the cross path intersects with the initial path of the current task;

[0079] Determine a first time point at which a historical object belonging to the cross path arrives at the intersection position along the cross path, and a second time point at which a current object arrives at the intersection position along the initial path of the current task;

[0080] When the time difference between the first time point and the second time point is less than a preset time length, it is determined that there is a path conflict between the historical task execution path and the current task initial path.

[0081] The preset duration can be flexibly configured according to the actual application scenario, so that when the time difference between the first time point and the second time point is greater than or equal to the preset duration, the current object will not have a path conflict with other historical objects. The moving speed of each terminal device in the storage area has been stored in the data storage system, and the moving speed of each terminal device can be determined based on the movement of the terminal device when performing tasks in the historical period.

[0082] Optionally, after assigning the target task to the current object and automatically generating the current task initial path of the current object, the server can first compare the historical task execution paths of all historical objects with the current task initial path, and filter out the cross paths that intersect with the current task initial path from the historical task execution paths to narrow the path conflict judgment range. Further, the server can determine the intersection point where the cross path and the current task initial path intersect in the pre-built storage area map model, and estimate the first time point when the historical object to which the cross path belongs arrives at the intersection position along the cross path according to the current position of the historical object in the cross path and the moving speed of the historical object to which the cross path belongs, and estimate the second time point when the current object arrives at the intersection position along the current task initial path according to the current position of the current object in the storage area and the moving speed of the current object. When the time difference between the first time point and the second time point is less than the preset duration, the server can determine that there is a path conflict between the historical task execution path and the current task initial path.

[0083] In this embodiment, based on the time difference between the historical object to which the cross-path belongs and the current object arriving at the intersection position, it is possible to predict whether there will be a path conflict between the historical object to which the cross-path belongs and the current object in the future, so that the path of the current object can be adjusted in time, which is beneficial to reducing the probability of congestion of terminal devices in the storage area when performing tasks, thereby improving the task execution efficiency in the storage area.

[0084] In one embodiment, the task execution distance of the current task execution path is determined by:

[0085] Get the number of tasks at the target task point location;

[0086] A task execution distance when the current object executes the target task is determined according to the object position of the current object, the target task point position of the target task point, and the number of tasks at the target task point position.

[0087] Among them, the task execution distance when executing the incoming task is characterized by: the time it takes for the terminal device to start from its current location to the designated location and receive the material. The task execution distance when executing the outgoing task is characterized by: the time it takes for the terminal device to start from its current location to the designated location and take out the material. In the process of executing the outgoing task, it may be necessary to perform multiple material-taking actions at the designated shelf. The number of such actions is the number of tasks for the outgoing task. When each outgoing task is imported into the data storage system, it is already configured with the number of tasks for subsequent server retrieval. The number of tasks for the incoming tasks is the same (the action of accepting materials is 1 time). Therefore, when comparing the task execution distances of the task processing objects to perform different incoming tasks, in order to improve data processing efficiency and simplify the calculation process, the number of tasks for the incoming tasks can be set to 0.

[0088] Based on this, when determining the task execution distance of the current object to perform the target task, the server can first obtain the number of tasks at the target task point location, and then determine the task execution distance when the current object performs the target task based on the object position of the current object, the target task point location of the target task point, and the number of tasks at the target task point location.

[0089] It should be noted that when assigning tasks to each terminal device in the storage area and calculating the task execution distance of each terminal device, the server can determine the task execution distance when the terminal device executes the task based on the location of the terminal device, the location of the task point, and the number of tasks at the task point location.

[0090] In this embodiment, the task execution distance when the current object executes the target task can be determined according to the object position of the current object, the target task point position and the number of tasks at the target task point position. That is, the task execution distance when executing the task can be evaluated in multiple dimensions based on the coordinate distance dimension and the task number dimension. That is, considering the number of tasks at the task point, it is possible to more accurately determine which task is the task closest to the task processing object (that is, the task that can be executed the fastest). This also facilitates more accurately allocating the target task that the task processing object can execute the fastest to the task processing object, which is beneficial to reducing the accumulation of tasks to be assigned and improving the task scheduling efficiency in the warehouse.

[0091] In one embodiment, determining a task execution distance when the current object executes the target task according to the object position of the current object, the target task point position of the target task point, and the number of tasks at the target task point position includes:

[0092] Determine a first influence coefficient corresponding to the coordinate distance according to the influence of the coordinate distance between the positions on the time consumption of executing the task;

[0093] Determine a second influence coefficient corresponding to the number of tasks according to the degree of influence of the number of tasks on the time consumption of executing the tasks;

[0094] A task execution distance when the current object executes the target task is determined according to the first influence coefficient, the second influence coefficient, the object position of the current object, the target task point position, and the number of tasks at the target task point position.

[0095] The influence degree of the coordinate distance between the positions on the time consumption of executing the task and the influence degree of the number of tasks on the time consumption of executing the task can be configured by the warehouse management personnel based on experience and stored in the data storage system of the server. The first influence coefficient includes the horizontal axis influence coefficient and the vertical axis influence coefficient.

[0096] Optionally, the server can determine the first influence coefficient corresponding to the coordinate distance according to the influence degree of the coordinate distance between the positions on the time consumption of executing the task, for example, the value representing the time consumption of the horizontal axis coordinate distance is used as the horizontal axis influence coefficient in the first influence coefficient, and the value representing the time consumption of the vertical axis coordinate distance is used as the vertical axis influence coefficient in the first influence coefficient. Similarly, the server can determine the second influence coefficient corresponding to the number of tasks according to the influence degree of the time consumption of the number of tasks on the execution of the task, for example, the value representing the time consumption of the number of tasks is used as the second influence coefficient. Further, the server can determine the horizontal axis coordinate distance and the vertical axis coordinate distance between the current object and the target task point position according to the object position of the current object and the target task point position. Further, the server can multiply the horizontal axis coordinate distance with the horizontal axis influence coefficient, multiply the vertical axis coordinate distance with the vertical axis influence coefficient, multiply the number of tasks at the target task point position with the second influence coefficient, and then use the sum of the three products obtained as the task execution distance when the current object executes the target task.

[0097] It should be noted that when assigning tasks to each terminal device in the storage area and calculating the task execution distance of each terminal device, the server can determine the task execution distance when the terminal device performs the task based on the first influence coefficient, the second influence coefficient, the location of the terminal device, the location of the task point, and the number of tasks at the task point location.

[0098] In this embodiment, the task execution distance when the current object executes the target task can be accurately evaluated in multiple dimensions based on the influence of the coordinate distance and the number of tasks at the task point on the time consumption of executing the task. This facilitates more accurate allocation of the target task that the task processing object can execute the fastest to the task processing object, which is beneficial to reducing the accumulation of tasks to be assigned and improving the efficiency of task scheduling in the warehouse.

[0099] In an exemplary embodiment, as shown in FIG9 , a schematic diagram of the distribution of terminal devices and tasks to be assigned in a storage area is provided.

[0100] Among them, a shelf (in the storage area) is set at the position where the grid where the black rectangle is located, and a workstation / warehouse entrance (in the sorting area) is set at the position where the grid where the black circle is located. For the task to be assigned, its coordinates in Figure 9 are in the form of [x, y, z], where x represents the horizontal axis coordinate in the map model of the storage area, y represents the vertical axis coordinate in the map model of the storage area, and z represents the number of tasks at the task point. For the terminal devices in the storage area, their coordinates in Figure 9 are in the form of [x, y, 0]. As shown in Figure 9, there are Task 1 (non-timeout task) with the task point coordinates of [4, 2, 0], Task 2 (non-timeout task) with the task point coordinates of [13, 2, 0], Task 3 (non-timeout task) with the task point coordinates of [10, 22, 2], Task 4 (non-timeout task) with the task point coordinates of [13, 21, 1], Task 5 (timeout task) with the task point coordinates of [21, 22, 2], and there are also Terminal Device A with the coordinates of [7, 2, 0] waiting to be assigned tasks, Terminal Device B with the coordinates of [11, 13, 0], and Terminal Device C with the coordinates of [17, 18, 0]. And the task assignment order is from front to back in turn: Terminal Device A, Terminal Device B, Terminal Device C. Then, based on the steps in the above embodiments, in the application scenario shown in Figure 9, the task scheduling can be specifically implemented in the following way:

[0101] (1) The server can first take Terminal Device A as the task processing object and obtain the tasks to be assigned. At this time, the tasks to be assigned include Tasks 1 to 5. Tasks 1 and 2 are in the sorting area and are inbound tasks, and Tasks 3, 4, and 5 are in the storage area and are outbound tasks. Since Terminal Device A is in the sorting area, according to the site characteristics of the sorting area, the server can preferentially assign inbound tasks to Terminal Device A and preferentially assign the inbound tasks that are overdue. However, both Tasks 1 and 2 are non-timeout tasks. Therefore, the server can calculate the task execution distance DA1 between Task 1 and Terminal Device A and the task execution distance DA2 between Task 2 and Terminal Device A, and screen out the target task closer to Terminal Device A. Taking the horizontal axis influence coefficient as 10, the vertical axis influence coefficient as 1, and the second influence coefficient as 20 as an example, where:

[0102] DA1 = |7 - 4|×10 + |2 - 2|×1 + 0 = 30

[0103] DA2 = |7 - 13|×10 + |2 - 2|×1 + 0 = 60

[0104] Since DA1 < DA2, the server can assign Task 1 to Terminal Device A.

[0105] (2) After task 1 is assigned to terminal device A, the server can use terminal device B as the task processing object. Since terminal device B is in the storage area, according to the site characteristics of the storage area, the server can preferentially assign an outbound task to terminal device B, and give priority to task 5 that is overdue in the outbound tasks. However, it is also necessary to consider whether task 5 is within the search range of terminal device B. Taking the search range of terminal device B as 90 as an example:

[0106] DB5 = |11 - 21|×10 + |13 - 22|×1 + |0 - 2|×20 = 149 > 90

[0107] Since the task execution distance DB5 between task 5 and terminal device B is greater than the search range of terminal device B, at this time, the server needs to further evaluate the task execution distance DB3 between non-overdue task 3 in the outbound tasks and terminal device B, and the task execution distance DB4 between non-overdue task 4 and terminal device B:

[0108] DB3 = |11 - 10|×10 + |13 - 22|×1 + |0 - 2|×20 = 59

[0109] DB4 = |11 - 13|×10 + |13 - 21|×1 + |0 - 1|×20 = 48

[0110] Since both task 3 and task 4 are within the search range of terminal device B, and DB4 < DB3, the server can assign non-overdue task 4, which is the closest to terminal device B in the outbound tasks, to terminal device B.

[0111] (3) For terminal device C, since terminal device C is in the storage area, according to the site characteristics of the storage area, the server can preferentially assign an outbound task to terminal device C, and give priority to task 5 that is overdue in the outbound tasks. However, it is necessary to consider whether task 5 is within the search range of terminal device C. Taking the search range of terminal device C as 90 as an example:

[0112] DC5 = |17 - 21|×10 + |18 - 22|×1 + |0 - 2|×20 = 84

[0113] Since the task execution distance DC5 between task 5 and terminal device C is less than the search range of terminal device C, at this time, the server can assign task 5 to terminal device C.

[0114] It should be noted that after assigning Task 1 to terminal device A, the server can automatically generate the current task initial path for terminal device A to go to the task point where Task 1 is located, and determine whether there is a path conflict between the current task initial path and the historical task execution paths of all historical objects that are executing tasks, so that when there is a conflict, the path of terminal device A is adjusted in time based on the condition that "the increase in the task execution distance between the current task execution path and the current task initial path is the smallest, and there is no path conflict between the changed current task execution path and all historical task execution paths", thereby obtaining the current task execution path of terminal device A. When terminal device A starts to execute the task according to the determined current task execution path, terminal device A will also be treated as a newly added historical object until terminal device A has completed the task, and then terminal device A will be deleted from the historical objects that are executing tasks. Similarly, after assigning Task 4 to terminal device B, the server will also detect whether there is a path conflict between the current task initial path of terminal device B and the historical task execution paths of all historical objects that are executing tasks, and after determining the current task execution path of terminal device B, terminal device B will be treated as a newly added historical object until terminal device B has completed the task and deleted from the historical objects that are executing tasks. After assigning Task 5 to terminal device C, the server will also detect whether there is a path conflict between the current task initial path of terminal device C and the historical task execution paths of all historical objects that are executing tasks, and after determining the current task execution path of terminal device C, terminal device C will be treated as a newly added historical object until terminal device C has completed the task and deleted from the historical objects that are executing tasks.

[0115] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.

[0116] Based on the same inventive concept, the embodiment of the present application also provides a task scheduling device for implementing the task scheduling method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more task scheduling device embodiments provided below can refer to the limitations on the task scheduling method above, and will not be repeated here.

[0117] In an exemplary embodiment, as shown in FIG10 , a task scheduling device is provided, comprising: a task execution area determination module 1002, a task type selection module 1004, a first target task selection module 1006, a second target task selection module 1008 and a target task allocation module 1010, wherein:

[0118] The task execution area determination module is used to obtain the task to be assigned and determine the task execution area where the task processing object is located when there is a task processing object to which a task needs to be assigned;

[0119] A task type selection module is used to select a task type corresponding to the site characteristics from the tasks to be assigned according to the site characteristics of the task execution area; the task type includes a first task type and a second task type, and the first task type and the second task type correspond to task execution areas with different site characteristics respectively;

[0120] A first target task selection module is used to select a task that meets the task allocation principle of the task processing object from the task types corresponding to the site characteristics as the target task;

[0121] The second target task selection module is used to select a task that meets the task allocation principle of the task processing object from the task type that does not correspond to the site characteristics as the target task if there is no task that meets the task allocation principle of the task processing object in the task type that corresponds to the site characteristics;

[0122] The target task allocation module is used to allocate the target task to the task processing object.

[0123] The above-mentioned task scheduling device, when there is a task processing object to be assigned a task, obtains the task to be assigned and determines the task execution area where the task processing object is located, and then selects the task type corresponding to the site characteristics from the tasks to be assigned according to the site characteristics of the task execution area, and the task type includes a first task type and a second task type, and the first task type and the second task type correspond to task execution areas with different site characteristics. Further, a task that meets the task allocation principle of the task processing object is selected from the task types corresponding to the site characteristics as the target task. If there is no task that meets the task allocation principle of the task processing object in the task types corresponding to the site characteristics, a task that meets the task allocation principle of the task processing object is selected from the task types that do not correspond to the site characteristics as the target task, and the target task is assigned to the task processing object. The entire task scheduling process does not allocate tasks only based on task distance as in traditional technology, but rather implements task scheduling in combination with the site characteristics of the task execution area where the task processing object is located, and the overall situation of the tasks to be assigned (such as whether there are tasks in the first task type and / or second task type of the tasks to be assigned that meet the task allocation principles of the task processing object). Therefore, it is possible to avoid local aggregation of task processing objects when they execute tasks, thereby reducing the probability of congestion during task execution and improving task execution efficiency.

[0124] In one embodiment, the task allocation principle of the task processing object includes: if there is a timeout task in the first task type and / or the second task type, the timeout task closest to the task processing object is used as the target task; if there is no timeout task, the non-timeout task closest to the task processing object is used as the target task.

[0125] In one of the embodiments, the task scheduling device further includes a search range evaluation module, which is used to: determine whether there is a timeout task within the search range of the task processing object; if so, use the timeout task closest to the task processing object as the target task, otherwise use the non-timeout task closest to the task processing object within the search range as the target task; if there is no non-timeout task within the search range, use the timeout task closest to the task processing object outside the search range as the target task, or abandon the task allocation to the task processing object.

[0126] In one of the embodiments, the task scheduling device further includes a task update module, which is used to: when there is no task to be assigned, update the task after waiting for a preset period of time to obtain an updated task to be assigned; and assign a target task to the task processing object based on the updated task to be assigned.

[0127] In one of the embodiments, the task scheduling device further includes a path change module, which is used to: after assigning the target task to the task processing object, use the task processing object as the current object, and use the task processing object that is executing the task as the historical object; obtain the historical task execution path when the historical objects execute their respective tasks; generate the current task initial path when the current object executes the target task based on the target task point position of the target task and the object position of the current object; if there is a path conflict between the historical task execution path and the current task initial path, change the current task initial path to obtain the current task execution path of the current object; there is no path conflict between the current task execution path and the historical task execution path, and the increase in task execution distance between the current task execution path and the current task initial path is the smallest.

[0128] In one of the embodiments, the task scheduling device further includes a path conflict judgment module, which is used to: screen out cross paths from historical task execution paths that intersect with the initial path of the current task; determine the intersection point where the cross path intersects with the initial path of the current task; determine the first time point when the historical object to which the cross path belongs arrives at the intersection point along the cross path, and the second time point when the current object arrives at the intersection point along the initial path of the current task; when the time difference between the first time point and the second time point is less than a preset duration, determine that there is a path conflict between the historical task execution path and the initial path of the current task.

[0129] In one of the embodiments, the task scheduling device further includes a task distance determination module, which is used to: obtain the number of tasks at the target task point location; and determine the task execution distance when the current object executes the target task based on the object position of the current object, the target task point location of the target task point, and the number of tasks at the target task point location.

[0130] In one embodiment, the task distance determination module is also used to: determine a first influence coefficient corresponding to the coordinate distance based on the degree of influence of the coordinate distance between positions on the time consumption of executing the task; determine a second influence coefficient corresponding to the number of tasks based on the degree of influence of the number of tasks on the time consumption of executing the task; determine the task execution distance when the current object executes the target task based on the first influence coefficient, the second influence coefficient, the object position of the current object, the target task point position and the number of tasks at the target task point position.

[0131] Each module in the above task scheduling device can be implemented in whole or in part by software, hardware or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to each module.

[0132] In an exemplary embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be shown in FIG11. The computer device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. The processor, the memory and the input / output interface are connected via a system bus, and the communication interface is connected to the system bus via the input / output interface. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store task scheduling data. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, a task scheduling method is implemented.

[0133] Those skilled in the art will understand that the structure shown in FIG. 11 is merely a block diagram of a partial structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.

[0134] In an exemplary embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above-mentioned method embodiments when executing the computer program.

[0135] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.

[0136] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.

[0137] It should be noted that the information (including but not limited to device information, task information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.

[0138] A person of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment method can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, an artificial intelligence (AI) processor, etc., but are not limited to this.

[0139] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.

[0140] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A task scheduling method, characterized in that: The method comprises: When there is a task processing object to which a task needs to be assigned, the task to be assigned is obtained, and a task execution area where the task processing object is located is determined; According to the site characteristics of the task execution area, a task type corresponding to the site characteristics is selected from the tasks to be assigned; the task type includes a first task type and a second task type, and the first task type and the second task type correspond to task execution areas with different site characteristics respectively; Selecting a task that complies with the task allocation principle of the task processing object from the task types corresponding to the site characteristics as the target task; the selecting a task that complies with the task allocation principle of the task processing object from the task types corresponding to the site characteristics as the target task includes: judging whether there is a timeout task within the search range of the task processing object; if so, taking the timeout task closest to the task processing object as the target task, otherwise taking the non-timeout task closest to the task processing object within the search range as the target task; if there is no non-timeout task within the search range, taking the timeout task closest to the task processing object outside the search range as the target task, or giving up the task allocation to the task processing object; If there is no task that meets the task allocation principle of the task processing object in the task type corresponding to the site characteristics, select a task that meets the task allocation principle of the task processing object from the task type that does not correspond to the site characteristics as the target task; The target task is assigned to the task processing object.

2. The method according to claim 1, characterized in that: The task processing object task allocation principles include: If there is a timed-out task in the first task type and / or the second task type, the timed-out task closest to the task processing object is used as the target task; if there is no timed-out task, the non-timed-out task closest to the task processing object is used as the target task.

3. The method according to claim 1, characterized in that The method further comprises: When there is no task to be assigned, wait for a preset time and then update the task to be assigned to obtain the updated task; Based on the updated tasks to be assigned, a target task is assigned to the task processing object.

4. The method according to claim 1, characterized in that: The method further comprises: After the target task is assigned to the task processing object, the task processing object is used as the current object, and the task processing object that is executing the task is used as the historical object; Obtaining the historical task execution path when the historical objects execute their respective tasks; Generating an initial path of the current task when the current object performs the target task according to the target task point position of the target task and the object position of the current object; If there is a path conflict between the historical task execution path and the current task initial path, the current task initial path is changed to obtain the current task execution path of the current object; there is no path conflict between the current task execution path and the historical task execution path, and the increase in task execution distance between the current task execution path and the current task initial path is the smallest.

5. The method according to claim 4, characterized in that Determining whether there is a path conflict between the historical task execution path and the current task initial path includes: Filtering intersecting paths from the historical task execution paths that intersect with the initial path of the current task; Determine the intersection point where the intersection path intersects with the initial path of the current task; Determine a first time point at which the historical object to which the cross path belongs arrives at the intersection along the cross path, and a second time point at which the current object arrives at the intersection along the initial path of the current task; When the time difference between the first time point and the second time point is less than a preset duration, it is determined that there is a path conflict between the historical task execution path and the current task initial path.

6. The method according to claim 4, characterized in that The task execution distance of the current task execution path is determined by: Obtain the number of tasks at the target task point location; A task execution distance when the current object executes the target task is determined according to the object position of the current object, the target task point position of the target task point, and the number of tasks at the target task point position.

7. The method according to claim 6, characterized in that The determining, according to the object position of the current object, the target task point position of the target task point, and the number of tasks at the target task point position, a task execution distance when the current object executes the target task includes: Determine a first influence coefficient corresponding to the coordinate distance according to the influence degree of the coordinate distance between the positions on the time consumption of executing the task; the first influence coefficient includes a horizontal axis influence coefficient and a vertical axis influence coefficient; Determine a second influence coefficient corresponding to the number of tasks according to the degree of influence of the number of tasks on the time consumption of executing the tasks; Determine the horizontal axis coordinate distance and the vertical axis coordinate distance between the current object and the target task point position according to the object position of the current object and the target task point position; Multiply the horizontal axis coordinate distance by the horizontal axis influence coefficient, multiply the vertical axis coordinate distance by the vertical axis influence coefficient, multiply the number of tasks at the target task point location by the second influence coefficient, and use the sum of the three products as the task execution distance when the current object executes the target task.

8. A task scheduling device, characterized in that: The device comprises: A task execution area determination module is used to obtain the task to be assigned and determine the task execution area where the task processing object is located when there is a task processing object to which a task needs to be assigned; A task type selection module, used to select a task type corresponding to the site characteristics from the tasks to be assigned according to the site characteristics of the task execution area; the task type includes a first task type and a second task type, and the first task type and the second task type correspond to task execution areas with different site characteristics respectively; The first target task selection module is used to select a task that meets the task allocation principle of the task processing object from the task type corresponding to the site characteristics as the target task; it is also used to determine whether there is a timeout task within the search range of the task processing object; if so, the timeout task closest to the task processing object is used as the target task, otherwise the non-timeout task closest to the task processing object within the search range is used as the target task; if there is no non-timeout task within the search range, the timeout task closest to the task processing object outside the search range is used as the target task, or the task allocation to the task processing object is abandoned; A second target task selection module is used to select a task that meets the task allocation principle of the task processing object from the task types that do not correspond to the site characteristics as the target task if there is no task that meets the task allocation principle of the task processing object in the task types that do not correspond to the site characteristics; The target task allocation module is used to allocate the target task to the task processing object.

9. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Systems and methods for managing assignments of tasks for work machines using machine learning

    US20230419208A1