I sistemi esperti sono considerati una delle più importanti applicazioni dell'IA. Secondo una prima definizione semplificata, un sistema esperto è sostanzialmente un programma che è capace di dare una soluzione a problemi complessi rientranti in un ambito o dominio specifico; ad esempio, un sistema esperto può elaborare delle diagnosi mediche o valutare le possibilità di riuscita o meno di un'attività finanziaria. All'origine del programma dei sistemi esperti, si pensa si trovino le idee alquanto originali ed innovative di K. Craik [56], che hanno rappresentato una rivoluzione di pensiero fondamentale.
Secondo Craik, il cervello umano, che è un tipo particolare di macchina, costruisce modelli o rappresentazioni interne del mondo, e, tramite la loro elaborazione, determina delle azioni. Queste, quindi, nell'automa ideato da Craik, non sono più la risposta meccanica a certi stimoli, come nell'automa cartesiano, in quanto è indispensabile il passaggio attraverso il livello intermedio della rappresentazione interna dello stimolo stesso e della sua elaborazione. L'automa 'craikiano' possiede conoscenza e compie inferenze e l'intelligenza deve consistere nell'elaborare la conoscenza.
Le idee di Craik, "spinte agli estremi, indicano infatti nella conoscenza la vera chiave dell'intelligenza: un sistema dotato di conoscenza in un certo dominio è in grado di risolvere i problemi che si verificano in quel dominio anche utilizzando mezzi logici molto limitati, mentre un sistema privo di conoscenza del dominio, pur se dotato di mezzi logici strepitosi, non è praticamente in grado di risolvere neppure i problemi più banali" [57]. Per tali ragioni, la disciplina dei sistemi esperti viene definita come lo studio formale del comportamento umano in ogni dominio; essa è anche chiamata talvolta "ingegneria della conoscenza", in quanto per realizzare un programma in un dato dominio è indispensabile possedere la "conoscenza del dominio", cioè l'insieme di leggi che governano il comportamento di un agente in quel dominio. Secondo McCarthy, la disciplina dei sistemi esperti deve soddisfare tre particolari requisiti essenziali: - l'adeguatezza ontologica, cioè permettere la descrizione dei fatti salienti; - l'adeguatezza epistemologica, cioè consentire l'espressione della conoscenza rilevante; - l'adeguatezza euristica, cioè assicurare il compimento delle inferenze rilevanti. Inoltre, egli ritiene che tali requisiti siano soddisfatti dal linguaggio della logica: la conoscenza rappresentata in questo modo costituisce un sistema formale di assiomi, partendo dai quali si possono dimostrare teoremi. Ogni insieme di conoscenza diviene perciò una teoria.
Dopo questa parentesi sulle caratteristiche e l'origine della disciplina dei sistemi esperti, torniamo ora alla definizione e proseguiamo con i componenti propri dei sistemi esperti e con alcuni esempi delle applicazioni più famose. Generalmente, un sistema esperto deve possedere:
a) una base di conoscenza specialistica su un determinato dominio, fondamentale per risolvere i problemi in quel settore; tale base deve essere adeguatamente rappresentata nella memoria del calcolatore;
b) un motore inferenziale capace di dedurre, dalla base di conoscenza, le conclusioni, che consistono nelle soluzioni al problema facente parte del dominio; il motore inferenziale è il cuore del programma, e funziona applicando alla base di conoscenza delle procedure euristiche, simili a quelle utilizzate nel 'problem solving'. Esse possono essere sia generali che specifiche per l'ambito di cui il sistema si sta occupando;
c) un'interfaccia utente composta da alcuni moduli informatici che permettono all'uomo di interagire con il programma, ponendo domande e leggendo risposte. Le prime applicazioni dell'IA ai sistemi esperti risalgono tendenzialmente agli anni Sessanta, in genere nelle università statunitensi. Il termine "expertise", ossia "esperienza scientifica", è stato utilizzato per la prima volta nel 1967 da Joel Moses nella sua tesi di laurea, ma esistono dei precedenti nel programma MACSYMA del 1961, ancora basato su algoritmi tradizionali, e nel suo successore, DENDRAL, primo classico esempio di procedura euristica applicato al settore chimico.
Da quest'ultimo in avanti, i sistemi esperti sono stati impiegati essenzialmente nella risoluzione di problemi medici e, in tale ambito, va senz'altro ricordato MYCIN, creato nel 1972 all'Università di Stanford, che è stato il primo ad utilizzare la procedura di ricerca all'indietro nell'albero degli stati ('backward chaining').
[56] Cfr. K. Craik, The nature of explanation, Princeton University Press, 1943, tr. it. parziale in V. Somenzi (a cura di), La fisica della mente, Boringhieri, Torino 1969, pp. 32-79.
[57] Cfr. P. Scaruffi, La mente artificiale, Franco Angeli, Milano 1991, cap. 3, "L'ingegneria della mente".
Pubblicazione del prof. Matteo Fini e della prof. Paola Milani
Successivo: Il connessionismo e le reti neurali
Sommario: Index