Task allocation method based on multi-target simulated annealing and related device

Through the task allocation method based on multi-objective simulation annealing, the problems of inaccurate developers' evaluation and single goals in the existing technology are solved, and more accurate and efficient task allocation is achieved in banking business scenarios, ensuring that the project is completed on time and with high quality.

CN119671148APending Publication Date: 2025-03-21AGRICULTURAL BANK OF CHINA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411735104.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-29
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

The existing agile development task allocation methods have problems such as inaccurate developer evaluation and single goals, and it is difficult to reasonably allocate tasks in banking business scenarios to ensure that the project is completed on time and with high quality.

Method used

The task allocation method based on multi-objective simulation annealing is adopted. By obtaining the task and developer configuration, the developer task completion quality is evaluated, the multi-objective optimization model is constructed, and the multi-objective simulation annealing algorithm is used to obtain the optimal task allocation plan.

Benefits of technology

It achieves more accurate developer evaluation and task allocation, and can find a balance between multiple goals, ensure the best results of task completion quality and time, and improve the efficiency and quality of project management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119671148A_ABST
    Figure CN119671148A_ABST
Patent Text Reader

Abstract

The invention provides a task allocation method based on multi-target simulated annealing and a related device, relates to the technical field of software, and aims to obtain task configuration and development configuration, the development configuration comprises skills of developers, maximum undertaking working hours and task completion working hours estimated for agile tasks; evaluating the task completion quality of the developer under the skills of the developer; setting constraint conditions according to the characteristics, and constructing an agile development task allocation model aiming at maximizing task completion quality and minimizing task completion time; and solving the agile development task allocation model based on a multi-target simulated annealing algorithm to obtain a task allocation result. According to the method, the global search capability and the multi-target optimization capability can be fully utilized based on the multi-target simulated annealing algorithm, a plurality of targets and constraint conditions are comprehensively considered, the optimal task allocation scheme is searched, and multi-target balance and optimization are realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of software technology, and in particular to a task allocation method based on multi-objective simulated annealing and related devices. Background Art

[0002] With the rapid development of banking business and the intensification of market competition, banks need to respond to market changes and customer needs more efficiently. Agile development, as a development method centered on rapid response to changes, is being adopted by more and more banks. However, in the agile development project management process, how to reasonably allocate tasks and ensure that projects can be completed on time and with high quality has always been an important issue facing bank R&D management.

[0003] Existing agile development task allocation methods have problems such as inaccurate developer evaluation and single goal. When assigning new tasks, existing methods ignore the historical performance of developers. Inaccurate evaluation of developers leads to unreasonable task allocation, especially in banking business scenarios. The evaluation of task completion quality must also take into account compliance requirements and security requirements, which makes task allocation more complicated. In addition, traditional methods often only solve a single goal, such as minimizing completion time or maximizing resource utilization, while the evaluation of task allocation strategies in actual application scenarios is diverse. This single-goal optimization method often fails to achieve the overall optimal effect, thus affecting the overall progress and quality of the project. Summary of the invention

[0004] In view of the above problems, the present application provides a task allocation method and related devices based on multi-objective simulated annealing to achieve the purpose of finding the optimal task allocation solution. The specific solution is as follows:

[0005] The first aspect of the present application provides a task allocation method based on multi-objective simulated annealing, and the task allocation method based on multi-objective simulated annealing comprises:

[0006] Obtaining a task configuration and a development configuration, wherein the task configuration includes the skills and maximum completion time of the agile task, and the development configuration includes the skills of the developer, the maximum available work time, and the estimated task completion time for the agile task;

[0007] Assess the quality of the tasks completed by said developer within the skill set of said developer;

[0008] According to the characteristic setting constraint conditions, an agile development task allocation model is constructed with the goal of maximizing the task completion quality and minimizing the task completion time. The characteristic setting constraint conditions include that one agile task is allocated to one of the developers with the same skills, the task completion time of the developer for the assigned agile task is less than the maximum completion time of the agile task, and the sum of the task completion time is less than the maximum acceptable time of the developer.

[0009] The agile development task allocation model is solved based on a multi-objective simulated annealing algorithm to obtain a task allocation result.

[0010] In a possible implementation, the evaluating the quality of the developer's task completion based on his / her skills includes:

[0011] Determine the quality evaluation indicators of agile development;

[0012] Use a comprehensive integrated weighting method to determine the weights of the agile development quality evaluation indicators;

[0013] Obtaining the historical task completion records of the developer under his / her skills, and obtaining the indicator value of the agile development quality evaluation indicator according to the historical task completion records;

[0014] The weights and index values ​​of the agile development quality evaluation indicators are used to calculate the task completion quality score of the developer based on his or her skills.

[0015] In a possible implementation, the use of a comprehensive integrated weighting method to determine the weight of the agile development quality evaluation index includes:

[0016] Determine the subjective weight of the agile development quality evaluation index through the hierarchical analysis method;

[0017] Calculate the objective weight of the agile development quality evaluation index by using the entropy weight method;

[0018] The comprehensive weight of the agile development quality evaluation index is calculated based on the subjective weight and the objective weight.

[0019] In a possible implementation, solving the agile development task allocation model based on a multi-objective simulated annealing algorithm to obtain a task allocation result includes:

[0020] Initializing algorithm parameters, the algorithm parameters including an initial temperature, a minimum temperature, a number of search iterations, and a number of termination iterations, the initial temperature being determined according to the goal of the agile development task allocation model;

[0021] Taking the initial temperature as the current temperature;

[0022] Randomly generate a task allocation solution at the current temperature, and use the task allocation solution as the current solution;

[0023] Add the current solution to the Pareto solution set, and calculate the first objective function value corresponding to the current solution;

[0024] Generate a neighborhood solution of the current solution, and calculate a second objective function value corresponding to the neighborhood solution;

[0025] In the case where the first objective function value is better than the second objective function value, the acceptance probability of the neighborhood solution is calculated according to the second objective function value; if the acceptance probability satisfies the corresponding acceptance condition, the neighborhood solution is taken as the current solution, and the step of adding the current solution to the Pareto solution set is returned to be executed; if the acceptance probability does not satisfy the corresponding acceptance condition, the current solution is retained, and the step of generating the neighborhood solution of the current solution is returned to be executed;

