Salta al contenuto
Note per Studenti Esercizio - Utilità attesa, maximax e maximin (laboratorio 9)

Esercizio - Utilità attesa, maximax e maximin (laboratorio 9)

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. Il laboratorio parte da un esempio svolto in aula (il caffè) e poi propone l'esercizio "cosa fare all'aeroporto".

Esempio guida: il caffè

Testo. Ho mezz'ora libera e posso scegliere tra lavorare in ufficio e uscire a prendere un caffè.

  • Se resto in ufficio può succedere una di tre cose: faccio un po' di lavoro (utilità 8), mi distraggo guardando le notizie (utilità 1), passa un collega a parlare di lavoro (utilità 5), con probabilità 0,50{,}5, 0,30{,}3 e 0,20{,}2.
  • Se esco a prendere un caffè, con probabilità 0,950{,}95 me lo godo (utilità 10) e con probabilità 0,050{,}05 me lo rovescio addosso (utilità −20-20).

(a) Utilità attesa di restare in ufficio. (b) Utilità attesa di uscire. (c) Cosa conviene fare secondo il principio di massima utilità attesa? Poi: (d) decisione con il criterio maximax; (e) decisione con il maximin.

Soluzione. (a) EU(ufficio)=0,5⋅8+0,3⋅1+0,2⋅5=4+0,3+1=5,3EU(\text{ufficio})=0{,}5\cdot8+0{,}3\cdot1+0{,}2\cdot5=4+0{,}3+1=5{,}3. (b) EU(caffeˋ)=0,95⋅10+0,05⋅(−20)=9,5−1=8,5EU(\text{caffè})=0{,}95\cdot10+0{,}05\cdot(-20)=9{,}5-1=8{,}5. (c) 8,5>5,38{,}5>5{,}3: si esce a prendere il caffè. (d) Maximax: si guarda solo il miglior esito di ogni azione: ufficio max⁡(8,1,5)=8\max(8,1,5)=8, caffè 1010. Vince il caffè. (e) Maximin: si guarda solo il peggior esito: ufficio min⁡(8,1,5)=1\min(8,1,5)=1, caffè −20-20. Vince l'ufficio: il criterio prudente evita il rischio di rovesciare il caffè, a differenza del MEU.

Il laboratorio aggiunge: "vediamo cosa succede al variare delle probabilità". Se la probabilità di rovesciare il caffè è qq, l'utilità attesa del caffè è 10(1−q)−20q=10−30q10(1-q)-20q=10-30q; confrontandola con 5,35{,}3 si ha 10−30q>5,3  ⟺  q<4,730=0,156710-30q>5{,}3\iff q<\tfrac{4{,}7}{30}=0{,}1567. Sopra circa il 15,7%15{,}7\% di probabilità di rovesciarlo, il MEU preferisce l'ufficio.

Esercizio 1 del laboratorio: cosa fare all'aeroporto

Testo. Stai viaggiando e hai del tempo da far passare in aeroporto. Puoi fare tre cose.

  1. Prendere un caffè. Con probabilità 0,80{,}8 ti rilassi con una bevanda gustosa, utilità 1010. Con probabilità 0,20{,}2 il caffè è cattivo, fatto con chicchi bruciati, e ti infastidisce, utilità −5-5.
  2. Comprare dei vestiti. Con probabilità 0,10{,}1 trovi un vestito bellissimo a un buon prezzo, utilità 2020. Con probabilità 0,90{,}9 spendi soldi in cose care e inutili, utilità −10-10.
  3. Mangiare qualcosa. Con probabilità 0,80{,}8 trovi qualcosa di piuttosto mediocre che ti evita di avere troppa fame durante il volo, utilità 22. Con probabilità 0,20{,}2 trovi qualcosa di sostanzioso e saporito, utilità 55.

(a) Cosa conviene fare se il criterio di decisione è la massima utilità attesa? (b) E con il criterio maximax? (c) E con il maximin?

Soluzione.

