|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectec.Evolve
public class Evolve
Evolve is the main entry class for an evolutionary computation run.
An EC run is done with one of two argument formats:
java ec.Evolve -file parameter_file [-p parameter=value]*
This starts a new evolutionary run, using the parameter file parameter_file. The user can provide optional overriding parameters on the command-line with the -p option.
java ec.Evolve -checkpoint checkpoint_file
This starts up an evolutionary run from a previous checkpoint file.
The basic Evolve class has a main() loop with a simple job iteration facility. If you'd like to run the evolutionary system four times, each with a different random seed, you might do:
java ec.Evolve -file parameter_file -p jobs=4
Here, Evolve will run the first time with the random seed equal to whatever's specified in your file, then job#2 will be run with the seed + 1, job#3 with the seed + 2, and job#4 with the seed + 3. If you have multiple seeds, ECJ will try to make sure they're all different even across jobs by adding the job number * numberOfSeeds to each of them. This means that if you're doing multiple jobs with multiple seeds, you should probably set seed.0 to x, seed.1 to x+1, seed.2 to x+2, etc. for best results. It also works if seed.0 is x, seed.1 is y (a number much bigger than x), seed.2 is z (a number much bigger than y) etc. If you set seed.0=time etc. for multiple jobs, the values of each seed will be set to the current time that the job starts plus the job number * numberOfSeeds. As current time always goes up, this shouldn't be an issue. However it's theoretically possible that if you checkpoint and restart on another system with a clock set back in time, you could get the same seed in a later job.
main() has been designed to be modified. The comments for the Evolve.java file contain a lot discussion of how ECJ's main() bootstraps the EvolutionState object and runs it, plus a much simpler example of main() and explanations for how main() works.
Parameters
jobs int >= 1 (default) | (The number of jobs to iterate. The current job number (0...jobs-1) will be added to each seed UNLESS the seed is loaded from the system time. The job number also gets added as a prefix (if the number of jobs is more than 1)). |
nostore bool = true or false (default) |
(should the ec.util.Output facility not store announcements in memory?) |
flush bool = true or false (default) |
(should I flush all output as soon as it's printed (useful for debugging when an exception occurs)) |
verbosity int >= 0 |
(the ec.util.Output object's verbosity) |
evalthreads int >= 1 |
(the number of threads to spawn for evaluation) |
breedthreads int >= 1 |
(the number of threads to spawn for breeding) |
seed.n int != 0, or string = time |
(the seed for random number generator #n. n should range from 0 to Max(evalthreads,breedthreads)-1. If value is time, then the seed is based on the system clock plus n.) |
state classname, inherits and != ec.EvolutionState |
(the EvolutionState object class) |
print-accessed-params bool = true or false (default) |
(at the end of a run, do we print out a list of all the parameters requested during the run?) |
print-used-params bool = true or false (default) |
(at the end of a run, do we print out a list of all the parameters actually used during the run?) |
print-unaccessed-params bool = true or false (default) |
(at the end of a run, do we print out a list of all the parameters NOT requested during the run?) |
print-unused-params bool = true or false (default) |
(at the end of a run, do we print out a list of all the parameters NOT actually used during the run?) |
print-all-params bool = true or false (default) |
(at the end of a run, do we print out a list of all the parameters stored in the parameter database?) |
Field Summary | |
---|---|
static java.lang.String |
A_CHECKPOINT
The argument indicating that we're starting up from a checkpoint file. |
static java.lang.String |
A_FILE
The argument indicating that we're starting fresh from a new parameter file. |
static java.lang.String |
P_BREEDTHREADS
breedthreads parameter |
static java.lang.String |
P_EVALTHREADS
evalthreads parameter |
static java.lang.String |
P_FLUSH
flush announcements parameter |
static java.lang.String |
P_PRINTACCESSEDPARAMETERS
|
static java.lang.String |
P_PRINTALLPARAMETERS
|
static java.lang.String |
P_PRINTUNACCESSEDPARAMETERS
|
static java.lang.String |
P_PRINTUNUSEDPARAMETERS
|
static java.lang.String |
P_PRINTUSEDPARAMETERS
|
static java.lang.String |
P_SEED
seed parameter |
static java.lang.String |
P_STATE
state parameter |
static java.lang.String |
P_STORE
nostore parameter |
static java.lang.String |
P_VERBOSITY
verbosity parameter |
static java.lang.String |
V_SEED_TIME
'time' seed parameter value |
Constructor Summary | |
---|---|
Evolve()
|
Method Summary | |
---|---|
static void |
cleanup(EvolutionState state)
Begins a fresh evolutionary run with a given state. |
static int |
determineSeed(Output output,
ParameterDatabase parameters,
Parameter seedParameter,
long currentTime,
int offset)
Loads a random generator seed. |
static EvolutionState |
initialize(ParameterDatabase parameters,
int randomSeedOffset)
Initializes an evolutionary run given the parameters and a random seed adjustment (added to each random seed). |
static ParameterDatabase |
loadParameterDatabase(java.lang.String[] args)
Loads a ParameterDatabase from checkpoint if "-params" is in the command-line arguments. |
static void |
main(java.lang.String[] args)
Top-level evolutionary loop. |
static EvolutionState |
possiblyRestoreFromCheckpoint(java.lang.String[] args)
Restores an EvolutionState from checkpoint if "-checkpoint FILENAME" is in the command-line arguments. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String P_PRINTACCESSEDPARAMETERS
public static final java.lang.String P_PRINTUSEDPARAMETERS
public static final java.lang.String P_PRINTALLPARAMETERS
public static final java.lang.String P_PRINTUNUSEDPARAMETERS
public static final java.lang.String P_PRINTUNACCESSEDPARAMETERS
public static final java.lang.String A_CHECKPOINT
public static final java.lang.String A_FILE
public static final java.lang.String P_FLUSH
public static final java.lang.String P_STORE
public static final java.lang.String P_VERBOSITY
public static final java.lang.String P_EVALTHREADS
public static final java.lang.String P_BREEDTHREADS
public static final java.lang.String P_SEED
public static final java.lang.String V_SEED_TIME
public static final java.lang.String P_STATE
Constructor Detail |
---|
public Evolve()
Method Detail |
---|
public static EvolutionState possiblyRestoreFromCheckpoint(java.lang.String[] args)
public static ParameterDatabase loadParameterDatabase(java.lang.String[] args)
public static int determineSeed(Output output, ParameterDatabase parameters, Parameter seedParameter, long currentTime, int offset)
public static EvolutionState initialize(ParameterDatabase parameters, int randomSeedOffset)
public static void cleanup(EvolutionState state)
public static void main(java.lang.String[] args)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |