Ho appena iniziato con la programmazione genetica e sto riscontrando problemi di inizializzazione della mia popolazione.Programmazione genetica ad albero binario
Ho bisogno di un albero per rappresentare ogni soluzione candidata - Il problema è che non conosco gli alberi.
Ci sono due modi di inizializzazione di cui ho bisogno, vale a dire Grow (albero di dimensioni variabili) e completa (albero stessa forma e dimensione equilibrato).
FULL GROW
(*) (*)
(+) (-) (5) (-)
(1)(2) (3)(4) (6) (7)
ho inizializzato mia classe Albero, tuttavia, non so come procedere da qui in poi per popolare l'albero (sia completa o crescere).
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;}
}
Qualcuno potrebbe gentilmente dirmi come questo può essere fatto, o anche solo una piccola spinta nella giusta direzione.
Sto provando a popolare a caso gli alberi fino a una profondità predefinita.
- Gli operatori (+ -/*) sono inseriti ovunque a prescindere dai nodi foglia.
- Operandi (1-100) sono inseriti solo sui nodi foglia
Grazie.
Ciao scusa, ho modificato il mio post originale con chiarezza. Sto provando a generare in modo casuale un albero con una profondità predefinita con operatori e operandi. – Leo
Grazie! Questo e 'esattamente quello che stavo cercando! – Leo