WO2021088436A1 - 一种用于多语言协同开发的项目调度方法及装置 - Google Patents

一种用于多语言协同开发的项目调度方法及装置 Download PDF

Info

Publication number
WO2021088436A1
WO2021088436A1 PCT/CN2020/105932 CN2020105932W WO2021088436A1 WO 2021088436 A1 WO2021088436 A1 WO 2021088436A1 CN 2020105932 W CN2020105932 W CN 2020105932W WO 2021088436 A1 WO2021088436 A1 WO 2021088436A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
development
population
project
language
Prior art date
Application number
PCT/CN2020/105932
Other languages
English (en)
French (fr)
Inventor
郑继光
陈伟
Original Assignee
苏宁云计算有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 苏宁云计算有限公司 filed Critical 苏宁云计算有限公司
Priority to CA3162759A priority Critical patent/CA3162759C/en
Publication of WO2021088436A1 publication Critical patent/WO2021088436A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Definitions

  • the present invention relates to the field of Internet technology, in particular to a project scheduling method and device for multi-language collaborative development.
  • the current semi-automatic management tools usually only think that the R&D personnel in the software project only master one development language, and based on this, use the genetic algorithm (GA, Genetic Algorithm) to optimize the cost or schedule of the software project, that is, only a single goal Conduct optimization studies. This method is difficult to further improve the reasonable degree of project scheduling, and it is difficult to further promote the progress of the project.
  • GA Genetic Algorithm
  • the embodiments of the present invention provide a project scheduling method and device for multi-language collaborative development, which can reduce the cost of project development and improve development efficiency.
  • the method provided by the embodiment of the present invention includes:
  • the project data includes a set of tasks in the project and a set of development language skills required by the project, wherein each task corresponds to at least one development language skill, and the personnel data includes The development language skills mastered by each person and the efficiency parameters of the development language skills mastered;
  • the calculation result data is used to generate a scheduling result table, and the scheduling result table is sent to the employee terminal.
  • the device provided by the embodiment of the present invention includes:
  • the preprocessing module is used to read project data and personnel data.
  • the project data includes a set of tasks in the project and a set of development language skills required by the project, wherein each task corresponds to at least one development language skill ,
  • the personnel data includes the development language skills mastered by each personnel and the efficiency parameters of the development language skills mastered;
  • the processing module is configured to use the item data to perform coding and population initialization in the genetic algorithm, and use the personnel data to perform the initialization of the individuals in the genetic algorithm;
  • the calculation module is used to run the genetic algorithm after the initialization is completed, and obtain calculation result data
  • the sending module is configured to use the calculation result data to generate a scheduling result table, and send the scheduling result table to the employee terminal.
  • the project scheduling method and device for multi-language collaborative development can meet the constraints of software developers and their skills and the timing constraints between tasks for each task in the software project.
  • Software developers The performance of skills is often one specialization and multiple abilities, and it can specifically show mastery of multiple development languages.
  • how to use the non-dominated sorting multi-objective genetic algorithm (Elitist Non-dominated Sorting Genetic Algorithm, NSGA-II) with the elite retention strategy to make the software project at a lower cost and more cost-effective? It is completed in a short time, so that the cost of project development is reduced and the development efficiency is improved.
  • FIG. 1 is a schematic flowchart of an NSGA-II in a specific example provided by an embodiment of the present invention
  • Figure 2a is a schematic flowchart of a method provided by an embodiment of the present invention.
  • 2b is a schematic diagram of the elite retention strategy in the specific example provided by the embodiment of the present invention, which preferably retains individuals;
  • Fig. 3 is a schematic flow chart of NSGA in the prior art
  • Figure 4 is another NSGA-II flow chart in a specific example provided by an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a three-tier structure of a project scheduling problem with multiple development language skills and human resource constraints in a specific example provided by an embodiment of the present invention
  • FIG. 6 is a schematic diagram of a network diagram of project task nodes in a specific example provided by an embodiment of the present invention.
  • FIG. 7 is a schematic diagram of a construction period iteration curve in a specific example provided by an embodiment of the present invention.
  • FIG. 8 is a schematic diagram of a cost iteration curve in a specific example provided by an embodiment of the present invention.
  • FIG. 9 is a schematic diagram of the Pareto front in a specific example provided by an embodiment of the present invention.
  • the embodiment of the present invention provides a project scheduling method for multi-language collaborative development, as shown in FIG. 2a, including:
  • the project data includes a set of tasks in the project and a set of development language skills required by the project, each task corresponds to at least one development language skill, and the personnel data includes the development language skills mastered by each person And the efficiency parameters of the development language skills mastered.
  • the software project P includes a total number of ⁇ 0,1,...,m+1 ⁇ divided into m+2 tasks, among which task 0 and task m+1 are virtual jobs (virtual jobs). Work means that it does not consume any resources and the execution time is 0), which respectively represent the beginning and end of the software project, and the set of tasks is M.
  • i, j, d represent R&D personnel, development language skills and tasks respectively, where 1 ⁇ i ⁇ n, 1 ⁇ j ⁇ s, 1 ⁇ d ⁇ m, that is, i ⁇ N, j ⁇ J, d ⁇ M.
  • S104 Use the calculation result data to generate a scheduling result table, and send the scheduling result table to the employee terminal.
  • the scheduling result table can be put into the corresponding scheduling result data in an excel form, and further use matlab for coding design, and get the final optimization result graph (such as Figure 7-9), as well as the multi-development language staff scheduling result Table (such as Table 1-5).
  • NSGA-II based on genetic algorithm
  • the design form of coding and population initialization is the same as that of genetic algorithm.
  • Encoding is to express the solution of the problem in the form of chromosomes, so that it can carry out effective genetic operations.
  • this embodiment adopts the algorithm design principle of two-layer coding, and the first layer of coding is sequential coding.
  • the second level of coding assigns codes to employees who need to master multiple development languages.
  • using the item data to perform coding and population initialization in a genetic algorithm in S102 includes:
  • the first layer code is a non-repeated sorting of integers from 1 to n, the length is n, the first layer code represents the execution priority order of tasks, where the number of tasks is n and the number of resources is m .
  • the number of tasks is n and the number of resources is m
  • the first layer of coding length is n, which is a non-repeated sorting of integers from 1 to n, indicating the priority order of task execution, first randomly generated
  • the immediate constraint conversion can be understood as: the final order of the task is determined according to the immediately preceding constraint in the model.
  • the gene position is an integer of [lb(i),ub(i)], indicating the type of selection.
  • the staff assignment codes are: 3,2,3,2,1 and 1,5,3,2,4, the first 3 means assigning the third person with development language skills 1.
  • the second place 2 means to assign a second person with development language skills 2 to task 1, to provide development language skills 2, and the third place 3 means to assign a third person with development language skills 1
  • the person of to provide task 2 with development language skill 1, and the 4th place 2 means to assign a second person with development language skill 2 to provide task 2 with development language skill 2, and so on.
  • each task requires multiple development language skills, each development language skill is mastered by multiple R&D personnel, each R&D personnel masters different development language skills and the efficiency of the development language skills mastered is heterogeneous.
  • work (task)-skills-manpower" three-tier structure to describe, as shown in Figure 5.
  • GPRs represent general priority relationship constraints
  • A1 ⁇ AJ represent J jobs or tasks
  • 1 ⁇ K represent work requires K development language skills, that is, the development language skills of the R&D personnel participating in the project
  • each R&D personnel masters Each has different development language skills.
  • 1 ⁇ S means that there are S employees with development language skills.
  • T ijd represents the time for the R&D personnel i to use the development language skill j to participate in the task d.
  • FT d represents the completion time of the task.
  • ST d represents the start time of the task.
  • FT Pd represents the completion time of the previous work.
  • T d represents the duration of task d.
  • P d represents the set of tasks immediately preceding task d.
  • J d represents the collection of the total number of language skills required for task d. Indicates whether task d needs to develop language skills j, if necessary otherwise 1 ⁇ j ⁇ s, 1 ⁇ d ⁇ m.
  • C i represents the salary of employee i within a certain period of time (such as month, week, day), which is the average salary of each development language skill mastered by R&D personnel i, 1 ⁇ i ⁇ n. Represents the working time of the R&D staff i in the dth task.
  • This model takes software project cost, schedule, and R&D personnel time balance as the objective function, and optimizes the three at the same time.
  • the objective function is shown in the following formulas (1) ⁇ (3).
  • the main cost comes from the expenses of the R&D personnel participating in the project, so the cost of the software project can be considered as the sum of the salaries of the R&D personnel participating in the software project .
  • the salary level of R&D personnel is affected by their multi-development language skills.
  • the multi-development language skills of R&D personnel can come from the evaluation of an expert group composed of project managers, R&D technical directors or persons in charge. If the value of multi-development language skills mastered by R&D personnel is higher, the corresponding salary will be higher.
  • the software project cost objective function formula is shown in (1), which means to minimize the software project cost.
  • the completion time of each task in the software project is the maximum time used by the R&D personnel in the task.
  • the progress of the entire software project is the deadline for the final completion of the task in the software project, that is, the time of the longest completed task among all tasks is the final completion time of the entire project.
  • the software project schedule objective function formula is shown in (2), which means to minimize the software project schedule.
  • the constraint conditions in the model are set as shown in (4) ⁇ (16).
  • Represents the shortest completion time for the development of language skills j when task d is completed that is, the time it takes for task d to be completed by the R&D personnel with the highest level of development language skills j in the enterprise
  • any R&D personnel i uses development language skills j to participate
  • the time spent in task d is related to the level of development language skills of the R&D personnel.
  • the completion time of a task in a software project is determined by the longest completion time of the developer i using a certain development language skill j in this task, that is, the longest of all development language skills j in the development language skill set J required for task d
  • the completion time determines the final completion time of a task, so the completion time of task d is as follows:
  • the order constraint relationship between tasks is shown below.
  • (6) means that the completion time of task d is the sum of its start time and its actual duration.
  • (7) It means that the start time of task d is the completion time of the immediately preceding task. The time interval between tasks is not considered. The default is that after the previous task is completed, the next task starts immediately.
  • (8) It means that the completion time of the pre-order task of task d is the one that takes the longest time among the pre-order tasks.
  • (9) means that if a task does not have a pre-order task, the completion time of the pre-order task is zero.
  • each development language skill required by the task must be completed by only one R&D personnel with the development language skill, and there cannot be one development language skill j in the development language skill set J required for a certain task. It is completed by two or more employees with the development language skills j, and each R&D personnel can only use one development language skill to participate in a task, and it is not possible for an employee to use two development languages in a task at the same time skill.
  • a researcher can only participate in one of the tasks, that is, a researcher can only use one development language skill to participate in one task in the project at the same time. After the task is completed, the researcher can be reassigned to participate in subsequent tasks.
  • the use of the personnel data to initialize the individual in the genetic algorithm specifically includes:
  • the parameters related to initialization are extracted from the personnel data.
  • the parameters related to initialization include: the number of tasks m, the number of development language skills s, the set of development language skills Set d required by the task d, and the task d needs to be developed.
  • Minimum time for language skill j Set j , chromosome personal [] and population size popsize of employees who master the development language skill j.
  • the iteration is performed according to the population size popsize, in which the task number is cycled from 1 to m, and the development language number is cycled from 1 to s.
  • the generation process of initializing individuals mainly includes Step1 ⁇ Step5:
  • Step2 Determine the iteration steps according to the population size popsize.
  • Step3 Cycle from 1 to m according to the task number, and cycle from 1 to s for the development language number.
  • Step5 In this way, personnel are arranged until all the development language skills of the project are arranged.
  • the execution of iteration according to the population size popsize includes:
  • performing mutation processing on the population specifically includes:
  • Selection is the genetic manipulation of selecting excellent individuals from the parents to enter the next generation.
  • the selection operator compares the pros and cons of individuals by their fitness. The smaller the fitness, the lower the probability of being selected. Conversely, the greater the fitness, the greater the probability of being selected.
  • Common types of selection operators include: tournament selection, roulette selection, even sorting, and retention of the best selection.
  • the main steps of the tournament selection method are: the first step, assuming that the population size is n, randomly generate n individuals as the first generation; the second step, randomly select k (k less than n) individuals from these n individuals, k If the value of is small, the efficiency is high, but it should not be too small.
  • the third step is to select the largest individual from these k individuals as one of the next n individuals ;
  • the fourth step repeat the second and third steps until a new n individuals are obtained.
  • the selection operator used in this paper is the binary tournament method. The basic principle is to choose between the order value and the crowded distance. When the order value is different, individuals with a small order value are selected, and when the order value is the same, individuals with a large crowding distance are selected. In the direction of non-dominated solution and uniform dispersion.
  • Crossover is one of the core operators of genetic algorithm. Crossing produces offspring by imitating the genetic method of organisms, and it obtains new offspring by mating and recombining chromosomes. The new individual offspring is the new feasible solution of the problem, so the algorithm can perform iterative search in the feasible solution space of the optimization problem through the crossover operation, which can improve the global search ability of the algorithm.
  • the crossover methods include single-point crossover, two-point crossover, multipoint crossover, uniform crossover, fusion crossover, and complementary crossover. The text uses the intersection of two points.
  • the operating steps of the crossover operator in the first level of coding are: 1) randomly select two chromosomes as the father, 2) generate 2 random natural numbers r1 and r2, 3) combine the two paternal chromosomes r1 to r2
  • the gene fragments are exchanged to obtain two progeny chromosomes, and the two chromosomes obtained are revised to avoid conflicts.
  • the crossover process is: before crossover [1, 3,2,5,4][1,2,4,5,3], after crossover [1,2,4,5,4][1,3,2,5,3], after patching is [1 ,2,4,5,3][1,3,2,5,4], in which the repair method is to take the complement of the cross segment and rearrange it into the non-cross segment randomly.
  • the operation steps of the crossover operator in the second layer of coding are: 1) randomly select two chromosomes as the father, 2) generate 2 random natural numbers r1 and r2, 3) combine the two paternal chromosomes r1 to r2.
  • the gene fragments are exchanged to obtain two progeny chromosomes.
  • Mutation is a genetic operation that forms a new individual by replacing some gene values in an individual with other values, which can effectively improve the local search capability of the genetic algorithm.
  • the basic mutation refers to the mutation mode that changes the value of some genes in an individual under a certain probability, and includes single-point mutation, double-point mutation, and multi-point mutation.
  • the second layer of coding design uses single-point mutation.
  • multi-objective evolutionary algorithms mainly use three fitness evaluation strategies, namely, the combined function method, the method based on the group but the concept of Pareto dominance and the method based on the group and the concept of Pareto dominance.
  • the non-dominated sorting multi-objective genetic algorithm (Elitist Non-dominated Sorting Genetic Algorithm, NSGA-II) fitness evaluation method used in this embodiment uses the method of introducing the concept of Pareto dominance based on the group, mainly through sorting Value and crowdedness to determine the parent individual for the next iteration.
  • NSGA-II Elitist Non-dominated Sorting Genetic Algorithm
  • a direct thought can be used to consider the constraint conditions, that is, in the process of evolution, after one iteration, a program can be executed to detect whether a new individual violates the constraint conditions. If there is no violation, the valid individual is retained, otherwise, the invalid individual is removed. This method can work for weakly constrained problems, but it is not feasible for strong constrained problems.
  • NSGA-II When implemented by a computer program, the main algorithm flow of NSGA-II in this embodiment can adopt the method shown in pseudo code 2-3, including:
  • this embodiment adopts a non-dominated sorting multi-objective genetic algorithm (Elitist Non-dominated Sorting Genetic Algorithm, NSGA-II) with an elite retention strategy, as shown in Figure 1,
  • the main process includes the following steps:
  • the initial population P t is selected, crossed, and mutated to form a new population Q t .
  • the population P t and the population Q t are merged to form a population R t and perform fast non-dominated sorting. According to the number of individuals dominated, F 1 , F 2 ,..., F i are formed . For each level of F i, the calculation of each individual Congestion.
  • an Elitist Non-dominated Sorting Genetic Algorithm (NSGA-II) with an elite retention strategy is used to conduct scheduling research on R&D personnel who master multiple development languages in a software project, so that the software project’s Cost and schedule are optimized at the same time.
  • NSGA-II Elitist Non-dominated Sorting Genetic Algorithm
  • the congestion comparison operator can be used for analysis, including:
  • the congestion degree I distance of each individual in the same layer is set to 0;
  • I distance represents the congestion degree value at point I
  • f m (i+1) represents the value of the m-th objective function at I+1 point
  • f m (i-1) represents the m-th objective function at I- 1 point value
  • the calculation process of crowding degree includes: after fast non-dominated sorting operation and crowding degree calculation, individuals in the population have the following two attributes: non-dominated rank I obtained by fast non-dominated sorting and crowding degree calculation. Congestion degree I distance . According to these two attributes and compare the advantages and disadvantages of individuals through the crowding degree comparison operator: When two individuals I and J are compared, as long as one of the following two conditions is met, individual I can be considered to be better than individual J .
  • condition a it can ensure that the selected individual belongs to the superior non-dominated layer in the population. If condition b is established, when two individuals are in the same non-dominated stratum, the individuals located in the farther area can be selected according to their crowdedness distance to ensure the diversity of the population. So as to ensure that the better individual enters the next cycle of evolution as a whole.
  • using the calculation result data in S104 to generate a scheduling result table specifically includes:
  • the start time of developing language skill j is the start time of the project. If there is a task before task d, the start time of language skill j is the latest completion time of all predecessor tasks of task d.
  • the working hours of the development language skill j in the task d are calculated.
  • the employee's development language skill usage timetable is obtained, and the cumulative usage time of the employee is calculated. Calculate the construction period of the project based on the cumulative use time of all employees.
  • the scheduling result table in this embodiment is mainly obtained through a two-layer coding algorithm process, including:
  • the priority of the initialization task, the type of development language skills required in the task and the shortest time of the development language skills, the types of development language skills that employees have, the initial value of development language skills, the average development language skills wages of employees and other variables (specifically (It can be achieved by executing S101-S102)
  • this task has no immediate task (that is, related to this task, such as a pre-completed task), then the start time of the task is 0, otherwise, if this task has an immediate task, Then the start time of the task is the latest completion time of all immediately preceding tasks.
  • While tasks are iterated by number, determine the development language skills required for each task, select a corresponding employee who develops language skills from the employee development language skills matrix, determine the employee number of the development language skills, and ensure that each employee only Can use a development language skill to participate in the same task penalty value, and the completion time of the task is the latest completion time of the development language skill required for the task.
  • the start time of developing language skill j is the start time of the project. If there is a task before task d, then the start time of developing language skill j is the latest completion time of all predecessor tasks. Calculate the working hours of developing language skill j in task d according to the skill value of developing language skill j, and calculate the end time of developing language skill j, construct a timetable for the use of language skills for employees and calculate the cumulative use time of employees, and finally calculate them separately The project’s duration and cost, and the equilibrium value of the employee’s working time.
  • This embodiment also provides a project scheduling device for multi-language collaborative development, including:
  • the preprocessing module is used to read project data and personnel data.
  • the project data includes a set of tasks in the project and a set of development language skills required by the project, wherein each task corresponds to at least one development language skill ,
  • the personnel data includes the development language skills mastered by each personnel and the efficiency parameters of the development language skills mastered;
  • a processing module configured to use the item data to perform coding and population initialization in the genetic algorithm, and use the personnel data to perform the initialization of the individuals in the genetic algorithm;
  • the calculation module is used to run the genetic algorithm after the initialization is completed, and obtain calculation result data
  • the sending module is configured to use the calculation result data to generate a scheduling result table, and send the scheduling result table to the employee terminal.
  • the processing module is specifically configured to extract initialization-related parameters from the personnel data.
  • the initialization-related parameters include: the number of tasks m, the number of language skills s, and tasks d.
  • the task d requires the shortest time to develop the language skill j
  • the processing module is specifically configured to perform mutation processing on the initial population P t to form a new population Q t ;
  • the sending module is specifically used for if there is no task before task d when developing language skill j participates in task d, then the start time of developing language skill j is the start time of the project; if there is a task before task d, Then the start time of language skill j is the latest completion time of all predecessor tasks of task d;
  • the skill value of developing language skill j calculate the working hours of developing language skill j in task d; according to the working hours of developing language skill j in task d and the end time of developing language skill j, obtain the employee’s development language skill usage schedule, and Calculate the cumulative use time of the employees; calculate the construction period of the project based on the cumulative use time of all employees.
  • the existing technology generally chooses to use genetic algorithm (GA, Genetic Algorithm) to optimize the objective function, but GA can generally only solve the optimization of a single objective, and cannot solve the optimization of multiple objectives.
  • GA Genetic Algorithm
  • the Non-dominated Sorting Genetic Algorithm (NSGA) also has some unavoidable defects, mainly including high computational complexity, lack of elite retention strategy, and the shared function method that requires the specified parameter ⁇ share . The main reasons are:
  • the non-dominated sorting genetic algorithm (NSGA) is usually used. Its core technology is to use the principle of non-dominated sorting to rank individuals in the population (ranks) and share The niche principle calculates the virtual crowding distance of each individual.
  • NSGA uses the above two core technologies to perform multi-objective evaluation and selection of the population in the link of selecting operation operators, so as to achieve multi-objective optimization.
  • the individual stratification of the population is to perform non-inferior stratification operations on the population P according to the non-inferior stratification algorithm.
  • the result of non-inferior stratification is to divide the population P into ⁇ non-inferior groups P j :
  • the greater fitness value of the individuals assigned to the P 1 group is to ensure the selection pressure towards the Pareto optimal domain.
  • NSGA guarantees the diversity of each group of individuals by using the shared function method in P 1 ⁇ P ⁇ .
  • the standard Euler distance d ij between any two bodies i and j in P 1 is calculated as follows:
  • n the number of decision variables.
  • NSGA uses the principle of non-dominated sorting and shared niche technology to determine the fitness of an individual, the genetic operations performed are consistent with the basic genetic algorithm.
  • the flow chart of NSGA algorithm is shown as in Fig. 3.
  • the advantage of NSGA is that it allocates fitness values according to non-inferior layers and develops toward the Pareto optimal domain in a group manner, and implements sharing in the parameter space to produce mutually different solutions. Its shortcomings are the high computational complexity of non-dominated sorting, the lack of an elite retention strategy, and the shared function method requires the parameter ⁇ share to be specified.
  • the Elitist Non-dominated Sorting Genetic Algorithm (NSGA-II) based on the Elitist Non-dominated Sorting Genetic Algorithm (NSGA-II) with the elite retention strategy is improved on the basis of NSGA, and the computational complexity of non-dominated sorting in NSGA
  • NSGA-II introduces fast non-dominated sorting, thereby reducing the complexity of the algorithm
  • NSGA-II introduces the elite retention strategy into the algorithm, which expands the sampling space
  • NSGA-II adopts the crowding degree and crowding degree comparison operator, which can make the individuals in the quasi-Pareto domain evenly expand to the entire Pareto domain, ensuring the diversity of the population .
  • NSGA-II used in this embodiment is: as shown in the flow chart of NSGA-II as shown in Fig. 4, first, an initial population P t with a population size of N is randomly generated, and its progeny population Q t is generated. Then merge these two populations to form a population R t with a size of 2N. Secondly, perform fast non-dominated sorting of the population R t , calculate the crowdedness of individuals in each non-dominated layer, and select appropriate individuals to form a new parent population P t+1 according to the non-dominated relationship and the crowdedness of the individuals. , And produce a new progeny population Q t+1 ; finally, merge P t+1 and Q t+1 to form a new population R t+1 , and repeat the above operations until the conditions for the end of the program are met.
  • each task in the software project needs to meet the constraints of the software developers and their skills and the timing constraints between tasks.
  • the performance of the skills of software developers is often multi-functional, and the specific performance can be mastered. Multiple development languages.
  • a large software development project P of a software development company S has 10 tasks, namely D1, D2,..., D10, and a total of 8 development language skills are required, namely S1, S2..., S8 ,
  • Each task requires multiple development language skills, and each development language skill is carried out in parallel.
  • the initial value of the development language skills of the employees is evaluated by an expert team composed of the technical director, the person in charge, and the project manager in the project.
  • the sequence of tasks and the skills required for each task are shown in Table 1. According to Table 1, the network diagram of tasks in the project is shown in Figure 6, where tasks S and E are virtual processes.
  • the development language skills required for each task in the project and the shortest development time required for the development language skills are shown in Table 2.
  • the average salary of development language skills of these 40 employees is shown in Table 3.
  • the development language skills and initial level of skills mastered by each R&D staff are shown in Table 4.
  • the iteration curve of the construction period obtained by running the code in Matlab is shown in Figure 7, the cost iteration curve is shown in Figure 8, and the Pareto frontier is shown in Figure 9.
  • Select 10 solutions from the Pareto front in Figure 9 and list the cost and schedule values of these 10 solutions, as shown in Table 5.
  • Table 6 shows the skill-based staff scheduling scheme corresponding to these 10 solutions. It can be seen that R&D personnel can use the same development language to participate in the same task, or use the same development language to participate in different tasks. This increases the flexibility of R&D personnel configuration and enables R&D personnel to be fully used, and the cost and schedule have also been optimized.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Economics (AREA)
  • Evolutionary Biology (AREA)
  • Artificial Intelligence (AREA)
  • Genetics & Genomics (AREA)
  • Physiology (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种用于多语言协同开发的项目调度方法及装置,涉及互联网技术领域,能够降低项目开发的成本,提升开发效率。本发明包括:读取项目数据和人员数据,项目数据包括项目中任务的集合,和项目所需的开发语言技能的集合,其中,每一个任务对应至少一种开发语言技能,人员数据包括每一个人员掌握的开发语言技能和所掌握的开发语言技能的效率参数;利用项目数据进行遗传算法中的编码和种群的初始化,并且,利用人员数据进行遗传算法中的个体的初始化;将完成初始化后运行遗传算法,并获取计算结果数据;利用计算结果数据,生成调度结果表,并将调度结果表向员工终端发送。本发明适用于大规模多语言的软件项目开发。

Description

一种用于多语言协同开发的项目调度方法及装置 技术领域
本发明涉及互联网技术领域,尤其涉及一种用于多语言协同开发的项目调度方法及装置。
背景技术
随着互联网技术和大数据技术的发展,很多系统级的程序、平台都需要大量的开发人员进行设计开发,以及后续的调试。在很多互联网公司,开发团队的人数也呈几何级得倍增,几百上千人的开发团队比比皆是。如何管理并合理调用各个研发人员为项目服务,则成为了一个需要研究的问题,单纯的采用传统人工管理的方式,实时性差、人工成本高,显然是不可行的。
目前的半自动管理工具,通常只认为软件项目中的研发人员只掌握一种开发语言,并基于此使用遗传算法(GA,Genetic Algorithm)对软件项目的成本或进度进行优化研究,即只对单个目标进行优化研究。这种方式很难进一步提高项目调度的合理程度,难以进一步促进项目的推进进度。
但实际上,很多研发人员往往掌握着多种开发语言,并且对于每个开发语言掌握的熟练程度各不相同。而且项目的成本和进度都是需要重点考虑的因素。目前的方案无法解决进一步的优化问题。使得项目开发的成本难以降低,效率难以提升。
发明内容
本发明的实施例提供一种用于多语言协同开发的项目调度方法及装置,能够降低项目开发的成本,提升开发效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供的方法,包括:
读取项目数据和人员数据,所述项目数据包括项目中任务的集合,和所述项目所需的开发语言技能的集合,其中,每一个任务对应至少一种开发语言技能,所述人员数据包括每一个人员掌握的开发语言技能和所掌握的开发语言技能的效率参数;
利用所述项目数据进行遗传算法中的编码和种群的初始化,并且,利用所述人员数据进行遗传算法中的个体的初始化;
将完成初始化后运行所述遗传算法,并获取计算结果数据;
利用所述计算结果数据,生成调度结果表,并将所述调度结果表向员工终端发送。
第一方面,本发明的实施例提供的装置,包括:
预处理模块,用于读取项目数据和人员数据,所述项目数据包括项目中任务的集合,和所述项目所需的开发语言技能的集合,其中,每一个任务对应至少一种开发语言技能,所述人员数据包括每一个人员掌握的开发语言技能和所掌握的开发语言技能的效率参数;
处理模块,用于利用所述项目数据进行遗传算法中的编码和种群的初始化,并且,利用所述人员数据进行遗传算法中的个体的初始化;
计算模块,用于将完成初始化后运行所述遗传算法,并获取计算结果数据;
发送模块,用于利用所述计算结果数据,生成调度结果表,并将所述调度结果表向员工终端发送。
本发明实施例提供的用于多语言协同开发的项目调度方法及装置,可以对软件项目中的每个任务都需要满足软件开发人员及其技能的约束以及任务之间 时序的约束,软件开发人员技能表现往往是一专多能的,具体可表现掌握多种开发语言。在软件项目中如何通过对多技能员工进行合理调度,使用带精英保留策略的非支配排序多目标遗传算法(Elitist Non-dominated Sorting Genetic Algorithm,NSGA-II)使软件项目以更低的成本和更短的时间完成,从而使得项目开发的成本降低,开发效率提升。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的具体实例中的一种NSGA-II的流程示意图;
图2a为本发明实施例提供的方法流程示意图;
图2b为本发明实施例提供的具体实例中的精英保留策略优选保留个体的示意图;
图3为现有技术中的NSGA的流程示意图;
图4为本发明实施例提供的具体实例中的另一种NSGA-II流程图;
图5为本发明实施例提供的具体实例中的多开发语言技能人力资源约束的项目调度问题三层架构的示意图;
图6为本发明实施例提供的具体实例中的项目任务节点网络图的示意图;
图7为本发明实施例提供的具体实例中的工期迭代曲线的示意图;
图8为本发明实施例提供的具体实例中的成本迭代曲线的示意图;
图9为本发明实施例提供的具体实例中的帕累托前沿的示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本发明实施例提供一种用于多语言协同开发的项目调度方法,如图2a所示,包括:
S101,读取项目数据和人员数据。
其中,所述项目数据包括项目中任务的集合,和所述项目所需的开发语言技能的集合,每一个任务对应至少一种开发语言技能,所述人员数据包括每一个人员掌握的开发语言技能和所掌握的开发语言技能的效率参数。举例来说:项目数据中,设软件项目P,总共包括了编号{0,1,…,m+1}共分为m+2个任务,其中任务0和任务m+1为虚工作(虚工作就是不消耗任何资源并且执行的时间为0),分别代表软件项目的开始和结束,任务的集合为M。软件项目P总共需要的开发语言技能s集合为J={1,2,…,s}。项目中共有n个可供调用的掌握多开发语言技能的研发人员,研发人员的集合为N={1,2,…,n}。i,j,d分别表示研发人员、开发语言技能和任务,其中1≤i≤n,1≤j≤s,1≤d≤m,即i∈N,j∈J,d∈M。
S102,利用所述项目数据进行遗传算法中的编码和种群的初始化,并且,利用所述人员数据进行遗传算法中的个体的初始化。
S103,将完成初始化后运行所述遗传算法,并获取计算结果数据。
S104,利用所述计算结果数据,生成调度结果表,并将所述调度结果表向员工终端发送。
在实际应用中,调度结果表可以采用excel表格放入相应的调度结果数据,并进一步使用matlab进行编码设计,得出最后的优化结果图(比如图7-9),以及多开发语言员工调度结果表(比如表1-5)。
在本实施例中,采用以遗传算法为基础的NSGA-II,其故编码与种群初始化的设计形式与遗传算法相同。编码是将问题中的解以染色体形式表示,从而使其能够进行有效的遗传操作。根据编码的完备性、健全性以及非冗余性原则,再结合软件项目中掌握多种开发语言员工的配置特点,本实施例采用双层编码 的算法设计原则,第一层编码为顺序编码,第二层编码为任务需求掌握多种开发语言员工指派编码。具体的,S102中所述利用所述项目数据进行遗传算法中的编码和种群的初始化,包括:
生成第一层编码,所述第一层编码为1~n的整数的不重复排序,长度为n,所述第一层编码表示任务的执行优先顺序,其中,任务数n,资源数为m。
生成第二层编码,所述第二层编码为长度L=n*m的整数编码。
例如:编码和种群初始化的过程中,任务数n,资源数为m,则第一层编码长度为n,为1~n的整数的一个不重复排序,表示任务的执行优先顺序,首先随机产生,然后根据紧前约束转换,根据紧前约束转换可以理解为:根据模型中的紧前约束条件确定任务最终的顺序。第二层编码为长度为L=n*m的整数编码,基因位为[lb(i),ub(i)]的整数,表示选用的类型。如:n=5,m=2,总员工数为5,则一个合法的染色体可表示为[5,4,2,1,3;3,2,3,2,1 1,5,3,2,4],第一层编码是节点的访问顺序,为5,4,2,1,3,表示先安排任务5,再安排任务4,再安排任务2,以此类推,第二层编码是任务需求掌握多种开发语言员工指派编码为:3,2,3,2,1和1,5,3,2,4,第1位的3表示指派第3个拥有开发语言技能1的人员给任务1提供开发语言技能1,第2位的2表示指派第2个拥有开发语言技能2的人员给任务1提供开发语言技能2,第3位的3表示指派第3个拥有开发语言技能1的人员给任务2提供开发语言技能1,第4位的2表示指派第2个拥有开发语言技能2的人员给任务2提供开发语言技能2,以此类推。
在实际应用中,每一个任务需要多种开发语言技能,每一种开发语言技能由多个研发人员掌握,每一个研发人员掌握不同的开发语言技能且所掌握的开发语言技能效率异质,可以用“工作(任务)-技能-人力”三层架构进行描述,如图5所示。其中GPRs表示一般性优先关系约束,A1~AJ表示J项工作或者任务, 1~K表示工作需要K种开发语言技能,即参与项目的研发人员所拥有的开发语言技能,并且每位研发人员掌握的开发语言技能各不相同,1~S表示共有S个开发语言技能型员工。
模型的基本假设如下:(1)整个项目周期内多开发语言技能研发人员的数量保持不变。(2)软件项目的成本为参加项目的研发人员的工资总和,而员工的工资受其所掌握的开发语言技能值影响,技能值越大工资就越高。(3)在软件项目进度的计算中,不考虑任务抢占,不考虑时滞。假设一个工序紧前工序的完成时间即为该工序的开始时间,之间没有时间间隔,不考虑工作转换时间和准备时间。(4)每个任务中途不能中断,即分配给一个任务的研发人员只能等该任务结束才能被分配到下一个任务。(5)同一时刻每个员工只能参加一项任务,不能同时参加多个任务。
T ijd表示研发人员i使用开发语言技能j参加任务d的时间。
Figure PCTCN2020105932-appb-000001
表示在任务d中使用开发语言技能j时的最短完成时间,该开发语言技能j为企业中所有开发语言技能j的最高水平,表示任务d由企业中水平最高的研发人员去做所需要的时间,1≤j≤s,1≤d≤m。E ij表示研发人员i具备的开发语言技能j的水平高低,1≤i≤n,1≤j≤s,E ij∈[0,1],E ij=1表示研发人员i具备的开发语言技能j的水平为企业最高水平;E ij=0,表示研发人员i不具备开发语言技能j。
Figure PCTCN2020105932-appb-000002
表示软件项目开始时研发人员i具有开发语言技能j的水平,
Figure PCTCN2020105932-appb-000003
已知,可以由项目经理、项目技术主管及相关负责人根据员工的知识、能力等方面进行判断。
Figure PCTCN2020105932-appb-000004
表示研发人员i在任务d开始时候具备的开发语言技能j的水平。FT d表示任务的完工时间。ST d表示任务的开始时间。FT Pd表示前序工作的完成时间。T d表示任务d的工期。P d表示任务d的紧前任务的集合。J d表示任务d所需开发语言技能总数的集合。
Figure PCTCN2020105932-appb-000005
表示任务d是否需要开发语言技能j,若需要则
Figure PCTCN2020105932-appb-000006
否则
Figure PCTCN2020105932-appb-000007
1≤j≤s,1≤d≤m。C i表示在一定时间内(比如月、周、日)员工i的薪酬,为研发人员i所掌握各开发语言技能的平均工资,1≤i≤n。
Figure PCTCN2020105932-appb-000008
表示研发人员i在第d个任务的工作时间。x ijd为0-1决策变量,1≤i≤n,1≤j≤s,1≤d≤m。若x ijd=1,表示研发人员i使用开发语言技能j参加任务d,否则为零。y ijdt为0-1辅助变量,1≤i≤n,1≤j≤s,1≤d≤m。若y ijdt=1,表示研发人员i在时段t使用开发语言技能j参加任务d,否则为零。本模型以软件项目成本、进度以及研发人员时间均衡为目标函数,同时对三者进行优化。
目标函数如下公式(1)~(3)所示,在软件项目中,主要的成本花费来源于参与项目的研发人员的费用,故可以认为软件项目的成本是参加软件项目的研发人员的工资总和。其中研发人员的工资水平是受其掌握的多开发语言技能值的影响,研发人员所掌握的多开发语言技能值可以来自于项目经理、研发技术主管或者负责人等组成的专家小组的评价。如果研发人员所掌握的多开发语言技能值越高,那么对应的工资就越高。定义研发人员参加项目所掌握的多开发语言技能的初始值为E ij,将研发人员所掌握某开发语言技能的初始值与该员工平均技能工资之积即为该多开发语言技能研发人员所掌握该开发语言技能的实际工资。软件项目成本目标函数公式如(1)所示,表示最小化软件项目成本。
Figure PCTCN2020105932-appb-000009
软件项目中每一个任务的完成时间为该任务中研发人员所使用技能的最大时间。整个软件项目的进度是软件项目中最后完成任务的截止时间,即所有任务中完成时间最长的那个任务的时间为整个项目的最终完成时间。员工的技能值越大,意味着员工的技能越熟练,那么员工完成任务的时间就越短。软件项目进度目标函数公式如(2)所示,表示最小化软件项目进度。
Figure PCTCN2020105932-appb-000010
在软件项目中,需要对研发人员进行均衡使用,在一个任务中不能出现一个研发人员工作时间很长,另一个研发人员工作时间很短的情况,需要平衡员工们的工作时间,合理的使用研发人员,这更加符合实际。本文定义研发人员工作时间的极差,如公式(3)所示,表示最小化研发人员工作时间的极差,均衡项目中研发人员的工作时间。
Figure PCTCN2020105932-appb-000011
模型中约束条件设置如(4)~(16)所示。由于
Figure PCTCN2020105932-appb-000012
表示完成任务d时开发语言技能j的最短完工时间,即任务d由企业中拥有开发语言技能j水平最高的研发人员去做所需要花费的时间,那么任意一个研发人员i使用开发语言技能j参与任务d所花费的时间就与该研发人员具有该开发语言技能的水平有关。该研发人员的开发语言技能值相比企业中最高水平的比值越大,那么该研发人员使用该技能参与任务的时间就越短,所以,研发人员i使用开发语言技能j参与任务d的时间表示如下:
Figure PCTCN2020105932-appb-000013
在软件项目中一个任务的完成时间是由这个任务中研发人员i使用某开发语言技能j的最长完成时间决定的,即任务d所需开发语言技能集合J中所有开发语言技能j的最长完成时间决定一个任务的最终完成时间,故任务d的完成时间如下:
Figure PCTCN2020105932-appb-000014
在软件项目中,各任务之间的顺序约束关系如下所示。其中(6)表示任务d的完成时间是其开始时间与其实际工期的和。(7)表示任务d的开始时间是其紧前任务的完成时间,任务间不考虑时间的间隔,默认为前一个任务完成后,后 一个任务立马开始。(8)表示任务d的前序任务的完成时间为前序任务中花费时间最大者。(9)表示若一个任务没有前序任务,则该前序任务的完成时间为零。
Figure PCTCN2020105932-appb-000015
在软件项目中,任务所需要的每个开发语言技能必须只能由一位具有该开发语言技能的研发人员来完成,不能出现某个任务所需开发语言技能集合J中的一个开发语言技能j由两个或者两个以上具有该开发语言技能j的员工来完成,而且每个研发人员只能使用一种开发语言技能参与一项任务,不能出现一个员工在一个任务中同时使用两种开发语言技能。在同一时刻一个研发人员只能参加其中一项任务,也就是在同一时刻研发人员只能使用一个开发语言技能参加项目中的一个任务,等该任务完成之后,研发人员再重新分配参加后续任务。(10)表示每项任务的每一个开发语言技能要求有且只有一个人完成,(11)表示每一个研发人员只能使用一种开发语言技能参加同一个任务。(12)表示在同一时刻一个研发人员只能参加同一个任务,(13)表示研发人员i在软件项目中的总工作时间。
Figure PCTCN2020105932-appb-000016
Figure PCTCN2020105932-appb-000017
Figure PCTCN2020105932-appb-000018
Figure PCTCN2020105932-appb-000019
若研发人员i在时段t使用开发语言技能j参加任务d,则表示研发人员i在任务d中使用了该开发语言技能,即y ijdt=1,则x ijd也为1,反之若y ijdt=0,则x ijd也为0,其中y ijdt与x ijd取值为0或者1,约束设置如(14)、(15)以及(16)。
Figure PCTCN2020105932-appb-000020
x ijd={0,1},1≤i≤n,1≤j≤s,1≤d≤m      (15)
y ijdt={0,1},1≤i≤n,1≤j≤s,1≤d≤m       (16)
在本实施例中,S102中,所述利用所述人员数据进行遗传算法中的个体的初始化,具体包括:
从所述人员数据中提取初始化相关的参数,所述初始化相关的参数包括:任务的数量m、开发语言技能的数量s、任务d所需要的开发语言技能集合Set d、所述任务d需要开发语言技能j的最短时间
Figure PCTCN2020105932-appb-000021
掌握开发语言技能j的员工集合Set j、染色体personal=[]和种群规模popsize。
根据所述种群规模popsize执行迭代,其中任务编号从1循环到m,开发语言编号从1循环到s。
当检测到
Figure PCTCN2020105932-appb-000022
大于0时,判定所述任务d需要开发语言技能j,并从掌握开发语言技能j的员工的集合Set j中选择一个编号为i的员工,将i的值赋给当前个体的基因位,所述前个体的基因位表示为ub[i],即personal=ub[i]。
Figure PCTCN2020105932-appb-000023
小于等于0,则跳转进入下一次循环。
举例来说,初始化个体的产生过程主要包括Step1~Step5:
Step1:首先初始化相关的参数,具体包括任务的数量m,开发语言技能的数量s,任务d所需要的开发语言技能集合Set d,任务d需要开发语言技能j的最短时间
Figure PCTCN2020105932-appb-000024
掌握开发语言技能j的员工集合Set j,染色体personal=[],种群规模popsize。
Step2:按照种群的规模popsize确定迭代的步骤。
Step3:按照任务编号从1循环到m,开发语言编号从1循环到s。
Step4:检验任务d是否需要开发语言技能j,如果
Figure PCTCN2020105932-appb-000025
大于0,则认为任务d需要开发语言技能j,从掌握开发语言技能j的员工的集合Set j中选择一个编号为i的员工,将i的值赋给当前个体的基因位personal=ub[i],如果
Figure PCTCN2020105932-appb-000026
小于等于0,那么可以跳转进入下一步循环。
Step5:以此方式直到所有项目的开发语言技能都安排好人员。
具体的,所述根据所述种群规模popsize执行迭代,包括:
对初始化种群P t进行变异处理后,形成新的种群Q t
将种群P t与种群Q t合并形成种群R t,并执行非支配排序,按照个体的支配个数分级形成级别:F 1,F 2,…,F i,并针对每一级F i计算每个个体的拥挤度。
将F 1,F 2,…,F i,从低到高依次加入到下一代种群P t+1,直至非支配级将P t+1填满。
对种群P t+1进行变异处理后,形成下一代个体Q t+1
重复上述过程,直到达到预设的种群迭代次数。
在本实施例中,对种群进行变异处理,具体包括:
选择是从父辈中选择优良的个体进入下一代的遗传操作。选择算子是通过个体的适应度大小来比较个体的优劣,适应度越小的个体被选中的概率就越小,反之,适应度越大的个体被选中的概率就越大。常见的选择算子种类有:锦标赛选择、轮盘赌选择、均匀排序、保留最佳选择等。锦标赛选择法的主要步骤为:第一步,假设种群规模为n,随机产生n个个体作为第一代;第二步,从这n个个体中随机选择k(k小于n)个个体,k的取值小,效率就高,但不宜太小, 一般取为n/2(取整);第三步,从这k个个体中选择最大的一个个体作为下一代n个个体中的一个个体;第四步,重复第二步和第三步,直到得到新的n个个体。本文采用的选择算子是二进制锦标赛法,基本原理是按照序值和拥挤距离进行取舍,序值不同时选择序值小的个体,序值相同时选择拥挤距离大的个体,这样可以使得进化朝着非支配解和均匀散布的方向进行。
交叉属于遗传算法的核心算子之一。交叉通过模仿生物的遗传方式产生后代,它通过对染色体进行交配与重组,从而得到新的子代。新的子代个体即为问题新的可行解,所以通过交叉操作可以使算法在优化问题的可行解空间中进行迭代搜索进而可以提高算法的全局搜索能力。交叉的方式有单点交叉、两点交叉、多点交叉、均匀交叉、融合交叉、补位交叉等。文本采用的是两点交叉。在第一层编码中交叉算子的操作步骤为:1)随机选择两个染色体作为父本,2)产生2个随机自然数r1和r2,3)将两个父本染色体r1至r2之间的基因片段进行交换,从而得到两个子代染色体,并对得到的两个染色体进行修订处理,使其不发生冲突。例如,选择的两个父本染色体[1,3,2,5,4][1,2,4,5,3],r1=2,r2=4,那么交叉过程为:交叉之前[1,3,2,5,4][1,2,4,5,3],交叉后[1,2,4,5,4][1,3,2,5,3],修补之后为[1,2,4,5,3][1,3,2,5,4],其中修补的方法为交叉后,取交叉片段的补集重新随机排列到非交叉片段。在第二层编码中交叉算子的操作步骤为:1)随机选择两个染色体作为父本,2)产生2个随机自然数r1和r2,3)将两个父本染色体r1至r2之间的基因片段进行交换,得到两个子代染色体。例如,选择的两个父本染色体[1,3,3,2,1,2][2,3,1,1,2,3],r1=2,r2=4,那么交叉后为[1,3,1,1,1,2][2,3,3,2,2,3]。
变异是通过将个体中的某一些基因值替换成其他值从而形成新的个体的遗传操作,能够有效的提高遗传算法的局部搜索能力。个体变异方法有多种,包 括基本位变异、均匀变异、非均匀变异等。其中基本变异是指对个体中某些基因的值在一定概率下发生改变的变异方式,又包括单点变异、双点变异、多点变异等。本文根据编码的特点,第一层编码设计使用两点互易变异,变异步骤为:1)产生2个随机自然数r1,r2,2)交换第r1位和r2位的基因。例如,r1=2,那么染色体的变异为[1,3,2,5,4]→[1,5,2,3,4]。第二层编码设计使用单点变异,步骤为:1)产生一个随机自然数r1,r1表示第r1位的基因发生变异,2)采用随机变异的方式将第r1位的基因进行变异。例如,r1=3,那么染色体的变异为[1,3,3,2,1,2]→[1,3,1,2,1,2]。
其中,还提供一种适应度评估的方式,包括:
在求解多目标优化问题时,由于多个优化目标往往是相互矛盾的,这就使得恰当的选择机制,特别是如何采用适当的评价方式对个体适应度进行评价,成为进化算法最终是否收敛到Pareto最优解的关键因素。一般来说多目标进化算法主要使用三种适应度评价策略,即组合函数法、基于群体但未引入Pareto支配概念的方法以及基于群体且引入Pareto支配概念的方法。本实施例使用的带精英保留策略的非支配排序多目标遗传算法(Elitist Non-dominated Sorting Genetic Algorithm,NSGA-II)适应度评价的方法采用的是基于群体引入Pareto支配概念的方法,主要通过排序值与拥挤度来决定下一步迭代的父代个体。
其中,还提供一种约束处理的方式,包括:
带精英保留策略的非支配排序多目标遗传算法(Elitist Non-dominated Sorting Genetic Algorithm,NSGA-II)在求解约束问题的困难之处在于一个可行解在经过了各种遗传操作以后经常会变成不可行解,这就违反了其内在的约束,所以用NSGA-II在求解这一类问题的时候需要使用一些策略。一般来说,可 以用一种直接的思想考虑约束条件,也就是在进化的过程中,叠代一次后就可以执行检测一下新的个体是否违反了约束条件的程序。若没有违反,则保留有效个体,反之,除去这个无效的个体。该方法对于弱约束问题是可以发挥作用的,但是对于强约束问题则不可行。在强约束条件下,寻找一个有效个体的难度会大大的增加,因为约束条件多,个体经过一次进化几乎都转变为不可行个体。根据本文建立的三个模型的特点,一部分约束条件通过编码及编码规则实现,另一部分约束条件主要是通过惩罚函数法来实现。
通过计算机程序实现时,本实施例中的NSGA-II的算法主流程可以采用如伪代码2-3所示的方式,包括:
Figure PCTCN2020105932-appb-000027
从伪代码2-3中可以看出,本实施例采用的是带精英保留策略的非支配排序多目标遗传算法(Elitist Non-dominated Sorting Genetic Algorithm,NSGA-II),如图1所示的,主流程包括以下几个步骤:
初始化种群P t进行选择、交叉、变异后形成新的种群Q t
种群P t与种群Q t合并后形成种群R t并执行快速非支配排序,按照个体的支配个数分级形成F 1,F 2,…,F i,对于每一级F i计算每个个体的拥挤度。
将前列面F i从低到高依次加入到下一代种群P t+1,例如先将F 1放入P t+1,若F 1的大小小于N,即F 1无法填满P t+1,这就需要对F i中剩下的个体继续进行快速非支配排序得到下一级非支配级F 2,并向P t+1中填充F 2,若当填充到F 3时,种群的大小超过了N,这就要对F 3中的个体进行拥挤度比较,即
Figure PCTCN2020105932-appb-000028
取前面N-|P t+1|个个体,使得P t+1种群的个体数达到N。若第一级别非支配级能够填满P t+1,则不需要对剩下的个体继续进行非支配排序。
对种群P t+1使用选择、交叉、变异操作形成下一代个体Q t+1
重复操作,直到达到种群的迭代次数。
本实施例采用带精英保留策略的非支配排序多目标遗传算法(Elitist Non-dominated Sorting Genetic Algorithm,NSGA-II)对软件项目中掌握多种开发语言的研发人员进行调度研究,以使软件项目的成本和进度同时得到优化。具体的,精英保留策略的逻辑流程如图2b所示的,可以采用拥挤度比较算子进行分析,其中包括:
(1)对同层的每个个体的拥挤度I distance设置为0;
(2)对同层的个体按照第m个目标函数值进行快速非支配排序;
(3)将边界的两个个体的拥挤度赋值为无穷,即O distance=I distance=∞;
(4)对其他个体按照如下公式进行拥挤度的计算:
Figure PCTCN2020105932-appb-000029
其中,I distance表示在I点的拥挤度值,f m(i+1)表示第m个目标函数在I+1点的值,f m(i-1)表示第m个目标函数在I-1点的值,
Figure PCTCN2020105932-appb-000030
Figure PCTCN2020105932-appb-000031
分别表示集合中第m目标函数的最大值与最小值。
而拥挤度的计算过程包括:经过快速非支配排序操作与拥挤度计算后,种群中的个体都具有以下两个属性:通过快速非支配排序得到的非支配序I rank和通过拥挤度计算得到的拥挤度I distance。跟据这两个属性并通过拥挤度比较算子比较个体之间的优劣:两个个体I与J进行比较时,只要满足下面两个条件中的一个,就可以认为个体I优于个体J。
a:若I rank<J rank,即在非支配层上,个体I优于个体J,所以个体I支配J。
b:若I rank=J rank且I distance>J distance,即当它们在相同的非支配层时,个体I的拥挤度距离比个体J的拥挤度距离大。
条件a若成立就可以保证被选择的个体属于种群中较优的非支配层。条件b若成立当两个个体在相同的非支配层中时,就可以根据它们的拥挤度距离选择位于相距更远区域的个体,以保证种群多样性。从而在整体上保证较优的个体进入下一个进化循环。
在本实施例中,S104中所述利用所述计算结果数据,生成调度结果表,具体包括:
若开发语言技能j参加任务d时,任务d之前没有任务,则开发语言技能j的开始时间为项目的开始时间。若任务d之前有任务,则开发语言技能j的开始时间任务d的所有前置任务的最迟完成时间。
根据开发语言技能j的技能值,计算任务d中开发语言技能j的工时。根据任务d中开发语言技能j的工时和开发语言技能j的结束时间,获取员工的开发语言技能使用时间表,并计算出所述员工的累积使用时间。根据所有员工的累积使用时间,计算出所述项目的工期。
本实施例中的调度结果表,主要通过双层编码算法流程获取,包括:
初始化任务的优先顺序,任务中所需要的开发语言技能的种类以及这个开发语言技能的最短用时,员工掌握的开发语言技能种类以及开发语言初始技能值,员工的平均开发语言技能工资等变量(具体可以通过执行S101-S102实现)
根据任务的编号进行迭代,若这个任务没有紧前任务(即与这一个任务相关联的,比如前置完成的任务),那么任务的开始时间就为0,否则若这个任务有紧前任务,那么任务的开始时间为其所有紧前任务的最迟完成时间。
在任务按编号进行迭代的同时,确定每个任务需要的开发语言技能,从员工开发语言技能矩阵中选择一个对应的开发语言技能的员工,确定该开发语言技能的员工编号并确保每一个员工只能使用一种开发语言技能参加同一个任务惩罚值,任务的完成时间为该任务所需开发语言技能的最迟完成时间。
若开发语言技能j参加任务d时,任务d之前没有任务,则开发语言技能j的开始时间就为项目的开始时间。若任务d之前有任务,那么开发语言技能j的开始时间为其所有前置任务的最迟完成时间。根据开发语言技能j的技能值计算出任务d中开发语言技能j的工时,并计算开发语言技能j的结束时间,构建员工开发语言技能使用时间表并计算出员工累积使用时间,最后分别计算出项目的工期与成本以及员工工作时间的均衡值。
本实施例还提供一种用于多语言协同开发的项目调度装置,包括:
预处理模块,用于读取项目数据和人员数据,所述项目数据包括项目中任务的集合,和所述项目所需的开发语言技能的集合,其中,每一个任务对应至少一种开发语言技能,所述人员数据包括每一个人员掌握的开发语言技能和所掌握的开发语言技能的效率参数;
处理模块,用于利用所述项目数据进行遗传算法中的编码和种群的初始化, 并且,利用所述人员数据进行遗传算法中的个体的初始化;
计算模块,用于将完成初始化后运行所述遗传算法,并获取计算结果数据;
发送模块,用于利用所述计算结果数据,生成调度结果表,并将所述调度结果表向员工终端发送。
本实施例中,所述处理模块,具体用于生成第一层编码,所述第一层编码为1~n的整数的不重复排序,长度为n,所述第一层编码表示任务的执行优先顺序,其中,任务数n,资源数为m;生成第二层编码,所述第二层编码为长度L=n*m的整数编码。
本实施例中,所述处理模块,具体用于从所述人员数据中提取初始化相关的参数,所述初始化相关的参数包括:任务的数量m、开发语言技能的数量s、任务d所需要的开发语言技能集合Set d、所述任务d需要开发语言技能j的最短时间
Figure PCTCN2020105932-appb-000032
掌握开发语言技能j的员工集合Set j、染色体personal=[]和种群规模popsize;
根据所述种群规模popsize执行迭代,其中任务编号从1循环到m,开发语言编号从1循环到s;
当检测到
Figure PCTCN2020105932-appb-000033
大于0时,判定所述任务d需要开发语言技能j,并从掌握开发语言技能j的员工的集合Set j中选择一个编号为i的员工,将i的值赋给当前个体的基因位,所述前个体的基因位表示为ub[i],即personal=ub[i];
Figure PCTCN2020105932-appb-000034
小于等于0,则跳转进入下一次循环。
本实施例中,所述处理模块,具体用于对初始化种群P t进行变异处理后,形成新的种群Q t
将种群P t与种群Q t合并形成种群R t,并执行非支配排序,按照个体的支配个数分级形成级别:F 1,F 2,…,F i,并针对每一级F i计算每个个体的拥挤度;
将F 1,F 2,…,F i,从低到高依次加入到下一代种群P t+1,直至非支配级将P t+1填满;
对种群P t+1进行变异处理后,形成下一代个体Q t+1
重复上述过程,直到达到预设的种群迭代次数。
本实施例中,所述发送模块,具体用于若开发语言技能j参加任务d时,任务d之前没有任务,则开发语言技能j的开始时间为项目的开始时间;若任务d之前有任务,则开发语言技能j的开始时间任务d的所有前置任务的最迟完成时间;
根据开发语言技能j的技能值,计算任务d中开发语言技能j的工时;根据任务d中开发语言技能j的工时和开发语言技能j的结束时间,获取员工的开发语言技能使用时间表,并计算出所述员工的累积使用时间;根据所有员工的累积使用时间,计算出所述项目的工期。
现有的技术中一般选择使用遗传算法(GA,Genetic Algorithm)对目标函数进行优化,但是GA一般只能解决单个目标的优化,无法解决多目标的优化,再多目标优化中,通常使用的非支配排序遗传算法(Non-dominated Sorting Genetic Algorithm,NSGA)也具有一些不可避免的缺陷,主要有计算复杂度高、缺少精英保留策略以及共享函数法需要指定参数σ share。主要原因在于:
现有多目标优化算法中,通常使用的是非支配排序遗传算法(Non-dominated Sorting Genetic Algorithm,NSGA),其核心技术在于通过非支配排序原理对种群中的个体进行分层(ranks)以及通过共享小生境原理计算每个个体的虚拟拥挤度距离(crowding distance)。NSGA通过以上这两个核心技术在选择操作算子这个环节对种群进行多目标的评价与选择,从而实现多目标优化。种群个体分层是依据非劣分层算法对种群P进行非劣分层操作。非劣分层的结果是将种群P 分成ρ个非劣组P j
Figure PCTCN2020105932-appb-000035
其中ρ表示总层数。P 1中所有个体为种群P的最优非劣组,P 2中所有个体为种群P的次优非劣组,P ρ中所有个体为种群的最劣组。因为P 1中的个体比种群P中的其它个体更接近真正的Pareto最优域,所以分配最高的适应值给P 1中的个体,然后逐步地分配较差的适应值给其它组的个体。适应值分配开始于P 1组,然后依次进行到P ρ组。分配给P 1的任意一个个体i的适应值F i=N,N表示种群的大小。分配给P 1组的个体更大的适应值是为了保证朝Pareto最优域的选择压力。NSGA通过在P 1~P ρ中使用共享函数法来保证每组个体的多样性。在P 1中任意两体i与j的标准欧拉距离d ij计算方法如下:
Figure PCTCN2020105932-appb-000036
其中n表示决策变量的数目。再利用(4.3)计算出共享函数值,用来表示两个个体之间关系的密切程度,其中,其中σ share是事先选取的小生境半径,d ij表示两个个体之间的欧几里得距离,α表示对Sh(d ij)的调整。
Figure PCTCN2020105932-appb-000037
令α=2,共享函数按照d ij在0和1之间取值,任何与个体i的距离大于σ share的个体Sh(d ij)值为0。再使用公式(2.21)计算出个体i的小生境数nc i,其中u(r i)表示所有等级是r i的个体数。
Figure PCTCN2020105932-appb-000038
nc i表示第i个个体的临近个体数。若在一个个体的半径是σ share的范围内不 存在其它的个体,那这个个体的最小境数就为1。若一个组的所有个体相对于σ share而言相互之间非常接近,那么这一组的每一个个体的小境数都非常的接近该组的个体总数。最后通过小生境数降低个体i的适应值并且得到共享适应值,也就是F′ i=F i/nc i
以上完成了P 1组中所有个体的适应值分配,然后对P 2组中所有个体的适应值进行分配。首先留意P 1组的最小共享适应值,对P 2组的所有个体分配的适应值要略小于P 1组的最小共享适应值。这保证了P 1组中任何个体的共享适应值都不会比P 2组中任何个体指定的适应值差;然后对P 2组的个体使用共享函数法计算出相应的共享适应值;最后依次持续该过程直到所有的个体都被分配了共享适应值。
NSGA使用非支配排序原理与共享小生境技术来确定个体的适应度后,进行的遗传操作和基本的遗传算法保持一致。NSGA算法流程图如图3所示。NSGA的优点在于根据非劣层分配适应值并以组的方式朝着Pareto最优域的方向发展,而且在参数空间中实行共享产生互异的解。其缺点在于非支配排序计算复杂度高、缺少精英保留策略以及共享函数法需要指定参数σ share
本实施例中,基于带精英保留策略的非支配排序多目标遗传算法(Elitist Non-dominated Sorting Genetic Algorithm,NSGA-II)是在NSGA的基础上进行了改进,针对NSGA中非支配排序计算复杂度高的问题,NSGA-II引出了快速非支配排序,从而降低算法的复杂度;针对NSGA没有使用精英保留策略的情况,NSGA-II将精英保留策略引入到算法中,这扩大了采样的空间;针对NSGA需要制定参数σ share的情况,NSGA-II采用了拥挤度及拥挤度比较算子,这可以使准帕累托域中的个体均匀扩大到整个帕累托域,保证了种群的多样性。
本实施例中所采用的NSGA-II的基本思想是:如图4所示的NSGA-II的流程 图,首先随机产生种群规模为N的初始种群P t,并产生其子代种群Q t,再将这两个种群合并形成大小为2N的种群R t。其次,对种群R t进行快速非支配排序,并计算出每个非支配层中个体的拥挤度,根据非支配关系以及个体的拥挤度大小选取合适的个体组成新的父代种群P t+1,并产生新的子代种群Q t+1;最后,将P t+1与Q t+1合并形成新的种群R t+1,重复以上的操作,直到满足程序结束的条件。
本实施例实际应用时,软件项目中的每个任务都需要满足软件开发人员及其技能的约束以及任务之间时序的约束,软件开发人员技能表现往往是一专多能的,具体可表现掌握多种开发语言。在软件项目中如何通过对多技能员工进行合理调度,使用带精英保留策略的非支配排序多目标遗传算法(Elitist Non-dominated Sorting Genetic Algorithm,NSGA-II)使软件项目以更低的成本和更短的时间完成,这具有重要的实际意义。
以具体案例来说:某软件开发公司S的一个大型软件开发项目P共有10个任务,分别为D1、D2、…、D10,其中共需8种开发语言技能,分别为S1、S2…、S8,每一个任务需要其中的多种开发语言技能,每个开发语言技能是并行进行的,员工的开发语言技能初始值由项目中的技术主管及负责人、项目经理等组成的专家小组通过评价给出,而可以参加本软件项目的研发人员总共有40名。任务之间的先后关系以及每个任务所需要的技能如表1所示。根据表1给出项目中任务的网络图如图6所示,其中任务S与任务E为虚工序。项目中每个任务所需要的开发语言技能及所需要开发语言技能的最短开发时间如表2所示。这40名员工的开发语言技能平均工资如表3所示。每位研发人员掌握的开发语言技能及技能初始水平值见表4。
表1 项目中任务先后关系
任务名称 紧前任务 所需技能
D1 —— S1,S2,S3,S5,S7
D2 —— S1,S2,S3,S5,S7
D3 D2 S2,S5,S6,S7
D4 —— S1,S2,S3,S5,S7
D5 D1,D2 S2,S4,S6,S8
D6 D1,D4 S3,S5,S7,S8
D7 D3,D5 S3,S5,S7,S8
D8 D3 S3,S5,S7,S8
D9 D6,D7,D8 S3,S5,S7,S8
D10 D9 S3,S5,S7,S8
表2 任务中各技能的最短时间需求(单位:月)
Figure PCTCN2020105932-appb-000039
表3 员工所掌握技能的平均工资(元/月)
Figure PCTCN2020105932-appb-000040
表4 掌握各技能的员工及技能值
Figure PCTCN2020105932-appb-000041
表5 软件项目成本与进度
软件项目成本 软件项目进度
967356.8 37.7
963365.5 37.7
943554.7 38.0
926132.3 38.2
935271.9 38.2
925907.4 38.4
931907.4 38.4
918986.2 38.4
924986.2 38.4
955530.2 38.9
通过Matlab运行代码得到工期的迭代曲线如图7所示,成本迭代曲线如图8所示,帕累托前沿如图9所示。从图9的帕累托前沿中选出10个解并列出这10个解的成本和进度值,如表5所示。表6给出了这10个解对应的技能型员工调度方案。可以看出研发人员可以使用同一开发语言参加同一个任务,也可以使用同一开发语言参加不同的任务,增加了研发人员配置的灵活性并使研发人员得到充分使用,成本和进度也得到了优化。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

  1. 一种用于多语言协同开发的项目调度方法,其特征在于,包括:
    读取项目数据和人员数据,所述项目数据包括项目中任务的集合,和所述项目所需的开发语言技能的集合,其中,每一个任务对应至少一种开发语言技能,所述人员数据包括每一个人员掌握的开发语言技能和所掌握的开发语言技能的效率参数;
    利用所述项目数据进行遗传算法中的编码和种群的初始化,并且,利用所述人员数据进行遗传算法中的个体的初始化;
    将完成初始化后运行所述遗传算法,并获取计算结果数据;
    利用所述计算结果数据,生成调度结果表,并将所述调度结果表向员工终端发送。
  2. 根据权利要求1所述的方法,其特征在于,所述利用所述项目数据进行遗传算法中的编码和种群的初始化,包括:
    生成第一层编码,所述第一层编码为1~n的整数的不重复排序,长度为n,所述第一层编码表示任务的执行优先顺序,其中,任务数n,资源数为m;
    生成第二层编码,所述第二层编码为长度L=n*m的整数编码。
  3. 根据权利要求2所述的方法,其特征在于,所述利用所述人员数据进行遗传算法中的个体的初始化,包括:
    从所述人员数据中提取初始化相关的参数,所述初始化相关的参数包括:任务的数量m、开发语言技能的数量s、任务d所需要的开发语言技能集合Set d、所述任务d需要开发语言技能j的最短时间
    Figure PCTCN2020105932-appb-100001
    掌握开发语言技能j的员工集合Set j、染色体personal=[]和种群规模popsize;
    根据所述种群规模popsize执行迭代,其中任务编号从1循环到m,开发语言编号从1循环到s;
    当检测到
    Figure PCTCN2020105932-appb-100002
    大于0时,判定所述任务d需要开发语言技能j,并从掌握开发语言技能j的员工的集合Set j中选择一个编号为i的员工,将i的值赋给当前个体的基因位,所述前个体的基因位表示为ub[i],即personal=ub[i];
    Figure PCTCN2020105932-appb-100003
    小于等于0,则跳转进入下一次循环。
  4. 根据权利要求3所述的方法,其特征在于,所述根据所述种群规模popsize执行迭代,包括:
    对初始化种群P t进行变异处理后,形成新的种群Q t
    将种群P t与种群Q t合并形成种群R t,并执行非支配排序,按照个体的支配个数分级形成级别:F 1,F 2,…,F i,并针对每一级F i计算每个个体的拥挤度;
    将F 1,F 2,…,F i,从低到高依次加入到下一代种群P t+1,直至非支配级将P t+1填满;
    对种群P t+1进行变异处理后,形成下一代个体Q t+1
    重复上述过程,直到达到预设的种群迭代次数。
  5. 根据权利要求1所述的方法,其特征在于,所述利用所述计算结果数据,生成调度结果表,包括:
    若开发语言技能j参加任务d时,任务d之前没有任务,则开发语言技能j的开始时间为项目的开始时间;若任务d之前有任务,则开发语言技能j的开始时间任务d的所有前置任务的最迟完成时间;
    根据开发语言技能j的技能值,计算任务d中开发语言技能j的工时;根据任务d中开发语言技能j的工时和开发语言技能j的结束时间,获取员工的开发语言 技能使用时间表,并计算出所述员工的累积使用时间;根据所有员工的累积使用时间,计算出所述项目的工期。
  6. 一种用于多语言协同开发的项目调度装置,其特征在于,包括:
    预处理模块,用于读取项目数据和人员数据,所述项目数据包括项目中任务的集合,和所述项目所需的开发语言技能的集合,其中,每一个任务对应至少一种开发语言技能,所述人员数据包括每一个人员掌握的开发语言技能和所掌握的开发语言技能的效率参数;
    处理模块,用于利用所述项目数据进行遗传算法中的编码和种群的初始化,并且,利用所述人员数据进行遗传算法中的个体的初始化;
    计算模块,用于将完成初始化后运行所述遗传算法,并获取计算结果数据;
    发送模块,用于利用所述计算结果数据,生成调度结果表,并将所述调度结果表向员工终端发送。
  7. 根据权利要求6所述的装置,其特征在于,所述处理模块,具体用于生成第一层编码,所述第一层编码为1~n的整数的不重复排序,长度为n,所述第一层编码表示任务的执行优先顺序,其中,任务数n,资源数为m;生成第二层编码,所述第二层编码为长度L=n*m的整数编码。
  8. 根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于从所述人员数据中提取初始化相关的参数,所述初始化相关的参数包括:任务的数量m、开发语言技能的数量s、任务d所需要的开发语言技能集合Set d、所述任务d需要开发语言技能j的最短时间
    Figure PCTCN2020105932-appb-100004
    掌握开发语言技能j的员工集合Set j、染色体personal=[]和种群规模popsize;
    根据所述种群规模popsize执行迭代,其中任务编号从1循环到m,开发语言编号从1循环到s;
    当检测到
    Figure PCTCN2020105932-appb-100005
    大于0时,判定所述任务d需要开发语言技能j,并从掌握开发语言技能j的员工的集合Set j中选择一个编号为i的员工,将i的值赋给当前个体的基因位,所述前个体的基因位表示为ub[i],即personal=ub[i];
    Figure PCTCN2020105932-appb-100006
    小于等于0,则跳转进入下一次循环。
  9. 根据权利要求8所述的装置,其特征在于,所述处理模块,具体用于对初始化种群P t进行变异处理后,形成新的种群Q t
    将种群P t与种群Q t合并形成种群R t,并执行非支配排序,按照个体的支配个数分级形成级别:F 1,F 2,…,F i,并针对每一级F i计算每个个体的拥挤度;
    将F 1,F 2,…,F i,从低到高依次加入到下一代种群P t+1,直至非支配级将P t+1填满;
    对种群P t+1进行变异处理后,形成下一代个体Q t+1
    重复上述过程,直到达到预设的种群迭代次数。
  10. 根据权利要求6所述的装置,其特征在于,所述发送模块,具体用于若开发语言技能j参加任务d时,任务d之前没有任务,则开发语言技能j的开始时间为项目的开始时间;若任务d之前有任务,则开发语言技能j的开始时间任务d的所有前置任务的最迟完成时间;
    根据开发语言技能j的技能值,计算任务d中开发语言技能j的工时;根据任务d中开发语言技能j的工时和开发语言技能j的结束时间,获取员工的开发语言技能使用时间表,并计算出所述员工的累积使用时间;根据所有员工的累积使用时间,计算出所述项目的工期。
