Anteprima
Vedrai una selezione di 1 pagina su 5
Appunti di Intelligenza artificiale: metodi e applicazioni su Prolog Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Algoritmo → insieme di passi che trasformani i dati in ingresso

L’algoritmo, dopo essere stato definito, viene tradotto in un programma scritto in un particolare

linguaggio.

Problema → insieme di stati

Risoluzione → insieme di transizioni tra stati differenti

All’interno di un sistema formale la rappresentazione della conoscenza avviene servendosi di un

opportuno linguaggio.

I primi SF sono stati quelli rule-based.

In essi, la conoscenza su un certo dominio viene rappresentata attraverso delle regole del tipo

if…then

Su tali regole si applicano poi le tecniche di forward/backward chain.

Altri tipi di SF sono quelli logic-based, fortemente assimilabili a quelli rule-based.

Essi ereditano il formalismo della logica matematica, che può essere visto come un’estensione

del formalismo dei sistemi rule-based.

In essi, la rappresentazione della conoscenza è poco più sofisticata di quella dei rule-based; è

basata su clausole (espresse mediante connettivi logici and, or, not) delle quali è possibile

dimostrare la verità o falsità.

Il PROLOG è il più noto rappresentante della famiglia di linguaggi usati per SF logic-based.

Un SF viene espresso come un insieme di regole.

Ogni regola possiede un modello ben preciso:

if (premessa) then (conclusione)

La conclusione è vera laddove sia vera anche la premessa.

La premessa è anche detta testa o precondizione.

La conclusione è anche detta coda o postcondizione.

Il motore inferenziale esamina il database dinamico.

Così facendo, determina quali sono le regole attivate (quelle le cui precondizioni siano verificate

dagli elementi del database), e applica ciascuna di esse, aggiungendo la relativa conclusione al

database.

1.​ Il motore inferenziale cerca le regole attivate nel database

2.​ Applica tali regole

3.​ Aggiunge le relative conclusioni al database

In alternativa, il motore può effettuare una ricerca all’indietro.

Possiamo mettere nel database il goal al posto dello stato iniziale.

Pertanto, il motore inferenziale cercherà nel database tutte le regole attivate quando sono vere

le postcondizioni e metterà nel database le rispettive precondizioni.

La base di conoscenza è costituita da:

-​ fatti

-​ regole

Un blocco di selezione regole e dati percorre per intero la base di conoscenza e realizza

l’unificazione.

Esso - nota in un dato istante la memoria di lavoro e selezionato uno dei teoremi - determina

quali regole siano ad esso applicabili.

La regola selezionata va poi applicata.

Per fare questo abbiamo un blocco di interpretazione della regola, il quale - dopo aver

effettuato l’interpretazione - aggiorna la memoria di lavoro.

L’insieme di:

-​ blocco di selezione regole e dati

-​ blocco di interpretazione della regola

costituisce il nostro motore inferenziale.

Il blocco di selezione regole e dati comunica anche con un blocco delle metaregole, composto

da regole per la gestione delle strategia di selezione delle regole.

Le metaregole sono regole più generali, le quali forniscono una conoscenza aggiuntiva al

motore inferenziale, che può così dirigere meglio le sue scelte.

Facciamo un esempio sulle metaregole.

Si consideri un sistema per l’analisi dei guasti di un’autovettura.

Si è riscontrato un problema ai freni e si vuole stabilirne la causa.

Possiamo ipotizzare che i guasti dell’impianto elettrico non potrebbero mai condizionare il

corretto funzionamento dell’impianto frenante.

Se durante il processo inferenziale possono essere applicate 150 regole per rilevare guasti sul

sistema elettrico, è inutile applicarle perché il tipo di guasto per sua natura non è sicuramente

ascrivibile all’impianto elettrico e si passerà ad applicare un altro set di regole più adatto.

Il nostro sistema porrà quindi innanzitutto delle domande generali per scoprire la natura del

guasto, il che gli permetterà di escludere l’applicazione di certe regole.

Facciamo un altro esempio sulle metaregole.

Nel caso di un sistema formale, supposto che in ogni istante esistano 500 regole applicabili ai

teoremi, possiamo immaginare che esse siano suddivise in più gruppi di regole (ad esempio,

gruppo A e gruppo B)

Il sistema non cerca di applicarle tutte, ma le metaregole gli suggeriscono di provare

innanzitutto con A, perché l’utilizo di B non porta a risultati utili.

Dunque, una metaregola inibisce un gruppo di regole a favore di un altro.

Il PROLOG sta per PROgramming in LOgic.

Si tratta di un linguaggio di alto livello, ottimo per rapid prototyping.

Un programma logico ha duplice significato:

significato dichiarativo significato operazionale

un programma consiste di fatti e regole che il programma prevede un meccanismo di

definiscono relazioni esecuzione (motore di inferenza) basato

sull’unificazione e la risoluzione, per estrarre

conseguenze implicite nel programma

Dunque, per programmare in Prolog dobiamo cambiare modo di pensare: dichiarativamente,

non proceduralmente.

Dettagli
Publisher
A.A. 2024-2025
5 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher gaeeee02 di informazioni apprese con la frequenza delle lezioni di Intelligenza artificiale: metodi e applicazioni e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Salerno o del prof Quaranta Mario.