Hello Sean,
first thanks for your reply. You specialized the question too much. I just wanted to know if it's possible to create different syntax trees for each population because the non-based rules got other objects than the rulebased-rules.
But your reply answers a bunch of questions I've had in mind yet.
<4. ECJ has a rules package which is very general: you'll have to write your own interpreter though.
<It also has an extensive GP package, including typing. Note that these packages can't be used at
<the same time because they both rely on custom Initializers to store stuff and you can only have
<one Initializer. That's something I can fix for you however; it's long overdue. Also you could use
<ECJ's list facilities to hold your rules and that's totally compatible with the GP package.
I don't know what you mean with interpreter (I think you mean rule syntax or so), but I cannot use
the rule package how it is at the moment, because I want to evolve the condition of a rule, not
the complete rule. What I've read up to now is that only complete rules will evolve. I don't
know if I can change the parts which should evolve and which not, of a rule of course.
I also thought about using the gp package. The only things I need to write are the different operators
and objects for the syntax trees and a Tree2Rule writer/reader to test the rules after each creation.
And of course the fitness function but thats only my problem.
----- Ursprüngliche Mail -----
Von: "Sean Luke" <[log in to unmask]>
An: [log in to unmask]
Gesendet: Mittwoch, 16. Januar 2013 07:47:13
Betreff: Re: Hierarchical GP
Bojan, I'm not exactly positive what you're asking for here. I *think* what you're doing is asking if you can simultaneously evolve rules and also combinations of those rules. It's not clear though.
Lacking clarity, here are some kinds of things ECJ can do that might be relevant to you.
1. ECJ supports multiple subpopulations, and also coevolution. There's no reason you can't evolve rules in one subpopulation and combinations of those rules in another subpopulation.
2. ECJ supports a number of forms of coevolution, and hooks to construct your own.
3. ECJ supports island models, allowing you to construct an injection island model for evolving rules and then injecting them into a later population to be grouped together.
4. ECJ has a rules package which is very general: you'll have to write your own interpreter though. It also has an extensive GP package, including typing. Note that these packages can't be used at the same time because they both rely on custom Initializers to store stuff and you can only have one Initializer. That's something I can fix for you however; it's long overdue. Also you could use ECJ's list facilities to hold your rules and that's totally compatible with the GP package.
5. ECJ is entirely self-contained. You can make ECJ processes which evaluate individuals and as part of that procedure fire up other ECJ processes to do meta-evolution.
Sean
On Jan 15, 2013, at 7:14 AM, Bojan Janisch wrote:
> Hello everyone,
>
> my problem is that I want to use a hierarchical GP engine.
> So is it possible with ecj to solve a GP-problem in a
> GP-problem?
>
> Background:
> I want to combine a rulebased method with GP to create and
> extend rules automatically. The Problem is that I'm using
> hierarchical rules, means rules that are based on other rules.
>
> To solve this I must first calculate the non-based rules to a
> best fit and than calculate the combination of these rules
> to find the best rulebased rules.
>
> So is ECJ capable of this?
>
> In worst case I maybe have to write my own GP engine, that is
> using ECJ for non-based rules, to find the best solution in
> rulebased-rules.
>
> Greets from Germany
> Bojan
|