CN111078381A - Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm - Google Patents

Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm Download PDF

Info

Publication number
CN111078381A
CN111078381A CN201911261543.8A CN201911261543A CN111078381A CN 111078381 A CN111078381 A CN 111078381A CN 201911261543 A CN201911261543 A CN 201911261543A CN 111078381 A CN111078381 A CN 111078381A
Authority
CN
China
Prior art keywords
task
virtual machine
individual
time
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.)
Withdrawn
Application number
CN201911261543.8A
Other languages
Chinese (zh)
Inventor
谢毅
林荣雪
张滟
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.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
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 Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201911261543.8A priority Critical patent/CN111078381A/en
Publication of CN111078381A publication Critical patent/CN111078381A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The invention discloses a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm, which comprises the following steps of: acquiring scheduling information; calculating a task level value; initializing a current generation population based on the hierarchy and the number of subtasks; evolution is carried out: improving the current generation population and calculating a fitness value by adopting FBI & D and LDI methods, carrying out parameterization uniform cross operation based on preference and two-dimensional topological sorting to form a new population, carrying out mutation operation on the new population, improving the new population and calculating the fitness value by adopting the FBI & D and LDI methods, and selecting N different individuals from the current generation population and the new population to form a new current generation population until an evolution termination condition is met; and outputting the scheduling optimization scheme. The two-dimensional integer coding method adopted by the invention can reduce the coding space of the algorithm and improve the efficiency and quality of solving.