PCT/CN2020/105932 2019-11-07 2020-07-30 一种用于多语言协同开发的项目调度方法及装置 WO2021088436A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA3162759A CA3162759C (en) 2019-11-07 2020-07-30 Project scheduling method and apparatus for multi-language collaborative development

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911081485.0A CN111047272B (zh) 2019-11-07 2019-11-07 一种用于多语言协同开发的项目调度方法及装置
CN201911081485.0 2019-11-07

Publications (1)

Publication Number Publication Date
WO2021088436A1 true WO2021088436A1 (zh) 2021-05-14

Family

ID=70232015

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/105932 WO2021088436A1 (zh) 2019-11-07 2020-07-30 一种用于多语言协同开发的项目调度方法及装置

Country Status (3)

Country Link
CN (1) CN111047272B (zh)
CA (1) CA3162759C (zh)
WO (1) WO2021088436A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113838526A (zh) * 2021-09-16 2021-12-24 赛业(广州)生物科技有限公司 一种病毒突变体的生成方法、系统、计算机设备及介质
CN115660318A (zh) * 2022-09-30 2023-01-31 南京航空航天大学 一种用于物联制造车间的人机协作任务分配方法
CN116882293A (zh) * 2023-07-18 2023-10-13 广东明阳电气股份有限公司 变压器多目标优化方法、装置及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047272B (zh) * 2019-11-07 2023-04-07 苏宁云计算有限公司 一种用于多语言协同开发的项目调度方法及装置
CN111553610B (zh) * 2020-05-07 2023-04-07 苏宁云计算有限公司 一种基于学习-遗忘效应的调度方法及系统
CN113094095B (zh) * 2021-03-26 2024-03-22 海信集团控股股份有限公司 一种敏捷开发进度确定方法及装置
CN113626015B (zh) * 2021-08-24 2024-04-26 贵州电子科技职业学院 一种适用于i语言的高性能运行优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035816A (zh) * 2014-05-22 2014-09-10 南京信息工程大学 一种基于改进nsga-ii的云计算任务调度方法
WO2019035097A1 (en) * 2017-08-18 2019-02-21 The Regents Of The University Of Michigan CENTRALIZED STRUCTURE FOR THE MANUFACTURE OF SMALL LOTS
CN109636205A (zh) * 2018-12-18 2019-04-16 合肥师范学院 一种研发项目组合中多技能人员调度方法
CN111047272A (zh) * 2019-11-07 2020-04-21 苏宁云计算有限公司 一种用于多语言协同开发的项目调度方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035816A (zh) * 2014-05-22 2014-09-10 南京信息工程大学 一种基于改进nsga-ii的云计算任务调度方法
WO2019035097A1 (en) * 2017-08-18 2019-02-21 The Regents Of The University Of Michigan CENTRALIZED STRUCTURE FOR THE MANUFACTURE OF SMALL LOTS
CN109636205A (zh) * 2018-12-18 2019-04-16 合肥师范学院 一种研发项目组合中多技能人员调度方法
CN111047272A (zh) * 2019-11-07 2020-04-21 苏宁云计算有限公司 一种用于多语言协同开发的项目调度方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KAROVA MILENA, AVRAMOVA NEVENA: "A genetic algorithm basic approach for software management project", PROCEEDINGS OF THE 13TH INTERNATIONAL CONFERENCE ON COMPUTER SYSTEMS AND TECHNOLOGIES, COMPSYSTECH '12, ACM PRESS, NEW YORK, NEW YORK, USA, 1 January 2012 (2012-01-01) - 23 June 2012 (2012-06-23), New York, New York, USA, pages 103 - 110, XP055810304, ISBN: 978-1-4503-1193-9, DOI: 10.1145/2383276.2383293 *
YANG, HUIHUA ET AL.: "Skilled staff scheduling method based on niche genetic algorithm", JOURNAL OF COMPUTER APPLICATIONS, vol. 33, no. S2, 31 December 2013 (2013-12-31), pages 98 - 101, XP055810302, ISSN: 1001-9081 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113838526A (zh) * 2021-09-16 2021-12-24 赛业(广州)生物科技有限公司 一种病毒突变体的生成方法、系统、计算机设备及介质
CN113838526B (zh) * 2021-09-16 2023-08-25 赛业(广州)生物科技有限公司 一种病毒突变体的生成方法、系统、计算机设备及介质
CN115660318A (zh) * 2022-09-30 2023-01-31 南京航空航天大学 一种用于物联制造车间的人机协作任务分配方法
CN116882293A (zh) * 2023-07-18 2023-10-13 广东明阳电气股份有限公司 变压器多目标优化方法、装置及存储介质

