Implementazione di Q-Table in Python
Un semplice esempio di Q-learning.
Implementazione di Q-Table in Python è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 3 di 5. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 5 lezioni in totale.
Implementazione del Q-Learning in Python
Implementazione del Q-Learning in Python
In questa lezione implementeremo in Python un semplice algoritmo di Q-Learning. L'agente imparerà a muoversi in un mondo a griglia per massimizzare le ricompense.

Definizione dell'ambiente
Definizione dell'ambiente
Definiamo un semplice mondo a griglia 4×4 in cui l'agente parte dall'angolo in alto a sinistra e deve raggiungere l'angolo in basso a destra per ricevere una ricompensa.
import numpy as np
# Define the environment
num_states = 16 # 4x4 grid
num_actions = 4 # Up, Down, Left, Right
# Define rewards (-1 for each step, +10 for the goal)
rewards = np.zeros(num_states)
rewards[-1] = 10Inizializzazione della Q-Table
Inizializzazione della Q-Table
La Q-Table viene inizializzata con zeri per tutte le coppie stato-azione.
# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))
print("Initial Q-Table:")
print(q_table)Implementazione dell'algoritmo di Q-Learning
Implementazione dell'algoritmo di Q-Learning
Utilizziamo i seguenti parametri:
- α (Learning Rate): controlla in quale misura le nuove informazioni sostituiscono quelle precedenti.
- γ (Discount Factor): assegna un peso alle ricompense future rispetto a quelle immediate.
- ε (Exploration Rate): bilancia esplorazione e sfruttamento.
# Parameters
alpha = 0.1 # Learning rate
gamma = 0.9 # Discount factor
epsilon = 0.1 # Exploration rate
# Q-Learning loop
num_episodes = 1000
for episode in range(num_episodes):
state = 0 # Start at the first state
done = False
while not done:
# Exploration or exploitation
if np.random.rand() < epsilon:
action = np.random.randint(num_actions) # Explore
else:
action = np.argmax(q_table[state]) # Exploit
# Transition to the next state
next_state = (state + action) % num_states # Simplified transition logic
reward = rewards[next_state]
# Update Q-value
q_table[state, action] = q_table[state, action] + alpha * (
reward + gamma * np.max(q_table[next_state]) - q_table[state, action]
)
# Move to the next state
state = next_state
done = state == num_states - 1Valutazione della policy appresa
Valutazione della policy appresa
Dopo l'addestramento, valutiamo la policy seguendo le azioni ottimali memorizzate nella Q-Table:
# Evaluate the policy
state = 0
optimal_path = [state]
while state != num_states - 1:
action = np.argmax(q_table[state])
state = (state + action) % num_states # Simplified transition logic
optimal_path.append(state)
print("Optimal Path:", optimal_path)Visualizzazione della Q-Table
Visualizzazione della Q-Table
Possiamo visualizzare la Q-Table per comprendere i valori appresi per ogni coppia stato-azione:
import matplotlib.pyplot as plt
import seaborn as sns
# Visualize Q-Table
plt.figure(figsize=(10, 8))
sns.heatmap(q_table, annot=True, fmt=".2f", cmap="coolwarm")
plt.title("Q-Table Heatmap")
plt.xlabel("Actions")
plt.ylabel("States")
plt.show()Vantaggi del Q-Learning
Vantaggi del Q-Learning
Il Q-Learning offre diversi vantaggi:
- È semplice e facile da implementare.
- Può gestire ambienti stocastici.
- Converge alla policy ottimale con un'esplorazione sufficiente.
Limitazioni del Q-Learning
Limitazioni del Q-Learning
Il Q-Learning presenta alcune limitazioni:
- Non si adatta bene ad ambienti con spazi stato-azione di grandi dimensioni.
- L'apprendimento può essere lento negli ambienti complessi.
- Richiede una rappresentazione ben definita dello stato e delle azioni.
Riepilogo e prossimi passi
Riepilogo e prossimi passi
In questa lezione:
- Abbiamo implementato in Python un semplice algoritmo di Q-Learning.
- Abbiamo addestrato un agente a muoversi in un mondo a griglia usando una Q-Table.
- Abbiamo valutato la policy appresa e visualizzato la Q-Table.
Successivamente, analizzeremo il Deep Q-Learning, che utilizza reti neurali per gestire ambienti con spazi stato-azione di grandi dimensioni.

Domande Frequenti
La lezione «Implementazione di Q-Table in Python» è gratuita?
Sì — il testo completo di «Implementazione di Q-Table in Python» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 5 lezioni in totale.
Cosa imparerò in «Implementazione di Q-Table in Python»?
Un semplice esempio di Q-learning. Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Python Academy?
Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 5.
Quanto tempo richiede la lezione «Implementazione di Q-Table in Python»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Python Academy?
Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Concetti fondamentali del reinforcement learning
- Concetto di Q-Table
- Implementazione di Q-Table in Python
- Deep Q-Learning
- Esplorazione di OpenAI Gym