Improved ant colony optimization algorithms for continuous ... - CoDE
Improved ant colony optimization algorithms for continuous ... - CoDE
Improved ant colony optimization algorithms for continuous ... - CoDE
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
8 Ant Colony Optimization<br />
Algorithm 2 Outline of ACOR<br />
Input: k, m, D, q, ξ, and termination criterion.<br />
Output: The best solution found<br />
Initialize and evaluate k solutions<br />
// Sort solutions and store them in the archive<br />
T = Sort(S1 · · · Sk)<br />
while Termination criterion is not satisfied do<br />
// Generate m new solutions<br />
<strong>for</strong> l = 1 to m do<br />
// Construct solution<br />
<strong>for</strong> i = 1 to D do<br />
according to weights<br />
Select Gaussian g i j<br />
Sample Gaussian g i j with parameters µi j , σi j<br />
end <strong>for</strong><br />
Store and evaluate newly generated solution<br />
end <strong>for</strong><br />
// Sort solutions and select the best k<br />
T = Best(Sort(S1 · · · Sk+m), k)<br />
end while<br />
coordinates of all the solutions in the archive are rotated and recalculated<br />
according to this new orthogonal base. At the end of the solution construction<br />
process, the chosen values of the temporary variables are converted back<br />
into the original coordinate system.<br />
2.2 Further Investigation on ACOR<br />
The original implementation of ACOR is in R [48] that is a language and<br />
environment <strong>for</strong> statistical computing and graphics. For a higher execution<br />
efficiency, we developed a C++ implementation. Figure 2.1 and 2.2 shows<br />
the coincident per<strong>for</strong>mance of two different implementation and illustrates<br />
the validity of C++ implementation. Moreover, Figure 2.1 is shown on<br />
both non-rotated and rotated functions to demonstrate the positive effect<br />
of variable correlation handling method in ACOR on rotated functions. The<br />
<strong>for</strong>mula of the non-rotated and rotated functions are given in Table 2.1.<br />
When ACOR constructs a solution, a Gram-Schmidt process is used <strong>for</strong><br />
the new orthogonal basis of the <strong>ant</strong>’s coordinate system. Although, it helps<br />
to handle variable correlation, the calculation of the Gram-Schmidt process<br />
<strong>for</strong> each variable <strong>for</strong> each constructive step incurs a very high computational<br />
demand. When the dimension of the objective function increases, the time<br />
used by ACOR with this variable correlation handling increases rapidly. For<br />
this reason, we also developed a C++ implementation of ACOR that does<br />
not consider variable correlation handling part (it is referred as Sep-ACOR