Ejemplo n.º 1
0
def test_full_tree2_typed():
    np.random.seed(42)
    pset = pg.PrimitiveSet(typed=True)
    pset.addFunction(op.add, 2, [int, int, int])
    pset.addFunction(op.sub, 2, [float, int, int])
    pset.addFunction(op.mul, 2, [int, float, float])
    pset.addFunction(op.truediv, 2, [float, float, float])
    pset.addTerminal(1, [int])
    pset.addTerminal(2, [int])
    pset.addTerminal(3, [int])
    pset.addTerminal(4.0, [float])
    pset.addTerminal(5.0, [float])
    pset.addTerminal(6.0, [float])
    pset.addVariable("x", [float])
    pset.addVariable("y", [int])
    init_max_depth = 7
    max_depth = 7
    tree = pg.full_tree(pset, init_max_depth, max_depth)
    assert np.array_equal(tree, np.array([ 3,  4,  2,  1,  1,  3,  8,  8,  1,  6,  7,  1,  1,  7, 12,  1, 12,
       12,  3,  2,  3,  8,  9,  3, 11,  9,  4,  4, 11, 11,  2,  5, 12,  4,
        4,  2,  3,  8,  8,  1,  7,  7,  4,  4, 11, 11,  4, 10,  9,  4,  2,
        3, 10, 11,  1, 12, 12,  2,  1,  5,  7,  1,  5,  5,  2,  3,  4,  2,
        3,  9,  9,  3,  8,  9,  2,  3, 11, 11,  1, 12,  7,  4,  2,  3, 10,
       10,  3,  8, 11,  4,  4, 11,  9,  4,  9,  9,  3,  4,  4,  2,  7,  6,
        4, 11,  9,  4,  4, 11,  9,  2, 12,  7,  4,  4,  2, 12,  5,  4, 11,
        8,  4,  2,  6,  7,  2, 12,  6,  0]))
Ejemplo n.º 2
0
def test_grow_tree3():
    np.random.seed(45345)
    pset = pg.PrimitiveSet()
    pset.addFunction(op.add, 2)
    pset.addFunction(op.sub, 2)
    pset.addTerminal(1)
    pset.addTerminal(2)
    pset.addTerminal(3)
    pset.addVariable("x")
    init_max_depth = 2
    max_depth = 2
    tree = pg.full_tree(pset, init_max_depth, max_depth)
    assert np.array_equal(tree, np.array([1, 6, 5, 0]))
Ejemplo n.º 3
0
def test_full_tree1_typed():
    np.random.seed(42)
    pset = pg.PrimitiveSet(typed=True)
    pset.addFunction(op.add, 2, [int, int, int])
    pset.addFunction(op.sub, 2, [int, int, int])
    pset.addTerminal(1, [int])
    pset.addTerminal(2, [int])
    pset.addTerminal(3, [int])
    pset.addVariable("x", [int])
    init_max_depth = 3
    max_depth = 6
    tree = pg.full_tree(pset, init_max_depth, max_depth)
    assert np.array_equal(tree, np.array([1, 2, 3, 5, 1, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
Ejemplo n.º 4
0
def test_full_tree_ephemeral_typed1():
    np.random.seed(42)
    pset = pg.PrimitiveSet(typed=True)
    pset.addFunction(op.add, 2, [float, float, float])
    pset.addFunction(op.sub, 2, [float, float, float])
    pset.addTerminal(float_constants, types=[float], ephemeral=True)
    init_max_depth = 3
    max_depth = 6
    tree = pg.full_tree(pset, init_max_depth, max_depth)
    tree_str = pg.interpreter(pset, tree)
    assert np.array_equal(tree, np.array([1, 2, 4, 5, 1, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
    assert tree_str == 'add(sub(0.9507143064099162, 0.7319939418114051), add(0.596850157946487, 0.44583275285359114))'
    assert pset.num_primitives == 7
    assert pset.ephemeral_cache == {3}
    assert pset.ephemeral_constants == {4: (0.9507143064099162, [float]), 5: (0.7319939418114051, [float]), 6: (0.596850157946487, [float]), 7: (0.44583275285359114, [float])}
Ejemplo n.º 5
0
def test_full_tree2():
    np.random.seed(42)
    pset = pg.PrimitiveSet()
    pset.addFunction(op.add, 2)
    pset.addFunction(op.sub, 2)
    pset.addTerminal(1)
    pset.addTerminal(2)
    pset.addTerminal(3)
    pset.addVariable("x")
    init_max_depth = 8
    max_depth = 8
    tree = pg.full_tree(pset, init_max_depth, max_depth)
    assert np.array_equal(tree, np.array([1, 2, 1, 1, 1, 2, 1, 3, 5, 2, 5, 5, 1, 1, 6, 3, 2, 6, 6, 1, 2, 1, 4,
       6, 2, 4, 4, 2, 2, 6, 3, 1, 6, 4, 2, 1, 2, 1, 3, 5, 1, 5, 4, 2, 2, 6,
       6, 1, 4, 4, 1, 2, 1, 6, 5, 2, 6, 3, 1, 1, 5, 5, 1, 3, 5, 2, 2, 1, 2,
       2, 4, 4, 1, 4, 3, 2, 2, 6, 5, 2, 5, 6, 1, 2, 1, 5, 4, 1, 6, 4, 2, 2,
       4, 4, 2, 4, 4, 2, 2, 1, 1, 4, 4, 2, 4, 4, 2, 2, 4, 5, 2, 5, 6, 2, 1,
       2, 3, 4, 2, 3, 6, 1, 2, 5, 3, 2, 4, 3, 2, 2, 2, 1, 1, 1, 5, 3, 1, 3,
       5, 1, 2, 3, 6, 2, 6, 5, 1, 1, 1, 6, 5, 1, 3, 5, 1, 2, 5, 4, 1, 6, 5,
       1, 2, 2, 2, 3, 6, 1, 5, 4, 2, 1, 5, 6, 2, 4, 5, 1, 1, 1, 3, 5, 2, 5,
       3, 1, 2, 5, 5, 2, 5, 5, 1, 1, 1, 2, 2, 6, 3, 1, 5, 6, 1, 1, 6, 3, 2,
       6, 4, 1, 1, 1, 3, 5, 1, 3, 6, 1, 2, 5, 5, 1, 4, 6, 2, 2, 1, 2, 3, 3,
       2, 6, 6, 2, 2, 6, 4, 2, 5, 6, 2, 1, 2, 3, 5, 2, 3, 3, 1, 1, 4, 3, 2,
       3, 3, 0]))