# Sistema esperto

Un sistema esperto è un programma che cerca di riprodurre le prestazioni di una o più persone esperte in un determinato campo di attività, ed è un'applicazione o una branca dell'intelligenza artificiale.

## Generalità

I programmi utilizzati dai sistemi esperti sono in grado di porre in atto procedure di inferenza adeguate alla risoluzione di problemi particolarmente complessi, a cui potrebbe, se posto in una dimensione umana, porre rimedio solo un esperto del settore disciplinare in cui rientra la questione da risolvere. Ciò implica che tale sistema possa avvalersi in modo risoluto e autorevole delle istanze inferenziali che soggiacciono al corretto funzionamento del programma, cosicché sia capace di superare le incertezze e le difficoltà su cui volge la propria attività.
I sistemi esperti si differenziano dunque da altri programmi simili, in quanto, facendo riferimento a tecnologie elaborate in funzione dell'intelligenza artificiale, sono sempre in grado di esibire i passaggi logici che soggiacciono alle loro decisioni: proposito che, ad esempio, non è attuabile da parte della mente umana.
Il sistema esperto si compone principalmente di tre sezioni:
* una base di conoscenza, in cui sono accumulate le regole deduttive e i dettami procedurali di cui il sistema si serve nel suo operato;
* un motore inferenziale, in cui il programma si occupa di applicare in concreto le nozioni contenute nella base dati;
* un'interfaccia utente, che permette l’interazione fra il soggetto umano e il programma che deve dare risposta ai suoi problemi.
Queste informazioni sono piuttosto generiche, ed estremamente flessibili per ciò che concerne la designazione di un programma con una tale definizione. Non esistono infatti sistemi capaci per davvero di soddisfare nella sua interezza il tipo di conoscenza che dovrebbe caratterizzare un sistema di tale fatta. Difatti, nella maggior parte dei programmi le componenti che presiedono alle procedure di inferenza non riescono ad ottenere il rigore connaturato ad un algoritmo, in quanto nelle situazioni altamente complicate sarebbe troppo dispendioso analizzare ogni possibilità; si ricorre così allo stratagemma dell'euristica, che, tramite ragionamenti approssimativi (fuzzy logic), sacrifica la sicurezza dell'algoritmo per giungere a risultati altamente probabili, ma comunque fallibili.

## Classificazione

I sistemi esperti si dividono in due categorie principali.

### Sistemi esperti basati su regole

I sistemi esperti basati su regole sono dei programmi composti da regole nella forma IF condizione THEN azione (se condizione, allora azione). Dati una serie di fatti, i sistemi esperti, grazie alle regole di cui sono composti, riescono a dedurre nuovi fatti.
Per esempio, supponiamo di avere un problema di salute, forniamo al sistema esperto i seguenti fatti:
* ho mal di testa
* sono raffreddato
* la temperatura corporea è di 38 °C
il sistema esperto assume i fatti e sceglie una regola così formata:
    IF ((mal di testa) AND (raffreddore) AND (temperatura >= 38)) THEN (Il suo problema è l'INFLUENZA).
Esempi di sistemi a regole sono Jess e CLIPS.

### Sistemi esperti basati su alberi

Un sistema esperto basato su alberi, dato un insieme di dati ed alcune deduzioni, creerebbe un albero che classificherebbe i vari dati. Nuovi dati verrebbero analizzati dall'albero e il nodo di arrivo rappresenterebbe la deduzione.
È da notare che un sistema esperto non è "intelligente" nel senso comune della parola, ossia in modo creativo. Le deduzioni di un sistema esperto non possono uscire dall'insieme di nozioni immesse inizialmente e dalle loro conseguenze. Ciò che li rende utili è che, come i calcolatori elettronici, possono maneggiare una gran quantità di dati molto velocemente e tenere quindi conto di una miriade di regole e dettagli che un esperto umano può ignorare, tralasciare o dimenticare.
| Categoria | Tipo di applicazione | Esempi |
| Interpretazione | Dedurre descrizioni di situazioni a partire da dati descrittivi | Hearsay (Speech Recognition), PROSPECTOR |
| Predizione | Desumere le probabili conseguenze di certe situazioni | Pretirm Birth Risk Assessment |
| Diagnosi | Dedurre malfunzionamenti dagli osservabili di un sistema | CADUCEUS, MYCIN, PUFF, Mistral, Eydenet, Kaleidos |
| Design | Configurare oggetti a partire da date condizioni e vincoli | Dendral, Mortgage Loan Advisor, R1 (Dec Vax Configuration) |
| Planning | Pianificare azioni | Mission Planning for Autonomous Underwater Vehicle |
| Monitoraggio | Confrontare osservazioni per pianificare azioni in sistemi vulnerabili | REACTOR |
| Debugging | Generare soluzioni incrementali per problemi complessi | SAINT, MATHLAB, MACSYMA |
| Ripristino | Implementare un piano per mettere in atto date prescrizioni | Toxic Spill Crisis Management |
| Istruzione | Valutazione, diagnosi e intervento su specifici comportamenti di studenti | SMH.PAL, Intelligent Clinical Training, STEAMER |
| Controllo | Interpretazione, predizione e riparazione in relazione a sistemi oggetto di monitoraggio | Real Time Process Control, Space Shuttle Mission Control |