View Full Version : [Algoritmi] Documentazione ed esempi IA
AllerITA
28-03-2012, 09:23
Non so se è stato già richiesto, Sono nuovo di questo thread.
Volevo esporre un mio problema.
Sto sviluppando un gioco strategico a turni. Vorrei utilizzare le ultimissime novità
in fatto di algoritmi di Intelligenza Artificiale, soprattutto per rendere il programma in grado di apprendere dalle mosse precedenti. Ho letto di sfuggita sulla rete a grosse linee gli algoritmi sulle Reti Neurali, Algoritmi genetici e Logica Fuzzy, ma non ho trovato ancora un buon testo che mi spieghi l'approccio più immediato al problema. Ho preso anche per provare alcune dispense universitarie ma sono molto generiche.
La mia domanda è, Esistono siti web o Libri che ti danno una buona infarinatura sugli ultimissimi algoritmi con esempi anche in C++, C#,VB.Net o VB 6, Pascal, Java o semplicemente con un diagramma di flusso?
Ve lo chiedo perchè mi sembra che gli utenti di questo forum siano competenti in riguardo di problematiche di programmazione.
Gli algoritmi che cerchi appartengono alla categoria generale di Machine Learning. Probabilmente se cerchi questo argomento trovi qualcosa di piu. In particolare, tutte le tecniche che hai citato, piu altre come SVM, Hidden Markov Models, ... sono utilizzate in bioinformatica per far predizioni e classificazioni...
Conosco ottimi testi che spiegano come utilzzare queste tecniche, ma hanno tutti esempi diretti alla biologia. Ed ovviamente non presentano codice, ma formule matematiche...
Di librerie gia pronte all'uso comunque ce ne sono molte (libsvm, hmmer, ...). Ne trovi molti anche se guardi nelle pagine dei vari gruppi di ricerca...
pabloski
28-03-2012, 13:07
Purtroppo devo avvisarti che non troverai nulla di specifico e assolutamente chiaro, come può esserlo un libro sul c++, ad esempio.
Il problema è che l'IA è un settore in piena evoluzione e tutto è allo stato di ricerca, niente è cristallizzato ed "accademizzato" e gli algoritmi che sembravano fighi ieri, oggi vengono derisi perchè superati da qualcosa di molto meglio.
Detto questo, ci sono dei libri utili per farsi un'idea di come stanno procedendo i ricercatori e quali strategie sono le più gettonate:
1. Artificial Intelligence - A modern Approach - Norvig e Russell
2. On Intelligence - Hawkins ( questo tipo ha completamente rivoluzionato il modo di vedere l'IA )
3. Neural Networks - A Comprehensive Foundation - Haykin ( tratta tutto sulle reti neurali, è quello che più si avvicina a quanto chiedi )
4. Automatic Speech and Speaker Recognition - Keshet e Bengio ( tratta di voice recognition coi metodi kernel e con Markov, però è molto profondo nel trattare questi due metodi che sono applicabili anche ad altri ambiti )
Per il resto trovi solo un mare di articoli, ad esempio "Convolutional Networks and Applications in Vision" ( presenta un metodo "tutto nuovo" di elaborare segnali auditivi e visivi ). Oppure "To Recognize Shapes, First Learn to Generate Images", che presenta una tecnica generativa per addestrare le reti neurali al riconoscimento delle immagini.
Ci sono poi alcuni "colossi" che fanno un'analisi comparata tra le reti neurali biologiche e quelle artificiali e, imho, sono molto utili per capire non solo lo stato dell'arte nell'IA ma anche per capire quali direzioni la ricerca sta seguendo:
1. The Handbook of Brain Theory and Neural Networks - Arbib
2. Theoretical Neuroscience - Dayan e Abbott
3. Networks of the brain - Sporns
Questi ultimi sono molto più "biologici", però forniscono una conoscenza teorica impressionante.
AllerITA
28-03-2012, 13:14
Grazie mille a tutti, ora ho molti più testi dove studiare questi algoritmi. Sapete darmi indirizzi di siti ufficiali che trattano questi argomenti per vederne i possibili sviluppi, con relativi suggerimenti di documentazione?
Comunque mi avete dato un grande aiuto.
Sto sviluppando un gioco strategico a turni. Vorrei utilizzare le ultimissime novità in fatto di algoritmi di Intelligenza Artificiale, soprattutto per rendere il programma in grado di apprendere dalle mosse precedenti.
Vuoi che il sistema apprenda dalle mosse precedenti O dalle partite precedenti, le cui n - 1 mosse precedenti che hanno portato allo stato attuale (n) della partita in corso erano uguali/simili?
In questo caso si tratterebbe di dare alla macchina molti esempi di training di partite complete in cui riconoscere partite simili a quella in corso e da cui predire la prossima mossa.
Una cosa alternativa è quella che credo facciano i programmi di scacchi... dato uno stato qualunque N del gioco, analizza ed assegna uno score a qualunque possibile variante degli stati N + 1, 2, ... in questo caso gli N-1 stati che hanno portato ad N non hanno alcuna rilevanza e non hai bisogno di allenare la macchina. Se questa alternativa puo essere appetibile, sicuramente trovi codici gia pronti da cui prender qualche idea.
pabloski
28-03-2012, 14:17
Ah, beh, qualche link interessante esiste.
http://www.aaai.org/AITopics/html/welcome.html
http://icwww.epfl.ch/~gerstner//SPNM/node1.html
http://www.imagination-engines.com/
http://www.cs.ubc.ca/~murphyk/Bayes/bayes.html
http://www.eecs.qmul.ac.uk/~norman/BBNs/BBNs.html
http://vesicle.nsi.edu/nomad/
http://www.consciousentities.com/edelman.html
http://paul-baxter.blogspot.it/2006/11/network-memory.html
http://singularityhub.com/
http://www.scidacreview.org/0804/html/hardware.html
http://web.mit.edu/newsoffice/2010/ai-unification.html
http://www.kernel-machines.org/
p.s. aggiungo i link a due interessantissimi metodi che coniugano logica predicativa ed analisi stocastica
http://projects.csail.mit.edu/church/wiki/Church
http://wiki.opencog.org/w/The_Open_Cognition_Project
la differenza è che questi due modelli riescono a modellare quasi alla perfezione la logica umana
AllerITA
28-03-2012, 23:35
In realtà devo gestire uno strategico a turni, coordinando i movimenti dei pezzi e le loro azioni in base alle mosse del giocatore in modo che si adatti al suo tipo di gioco, quindi che si auto regoli di conseguenza, anche perché nel gioco c'e' anche una gestione di risorse cioè c'e' una scelta ponderata a fine turno delle pedine che si possono mandare in campo. Un po alla Civilization o alla age of empire, pero' cercando possibilmente di tenere conto dell'efficacia o meno dello schema di gioco utilizzato fino ad ora. E tutto magari gestibile con un selettore di livello di difficoltà.
Ottimo mi avete dato una esposizione completa e credo esaustiva di cosa fare.
Grazie mille a tutti, mi metto subito al lavoro.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.