[0026] In the case where the second objective function value is better than the first objective function value, taking the neighborhood solution as the current solution, and returning to execute the step of adding the current solution to the Pareto solution set;

[0027] Counting the current iteration number of the task allocation solution at the current temperature;

[0028] When the current number of iterations reaches the search number of iterations, randomly select a solution from the Pareto solution set as the current solution, and return to execute the step of adding the current solution to the Pareto solution set;

[0029] When the current number of iterations reaches the termination number of iterations, or the first objective function value in the most recent iterations is better than the second objective function value, the inner loop at the current temperature is terminated;

[0030] The current temperature is cooled down, and the randomly generated task allocation solution at the current temperature is returned to be executed. This step ends the outer loop when the current temperature reaches the minimum temperature, and the Pareto solution set is output to select the optimal task allocation solution from the Pareto solution set.

[0031] In a possible implementation, the task allocation method based on multi-objective simulated annealing further includes:

[0032] The agile tasks and the developers are classified according to their skills, and the classification results are used as a basis for solving the agile development task allocation model.

[0033] A second aspect of the present application provides a task allocation device based on multi-objective simulated annealing, the task allocation device based on multi-objective simulated annealing comprising:

[0034] A configuration acquisition module, used to acquire task configuration and development configuration, wherein the task configuration includes the skills and maximum completion time of the agile task, and the development configuration includes the skills of the developer, the maximum available work time, and the estimated task completion time for the agile task;

[0035] A quality assessment module, used to assess the quality of task completion of the developer under his / her skills;

[0036] The task solving module is used to set constraint conditions according to characteristics, and construct an agile development task allocation model with the goal of maximizing the quality of task completion and minimizing the task completion time. The characteristic setting constraint conditions include that one of the agile tasks is assigned to one of the developers with the same skills, the task completion time of the developer for the assigned agile task is less than the maximum completion time of the agile task, and the sum of the task completion time is less than the maximum acceptable time of the developer; the agile development task allocation model is solved based on a multi-objective simulated annealing algorithm to obtain a task allocation result.

[0037] In a possible implementation, the quality assessment module is specifically used to:

[0038] Determine agile development quality evaluation indicators; use a comprehensive integrated weighting method to determine the weights of the agile development quality evaluation indicators; obtain the historical task completion records of the developer under his / her skills, and obtain the indicator value of the agile development quality evaluation indicator based on the historical task completion records; use the weights and indicator values ​​of the agile development quality evaluation indicators to calculate the task completion quality score of the developer under his / her skills.

[0039] The third aspect of the present application provides a computer program product, including computer-readable instructions. When the computer-readable instructions are executed on an electronic device, the electronic device implements the task allocation method based on multi-objective simulated annealing according to the above-mentioned first aspect or any implementation of the first aspect.

[0040] A fourth aspect of the present application provides an electronic device, comprising at least one processor and a memory connected to the processor, wherein:

[0041] The memory is used to store computer programs;

[0042] The processor is used to execute the computer program so that the electronic device can implement the task allocation method based on multi-objective simulated annealing according to the above-mentioned first aspect or any implementation manner of the first aspect.

[0043] In a fifth aspect, the present application provides a computer storage medium, which carries one or more computer programs. When the one or more computer programs are executed by an electronic device, the electronic device can implement the task allocation method based on multi-objective simulated annealing according to the above-mentioned first aspect or any implementation method of the first aspect.

[0044] By means of the above technical scheme, the present application provides a method and related devices for task allocation based on multi-objective simulated annealing, which obtain task configuration and development configuration, wherein the task configuration includes the skills and maximum completion time of agile tasks, and the development configuration includes the skills of developers, the maximum acceptable hours, and the estimated task completion time of agile tasks; evaluate the task completion quality of developers under their skills; set constraints according to characteristics, and construct an agile development task allocation model with the goal of maximizing task completion quality and minimizing task completion time, wherein the characteristic setting constraints include that an agile task is assigned to a developer with the same skills, the task completion time of the developer for the assigned agile task is less than the maximum completion time of the agile task, and the sum of the task completion time is less than the maximum acceptable hours of the developer; solve the agile development task allocation model based on the multi-objective simulated annealing algorithm to obtain the task allocation result. In the problem of agile development task allocation in banks, the use of a multi-objective simulated annealing algorithm can make full use of its global search capability and multi-objective optimization capability, comprehensively consider multiple objectives and constraints, and find the optimal task allocation solution. By reasonably defining the agile development task allocation model, we can shorten the development time as much as possible, improve team satisfaction, and achieve a balance and optimization of multiple objectives while ensuring development quality and cost. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the accompanying drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and the originals and elements are not necessarily drawn to scale.

[0046] Figure 1 A flowchart of a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application;

[0047] Figure 2 A partial flow chart of a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application;

[0048] Figure 3 Another partial flow chart of a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application;

[0049] Figure 4Another partial flow chart of a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application;

[0050] Figure 5 A schematic diagram of the structure of a task allocation device based on multi-objective simulated annealing provided in an embodiment of the present application;

[0051] Figure 6 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0052] The following describes the embodiments of the present application in conjunction with the drawings in the embodiments of the present application. The terms used in the implementation method section of the present application are only used to explain the specific embodiments of the present application, and are not intended to limit the present application.

[0053] The embodiments of the present application are described below in conjunction with the accompanying drawings. Those skilled in the art will appreciate that, with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0054] The terms "first", "second" etc. in the specification of the application and the above-mentioned drawings are used to distinguish similar objects, and need not be used to describe a specific order or sequential order. It should be understood that the terms used in this way can be interchangeable in appropriate circumstances, and this is only to describe the distinction mode adopted by the objects of the same attributes when describing in the embodiments of the application. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, so that the process, method, system, product or equipment comprising a series of units need not be limited to those units, but may include other units that are not clearly listed or inherent to these processes, methods, products or equipment.

[0055] To facilitate understanding of this application, the following first describes the relevant concepts involved in this application:

[0056] Agile development: Agile development is an iterative software development method that emphasizes rapid response to changes, continuous delivery, and team collaboration. Unlike traditional waterfall development, agile development focuses more on flexibility and adaptability, and can quickly respond to changes in project requirements. It emphasizes close cooperation with customers, and gradually builds and improves software systems through short-cycle iterative development.

