12.07.2013 Views

Improved ant colony optimization algorithms for continuous ... - CoDE

Improved ant colony optimization algorithms for continuous ... - CoDE

Improved ant colony optimization algorithms for continuous ... - CoDE

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!