Kom igångKom igång gratis

Implementera Every-Visit Monte Carlo

Every-Visit Monte Carlo skiljer sig från First-Visit-varianten genom att uppdatera värden varje gång ett tillstånds-åtgärdspar förekommer, i stället för enbart vid den första förekomsten. Metoden ger en heltäckande utvärdering av policyn eftersom den utnyttjar all tillgänglig information från episoderna, men den kan också introducera större varians i värdestimatena eftersom alla sampel ingår oavsett var i episoden de inträffar. Din uppgift är att slutföra implementeringen av funktionen every_visit_mc(), som skattar aktionsvärdesfunktionen Q över num_episodes episoder.

Ordlistorna returns_sum och returns_count, med tillstånds-åtgärdspar som nycklar, har redan initierats och laddats in tillsammans med funktionen generate_episode().

Den här övningen är en del av kursen

Reinforcement Learning med Gymnasium i Python

Visa kurs

Övningsinstruktioner

  • Generera en episod med funktionen generate_episode().
  • Uppdatera avkastningarna och deras antal för varje tillstånds-åtgärdspar inom en episod.
  • Beräkna de skattade Q-värdena.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

Q = np.zeros((num_states, num_actions))
for i in range(100):
  # Generate an episode
  episode = ____
  # Update the returns and their counts
  for j, (state, action, reward) in ____:
    returns_sum[(state,  action)] += sum(____)
    returns_count[(state,  action)] += ____

# Update the Q-values for visited state-action pairs 
nonzero_counts = ____
Q[nonzero_counts] = ____
    
render_policy(get_policy())
Redigera och kör kod