[0057] Task allocation: Task allocation is an important part of project management, which involves allocating project tasks to different team members or teams. In software development projects, task allocation is usually based on factors such as team members' skills, experience, and available time. Reasonable task allocation can ensure that the project proceeds as planned, improve development efficiency and project quality. Task allocation needs to take into account factors such as the complexity of the task to ensure that the task is assigned to the most appropriate team member.

[0058] Multi-objective simulated annealing algorithm (MOSA): The multi-objective simulated annealing algorithm is an optimization algorithm used to solve problems with multiple objective functions that need to be optimized simultaneously. It is based on the principle of simulated annealing and introduces randomness and probability acceptance criteria in the search process to avoid falling into the local optimal solution and thus find the global optimal solution. The algorithm can balance the relationship between multiple objectives and obtain a compromise solution that meets all objectives. By simulating the physical annealing process, the algorithm continuously iterates in the search space, gradually lowers the temperature, reduces the search range, and finally finds the optimal solution.

[0059] Comprehensive integrated weighting method: Comprehensive integrated weighting method is a scientific weight determination method, which aims to comprehensively and systematically consider multiple relevant factors or indicators in the decision-making process. It integrates various information sources, such as objective data and expert subjective opinions, and uses mathematical, statistical and other analytical methods to integrate this information to determine the relative importance weight of each factor or indicator in decision-making. This method emphasizes the combination of objectivity and subjectivity, respects data facts, and makes full use of expert knowledge and experience to ensure the scientificity and rationality of weight assignment, providing decision makers with a comprehensive and accurate basis for decision-making.

[0060] Historical task completion quality: Task completion quality refers to the quality level demonstrated by developers in tasks completed in the past. This includes indicators such as task completion rate, code defect rate, repair time, code quality score, and customer score. By analyzing the historical task completion quality, you can evaluate the ability and efficiency of developers, thereby providing a more reliable basis for future task allocation. In agile development task allocation, considering the historical task completion quality can better understand the actual performance of developers and make more reasonable task allocation decisions.

[0061] With the rapid development of banking business and the intensification of market competition, banks need to respond to market changes and customer needs more efficiently. Agile development, as a development method centered on rapid response to changes, is being adopted by more and more banks. However, in the agile development project management process, how to reasonably allocate tasks and ensure that projects can be completed on time and with high quality has always been an important issue facing bank R&D management.

[0062] The current task allocation methods used in the bank project management process often rely on manual experience and intuition, or use simple task allocation methods such as the rotation method, the Hungarian algorithm, the KM algorithm, etc. Although these methods are simple and easy to implement, they often fail to achieve ideal results when faced with complex task allocation problems with multiple objectives and multiple constraints. For example, they cannot simultaneously consider multiple objectives such as completion time, cost, and quality, nor can they fully consider constraints such as team members' skills and workload.

[0063] In recent years, with the development of artificial intelligence and optimization algorithms, researchers have begun to try to apply heuristic optimization algorithms to task allocation problems. Among them, the simulated annealing algorithm, as a classic heuristic optimization algorithm, has attracted widespread attention for its strong global search capability and good robustness. The simulated annealing algorithm simulates the physical behavior of solid annealing and is used to find the global optimal solution of the problem in a complex solution space. The algorithm starts from an initial solution and moves gradually in the solution space by randomly generating new solutions in the neighborhood of the current solution and accepting or rejecting the new solutions according to a certain probability. This probability is related to the current temperature. When the temperature is high at the beginning, the algorithm has a greater probability of accepting poor new solutions so as to conduct extensive searches in the global range. As the temperature gradually decreases, the probability of the algorithm accepting poor solutions decreases, and the search process gradually stabilizes. By repeating this process continuously, the algorithm can eventually approach the global optimal solution. The key to the simulated annealing algorithm lies in how to balance global search and local search, and how to choose a suitable temperature drop strategy. By reasonably setting parameters such as initial temperature, cooling rate, and acceptance criterion, the algorithm can achieve efficient optimization search under limited computing resources.

[0064] The multi-objective simulated annealing algorithm is an extension of the simulated annealing algorithm in the field of multi-objective optimization. In the problem of software development task allocation, it is usually necessary to consider multiple objectives at the same time, such as minimizing development time, minimizing cost, maximizing team satisfaction, etc. There are often conflicts and contradictions between these objectives, which require trade-offs and compromises in the allocation process. Most of the current multi-objective optimization methods convert multi-objective problems into single-objective problems by using the weighted coefficient method to solve them. This method requires pre-setting weights, is highly subjective, and is difficult to handle conflicts between multiple objectives. The multi-objective simulated annealing algorithm can automatically weigh multiple objectives and find multiple optimal solutions by simulating annealing behavior and combining the Pareto dominance principle, thereby solving multi-objective optimization problems more comprehensively and effectively.

[0065] The multi-objective simulated annealing algorithm is dedicated to finding the Pareto optimal solution set. In the Pareto optimal solution set, it is impossible for any solution to improve one objective without degrading at least one other objective. Starting from the initial solution, the algorithm generates a new solution in the neighborhood of the current solution, and evaluates the pros and cons of the new solution by comparing the performance of the new solution with the current solution on multiple objectives. The algorithm not only accepts improved solutions, but also accepts non-dominated solutions (i.e., those that have not been found to be better than it in the current solution set) with a certain probability, thereby maintaining the diversity of solutions. As the temperature gradually decreases, the algorithm approaches the Pareto frontier, i.e., the set of all Pareto optimal solutions, through continuous iterations, providing decision makers with an optimal solution set that finds a balance between multiple objectives. Based on this, the present application provides a task allocation method and related devices based on multi-objective simulated annealing.

[0066] See also Figure 1 , Figure 1 A flowchart of a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application. Figure 1 As shown, a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application includes the following steps S10 to S30, which are described in detail below.

[0067] S10, obtaining task configuration and development configuration, wherein the task configuration includes the skills and maximum completion time of the agile task, and the development configuration includes the skills of the developer, the maximum work time that can be undertaken, and the estimated task completion time for the agile task.

