domenica, novembre 19, 2006

Un paio di considerazioni sull'IA

Ho l'impressione da qualche tempo a questa parte, che tutta la parte di "ricerca automatica di una soluzione per un problema dato" (NdA: Questa potrebbe essere una buona definizione di IA, a conti fatti) si concentra molto sulla "ricerca di una soluzione ottimale", tralasciando molti aspetti fondamentali.
Ricordo che la Minicozzi disse una cosa che mi aveva colpito molto (in effetti si tratta una delle due cose utili che mi ha dato quel corso di IA, per il resto totalmente risibile). Disse che i programmi di intelligenza artificiale potevano anche sbagliare o non trovare una soluzione ottimale.
Questa affermazione nasconde un aspetto fondamentale di questo campo: un'intelligenza non è una macchina per esplorare alberi di ricerca. Un'intelligenza può anche non trovare una soluzione ottimale, l'importante è che ne trovi una e che questa non sia troppo stupida.

Una mente allenata risolve problemi in base alla sua conoscenza. Non è detto che trovi la migliore soluzione ogni volta, però ci si aspetta che ne trovi una abbastanza buona. Le macchine potranno incamerare nel futuro moltissima conoscenza e quindi ci si aspetta che un sistema di IA risolva bene un numero grande di problemi.

IA è sopratutto (come dice Hector Geffner): 1) rappresentazione della conoscenza e 2) euristica. In nessuno di questi aspetti dell'IA vi è la nozione di "ricerca esaustiva".
Rappresentazione della conoscenza vuol dire poter scrivere in maniera compatta e chiara i dati importanti di un problema, di una situazione e le informazioni incamerate.
Ricerca euristica implica una valutazione della lontananza della soluzione dalla situazione attuale. "Valutare" non è "sapere" e quindi una componente di incertezza deve far parte del problema. Questo già significa che una soluzione esatta non è prevista dal sistema in questione.

Allora perché tutta questa competizione sulla rapidità e sull'ottimalità?

Nessun commento: