我刚开始接触遗传编程,现在在初始化我的种群时遇到了问题。
我需要用一棵树来表示每个候选解 - 问题是,我对树结构不熟悉。
我需要两种初始化方法,即Grow(变量大小的树)和Full(平衡相同形状和大小的树)。
FULL GROW
(*) (*)
(+) (-) (5) (-)
(1)(2) (3)(4) (6) (7)
我已经初始化了我的Tree类,但是我不知道如何继续从这里开始填充树(无论是完整的还是生长的)。
public class Tree{
Object value;
Tree left, right;
public Tree(Object value)
{
this.value=value;
}
public Tree (Object value, Tree left, Tree right)
{
this.value = value;
this.left = left;
this.right = right;
}
// Getter & setter for the value.
public Object getValue(){
return value;}
public void setValue(Object value){
this.value = value;}
// Getters & setters for left & right nodes.
public Tree getLeft(){
return left;}
public Tree getRight(){
return right;}
public void setLeft(Tree ln){
left = ln;}
public void setRight(Tree rn){
right = rn;}
}
请问有人能够友善地告诉我如何做到这一点,或者只是指导一下正确的方向。
我正在尝试在预定义的深度内随机填充树。
- 运算符(+ - / *)被插入到除叶节点以外的所有位置。
- 操作数(1-100)仅插入到叶节点上。
谢谢。