Sincronicità: un paradigma per la mente
Riflessioni sull'intelligenza artificiale - Oscar Bettelli
05) Algoritmi genetici
Il meccanismo descritto presenta alcune caratteristiche tipiche delle funzionalità degli algoritmi genetici.
In un algoritmo genetico, tipicamente, una configurazione viene associata ad una azione; la correttezza della funzione rispetto ad un problema da risolvere viene premiata sia a livello di "peso" della regola sia con maggiori probabilità di riproduzione della regola stessa.
Elementi importanti sono le mutazioni, variazioni casuali delle regole che consentono di sondare regole casualmente migliori rispetto alle regole generatrici. Le regole vengono attivate in un determinato ambiente con caratteristiche tali da "premiare" o "punire" le regole stesse: la bontà di una azione rispetto ad una determinata configurazione avviene tramite una funzione di valutazione.
È possibile tenere conto di vincoli sul sistema; tali vincoli possono essere inglobati nella funzione di valutazione stessa.
Il meccanismo logico con cui il sistema procede verso una
soluzione del problema risulta relativamente semplice.
È dimostrato che il sistema converge in maniera esponenziale: teorema fondamentale degli algoritmi genetici.
È interessante affrontare con questi algoritmi problemi concreti; per esempio la preparazione di un orario scolastico.
Il problema degli orari scolastici è relativamente ben definito si tratta di determinare una particolare combinazione di ore di insegnamento distribuite su un certo numero di classi.
Il problema è quindi un problema combinatoriale in cui il numero di permutazioni che si possono analizzare è enorme, in particolare è tale per cui una scansione di tutte le possibili combinazioni non può essere effettuata nella pratica nemmeno da potenti elaboratori.
Dal punto di vista degli algoritmi genetici il problema si pone nel modo seguente:
1) analisi di una generazione iniziale di permutazioni
2) valutazione delle configurazioni sulla base dei vincoli imposti
3) premiazione e riproduzione delle configurazioni migliori
4) analisi della generazione prodotta
5) nel caso in cui venga trovata una soluzione compatibile con tutti i vincoli il processo si arresta altrimenti il processo viene ripetuto.
Occorre analizzare la velocità di convergenza del metodo.
In particolare le probabilità ed i premi relativi affinché l'algoritmo si presenti come un "gioco equo".
In altri termini i "premi" debbono essere una funzione della probabilità legata alla creazione di una configurazione "buona" in ogni caso non è detto che le famiglie che si riproducono maggiormente contengano la soluzione cercata.
Certamente evolveranno verso configurazioni con alti valori della funzione di valutazione; questo non è sufficiente a garantire che la combinazione cercata appartenga alle famiglie selezionate.
Inoltre il processo, fondamentalmente casuale, di creazione delle configurazioni non promette il sostanziale miglioramento sperato nei tempi di esecuzione.
Occorre introdurre criteri aggiuntivi legati alla struttura
delle configurazioni medesime.
In particolare:
1) una creazione di configurazioni che sia fin dall'inizio compatibile con i principali vincoli (locali);
2) una stabilità maggiore per configurazioni che sono soluzione in sottosistemi per il problema completo;
3) una sostanziale "estinzione di massa" per configurazioni buone che, dopo un determinato tempo, non producono la soluzione cercata.
Analizzando questi punti è possibile arrivare alle seguenti considerazioni:
1) il principio di generazione casuale delle configurazioni rimane, anche se pilotato da "regole locali"
2) il principio di risoluzione tramite utilizzo di soluzioni a sottoproblemi
3) il principio di ritorno su scelte prese in precedenza (back tracking)
È facile riconoscervi alcuni criteri solitamente utilizzati nella programmazione di sistemi di intelligenza artificiale.
Approcci differenti portano a medesimi criteri.
Probabilmente esiste una logica generale sottostante che consente l'evidenziazione di trasformazioni di rappresentazione che portano la soluzione di un determinato problema nel campo di più discipline.
Anche le reti neurali possono essere reinterpretate alla luce di alcuni concetti computazionali.
Le leggi fisiche scoperte da newton suggeriscono una stretta correlazione tra le condizioni iniziali in cui un sistema si trova ad un certo istante e le modalità con cui il sistema si evolve nel tempo.
La meccanica quantistica moderna introduce alcuni elementi di in determinazione che di fatto impediscono la completa previsione dell'evoluzione di un sistema fisico.
Anche rimanendo nell'ambito della meccanica classica è possibile immaginare sistemi fisici in cui variazioni infinitesime nelle condizioni iniziali producono differenze di grandezza infinita dello stato del sistema dopo un tempo sufficientemente lungo.
Per esempio, una pallina in equilibrio instabile su un potenziale a campana, a seguito di una perturbazione, rotola da una parte oppure dall'altra raggiungendo posizioni distanti a piacere.
Cause infinitesime possono produrre effetti di grandezza infinita.
Ovviamente, quando si costruiscono modelli di rappresentazione della realtà, ci si concentra sulle relazioni che presentano una stabilità di fondo: modelli intrinsecamente instabili, come quelli che sembrano essere modelli realistici, sono accuratamente evitati proprio per la difficoltà di trattamento che presentano.
Le relazioni di causa ed effetto prese in considerazione sono quelle maggiormente definite: in particolare, a livello di rappresentazione formale, in un calcolatore le relazioni sono rappresentate da connessioni del tipo tutto o niente, ovvero relazioni di equivalenza completamente definite.
Insiemi matematici che prevedono la possibilità di relazioni sfumate sono conosciuti come fuzzy sets (insiemi sfumati), studi recenti mostrano come molti problemi in ambito di incertezza possano essere affrontati con questi strumenti.
Comunque la struttura stessa dei dati, ovvero delle informazioni codificate in un computer, porta ad una definizione di base che non tiene conto delle sfumature: questa circostanza chiama in causa l'utilizzatore umano per quanto riguarda la valutazione e l'interpretazione delle informazioni prodotte.
È possibile anche introdurre un criterio di somiglianza tra i dati, consentendo classificazioni sfumate: insiemi simili sono per definizione insiemi sfumati.
Anche in questo caso l'interpretazione degli attributi significativi, su cui si basa la misura della somiglianza, riposa fortemente sull'uso che l'operatore umano le attribuirà.
L'estrema velocità e potenzialità di calcolo che l'elaboratore dimostra di possedere lo mettono in grado di svolgere compiti tali che un essere umano non potrebbe controllare.
La rappresentazione interna del mondo, in un calcolatore, è tale per cui solo le informazioni più significative sono presenti, in forma di dati, mentre la maggior parte delle informazioni a contorno non compaiono oppure sono distorte.
Questi fatti congiuntamente producono l'effetto di affidare ai calcolatori compiti per i quali non sono adatti, producendo di fatto soluzioni incomplete e a volte scadenti.
A volte ci meravigliamo di queste scarse prestazioni comparate alla indiscussa capacità di calcolo che un elaboratore possiede ed ad altri compiti in cui eccelle rispetto alle possibilità umane: la ragione principale risiede nella diversa rappresentazione del problema che invariabilmente esiste tra un elaboratore ed un essere umano.
Consideriamo un gioco formale come gli scacchi.
In un gioco di questo tipo le regole sono ben definite e il calcolatore dovrebbe essere in grado di battere l'uomo.
Al momento in cui scrivo questo non si è ancora verificato, anche se vi sono buone prospettive, negli anni futuri, che il campione del mondo di scacchi possa essere un calcolatore.
Consideriamo la comprensione del linguaggio.
Vi sono grandi difficoltà da superare per realizzare un programma che fornisca risposte sensate ad un interlocutore umano.
Innanzitutto una parola fa riferimento ad un insieme di altri dati correlati che ne forniscono il significato.
Un altro problema fondamentale risiede nella costruzione verbale, sintassi e grammatica.
È possibile costruire una rete semantica che leghi le parole per realizzare connessioni in grado di fornire il significato delle parole.