Newsgroup: it.comp.ia
Titolo: IA Help!

Salve,
premetto che non sono uno specialista in IA, anzi a dir la verita' ne so ben
poco... :((( Potreste spiegarmi cosa sono le RETI NEURALI e gli ALGORITMI
GENETICI, per favore non datemi un sito, perche poi' alla fine non si
conclude niente!
Quindi se per favore mi spiegate di cosa si tratta ve ne sarei molto grato!
Grazie!
Mad Hatters

 1)cosa sono gli algoritmi genetici "in realtà" e a cosa servono?
 
Gli AG partono dall'idea che sia possibile "evolvere" il comportamento 
desiderato (modellato di solito da una funzione di trasformazione) a partire da 
un insieme di "individui" (tipicamente stringhe di bit) mediante le operazioni 
di "riproduzione" e "selezione". 
 
L' insieme parte in uno stato casuale e viene lasciato - appunto - evolvere per 
un certo numero di epoche: ogni passo consiste in
"riproduzione", ad esempio si selezionano coppie arbitrarie di stringhe e si 
derivano un'altra stringa combinandole secondo certe regole, e "selezione" - 
vengono eliminate tutte le stringhe che sono valutate "positive" ("adatte") 
sotto una certa soglia (la valutazione avviene mediante una funzione cosiddetta 
di "fitness").
 
Ovviamente molto dipende da quali funzioni di riproduzione e fitness si usano, 
ma esistono dei teoremi abbastanza generali che affermano che con la 
combinazione di riproduzione e fitness si possono ottenere risultati vicini 
all'ottimo (cioe' l'errore medio e' ragionevolmente piccolo o puo' essere fatto 
tale agendo sui parametri di evoluzione). 
 
Quindi un modo per ottenere un algoritmo di calcolo per una certa funzione e' 
di avere un certo insieme di coppie input/output per la funzione, usarle per 
costruire una funzione di fitness, e usare
quest'ultima - insiemem ad un modello evolutivo (di "riproduzione") a scelta - 
finche' non si raggiunge una condizione stabile.. dopodiche' l'insieme di 
stringhe stabili e' un "calcolatore" per quella funzione, con un certo errore 
medio noto.
 
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

 conclude niente!
Provo a parlarti un po' degli algoritmi genetici...
Sono algoritmi che hanno lo scopo di risolvere i piu' svariati problemi del
modo reale (ma anche astratti) partendo dai semplici, ferrei (e talvolta
crudeli) meccanismi attraverso i quali opera la natura.
L'oggetto in esame nel problema deve essere analizzato e si devono
individuare le caratteristiche peculiari utili a descrivere la realta' che
si vuole rappresentare e controllare.
Tali caratteristiche concorrono a formare delle stringhe opportunamente
codificate in una stringa composta dagli attributi giustapposti l'uno
all'altro.
E' evidente l'analogia esistente tra questa stringa che descrive l'oggetto e
il DNA presente nelle nostre cellule.
A questo punto si procede fissando una configurazione iniziale della
popolazione della prima generazione. Successivamente si itera non piu'
casualmente ma seguendo delle regole fissate a priori.
Gli operatori genetici sono:
- selezione naturale
- incrocio (cross-over)
- mutazione genetica
L'elemento critico del procedimento e' la determinazione della FITNESS cioe'
la funzione di valutazione di ogni individuo della popolazione.
Passano alle generazioni successive solo gli elementi con fitness piu'
grande. Esistono delle formulette che permettono di determinare, ad esempio,
quante volte un oggetto dovra' replicarsi e quale oggetto non si replichera'
affatto.
Nelle generazioni, di solito, la fitness totale tende ad aumentare piu' o
meno lentamente. Se la popolazione e' chiusa e' possibile che dopo un certo
numero di cicli la fitness si stabilizzi entro un certo valore. In tal caso
e' utile prevedere anche un operatore di mutazione. Tale operatore, di
solito, varia casualmente una bassissima percentuale di bit delle stringhe
degli individui in modo del tutto casuale.
Anche in natura, di solito, esistono mutazioni genetiche anche se in un
ordine bassissimo di casi.
Non e' detto che tali mutazioni siano sempre negative. L'alterazione casuale
di un bit potrebbe causare l'esaltazione di determinate "doti" dell'oggetto
che diverrebbe cosi' piu' adatto a sopravvivere.
Nel caso in cui invece la mutazione sia penalizzante la fitness dell'oggetto
si abbassa e la sua probabilita' di replicarsi diventa bassa. Quindi la
mutazione, se limitata, non procura danni.
Spero di averti dato una vaga idea, molto approssimativa, sul cosa e' un
algoritmo genetico.
Gli algoritmi genetici sono interessanti perche' possono essere applicati a
qualunque problema.
Un esempio potrebbe essere quello della edge-detection (trovare i bordi di
una immagine).
Si potrebbe partire da linee casuali che, grazie alla selezione naturale,
arrivino ad approssimare le curve dei bordi. Tutto sta a determinare le
fitness del problema.
E' ovvio che spesso non conviene usarli per ragioni puramente pragmatiche:
il problema dell'edge e' risolto da algoritmi matematici molto piu'
rapidamente...

Scusa, ma se qualcuno ti da degli indirizzi da cercare già è qualcosa, dopo
un po' di sforzo devi farlo te!! Mica uno può mettersi a scrivere 20 pagine
per riassumerti quello che sa su un argomento....  :-)
Non voglio essere scorbutico, per carità.....
Comunque 2 o 3 lettere più su trovi delle dritte sulle reti neurali. Poi
puoi cercare dei libri in una biblioteca scientifica o di qualche
università, cercando le parole chiave sia in italiano che in inglese
(quest'ultimo ti darebbe certamente più risultati, soprattutto sugli
algoritmi genetici, che sono poco diffusi).
Ciao (non mi volere male, io comunque non ho le conoscenze per
spiegarteli..).
Michele