Home > Research > Genetic Programming > GP JavaMark 2.0

This simple benchmark assesses the performance of a Java Runtime Environment on a typical Alife-GP problem.   

The Details

This applet evolves a controller for a modified version of the lawn mower problem of Koza's GPI.  In this version, the world is a non-circular rectangle, with randomly placed obstacles. The controller has access to a sensor that reads the value of the grid one unit in front of it.  It interacts with the world by turning left or right, or moving forward (one move per instruction). The evolved code is for a 4 register CPU with a linier program representation.  The problem runs for 100 generations, with population size = 5000.  Selection is via tournament (best of 4 randomly chosen for mutation, worst of 4 replaced).  Genetic operators are equally weighted, one point crossover, single point mutation, single point deletion, and single point insertion.

Understanding the numbers

Raw score is the average number of seconds to complete a tournament for the last two tournaments run.  Relative score is the multiplied performance compared to a Dual 433 Celeron machine running Windows 2k, and the Visual Cafe 4.0a JRE. Higher is better; a relative score of 2 means the tournament completed in half the time of the reference machine.

Hardware

JRE

Relative Score
Dual 433Mhz Celeron, 256MB, Win2k Symantec Java 4.00.010(x)
 (from Visual Cafe 4.0a)

1.0

Dual 433Mhz Celeron, 256MB, Win2k Sun JDK 1.3 Applet Viewer

0.72

Dual 433Mhz Celeron, 256MB, Win2k Internet Explorer 5.5

0.71

Dual 433Mhz Celeron, 256MB, Win2k Netscape 4.75 (Java 1.1.5)

0.38

Athlon  550Mhz 128MB, Win98 Internet Explorer 5.0

 

PII 400Mhz, 128MB, Win95 Internet Explorer 5.5

 

G3 iMac 400Mhz, 128MB, OS 9 Internet Explorer 5.0

 

G3 iMac 333Mhz, 192MB, OS 9 Internet Explorer 5.0

 

G3 iBook 300Mhz, 96MB, OS 9 Internet Explorer 5.0

 

G3 iMac 266Mhz, 96MB, OS 9 Internet Explorer 5.0

 

Notes.  Other than for the Dual Celeron I use, all values are ordered from fastest to slowest. The values for the Celeron are kept together to aid in comparing different JREs on the same machine.  During runs on the Dual Celeron, the second CPU sees only a few percentage points of use, so the values should compare closely to a single Celeron machine. 

2000 Alan Robinson    (Email Alan)