Implementando value iteration
Value iteration é um método fundamental em RL para encontrar a política ótima. Ele melhora iterativamente a função de valor de cada estado até convergir, o que leva à descoberta da política ótima. Você começará com uma função de valor V inicializada e uma policy, ambas já carregadas para você. Em seguida, você vai atualizá-las em um loop até a função de valor convergir e verá a política em ação.
A função get_max_action_and_value(state, V) já foi carregada para você.
Este exercício faz parte do curso
Reinforcement Learning com Gymnasium em Python
Instruções do exercício
- Para cada estado, encontre a ação com o maior Q-value (
max_action) e seu valor correspondente (max_q_value). - Atualize o dicionário
new_Ve apolicycom base emmax_actionemax_q_value. - Verifique a convergência checando se a diferença entre
new_veVpara cada estado é menor quethreshold.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
threshold = 0.001
while True:
new_V = {}
for state in range(num_states-1):
# Get action with maximum Q-value and its value
max_action, max_q_value = ____
# Update the value function and policy
new_V[state] = ____
policy[state] = ____
# Test if change in state values is negligeable
if all(abs(____ - ____) < ____ for state in ____):
break
V = new_V
render_policy(policy)