Esempio n. 1
0
def pi_random_init(depth):

    tree = Tree(str(params['BNF_GRAMMAR'].start_rule[0]),
                None, max_depth=depth, depth_limit=depth)
    genome = tree.pi_random_derivation(0, max_depth=depth)
    if tree.check_expansion(params['BNF_GRAMMAR'].non_terminals.keys()):
        print("tree.pi_random_init generated an Invalid")
        quit()
    return tree.get_output(), genome, tree, False
def pi_grow_init(depth):

    tree = Tree((str(params['BNF_GRAMMAR'].start_rule[0]), ),
                None,
                max_depth=depth,
                depth_limit=depth)
    genome = tree.pi_grow(0, max_depth=depth)
    if tree.check_expansion():
        print("tree.pi_grow_init generated an Invalid")
        quit()
    return tree.get_output(), genome, tree, False
def tree_init(depth, method):
    """
    Initialise a tree to a given depth using a specified method for
    initialisation.
    """

    tree = Tree((str(params['BNF_GRAMMAR'].start_rule[0]), ),
                None,
                max_depth=depth - 1,
                depth_limit=depth - 1)
    genome, nodes, d, max_depth = mapper.tree_derivation(
        tree, [], method, 0, 0, 0, depth - 1)

    if tree.check_expansion():
        print("tree.init generated an Invalid")
        quit()

    return tree.get_output(), genome, tree, nodes, \
           False, max_depth, len(genome)