[0068] In an embodiment of the present application, in response to the task allocation requirements, the task configuration and development configuration required for this task allocation are obtained, wherein the task configuration includes the skills and maximum completion hours of multiple agile tasks, and the development configuration includes the skills of multiple developers, the maximum acceptable hours, and the estimated task completion hours for each agile task. In actual applications, after obtaining several agile development projects, the product manager will collect project requirement information, and the project manager will collect information such as developer skills. The two parties jointly disassemble the project, decompose each agile development project into multiple agile tasks, and clarify the skills and maximum completion hours required for each agile task. In addition, the developer's skills, maximum acceptable hours, and estimated task completion hours for each agile task are provided by the developer.

[0069] S20,evaluates the quality of task completion of developers within their skills.

[0070] In the embodiment of the present application, each developer has at least one skill. In order to maximize the developer's advantages, it is necessary to evaluate the developer's task completion quality under each skill, which can be determined based on the developer's historical task completion records using different skills.

[0071] See also Figure 2 , Figure 2 A partial flow chart of a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application. Figure 2 As shown, an embodiment of the present application provides a task assignment method based on multi-objective simulated annealing, wherein step S20 "evaluates the quality of task completion of developers based on their skills" may include the following steps S201 to S204, which are described in detail below.

[0072] S201, determine the quality evaluation indicators of agile development.

[0073] In the embodiment of the present application, in order to comprehensively and objectively evaluate the quality of developers' agile development task completion, taking into account the uniqueness of the banking scenario, including its strict compliance requirements and high security requirements, seven agile development quality evaluation indicators can be selected, namely, bank compliance inspection pass rate, number of security vulnerabilities, defect rate, customer rating, code quality rating, task completion rate, and task timeout rate.

[0074] S202, use the comprehensive integrated weighting method to determine the weights of agile development quality evaluation indicators.

[0075] In the embodiment of the present application, a comprehensive integrated weighting method is used to determine the weights of various agile development quality evaluation indicators, which helps to more accurately evaluate the quality of developers' task completion and improve the pertinence and efficiency of task allocation.

[0076] See also Figure 3 , Figure 3 Another partial flow chart of a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application. Figure 3 As shown, an embodiment of the present application provides a task allocation method based on multi-objective simulated annealing, wherein step S202 "using a comprehensive integrated weighting method to determine the weights of agile development quality evaluation indicators" may include the following steps S2021 to S2023, and these steps are described in detail below.

[0077] S2021, determine the subjective weights of agile development quality evaluation indicators through the analytic hierarchy process.

[0078] In an embodiment of the present application, the relative importance of agile development quality evaluation indicators can be determined through expert scoring or team discussion, so as to construct a judgment matrix, and then calculate the eigenvector of the judgment matrix, and obtain the subjective weight of each agile development quality evaluation indicator through normalization.

[0079] S2022, use the entropy weight method to calculate the objective weights of agile development quality evaluation indicators.

[0080] In an embodiment of the present application, historical agile development task data can be collected to calculate the entropy value of each agile development quality evaluation indicator. The entropy value reflects the discreteness of the data and the contribution of the indicator to the overall evaluation. Then, based on the size of the entropy value, the objective weight of each agile development quality evaluation indicator is determined.

[0081] S2023, calculate the comprehensive weight of agile development quality evaluation indicators based on subjective weight and objective weight.

[0082] In the embodiment of the present application, a comprehensive integrated weighting method based on multiplication normalization is used to determine the comprehensive weights of various agile development quality evaluation indicators. Represents the subjective weight of the i-th agile development quality evaluation indicator, using represents the objective weight of the i-th agile development quality evaluation index, then the comprehensive weight of the i-th agile development quality evaluation index W i It can be expressed using the following formula (1):

[0083]

[0084] In the above formula (1), n ​​represents the number of agile development quality evaluation indicators.

[0085] Based on this, this application uses a comprehensive integrated weighting method to determine the weights, which not only takes into account expert opinions and decision maker preferences, but also utilizes the objective information of historical data to make the weight distribution more reasonable.

[0086] S203, obtaining the historical task completion records of the developer under his / her skills, and obtaining the indicator value of the agile development quality evaluation indicator according to the historical task completion records.

[0087] In the embodiment of the present application, the historical task completion records of the developer under each skill are obtained to determine the index values ​​of each agile development quality evaluation index under different skills, providing an important basis for the task allocation of agile development.

[0088] S204, using the weights and indicator values ​​of the agile development quality evaluation indicators, calculate the task completion quality score of the developer based on his or her skills.

[0089] In the embodiment of the present application, under a certain skill, it is assumed that the indicator value of the developer in the i-th agile development quality evaluation indicator is V i , the following formula (2) can be used to calculate the developer's task completion quality score PQ for this skill:

[0090]

[0091] S30, setting constraints according to the characteristics, constructing an agile development task allocation model with the goal of maximizing the quality of task completion and minimizing the task completion time. The characteristic setting constraints include that an agile task is assigned to a developer with the same skills, the developer's task completion time for the assigned agile task is less than the maximum completion time of the agile task, and the sum of the task completion time is less than the maximum acceptable time for the developer.

[0092] This application aims to solve the problem of agile development task allocation, and maximize the quality of task completion while minimizing the task completion time under the premise of satisfying multiple constraints. Therefore, it is necessary to model the task allocation problem first. In order to better build the model, the following assumptions are made: each agile task after project decomposition requires only one skill; there is no strong dependency between agile tasks; each agile task can only be assigned to one developer, but each developer can receive multiple tasks at a time. Based on this, the variable definition, decision variables, objective function, and feature setting constraints of the agile development task allocation model are as follows:

[0093] 1) Variable definition: Assume there are m developers, where the skill set of the i-th developer is represented by PS i , the task completion quality score of the i-th developer under the k-th skill is expressed as PQ ik , the maximum work time that the i-th developer can undertake is expressed as PMT i Assume that there are n agile development tasks to be assigned, and the maximum completion time of the jth agile development task is TT j , the skill required for the jth agile development task is TS j The task completion time PT of the i-th developer to complete the j-th agile development task ij Since the task completion quality score of the i-th developer under the k-th skill is expressed as PQ ik , each agile development corresponds to only one skill, so the task completion quality score of a developer completing a certain agile development task can be obtained, that is, the task completion quality score of the i-th developer completing the j-th agile development task is PQ ik .

[0094] 2) Decision variables: Decision variables x of the agile development task allocation model ij It can be expressed using the following formula (3):

[0095]

[0096] 3) Objective function: The agile development task allocation model maximizes the quality of task completion, that is, it hopes to allocate agile development tasks to developers with high task completion quality as much as possible. The corresponding objective function F1 is expressed by the following formula (4):

