ComeçarComece de graça

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

Ver curso

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_V e a policy com base em max_action e max_q_value.
  • Verifique a convergência checando se a diferença entre new_v e V para cada estado é menor que threshold.

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)
Editar e executar o código