delete

Contattaci

back to resources

AI, sistemi esperti e rappresentazione della conoscenza

AI
Sistemi esperti
Rappresentazione della conoscenza
data
1/8/2021
data progetto
autore
Melia, Campomaggiore, Dellavecchia
cliente
partnership
url
No items found.

Cos’è un sistema esperto

Un sistema esperto (o basato sulla conoscenza) è un software in grado di riprodurre in modo artificiale le prestazioni di una o più persone “esperte” in un determinato campo di attività e trova la sua applicazione nella branca dell’intelligenza artificiale.

Una delle particolarità di un sistema esperto è quella di essere in grado di mettere in atto autonomamente delle procedure di inferenza, un processo induttivo o deduttivo che permette di giungere a una conclusione a seguito dell’analisi di una serie di fatti o circostanze adeguate alla risoluzione di problemi particolarmente complessi.

Funzioni di un sistema esperto

Un tipico sistema esperto ha due funzioni principali: quella di trarre delle conclusioni e quindi compiere o suggerire delle scelte (COSA) e quella di spiegare in che modo, con quale ragionamento è pervenuto a quelle conclusioni (CONTROLLO).

Un sistema esperto è composto da:

  • una base di conoscenza
  • una memoria di lavoro
  • un motore inferenziale
  • un’interfaccia utente

Nella base di conoscenza sono contenute le regole deduttive e i dettami procedurali di cui il sistema si serve nel suo operato. Il motore inferenziale è necessario per indirizzare il programma a interpretare, classificare e applicare la base di conoscenza e le relative regole per ogni singolo aspetto o scenario dello specifico campo disciplinare. La memoria di lavoro, o memoria a breve termine, contiene i dati e le conclusioni raggiunte dal sistema. Infine, l’interfaccia utente 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. Il programma non è un insieme di istruzioni immutabili che rappresentano la soluzione del problema, ma un ambiente in cui rappresentare, utilizzare e modificare una base di conoscenza. 

Caratteristico dei sistemi esperti è imitare l’esperto umano non solo nelle prestazioni ma anche nel modo di eseguire inferenze. La maggior parte di essi fa uso del cosiddetto ”ragionamento di superficie” o fuzzy logic, 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.

Subentra lo stratagemma dell’euristica qualora 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à.

È nella natura stessa delle euristiche il fatto che non si possa dimostrare che siano corrette in quanto ciò sacrificherebbe risultati altamente probabili, ma comunque fallibili, non dando sempre nella pratica il risultato migliore; tuttavia consentono agli esperti di prendere decisioni quando non sono disponibili criteri più ”forti”.

Come già detto in precedenza, per elaborare le proprie conclusioni, i sistemi esperti possono fare affidamento su una base di conoscenza, la conoscenza viene immagazzinata nella memoria a lungo termine del sistema ed è organizzata e rappresentata sotto forma di regole, ad esempio definite come strutture “if-then” (“se-allora”), che comprendono una premessa o condizione (if) e una conclusione o azione (then), e descrivono la risoluzione di un dato problema.

Un sistema esperto basato su alberi, invece, parte da un insieme di dati ed alcune deduzioni per poi creare un albero di classificazione attraverso il quale i nuovi dati verranno analizzati portando alla deduzione rappresentata dal nodo di arrivo.

Ora ci focalizzeremo sui sistemi esperti basati sulle regole. È quindi doverosa un’introduzione alla logica matematica. 

Sistemi esperti e logica matematica

La logica ha lo scopo di formalizzare i meccanismi di ragionamento. Faremo un breve accenno sulle proposizioni, cioè espressioni che rappresentano affermazioni che nell’ambito di questo articolo potranno essere solo o VERE o FALSE. Per quanto ciò possa sembrare scontato, esistono in verità settori in cui si può attribuire a ciascuna proposizione un grado di verità diverso da 0 e 1 e compreso tra di loro (ovvero che usano logica sfumata). 

Ad ogni proposizione elementare viene associata un variabile proposizionale. Per esempio:

  • P1: Se fa caldo ed è umido, allora pioverà
  • P2: Se è umido ed è estate, allora fa caldo 
  • P3: Adesso è umido
  • P4: Adesso è estate

Se chiamo A = FA CALDO, B = È UMIDO, C = È ESTATE, D = PIOVERÀ. 