Description

Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm
Technical Field
The invention relates to the field of computer technology, information technology and system engineering, in particular to a cloud workflow scheduling optimization method, and more particularly relates to a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm.
Background
The workflow under the cloud computing environment, called the cloud workflow for short, is the integration of cloud computing and related technologies of the workflow, and has wide application prospects in the fields of cross-organization business collaboration, scientific computing and the like which need high-efficiency computing performance and large-scale storage support. In the cloud workflow, timing constraints exist among tasks, and the tasks are generally received and processed by taking a virtual machine as a minimum allocation unit of computing resources during execution. The cloud workflow scheduling refers to how to allocate tasks in the cloud workflow to appropriate virtual machines and how to arrange execution sequences of the tasks allocated to the virtual machines under the condition that the task timing and user requirement constraints are met, namely, the problem in two aspects is solved: task allocation and task execution order. The cloud workflow scheduling directly determines the performance of the whole cloud workflow system, and becomes an important research content of the cloud workflow system.
The current cloud workflow scheduling optimization method can be divided into three categories:
1) the heuristic method means that the distribution and execution sequence of the workflow tasks are generated by the heuristic method, such as: hetereogenous early stage Finish Time (HEFT), Critical Path On a Processors (CPOP), Leveled Min Time (LMT), Dynamic Level Scheduling (DLS), Dynamic Critical Path (DCP), and Localized Dynamic Critical Path (LDCP);
2) the intelligent computing method is characterized in that the distribution and execution sequence of the workflow tasks are searched and generated by the intelligent computing method; such as: genetic algorithm GA, particle swarm optimization PSO, simulated annealing SA and other methods;
3) the semi-intelligent calculation method combined with the heuristic method is that the workflow task allocation is generated by searching through an intelligent calculation method, the task execution sequence is generated by searching through the intelligent calculation method according to a task allocation scheme generated by searching through the intelligent calculation method by adopting a heuristic method based on priority, or the workflow task execution sequence is generated by searching through the intelligent calculation method, and the task allocation is generated by searching through the task execution sequence generated by searching through the intelligent calculation method through a heuristic method based on the earliest completion time.
However, the existing cloud workflow scheduling optimization methods have the following disadvantages:
1) heuristic methods can obtain a scheduling optimization in a short time, but their quality is usually not very high and depends on the type of workflow;
2) the algorithm efficiency of the intelligent calculation method depends on the design of coding and decoding, evolution iteration strategies, selection of control parameters and the like, wherein a solution space, namely a scheduling scheme, searched by combining a heuristic semi-intelligent calculation method is incomplete, so that the possibility that the optimal scheduling scheme cannot be searched theoretically exists, and meanwhile, the time efficiency is not very high because the heuristic method is required to be continuously called in the algorithm; the intelligent calculation method can theoretically realize global search, but the adoption of global search can reduce the search efficiency;
therefore, with the increase of the complexity of the cloud workflow and the application requirements thereof, it is urgently needed to design a more efficient method to solve the problem of cloud workflow scheduling optimization.
Disclosure of Invention
In order to overcome the defects that the quality of a heuristic method solution is usually not very high and depends on the type of a workflow, the imperfection of a heuristic semi-intelligent computing method and an intelligent computing method coding search space based on layered coding are combined, a large number of redundant coding search spaces exist due to the fact that a large number of many-to-one relations exist between individuals and a scheduling scheme, the search efficiency is reduced due to the adoption of global search, and the like in the intelligent computing method based on one-dimensional coding, the cloud workflow scheduling optimization method based on the two-dimensional coding genetic algorithm is provided, and the efficiency and the quality of solving are effectively improved.
The technical scheme adopted by the invention for solving the technical problems is as follows: a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm comprises the following steps:
step 1: formalizing a scheduling problem, and acquiring information required by scheduling optimization;
get task set T ═ T1,t2,...,tIWhere I is the number of tasks, tiRepresenting a task i, namely a task with the number i;
acquiring a time sequence relation between tasks: parent task set PR of task iiTask ofi subtask set SCiWherein I is 1,2 …, I;
Figure BDA0002311730830000021
acquiring task related parameters: length t of task iiLength, i.e. the number of instructions that need to be consumed by a virtual machine when task i is processed, list t of input files that need to be processed when task i is processediIFL, output File List t generated after task i is processedi-OFL, and the size of the file in the file list, I ═ 1,2 …, I; task i is task i+The requirements of the parent task of (2) are: there is a file that is the output file of task i and is also task i+The input file of (a), namely:
Figure BDA0002311730830000022
obtaining a virtual machine set VM ═ VM in a cloud computing environment1,vm2,…,vmJWhere J is the number of virtual machines, vmjRepresents virtual machine j, i.e., the virtual machine numbered j;
acquiring related parameters of the virtual machine: computing power vm of virtual machine jjPs, bandwidth vm of virtual machine jjBw, wherein J ═ 1,2 …, J;
acquiring a support relationship between the task and the virtual machine: task set T that virtual machine j can handlejWherein J is 1,2 …, J; virtual machine set VM capable of processing task iiWherein I is 1,2 …, I;
step 2: calculating the level value level of the task;
for a starting task i without a parent task, the hierarchy value is:
leveli=1 (1)
the hierarchy values of other tasks are calculated using the following recursive formula:
Figure BDA0002311730830000031
and step 3: initializing a contemporary population;
initializing a current generation population, wherein the current generation population comprises 1 individual generated by an individual generation method based on HEFT-baseline and the remaining N-1 different individuals generated by an individual random generation method based on a hierarchy, and N is the population scale;
the individuals adopt two-dimensional integer coding, and the method comprises the following steps:
Figure BDA0002311730830000032
wherein g isj,iIndicating the number assigned to virtual machine j and in virtual machine j the ith scheduled task, e.g. g3,25 indicates that task 5 is assigned to virtual machine 3 and is scheduled 2 nd among all tasks assigned to virtual machine 3;
Figure BDA0002311730830000033
is a sequence of task numbers assigned to virtual machine j and satisfies a task timing constraint, IjRepresenting the number of tasks assigned to virtual machine j;
the individual generating method based on HEFT-baseline comprises the following steps:
step A1: make virtual machine available a time period list vatlj={[0,M]}, variable kj1, J-1, 2, …, J, where M is a near infinite number; enabling a task set UT to be processed to be T; let ready times rt of all tasksi=0,i=1,…,I;
Step A2: finding out the task with the minimum level value in the UT, taking out the task with the maximum number of subtasks from the task, and if the task with the maximum number of subtasks is more than one, randomly taking one of the tasks without setting t as ti
Step A3: make available virtual machine set AVMi=VMiCalculating tiAre respectively allocated to AVMiT after each virtual machine in (1)iCompletion time of (d):
step A3.1: slave AVMiGet one virtual machine out of it, set to vmj
Step A3.2: calculating tiTo vmjExecution time after processing
Figure BDA0002311730830000034
Step A3.3: in vatljFinding out an idle time period [ v ] from morning to eveningjj]Satisfy upsilonjj≥eti,jAnd upsilonj-eti,j≥rti
Step A3.4: calculating tiTo vmjStart time after treatment si,j=max{νj,rtiH, completion time fi,j=si,j+eti,j
Step A3.5: if AVMiIf not, go to step A3.1, otherwise go to step A4;
step A4: finding earliest achievable t in virtual machine orderiVirtual machine of (2) is not set to vmj(ii) a Order to
Figure BDA0002311730830000041
Handle tiTo vmj
Step A4.1: let tiStart time s ofi=si,j,tiCompletion time fi=fi,j
Step A4.2: updating tiReady time of subtask of (2)
Figure BDA0002311730830000042
Step A4.3: list of time slots available in virtual machine, vatljDeletion of [ v ]jj]V, with insertion interval length greater than 0j,si]And [ fij];
Step A5: if UT is not empty, go to step A2, otherwise go to step A6;
step A6: outputting an individual based on HEFT-baseline
Figure BDA0002311730830000043
Finishing the operation;
wherein:
ωi,j: is vmjTreatment tiThe time of (a) is,
Figure BDA0002311730830000044
Figure BDA0002311730830000045
is a handle tiTo vmjThe processing needs to obtain the file transfer time of the input file from other virtual machines,
Figure BDA0002311730830000046
Figure BDA0002311730830000047
is to treat
Figure BDA0002311730830000048
The virtual machine of (1);
τi,j: is a handle tiTo vmjThe process requires obtaining the file transfer time of the input file from the shared database,
Figure BDA0002311730830000049
the individual random generation method based on the hierarchy comprises the following steps:
step B1: let UT be T, let k be variablej=1,j=1,2,…,J;
Step B2: randomly fetch a task with the minimum hierarchy value from UT, and set t as ti
Step B3: slave VMiRandomly selecting one virtual machine in the virtual network, and setting the virtual machine not to be vmj
Step B4: order to
Figure BDA00023117308300000410
kj=kj+1;
Step B5: if UT is not empty, go to step B2; otherwise go to step B6;
step B6: outputting an individual
Figure BDA0002311730830000051
Finishing the operation;
and 4, step 4: improving all individuals in the contemporary population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
the fitness value is workflow response time rs, and the calculation method is as follows:
Figure BDA0002311730830000052
wherein: rf (radio frequency)iIs the response time of the task i,
Figure BDA0002311730830000053
SFLiis the set of output files that task i outputs to the shared database, i.e.
Figure BDA0002311730830000054
j is the virtual machine number of processing task i, i.e. satisfies
Figure BDA0002311730830000055
J of (1);
the smaller the individual fitness value is, the better the individual is;
the FBI & D method comprises the steps of:
step C1: make reverse workflow response time
Figure BDA0002311730830000056
Wherein M is a number approaching infinity;
step C2: decoding the individual ch by adopting a serial individual decoding method based on an insertion mode to obtain the completion time f of all tasks1,…,fIAnd its workflow response time rs; if rs is less than
Figure BDA0002311730830000057
Go to step C3, otherwise, go to step C6;
step C3: corresponding gene sequence of each virtual machine j in individual ch
Figure BDA0002311730830000058
Rearranging according to the task completion time from large to small, J is 1, …, J, forming reverse individuals
Figure BDA0002311730830000059
Step C4: to pair
Figure BDA00023117308300000510
Decoding by adopting a serial reverse individual decoding method based on an insertion mode to obtain reverse completion time of all tasks
Figure BDA00023117308300000511
And its reverse workflow response time
Figure BDA00023117308300000512
If it is
Figure BDA00023117308300000513
If the value is less than rs, go to step C5, otherwise, go to step C6;
step C5: make the opposite direction single body
Figure BDA00023117308300000514
The gene sequence corresponding to each virtual machine j in the database
Figure BDA00023117308300000515
Rearranging according to the reverse completion time of the task from large to small, wherein J is 1, …, J, forming an individual ch, and turning to the step C2;
step C6: outputting the individual ch and the fitness value thereof, namely the workflow response time rs, and finishing the operation;
the LDI method comprises the following steps:
step D1: ordering task lists assigned to virtual machines
Figure BDA00023117308300000516
Calculating each virtual machine load
Figure BDA00023117308300000517
Step D2: finding out a virtual machine j' with the minimum load; if ld isj′>0, go to step D3, otherwise go to step D4;
step D3: order task set
Figure BDA00023117308300000518
Go to step D5;
step D4: order task set STj′=Tj′Go to step D5;
step D5: if STj′If not, from STj′Sequentially fetching a task i 'with the highest load of the virtual machine j' to go to step D6; otherwise go to step D7;
step D6: in that
Figure BDA0002311730830000061
Searching the last ancestor task number and the first descendant task number of the task i 'from front to back, and if both the ancestor task number and the first descendant task number are found, randomly searching a position between the last ancestor task number and the first descendant task number to insert the task i'; if the descendant task number does not exist and the ancestor task number exists, randomly finding a position behind the last ancestor task number to insert i'; if the descendant task number exists and the ancestor task number does not exist, randomly finding a position before the first descendant task number and inserting i'; if the descendant task number and the ancestor task number do not exist, randomly finding a position to insert i'; in that
Figure BDA0002311730830000062
Deleting i' to form new individual, using FBI&D, the method carries out decoding improvement on the new individual, if the new individual is improved, the improved individual is used for replacing the original individual, and the step D7 is carried out; otherwise go to step D5;
step D7: the LDI operation is finished;
the definition of the descendant task and the ancestor task is described as follows: if there is a task sequence
Figure BDA0002311730830000063
Satisfy the requirement of
Figure BDA0002311730830000064
Is that
Figure BDA0002311730830000065
Where 1 is not more than k<n is then
Figure BDA0002311730830000066
Is that
Figure BDA0002311730830000067
The task of the ancestor of (c),
Figure BDA0002311730830000068
is that
Figure BDA0002311730830000069
The descendant task of (2);
and 5: judging whether a termination condition is met, if so, turning to a step 10 after the evolution is finished, otherwise, turning to a step 6;
the termination condition is that the optimal individual is not improved after iteration to a designated generation TG or continuous iteration GG generation;
step 6: carrying out N times of parameterized uniform cross operations based on preference and two-dimensional topological sorting on the contemporary population to form a new population;
the parameterized uniform crossover operation based on preference and two-dimensional topological ordering comprises the following steps:
step E1: randomly selecting two different individuals from the contemporary population as parents by adopting a ranking-based round-robin method, and setting the individuals as parents
Figure BDA00023117308300000610
And chp1Has a fitness value of ch or lessp2Wherein: task number list
Figure BDA00023117308300000611
Task number list
Figure BDA00023117308300000612
J is 1, …, J, order the task number list
Figure BDA00023117308300000613
Making a cycle control variable delta equal to 1;
step E2: if δ ≦ I, go to step E3, otherwise go to step E6;
step E3: generating a random number λ ∈ [0,1) if λ<pbGo to step E4, otherwise go to step E5;
step E4: from chp1Randomly selecting one task which is not empty and is numbered as the first element of the task, wherein the parent task does not exist in the task or the parent task is scheduled
Figure BDA0002311730830000071
From
Figure BDA0002311730830000072
Take out the first element i' and add it to
Figure BDA0002311730830000073
And from chp2If i', δ is δ +1, go to step E2;
step E5: from chp2Randomly selecting one task which is not empty and is numbered as the first element of the task, wherein the parent task does not exist in the task or the parent task is scheduled
Figure BDA0002311730830000074
From
Figure BDA0002311730830000075
Take out the first element i' and add it to
Figure BDA0002311730830000076
And from chp1Deleting i ", δ ═ δ +1, go to step E2;
step E6: output sub-body
Figure BDA0002311730830000077
Finishing the operation;
wherein: p is a radical ofbE (0.5,1) is the preference rate;
and 7: performing mutation operation on each individual in the new population;
the mutation operation comprises the following steps:
step F1: randomly generating 1 random number lambda epsilon [0,1) if lambda is less than or equal to pmGo to step F2, otherwise go to step F5;
step F2: randomly selecting a task number i, and deleting a gene with the value of i in an individual;
step F3: slave VMiRandomly selecting a virtual machine again, and setting the virtual machine as a virtual machine j;
step F4: in that
Figure BDA0002311730830000078
Searching the last ancestor task number and the first descendant task number of the task i from front to back, and if both the last ancestor task number and the first descendant task number are found, randomly finding a position between the last ancestor task number and the first descendant task number to insert the i; if the descendant task number does not exist and the ancestor task number exists, randomly finding a position behind the last ancestor task number to insert i; if the descendant task number exists and the ancestor task number does not exist, randomly finding a position before the first descendant task number to insert i; if the descendant task number and the ancestor task number do not exist, randomly finding a position to insert i;
step F5: finishing individual variation operation;
wherein: p is a radical ofmE [0,1) is the mutation rate;
and 8: improving all individuals in the new population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
and step 9: selecting N different individuals from the current generation population and the new population from the superior to the inferior to form a new current generation population, and turning to the step 5;
step 10: and outputting the optimal individuals in the contemporary population, wherein the corresponding scheduling scheme is an optimal scheme.
Further, the serial individual decoding method based on the insertion mode in step C2 includes the following specific steps:
step G1: let ready times rt of all tasksi0, I-1, …, I; make all virtual machines available a time period list vatlj={[0,M]And the task number list allocated to the virtual machine
Figure BDA0002311730830000081
Wherein M is a number approaching infinity;
step G2: selecting a VTI which is not empty and has no parent task or has the scheduled parent task in the first element according to the numbering sequence of the virtual machinejFrom VTIjTaking out the first element i;
step G3: assigning task i to virtual machine j based on the insertion pattern;
step G3.1: computing the execution time of task i
Figure BDA0002311730830000082
Step G3.2: in vatljFinding out an idle time period [ v ] from morning to eveningjj]Satisfies upsilonjj≥etiAnd upsilonj-eti≥rti
Step G3.3: calculating the start time and the completion time of task i: si=max{νj,rti},fi=si+eti(ii) a Updating the Ready time of a subtask of task i
Figure BDA0002311730830000083
Step G3.4: in vatljDeletion of [ v ]jj]V, with insertion interval length greater than 0j,si]And [ fij];
Step G4: if VTI1,…,VTIJIf not, go to step G2, otherwise, go to step G5;
step G5: obtain start and completion times for all tasks: si、fiI1, …, I, calculating a fitness value; the operation is ended.
Further, the specific steps of the serial reverse individual decoding method based on the insertion mode in step C4 are as follows:
step H1: make reverse ready time of all tasks
Figure BDA0002311730830000084
Wherein: i is 1, …, and I, j is the virtual machine number that processes task I, i.e., satisfies
Figure BDA0002311730830000085
J of (1); make virtual machine available a time period list vatlj={[0,M]And the task number list allocated to the virtual machine
Figure BDA0002311730830000086
Wherein M is a number approaching infinity;
step H2: selecting a VTI which is not empty and has no subtask numbered first element or has all subtasks scheduled according to the numbering sequence of the virtual machinejFrom VTIjTaking out the first element i;
step H3: assigning task i to virtual machine j based on insertion patterns:
step H3.1: computing the execution time of task i
Figure BDA0002311730830000087
Step H3.2: in vatljFinding out an idle time period [ v ] from morning to eveningjj]Satisfy upsilonjj≥etiAnd
Figure BDA0002311730830000088
step H3.3: calculating a reverse start time for task i
Figure BDA0002311730830000091
Reverse completion time
Figure BDA0002311730830000092
Updating the Ready time of the parent task of task i
Figure BDA0002311730830000093
Step H3.4: list of time slots available in virtual machine, vatljDeletion of [ v ]jj]With an insertion interval length greater than 0
Figure BDA0002311730830000094
And
Figure BDA0002311730830000095
step H4: if VTI1,…,VTIJIf not, go to step H2, otherwise, go to step H5;
step H5: obtaining reverse start times and reverse completion times for all tasks:
Figure BDA0002311730830000096
calculating reverse workflow response times
Figure BDA0002311730830000097
The operation is ended.
Further, the specific steps of randomly selecting two different individuals from the contemporary population as parents based on the ranking round-robin in the step E1 are as follows:
step E1.1: sequencing the individuals in the contemporary population from good to bad, namely, the fitness value is from small to large, and obtaining the sequencing value rk of the individual nnN is 1, …, N, where the first row takes 1 and the second row takes 2, toBy analogy, the last name is selected as N;
step E1.2: calculating the probability that the individual n is selected
Figure BDA0002311730830000098
Wherein R is>1 is the discrimination coefficient;
step E1.3: calculating cumulative probability
Figure BDA0002311730830000099
Step E1.4: generating a random number lambda1E [0,1) if
Figure BDA00023117308300000910
Then the individual n is selected;
step E1.5: generating a random number lambda2E [0,1) if
Figure BDA00023117308300000911
And n '≠ n, then individual n' is selected, go to step E1.6, otherwise go to step E1.5;
step E1.6: two different individuals n and n' are obtained as parents and the individual selection operation ends.
The invention has the beneficial effects that:
(1) compared with a heuristic method, a semi-intelligent calculation method combined with the heuristic method and an existing intelligent calculation method based on layered coding, the two-dimensional coding method adopted by the design of the invention has the advantage that any one scheduling scheme can have an individual corresponding to the two-dimensional coding method, so that the search space is complete and the global search can be realized.
(2) Compared with a general coding mode based on priority, the two-dimensional integer coding method for performing topological sorting on task scheduling sequence tasks according to the virtual machine, which is adopted by the invention, considers the time sequence relation among tasks with resource competition relation, so that the decoding method is simpler, the decoding efficiency can be effectively improved, and the overall efficiency of the algorithm is further improved.
(3) Compared with the existing two-stage one-dimensional coding method adopting a virtual machine distribution list and a task scheduling sequence list, the two-dimensional integer coding method which adopts the virtual machine to carry out topological ordering on the task scheduling sequence only limits the scheduling sequence of the tasks which are allocated to the same virtual machine and have resource competition conflict, thus the coding space can be effectively reduced compared with the two-stage one-dimensional coding method adopting the virtual machine distribution list and the task scheduling sequence list, for example, 3 tasks which can be in parallel exist in a cloud workflow, if the two-stage one-dimensional coding method adopting the virtual machine distribution list and the task scheduling sequence list is adopted, the topological ordering among the 3 tasks in the task scheduling sequence list part has 6 types, but if the 3 tasks are allocated to 3 different virtual machines, the scheduling schemes corresponding to the 6 types of topological ordering are the same, compared with a two-section one-dimensional coding method, the two-dimensional coding method can reduce the coding space of the algorithm and improve the searching efficiency of the algorithm.
(4) Compared with the traditional non-insertion mode and parallel decoding methods, the serial individual decoding method which is used for arranging the task execution as early as possible based on the insertion mode can generally find a better corresponding scheduling scheme.
(5) Compared with the common one-way decoding method, the invention designs the forward and backward individual decoding and improving strategy FBI & D and the load balancing strategy LDI considering the transmission time, thereby enhancing the neighborhood optimizing capability of the individual, and further improving the optimizing capability and the searching efficiency of the whole algorithm.
(6) Compared with the traditional random initialization method, the method disclosed by the invention has the advantages that an individual based on HEFT-baseline is introduced into the initial population, and a hierarchy-based individual random generation method is adopted for the rest individuals, so that the algorithm can start searching near the optimal scheme, and the convergence time of the algorithm is shortened.
(7) Aiming at the proposed two-dimensional integer coding method, the invention designs a new simple and effective intersection and mutation method, and if the father is valid and legal, the method can ensure that the generated daughter is also valid and legal.
Drawings
Fig. 1 is a schematic flow chart of a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm.
FIG. 2 is a timing diagram of tasks of a Montage workflow according to an embodiment of the present invention.
Detailed Description
The present invention will be described in further detail with reference to fig. 1 and 2 and examples, but the present invention is not limited to the examples.
Suppose a cloud computing center has 6 virtual machines numbered 1 to 6, a virtual machine vm1,vm2,…,vm6The processing power and bandwidth of (a) are shown in table 1; the time sequence relation between tasks of a single workflow is shown in figure 2 and consists of 15 tasks with the serial numbers of 1 to 15, and the task t1,t2,…,t15The execution length of (1), the names of the input file and the output file after processing required for the processing, the length, and the virtual machine that can be processed are shown in table 2.
Figure BDA0002311730830000101
Figure BDA0002311730830000111
TABLE 1
Figure BDA0002311730830000112
TABLE 2
For the above case, as shown in fig. 1, a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm includes the following implementation steps:
executing the step 1: formalizing a scheduling problem, and acquiring information required by scheduling optimization;
get task set T ═ T1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
Obtaining the time sequence relation between tasks, namely a parent task set PR of the task iiAnd a set of subtasks SCi
Figure BDA0002311730830000121
Figure BDA0002311730830000122
PR4={t1},PR5={t1,t2},PR6={t1,t3},PR7={t4,t5,t6},PR8={t7},PR9={t1,t8},PR10={t2,t8},PR11={t3,t8},PR12={t9,t10,t11},PR13={t12},PR14={t13},PR15={t14};
SC1={t4,t5,t6,t9},SC2={t5,t10},SC3={t6,t11},SC4={t7},SC5={t7},SC6={t7},SC7={t8},SC8={t9,t10,t11},SC9={t12},SC10={t12},SC11={t12},SC12={t13},SC13={t14},SC14={t15},
Figure BDA0002311730830000123
Acquiring relevant parameters of the task: t is t1.length=126000MI,t1.IFL={fd1,fd2},t1.OFL={f1-1,f1-2};
t2.length=138000MI,t2.IFL={fd1,fd3},t2.OFL={f2-1,f2-2};t3.length=132000MI,t3.IFL={fd1,fd4},t3.OFL={f3-1,f3-2};t4.length=102000MI,t4.IFL={fd1,f1-1,f1-2},t4.OFL={f4-1,f4-2};……;t15.length=7800MI,t15.IFL={f14-1},t15.OFL={f15-1};
fd1.size=36MB,fd2.size=4320MB,f1-1.size=3960MB,f1-2.size=3960MB,……,f14-1.size=1560MB,f15-1.size=420MB;
Acquiring a virtual machine set in a cloud computing environment: VM ═ VM1,vm2,vm3,vm4,vm5,vm6};
Acquiring related parameters of the virtual machine: vm1.ps=1000MI/s,vm1.bw=200Mbit/s;vm2.ps=1000MI/s,vm2.bw=200Mbit/s;vm3.ps=2000MI/s,vm3.bw=300Mbit/s;vm4.ps=2000MI/s,vm4.bw=300Mbit/s;vm5.ps=3000MI/s,vm5.bw=400Mbit/s;vm6.ps=3000MI/s,vm6.bw=400Mbit/s;
Acquiring a support relationship between the task and the virtual machine: t is1={t1,t2,t3,t4,t5,t6,t9,t13,t15},T2={t3,t5,t7,t9,t10,t11,t14},T3={t2,t3,t4,t6,t9,t11,t12},T4={t1,t2,t4,t6,t7,t8,t9,t10,t11,t12,t14},T5={t1,t2,t3,t4,t6,t7,t8,t9,t12,t14},T6={t1,t4,t5,t8,t11,t13,t14,t15};VM1={vm1,vm4,vm5,vm6},VM2={vm1,vm3,vm4,vm5},VM3={vm1,vm2,vm3,vm5},VM4={vm1,vm3,vm4,vm5,vm6},VM5={vm1,vm2,vm6},VM6={vm1,vm3,vm4,vm5},VM7={vm2,vm4,vm5},VM8={vm4,vm5,vm6},VM9={vm1,vm2,vm3,vm4,vm5},VM10={vm2,vm4},VM11={vm2,vm3,vm4,vm6},VM12={vm3,vm4,vm5},VM13={vm1,vm6},VM14={vm2,vm4,vm5,vm6},VM15={vm1,vm6}。
And (3) executing the step 2: calculating the level value level of the task;
if the task 1, the task 2 and the task 3 have no father task, the level is1=level2=level3=1;
Task 4 has only one parent task 1, then
Figure BDA0002311730830000131
Similarly, the hierarchy values of other tasks may be obtained: level5=level6=2;level7=3;level8=4;level9=level10=level11=5;level12=6;level13=7;level14=8;level15=9。
And (3) executing the step: initializing a contemporary population;
taking the population size N as 10; initializing a contemporary population comprising 1 individual generated by an individual generation method based on HEFT-baseline and 9 different individuals generated by an individual random generation method based on a hierarchy;
the specific implementation process for generating an individual based on the HEFT-baseline individual generation method is as follows:
step a1 is executed: initializing all virtual machine available time period list vatlj={[0,M]},kj1, j is 1,2,3,4,5,6, where M is a near infinite number; UT ═ T1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}; initializing the ready time rt of all tasksi=0,i=1,…,15;
Step a2 is executed: the smallest level task in UTs is t1、t2、t3Due to SC1={t4,t5,t6,t9},SC2={t5,t10},SC3={t6,t11I.e. | SC1|=4,|SC2|=2,|SC32, so from UT to t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Get t out1
Step a3 is executed: let AVM1=VM1={vm1,vm4,vm5,vm6H, calculating t1Allocated to AVM1={vm1,vm4,vm5,vm6T after each virtual machine in the1The completion time of (c), namely: step a3.1 is performed: slave AVM1={vm1,vm4,vm5,vm6Get vm out of1(ii) a Step a3.2 is performed: calculating t1To vm1Execution time after processing: omega1,1=126000/1000=126,
Figure BDA0002311730830000132
τ1,18 × (36+4320)/200 ═ 174.24, then
Figure BDA0002311730830000133
Step a3.3 is performed: in vatl1Find out an idle time period [0, M ] from morning to evening]Satisfy M-0 ≥ et1,1300.24 and M-300.24 ≧ rt10; step a3.4 is performed: calculating t1To vm1Start time after treatment s1,1=max{v1,rt1Max {0,0}, 0, completion time f1,1=s1,1+et1,10+ 300.24-300.24; step a3.5 is performed: since the AVM is now1={vm4,vm5,vm6If not, go to step A3.1; step a3.1 is performed: slave AVM1={vm4,vm5,vm6Get vm out of4(ii) a Step a3.2 is performed: calculating t1To vm4Execution time after processing, omega1,4=63,
Figure BDA0002311730830000141
τ1,4116.16, then
Figure BDA0002311730830000142
Step a3.3 is performed: in vatl4Find out an idle time period [0, M ] from morning to evening]M-0 is equal to or more than 179.16 and M-179.16 is equal to or more than 0; step a3.4 is performed: calculating t1To vm4Start time after treatment s1,4=max{v4,rt1Max {0,0}, 0, completion time f1,4=s1,4+et1,40+ 179.16-179.16; step a3.5 is performed: due to thisTime-of-flight AVM1={vm5,vm6If not, go to step A3.1; … …, the steps A3.1 to A3.5 are repeated until the step A is finished
Figure BDA0002311730830000143
To obtain s1,1=0,s1,4=0,s1,5=0,s1,6=0,f1,1=300.24,f1,4=179.16,f1,5=129.12,f1,6When the value is 129.12, the step A4 is switched to;
step a4 is executed: finding earliest achievable t in virtual machine order1Is vm, which is5
Figure BDA0002311730830000144
k5=k5+ 1-2, and t1To vm5Namely: step a4.1 is performed: let t1Start time s of1=s1,50, completion time f1=f1,5129.12; step a4.2 is performed: updating t1Ready time of subtask(s):
rt4=max{rt4,f1}=max{0,129.12}=129.12,rt5=129.12,rt6=129.12,rt9129.12; step a4.3 is performed: list of time slots available in virtual machine, vatl5Deletion of [0, M]Insertion interval length greater than 0 [129.12, M]Then, vall5={[129.12,M]};
Step a5 is executed: since UT is t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step A2;
step a2 is executed: the smallest level task in UTs is t2、t3Due to SC2={t5,t10},SC3={t6,t11I.e. | SC2|=2,|SC32, so at t2、t3Is randomly selected one of t3From UT ═ t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Get t out of3
Step a3 is executed: let AVM3=VM3={vm1,vm2,vm3,vm5H, calculating t3Allocated to AVM3={vm1,vm2,vm3,vm5T after each virtual machine in the3The completion time of (c), namely: step a3.1 is performed: slave AVM3={vm1,vm2,vm3,vm5Get vm out of1(ii) a Step a3.2 is performed: calculating t3To vm1Execution time after processing: omega3,1=132,
Figure BDA0002311730830000151
τ3,1174.24, then et3,1306.24; step a3.3 is performed: in vatl1Find out an idle time period [0, M ] from morning to evening]M-0 is equal to or more than 306.24 and M-306.24 is equal to or more than 0; step a3.4 is performed: calculating t3To vm1Start time after treatment s3,1Max {0,0}, 0, completion time f3,1=s3,1+et3,1306.24; step a3.5 is performed: since the AVM is now3={vm2,vm3,vm5If not, go to step A3.1; … …, the steps A3.1 to A3.5 are repeated until the step A is finished
Figure BDA0002311730830000152
To obtain s3,1=0,s3,2=0,s3,3=0,s3,5=129.12,f3,1=306.24,f3,2=306.24,f3,3=182.16,f3,5260.24, go to step a 4;
step a4 is executed: finding earliest achievable t in virtual machine order3Is vm, which is3
Figure BDA0002311730830000155
k3=k3+ 1-2, and t3To vm3Namely: step a4.1 is performed: let t3Start time s of3=s3,30, completion time f3=f3,3182.16; step a4.2 is performed: updating t3Ready time of subtask(s):
rt6=max{rt6,f3}=max{129.12,182.16}=182.16,rt11182.16; step a4.3 is performed: list of time slots available in virtual machine, vatl3Deletion of [0, M]Insertion interval length greater than 0 [182.16, M]Then, vall3={[182.16,M]};
Step a5 is executed: since UT is t2,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step A2;
step a2 is executed: the smallest level task in UTs is t2From UT ═ t2,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Get t out of2
Step a3 is executed: let AVM2=VM2={vm1,vm3,vm4,vm5H, calculating t2Allocated to AVM2={vm1,vm3,vm4,vm5T after each virtual machine in the2Completion time of (d); namely: step a3.1 is performed: slave AVM2={vm1,vm3,vm4,vm5Get vm out of1(ii) a Step a3.2 is performed: calculating t2To vm1Execution time after processing: omega2,1=138,
Figure BDA0002311730830000153
τ2,1174.24, then et2,1312.24; step a3.3 is performed: in vatl1Find out an idle time period [0, M ] from morning to evening]M-0 is equal to or more than 312.24 and M-312.24 is equal to or more than 0; step a3.4 is performed: calculating t2To vm1Start time after treatment s2,10, completion time f2,1312.24; step a3.5 is performed: since the AVM is now2={vm3,vm4,vm5If not, go to step A3.1; … …, the steps A3.1 to A3.5 are repeated until the step A is finished
Figure BDA0002311730830000154
To obtain s2,1=0,s2,3=182.16,s2,4=0,s2,5=129.12,f2,1=312.24,f2,3=367.32,f2,4=185.16,f2,5262.24, go to step a 4;
step a4 is executed: finding earliest achievable t in virtual machine order2Is vm, which is4
Figure BDA0002311730830000164
k4=k4+ 1-2, and t2To vm4(ii) a Namely: step a4.1 is performed: let t2Start time s of2=s2,40, completion time f2=f2,4185.16; step a4.2 is performed: updating t2Ready time of subtask(s):
rt5=max{rt5,f2}=max{129.12,185.16}=185.16,rt10185.16; step a4.3 is performed: list of time slots available in virtual machine, vatl4Deletion of [0, M]Insertion interval length greater than 0 [185.16, M]Then, vall4={[185.16,M]};
Step a5 is executed: since UT is t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step A2;
……
the steps A2 to A5 are repeatedly executed until the step A2 and the step A5 are executed
Figure BDA0002311730830000161
Go to step A6;
step a6 is executed: outputting an individual ch based on HEFT-baseline1{ (), (), (3,11), (2,10,12), (1,6,4,7,8,9), (5,13,14,15) }, the operation ends;
the specific implementation process of generating an individual by the individual random generation method based on the hierarchy is as follows:
step B1 is executed: UT ═ T1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};k1=1,k2=1,k3=1,k4=1,k5=1,k6=1;
Step B2 is executed: from UT ═ t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Randomly taking a task with the minimum level value, which is t2
Step B3 is executed: slave VM2={vm1,vm3,vm4,vm5Randomly selecting a virtual machine which is vm4
Step B4 is executed: order to
Figure BDA0002311730830000162
k4=k4+1=1+1=2;
Step B5 is executed: since UT is t1,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step B2;
step B2 is executed: from UT ═ t1,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Randomly taking a task with the minimum level value, which is t3
Step B3 is executed: slave VM3={vm1,vm2,vm3,vm5Randomly selecting a virtual machine which is vm3
Step B4 is executed: order to
Figure BDA0002311730830000163
k3=k3+1=1+1=2;
Step B5 is executed: since UT is t1,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step B2;
step B2 is executed: from UT ═ t1,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Randomly taking a task with the minimum level value, which is t1
Step B3 is executed: slave VM1={vm1,vm4,vm5,vm6Randomly selecting a virtual machine which is vm4
Step B4 is executed: order to
Figure BDA0002311730830000171
k4=k4+1=2+1=3;
Step B5 is executed: since UT is t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step B2;
step B2 is executed: from UT ═ t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Randomly taking a task with the minimum level value, which is t6
Step B3 is executed: slave VM6={vm1,vm3,vm4,vm5Randomly selecting a virtual machine which is vm5
Step B4 is executed: order to
Figure BDA0002311730830000172
k5=k5+1=1+1=2;
Step B5 is executed: since UT is t4,t5,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step B2;
……
the steps B2 to B5 are repeatedly executed until the step B2 and the step B5 are executed
Figure BDA0002311730830000173
Go to step B6;
step B6 is executed: output individual ch2{ (4,15), (5,7,10,9,14), (3), (2,1,11,12), (6), (8,13) }, the operation ends;
similarly, the hierarchy-based individual random generation method generates other different individuals in the contemporary population as follows:
ch3={(6,5,13,15),(14),(3,4,11,12),(7,8,10),(2,9),(1)};
ch4={(6,9),(10,14),(3),(1,4,11,12),(2,7),(5,8,13,15)};
ch5={(2,9,13,15),(7,11),(3),(1,6,8,10,12,14),(),(4,5)};
ch6={(5,9,15),(10,11),(),(1,12),(3,2,6,4,7,14),(8,13)};
ch7={(2,4),(5,9,10),(11),(),(1,3,6,7,12),(8,13,14,15)};
ch8={(2,15),(3,5,7,10),(),(8,9,12),(1,6),(4,11,13,14)};
ch9={(4),(7),(9),(2,6,8,10,12),(3,14),(1,5,11,13,15)};
ch10={(2,1,5),(3),(),(6,7,11,10,12),(8,9),(4,13,14,15)};
the initial current generation population thus finally generated is CP ═ ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10}。
And (4) executing: improving all individuals in the contemporary population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
first, FBI was applied to all individuals in the contemporary population&D method improvements, e.g. to ch in contemporary populations10As { (2,1,5), (3), (), (6,7,11,10,12), (8,9), (4,13,14,15) } FBI is used&The method D comprises the following specific implementation processes:
step C1 is executed: make reverse workflow response time
Figure BDA0002311730830000181
Wherein M is a number approaching infinity;
step C2 is executed: individual ch adopting serial individual decoding method based on insertion mode10Decoding is carried out, and the completion time of all tasks is obtained: f. of1=612.48,f2=312.24,f3=306.24,f4=964.00,f5=721.92,f6=1294.44,f7=1316.76,f8=1321.32,f9=1676.12,f10=2070.20,f11=1683.16,f12=2271.88,f13=2281.16,f14=2291.16,f152293.76, and its workflow response time rs102302.16; due to rs102302.16 is less than
Figure BDA0002311730830000182
Go to step C3;
step C3 is executed: an individual ch10The gene sequence corresponding to each virtual machine j in the database
Figure BDA0002311730830000183
Rearranging according to the task completion time from large to small, wherein j is 1, … and 6, and forming reverse individuals
Figure BDA0002311730830000184
Step C4 is executed: to pair
Figure BDA0002311730830000185
Decoding by adopting a serial reverse individual decoding method based on an insertion mode to obtain reverse completion time of all tasks:
Figure BDA0002311730830000186
Figure BDA0002311730830000187
Figure BDA0002311730830000188
and its inverse fitness value
Figure BDA0002311730830000189
Due to the fact that
Figure BDA00023117308300001810
Less than rs10When the result is 2302.16, go to step C5;
step C5 is executed: make the opposite direction single body
Figure BDA00023117308300001811
The gene sequence corresponding to each virtual machine j in the database
Figure BDA00023117308300001812
Rearranging according to the reverse completion time of the task from large to small, wherein j is 1, … and 6 to form individuals
ch10={(1,2,5),(3),(),(6,7,11,10,12), (8,9), (4,13,14,15) }, go to step C2;
step C2 is executed: individual ch adopting serial individual decoding method based on insertion mode10Decoding is carried out, and the completion time of all tasks is obtained: f. of1=300.24,f2=612.48,f3=306.24,f4=651.76,f5=721.92,f6=988.20,f7=1010.52,f8=1015.08,f9=1369.88,f10=1763.96,f11=1376.92,f12=1965.64,f13=1974.92,f14=1984.92,f151987.52, and its workflow response time rs101995.92; due to rs101995.92 equal to
Figure BDA00023117308300001813
Go to step C6
Step C6 is executed: output individual ch10{ (1,2,5), (3), (), (6,7,11,10,12), (8,9), (4,13,14,15) } and its fitness value, i.e., workflow response time rs101995.92, the operation ends;
with the above mentioned individual ch10As an example, the serial individual decoding method based on the insertion mode is implemented as follows:
step G1 is executed: let ready times rt of all tasksi0,1, …, 15; make available time period list of virtual machine vatlj={[0,M]1,2,3,4,5,6, where M is a number close to infinity; order list VTI of task number assigned to virtual machine1=(2,1,5),VTI2=(3),VTI3=(),VTI4=(6,7,11,10,12),VTI5=(8,9),VTI6=(4,13,14,15);
Step G2 is executed: due to VTI1Has a first element of 2, and task 2 has no parent task, so the slave VTI1The first element 2 is taken out of (2,1, 5);
step G3 is executed: assigning task 2 to virtual machine 1 based on the insertion pattern; namely: step G3.1 is performed: meterComputing the execution time of task 2
Figure BDA0002311730830000191
Step G3.2 is performed: in vatl1Find out an idle time period [0, M ] from morning to evening]Satisfy M-0 ≥ et2312.24 and M-312.24 ≧ rt20; step G3.3 is performed: calculate start time and completion time for task 2:
s2=max{v1,rt2}=max{0,0}=0,f2=s2+et20+ 312.24-312.24; update ready time of subtask of task 2: rt is an integer of5=max{rt5,f2}=max{0,312.24}=312.24,rt10312.24; step G3.4 is performed: list of time slots available in virtual machine, vatl1Deletion of [0, M]Insertion interval length greater than 0 [312.24, M]Then, vall1={[312.24,M]};
Step G4 is executed: due to VTI1,…,VTI6If not, go to step G2;
step G2 is executed: due to VTI1Has a first element of 1 and task 1 has no parent task, so the slave VTI1The first element 1 is taken out of (1, 5);
step G3 is executed: assigning task 1 to virtual machine 1 based on the insertion pattern; namely: step G3.1 is performed: computing the execution time of task 1
Figure BDA0002311730830000192
Step G3.2 is performed: in vatl1Find an idle period of time from morning to evening [312.24, M]The requirements that M-312.24 is more than or equal to 300.24 and M-300.24 is more than or equal to 0 are met; step G3.3 is performed: calculate start time and completion time for task 1: s1=max{v1,rt1}=max{312.24,0}=312.24,f1612.48, update the ready time for the subtask of task 1: rt is an integer of4=max{rt4,f1}=max{0,612.48}=612.48,rt5=max{rt5,f1}=612.48,rt6=612.48,rt9612.48; step G3.4 is performed: list of time slots available in virtual machine, vatl1Deletion [312.24, M]Insertion interval length greater than 0 [612.48, M]Then, vall1={[612.48,M]};
Step G4 is executed: due to VTI1,…,VTI6If not, go to step G2;
step G2 is executed: since VTI is now1Has a first element of 5 and the parent task of task 5 has all been scheduled, thus the slave VTI1Taking out a first element 5 from the formula (5);
step G3 is executed: assigning task 5 to virtual machine 1 based on the insertion pattern; namely: step G3.1 is performed: computing the execution time of task 1
Figure BDA0002311730830000201
Step G3.2 is performed: in vatl1Find an idle period of time from morning to evening [612.48, M]The requirements that M-612.48 is more than or equal to 109.44 and M-109.44 is more than or equal to 612.48 are met; step G3.3 is performed: calculate start time and completion time of task 5: s5=max{v1,rt5}=max{612.48,612.48}=612.48,f5721.92, the ready time rt of the subtask of task 5 is updated7721.92; step G3.4 is performed: list of time slots available in virtual machine, vatl1Deletion [612.48, M]Insertion interval length greater than 0 [721.92, M]Then, vall1={[721.92,M]};
Step G4 is executed: due to VTI1,…,VTI6If not, go to step G2;
step G2 is executed: since VTI is now1Become () and VTI2Has a first element of 3, and task 3 has no parent task, so the slave VTI2Taking out a first element 3 from the group (3);
step G3 is executed: assigning task 3 to virtual machine 2 based on the insertion pattern; namely: step G3.1 is performed: computing the execution time et of task 33306.24; step G3.2 is performed: in vatl2Find out an idle time period [0, M ] from morning to evening]M-0 is equal to or more than 306.24 and M-306.24 is equal to or more than 0; step G3.3 is performed: calculate the start time s of task 33=max{v2,rt3Max {0,0}, 0, completion time f3=306.24,Update ready time of subtask of task 3: rt is an integer of6=max{rt6,f3}=max{612.48,306.24}=612.48,rt11=max{rt11,f3306.24; step G3.4 is performed: list of time slots available in virtual machine, vatl2Deletion of [0, M]When the length of the insertion section is greater than 0, vall2={[306.24,M]};
Step G4 is executed: due to VTI1,…,VTI6If not, go to step G2;
……
so that steps G2 to G4 are repeatedly executed until VTI1,…,VTI6Go to step G5 if all are empty;
step G5 is executed: obtain start and completion times for all tasks: s1=312.24,s2=0.00,s3=0.00,s4=612.48,s5=612.48,s6=612.48,s7=1294.44,s8=1316.76,s9=1321.32,s10=1683.16,s11=1321.32,s12=2070.20,s13=2271.88,s14=2281.16,s15=2291.16;f1=612.48,f2=312.24,f3=306.24,f4=964.00,f5=721.92,f6=1294.44,f7=1316.76,f8=1321.32,f9=1676.12,f10=2070.20,f11=1683.16,f12=2271.88,f13=2281.16,f14=2291.16,f152293.76, its fitness value, i.e. workflow response time, is calculated: due to the fact that
Figure BDA0002311730830000211
And SFL15={f15-1Get the results
Figure BDA0002311730830000212
Finishing the operation;
with the above-mentioned individuals
Figure BDA0002311730830000213
For example, the serial reverse individual decoding method based on the insertion mode is implemented as follows:
step H1 is performed: due to the fact that
Figure BDA0002311730830000214
And SFL15={f15-1Let the reverse ready time of the task:
Figure BDA0002311730830000215
make virtual machine available a time period list vatl1={[0,M]},vatl2={[0,M]},……,vatl6={[0,M]And ordering a task number list VTI allocated to the virtual machine1=(5,1,2),VTI2=(3),VTI3=(),VTI4=(12,10,11,7,6),VTI5=(9,8),VTI6(15,14,13,4) where M is a number close to infinity;
step H2 is performed: due to VTI1、VTI2、VTI3、VTI4、VTI5Tasks that are either empty or numbered with their first element have subtasks that have not yet been scheduled, while the VTI6Is 15, and task 15 has no subtasks, so the slave VTI6First element 15, VTI, is taken out of (15,14,13,4)6=(14,13,4);
Step H3 is performed: assigning tasks 15 to virtual machines 6 based on the insertion pattern; namely: step H3.1 is performed: computing the execution time of a task 15
Figure BDA0002311730830000216
Step H3.2 is performed: in vatl6Find out an idle time interval [0, M ] from morning to evening]Satisfy M-0 ≥ et152.60 and
Figure BDA0002311730830000217
step H3.3 is performed: calculating the reverse start time of task 15
Figure BDA0002311730830000218
Reverse completion time
Figure BDA0002311730830000219
Updating the reverse ready time of the parent task of task 15
Figure BDA00023117308300002110
Step H3.4 is performed: list of time slots available in virtual machine, vatl6Deletion of [0, M]Insertion interval length greater than 0 [0,8.4 ]]And [11, M];
Step H4 is performed: due to VTI1,…,VTI6If not, go to step H2;
step H2 is performed: due to VTI1、VTI2、VTI3、VTI4、VTI5Tasks that are either empty or numbered with their first element have subtasks that have not yet been scheduled, while the VTI6Is 14 and task 14 has no subtasks, so the slave VTI6First element 14, VTI, out of (14,13,4)6=(13,4);
Step H3 is performed: assigning the task 14 to the virtual machine 6 based on the insertion pattern; namely: step H3.1 is performed: computing the execution time of a task 14
Figure BDA0002311730830000221
Step H3.2 is performed: in vatl6Find out an idle period [11, M ] from morning to evening]M-11 is not less than 10 and
Figure BDA0002311730830000222
step H3.3 is performed: calculating the reverse start time of task 14
Figure BDA0002311730830000223
Reverse completion time
Figure BDA0002311730830000224
Updating the reverse ready time of the parent task of task 14
Figure BDA0002311730830000225
Step H3.4 is performed: in deficiencyList of available time slots of virtual machine vatl6Deletion in [11, M]Insertion interval length greater than 0 [21, M ]];
Step H4 is performed: due to VTI1,…,VTI6If not, go to step H2;
……
so that the steps H2 to H4 are repeatedly executed until VTI1,…,VTI6Go to step H5 if empty;
step H5 is performed: obtaining reverse start times and reverse completion times for all tasks:
Figure BDA0002311730830000226
Figure BDA0002311730830000227
Figure BDA0002311730830000228
Figure BDA0002311730830000229
Figure BDA00023117308300002210
Figure BDA00023117308300002211
calculating reverse workflow response times
Figure BDA00023117308300002212
Finishing the operation;
similarly, other individuals in the contemporary population become:
ch1={(),(),(3,11),(2,10,12),(1,6,4,7,8,9),(5,13,14,15)};
ch2={(4,15),(5,7,10,9,14),(3),(2,1,11,12),(6),(8,13)};
ch3={(6,5,13,15),(14),(3,4,11,12),(7,8,10),(2,9),(1)};
ch4={(6,9),(10,14),(3),(1,4,11,12),(2,7),(5,8,13,15)};
ch5={(2,9,13,15),(7,11),(3),(1,6,8,10,12,14),(),(4,5)};
ch6={(5,9,15),(10,11),(),(1,12),(2,3,6,4,7,14),(8,13)};
ch7={(2,4),(5,9,10),(11),(),(1,3,6,7,12),(8,13,14,15)};
ch8={(2,15),(3,5,7,10),(),(8,9,12),(1,6),(4,11,13,14)};
ch9={(4),(7),(9),(2,6,8,10,12),(3,14),(1,5,11,13,15)};
the fitness values, i.e. the workflow response times, are respectively: rs1=1098.16,rs2=5667.80,rs3=5432.56,rs4=5024.20,rs5=5075.36,rs6=4288.64,rs7=2833.72,rs8=2195.68,rs9=2873.16;
All individuals in the contemporary population are improved by the LDI method, for example, ch in the contemporary population2Specific implementation procedures modified by the LDI method are as follows:
step D1 is executed: order a task list VTN assigned to a virtual machine1={t4,t15},VTN2={t5,t7,t10,t9,t14},VTN3={t3},VTN4={t2,t1,t11,t12},VTN5={t6},VTN6={t8,t13}; the load of each virtual machine is calculated,
Figure BDA0002311730830000231
the load ld of other virtual machines can be obtained in the same way2=374.4,ld3=66,ld4=194.4,ld5=38,ld6=8;
Step D2 is executed: find the least loaded virtual machine, which is vm6Due to ld6=8>0, so go to step D3;
step D3 is executed:
Figure BDA0002311730830000232
go to step D5;
step D5 is executed: due to ST6={t11,t14If not, from ST6Find a task with the highest load of the virtual machine, which is t14Go to step D6;
step D6 is executed: due to (g)6,1,g6,2) If (8,13) the ancestral task number of task 14 exists, but the descendant task number of task 14 does not exist, and therefore (g) is (g)6,1,g6,2) Look for its last ancestor task number from front to back in (8,13), which is g6,213 at g6,2Then randomly find a position to insert 14, g6,314; task list (g) of virtual machine 2 in which task 14 originally exists2,1,g2,2,g2,3,g2,4,g2,5) Deleting 14 from (5,7,10,9,14) to form new individuals
Figure BDA0002311730830000241
Using FBI&Method for treating new individuals
Figure BDA0002311730830000242
Performing decoding improvement to obtain workflow response time
Figure BDA0002311730830000243
Due to the fact that
Figure BDA0002311730830000244
Thus replacing the original individual with a modified individual, i.e.
Figure BDA0002311730830000245
Go to step D7;
step D7 is executed: the LDI operation is finished;
similarly, other individuals in the contemporary population become:
ch1={(),(),(3,11),(2,10,12),(1,6,4,7,8,9),(5,13,14,15)};
ch3={(6,5,13,15),(14),(3,4,11,12),(7,8,10),(2,9),(1)};
ch4={(6,9),(10),(3),(1,4,11,12),(2,7),(5,8,13,14,15)};
ch5={(9,13,15),(7,11),(3),(1,6,8,10,12,14),(2),(4,5)};
ch6={(5,15),(10,11),(9),(1,12),(2,3,6,4,7,14),(8,13)};
ch7={(2,4),(5,10),(11),(9),(1,3,6,7,12),(8,13,14,15)};
ch8={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch9={(4),(7),(9),(2,6,8,10,12),(3,14),(1,5,11,13,15)};
ch10={(1,5),(3),(2),(6,7,11,10,12),(8,9),(4,13,14,15)};
the fitness values, i.e. the workflow response times, are respectively: rs1=1098.16,rs3=5432.56,rs4=2061.80,rs5=4912.16,rs6=4192.64,rs7=2305.96,rs8=2189.68,rs9=2873.16,rs10=1887.12;
And 5, executing the step: judging whether a termination condition is met, if so, turning to a step 10 after the evolution is finished, otherwise, turning to a step 6;
the termination condition is that continuous iteration GG is 20 generations of optimal individuals has no improvement;
the population generated by the above process is an improved population after initialization, and currently only evolution and iteration are performed for one generation, and the termination condition is not met, so that the process goes to step 6.
And 6, executing the step: carrying out N times of parameterized uniform cross operations based on preference and two-dimensional topological sorting on the contemporary population to form a new population;
preference rate pb=0.7;
The specific implementation process of carrying out the preference and two-dimensional topological ordering based parameterized uniform crossing operation on the contemporary population is as follows:
executeStep E1: two different individuals were randomly selected as parents from the contemporary population using a rank-based betting round method, namely: step E1.1 is performed: sequencing the individuals in the current generation population from good to bad, namely, the fitness value is from small to large, and obtaining a sequencing value corresponding to each individual: rk1=1,rk2=6,rk3=10,rk4=3,rk5=9,rk6=8,rk7=5,rk8=4,rk9=7,rk102; step E1.2 is performed: let R be 1+1/N be 1.1, calculate individual ch1Probability of being selected
Figure BDA0002311730830000251
Same principle A2=0.092,A3=0.063,A4=0.122,A5=0.069,A6=0.076,A7=0.101,A8=0.111,A9=0.083,A100.135; step E1.3 is performed: calculating cumulative probability
Figure BDA0002311730830000252
Figure BDA0002311730830000253
Figure BDA0002311730830000254
Step E1.4 is performed: randomly generating a random number λ of [0,1 ]1It is 0.812 because
Figure BDA0002311730830000255
Thus selecting ch9(ii) a Step E1.5 is performed: randomly generating a random number λ of [0,1 ]2It is 0.397, due to
Figure BDA0002311730830000256
And 4 ≠ 9, so ch is selected4Go to step E1.6; step E1.6 is performed: obtaining two different individuals ch9And ch4As a father, the individual selection operation ends; and due to rs9=2873.16>rs42061.80 due to its root causeThis selects ch4As the father 1, ch9As father 2, namely: ch (channel)p1=ch4={(6,9),(10),(3),(1,4,11,12),(2,7),(5,8,13,14,15)},chp2=ch9{ (4), (7), (9), (2,6,8,10,12), (3,14), (1,5,11,13,15) }; order to
Figure BDA0002311730830000257
Figure BDA0002311730830000258
Figure BDA0002311730830000259
Order to
Figure BDA00023117308300002510
δ=1;
Step E2 is executed: if δ 1 ≦ I ≦ 15, go to step E3;
step E3 is executed: generating a random number between [0,1), which is 0.03, since 0.03. ltoreq. pbIf 0.7, go to step E4;
step E4 is executed: due to the fact that
Figure BDA00023117308300002511
In (1),
Figure BDA00023117308300002512
the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thus
Figure BDA00023117308300002513
Randomly select one of which is
Figure BDA00023117308300002514
Thus, from
Figure BDA00023117308300002515
Taking out the first element 2, adding it to
Figure BDA00023117308300002516
At the tail, i.e.
Figure BDA00023117308300002517
Figure BDA0002311730830000261
And from
Figure BDA0002311730830000262
In deletion 2, i.e.
Figure BDA0002311730830000263
Go to step E2, if δ + 1+ 2;
step E2 is executed: since δ 2 ≦ I ≦ 15, go to step E3;
step E3 is executed: generate a random number between [0,1), which is 0.94, since 0.94>pbIf 0.7, go to step E5;
step E5 is executed: due to the fact that
Figure BDA0002311730830000264
In (1),
Figure BDA0002311730830000265
the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thus
Figure BDA0002311730830000266
Randomly select one of which is
Figure BDA0002311730830000267
Thus, from
Figure BDA0002311730830000268
Taking out the first element 1, and adding it to
Figure BDA0002311730830000269
At the tail, i.e.
Figure BDA00023117308300002610
Figure BDA00023117308300002611
And from
Figure BDA00023117308300002612
In deletion of 1, i.e.
Figure BDA00023117308300002613
Go to step E2, δ +1 — 2+1 — 3;
step E2 is executed: if δ is 3 ≦ I ≦ 15, go to step E3;
step E3 is executed: generating a random number between [0,1), which is 0.17, since 0.17 ≦ pbIf 0.7, go to step E4;
step E4 is executed: due to the fact that
Figure BDA00023117308300002614
In (1),
Figure BDA00023117308300002615
the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thus
Figure BDA00023117308300002616
Randomly select one of which is
Figure BDA00023117308300002617
Thus, from
Figure BDA00023117308300002618
Taking out the first element 3, adding it to
Figure BDA00023117308300002619
At the tail, i.e.
Figure BDA00023117308300002620
And from
Figure BDA00023117308300002621
Deletion 3 in (i)
Figure BDA00023117308300002622
Go to step E2, δ +1 — 3+1 — 4;
step E2 is executed: since δ 4 ≦ I ≦ 15, go to step E3;
step E3 is executed: generating a random number between [0,1), which is 0.57, since 0.57 ≦ pbIf 0.7, go to step E4;
step E4 is executed: due to the fact that
Figure BDA00023117308300002623
In (1),
Figure BDA00023117308300002624
the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thus
Figure BDA00023117308300002625
Randomly select one of which is
Figure BDA00023117308300002626
Thus, from
Figure BDA00023117308300002627
Taking out the first element 4, adding it to
Figure BDA00023117308300002628
At the tail, i.e.
Figure BDA00023117308300002629
Figure BDA00023117308300002630
And from
Figure BDA00023117308300002631
In deletion 4, i.e.
Figure BDA00023117308300002632
Go to step E2, δ + 1+ 4+ 1+ 5;
step E2 is executed: if δ is 5 ≦ I ≦ 15, go to step E3;
step E3 is executed: generating a random number between [0,1), which is 0.34, since 0.34 ≦ pbIf 0.7, go to step E4;
step E4 is executed: due to the fact that
Figure BDA0002311730830000271
In (1),
Figure BDA0002311730830000272
the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thus
Figure BDA0002311730830000273
Randomly select one of which is
Figure BDA0002311730830000274
Thus, from
Figure BDA0002311730830000275
Taking out the first element 5, adding it to
Figure BDA0002311730830000276
At the tail, i.e.
Figure BDA0002311730830000277
Figure BDA0002311730830000278
And from
Figure BDA0002311730830000279
Deletion of 5, i.e.
Figure BDA00023117308300002710
Go to step E2, δ + 1+ 5+ 1+ 6;
……
the steps E2 to E5 are repeated until δ ═ 16> I ═ 15, and the process goes to step E6;
step E6 is executed: output sub-body chc{ (9), (7,10), (3), (4,6,11,12), (2,14), (1,5,8,13,15) }, the operation ends;
thus obtaining ch'1=chc={(9),(7,10),(3),(4,6,11,12),(2,14),(1,5,8,13,15)};
Similarly, the remaining individuals in the new population generated by the crossover operation are:
ch′2={(4,15),(5,10),(11),(9,12),(2,1,3,6,7),(8,13,14)};
ch′3={(),(),(3,11),(2,6,7,10,12),(1,8,9),(4,5,13,14,15)};
ch′4={(15),(3,5,7,10),(),(2,8,11,9,12),(1,6),(4,13,14)};
ch′5={(2,4,6),(10),(3),(1,11,9,12),(7),(5,8,13,14,15)};
ch′6={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch′7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch′8={(1),(3,7),(9),(2,6,11,10,12),(8),(4,5,13,14,15)};
ch′9={(1,4),(3,5,10),(2),(6,7,9,11),(8,12),(13,14,15)};
ch′10={(2,6,9),(10),(3),(1,4,11,12),(7),(5,8,13,14,15)};
the new population thus generated is NP ═ ch'1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10}。
And 7, executing the step: performing mutation operation on each individual in the new population;
taking the rate of variation pm=0.2;
The specific implementation process of performing mutation operation on the new population is as follows:
for ch'1={(9),(7,10),(3),(4,6,11,12),(2,14),(1,5,8,13,15)};
Step F1 is performed: randomly generating a random number λ of [0,1), which is 0.54, since λ is 0.54>pmIf 0.2, go to step F5;
step F5 is performed: finishing individual variation operation;
for ch'2={(4,15),(5,10),(11),(9,12),(2,1,3,6,7),(8,13,14)};
Step F1 is performed: randomly generating a random number λ of [0,1), which is 0.18, since λ is 0.18<pmIf 0.2, go to step F2;
step F2 is performed: randomly select a task number, which is 2, from the individuals ch'2Deletion of the Gene having a deletion number of 2, i.e., deletion of Gene g5,1Then ch'2={(4,15),(5,10),(11),(9,12),(1,3,6,7),(8,13,14)};
Step F3 is performed: from virtual machine set VM2={vm1,vm3,vm4,vm5Randomly selecting a virtual machine which is a virtual machine 1 again;
step F4 is performed: due to (g)1,1,g1,2) Since the ancestral task number of task 2 does not exist in (4,15) and the descendant task number of task 2 exists in (g)1,1,g1,2) Looking for the first descendant task number from front to back in (4,15), which is g1,215 at g1,2Previously randomly finding a position which is g1,2Insertion of 2, i.e. g1,2=2,g1,3=15;
Step F5 is performed: finishing individual variation operation;
thus, the mutated individuals become: ch'2={(4,2,15),(5,10),(11),(9,12),(1,3,6,7),(8,13,14)};
Similarly, for other individuals in the new population, the variation becomes:
ch′3={(),(),(3,11),(2,6,7,10,12),(1,8,9),(4,5,13,14,15)};
ch′4={(15),(3,5,7,10),(),(2,8,11,9,12),(1,6),(4,13,14)};
ch′5={(2,4,6),(10),(3),(1,11,9,12),(7),(5,8,13,14,15)};
ch′6={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch′7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch′8={(1),(3,7),(9),(2,6,11,10,12),(8),(4,5,13,14,15)};
ch′9={(1,4),(3,10),(2),(6,7,9,11),(8,12),(5,13,14,15)};
ch′10={(2,6,9),(),(3),(1,4,11,10,12),(7),(5,8,13,14,15)}。
and step 8 is executed: improving all individuals in the new population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
all individuals in the new population become, after improvement by the FBI & D method:
ch′1={(9),(7,10),(3),(4,6,11,12),(2,14),(1,5,8,13,15)};
ch′2={(2,4,15),(5,10),(11),(9,12),(1,3,6,7),(8,13,14)};
ch′3={(),(),(3,11),(2,6,7,10,12),(1,8,9),(4,5,13,14,15)};
ch′4={(15),(3,5,7,10),(),(2,8,11,9,12),(1,6),(4,13,14)};
ch′5={(2,4,6),(10),(3),(1,11,9,12),(7),(5,8,13,14,15)};
ch′6={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch′7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch′8={(1),(3,7),(9),(2,6,11,10,12),(8),(4,5,13,14,15)};
ch′9={(1,4),(3,10),(2),(6,7,9,11),(8,12),(5,13,14,15)};
ch′10={(2,6,9),(),(3),(1,4,11,10,12),(7),(5,8,13,14,15)};
its fitness value, i.e. workflow response time: rs'1=3491.08,rs′2=2193.72,rs′3=1249.32,rs′4=2173.32,rs′5=2329.24,rs′6=2189.68,rs′7=1907.4,rs′8=1919.64,rs′9=2515.56,rs′10=2055.00;
All individuals in the new population become, after improvement by the LDI method:
ch′1={(9),(7,10),(3),(4,6,11,12),(2,14),(1,5,8,13,15)};
ch′2={(2,4),(5,10),(11),(9,12),(1,3,6,7),(8,13,14,15)};
ch′3={(4),(),(3,11),(2,6,7,10,12),(1,8,9),(5,13,14,15)};
ch′4={(15),(5,7,10),(3),(2,8,11,9,12),(1,6),(4,13,14)};
ch′5={(2,6),(10),(3),(1,11,9,12),(4,7),(5,8,13,14,15)};
ch′6={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch′7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch′8={(1),(3),(9),(2,6,11,10,12),(7,8),(4,5,13,14,15)};
ch′9={(1,4),(3,10),(2),(6,7,11),(8,9,12),(5,13,14,15)};
ch′10={(2,6,9),(),(3),(1,4,11,10,12),(7),(5,8,13,14,15)};
its fitness value, i.e. workflow response time: rs'1=3491.08,rs′2=2117.72,rs′3=1178.60,rs′4=1949.84,rs′5=1893.64,rs′6=2189.68,rs′7=1907.4,rs′8=1899.72,rs′9=2034.64,rs′10=2055.00;
And step 9 is executed: selecting N different individuals from the current generation population and the new population from the superior to the inferior to form a new current generation population, and turning to the step 5;
selecting from good to bad according to the fitness valueCh of generation group1、ch4、ch10And ch 'of the New population'3、ch′4、ch′5、ch′7、ch′8、ch′9、ch′10Forming the next generation of population, i.e. GP ═ ch1,ch4,ch10,ch′3,ch′4,ch′5,ch′7,ch′8,ch′9,ch′10};
Let CP be GP, then all individuals of the contemporary population are:
ch1={(),(),(3,11),(2,10,12),(1,6,4,7,8,9),(5,13,14,15)};
ch2={(6,9),(10),(3),(1,4,11,12),(2,7),(5,8,13,14,15)};
ch3={(1,5),(3),(2),(6,7,11,10,12),(8,9),(4,13,14,15)};
ch4={(4),(),(3,11),(2,6,7,10,12),(1,8,9),(5,13,14,15)};
ch5={(15),(5,7,10),(3),(2,8,11,9,12),(1,6),(4,13,14)};
ch6={(2,6),(10),(3),(1,11,9,12),(4,7),(5,8,13,14,15)};
ch7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch8={(1),(3),(9),(2,6,11,10,12),(7,8),(4,5,13,14,15)};
ch9={(1,4),(3,10),(2),(6,7,11),(8,9,12),(5,13,14,15)};
ch10={(2,6,9),(),(3),(1,4,11,10,12),(7),(5,8,13,14,15)};
the fitness values, i.e. the workflow response times, are respectively: rs1=1098.16,rs2=2061.80,rs3=1887.12,rs4=1178.60,rs5=1949.84,rs6=1893.64,rs7=1907.40,rs8=1899.72,rs9=2034.64,rs10=2055.00;
Go to step 5.
……
Thus, the steps 5 to 9 are continuously and repeatedly executed until the optimal individual continuously iterates for 20 generations without improvement, and the contemporary population becomes:
ch1={(),(),(3,6,11),(2,10,12),(1,4,7,9),(5,8,13,14,15)};
ch2={(),(),(3,6,11),(2,10,12),(1,4,7,8,9),(5,13,14,15)};
ch3={(4),(),(3,11),(2,10,12),(1,6,7,8,9),(5,13,14,15)};
ch4={(),(),(3,11),(2,4,7,10,12),(1,6,8,9),(5,13,14,15)};
ch5={(),(),(3,11),(2,4,10,12),(1,6,7,8,9),(5,13,14,15)};
ch6={(),(),(3,11),(2,4,10,12),(1,6,7,9),(5,8,13,14,15)};
ch7={(),(),(3,11),(2,4,8,10,12),(1,6,7,9),(5,13,14,15)};
ch8={(),(),(3,11),(2,10,12),(1,6,4,7,9),(5,8,13,14,15)};
ch9={(),(),(3,11),(2,8,10,12),(1,6,4,7,9),(5,13,14,15)};
ch10={(),(),(3,6),(2,10,11,12),(4,7,8,9),(1,5,13,14,15)};
the fitness values, i.e. the workflow response times, are respectively: rs1=1104.80,rs2=1103.60,rs3=1113.52,rs4=1107.44,rs5=1108.40,rs6=1109.6,rs7=1110.68,rs8=1099.36,rs9=1100.44,rs10=1018.08;
Go to step 10.
Executing the step 10: outputting the optimal individuals in the contemporary population, wherein the corresponding scheduling scheme is an optimal scheme;
the best individual in the contemporary population is ch10{ (), (), (3,6), (2,10,11,12), (4,7,8,9), (1,5,13,14,15) }, workflow response time is: rs101018.08, the corresponding schedule optimization scheme is shown in table 3.
Scheduling order Task numbering Starting time Execution time End time Virtual machine numbering
1 3 0.00 182.16 182.16 3
2 2 0.00 185.16 185.16 4
3 1 0.00 129.12 129.12 6
4 6 182.16 269.16 451.32 3
5 4 129.12 193.12 322.24 5
6 5 185.16 254.32 439.48 6
7 7 451.32 11.76 463.08 5
8 8 463.08 2.96 466.04 5
9 10 466.04 60.64 526.68 4
10 11 526.68 259.44 786.12 4
11 9 466.04 196.40 662.44 5
12 12 786.12 201.68 987.80 4
13 13 987.80 9.28 997.08 6
14 14 997.08 10.00 1007.08 6
15 15 1007.08 2.60 1009.68 6
TABLE 3
The above embodiments are only preferred embodiments of the present invention, and are not intended to limit the technical solutions of the present invention, so long as the technical solutions can be realized on the basis of the above embodiments without creative efforts, which should be considered to fall within the protection scope of the patent of the present invention.

Claims (4)

1. A cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm is characterized by comprising the following steps: the method comprises the following steps: step 1: formalizing a scheduling problem, and acquiring information required by scheduling optimization;
get task set T ═ T1,t2,…,tIWhere I is the number of tasks, tiRepresenting a task i, namely a task with the number i;
acquiring a time sequence relation between tasks: parent task set PR of task iiSubstask set SC for task iiWherein I is 1,2 …, I;
Figure FDA0002311730820000011
acquiring task related parameters: length t of task iiLength, i.e. the number of instructions that need to be consumed by a virtual machine when task i is processed, list t of input files that need to be processed when task i is processediIFL, output File List t generated after task i is processedi-OFL, and the size of the file in the file list, I ═ 1,2 …, I; task i is task i+The requirements of the parent task of (2) are: there is a file that is the output file of task i and is also task i+The input file of (a), namely:
Figure FDA0002311730820000012
obtaining a virtual machine set VM ═ VM in a cloud computing environment1,vm2,…,vmJWhere J is the number of virtual machines, vmjRepresents virtual machine j, i.e., the virtual machine numbered j;
acquiring related parameters of the virtual machine: computing power vm of virtual machine jjPs, bandwidth vm of virtual machine jjBw, wherein J ═ 1,2 …, J;
acquiring a support relationship between the task and the virtual machine: task set T that virtual machine j can handlejWherein J is 1,2 …, J; virtual machine set VM capable of processing task iiWherein I is 1,2 …, I;
step 2: calculating the level value level of the task;
for a starting task i without a parent task, the hierarchy value is:
leveli=1 (1)
the hierarchy values of other tasks are calculated using the following recursive formula:
Figure FDA0002311730820000013
and step 3: initializing a contemporary population;
initializing a current generation population, wherein the current generation population comprises 1 individual generated by an individual generation method based on HEFT-baseline and the remaining N-1 different individuals generated by an individual random generation method based on a hierarchy, and N is the population scale;
the individuals adopt two-dimensional integer coding, and the method comprises the following steps:
Figure FDA0002311730820000021
wherein g isj,iA number indicating a task assigned to virtual machine j and scheduled i in virtual machine j;
Figure FDA0002311730820000022
is a sequence of task numbers assigned to virtual machine j and satisfies a task timing constraint, IjRepresenting the number of tasks assigned to virtual machine j;
the individual generating method based on HEFT-baseline comprises the following steps:
step A1: make virtual machine available a time period list vatlj={[0,M]}, variable kj1, J-1, 2, …, J, where M is a near infinite number; enabling a task set UT to be processed to be T; let ready times rt of all tasksi=0,i=1,…,I;
Step A2: finding out the task with the minimum level value in the UT, taking out the task with the maximum number of subtasks from the task, and if the task with the maximum number of subtasks is more than one, randomly taking one of the tasks without setting t as ti
Step A3: make available virtual machine set AVMi=VMiCalculating tiAre respectively allocated to AVMiT after each virtual machine in (1)iCompletion time of (d):
step A3.1: slave AVMiGet one virtual machine out of it, set to vmj
Step A3.2: calculating tiTo vmjExecution time after processing
Figure FDA0002311730820000023
Step A3.3: in vatljFinding out an idle time period [ v ] from morning to eveningjj]Satisfy upsilonjj≥eti,jAnd upsilonj-eti,j≥rti
Step A3.4: calculating tiTo vmjStart time after treatment si,j=max{νj,rtiH, completion time fi,j=si,j+eti,j
Step A3.5: if AVMiIf not, go to step A3.1, otherwise go to step A4;
step A4: finding earliest achievable t in virtual machine orderiVirtual machine of (2) is not set to vmj(ii) a Order to
Figure FDA0002311730820000024
kj=kj+ 1; handle tiTo vmj
Step A4.1: let tiStart time s ofi=si,j,tiCompletion time fi=fi,j
Step A4.2: updating tiReady time of subtask of (2)
Figure FDA0002311730820000025
Step A4.3: list of time slots available in virtual machine, vatljDeletion of [ v ]jj]V, with insertion interval length greater than 0j,si]And [ fij];
Step A5: if UT is not empty, go to step A2, otherwise go to step A6;
step A6: outputting an individual based on HEFT-baseline
Figure FDA0002311730820000031
Finishing the operation;
wherein:
ωi,j: is vmjTreatment tiThe time of (a) is,
Figure FDA0002311730820000032
Figure FDA00023117308200000313
is a handle tiTo vmjThe processing needs to obtain the file transfer time of the input file from other virtual machines,
Figure FDA0002311730820000033
Figure FDA0002311730820000034
is to treat
Figure FDA0002311730820000035
The virtual machine of (1);
τi,j: is a handle tiTo vmjThe process requires obtaining the file transfer time of the input file from the shared database,
Figure FDA0002311730820000036
the individual random generation method based on the hierarchy comprises the following steps:
step B1: let UT be T, let k be variablej=1,j=1,2,…,J;
Step B2: randomly fetch a task with the minimum hierarchy value from UT, and set t as ti
Step B3: slave VMiRandomly selecting one virtual machine in the virtual network, and setting the virtual machine not to be vmj
Step B4: order to
Figure FDA0002311730820000037
kj=kj+1;
Step B5: if UT is not empty, go to step B2; otherwise go to step B6;
step B6: outputting an individual
Figure FDA0002311730820000038
Finishing the operation;
and 4, step 4: improving all individuals in the contemporary population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
the fitness value is workflow response time rs, and the calculation method is as follows:
Figure FDA0002311730820000039
wherein: rf (radio frequency)iIs the response time of the task i,
Figure FDA00023117308200000310
SFLiis the set of output files that task i outputs to the shared database, i.e.
Figure FDA00023117308200000311
j is the virtual machine number of processing task i, i.e. satisfies
Figure FDA00023117308200000312
J of (1);
the smaller the individual fitness value is, the better the individual is;
the FBI & D method comprises the steps of:
step C1: make reverse workflow response time
Figure FDA0002311730820000041
Wherein M is a number approaching infinity;
step C2: decoding the individual ch by adopting a serial individual decoding method based on an insertion mode to obtain the completion time f of all tasks1,…,fIAnd its workflow response time rs; if rs is less than
Figure FDA0002311730820000042
Go to step C3, otherwise, go to step C6;
step C3: corresponding gene sequence of each virtual machine j in individual ch
Figure FDA0002311730820000043
Rearranging according to the task completion time from large to small, J is 1, …, J, forming reverse individuals
Figure FDA0002311730820000044
Step C4: to pair
Figure FDA0002311730820000045
Decoding by adopting a serial reverse individual decoding method based on an insertion mode to obtain reverse completion time of all tasks
Figure FDA0002311730820000046
And its reverse workflow response time
Figure FDA0002311730820000047
If it is
Figure FDA0002311730820000048
If the value is less than rs, go to step C5, otherwise, go to step C6;
step C5: make the opposite direction single body
Figure FDA0002311730820000049
The gene sequence corresponding to each virtual machine j in the database
Figure FDA00023117308200000410
Rearranging according to the reverse completion time of the task from large to small, wherein J is 1, …, J, forming an individual ch, and turning to the step C2;
step C6: outputting the individual ch and the fitness value thereof, namely the workflow response time rs, and finishing the operation;
the LDI method comprises the following steps:
step D1: ordering task lists assigned to virtual machines
Figure FDA00023117308200000411
Calculating each virtual machine load
Figure FDA00023117308200000412
Step D2: finding out a virtual machine j' with the minimum load; if ld isj′>0, go to step D3, otherwise go to step D4;
step D3: order task set
Figure FDA00023117308200000413
Go to step D5;
step D4: order task set STj′=Tj′Go to step D5;
step D5: if STj′If not, from STj′Sequentially fetching a task i 'with the highest load of the virtual machine j' to go to step D6; otherwise go to step D7;
step D6: in that
Figure FDA00023117308200000414
Searching the last ancestor task number and the first descendant task number of the task i 'from front to back, and if both the ancestor task number and the first descendant task number are found, randomly searching a position between the last ancestor task number and the first descendant task number to insert the task i'; if the descendant task number does not exist and the ancestor task number exists, randomly finding a position behind the last ancestor task number to insert i'; if the descendant task number exists and the ancestor task number does not exist, randomly finding a position before the first descendant task number and inserting i'; if the descendant task number and the ancestor task number do not exist, randomly finding a position to insert i'; in that
Figure FDA00023117308200000415
Deleting i' to form new individual, using FBI&D, the method carries out decoding improvement on the new individual, if the new individual is improved, the improved individual is used for replacing the original individual, and the step D7 is carried out; otherwise go to step D5;
step D7: the LDI operation is finished;
the definition of the descendant task and the ancestor task is described as follows: if there is a task sequence
Figure FDA0002311730820000051
Satisfy the requirement of
Figure FDA0002311730820000052
Is that
Figure FDA0002311730820000053
Where 1 is not more than k<n is then
Figure FDA0002311730820000054
Is that
Figure FDA0002311730820000055
The task of the ancestor of (c),
Figure FDA0002311730820000056
is that
Figure FDA0002311730820000057
The descendant task of (2);
and 5: judging whether a termination condition is met, if so, turning to a step 10 after the evolution is finished, otherwise, turning to a step 6;
the termination condition is that the optimal individual is not improved after iteration to a designated generation TG or continuous iteration GG generation;
step 6: carrying out N times of parameterized uniform cross operations based on preference and two-dimensional topological sorting on the contemporary population to form a new population;
the parameterized uniform crossover operation based on preference and two-dimensional topological ordering comprises the following steps:
step E1: randomly selecting two different individuals from the contemporary population as parents by adopting a ranking-based round-robin method, and setting the individuals as parents
Figure FDA0002311730820000058
And chp1Has a fitness value of ch or lessp2Wherein: task number list
Figure FDA0002311730820000059
Task number list
Figure FDA00023117308200000510
J is 1, …, J, order the task number list
Figure FDA00023117308200000511
Making a cycle control variable delta equal to 1;
step E2: if δ ≦ I, go to step E3, otherwise go to step E6;
step E3: generating a random number λ ∈ [0,1) if λ<pbGo to step E4, otherwise go to step E5;
step E4: from chp1Randomly selecting one task which is not empty and is numbered as the first element of the task, wherein the parent task does not exist in the task or the parent task is scheduled
Figure FDA00023117308200000512
From
Figure FDA00023117308200000513
Take out the first element i' and add it to
Figure FDA00023117308200000514
And from chp2If i', δ is δ +1, go to step E2;
step E5: from chp2Randomly selecting one task which is not empty and is numbered as the first element of the task, wherein the parent task does not exist in the task or the parent task is scheduled
Figure FDA00023117308200000515
From
Figure FDA00023117308200000516
Take out the first element i' and add it to
Figure FDA00023117308200000517
And from chp1Deleting i ", δ ═ δ +1, go to step E2;
step E6: output sub-body
Figure FDA00023117308200000518
Finishing the operation;
wherein: p is a radical ofbE (0.5,1) is the preference rate;
and 7: performing mutation operation on each individual in the new population;
the mutation operation comprises the following steps:
step F1: randomly generating 1 random number lambda epsilon [0,1) if lambda is less than or equal to pmGo to step F2, otherwise go to step F5;
step F2: randomly selecting a task number i, and deleting a gene with the value of i in an individual;
step F3: slave VMiRandomly selecting a virtual machine again, and setting the virtual machine as a virtual machine j;
step F4: in that
Figure FDA0002311730820000061
Searching the last ancestor task number and the first descendant task number of the task i from front to back, and if both the last ancestor task number and the first descendant task number are found, randomly finding a position between the last ancestor task number and the first descendant task number to insert the i; if the descendant task number does not exist and the ancestor task number exists, randomly finding a position behind the last ancestor task number to insert i; if the descendant task number exists and the ancestor task number does not exist, randomly finding a position before the first descendant task number to insert i; if the descendant task number and the ancestor task number do not exist, randomly finding a position to insert i;
step F5: finishing individual variation operation;
wherein: p is a radical ofmE [0,1) is the mutation rate;
and 8: improving all individuals in the new population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
and step 9: selecting N different individuals from the current generation population and the new population from the superior to the inferior to form a new current generation population, and turning to the step 5;
step 10: and outputting the optimal individuals in the contemporary population, wherein the corresponding scheduling scheme is an optimal scheme.
2. The cloud workflow scheduling optimization method based on the two-dimensional coding genetic algorithm according to claim 1, characterized in that: the serial individual decoding method based on the insertion mode in the step C2 specifically includes the following steps:
step G1: let ready times rt of all tasksi0, I-1, …, I; make all virtual machines available a time period list vatlj={[0,M]And the task number list allocated to the virtual machine
Figure FDA0002311730820000062
Wherein M is a number approaching infinity;
step G2: selecting a VTI which is not empty and has no parent task or has the scheduled parent task in the first element according to the numbering sequence of the virtual machinejFrom VTIjTaking out the first element i;
step G3: assigning task i to virtual machine j based on the insertion pattern;
step G3.1: computing the execution time of task i
Figure FDA0002311730820000063
Step G3.2: in vatljFinding out an idle time period [ v ] from morning to eveningjj]Satisfies upsilonjj≥etiAnd upsilonj-eti≥rti
Step G3.3: calculating the start time and the completion time of task i: si=max{νj,rti},fi=si+eti(ii) a Updating the Ready time of a subtask of task i
Figure FDA0002311730820000064
Step G3.4: in vatljDeletion of [ v ]jj]V, with insertion interval length greater than 0j,si]And [ fij];
Step G4: if VTI1,…,VTIJIf not, go to step G2, otherwise, go to step G5;
step G5: obtain start and completion times for all tasks: si、fiI1, …, I, calculating a fitness value; the operation is ended.
3. The cloud workflow scheduling optimization method based on the two-dimensional coding genetic algorithm according to claim 1, characterized in that: the specific steps of the serial reverse individual decoding method based on the insertion mode in step C4 are as follows:
step H1: make reverse ready time of all tasks
Figure FDA0002311730820000071
Wherein: i is 1, …, and I, j is the virtual machine number that processes task I, i.e., satisfies
Figure FDA0002311730820000072
J of (1); make virtual machine available a time period list vatlj={[0,M]And the task number list allocated to the virtual machine
Figure FDA0002311730820000073
Wherein M is a number approaching infinity;
step H2: selecting a VTI which is not empty and has no subtask numbered first element or has all subtasks scheduled according to the numbering sequence of the virtual machinejFrom VTIjTaking out the first element i;
step H3: assigning task i to virtual machine j based on insertion patterns:
step H3.1: computing the execution time of task i
Figure FDA0002311730820000074
Step H3.2: in vatljFinding out an idle time period [ v ] from morning to eveningjj]Satisfy upsilonjj≥etiAnd
Figure FDA0002311730820000075
step H3.3: calculating a reverse start time for task i
Figure FDA0002311730820000076
Reverse completion time
Figure FDA0002311730820000077
Updating the Ready time of the parent task of task i
Figure FDA0002311730820000078
Step H3.4: list of time slots available in virtual machine, vatljDeletion of [ v ]jj]With an insertion interval length greater than 0
Figure FDA0002311730820000079
And
Figure FDA00023117308200000710
step H4: if VTI1,…,VTIJIf not, go to step H2, otherwise, go to step H5;
step H5: obtaining reverse start times and reverse completion times for all tasks:
Figure FDA00023117308200000711
calculating reverse workflow response times
Figure FDA00023117308200000712
The operation is ended.
4. The cloud workflow scheduling optimization method based on the two-dimensional coding genetic algorithm according to claim 1, characterized in that: the specific steps of randomly selecting two different individuals from the contemporary population as parents based on the ranking round-robin in the step E1 are as follows:
step E1.1: sequencing the individuals in the contemporary population from good to bad, namely, the fitness value is from small to large, and obtaining the sequencing value rk of the individual nnN is 1, …, N, where the first row takes 1, the second row takes 2, and so on, and the last row takes N;
step E1.2: calculating the probability that the individual n is selected
Figure FDA0002311730820000081
Wherein R is>1 is the discrimination coefficient;
step E1.3: calculating cumulative probability
Figure FDA0002311730820000082
Step E1.4: generating a random number lambda1E [0,1) if
Figure FDA0002311730820000083
Then the individual n is selected;
step E1.5: generating a random number lambda2E [0,1) if
Figure FDA0002311730820000084
And n '≠ n, then individual n' is selected, go to step E1.6, otherwise go to step E1.5;
step E1.6: two different individuals n and n' are obtained as parents and the individual selection operation ends.
CN201911261543.8A 2019-12-10 2019-12-10 Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm Withdrawn CN111078381A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911261543.8A CN111078381A (en) 2019-12-10 2019-12-10 Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911261543.8A CN111078381A (en) 2019-12-10 2019-12-10 Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm

Publications (1)

Publication Number Publication Date
CN111078381A true CN111078381A (en) 2020-04-28

Family

ID=70313656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911261543.8A Withdrawn CN111078381A (en) 2019-12-10 2019-12-10 Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm

Country Status (1)

Country Link
CN (1) CN111078381A (en)

Similar Documents

Publication Publication Date Title
CN109561148B (en) Distributed task scheduling method based on directed acyclic graph in edge computing network
Shen et al. Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems
US20180357610A1 (en) Method and system for collaborative scheduling of production and transportation based on shuffled frog leaping and path relinking algorithms
CN110928648B (en) Heuristic and intelligent computing-fused cloud workflow segmentation online scheduling optimization method
CN110780985A (en) Parallel task scheduling method and device with limited time
CN105094970B (en) The method of more times scheduling models of task can be divided under a kind of solution distributed system
CN111090510A (en) Two-stage cloud workflow scheduling optimization method based on hybrid heuristic algorithm and genetic algorithm
CN111008745A (en) Multi-mode resource-limited project scheduling optimization method based on hybrid heuristic and intelligent algorithms
CN111026534B (en) Workflow execution optimization method based on multiple group genetic algorithms in cloud computing environment
CN110991917B (en) Multi-mode resource-limited project scheduling optimization method adopting two-stage genetic algorithm
CN111126800B (en) Multi-mode resource-limited project scheduling method using layered self-adaptive intelligent algorithm
CN111078361A (en) Cloud workflow scheduling optimization method based on distributed estimation algorithm
CN110928670B (en) Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment
CN111078381A (en) Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm
CN111047183A (en) Cloud workflow scheduling optimization method based on layered self-adaptive intelligent computing algorithm
CN110928671B (en) Cloud workflow scheduling optimization method based on hierarchy and load balancing genetic algorithm
CN110941487B (en) Workflow scheduling optimization method based on multi-stage genetic algorithm in cloud computing environment
CN110968428A (en) Cloud workflow virtual machine configuration and task scheduling collaborative optimization method
CN110928669B (en) Energy consumption perception cloud workflow scheduling optimization method based on multi-population genetic algorithm
CN110990125A (en) Cloud workflow scheduling optimization method using two-dimensional two-stage intelligent computing algorithm
CN111026506A (en) Cloud workflow scheduling optimization method adopting multi-population coevolution genetic algorithm
CN111027856B (en) Multimode resource-constrained project scheduling method based on two-dimensional multi-population genetic algorithm
CN110991758A (en) Cloud workflow scheduling optimization method using two-dimensional fixed-length coding intelligent computing algorithm
CN111061563A (en) Workflow scheduling optimization method based on multi-decoding genetic algorithm in cloud computing environment
CN111026533A (en) Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20200428

WW01 Invention patent application withdrawn after publication