Also Published As

Publication number Publication date
CA3162759C (en) 2024-04-23
CA3162759A1 (en) 2021-05-14
CN111047272A (zh) 2020-04-21
CN111047272B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
WO2021088436A1 (zh) 一种用于多语言协同开发的项目调度方法及装置
Shen et al. Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems
Feng et al. A three-layer chromosome genetic algorithm for multi-cell scheduling with flexible routes and machine sharing
CN109636205A (zh) 一种研发项目组合中多技能人员调度方法
CN113139710B (zh) 一种基于遗传算法的多资源并行任务高级计划排程方法
CN104077634B (zh) 基于多目标优化的主动‑反应式动态项目调度方法
He et al. Construction of a 5D duration and cost optimisation model based on genetic algorithm and BIM
Wang et al. Modeling worker competence to advance precast production scheduling optimization
Guo et al. Multi-objective optimisation of stochastic hybrid production line balancing including assembly and disassembly tasks
Michnik The WINGS method with multiple networks and its application to innovation projects selection
Sajadi et al. A new fuzzy multi-objective multi-mode resource-constrained project scheduling model
CN104217255A (zh) 一种市场环境下电力系统多目标检修优化方法
Shou et al. A Multiagent Evolutionary Algorithm for the Resource‐Constrained Project Portfolio Selection and Scheduling Problem
CN104392317B (zh) 一种基于遗传文化基因算法的项目调度方法
Li et al. Robust optimization for integrated construction scheduling and multiscale resource allocation
Kong et al. RCPSP with combined precedence relations and resource calendars
CN111553610B (zh) 一种基于学习-遗忘效应的调度方法及系统
Sethi et al. Development of optimization model for balancing time, cost, and environmental impact in retrofitting projects with NSGA-III
Gong et al. Energy-efficient flexible job shop scheduling problem considering discrete operation sequence flexibility
Srisuwanrat et al. Optimal scheduling of probabilistic repetitive projects using completed unit and genetic algorithms
Alzara et al. Building a genetic algorithm-based and BIM-based 5D time and cost optimization model
CN104008444A (zh) 一种应用于多约束项目下团队构建的模型及方法
You et al. A two-layer approach for the decentralized multi-project scheduling problem sharing multi-skilled staff
CN112598176A (zh) 遗传与贪婪算法融合的众包高效分派方法
Wu et al. An Improved Genetic‐Shuffled Frog‐Leaping Algorithm for Permutation Flowshop Scheduling

Legal Events

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

Ref document number: 20884845

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 3162759

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20884845

Country of ref document: EP

Kind code of ref document: A1