Dilemma del Prigioniero
Transcript
Dilemma del Prigioniero
Dilemma del Prigioniero Il Dilemma del Prigioniero Proposto da Von Neumann e Morgenstern, 1944: • 2 persone, sospettate di aver commesso una rapina, vengono arrestate • la polizia non ha sufficienti prove per dimostrare la loro colpevolezza • e quindi può solo incriminarli per reati minori … a meno che uno dei due incolpi l’altro! DEI - Univ. Padova (Italia) Il dilemma Interrogati in celle separate, a ciascuno dei due prigionieri viene fatta una proposta: “se accetti di testimoniare contro il tuo compagno, ti libereremo!” DEI - Univ. Padova (Italia) La prospettiva • se entrambi accettano la proposta, entrambi verranno condannati, ma la sentenza sarà mitigata dalla collaborazione; • se nessuno dei due accetta, la pena sarà molto lieve per entrambi. • se uno solo dei due accetta, l’altro subirà una dura condanna, essendo riconosciuto come l’unico colpevole. DEI - Univ. Padova (Italia) La situazione Prigioniero A DEI - Univ. Padova (Italia) Non parla Testimonia contro il compagno Prigioniero B Testimonia contro il Non parla compagno Scarcerazione Pena molto per B, massima lieve per pena per A entrambi Scarcerazione Pena piuttosto per A, massima severa per pena per B entrambi La scelta • Se i due prigionieri potessero interagire e scegliere una strategia comune, con ogni probabilità opterebbero per non parlare. • Dovendo scegliere senza conoscere l’intenzione del compagno, la strategia che minimizza il rischio risulta essere quella di tradire. • Siccome il singolo individuo è portato a tradire, la situazione raggiunta è per forza di cose una soluzione sub-ottimale (la pena totale comminata non è quella minima possibile) DEI - Univ. Padova (Italia) Il dilemma iterato • I prigionieri sono spinti a scegliere la soluzione subottimale perché non sanno se “fidarsi” del compagno • Se però avessero avuto già a che fare col compare, potrebbero studiare le sue scelte passate per immaginare quelle future • Se ipotizzano di poter avere ancora a che fare col compagno in futuro, potrebbero essere spinti ad utilizzare scelte diverse da quella sub-ottima “tradire” DEI - Univ. Padova (Italia) Dilemma del prigioniero iterato Per comodità, descriviamo il problema in termini positivi, in cui due compagni possono decidere se collaborare o meno ad un progetto, con kla seguente matrice di risultati: Giocatore B Collabora Giocatore A Collabora Non collabora DEI - Univ. Padova (Italia) Non collabora Guadagno discreto per entrambi (3,3) B sfrutta la collaborazione di A, che non ottiene niente (0,5) A sfrutta la collaborazione di B, che non ottiene niente (5,0) Entrambi ottengono poco dalla non collaborazione (1,1) Il dilemma del prigionieri iterato Per tale problema non c’è una soluzione facile come per il dilemma del prigioniero semplice. Per capire se una strategia (metodo con cui un giocatore decide se collaborare o meno), sia vantaggiosa, si simula cosa succede. DEI - Univ. Padova (Italia) Esempio (1) • Strategia del giocatore A: – non collaboro mai • Strategia del giocatore B: – Comincio provando a collaborare – Se A collabora, collaboro – Se A non collabora, non collaboro DEI - Univ. Padova (Italia) Esempio (2) • In tal caso, se i due giocatori si incontrano N volte, B viene sfruttato al primo incontro, poi si “vendica” e non collabora più: • A alla fine guadagna 5+(N-1) • B guadagna 0+(N-1) DEI - Univ. Padova (Italia) • Ci sono strategie migliori di altre? • Intendiamo con migliori delle strategie che riescono a “comportarsi bene” qualunque sia il tipo di strategia con cui si confrontano: – Limitare i danni in caso di non collaborazione altrui – Massimizzare le possibilità di collaborazione – Sfruttare le collaborazioni gratuite DEI - Univ. Padova (Italia) Simulazione: prototipo delle strategie Vogliamo creare delle funzioni che codificano delle strategie di scelta, e che conoscano: -Le scelte precedenti del proprio avversario y -Le proprie scelte precedenti x -L’iterazione a cui si è giunti n DEI - Univ. Padova (Italia) Simulazione: prototipo delle strategie Voglio che tutte le funzioni abbiano la stessa forma, come numero e significato delle variabili di input, e come numero e significato delle variabili d’uscita File Strategia.m % La funzione che codifica le strategia: % % x: vettore delle n-1 proprie mosse precedenti % y: vettore delle n-1 mosse precedenti avversarie % n: numero di iterazioni a cui siamo giunti % choice: scelta effettuata % 0 non collaboro % 1 collaboro function choice=Strategia(x,y,n) ... ... DEI - Univ. Padova (Italia) Strategia 1: non collaboro mai File Defect.m % Creo una funzione che sceglie sempre % di non collaborare % % x: vettore delle n-1 proprie mosse precedenti % y: vettore delle n-1 mosse precedenti avversarie % n: numero di iterazioni a cui siamo giunti % function choice=Defect(x,y,n) choice=0; return DEI - Univ. Padova (Italia) Strategia 2: casuale File RandChoice.m % Creo una funzione che sceglie sempre % di non collaborare % % x: vettore delle n-1 proprie mosse precedenti % y: vettore delle n-1 mosse precedenti avversarie % n: numero di iterazioni a cui siamo giunti % function choice=RandChoice(x,y,n) choice=rand(1)>0.5; return DEI - Univ. Padova (Italia) Simulazione: scontro di strategie Posso osservare cosa succede a due giocatori calcolando il guadagno che ottengono dopo N iterazioni delle loro strategie: G1=0; G2=0; x=[]; y=[]; for ct=1:N choice1=Strategia1(x,y,ct); choice1=Strategia2(x,y,ct); x(ct)=choice1; y(ct)=choice2; if(choice1==1 & choice2==1), if(choice1==0 & choice2==1), if(choice1==1 & choice2==0), if(choice1==0 & choice2==0), end; DEI - Univ. Padova (Italia) G1=G1+3; G1=G1+0; G1=G1+5; G1=G1+1; G2=G2+3; G2=G2+5; G2=G2+0; G2=G2+1; end; end; end; end;