SISTEMI ESPERTI
I s.e. sono programmi per calcolatore che cercano di riprodurre le prestazioni di esperti umani nella risoluzione di problemi. Essi rappresentano il più conosciuto risultato pratico della ricerca in intelligenza artificiale (v. in questa Appendice), pur non essendo rappresentativi della ricchezza di obiettivi e di approcci di quest'ultima. L'intelligenza artificiale, a sua volta, si può considerare una branca dell'informatica, ma è anche intimamente collegata con altre discipline, come la scienza cognitiva, la logica formale, la linguistica computazionale e lo studio dei processi decisionali.
I s.e. affrontano soprattutto domini professionali specializzati; i problemi che s'incontrano in essi sono in genere complessi e non ben strutturati, così che non è possibile o conveniente modellarli in modo formale. Per essi non sono efficaci, per lo più, le tecniche di risoluzione generali (indipendenti dal dominio) dell'intelligenza artificiale, quali per es. quelle che ''cercano'' una soluzione mediante l'esame sistematico delle configurazioni ottenibili, a partire dallo stato iniziale del problema, con diversi modi di combinare in sequenza azioni elementari (le ''mosse'', nel caso di un gioco). L'esperto, di solito, non ricerca la soluzione in uno ''spazio di stati'' combinatorio, ma in qualche modo nella propria esperienza: egli fa ricorso a un ampio bagaglio di conoscenze e abilità specifiche e, nel trarre conclusioni, segue scorciatoie corrispondenti all'applicazione di regole empiriche. I s.e. appartengono alla categoria dei sistemi ''basati sulla conoscenza'' (taluni non fanno distinzione tra i due termini), e ''ingegneri della conoscenza'' vengono chiamate le persone addette al loro sviluppo. Per questo tipicamente si segue l'approccio della ''programmazione basata sulle regole'', contrapposto principalmente a quello della programmazione procedurale o algoritmica. I s.e. sono sistemi modulari, i cui componenti caratteristici sono la base di conoscenza e il motore inferenziale.
I s.e. sono stati sviluppati negli ultimi due decenni per svariati domini applicativi; articoli tecnici e pubblicazioni di rassegna citano centinaia, se non migliaia di s.e. per applicazioni in campo medico, ingegneristico, industriale, finanziario, agricolo, militare, spaziale, di controllo ambientale, ecc. Essi a volte operano come assistenti per il professionista, altre volte sono inseriti come componenti autonomi in complessi sistemi di controllo. In entrambi i casi un tipico s.e. ha due funzioni principali: quella di trarre delle conclusioni (e quindi compiere o suggerire delle scelte) e quella di spiegare in che modo, con quale ragionamento è pervenuto a quelle conclusioni.
La storia dei s.e., come filone distinto all'interno dell'intelligenza artificiale, si sviluppa a partire dalla seconda metà degli anni Sessanta: in reazione alle limitazioni delle strategie generali di risoluzione dei problemi, riconosciute anche da figure carismatiche dell'intelligenza artificiale come A. Newell e H. Simon, alcuni ricercatori si posero a lavorare su domini più ristretti.
Tra la fine degli anni Sessanta e la prima metà degli anni Settanta era già stato sviluppato un certo numero di sistemi pionieristici che hanno contribuito a rendere popolare l'approccio tipico dei s.e.; tra essi citiamo DENDRAL, MYCIN e HEARSAY. DENDRAL, rivolto ai ricercatori chimici, è un esperto di struttura molecolare in chimica organica: esso interpreta i dati di analisi spettrografica di un composto organico e formula ipotesi sulla sua struttura; ritorneremo più avanti su MYCIN che, in grado di riconoscere malattie infettive del sangue, è il capostipite di numerosi s.e. diagnostici in campo medico; HEARSAY è un sistema di analisi del linguaggio parlato, in grado di comprendere il discorso ''connesso'' basato su un vocabolario di un migliaio di parole, e anch'esso sarà meglio descritto nel seguito.
Durante la seconda metà degli anni Settanta si è avuto il consolidamento teorico della disciplina: nel 1977, in un intervento inviato al principale congresso internazionale di intelligenza artificiale, E. Feigenbaum di Stanford, uno dei ''guru'' dei s.e., ha ribadito che la loro potenza deriva essenzialmente dalla conoscenza che essi possiedono e non dai particolari formalismi di rappresentazione o dagli schemi d'inferenza che essi impiegano. Nello stesso periodo sono comparsi alcuni strumenti dedicati allo sviluppo dei s.e., tra cui il linguaggio a regole OPS e il ''guscio'' EMYCIN; infine sono stati sviluppati i prototipi di alcuni s.e. di notevole interesse pratico, tra i quali citiamo PROSPECTOR, R1 e altri di cui parleremo più avanti.
Negli anni Ottanta i s.e. entrano sempre più in una fase di diffuso interesse applicativo: i progetti e le sperimentazioni si moltiplicano, così come i congressi, le mostre, le riviste specializzate; il successo commerciale premia dapprima i produttori di strumenti di sviluppo, sia hardware che software, e le società di ricerca e trasferimento tecnologico, e solo più tardi i produttori di applicazioni. Tale fase è accompagnata dal riconoscimento che raramente i s.e. sono validi industrialmente come istallazioni a sé stanti; questa tecnologia è più efficace se viene impiegata per aggiungere valore, all'interno dei principali filoni di sviluppo dell'informatica, a sistemi informativi costituenti il ''sistema nervoso'' di grandi organizzazioni industriali e amministrative, e che spesso raccolgono e gestiscono enormi moli di informazioni da interpretare in modo ''intelligente''. Proprio perché i s.e. sviluppati negli ultimi anni corrispondono per la maggior parte a componenti di sistemi più ampi, pur crescendo a ritmo accelerato il numero delle realizzazioni è difficile valutare in modo corretto il loro peso, in termini di numero, di investimenti effettuati e di ritorni economici.
Caratteristiche e ruolo dei sistemi esperti. - Alla base dei s.e. vi è la convinzione che il maggiore contributo alla capacità di risolvere i problemi viene dal bagaglio di conoscenze incorporato nel sistema, piuttosto che dalla potenza del suo apparato deduttivo. I s.e. sono infatti un esempio tipico dei ''sistemi basati sulla conoscenza'', come vengono designati sistemi software che risolvono i problemi facendo interagire la conoscenza con un meccanismo d'inferenza, cioè separando chiaramente la conoscenza dal modo in cui essa viene usata. Nei s.e., in particolare, sia la conoscenza che i processi d'inferenza sono modellati su quelli di un esperto umano.
È paradigmatico dei s.e. comportarsi come dei consulenti: essi forniscono consulenza di livello elevato a un praticante di una disciplina, così come farebbe un consulente in carne e ossa, dando raccomandazioni su casi particolarmente difficili: l'esempio classico è quello di un s.e. che suggerisce a un medico generico diagnosi e terapia per una rara malattia specialistica. Il modo di utilizzo del s.e. è allora quello di un dialogo in forma di consulto: in una prima fase il sistema può porre una serie di domande circa il paziente, i sintomi, gli accertamenti effettuati ("età ?", "sesso ?", "malattie recenti ?"...; "tipo d'infezione ?", "quando e come si è manifestata ?"...; "tipo di analisi con risultato positivo ?", "su che tipo di prelievo è stata effettuata la coltura ?", ...). Poi, per raccogliere informazione sufficiente a vagliare certe ipotesi, il s.e. può suggerire di effettuare nuovi accertamenti, può porre domande del tutto nuove o chiedere precisazioni ("che forma [bacillo, cocco, ...] ha l'organismo rinvenuto nella coltura y ?", "tale organismo è stato rinvenuto anche in colture effettuate su tessuto prelevato in altro sito ?", "che livello di gravità assegneresti al paziente ?"...). Infine il sistema comunica la sua diagnosi, che può comprendere diverse alternative con un associato grado di fiducia; s'informa della sussistenza di eventuale reattività allergica del paziente ai medicinali e suggerisce una terapia basata sulla diagnosi effettuata. Da parte sua l'utente (il medico generico) può chiedere spiegazioni nelle diverse fasi del dialogo, sia per sapere magari il perché di una domanda, o se può essere utile effettuare nuovi accertamenti, sia per capire attraveso che filo di ragionamento il s.e. sia arrivato a trarre le sue conclusioni.
Un ruolo abbastanza diverso un s.e. lo assume quando si comporta come un esperto autonomo, in grado di analizzare tutti i dati disponibili e di prendere una decisione senza consultare nessuno. Esso può eseguire direttamente tale decisione, se per es. si trova a controllare un processo industriale; oppure comunicarla all'utente, quando si tratti di un s.e. di ausilio alla manutenzione di un impianto o apparato: in tal caso l'utente potrà accettare o meno la raccomandazione, anche in base al proprio grado di competenza. Ancora, un s.e. si può comportare come un assistente intelligente che, pur non essendo in grado di risolvere un problema, può dare suggerimenti determinanti: riconoscere una situazione abnorme di pericolo (in un processo industriale, in una missione civile o militare); oppure indicare una strategia di ragionamento o di azione come probabilmente adatta a una certa situazione. Anche nel ruolo di assistente di più basso livello, un s.e. può rendersi molto utile se è in grado di automatizzare una fase, nello svolgimento di un compito, che richieda non solo competenza ma anche tempo e fatica: per es. la preelaborazione di grandi quantità di dati grezzi in un sistema di monitoraggio o in uno di analisi finanziaria.
È caratteristico dei s.e. imitare l'esperto umano non solo nelle prestazioni ma anche nel modo di eseguire inferenze: la maggior parte di essi fa infatti uso del cosiddetto ''ragionamento di superficie'', basato sull'impiego di un gran numero di strategie o regole empiriche, dette euristiche, che legano direttamente i fatti noti con quelli da inferire, senza una vera comprensione del tipo di legame esistente. È nella natura stessa delle euristiche il fatto che non si può dimostrare che siano corrette, né esse danno sempre nella pratica il risultato migliore; tuttavia consentono agli esperti di prendere decisioni quando non sono disponibili criteri più ''forti''.
Per es., nel caso di un s.e. diagnostico, regole empiriche potrebbero associare un sintomo di malfunzionamento di un apparato elettronico con i tipi di guasto che tipicamente lo producono. Invece un sistema basato sul ''ragionamento profondo'', allo scopo di formulare ipotesi sul guasto, farebbe ricorso alla conoscenza della struttura dell'apparato e della funzione svolta in esso dai diversi componenti e a modelli di funzionamento di questi espressi in termini dei principi teorici di base.
Un'altra proprietà caratteristica dei s.e., che li accomuna agli esperti umani, è la loro capacità di giustificare le loro conclusioni, di spiegare in che modo ragionano. Questa è una proprietà molto importante, specie in alcuni domini professionali, come quello medico o quello della gestione di emergenze, dove altrimenti chi si assume la responsabilità delle decisioni difficilmente darebbe retta ai suggerimenti di una macchina. I tipi più comuni di spiegazione sono quelli associati agli avverbi interrogativi ''come'' e ''perché''; il primo tipo di spiegazione è di solito retrospettivo, riguarda cioè come è stata raggiunta una certa conclusione; l'altro è di tipo finalistico, riguarda cioè che scopo si prefigge il s.e. nel porre una certa domanda.
La maggior parte dei vantaggi che i s.e. offrono, in assoluto e in confronto con programmi più tradizionali, è legata alla presenza della base di conoscenza, che immagazzina la competenza e l'esperienza di esperti riconosciuti come tali nel loro campo d'interesse. Essi forniscono competenza poco diffusa e costosa da riprodurre, in tempi e luoghi in cui l'esperto non è disponibile; assistono principianti o praticanti della disciplina di esperienza media, così da portarli a prestazioni di livello superiore; affrontano, con competenza da esperto, situazioni che richiedono l'analisi di una grande mole di dati, per cui l'esperto non ha tempo; preservano la conoscenza quando l'esperto non è più disponibile, o è a livelli ridotti di prestazioni.
Tipologie dei sistemi esperti. - Nella sezione precedente abbiamo visto che è possibile distinguere i s.e. a seconda del ruolo che essi assumono nei confronti del mondo circostante, dell'utente in particolare. Altri criteri di classificazione sono l'area applicativa e il tipo di problema, all'interno di essa, che il s.e. affronta. Il numero dei domini applicativi in cui la tecnologia dei s.e. è stata applicata è molto ampio e cresce continuamente; per darne un'idea citiamo: diagnosi medica, manutenzione di apparati, scelta di strumenti e modalità di lavorazione industriale, configurazione di sistemi, interpretazione di segnali, pianificazione, programmazione (scheduling) di attività, progettazione elettronica, addestramento, aiuto alle decisioni in campo finanziario, progettazione di esperimenti chimici e biologici.
Si distinguono alcune categorie principali di s.e., legate al tipo di problema affrontato e alle sue caratteristiche. La principale distinzione che è possibile fare è tra i s.e. orientati all'analisi, cioè essenzialmente all'interpretazione di dati, e quelli orientati alla sintesi, cioè al raggiungimento di una configurazione che soddisfi un obiettivo.
La classe dei problemi di analisi include le seguenti sottoclassi:
a) interpretazione: analisi dei dati provenienti dall'osservazione, con individuazione di un tipo di situazione che renda conto di essi (per es., presenza di un tipo di minerale, di germe, ecc.);
b) riconoscimento: è un'interpretazione mirata a riconoscere un oggetto specifico appartenente a un insieme noto (per es. una faccia o un aeroplano nemico);
c) diagnosi: è una forma d'interpretazione a livello un po' più astratto; si tratta di riportare le manifestazioni osservabili (sintomi) di un funzionamento anomalo a una o più cause che ne possono render conto. Possiamo avere diagnosi di malattie, diagnosi di dispositivi o apparati, diagnosi dello stato di salute di aziende basate sull'analisi di dati finanziari, diagnosi degli errori fatti da uno studente.
I problemi di analisi, e quelli di diagnosi in particolare, sono di solito affrontati mediante un processo di generazione di ipotesi con successiva verifica delle ipotesi stesse. Le maggiori difficoltà provengono in genere dalla compresenza di più cause di una stessa malattia o malfunzionamento. La tendenza più recente in questo campo integra l'approccio empirico tradizionale dei s.e. con il ricorso parziale alla conoscenza ''profonda'' del dominio in oggetto.
La classe dei problemi di sintesi include le seguenti sottoclassi:
a) pianificazione: consiste nel costruire delle combinazioni di azioni in grado d'indurre la trasformazione desiderata su di un sistema; casi particolarmente impegnativi sono la sintesi di programmi per calcolatore, la generazione di frasi e testi;
b) configurazione e progetto: consiste nell'individuare combinazioni di oggetti che soddisfino certi vincoli; esempi sono la sintesi di composti chimici, il progetto digitale, la configurazione di sistemi modulari.
Sui problemi generali di pianificazione esiste una vastissima letteratura nel campo dell'intelligenza artificiale. Nell'ambito dei s.e. si privilegiano approcci euristici dipendenti dal dominio applicativo.
Tipi di problemi compositi sono, per es., i seguenti:
a) riparazione: consiste nell'eseguire un piano per porre rimedio a un malfunzionamento, dopo averlo diagnosticato;
b) istruzione: consiste nel pianificare l'alternanza di fasi di diagnosi (delle competenze, delle lacune, delle conoscenze o abitudini erronee) con fasi di pianificazione (dei rimedi) e fasi di progetto (di situazioni favorevoli all'acquisizione di nuove competenze).
Struttura dei sistemi esperti. - I componenti caratteristici di un s.e. sono la base di conoscenza e il motore inferenziale; un'architettura completa comprende anche l'interfaccia di utente, la memoria di lavoro e il sistema di spiegazione.
La base di conoscenza è specifica di un particolare dominio di problema. Essa incorpora la conoscenza dell'esperto ed è tipicamente organizzata in fatti e regole. Spesso è rappresentata a parte una qualche ''ontologia'' relativa al dominio del problema, comprendente la descrizione delle classi di oggetti considerate, spesso ordinate in gerarchie di generalizzazione-specializzazione, e delle relazioni tipiche che sussistono tra gli oggetti. Tale ontologia fornisce il supporto terminologico alla base di conoscenza: fatti e regole costituiscono asserzioni i cui termini denotano esemplari specifici o generici di quelle classi.
La memoria di lavoro, detta anche memoria ''a breve termine'' in contrapposizione alla base di conoscenza, considerata come una memoria a lungo termine, rappresenta ''lo stato del mondo'' corrente, cioè l'insieme dei fatti noti in partenza e di quelli inferiti, cioè di quelli derivati mediante deduzioni o ipotizzati nel tentativo di ricostruire un quadro coerente nel quale ragionevolmente si collochino i fatti noti o lo scopo da perseguire. A ogni passo di lavoro del motore inferenziale la memoria di lavoro si arricchisce di nuovi fatti, ma altri possono venir cancellati in conseguenza del riconoscimento di elementi contraddittori.
Il motore inferenziale è il modulo che interpreta la conoscenza contenuta nella base di conoscenza per produrre una soluzione al problema. Esso incorpora i meccanismi d'inferenza del s.e.; suo compito tipico è concatenare le regole, cioè applicarle una dopo l'altra ai fatti di volta in volta contenuti nella memoria di lavoro. Dato che in ogni stato più regole possono essere applicabili in alternativa, compito del motore inferenziale è di: a) individuare tale insieme di regole; b) scegliere una regola in esso; c) applicare la regola scelta e aggiornare di conseguenza il contenuto della memoria di lavoro. Tale ciclo si ripete fino a che il problema non sia risolto o, al contrario, fino a che nessuna regola sia più applicabile.
In architetture di s.e. più complesse la memoria di lavoro può contenere, oltre ai fatti nel dominio del problema, annotazioni a uso del motore inferenziale, per es. un'''agenda'' delle regole ancora attivabili o delle ipotesi da verificare. Questo si collega a quello che viene chiamato ''il problema del controllo'': con quale metodo determinare quale conoscenza (regola) è pertinente in una certa situazione; come guidare la sequenza di passi inferenziali, di trasformazioni dello stato, senza ricorrere a programmi espliciti? Alcuni criteri generali per scegliere una regola quando più di una è applicabile sono quello di ordinare a priori le regole e quello di eseguire di preferenza regole più specifiche, cioè riferite a classi di oggetti più particolari. Un altro approccio è quello di aggiungere alla base di conoscenza le cosiddette meta-regole; queste sono regole che non operano sul dominio del problema, ma che consentono al s.e. stesso di focalizzare la ricerca della soluzione, preferendo o escludendo sottoinsiemi di regole in determinate fasi. L'uso delle meta-regole può migliorare significativamente l'efficienza di un s.e., dato che questo in genere dipende fortemente dal numero di regole contenuto nella base di conoscenza; ma i maggiori vantaggi risiedono probabilmente nell'aiuto che viene dato alla progettazione del s.e. mediante strutturazione della base di conoscenza in livelli gerarchici, in analogia con quanto avviene nella progettazione di sistemi software più tradizionali.
Il formalismo di rappresentazione e di elaborazione della conoscenza più diffuso nei s.e. è quello delle ''regole di produzione''; i sistemi formali di calcolo basati su di esse sono detti sistemi di produzione. Una regola di produzione assume la seguente forma: se 4 − allora 4.
Merita di essere sottolineato che l'implicazione logica è solo uno dei casi che può essere modellato da una regola di produzione; in un s.e. di analisi questa può specificare l'aggiunta alla memoria di lavoro di una nuova ipotesi diagnostica da verificare; in un s.e. di sintesi l'aggiunta di un componente o di un vincolo al piano o al sistema che si sta configurando; una regola di produzione può anche rappresentare una meta-regola. Non si deve neanche confondere una regola di produzione con la tipica istruzione condizionale if-then (se ... allora) dei linguaggi di programmazione: mentre un programma tradizionale esegue la sequenza di passi specificata dal programmatore, in un s.e. basato su regole di produzione l'attività è controllata tramite pattern-matching dal contenuto della memoria di lavoro.
Alcune caratteristiche riconosciute di un sistema di produzione ''puro'', cioè essenzialmente di uno che non fa uso di meta-regole, sono le seguenti: le regole di produzione forniscono una codifica uniforme della conoscenza; le produzioni stesse entrano a far parte del processo di risoluzione del problema; ogni produzione è indipendente dalle altre: non esiste nulla che predetermini un qualche ordine nella loro applicazione, ma la sequenza effettiva è determinata dai dati e dalla strategia del particolare motore inferenziale usato; le produzioni appaiono un modo ''naturale'' di esprimere la conoscenza. La plausibilità dei sistemi di produzione da un punto di vista psicologico è stata sostenuta da ricercatori come A. Newell, H. Simon e D. Piaget. Il loro interesse come modello teorico di calcolo era stato già mostrato da E. Post.
Quando in un s.e. la conoscenza è rappresentata in forma di regole, a seconda della strategia d'interpretazione di queste il motore inferenziale può funzionare come un interprete ''in avanti'' (guidato dalla parte sinistra) o come un interprete ''all'indietro'' (guidato dalla parte destra). Il primo, che è appunto quello tipico dei sistemi di produzione, seleziona a ogni passo una regola la cui parte sinistra è soddisfatta dal contenuto della memoria di lavoro, vale a dire dai fatti noti, ed esegue l'azione coincidente con la parte destra: questa può modificare la memoria di lavoro al di là dell'aggiunta di fatti che siano conseguenza logica di quelli già presenti. Nel caso di concatenazione in avanti, si parla anche di strategia ''guidata dai dati''. La concatenazione all'indietro invece realizza una ''strategia guidata dal goal'': quest'ultimo può corrispondere al risultato finale da raggiungere in un problema di sintesi, o a un'ipotesi di lavoro da verificare in un problema di diagnosi. Dato quindi un goal, l'interprete ''all'indietro'' esamina le regole fino a quando non ne trova una la cui parte destra corrisponda a esso; le condizioni contenute nella parte sinistra vengono allora considerate dei sotto-goal da soddisfare (o verificare) ripetendo il ciclo individuazione-scelta-applicazione.
Una proprietà caratteristica dei s.e. è la loro capacità di spiegare come operano. Tipicamente un s.e., per mezzo di un suo componente, il sistema di spiegazione, è in grado di spiegare perché è arrivato a certe conclusioni o perché ha bisogno di certa informazione. L'approccio che esso generalmente usa nel fornire queste spiegazioni è quello di fare riferimento alle regole che ha impiegato per risolvere il problema, o alle regole che potrebbe impiegare se disponesse di certa informazione aggiuntiva. In questo caso semplice, in cui si considera accettabile fornire come spiegazione una descrizione, o resoconto, dei passi stessi di ragionamento, il sistema di spiegazione si limita a tener traccia della sequenza in cui le regole vengono concatenate e a presentare tale traccia all'utente con parole, parafrasando il contenuto delle regole, o con schemi grafici. Nel caso che il s.e. contenga ''meta-conoscenza'', la spiegazione in termini di meta-regole, formulata cioè in forma più generale, può risultare più comprensibile e interessante. Tuttavia l'utente spesso desidererebbe avere spiegazione in termini non di regole empiriche, ma di relazioni causali; ciò è possibile solo quando il sistema incorpora anche conoscenza ''profonda''.
Alcuni esempi di sistemi esperti operativi. - Diamo qui di seguito un elenco di alcuni dei s.e. che hanno ottenuto particolare successo.
mycin: probabilmente il più noto tra i s.e. della prima generazione, è un programma diagnostico in grado di riconoscere malattie infettive del sangue. Sviluppato a Stanford (USA), con la collaborazione di specialisti, per essere usato dal medico generico, si è rivelato utile anche a uso didattico. Esso pone all'utente una serie iniziale di domande riguardanti l'anamnesi, i sintomi, i dati forniti dalle analisi; durante il corso del ragionamento a volte pone altre domande o richiede nuove analisi; infine emette la diagnosi e suggerisce la terapia. Di queste mycin fornisce anche il grado di attendibilità, ottenuto componendo opportunamente il ''fattore di certezza'' delle regole d'inferenza impiegate, cioè il livello di fiducia indicato per esse dagli esperti che le hanno formulate. mycin si basa su regole di produzione. Esso raggruppa le regole secondo obiettivi (acquisire informazioni sul paziente, individuare gli organismi patogeni, selezionare farmaci utili, ecc.) e fa uso di meta-regole per stabilire di volta in volta che tipo di obiettivo perseguire. È in grado di fornire una spiegazione delle conclusioni raggiunte e di motivare le sue richieste.
banker: sviluppato negli anni Ottanta presso la società francese SIG, è un s.e. che valuta la richiesta di un credito fatta da una società a una banca. La conclusione, estremamente semplice, è la stima dell'affidabilità della società, espressa in una scala a soli quattro valori: alta, media, ai limiti, insufficiente. banker si rivolge al personale di istituti finanziari in diretto contatto con il cliente. Tra i vantaggi riconosciuti sono: il miglioramento medio della qualità delle decisioni; la possibilità di decentrare le decisioni, distribuendo in periferia la competenza sulla valutazione del credito; un approccio consistente in tutta l'organizzazione, basato su criteri oggettivi seppur di tipo euristico. banker opera in un dominio di problema in cui le decisioni vanno prese mediante un compromesso tra diversi criteri: massimizzare i profitti, minimizzare il rischio d'insolvenza, fornire un servizio utile alla collettività. Come nel caso di mycin, le regole della base di conoscenza, e le possibili conclusioni, sono raggruppate in corrispondenza ai sotto-obiettivi della valutazione; per la società: livello adeguato del patrimonio, della liquidità e dei profitti; per la banca: accettabilità della quota di rischio. banker è stato inizialmente sviluppato usando emycin, un ''guscio'' di s.e. ottenuto da mycin eliminando le componenti dipendenti dallo specifico dominio applicativo, cioè essenzialmente la base di conoscenza.
prospector: sviluppato presso l'istituto di ricerca SRI per un ente governativo statunitense, assiste i geologi nella ricerca di metalli e altri minerali. Esso utilizza dati geologici e morfologici e l'analisi di campioni ricavati da prospezioni in un sito, allo scopo di valutare la probabilità che esso contenga depositi di un certo tipo. prospector fornisce un tipico esempio di ragionamento ''plausibile'' fondato sull'elaborazione dell'informazione probabilistica associata ai fatti e alle regole. Viene usato un approccio formale fondato sul teorema di Bayes per aggiornare, in base all'evidenza ottenuta dall'utente, la probabilità di un'ipotesi formulata a partire dalle probabilità a priori associate alle regole. prospector è un sistema utilizzato con successo, anche se non è un prodotto diffuso commercialmente. In una delle sue migliori performances, esso ha scoperto un deposito di molibdeno, il cui valore complessivo probabilmente supera 100 milioni di dollari.
xcon: nato con il nome di R1 da un'idea di J. McDermott della Carnegie-Mellon University, è uno dei primi s.e. per cui è stato vantato un significativo successo economico. Il suo obiettivo era di automatizzare la configurazione dei calcolatori della serie Vax della compagnia Digital (DEC): si tenga conto che non esiste una configurazione standard e che raramente un ordine è identico a un altro. I dati d'ingresso sono estratti dall'ordine stilato dal venditore sulla base della richiesta del cliente; esso contiene un eleneco di componenti e di requisiti di configurazione. Si tratta di un problema di configurazione ben strutturato; tuttavia non è in pratica risolubile con metodi algoritmici a causa della sua complessità combinatoria. Per costruire la base di conoscenza xcon sono state riunite a collaborare persone esperte con diverse competenze, provenienti dai settori di progetto, produzione e vendita. Ovviamente il sistema, pur efficace, non rispecchia il modo di operare di alcun singolo esperto.
hearsay: sviluppato presso la Carnegie-Mellon University intorno al 1975, è un sistema di analisi del linguaggio parlato, in grado di comprendere il discorso ''connesso'' basato su un vocabolario di un migliaio di parole. Non si tratta certamente di un dominio ristretto affrontabile con tecniche settoriali; in esso si devono applicare in modo sinergico competenze a diverso livello: acustico-fonetico, morfologico, sintattico, semantico, pragmatico, ecc. Non è quindi un caso se hearsay è stato il primo s.e. a usare l'architettura blackboard (a lavagna). Questa simula la risoluzione di un problema da parte di un gruppo di esperti cooperanti, dotati di competenze differenziate, che comunicano attraverso la lavagna: ciascuno cerca su di essa i dati e gli spunti su cui operare, e vi annota risultati parziali, ipotesi di lavoro, richieste di collaborazione. L'architettura blackboard può essere vista come un modo di suddividere la base di conoscenza in sottosistemi che interagiscono in modo lasco, ovviando così alla crescita combinatoria delle linee di ragionamento possibili al crescere del numero di regole in una base di conoscenza indifferenziata.
compass: sviluppato verso la metà degli anni Ottanta presso i laboratori della GTE Corporation, in collaborazione con una delle compagnie telefoniche del gruppo, ha per dominio applicativo la manutenzione dei sistemi di commutazione. Analizza i rapporti di problemi emessi da una centralina di commutazione elettromeccanica quando, grazie alla sua capacità di auto-test, essa si accorge che non è in grado di completare la chiamata, cioè di stabilire un collegamento elettrico tra le linee telefoniche delle due parti. Il suo compito è d'individuare quale componente è guasto o lungo quale parte del cammino esso si trova, così da facilitare grandemente il lavoro di manutenzione e ridurre il tempo necessario a eliminare il problema. compass è istallato e in uso in una cinquantina di centraline di commutazione, che servono circa mezzo milione di utenti; fa uso di una Lisp-Machine e di KEE, un noto ''guscio'' per lo sviluppo di s.e., cioè dello stesso ambiente impiegato per il suo sviluppo.
Sviluppo dei sistemi esperti e attuali tendenze. - Lo sviluppo di un s.e. è compito del cosiddetto ''ingegnere della conoscenza'': in realtà tale termine è stato originariamente usato per designare il responsabile della fase più critica, l'acquisizione della conoscenza ''esperta''. Lo sviluppo comporta una sequenza di fasi che includono: la scelta del dominio applicativo; l'individuazione degli obiettivi specifici; la scelta di un ambiente di supporto allo sviluppo; la scelta dell'esperto e l'acquisizione della conoscenza; spesso, lo sviluppo rapido di un prototipo avente per scopo di dimostrare al potenziale utente, alla direzione aziendale, allo stesso ingegnere della conoscenza la ''fattibilità'' del s.e., la sua convenienza, i suoi limiti, le principali funzioni e modalità operative; lo sviluppo e il collaudo di una versione estesa del sistema; la validazione del s. esperto.
La parte essenziale di un s.e., ciò che gli conferisce potenza e lo distingue da un programma convenzionale, è la conoscenza. L'acquisizione della conoscenza ha quidi un'importanza critica nell'assicurare il successo a un s.e. e al suo sviluppo. Essa viene effettuata mediante l'interazione tra l'ingegnere della conoscenza e uno o più esperti del dominio applicativo. Si tratta di un processo lungo e difficile, anche perché di solito l'esperto non si rende conto di quale e quanta conoscenza egli utilizzi per esprimere valutazioni che considera ovvie. Spesso è necessario simulare dei casi, degli esempi di problema, osservare come l'esperto si comporta in pratica di fronte a essi e sollecitarlo ripetutamente a motivare il suo comportamento esplicitando le assunzioni di base, il modo di ragionare e gli specifici passi del suo ragionamento. La conoscenza è una risorsa scarsa: raffinarla e riprodurla è un'attività socialmente ed economicamente molto importante. Lo sviluppo dei s.e. comporta la documentazione in forma esplicita e operativa della conoscenza dell'esperto, che vi si può poi vedere come in uno specchio; egli stesso, o altri, può ispezionare tale conoscenza, collaudarla e migliorarla. È questo un potenziale vantaggio collaterale dei s.e., in riferimento al quale qualcuno ha auspicato il nascere di tante ''raffinerie della conoscenza''.
Nella misura in cui un s.e. imita il comportamento di un esperto umano, esso ha delle limitazioni intrinseche, dato che nessun esperto è in grado di risolvere tutti i problemi (ma, come abbiamo visto sopra, un s.e. può anche offrire dei vantaggi rispetto all'esperto). A parte questa osservazione ovvia, bisogna dire che in genere si è riusciti a sviluppare s.e. solo per domini applicativi dai confini piuttosto ristretti. Una caratteristica dei s.e. attuali è la cosiddetta ''fragilità'': essi si comportano in modo molto scadente in vicinanza di detti confini; spesso hanno anche difficoltà a riconoscere se un problema ricade o meno nel loro campo di competenza. Questo, oltre alla difficoltà d'incorporare in un s.e. la meta-conoscenza, è in parte riconducibile alla limitata conoscenza ''enciclopedica'' da essi posseduta; quest'ultima, che comprende non solo un vasto repertorio di concetti generali e di relazioni tra di essi, ma anche la conoscenza di oggetti e fatti specifici, nell'uomo sembra essere alla base della capacità di mostrare ''buon senso'' anche di fronte a situazioni inedite.
Una tendenza corrente nello sviluppo dei s.e. è quella d'includere in essi in misura maggiore che in passato conoscenza generale e teorica, che il sistema può usare come ultima risorsa quando si trova di fronte problemi non risolvibili con la sola conoscenza superficiale. A volte si parla di ''s.e. di seconda generazione'' per riferirsi a sistemi in grado d'impiegare sia la conoscenza superficiale, di origine empirica, sia la conoscenza profonda, basata su principi teorici. In tal caso tutta l'architettura del s.e. risulta fortemente modificata. Quanto agli aspetti applicativi, l'ultima fase nella storia dei s.e. è accompagnata dal riconoscimento che raramente essi sono validi industrialmente come sistemi a sé stanti, ma che, per il miglior sfruttamento della tecnologia dei s.e., e delle tecnologie ''basate sulla conoscenza'' più in generale, queste devono permeare e non monopolizzare lo sviluppo dei sistemi applicativi: questi, per le loro dimensioni e complessità, requisiti prestazionali e vincoli di altra natura, devono ricorrere anche ad altri approcci di sviluppo, più o meno tradizionali, nell'ambito dell'informatica e della pratica ingegneristica.
Bibl.: A. Barr, P.R. Cohen, E.A. Feigenbaum e altri, The handbook of artificial intelligence, 4 voll., Los Altos (California) 1981-89; F. Hayes-Roth, D. Waterman, D. Lenat, Building expert systems, Reading (Mass.) 1983; L. Brownston e altri, Programming expert systems in OPS5. An introduction to rule-based programming, ivi 1985; P. Harmon, D. King, Expert systems, artificial intelligence in business, New York 1985; T.M. Lazzari, F.L. Ricci, I sistemi esperti. Ricerca scientifica ed applicazioni, Roma 1985; CRI (Computer Resources International, Copenaghen), The CRI directory of expert systems, Oxford 1986; M.A. Fischler, O. Firschein, Intelligence: the eye, the brain and the computer, Reading (Mass.) 1987; ESA (European Space Agency), Proceedings of the workshop on the AI applications in space projects, ESA/Estec, novembre 1988; T. Johnson e altri, Expert systems, markets and suppliers, Londra 1988; P. Mottura, Problem-solving and decision-making in banks and the opportunities of knowledge technology, Milano 1988; AA.VV., Sistemi esperti in campo finanziario, in Sistemi Intelligenti, 3/89, dicembre 1989; M. Klein, L.B. Methlie, Experts systems. A decision support approach with applications in management and finance, Wokingham 1990; D.S. Prerau, Developing and managing expert systems: proven techniques for business and industry, Reading (Mass.) 1990.