예제 #1
0
 def createPopulation(lengthPopu, dephTree):
     population = []
     numbOperators = int(helper.calculateNumberOfNodes(dephTree - 1))
     numbLeaves = int(
         helper.calculateNumberOfNodes(dephTree)) - numbOperators
     for i in range(lengthPopu):
         chromOperators = helper.createRandomOperationList(numbOperators)
         chromNumbers = helper.createRandomNumbersList(numbLeaves)
         tree = Tree()
         tree.createFromList(chromOperators + chromNumbers)
         population.append(tree)
     return population
예제 #2
0
 def crossover(tree_1, tree_2, depth):
     numbNodes = helper.calculateNumberOfNodes(depth)
     crossPoint = random.randint(2, numbNodes - 1)
     #print("CrossPoint:", crossPoint, "Number nodes:", numbNodes)
     #print("Tree_1:", tree_1.creationList)
     #print("Tree_2:", tree_2.creationList)
     list_1 = tree_1.creationList[0:crossPoint] + tree_2.creationList[
         crossPoint:int(numbNodes)]
     list_2 = tree_2.creationList[0:crossPoint] + tree_1.creationList[
         crossPoint:int(numbNodes)]
     #print()
     #print("List_1:", list_1)
     #print("List_2:", list_2)
     newTree_1 = Tree()
     newTree_2 = Tree()
     newTree_1.createFromList(list_1)
     newTree_2.createFromList(list_2)
     return newTree_1, newTree_2
예제 #3
0
from BinaryTree import Tree
from BinaryTree import Node
import math
from Helper import helper
import random

print('-----Test generate a Tree-----')
tree = Tree()
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
tree.createFromList(data)
tree.printTree()

print('-----Test find a node-----')
node = tree.getListNodes()[7]
print('Node: ', node)
nodeFound = tree.find(node)
print('Parent node found: ', nodeFound)
nodeFound = tree.find(Node(6))
print('Parent node found: ', nodeFound)

print('----c-Test eval()-----')
x = 8
print(eval('((8)*(x))'))
print(eval('((9)*(math.sin((7)*(x))))'))
print(eval('(((8)*(x))+((0)*(x)*(1)*(x)))'))

print('-----Test number of Nodes-----')
print('Deph 1:', helper.calculateNumberOfNodes(1))
print('Deph 2:', helper.calculateNumberOfNodes(2))
print('Deph 3:', helper.calculateNumberOfNodes(3))
print('Deph 4:', helper.calculateNumberOfNodes(4))