Esercizio - Utilità attesa, MEU, maximax e maximin (esempio d'esame 1)
Teoria: Processi decisionali di Markov - utilità, equazione di Bellman, value e policy iterationUn MDP (processo decisionale di Markov) modella un problema decisionale sequenziale in ambiente stocastico e completamente osservabile con stati S, azioni A(s), modello di transizione P(s'|s,a) e ricompensa R(s,a,s'). La soluzione è una politica pi(s). L'utilità U(s) è il ritorno scontato atteso e soddisfa l'equazione di Bellman U(s)=max_a sum_s' P(s'|s,a)[R(s,a,s')+gamma U(s')]; la quantità tra parentesi quadre sommata su s' è la funzione azione-utilità Q(s,a). Value iteration parte da U=0, applica Bellman a tutti gli stati insieme e si ferma quando delta <= eps(1-gamma)/gamma; la politica è argmax_a Q(s,a). Policy iteration alterna valutazione (sistema lineare, senza max) e miglioramento greedy, e termina quando la politica non cambia. Nei POMDP lo stato è nascosto: si lavora sullo stato di credenza b aggiornato come nel filtraggio, b'(s')=alpha P(e|s') sum_s P(s'|s,a)b(s).Processi decisionali di Markov - utilità, equazione di Bellman, value e policy iteration → (sezione 1). Esercizio gemello del laboratorio: Esercizio - Utilità attesa, maximax e maximin (laboratorio 9). Domanda 6 del quiz da 9 CFU e domanda 2 di quello da 6 CFU: stesso programma e stessi quattro quesiti, con le opzioni del menu in ordine diverso.
Testo. Analizzare la seguente porzione di programma (figura):
import numpy as np
# define the arrays with the probabilities and the utilities
p_exam_study = np.array([0.8, 0.2])
u_exam_study = np.array([20, -50])
p_have_holiday = np.array([0.1, 0.9])
u_have_holiday = np.array([5, -5])
p_temporary_job = np.array([0.5, 0.5])
u_temporary_job = np.array([10, -20])- Q1. Calcolare l'utilità attesa di trovare un lavoro temporaneo. Menu: , , .
- Q2. Cosa si consiglia seguendo il criterio MEU? Menu: studiare per l'esame / andare in vacanza / trovare un lavoro temporaneo.
- Q3. Cosa si consiglia seguendo il criterio maximax? (stesso menu)
- Q4. Cosa si consiglia seguendo il criterio maximin? (stesso menu)
Soluzione
| azione | utilità attesa | miglior esito | peggior esito |
|---|---|---|---|
| studiare per l'esame | |||
| andare in vacanza | |||
| trovare un lavoro temporaneo |
- Q1: . Gli altri valori sono un esito, non una media: è il miglior esito del lavoro (il valore che si avrebbe con il maximax), il peggiore.
- Q2 (MEU): studiare per l'esame, la massima utilità attesa ().
- Q3 (maximax): studiare per l'esame, perché ha il miglior esito in assoluto (). Il maximax è ottimista e ignora le probabilità.
- Q4 (maximin): andare in vacanza, perché il suo peggior esito è il meno cattivo (). Il maximin è prudente e ignora le probabilità.
Qui MEU e maximax coincidono, mentre il maximin sceglie un'altra azione: studiare è rischioso (probabilità di perdere ) ma, pesando le probabilità, conviene; la vacanza evita il rischio ma ha utilità attesa negativa.
azioni = {"studiare": ([.8, .2], [20, -50]), "vacanza": ([.1, .9], [5, -5]), "lavoro": ([.5, .5], [10, -20])}
for nome, (p, u) in azioni.items():
print(nome, np.dot(p, u), max(u), min(u)) # 6.0 20 -50 / -4.0 5 -5 / -5.0 10 -20Versione ripasso
| azione | miglior | peggior | |
|---|---|---|---|
| studiare () | |||
| vacanza () | |||
| lavoro () |
Q1: . MEU: studiare. Maximax: studiare. Maximin: vacanza. Solo il MEU usa le probabilità.
Errori tipici: rispondere o a Q1 (sono esiti, non medie); usare le probabilità nel maximax o nel maximin.