Research Article

Using Compact Coevolutionary Algorithm for Matching Biomedical Ontologies

Algorithm 2

Input :
(i) and : two biomedical ontologies;
(ii)len: the length of PV;
(iii)maxGen: maximum number of generations;
(iv)UR: PV’s update rate;
(v): crossover probability;
(vi): mutation probability;
(vii)MR: mutation rate.
Output: the solution with best MatchFmeasure
Step 1. Initialization:Step 1.1. Set the generation ;Step 1.2. Set the neighbor subproblem of and as and the neighbor subproblems of as and .Step 1.3. Initialize , , and by setting all the probabilities inside as 0.5.Step 1.4. Using , , and to generate the elites, which are marked with symbols , , and for , , and , respectively.
Step 2. Evolving process:Step 2.1. Update , , and , respectively.Take updating for instance, the procedures of updating and is similar to it:Step 2.1.1. Crossover(1)Generate a new individual through ;(2)[winner, loser] = compete(, );(3)if()(4);(5)for i = 0; ; i++(6) if()(7);(8) if()(9)  ;(10)else(11);(12)if ()(13)Step 2.1.2. Mutation(14)for(i = 0; i <len; i++)(15) if((random(0, 1) < )(16)  ;Step 2.1.3. Local search(17)Generate an individual through ;(18);(19)Generate i = round(random(0, len));(20);(21) while((random(0, 1) < ))(22)  i = i + 1;(23) if(())(24)  i = 0;(25);(26) end While(27) [winner, loser] = compete(, );(28) if(())(29)  ;Step 2.2. Update , and mutually.For (or ), is generated by applying the -based uniform crossover operator [32] on the (or ) and its neighbor subproblem’s probability vector Then, generate an individual a through and try to update the and through the competition with (or ) and .For , is generated through applying the uniform crossover operator between and , which are its neighbor subproblems’ PVs. Then, generate an individual a through and try to update the through the competition with .
Step 3. Stopping Criteria:(30)if ( is reached)(31) stop and the elite with best MatchFmeasure;(32)else(33) gen = gen+1;(34) go to Step 2;(35)end if
In the evolving process, we first update , , and , respectively (Step 2.1), which is equivalent to the process of updating the solutions of , , and . Then, we update , , and mutually (Step 2.2), which is equal to updating the solutions of , , and through their shared neighbor subproblems’ solutions, i.e., using the information of a PV to help its neighbor PVs.