La rappresentazione in formule diventa

  • F1: A∧B →D, 
  • F2: B∧C→A
  • F3: B
  • F4: C

Si può voler dimostrare che da questi 4 fatti segue logicamente P5: Pioverà, ovvero F5: D. Di ciò si può occupare un sistema esperto.

Come vediamo una formula è composta da formule atomiche (o atomi) (ovvero A, B, …) e connettivi logici. 

I connettivi logici più comunemente usati sono: 

  • ¬(NOT: negazione)
  • ∨(OR: disgiunzione)
  • ∧(AND: congiunzione)
  • →(IMPLIES o IF…THEN…: implicazione)
  • ↔(IF AND ONLY IF: bi-implicazione)

Una formula è ben formata (FBF) se e solo se essa è ottenibile applicando le seguenti regole:

  • un atomo è una FBF
  • se F è una FBF, allora (¬F) è una FBF
  • se F e G sono FBF, allora (F∨G), (F∧G), (F→G), (F↔G) sono FBF

Semplificando  in questa trattazione una FBF è una formula a cui è possibile attribuire un valore di verità, vero o falso.

Le regole viste esprimono la SINTASSI (vincoli strutturali) delle formule del calcolo proposizionale. Stabilendo un ordinamento tra i connettivi è possibile eliminare alcune parentesi. L’ordine che verrà adottato è il seguente: 

  1. ¬ 
  2. ∧, ∨ 
  3. →, ↔

Così, La formula ((((A∨B)∧C)→D)↔(((¬D)→A)∨E) può essere riscritta (eliminando le parentesi esterne) come ((A∨B)∧C→D)↔(¬D→A)∨E.

La SEMANTICA della logica proposizionale richiede l’introduzione dei valori di verità. L’insieme dei valori di verità (che indicheremo con B) include VERO e FALSO, rappresentati da B= {T, F}. 

Un’interpretazione I consiste in un mapping tra l’insieme delle formule e B (specificando cioè, per ogni formula, se essa è vera o falsa). 

Come si può ricavare il valore di verità di una formula? 

Per esempio se ci chiediamo se (P ∧Q) ∨R →(P ↔R) ∧ Q possiamo porre

α= (P ∧Q) ∨R

β= (P ↔R) ∧Q 

e quindi chiederci se α →β consultando la seguente classica tavola di verità (intuitivamente, ogni riga di una tabella di verità corrisponde ad una diversa possibile situazione (interpretazione)).

Alcune formule sono vere in tutte le interpretazioni. Esse sono dette formule valide o tautologie. Altre formule sono false in tutte le interpretazioni. Esse sono dette formule inconsistenti o contraddizioni. 

Poiché ogni formula è finita e quindi contiene un numero finito di formule atomiche, è sempre possibile determinare se essa è valida, inconsistente o né l’una né l’altra. La logica proposizionale è quindi decidibile.

Alcune formule valide sono controintuitive (e sono chiamate paradossi). In esse compare il connettivo →.  

Un esempio è ¬P→(P →Q) che è sempre vera. 

Due formule F e G sono equivalenti (scritto F ⇔G) se e solo se esse hanno lo stesso valore di verità in tutte le interpretazioni. 

Il modus ponens (MP) è una semplice e valida regola d’inferenza, che afferma in parole: “Se p implica q è una proposizione vera, e anche la premessa p è vera, allora la conseguenza q è vera”, ovvero (p ∧(p →q)) →q.

Si ribadisce che l’implicazione non ha nulla a che vedere con la causalità. La logica proposizione infatti si occupa solo di “combinazioni” e non di significati di “causa-effetto”.

Non ci addentreremo nella logica dei predicati in quanto, seppur sia uno strumento  più potente e flessibile, è anche molto più complicato e non adatto alle finalità di questo articolo. 

Per poter trattare in modo meccanico, le fbf devono essere poste in forma a clausole. I passi da seguire sono

  1. Eliminazione delle implicazioni
  2. Riduzione del campo dei segni di negazione
  3. Standardizzazione delle variabili
  4. Eliminazione dei quantificatori esistenziali: ogni variabile esistenzialmente quantificata è rimpiazzata con una funzione di Skolem
  5. Conversione in forma prenessa
  6. Trasformazione della matrice in forma normale congiuntiva
  7. Eliminazione dei quantificatori universali
  8. Eliminazione dei segni di congiunzione

Esempio di applicazione

Si applicano in successione alcune operazioni, illustrate mediante il seguente esempio:
( ∀x){P(x) →{( ∀y){P(y) →P(f(x,y))} ∧ ¬ ( ∀y){Q(x,y) →P(y)}}}

1) Eliminazione delle implicazioni