[0097]

[0098] On the other hand, the agile development task allocation model minimizes the time required to complete a task, that is, it hopes to allocate agile development tasks to developers with short task completion time as much as possible. The corresponding objective function F2 is expressed by the following formula (5):

[0099]

[0100] 4) Feature setting constraints: The agile development task allocation model requires developers to complete each assigned agile task within a time limit less than the maximum time required to complete the agile task. The corresponding constraint function is expressed as follows:

[0101] PT ij <TT j (6)

[0102] On the other hand, the agile development task allocation model requires that the sum of the task completion hours of all assigned agile tasks by developers is less than their maximum completion hours. The corresponding constraint function is expressed as follows:

[0103]

[0104] On the other hand, the agile development task allocation model requires that each agile task can only be assigned to one developer. The corresponding constraint function is expressed as follows:

[0105]

[0106] Of course, when an agile task is assigned to a developer, the developer must have the skills required for the agile task, which can be expressed using the following formula (9):

[0107] if x ij =1,TS j ∈PS i (9)

[0108] S40, solving the agile development task allocation model based on a multi-objective simulated annealing algorithm to obtain a task allocation result.

[0109] In the embodiments of the present application, the task allocation problem of agile development involves multiple conflicting optimization objectives, such as maximizing the quality of task completion and minimizing the time required to complete the task. Traditional task allocation methods usually use the KM algorithm or the simulated annealing algorithm, which can often only handle a single optimization objective and it is difficult to effectively balance the relationship between multiple objectives. The multi-objective simulated annealing algorithm (MOSA) can consider multiple objectives at the same time and find a set of solutions that achieve a balance between multiple objectives by introducing the concepts of Pareto dominance relationship and non-dominated solution, thereby meeting the needs of practical problems. In addition, the multi-objective simulated annealing algorithm has a strong global search capability, which enables the algorithm to find high-quality solutions in complex task allocation problems and improve the effect of task allocation.

[0110] The multi-objective simulated annealing algorithm based on Pareto optimality combines the global search capability of the simulated annealing algorithm with the characteristics of multi-objective optimization. The algorithm first initializes a solution set, which represents the candidate solutions in the problem space. Then, through the simulated annealing process, the algorithm continuously explores new solutions in the solution space and evaluates the quality of these solutions. During the evaluation process, the algorithm considers multiple objective functions, such as task completion quality and task completion time. When selecting new solutions, the algorithm uses the Pareto dominance relationship to filter out non-dominated solutions, that is, there is no better solution than it in the current solution set. These non-dominated solutions constitute the Pareto frontier, which represents the best balance between multiple objectives.

[0111] See also Figure 4 , Figure 4 Another partial flow chart of a task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application. Figure 4 As shown, an embodiment of the present application provides a task allocation method based on multi-objective simulated annealing, wherein step S40 "solving the agile development task allocation model based on the multi-objective simulated annealing algorithm to obtain the task allocation result" may include the following steps S401 to S411, and these steps are described in detail below.

[0112] S401, initializing algorithm parameters, the algorithm parameters include initial temperature, minimum temperature, search iteration number and termination iteration number, the initial temperature is determined according to the goal of the agile development task allocation model.

[0113] Although the traditional multi-objective simulated annealing algorithm can effectively balance multiple optimization objectives, it still has problems such as low execution efficiency and easy to fall into local optimal solutions. Based on the actual application scenario, the present invention improves the traditional multi-objective simulated annealing algorithm in order to improve the solution speed and quality of the bank's agile development task allocation solution.

[0114] In the process of agile development task allocation, it is necessary to follow the model constraints to ensure that each agile development is only assigned to developers with corresponding skills. If the skill sets of two developers do not overlap, they will not be assigned the same type of agile development tasks. For example, if employee 1 and employee 2 both master skills A and B, and employee 3 only masters skill C, then the agile development task of type C assigned to employee 3 will not overlap with the agile development tasks of employee 1 and employee 2. In this way, employee 3 can independently perform task allocation without considering other employees. Therefore, the embodiment of the present application can classify developers and agile development tasks according to the differences in developer skills, and can be specifically divided into multiple independent subsets. The skill sets mastered by developers in each subset do not overlap with other subsets at all. This classification method allows each subset to be independently assigned tasks. A parallel search strategy is then used to process these independent subsets. In this way, the algorithm can search on multiple subsets at the same time, greatly reducing the overall running time and significantly improving the operating efficiency of the algorithm.

[0115] In the embodiment of the present application, when running the multi-objective simulated annealing algorithm, the algorithm parameters can be initialized, and the algorithm parameters include the initial temperature, the lowest temperature, the number of search iterations, and the number of termination iterations. The initial temperature of the traditional multi-objective simulated annealing algorithm is generally set randomly, but it usually affects the final convergence performance of the algorithm. The present application sets the initial temperature T0 by combining the formula of all objective function value range differences, and uses the following formula (10) to express it:

[0116]

[0117] Where σ is a constant scaling factor used to adjust the initial temperature; n is the number of objective functions; f i max and f i min are the maximum and minimum values ​​of the i-th objective function respectively.

[0118] By calculating the average value of the range width of all objective functions as the initial temperature of the multi-objective simulated annealing algorithm, it can be ensured that each objective function contributes to the initial temperature, thereby improving the global search ability of the algorithm and its adaptability to different objective functions.

[0119] S402, taking the initial temperature as the current temperature.

[0120] In the embodiment of the present application, the initial temperature is used as the current temperature and enters the external cycle.

[0121] S403, randomly generate a task allocation solution under the current temperature, and use the task allocation solution as the current solution.

[0122] In the embodiment of the present application, under the outer loop corresponding to the current temperature, a task allocation solution is randomly generated and used as the current solution to enter the inner loop.

[0123] S404, adding the current solution to the Pareto solution set, and calculating the first objective function value corresponding to the current solution.

[0124] In an embodiment of the present application, the current solution is added to the Pareto solution set, and the objective function value (ie, the first objective function value) of the current solution under each objective function is calculated, and the first objective function value is used as the Pareto frontier.

[0125] S405, generating a neighborhood solution of the current solution, and calculating a second objective function value corresponding to the neighborhood solution.

