martedì 18 settembre 2012

Akinator

Come fa Akinator a prenderci quasi sempre???

Akinator è una applicazione per smartphone ed anche un programma che può funzionare on-line sul sito della casa produttirce Elokence.com.
E'chiamato programma di intelligenza artificiale perchè il computer interagisce con l'utente ed implementa il suo database mano a mano che vi si accede e gioca, quindi invece che essere un programma statico è in continuo perfezionamento.
Il concetto è semplice, ricordo che io in terza media, assieme alla classe, compilai un programma simile in linguaggio Basic, quando tutti i computer che si trovavano avevano come sistema operativo Microsoft Dos, mentre Windows e le interfacce grafiche non si vedevano ancora in giro. Tutto a quei tempi era ancora su sfondo nero, perchè così si diceva che si risparmiava corrente elettrica, perciò il programma per disegnare Paintbrush che già esisteva, lavorava su sfondo nero, anche perchè illuminare quei monitor con grafica CGA, od EGA bene che andasse, era qualcosa di inconcepibile.
Va da sè che il programma una volta fatto andare era semplicemente una serie di frasi di una o due righe che faceva delle domande e confrontava tutti gli input che gli venivano dati come risposta dall'utente con le il suo database, e alla fine dava in output la risposta giusta, soprattutto se uno si era speso nel riempirlo di dati. (ricordo ad esempio che indovinò la balena in quanto animale grande)
Alla fine fummo tutti sorpresi dal fatto che quel programma funzionasse e che il computer, da solo, ti facesse delle domande (più che altro si indovinavano oggetti o animali) e ti desse delle risposte.

Akinator però non mi da pace. I miei amici sono rimasti sbalorditi ma poi è finita lì. Io non capisco per quale logica riesca a leggermi così tanto nella mente.
 Capisco che stiamo parlando di processori lontani anni luce dai quegli Intel 286, capisco che il programma avrà sicuramente altre variabili per potere capire il personaggio indovinato, ma anche sforzandomi non riesco a capire la precisione di alcune domande.

Ho pensato naturalmente che abbia un database composto da centinaia di migliaia di personaggi con una serie tale di variabili per ogni personaggio con un ordine di grandezza di qualche centinaio per ogni personaggio.
Immagino che vi siano degli impiegati della Elokence che si occupino di controllare i dati che vengono immessi per appurarne la bontà.
Immagino che le variabili abbiano una serie di campi significativa, dove ogni condizione o domanda avrà una risposta con una stima  di probabilità che quella risposta venga data in relazione a quel personaggio.
Ho pensato, e sono quasi certo, che il tempo di risposta che segue alla domanda influenzi altresì il programma (così un Si od un No dati dopo 4 decimi di secondo saranno diversi da un SI od un NO dato dopo 4 secondi, difatti se uno risponde più velocemente Akinator sembra predisposto a pensare che il personaggio sia conosciuto meglio di persona o che comunque quella variabile sia più significativa del personaggio)
Ma nonostante tutte queste mie prove, ed avrò pensato a più di cento personaggi qualcosa continua a non tornarmi.
Forse Akinator registra anche i dati di accesso del terminale, ed anche la posizione di accesso, ma nonostante abbia pensato a questa non comune ipotesi, la situazione continua a non tornarmi.
Ho anche penato per assurdo che ci fosse qualcuno dall'altra parte che intervenisse per porre lui delle domande, e debbo dire che mi sono sentito un pò stupido, ma anche prendendo seriamente questa ipotesi, c'era comunque qualcosa che continuava a non tornarmi.
Capisco che quando si introducono risposte contradditorie Akinator comincia a prendere in giro il giocatore, perchè non lo considera più un giocatore affidabile, e così gli dà risposte strampalate e gli fa domande strampalate, questo è abbastanza semplice.
Alcune domande però mi sono parse non molto logiche rispetto ad una ricerca informatica.
Cioè stanco dei personaggi ho pensato alla cacca, mi ha fatto domande generalissime tipo è italiano, è femmina, dopo quattro domande mi ha chiesto se era reale, dopo mi ha chiesto se ha la pelle, poi se è marrone, e poi mi ha chiesto se puzza, e poi ha indovinato.
Con qualche domanda in più indovina anche personaggi minori di videogiochi, cioè tipo Shredder, tipo Jax di Mortal kombat, ma anche qui dopo domande per lo più generali su personaggi di videogiochi non si capisce perchè è spuntata la domanda se aveva parti meccaniche robotiche (Jax in mortal kombat 3, a differenza del 2 ha le braccia bioniche, mi ha sorpeso molto la domanda perchè io avevo risposto che il personaggio era umano e non ancora aveva domandato se era un personaggio di Mortal kombat. Coincidenza molto strana) ho poi notato che quando già è praticamente sicuro della risposta è solito farti una domanda che non c'entra assolutamente nulla per vedere la reazione, quindi si presuppone che voglia testare il tempo di risposta per una domanda assolutamente falsa.
Per riuscire ad ingannare Akinator è necessario pensare a personaggi minori del passato, o più locali, o di videogiochi minori, e sorpendentemente a volte (naturlamente di meno) indovina anche i personaggi locali.


Così io credo che Akinator che è diventato popolare in Italia solo da poco rispetto ad altri paesi, o Divinator, come si chiamava prima è un programma eccezionale, e quindi

Ha un database ricchissimo
Utilizza il calcolo delle probabilità statistiche per ogni variabile
Tiene conto del tempo di risposta
Ha sicuramente personaggi che lavorano al suo interno e lo aggiornano periodicamente (non so con quale periodicità)


E inoltre ritengo altamente possibile che
O la tecnologia applicata abbia qualcosa di importante e non convenzionale che mi sfugge
Oppure ci sia veramente qualcuno che volendo ogni tanto ha la facoltà di intervenire in simultanea e che sa dove ti trovi.


Questo è quanto.

0 commenti: