def evaluation_function(individual): # start_time = time.time() weights = individual[0:p.NEEDED_WEIGHTS] biases = individual[p.NEEDED_WEIGHTS:(p.NEEDED_WEIGHTS + p.NEEDED_BIASES)] splitted_weights = new_ann.convert_weights_to_arrays(p.LAYER_SIZES, weights) splitted_biases = new_ann.convert_biases_to_arrays(p.LAYER_SIZES, biases) # ann = new_ann.neuralnetwork(splitted_weights, splitted_biases, LAYER_SIZES, activation=[nnet.sigmoid, nnet.sigmoid, nnet.sigmoid, nnet.sigmoid]) ann = new_ann.neuralnetwork(splitted_weights, splitted_biases, p.LAYER_SIZES, activation=[new_ann.relu, new_ann.relu, new_ann.relu, new_ann.relu]) reg_ai_player = Player_fast(None, random_start=p.RANDOM_START) ann_player = ANN_Player(None, ann) game = GomokuGame.playToTheEnd(reg_ai_player, ann_player) fit = len(game.moves) if game.winner == ann_player.color: fit += 10000.0 elif game.winner == game.DRAW: fit += 5000.0 # print("Moves:", len(game.moves)) return len(game.moves),