Abstract
We extend the functionality of the quick hypervolume (QHV) algorithm. Given a set of d-dimensional points this algorithm determines the hypervolume of the dominated space, a useful measure for multiobjective evolutionary algorithms (MOEAs). We extend QHV in two ways: adapt it to compute the exclusive hypervolume of each point, and speed it up with parallel computation, that adjusts nicely to the divide and conquer methodology of QHV. The resulting algorithms are faster and more informative sub-routines, which can be used for MOEAs with a large number of objectives.
Notes
The hypothetical “external” pivot was used only to illustrate projections.
Hence make a justifiable point for such investments.
Obviously Fibonacci numbers can be computed more efficiently, the recursive computation is used to illustrate and test the pool.
References
Aho, A., Hopcroft, J.: Design & Analysis of Computer Algorithms. Pearson Education India, Gurgaon (1974)
Amdahl, G.M.: Validity of the single processor approach to achieving large scale computing capabilities. In: Proceedings of the April 18–20, 1967, Spring Joint Computer Conference, AFIPS ’67 (Spring), pp. 483–485. ACM, New York, NY, USA (1967)
Bentley, J.: Programming Pearls. Addison-Wesley Professional, Reading (2000)
Bradstreet, L., While, L., Barone, L.: A fast incremental hypervolume algorithm. IEEE Trans. Evol. Comput. 12(6), 714–723 (2008)
Briggs, P., Torczon, L.: An efficient representation for sparse sets. ACM Lett. Progr. Lang. Syst. 2, 59–69 (1993)
Bringmann, K., Friedrich, T.: Approximating the least hypervolume contributor: Np-hard in general, but fast in practice. In: EMO, pp. 6–20 (2009)
Bringmann, K., Friedrich, T.: An efficient algorithm for computing hypervolume contributions. Evol. Comput. 18(3), 383–402 (2010)
Butenhof, D.: Programming with POSIX Threads. Addison-Wesley Professional, Reading (1997)
Deb, K.: Multi-objective Optimization Using Evolutionary Algorithms. Wiley-Interscience series in systems and optimization. Wiley, Chichester (2009)
Emmerich, M., Beume, N., Naujoks, B.: An EMO algorithm using the hypervolume measure as selection criterion. In: Evolutionary Multi-criterion Optimization, LNCS, vol. 3410, pp. 62–76. Springer (2005)
Floyd, R.W., Rivest, R.L.: Algorithm 489: The algorithm SELECT for finding the ith smallest of n elements [m1]. Commun. ACM 18(3), 173 (1975)
Fonseca, C.M., Guerreiro, A.P., López-Ibáñez, M., Paquete, L.: On the computation of the empirical attainment function. In: EMO, pp. 106–120 (2011)
Goh, C., Ong, Y., Tan, K.: Multi-objective Memetic Algorithms, vol. 171. Springer, Berlin (2009)
Gustafson, J.L.: Reevaluating Amdahl’s law. Commun. ACM 31, 532–533 (1988)
Hoare, C.A.R.: Algorithm 64: Quicksort. Commun. ACM 4, 321 (1961)
Hoare, C.A.R.: Algorithm 65: Find. Commun. ACM 4(7), 321–322 (1961)
Huband, S., Hingston, P., While, L., Barone, L.: An evolution strategy with probabilistic mutation for multi-objective optimization. In: IEEE Congress on Evolutionary Computation, pp. 2284–2291 (2003)
Irwin, J.O.: On the frequency distribution of the means of samples from a population having any law of frequency with finite moments, with special reference to pearson’s type ii. Biometrika 19(3–4), 225–239 (1927)
Knowles, J.D., Corne, D.W., Fleischer, M.: Bounded archiving using the lebesgue measure. In: IEEE Congress on Evolutionary Computation, pp. 2490–2497 (2003)
Karp, A.H., Flatt, H.P.: Measuring parallel processor performance. Commun. ACM 33(5), 539–543 (1990)
Kiwiel, K.C.: On Floyd and Rivest’s SELECT algorithm. Theor. Comput. Sci. 347(1–2), 214–238 (2005)
Overmars, M., Yap, C.K.: New upper bounds in klee’s measure problem. In: 1988 29th Annual Symposium on Foundations of Computer Science, pp. 550–556 (1988)
Philip, H.: The distribution of means for samples of size n drawn from a population in which the variate takes values between 0 and 1, all such values being equally probable. Biometrika 19(3–4), 240–244 (1927)
Russo, L.M.S., Francisco, A.P.: Quick hypervolume. IEEE Trans Evol. Comput. 18(4), 481–502 (2014)
Schwartz, B.: The Paradox of Choice: Why More is Less. P. S. Series. HarperCollins, New York (2005)
Watanabe, T., Tatsukawa, T., Oyama, A.: On the fast hypervolume calculation method. In: 2015 IEEE Congress on Evolutionary Computation (CEC), pp. 965–969 (2015). doi:10.1109/CEC.2015.7256994
While, L., Bradstreet, L.: Applying the WFG algorithm to calculate incremental hypervolumes. In: 2012 IEEE Congress on Evolutionary Computation (CEC), pp. 1–8. IEEE (2012)
While, L., Bradstreet, L., Barone, L.: A fast way of calculating exact hypervolumes. IEEE Trans. Evol. Comput. 16(1), 86–95 (2011)
Zhou, A., Qu, B., Li, H., Zhao, S., Suganthan, P., Zhang, Q.: Multiobjective evolutionary algorithms: A survey of the state-of-the-art. Swarm Evol. Comput. 1(1), 32–49 (2011)
Zitzler, E., Künzli, S.: Indicator-based selection in multiobjective search. In: Parallel Problem Solving from Nature VIII, vol. 3242, pp. 832–842 (2004)
Acknowledgments
We would like to thank Tobias Friedrich for his interest in the original QHV algorithm and for pointing out the exclusive hypervolume problem to us. This work was partially supported by national funds through FCT – Fundação para a Ciência e Tecnologia, under Projects EXCL/EEI-ESS/0257/2012, PTDC/EEI-ELC/3246/2012 and UID/CEC/50021/2013.
Author information
Authors and Affiliations
Corresponding author
Appendix: Task pool specifics
Appendix: Task pool specifics
In this appendix we show how the task pool of Sect. 4.3 can be used to compute Fibonacci numbers. We also give further details regarding our implementation.
We show the computation of Fibonacci numbers,Footnote 3 which is simpler than QHV, but illustrates the solution.
The taskData is the structure that contains the information of a task. In this case field i contains the index and field r contains the partially computed result. We create new tasks, consisting of sub-problems only if \({\texttt {n > 30}}\), this “boolean” value is stored in variable p. Depending on this value the function prun posts a task to the queue, or recursively calls the function fibR. Even if p is true it may be that the task does not get admitted to the queue, in which case the task is recursively solved.
We modify the data in the taskData structure and pass the same structure to prun, although we can keep a local copy of the information, in this case we use the variable n.
The function has access to the jobData structure, in this case it must also contain a field r to store the result of the calculus. Whenever a task finishes it adds its local task value into the job field r.
Our implementation of the task pool uses POSIX threads. To synchronize threads we use mutexes. Therefore there is the guarantee that no two workers alter the task queue simultaneously, which is bound to cause corruption. We use condition variables to signal events between workers. For example if a worker is waiting for a task any other worker that submits a task should warn the first. These variables are useful to avoid active waits, i.e., scanning the queue for tasks, if there are none. Moreover they minimize waking the waiting threads.
Rights and permissions
About this article
Cite this article
Russo, L.M.S., Francisco, A.P. Extending quick hypervolume. J Heuristics 22, 245–271 (2016). https://doi.org/10.1007/s10732-016-9309-6
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10732-016-9309-6