Soft Computing

, Volume 12, Issue 4, pp 381–392 | Cite as

JCLEC: a Java framework for evolutionary computation

  • Sebastián VenturaEmail author
  • Cristóbal Romero
  • Amelia Zafra
  • José A. Delgado
  • César Hervás
Original Paper


In this paper we describe JCLEC, a Java software system for the development of evolutionary computation applications. This system has been designed as a framework, applying design patterns to maximize its reusability and adaptability to new paradigms with a minimum of programming effort. JCLEC architecture comprises three main modules: the core contains all abstract type definitions and their implementation; experiments runner is a scripting environment to run algorithms in batch mode; finally, GenLab is a graphical user interface that allows users to configure an algorithm, to execute it interactively and to visualize the results obtained. The use of JCLEC system is illustrated though the analysis of one case study: the resolution of the 0/1 knapsack problem by means of evolutionary algorithms.


Evolutionary computation software tools Framework Java Object oriented design 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Apache Software Foundation (2006) Jakarta commons configuration project. Scholar
  2. Benedetti A, Farina M, Gobbi M (2006) Evolutionary multiobjective industrial design: the case of a racing car tire-suspension system. IEEE Trans Evol Comput 10(3):230–244CrossRefGoogle Scholar
  3. Beyer HG (2001) The theory of evolution strategies. In: Natural computing. Springer, BerlinGoogle Scholar
  4. Chellapilla K (1997) Evolving computer programs without subtree crossover. IEEE Trans Evol Comput 1(3):209–216CrossRefGoogle Scholar
  5. Cho DY, Cho KH, Zhang BT (2006) Identification of biochemical networks by s-tree based genetic programming. Bioinformatics 22(14):1631–1640CrossRefGoogle Scholar
  6. Chuang AS (2000) An extensible genetic algorithm framework for problem solving in a common environment. IEEE Trans Power Syst 15(1):269–275CrossRefGoogle Scholar
  7. Coello C, van Veldhuizen DA, Lamont GB (2002) Evolutionary algorithms for solving multi-objective problems. In: Genetic algorithms and evolutionary computation series. Kluwer Academic Publishers, NorwellGoogle Scholar
  8. Collet P, Lutton E, Schoenauer M, Louchet J (2000) Take it EASEA. In: Parallel problem solving from nature—PPSN VI 6th international conference. Lecture notes in computer science, Paris, France, vol 1917. Springer, Berlin, pp 16–20Google Scholar
  9. Cona J (1995) Developing a genetic programming system. AI Expert, pp 20–29Google Scholar
  10. Cordón O, Herrera-Viedma E, Luque M (2006) Improving the learning of boolean queries by means of a multiobjective IQBE evolutionary algorithm. Inf Process Manage 42(3):615–632CrossRefGoogle Scholar
  11. Deb K (2002) Multi-objective optimization using evolutionary algorithms. In: Wiley interscience series on systems and optimization, 3rd edn. Wiley, New YorkGoogle Scholar
  12. Deb K (2005) A population-based algorithm-generator for real-parameter optimization. Soft Comput 9(4):236–253zbMATHCrossRefGoogle Scholar
  13. Deb K, Pratap A, Agarwal S, Meyarivan T (2002) A fast and elitist multi-objective genetic algorithm: NSGA-II. IEEE Trans Evol Comput 6(2):181–197Google Scholar
  14. Eshelman LJ (1990) The CHC adaptive search algorithm: how to have safe search when engaging in nontraditional genetic recombination. In: Rawlins GJE (eds). Foundations of genetic algorithms. Proceedings of the 1st workshop on foundations of genetic algorithms, Bloomington Campus, Indiana, USA, July 1990. Morgan Kaufmann, San Francisco, pp 265–283Google Scholar
  15. Ferreira C (2002) Gene expression programming: mathematical modelling by an artificial intelligence, 1st edn. Gepsoft, PortugalGoogle Scholar
  16. Forman IR, Forman N (2004) Java reflection in action. Manning Publications, GreenwichGoogle Scholar
  17. Fowler M (2003) UML Distilled: a brief guide to the standard object modeling language. In: Object technology, 3rd edn. Addison- Wesley Professional, ReadingGoogle Scholar
  18. Free Software Foundation. GCJ: The GNU compiler for the Java^TMprogramming language., September 2006Google Scholar
  19. Gagné C, Parizeau M (2006a) Genericity in evolutionary computation software tools: principles and case-study. Int J Artif Intell Tools 15(2):173–194CrossRefGoogle Scholar
  20. Gagné C, Parizeau M (2006b) Open BEAGLE: an evolutionary computation framework in C++. http://beagle.gel.ulval.caGoogle Scholar
  21. Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object oriented software. Addison Wesley, ReadingGoogle Scholar
  22. Goldberg DE (1989) Genetic algorithms in search, optimization, and machine learning. Addison-Wesley Professional, CanadázbMATHGoogle Scholar
  23. Grand M (1998) Patterns in Java. A catalog of reusable design patterns illustrated with UML, vol 1, 1st edn. Wiley Computer Publishing, New YorkGoogle Scholar
  24. Herrera F, Lozano M, Verdegay JL (1998) Tackling real-coded genetic algorithms: operators and tools for behavioural analysis. Artif Intell Rev 12(4):265–319zbMATHCrossRefGoogle Scholar
  25. Hervás C, Ortiz D (2005) Analizing the statistical features of CIX-L2 crossover offspring. Soft Comput 4:270–279CrossRefGoogle Scholar
  26. Higuchi T, Tsutsui S, Yamamura M (2000) Theoretical analysis of simplex crossover for real-coded genetic algorithms. In: Schoenauer M, Deb K, Rudolph G, Yao X, Lutton E, Merelo JJ, Schwefel HP (eds) Parallel problem solving in nature (PPSN-VI). Lecture notes in computer science, Paris, France, vol 1917. Springer, Berlin, pp 365–374Google Scholar
  27. Jin W, Tontiwachwunthikul P, Chan CW, Huang GH (2005) A genetic algorithms framework for grey non-linear programming problems. In: Canadian conference on electrical and computer engineering 2005, Saskatoon. IEEE, USA, pp 2187–2190Google Scholar
  28. Keijzer M, Merelo JJ, Romero G, Schoenauer M (2001) Evolving objects: a general purpose evolutionary computation library. In: Collet P, Fonlupt C, Hao J-K, Lutton E, Schoenauer M (eds) Artificial evolution: selected papers from the 5th European conference on artificial evolution. Lecture notes in computer science, London, UK, vol 2310. Springer, Berlin, pp 231–244Google Scholar
  29. Keith MJ, Martin MC (1994) Genetic programming in C++: implementation issues. In: Kinnear KE Jr (ed) Advances in genetic programming, Cambridge, MA, USA. MIT, Cambridge, pp 285–310Google Scholar
  30. Koza JR (1992) Genetic programming: on the programming of computers by means of natural selection. In: Complex adaptive systems. MIT, CambridgeGoogle Scholar
  31. Krasnogor N, Smith J (2000) MAFRA: a Java memetic algorithms framework. In: Genetic and evolutionary computation 2000 workshops, Las Vegas, Nevada, USA, pp 125–131Google Scholar
  32. Krasnogor N, Smith J (2005) A tutorial for competent memetic algorithms: model, taxonomy, and design issues. IEEE Trans Evol Comput 9(5):474–488CrossRefGoogle Scholar
  33. Laguna M, Price Hossell K, Martí R (2002) Scatter search: methodology and implementation in C. Kluwer Academic Publishers, NorwellGoogle Scholar
  34. Lenaers T, Manderick B (1998) Building a genetic programming framework: the added value of design patterns. In: Banzhaf W, Poli R, Schoenauer M, Fogarty TC (eds) Proceedings of the EuroGP 98. Lecture notes in computer science, Paris, France, vol 1391. Springer, Berlin, pp 196–208Google Scholar
  35. Lewis B, Berg DJ (2001) Multithreaded programming with Java. In: Java series. Prentice Hall, CaliforniaGoogle Scholar
  36. Liu HS, Mernik M, Bryant BR (2004) Parameter control in evolutionary algorithms by domain-specific scripting language PPCEA. In: Proceedings of the 1st international conference on bioinspired optimization methods and their applications (BIOMA’04), Ljubljana, Slovenia, pp 41–50Google Scholar
  37. Luke S, Panait L, Balan G, Paus S, Skolicki Z, Bassett J, Hubley R, Chircop A (2006) ECJ: a Java based evolutionary computation research system. Scholar
  38. Martello S, Toth P (1990) Knapsack problems: algorithms and computer implementations. Wiley, ChichesterzbMATHGoogle Scholar
  39. Meyer M, Hufschlag K (2006) A generic approach to an object- oriented learning classifier system library. J Artif Soc Soc Simul 9(3), Scholar
  40. Montana DJ (1995) Strongly typed genetic programming. Evol Comput 3(2):199–230Google Scholar
  41. Mucientes M, Moreno DL, Bugarín A, Barro S (2006) Evolutionary learning of a fuzzy controller for wall-following behavior in mobile robotics. Soft Comput 10(10):881–889CrossRefGoogle Scholar
  42. O’Neill M, Ryan C (2003) Grammatical evolution: evolutionary automatic programming in an arbitrary language. In: Genetic programming, vol 3. Kluwer Academic Publishers, BostonGoogle Scholar
  43. Punch B, Zongker D (1998) lil-gp 1.1 beta. software/lil-gpGoogle Scholar
  44. Ratle A, Sebag M (2001) Grammar-guided genetic programming and dimensional consistency: application to non-parametric identification in mechanics. Appl Soft Comput 1(1):105–118CrossRefGoogle Scholar
  45. Rodrigues LH (1998) The awesome power of Java Beans. Manning, GreenwichGoogle Scholar
  46. Romero C, Ventura S, de Bra P (2004) Knowledge discovery with genetic programming for providing feedback to courseware author. User modeling and user-adapted interaction. J Personal Res 14(5):425–465CrossRefGoogle Scholar
  47. Rummler A (2006) Evolvica: a Java framework for evolutionary algorithms. http://www.evolvica.orgGoogle Scholar
  48. Rummler A, Scarbata G (2001) eaLib—a Java framework for implementation of evolutionary algorithms. In: Reusch B (eds). Fuzzy days 2001. Lecture notes in computer science, vol 2206. Springer, Berlin Heidelberg, pp 92–102Google Scholar
  49. Sareni B, Krähenbuhl L (1998) Fitness sharing and niching methods revisited. IEEE Trans Evolut Comput 2(3):97–106CrossRefGoogle Scholar
  50. Silva S (2005) GPLAB: a genetic programming toolbox for MATLAB. http://gplab.sourceforge.netGoogle Scholar
  51. Steuer E (1989) Multiple criteria optimization: theory, computation, and application. Wiley, New YorkzbMATHGoogle Scholar
  52. Storn R, Price K (1997) Differential evolution, a fast and efficient heuristic for global optimization over continuous spaces. J Glob Optim 11:341–359zbMATHCrossRefMathSciNetGoogle Scholar
  53. Tan KC, Lee TH, Khoo D, Khor EF (2001) A multiobjective evolutionary algorithm toolbox for computer-aided multiobjective optimization. IEEE Trans Syst Man Cyber Part B Cyber 31(4):537–556CrossRefGoogle Scholar
  54. Tan KC, Tay A, Cai J (2003) Design and implementation of a distributed evolutionary computing software. IEEE Trans Syst Man Cybern Part B Cybern 33(3):325–338CrossRefGoogle Scholar
  55. Ventura S, Ortiz D, Hervás C (2002) JCLEC: Una biblioteca de clases java para computación evolutiva. In: Alba E, Fernández F, Herrera F, Hidalgo JI, Lanchares J, Merelo JJ, Sánchez JM. (eds). Primer Congreso Español de Algoritmos Evolutivos y Bioinspirador. Mérida, Spain, pp 23–30Google Scholar
  56. Wong ML (2005) Evolving recursive programs by using adaptive grammar based genetic programming. Genet Program Evol Mach 6(4):421–455CrossRefGoogle Scholar
  57. Zitzler E, Thiele L (1998) Multiobjective optimization using evolutionary algorithms—a comparative case study. In: Eiben AE, Back T, Schoenauer M, Schwefel H (eds) Parallel problem solving from nature—PPSN-V. Lecture notes in computer science, Amsterdan, vol 1498. Springer, Berlin, pp 292–301Google Scholar

Copyright information

© Springer-Verlag 2007

Authors and Affiliations

  • Sebastián Ventura
    • 1
    Email author
  • Cristóbal Romero
    • 1
  • Amelia Zafra
    • 1
  • José A. Delgado
    • 1
  • César Hervás
    • 1
  1. 1.Department of Computer Sciences and Numerical AnalysisUniversity of Córdoba, Campus Universitario de RabanalesCordobaSpain

Personalised recommendations