[0126] Different from the random perturbation strategy of the traditional multi-objective simulated annealing algorithm, this application comprehensively applies the exchange strategy and the taboo strategy, randomly selects task pairs in the current solution for exchange, and generates new solutions as their neighborhood solutions. At the same time, a taboo list is maintained to record the most recent exchange operations to avoid repeated or cyclic exchanges. After each exchange, if the neighborhood solution does not violate the constraints of the taboo list, it is used and the taboo list is updated. This strategy combines the local search capability of the exchange strategy with the memory and avoidance of repetition characteristics of the taboo search strategy, which helps to jump out of the local optimum.

[0127] Further, the objective function value (ie, the second objective function value) of the neighborhood solution under each objective function is calculated.

[0128] S406, when the first objective function value is better than the second objective function value, the acceptance probability of the neighborhood solution is calculated according to the second objective function value; if the acceptance probability meets the corresponding acceptance condition, the neighborhood solution is taken as the current solution, and the process returns to step S404; if the acceptance probability does not meet the corresponding acceptance condition, the current solution is retained, and the process returns to step S405.

[0129] In the embodiment of the present application, the first objective function value is compared with the second objective function value. If the first objective function value is better than the second objective function value, the acceptance probability p of the domain solution is calculated and expressed by the following formula (11):

[0130]

[0131] Among them, T k is the current temperature.

[0132] If the acceptance probability satisfies the corresponding acceptance condition, such as being greater than a preset probability threshold, the neighborhood solution is taken as the current solution, and the process returns to step S404 to update the Pareto solution set. Otherwise, if the acceptance probability does not meet the corresponding acceptance condition, the current solution is retained, and the process returns to step S405.

[0133] S407, when the second objective function value is better than the first objective function value, the neighborhood solution is used as the current solution, and the process returns to step S404.

[0134] In the embodiment of the present application, if the second objective function value is better than the first objective function value, the neighborhood solution is used as the current solution, and the process returns to step S404 to update the Pareto solution set.

[0135] S408, counting the current iteration times of the task allocation solution at the current temperature.

[0136] S409, when the current number of iterations reaches the number of search iterations, a solution is randomly selected from the Pareto solution set as the current solution, and the process returns to step S404.

[0137] In the embodiment of the present application, after every certain number of search iterations, a solution is randomly selected from the Pareto solution set as the current solution, and the process returns to step S404 to perform the search again.

[0138] S410, when the current number of iterations reaches the termination number of iterations, or when the first objective function value in the most recent iterations is better than the second objective function value, end the inner loop at the current temperature.

[0139] In the embodiment of the present application, if the current number of iterations reaches the termination number of iterations, the inner loop is terminated. In addition, if the first objective function value in the most recent iterations is better than the second objective function value, that is, the Pareto front in the consecutive iterations has no obvious improvement in the solution quality, and the objective function has not become optimal for consecutive times, the inner loop is terminated in advance.

[0140] S411, cool down the current temperature, and return to step S403, until the current temperature reaches the lowest temperature, the outer loop ends, and the Pareto solution set is output to select the optimal task allocation solution from the Pareto solution set.

[0141] In the embodiment of the present application, a cooling operation is performed on the current temperature to reduce the current temperature. The selection of the cooling strategy is crucial to the performance of the algorithm. Different from the temperature drop function of the traditional simulated annealing algorithm, the following temperature drop function is used in the present application, which is expressed by the following formula (12):

[0142]

[0143] Among them, T k+1is the temperature at the k+1th cooling time; N is the total number of cooling times; k is the number of iterations. The advantage of the above temperature reduction function is that it can reduce the temperature more smoothly during the iteration process, thereby avoiding falling into the local optimal solution too early, improving the global search ability, and maintaining a low temperature in the later stage of the iteration to enhance the precision of the local search.

[0144] Repeat step S403 to step S411 until the current temperature reaches the lowest temperature, then end the outer loop, output the Pareto solution set, and select the optimal task allocation solution from the Pareto solution set.

[0145] Through the above description, the embodiment of the present application provides a task allocation method based on multi-objective simulated annealing, which uses the global search capability of the multi-objective simulated annealing algorithm to find the optimal task allocation solution based on comprehensive consideration of multiple objectives such as task completion time and task completion quality. It can more accurately evaluate the capabilities and efficiency of developers and ensure the rationality and continuity of task allocation. At the same time, multi-objective optimization enables the present invention to find a balance between multiple objectives and achieve overall performance optimization. This not only helps to improve the efficiency and quality of project management, but also wins more opportunities for banks in the fierce market competition. The present application has the following advantages:

[0146] 1) By introducing the quality of historical task completion as an important reference factor for agile development task allocation, the ability and efficiency of developers can be evaluated more accurately. Historical data directly reflects the past performance of developers, providing a strong basis for maximizing the quality of task completion, ensuring that task allocation is scientific and reasonable, and thus improving overall development efficiency and quality.

[0147] 2) The comprehensive integrated weighting method is used to determine the weights of agile development quality evaluation indicators. The comprehensive integrated weighting method combines the subjective weighting method and the objective weighting method. It not only respects objective data facts, but also makes full use of the subjective knowledge and experience of experts, thereby ensuring the scientificity and rationality of the weight assignment and providing a comprehensive and accurate decision-making basis for task allocation.

[0148] 3) The multi-objective simulated annealing algorithm is used to solve the optimal solution for agile development task allocation. Under the premise of satisfying multiple constraints, the two goals of maximizing the quality of task completion and minimizing the time of task completion are achieved. The traditional multi-objective simulated annealing algorithm is improved. Through set classification and parallel processing, optimization of initial temperature, neighborhood solution generation strategy, temperature drop function, etc., the performance of the algorithm can be improved and the algorithm can be prevented from falling into the local optimal solution.

[0149] A task allocation method based on multi-objective simulated annealing provided in an embodiment of the present application is introduced above. A device for executing the above-mentioned task allocation method based on multi-objective simulated annealing will be introduced below.

[0150] See also Figure 5 , Figure 5 The structure diagram of a task allocation device based on multi-objective simulated annealing provided in an embodiment of the present application is shown in FIG. Figure 5 As shown, an embodiment of the present application provides a task allocation device based on multi-objective simulated annealing, comprising:

[0151] The configuration acquisition module 10 is used to acquire task configuration and development configuration. The task configuration includes the skills and maximum completion time of the agile task, and the development configuration includes the skills of the developer, the maximum available time and the estimated completion time of the agile task.