ovvero A → B è sostituito da:

 ¬A ∨ B Pertanto: ( ∀x){P(x) →{( ∀y){P(y) →P(f(x,y))} ∧ ¬ ( ∀y){Q(x,y) →P(y)}}} 

diventa: 

( ∀x){ ¬P(x) ∨{( ∀y){ ¬P(y) ∨P(f(x,y))} ∧ ¬ ( ∀y){ ¬Q(x,y) ∨P(y)}}}

2) Riduzione del campo dei segni di negazione

La negazione applicata ad una sola lettera predicativa. In pratica: 

Intelligenza Artificiale – Problem Solving 2 101

 ¬(A ∧ B) è rimpiazzata da ¬A ∨ ¬ B 

¬(A ∨ B) ” ¬A ∧ ¬ B

¬¬ A ” A

 ¬ ( ∀x)A ” ( ∃x){ ¬A } 

¬ ( ∃x) A ” ( ∀x){ ¬A }

Pertanto: 

(∀x){¬P(x)∨{(∀y){¬P(y)∨P(f(x,y))}∧ ¬(∀y){¬Q(x,y)∨P(y)}}}

diventa: 

(∀x){¬P(x)∨{(∀y){¬P(y)∨P(f(x,y))}∧ (∃y){¬{¬Q(x,y)∨P(y)}}}} 

e poi: 

(∀x){¬P(x)∨{(∀y){¬P(y)∨P(f(x,y))}∧ (∃y){Q(x,y)∧¬P(y)}}} 

3) Standardizzazione delle variabili

Si ribattezzano le variabili quantificate in modo che ogni quantificatore abbia una variabile apparente unica. 

In pratica: 

( ∀x){P(x) → ( ∃x)Q(x)} diventa: ( ∀x){P(x) → ( ∃y)Q(y)}

 Pertanto: 

(∀x){¬P(x)∨{(∀y){¬P(y)∨P(f(x,y))}∧ (∃y){Q(x,y)∧¬P(y)}}} 

diventa: 

(∀x){¬P(x)∨{(∀y){¬P(y)∨P(f(x,y))}∧ (∃w){Q(x,w)∧¬P(w)}}} 

4) Eliminazione dei quantificatori esistenziali

Ogni variabile esistenzialmente quantificata è rimpiazzata con una funzione di Skolem. 

Per esempio supponiamo che la fbf 

( ∀ y ∃x)P(x,y) 

possa essere interpretata come: “per tutti gli y esiste un x tale che x è maggiore di y”. 

NB: x può dipendere da y! 

Allora si cerca una funzione g(y) (detta funzione di Skolem) che manda ogni valore di y nell’x che “esiste”. Quindi la fbf diventa 

( ∀y)P(g(y),y) 

Si osservi ancora.

• ∃z si elimina in: 

{( ∀w)Q(w)} → ( ∀x){( ∀y){( ∃z){P(x,y,z) → ( ∀u)R(x,y,u,z)}}} 

ottenendo: 

{( ∀w)Q(w)} → ( ∀x){( ∀y){P(x,y,g(x,y)) → ( ∀u)R(x,y,u,g(x,y))}}} 

Se il quantificatore esistenziale non si trova nel campo di un quantificatore universale, la funzione di Skolem ha zero argomenti. 

Esempio: 

( ∃x)P(x) è sostituito da P( a ) dove a è una costante che sappiamo “esistere”. 

L’esempio che stiamo seguendo diventa da così: 

( ∀x){ ¬P(x) ∨{( ∀y){ ¬P(y) ∨P(f(x,y))} ∧ ( ∃w){Q(x,w)∧¬P(w)}}}

 a così: 

( ∀x){ ¬P(x) ∨{( ∀y){ ¬P(y) ∨P(f(x,y))} ∧ {Q(x,g(x))∧¬P(g(x))}}} 

dove g(x) è una funzione di Skolem. 

5) Conversione in forma prenessa

Tutti i quantificatori universali (che sono tutti diversi) vengono spostati all’inizio della fbf (forma prenessa). 