(a) Utilità attese:

  • caffè: 0,8⋅10+0,2⋅(−5)=8−1=70{,}8\cdot10+0{,}2\cdot(-5)=8-1=\mathbf7;
  • vestiti: 0,1⋅20+0,9⋅(−10)=2−9=−70{,}1\cdot20+0{,}9\cdot(-10)=2-9=\mathbf{-7};
  • mangiare: 0,8⋅2+0,2⋅5=1,6+1=2,60{,}8\cdot2+0{,}2\cdot5=1{,}6+1=\mathbf{2{,}6}.

Il massimo è 77: caffè.

(b) Miglior esito di ogni azione: caffè 1010, vestiti 2020, mangiare 55. Il massimo è 2020: vestiti. Il maximax guarda solo l'esito fortunato e ignora che ha probabilità 0,10{,}1.

(c) Peggior esito di ogni azione: caffè −5-5, vestiti −10-10, mangiare 22. Il massimo dei minimi è 22: mangiare. È l'unica azione senza esiti negativi.

I tre criteri danno tre risposte diverse, perché pesano in modo diverso la probabilità e la gravità degli esiti. Solo il MEU usa le probabilità.

Codice (equivalente a quello del corso, che usa una catena di if annidati; qui si usa argmax):

python
import numpy as np

azioni = {                       # (probabilita', utilita')
    "caffe":  (np.array([0.8, 0.2]), np.array([10, -5])),
    "vestiti": (np.array([0.1, 0.9]), np.array([20, -10])),
    "mangiare": (np.array([0.8, 0.2]), np.array([2, 5])),
}
nomi = list(azioni)
eu     = [float(np.sum(p * u)) for p, u in azioni.values()]   # utilita' attesa
maximax = [u.max() for p, u in azioni.values()]        # miglior esito
maximin = [u.min() for p, u in azioni.values()]        # peggior esito
print("EU:", dict(zip(nomi, eu)))
print("MEU    ->", nomi[int(np.argmax(eu))])
print("maximax ->", nomi[int(np.argmax(maximax))])
print("maximin ->", nomi[int(np.argmax(maximin))])

Output atteso (che coincide con quello del corso):

EU: {'caffe': 7.0, 'vestiti': -7.0, 'mangiare': 2.6}
MEU    -> caffe
maximax -> vestiti
maximin -> mangiare

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

Criteri. MEU: EU(a)=∑P⋅UEU(a)=\sum P\cdot U, massimo. Maximax: massimo del miglior esito. Maximin: massimo del peggior esito. Solo il MEU usa le probabilità.

Caffè (ufficio: 8, 1, 5 con 0,5; 0,3; 0,20{,}5;\,0{,}3;\,0{,}2; caffè: 10, −20-20 con 0,95; 0,050{,}95;\,0{,}05).

  • EU(ufficio)=4+0,3+1=5,3EU(\text{ufficio})=4+0{,}3+1=5{,}3; EU(caffeˋ)=9,5−1=8,5EU(\text{caffè})=9{,}5-1=8{,}5: MEU sceglie il caffè.
  • Maximax: 88 contro 1010, caffè. Maximin: 11 contro −20-20, ufficio.
  • Soglia: 10−30q>5,3  ⟺  q<0,156710-30q>5{,}3\iff q<0{,}1567 (qq = probabilità di rovesciarlo).

Aeroporto.

azione EUEU miglior peggior
caffè (0,8⋅10+0,2⋅(−5)0{,}8\cdot10+0{,}2\cdot(-5)) 77 1010 −5-5
vestiti (0,1⋅20+0,9⋅(−10)0{,}1\cdot20+0{,}9\cdot(-10)) −7-7 2020 −10-10
mangiare (0,8⋅2+0,2⋅50{,}8\cdot2+0{,}2\cdot5) 2,62{,}6 55 22

MEU: caffè; maximax: vestiti; maximin: mangiare.

python
eu = [np.sum(p * u) for p, u in azioni.values()]
nomi[int(np.argmax(eu))]            # MEU; con u.max() e u.min(): maximax e maximin

Errori tipici: usare nel maximax o nel maximin le probabilità; confrontare le probabilità invece delle utilità attese; dimenticare il segno negativo di un'utilità.

Esercizi su questo argomento

Teoria collegata