def playGreedySearch(numTrials, depth): with open("output", "a") as output: output.write("running " + str(numTrials) + " greedy search games with depth " + str(depth) + "\n") tile = DataGroup() score = DataGroup() for x in range(0, numTrials): solver = GreedySearch(depth) solver.playGame() recordData(solver, tile, score) solver = None printRunData(tile, score, output) pass
def objectiveFunc(x, *args): # do 10 runs # average the results # return 100 / avg (function is minimizing, we want max) allScores = 0 setWeights(x) for i in range(numTrialsPerCall): solver = GreedySearch(searchDepth) solver.playGame() allScores += solver.getScore() scoreAvg = allScores / numTrialsPerCall if scoreAvg == 0: return [np.float(100)] return [np.float(100 / scoreAvg)]