L’esempio da: 

(∀x){¬P(x)∨{(∀y){¬P(y)∨P(f(x,y))}∧ {Q(x,g(x))∧¬P(g(x))}}} 

diventa: 

(∀x∀y){¬P(x)∨{{¬P(y)∨P(f(x,y))}∧ {Q(x,g(x))∧¬P(g(x))}}} 

dove: 

(∀x∀y) è detto prefisso e {¬P(x)∨{{¬P(y)∨P(f(x,y))}∧{Q(x,g(x))∧¬P(g(x))}}} è detta matrice Intelligenza 

6) Trasformazione della matrice in forma normale congiuntiva

La matrice viene scritta come congiunzione di un numero finito di disgiunzioni di predicati e/o negazioni di predicati (forma normale congiuntiva). (In parole povere, AND di OR, ovvero prodotti di somme, ovvero, maxterm). 

Esempi di forma normale congiuntiva: 

{P(x) ∨Q(x,y)} ∧{P(w)∨¬R(y)} ∧Q(x,y) P(x) ∨ Q(x,y) P(x) ∧ Q(x,y) ¬R(y) 

In pratica si applica ripetutamente la relazione: 

A ∨ (B ∧ C) ≡ { A ∨ B } ∧ { A ∨ C} 

L’esempio 

(∀x∀y){¬P(x)∨{{¬P(y)∨P(f(x,y))}∧ {Q(x,g(x))∧¬P(g(x))}}} 

diventa: 

(∀x∀y){{¬P(x)∨ ¬P(y)∨P(f(x,y))}∧ {¬P(x)∨Q(x,g(x))}∧ {¬P(x)∨¬P(g(x))}} 

7) Eliminazione dei quantificatori universali

Resta la sola matrice in cui, essendo le variabili legate, sono tutte universalmente quantificate. 

8) Eliminazione dei segni di congiunzione

I segni di congiunzione (cioè ∧; esempio: A ∧ B) sono eliminati dando luogo a due fbf (nell’esempio, A e B). Applicando ripetutamente questo rimpiazzo si ottiene una lista finita di fbf, ognuna delle quali è una disgiunzione ( ∨) di formule atomiche e/o di negazioni di formule atomiche.

Esempio trasformazione in clausola “Tutti i romani che conoscono Marco o odiano Cesare o pensano che tutti quelli che odiano qualcuno sono matti”

fbf corrispondente: ∀x [romano(x) ∧ conosce (x, Marco)] → [odia(x, Cesare) ∨ ( ∀y ( ∃z odia(y, z)) →credematto (x, y))] 


1. eliminazione segni implicazioni: 

∀x ¬[romano(x) ∧ conosce (x, Marco)] ∨ [odia(x, Cesare) ∨ ( ∀y ¬ ( ∃z odia(y, z)) ∨ credematto (x, y))] 


2. riduzione portata negazione: 

∀x [ ¬romano(x) ∨ ¬conosce (x, Marco)] ∨ [odia(x, Cesare) ∨ ( ∀y ∀z ¬odia(y, z) ∨ credematto (x, y))] 


3. Standardizzazione variabili: qui nessuna modifica: ogni quantificatore lega già una variabile differente 


4. Spostamento dei quantificatori: 

∀x ∀y ∀z [eccetera] 


5. Eliminazione quantificatori esistenziali: non ce ne sono


6. Eliminazione prefisso: (resta la matrice) 

[ ¬romano(x) ∨ ¬conosce (x, Marco)] ∨ [odia(x, Cesare) ∨ ¬odia(y, z) ∨ credematto (x, y))] 


7. Trasformazione in congiunzione di disgiunzioni (AND di OR): 

¬romano(x) ∨ ¬conosce (x, Marco) ∨ odia(x, Cesare) ∨ ¬odia(y, z) ∨ credematto (x, y)) (1 sola clausola)

Una clausola di Horn è una disgiunzione di letterali in cui al massimo uno dei letterali è positivo. Esempio: ¬L∨¬B e ¬L∨¬B∨C sono clausole di Horn, ¬L∨B∨C non lo è. Sono importanti perché si possono scrivere come implicazioni la cui premessa è una congiunzione di letterali positivi e la cui conclusione è un singolo letterale positivo. Ad esempio, ¬L∨¬B∨C è equivalente a (L∧B)→C.

