Salta al contenuto
Note per Studenti Esercizio - Utilità attesa, MEU, maximax e maximin (esempio d'esame 1)

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):

python
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: −5-5, 1010, −20-20.
  • 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 ∑p u\sum p\,u miglior esito peggior esito
studiare per l'esame 0,8⋅20+0,2⋅(−50)=16−10=60{,}8\cdot20+0{,}2\cdot(-50)=16-10=\mathbf6 2020 −50-50
andare in vacanza 0,1⋅5+0,9⋅(−5)=0,5−4,5=−40{,}1\cdot5+0{,}9\cdot(-5)=0{,}5-4{,}5=\mathbf{-4} 55 −5-5
trovare un lavoro temporaneo 0,5⋅10+0,5⋅(−20)=5−10=−50{,}5\cdot10+0{,}5\cdot(-20)=5-10=\mathbf{-5} 1010 −20-20
  • Q1: −5-5. Gli altri valori sono un esito, non una media: 1010 è il miglior esito del lavoro (il valore che si avrebbe con il maximax), −20-20 il peggiore.
  • Q2 (MEU): studiare per l'esame, la massima utilità attesa (6>−4>−56>-4>-5).
  • Q3 (maximax): studiare per l'esame, perché ha il miglior esito in assoluto (20>10>520>10>5). Il maximax è ottimista e ignora le probabilità.
  • Q4 (maximin): andare in vacanza, perché il suo peggior esito è il meno cattivo (−5>−20>−50-5>-20>-50). Il maximin è prudente e ignora le probabilità.

Qui MEU e maximax coincidono, mentre il maximin sceglie un'altra azione: studiare è rischioso (probabilità 0,20{,}2 di perdere 5050) ma, pesando le probabilità, conviene; la vacanza evita il rischio ma ha utilità attesa negativa.

python
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 -20

Versione ripasso

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 →.

azione EUEU miglior peggior
studiare (0,8⋅20+0,2⋅(−50)0{,}8\cdot20+0{,}2\cdot(-50)) 66 2020 −50-50
vacanza (0,1⋅5+0,9⋅(−5)0{,}1\cdot5+0{,}9\cdot(-5)) −4-4 55 −5-5
lavoro (0,5⋅10+0,5⋅(−20)0{,}5\cdot10+0{,}5\cdot(-20)) −5-5 1010 −20-20

Q1: −5-5. MEU: studiare. Maximax: studiare. Maximin: vacanza. Solo il MEU usa le probabilità.

Errori tipici: rispondere 1010 o −20-20 a Q1 (sono esiti, non medie); usare le probabilità nel maximax o nel maximin.

Teoria collegata