<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<?xml:stylesheet href="prototipoes.xsl" type="text/xsl"?>
<esercizio numero="15" titolo="Preparare una piccola relazione sugli argomenti: Artificial Life e Genetic Programming">
   <capitolo titolo="Artificial Life">
      <paragrafo testo="Il simbolo IA viene utilizzato per designare una disciplina scientifica (talvolta considerata una branca della più generale scienza dei calcolatori) il cui obiettivo può essere definito l'indagine sui meccanismi soggiacenti alle facoltà cognitive degli esseri umani (come il linguaggio, il ragionamento, la capacità di risolvere problemi, la percezione) e la loro riproduzione mediante computer opportunamente programmati (in realtà la limitazione allo studio delle facoltà cognitive degli esseri umani non è condivisa da tutti i ricercatori di questa area. Sono anzi sempre più numerosi gli studiosi che si occupano di studiare le facoltà cognitive di varie specie animali). Il primo ad usare l'espressione 'artificial intelligence' per indicare questo genere di ricerche è stato John McCarty, durante uno storico convegno che si tenne nella città statunitense di Dartmouth nel 1956. Non di rado lo stesso termine viene usato per indicare la capacità di un computer o di un programma di eseguire compiti intelligenti, o per qualificare un programma dotato di tali capacità (ed esempio nell'espressione 'programma di intelligenza artificiale')."/>
      <paragrafo testo="Con il passare degli anni la disciplina designata come 'intelligenza artificiale' ha subito una divisione in due aree, che si distinguono in relazione al senso del termine 'riproduzione' che abbiamo usato nella precedente definizione."/>
      <paragrafo testo="La prima area è la cosiddetta 'intelligenza artificiale forte', la quale ritiene che un computer opportunamente programmato possa veramente essere dotato di una genuina intelligenza, non distinguibile in nessun senso importante dall'intelligenza umana. Come scrive John Haugeland: 'La 'IA' vuole solo originali: macchine dotate di mente in senso pieno e letterale' (J. Haugeland, Intelligenza Artificiale, Bollati Boringhieri 1988, p. 9). Alla base di questa concezione vi è la teoria che anche la mente umana sia il prodotto di un complesso insieme di procedimenti di calcolo, eseguiti dal cervello. Resta naturalmente da stabilire rispetto a quale livello di descrizione cervelli e computer possano essere considerati la stessa cosa (escludendo, almeno per ora, il livello dell'hardware!); nondimeno i sostenitori dell'IA forte sono convinti che un tale livello debba esistere. Questa area dell'IA è l'erede diretta della tradizione filosofica cui accennavamo nella premessa."/>
      <paragrafo testo="La seconda area, per contro, viene chiamata 'intelligenza artificiale debole'. Essa sostiene che un computer opportunamente programmato possa solamente simulare i processi cognitivi umani (o alcuni di essi), nello stesso senso in cui un computer può simulare il comportamento di un evento atmosferico, o di una fissione nucleare (nessuno direbbe che un computer che simula una tempesta è una tempesta!). In questo caso dunque l'accento viene posto su ciò che un programma è in grado di fare, senza fare assunzioni sul fatto che il modo in cui lo fa coincida ad un qualche livello con i processi mentali umani. E d'altra parte non si pretende che un programma, per quanto complesso ed efficiente, possa veramente dirsi un esempio di 'mente'. Ovviamente i sostenitori di questa forma di IA sono interessati anche alle molte applicazioni pratiche delle tecnologie che vengono sviluppate nella loro disciplina."/>
      <paragrafo testo="Le due declinazioni dell'intelligenza artificiale, pur differenziandosi profondamente rispetto agli assunti filosofici di base e alle finalità, condividono metodologie, strumentazioni e tecnologie. In particolare entrambe sostengono che per riprodurre e/o simulare un comportamento intelligente al computer sia necessario elaborare informazione (rappresentata da simboli discreti) mediante un programma . In questo senso esse costituiscono quella che viene chiamata 'intelligenza artificiale classica' (o più scherzosamente 'Good Old Artificial Intelligence', cioè 'Buona vecchia intelligenza artificiale')."/>
      <paragrafo testo="Ad essa si oppone una scuola più recente, che parte da presupposti teorici affatto diversi: per ottenere un comportamento intelligente mediante una macchina occorre riprodurre e/o simulare il funzionamento del cervello a livello cellulare. Questa area di ricerca è conosciuta come connessionismo, poiché cerca di ricostruire con strumenti informatici la fitta rete di connessioni che legano le cellule neuronali."/>
      <paragrafo testo="Vale la pena, infine, accennare ad un'altra disciplina: la scienza cognitiva. Si tratta di una area di studi che si è venuta costituendo negli ultimi venti o trenta anni grazie alla convergenza di esponenti di varie discipline (intelligenza artificiale, linguistica, filosofia del linguaggio e delle mente, psicologia cognitiva, neuroscienze), e il cui oggetto è lo studio dei sistemi intelligenti, naturali o artificiali che siano. In un certo senso la scienza cognitiva rappresenta l'erede della IA forte, soprattutto per la concezione che i sistemi intelligenti (qualunque essi siano) siano fondamentalmente sistemi di elaborazione dell'informazione che interagiscono con un ambiente complesso. D'altra parte la compresenza di diverse tradizioni disciplinari ha fatto si che in questa nuova area si riconoscessero anche molti studiosi fortemente critici verso i fondamenti dell'IA."/>
   </capitolo>
   <capitolo titolo="Genetic Programming">
      <paragrafo testo="L'ambito privilegiato per la rappresentazione artificiale della conoscenza è notoriamente quello della computer science: attraverso programmi per computer viene oramai automatizzata una enorme quantità di processi decisionali, le macchine sono in grado di prevedere e di scegliere perché degli analisti hanno saputo riconoscere e classificare termini e regole determinanti nella soluzione di molti problemi."/>
      <paragrafo testo="Tuttavia i programmi ai quali siamo abituati, sono basati sul concetto di 'istruzione', non godono del requisito dell'autonomia nell'organizzazione dei propri modelli, non hanno alcuna capacità di apprendimento, elemento qualificante della conoscenza del quale stiamo trattando. Un importante passo verso l'autoprogrammazione, basato proprio sull'idea di fare evolvere geneticamente dei programmi per computer in funzione del problema da risolvere, è quello che sta compiendo la Genetic Programming i cui presupposti vengono sintetizzati da J.Koza con queste parole:">
        <elencop testo="molti problemi apparentemente diversi possono essere riformulati in termini di ricerca induttiva di programmi"/>
        <elencop testo="l'adattamento fornisce la struttura del programma necessario."/>
      </paragrafo>
      <paragrafo testo="Un buon modo per esemplificare i vari momenti di un algoritmo GP è applicarlo al problema della regressione simbolica, della determinazione cioè della funzione che meglio approssima una serie di dati sperimentali; l'esempio possiede un buon grado di generalità se si considera che in linea di principio tutti i problemi - basti pensare alla nozione di funzione caratteristica - possono essere interpretati in termini di funzione da calcolare (in breve, di associazione di output ad input)."/>
      <paragrafo testo="Supponiamo dunque di disporre di una serie finita di quantità, e di voler conoscere la 'legge' matematica che vincola queste quantità; immaginiamo quindi di scomporre e ricomporre degli insiemi di operazioni, variabili e costanti fino ad ottenere quella funzione che, applicata, generi dei valori simili a quelli della serie di partenza."/>
      <paragrafo testo="Nella Genetic Programming, la struttura tradizionale per la rappresentazione delle procedure che costituiscono le possibili soluzioni di un problema è l'albero binario; essa riproduce la notazione simbolica premessa la quale consente di prevenire agevolmente ambiguità nell'interpretazione della formula una volta poste alcune restrizioni in particolari fasi di elaborazione dell'algoritmo."/>
      <paragrafo testo="Questa scelta sintattica ha reso particolarmente agevole l'adozione del Lisp quale ambiente tradizionale per l'implementazione di questi algoritmi ma nulla ovviamente impedisce l'utilizzo di altri linguaggi."/>
   </capitolo>
</esercizio>


















