OpenAI Gym é um toolkit para desenvolver e comparar algoritmos de aprendizado por reforço. Ele fornece uma coleção de ambientes de simulação onde agentes podem ser treinados e avaliados.
Exemplo: Treinar um Agente com Q-Learning no OpenAI Gym
import numpy as np
import gym
# Criar o ambiente FrozenLake
env = gym.make("FrozenLake-v0")
# Inicializar a tabela Q
Q = np.zeros([env.observation_space.n, env.action_space.n])
# Definir os parâmetros
learning_rate = 0.8
discount_factor = 0.95
num_episodios = 2000
# Treinar o agente usando Q-learning
for episodio in range(num_episodios):
state = env.reset()
done = False
while not done:
action = np.argmax(Q[state, :] + np.random.randn(1, env.action_space.n) * (1. / (episodio + 1)))
next_state, reward, done, _ = env.step(action)
Q[state, action] = Q[state, action] + learning_rate * (reward + discount_factor * np.max(Q[next_state, :]) - Q[state, action])
state = next_state
print("Treinamento concluído!")
print("Tabela Q:")
print(Q)
# Avaliar o desempenho do agente
sucessos = 0
for episodio in range(100):
state = env.reset()
done = False
while not done:
action = np.argmax(Q[state, :])
next_state, reward, done, _ = env.step(action)
state = next_state
if done and reward == 1.0:
sucessos += 1
print(f"Taxa de sucesso: {sucessos}%")