37 lines
894 B
Python
37 lines
894 B
Python
import numpy as np
|
|
|
|
from gp import Chromosome, ops
|
|
from gp.population import ramped_initialization
|
|
from gp.primitive import Var
|
|
|
|
operations = ops.ALL
|
|
terminals = [Var(f"x{i}") for i in range(1, 9)]
|
|
|
|
chrom = Chromosome.full_init(terminals, operations, max_depth=3)
|
|
print("Depth:", chrom.root.get_subtree_depth())
|
|
print("Formula:", chrom)
|
|
print("Tree:\n", chrom.root.to_str_tree())
|
|
|
|
values = [
|
|
np.array([1.0]),
|
|
np.array([2.0]),
|
|
np.array([3.0]),
|
|
np.array([4.0]),
|
|
np.array([5.0]),
|
|
np.array([6.0]),
|
|
np.array([7.0]),
|
|
np.array([8.0]),
|
|
]
|
|
context = {var: value for var, value in zip(terminals, values)}
|
|
print("Value for ", values, ":", chrom.root.eval(context))
|
|
|
|
population = ramped_initialization(
|
|
5,
|
|
[3, 4, 5, 6, 7, 8],
|
|
terminals,
|
|
operations,
|
|
)
|
|
print("Population size:", len(population))
|
|
print("Population:")
|
|
[print(str(chrom)) for chrom in population]
|