Newsgroup: it.comp.ia
Titolo: Per chi se la cava a programmare

Parrecchi messaggi ricevuti su questo NG negli ultimi giorni
evidenziavano la disponibilita` degli scriventi a 'mettere a
disposizione' le proprie competenze di programmazione.
Quello che vi propongo qui e` quello di implementare (in pascal, c,
c++, lisp, e chi piu` ne ha piu` ne metta) il seguente  giochino (non
un videogame, ma di  teoria dei giochi) con le reti neurali o i
classifier system.
Si hanno 'n' soggetti ognuno con 'm' gettoni a disposizione. 
Ogni individuo puo` investire i propri gettoni in un investimento che
gli offre un guadagno costante (cioe` proporzionale alla somma
investita) oppure in un altro che sfrutta una 'risorsa comune' (cioe`
una risorsa che puo` essere usata da chiunque -un server internet  ad
esempio, oppure l'ambiente, la fotocopiatrice dell'ufficio, etc.).
La risorsa comune fornisce un guadagno che segue una funzione
parabolica (tipo radice di X) che riflette l'effetto saturazione
dovuto al sovraffolamento nell'uso della risorsa.
Il 'payoff' di ogni individuo che sfrutta la risorsa comune e` uguale
alla quota del payoff totale della risorsa corrispondente
all'investimento effettuato. (es. se investo 100 gettoni che
corrispondono al 10% del totale degli investimenti nella risorsa
comune, allora ricevero` il 10% dei profitti ottenuti da questa).
Ogni agente puo` semplicemente avere tre regole di base (ma e`
auspicabile che ne usi di piu` complesse, magari creandosele):
- Incremente il livello di sfruttamento della risorsa comune
- riduci il livello di sfruttamento della risorsa comune
- non cambiare il livello di sfruttamento della risorsa comune.
Se l'applicazione di una regola conduce ad un miglioramento del payoff
individuale allora la probabilita`(o meglio la verosimiglianza)  di
riutilizzare quella regola in futuro aumentera` (il contrario si ha
quando la regola peggiora il proprio payoff).
L'equilibrio di Nash di questo gioco e` non-ottimale (non mi addentro
in questo discorso) cioe` il payoff globale della risorsa comune non
e` il piu` alto ottenibile.
Facendo una simulazione con agenti adattivi -in cui gli agenti
esplorano solo 'localmente'- (reti neurali o classifier system) cosa
succede? 'Nasce' una cooperazione tra gli agenti -oppure si comportano
egoisticamente- ?
Cosa succede quando gli agenti sono 2, 3, 4, ecc.?
Fatemi sapere.
Andrea Serafino

Andrea Serafino

PS Ma forse al posto di radice di x volevi dire x^2 ?
No, altrimenti ho rendimenti crescenti sulla risorsa comune (e` come
dire piu` persone utilizzano la fotocopiatrice e piu` ognuno migliora
il suo pay-off).
Spero di essere stato chiaro il piu` possibile (forse e` un discorso
un po` complicato e quindi di difficile esposizione)
A presto
Andrea Serafino
P.S. Su cosa stai facendo la tesi?

P.S. Su cosa stai facendo la tesi?
Simulazioni con modelli basati su agenti (costruiti con reti neurali), ed in 
particolare sull'analisi dell'emergenza di comportamenti complessi a livello
aggregato in ambito economico, che pero' non derivano da alcun processo di 
cooperazione, pianificazione od ottimizzazione (percio' non siamo molto lontani 
dall'argomento 
Detto in modo piu' semplice (nel caso che qualcun'altro oltre ad Andrea, abbia
avuto il coraggio di leggersi questo palloso msg): come fa un formicario a compiere
azioni ''intelligenti'' (come cercare cibo, rispondere ad un attacco,...) se e' costituito
da formiche, che non sono certo agenti intelligenti? Forse c'e' una specie di intelligenza 
collettiva, che deriva dalle relazioni che esistono fra le diverse formiche.
Ciao, Matteo.