A HeuristicLab Evolutionary Algorithm for FINCH Achiya Elyasaf

Michael Orlov

Moshe Sipper

Ben-Gurion University of the Negev, Be’er Sheva, Israel

Ben-Gurion University of the Negev, Be’er Sheva, Israel

Ben-Gurion University of the Negev, Be’er Sheva, Israel

[email protected]

[email protected]

[email protected]

ABSTRACT

}}

0 iconst_1 1 istore_2 2 iload_1 3 ifle 16 6 iload_1 7 aload_0 8 iload_1 9 iconst_1 10 isub 11 invokevirtual #2 14 imul 15 istore_2 16 iload_2 17 ireturn

(a)

(b)

class F { int fact(int n) { // offsets 0-1 int ans = 1;

We present a HeuristicLab plugin for FINCH.

Categories and Subject Descriptors

// offsets 2-3 if (n > 0) // offsets 6-15 ans = n * fact(n-1);

D.2.2 [Software Engineering]: Design Tools and Techniques; D.2.3 [Programming Languages]: Language Constructs and Features; I.2.2 [Artificial Intelligence]: Automatic Programming-program transformation, program modification

Algorithms, Languages

Keywords

ra ft

General Terms

// offsets 16-17 return ans;

Figure 1: A recursive factorial function in Java (a) and its corresponding bytecode (b). The argument to the virtual method invocation (invokevirtual) references the int F.fact(int) method via the constant pool.

Java bytecode, Software Evolution, HeuristicLab

1.

FINCH

FINCH (Fertile Darwinian Bytecode Harvester) is a system designed to evolutionarily improve actual extant software, which was not intentionally written for the purpose of serving as a GP representation in particular, nor for evolution in general. The only requirement is that the software source code be either written in Java or can be compiled to Java bytecode. The following chapter provides an overview of FINCH, ending with a pr´ecis of results. Additional information can be found in [6, 7]. Java compilers typically do not produce machine code directly, but instead compile source-code files to platformindependent bytecode, to be interpreted in software or, rarely, to be executed in hardware by a Java Virtual Machine (JVM) [4]. The JVM is free to apply its own optimization techniques, such as Just-in-Time (JIT) on-demand compilation Java compilation to native machine code—a process that is transparent to the user. The JVM implements a stackbased architecture with high-level language features such as object management and garbage collection, virtual function calls, and strong typing. The bytecode language itself is a well-designed assembly-like language with a limited yet powerful instruction set [3, 4]. Figure 1 shows a recursive Java program for computing the factorial of a number, and its corresponding bytecode.

D

The JVM architecture is successful enough that several programming languages compile directly to Java bytecode (e.g., Scala, Groovy, Jython, Kawa, JavaFX Script, and Clojure). Moreover, Java decompilers are available, which facilitate restoration of the Java source code from compiled bytecode. Since the design of the JVM is closely tied to the design of the Java programming language, such decompilation often produces code that is very similar to the original source code [5]. We chose to automatically improve extant Java programs by evolving the respective compiled bytecode versions. This allows us to leverage the power of a well-defined, crossplatform, intermediate machine language at just the right level of abstraction: We do not need to define a special evolutionary language, thus necessitating an elaborate two-way transformation between Java and our language; nor do we evolve at the Java level, with its encumbering syntactic constraints, which render the genetic operators of crossover and mutation arduous to implement. Note that we do not wish to invent a language to improve upon some aspect or other of GP (efficiency, terseness, readability, etc.), as has been amply done. Nor do we wish to extend standard GP to become Turing complete, an issue which has also been addressed [9]. Rather, conversely, our point of departure is an extant, highly popular, generalpurpose language, with our aim being to render it evolvable.

Copyright is held by the author/owner(s). GECCO’13 Companion, July 6–10, 2013, Amsterdam, The Netherlands. ACM 978-1-4503-1964-5/13/07.

1727

Acknowledgments

The ability to evolve Java programs will hopefully lead to a valuable new tool in the software engineer’s toolkit. Currently, FINCH uses ASM [1] and ECJ evolutionary framework [2], with ECJ providing the evolutionary engine. The configuration of ECJ as well as FINCH is done by multiple hierarchical parameter files that are used to define the evolutionary algorithm parameters (e.g., number of generations, mutation and crossover probabilities) and the bytecode parameters (e.g., the bytecode seed and the fitness evaluator). To the non-expert user, executing a simple experiment in FINCH or even in ECJ is a non-trivial task. We wish to simplify the usage of FINCH by adding a GUI for FINCH. Even though ECJ version 2.0 includes a simple GUI, it still requires handling several parameter files. Thus we turn to HeuristicLab.

2.

Achiya Elyasaf is partially supported by the Lynn and William Frankel Center for Computer Sciences. This research was supported by the Israel Science Foundation (grant no. 123/11).

4. REFERENCES [1] E. Bruneton, R. Lenglet, and T. Coupaye. ASM: A code manipulation tool to implement adaptable systems (Un outil de manipulation de code pour la r´ealisation de syst`emes adaptables). In Adaptable and Extensible Component Systems (Syst`emes ` a Composants Adaptables et Extensibles), October 17–18, 2002, Grenoble, France, pages 184–195, Oct. 2002. [2] ECLab Evolutionary Computation Laboratory, George Mason University. ECJ 2.0. http://cs.gmu.edu/~eclab/projects/ecj/, 2010. [3] J. Engel. Programming for the JavaTM Virtual Machine. Addison-Wesley, Reading, MA, USA, July 1999. [4] T. Lindholm and F. Yellin. The JavaTM Virtual Machine Specification. The JavaTM Series. Addison-Wesley, Boston, MA, USA, second edition, Apr. 1999. [5] J. Miecznikowski and L. Hendren. Decompiling Java bytecode: Problems, traps and pitfalls. In R. N. Horspool, editor, Compiler Construction: 11th International Conference, CC 2002, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2002, Grenoble, France, April 8–12, 2002, volume 2304 of Lecture Notes in Computer Science, pages 111–127, Berlin / Heidelberg, Apr. 2002. Springer-Verlag. [6] M. Orlov and M. Sipper. Genetic programming in the wild: Evolving unrestricted bytecode. In G. Raidl et al., editors, Proceedings of the 11th Annual Conference on Genetic and Evolutionary Computation, July 8–12, 2009, Montr´eal Qu´ebec, Canada, pages 1043–1050, New York, NY, USA, July 2009. ACM Press. [7] M. Orlov and M. Sipper. Flight of the finch through the java wilderness. IEEE Transactions on Evolutionary Computation, 15(2):166–182, 2011. [8] S. Wagner. Heuristic Optimization Software Systems Modeling of Heuristic Optimization Algorithms in the HeuristicLab Software Environment. PhD thesis, Johannes Kepler University, Linz, Austria, 2009. [9] J. R. Woodward. Evolving Turing complete representations. In R. Sarker et al., editors, The 2003 Congress on Evolutionary Computation, CEC 2003, Canberra, Australia, 8–12 December, 2003, volume 2, pages 830–837. IEEE Press, Dec. 2003.

HEURISTICLAB

HeuristicLab [8] is a GUI framework for heuristic and evolutionary algorithms. HeuristicLab provides a feature-rich software environment for heuristic optimization researchers and practitioners. It is based on a generic and flexible model layer and offers a graphical algorithm designer that enables the user to create, apply, and analyze heuristic optimization methods. A powerful experimenter allows HeuristicLab users to design and perform parameter tests even in parallel. The results of these tests can be stored and analyzed easily in several configurable charts. HeuristicLab is available under the GPL license. We present here a preliminary work on a HeuristicLab evolutionary algorithm for FINCH. Using HeuristicLab along with FINCH will simplify the learning process. The crossover, mutation and fitness evaluation will be done by FINCH, while all of the parameters handling as well as executing the experiments and analyzing the results will be done directly from HeuristicLab, thus excising the use of ECJ.

3.

A SUMMARY OF RESULTS

In this section we present some results of FINCH. Due to space limitations we only provide a brief description of our results, with the full account available in [6, 7]. To date, we have successfully tackled several problems: • Simple and complex symbolic regression: Evolve pro4 3 grams to approximate the simple polynomial P9x +ix + 2 x + x and the more complex polynomial i=1 x . • Artificial ant problem: Evolve programs to find all 89 food pellets on the Santa Fe trail. • Intertwined spirals problem: Evolve programs to correctly classify 194 points on two spirals. • Array sum: Evolve programs to compute the sum of values of an integer array, along the way demonstrating FINCH ’s ability to handle loops and recursion. • Tic-tac-toe: Evolve a winning program for the game, starting from a flawed implementation of the negamax algorithm. This example shows that programs can be improved.

1728

Heuristiclab Evolutionary Algorithm for Finch.pdf

Figure 1: A recursive factorial function in Java (a) ... Artificial ant problem: Evolve programs to find all 89 ... Heuristiclab Evolutionary Algorithm for Finch.pdf.

1MB Sizes 1 Downloads 191 Views

Recommend Documents

An Evolutionary Algorithm for Homogeneous ...
fitness and the similarity between heterogeneous formed groups that is called .... the second way that is named as heterogeneous, students with different ...

Number Theoretic Evolutionary Algorithm for ...
In this paper, firstly the main concepts of differential evolution algorithm (DEA) ..... [5] Storn R. Differential evolution design of an IIR2filter. IEEE Int. Conf. on ...

Genetic evolutionary algorithm for static traffic grooming ...
At each node of the network, there are SONET [4,5]. Add-Drop ... tain way has been proposed by the authors. Almost .... (j,i)th call is followed by an (i,j)th call for a uni-direc- ..... WDM Optical Networks, 3rd International conference on Wireless.

Genetic evolutionary algorithm for optimal allocation of ...
Keywords WDM optical networks · Optimal wavelength converter ... network may employ wavelength converters to increase the ..... toward the next generation.

TestFul: using a hybrid evolutionary algorithm for testing stateful systems
This paper introduces TestFul, a framework for testing state- ful systems and focuses on object-oriented software. TestFul employs a hybrid multi-objective evolutionary algorithm, to explore the space of feasible tests efficiently, and novel qual- it

An Evolutionary Algorithm for Constrained Multiobjective
MOPs as mathematical programming models, viz goal programming (Charnes and ..... Genetic algorithms + data structures = evolution programs (3rd ed.).

Genetic evolutionary algorithm for optimal allocation of ...
Given a set of connections between the source-destination node-pairs, the algorithm to ..... advantages of natural genetic system. In this article, more ..... rence on Wireless and Optical Communications Networks – 2006. (WOCN'06), IEEE ...

An Evolutionary Algorithm for Column Generation in ...
We consider the 3-stage two-dimensional bin packing prob- lem, which ..... didate solution is created by always applying recombination, and applying mu-.

Srinivasan, Seow, Particle Swarm Inspired Evolutionary Algorithm ...
Tbe fifth and last test function is Schwefel function. given by: d=l. Page 3 of 6. Srinivasan, Seow, Particle Swarm Inspired Evolutionar ... (PS-EA) for Multiobjective ...

UEAS: A Novel United Evolutionary Algorithm Scheme
netic algorithms, evolution strategies, evolutionary programming, particle swarm optimization (PSO) and ..... Automation, Dalian, China, (2006) 3330–3334. 11.

Quantum Evolutionary Algorithm Based on Particle Swarm Theory in ...
hardware/software systems design [1], determination ... is found by swarms following the best particle. It is ..... “Applying an Analytical Approach to Shop-Floor.

Quantum Evolutionary Algorithm Based on Particle Swarm Theory in ...
Md. Kowsar Hossain, Md. Amjad Hossain, M.M.A. Hashem, Md. Mohsin Ali. Dept. of ... Khulna University of Engineering & Technology, ... Proceedings of 13th International Conference on Computer and Information Technology (ICCIT 2010).

An Evolutionary Algorithm Using a Cellular Population ...
University of Technology and of the Academic Board of ... (GECCO), Lecture Notes in Computer Science, 2004,. 3102, 1162- ... The University of Michigan Press.

Polynomial algorithm for graphs isomorphism's
Polynomial algorithm for graphs isomorphism's i. Author: Mohamed MIMOUNI. 20 Street kadissia Oujda 60000 Morocco. Email1 : mimouni.mohamed@gmail.

Automated Methods for Evolutionary Pavé Jewellery Design
Jan 15, 2006 - Keywords Jewellery design, evolutionary algorithm, aesthetics, ..... Whilst the more natural application of this algorithm might appear to be in ...... to aid in the automated construction of Pavé jewellery exist, although at a price.

Ensemble Learning for Free with Evolutionary Algorithms ?
Free” claim is empirically examined along two directions. The first ..... problem domain. ... age test error (over 100 independent runs as described in Sec-.

Monotonic iterative algorithm for minimum-entropy autofocus
m,n. |zmn|2 ln |zmn|2 + ln Ez. (3) where the minimum-entropy phase estimate is defined as. ˆφ = arg min .... aircraft with a nose-mounted phased-array antenna.

CMII3 - Compensation Algorithm for Deterministic ...
Novel dispersive devices, such as chirped fiber Bragg gratings (CFBGs), can be used to temporally process broadband optical signals. Unlike optical fiber, these ...

Data Structure and Algorithm for Big Database
recommendation for further exploration and some reading lists with some ... There is a natural tendency for companies to store data of all sorts: financial data, ...

An Adaptive Fusion Algorithm for Spam Detection
An email spam is defined as an unsolicited ... to filter harmful information, for example, false information in email .... with the champion solutions of the cor-.

BAYESIAN PURSUIT ALGORITHM FOR SPARSE ...
We show that using the Bayesian Hypothesis testing to de- termine the active ... suggested algorithm has the best performance among the al- gorithms which are ...

Exponentiated backpropagation algorithm for multilayer ...
3Department of Mathematics and Computer Applications. 4Department of Information Technology. Sri Venkateswara College of Engineering, Sriperumbudur ...