Per risolvere i problemi di logica esistono molti modi, useremo il Modus Ponens come esempio.

La risoluzione è un processo iterativo che, ad ogni passo, confronta (risolve) due clausole genitori e permette di inferire una nuova clausola. Per la risoluzione si considerano due clausole che contengono la stessa formula atomica, una volta affermata e una volta negata. La risolvente è ottenuta combinando tutte le formule atomiche delle clausole genitori eccetto quelle che cancella. Se si produce la clausola vuota, si ha una contraddizione. Il tentativo sarà quello di trovare una contraddizione, se esiste. Se non esiste, la procedura può non avere mai termine.

Risoluzione nella logica proposizionale usando il Modus Ponens

Il procedimento è il seguente: 

  1. Trasformare tutte le proposizioni in F in forma a clausole. 
  2. Negare S e trasformare il risultato in forma a clausole. Aggiungerlo all’insieme di clausole ottenute al passo 1).
  3. Ripetere fino a quando viene trovata una contraddizione o non si può più andare avanti i passi seguenti:
  4. Selezionare due clausole. Chiamarle clausole genitori. 
  5. Risolverle insieme. La clausola risultante, chiamata la risolvente, sarà la disgiunzione di tutte le formule atomiche di entrambe le clausole genitori con la seguente eccezione: se vi sono coppie di formule atomiche L e ¬L, tali che una delle clausole genitori contenga L e l’altra contenga ¬L, allora eliminare sia L che ¬L dalla risolvente. 
  6. Se la risolvente è la clausola vuota, allora è stata trovata una contraddizione. In caso contrario, aggiungerla all’insieme di clausole a disposizione della procedura.

Esempio

Siano dati i seguenti assiomi: 

Assiomi: 

p 

(p ∧ q) → r 

(s ∨ t) → q 

t 


Convertiti in forma a clausole: 

p

¬p ∨ ¬q ∨ r

¬s ∨ q 

¬t ∨ q

 t 


Si voglia dimostrare r. 


Dopo aver trasformato gli assiomi in forma a clausola, si introduce nella lista ¬r (già in forma a clausola). 

Poi si selezionano le clausole a 2 a 2 e si risolvono (conviene scegliere clausole che contengono la stessa forma atomica una volta affermata e una volta negata).
 

Nota: la proposizione 2 è vera se sono vere ¬p, ¬q, r 

Al primo passo si assume che ¬r sia vera, insieme alla preposizione 2. 

Ciò può accadere solo se è vera 

¬p oppure ¬q. 

È quello che afferma la risolvente! 


Conclusione: 

per provare r, si prova che ¬r crea contraddizione. Si inserisce quindi ¬r nella lista di forme a clausola e si cerca, mediante risoluzione, se esiste questa contraddizione (metodo della refutazione).

Ci siamo concentrati per semplicità su un esempio di meccanismo performato da un SE usando la logica classica ma i tipi di ragionamento sono tanti, per esempio, potremmo utilizzare:

  • La logica non monotona, che permette di cancellare e aggiungere enunciati alla base dati. In questa logica la credenza in un enunciato si può basare sulla mancata credenza in qualche altro enunciato (ragionamento by default).
  • Il Ragionamento probabilistico, che rende possibile rappresentare inferenze probabili ma incerte.
  • La Logica sfumata (fuzzy logic), che permette di rappresentare proprietà di oggetti continue (non binarie) o sfumate.
  • Il Concetto di spazi di credenza, che permette di rappresentare modelli di insiemi di credenze inserite l’uno nell’altro.

Concludiamo l’articolo dando qualche indicazione sul problema della rappresentazione della conoscenza, fondamentale in questo ambito. 

Rappresentazione della conoscenza

La rappresentazione della conoscenza è una branca dell’intelligenza artificiale che studia il modo in cui avviene il ragionamento umano, e si preoccupa di definire dei simbolismi o dei linguaggi che permettano di formalizzare la conoscenza al fine di renderla comprensibile alle macchine, per potervi fare dei ragionamenti automatici (inferendo le informazioni presenti) ed estrarre così nuova conoscenza. 

Attraverso il linguaggio scelto si andranno ad effettuare una serie di asserzioni sul mondo, che andranno insieme a costituire una base di conoscenza (KB, Knowledge Base). È inoltre importante che il linguaggio scelto per fare le asserzioni sia anche in grado di operare sulla KB per estrarre nuova conoscenza e per aggiungerne di nuova.

