CA3162759C - Project scheduling method and apparatus for multi-language collaborative development - Google Patents

Project scheduling method and apparatus for multi-language collaborative development Download PDF

Info

Publication number
CA3162759C
CA3162759C CA3162759A CA3162759A CA3162759C CA 3162759 C CA3162759 C CA 3162759C CA 3162759 A CA3162759 A CA 3162759A CA 3162759 A CA3162759 A CA 3162759A CA 3162759 C CA3162759 C CA 3162759C
Authority
CA
Canada
Prior art keywords
development language
task
software development
project
population
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CA3162759A
Other languages
French (fr)
Other versions
CA3162759A1 (en
Inventor
Jiguang Zheng
Wei Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
10353744 Canada Ltd
Original Assignee
10353744 Canada Ltd
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 10353744 Canada Ltd filed Critical 10353744 Canada Ltd
Publication of CA3162759A1 publication Critical patent/CA3162759A1/en
Application granted granted Critical
Publication of CA3162759C publication Critical patent/CA3162759C/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (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

Embodiments of the present invention relates to the technical field of Internet, and provides a project scheduling method and apparatus for multi-language collaborative development, capable of reducing the cost of project development and improving the development efficiency. The method comprises: reading project data and personnel data, the project data comprising a set of tasks in a 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 comprising development language skills grasped by each person and efficiency parameters of the grasped development language skills; carrying out coding and population initialization in a genetic algorithm by using the project data, and carrying out initialization of individuals in the genetic algorithm by using the personnel data; upon completion of the initialization, operating the genetic algorithm, and obtaining calculation result data; and generating a scheduling result table by using the calculation result data, and sending the scheduling result table to an employee terminal. The present invention is suitable for large-scale multi-language software project development.

Description

PROJECT SCHEDULING METHOD AND DEVICE FOR MULTI-LANGUAGES
COLLABORATIVE DEVELOPMENT
BACKGROUND OF THE INVENTION
Technical Field [0001] The present invention relates to the field of internet technology, and more particularly to a project scheduling method for multi-language collaborative development and a corresponding device.
Description of Related Art
[0002] With the developments of the intemet technology and the big data technology, great quantities of developing personnel are required in many system-level programs and platforms for designing, development and later-stage debugging. The numbers of people in the developing teams of many intemet companies also grow at the geometric level, and there are many cases of developing teams with hundreds upon ten hundreds of people. It has become a problem to be researched as how to administer and reasonably call each R&D personnel for the service of the project, as it is apparently infeasible to merely employ the traditional artificial mode of administration with inferior real timeliness and high manpower cost.
[0003] The currently available semi-automatic administration tools usually regard the R&D
personnel in a software project as only mastering one development language, and base thereon to utilize the genetic algorithm to perform optimization research on the cost or progress of the software project, namely to perform optimization research only on a single target. This mode makes it very difficult to further enhance the degree of reasonableness of project scheduling, and difficult to further promote the advancing progress of the Date recue/date received 2022-05-02 project.
[0004] In actuality, many R&D personnel usually master several development languages, and their proficiencies in mastering the development languages differ from one another.
Moreover, both the cost and progress of a project are factors to be emphatically considered. None of currently available solutions could solve the problem concerning further optimization, whereby it is made difficult to lower the cost of project development and difficult to enhance efficiency.
SUMMARY OF THE INVENTION
[0005] Embodiments of the present invention provide a project scheduling method for multi-languages collaborative development and a corresponding device capable of reducing the cost of project development and enhancing development efficiency.
[0006] In order to achieve the above objectives, the embodiments of the present invention employ the following technical solutions.
[0007] According to one aspect, the method provided by an embodiment of the present invention comprises:
[0008] reading project data and personnel data, wherein the project data includes a set of tasks in a 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 development language skills mastered by each personnel and efficiency parameters of the mastered development language skills;
[0009] employing the project data to perform coding and population initialization in a genetic algorithm, and employing the personnel data to perform initialization of individuals in the genetic algorithm;
[0010] running the genetic algorithm after completion of initialization, and obtaining calculation Date recue/date received 2022-05-02 result data; and
[0011] employing the calculation result data to generate a scheduling result table, and sending the scheduling result table to a staff terminal.
[0012] According to another aspect, the device provided by an embodiment of the present invention comprises:
[0013] a preprocessing module, for reading project data and personnel data, wherein the project data includes a set of tasks in a 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 development language skills mastered by each personnel and efficiency parameters of the mastered development language skills;
[0014] a processing module, for employing the project data to perform coding and population initialization in a genetic algorithm, and employing the personnel data to perform initialization of individuals in the genetic algorithm;
[0015] a calculating module, for running the genetic algorithm after completion of initialization, and obtaining calculation result data; and
[0016] a sending module, for employing the calculation result data to generate a scheduling result table, and sending the scheduling result table to a staff terminal.
[0017] The project scheduling method and device for multi-languages collaborative development provided by the embodiments of the present invention enable each task in a software project to satisfy the constraint between the software developing personnel and their skills and the constraint between the tasks in the time sequence, a software developing personnel is usually an expert in one skill and a knower of many, and this is usually reflected in his mastering plural development languages. It is an objective as how to reasonably schedule the multiply skilled staff in a software project and to employ the elitist non-dominated sorting multi-objective genetic algorithm NSGA-II to complete the software project with lower cost and in shorter time, so as to reduce the cost of project development and enhance development efficiency.

Date recue/date received 2022-05-02 BRIEF DESCRIPTION OF THE DRAWINGS
[0018] In order to more clearly describe the technical solutions in the embodiments of the present invention, drawings required for use in the embodiments are briefly introduced below.
Apparently, the drawings described below are merely directed to some embodiments of the present invention, while it is possible for persons ordinarily skilled in the art to further acquire other drawings on the basis of these drawings without spending creative effort in the process.
[0019] Fig. 1 is a view schematically illustrating an NSGA-II procedure in a concrete example provided by an embodiment of the present invention;
[0020] Fig. 2a is a flowchart schematically illustrating the method provided by an embodiment of the present invention;
[0021] Fig. 2b is a view schematically illustrating preferential preservation of individuals through the elitism preserving strategy in a concrete example provided by an embodiment of the present invention;
[0022] Fig. 3 is a view schematically illustrating an NSGA procedure in the prior-art technology;
[0023] Fig. 4 is a view illustrating another NSGA-II procedure in a concrete example provided by an embodiment of the present invention;
[0024] Fig. 5 is a view schematically illustrating a three-layered framework concerning the problem of project scheduling in manpower resource constraint of multiple development language skills in a concrete example provided by an embodiment of the present invention;

Date recue/date received 2022-05-02
[0025] Fig. 6 is a view illustrating a network of project task nodes in a concrete example provided by an embodiment of the present invention;
[0026] Fig. 7 is a view illustrating a time limit iterative curve in a concrete example provided by an embodiment of the present invention;
[0027] Fig. 8 is a view illustrating a cost iterative curve in a concrete example provided by an embodiment of the present invention; and
[0028] Fig. 9 is a view illustrating a Pareto front in a concrete example provided by an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0029] In order for persons skilled in the art to better comprehend the technical solutions of the present invention, the present invention is described in further detail below in conjunction with accompanying drawings and specific modes of execution. Modes of execution of the present invention will be described in detail below, and the modes of execution will be illustrated in the drawings, in which reference numerals are used throughout the context to indicate identical or similar elements or elements having identical or similar functions.
The modes of execution described below with reference to the accompanying drawings are merely exemplary in nature, and are not meant to restrict the present invention. As comprehensible to persons skilled in the art, unless specifically noted otherwise, the singular forms "a", "one", "the" as used in this paper can subsume the circumstances of their corresponding plural forms. As should be further understood, the wordings "comprising", "including" and "containing" as well as their other corresponding forms as used in the Description of the present invention indicate the presence of the modified feature, integer, step, operation, element and/or component part, but do not exclude the presence or addition of one or more of another/other feature(s), integer(s), step(s), Date recue/date received 2022-05-02 operation(s), element(s), component part(s) and/or a group or groups thereof.
As should be understood, when an element is referred to as being "connected" or "coupled to"
another element, it can be connected or coupled to the other element either directly, or through an intermediate element. In addition, such connection or coupling subsumes the circumstance of wireless connection or coupling. The wording "and/or" as used in this context implies the inclusion of any unit and the entire combination of one or more item(s) listed out in association. As comprehensible to persons skilled in the art, unless defined otherwise, all terms (including technical terms and scientific terms) used in this context possess the same meanings as generally understood by persons ordinarily skilled in this field of specialty. As should be also understood, those terms as defined in a general dictionary should be understood to denote the meanings consistent with the meanings in the context of the prior-art technology, and should not be explained with idealized or too formal connotations unless thusly defined.
[0030] An embodiment of the present invention provides a project scheduling method for multi-languages corroborative development, as shown in Fig. 2a, the method comprises the following steps.
[0031] S101 - reading project data and personnel data.
[0032] The project data includes a set of tasks in a 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 development language skills mastered by each personnel and efficiency parameters of the mastered development language skills. By way of example, in the project data, let software project P altogether include m+2 tasks numbering as {0, 1, ..., m+1}, in which task 0 and task m+1 are dummy activities (a dummy activity is one that consumes no resource and whose execution time is 0) respectively representing the start and the end of the software project, and a set of the tasks is M. A set of development language skills s together required by software project Date recue/date received 2022-05-02 P is J={1, 2, ..., s}. There are altogether n R&D personnel mastering multiple development language skills that can be called for the project, and a set of the R&D
personnel is N={1, 2, ..., n}, where i, j and d respectively represent R&D
personnel, development language skills, and tasks, where 1<i<n, 1<j<s, 1<d<m, namely ieN, j EJ, deM.
[0033] S102 - employing the project data to perform coding and population initialization in a genetic algorithm, and employing the personnel data to perform initialization of individuals in the genetic algorithm.
[0034] S103 ¨ running the genetic algorithm after completion of initialization, and obtaining calculation result data.
[0035] S104 ¨ employing the calculation result data to generate a scheduling result table, and sending the scheduling result table to a staff terminal.
[0036] In actual application, the scheduling result table can be embodied as an excel form to be placed therewith corresponding scheduling result data, and coding design is further performed thereon by means of matlab to obtain final optimized result diagrams (such as Figs. 7-9) and scheduling result tables of staff with multiple development languages (such as Tables 1-5).
[0037] In this embodiment, NSGA-II that is based on the genetic algorithm is employed, so its forms of designing the coding and initialization of the population are the same as those of the genetic algorithm. Coding aims to express the solution to the problem in the form of chromosome, so as to enable effective genetic manipulation. According to the principles of completeness, soundness and non-redundancy of the coding, in further combination with the configuration characteristic of the staff mastering multiple development languages in the software project, this embodiment employs the algorithm Date recue/date received 2022-05-02 designing principle of two layers of coding, of which the first layer of coding is sequential coding, and the second layer of coding is coding to assign the staff mastering multiple development languages as required by the tasks. Specifically, step 102 of employing the project data to perform coding and initialization of a population in a genetic algorithm includes:
[0038] generating a first layer of coding, wherein the first layer of coding is a sequence of not repetitively arranged integers 1¨n, with a length being n, and the first layer of coding indicates a sequence of preferential executions of the tasks, wherein number of tasks is n, and number of resources is m; and
[0039] generating a second layer of coding, wherein the second layer of coding is an integer coding with a length L=n*m.
[0040] For instance, during the process of coding and initialization of the population, the number of tasks is n and the number of resources is m, then the first layer of coding has a length of n, is a sequence of not repetitively arranged integers 1 to n, indicates a sequence of preferential executions of the tasks, is firstly randomly generated, and is thereafter converted according to tight front constraint, which conversion according to tight front constraint can be understood as that the final sequence of the tasks is determined according to a tight front constraint condition in the model. The second layer of coding is an integer coding with a length L=n*m, the gene locus is an integer of [1b(i), ub(i)], representing a type of selection. For example, n=5, m=2, and the total number of staff is 5, then a legitimate chromosome can be expressed as [5,4,2,1,3;3,2,3,2,1 1,5,3,2,41, the first layer of coding is an accessing sequence of nodes, which is 5, 4, 2, 1 3, representing that task 5 is firstly arranged, then task 4, then task 2, and so on, the second layer of coding is coding to assign the staff mastering multiple development languages as required by the tasks, which coding reads 3, 2, 3, 2, 1 and 1, 5, 3, 2, 4, the first 3 represents assigning the third personnel that possesses development language skill 1 to provide development language skill 1 to task 1, the second 2 represents assigning the second personnel that possesses development language skill 2 to provide development language Date recue/date received 2022-05-02 skill 2 to task 1, the third 3 represents assigning the third personnel that possesses development language skill 1 to provide development language skill 1 to task 2, the fourth 2 represents assigning the second personnel that possesses development language skill 2 to provide development language skill 2 to task 2, and so on.
[0041] In actual application, each task requires plural development language skills, each development language skill is mastered by plural developing personnel, each developing personnel masters different development language skills and the development language skills as mastered are heterogenous in efficiencies, and these can be described by a three-layered framework of "activity (task)-skill-manpower", as shown in Fig. 5, in which GPRs represent general precedence relation constraint, Al to AJ represent J
number of activities or tasks, 1 to K indicate that the activities require K number of development language skills, namely the development language skills possessed by the developing personnel participating in the project, and the development language skills mastered by each developing personnel are different from those of others, and 1 to S
indicate that there are altogether S number of staff of the development language skill type.
[0042] Basic assumptions of the model are as follows: (1) the number of R&D
personnel each mastering plural development language skills remains unchanged throughout the entire period of the project. (2) The cost of the software project is the summation of wages of the R&D personnel participating in the project, while the wage of a staff is affected by the value of the development language skills mastered thereby, the higher the skill value is, the higher will be the wage. (3) Task preemption and time lag are not considered in the calculation of the progress of the software project. Suppose that the completion time of a precedence activity of an activity is precisely the start time of this activity, there is no time interval therebetween, conversion time and preparation time of the activities are not considered. (4) Each task shall not be interrupted halfway, that is, the R&D
personnel assigned to a task can be assigned to the next task only when the current task is ended. (5) Each staff can participate only in one task at the same timing, and cannot simultaneously Date recue/date received 2022-05-02 participate in plural tasks.
[0043] Td represents the time at which R&D personnel i employs development language skill j to participate in task d. Tain represents the shortest completion time in which development language skill j is employed in task d, development language skill j is the highest level of all development language skills j in the enterprise, indicating the time required to perform task d by an R&D personnel with the highest level in the enterprise, where 11<s, 1<d<m. Eii represents the level of R&D personnel i possessing development language skill j, where 1<i<n, 11<s, EijE[0,11, Eii=1 indicates that the level of development language skill j possessed by R&D personnel i is the highest level of the enterprise; Eii=0 indicates that R&D personnel i does not possess development language skill j. Efi indicates the level of development language skill j possessed by R&D
personnel i when the software project is started, Eisi is known, and can be judged by the project manager, the project technical director and related persons in charge according to such aspects as the knowledge and capabilities of the staff. Efid indicates the level of development language skill j possessed by R&D personnel i when task d is started. F1'a indicates the finish time of the task. STa indicates the start time of the task. FTpa indicates the finish time of the precedence activity. Td indicates the time limit of task d. Pa indicates a set of precedence tasks of task d. Ja indicates a set of the total number of development language skills required by task d. Rdi indicates whether task d requires development language skill j, if yes, R=1, if not R= O. where 11<s, 1<d<m. Ci indicates the salary of staff i within a certain time (such as month, week, day), which is the average wage of various development language skills mastered by R&D personnel i, where 1<i<n.
twi'dork indicates the work time of R&D personnel i spent on the dth task. xija is a 0-1 decision variable, where 1<i<n, 1<j<s, 1<d<m. If x=1, this indicates that R&D personnel i employs development language skill j to participate in task d, otherwise xiid=0. yot is a 0-1 auxiliary variable, where 1<i<n, 11<s, 1<d<m. If yot=1, this indicates that R&D
Date recue/date received 2022-05-02 personnel i employs development language skill j to participate in task d at time interval t, otherwise yot=0. This model takes the cost of the software project, the progress of the software project, and time equilibrium of the R&D personnel as objective functions, and optimizes the three at the same time.
[0044] The objective functions are as shown in the following formulae (1) to (3), in the software project, the main cost expenditure originates from the expenses of the R&D
personnel participating in the project, it can therefore be considered that the cost of the software project is the sum total of wages of the R&D personnel participating in the software project. The wage levels of the R&D personnel are affected by the values of the plural development language skills they master, and the values of the plural development language skills mastered by the R&D personnel can come from evaluations of a panel of experts consisting of the project manager, the R&D technical director and persons in charge. The higher the value of plural development language skills mastered by R&D
personnel is, the correspondingly higher will be his wage. The initial value defining the plural development language skills mastered by R&D personnel participating in the project is Eii, and the product of the initial value of a certain development language skill mastered by the R&D personnel with the average skill wage of the staff is the actual wage of the R&D personnel with plural development language skills for mastering this development language skill. The software project cost objective function formula is as shown in the following (1), indicating the minimalization of the software project cost.
[0045] min C¨Eri- 1 Esi=1 ET_ X iidTiiciCiE (1)
[0046] The completion time of each task in the software project is the maximum time of the skills employed by the R&D personnel in the task. The progress of the entire software project is the deadline of the last completed task in the software project, that is to say, the time of the task with the longest completion time in all tasks is the final completion time of the entire project. The higher the skill value of a staff is, the more skilled will be the skill of the staff, and then the shorter will be the time by which the staff completes the Date recue/date received 2022-05-02 task. The software project progress objective function formula is as shown in the following (2), indicating the minimalization of the software project progress.
[0047] min tt=L<,d7,VTd (2)
[0048] In the software project, the R&D personnel should be employed in balance, the circumstance should not occur in a task in which the work time of one R&D
personnel is unduly long while the work time of another R&D personnel is unduly short, the work times of the staff should be equalized, and the R&D personnel should be reasonably employed, as thus would more conform to practicality. The range of work times of the R&D personnel is defined in this paper, as shown in the following formula (3), which indicates minimization of the range of work times of the R&D personnel, and equilibrium of the work times of the R&D personnel in the project.
[0049] min Z = max tv,,`ork ¨ min tw' ork (3)
[0050] The constraint conditions in the model are set as shown in the following (4) to (16). Since Tir represents the shortest completion time of development language skill j while completing task d, namely the time required to be spent on task d by the R&D
personnel possessing the highest level of development language skill j in the enterprise, then the time spent by random R&D personnel i employing development language skill j to participate in task d is related to the level of this development language skill possessed by the R&D personnel. The higher the ratio of the development language skill value of the R&D personnel to the highest level in the enterprise is, the shorter will be the time for the R&D personnel to employ this skill to participate in the task, accordingly, the time for R&D personnel i to employ development language skill j to participate in task d is expressed as follows:
n in
[0051] Tiid = = (4)
[0052] The completion time of a task in the software project is decided by the longest completion Date recue/date received 2022-05-02 time by which R&D personnel i employs a certain development language skill in the task, that is to say, the longest completion time of all development language skills j in the set J
of development language skills required by task d decides the final completion time of a task, so the completion time of task d is as follows:
[0053] Td = liMTiidXiid) (5)
[0054] In the software project, the sequential constraint relations among the various tasks are as shown below, where (6) indicates that the completion time of task d is a sum of its start time and its actual time limit; (7) indicates that the start time of task d is the completion time of its precedence task, the interval of time is not considered between the tasks, and it is considered by default that the next task is immediately started as soon as the previous task is completed; (8) indicates the maximum completion time of precedence tasks of task d; and (9) indicates that, if a task does not have any precedence task, the completion time of any precedence task is zero.
FTd=STd+Td 1:1<j<m 1 (6) STd=FTpd (7) FT
[0055]
pd = clinEcl:t,xdtT d I (8) if Pd E 0, FTpd = 0 (9)
[0056] In the software project, each development language skill required by the tasks must be completed by one R&D personnel possessing this development language skill, there shall not occur such a circumstance in which one development language skill j in the set J of development language skills required by a certain task is completed by two or more staff possessing this development language skill j, moreover, each R&D personnel can only employ one development language skill to participate in one task, and there shall not occur such a circumstance in which one staff employs two development language skills at the same time in one task. One R&D personnel can only participate in one of the tasks at the same timing, in other words, the R&D personnel can only employ one development language skill to participate in one task in the project at the same timing, after this task has been completed, the R&D personnel is assigned anew to participate in subsequent Date recue/date received 2022-05-02 tasks. The following (10) indicates that each development language skill of each task is required to be completed by one and only one person; (11) indicates that each R&D
personnel can only employ one development language skill to participate in the same task;
(12) indicates that one R&D personnel can only participate in the same task at the same timing; and (13) indicates the total work time of R&D personnel i in the software project.
[0057] xiid=Rdi (10)
[0058] Esi,1 xiid (11) E
[0059]Er=1 (12) rdn¨lYijdt < 1 V t [0060 t i = ork Erdn-1 twi'd ] -w ork (13) [0061] If R&D personnel i employs development language skill j to participate in task d at time interval t, this indicates that R&D personnel i has employed the development language skill in task d, i.e., yijat=1, then xija is also 1, conversely, if yijat=0, then xija is also 0, where yot and xija are valuated both as 0 or 1, and the constraint setups are as shown in the following (14), (15) and (16).
1 Vt,3 v ijdt = 1 [0062] xija= 1<i<n,1<j<s,1<d<m 0 = (14) ijdt [0063] xija={0,11,1<i<n,1<j<s,1<d<m (15) [0064] y off {0,11,1<i<n,1<j<s,1<d<m (16) [0065] In this embodiment, employing the personnel data to perform initialization of individuals in the genetic algorithm in S102 specifically includes:
[0066] extracting parameters related to the initialization from the personnel data, wherein the parameters related to the initialization include: number m of tasks, number s of development language skills, a set Seta of development language skills required by task d, the shortest time Td]i1 for which the task d requires a development language skill j, a set Seti of staff mastering the development language skill j, chromosome personal =[]
and population size popsize;

Date recue/date received 2022-05-02 [0067] performing iteration according to the population size popsize, wherein task numbers are cycled from 1 to m, and development language numbers are cycled from 1 to s;
[0068] determining, when it is detected that TZin is greater than 0, that the task d requires the development language skill j, selecting a staff numbered i from the set Seti of staff mastering the development language skill j, and assigning a value of i to a gene locus of the current individual, wherein the gene locus of the current individual is expressed as ub[i], namely personal=ub[i]; and [0069] jumping to enter the next cycle if TZin is smaller than or equal to 0.
[0070] By way of an example, the process of generating initialized individuals mainly includes Step 1 to Step 5:
[0071] Step 1: firstly, the parameters related to the initialization specifically include number m of tasks, number s of development language skills, a set Seta of development language skills required by task d, the shortest time Min for which the task d requires a development language skill j, a set Seti of staff mastering the development language skill j, chromosome personal =[] and population size popsize.
[0072] Step 2: this is a step to determine iteration according to the population size popsize.
[0073] Step 3: task numbers are cycled from 1 to m, and development language numbers are cycled from 1 to s.
[0074] Step 4: it is checked whether task d requires development language skill j, when TZin is greater than 0, it is considered that task d requires development language skill j, a staff numbered i is selected from the set Set; of staff mastering development language skill j, the value of i is assigned to a gene locus personal=ub[i] of the current individual, if TZin Date recue/date received 2022-05-02 is smaller than or equal to 0, the process can jump to enter the next cycle.
[0075] Step 5: this mode continues until personnel are arranged for development language skills of all projects.
[0076] Specifically, the step of performing iteration according to the population size popsize includes:
[0077] forming a new population Qt after having performed a variation treatment on an initialized population Pt;
[0078] merging the population Pt with the population Qt to form a population Rt, performing non-dominated sorting, hierarchically forming grades F 1, F2, ..., F, according to domination numbers of individuals, and calculating a crowding degree of each individual with respect to F, of each grade;
[0079] sequentially adding F 1, F2, ..., F, in an ascending order to a next-generation population Pt q, until P,,i is fully filled with non-dominant grades;
[0080] forming a next-generation individual Qt+i after having performed a variation treatment on the population and [0081] repeating the above process, until a preset number of iterations of populations is reached.
[0082] In this embodiment, performing a variation treatment on the population specifically includes the following:
[0083] selection is so effected as to select excellent individuals from parents to enter the next-generation genetic manipulation. A selection operator compares the pros and cons of individuals through fitness degrees of the individuals, the smaller the fitness degree of an individual is, the less likely will it be selected, conversely, the bigger the fitness degree of an individual is, the more likely will it be selected. Common types of selection operators include tournament selection, roulette wheel selection, uniform sorting, and retention of the best selection, etc. Main steps of the tournament selection method are as follows: in the first step, suppose that the population size is n, and n individuals are Date recue/date received 2022-05-02 randomly generated to serve as the first generation; in the second step, k (k is smaller than n) individuals are randomly selected from the n individuals, the less k is valuated, the higher will be the efficiency, but the value should not be unduly small, and it is generally valuated as n/2 (rounding); in the third step, the biggest individual is selected from the k individuals to serve as one individual in the next-generation n individuals;
in the fourth step, the second step and the third step are repeated, until n new individuals are obtained.
The selection operator used in this paper is a binary tournament method, its basic principle is to make acceptance and rejection according to ordinal values and crowding distances, where ordinal values are different, individuals with smaller ordinal values are selected, where ordinal values are identical, individuals with greater crowding distances are selected, whereby evolution is enabled to progress towards the directions of nondominated solution and uniform dispersion.
[0084] Crossing is one of the core operators of the genetic algorithm.
Crossing generates offspring by simulating the genetic mode of the biology, and it acquires the new filial generation through copulation and recombination of chromosomes. Individuals of the new filial generation are precisely the feasible solutions to questions, so the algorithm is enabled through the crossing manipulation to perform iterative search in a feasible solution space of optimization problems to thereby make it possible to enhance the global searching capability of the algorithm. The crossing mode is classified as single-point crossover, two-point crossover, multipoint crossover, uniform crossover, fusing crossover, and complementary crossover. Two-point crossover is employed in this paper.
The manipulating steps of the crossover operator in the first layer of coding are as follows: 1) two chromosomes are randomly selected to serve as male parents; 2) two random natural numbers rl and r2 are generated; 3) gene segments between the two male parent chromosomes rl and r2 are exchanged to obtain two filial-generation chromosomes, and the two chromosomes as obtained are so modified that no conflict occurs therebetween.
For instance, the two male parent chromosomes as selected [1, 3, 2, 5, 41 [1, 2, 4, 5, 31, r1=2, T2=4, then the crossing process is as follows: [1, 3, 2, 5, 41 [1, 2, 4, 5, 31 before Date recue/date received 2022-05-02 crossing, [1, 2, 4, 5, 41 [1, 3, 2, 5, 31 after crossing, and [1, 2, 4, 5, 31 [1, 3, 2, 5, 41 after modification, the modifying method is to take a complementary set of crossed segments to be again randomly arranged to uncrossed segments after crossing. The manipulating steps of the crossover operator in the second layer of coding are as follows:
1) two chromosomes are randomly selected to serve as male parents; 2) two random natural numbers rl and r2 are generated; 3) gene segments between the two male parent chromosomes rl and r2 are exchanged to obtain two filial-generation chromosomes. For instance, the two male parent chromosomes as selected [1, 3, 3, 2, 1, 21 [2, 3, 1, 1, 2, 31, r1=2, r2=4, then [1, 3, 1, 1, 1, 21 [2, 3, 3, 2, 2, 31 after crossing.
[0085] Variation is a genetic manipulation in which some genic values in the individuals are replaced with other values to form new individuals, whereby local searching capability of the genetic algorithm can be effectively enhanced. There are many methods for individual variation, including basic bit variation, uniform variation, and non-uniform variation. Basic variation means a variation mode in which the values of some genes in the individuals are varied under a certain probability, and includes single-point variation, two-point variation, and multipoint variation. According to the coding characteristics, two-point reciprocal variation is designed for use in the first layer of coding in this paper, and the variation steps are as follows: 1) two random natural numbers rl and r2 are generated; 2) the rl-bit and r2-bit genes are exchanged. For instance, r1=2, then the chromosome is varied from [1, 3, 2, 5, 41 to [1, 5, 2, 3, 41. Single-point variation is designed for use in the second layer of coding, with the following steps: 1) a random natural number rl is generated, rl indicates that variation occurs to the rl-bit gene; 2) the rl-bit gene is varied by employing a random variation mode. For instance, r1=3, then the chromosome is varied from [1, 3, 3, 2, 1, 21 to [1, 3, 1, 2, 1 ,21.
[0086] A mode of fitness evaluation is further provided, including the following:
[0087] when multi-objective optimization problems are being solved, since the multiple optimization objectives are usually mutually contradictory, it becomes a key factor Date recue/date received 2022-05-02 deciding whether the evolution algorithm finally converges to the Pareto optimal solution by employing a proper selection mechanism, particularly how to employ a proper evaluation mode, to evaluate individual fitness. Generally speaking, a multi-objective evolution algorithm mainly employs three fitness evaluation policies, namely the combined function method, the method that is based on population but in which the Pareto dominance concept is not introduced, and the method that is based on population and in which the Pareto dominance concept is introduced. The fitness evaluation method of Elitist Non-dominated Sorting multi-objective Genetic Algorithm (NSGA-II) with retention policy used in the current embodiment employs the method that is based on population and in which the Pareto dominance concept is introduced, whereby paternal individuals of the next iteration are decided mainly through ordinal values and crowding degrees.
[0088] A constraint handling mode is further provided, including the following:
[0089] the difficulty with which the Elitist Non-dominated Sorting multi-objective Genetic Algorithm (NSGA-II) with retention policy solves constraint problems is that a feasible solution often becomes an infeasible solution after having undergone various genetic manipulations, and this runs contrary to its inherent constraint, so some policies are required to be used when NSGA-II is used to solve such problems. Generally speaking, a direct thought can be employed to consider the constraint condition, in other words, one detection can be executed after each iteration during the evolution process to see whether the new individuals violate the procedure of the constraint condition. If the procedure is not violated, the effective individuals are retained, otherwise the ineffective individuals are removed. This method can exert function with respect to weak constraint problems, but is infeasible with respect to strong constraint problems. Under the strong constraint condition, the difficulty with which to search for an effective individual will be greatly increased, this is so because there are many constraint conditions, and individuals are almost all converted to infeasible individuals after one round of evolution.
According to the characteristics of the three models created in this paper, a part of the constraint Date recue/date received 2022-05-02 conditions is realized through coding and coding rules, while the other part of the constraint conditions is realized mainly through a penalty function method.
[0090] While being realized through a computer program, the main process of the NSGA-II
algorithm in this embodiment can employ the mode as shown in the pseudo codes 2-3, including:
[0091]
Pseudo codes 2-3 NSGA-II
while condition:
Rt=PtuQt F=fast-non-dominated-sort(Rt) Pt+1=0 and i=1 utillPt+11+1F,IN
crowding-distance-assignment(F) Pt+1=PtAuF, i=i+1 Sort(FõO) Pt+1=Pt+i uF,[1:(N-IPt+11)]
Qt+i=make-new-pop(Pt+i) t=t+1 [0092] As can be seen from the pseudo codes 2-3, the main process of the Elitist Non-dominated Sorting multi-objective Genetic Algorithm (NSGA-II) with retention policy used in the current embodiment includes the following steps, as shown in Fig. 1:
[0093] forming a new population Qt after having performed selection, crossing and variation on an initialized population Pt;
[0094] merging the population Pt with the population Qt to form a population Rt, performing quick non-dominated sorting, hierarchically forming grades F1, F2, ..., F, according to Date recue/date received 2022-05-02 domination numbers of individuals, and calculating a crowding degree of each individual with respect to Fi of each grade;
[0095] sequentially adding the aforementioned Fi in an ascending order to a next-generation population Pt ¨ for instance, Fi is firstly placed in Pt q, if the size of Fi is smaller than N, i.e., Fi cannot be fully filled in Pt q, it is required to continue to perform quick non-dominated sorting on the remaining individuals in Fi to obtain the next non-dominant level F2, and to fill F2 in Pt q, when filling comes to F3, the population size exceeds N, it is required to compare the crowding degrees of the individuals in F3, i.e., Sort(F3,0), and N-113tql individuals in the front are selected, so that the number of individuals of the population Pt reaches N. If the first level of the non-dominant level can be fully filled in Pt q, it would not be required to continue to perform non-dominated sorting on the remaining individuals;
[0096] performing selection, crossing and variation manipulations on the population Pt to form a next-generation individual Qt q; and [0097] repeating the manipulations until the number of iterations of the populations is reached.
[0098] This embodiment employs the Elitist Non-dominated Sorting multi-objective Genetic Algorithm (NSGA-II) with retention policy to perform scheduling research on R&D
personnel mastering plural development languages in a software project, so that the cost and progress of the software project are optimized at the same time.
Specifically, the logical flow of the elitist retention policy is as shown in Fig. 2b, and analysis can be made by using a crowding degree comparison operator, including:
[0099] (1) setting a crowding degree 'distance of each individual of the same layer as 0;
[0100] (2) performing quick non-dominated sorting on the individuals of the same layer according to the mth objective function value;
[0101] (3) assigning values to the crowding degrees of two individuals at the boundary as infinite, i.e., Odistance¨Idistance¨a0;
[0102] (4) calculating the crowding degrees of other individuals according to the following formula:

Date recue/date received 2022-05-02 [ di 0103] i f,!n+1_ f,!n-- stance = Ern=i(fgax _ fir ) [0104] where 'distance indicates the crowding degree value at point I, frn(i+1) indicates the value of the Mth objective function at point I+1, frn(i-1) indicates the value of the Mth objective function at point I-1, and fmln and fmmin respectively indicate the maximum value and the minimum value of the Mth objective function in the set.
[0105] The process of calculating the crowding degrees includes the following:
after the quick non-dominated sorting manipulation and the crowding degree calculation, all individuals in the population possess the following two attributes: a non-dominant rank Lank obtained through quick non-dominated sorting and a crowding degree 'distance obtained through the crowding degree calculation. Pros and cons among the individuals are compared according to the two attributes and through the crowding degree comparison operator:
when two individuals I and J are compared, it can be considered that individual I is better than individual J as long as one of the following two conditions is satisfied:
[0106] a: if Irank<Jrank, i.e., individual I is better than individual J on the non-dominant layer, so individual I dominates individual J.
[0107] b: if Irank=Jrank and Ithstance>klistance, i.e., when they are at the same non-dominant layer, the crowding degree distance of individual I is greater than the crowding degree distance of individual J.
[0108] Once condition a is established, it can be guaranteed that the selected individual belongs to a better non-dominant layer in the population. If condition b is established, when the two individuals are in the same non-dominant layer, it is possible to select the individual located in a region distanced farther according to their crowding degree distances, so as to ensure diversity of the population. It is hence ensured as a whole that the better individual enters the next evolution cycle.
[0109] In this embodiment, employing the calculation result data to generate a scheduling result table in S104 specifically includes the following:

Date recue/date received 2022-05-02 [0110] if there is no task before the task d when the development language skill j participates in the task d, a start time of the development language skill j is the start time of the project;
if there is any task before the task d, the start time of the development language skill j is the latest completion time of all antecedent tasks before the task d;
[0111] calculating working duration of the development language skill j in the task d according to a skill value of the development language skill j; obtaining a development language skill use timetable of the staff according to the working duration of the development language skill j in the task d and an end time of the development language skill j, and calculating an accumulative use time of the staff; and calculating a time limit of the project according to accumulative use times of the entire staff.
[0112] The scheduling result table in this embodiment is mainly obtained through a double-layered coding algorithm process, including:
[0113] such variables are initialized as the preferential sequence of the tasks, the type of the development language skill required in the tasks and the shortest use time of the development language skill, the types of development language skills mastered by the staff and initial skill values of the development languages, and the average development language skill wage of the staff (these can specifically be realized by executing S101-S 102);
[0114] iteration is performed according to the number of the task, if the task does not have any precedence task (namely an antecedently completed task closely related to the current task), the start time of the task is 0, otherwise, if the task has precedence tasks, the start time of the task is the latest completion time of all precedence tasks;
[0115] while the tasks are being iterated according to numbers, the development language skill required by each task is determined, a staff with a corresponding development language skill is selected from a staff development language skill matrix, the number of the staff with the development language skill is determined and it is ensured that each staff can only employ one 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 Date recue/date received 2022-05-02 language skill required by the task;
[0116] if there is no task before the task d when the development language skill j participates in the task d, a start time of the development language skill j is the start time of the project;
if there is any task before the task d, the start time of the development language skill j is the latest completion time of all antecedent tasks; working duration of the development language skill j in the task d is calculated according to a skill value of the development language skill j, an end time of the development language skill j is calculated, a development language skill use timetable of the staff is constructed, an accumulative use time of the staff is calculated, a time limit and a cost of the project and an equilibrium value of work times of the staff are finally respectively calculated.
[0117] This embodiment further provides a project scheduling device for multi-languages collaborative development, and the device comprises:
[0118] a preprocessing module, for reading project data and personnel data, wherein the project data includes a set of tasks in a 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 development language skills mastered by each personnel and efficiency parameters of the mastered development language skills;
[0119] a processing module, for employing the project data to perform coding and initialization of a population in a genetic algorithm, and employing the personnel data to perform initialization of individuals in the genetic algorithm;
[0120] a calculating module, for running the genetic algorithm after completion of initialization, and obtaining calculation result data; and [0121] a sending module, for employing the calculation result data to generate a scheduling result table, and sending the scheduling result table to a staff terminal.
[0122] In this embodiment, the processing module is specifically employed for generating a first layer of coding, wherein the first layer of coding is a sequence of not repetitively arranged integers 1 to n, with a length being n, and the first layer of coding indicates a sequence of Date recue/date received 2022-05-02 preferential executions of the tasks, wherein number of tasks is n, and number of resources is m; and generating a second layer of coding, wherein the second layer of coding is an integer coding with a length L=n*m.
[0123] In this embodiment, the processing module is specifically employed for extracting parameters related to the initialization from the personnel data, wherein the parameters related to the initialization include: number m of tasks, number s of development language skills, a set Seta of development language skills required by task d, the shortest time Min for which the task d requires a development language skill j, a set Seti of staff mastering the development language skill j, chromosome personal =[] and population size popsize;
[0124] performing iteration according to the population size popsize, wherein task numbers are cycled from 1 to m, and development language numbers are cycled from 1 to s;
[0125] determining, when it is detected that TZin is greater than 0, that the task d requires the development language skill j, selecting a staff numbered i from the set Seti of staff mastering the development language skill j, and assigning a value of i to a gene locus of the current individual, wherein the gene locus of the current individual is expressed as ub[i], namely personal=ub[i]; and [0126] jumping to enter the next cycle if TZin is smaller than or equal to 0.
[0127] In this embodiment, the processing module is specifically employed for forming a new population Qt after having performed a variation treatment on an initialized population Pt;
[0128] merging the population Pt with the population Qt to form a population Rt, performing non-dominated sorting, hierarchically forming grades Fi, F2, ..., Fi according to domination numbers of individuals, and calculating a crowding degree of each individual with respect to Fi of each grade;
[0129] sequentially adding Fi, F2, ..., Fi in an ascending order to a next-generation population Pt q, until Pt is fully filled with non-dominant grades;
Date recue/date received 2022-05-02 [0130] forming a next-generation individual Qt+i after having performed a variation treatment on the population Pt q; and [0131] repeating the above process, until a preset number of iterations of populations is reached.
[0132] In this embodiment, the sending module is specifically employed for effecting that, if there is no task before the task d when the development language skill j participates in the task d, a start time of the development language skill j is the start time of the project;
and that, if there is any task before the task d, the start time of the development language skill j is the latest completion time of all antecedent tasks before the task d; and for [0133] calculating working duration of the development language skill j in the task d according to a skill value of the development language skill j; obtaining a development language skill use timetable of the staff according to the working duration of the development language skill j in the task d and an end time of the development language skill j, and calculating an accumulative use time of the staff; and calculating a time limit of the project according to accumulative use times of the entire staff.
[0134] The genetic algorithm (GA) is usually selected for use in the state of the art to optimize objective functions, but the GA can generally only solve the optimization of a single objective, and cannot solve the optimization of multiple objectives, in the optimization of multiple objectives, the frequently used Non-dominated Sorting Genetic Algorithm (NSGA) also has some unavoidable deficiencies, which are mainly manifested in high computational complexity, the lack of elitist retention policy and the requirement of the shared function method on the designation of parameter o-shaõ. The main reasons are as follows.
[0135] Of the currently available multi-objective optimization algorithms, the Non-dominated Sorting Genetic Algorithm (NSGA) is frequently used, its kernel techniques rest in ranking individuals in a population through the non-dominated sorting principle and in calculating the virtual crowding distance of each individual through the shared niche Date recue/date received 2022-05-02 principle. The NSGA performs multi-objective evaluation and selection on the population at the link of selecting the operator through the above two kernel techniques, so as to realize optimization of multiple objectives. Ranking of population individuals is to perform a non-inferior ranking operation on population P in accordance with a non-inferior ranking algorithm. The non-inferior ranking result is the division of population P
into p non-inferior groups Pj:
[0136] P =U1 1P. 1 (4.1) j=3-[0137] where p represents the total number of ranks. All individuals in Pi are in the optimal non-inferior group of population P, all individuals in P2 are in the second optimal non-inferior group of population P, and all individuals in Pp are in the most inferior group of the population. Because the individuals in Pi are closer than other individuals in population P to the authentic Pareto optimal domain, the highest fitness value is assigned to the individuals in Pi, and inferior fitness values are subsequently gradually assigned to the individuals in other groups. The assignment of fitness values starts from group Pi and sequentially progresses to group Pp. Fitness value F, assigned to anyone individual i in Pi is equal to N, where N represents the population size. The assignment of higher fitness values to the individuals in group Pi aims to ensure selection pressure towards the Pareto optimal domain. The NSGA ensures diversity of individuals in each group by employing the shared function method in Pi¨ Pp. A standard Euler distance du between any random two individuals i and j in Pi is calculated as follows:
(0 U) )2 [0138] dij = sn s L, =1 xylax _xyitn (4.2) [0139] where n indicates the number of decision variables. A shared function value is then calculated by means of (4.3) to indicate the closeness of the relation between two individuals, wherein share is a previously selected niche radius, du indicates the Euclidean distance between two individuals, and a indicates adjustment to Sh(d,j).

Date recue/date received 2022-05-02 1 jd [0140] Sh(dii) = "J-share) , if du< ashare (4.3) 0, other [0141] Let a=2, the shared function is valuated between 0 and 1 according to d,j, and the Sh(d,j) value of any individual whose distance to individual i is greater than a - share is 0. The number nc, of niches of individual i is then calculated by means of formula (2.21), where u(r1) indicates the number of all individuals whose levels are r1.
[0142] nci = (r') sh(c/ -) (4.4) j u [0143] where nc, indicates the number of adjacent individuals to the ith individual. If there is no any other individual within the range of an individual whose radius is a _share, the smallest niche number of this individual is 1. If all individuals of a group are very close to one another with respect to a _ share, the niche number of each individual of this group is extremely close to the total number of individuals of this group. Fitness value of individual i is finally lowered through the niche number and a shared fitness value is obtained, namely = Fi/nci.
[0144] The assignment of fitness values to all individuals in group Pi is completed above, and fitness values are subsequently assigned to all individuals in group Pz.
Attention should be first paid to the smallest shared fitness value of group Pi, as the fitness values assigned to all individuals in group P2 should be slightly smaller than the smallest shared fitness value of group Pi. Thusly it is guaranteed that the shared fitness value of any individual in group Pi is not inferior than the fitness value designated to any individual in group Pz;
a corresponding shared fitness value is thereafter calculated for the individuals of group P2 by means of the shared function method; finally, the processes are sequentially continued until all individuals are assigned with the shared fitness value.
[0145] After the NSGA has employed the non-dominated sorting principle and the shared niche technique to have determined the fitness degrees of the individuals, the genetic manipulation proceeded is kept consistent with the basic genetic algorithm.
The flowchart Date recue/date received 2022-05-02 of the NSGA algorithm is as shown in Fig. 3. The advantages of the NSGA lie in the assignment of fitness values according to the non-inferior ranks and the development towards the direction of the Pareto optimal domain in the form of groups, and the sharing in the parameter space to generate different solutions. The disadvantages thereof lie in high computational complexity of the non-dominated sorting, the lack of elitist retention policy and the requirement of the shared function method on the designation of parameter ashare -[0146] In this embodiment, the Elitist Non-dominated Sorting multi-objective Genetic Algorithm (NSGA-II) with retention policy makes improvement based on the NSGA, with respect to the problem of high computational complexity of the non-dominated sorting in the NSGA, the NSGA-II introduces quick non-dominated sorting, whereby the complexity of the algorithm is reduced; with respect to the circumstance in which the NSGA does not employ the elitist retention policy, the NSGA-II introduces the elitist retention policy into the algorithm, and further enlarges the sampling space;
with respect to the requirement on the designation of parameter a - share in the NSGA, the NSGA-II
employs the crowding degrees and the crowding degree comparison operator, thus enabling individuals in the quasi Pareto domain to be uniformly enlarged to the whole Pareto domain, and ensuring diversity of the population.
[0147] The basic conception of the NSGA-II used in this embodiment is as follows: as shown by the flowchart of NSGA-II in Fig. 4, an initial population Pt with a population size being N is firstly randomly generated, and its filial-generation population Qt is generated, the two populations are then merged to form a population Rt with a size being 2N.
Secondly, quick non-dominated sorting is performed on population Rt, crowding degrees of individuals in each non-dominant rank are calculated, proper individuals are selected according to the non-dominant relations and the magnitudes of crowding degrees of the individuals to form a new paternal population Pt q, and a new filial-generation population Qt +i is generated; finally, Pt +i and Qt +i are merged to form a new population Rt q, the Date recue/date received 2022-05-02 above manipulations are repeated, until the condition for ending the process is satisfied.
[0148] During actual application of this embodiment, each task in the software project should satisfy the constraints of the software developing personnel and their skills and the constraints of temporal sequences among the tasks; a software developing personnel is usually an expert in one skill and a knower of many, and this is specifically reflected in his mastering plural development languages. It is of important practical meaning as how to reasonably schedule the multiply skilled staff in a software project and to employ the elitist non-dominated sorting multi-objective genetic algorithm (NSGA-II) with elitist retention policy to complete the software project with lower cost and in shorter time.
[0149] Taking a specific case for example, there are altogether 10 tasks in a large-scale software development project P of a certain software development company S, the tasks are respectively D1, D2, ..., D10, in which 8 development language skills are required, the skills are respectively Si, S2..., S8, each task requires plural development language skills therefrom, the development language skills are proceeded in parallel, the development language skill initial values of the staff are evaluated and given by a panel of experts consisting of the technical director, persons in charge, and the project manager in the project, and there are altogether 40 R&D personnel capable of participating in the software project. The sequential relations among the tasks and the skills required by each task are as shown in Table 1. A network diagram of tasks in the project made according to Table 1 is as shown in Fig. 6, in which task S and task E are dummy activities.
Development language skills required by each task in the project and the shortest development times of the required development language skills are as shown in Table 2.
Development language skill average wages of the 40 staff are as shown in Table 3.
Development language skills mastered by each R&D personnel and skill initial level values are as shown in Table 4.
[0150] Table 1 - Sequential Relations of Tasks in the Project Date recue/date received 2022-05-02 Task Name Precedence Task(s) Required Skills D1 Sl, S2, S3, S5, S7 D2 51, S2, S3, S5, S7 D3 D2 S2, S5, S6, S7 D4 51, 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 [0151] Table 2- Shortest Time Requirements of Various Skills in the Tasks (unit: month) Skill 51 S2 S3 S4 S5 S6 S7 S8 Task [0152] Table 3 -Average Wages of Skills Mastered by Staff (Yuan/month) Date recue/date received 2022-05-02 Staff Staff Wages Number s [0153] Table 4 ¨ Staff Mastering Various Skills and Skill Values Skills Staff Skill Initial Values 51 (1,3,5,6,8,9,10,16,18,21,37) (0.55,0.65,0.5,1,0.5,0.6,0.55,0.65,0.6,0.4,0.5) S2 (1,2,4,5,6,7,8,9,11,13,16,20,21,25, (0.55,0.45,0.8,0.5,1.0,0.65,0.5,0.6,0.5,0.7,0.65,0.
S3 (3,6,25,26,28,32,34,36,39) ..
(0.65,1.0,0.55,1.0,0.8,0.65,0.65,0.55,0.6) S4 (14,15,16,17,18,19,20,23,24,25,40 (0.8,0.5,0.65,0.85,0.6,0.65,0.6,0.6,0.6,0.55,0.65) 55 (14,15,16,32,40) (0.8,0.5,0.65,0.65,0.65) S6 (13,15,16,17,19,25,26,33,40) (0.7,0.5,0.65,0.85,0.65,0.55,1.0,0.8,0.65) S7 (6,7,8,9,10,12,22,27,33) (1.0,0.65,0.5,0.6,0.55,0.55,0.5,0.8,0.8) S8 (4,29,30,31,33,35,36,38,39) ( 0.8, 0.6, 0.55, 0.6,0.8,0.55,0.55,0.85,0.6) [0154] Table 5 ¨ Cost and Progress of Software Project Software Project Cost .. Software Project Progress 967356.8 37.7 963365.5 37.7 943554.7 38.0 926132.3 38.2 935271.9 38.2 925907.4 38.4 Date recue/date received 2022-05-02 931907.4 38.4 918986.2 38.4 924986.2 38.4 955530.2 38.9 [0155] An iterative curve of the time limit obtained by Matlab run codes is as shown in Fig. 7, a cost iterative curve is as shown in Fig. 8, and the Pareto front is as shown in Fig. 9. Ten solutions are selected from the Pareto front in Fig. 9 and the cost and progress values of the ten solutions are listed out, as shown in Fig. 5. Fig. 6 shows a skilled staff scheduling scheme to which the ten solutions correspond. As can be seen, the R&D
personnel can employ the same development language to participate in the same task, and can also employ the same development language to participate in different tasks, whereby configuration flexibility of the R&D personnel is enhanced, the R&D personnel are fully employed, and both cost and progress are optimized.
[0156] The various embodiments are progressively described in the Description, identical and similar sections of the various embodiments can be inferred from one another, and each embodiment is emphatically described as what it differs from the other embodiments. In particular, as regards the device embodiment, since it is essentially similar to the method embodiment, it is described relatively simply, as relevant sections can be inferred from the corresponding sections of the method embodiment. What the above describes is merely directed to specific modes of execution of the present invention, but the protection scope of the present invention is not restricted thereby. Any change or substitution easily conceivable to persons skilled in the art within the technical range disclosed by the present invention shall all be covered by the protection scope of the present invention.
Accordingly, the protection scope of the present invention shall be based on the protection scope as claimed in the attached Claims.

Date recue/date received 2022-05-02

Claims (48)

Claims:
1. A project scheduling apparatus for multi-language collaborative development, the apparatus comprising:
a preprocessing module configured to read project data and personnel data, wherein the project data includes a set of tasks in a project and a set of software development language skills required by the project, each task corresponds to at least one software development language skill, and the personnel data includes software development language skills mastered by each personnel and efficiency parameters of the mastered software development language skills;
a processing module configured to employ the project data to perform programming and population initialization in a genetic algorithm, and employ the personnel data to perform initialization of individuals in the genetic algorithm, wherein steps of performing programming include:
generating a first layer of coding, wherein the first layer of coding is a non-repetitive sequence of integers 1 to n, with a length being n, and the first layer of coding indicates a sequence of preferential executions of the tasks, wherein number of tasks is n, and number of resources is m; and generating a second layer of coding for assigning staff mastering multiple software development languages as required by the tasks, wherein the second layer of coding is an integer coding with a length L=n*m;
wherein the processing module further configured to extract parameters related to an initialization from the personnel data;
a calculating module configured to run the genetic algorithm after completion of the initialization of individual, and obtain calculation result data; and a sending module configured to employ the calculation result data to generate a scheduling result table, and send the scheduling result table to a staff terminal.

Date re cue/Date rece ived 2024-01-10
2. The apparatus of claim 1, wherein the parameters related to the initialization include number m of tasks.
3. The apparatus of any one of claims 1 to 2, wherein the parameters related to the initialization include number s of software development language skills.
4. The apparatus of any one of claims 1 to 3, wherein the parameters related to the initialization include a set Setd of software development language skills required by task d.
5. The apparatus of any one of claims 1 to 4, wherein the parameters related to the initialization include the shortest time Min for which the task d requires a software development language skill j.
6. The apparatus of any one of claims 1 to 5, wherein the parameters related to the initialization include a set Set, of staff mastering the software development language skill j.
7. The apparatus of any one of claims 1 to 6, wherein the parameters related to the initialization include chromosome personal =H.
8. The apparatus of any one of claims 1 to 7, wherein the parameters related to the initialization include population size popsize.
9. The apparatus of any one of claims 1 to 8, wherein the processing module is further configured to perform iteration according to the population size popsize, wherein task numbers are cycled from 1 to m, and development language numbers are cycled from 1 to s.
10. The apparatus of any one of claims 1 to 9, wherein the processing module is further configured to determine, when it is detected that Min is greater than 0, that the task d requires the software development language skill j, select a staff numbered i from the set Set, of staff mastering the software development language skill j.
11. The apparatus of any one of claims 1 to 10, wherein the processing module is further configured to assign a value of i to a gene locus of the current individual, wherein the gene locus of the current individual is expressed as ub[i], namely personal=ub[i].
Date re gue/Date rece ived 2024-01-10
12. The apparatus of any one of claims 1 to 11, wherein the processing module is further configured to jump to enter a next cycle if TV is smaller than or equal to 0.
13. The apparatus of any one of claims 1 to 12, wherein the processing module is further configured to form a new population Qt after having performed a variation treatment on an initialized population Pt.
14. The apparatus of any one of claims 1 to 13, wherein the processing module is further configured to merge the population Pt with the population Qt to form a population Rt.
15. The apparatus of any one of claims 1 to 14, wherein the processing module is further configured to perform non-dominated sorting for a population Rt, hierarchically forming grades F1, F2, F, according to domination numbers of individuals, and calculate a crowding degree of each individual with respect to F, of each grade.
16. The apparatus of any one of claims 1 to 15, wherein the processing module is further configured to sequentially add F1, F2, ..., F, in an ascending order to a next-generation population Pt+1, until Pt+1 is fully filled with non-dominant grades.
17. The apparatus of any one of claims 1 to 16, wherein the processing module is further configured to form a next-generation individual Qt+, after having performed a variation treatment on the population Pt+1.
18. The apparatus of any one of claims 1 to 17, wherein the processing module is further configured to repeat an iteration process, until a preset number of iterations of populations is reached.
19. The apparatus of any one of claims 1 to 18, wherein the sending module is further configured to, where if there is no task before the task d when the software development language skill j participates in the task d, set a start time of the software development language skill j is the start time of the project.
20. The apparatus of any one of claims 1 to 18, wherein the sending module is further configured to, where if there is any task before the task d, set the start time of the software development language skill j is the latest completion time of all antecedent tasks before the task d.

Date re gue/Date rece ived 2024-01-10
21. Tbe apparatus of any one of claims 1 to 20, wherein the sending module is further configured to calculate working duration of the software development language skill j in the task d according to a skill value of the software development language skill j.
22. The apparatus of any one of claims 1 to 21, wherein the sending module is further configured to obtain a software development language skill use timetable of the staff according to the working duration of the software development language skill j in the task d and an end time of the software development language skill j.
23. The apparatus of any one of claims 1 to 22, wherein the sending module is further configured to calculate an accumulative use time of the staff.
24. The apparatus of any one of claims 1 to 23, wherein the sending module is further configured to calculate a time limit of the project according to accumulative use times of entire staff.
25. A project scheduling method for multi-language collaborative development, wherein the method includes:
reading project data and personnel data, wherein the project data includes a set of tasks in a project and a set of software development language skills required by the project, each task corresponds to at least one software development language skill, and the personnel data includes software development language skills mastered by each personnel and efficiency parameters of the mastered software development language skills;
employing the project data to perfonn programming and population initialization in a genetic algorithm, and employing the personnel data to perform initialization of individuals in the genetic algorithm wherein steps of perfolining programming include:
generating a first layer of coding, wherein the first layer of coding is a non-repetitive sequence of integers 1 to n, with a length being n, and the first layer of coding indicates a sequence of preferential executions of the tasks, wherein number of tasks is n, and number of resources is m; and generating a second layer of coding for assigning staff mastering multiple Date recue/Date received 2024-01-10 software development languages as required by the tasks, wherein the second layer of coding is an integer coding with a length L---n*m;
extracting parameters related to an initialization from the personnel data;
running the genetic algorithm after completion of the initialization of individual, and obtaining calculation result data; and employing the calculation result data to generate a scheduling result table, and sending the scheduling result table to a staff terminal.
26. The method of claim 25, wherein the parameters related to the initialization include number m of tasks.
27. The method of any one of claims 25 to 26, wherein the parameters related to the initialization include number s of software development language skills.
28. The method of any one of claims 25 to 27, wherein the parameters related to the initialization include a set Seta of software development language skills required by task d.
29. The method of any one of claims 25 to 28, wherein the parameters related to the initialization include the shortest time T dmiin for which the task d requires a software development language skill j.
30. The method of any one of claims 25 to 29, wherein the parameters related to the initialization include a set Set) of staff mastering the software development language skill j.
31. The method of any one of claims 25 to 30, wherein the parameters related to the initialization include chromosome personal 1].
32. The method of any one of claims 25 to 31, wherein the parameters related to the initialization include population size popsize.

Date re gue/Date rece ived 2024-01-10
33. The method of any one of claims 25 to 32, wherein the method further includes performing iteration according to the population size popsize, wherein task numbers are cycled from 1 to m, and development language numbers are cycled from 1 to s.
34. The method of any one of claims 25 to 33, wherein the method further includes determining, when it is detected that TV' is greater than 0, that the task d requires the software development language skill j, selecting a staff numbered i from the set Sett of staff mastering the software development language skill j.
35. The method of any one of claims 25 to 34, wherein the method further includes assigning a value of i to a gene locus of the current individual, wherein the gene locus of the current individual is expressed as ub[i], namely personal=ub[i].
36. The method of any one of claims 25 to 35, wherein the method further includes jumping to enter a next cycle if TV' is smaller than or equal to 0.
37. The method of any one of claims 25 to 36, wherein the method further includes forming a new population Qt after having performed a variation treatment on an initialized population Pt.
38. The method of any one of claims 25 to 37, wherein the method further includes merging the population Pt with the population Qt to form a population R.
39. The method of any one of claims 25 to 38, wherein the method further includes performing non-dominated sorting for a population Rt, hierarchically forming grades F1, F2, ..., Ft according to domination numbers of individuals, and calculating a crowding degree of each individual with respect to Ft of each grade.
40. The method of any one of claims 25 to 39, wherein the method further includes sequentially adding F
F2, ..., F, in an ascending order to a next-generation population Putt, until Pt+1 is fully filled with non-dominant grades.
41. The method of any one of claims 25 to 40, wherein the method further includes forming a next-generation individual Qt+i after having performed a variation treatment on the population Pt+1.

Date re gue/Date rece ived 2024-01-10
42. The method of any one of claims 25 to 41, wherein the method further includes repeating an iteration process, until a preset number of iterations of populations is reached.
43. The method of any one of claims 25 to 42, wherein the method further includes, where if there is no task before the task d when the software development language skill j participates in the task d, a start time of the software development language skill j is the start time of the project.
44. The method of any one of claims 25 to 42, wherein the method further includes if there is any task before the task d, the start time of the software development language skill j is the latest completion time of all antecedent tasks before the task d.
45. The method of any one of claims 25 to 44, wherein the method further includes calculating working duration of the software development language skill j in the task d according to a skill value of the software development language skill j.
46. The method of any one of claims 25 to 45, wherein the method further includes obtaining a software development language skill use timetable of the staff according to the working duration of the software development language skill j in the task d and an end time of the software development language skill J.
47. The method of any one of claims 25 to 46, wherein the method further includes calculating an accumulative use time of the staff.
48. The method of any one of claims 25 to 47, wherein the method further includes calculating a time limit of the project according to accumulative use times of entire staff.
Date re gue/Date rece ived 2024-01-10
CA3162759A 2019-11-07 2020-07-30 Project scheduling method and apparatus for multi-language collaborative development Active CA3162759C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201911081485.0A CN111047272B (en) 2019-11-07 2019-11-07 Project scheduling method and device for multi-language collaborative development
CN201911081485.0 2019-11-07
PCT/CN2020/105932 WO2021088436A1 (en) 2019-11-07 2020-07-30 Project scheduling method and apparatus for multi-language collaborative development

Publications (2)

Publication Number Publication Date
CA3162759A1 CA3162759A1 (en) 2021-05-14
CA3162759C true CA3162759C (en) 2024-04-23

Family

ID=70232015

Family Applications (1)

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

Country Status (3)

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

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047272B (en) * 2019-11-07 2023-04-07 苏宁云计算有限公司 Project scheduling method and device for multi-language collaborative development
CN111553610B (en) * 2020-05-07 2023-04-07 苏宁云计算有限公司 Scheduling method and system based on learning-forgetting effect
CN113094095B (en) * 2021-03-26 2024-03-22 海信集团控股股份有限公司 Agile development progress determining method and device
CN113626015B (en) * 2021-08-24 2024-04-26 贵州电子科技职业学院 High-performance operation optimization method suitable for I language
CN113838526B (en) * 2021-09-16 2023-08-25 赛业(广州)生物科技有限公司 Virus mutant generation method, system, computer equipment and medium
CN115660318A (en) * 2022-09-30 2023-01-31 南京航空航天大学 Man-machine cooperation task allocation method for Internet of things manufacturing workshop
CN116882293A (en) * 2023-07-18 2023-10-13 广东明阳电气股份有限公司 Multi-objective optimization method and device for transformer and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035816B (en) * 2014-05-22 2017-03-22 南京信息工程大学 Cloud computing task scheduling method based on improved NSGA-II
WO2019035097A1 (en) * 2017-08-18 2019-02-21 The Regents Of The University Of Michigan Centralized framework for small batch manufacturing
CN109636205A (en) * 2018-12-18 2019-04-16 合肥师范学院 More skill's dispatching methods in a kind of research & development portfolio
CN111047272B (en) * 2019-11-07 2023-04-07 苏宁云计算有限公司 Project scheduling method and device for multi-language collaborative development

Also Published As

Publication number Publication date
CN111047272A (en) 2020-04-21
WO2021088436A1 (en) 2021-05-14
CN111047272B (en) 2023-04-07
CA3162759A1 (en) 2021-05-14

Similar Documents

Publication Publication Date Title
CA3162759C (en) Project scheduling method and apparatus for multi-language collaborative development
Shen et al. Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems
Mutlu et al. An iterative genetic algorithm for the assembly line worker assignment and balancing problem of type-II
CN109636205A (en) More skill&#39;s dispatching methods in a kind of research &amp; development portfolio
CN113705866B (en) Scheduling optimization method and system based on resource-constrained project scheduling problem model
Pongchairerks A Two‐Level Metaheuristic Algorithm for the Job‐Shop Scheduling Problem
CN113139710B (en) Multi-resource parallel task advanced plan scheduling method based on genetic algorithm
CN104077634B (en) active-reactive type dynamic project scheduling method based on multi-objective optimization
CN111782637A (en) Model construction method, device and equipment
Sajadi et al. A new fuzzy multi-objective multi-mode resource-constrained project scheduling model
Ezeldin et al. Hybrid time-cost optimization of nonserial repetitive construction projects
CN112465451A (en) Optimization method for project parallel and multi-resource supporting scheme
Brix et al. The fourth international verification of neural networks competition (VNN-COMP 2023): Summary and results
Kong et al. RCPSP with combined precedence relations and resource calendars
CN111553610B (en) Scheduling method and system based on learning-forgetting effect
Kaur et al. Multi objective optimization model using preemptive goal programming for software component selection
Eswari et al. Modified multi-objective firefly algorithm for task scheduling problem on heterogeneous systems
CN113220437B (en) Workflow multi-target scheduling method and device
CN109409642A (en) A kind of teaching resource ranking method based on big data
CN114154847A (en) Method and device for determining engineering construction scheme, client and storage medium
Wang et al. Interactive inconsistency fixing in feature modeling
Naves et al. Maximization of the resource production in RTS games through stochastic search and planning
CN110689320A (en) Large-scale multi-target project scheduling method based on co-evolution algorithm
CN107563555A (en) Dynamic multi-objective Scheduling method based on Q study memetic algorithms
CN104008444A (en) Model and method applied to team construction under multi-constraint projects

Legal Events

Date Code Title Description
EEER Examination request

Effective date: 20220916

EEER Examination request

Effective date: 20220916

EEER Examination request

Effective date: 20220916

EEER Examination request

Effective date: 20220916

EEER Examination request

Effective date: 20220916

EEER Examination request

Effective date: 20220916

EEER Examination request

Effective date: 20220916

EEER Examination request

Effective date: 20220916

EEER Examination request

Effective date: 20220916