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;