CN110928670A - Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment - Google Patents
Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment Download PDFInfo
- Publication number
- CN110928670A CN110928670A CN201911261591.7A CN201911261591A CN110928670A CN 110928670 A CN110928670 A CN 110928670A CN 201911261591 A CN201911261591 A CN 201911261591A CN 110928670 A CN110928670 A CN 110928670A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- task
- individual
- list
- time
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
The invention discloses a workflow optimization method based on a partial sequence adaptive genetic algorithm in a cloud computing environment, which comprises the following steps of: acquiring information required by executing optimization; calculating a level value of the task; initializing a contemporary population; decoding the improved current generation population and calculating a fitness value; carrying out cross variation operation on the contemporary population to form a new population; forming a new contemporary population from the contemporary population and the new population; outputting an execution optimization result until a termination condition is met; the invention adopts the methods and strategies of initial individual generation, adaptive genetic operation, topological sorting, non-decreasing partial order coding, serial individual decoding based on an insertion mode, forward and backward individual decoding improvement and the like based on the hierarchy and benefit ratio, realizes the integrated collaborative optimization of resource allocation and task scheduling, and improves the optimizing capability and the searching efficiency of the whole algorithm.
Description
Technical Field
The invention relates to the field of computer technology, information technology and system engineering, in particular to a cloud workflow optimization method, and more particularly relates to a workflow optimization method based on a partial order adaptive genetic algorithm in a cloud computing environment.
Background
The workflow under the cloud computing environment, called 'cloud workflow' for short, is the integration of cloud computing and workflow related technologies, and is used for scientific computing and cross-organization business cooperation requiring high-efficiency computing performance and large-scale storage support, such as: the system has wide application prospect in the fields of e-commerce, emergency management, supply chain management, health care and the like. In a cloud workflow, there are multiple types of computing resources and multiple tasks, and there are timing constraints between tasks, and a virtual machine is generally responsible for receiving and processing these tasks as a minimum allocation unit of computing resources during execution. Cloud workflow execution or scheduling optimization refers to how to reasonably configure virtual machines under the constraint of meeting the workflow task timing and user requirements, how to allocate workflow tasks to proper virtual machines and determine the execution sequence of the workflow tasks to optimize certain performance indexes such as: cost of implementation, response time, etc. The performance of the whole cloud workflow system is directly determined by cloud workflow execution optimization, and with the rapid increase of process automation requirements in a cloud computing environment, particularly requirements of large-scale assistance and distributed e-commerce and scientific computing applications, the cloud workflow execution optimization has become an important research content.
When cloud workflow execution optimization is performed, the optimization is generally performed only from the perspective of resource configuration or task scheduling, and collaborative optimization research on the resource configuration and the task scheduling is lacked. In fact, the resource allocation and the task scheduling of the cloud workflow are interacted as two optimization stages, the performance index of the cloud workflow execution is influenced together, and the execution performance of the cloud workflow can be effectively improved through collaborative optimization research aiming at the two optimization stages.
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 integrated collaborative optimization method to solve the problems of resource allocation and task scheduling optimization of the cloud workflow and improve the performance of cloud workflow execution.
Disclosure of Invention
Aiming at the defects that the current optimization is usually performed only from the perspective of resource allocation or task scheduling, an integrated collaborative optimization method of the resource allocation and the task scheduling is lacked, the cloud workflow execution performance is low and the like in the cloud workflow execution, the invention provides a workflow optimization method based on a partial order adaptive genetic algorithm in a cloud computing environment, and the cloud workflow execution performance is effectively improved.
The technical scheme adopted by the invention for solving the technical problems is as follows: a workflow optimization method based on a partial order adaptive genetic algorithm in a cloud computing environment comprises the following steps:
step 1: acquiring information required by executing optimization of the cloud workflow;
get task set T ═ T1,...,tI},tiRepresenting a task i, namely a task with the number i; wherein I is the number of tasks to be scheduled;
acquiring a time sequence relation between tasks: parent task set PR of task iiSubstask set SC for task iiWherein I is 1, …, I;
acquiring task related parameters: length len of task ii、leni>0, i.e. the number of instructions that need to be consumed by the virtual machine when task i is processed, the list of input files IFL that is needed when task i is processedi、Output file list OFL generated after task i is processedi、And the size of the file in the file list, wherein: i is 1, …, I; task i is task i+The requirements of the parent task are as follows: there is a file that is the output file of task i and is also task i+The input file of (a), namely:;
obtaining a virtual machine type set VM ═ VM in a cloud computing environment1,vm2,…,vmJWhere J is the number of types of virtual machines, vmjRepresenting a j-class virtual machine;
acquiring related parameters of the virtual machine: computing power ps of class j virtual machinesjBandwidth bw of class j virtual machinesjCost per unit time vc for class j virtual machinesjFixed lease-starting cost fc of j-class virtual machinejMinimum billing time unit ut for class j virtual machinesjMinimum lease-on time ft of class j virtual machinej(ii) a The cost of renting a class j virtual machine is calculated as follows:
acquiring cost constraint Budget and time constraint Deadline executed by a workflow in a cloud computing environment; if no cost constraint exists, setting Budget as MBV, and if no time constraint exists, setting Deadline as MDV; wherein: MBV is the upper cost limit, and MDV is the upper time limit;
step 2: calculating a level value of the task;
for a starting task i without a parent task, the hierarchy value is:
lvli=1 (1)
the hierarchy values of other tasks are calculated using the following recursive formula:
and step 3: initializing a contemporary population;
generating 1 individual by an individual generation method based on the hierarchy and the benefit ratio, and generating the remaining N-1 different individuals by an individual random generation method based on the hierarchy to form an initial contemporary population; wherein N is an even number is the population size;
the individual encoding method is as follows: ch ═ gr1,…,grI;gs1,…,gsI;gt1,…,gtIWhere { gr1,…,grIThe scheduling order list is a topological order of task numbers; { gs1,…,gsIIs the virtual machine allocation list, gsiIndicating the virtual machine instance number, gs, assigned to task i1,…,gsITaking an integer value between 1 and I; { gt1,…,gtIIs a list of virtual machine types, gtiType of virtual machine instance denoted i, i.e. type of virtual machine instance i, gt1,…,gtIIs a non-decreasing permutation;
the individual random generation method based on the hierarchy and the benefit ratio comprises the following steps:
step A1: according to the random arrangement of tasks with the level values of the tasks from small to large, namely the random arrangement with the level values of the tasks arranged in front of the tasks with small level values and the same level values, generating an individual task scheduling sequence list { gr1,…,grI};
Step A2: randomly generating I random integers from 1 to J: pi1、……、πI(ii) a The arrangement from small to large is not assumed:order:generating a list of individual virtual machine types { gt1,…,gtI};
Step A3: generating individual virtual machine allocation list { gs) based on benefit ratio1,…,gsI}:
Step A3.1: enabling a set of virtual machine instances for assigned tasksReady time rt of all tasks1=…=rtI0; available time period list of all virtual machine instances, vatlk={[0,∞]1,2, …, I; let the variable δ be 1;
step A3.2: let variable i become grδThe variable k is 1; calculating the handle tiThe comprehensive benefit ratio after being respectively allocated to each potential virtual machine instance is as follows:
step A3.2.1: calculating tiExecution time after assignment to virtual machine instance numbered kWherein:is a handle tiThe processing time of the task when the virtual machine instance with the number k is processed, is the processing power of the virtual machine instance numbered k;is a handle tiThe virtual machine instance with the number k needs to obtain the file transfer time of the input file from other virtual machines when processing,
k-is to treatThe number of the virtual machine instance of (c),andis numbered k and k-Bandwidth of the virtual machine instance of (1);is a handle tiThe virtual machine instance with number k needs to obtain the file transfer time of the input file from the shared database when processing,
step A3.2.2: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥eti,kAnd upsilonk-eti,k≥rti;
Step A3.2.3: calculating tiStarting time s after assigning to virtual machine instance numbered ki,k=max{νk,rtiH, completion time fi,k=si,k+eti,k;
Step A3.2.4, calculating the comprehensive benefit ratio ξi,k:
If inskE.g. INS, wherein INSkRepresenting the virtual machine instance numbered k, then
Wherein: theta belongs to [0,1] and is a weight coefficient, and mu is a coordination coefficient of cost and time;
Rnt′k}-min{si,k,Hrt′kassign existing tasks to inskIn the case of (2), t isiIs assigned to inskHindinskLease time of'k=Rnt′k-Hrt′kIs tiHave not been assigned to inskFront inskThe time of lease of (a) is,is tiHave not been assigned to inskFront inskThe return time of (c);
WhereinFor no task yet assigned to inskIn the case of (2), t isiIs assigned to inskHindinskThe lease time of;
step A3.2.5: let k be k +1, if k ≦ I, go to step A3.2.1; otherwise go to step A3.3;
step A3.3-in sequence from ξi,1,…,ξi,IFind a minimum among them, do not set asIf the number isVirtual machine instance ofThen
step A3.5: let δ be δ + 1; if delta is less than or equal to I, go to step A3.2, otherwise go to step A3.6;
step A3.6: obtaining a virtual machine allocation list gs1,…,gsI};
Step A4: output individual ch ═ gr1,…,grI;gs1,…,gsI;gt1,…,gtIFourthly, the operation is finished;
the individual random generation method based on the hierarchy comprises the following steps:
step B1: according to the random arrangement of tasks with the same hierarchy value and with the hierarchy value in front of the small hierarchy value, the tasks are randomly arranged from small to largeIndividual task scheduling order list { gr1,…,grI};
Step B2: randomly generating I random integers from 1 to J: pi1、……、πI(ii) a The arrangement from small to large is not assumed:order:generating a list of individual virtual machine types { gt1,…,gtI};
Step B3: randomly generating I random integers from 1 to I, which are not set as: pi'1、……、π′I(ii) a Order: gs is1=π′1、……、gsI=π′IGenerating an individual virtual machine allocation list { gs1,…,gsI};
Step B4: output individual ch ═ gr1,…,grI;gs1,…,gsI;gt1,…,gtIFourthly, the operation is finished;
and 4, step 4: decoding and improving each individual in the contemporary population by adopting FBI & D to obtain the workflow response time and the execution cost of each individual, and then calculating the relative fitness value of all infeasible individuals and the absolute fitness value of feasible individuals;
for individual chnThe FBI&D comprises the following steps:
Step C2: individual ch adopting serial individual decoding method based on insertion modenDecoding is carried out to obtain the completion time f of all tasks1,…,fIAnd its workflow response time rsn(ii) a If rsnIs less thanGo to step C3, otherwise, go to step C6;
step C3: an individual chnAccording to the task completion time fiRearranging from large to small, i.e. chnGene gr in (1)iSet to the I-last completed task, I-1, …, I, forming an inverted individual
Step C4: method for decoding reverse individuals by adopting serial reverse individuals based on insertion modeDecoding to obtain the reverse completion time of all tasksAnd its workflow reverse response timeIf it isLess than rsnGo to step C5, otherwise go to step C6;
step C5: make the opposite direction single bodyAccording to the task reverse completion time of the task scheduling sequence list in (1)Rearranged from large to small, i.e.Gene gr in (1)iSet to the I-last completed task, I-1, …, I, forming an individual chnGo to step C2;
step C6: output individual chnAnd its workflow response time rsnAnd calculating the workflow execution cost ctnAnd the operation is finished;
the serial individual decoding method based on the insertion mode is used for individual chnThe decoding comprises the following steps:
step D1: let ready times rt of all tasksi0, I-1, …, I; let the variable δ be 1; make available time period list of all virtual machine instances vatlk={[0,∞]},k=1,…,I;
Step D2: selecting the serial number i-grδThe task of (1);
step D3: assigning task i to a number k-gs based on an insertion patterniThe virtual machine instance of (1);
Step D3.2: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd upsilonk-eti≥rti;
Step D3.3: calculating the start time s of task ii=max{νk,rtiH, completion time fi=si+eti;
Step D3.5: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]V, with insertion interval length greater than 0k,si]And [ fi,υk];
Step D4: let δ be δ +1, if δ ≦ I, go to step D2, otherwise step D5;
step D5: obtaining a start time and an end time of the task: si,fiI1, …, I, calculating the execution cost of the workflowctnAnd response time rsnAnd the operation is finished;
the serial reverse individual decoding method based on the insertion mode is used for decoding reverse individualsThe decoding comprises the following steps:
step E1: make reverse ready time of all tasksWherein SFLiIs the set of output files that task i outputs to the shared database, i.e.I is 1, …, I; let the variable δ be 1; make virtual machine available a time period list vatlk={[0,∞]},k=1,…,I;
Step E2: selecting the serial number i-grδThe task of (1);
step E3: assigning task i to a number k-gs based on an insertion patterniThe virtual machine instance of (2):
Step E3.2: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd
Step E3.5: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]With an insertion interval length greater than 0And
step E4: let δ be δ +1, if δ ≦ I, go to step E2, otherwise step E5;
step E5: obtaining a reverse start time for a taskAnd reverse completion timeI-1, …, I, and its workflow reversal response timeFinishing the operation;
and 5: judging whether a termination condition is met, if so, turning to a step 8 after the evolution is finished, and otherwise, turning to a step 6;
the termination condition is that no feasible individual or optimal feasible individual is improved when iteration is carried out to a specified generation TG or continuous iteration GG generation;
step 6: performing cross and variation operations on the contemporary population to form a new population;
step 6.1: making the new population empty;
step 6.2: randomly selecting two different individuals from the contemporary population as a father 1 and a father 2 based on a ranking round-robin method;
step 6.3: randomly selecting a cross method to carry out cross operation on the father body 1 and the father body 2 by adopting a value-based round-robin method according to the fitness value of the cross method to generate two daughter bodies; decoding and improving by adopting FBI & D, if the daughter is a feasible individual, calculating an absolute fitness value of the daughter, and otherwise, calculating a relative fitness value of the daughter; updating the fitness value of the intersection method according to the formula (3);
step 6.4: generating a random number lambda1E [0,1), if λ1<pmThen, randomly selecting a variation method for the daughter 1 according to the fitness value of the variation method by adopting a value-based betting method to perform variation operation; using FBI&D, decoding and improving; if the daughter 1 is a viable individual, calculating its absolute fitness value, otherwise calculating its relative fitness value; updating the adaptability value of the variation method according to the formula (4);
step 6.5: generating a random number lambda2E [0,1), if λ2<pmThen, randomly selecting a variation method for the daughter 2 according to the fitness value of the variation method by adopting a value-based betting method to perform variation operation; using FBI&D, decoding and improving; if the daughter 2 is a viable individual, calculating its absolute fitness value, otherwise calculating its relative fitness value; updating the adaptability value of the variation method according to the formula (4);
step 6.6: adding daughter 1 and daughter 2 to the new population; if the number of the new population is less than N, go to step 6.2, otherwise go to step 7;
wherein: p is a radical ofm∈(0,1]Is the rate of variation;
the crossing method comprises the following steps: the task scheduling sequence lists are crossed, the virtual machine distribution lists are crossed, and the types of the virtual machines are crossed;
the crossing method 1: the task scheduling sequence list intersection comprises the following steps:
step F1, randomly generating a positive integer α from 1 to I-1;
step F2: ch (channel)c1The first α genes in the task scheduling order list of (1) are from chp1The first α genes of the task scheduling order list of (1), gri c1=gri p1I is more than or equal to 1 and less than or equal to α, and the last I- α genes come from chp2Task scheduling order list { gr1 p2,…,grI p2The deleted gene value in the } is equal toThe latter gene list; ch (channel)c1The virtual machine allocation list and the virtual machine type list come from the chp1Namely:1≤i≤I;
step F3: ch (channel)c2The first α genes in the task scheduling order list of (1) are from chp2The first α genes of the task scheduling order list of (1), gri c2=gri p2I is more than or equal to 1 and less than or equal to α, and the last I- α genes come from chp1Task scheduling order list ofMiddle deletion gene value equal toThe latter gene list; ch (channel)c2The virtual machine allocation list and the virtual machine type list come from the chp2Namely:1≤i≤I;
step F4: output chc1And chc2And the operation is finished;
and (3) a crossing method 2: the virtual machine distribution list intersection comprises the following steps:
g1, randomly generating a positive integer α from 1 to I-1;
step G2: ch (channel)c1The first α genes of the virtual machine assignment list in (1) are from chp1The first α genes of the virtual machine allocation list of (1), namely:i is more than or equal to 1 and less than or equal to α, and the last I- α genes come from chp2The last I- α genes of the virtual machine allocation list of (1), namely:α+1≤i≤I;chc1the task scheduling order list and the virtual machine type list come from the chp1Namely: gr is a group ofi c1=gri p1,1≤i≤I;
Step G3: ch (channel)c2The first α genes of the virtual machine assignment list in (1) are from chp2The first α genes of the virtual machine allocation list of (1), namely:i is more than or equal to 1 and less than or equal to α, and the last I- α genes come from chp1The last I- α genes of the virtual machine allocation list of (1), namely:α+1≤i≤I;chc2the task scheduling order list and the virtual machine type list come from the chp2Namely: gr is a group ofi c2=gri p2,1≤i≤I;
Step G4: output chc1And chc2And the operation is finished;
and (3) a crossing method: the virtual machine type crossing comprises the following steps:
step H1, randomly generating a positive integer α from 1 to I-1;
step H2: ch (channel)c1The task scheduling order list and the virtual machine allocation list are from chp1Namely: gr is a group ofi c1=gri p1,1≤i≤I;chc1The first α genes of the virtual machine type list from chp1The first α genes of the list of virtual machine types of (c), namely:1≤i≤α;chc1the last I- α genes of the list of virtual machine types from chp2The last I- α genes of the list of virtual machine types of (2), namely:α + 1. ltoreq. i.ltoreq.I, ifGo to step H3, otherwise go to step H4;
Step H4: ch (channel)c2The task scheduling order list and the virtual machine allocation list are from chp2Namely: gr is a group ofi c2=gri p2,1≤i≤I;chc2The first α genes of the virtual machine type list from chp2The first α genes of the list of virtual machine types of (c), namely:1≤i≤α;chc2the last I- α genes of the list of virtual machine types from chp1The last I- α genes of the list of virtual machine types of (2), namely:α + 1. ltoreq. i.ltoreq.I, ifGo to step H5, otherwise go to step H6;
Step H6: output chc1And chc2And the operation is finished;
the mutation method comprises the following steps: the task scheduling sequence list is mutated, the virtual machine distribution list is mutated, and the virtual machine type list is mutated;
mutation method 1: scheduling sequential list variation, comprising the steps of:
step I1: from the task scheduling order list { gr1,…,grIRandomly select a gene, not set as gri;
Step I2: if task griFinding the first parent task gr forward if there is a parent taski′Let the position value pos1If not, let pos11 is ═ 1; if task griFinding backwards if there is a subtaskTo the first subtask gri″Let the position value pos2Else let pos be2=I;
Step I3: in [ pos ]1,pos2]Randomly selects a position to insert griAnd the operation is finished;
mutation method 2: the virtual machine allocation list mutation comprises the following steps:
step J1, generating a random integer from 1 to I, which is not set to ξ;
step J2: from { gs1,…,gsIξ genes are randomly selected, an example number is randomly selected from 1, … and I again for each selected gene, and the operation is finished;
mutation method 3: the method for mutating the virtual machine type list comprises the following steps:
step K1: let0=1,gtI+1J; finding a valid set of positions for a variation
SPS={i|(gti≠gti-1∨gti≠gti+1)∧1≤i≤I};
Step K2: randomly selecting a position from the SPS, and setting the position as i;
step K3: in [ gti-1,gti+1]Randomly selects an integer value between the two, let it be j, let gtiJ, finishing the operation;
the fitness value of the intersection method and the mutation method and the updating method thereof are described as follows:
setting a fitness value cf for each intersection method iiE (0, 1); setting a fitness value mf for each variation method iiE (0,1), randomly selecting one to perform genetic operation by adopting a round-robin method based on fitness value when performing cross or mutation operation each time, and updating the fitness value after each genetic operation by adopting the following method:
wherein:
cfi′,cfirespectively representing the fitness values of the intersection method i before and after use;
mfi′,mfirespectively representing the fitness values of the mutation method i before and after use;
indicates that the individual ch ' is not superior to the individual ch, namely one of the following conditions that ① ch and ch ' are both infeasible individuals, but the relative fitness value of the ch is less than or equal to that of the ch ';
chp1,chp2showing two parents, without provision forchc1,chc2Showing two sub-bodies 1 and 2, without providing
and 7: 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;
and 8: and if the feasible individuals exist in the contemporary population, outputting the individual with the minimum absolute fitness value in the contemporary population, wherein the corresponding execution scheme is the optimization scheme, otherwise, no feasible execution scheme exists.
Further, a specific calculation method of the MBV and MDV is as follows:
Further, for individual chnCalculating the workflow response time rs in said step C5nAnd an execution cost ctnThe specific calculation method is as follows:
wherein:is the fixed lease start cost for the virtual machine instance numbered k,is the cost per unit time of the virtual machine instance numbered k,is the minimum billing time unit for the virtual machine instance numbered k,is the minimum lease-on time for the virtual machine instance numbered k,is the bandwidth of the virtual machine instance numbered k, ltk=Rntk-HrtkIs the lease time, Hrt, of the virtual machine instance numbered kkThe start lease time of the virtual machine instance numbered k; rntkThe return time of the virtual machine instance with the number of k is obtained;tfiis to complete OFLiIf t is the maximum time at which the file in (1) is output to the corresponding recipientiWithout exporting files to the shared databaseThen the corresponding recipient is processing tiIf t is a virtual machine of the subtask ofiWithout subtasks, i.e.The respective recipient is a shared database, otherwise if tiWith both file output to the shared database and subtasksThen the corresponding recipient is processing tiThe virtual machines and the shared database of the subtasks,
further, for individual ch in the populationnN is 1,2 …, N if ctn≤Budget∨rsnWhen the adaline is not more than the preset value, ch isnAs viable individuals, otherwise chnIs not feasible(ii) an individual;
the specific calculation method of the relative fitness value of the infeasible individual is as follows:
the specific calculation method of the absolute fitness value of the feasible individual is as follows: afitn=θ×μ×ctn+(1-θ)×rsn;
Wherein: theta belongs to [0,1] and is a weight coefficient, and mu is a coordination coefficient of cost and time;
when the individual quality is compared, the feasible individual is superior to the infeasible individual; for all feasible individuals, the smaller the absolute fitness value is, the better the individual is; for all infeasible individuals, the smaller the relative fitness value, the better the individual.
Further, the specific steps of randomly selecting two different individuals from the contemporary population as father 1 and father 2 based on the ranking round-robin in the step 6.2 are as follows:
step L1: sequencing the individuals in the current generation population from good to bad to obtain 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 L2: calculating the probability that the individual n is selectedn=1,…,N,R>1 is a discrimination coefficient;
step L5: generating a random number lambda2E [0,1) ifAnd n '≠ n, then individual n' is selected as parent 2, proceeding to step L6, otherwise to step L5;
step L6: the individual selection operation ends.
Further, the specific steps of randomly selecting a crossover method by the value-based betting round method in the step 6.3 are as follows:
step M1: calculating the probability of the cross method i being selected according to the fitness valuei=1,…,3;
Step M3: generating a random number λ ∈ [0,1) ifif i is 1, …,3, then the crossover method i is selected and the crossover method selection operation ends.
Further, the value-based betting round in step 6.4 and step 6.5 comprises the following steps:
step N1: calculating the probability of the selected variant method i according to the fitness valuei=1,…,3;
Step N3: generating a random number λ ∈ [0,1) ifif i is 1, …,3, then the variant is selectedAnd F, finishing the mutation method selection operation.
The invention has the beneficial effects that:
(1) compared with the workflow scheduling optimization method under the existing cloud computing environment, the method simultaneously considers resource allocation and task scheduling, and realizes integrated collaborative optimization of the resource allocation and the task scheduling.
(2) Compared with a heuristic method, a semi-intelligent calculation method combined with the heuristic method and the existing intelligent calculation method based on layered coding, the invention adopts an integer coding method, and any scheduling scheme can have an individual corresponding to the integer coding method, so the search space is complete and the global search can be realized.
(3) Compared with the traditional fixed genetic operation method, the adaptive genetic operation method is adopted in the design of the invention, and the appropriate genetic operation can be dynamically selected according to the operation fitness value, thereby being beneficial to generating more and better individuals and keeping the diversity of the population.
(4) Compared with a common coding mode based on priority, the task scheduling sequence adopts an integer coding method based on topological sorting, and the time sequence relation among tasks is considered, so that the decoding is simpler, the decoding efficiency can be effectively improved, and the overall efficiency of the algorithm is further improved.
(5) Compared with a general full-order coding mode, the method adopts a non-decreasing partial-order coding mode for the virtual machine type list, so that the coding search space is effectively reduced on the premise of ensuring the completeness of the search space, and the overall efficiency of the algorithm is further improved.
(6) 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.
(7) Compared with the common one-way decoding method, the forward and backward individual decoding and improvement strategy FBI & D adopted by the design of the invention enhances the neighborhood optimizing capability of the individual, thereby improving the optimizing capability and the searching efficiency of the whole algorithm.
(8) The invention adopts a strategy of generating a new contemporary population by combining the contemporary population and the new population, thereby ensuring that the optimal individual is inherited to the next generation and leading the algorithm to be monotonously converged.
(9) Compared with the traditional random initialization method, the invention adopts the generation method based on the hierarchy and the benefit ratio when initializing the seed group, so that the algorithm can start searching from the vicinity of the better individual satisfying the hierarchical coding, thereby improving the searching efficiency and shortening the searching time.
(10) The invention designs a new individual fitness value calculation and quality comparison method for optimizing the workflow execution cost and the response time in the cloud computing environment, and can quickly and conveniently realize the quality comparison among individuals.
(11) The invention designs a universal virtual machine renting charging model which is suitable for charging rules of all IaaS platforms such as Amazon EC2, Microsoft Azure, Google cloud, Array cloud, Tencent cloud and the like.
Drawings
FIG. 1 is a schematic flow chart of the workflow optimization method based on the partial order adaptive genetic algorithm in the cloud computing environment.
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 that there are 5 virtual machine types vm numbered 1 to 5 under a cloud computing service provider, i.e., a cloud computing environment1、vm2、vm3、vm4、vm5The computing power, bandwidth, unit time cost, fixed lease initiation cost, minimum billing time unit and minimum lease initiation time of various virtual machine types are shown in table 1; the time sequence relationship between one Montage workflow task is shown in FIG. 2, which is composed of 15 tasks t numbered from 1 to 151、t2、…、t15Composition, execution length of each task, names of input files required for processing and output files after processing,The lengths are shown in table 2.
TABLE 1
TABLE 2
For the above case, as shown in fig. 1, a workflow optimization method based on a partial order adaptive genetic algorithm in a cloud computing environment includes the following implementation steps:
executing the step 1: acquiring information required by executing optimization of the cloud workflow;
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: 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},
Acquiring relevant parameters of the task: len (a)1=42×107MI,IFL1={fd1,fd2},OFL1={f1-1,f1-2};
len2=36×107MI,IFL2={fd1,fd3},OFL2={f2-1,f2-2};len3=63×107MI,IFL3={fd1,fd4},OFL3={f3-1,f3-2};len4=46×107MI,IFL4={fd1,f1-1,f1-2},OFL4={f4-1,f4-2};……;
len15=48×107MI,IFL15={f14-1},OFL15={f15-1};fd1.size=36000MB,fd2.size=43200MB,f1-1.size=39600MB,f1-2.size=39600MB,……,f14-1.size=356000MB,f15-1.size=42000MB;
Acquiring a virtual machine type set in a cloud computing environment: VM ═ VM1,vm2,vm3,vm4,vm5};
Acquiring related parameters of the virtual machine: ps is1=10000MI/s,bw1=200Mbit/s,vc10.5-membered, fc13 yuan, ut1=600s,ft1=7200s;ps2=20000MI/s,bw2=200Mbit/s,vc20.8 membered, fc24 yuan, ut2=600s,ft2=7200s;ps3=40000MI/s,bw3=300Mbit/s,vc31.4-membered, fc36 yuan, ut3=600s,ft3=7200s;ps4=40000MI/s,bw4=400Mbit/s,vc41.7 membered, fc47 yuan, ut4=600s,ft4=7200s;ps5=60000MI/s,bw5=400Mbit/s,vc52.1 yuan, fc58 Yuan, ut5=600s,ft5=7200s;
Acquiring a cost constraint Budget of workflow execution under a cloud computing environment as 1500 yuan, and a time constraint Deadline as 150000 s;
and (3) executing the step 2: calculating a level value of the task;
if task 1, task 2 and task 3 have no parent task, lvl1=lvl2=lvl3=1;
Task 4 has only one parent task 1, thenSimilarly, the hierarchy values of other tasks may be obtained: lvl5=lvl6=2;lvl7=3;lvl8=4;lvl9=lvl10=lvl11=5;lvl12=6;lvl13=7;lvl14=8;lvl15=9。
And (3) executing the step: initializing contemporary populations
Taking the population size N as 10; generating 1 individual based on a level and benefit ratio individual generation method, and generating the remaining 9 different individuals based on a level individual random generation method to form an initial contemporary population;
taking the weight coefficient theta as 0.4 and the coordination coefficient mu of the cost and the time as 250;
the specific implementation process of 1 individual generated by the individual generation method based on the hierarchy and the benefit ratio is as follows:
step a1 is executed: randomly arranging tasks according to the level values of the tasks from small to large, and randomly arranging the tasks with the level value of 1 into a sequence which is as follows: 3.1, 2; randomly arranging tasks with a hierarchy value of 2, wherein the tasks are 6,4 and 5; the task of the level value 3 is only 7; the task with the hierarchy value of 4 is only 8; randomly arranging tasks with a hierarchy value of 5, wherein the tasks are 11,10 and 9; the task for the hierarchy value 6 is only 12; the task for the level value 7 is only 13; the task of the level value 8 is only 14; the task for the hierarchy value 9 is only 15; sequentially connecting the arrangements according to the hierarchy values from small to large to generate an individual task scheduling sequence list {3,1,2,6,4,5,7,8,11,10,9,12,13,14 and 15 };
step a2 is executed: randomly generating 15 random integers of 1 to 5: pi1、……、π15It is as follows: 1. 2,1, 4,1, 2,3,1, 5, 3,1,4, 5, 2, 5; arranged from small to largeComprises the following steps: 1.1, 2,3,4, 5; order:generating a list of individual virtual machine types {1,1,1,1,1,2,2,2,3,3,4,4,5,5,5 };
step a3 is executed: generating individual virtual machine allocation list { gs) based on benefit ratio1,…,gs15}:
I.e. step a 3.1: enabling a set of virtual machine instances for assigned tasksReady time for all tasks: rt is an integer of1=…=rt150; available time period list of all virtual machine instances, vatl1=…=vatl15={[0,∞]},δ=1;
Step a3.2 is performed: i-gr13, k is 1; calculating the handle t3The comprehensive benefit ratio after being respectively allocated to each potential virtual machine instance is as follows: step A3.2.1 is executed: calculating t3Execution time after assignment to virtual machine instance number 1Execution of step A3.2.2: in vatl1Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et3,166168 and ∞ -66168 ≧ rt3=0;
Execution of step A3.2.3: calculating t3Starting time s after virtual machine instance number 1 is assigned3,1=max{ν1,rt3Max {0,0}, 0, completion time f3,1=s3,1+et3,166168, proceed to A3.2.4 calculating a combined benefit ratio ξ3,1: due to the fact thatTherefore, it is
Execution of step A3.2.5: k is 1+1 — 2, and since k is 2 ≦ I ≦ 15, go to step A3.2.1; execution of step A3.2.1: calculating t3Execution time after assignment to virtual machine instance number 2Execution of step A3.2.2: in vatl2Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et3,266168 and ∞ -66168 ≧ rt30; execution of step A3.2.3: calculating t3Start time s after assignment to virtual machine instance number 23,2=max{ν2,rt3Max {0,0} -, 0, completion timef3,2=s3,2+et3,266168, proceed to A3.2.4 calculating a combined benefit ratio ξ3,247644; execution of step A3.2.5: k 2+1 — 3, and go to step A3.2.1 since k3 ≦ I ≦ 15; …, respectively; the steps A3.2.1 to A3.2.5 are repeated until k is 16>The obtained comprehensive benefit ratio is ξ when I is 153,1=47644,ξ3,2=47644,ξ3,3=47644,ξ3,4=47644,ξ3,5=47644,ξ3,6=28084,ξ3,7=28084,ξ3,8=28084,ξ3,9=17306,ξ3,10=17306,ξ3,11=17462,ξ3,12=17462,ξ3,13=13802,ξ3,14=13802,ξ3,15=13802;
Step A3.3 is performed, in order from ξ3,1,…,ξ3,15Find a minimum of ξ3,13(ii) a Due to the virtual machine instance numbered 13Then INS ∪ INS13={ins13};
Step a3.4 is performed: assignment of task 3 to virtual machine instance numbered 13, gs313: step A3.4.1: calculating the start time s of a task3=s3,130, end time f3=f3,1312084; step a3.4.2 is performed: updating the Ready time rt of a subtask of task 36=max{rt6,f3}=12084,rt11=max{rt11,f312084; execution of step A3.4.3: in vatl13Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et3,1312084 and infinity-12084 ≧ rt30; execution of step A3.4.4: in vatl13Deletion of [0, ∞]Insertion interval length of [12084, ∞ ] of more than 0](ii) a Step a3.5 is performed: δ 1+1 — 2; since δ 2 ≦ I ≦ 15, go to step a 3.2;
step a3.2 is performed: i-gr21, k is 1; calculating the handle t1Is respectively distributed to eachThe comprehensive benefit ratio after the potential virtual machine instance is as follows: step A3.2.1 is executed: calculating t1Execution time after assignment to virtual machine instance number 1Execution of step A3.2.2: in vatl1Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et1,145168 and ∞ -45168 ≧ rt10; execution of step A3.2.3: calculating t1Starting time s after virtual machine instance number 1 is assigned1,1=max{ν1,rt10, completion time f1,1=s1,1+et1,1=45168;
Step A3.2.4 is performed calculating the overall benefit ratio ξ1,133351.6: execution of step A3.2.5: if k is 1+1 — 2, go to step A3.2.1, since k is 2 ≦ I ≦ 15; … …, respectively; thus, steps A3.2.1 to A3.2.5 are repeatedly executed until k is 13, and step A3.2.1 is executed: calculating t1Execution time after assignment to virtual machine instance number 13Execution of step A3.2.2: in vatl13Finding an idle period [12084, ∞ from morning to evening]Satisfies ∞ -12083 ≥ et1,138584 and ∞ -8584 ≧ rt10; execution of step A3.2.3: calculating t1Start time s after assignment to virtual machine instance number 131,13=max{ν13,rt112084, completion time f1,13=s1,13+et1,1320668; execution of step A3.2.4: calculating the comprehensive benefit ratio: due to ins13Belongs to INS, so:
execution of step A3.2.5: if k is 13+1 is 14, go to step A3.2.1, since k is 14 ≦ I is 15; … …, respectively; thus, the steps A3.2.1 to A3.2.5 are repeated until k is 16> I is 15, resulting in the overall benefit ratio:
ξ1,1=33351.6,ξ1,2=33351.6,ξ1,3=33351.6,ξ1,4=33351.6,ξ1,5=33351.6,ξ1,6=20481.6,ξ1,7=20481.6,ξ1,8=20481.6,ξ1,9=12934.4,ξ1,10=12934.4,ξ1,11=12810.8,ξ1,12=12810.8,ξ1,13=16501.2,ξ1,14=10470.8,ξ1,1510470.8, go to step a 3.3;
step A3.3 is performed, in order from ξ1,1,…,ξ1,15Find a minimum of ξ1,14(ii) a Due to virtual machine instance number 14Then INS ∪ INS14={ins13,ins14};
Step a3.4 is performed: assignment of task 1 to virtual machine instance numbered 14, gs114: execution of step A3.4.1: calculating the start time s of a task1=s1,140, end time f1=f1,148584; step a3.4.2 is performed: updating the Ready time rt of a subtask of a task 144=max{rt4,f1}=8584,rt5=8584,rt6=max{12084,8584}=12084,rt98584; execution of step A3.4.3: in vatl14Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et1,148584 and ∞ -8584 ≧ rt10; handleLine step A3.4.4: in vatl14Deletion of [0, ∞]Insertion interval length of [8584, ∞ ] of more than 0];
Step a3.5 is performed: δ 2+1 — 3; since δ ≦ I ≦ 15, go to step a 3.2;
……
so that step a3.2 to step a3.5 are repeatedly executed until δ ═ 16> I ═ 15, go to step a 3.6;
step a3.6 is performed: obtaining a virtual machine allocation list {14,15,13,14,15,13,15,15,11,15,15,15,15,15,15 };
step A4: output unit
ch11, {3,1,2,6,4,5,7,8,11,10,9,12,13,14, 15; 14,15,13,14,15,13,15,15,11,15,15,15,15,15, 15; 1,1,1,1,1,2,2,2,3,3,4,4,5,5,5}, and the operation is finished;
the specific implementation process of generating 1 individual based on the level individual random generation method is as follows:
step B1 is executed: randomly arranging tasks according to the task hierarchy value from small to large, and randomly arranging the tasks with the hierarchy value of 1, wherein the tasks are 1,2 and 3; randomly arranging tasks with a hierarchy value of 2, wherein the tasks are 5,6 and 4; the task of the level value 3 is only 7; the task with the hierarchy value of 4 is only 8; randomly arranging tasks with a hierarchy value of 5, wherein the tasks are 10,9 and 11; the task for the hierarchy value 6 is only 12; the task for the level value 7 is only 13; the task of the level value 8 is only 14; the task for the hierarchy value 9 is only 15; sequentially connecting the sequences according to the hierarchy values from small to large to generate an individual task scheduling sequence list {1,2,3,5,6,4,7,8,10,9,11,12,13,14 and 15 };
step B2 is executed: randomly generating 15 random integers of 1 to 5: pi1、……、π15It is as follows: 1.4, 3,4, 1,4, 3,5, 3,1,4, 5; arranged from small to largeComprises the following steps: 1.1, 3,4, 5; order:generating a list of individual virtual machine types {1,1,1,3,3,3,3,4,4,4,4,4,5,5,5 };
step B3 is executed: randomly producing 15 random integers of 1 to 15: pi'1、……、π′15It is as follows: 6. 9,4, 12,13,9,15,10,1,11,1,5,8, 10; order: gs is1=π1=6,……,gs15=π15Generating an individual virtual machine allocation list {6,9,4,4,12,13,9,15,10,1,11,1,5,8,10 };
step B4 is executed: output unit
similarly, other different individuals generated by the individual random generation method based on the hierarchy are as follows:
ch3={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;6,3,6,2,1,15,10,11,6,8,13,7,13,9,3;1,1,2,2,3,3,3,4,4,4,4,4,5,5,5}
ch4={3,1,2,6,5,4,7,8,10,9,11,12,13,14,15;9,15,2,10,5,3,10,5,12,15,8,11,4,9,4;1,1,1,1,2,2,2,3,3,4,4,4,5,5,5}
ch5={1,3,2,5,6,4,7,8,10,11,9,12,13,14,15;12,14,7,13,1,11,15,9,5,7,1,9,13,8,9;1,1,1,1,1,2,3,3,3,3,4,5,5,5,5}
ch6={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;5,8,3,13,11,3,14,7,12,13,3,2,14,6,11;1,1,1,1,1,2,2,3,4,4,4,4,5,5,5}
ch7={2,1,3,6,5,4,7,8,9,11,10,12,13,14,15;13,10,13,12,7,7,8,9,5,12,6,15,8,6,5;1,1,1,2,2,2,2,3,3,3,4,5,5,5,5}
ch8={3,1,2,4,5,6,7,8,11,10,9,12,13,14,15;11,5,4,10,7,14,13,7,10,13,15,12,3,6,1;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5}
ch9={2,3,1,4,6,5,7,8,10,11,9,12,13,14,15;10,11,10,5,9,13,12,4,6,11,1,3,7,12,12;2,2,3,3,3,3,4,4,4,5,5,5,5,5,5}
ch10={2,1,3,5,6,4,7,8,10,11,9,12,13,14,15;8,7,1,6,5,2,5,1,1,14,10,2,2,5,13;1,1,1,1,2,2,2,2,3,3,4,4,5,5,5}
and (4) executing: decoding and improving each individual in the contemporary population by adopting FBI & D to obtain the workflow response time and the execution cost of each individual, and then calculating the relative fitness value of all the individuals and the absolute fitness value of a feasible individual;
improvement of each individual in the contemporary population by FBI & D methods, e.g. in the sub-population 1
ch3={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;6,3,6,2,1,15,10,11,6,8,13,7,13,9,3;1,1,2,2,3,3,3,4,4,4,4,4,5,5,5}
The procedure modified with FBI & D method is as follows:
Step C2 is executed: individual ch adopting serial individual decoding method based on insertion mode3Decoding is carried out, and the completion time of all tasks is obtained: f. of1=30474,f2=21168,f3=17862,f4=81082,f5=89146,f6=43920.67,f7=131066,f8=147726,f9=168716,f10=159470,f11=157054,f12=221029.33,f13=232309.33,f14=264209.33,f15302449.33; and its workflow response time rs3=304129.33;
step C3 is executed: an individual ch3According to the task completion time fiRearranging from large to small, i.e. ch3Gene gr in (1)iSet to the i-th task to be completed, i1, …,15, forming the reverseBody
Step C4 is executed: method for decoding reverse individuals by adopting serial reverse individuals based on insertion modeDecoding is carried out, and reverse completion time of all tasks is obtained: and its workflow reverse response timeDue to the fact thatLess than rs3When the result is 304129.33, go to step C5;
step C5 is executed: make the opposite direction single bodyAccording to the task reverse completion time of the task scheduling sequence list in (1)Rearranged from large to small, i.e.Gene gr in (1)iSet to the i-last completed task, i1, …,15, forming an individual ch 32,1,5,4,3,6,7,8,9,10,11,12,13,14, 15; 6,3,6,2,1,15,10,11,6,8,13,7,13,9, 3; 1,1,2,2,3,3,3,4,4,4,4,4,5,5,5}, go to step C2;
step C2 is executed: individual ch adopting serial individual decoding method based on insertion mode3Decoding is carried out, and the completion time of all tasks is obtained: f. of1=12612,f2=21168,f3=30474,f4=63220,f5=79840,f6=43920.67,f7=121760,f8=138420,f9=159410,f10=150164,f11=147748,f12=211723.33,f13=223003.33,f14=254903.33,f15293143.33; and its workflow response time rs3294823.33; due to rs3294823.33 equal toGo to step C6;
step C6 is executed: output unit
ch32,1,5,4,3,6,7,8,9,10,11,12,13,14, 15; 6,3,6,2,1,15,10,11,6,8,13,7,13,9, 3; 1,1,2,2,3,3,3,4,4,4,4,4,5,5,5} and its workflow response time rs3294823.33, and calculates its workflow execution cost: due to f1=12612,f2=21168,f3=30474,f4=63220,f5=79840,f6=43920.67,f7=121760,f8=138420,f9=159410,f10=150164,f11=147748,f12=211723.33,f13=223003.33,f14=254903.33,f15=293143.33;s1=0,s2=0,s3=12612,s4=12612,s5=21168,s6=30474,s7=79840,s8=121760,s9=138420,s10=138420,s11=138420,s12=159410,s13=211723.33,s14=223003.33,s15=254903.33; Therefore, it isFor the same reason, tf2=142164,tf3=140948,tf4=105520,tf5=105520,tf6=105520,tf7=122960,tf8=140948,tf9=188743.33,tf10=188743.33,tf11=188743.33,tf12=214283.33,tf13=237403.33,tf14269143.33; due to the fact thatTherefore, it isTherefore, there are: rnt1=max{tf5}=max{105520}=105520,Hrt1=min{s5}=min{21168}=0,lt1=Rnt1-Hrt184352; in a similar way, lt2=92908,lt3=294823.33,lt6=188743.33,lt7=54873.33,lt8=50323.33,lt9=46140,lt10=43120,lt11=20404,lt13=98983.33,lt1575046; thereby the device is provided withFinishing the operation;
wherein, the above-mentioned individuals
ch3={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;6,3,6,2,1,15,10,11,6,8,13,7,13,9,3;1,1,2,2,3,3,3,4,4,4,4,4,5,5,5}
For example, the serial individual decoding method based on the insertion mode is implemented as follows:
step D1 is executed: let ready times for all tasks: rt is an integer of1=0,rt2=0,……,rt150; δ is 1; let list of available slots for all virtual machine instances: vatl1={[0,∞]},vatl2={[0,∞]},……,vatl15={[0,∞]};
Step D2 is executed: selecting the serial number i-grδ=gr1A task of 3;
step D3 is executed: assignment of task 3 to a number k-gs based on the insertion pattern3A virtual machine instance of 6; step D3.1 is performed: computing execution time of task 3
Step D3.2 is performed: in vatl6Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et317862 and ∞ -17862 ≧ rt30; step D3.3 is performed: calculate the start time s of task 33=max{ν6,rt3Max {0,0}, 0, completion time f3=s3+et317862; step D3.4 is performed: updating the sub-task ready time rt of task 36=max{rt6,f3}=max{0,17862}=17862,rt1117862; step D3.5 is performed: list of time slots available in virtual machine, vatl6Deletion of [0, ∞][17862, ∞ with an insertion interval length greater than 0];
Step D4 is executed: if δ is 1+1 — 2, go to step D2, since δ is 2 ≦ I ≦ 15;
step D2 is executed: selecting the serial number i-gr2A task of 2;
step D3 is executed: assignment of task 2 to a number k-gs based on the insertion pattern2A virtual machine instance of 3; step D3.1 is performed: computing the execution time of task 2Step D3.2 is performed: in vatl3Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et221168 and ∞ -21168 ≧ rt20; step D3.3 is performed:calculating the start time s of task 22=max{ν3,rt2Max {0,0}, 0, completion time f2=s2+et221168; step D3.4 is performed: updating the sub-task ready time rt of task 25=max{rt5,f2}=max{0,21168}=21168,rt1021168; step D3.5 is performed: list of time slots available in virtual machine, vatl3Deletion of [0, ∞][21168, ∞ with an insertion interval length greater than 0];
Step D4 is executed: if δ 2+1 is 3, and δ 3 ≦ I ≦ 15, go to step D2;
……
the steps D2 to D4 are repeatedly executed until δ ═ 16> I ═ 15, and the process goes to step D5;
step D5 is executed: obtaining a start time of a task: s1=17862,s2=0,s3=0,s4=30474,s5=30474,s6=30474,s7=89146,s8=131066,s9=147726,s10=147726,s11=147726,s12=168716,s13=221029.33,s14=232309.33,s15264209.33; end time: f. of1=30474,f2=21168,f3=17862,f4=81082,f5=89146,f6=43920.67,f7=131066,f8=147726,f9=168716,f10=159470,f11=157054,f12=221029.33,f13=232309.33,f14=264209.33,f15302449.33; calculating a response time rs of a workflow3: due to the fact thatAnd SFL15={f15-1Get the resultsComputing the execution cost ct of a workflow32303, the operation ends;
wherein, the above-mentioned individuals
For example, the serial reverse individual decoding method based on the insertion mode is implemented as follows:
step E1 is executed: due to the fact thatAnd SFL15={f15-1So reverse ready time of all tasksδ is 1; make the virtual machine available a list of time periods: vatl1={[0,∞]},vatl2={[0,∞]},……,vatl15={[0,∞]};
Step E2 is executed: selecting the serial number i-grδ=gr1Task 15;
step E3 is executed: assignment of task 15 to a number k-gs based on insertion pattern15Virtual machine instance of 3: i.e. step E3.1 is performed: computing the execution time of a task 15Step E3.2 is performed: in vatl3Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et1538240 andstep E3.3 is performed: calculating the reverse start time of task 15Reverse completion timeStep E3.4 is performed: updating the reverse ready time of the parent task of task 15Step E3.5 is performed: list of time slots available in virtual machine, vatl3Deletion of [0, ∞]Insertion interval length greater than 0 [0,1680]And [39920, ∞];
Step E4 is executed: if δ is 1+1 — 2, go to step E2, since δ is 2 ≦ I ≦ 15;
step E2 is executed: selecting the serial number i-gr2A task of 14;
step E3 is executed: assignment of task 14 to a number k-gs based on insertion pattern14Virtual machine instance of 9: i.e. step E3.1 is performed: computing the execution time of a task 14Step E3.2 is performed: in vatl9Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et1431900 andstep E3.3 is performed: calculating the reverse start time of task 14Reverse completion timeStep E3.4 is performed: updating the reverse ready time of the parent task of task 14Step E3.5 is performed: list of time slots available in virtual machine, vatl9Deletion of [0, ∞]Insertion interval length greater than 0 [0,39920]And [71820, ∞];
Step E4 is executed: if δ 2+1 is 3, go to step E2, since δ 3 ≦ I ≦ 15;
……
the steps E2 to E4 are repeated until δ ≦ I ≦ 15, and the process goes to step E5;
step E5 is executed: obtaining a reverse start of a taskTime: reverse completion time: and workflow reverse response timeFinishing the operation;
individuals in the population become, after the improvement of the FBI & D method:
ch1={3,1,2,6,4,5,7,8,11,10,9,12,13,14,15;14,15,13,14,15,13,15,15,11,15,15,15,15,15,15;1,1,1,1,1,2,2,2,3,3,4,4,5,5,5}
ch2={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,12,13,9,15,10,1,11,1,5,8,10;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5}
ch3={2,1,5,4,3,6,7,8,9,10,11,12,13,14,15;6,3,6,2,1,15,10,11,6,8,13,7,13,9,3;1,1,2,2,3,3,3,4,4,4,4,4,5,5,5}
ch4={3,1,2,6,5,4,7,8,10,9,11,12,13,14,15;9,15,2,10,5,3,10,5,12,15,8,11,4,9,4;1,1,1,1,2,2,2,3,3,4,4,4,5,5,5}
ch5={1,3,2,5,6,4,7,8,10,11,9,12,13,14,15;12,14,7,13,1,11,15,9,5,7,1,9,13,8,9;1,1,1,1,1,2,3,3,3,3,4,5,5,5,5}
ch6={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;5,8,3,13,11,3,14,7,12,13,3,2,14,6,11;1,1,1,1,1,2,2,3,4,4,4,4,5,5,5}
ch7={2,1,3,6,5,4,7,8,9,11,10,12,13,14,15;13,10,13,12,7,7,8,9,5,12,6,15,8,6,5;1,1,1,2,2,2,2,3,3,3,4,5,5,5,5}
ch8={3,1,2,4,5,6,7,8,11,10,9,12,13,14,15;11,5,4,10,7,14,13,7,10,13,15,12,3,6,1;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5}
ch9={2,3,1,4,6,5,7,8,10,11,9,12,13,14,15;10,11,10,5,9,13,12,4,6,11,1,3,7,12,12;2,2,3,3,3,3,4,4,4,5,5,5,5,5,5}
ch10={2,1,3,5,6,4,7,8,10,11,9,12,13,14,15;8,7,1,6,5,2,5,1,1,14,10,2,2,5,13;1,1,1,1,2,2,2,2,3,3,4,4,5,5,5}
the individual workflow response times are respectively: rs1=126275.33,rs2=306824.67,rs3=294823.33,rs4=436043.33,rs5=339337.33,rs6=463282.67,rs7=367794.67,rs8=311119.33,rs9=212389.33,rs10=584216;
The individual workflow execution costs are respectively: ct1=929.2,ct2=2125.1,ct3=2244.1,ct4=3313.7,ct5=3825.5,ct6=4345.5,ct7=3142.2,ct8=2152.3,ct9=2246.5,ct10=3071.8;
Calculating the relative fitness value of all the infeasible individuals and the absolute fitness value of the feasible individuals in the population:
since the cost constraint Budget is 1500, the cost constraint Deadline is 150000; therefore ch1As feasible individual, ch2、ch3、ch4、ch5、ch6、ch7、ch9、ch10Is an infeasible individual;
for infeasible subject ch2、ch3、ch4、ch5、ch6、ch7、ch8、ch9、ch10Calculating a relative fitness value:in the same way, rfit3=3.46、rfit4=5.12、rfit5=4.81、rfit6=5.99、rfit7=4.55、rfit8=3.51、rfit9=2.91、rfit10=5.94;
For feasible individual ch1Calculating an absolute fitness value:
afit1=0.4×250×929.2+0.6×126275.33=168685.20;
and 5, executing the step: judging whether a termination condition is met, if so, turning to a step 8 after the evolution is finished, and otherwise, turning to a step 6;
the termination condition is set as iteration to a specified algebra TG (100), and the current population is iterated and evolved by 1 generation and does not meet the iteration termination condition, so that the step 6 is carried out;
and 6, executing the step: performing cross and variation operations on the contemporary population to form a new population;
the specific implementation steps of various cross mutation operations in this step are illustrated as follows:
the crossing method 1: task scheduling order list interleaving
Without ch being provided7And ch9As the father body, chp1=ch7,chp2=ch9I.e. by
chp1={2,1,3,6,5,4,7,8,9,11,10,12,13,14,15;13,10,13,12,7,7,8,9,5,12,6,15,8,6,5;1,1,1,2,2,2,2,3,3,3,4,5,5,5,5},
chp2={2,3,1,4,6,5,7,8,10,11,9,12,13,14,15;10,11,10,5,9,13,12,4,6,11,1,3,7,12,12;2,2,3,3,3,3,4,4,4,5,5,5,5,5,5},
The specific implementation steps of the task scheduling order list intersection are as follows:
step F1 is performed: randomly generating a positive integer from 1 to 14, which is 8;
step F2 is performed: ch (channel)c1The first 8 genes of the task scheduling order list of (1) are from chp1The first 8 genes of the task scheduling order list of (1), namely: { gr1 c1,…,gr8 c12,1,3,6,5,4,7,8 }; the last 7 genes are from chp2Is equal to the gene list after the deleted gene value is 2,1,3,6,5,4,7,8 in the task scheduling order list {2,3,1,4,6,5,7,8, 7, 11,6, 5,4,7,8}, i.e. 10,11,9,12,13,14,15, thenchc1The virtual machine allocation list and the virtual machine type list come from the chp1Namely:
step F3 is performed: ch (channel)c2The first 8 genes of the task scheduling order list of (1) are from chp2The first 8 genes of the task scheduling order list of (1), namely:the last 7 genes are from chp1Is equal to the gene list after deleting the gene value of 2,3,1,4,6,5,7,8, 9,11,10,12,13,14,15 in the task scheduling order list {2,1,3,6,5,4,7,8}, i.e. 9,11,10,12,13,14,15, thenchc2The virtual machine allocation list and the virtual machine type list come from the chp2Namely:
step F4 is performed: output of
chc2={2,3,1,4,6,5,7,8,9,11,10,12,13,14,15;10,11,10,5,9,13,12,4,6,11,1,3,7,12,12;2,2,3,3,3,3,4,4,4,5,5,5,5,5,5},
finishing the operation;
and (3) a crossing method 2: virtual machine allocation list interleaving
Without ch being provided6And ch8As the father body, chp1=ch6,chp2=ch8,
chp1={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;5,8,3,13,11,3,14,7,12,13,3,2,14,6,11;1,1,1,1,1,2,2,3,4,4,4,4,5,5,5},
chp2={3,1,2,4,5,6,7,8,11,10,9,12,13,14,15;11,5,4,10,7,14,13,7,10,13,15,12,3,6,1;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5},
The specific implementation steps of the virtual machine allocation list intersection are as follows:
step G1 is executed: randomly generating a positive integer 10 of 1 to 14;
step G2 is executed: ch (channel)c1The first 10 genes of the virtual machine allocation list of (2) are from chp1The virtual machines of (2) allocate the top 10 genes of the list, namely:the last 5 genes are from chp2The last 5 genes of the list are assigned by the virtual machine of (1), namely:chc1the task scheduling order list and the virtual machine type list come from the chp1Namely:
step G3 is executed: ch (channel)c2The first 10 genes of the virtual machine allocation list of (2) are from chp2The virtual machines of (2) allocate the top 10 genes of the list, namely:the last 5 genes are from chp1The last 5 genes of the list are assigned by the virtual machine of (1), namely:chc2the task scheduling order list and the virtual machine type list come from the chp2Namely:
step G4 is executed: output of
chc2={3,1,2,4,5,6,7,8,11,10,9,12,13,14,15;11,5,4,10,7,14,13,7,10,13,3,2,14,6,11;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5},
finishing the operation;
and (3) a crossing method: virtual machine type crossing
Without ch being provided8And ch9As the father body, chp1=ch8,chp2=ch9,
chp1={3,1,2,4,5,6,7,8,11,10,9,12,13,14,15;11,5,4,10,7,14,13,7,10,13,15,12,3,6,1;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5},
chp2={2,3,1,4,6,5,7,8,10,11,9,12,13,14,15;10,11,10,5,9,13,12,4,6,11,1,3,7,12,12;2,2,3,3,3,3,4,4,4,5,5,5,5,5,5},
The specific implementation steps of the virtual machine type crossing are as follows:
step H1 is performed: randomly generating a positive integer 8 from 1 to 14;
step H2 is performed: ch (channel)c1The task scheduling order list and the virtual machine allocation list are from chp1Namely:
chc1the first 8 genes of the list of virtual machine types in (1) are from chp1The first 8 genes of the list of virtual machine types of (c), namely:chc1the last 7 genes of the list of virtual machine types in (1) are from chp2The last 7 genes of the list of virtual machine types of (a), namely:
step H4 is performed: ch (channel)c2The task scheduling order list and the virtual machine allocation list are from chp2Namely:
chc2the first 8 genes of the list of virtual machine types in (1) are from chp2The first 8 genes of the list of virtual machine types of (c), namely:chc2virtual machine type column ofThe last 7 genes in the table are from chp1The last 7 genes of the list of virtual machine types of (a), namely:due to the fact thatGo to step H5;
Step H6 is performed: output of
chc11, {3,1,2,4,5,6,7,8,11,10,9,12,13,14, 15; 11,5,4,10,7,14,13,7,10,13,15,12,3,6, 1; 1,1,2,2,2,3,3,3,4,5,5,5,5,5,5} and
mutation method 1: scheduling order list variation
Without being provided with
ch11, {3,1,2,6,4,5,7,8,11,10,9,12,13,14, 15; 14,15,13,14,15,13,15,15,11,15,15,15,15,15, 15; 1,1,1,1,1,2,2,2,3,3,4,4,5,5,5} are individuals to be mutated, and the specific implementation steps of the scheduling order list mutation are as follows:
step I1 is executed: randomly selecting a gene from the task scheduling order list {3,1,2,6,4,5,7,8,11,10,9,12,13,14,15}, which is gr9=11;
Step I2 is executed: since task 11 has a parent, find the first parent gr forward8=8,pos18+ 1-9; since task 11 has subtasks, find the first subtask gr backward12=12,pos2=12-1=11;
ExecuteStep I3: in [9,11 ]]Randomly selects a position between the two to insert, which is gr10After mutation ch 111The following steps are changed: {3,1,2,6,4,5,7,8,10,11,9,12,13,14, 15; 14,15,13,14,15,13,15,15,11,15,15,15,15,15, 15; 1,1,1,1,1,2,2,2,3,3,4,4,5,5,5 }; finishing the operation;
mutation method 2: virtual machine allocation list mutation
Without being provided with
ch11, {3,1,2,6,4,5,7,8,11,10,9,12,13,14, 15; 14,15,13,14,15,13,15,15,11,15,15,15,15,15, 15; 1,1,1,1,1,2,2,2,3,3,4,4,5,5,5} are individuals to be mutated, and the specific implementation steps of the virtual machine allocation list mutation are as follows:
step J1 is executed: generating a random integer from 1 to I, which is 3;
step J2 is executed: randomly selecting 3 genes from {14,15,13,14,15,13,15,15,11,15,15,15,15,15 } with gs2、gs5、gs6(ii) a Gs in 1, …,152、gs5、gs6Re-randomly choose instance numbers, 11, 8,5, so gs2=11、gs5=8、gs6(ii) 5; ch after such mutation1The following steps are changed:
{3,1,2,6,4,5,7,8,11,10,9,12,13,14, 15; 14,11,13,14,8,5,15,15,11,15,15,15,15, 15; 1,1,1,1,1,2,2,2,3,3,4,4,5,5,5 }; finishing the operation;
mutation method 3: virtual machine type list mutation
Without being provided with
ch11, {3,1,2,6,4,5,7,8,11,10,9,12,13,14, 15; 14,15,13,14,15,13,15,15,11,15,15,15,15,15, 15; 1,1,1,1,1,2,2,2,3,3,4,4,5,5,5} is an individual to be mutated, and the specific implementation steps of the mutation of the virtual machine type list are as follows:
step K1 is executed: let0=1,gt16(ii) 5; finding a variant effective position set SPS {5,6,8,9,10,11,12,13 };
step K2 is executed: randomly selecting a position from the SPS, which is 5;
step K3 is executed: in [1,2 ]]Random between each otherSelecting an integer value of 2, then52; ch after such mutation1To {3,1,2,6,4,5,7,8,11,10,9,12,13,14, 15; 14,15,13,14,15,13,15,15,11,15,15,15,15,15, 15; 1,1,1,1,2,2,2,2,3,3,4,4,5,5,5 }; finishing the operation;
the specific implementation process of performing cross mutation operation on the contemporary population is as follows:
the initial fitness value of all three cross operations is taken to be 0.5, namely cf1=cf2=cf3The initial fitness value for each of the three mutation operations was 0.5, mf1=mf2=mf3=0.5;
Step 6.1 is executed: making the new population empty;
and 6.2: randomly selecting two different individuals from the contemporary population as a father 1 and a father 2 based on a ranking round-robin method; i.e. step L1 is executed: sequencing the individuals in the current generation population from good to bad to obtain the sequencing values of the individuals: rk1=1,rk2=4,rk3=3,rk4=8,rk5=7,rk6=10,rk7=6,rk8=5,rk9=2,rk10(iii) 9, let R ═ 1+1/N ═ 1.1; step L2 is executed: calculating the probability that the individual 1 is selectedSame principle A2=0.111,A3=0.122,A4=0.076,A5=0.083,A6=0.063,A7=0.092,A8=0.101,A9=0.135,A100.069; step L3 is executed: calculating the cumulative probability: step L4 is executed: generating a random number lambda1It is 0.554, sinceSo that individual ch is selected6As a father 1; step L5 is executed: generating a random number lambda2It is 0.214; due to the fact thatAnd 2 ≠ 6, so individual ch is selected2As father 2, go to step L6; step L6 is executed: ending the individual selection operation; then father 1 and father 2 are respectively:
chp1={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;5,8,3,13,11,3,14,7,12,13,3,2,14,6,11;1,1,1,1,1,2,2,3,4,4,4,4,5,5,5},
chp2={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,12,13,9,15,10,1,11,1,5,8,10;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5};
step 6.3 is executed: and randomly selecting an intersection method according to the fitness value of the intersection method by using a value-based round-robin method to perform intersection operation on the father 1 and the father 2, namely executing the step M1: and calculating the probability of each cross method being selected according to the fitness value: cross method 1, i.e. probability of selection of task scheduling order list cross methodSimilarly, the crossover method 2 is the probability A that the virtual machine assignment list is selected crossways20.5/1.5-0.333, crossover method 3, i.e., probability a that virtual machine type crossover is selected30.333; step M2 is executed: calculating the cumulative probability: step M3 is executed: a random number of [0,1) is generated, which is 0.528, sinceTherefore, a crossing method 2 is selected, namely, the virtual machine distribution list crossing method is crossed; and (3) generating the daughter 1 and the daughter 2 by adopting a virtual machine distribution list to the father body 1 and the father body 2 in a crossed manner:
chc2={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,12,13,9,7,12,13,3,2,14,6,11;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5};
after decoding and improvement by adopting FBI & D, the method becomes:
chc1={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;5,8,3,13,11,3,14,15,10,1,11,1,5,8,10;1,1,1,1,1,2,2,3,4,4,4,4,5,5,5},
chc2={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,12,13,9,7,12,13,3,2,14,6,11;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5},
since the relative fitness values of the two parents are: 3.46, 5.99, the relative fitness values of the two subvolumes are: 5.29, 3.96; two daughters are inferior to one parent and superior to the other, so nbcIf 2, the fitness value of the intersection method is updated according to equation (3)
And 6.4: generating a random number lambda1It is 0.14 due to λ1=0.14<pm0.2, so for chc1Randomly selecting a variation method to perform variation operation by using a value-based betting round according to the fitness value of the variation method, namely executing the step N1: and (3) calculating the probability of the selected mutation method i according to the fitness value: mutation method 1, i.e. probability of being selected by task scheduling order list mutation methodSimilarly, mutation method 2 is the probability A that the virtual machine distribution list mutation method is selected20.5/1.5 ═ 0.333, mutation method 3, i.e., probability a that virtual machine type list mutation method was selected30.333; step N2 is executed: calculating the cumulative probability: step N3 is executed: a random number λ is generated which is 0.337, sinceTherefore, a variation method 2 is selected, and the virtual machine allocation list is varied to be varied; for chc1After performing the virtual machine allocation list variation, the child chc1Become into
ch′1={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;5,1,9,13,11,11,4,15,14,11,11,1,5,9,10;1,1,1,1,1,2,2,3,4,4,4,4,5,5,5};
After decoding and improvement by adopting FBI & D, the method becomes:
ch′1={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;5,1,9,13,11,11,4,15,14,11,11,1,5,9,10;1,1,1,1,1,2,2,3,4,4,4,4,5,5,5};
the variant individuals are infeasible individuals, and the relative fitness value is as follows: 5.32, greater than 5.29 relative fitness of the individual before mutation, so nb is presentm0; updating the fitness value of the mutation method according to formula (4): mf (m) of2=(1-0.2)×0.5+0.2×0=0.4;
And 6.5, executing: generating a random number lambda2It is 0.08 due to λ2=0.08<pmWhen the value is equal to 0.2, a variation method is randomly selected by using a value-based round-robin method, namely, the step N1 is executed: and calculating the probability of each mutation method being selected according to the fitness value: mutation method 1, i.e. probability of being selected by task scheduling order list mutation methodIn the same way, A2=0.4/1.4=0.286,A30.357; step N2 is executed: calculating the cumulative probability: step N3 is executed: a random number λ is generated which is 0.502, sinceTherefore, the mutation method 2 is selected, and the virtual machine distribution list mutation pair chc2And (5) carrying out mutation. After the variation of the virtual machine distribution list, the child chc2Become into
ch′2={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;5,9,4,10,13,13,9,11,12,10,3,2,14,1,11;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5}
After decoding and improvement by adopting FBI & D, the method becomes:
ch′2={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;5,9,4,10,13,13,9,11,12,10,3,2,14,1,11;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5};
the variant individuals are infeasible individuals, and the relative fitness value is as follows: 4.67, greater than 3.96 relative fitness of the individuals before mutation, so nb is presentm0; updating the fitness value of the mutation method according to formula (4): mf (m) of2=(1-0.2)×0.4+0.2×0=0.32;
Step 6.6 is executed: prepared from ch'1And ch'2Adding into a new population; since the number of new populations is less than 10, go to step 6.2;
……
this is repeated from step 6.2 to step 6.6 until the number of new populations equals 10, and the individuals in the new populations are:
ch′1={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;5,1,9,13,11,11,4,15,14,11,11,1,5,9,10;1,1,1,1,1,2,2,3,4,4,4,4,5,5,5}
ch′2={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;5,9,4,10,13,13,9,11,12,10,3,2,14,1,11;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5}
ch′3={1,3,2,6,5,4,7,8,10,11,9,12,13,14,15;12,14,7,13,12,13,9,15,10,1,11,1,5,8,10;1,1,1,1,1,2,3,3,3,3,4,5,5,5,5}
ch′4={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,1,11,15,9,5,7,1,9,13,8,9;1,1,1,3,3,3,3,4,4,4,4,4,4,5,5}
ch′5={2,3,1,4,6,5,7,8,9,10,11,12,13,14,15;10,11,10,5,9,13,12,4,6,11,1,3,7,12,12;2,2,3,3,3,3,3,3,3,3,4,4,5,5,5}
ch′6={2,1,3,5,6,4,7,8,10,11,9,12,13,14,15;8,7,1,6,5,2,5,1,1,14,10,2,2,5,13;1,1,1,1,2,2,2,2,3,5,5,5,5,5,5}
ch′7={3,1,2,6,5,4,7,8,11,10,9,12,13,14,15;9,15,2,10,5,3,10,5,12,15,8,11,4,9,4;1,1,1,1,1,2,2,3,3,4,4,4,5,5,5}
ch′8={3,1,2,6,4,5,7,8,10,9,11,12,13,14,15;11,5,4,10,7,14,13,7,10,13,15,12,3,6,1;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5}
ch′9={2,1,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,12,13,9,15,10,13,15,12,3,6,1;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5}
ch′10={3,1,2,4,5,6,7,8,11,10,9,12,13,14,15;1,5,5,7,7,14,15,11,6,7,1,7,13,7,15;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5}
the workflow response time of the individuals in the new population is respectively as follows: rs'1=466780.67,rs′2=402761.33,rs′3=368915.33,rs′4=291642.67,rs′5=246914,rs′6=584216,rs′7=465043.33,rs′8=311119.33,rs′9=306882.67,rs′10=291406.67;
The workflow execution costs of the individuals in the new population are respectively: ct'1=3309.2,ct′2=2971.7,ct′3=2415.4,ct′4=2561,ct′5=2112.3,ct′6=3224.3,ct′7=3433.2,ct′8=2152.3,ct′9=2251.3,ct′10=2197;
All individuals in the new population are infeasible individuals, and the relative fitness values are respectively as follows: rf it'1=5.32,rfit′2=4.67,rfit′3=4.07,rfit′4=3.65,rfit′5=3.05,rfit′6=6.04,rfit′7=5.39,rfit′8=3.51,rfit′9=3.55,rfit′10=3.41;
And 7, executing the step: 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 the ch of the current generation from good to bad1、ch9、ch2、ch3、ch8And ch 'of the New population'5、ch′10、ch′8、ch′9、ch′4Forming the next generation group GP ═ ch1,ch9,ch′5,ch′10,ch2,ch3,ch8,ch′8,ch′9,ch′4}; let CP be GP, forming a new contemporary population, then all individuals of the contemporary population become:
ch1={3,1,2,6,4,5,7,8,11,10,9,12,13,14,15;14,15,13,14,15,13,15,15,11,15,15,15,15,15,15;1,1,1,1,1,2,2,2,3,3,4,4,5,5,5}
ch2={2,3,1,4,6,5,7,8,10,11,9,12,13,14,15;10,11,10,5,9,13,12,4,6,11,1,3,7,12,12;2,2,3,3,3,3,4,4,4,5,5,5,5,5,5}
ch3={2,3,1,4,6,5,7,8,9,10,11,12,13,14,15;10,11,10,5,9,13,12,4,6,11,1,3,7,12,12;2,2,3,3,3,3,3,3,3,3,4,4,5,5,5}
ch4={3,1,2,4,5,6,7,8,11,10,9,12,13,14,15;1,5,5,7,7,14,15,11,6,7,1,7,13,7,15;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5}
ch5={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,12,13,9,15,10,1,11,1,5,8,10;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5}
ch6={2,1,5,4,3,6,7,8,9,10,11,12,13,14,15;6,3,6,2,1,15,10,11,6,8,13,7,13,9,3;1,1,2,2,3,3,3,4,4,4,4,4,5,5,5}
ch7={3,1,2,4,5,6,7,8,11,10,9,12,13,14,15;11,5,4,10,7,14,13,7,10,13,15,12,3,6,1;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5}
ch8={3,1,2,6,4,5,7,8,10,9,11,12,13,14,15;11,5,4,10,7,14,13,7,10,13,15,12,3,6,1;1,1,2,2,2,3,3,3,3,3,4,4,4,5,5}
ch9={2,1,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,12,13,9,15,10,13,15,12,3,6,1;1,1,1,3,3,3,3,4,4,4,4,4,5,5,5}
ch10={1,2,3,5,6,4,7,8,10,9,11,12,13,14,15;6,9,4,4,1,11,15,9,5,7,1,9,13,8,9;1,1,1,3,3,3,3,4,4,4,4,4,4,5,5}
the individual workflow response times are respectively: rs1=126275.33,rs2=212389.33,rs3=246914,rs4=291406.67,rs5=306824.67,rs6=294823.33,rs7=311119.33,rs8=311119.33,rs9=306882.67,rs10=291642.67;
The individual workflow execution costs are respectively: ct1=929.2,ct2=2246.5,ct3=2112.3,ct4=2197,ct5=2125.1,ct6=2244.1,ct7=2152.3,ct8=2152.3,ct9=2251.3,ct10=2561;
The relative fitness values of the infeasible individuals are respectively as follows: rfit2=2.91,rfit3=3.05,rfit4=3.41,rfit5=3.46,rfit6=3.46,rfit7=3.51,rfit8=3.51,rfit9=3.55,rfit10=3.65;
The absolute fitness values of feasible individuals are respectively as follows: afit1=168685.20;
Turning to step 5;
……
this is repeated from step 5 to step 7 until iteration to 100 generations, the contemporary population becoming:
ch1={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,1,3,5,5,5,5,5}
ch2={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,1,5,5,5,5,5,5}
ch3={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,3,3,5,5,5,5,5}
ch4={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,3,5,5,5,5,5,5}
ch5={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,4,4,5,5,5,5,5}
ch6={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,4,5,5,5,5,5,5}
ch7={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,5,5,5,5,5,5,5}
ch8={2,1,3,4,5,6,7,8,11,9,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,1,5,5,5,5,5,5}
ch9={2,1,3,4,5,6,7,8,11,9,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,3,5,5,5,5,5,5}
ch10={2,1,3,4,5,6,7,8,11,9,10,12,13,14,15;13,13,11,12,13,11,13,13,14,13,13,13,13,13,13;1,1,1,1,1,1,1,1,4,4,5,5,5,5,5}
the individual workflow response times are respectively: rs1=123576,rs2=123576,rs3=123576,rs4=123576,rs5=123576,rs6=123576,rs7=123576,rs8=123576,rs9=123576,rs10=123576;
The individual workflow execution costs are respectively: ct1=804.8,ct2=804.8,ct3=804.8,ct4=804.8,ct5=804.8,ct6=804.8,ct7=804.8,ct8=804.8,ct9=804.8,ct10=804.8;
All individuals were viable and their absolute fitness values were: afit1=154625.6,afit3=154625.6,afit3=154625.6,afit4=154625.6,afit5=154625.6,afit6=154625.6,afit7=154625.6,afit8=154625.6,afit9=154625.6,afit10=154625.6;
If the termination condition is met, executing the step 8;
and step 8 is executed: and if the feasible individuals exist in the contemporary population, outputting the individual with the minimum absolute fitness value in the contemporary population, wherein the corresponding execution scheme is the optimization scheme, otherwise, no feasible execution scheme exists.
Feasible individuals exist in the contemporary population, so the individual with the minimum absolute fitness value in the output contemporary population is ch 12,1,3,4,5,6,7,8,9,11,10,12,13,14, 15; 13,13,11,12,13,11,13,13,14,13,13,13,13, 13; 1,1,1,1,1,1,1,1,3,5,5,5, 5}, which corresponds to an absolute fitness value of 154625.6, a working response time of 123576s, and an execution cost of 804.8 yuan, and the corresponding execution scheme is shown in table 3.
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 (7)
1. A workflow optimization method based on a partial order adaptive genetic algorithm in a cloud computing environment is characterized by comprising the following steps: the method comprises the following steps:
step 1: acquiring information required by executing optimization of the cloud workflow;
get task set T ═ T1,…,tI},tiRepresenting a task i, namely a task with the number i; wherein I is the number of tasks to be scheduled;
acquiring a time sequence relation between tasks: parent task set PR of task iiSubstask set SC for task iiWherein I is 1, …, I;
acquiring task related parameters: length len of task ii、leni>0, i.e. the number of instructions that need to be consumed by the virtual machine when task i is processed, the list of input files IFL that is needed when task i is processedi、Output file list OFL generated after task i is processedi、And the size of the file in the file list, wherein: i is 1, …, I; task i is task i+The requirements of the parent task are as follows: there is a file that is the output file of task i and is also task i+The input file of (a), namely:
obtaining cloud computing environmentVirtual machine type set VM ═ VM1,vm2,…,vmJWhere J is the number of types of virtual machines, vmjRepresenting a j-class virtual machine;
acquiring related parameters of the virtual machine: computing power ps of class j virtual machinesjBandwidth bw of class j virtual machinesjCost per unit time vc for class j virtual machinesjFixed lease-starting cost fc of j-class virtual machinejMinimum billing time unit ut for class j virtual machinesjMinimum lease-on time ft of class j virtual machinej(ii) a The cost of renting a class j virtual machine is calculated as follows:
acquiring cost constraint Budget and time constraint Deadline executed by a workflow in a cloud computing environment; if no cost constraint exists, setting Budget as MBV, and if no time constraint exists, setting Deadline as MDV; wherein: MBV is the upper cost limit, and MDV is the upper time limit;
step 2: calculating a level value of the task;
for a starting task i without a parent task, the hierarchy value is:
lvli=1 (1)
the hierarchy values of other tasks are calculated using the following recursive formula:
and step 3: initializing a contemporary population;
generating 1 individual by an individual generation method based on the hierarchy and the benefit ratio, and generating the remaining N-1 different individuals by an individual random generation method based on the hierarchy to form an initial contemporary population; wherein N is an even number is the population size;
the individual encoding method is as follows: ch ═ gr1,…,grI;gs1,…,gsI;gt1,…,gtIWhere { gr1,…,grIThe scheduling order list is a topological order of task numbers; { gs1,…,gsIIs the virtual machine allocation list, gsiIndicating the virtual machine instance number, gs, assigned to task i1,…,gsITaking an integer value between 1 and I; { gt1,…,gtIIs a list of virtual machine types, gtiType of virtual machine instance denoted i, i.e. type of virtual machine instance i, gt1,…,gtIIs a non-decreasing permutation;
the individual random generation method based on the hierarchy and the benefit ratio comprises the following steps:
step A1: according to the random arrangement of tasks with the level values of the tasks from small to large, namely the random arrangement with the level values of the tasks arranged in front of the tasks with small level values and the same level values, generating an individual task scheduling sequence list { gr1,…,grI};
Step A2: randomly generating I random integers from 1 to J: pi1、……、πI(ii) a The arrangement from small to large is not assumed:order:generating a list of individual virtual machine types { gt1,…,gtI};
Step A3: generating individual virtual machine allocation list { gs) based on benefit ratio1,…,gsI}:
Step A3.1: enabling a set of virtual machine instances for assigned tasksReady time rt of all tasks1=…=rtI0; available time period list of all virtual machine instances, vatlk={[0,∞]1,2, …, I; let the variable δ be 1;
step A3.2: let variable i become grδThe variable k is 1; calculating the handle tiThe comprehensive benefit ratio after being respectively allocated to each potential virtual machine instance is as follows:
step A3.2.1: calculating tiExecution time after assignment to virtual machine instance numbered kWherein:is a handle tiThe processing time of the task when the virtual machine instance with the number k is processed, is the processing power of the virtual machine instance numbered k;is a handle tiThe virtual machine instance with the number k needs to obtain the file transfer time of the input file from other virtual machines when processing,k-is to treatThe number of the virtual machine instance of (c),andis numbered k and k-Bandwidth of the virtual machine instance of (1);is a handle tiThe virtual machine instance with number k needs to obtain the file transfer time of the input file from the shared database when processing,
step A3.2.2: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥eti,kAnd upsilonk-eti,k≥rti;
Step A3.2.3: calculating tiStarting time s after assigning to virtual machine instance numbered ki,k=max{νk,rtiH, completion time fi,k=si,k+eti,k;
Step A3.2.4, calculating the comprehensive benefit ratio ξi,k:
If inskE.g. INS, wherein INSkRepresenting the virtual machine instance numbered k, then
Wherein: theta belongs to [0,1] and is a weight coefficient, and mu is a coordination coefficient of cost and time;
assignment of existing tasks to inskIn the case of (2), t isiIs assigned to inskHindinskLease time of'k=Rnt′k-Hrt′kIs tiHave not been assigned to inskFront inskThe time of lease of (a) is,is tiHave not been assigned to inskFront inskThe return time of (c);is tiHave not been assigned to inskFront inskThe start lease time;
WhereinFor no task yet assigned to inskIn the case of (2), t isiIs assigned to inskHindinskThe lease time of;
step A3.2.5: let k be k +1, if k ≦ I, go to step A3.2.1; otherwise go to step A3.3;
step A3.3-in sequence from ξi,1,…,ξi,IFind a minimum among them, do not set asIf the number isVirtual machine instance ofThen
step A3.5: δ is δ + 1; if delta is less than or equal to I, go to step A3.2, otherwise go to step A3.6;
step A3.6: obtaining a virtual machine allocation list gs1,…,gsI};
Step A4: output individual ch ═ gr1,…,grI;gs1,…,gsI;gt1,…,gtIFourthly, the operation is finished;
the individual random generation method based on the hierarchy comprises the following steps:
step B1: according to the random arrangement of tasks with the level values of the tasks from small to large, namely the random arrangement with the level values of the tasks arranged in front of the tasks with small level values and the same level values, generating an individual task scheduling sequence list { gr1,…,grI};
Step B2: randomly generating I random integers from 1 to J: pi1、……、πI(ii) a The arrangement from small to large is not assumed:order:generating a list of individual virtual machine types { gt1,…,gtI};
Step B3: randomly generating I random integers from 1 to I, which are not set as: pi'1、……、π′I(ii) a Order: gs is1=π′1、……、gsI=π′IGenerating an individual virtual machine allocation list { gs1,…,gsI};
Step B4: output individual ch ═ gr1,…,grI;gs1,…,gsI;gt1,…,gtIFourthly, the operation is finished;
and 4, step 4: decoding and improving each individual in the contemporary population by adopting FBI & D to obtain the workflow response time and the execution cost of each individual, and then calculating the relative fitness value of all infeasible individuals and the absolute fitness value of feasible individuals;
for individual chnThe FBI&D bagThe method comprises the following steps:
Step C2: individual ch adopting serial individual decoding method based on insertion modenDecoding is carried out to obtain the completion time f of all tasks1,…,fIAnd its workflow response time rsn(ii) a If rsnIs less thanGo to step C3, otherwise, go to step C6;
step C3: an individual chnAccording to the task completion time fiRearranging from large to small, i.e. chnGene gr in (1)iSet to the I-last completed task, I-1, …, I, forming an inverted individual
Step C4: method for decoding reverse individuals by adopting serial reverse individuals based on insertion modeDecoding to obtain the reverse completion time of all tasksAnd its workflow reverse response timeIf it isLess than rsnGo to step C5, otherwise go to step C6;
step C5: make the opposite direction single bodyAccording to the task reverse completion time of the task scheduling sequence list in (1)Rearranged from large to small, i.e.Gene gr in (1)iSet to the I-last completed task, I-1, …, I, forming an individual chnGo to step C2;
step C6: output individual chnAnd its workflow response time rsnAnd calculating the workflow execution cost ctnAnd the operation is finished;
the serial individual decoding method based on the insertion mode is used for individual chnThe decoding comprises the following steps:
step D1: let ready times rt of all tasksi0, I-1, …, I; let the variable δ be 1; make available time period list of all virtual machine instances vatlk={[0,∞]},k=1,…,I;
Step D2: selecting the serial number i-grδThe task of (1);
step D3: assigning task i to a number k-gs based on an insertion patterniThe virtual machine instance of (1);
Step D3.2: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd upsilonk-eti≥rti;
Step D3.3: calculating the start time s of task ii=max{νk,rtiH, completion time fi=si+eti;
Step D3.5: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]V, with insertion interval length greater than 0k,si]And [ fi,υk];
Step D4: let δ be δ +1, if δ ≦ I, go to step D2, otherwise step D5;
step D5: obtaining a start time and an end time of the task: si,fiI1, …, I, calculating the execution cost ct of the workflownAnd response time rsnAnd the operation is finished;
the serial reverse individual decoding method based on the insertion mode is used for decoding reverse individualsThe decoding comprises the following steps:
step E1: make reverse ready time of all tasksWherein SFLiIs the set of output files that task i outputs to the shared database, i.e.Let the variable δ be 1; make virtual machine available a time period list vatlk={[0,∞]},k=1,…,I;
Step E2: selecting the serial number i-grδThe task of (1);
step E3: assigning task i to a number k-gs based on an insertion patterniThe virtual machine instance of (2):
Step E3.2: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd
Step E3.5: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]With an insertion interval length greater than 0And
step E4: let δ be δ +1, if δ ≦ I, go to step E2, otherwise step E5;
step E5: obtaining a reverse start time for a taskAnd reverse completion timeAnd its workflow reverse response timeFinishing the operation;
and 5: judging whether a termination condition is met, if so, turning to a step 8 after the evolution is finished, and otherwise, turning to a step 6;
the termination condition is that no feasible individual or optimal feasible individual is improved when iteration is carried out to a specified generation TG or continuous iteration GG generation;
step 6: performing cross and variation operations on the contemporary population to form a new population;
step 6.1: making the new population empty;
step 6.2: randomly selecting two different individuals from the contemporary population as a father 1 and a father 2 based on a ranking round-robin method;
step 6.3: randomly selecting a cross method to carry out cross operation on the father body 1 and the father body 2 by adopting a value-based round-robin method according to the fitness value of the cross method to generate two daughter bodies; decoding and improving by adopting FBI & D, if the daughter is a feasible individual, calculating an absolute fitness value of the daughter, and otherwise, calculating a relative fitness value of the daughter; updating the fitness value of the intersection method according to the formula (3);
step 6.4: generating a random number lambda1E [0,1), if λ1<pmThen, randomly selecting a variation method for the daughter 1 according to the fitness value of the variation method by adopting a value-based betting method to perform variation operation; using FBI&D, decoding and improving; if the daughter 1 is a viable individual, calculating its absolute fitness value, otherwise calculating its relative fitness value; updating the adaptability value of the variation method according to the formula (4);
step 6.5: generating a random number lambda2E [0,1), if λ2<pmThen, randomly selecting a variation method for the daughter 2 according to the fitness value of the variation method by adopting a value-based betting method to perform variation operation; using FBI&D, decoding and improving; if the daughter 2 is a viable individual, calculating its absolute fitness value, otherwise calculating its relative fitness value; updating the adaptability value of the variation method according to the formula (4);
step 6.6: adding daughter 1 and daughter 2 to the new population; if the number of the new population is less than N, go to step 6.2, otherwise go to step 7;
wherein: p is a radical ofm∈(0,1]Is the rate of variation;
the crossing method comprises the following steps: the task scheduling sequence lists are crossed, the virtual machine distribution lists are crossed, and the types of the virtual machines are crossed;
the crossing method 1: the task scheduling sequence list intersection comprises the following steps:
step F1, randomly generating a positive integer α from 1 to I-1;
step F2: ch (channel)c1The first α genes in the task scheduling order list of (1) are from chp1The first α genes of the task scheduling order list of (1), gri c1=gri p1I is more than or equal to 1 and less than or equal to α, and the last I- α genes come from chp2Task scheduling order list ofMiddle deletion gene value equal toThe latter gene list; ch (channel)c1The virtual machine allocation list and the virtual machine type list come from the chp1Namely:
step F3: ch (channel)c2Before the task scheduling order listα genes are derived from chp2The first α genes of the task scheduling order list of (1), gri c2=gri p2I is more than or equal to 1 and less than or equal to α, and the last I- α genes come from chp1Task scheduling order list ofMiddle deletion gene value equal toThe latter gene list; ch (channel)c2The virtual machine allocation list and the virtual machine type list come from the chp2Namely:
step F4: output chc1And chc2And the operation is finished;
and (3) a crossing method 2: the virtual machine distribution list intersection comprises the following steps:
g1, randomly generating a positive integer α from 1 to I-1;
step G2: ch (channel)c1The first α genes of the virtual machine assignment list in (1) are from chp1The first α genes of the virtual machine allocation list of (1), namely:the last I- α genes are from chp2The last I- α genes of the virtual machine allocation list of (1), namely:chc1the task scheduling order list and the virtual machine type list come from the chp1Namely: gr is a group ofi c1=gri p1,
Step G3: ch (channel)c2The first α genes of the virtual machine allocation listFrom chp2The first α genes of the virtual machine allocation list of (1), namely:the last I- α genes are from chp1The last I- α genes of the virtual machine allocation list of (1), namely:chc2the task scheduling order list and the virtual machine type list come from the chp2Namely: gr is a group ofi c2=gri p2,
Step G4: output chc1And chc2And the operation is finished;
and (3) a crossing method: the virtual machine type crossing comprises the following steps:
step H1, randomly generating a positive integer α from 1 to I-1;
step H2: ch (channel)c1The task scheduling order list and the virtual machine allocation list are from chp1Namely: gr is a group ofi c1=gri p1,chc1The first α genes of the virtual machine type list from chp1The first α genes of the list of virtual machine types of (c), namely:chc1the last I- α genes of the list of virtual machine types from chp2The last I- α genes of the list of virtual machine types of (2), namely:if it is notGo to step H3, otherwise go to step H4;
Step H4: ch (channel)c2The task scheduling order list and the virtual machine allocation list are from chp2Namely: gr is a group ofi c2=gri p2,chc2The first α genes of the virtual machine type list from chp2The first α genes of the list of virtual machine types of (c), namely:chc2the last I- α genes of the list of virtual machine types from chp1The last I- α genes of the list of virtual machine types of (2), namely:if it is notGo to step H5, otherwise go to step H6;
Step H6: output chc1And chc2And the operation is finished;
the mutation method comprises the following steps: the task scheduling sequence list is mutated, the virtual machine distribution list is mutated, and the virtual machine type list is mutated;
mutation method 1: scheduling sequential list variation, comprising the steps of:
step I1: from the task scheduling order list { gr1,…,grIRandomly select a gene, not set as gri;
Step I2: if task griFinding the first parent task gr forward if there is a parent taski′Let the position value pos1If not, let pos11 is ═ 1; if task griFinding the first subtask gr backwards if there are subtasksi″Let the position value pos2Else let pos be2=I;
Step I3: in [ pos ]1,pos2]Randomly selects a position to insert griAnd the operation is finished;
mutation method 2: the virtual machine allocation list mutation comprises the following steps:
step J1, generating a random integer from 1 to I, which is not set to ξ;
step J2: from { gs1,…,gsIξ genes are randomly selected, an example number is randomly selected from 1, … and I again for each selected gene, and the operation is finished;
mutation method 3: the method for mutating the virtual machine type list comprises the following steps:
step K1: let0=1,gtI+1J; finding a variant valid position set SPS ═ { i | (gt)i≠gti-1∨gti≠gti+1)∧1≤i≤I};
Step K2: randomly selecting a position from the SPS, and setting the position as i;
step K3: in [ gti-1,gti+1]Randomly selects an integer value between the two, let it be j, let gtiJ, finishing the operation;
the fitness value of the intersection method and the mutation method and the updating method thereof are described as follows:
setting a fitness value cf for each intersection method iiE (0, 1); setting a fitness value mf for each variation method iiE (0,1), randomly selecting one to perform genetic operation by adopting a round-robin method based on fitness value when performing cross or mutation operation each time, and updating the fitness value after each genetic operation by adopting the following method:
wherein:
cfi′,cfirespectively representing the fitness values of the intersection method i before and after use;
mfi′,mfirespectively representing the fitness values of the mutation method i before and after use;
indicating that the individual ch ' is not superior to the individual ch, namely satisfying one of the following conditions that ① ch and ch ' are both infeasible individuals but the relative fitness value of the ch is less than or equal to that of the ch ', ② ch is a feasible individual but the ch ' is an infeasible individual, ③ ch and ch ' are both feasible individuals but the absolute fitness value of the ch is less than or equal to that of the individual chAbsolute fitness value at ch';
chp1,chp2showing two parents, without provision forchc1,chc2Showing two sub-bodies 1 and 2, without providing
and 7: 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;
and 8: and if the feasible individuals exist in the contemporary population, outputting the individual with the minimum absolute fitness value in the contemporary population, wherein the corresponding execution scheme is the optimization scheme, otherwise, no feasible execution scheme exists.
3. The workflow optimization method based on the partial order adaptive genetic algorithm in the cloud computing environment according to claim 1, wherein: for individual chnCalculating the workflow response time rs in said step C5nAnd an execution cost ctnThe specific calculation method is as follows:
wherein:is the fixed lease start cost for the virtual machine instance numbered k,is the cost per unit time of the virtual machine instance numbered k,is the minimum billing time unit for the virtual machine instance numbered k,is the minimum lease-on time for the virtual machine instance numbered k,is the bandwidth of the virtual machine instance numbered k, ltk=Rntk-HrtkIs the lease time, Hrt, of the virtual machine instance numbered kkThe start lease time of the virtual machine instance numbered k; rntkThe return time of the virtual machine instance with the number of k is obtained;tfiis to complete OFLiIf t is the maximum time at which the file in (1) is output to the corresponding recipientiWithout exporting files to the shared databaseThen the corresponding recipient is processing tiIf t is a virtual machine of the subtask ofiWithout subtasks, i.e.The respective recipient is a shared database, otherwise if tiWith both file output to the shared database and subtasksThen the corresponding recipient is processing tiThe virtual machines and the shared database of the subtasks,
4. the workflow optimization method based on the partial order adaptive genetic algorithm in the cloud computing environment according to claim 1, wherein: for individual ch in the populationnN is 1,2 …, N if ctn≤Budget∨rsnWhen the adaline is not more than the preset value, ch isnAs viable individuals, otherwise chnIs an infeasible individual;
the specific calculation method of the relative fitness value of the infeasible individual is as follows:
the specific calculation method of the absolute fitness value of the feasible individual is as follows: afitn=θ×μ×ctn+(1-θ)×rsn;
Wherein: theta belongs to [0,1] and is a weight coefficient, and mu is a coordination coefficient of cost and time;
when the individual quality is compared, the feasible individual is superior to the infeasible individual; for all feasible individuals, the smaller the absolute fitness value is, the better the individual is; for all infeasible individuals, the smaller the relative fitness value, the better the individual.
5. The workflow optimization method based on the partial order adaptive genetic algorithm in the cloud computing environment according to claim 1, wherein: the specific steps of randomly selecting two different individuals from the contemporary population as the father 1 and the father 2 based on the sorted round-robin in the step 6.2 are as follows:
step L1: sequencing the individuals in the current generation population from good to bad to obtain 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 L2: calculating the probability that the individual n is selectedR>1 is a discrimination coefficient;
step L5: generating a random number lambda2E [0,1) ifAnd n '≠ n, then individual n' is selected as parent 2, passing to step L6Otherwise go to step L5;
step L6: the individual selection operation ends.
6. The workflow optimization method based on the partial order adaptive genetic algorithm in the cloud computing environment according to claim 1, wherein: the value-based betting round method in step 6.3 randomly selects a crossover method as follows:
step M1: calculating the probability of the cross method i being selected according to the fitness value
7. The workflow optimization method based on the partial order adaptive genetic algorithm in the cloud computing environment according to claim 1, wherein: the specific steps of the value-based betting round in step 6.4 and step 6.5 to select a variant method are as follows:
step N1: calculating the probability of the selected variant method i according to the fitness value
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911261591.7A CN110928670B (en) | 2019-12-10 | 2019-12-10 | Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911261591.7A CN110928670B (en) | 2019-12-10 | 2019-12-10 | Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928670A true CN110928670A (en) | 2020-03-27 |
CN110928670B CN110928670B (en) | 2022-04-08 |
Family
ID=69859610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911261591.7A Active CN110928670B (en) | 2019-12-10 | 2019-12-10 | Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928670B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130790A (en) * | 2023-10-23 | 2023-11-28 | 云南蓝队云计算有限公司 | Dynamic scheduling method for cloud computing resource pool |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345657A (en) * | 2013-04-02 | 2013-10-09 | 江苏大学 | Task scheduling method based on heredity and ant colony in cloud computing environment |
CN107133091A (en) * | 2017-05-08 | 2017-09-05 | 武汉轻工大学 | The cloud workflow task dispatching method being classified based on top-down task |
CN108829501A (en) * | 2018-05-18 | 2018-11-16 | 天津科技大学 | A kind of batch processing scientific workflow task scheduling algorithm based on improved adaptive GA-IAGA |
CN109992355A (en) * | 2019-01-30 | 2019-07-09 | 北京理工大学 | A kind of multiple target cloud workflow schedule method based on the non-dominant genetic algorithm of improvement |
-
2019
- 2019-12-10 CN CN201911261591.7A patent/CN110928670B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345657A (en) * | 2013-04-02 | 2013-10-09 | 江苏大学 | Task scheduling method based on heredity and ant colony in cloud computing environment |
CN107133091A (en) * | 2017-05-08 | 2017-09-05 | 武汉轻工大学 | The cloud workflow task dispatching method being classified based on top-down task |
CN108829501A (en) * | 2018-05-18 | 2018-11-16 | 天津科技大学 | A kind of batch processing scientific workflow task scheduling algorithm based on improved adaptive GA-IAGA |
CN109992355A (en) * | 2019-01-30 | 2019-07-09 | 北京理工大学 | A kind of multiple target cloud workflow schedule method based on the non-dominant genetic algorithm of improvement |
Non-Patent Citations (3)
Title |
---|
AMANDEEP VERMA, SAKSHI KAUSHAL: "Budget constrained priority based genetic algorithm for workflow scheduling in cloud", 《IEEE》 * |
胡能发,康立山,陈毓屏: "基于偏序关系的遗传算法求解多峰函数优化问题", 《计算机工程与应用》 * |
魏秀然,王峰: "一种可靠性驱动的云工作流调度遗传算法", 《计算机应用研究》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130790A (en) * | 2023-10-23 | 2023-11-28 | 云南蓝队云计算有限公司 | Dynamic scheduling method for cloud computing resource pool |
CN117130790B (en) * | 2023-10-23 | 2023-12-29 | 云南蓝队云计算有限公司 | Dynamic scheduling method for cloud computing resource pool |
Also Published As
Publication number | Publication date |
---|---|
CN110928670B (en) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shen et al. | Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems | |
CN109190857B (en) | Optimization algorithm based on multi-target resource limited project scheduling model | |
CN108829501B (en) | Batch processing scientific workflow task scheduling algorithm based on improved genetic algorithm | |
CN109522104B (en) | Method for optimizing scheduling of two target tasks of Iaas by using differential evolution algorithm | |
CN112685138B (en) | Multi-workflow scheduling method based on multi-population hybrid intelligent optimization in cloud environment | |
WO2021088436A1 (en) | Project scheduling method and apparatus for multi-language collaborative development | |
CN110909787A (en) | Method and system for multi-objective batch scheduling optimization based on clustering evolutionary algorithm | |
CN104572297A (en) | Hadoop job scheduling method based on genetic algorithm | |
CN110321217A (en) | A kind of cloud resource dispatching method, device, equipment and the storage medium of multiple target | |
CN111126800A (en) | Multi-mode resource-limited project scheduling method using layered adaptive intelligent algorithm | |
CN111026534B (en) | Workflow execution optimization method based on multiple group genetic algorithms in cloud computing environment | |
CN110928670B (en) | Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment | |
CN111008745A (en) | Multi-mode resource-limited project scheduling optimization method based on hybrid heuristic and intelligent algorithms | |
CN110928648B (en) | Heuristic and intelligent computing-fused cloud workflow segmentation online scheduling optimization method | |
CN111090510A (en) | Two-stage cloud workflow scheduling optimization method based on hybrid heuristic algorithm and genetic algorithm | |
CN110991917B (en) | Multi-mode resource-limited project scheduling optimization method adopting two-stage genetic algorithm | |
CN112884368A (en) | Multi-target scheduling method and system for minimizing delivery time and delay of high-end equipment | |
CN110968428A (en) | Cloud workflow virtual machine configuration and task scheduling collaborative optimization method | |
CN111026533A (en) | Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment | |
CN111078361A (en) | Cloud workflow scheduling optimization method based on distributed estimation algorithm | |
CN114980216A (en) | Dependent task unloading system and method based on mobile edge calculation | |
CN111047183A (en) | Cloud workflow scheduling optimization method based on layered self-adaptive intelligent computing algorithm | |
CN113220437A (en) | Workflow multi-target scheduling method and device | |
CN111026507A (en) | Cloud workflow virtual machine configuration and task scheduling collaborative optimization method in heterogeneous environment | |
CN110928671B (en) | Cloud workflow scheduling optimization method based on hierarchy and load balancing genetic algorithm |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |