Task allocation method and device, computer device, and storage medium
By constructing a task allocation matrix and optimizing task allocation using an objective function, the problem of unfair task allocation is solved, and task processing efficiency is improved.
Patent Information
- Application Number
- CN202211101932.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-09
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2042-09-09
AI Technical Summary
In existing technologies, task allocation methods rely on the subjective consciousness of staff, which leads to unfair task allocation and affects task processing efficiency.
By obtaining the first and second processing times of each execution object, a task allocation matrix is constructed. The task allocation is optimized using an objective function to minimize the total processing time and determine the task allocation scheme.
This achieves fairness and efficiency in task allocation, shortens the maximum time for processing a batch of tasks, and improves overall task processing efficiency.
Smart Images

Figure CN116227799B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of artificial intelligence, in particular to a task allocation method and device, computer equipment, storage medium and computer program product. BACKGROUND
[0002] In people's work and life, there are often situations that need to submit relevant materials for business handling. Due to regulatory, security and other requirements, the business handling department needs to declassify the materials to be audited, divide them into multiple slices, and submit them to the headquarters centralized processing center for qualification audit. In the actual operation process, different task queues are formed according to different required audit positions, at this time each audit worker obtains multiple queues according to the assigned audit position, then freely pulls tasks for audit and submission, ends the audit task at this node and transfers the task to the next disposal node by the workflow system.
[0003] However, the current free task pulling method, whether in the case of a small number of tasks or a large number of tasks, relies on the subjective consciousness of the workers, and is prone to form unfair phenomena in task allocation, and cannot form the most efficient task allocation, thereby affecting the overall processing efficiency of the task. SUMMARY
[0004] Therefore, it is necessary to provide a task allocation method, device, computer equipment, computer readable storage medium and computer program product capable of improving task processing efficiency.
[0005] In a first aspect, the present application provides a task allocation method. The method comprises:
[0006] obtaining a first processing time length of each execution object; the first processing time length represents the actual processing time length of the execution object for processing the allocated task;
[0007] constructing a task allocation matrix to be solved, the task allocation matrix comprising a to-be-allocated task queue of each execution object, each to-be-allocated task queue comprising a plurality of elements, and one element representing the number of to-be-allocated tasks corresponding to one task type;
[0008] determining a second processing time length of each execution object according to the task allocation matrix; the second processing time length represents the predicted processing time length of the corresponding execution object for processing the to-be-allocated task;
[0009] constructing a target function according to the first processing time length and the second processing time length of each execution object;
[0010] Solving the objective function with the minimum value of the maximum total processing time length in the total processing time lengths of the execution objects as the target, to obtain the determined values of the elements in the task allocation matrix, wherein the total processing time length of each execution object is the sum of the first processing time length and the second processing time length corresponding to the execution object;
[0011] According to the determined values of the elements in the task allocation matrix, performing task allocation for the execution objects.
[0012] In one of the embodiments, the first processing time length of each execution object is obtained, including:
[0013] The allocated task queue of each execution object is obtained, and each element in the allocated task queue represents the number of allocated tasks corresponding to a task type;
[0014] The task capability matrix of each execution object is obtained, and the task capability matrix represents the average processing time length of a single task of each task type processed by the corresponding execution object;
[0015] According to the task capability matrix of each execution object and the allocated task queue of each execution object, the first processing time length of each execution object is obtained.
[0016] In one of the embodiments, the task capability matrix of each execution object is obtained, including:
[0017] The average processing time length of a single task of each task type processed by each execution object is obtained;
[0018] Based on the average processing time length of a single task of each task type processed by each execution object, the task capability matrix of each execution object is constructed; the task capability matrix includes multiple elements, and one element represents the average processing time length of a single task of a task type.
[0019] In one of the embodiments, according to the task capability matrix of each execution object and the allocated task queue of each execution object, the first processing time length of each execution object is obtained, including:
[0020] According to the task capability matrix of each execution object, the average processing time length of a single task of each task type processed by each execution object is obtained;
[0021] According to the allocated task queue of each execution object, the number of allocated tasks corresponding to each task type of each execution object is obtained;
[0022] According to the average processing time length of a single task of each task type processed by each execution object and the number of allocated tasks corresponding to each task type of each execution object, the first processing time length of each execution object is calculated.
[0023] In one of the embodiments, a target function is constructed according to the first processing time length and the second processing time length of each execution object, including:
[0024] The first processing time length and the second processing time length of each execution object are added to obtain a total processing time length of each execution object;
[0025] The target function is constructed according to the total processing time length of each execution object.
[0026] In one of the embodiments, the target function is solved with the minimum value of the maximum total processing time length in the total processing time length of each execution object as the target, including:
[0027] A constraint condition is obtained according to the first total number of tasks in the set of tasks to be allocated and the second total number of tasks corresponding to each task type in the set of tasks to be allocated;
[0028] The target function is solved with the minimum value of the maximum total processing time length in the total processing time length of each execution object as the target under the constraint condition.
[0029] In a second aspect, the present application further provides a task allocation device. The device includes:
[0030] A first obtaining module is configured to obtain the first processing time length of each execution object; the first processing time length represents the actual processing time length of the corresponding execution object for processing the allocated tasks;
[0031] A first constructing module is configured to construct a task allocation matrix to be solved; the task allocation matrix includes the to-be-allocated task queue of each execution object; each to-be-allocated task queue includes a plurality of elements; one element represents the number of to-be-allocated tasks corresponding to one task type;
[0032] A second obtaining module is configured to determine the second processing time length of each execution object according to the task allocation matrix; the second processing time length represents the predicted processing time length of the corresponding execution object for processing the to-be-allocated tasks;
[0033] A second constructing module is configured to construct a target function according to the first processing time length and the second processing time length of each execution object;
[0034] An element calculating module is configured to solve the target function with the minimum value of the maximum total processing time length in the total processing time length of each execution object as the target to obtain the determined value of each element in the task allocation matrix, wherein the total processing time length corresponding to each execution object is the sum of the first processing time length and the second processing time length corresponding to each execution object;
[0035] A task allocation module is configured to allocate tasks to each execution object according to the determined value of each element in the task allocation matrix.
[0036] In a third aspect, the present application provides a computer device. The computer device comprises a memory and a processor. The memory stores a computer program. The processor implements the following steps when executing the computer program:
[0037] obtaining a first processing time length of each execution object, wherein the first processing time length represents an actual processing time length of the corresponding execution object for processing the assigned task;
[0038] constructing a task allocation matrix to be solved, wherein the task allocation matrix comprises a to-be-assigned task queue of each execution object, and each to-be-assigned task queue comprises a plurality of elements, and each element represents a to-be-assigned task quantity of a task type;
[0039] determining a second processing time length of each execution object according to the task allocation matrix, wherein the second processing time length represents a predicted processing time length of the corresponding execution object for processing the to-be-assigned task;
[0040] constructing an objective function according to the first processing time length and the second processing time length of each execution object;
[0041] solving the objective function with a minimum value of the maximum total processing time length of each execution object as a target, to obtain a determined value of each element in the task allocation matrix, wherein the total processing time length of each execution object is a sum of the first processing time length and the second processing time length of the corresponding execution object;
[0042] performing task allocation for each execution object according to the determined value of each element in the task allocation matrix.
[0043] In a fourth aspect, the present application provides a computer readable storage medium. The computer readable storage medium stores a computer program. The computer program is executed by a processor to implement the following steps:
[0044] obtaining a first processing time length of each execution object, wherein the first processing time length represents an actual processing time length of the corresponding execution object for processing the assigned task;
[0045] constructing a task allocation matrix to be solved, wherein the task allocation matrix comprises a to-be-assigned task queue of each execution object, and each to-be-assigned task queue comprises a plurality of elements, and each element represents a to-be-assigned task quantity of a task type;
[0046] determining a second processing time length of each execution object according to the task allocation matrix, wherein the second processing time length represents a predicted processing time length of the corresponding execution object for processing the to-be-assigned task;
[0047] constructing an objective function according to the first processing time length and the second processing time length of each execution object;
[0048] The objective function is solved with the goal of minimizing the maximum total processing time among the total processing times of each execution object, so as to obtain the definite values of each element in the task allocation matrix. The total processing time corresponding to each execution object is the sum of the first processing time and the second processing time corresponding to each execution object.
[0049] Tasks are assigned to each execution object based on the determined values of each element in the task assignment matrix.
[0050] Fifthly, this application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, performs the following steps:
[0051] Obtain the first processing time for each execution object; the first processing time represents the actual processing time for the corresponding execution object to process the assigned tasks.
[0052] Construct a task allocation matrix to be solved. The task allocation matrix includes the task queues to be allocated for each execution object. Each task queue includes multiple elements, and each element represents the number of tasks to be allocated corresponding to a task type.
[0053] The second processing time for each execution object is determined based on the task allocation matrix; the second processing time represents the estimated processing time for the corresponding execution object to process the assigned task.
[0054] Construct the objective function based on the first and second processing times of each execution object;
[0055] The objective function is solved with the goal of minimizing the maximum total processing time among the total processing times of each execution object, so as to obtain the definite values of each element in the task allocation matrix. The total processing time corresponding to each execution object is the sum of the first processing time and the second processing time corresponding to each execution object.
[0056] Tasks are assigned to each execution object based on the determined values of each element in the task assignment matrix.
[0057] The aforementioned task allocation method, apparatus, computer equipment, storage medium, and computer program product, by obtaining the first processing time of each execution object, can first calculate the actual processing time of each execution object for processing its assigned tasks; construct a task allocation matrix to be solved, which includes a queue of tasks to be allocated for each execution object, each queue containing multiple elements, where each element represents the number of tasks to be allocated corresponding to a task type, thus transforming the task allocation scheme into a matrix to be solved, where each element is a variable to be solved; determine the second processing time of each execution object based on the task allocation matrix, and substitute it into the task allocation matrix to obtain the processing time of each execution object. An expression for the estimated processing time of tasks to be assigned to an object; a target function is constructed based on the first and second processing times of each execution object; the target function is solved with the objective of minimizing the maximum total processing time among the total processing times of all execution objects, to obtain the definite values of each element in the task allocation matrix. The total processing time for each execution object is the sum of its first and second processing times. Thus, based on the definite values of each element in the task allocation matrix, the task type and the number of tasks corresponding to each task type can be determined for each execution object. Task allocation is then performed directly based on the definite values of each element in the task allocation matrix for each execution object. This can shorten the longest processing time for a batch of tasks and improve overall task processing efficiency. Attached Figure Description
[0058] Figure 1 This is a schematic diagram illustrating an application scenario of the task allocation method in one embodiment;
[0059] Figure 2 This is a flowchart illustrating a task allocation method in one embodiment;
[0060] Figure 3 This is a schematic diagram illustrating the process of applying the task allocation method to the bank's review task issuance in one embodiment;
[0061] Figure 4 This is a structural block diagram of a task allocation device in one embodiment;
[0062] Figure 5 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation
[0063] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0064] The task allocation method provided in one embodiment can be applied to, for example, Figure 1In the application environment shown, computer device 102 communicates with multiple task processing devices 104 via a network. A data storage system can store the data that computer device 102 needs to process. The data storage system can be integrated onto computer device 102 or placed in the cloud or on other network control devices. The task processing devices 104 can be, but are not limited to, various personal computers, laptops, smartphones, tablets, IoT devices, and portable wearable devices. IoT devices can be smart speakers, smart TVs, smart air conditioners, smart lights, and other smart home devices. Portable wearable devices can be smartwatches, smart bracelets, head-mounted devices, etc. Computer device 102 can be a terminal or a server; the server can be a standalone server or a server cluster consisting of multiple servers.
[0065] In one embodiment, such as Figure 2 As shown, a device migration method is provided, which is applied to Figure 1 Taking computer device 102 as an example, the following steps are included:
[0066] Step 202: Obtain the first processing time for each execution object; the first processing time represents the actual processing time for the corresponding execution object to process the assigned tasks.
[0067] The execution object can be, but is not limited to, computer equipment or personnel using computer equipment. In this embodiment, the computer equipment that serves as the execution subject can also be the execution object. Specifically, each computer equipment can be a terminal or a server. The terminal can be, but is not limited to, various personal computers, laptops, smartphones, tablets, IoT devices, and portable wearable devices. The server can be a standalone server or a server cluster composed of multiple servers. The first processing time refers to the total processing time required for an execution object to process all the assigned tasks it has received.
[0068] Optionally, the computer device determines the initial processing time for each execution object based on its task processing capability. The task processing capability can be determined based on historical task processing times, processor load capacity, or a combination of factors such as historical task processing times and processor load capacity.
[0069] Specifically, the computer device can determine the average processing time of each execution object when processing various types of tasks based on the historical task processing records of each execution object, and then calculate the first processing time of each execution object based on the number of assigned tasks.
[0070] Step 204: Construct the task allocation matrix to be solved. The task allocation matrix includes the task queues to be allocated for each execution object. Each task queue to be allocated includes multiple elements, and each element represents the number of tasks to be allocated corresponding to a task type.
[0071] Optionally, the computer device constructs a task assignment matrix containing multiple elements to be solved. Each element is a variable, and each element represents the number of tasks to be assigned to an execution object under a task type.
[0072] Specifically, there are a total of execution objects and n types of tasks to be assigned. We can construct an m-column n-row task assignment matrix, which contains m*n elements. Each column represents the task assignment queue of an execution object, and the sum of all elements in each column is equivalent to the total number of tasks to be assigned for the execution object corresponding to that column.
[0073] For example, if there are a total of 5 execution objects and 3 types of tasks to be assigned, a task assignment matrix with 5 columns and 3 rows can be constructed. Where, x 11 The value x represents the number of tasks of the first task type assigned to the first execution object. 12 The value x represents the number of tasks of the second task type assigned to the first execution object. 13 The value x represents the number of tasks of the third task type assigned to the first execution object. 21 The value x represents the number of tasks of the first task type assigned to the second execution object, and so on. 53 The value indicates the number of tasks of the third task type assigned to the fifth execution object.
[0074] Step 206: Determine the second processing time for each execution object based on the task allocation matrix; the second processing time represents the estimated processing time for the corresponding execution object to process the assigned task.
[0075] The second processing time refers to the total processing time required for an execution object to process all the tasks it assumes it has received.
[0076] Optionally, the computer device determines a variable expression for the second processing time of each execution object based on the task processing capability of each execution object and the task allocation matrix.
[0077] Specifically, the computer device can determine the average processing time of each execution object when processing various types of tasks based on the historical task processing records of each execution object, and then obtain the variable expression of the second processing time of each execution object based on the variable of the task to be assigned in the task allocation matrix.
[0078] Step 208: Construct the objective function based on the first and second processing times of each execution object.
[0079] Optionally, the variable expressions for the first processing time and the second processing time of each execution object are added together to obtain the variable expression for the total processing time of each execution object, and the objective function is constructed based on the variable expression for the total processing time of each execution object.
[0080] Step 210: Solve the objective function with the goal of minimizing the maximum total processing time among the total processing times of each execution object, so as to obtain the definite values of each element in the task allocation matrix. The total processing time corresponding to each execution object is the sum of the first processing time and the second processing time corresponding to each execution object.
[0081] Optionally, determine the total number of all tasks to be assigned, and further determine the number of tasks to be assigned for each task type from all tasks to be assigned, thereby determining the constraints on the values of each element in the task assignment matrix; under the constraints, solve the objective function with the goal of minimizing the maximum total processing time among the total processing times of each execution object, and obtain the determined values of each element in the task assignment matrix.
[0082] Step 212: Assign tasks to each execution object based on the determined values of each element in the task assignment matrix.
[0083] Optionally, tasks can be assigned to each execution object by referring to the determined values of each element in the task assignment matrix.
[0084] Specifically, for example, the task allocation matrix obtained by solving the objective function is: Then, referring to the task allocation matrix, we can assign 3 tasks of the first type, 5 tasks of the second type, and 1 task of the third type to the first execution object, and so on, to the other four execution objects.
[0085] In the above task allocation method, by obtaining the first processing time of each execution object, the actual processing time for each execution object to process its assigned tasks can be calculated first. A task allocation matrix to be solved is constructed, which includes the task queues of each execution object. Each task queue includes multiple elements, where each element represents the number of tasks to be allocated corresponding to a task type. This transforms the task allocation scheme into a matrix to be solved, where each element is a variable to be solved. The second processing time of each execution object is determined based on the task allocation matrix, and substituted into the task allocation matrix to obtain the pre-processing time for each execution object to process its assigned tasks. The expression for calculating processing time is used; an objective function is constructed based on the first and second processing times of each execution object; the objective function is solved with the goal of minimizing the maximum total processing time among all execution objects, thus obtaining the definite values of each element in the task allocation matrix. The total processing time for each execution object is the sum of its first and second processing times. Based on the definite values of each element in the task allocation matrix, the task type and the number of tasks corresponding to each task type can be determined for each execution object. Task allocation is then performed directly based on the definite values of each element in the task allocation matrix for each execution object. This can shorten the longest processing time for a batch of tasks and improve overall task processing efficiency.
[0086] In one embodiment, obtaining the first processing time of each execution object includes: obtaining the assigned task queue of each execution object, where each element in the assigned task queue represents the number of assigned tasks corresponding to a task type; obtaining the task capability matrix of each execution object, where the task capability matrix represents the average processing time of a single task of each task type for the corresponding execution object; and obtaining the first processing time of each execution object based on the task capability matrix of each execution object and the assigned task queue of each execution object.
[0087] Specifically, the task capability matrix of each execution object is obtained, including: obtaining the average processing time of each execution object for each task type of individual task; constructing the task capability matrix of each execution object based on the average processing time of each execution object for each task type of individual task; the task capability matrix includes multiple elements, and each element represents the average processing time corresponding to a single task of a task type.
[0088] Specifically, based on the task capability matrix of each execution object and the assigned task queue of each execution object, the first processing time of each execution object is obtained, including: based on the task capability matrix of each execution object, obtaining the average processing time of each execution object for processing a single task of each task type; based on the assigned task queue of each execution object, obtaining the number of assigned tasks for each execution object in each task type; and based on the average processing time of each execution object for processing a single task of each task type and the number of assigned tasks for each execution object in each task type, the first processing time of each execution object is calculated.
[0089] Optionally, the computer device calculates the average processing time for each execution object's individual tasks of each task type based on the historical task processing records of each execution object, and constructs a task capability matrix. Assume there are m execution objects and n task types. Let e... ij The average processing time for processing a single task of type j for the i-th execution object, where m, n, i, and j are all non-zero natural numbers, i.e., e ij >0, i≤m,j≤n,i∈N * ,j∈N * Let l ij l is the number of assigned tasks of type j in the assigned task queue of the i-th execution object. ij It is a natural number, i.e., l ij ∈N, i≤m,j≤n,i∈N * ,j∈N * Then, the processing time for the i-th execution object to handle the first processing time of all assigned tasks in its assigned task queue is...
[0090] In this embodiment, the allocated task queues of each execution object are obtained, where each element in the allocated task queue represents the number of allocated tasks corresponding to a task type; the task capability matrix of each execution object is obtained, where the task capability matrix represents the average processing time of a single task of each task type for the corresponding execution object; based on the task capability matrix of each execution object and the allocated task queue of each execution object, the first processing time of each execution object is obtained. This allows for the accurate calculation of the time for each execution object to process the allocated tasks.
[0091] In one embodiment, constructing a target function based on the first processing time and the second processing time of each execution object includes: adding the first processing time and the second processing time of each execution object to obtain the total processing time of each execution object; and constructing a target function based on the total processing time of each execution object.
[0092] Furthermore, the objective function is solved with the goal of minimizing the maximum total processing time among the total processing times of all execution objects. This includes: obtaining constraints based on the total number of first tasks in the task set to be assigned and the total number of second tasks corresponding to each task type in the task set to be assigned; and under the constraints, solving the objective function with the goal of minimizing the maximum total processing time among the total processing times of all execution objects.
[0093] The first total number of tasks refers to the total number of all tasks to be assigned (without considering task type), while the second total number of tasks refers to the number of tasks of any one task type among all tasks to be assigned. A set of tasks to be assigned has only one first total number of tasks, but can have multiple second total numbers of tasks. Each task type corresponds to one second total number of tasks.
[0094] Optionally, the computer device sets the task assignment matrix to x. ij , represents the number of tasks of type j to be assigned to the i-th execution object, where x ij It is a natural number, that is, x ij ∈N, i≤m,j≤n,i∈N * ,j∈N * Where m, n, i, and j are all non-zero natural numbers. Therefore, the expression for the second processing time of each execution object is: Add the first and second processing times of each execution object to obtain an expression for the total processing time of all execution objects. Based on the expression for the total processing time of each execution object, the objective function can be constructed with the goal of minimizing the maximum total processing time among all execution objects.
[0095]
[0096] The maximum total processing time can be obtained by first calculating the processing time of each execution object for all tasks of all types in the assigned and unassigned tasks, then finding the execution object with the longest processing time, and finding the case where the total processing time of the execution object with the longest processing time is the minimum. The task allocation matrix at this time is the optimal task allocation method.
[0097] Meanwhile, for the task allocation matrix x ij In other words, the total number of second tasks for each type of task to be assigned must equal the total number of first tasks for all tasks to be assigned. j≤n, j∈N,z j Let Z be a natural number. If the total number of first tasks in the task allocation matrix is Z, and the total number of second tasks of each task type in the task allocation matrix is z... j one, zj To assign the number of tasks j in the task allocation matrix, it is necessary to satisfy z. j ≤Z,z j ∈N,j≤n,j∈N * The constraints are obtained. Under this constraint, the objective function is solved to obtain the task assignment matrix x. ij The definite values of each element in the equation.
[0098] In this embodiment, the total processing time of each execution object is obtained by adding the first processing time and the second processing time of each execution object; an objective function is constructed based on the total processing time of each execution object; constraints are obtained based on the total number of first tasks in the task set to be assigned and the total number of second tasks corresponding to each task type in the task set to be assigned; under the constraints, the objective function is solved with the goal of minimizing the maximum total processing time among the total processing times of each execution object. By obtaining the definite values of each element in the task allocation matrix, the optimal task allocation method is obtained.
[0099] In one embodiment, a task allocation method includes:
[0100] Retrieve the assigned task queue for each execution object. Each element in the assigned task queue represents the number of assigned tasks corresponding to a task type.
[0101] Obtain the average processing time for each execution object to handle individual tasks of each task type; based on the average processing time for each execution object to handle individual tasks of each task type, construct a task capability matrix for each execution object; the task capability matrix includes multiple elements, each element representing the average processing time corresponding to an individual task of a task type. The task capability matrix represents the average processing time for the corresponding execution object to handle individual tasks of each task type.
[0102] Based on the task capability matrix of each execution object, obtain the average processing time for each execution object to handle a single task of each task type; based on the assigned task queue of each execution object, obtain the number of assigned tasks for each execution object in each task type; based on the average processing time for each execution object to handle a single task of each task type, and the number of assigned tasks for each execution object in each task type, calculate the first processing time for each execution object. The first processing time represents the actual processing time for the corresponding execution object to handle the assigned tasks.
[0103] Construct a task allocation matrix to be solved. The task allocation matrix includes the task queues to be allocated for each execution object. Each task queue includes multiple elements, and each element represents the number of tasks to be allocated for a task type.
[0104] The second processing time for each execution object is determined based on the task allocation matrix; the second processing time represents the estimated processing time for the corresponding execution object to process the assigned task.
[0105] Add the first and second processing times of each execution object to obtain the total processing time of each execution object; construct the objective function based on the total processing time of each execution object.
[0106] Based on the total number of first tasks in the task set to be assigned and the total number of second tasks corresponding to each task type in the task set to be assigned, the constraints are obtained. Under the constraints, the objective function is solved with the goal of minimizing the maximum total processing time among the total processing times of each execution object, so as to obtain the definite values of each element in the task assignment matrix. The total processing time corresponding to each execution object is the sum of the first processing time and the second processing time corresponding to each execution object.
[0107] Tasks are assigned to each execution object based on the determined values of each element in the task assignment matrix.
[0108] In one embodiment, a task allocation method, taking the allocation and distribution of bank review tasks as an example, is as follows: Figure 3 As shown, it includes:
[0109] Retrieve the assigned audit task queue for each auditor. Each element in the assigned audit task queue represents the number of assigned audit tasks corresponding to a certain audit task type.
[0110] Obtain the average processing time for each auditor to handle individual audit tasks of each audit task type; based on the average processing time for each auditor to handle individual audit tasks of each audit task type, construct an audit capability matrix for each auditor; the audit capability matrix includes multiple elements, each element representing the average processing time corresponding to an individual audit task of a specific audit task type. The audit capability matrix represents the average processing time for the corresponding auditor to handle individual audit tasks of each audit task type.
[0111] Based on the audit capability matrix of each auditor, the average processing time for each auditor to handle a single audit task of each audit task type is obtained. Based on the assigned audit task queue of each auditor, the number of assigned audit tasks for each auditor in each audit task type is obtained. Based on the average processing time for each auditor to handle a single audit task of each audit task type, and the number of assigned audit tasks for each auditor in each audit task type, the first processing time for each auditor is calculated. The first processing time represents the actual processing time for the corresponding auditor to handle the assigned audit tasks.
[0112] Construct a task allocation matrix to be solved. The task allocation matrix includes the queue of audit tasks to be assigned for each auditor. Each queue of audit tasks to be assigned includes multiple elements, and each element represents the number of audit tasks to be assigned for a certain audit task type.
[0113] The second processing time for each reviewer is determined based on the task allocation matrix; the second processing time represents the estimated processing time for the corresponding reviewer to handle the assigned review tasks.
[0114] Add the first processing time and the second processing time of each auditor to obtain the total processing time of each auditor; construct the objective function based on the total processing time of each auditor.
[0115] Based on the total number of first-level review tasks in the set of review tasks to be assigned, and the total number of second-level review tasks corresponding to each type of review task in the set of review tasks to be assigned, the constraints are obtained. Under the constraints, the objective function is solved with the goal of minimizing the maximum total processing time among the total processing times of each reviewer, so as to obtain the definite values of each element in the task allocation matrix. Here, the total processing time corresponding to each reviewer is the sum of the first-level processing time and the second-level processing time corresponding to each reviewer.
[0116] Based on the determined values of each element in the task allocation matrix, review tasks are assigned to each reviewer.
[0117] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.
[0118] Based on the same inventive concept, this application also provides a task allocation device for implementing the task allocation method described above. The solution provided by this device is similar to the solution described in the above method; therefore, the specific limitations in one or more task allocation device embodiments provided below can be found in the limitations of the task allocation method described above, and will not be repeated here.
[0119] In one embodiment, such as Figure 4As shown, a task allocation device 400 is provided, including: a first acquisition module 401, a first construction module 402, a second acquisition module 403, a second construction module 404, an element calculation module 405, and a task allocation module 406, wherein:
[0120] The first acquisition module 401 is used to acquire the first processing time of each execution object; the first processing time represents the actual processing time of the corresponding execution object in processing the assigned task.
[0121] The first construction module 402 is used to construct the task allocation matrix to be solved. The task allocation matrix includes the task queues to be allocated for each execution object. Each task queue to be allocated includes multiple elements, and each element represents the number of tasks to be allocated corresponding to a task type.
[0122] The second acquisition module 403 is used to determine the second processing time of each execution object according to the task allocation matrix; the second processing time represents the expected processing time of the corresponding execution object in processing the assigned task.
[0123] The second construction module 404 is used to construct the target function based on the first processing time and the second processing time of each execution object.
[0124] The element calculation module 405 is used to solve the objective function with the goal of minimizing the maximum total processing time among the total processing times of each execution object, so as to obtain the definite value of each element in the task allocation matrix. The total processing time corresponding to each execution object is the sum of the first processing time and the second processing time corresponding to each execution object.
[0125] The task allocation module 406 is used to allocate tasks to each execution object based on the determined values of each element in the task allocation matrix.
[0126] In one embodiment, the first acquisition module 401 is further configured to acquire the assigned task queue of each execution object, wherein each element in the assigned task queue represents the number of assigned tasks corresponding to a task type; acquire the task capability matrix of each execution object, wherein the task capability matrix represents the average processing time of the corresponding execution object for processing a single task of each task type; and acquire the first processing time of each execution object based on the task capability matrix of each execution object and the assigned task queue of each execution object.
[0127] In one embodiment, the first acquisition module 401 is further configured to acquire the average processing time of each execution object for each task type of single task; and construct a task capability matrix for each execution object based on the average processing time of each execution object for each task type of single task; the task capability matrix includes multiple elements, and each element represents the average processing time corresponding to a single task of a task type.
[0128] In one embodiment, the first acquisition module 401 is further configured to: acquire the average processing time of each execution object for processing a single task of each task type according to the task capability matrix of each execution object; acquire the number of assigned tasks of each execution object for each task type according to the assigned task queue of each execution object; and calculate the first processing time of each execution object according to the average processing time of each execution object for processing a single task of each task type and the number of assigned tasks of each execution object for each task type.
[0129] In one embodiment, the second construction module 404 is further configured to add the first processing time and the second processing time of each execution object to obtain the total processing time of each execution object; and construct a target function based on the total processing time of each execution object.
[0130] In one embodiment, the element calculation module 405 is further configured to obtain constraints based on the first total number of tasks to be assigned in the task set to be assigned and the second total number of tasks corresponding to each task type in the task set to be assigned; and under the constraints, to solve the objective function with the goal of minimizing the maximum total processing time among the total processing times of each execution object.
[0131] Each module in the aforementioned task allocation device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in the processor of a computer device in hardware form or independent of it, or stored in the memory of the computer device in software form, so that the processor can call and execute the operations corresponding to each module.
[0132] In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 5 As shown, this computer device includes a processor, memory, input / output interfaces (I / O), and a communication interface. The processor, memory, and I / O interfaces are connected via a system bus, and the communication interface is also connected to the system bus via the I / O interfaces. The processor provides computational and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides the environment for the operating system and computer programs stored in the non-volatile storage media. The database stores data such as task capability matrices and task allocation matrices. The I / O interfaces are used for exchanging information between the processor and external devices. The communication interface is used for communication with external terminals via a network connection. When executed by the processor, the computer program implements a task allocation method.
[0133] Those skilled in the art will understand that Figure 5 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0134] In one embodiment, a computer device is provided, including a memory and a processor. The memory stores a computer program, and the processor executes the computer program to perform the following steps: obtaining a first processing time for each execution object; the first processing time characterizes the actual processing time for the corresponding execution object to process the assigned tasks; constructing a task allocation matrix to be solved, the task allocation matrix including a queue of tasks to be allocated for each execution object, each queue including multiple elements, each element representing the number of tasks to be allocated corresponding to a task type; determining a second processing time for each execution object based on the task allocation matrix; the second processing time characterizes the expected processing time for the corresponding execution object to process the assigned tasks; constructing an objective function based on the first and second processing times for each execution object; solving the objective function with the objective of minimizing the maximum total processing time among the total processing times of each execution object, to obtain the determined values of each element in the task allocation matrix, wherein the total processing time corresponding to each execution object is the sum of the first and second processing times corresponding to each execution object; and allocating tasks to each execution object based on the determined values of each element in the task allocation matrix.
[0135] In one embodiment, when the processor executes the computer program, it further performs the following steps: obtaining the assigned task queue of each execution object, where each element in the assigned task queue represents the number of assigned tasks corresponding to a task type; obtaining the task capability matrix of each execution object, where the task capability matrix represents the average processing time of a single task of each task type for the corresponding execution object; and obtaining the first processing time of each execution object based on the task capability matrix of each execution object and the assigned task queue of each execution object.
[0136] In one embodiment, when the processor executes the computer program, it further performs the following steps: obtaining the average processing time of each execution object for processing individual tasks of each task type; constructing a task capability matrix for each execution object based on the average processing time of each execution object for processing individual tasks of each task type; the task capability matrix includes multiple elements, and each element represents the average processing time corresponding to an individual task of a task type.
[0137] In one embodiment, when the processor executes the computer program, it further performs the following steps: based on the task capability matrix of each execution object, it obtains the average processing time of each execution object for processing a single task of each task type; based on the allocated task queue of each execution object, it obtains the number of allocated tasks for each execution object in each task type; based on the average processing time of each execution object for processing a single task of each task type and the number of allocated tasks for each execution object in each task type, it calculates the first processing time of each execution object.
[0138] In one embodiment, when the processor executes the computer program, it further performs the following steps: adding the first processing time and the second processing time of each execution object to obtain the total processing time of each execution object; and constructing a target function based on the total processing time of each execution object.
[0139] In one embodiment, when the processor executes the computer program, it further performs the following steps: obtaining constraints based on the first total number of tasks to be assigned in the task set to be assigned and the second total number of tasks corresponding to each task type in the task set to be assigned; and under the constraints, solving the objective function with the goal of minimizing the maximum total processing time among the total processing times of each execution object.
[0140] 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, it performs the following steps: obtaining a first processing time for each execution object; the first processing time characterizes the actual processing time for the corresponding execution object to process the assigned tasks; constructing a task allocation matrix to be solved, the task allocation matrix including a queue of tasks to be allocated for each execution object, each queue including multiple elements, each element representing the number of tasks to be allocated corresponding to a task type; determining a second processing time for each execution object based on the task allocation matrix; the second processing time characterizes the expected processing time for the corresponding execution object to process the assigned tasks; constructing an objective function based on the first and second processing times for each execution object; solving the objective function with the objective of minimizing the maximum total processing time among the total processing times of each execution object, to obtain the determined values of each element in the task allocation matrix, wherein the total processing time corresponding to each execution object is the sum of the first and second processing times corresponding to each execution object; and allocating tasks to each execution object based on the determined values of each element in the task allocation matrix.
[0141] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: obtaining the assigned task queue of each execution object, where each element in the assigned task queue represents the number of assigned tasks corresponding to a task type; obtaining the task capability matrix of each execution object, where the task capability matrix represents the average processing time of a single task of each task type for the corresponding execution object; and obtaining the first processing time of each execution object based on the task capability matrix of each execution object and the assigned task queue of each execution object.
[0142] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: obtaining the average processing time of each execution object for processing individual tasks of each task type; constructing a task capability matrix for each execution object based on the average processing time of each execution object for processing individual tasks of each task type; the task capability matrix includes multiple elements, and each element represents the average processing time corresponding to an individual task of a task type.
[0143] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: based on the task capability matrix of each execution object, obtain the average processing time of each execution object for processing a single task of each task type; based on the allocated task queue of each execution object, obtain the number of allocated tasks for each execution object in each task type; and based on the average processing time of each execution object for processing a single task of each task type and the number of allocated tasks for each execution object in each task type, calculate the first processing time of each execution object.
[0144] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: adding the first processing time and the second processing time of each execution object to obtain the total processing time of each execution object; and constructing a target function based on the total processing time of each execution object.
[0145] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: obtaining constraints based on the first total number of tasks to be assigned in the task set to be assigned and the second total number of tasks corresponding to each task type in the task set to be assigned; and under the constraints, solving the objective function with the goal of minimizing the maximum total processing time among the total processing times of each execution object.
[0146] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, performs the following steps: obtaining a first processing time for each execution object; the first processing time characterizes the actual processing time for the corresponding execution object to process assigned tasks; constructing a task allocation matrix to be solved, the task allocation matrix including a queue of tasks to be allocated for each execution object, each queue including multiple elements, each element representing the number of tasks to be allocated corresponding to a task type; determining a second processing time for each execution object based on the task allocation matrix; the second processing time characterizes the expected processing time for the corresponding execution object to process assigned tasks; constructing an objective function based on the first and second processing times for each execution object; solving the objective function with the objective of minimizing the maximum total processing time among the total processing times of each execution object, to obtain the determined values of each element in the task allocation matrix, wherein the total processing time corresponding to each execution object is the sum of the first and second processing times corresponding to each execution object; and allocating tasks to each execution object based on the determined values of each element in the task allocation matrix.
[0147] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: obtaining the assigned task queue of each execution object, where each element in the assigned task queue represents the number of assigned tasks corresponding to a task type; obtaining the task capability matrix of each execution object, where the task capability matrix represents the average processing time of a single task of each task type for the corresponding execution object; and obtaining the first processing time of each execution object based on the task capability matrix of each execution object and the assigned task queue of each execution object.
[0148] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: obtaining the average processing time of each execution object for processing individual tasks of each task type; constructing a task capability matrix for each execution object based on the average processing time of each execution object for processing individual tasks of each task type; the task capability matrix includes multiple elements, and each element represents the average processing time corresponding to an individual task of a task type.
[0149] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: based on the task capability matrix of each execution object, obtain the average processing time of each execution object for processing a single task of each task type; based on the allocated task queue of each execution object, obtain the number of allocated tasks for each execution object in each task type; and based on the average processing time of each execution object for processing a single task of each task type and the number of allocated tasks for each execution object in each task type, calculate the first processing time of each execution object.
[0150] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: adding the first processing time and the second processing time of each execution object to obtain the total processing time of each execution object; and constructing a target function based on the total processing time of each execution object.
[0151] In one embodiment, when the computer program is executed by the processor, it further performs the following steps: obtaining constraints based on the first total number of tasks to be assigned in the task set to be assigned and the second total number of tasks corresponding to each task type in the task set to be assigned; and under the constraints, solving the objective function with the goal of minimizing the maximum total processing time among the total processing times of each execution object.
[0152] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, 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 the relevant data shall comply with the relevant laws, regulations and standards of the relevant countries and regions.
[0153] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile 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. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.
[0154] The technical features of the above embodiments can be combined in any way. For the sake of brevity, 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 specification.
[0155] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.
Claims
1. A task allocation method, characterized in that, The method includes: Obtain the first processing time for each execution object; the first processing time represents the actual processing time for the corresponding execution object to process the assigned tasks. Construct a task allocation matrix to be solved. The task allocation matrix includes a queue of tasks to be allocated for each execution object. Each queue of tasks to be allocated includes multiple elements, and each element represents the number of tasks to be allocated corresponding to a task type. The second processing time for each execution object is determined based on the task allocation matrix; the second processing time represents the estimated processing time for the corresponding execution object to process the assigned task. Construct the objective function based on the first and second processing times of each execution object; The objective function is solved with the goal of minimizing the maximum total processing time among the total processing times of all execution objects, so as to obtain the definite values of each element in the task allocation matrix; Tasks are assigned to each execution object based on the determined values of each element in the task allocation matrix. The construction of the objective function based on the first processing time and the second processing time of each execution object includes: adding the first processing time and the second processing time of each execution object to obtain the total processing time of each execution object; and constructing the objective function based on the total processing time of each execution object. The objective of minimizing the maximum total processing time among all execution objects refers to calculating the total processing time of each execution object, determining the execution object with the maximum total processing time from the total processing times of all execution objects calculated, and minimizing the total processing time of the execution object with the maximum total processing time. The process of obtaining the first processing time for each execution object includes: Obtain the assigned task queue for each execution object, where each element in the assigned task queue represents the number of assigned tasks corresponding to a task type; obtain the task capability matrix for each execution object, where the task capability matrix represents the average processing time for a single task of each task type for the corresponding execution object; the average processing time is determined based on the historical task processing time of each execution object and the processor's load capacity; based on the task capability matrix of each execution object and the assigned task queue of each execution object, obtain the first processing time of each execution object.
2. The method according to claim 1, characterized in that, The process of obtaining the task capability matrix of each execution object includes: Get the average processing time for each execution object to handle a single task of each task type; Based on the average processing time of each execution object for each task type, a task capability matrix is constructed for each execution object; the task capability matrix includes multiple elements, and each element represents the average processing time corresponding to a single task of a task type.
3. The method according to claim 1, characterized in that, The step of obtaining the first processing time of each execution object based on the task capability matrix of each execution object and the allocated task queue of each execution object includes: Based on the task capability matrix of each execution object, obtain the average processing time of each execution object for each task type of individual task; Based on the assigned task queue of each execution object, obtain the number of assigned tasks for each execution object in each task type; The first processing time of each execution object is calculated based on the average processing time of each task of each task type and the number of tasks assigned to each execution object for each task type.
4. The method according to claim 1, characterized in that, Solving the objective function with the goal of minimizing the maximum total processing time among the total processing times of all execution objects includes: Based on the total number of the first task in the set of tasks to be assigned, and the total number of the second task corresponding to each task type in the set of tasks to be assigned, the constraints are obtained. Under the constraints, the objective function is solved with the goal of minimizing the maximum total processing time among the total processing times of all execution objects.
5. A task allocation device, characterized in that, The device includes: The first acquisition module is used to acquire the first processing time of each execution object; the first processing time represents the actual processing time of the corresponding execution object in processing the assigned task. The first construction module is used to construct the task allocation matrix to be solved. The task allocation matrix includes the task queues to be allocated for each execution object. Each task queue includes multiple elements, and each element represents the number of tasks to be allocated corresponding to a task type. The second acquisition module is used to determine the second processing time of each execution object according to the task allocation matrix; the second processing time represents the expected processing time for the corresponding execution object to process the assigned task; The second construction module is used to construct the target function based on the first processing time and the second processing time of each execution object; The element calculation module is used to solve the objective function with the goal of minimizing the maximum total processing time among the total processing times of each execution object, so as to obtain the definite value of each element in the task allocation matrix; The task allocation module is used to allocate tasks to each execution object based on the determined values of each element in the task allocation matrix. The construction of the objective function based on the first processing time and the second processing time of each execution object includes: adding the first processing time and the second processing time of each execution object to obtain the total processing time of each execution object; and constructing the objective function based on the total processing time of each execution object. The objective of minimizing the maximum total processing time among all execution objects refers to calculating the total processing time of each execution object, determining the execution object with the maximum total processing time from the total processing times of all execution objects calculated, and minimizing the total processing time of the execution object with the maximum total processing time. The process of obtaining the first processing time for each execution object includes: Obtain the assigned task queue for each execution object, where each element in the assigned task queue represents the number of assigned tasks corresponding to a task type; obtain the task capability matrix for each execution object, where the task capability matrix represents the average processing time for a single task of each task type for the corresponding execution object; the average processing time is determined based on the historical task processing time of each execution object and the processor's load capacity; based on the task capability matrix of each execution object and the assigned task queue of each execution object, obtain the first processing time of each execution object.
6. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 4.
7. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 4.
8. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 4.
Citation Information
Patent Citations
Task allocation method and device based on load matrix analysis
CN111506872A
Task allocation method and system, electronic equipment and storage medium
CN114139942A