[0152] A quality assessment module 20, for assessing the quality of task completion of developers under their skills;

[0153] The task solving module 30 is used to set constraints according to the characteristics and construct an agile development task allocation model with the goal of maximizing the quality of task completion and minimizing the task completion time. The characteristic setting constraints include that an agile task is assigned to a developer with the same skills, the developer's task completion time for the assigned agile task is less than the maximum completion time of the agile task, and the sum of the task completion time is less than the maximum acceptable time of the developer; the agile development task allocation model is solved based on a multi-objective simulated annealing algorithm to obtain the task allocation result.

[0154] In a possible implementation, the quality assessment module 20 is specifically configured to:

[0155] Determine agile development quality evaluation indicators; use the comprehensive integrated weighting method to determine the weights of agile development quality evaluation indicators; obtain the historical task completion records of developers under their skills, and obtain the indicator values ​​of agile development quality evaluation indicators based on the historical task completion records; use the weights and indicator values ​​of agile development quality evaluation indicators to calculate the task completion quality scores of developers under their skills.

[0156] In a possible implementation, the quality assessment module 20 for determining the weights of agile development quality evaluation indicators using a comprehensive integrated weighting method is specifically used to:

[0157] The subjective weights of agile development quality evaluation indicators are determined through the hierarchical analysis method; the objective weights of agile development quality evaluation indicators are calculated using the entropy weight method; and the comprehensive weights of agile development quality evaluation indicators are calculated based on the subjective weights and objective weights.

[0158] In a possible implementation, the task solving module 30 for solving the agile development task allocation model based on the multi-objective simulated annealing algorithm to obtain the task allocation result is specifically used for:

[0159] Initialize the algorithm parameters, which include the initial temperature, the lowest temperature, the number of search iterations, and the number of termination iterations. The initial temperature is determined according to the goal of the agile development task allocation model; use the initial temperature as the current temperature; randomly generate a task allocation solution at the current temperature, and use the task allocation solution as the current solution; add the current solution to the Pareto solution set, and calculate the first objective function value corresponding to the current solution; generate a neighborhood solution of the current solution, and calculate the second objective function value corresponding to the neighborhood solution; when the first objective function value is better than the second objective function value, calculate the acceptance probability of the neighborhood solution according to the second objective function value; if the acceptance probability meets the corresponding acceptance condition, use the neighborhood solution as the current solution, and return to execute the step of adding the current solution to the Pareto solution set; if the acceptance probability does not meet the corresponding acceptance condition, retain the current solution, and return to execute the neighborhood solution that generates the current solution. Step; when the second objective function value is better than the first objective function value, the neighborhood solution is used as the current solution, and the current solution is added to the Pareto solution set. This step; count the current iteration number of the task allocation solution at the current temperature; when the current iteration number reaches the search iteration number, randomly select a solution from the Pareto solution set as the current solution, and return to execute the step of adding the current solution to the Pareto solution set; when the current iteration number reaches the termination iteration number, or the first objective function value in the most recent iterations is better than the second objective function value, end the inner loop at the current temperature; cool the current temperature, and return to execute the step of randomly generating the task allocation solution at the current temperature, until the current temperature reaches the lowest temperature, the outer loop is ended, and the Pareto solution set is output to select the optimal task allocation solution from the Pareto solution set.

[0160] In a possible implementation, the task solving module 30 is further used to:

[0161] Agile tasks and developers are classified according to their skills, and the classification results are used as the basis for solving the agile development task allocation model.

[0162] It should be noted that the detailed functions of each module in the embodiment of the present application can be found in the corresponding public part of the above-mentioned task allocation method embodiment based on multi-objective simulated annealing, which will not be repeated here.

[0163] The present application also provides an electronic device in an embodiment. Figure 6 , Figure 6 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. The electronic device in the embodiment of the present application may include but is not limited to fixed terminals such as mobile phones, notebook computers, PDAs (personal digital assistants), PADs (tablet computers), desktop computers, etc. Figure 6The electronic device shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.

[0164] like Figure 6 As shown, the electronic device may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage device 608 into a random access memory (RAM) 603. When the electronic device is powered on, various programs and data required for the operation of the electronic device are also stored in the RAM 603. The processing device 601, the ROM 602, and the RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.

[0165] Typically, the following devices may be connected to the I / O interface 605: an input device 606 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 607 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 608 including, for example, a memory card, a hard disk, etc.; and a communication device 609. The communication device 609 may allow the electronic device to communicate with other devices wirelessly or by wire to exchange data. Although Figure 6 An electronic device having various devices is shown, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead.

[0166] An embodiment of the present application also provides a computer program product, including computer-readable instructions. When the computer-readable instructions are executed on an electronic device, the electronic device implements any of the multi-objective simulated annealing-based task allocation methods provided in the embodiments of the present application.

[0167] A computer-readable storage medium is also provided in an embodiment of the present application. The storage medium carries one or more computer programs. When the one or more computer programs are executed by an electronic device, the electronic device can implement any of the multi-objective simulated annealing-based task allocation methods provided in the embodiments of the present application.

[0168] It should also be noted that the device embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed over multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. In addition, in the drawings of the device embodiments provided by the present application, the connection relationship between the modules indicates that there is a communication connection between them, which may be specifically implemented as one or more communication buses or signal lines.

[0169] Through the description of the above implementation mode, the technicians in the field can clearly understand that the present application can be implemented by means of software plus necessary general hardware, and of course, it can also be implemented by special hardware including special integrated circuits, special CPUs, special memories, special components, etc. In general, all functions completed by computer programs can be easily implemented by corresponding hardware, and the specific hardware structure used to implement the same function can also be various, such as analog circuits, digital circuits or special circuits. However, for the present application, software program implementation is a better implementation mode in more cases. Based on such an understanding, the technical solution of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a readable storage medium, such as a computer floppy disk, a U disk, a mobile hard disk, a ROM, a RAM, a disk or an optical disk, etc., including a number of instructions to enable a computer device (which can be a personal computer, a training device, or a network device, etc.) to execute the methods described in each embodiment of the present application.

[0170] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of a computer program product.

