Skip to main content
Log in

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Notes

  1. The hypothetical “external” pivot was used only to illustrate projections.

  2. Hence make a justifiable point for such investments.

  3. 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)

    MATH  Google Scholar 

  • 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)

    MATH  Google Scholar 

  • Bradstreet, L., While, L., Barone, L.: A fast incremental hypervolume algorithm. IEEE Trans. Evol. Comput. 12(6), 714–723 (2008)

    Article  Google Scholar 

  • Briggs, P., Torczon, L.: An efficient representation for sparse sets. ACM Lett. Progr. Lang. Syst. 2, 59–69 (1993)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • Butenhof, D.: Programming with POSIX Threads. Addison-Wesley Professional, Reading (1997)

    Google Scholar 

  • Deb, K.: Multi-objective Optimization Using Evolutionary Algorithms. Wiley-Interscience series in systems and optimization. Wiley, Chichester (2009)

    MATH  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Book  MATH  Google Scholar 

  • Gustafson, J.L.: Reevaluating Amdahl’s law. Commun. ACM 31, 532–533 (1988)

    Article  Google Scholar 

  • Hoare, C.A.R.: Algorithm 64: Quicksort. Commun. ACM 4, 321 (1961)

    Article  Google Scholar 

  • Hoare, C.A.R.: Algorithm 65: Find. Commun. ACM 4(7), 321–322 (1961)

    Article  Google Scholar 

  • 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)

    Article  MATH  Google Scholar 

  • 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)

    Article  Google Scholar 

  • Kiwiel, K.C.: On Floyd and Rivest’s SELECT algorithm. Theor. Comput. Sci. 347(1–2), 214–238 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  • 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)

    Article  MATH  Google Scholar 

  • Russo, L.M.S., Francisco, A.P.: Quick hypervolume. IEEE Trans Evol. Comput. 18(4), 481–502 (2014)

    Article  Google Scholar 

  • Schwartz, B.: The Paradox of Choice: Why More is Less. P. S. Series. HarperCollins, New York (2005)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • Zitzler, E., Künzli, S.: Indicator-based selection in multiobjective search. In: Parallel Problem Solving from Nature VIII, vol. 3242, pp. 832–842 (2004)

Download references

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

Authors

Corresponding author

Correspondence to Alexandre P. Francisco.

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.

figure a

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10732-016-9309-6

Keywords

Navigation