def fitnessFunction(chromo, setPheno = False): #build program try: s1 = symbols("exp") g = grammar.builder(s1) built = g.buildList(chromo) if callable(setPheno): setPheno(built) #print(built) except RecursionError: if log == "Error": print("Recursion Error, fitness 0") return 0 #execute program try: lisp = evaluator(terminals) evaluated = lisp.eval(*built) if type(evaluated) is str: evaluated = 0 #fitness is greater the closer we get to goal goal = 556 return goal - math.fabs(evaluated - goal) except OverflowError: if log == "Error": print("OverFlow Error, fitness 0") return 0 except ExpressionConstraintError: if log == "Error": print("Constraint Broken.") return 0
def results(): #play noise Freq = 2500 # Set Frequency To 2500 Hertz Dur = 1000 # Set Duration To 1000 ms == 1 second winsound.Beep(Freq,Dur) print("|\n|\n|\n|\tRESULTS\n========================") p.look() print("|\n|\n|\n| BEST:") try: lisp = evaluator(terminals) evaluated = lisp.eval(*p.bestInd.getPheno()) print (evaluated) print(str(p.bestInd.getPheno())) except OverflowError: print("Overlfow error in evaluator.")