I metodi di rappresentazione della conoscenza schematicamente si suddividono in impliciti ed espliciti. In generale occorre rappresentare:

  • collezione di oggetti
  • collezione di attributi (proprietà degli oggetti)
  • insiemi di relazioni (tra gli oggetti).

La scelta della rappresentazione influenza lo sforzo di ricerca, in quanto può permettere di riconoscere concetti semplificanti (simmetrie, analogie, ecc.) e formare macro-operatori (può essere utile utilizzare variabili nella descrizione degli stati). 

Un problema connesso, detto problema del contorno o frame problem, è quello di rappresentare un mondo in cui ci sono cose che cambiano e cose che non cambiano. Per ovviare il problema si può, per esempio, tenere traccia solo dei cambiamenti (lo stato di partenza è descritto in modo completo) o modificare lo stato iniziale con operatori “invertibili” in modo che si possa tornare indietro “annullando” i passi effettuati.

Caratteristiche di un buon sistema di rappresentazione

  • Adeguatezza rappresentativa: poter rappresentare tutti i tipi di conoscenza relativi a un dominio. 
  • Adeguatezza inferenziale: poter manipolare le strutture rappresentative in modo da inferire nuova conoscenza
  • Efficienza inferenziale: poter incorporare informazioni in più da usare come guida verso gli obiettivi nei meccanismi di inferenza (focalizzazione dell’attenzione/euristica)
  • Efficienza nell’acquisizione: capacità di acquisire facilmente nuova conoscenza.

Occorre che il sistema possieda e sappia manipolare una grande quantità di conoscenza del mondo (semantica e pragmatica) e conosca la sintassi e possieda il vocabolario del linguaggio. È desiderabile ma complicato tenere separati i due livelli (ma alcune interpretazioni sintattiche non sono possibili se non si conosce il contesto).

Classificazione delle tecniche

Metodi dichiarativi  

La conoscenza viene rappresentata come collezione statica di fatti, affiancata da un piccolo insieme di procedure generali per la manipolazione (esempio: logica dei predicati).

Vantaggi dei metodi dichiarativi

  • Ogni fatto va immagazzinato solo una volta, indipendentemente dal numero di modi in cui può essere usato.
  • È facile aggiungere nuovi fatti al sistema, senza cambiare né gli altri fatti né le procedure.

Metodi procedurali  

La conoscenza viene rappresentata come procedure per il suo uso.  

Vantaggi dei metodi procedurali

  • È facile rappresentare la conoscenza su come fare le cose;
  • È facile rappresentare la conoscenza che non si inserisce facilmente in molti schemi dichiarativi semplici, come ad esempio il ragionamento per default e quello probabilistico;
  • È facile rappresentare la conoscenza euristica su come fare le cose in modo efficiente.

La maggior parte dei sistemi funzionanti usa una combinazione dei due metodi. 

Schemi per la descrizione delle strutture di conoscenza

La descrizione delle strutture di conoscenza avviene mediante schemi, ovvero un’organizzazione attiva di relazioni passate, o di esperienze passate, che devono supporre siano operanti in ogni risposta organica adattiva. Senza entrare nel dettaglio elenchiamo di seguito alcuni tipi di schemi.

Frame 

I frame (quadri) sono spesso usati per descrivere una collezione di attributi che un determinato oggetto, per esempio, una sedia, in genere possiede.

Script 

Gli script (copioni) sono usati per descrivere sequenze di eventi comuni, come ad esempio ciò che succede quando si va al ristorante.

Stereotipi

Gli stereotipi sono usati per descrivere insiemi di caratteristiche che spesso nelle persone sono presenti contemporaneamente.

Modelli a regole

I modelli a regole sono usati per descrivere caratteristiche comuni condivise all’interno di un insieme di regole in un sistema di produzioni.

Conclusioni

In questo articolo abbiamo visto alcuni concetti base dei sistemi esperti, estremamente potenti anche se poco conosciuti nell’ambito dell’AI. Abbiamo anche introdotto in maniera intuitiva concetti propri della logica matematica e del problema della rappresentazione della conoscenza.

