Implementazione di Q-Table in Python
Un semplice esempio di Q-learning.
Implementazione di Q-Table in Python è una lezione Learn AI with Python 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 Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 5 lezioni in totale.
Implementazione del Q-Learning in Python
Implementazione del Q-Learning in Python
In questa lezione implementeremo un semplice algoritmo di Q-Learning in Python. 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 Q-Learning
Implementazione dell'algoritmo Q-Learning
Vengono utilizzati i seguenti parametri:
- α (Tasso di apprendimento): determina in che misura le nuove informazioni sostituiscono quelle precedenti.
- γ (Fattore di sconto): assegna un peso alle ricompense future rispetto a quelle immediate.
- ε (Tasso di esplorazione): bilancia l'esplorazione e lo 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
È possibile 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.
- Con sufficiente esplorazione, converge alla policy ottimale.
Limiti del Q-Learning
Limiti del Q-Learning
Il Q-Learning presenta alcuni limiti:
- Non si adatta bene ad ambienti con spazi stato-azione di grandi dimensioni.
- L'apprendimento può essere lento in 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 un semplice algoritmo Q-Learning in Python.
- Abbiamo addestrato un agente a muoversi in un ambiente a griglia utilizzando una Q-Table.
- Abbiamo valutato la policy appresa e visualizzato la Q-Table.
Successivamente esploreremo 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 Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 5 lezioni in totale.
Cosa imparerò in «Implementazione di Q-Table in Python»?
Un semplice esempio di Q-learning. Eserciti Learn AI with Python 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 Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python 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 Learn AI with Python?
Sì. Ogni lezione Learn AI with Python 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 di base dell'apprendimento per rinforzo
- Concetto di Q-Table
- Implementazione di Q-Table in Python
- Deep Q-Learning
- Esplorazione di OpenAI Gym