[0171] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website site, a computer, a training device, or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, training device, or data center. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a training device, a data center, etc. that includes one or more available media integrations. The available medium may be a magnetic medium, (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive (SSD)), etc.

Claims

1. A task allocation method based on multi-objective simulated annealing, characterized in that: The task allocation method based on multi-objective simulated annealing comprises: Obtaining a task configuration and a development configuration, wherein the task configuration includes the skills and maximum completion time of the agile task, and the development configuration includes the skills of the developer, the maximum available work time, and the estimated task completion time for the agile task; Assess the quality of the tasks completed by said developer within the skill set of said developer; According to the characteristic setting constraint conditions, an agile development task allocation model is constructed with the goal of maximizing the task completion quality and minimizing the task completion time. The characteristic setting constraint conditions include that one agile task is allocated to one of the developers with the same skills, the task completion time of the developer for the assigned agile task is less than the maximum completion time of the agile task, and the sum of the task completion time is less than the maximum available time of the developer; The agile development task allocation model is solved based on a multi-objective simulated annealing algorithm to obtain a task allocation result.

2. The task allocation method based on multi-objective simulated annealing according to claim 1 is characterized in that: The evaluation of the developer's task completion quality under his / her skills includes: Determine the quality evaluation indicators of agile development; Use a comprehensive integrated weighting method to determine the weights of the agile development quality evaluation indicators; Obtaining the historical task completion records of the developer under his / her skills, and obtaining the indicator value of the agile development quality evaluation indicator according to the historical task completion records; The weights and index values ​​of the agile development quality evaluation indicators are used to calculate the task completion quality score of the developer based on his or her skills.

3. The task allocation method based on multi-objective simulated annealing according to claim 2 is characterized in that: The method of using a comprehensive integrated weighting method to determine the weight of the agile development quality evaluation index includes: Determine the subjective weight of the agile development quality evaluation index through the hierarchical analysis method; Calculate the objective weight of the agile development quality evaluation index by using the entropy weight method; The comprehensive weight of the agile development quality evaluation index is calculated based on the subjective weight and the objective weight.

4. The task allocation method based on multi-objective simulated annealing according to claim 1 is characterized in that: The agile development task allocation model is solved based on a multi-objective simulated annealing algorithm to obtain a task allocation result, including: Initializing algorithm parameters, the algorithm parameters including an initial temperature, a minimum temperature, a number of search iterations, and a number of termination iterations, the initial temperature being determined according to the goal of the agile development task allocation model; Taking the initial temperature as the current temperature; Randomly generate a task allocation solution at the current temperature, and use the task allocation solution as the current solution; Add the current solution to the Pareto solution set, and calculate the first objective function value corresponding to the current solution; Generate a neighborhood solution of the current solution, and calculate a second objective function value corresponding to the neighborhood solution; In the case where the first objective function value is better than the second objective function value, the acceptance probability of the neighborhood solution is calculated according to the second objective function value; if the acceptance probability satisfies the corresponding acceptance condition, the neighborhood solution is taken as the current solution, and the step of adding the current solution to the Pareto solution set is returned to be executed; if the acceptance probability does not satisfy the corresponding acceptance condition, the current solution is retained, and the step of generating the neighborhood solution of the current solution is returned to be executed; In the case where the second objective function value is better than the first objective function value, taking the neighborhood solution as the current solution, and returning to execute the step of adding the current solution to the Pareto solution set; Counting the current iteration number of the task allocation solution at the current temperature; When the current number of iterations reaches the search number of iterations, randomly select a solution from the Pareto solution set as the current solution, and return to execute the step of adding the current solution to the Pareto solution set; When the current number of iterations reaches the termination number of iterations, or the first objective function value in the most recent iterations is better than the second objective function value, the inner loop at the current temperature is terminated; The current temperature is cooled down, and the randomly generated task allocation solution at the current temperature is returned to be executed. This step ends the outer loop when the current temperature reaches the minimum temperature, and the Pareto solution set is output to select the optimal task allocation solution from the Pareto solution set.

5. The task allocation method based on multi-objective simulated annealing according to claim 1 is characterized in that: The task allocation method based on multi-objective simulated annealing also includes: The agile tasks and the developers are classified according to their skills, and the classification results are used as a basis for solving the agile development task allocation model.

6. A task allocation device based on multi-objective simulated annealing, characterized in that: The task allocation device based on multi-objective simulated annealing comprises: A configuration acquisition module, used to acquire task configuration and development configuration, wherein the task configuration includes the skills and maximum completion time of the agile task, and the development configuration includes the skills of the developer, the maximum available work time, and the estimated task completion time for the agile task; A quality assessment module, used to assess the quality of task completion of the developer under his / her skills; The task solving module is used to set constraint conditions according to characteristics, and construct an agile development task allocation model with the goal of maximizing the quality of task completion and minimizing the task completion time. The characteristic setting constraint conditions include that one of the agile tasks is assigned to one of the developers with the same skills, the task completion time of the developer for the assigned agile task is less than the maximum completion time of the agile task, and the sum of the task completion time is less than the maximum acceptable time of the developer; the agile development task allocation model is solved based on a multi-objective simulated annealing algorithm to obtain a task allocation result.

7. The task allocation device based on multi-objective simulated annealing according to claim 6 is characterized in that: The quality assessment module is specifically used for: Determine agile development quality evaluation indicators; use a comprehensive integrated weighting method to determine the weights of the agile development quality evaluation indicators; obtain the historical task completion records of the developer under his / her skills, and obtain the indicator value of the agile development quality evaluation indicator based on the historical task completion records; use the weights and indicator values ​​of the agile development quality evaluation indicators to calculate the task completion quality score of the developer under his / her skills.

8. A computer program product, characterized in that It comprises computer-readable instructions, and when the computer-readable instructions are executed on an electronic device, the electronic device implements the task allocation method based on multi-objective simulated annealing as claimed in any one of claims 1 to 5.

9. An electronic device, characterized in that: The method comprises at least one processor and a memory connected to the processor, wherein: The memory is used to store computer programs; The processor is used to execute the computer program so that the electronic device can implement the task allocation method based on multi-objective simulated annealing as described in any one of claims 1 to 5.

10. A computer storage medium, characterized in that: The storage medium carries one or more computer programs, which, when executed by an electronic device, enable the electronic device to implement the task allocation method based on multi-objective simulated annealing as described in any one of claims 1 to 5.