Per approfondire l’argomento consigliamo i seguenti testi:

  • Stuart J. Russell, Peter Norvig, “Intelligenza Artificiale. Un approccio Moderno”, Pearson Education Italia, Milano.
  • E. Rich, “Intelligenza artificiale”, McGraw Hill, Milano.
  • N.J. Nilsson, “Metodi per la risoluzione dei problemi nell’intelligenza artificiale”, Angeli, Milano.
  • Nils J. Nilsson, “Intelligenza Artificiale”, Apogeo, Milano.
  • I. Bratko, “Programmare in prolog per l’intelligenza artificiale”, Masson Addison Wesley, Milano.

Fonti

  • Slide del corso GESTIONE DELLA CONOSCENZA E INTELLIGENZA ARTIFICIALE, Politecnico di Torino, Elio Piccolo, 2017.
  • https://it.wikipedia.org/wiki/Sistema_esperto, consultato il 20.05.2021
  • Roger Schank e Robert Abelson, Scripts, Plans, Goals, and Understanding: An Inquiry Into Human Knowledge Structures, Lawrence Erlbaum Associates, Inc., 1977.
  • https://www.treccani.it/enciclopedia/sistemi-esperti_%28Enciclopedia-della-Scienza-e-della-Tecnica%29/#:~:text=Insiemi%20di%20programmi%20software%20in,’ambito%20dell’intelligenza%20artificiale, consultato il 09.07.2021.

Risultati

resources

Monitoraggio proattivo dell'infrastruttura IT con il software RMM

Monitoraggio proattivo dell'infrastruttura IT con il software RMM

RMM software

Sicurezza

Virtual tour per l'immobiliare: creare esperienze immersive con le app per visori di VR

Virtual tour per l'immobiliare: creare esperienze immersive con le app per visori di VR

esperienza immersiva

virtual reality

visori VR

mixed reality

Le opportunità dell’AI generativa per chi vende online

Le opportunità dell’AI generativa per chi vende online

Massimizzare l'efficienza: come gestire la profondità delle code con Infrared360®

Massimizzare l'efficienza: come gestire la profondità delle code con Infrared360®

sistemi di messaggistica aziendale

Infrared360

profondità code ambienti IBM MQ

ambienti IBM MQ

Gestione dell'identità e degli accessi negli ambienti MQ

Gestione dell'identità e degli accessi negli ambienti MQ

middleware

accessi ambienti MQ

ambienti MQ

gestione MQ

Ottimizzazione delle configurazioni dei canali IBM MQ

Ottimizzazione delle configurazioni dei canali IBM MQ

canali IBM MQ

Infrared360

monitoraggio IBM MQ

Integrazione efficiente di sistemi bancari e finanziari transazionali nelle fusioni e acquisizioni bancarie

Integrazione efficiente di sistemi bancari e finanziari transazionali nelle fusioni e acquisizioni bancarie

integrazioni IT

sistemi transazionali

sistemi finanziari

Monitoraggio dello stato di salute del middleware: l'importanza di un approccio proattivo

Monitoraggio dello stato di salute del middleware: l'importanza di un approccio proattivo

monitoraggio middleware

Avada Software

middleware

Migliora l’efficienza operativa dell’infrastruttura middleware in tutte le unità aziendali

Migliora l’efficienza operativa dell’infrastruttura middleware in tutte le unità aziendali

Middleware

Efficienza operativa

Introduzione a Godot, game engine free & open source

Introduzione a Godot, game engine free & open source

Game Engine

Open Source

Unreal Engine

Unity

TDA in a nutshell: how can we find multidimensional voids and explore the “black boxes” of deep learning?

TDA in a nutshell: how can we find multidimensional voids and explore the “black boxes” of deep learning?

Multidimensional Voids

Black Boxes

Deep Learning

Topological Data Analysis

AI: bias, esempi nella realtà e nella cinematografia

AI: bias, esempi nella realtà e nella cinematografia

Bias

Cinema

AMRITA (Automatic, Maintenance, Reengineering, Integrated, Technology Application)

AMRITA (Automatic, Maintenance, Reengineering, Integrated, Technology Application)

L'ascesa del Prompt Designer: trasformare il design nell'era dell'AI generativa

L'ascesa del Prompt Designer: trasformare il design nell'era dell'AI generativa

Prompt

Design

AI Generativa

AI Designer

Le nuove linee guida per la sicurezza delle password aziendali

Le nuove linee guida per la sicurezza delle password aziendali

Password aziendali

Linee guida Garante Privacy

Garante Privacy

