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.