Esempio n. 1
0
    Log("Average Fitness: {}".format(np.mean(scores)))

    best_game = games[best_indices[0]]
    worst_game = games[best_indices[-1]]

    return  best_game, worst_game

BOARD_SIZE = 10
MAX_MOVES = 100
ALPHA = 0.5     # mutation rate
POOL_NAME = "green"
FPS = 25

network = Network()
pool = Pool(BOARD_SIZE, MAX_MOVES, network)
pool.load(POOL_NAME)

if(pool.get_size() == 0):
    pool.seed(100)
    pool.race(top=10, games_per_snake=5)

for epoch in range(5):

    Log("--- Epoch #{} ---".format(epoch))

    pool.populate(pool_size=100, alpha = ALPHA)
    snakes, scores = pool.race(top=10, games_per_snake=5)

    for i,score  in enumerate(scores):
        snake = snakes[i]
        Log("Rank #{} - [{}] Gen: {} - Fitness = {}".format(i, snake.get_id(), snake.get_generation(), score))