Print

Print


I've not done this with ECJ but it should work (ECJ *should* be  
entirely self-contained by now).  I might suggest that you create the  
nested parameter database one time and then reuse it over and over  
again rather than loading from the file each time.  That is, assuming  
your implementation doesn't change any parameters programmatically.

If you change parameters programmatically, or need to adjust a  
parameter each time you set up the new EvolutionState, there's a hack  
you might be able to use to do that.  Parameter Databases have parent  
databases, which have parent databases, and so on.  When you set a  
parameter programmatically, it's set in the root database -- the  
parents are untouched.  So in theory you should be able to load a  
ParameterDatabase:

ParameterDatabase parent = Evolve.loadParameterDatabase(
	new String[] { Evolve.A_FILE, "my_param_file.params" });

... and then reuse it by making a new ParameterDatabase which points  
to it as a parent, like this:

ParameterDatabase data;
data = new ParameterDatabase(parent);

... and then do it again for aanother child, etc.:

data = new ParameterDatabase(parent);

... allowing you to change parameters in the 'data' database, sort of  
as a wrapper.

However, there doesn't *exist* a ParameterDatabase constructor of the  
kind I just described.  Yet.  I don't have time to hack one up right  
now but it should be pretty dang easy, along the lines of:

public ParameterDatabase(ParameterBase parent)
	{
	this();
	parents.addElement(parent);
	}

Sean



On Feb 3, 2008, at 5:36 AM, Michael Hart wrote:

> Hi Anais,
>
> This works for me:
>
> ----
>
> ParameterDatabase problemParams = Evolve
>     .loadParameterDatabase(new String[] { Evolve.A_FILE,
>         "my_param_file.params" });
>
> EvolutionState problemState = Evolve.initialize(problemParams, 0);
>
> ----
>
> Cheers,
>
> Michael
>
> On 02/02/2008, at 12:19 AM, Anais Martínez wrote:
>
>> Hi. I'm trying to make a GA problem in which each evaluation of  
>> individuals
>> is other GA. I've followed the example in this list of GA nested  
>> GP, but it
>> doesn't work.
>>
>> My code is:
>>
>> ---
>> File  f = new File("ec/app/EC/EC.params");
>> try{
>>    dataB = new ParameterDatabase(f);
>>    }catch(Exception e){
>> System.out.println(e);
>>   }
>>
>> state2 = Evolve.initialize(dataB,ECRandomOffset++);
>> ---
>> when it is executed, dataB has got all parameters of EC.params,  
>> but state2
>> doesn't. Where is the mistake?
>>
>> Thank you.