Skip to main content
Log in

JCLEC: a Java framework for evolutionary computation

  • Original Paper
  • Published:
Soft Computing Aims and scope Submit manuscript

Abstract

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.

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.

Similar content being viewed by others

References

  • Apache Software Foundation (2006) Jakarta commons configuration project. http://jakarta.apache.org/commons/configuration/

  • 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–244

    Article  Google Scholar 

  • Beyer HG (2001) The theory of evolution strategies. In: Natural computing. Springer, Berlin

  • Chellapilla K (1997) Evolving computer programs without subtree crossover. IEEE Trans Evol Comput 1(3):209–216

    Article  Google Scholar 

  • Cho DY, Cho KH, Zhang BT (2006) Identification of biochemical networks by s-tree based genetic programming. Bioinformatics 22(14):1631–1640

    Article  Google Scholar 

  • Chuang AS (2000) An extensible genetic algorithm framework for problem solving in a common environment. IEEE Trans Power Syst 15(1):269–275

    Article  Google Scholar 

  • 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, Norwell

  • 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–20

  • Cona J (1995) Developing a genetic programming system. AI Expert, pp 20–29

  • 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–632

    Article  Google Scholar 

  • Deb K (2002) Multi-objective optimization using evolutionary algorithms. In: Wiley interscience series on systems and optimization, 3rd edn. Wiley, New York

  • Deb K (2005) A population-based algorithm-generator for real-parameter optimization. Soft Comput 9(4):236–253

    Article  MATH  Google Scholar 

  • 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–197

    Google Scholar 

  • 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–283

    Google Scholar 

  • Ferreira C (2002) Gene expression programming: mathematical modelling by an artificial intelligence, 1st edn. Gepsoft, Portugal

    Google Scholar 

  • Forman IR, Forman N (2004) Java reflection in action. Manning Publications, Greenwich

    Google Scholar 

  • Fowler M (2003) UML Distilled: a brief guide to the standard object modeling language. In: Object technology, 3rd edn. Addison- Wesley Professional, Reading

  • Free Software Foundation. GCJ: The GNU compiler for the Java^TMprogramming language. http://gcc.gnu.org/java/, September 2006

  • Gagné C, Parizeau M (2006a) Genericity in evolutionary computation software tools: principles and case-study. Int J Artif Intell Tools 15(2):173–194

    Article  Google Scholar 

  • Gagné C, Parizeau M (2006b) Open BEAGLE: an evolutionary computation framework in C++. http://beagle.gel.ulval.ca

  • Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object oriented software. Addison Wesley, Reading

    Google Scholar 

  • Goldberg DE (1989) Genetic algorithms in search, optimization, and machine learning. Addison-Wesley Professional, Canadá

    MATH  Google Scholar 

  • Grand M (1998) Patterns in Java. A catalog of reusable design patterns illustrated with UML, vol 1, 1st edn. Wiley Computer Publishing, New York

  • Herrera F, Lozano M, Verdegay JL (1998) Tackling real-coded genetic algorithms: operators and tools for behavioural analysis. Artif Intell Rev 12(4):265–319

    Article  MATH  Google Scholar 

  • Hervás C, Ortiz D (2005) Analizing the statistical features of CIX-L2 crossover offspring. Soft Comput 4:270–279

    Article  Google Scholar 

  • 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–374

  • 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–2190

  • 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–244

  • 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–310

  • Koza JR (1992) Genetic programming: on the programming of computers by means of natural selection. In: Complex adaptive systems. MIT, Cambridge

  • Krasnogor N, Smith J (2000) MAFRA: a Java memetic algorithms framework. In: Genetic and evolutionary computation 2000 workshops, Las Vegas, Nevada, USA, pp 125–131

  • Krasnogor N, Smith J (2005) A tutorial for competent memetic algorithms: model, taxonomy, and design issues. IEEE Trans Evol Comput 9(5):474–488

    Article  Google Scholar 

  • Laguna M, Price Hossell K, Martí R (2002) Scatter search: methodology and implementation in C. Kluwer Academic Publishers, Norwell

    Google Scholar 

  • 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–208

  • Lewis B, Berg DJ (2001) Multithreaded programming with Java. In: Java series. Prentice Hall, California

  • 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–50

  • 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. http://cs.gmu.edu/eclab/projects/ecj

  • Martello S, Toth P (1990) Knapsack problems: algorithms and computer implementations. Wiley, Chichester

    MATH  Google Scholar 

  • Meyer M, Hufschlag K (2006) A generic approach to an object- oriented learning classifier system library. J Artif Soc Soc Simul 9(3), http://jasss.soc.surrey.ac.uk/9/3/9.html

  • Montana DJ (1995) Strongly typed genetic programming. Evol Comput 3(2):199–230

    Google Scholar 

  • 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–889

    Article  Google Scholar 

  • O’Neill M, Ryan C (2003) Grammatical evolution: evolutionary automatic programming in an arbitrary language. In: Genetic programming, vol 3. Kluwer Academic Publishers, Boston

  • Punch B, Zongker D (1998) lil-gp 1.1 beta. http://garage.cse.msu.edu/ software/lil-gp

  • 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–118

    Article  Google Scholar 

  • Rodrigues LH (1998) The awesome power of Java Beans. Manning, Greenwich

    Google Scholar 

  • 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–465

    Article  Google Scholar 

  • Rummler A (2006) Evolvica: a Java framework for evolutionary algorithms. http://www.evolvica.org

  • 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–102

    Google Scholar 

  • Sareni B, Krähenbuhl L (1998) Fitness sharing and niching methods revisited. IEEE Trans Evolut Comput 2(3):97–106

    Article  Google Scholar 

  • Silva S (2005) GPLAB: a genetic programming toolbox for MATLAB. http://gplab.sourceforge.net

  • Steuer E (1989) Multiple criteria optimization: theory, computation, and application. Wiley, New York

    MATH  Google Scholar 

  • Storn R, Price K (1997) Differential evolution, a fast and efficient heuristic for global optimization over continuous spaces. J Glob Optim 11:341–359

    Article  MATH  MathSciNet  Google Scholar 

  • 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–556

    Article  Google Scholar 

  • 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–338

    Article  Google Scholar 

  • 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–30

    Google Scholar 

  • Wong ML (2005) Evolving recursive programs by using adaptive grammar based genetic programming. Genet Program Evol Mach 6(4):421–455

    Article  Google Scholar 

  • 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–301

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sebastián Ventura.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ventura, S., Romero, C., Zafra, A. et al. JCLEC: a Java framework for evolutionary computation. Soft Comput 12, 381–392 (2008). https://doi.org/10.1007/s00500-007-0172-0

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00500-007-0172-0

Keywords

Navigation