GDPR

6 motivi per scegliere Flutter nel 2024

6 motivi per scegliere Flutter nel 2024

App Development

Google

React Native

AI, sistemi esperti e rappresentazione della conoscenza

AI, sistemi esperti e rappresentazione della conoscenza

Sistemi esperti

Rappresentazione della conoscenza

Tradurre la Lingua Italiana dei Segni - il Progetto LIS2Speech

Tradurre la Lingua Italiana dei Segni - il Progetto LIS2Speech

LIS2SPEECH

Traduzione LIS

User experience design: dalla progettazione all'usability testing per siti web accessibili

User experience design: dalla progettazione all'usability testing per siti web accessibili

Usability testing

Accessibilità

Inclusività

Assitech.Net entra nella galassia Orbyta Technologies

Assitech.Net entra nella galassia Orbyta Technologies

Orbyta Technologies

Orbyta Group

Acquisizione

News

Programmazione Funzionale Java

Programmazione Funzionale Java

Functional Programming

Java

Software Development

Reactive Programming: parallelizzare con Project Reactor

Reactive Programming: parallelizzare con Project Reactor

Programmazione Reattiva

Reactive Programming

Project Reactor

Piattaforme E-commerce Wholesale per il settore B2B

Piattaforme E-commerce Wholesale per il settore B2B

Wholesale

B2B

Antipattern nello sviluppo software: altri errori da evitare

Antipattern nello sviluppo software: altri errori da evitare

Software Development

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Software Development

App tattiche di supporto alla gestione dei progetti reiterativi

App tattiche di supporto alla gestione dei progetti reiterativi

App Development

Power Platform

Low Code

DevOps

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Microsoft

Low-code

Power Platform

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Jupiter

Python

Data Analysis

Data Visualization

Come utilizzare Matplotlib per la Data Visualization in Python

Come utilizzare Matplotlib per la Data Visualization in Python

Python

Data Visualization

Data Science

Data Analysis

Introduzione alla libreria Dash per Python

Introduzione alla libreria Dash per Python

Python

Data Science

Data Visualization

Data Analysis

Prime Video passa al monolite: ma allora serverless è inutile? 

Prime Video passa al monolite: ma allora serverless è inutile? 

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Power Apps Tutorial – Case Study: come costruire una business app da zero

Power Apps Tutorial – Case Study: come costruire una business app da zero

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Power Apps Basics: interfacce, implementazione & vantaggi

Power Apps Basics: interfacce, implementazione & vantaggi

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Introduzione a Serverless: non solo Lambda Function

Introduzione a Serverless: non solo Lambda Function

Metaverso: siamo pronti a cogliere l’opportunità?

Metaverso: siamo pronti a cogliere l’opportunità?

Recap Flutter Forward 2023: le 7 novità più interessanti

Recap Flutter Forward 2023: le 7 novità più interessanti

Let's Redux React to a Game

Let's Redux React to a Game

Introduzione a PowerShell

Introduzione a PowerShell

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

NFT World: il fenomeno NFT tra metaverso, business e GameFi

NFT World: il fenomeno NFT tra metaverso, business e GameFi

Quick Escape Room

Quick Escape Room

Orbyta Invaders Ignition

Orbyta Invaders Ignition

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

development

design

metaverse

brand identity

Database a grafo in SQL Server

Database a grafo in SQL Server

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Teoria dei giochi: Propagazione delle strategie

Teoria dei giochi: Propagazione delle strategie

The chosen one: .NET 5

The chosen one: .NET 5

Network Science e Social Network Analysis

Network Science e Social Network Analysis

Isolation levels on SSMS

Isolation levels on SSMS

Teoria dei Grafi

Teoria dei Grafi

Creare un podcast in automatico a partire da audio vocali e musica

Creare un podcast in automatico a partire da audio vocali e musica

Teoria dei Giochi

Teoria dei Giochi

Recommender systems: principali metodologie degli algoritmi di suggerimento

Recommender systems: principali metodologie degli algoritmi di suggerimento

Introduction to Quantum Computing and Qiskit

Introduction to Quantum Computing and Qiskit

System Versioned Tables

System Versioned Tables

Vim o non Vim

Vim o non Vim

I vantaggi di un Message Broker

I vantaggi di un Message Broker

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

Protezione dei Web Services

Protezione dei Web Services

need more info?

Contattaci