Visualizzazione post con etichetta evoluzionismo. Mostra tutti i post
Visualizzazione post con etichetta evoluzionismo. Mostra tutti i post

lunedì 5 gennaio 2009

IL TORNEO DEL PRIGIONIERO! Partecipa!!

Sono veramente felice di presentarvi il
TORNEO DEL PRIGIONIERO!

Il torneo si baserà sul gioco del dilemma del prigioniero, che sicuramente alcuni di voi conosceranno già. Prendendo spunto da Axelrod che un ventennio fa organizzò questo tipo di torneo chiamando a raccolta la crema degli intellettuali, ho pensato che un'esperienza simile tra i blogger sarebbe stata una cosa davvero entusiasmanete!! Non sapete cos'è questo dilemma? Non preoccupatevi, ecco tutte le informazioni di cui avete bisogno!
Se invece sapete già tutto e non avete voglia di ripassare potete passare direttamente alla spiegazione su come partecipare : )

  • IL DILEMMA DEL PRIGIONIERO
Il dilemma del prigioniero è un tipo di gioco interessante e molto semplice da capire. Si gioca in due. Per spiegarlo userò l'esempio tratto da Dawkins, Il gene egoista: ogni giocatore ha due carte coperte, una "Collaborazione", l'altra "Defezione". I giocatori scelgono la propria carta e la girano nello stesso istante. Ci sono quattro possibilità:
1) entrambi giocano la carta "collaborare";
2) A collabora ma B no;
3) B collabora ma A no;
4) Né a né B collaborano;
Ogni alternativa avrà i propri punteggi. Ecco qui la tabella dei punteggi con le quattro combinazioni di Collaborazione (1) e Non Collaborazione (0):

I punteggi non sono assegnati a caso e, soprattutto, il gioco non è puramente speculativo. Per capire il significato di questi punteggi immaginiamo che A e B siano 2 scimmie che debbano scegliere se spulciarsi o meno. Il beneficio massimo è uguale a 5. Ci sono 4 alternative:
1) Entrambe le scimmie si spulciano a vicenda (in alto a sinistra). Il beneficio massimo di 5 è abbassato dal costo di dover spulciare l'altra scimmia.
2) A collabora ma B no (nella tabella in basso a sinistra). In questo caso la scimmia B viene spulciata e non dà nulla in cambio. La scimmia A a si affatica per spulciare l'amica e inoltre il suo atto di gentilezza non viene ricambiato. E' quindi il caso peggiore per A.
3) Come 2, ma in questo caso è B che collabora e A no (in alto a destra). E' il caso peggiore per B.
4) Nessuna delle due scimmie si spulcia. Non ricevono benefici ma almeno non si stancano nello spulciare l'altra (in basso a destra).
La cosa interessante di questo gioco è che, se consideriamo le diverse alternative, ci converrebbe SEMPRE "non collaborare". Immaginiamo infatti di essere la scimmia A.
Scegliamo infatti "non collaborare". La scimmia B può Collaborare o Non Farlo. Nel caso che non collabori avremo entrambi punteggio di 1, nel caso collabori lei avrà punteggio di 0 e noi di 5. Proviamo a scegliere "collaborare" e vedremo che i risultati saranno meno positivi (se l'altra scimmia collabora otterremo 3, se non collabora 0!).
Da questo ragionamento sembrerebbe che convenga essere cattivi e menefreghisti! Ma è proprio vero?
Se tutte e due le scimmie adottassero questa strategia utilitaristica (entrambe "non collaborando") otterrebbero un punteggio di 1, molto più basso del caso di reciproca collaborazione (punteggio 3 a testa)! Il problema è che ogni scimmia non sa cosa farà l'altra. Se quindi si sente buona e collabora rischierà che l'altra scimmia non collabori, tradendo la fiducia a suo beneficio. Il punto fondamentale è conoscere lo stile dell'avversario; ad esempio, se notiamo che l'avversario non collabora MAI per noi sarebbe meglio non collaborare. Quindi le partite interessanti sono quelle che durano molte manche.
Spero sia tutto chiaro! Vediamo ora cos'è questo torneo del prigioniero.


  • IL TORNEO! COME PARTECIPARE?
Axelrod negli anni ottanta organizzò un torneo nel quale diverse strategie si scontravano tra loro. Si trattava ovviamente di software che adottavano diversi comportamenti di collaborazione o defezione, alcuni molto complesse e altri semplici. Ho pensato di simulare la stessa cosa, creando un programma che permetta di far funzionare dei software nel gioco del prigioniero. Ho utilizzato Visual Basic 6.0. I partecipanti non saranno i pochi fortunati intellettuali chiamati da Axelrod, ma chiunque voglia! Immaginate cosa potrebbe essere far scontrare due software creati da, per dire, malvino e l'estinto!
Per partecipare basterà inviarmi via mail la vostra strategia, semplicemente in italiano. La mia mail è -> onepiece888 AT tin PUNTO it ; questo perché le strategie devono ovviamente essere segrete agli altri. Ogni partecipante dovrà lasciare un commento IN QUESTO POST nel quale si comunica la propria partecipazione, in modo che ognuno sappia chi partecipa. Le uniche limitazioni saranno date dalla vostra fantasia e dalla mia scarsa capacità di programmatore : D Mi raccomando comunque di essere molto precisi in modo da permettere una facile traduzione in linguaggio basic. Chi ne ha voglia ed è capace può inviarmi il software direttamente in linguaggio basic.
La vittoria andrà al creatore del software che totalizzerà più punti ALLA FINE DEL TORNEO in 300 manche con ogni avversario. Questo vuol dire che un software può anche PERDERE SEMPRE con i singoli avversari, ma può risultare vincitore del torneo se LA SOMMA DEL PUNTEGGIO DI TUTTE LE SFIDE è maggiore della somma dei puntaggi degli altri software. Una volta inseriti i software basterà avviarli e faranno tutto in pochi istanti. Sarà possibile far scontrare singolarmente i software ma, la cosa più interessante è appunto avviare un torneo generale nel quale ogni software si scontrerà con ogni altro.
Nel frattempo rilascio la versione provvisoria del programma dove potrete far combattere diversi software e magari prendere qualche idea. Potete anche giocare "in prima persona" contro uno dei software. Ovviamente sono solo dei programmi base, quelli interessanti dovrete farli voi : D Un programma "minimo" dovrebbe essere in grado di totalizzare più punti di questo tipo di programma stupido!
Le iscrizioni saranno aperte per molto tempo. Mi piacerebbe avere qualcosa come 15-20 partecipanti, ma questo lo vedremo in seguito.

Sarei molto grato a chiunque volesse segnalare questa idea nel proprio blog.

SCARICA -> dilemma del prigioniero v0.6 (sono pochi kb)


se qualcuno vuole controllare il codice può scaricare questo pacchetto (10 kb) (per visualizzare il codice c'è bisogno di vb6.0 e derivati, suppongo)