Vous êtes sur la page 1sur 329

Oscar Bettelli

MESSAGGI E COMUNICAZIONE

Trasformazione delle simiglianze


in programmazione logica

1
Introduzione………………………………………… pag. 4

1. Rappresentazione della conoscenza


1.1 Messaggi e comunicazione……………………………….… 6
1.2 Rappresentazione simbolica………………………………... 15

2. Il concetto di simiglianza
2.1 Induzione di una metrica su insiemi………………………... 18
2.2 Definizione di una metrica associativa……………………... 20
2.3 Il processo di inferenza……………………………………... 36
2.4 Il trattamento dell'incertezza………………………………... 43

3. Il processo di astrazione
3.1 Principali meccanismi di astrazione………………………… 58
3.2 Il processo di categorizzazione……………………………... 63
3.3 Algoritmi genetici…………………………………………... 74

4. I criteri di classificazione
4.1 Sistemi di classificazione…………………………………… 86
4.2 Teoria matematica della classificazione……………………. 92

5. Logica matematica
5.1 La logica proposizionale……………………………………. 97
5.1.1 Semantiche della logica proposizionale……………………. 99
5.1.2 Teorie proposizionali……………………………………….. 104
5.1.3 Logica proposizionale come sistema deduttivo…………….. 107
5.2 Logica classica del primo ordine…………………………… 112
5.2.1 Linguaggi della logica del primo ordine……………………. 112
5.2.2 Semantica della logica del primo ordine……………………. 116
5.2.3 Teorie del primo ordine…………………………………….. 124
5.2.4 Logica del primo ordine come sistema deduttivo………….. 127
5.3 Logica del primo ordine multi-ordinata……………………. 130
5.4 Il metodo di risoluzione……………………………………. 135
5.4.1 La forma in clausole……………………………………….. 136
5.4.2 Le regole di risoluzione……………………………………. 140
5.4.3 Soluzione lineare…………………………………………... 149
5.5 Logica classica del secondo ordine………………………... 152
5.5.1 Linguaggi logici del secondo ordine………………………. 152
5.5.2 Semantica della logica del secondo ordine………………... 155
5.5.3 Teorie del secondo ordine…………………………………. 159
5.5.4 Logica del secondo ordine come sistema deduttivo………. 160
2
5.5.5 Espressioni con predicati e funzioni………………….pag. 161
5.6 Logica modale…………………………………………….. 167
5.6.1 Logica proposizionale modale……………………………. 167
5.6.2 Logica modale del primo ordine………………………….. 172

6. Programmazione logica
6.1 Ragionamento non monotonico……………………………. 176
6.2 Clausole di Horn……………………………………………. 181
6.3 Metodo di risoluzione SLD………………………………… 182
6.4 Semantica di un linguaggio di programmazione…………… 184
6.5 Base di conoscenza basata sulla logica dei predicati……….. 185
6.6 Un filtro prolog……………………………………………... 187

7. Trasformazione delle simiglianze


7.1 Descrizione di oggetti come insieme di attributi…………… 197
7.1.1 La funzione di appartenenza ad insiemi sfumati……………. 197
7.1.2 Rappresentazione tramite proprietà…………………………. 199
7.1.3 Implicazione semantica……………………………………... 201
7.1.4 Definizione di un'algebra sulle proprietà……………………. 208
7.2 Ruolo delle irrilevanze nella formazione di concetti………... 209
7.3 Simiglianze nel caso di corrispondenza biunivoca………….. 213
7.3.1 Corrispondenze, trasformazioni, simiglianze……………….. 213
7.3.2 Costruzione di una metrica sull'insieme dei naturali………... 222
7.4 Sistemi di deduzione basati su regole………………………. 227
7.5 Logiche a più di due valori…………………………………. 232
7.5.1 Logica modale non monotonica intuizionista………………. 232
7.5.2 Logica modale non monotonica a tre valori………………... 240
7.5.3 Logica modale non monotonica a quattro valori……………. 247
7.6 Rappresentazione in uno spazio vettoriale binario…………. 253
7.7 Sistemi ipotetici in comunicazione reciproca………………. 260
7.8 Trasformazioni T da |P(X) a |P(X)…………………………. 264
7.9 Rappresentazioni di regole tramite corrispondenze………... 276
7.10 Sistemi di regole ricavabili da corrispondenze…………….. 278
7.11 Leggi di riduzione dei sistemi di regole……………………. 281
7.12 Equivalenza di sistemi di regole……………………………. 283
7.13 Definizione di trasformazioni particolari…………………... 286
7.14 Misura dell'affidabilità delle deduzioni……………………. 292
7.15 Interpretazione statistica dell'affidabilità…………………... 297
7.16 Generalizzazione operazioni OR AND XOR …………….. 307
7.17 Implicazione semantica di raggruppamento………………. 316
7.18 Conclusioni………………………………………………... 325

3
Introduzione
La comunicazione, i messaggi, la capacità di comunicare scambiando
messaggi sono aspetti fondamentali della natura umana e forse della vita
stessa.
Intorno alla metà di questo secolo l'ingegneria dei sistemi di comunicazione
ha subito un notevole impulso; se la prima metà del novecento ha assistito
allo sviluppo dei sistemi analogici, la seconda metà ha assistito allo sviluppo
dei sistemi di comunicazione numerici o digitali.
Una delle ragioni risiede nel fatto che le apparecchiature in grado di
elaborare i segnali numerici sono in genere più semplici di quelle che
elaborano dati analogici, in particolare si è visto che le informazioni poste in
una forma discreta sono più facilmente trasmesse, con grande affidabilità
anche in un canale disturbato.
Nella teoria dell'informazione è possibile identificare eventi fisici di cui essa
fornisce un modello; come ogni modello anche la teoria dell'informazione è
riduttiva, trascura certi eventi e di certi altri ignora alcuni aspetti.
Nella teoria dell'informazione i messaggi sono più importanti del loro
supporto materiale, la forma è più importante della materia; accanto al mondo
della fisica, dove imperano le forze e le quantità di moto, e dove le azioni e le
reazioni sono rette da equazioni specifiche, esiste un mondo in cui l'energia,
magari piccolissima, associata ad un messaggio può scatenarne una
grandissima. Nel mondo dell'informazione ciò che conta non sono gli oggetti
ma le differenze tra gli oggetti, e l'informazione risiede nelle differenze che
generano altre differenze e che si propagano lungo un canale di comunicazione
dalla sorgente all'utilizzatore.
Comunque quando si parla di differenze queste debbono essere riferite ad un
osservatore che sia in grado di percepirle e quindi, eventualmente di
riprodurle: questo carattere relativo dell'informazione è così fondamentale che
spesso è sottaciuto.
In realtà non ha neppur senso parlare di sorgente d'informazione se non si
specifica anche quale sia l'utente di questa sorgente: una sorgente appare
diversa a utenti diversi, perciò si dovrebbe sempre far riferimento a coppie
sorgente-utente.
È importante osservare che la produzione d'informazione da parte di una
sorgente può essere un atto spontaneo oppure provocato. In particolare è
l'interesse dell'utente che sollecita la sorgente a fornire messaggi che
corrispondono ad informazione utile in vista dei fini dell'utente stesso.
Riassumendo, l'utente sarà in grado di impiegare l'informazione solo se potrà:
1) rilevare l'informazione pertinente ai propri fini;

4
2) ricondurre tale informazione ad una propria esperienza precedente che
consenta la comprensione del significato dei messaggi ricevuti.

È importante sottolineare che il processo di comunicazione fra una sorgente


ed un utente è multiforme e si svolge su diversi livelli:

A) livello del rilevamento delle differenze che costituiscono l'informazione;

B) livello della comprensione del significato delle differenze rilevate;

C) livello dell'impiego delle differenze rilevate e comprese.

Questi tre livelli non sempre sono separabili con precisione e, se lo sono, non
sempre si possono ordinare gerarchicamente; occorre ricordare che la teoria di
Shannon si situa nettamente al livello A), livello sintattico o tecnico, mentre
non tocca nè il livello B), livello semantico, nè quello C), livello pragmatico.
Nel presente lavoro si propone un approccio sinergico a tutti e tre questi
livelli A), B) e C) integrando il livello sintattico con il livello semantico e il
livello pragmatico, utilizzando le tecniche della programmazione logica.
Ovviamente, il risultato presenta un marcato riduzionismo e notevoli
semplificazioni concettuali, d'altra parte l'idea di due sistemi a stati finiti in
comunicazione reciproca governati da un motore inferenziale che utilizza
regole, produce inferenze e trasmette messaggi tramite un canale di
comunicazione, si presenta come un affascinante modello per lo studio dei
processi fondamentali alla base della comprensione e trasmissione di
informazione tra sistemi in comunicazione reciproca.

5
1. La rappresentazione della conoscenza
1.1 Messaggi e comunicazione

La capacità di comunicare è una caratteristica notevole dei sistemi


intelligenti.
Acquisizione, immagazzinamento, recupero, ed infine uso
dell'informazione sono processi di estrema importanza, che si verificano con
facilità nel corso dell'esperienza umana.
La diffusione nella nostra realtà sociale di continui scambi di messaggi ci
rende familiari alcuni concetti che necessitano, per una loro reale
comprensione, di una pausa di riflessione.
Tramite la comunicazione e l'elaborazione di strutture di messaggi si
compiono atti che vengono riconosciuti come manifestazione di
intelligenza.
L'uomo ha costruito diverse macchine in grado di manipolare messaggi tra
cui, la più recente, l'elaboratore elettronico. Claude E. Shannon pubblicò, nel
1948, una memoria dal titolo: "A mathematical theory of communication".
Il nome di Shannon è legato alla ricerca di una codificazione dei messaggi,
scelti da un insieme noto, che permettesse di trasmetterli con precisione e
uniformità in presenza di rumore. Il problema di una codificazione efficiente e
le sue conseguenze costituiscono il centro della teoria dell'informazione.
In effetti, ogni comunicazione comporta una qualche specie di codificazione.
In teoria qualsiasi messaggio può essere codificato nel sistema binario ed
essere trasmesso elettricamente come una sequenza di impulsi o di assenza di
impulsi. Si è dimostrato che campionando periodicamente un segnale
continuo, come per esempio un'onda sonora, e rappresentando le ampiezze di
ogni campione con valori ad esse più approssimati di un insieme discreto di
valori, si può rappresentare e codificare perfino tale onda continua come una
sequenza di cifre binarie con una precisione grande a piacere.
Gli elaboratori elettronici funzionano utilizzando la rappresentazione
binaria di numeri e cifre, i numeri e le cifre poi vengono utilizzati per
manipolare i messaggi.
Come si rappresentano numeri e cifre in un linguaggio binario?
La codifica più utilizzata è la codifica ASCII.
Nella codifica ASCII si considerano otto bit a formare un carattere:

carattere 8 bit

6
0 = 00110000
1 = 00110001
2 = 00110010
3 = 00110011
...
A = 01000001
B = 01000010
C = 01000011
D = 01000100
...

Prendiamo due persone che, da due stanze separate, si scambino dei messaggi
conversando. Ogni messaggio viene codificato in parole appartenenti a frasi di
una determinata lingua, viene trasformato in onde sonore che attraversano le
stanze e la parete, viene raccolto dall'orecchio e trasformato in impulsi
elettrochimici, riconosciuto come essere un messaggio e non rumore,
suddiviso in frasi e parole e finalmente viene interpretato come
significativo da parte dell'ascoltatore.
Utilizzando delle tecnologie telematiche la comunicazione potrebbe
avvenire anche nel seguente modo: Il soggetto A scrive un messaggio
codificandolo in parole e frasi di una certa lingua, il sistema lo codifica in una
forma binaria e lo trasmette a notevole distanza, un sistema ricevente
ritrasforma il messaggio in frasi e parole che possono essere lette dal
soggetto B che riceve il messaggio per lui significativo. Supponiamo
che un soggetto C intercetti il segnale trasmesso lungo la linea nel
momento in cui esso si presenta come una successione di impulsi.
Se il messaggio trasmesso fosse : "Le mele sono mature", il soggetto C
rivelerebbe la seguente successione di impulsi:

"010011000100010100100000010011010100010101001100010001010010000
001010011010011111001110010011110010000001001100101000001010101
00010101010101001001000101"

che si presenta come una successione di impulsi all'apparenza governata dal


caso in cui compare una maggior frequenza di zeri rispetto agli uni (93 zeri su
152 contro 59). Se ricevessimo dallo spazio una successione di impulsi del
tipo di quella sopra descritta probabilmente la attribuiremmo al puro caso e
ben difficilmente ad intelligenze che desiderano mettersi in contatto con la
nostra cultura inviando messaggi. Pur essendoci delle regolarità nella
successione di impulsi, tali regolarità sono difficilmente individuabili e

7
senza la chiave interpretativa il segnale appare casuale, anche se ogni
impulso è in realtà strettamente determinato dal messaggio e nessun bit può
essere alterato senza alterare il messaggio stesso. La probabilità di ottenere
per puro caso il segnale binario di cui sopra è 0.5 elevato alla 152 cioè circa
due volte ogni dieci miliardi di miliardi di miliardi di miliardi di miliardi di
tentativi (1.75 E-46).
Un altra possibilità consiste nell'utilizzare un unico impulso: l'interruttore
di una lampadina.
In tal caso i due soggetti A e B potrebbero essersi accordati sul fatto che
qualora una lampadina ben in vista si accende allora si desume che: "le mele
sono mature".
In tali circostanze un unico impulso è sufficiente e la sua probabilità è di un
mezzo (0.5). Il messaggio trasmesso è lo stesso, ma il canale di trasmissione
ha potenzialità molto diverse. Dal punto di vista del soggetto C il messaggio è
costituito da un singolo impulso che si presenta oppure no. Sarebbe per lui
molto più facile mettere in relazione il verificarsi di un tale evento con il fatto
che "le mele sono mature", sempre che tutto ciò possa avere un senso per il
soggetto C. Per trasmettere messaggi diversi sarebbero necessari altri canali
predisposti appositamente allo scopo. Aumentare il numero di messaggi
trasmessi sullo stesso canale significa aumentare la complessità della codifica
dei messaggi stessi.
È possibile ridurre la complessità della codifica dei messaggi aumentando il
numero dei canali, anche se in realtà la complessità del messaggio
globale non viene ridotta, infatti colui che riceve i messaggi dovrà fare una
sintesi riconoscendo ogni canale che potenzialmente trasporta un certo
tipo di messaggio.

Un modo per farsi un'idea di che cosa significa "rappresentazione della


conoscenza" consiste nel considerare la seguente ipotetica situazione: due
sistemi che comunicano tramite un canale informativo.
Due sistemi S1, S2 in comunicazione tramite un canale si scambiano messaggi
relativamente a qualcosa che di solito si referenzia come la "realtà" esterna,
ovvero oggettiva, nel senso di conoscibile o riconoscibile da entrambi i sistemi
S1, S2. Se denotiamo con R la realtà oggettiva, nel senso di "insieme di
informazioni" condivisibili dai due sistemi allora il messaggio che S1 può
trasmettere a S2, facente riferimento a qualche informazione di R, dovrà essere
rappresentabile sia in R1, rappresentazione di R per S1, sia in R2
rappresentazione di R per S2. Ora, lasciando in sospeso il problema della
generazione delle rappresentazioni R1 ed R2 a partire da una interazione di
S1 e S2 con R, ci si può concentrare nell'analisi del flusso di messaggi nel
canale di comunicazione tra S1 e S2.

8
(fig 1.1)

Infatti due sistemi comunicano attraverso un canale di comunicazione che


possiede una determinata struttura sia fisica che logica.
Consideriamo un caso semplice, due sistemi che comunicano scambiandosi
messaggi selezionati da un determinato repertorio finito attraverso un canale
binario. Ogni messaggio si presenta nella forma di successione di bit per es.
<010010111...>. Ad ogni messaggio è associato un insieme ordinato di bit, tale
associazione è condivisa da entrambi i sistemi. Consideriamo un caso banale: il
canale di comunicazione può essere solo in ON oppure in OFF. In altri termini
il canale consiste di un interruttore che può essere o acceso o spento.
La realtà condivisibile R tra S1 e S2 consiste semplicemente in un bit.
Ipotizziamo che una bella ragazza e il suo spasimante si accordino di
scambiarsi un messaggio di tipo binario: se la ragazza si trova in casa tiene
aperta la finestra, quando esce chiude la finestra. Per lo spasimante la finestra
aperta o chiusa rappresenta un canale di comunicazione binario:

<1> La ragazza si trova in casa :- Finestra aperta.


<0> La ragazza è uscita :- Finestra chiusa.

9
Se i due amanti non possiedono altri canali di comunicazione, allora, per lo
spasimante la ragazza risulta inconoscibile ed è rappresentabile da qualcosa,
su cui si può fantasticare, ma che sostanzialmente c'è quando la finestra è
aperta e che non c'è quando la finestra è chiusa. L'idea che lo spasimante si
crea ( la rappresentazione della ragazza nella testa dello spasimante ) riguardo
alla ragazza e alla situazione potrebbe essere varia e articolata ma certamente
fondata solamente su rappresentazioni generate da situazioni del tutto
diverse da quelle relative allo stato della finestra, da altri canali di
comunicazione, da altre situazioni; in altri termini da una realtà diversa da
quella condivisa con la ragazza nella realtà.
Dall'esempio emerge che la realtà R condivisa da due sistemi che
comunicano sia una mera convenzione tra S1 e S2; tale convenzione si esplica
in una relazione tra una rappresentazione arbitraria in S1 e una
rappresentazione corrispondente in S2 altrettanto arbitraria e sostanzialmente
inconoscibile nella reale forma. Allora il processo di comunicazione consiste
in un processo di corrispondenza tra stati arbitrari di S1 e S2.
Vediamo un altro esempio: supponiamo che il messaggio tra S1 ed S2 sia: ho
visto un cavallo alato.
S2 che riceve il messaggio da S1 cerca di far corrispondere la
rappresentazione che S1 gli evoca tramite il messaggio con la propria
esperienza passata; cerca pertanto di ricordare se tra i propri ricordi vi sia
l'esperienza di aver visto un cavallo alato. La parola cavallo recupera dalla
memoria un animale quadrupede correlato di un certo numero di caratteristiche,
immagini, esperienze, ecc... in altri termini rappresentazioni. La caratteristica
di essere un animale con le ali non trova riscontro nelle rappresentazioni di S2,
per cui S2 risponde ad S1 che non "crede" al messaggio che S1 gli ha inviato;
S1 di rimando dice: era in una raffigurazione di un famoso pittore. S1 allora
riconosce il messaggio iniziale come vero, infatti egli stesso aveva in
precedenza avuto occasione di vedere il quadro a cui fa riferimento S2;
semplicemente non aveva collegato tale rappresentazione al messaggio si S1,
d'altra parte la parola cavallo denota, nel contesto considerato, sia un animale
che un disegno: oggetti estremamente diversi. Eppure chiunque riconosce
facilmente che una raffigurazione di un cavallo e l'animale cavallo in carne ed
ossa possiedono, indubbiamente, in comune qualcosa di essenziale.

Consideriamo due sistemi S1, S2 identici, con rappresentazioni identiche e che


si evolvono nel tempo in maniera identica.
Supponiamo che S1 decida di informare S2 sul proprio stato, per far ciò
invierà ad S2 un messaggio.
Il messaggio rappresenterà lo stato di S1.

10
La comunicazione tra S1 ed S2 consiste, come abbiamo visto, nel mettere in
relazione uno stato (una rappresentazione) di S1 con uno stato di S2 e avviene
in due passi:
1) S1 seleziona un messaggio corrispondente ad un certo stato m1 tra tutti i
messaggi possibili e lo invia a S2.
2) S2 riceve un messaggio corrispondente ad m1 e lo collega allo stato
identico nella propria rappresentazione.
Tutto ciò non modifica la situazione di S2.
In questo caso l'informazione trasmessa è nulla.
Da notare che l'informazione, misurata secondo la teoria di Shannon, presente
nel messaggio non è nulla, anzi tanto più vasto è l'insieme dei messaggi
possibili tanto più il contenuto informativo del messaggio è elevato, il
problema consiste nel fatto che S2 conosce a priori il contenuto del messaggio,
pertanto il messaggio diviene inutile.
Emerge, da quanto esposto, l'importanza di condensare l'informazione
trasmessa in un messaggio alle sole parti non prevedibili dal ricevente.
Ad esempio la frase: il cavallo ha quattro gambe; non apporta alcuna
informazione a chi già lo sa, poichè è un messaggio corrispondente ad una
rappresentazione già esistente, pertanto tale messaggio diviene inutile e privo
di contenuto informativo.
La sinteticità osservabile nell'uso comune del linguaggio mette in evidenza,
in maniera a volte sorprendente, l'importanza di questo principio di economia
nei messaggi trasmessi.
La comunicazione tra S1 ed S2 coinvolge un ulteriore processo di
comprensione del messaggio: il processo di induzione che S2 compie rispetto a
ciò che S1 comunica, in altri termini la comunicazione dipende dalle
aspettative di S2 nei confronti di S1: da ciò che S1 sa o crede di sapere sugli
stati di S1.
In questo contesto diviene interessante il concetto di sincronicità: la
coincidenza del messaggio o parti del messaggio con le aspettative di S2,
rende S2 più sicuro rispetto alle proprie credenze riguardo ad S1; il messaggio
che non contraddice le ipotesi di S2 rafforza S2 nelle proprie credenze; un
messaggio contradittorio costringe S2 a rivedere le proprie ipotesi su S1.
Di più se un particolare messaggio, estremamente improbabile si allinea, anche
per caso, a determinati schemi interpretativi allora tali schemi raggiungono un
livello di verosimiglianza difficilmente ritrattabile da parte di S2.

Supponiamo che S1 ed S2 siano sistemi a stati finiti (n stati).


In particolare che S1 disponga di n messaggi M1 tra cui poter selezionare il
messaggio da inviare ad S2, e che S2 sia in grado di ricevere m messaggi M2 e
riconoscerli. Se denotiamo con M3 l'insieme dei k messaggi in comune tra M1

11
ed M2, M1 ∩ M2 = M3, allora solo k degli n messaggi di S1 risulta
comprensibile ad S2, nel senso di messaggi riconoscibili. Affinchè un
nuovo messaggio msg1(k+1) possa essere riconosciuto da S2 occorre che si
stabilisca una relazione tra msg1(k+1) ∈ M1 e un messaggio
msg2(k+1) ∈ M2 di S2. Tale relazione si può stabilire solo se
msg1(k+1) deriva da una combinazione di messaggi di M3 oppure da altri
canali di comunicazione.
Nel caso non esistano altri canali di comunicazione allora msg1(k+1) è una
funzione di un sottoinsieme di M3, il nuovo messaggio risulta essere una
combinazione di un sottoinsieme particolare di vecchi messaggi. Infatti se S1,
S2 sono due sistemi che comunicano tramite k possibili messaggi attraverso un
unico canale, in altri termini nel caso non esistano altri canali di
comunicazione, l'unico modo per comprendere un nuovo messaggio a
disposizione di S2 è interpretarlo attraverso la trasmissione di un insieme di
messaggi riconoscibili.
In sostanza nessun nuovo messaggio può essere appreso, ma sono
possibili solo raggruppamenti di messaggi in un nuovo codice.
In pratica l'unica possibilità di creare nuovi messaggi consiste in una
operazione di codifica.

Supponiamo, ora, che i sistemi S1, S2 siano macchine a stati finiti, come ad
esempio lo sono i calcolatori elettronici.
In particolare consideriamo la memoria M1 di S1: M1 può essere visto come
il risultato prodotto dal sistema di memorizzazione a disposizione del sistema
S1; in M1 sono rappresentati tutti i messaggi selezionabili da S1. In M1 vi
saranno un certo numero di stati possibili n, ed un certo numero di stati
significativi k, corrispondenti a messaggi memorizzati.
Per come sono costruiti i computer gli stati elementari di base sono stati
binari {0,1}. La memoria M1 diviene rappresentabile da un vettore di n stati
binari: n bit. I bit della memoria possono essere raggruppati in maniera da
assumere un significato simbolico comprensibile da un utilizzatore umano.
La comunicazione tra un elaboratore elettronico ed un essere umano viene
infatti mediata dal linguaggio.

Da quanto tratteggiato risulta evidente come la rappresentazione della


conoscenza in generale sia un processo estrememente fumoso ed arbitrario:
l'uomo opera con una conoscenza limitata e incerta. Criteri di valutazione
come la completezza e la consistenza relativamente ad una concreta
rappresentazione della conoscenza sono applicabili solo in domini ristretti e
ben definiti.

12
A questo proposito vorrei riportare alcune considerazioni filosofiche che alcuni
pensatori hanno espresso in relazione ai processi cognitivi.

Ogni sapere nel mondo si riferisce ad oggetti particolari e viene


conquistato, con determinati metodi, da punti di vista determinati.
(Karl Jaspers)
È perciò errato assolutizzare in un sapere totale un qualsiasi sapere.

Volontà di potenza e volontà di verità nella scienza sono spesso in


contraddizione, solo chi si pone umilmente in ascolto può interpretare
correttamente i messaggi particolarmente contrastanti le credenze che si sono
affermate nella storia e nella scienza in un particolare periodo storico.

Cosa sono ragione ed intelletto?


La ragione è un moto senza un punto fisso!
È stimolo a criticare ogni posizione acquisita.
Si contrappone alla tendenza ad adagiarsi su dogmi fissati.
Esige ponderazione - si contrappone all'arbitrio.
Sviluppa la conoscenza di sè rendendo consapevoli i limiti.
Esige un incessante ascolto e sa attendere.
È il contrario dell'ebbrezza affettiva immediata.
La ragione è volontà di unità.
Essa non può tralasciare nulla di ciò che esiste, nulla trascurare, nulla
escludere.
Essa è in sè stessa apertura illimitata.
La ragione è attratta da ciò che le è più estraneo.
La ragione non vuole ingannare sè stessa mistificando la realtà.
La ragione è indissolubilmente legata alla volontà di comunicazione.
La verità senza comunicazione appare ad essa identica alla non-verità.
Non è la ragione che porta la verità, ma la cerca insieme a colui che incontra,
ascoltando, interrogando, sperimentando.
La verità non può essere esaurita nel tempo.
Per l'uomo nel tempo la verità esiste solo nella forma della verità che diviene
tale nella comunicazione.

Noi non sappiamo gli uni degli altri nulla di essenziale fuorchè quando
entriamo in reciproca comunicazione.

La ragione ha un potente avversario che si annida dentro di noi, c'è qualcosa


che fa parte della vita, una pulsione all'affermazione della trascendenza.
C'è qualcosa in noi che desidera non la ragione ma il mistero.

13
Tutto ciò che la ragione non afferra spinge potentemente contro di essa e
allora siamo allettati irresistibilmente da questa esplosione e non ci basta più
l'efficacia razionalmente fondata ma la magia assurge a dogma, non la fidata
fedeltà ma l'avventura. Ma anche in questo caso la potenzialità della
comunicazione si esprime nella varietà espressiva, per esempio nel parlare per
immagini, nell'interminabile spiegare la spiegazione.
Nonostante tutto un messaggio, sia pur nella sua incertezza, viene trasmesso e
comunicato e può essere parzialmente interpretato dalla ragione.
La perversione della non-ragione consiste nell'impulso diretto a disfarsi della
propria realtà, verso cui si è responsabili, ed a spostarla su qualcos'altro, su un
arcano, un essente autentico, lasciandosi prendere dal fascino del mormorio di
ciò che manca di ragione.
Come presunta verità dell'essenza non resta che una fantasia non
vincolante, risolventesi in sentimenti di commozione privi di affetto.
È facile cadere in un invasamento: questa tendenza a rendere assoluto il proprio
pensiero, a farne l'unico vero, a identificare se stesso con la cosa
coinvolgendosi in essa con interessamento egocentrico, ed allontanare quanto
non favorisce la propria causa. Affinchè nel mondo del pensiero si instauri un
pieno disinteresse, è necessario che coloro che pensano siano interiormente
indipendenti. E tale l'uomo diviene solo quando è spenta in lui la volontà di
potenza, e forse anche solo quando si trova di fatto in condizioni di impotenza.
L'impotenza sembra la condizione per operare effettivamente in modo libero e
destare la libertà. Nell'accontentarsi senza voler imporre a tutti i costi la propria
volontà, il singolo uomo ha la probabilità di contribuire per la sua
piccolissima parte a far sì che si crei uno spazio in cui la verità possa
prosperare.

14
1.2 Rappresentazione simbolica

Consideriamo il compito di rappresentare un problema.


Se utilizziamo un qualsiasi supporto di memorizzazione dei dati del problema,
allora la struttura del supporto influenzerà la forma della nostra
rappresentazione. Una prima possibilità per rappresentare un problema è
utilizzare dei simboli; caso della logica simbolica. In altri termini si tratta di
rappresentare le relazioni e le caratteristiche di un problema come espressioni
simboliche logiche.
Notevoli sforzi sono stati profusi nel tentativo di aumentare il campo di
possibilità di questo tipo di espressione. Il comportamento del cervello è
troppo complicato per poter essere rappresentato con la logica simbolica.
Si possono utilizzare frames: combinazione di strumenti e metodi che
descrivono le attività del cervello umano senza confinarla nella logica
simbolica. Il metodo della logica simbolica è in letteratura conosciuto come
l'approccio dichiarativo, mentre il metodo alternativo, dei frames, è chiamato
approccio procedurale. Questi due approcci si sono contrapposti e completati
l'uno con l'altro nel corso dello sviluppo dell'intelligenza artificiale. Esiste un
terzo approccio, che considera la conoscenza e l'informazione stessa così come
sono rispettandone la struttura e la forma.
Nello studio dell'intelligenza artificiale, è naturale avere un certo interesse
riguardo al comportamento del cervello umano e a come esso lavora, in
particolare rivolgere particolare attenzione a come sia possibile rappresentare
il suo funzionamento con un computer.

Una proprietà fondamentale della conoscenza è che essa deve essere affidabile
e vera. È possibile a volte rendere, una conoscenza inaffidabile, affidabile
chiarendo le condizioni sotto cui essa è vera. Specificando cioè il contesto
interpretativo e le condizioni per le quali un'affermazione generale,
inaffidabile, diviene verificabile e vera.
Le informazioni che utilizziamo nella vita di tutti i giorni sono per lo più
inaffidabili, ed è difficile rendere tutta questa conoscenza affidabile
semplicemente specificando sotto quali condizioni essa risulta vera.
Nella nostra vita quotidiana la maggior parte dell'informazione è basata sulla
nostra specifica esperienza ma, questa, non è universalmente vera.
Noi possiamo fidarci di un fatto quando le nostre osservazioni lo
confermano. Possiamo dire che tali fatti sono conoscenza quando più persone
ritengono tali fatti conoscenza condivisa.

15
Le leggi sono un altro aspetto che deve essere tenuto presente.
Le leggi hanno, di solito, la forma: SE si verifica il tal fatto ALLORA il tal
altro fatto è vero.
Occorre avere particolare cura per generalizzare un fatto o una legge come
universale; infatti le leggi hanno spesso solo una validità particolare,
contestuale, non universale.

Perciò, è sempre importante accertarsi che la legge sia usata nel modo
appropriato e nel dominio di competenza per poter decidere se la conclusione
che traiamo corrisponde a un fatto affidabile oppure no.

A causa del fatto che non ci possiamo garantire sulla verità delle nostre
affermazioni, la conoscenza nella vita di tutti i giorni è frammentaria e non
organizzata. Essa è anche contradditoria. La conoscenza, in ambito
accademico, non può essere contradditoria. Comunque, nella vita di tutti i
giorni, noi possiamo convivere con una conoscenza contradditoria fintanto
che tale conoscenza non diviene contradditoria in un qualche senso
immediato. Quando la conoscenza diviene contradditoria, tentiamo di
espanderla e di aggiungere alcune condizioni extra per renderla non
contradditoria.

La conoscenza richiede spiegazione.


La conoscenza senza spiegazione è semplicemente un assioma.
Generalmente la spiegazione è fornita utilizzando la ricostruzione a partire
dagli elementi principali. In altre parole, spieghiamo un concetto combinando
i concetti parziali che lo compongono e i concetti elementari.

La conoscenza aumenta con lo studio ed è ulteriormente espansa


dall'inferenza. Comunque non si può considerare affidabile il risultato di
un'inferenza se non vengono confermati i fatti a cui tale inferenza porta.

Consideriamo due sistemi S1 ed S2 che comunicano tramite un canale di


comunicazione binario.
Proponiamoci di analizzare il processo di riconoscimento di un messaggi
inviato da S1 ad S2.
Il processo consiste sostanzialmente nel collegare un messaggio msg1 inviato
nel canale binario, arbitraria successione di bit, con una rappresentazione x1
interna al sistema S2.
Allora x1 = f(msg1), la rappresentazione x1 di S2 è esprimibile in funzione
del messaggio msg1. In altri termini tutto funziona come se fosse x1 = msg1 ;
la rappresentazione x1 può essere identificata con il messaggio ad essa

16
collegata. Essendo msg1 una stringa di bit, anche x1, la rappresentazione
interna di S2 corrispondente a msg1 messaggio inviato da S1, può essere
considerata come una stringa di bit.
Infatti ogni rappresentazione interna presente nella memoria di un calcolatore
corrisponde ad una stringa di bit.
Eppure noi parliamo di oggetti, di attributi, di dati, ecc...
Oggetti, attributi, dati, ecc... non sono altro che interpretazioni, in particolare
ogni raggruppamento arbitrario di bit potrebbe essere associato ad una
specifica interpretazione. È chiaro comunque che solo alcuni tra tutti i
raggruppamenti di bit possibili sono significativi; a tali raggruppamenti
corrispondono infatti i simboli che utilizziamo nel colloquio con l'e laboratore.
Il problema diviene, dunque, quale è la relazione tra i simboli che utilizziamo
e le stringhe di bit; essenzialmente è un problema di codifica.

Se V = <b1,b2,b3,...,bn> è il vettore binario con cui rappresentiamo la


memoria di S2, allora ogni sottoinsieme di V puo essere connesso ad un
simbolo per noi significativo.
Il messaggio msg1 inviato da S1 può allora essere considerato come un
sottoinsieme x1 di V.

17
2. LE SIMIGLIANZE
2.1 Induzione di una metrica su insiemi

In una struttura di memorizzazione di dati le informazioni sono


memorizzate in termini di rappresentazioni e tali rappresentazioni si avvalgono
di un supporto fisico che è specifico del sistema utilizzato.
Supponiamo di poter parlare in termini di proprietà o attributi che identificano
le rappresentazioni e che da tali rappresentazioni si possa risalire alle
informazioni originarie.
Ogni proprietà raggruppa tutte le entità che posseggono la proprietà medesima;
ogni proprietà crea pertanto una partizione dello spazio di rappresentazione.
È possibile considerare due rappresentazioni più o meno simili (o dissimili)
sulla base di considerazioni concernenti le proprietà che esse mostrano. In
particolare considerazioni su quali e quante proprietà esse hanno in comune o si
presentano nell'una e non nell'altra.
Il concetto di dissimiglianza è un criterio metrico che ci consente di associare
le ricorrenze di dati in maniera dinamica senza la necessità di creare rigide
classi di equivalenza.
È possibile far dipendere il processo di associazione tra la ricorrenza A e la
ricorrenza B (oppure l'insieme di ricorrenze B1,B2,...,Bm) da un parametro
di soglia che misura il grado di dissimiglianza oltre il quale le ricorrenze non
sono più associabili.
Descrivendo gli oggetti della nostra rappresentazione, le entità, in termini di
proprietà possiamo creare dei processi associativi e generare degli schemi
classificatori basati su considerazioni intrinseche agli oggetti stessi e in cui
tutto il contenuto informativo rappresentato è presente nel dato.
Le classi ottenute in tal modo sono dinamiche e si autogenerano nel modello
sulla base delle ricorrenze specifiche presenti in memoria.
Uno spazio di memorizzazione contiene dati, i dati sono sostanzialmente
rappresentabili ( almeno per un elaboratore ciò è vero) tramite un vettore
binario finito.
Possedere un criterio associativo basato sulle proprietà delle
rappresentazioni in memoria produce una semplificazione in molti
problemi di memorizzazione e ricerca delle informazioni.
È possibile considerare simili due rappresentazioni in memoria quando il
peso degli attributi comuni alle due rappresentazioni supera il peso degli
attributi diversi.

18
Per fissare le idee consideriamo l'insieme degli stati possibili di un generico
sistema di memorizzazione e rappresentiamolo con un insieme di vettori
V = <v1,v2,...,vn>.
Costruiamo un criterio di dissimiglianza che consenta di associare oppure no
uno stato possibile vk nello spazio dei vettori V da un arbitrario stato vl o da un
insieme di stati vl1,vl2,...,vlm.
Generiamo perciò una funzione distanza definita tra i vettori dello spazio V.
La funzione costruita sul rapporto tra la misura dell'insieme differenza
simmetrica e la misura dell'insieme unione tra due vettori di V, vk e vl ci
fornisce una metrica particolarmente interessante per trattare la differenza tra
rappresentazioni.
L'insieme differenza simmetrica contiene le proprietà che appartengono ad una
rappresentazione ma non all'altra e viceversa.
L'insieme unione contiene le proprietà che appartengono o ad una
rappresentazione o all'altra.
In altre parole il rapporto tra il numero di attributi che sono in comune e il
numero di attributi complessivamente coinvolti nella descrizione degli
oggetti confrontati è una funzione metrica e ad essa attribuiamo un ruolo
determinante nel processo di associazione e di valutazione delle simiglianze tra
rappresentazioni.
La funzione sopra descritta induce effettivamente una metrica ed è notevole
notare come essa non dipenda da tutte le proprietà definite su V ma dipenda
solamente da quelle appartenenti ad uno o all'altro tra gli insiemi confrontati;
di più essa ha una validità del tutto generale.
La caratteristica di cui appena detto risulta particolarmente valida in quanto
non richiede una definizione preliminare di tutto lo spazio metrico generato
(tutti gli attributi gestiti dal sistema, tutti i domini, ecc...) si presenta invece in
maniera dinamica: ogni attributo viene aggiunto solo nel momento in cui
viene utilizzato; tipicamente quando un oggetto che possiede tale attributo entra
in relazione col sistema di memorizzazione.
In altri termini, la dissimiglianza tra due entità rappresentate nel sistema viene
misurata sulla base delle proprietà effettivamente manifestate dalle entità
confrontate e non sulla base di proprietà ipotetiche o possibili: il riferimento è
circostanziale e determinato e non assoluto e trascendente.

19
2.2 Definizione di una metrica associativa

Descriviamo la notazione che utilizzeremo nel seguito.


Il simbolismo di cui faremo uso si considera come una particolare forma di
linguaggio scientifico. Quest'ultimo si distingue dal linguaggio ordinario per
la sua precisione, in quanto un segno o un insieme di segni di un linguaggio
scientifico deve soddisfare l'esigenza di avere, per coloro che l'impiegano, un
unico significato, e questo non sempre avviene nel linguaggio ordinario.

A meno che non venga specificato diversamente, in un certo contesto, ai fini di


una maggiore chiarezza espositiva, utilizzeremo la seguente notazione:

a) Simboli del calcolo delle proposizioni:

P - proposizione
¬P - negazione
P&Q - congiunzione
PvQ - disgiunzione
P -> Q - implicazione
P <-> Q - doppia implicazione

b) Simboli del calcolo delle classi

x∈α - appartenenza
α⊂β - inclusione
α=β - identità
α' - complementazione
α∩β - intersezione
α∪β - unione

c) Quantificatori

(√x) - universale (per ogni)


(∃x) - esistenziale (esiste un)

20
Definiamo ora una metrica associativa su un arbitrario insieme di oggetti,
consideriamo alcune definizioni.

Definizione 2.2.1 (Definizione di σ-anello)

Sia X un insieme non vuoto e S un sottoinsieme non vuoto di


|P(X), potenza di X, S è un anello se:

(i) xi, xj ∈ S => xi \ xj ∈ S


(ii) xn ∈ S (n) ∈ |N => ∪ xn ∈ S
n=1

Se, di più, X ∈ S, allora S è una σ-algebra.

Definizione 2.2.2 (Definizione di Spazio Topologico)

Sia T una topologia per X; (x,T) spazio topologico:

1) ∅ ∈ T e X ∈ T

2) (xi),(xj) xi,xj ∈ T ∪ xk ∈ T
k=i,j

3) (x1),(x2),...,(xn) con n finito x1,x2,...,xn ∈ T

n
∩ xk ∈ T
k=1

allora T è una σ-algebra.

21
TEOREMA 2.2.3

Se ƒ: X --> Y e T è un σ-anello di sottoinsiemi di Y,

-1
allora {ƒ (y): y ∈ T } è un σ-anello di sottoinsiemi di X.

Se S è un σ-anello di sottoinsiemi di X, allora

-1
{ y : y ⊂ Y, ƒ (y) ∈ S } è un σ-anello di sottoinsiemi di Y.

(fig 2.1)

22
TEOREMA 2.2.4

INDUZIONE DI SPAZI METRICI ISOMETRICI SU INSIEMI

Sia µ1 : T1 --> |R+ \ {∞} una misura finita sulla topologia T1

(X,T1) , vale :

(i) µ1 è non negativa

(ii) µ1(∅) = 0

(iii) µ1 è numerabilmente additiva

(iv) µ1 è finita

di più valga (v) µ1(xi) ≠ 0 (xi) ∈ T1 , xi ≠ ∅

Siano (X,T1) , (Y,T2) due spazi topologici.


-1
Sia ƒ : T1 ---> T2 tale che ƒ (∅) = ∅ .

Consideriamo la seguente funzione µ2 : T2 ---> |R+ \ {∞}


-1
così definita: µ2(y) = µ(ƒ (y)) , y ∈ T2

allora µ2 è una misura finita infatti :

(i) µ2 è non negativa


-1
(ii) µ2(∅) = µ1(ƒ (∅)) = µ1(∅) = 0

23
(iii) µ2 è numerabilmente additiva essendolo µ1

(iv) µ2 è finita

-1
e allora vale µ2(yi) = µ1(ƒ (yi)) = µ1(xi)

dove xi ∈ T1 e yi ∈ T2 .

Poniamo

µ1(xi ∆ xj)
a) dx (xi,xj) = kx  (xi),(xj) ∈ T1
µ1(xi ∪ xj)

µ2(yi ∆ yj)
b) dy (yi,yj) = ky  (yi),(yj) ∈ T2
µ2(yi ∪ yj)

dx e dy sono distanze e inducono spazi metrici

su T1 e T2 Mx = (T1,dx) , My(T2,dy)

allora (xi),(xj),(yi),(yj) xi,xj ∈ T1 yi,yj ∈ T2

2.2.5) dx (xi,xj) = β dy (yi,yj)

vale a dire Mx è isometrico a My.

Dimostrazione della 2.2.5).

-1 -1 -1
poichè ƒ (yi) \ ƒ (yj) = ƒ (yi \ yj) ,

24
-1 ∞ ∞ -1
ƒ ( ∪ yn ) = ∪ ƒ ( yn ) e
n=1 n=1

-1
µ2 ( y ) = µ1 (ƒ ( y ))

si ha
-1
µ2 ( yi ∆ yj) = µ1 (ƒ ( yi ∆ yj ) =

-1 -1
= µ1 (ƒ ( yi ) ∆ ƒ ( yj )) = µ1 ( xi ∆ xj )

e
-1
µ2 ( yi ∪ yj) = µ1 (ƒ ( yi ∪ yj ) =

-1 -1
= µ1 (ƒ ( yi ) ∪ ƒ ( yj )) = µ1 ( xi ∪ xj ) .

allora

µ2(yi ∆ yj) µ1(xi ∆ xj)


dy (yi,yj) = ky  = ky  =
µ2(yi ∪ yj) µ1(xi ∪ xj)

ky µ1(xi ∆ xj) 1
=  kx  =  dx (xi,xj)
kx µ1(xi ∪ xj) β

kx
dove β = 
ky

25
Esempio:

consideriamo una ƒ : X ---> Y

dove X = [1,4]

Y = [1,2[ , [3,4[ , [5,6]

ƒ(x) = x x ∈ [1,2[

ƒ(x) = x + 1 x ∈ [2,3[

ƒ(x) = x + 2 x ∈ [3,4]

(fig 2.2)

26
sia la misura µ1:

µ1 ([xi,xj]) = xj - xi

allora

µ2 ([ƒ(xi),ƒ(xj)]) = xj - xi

per esempio:
-1 -1
µ2([1,4]) = µ1([ƒ (1),ƒ (4)]) = µ1([1,3]) = 3 - 1 = 2

µ1([1,2] ∪ [3,4]) (2-1)+(4-3) 2


dx ([1,3],[2,4]) =  =  = 
µ1([1,4]) 4-1 3

µ2([1,2] ∪ [5,6]) µ2([1,2])+µ2([5,6])


dy ([1,4],[2,6]) =  = 
µ2([1,6]) µ2([1,6])

µ1([1,2])+µ1([3,4]) (2-1)+(4-3) 2
=  =  = 
µ1([1,4]) 4-1 3

TEOREMA 2.2.6

Definizione di una metrica su insiemi

Sia X un insieme non vuoto e S un sottoinsieme ≠ ∅ di

|P(X), la potenza di X.

Sia µ : S ---> |R+ \ {∞} una misura su S.

Allora la funzione d : S x S ---> |R+ , k ∈ |R+

27
definita come:

a) d(∅,∅) = 0 per xi=xj=∅

b) d(xi,xj) = k se µ(xi ∪ xj) = 0

µ(xi ∆ xj)
c) d(xi,xj) = k  (xi), (xj), xi,xj ∈ S
µ(xi ∪ xj) xi,xj ≠ ∅
µ(xi ∪ xj) ≠ 0

dove

(xi ∆ xj) = (xi ∪ xj) \ (xi ∩ xj) è la differenza asimmetrica;

soddisfa a:

1) 0 ≤ d(xi,xj) < +∞

2) d(xi,xj) = 0 sse xi=xj

3) d(xi,xj) = d(xj,xi)

4) d(xi,xj) + d(xi,xk) ≥ d(xj,xk) (xi),(xj),(xk) ∈ S

e pertanto (S,d) è uno spazio metrico

e d è una distanza.

Dimostrazione :

La dimostrazione dei punti 1) 2) e 3) segue immediatamente dalle definizioni.

28
Per dimostrare il punto 4) procediamo come segue:

4) d(x1,x2) + d(x1,x3) - d(x2,x3) ≥ 0 (x1),(x2),(x3) ∈ S

LEMMA 2.2.7

A.1) µ(x1 ∩ x2) ≥ µ(x1 ∩ x3) - [ µ(x3) - µ(x3 ∩ x2) ]

Dimostrazione della A.1:

poichè la misura dell'unione di due insiemi disgiunti è sempre


uguale alla somma della misura dei due insiemi vale:

per ogni xm,xn ∈ S

B.1 µ(xm) = µ(xm ∩ xn) + µ(xm \ xn)

B.2 µ(xm \ xn) = µ(xm) - µ(xm ∩ xn)

in particolare

B.3 µ(x1 ∩ x3) = µ(x1 ∩ x3 ∩ x2) + µ((x1 ∩ x3) \ x2)

B.4 µ(x3) - µ(x3 ∩ x2) = µ(x3 \ x2)

ora poichè per ogni xm, xn, xk ∈ S vale:

(con xm' si indica il complementare di xm)

C.1 xm \ xn = xm ∩ xn'

C.2 (xm \ xn) \ [xm \ (xn ∪ xk)] =


= (xm ∩ xn') ∩ [xm ∩ (xn ∪ xk)']' =
= (xm ∩ xn') ∩ [xm' ∪ (xn ∪ xk)]

29
applicando le regole di De Morgan

(A ∪ B)' = A' ∩ B'


e
(A ∩ B)' = A' ∪ B'

la C.2 diviene

C.2 [(xm ∩ xn') ∩ xm'] ∪ [(xm ∩ xn') ∩ (xn ∪ xk)] =

[(xm ∩ xn' ∩ xn) ∪ (xm ∩ xn' ∩ xk)] = xm ∩ xn' ∩ xk

(fig. 2.3)

perciò

30
C.3 (xk ∩ xm) \ xn = (xk ∩ xm) ∩ xn' = xk ∩ xm ∩ xn'

C.4 (xm \ xn) \ [xm \ (xn ∪ xk)] = (xk ∩ xm) \ xn

da cui

D.1 µ(xm \ xn) = µ((xk ∩ xm) \ xn) + µ(xm \ (xn ∪ xk))

quindi applicata nel nostro caso:

D.2 µ(x3 \ x2) = µ((x1 ∩ x3) \ x2) + µ(x3 \ (x2 ∪ x1))

(fig. 2.4)

31
Allora la A.1, per la B.3 e per la B.4, diviene

A.1 µ(x1 ∩ x2) ≥ µ(x1 ∩ x3) - [µ(x3) - µ(x3 ∩ x2)]

µ(x1 ∩ x2) ≥ µ(x1 ∩ x3 ∩ x2) + µ((x1 ∩ x3) \ x2) -

- [µ(x3) - µ(x3 ∩ x2)]

µ(x1 ∩ x2) ≥ µ(x1 ∩ x3 ∩ x2) + µ((x1 ∩ x3) \ x2) - µ(x3 \ x2)

per la D.2 si ottiene

µ(x1 ∩ x2) ≥ µ(x1 ∩ x3 ∩ x2) + µ((x1 ∩ x3) \ x2) -

- µ((x1 ∩ x3) \ x2) - µ(x3 \ (x2 ∪ x1))

pertanto

µ(x1 ∩ x2) ≥ µ(x1 ∩ x3 ∩ x2) - µ(x3 \ (x2 ∪ x1))

che dimostra l'asserto (Lemma 2.2.7)

LEMMA 2.2.8

A.2 µ(x1 ∪ x2) = µ(x1) + µ(x2) - µ(x1 ∩ x2)

la dimostrazione è immediata.

Consideriamo la 4)

4) d(x1,x2) + d(x1,x3) - d(x2,x3) ≥ 0

µ(x1 ∆ x2) µ(x1 ∆ x3) µ(x2 ∆ x3)


 +  -  ≥ 0
µ(x1 ∪ x2) µ(x1 ∪ x3) µ(x2 ∪ x3)

32
µ(x1 ∪ x2) - µ(x1 ∩ x2) µ(x1 ∪ x3) - µ(x1 ∩ x3)
 +  -
µ(x1 ∪ x2) µ(x1 ∪ x3)

µ(x2 ∪ x3) - µ(x2 ∩ x3)


-  ≥ 0
µ(x2 ∪ x3)

Consideriamo il termine:

µ(x2 ∪ x3) - µ(x1 ∩ x3) µ(x2) + µ(x3) - 2 µ(x2 ∩ x3)


T.1  = 
µ(x2 ∪ x3) µ(x2) + µ(x3) - µ(x2 ∩ x3)

dal lemma A.1 µ(x2 ∩ x3) ≥ µ(x2 ∩ x1) - [µ(x1) - µ(x1 ∩ x3)]

otteniamo

µ(x2 ∪ x3) - µ(x1 ∩ x3)


 ≤
µ(x2 ∪ x3)

µ(x2) + µ(x3) - 2 {µ(x2 ∩ x1) -[µ(x1) - µ(x1 ∩ x3)]}


≤ 
µ(x2) + µ(x3) - µ(x2 ∩ x1) + [µ(x1) - µ(x1 ∩ x3)]

µ(x2) + µ(x3) + 2µ(x1) - 2µ(x2 ∩ x1) - 2µ(x1 ∩ x3)


= 
µ(x1) + µ(x2) + µ(x3) - µ(x2 ∩ x1) - µ(x1 ∩ x3)

µ(x1) + µ(x2) - µ(x2 ∩ x1) - µ(x2 ∩ x1)


=  +
µ(x1) + µ(x2) - µ(x2 ∩ x1) + [µ(x3) - µ(x1 ∩ x3)]

33
µ(x1) + µ(x3) - µ(x1 ∩ x3) - µ(x1 ∩ x3)
+  =
µ(x1) + µ(x3) - µ(x1 ∩ x3) + [µ(x2) - µ(x2 ∩ x1)]

µ(x1 ∪ x2) - µ(x1 ∩ x2)


=  +
µ(x1 ∪ x2) + [µ(x3) - µ(x1 ∩ x3)]

µ(x1 ∪ x3) - µ(x1 ∩ x3)


+ 
µ(x1 ∪ x3) + [µ(x2) - µ(x2 ∩ x1)]

poichè [µ(xm) - µ(xm ∩ xn)] ≥ 0 vale:

µ(x1 ∪ x2) - µ(x1 ∩ x2)


 +
µ(x1 ∪ x2) + [µ(x3) - µ(x1 ∩ x3)]

µ(x1 ∪ x3) - µ(x1 ∩ x3)


+  ≤
µ(x1 ∪ x3) + [µ(x2) - µ(x2 ∩ x1)]

µ(x1 ∪ x2) - µ(x1 ∩ x2) µ(x1 ∪ x3) - µ(x1 ∩ x3)


≤  + 
µ(x1 ∪ x2) µ(x1 ∪ x3)

che dimostra la tesi. (punto 4)

Esempio:

d(xi,xk) + d(xk,xj) ≥ d(xi,xj)

Consideriamo come elementi dell'insieme S tre intervalli in |R.

x1 = [1,4] x2 = [3,5] x3 = [2,6]

34
µ([1,4] ∆ [2,6]) (2-1)+(6-4) 3
d(x1,x3) =  =  = 
µ([1,4] ∪ [2,6]) (6-1) 5

µ([2,6] ∆ [3,5]) (3-2)+(6-5) 2


d(x3,x2) =  =  = 
µ([2,6] ∪ [3,5]) (6-2) 4

µ([1,4] ∆ [3,5]) (3-1)+(5-4) 3


d(x1,x2) =  =  = 
µ([1,4] ∪ [3,5]) (5-1) 4

3 2 22 15 3
+= >  =
5 4 20 20 4

1 2 3 4 5 6
x1 []

x2 []

x3 []

(fig 2.5)

35
2.3 Il processo di inferenza

Il processo di inferenza è essenzialmente un processo di prova ed errore.


Quando un programma analizza un certo stato, deve essere in grado di decidere
se sta andando nella direzione giusta o se deve cambiare direzione. Questa
decisione è un compito estremamente difficile, in essa si riassume tutta la
potenzialità dell'algoritmo di soluzione.
Metodi euristici cercano di produrre inferenze generate dal computer
procedendo nello stesso modo in cui noi procederemmo sulla base della nostra
esperienza. Affinchè un programma possa produrre inferenze corrette è
necessario che utilizzi quei principi euristici che sono più efficaci per uno
scopo particolare: più lo scopo è particolare e definito più i principi euristici
possono essere efficaci. È importante a questo scopo scoprire come sia
possibile utilizzare la conoscenza euristica umana nei programmi a computer.

I metodi di inferenza possono essere classificati in :

1) inferenza probabilistica;
2) inferenza induttiva;
3) inferenza basata sul ragionamento del senso comune
4) inferenza basata sul ragionamento qualitativo
5) inferenza basata sul ragionamento analogico

Il processo di scoprire le similarità e di usarle in una inferenza è esso stesso


un'inferenza nota come principio di inferenza, e tale inferenza esiste ovunque e
ovunque viene utilizzata. Infatti ovunque nel ragionamento umano troviamo
questo principio di inferenza: il riconoscimento delle similarità.
Non si potrebbe vivere senza operare con tale inferenza.
Nel giudizio che diamo, costantemente, su di un fatto presente, teniamo in
considerazione tutti i fatti precedenti che presentano delle relazioni con il fatto
attuale e il nostro giudizio si basa sulla quantità di similarità che riusciamo a
scoprire. Inferire una conclusione da un'inferenza - regola di inferenza -
trovando le similarità dalle sue ipotesi è un importante tecnica. Le similarità si
manifestano grazie ad un accordo o concomitanza delle rappresentazioni dei
fatti considerati. Anche nel caso di accordo perfetto, ci sono molte forme in cui
si manifesta questo accordo, per esempio, l'accordo di due simboli, l'accordo
di due liste di simboli, l'accordo di due strutture o l'accordo di due strutture
grafiche. Nel caso di accordo non perfetto, vi sono ancora parecchie
possibilità. Basta pensare a cosa intendiamo quando diciamo che due stringhe
di caratteri sono simili, o che due strutture grafiche sono simili, o due frasi,
oppure quando riconosciamo similarità fra due figure bidimensionali, disegni,

36
melodie, storie e così via. Anche se il riconoscimento di similarità, che sta
alla base dell'inferenza, non è stato studiato a sufficienza, rimane comunque
un problema veramente cruciale. Per eseguire con successo un tale
riconoscimento, dobbiamo trovare similarità tra un determinato oggetto e il
nostro modello interno oppure, se vogliamo, la rappresentazione dell'oggetto
nella nostra base di conoscenza. Questo processo di riconoscimento è anche
un processo di inferenza. Quindi, riconoscimento, inferenza, e conoscenza
sono concetti tutti strettamente correlati.
È particolarmente difficile rappresentare il nostro complesso mondo
utilizzando soltanto regole.
Comunque nel caso di due sistemi S1, S2 collegati tramite un canale di
comunicazione binario esiste la possibilità di definire le similarità esistenti tra
i messaggi che possono viaggiare nel canale di comunicazione: poichè i
messaggi non sono altro che vettori binari se trasformiamo tali vettori in uno
spazio di rappresentazione opportuno nel quale ad ogni bit viene associata una
proprietà dotata di significato allora la presenza di proprietà comuni a due
messaggi ci fornisce un criterio di similarità utilizzabile per valutare la
similarità dei messaggi.

Normalmente la comunicazione avviene tramite lo scambio di parole


organizzate in frasi di senso compiuto.
Una idea che si è sviluppata nel tempo tra gli informatici è stata quella di
classificare le parole: questo tentativo ha dato origine ai thesaurus.
Vediamo un esempio di thesaurus per parole in generale.
Partiamo dal presupposto che il mondo in cui viviamo contiene una vasta
collezione di conoscenze che può essere considerata anche come una
collezione di concetti. Poichè i concetti possono essere espressi da parole, una
collezione di parole può supportare l'intera collezione della nostra conoscenza.
L'unità base del linguaggio è la parola.
Molta conoscenza può essere espressa come frasi che sono costituite da
combinazioni di parole. Allora, le parole, considerate come unità base delle
frasi, costituiscono la base per esprimere la conoscenza, ed è veramente
importante organizzarle in maniera sistematica. La maniera in cui noi
classifichiamo le parole dipende da come le riconosciamo, comprendiamo, e da
come rappresentano il mondo. Tutto ciò si presenta come un compito molto
difficile e non si è ancora in grado di creare una classificazione soddisfacente.
È interessante a questo proposito il tentativo di P. Roget.
Un punto degno di nota nella sua classificazione è l'enfasi riposta sui concetti
astratti, fisici e meccanici; intelletto, volontà, emozione, ...
È inoltre interessante notare come l'intelletto sia suddiviso in due grandi
gruppi: la formazione delle idee e la comunicazione delle idee.

37
Il tesaurus di Roget sembra sottolineare i sinonimi piuttosto che
l'organizzazione di parole per concetti generali e parole per concetti
specifici.

TABELLA Tesaurus di Roget


---------------------------------------------------------------------------------
classe sezione codice
---------------------------------------------------------------------------------
1. relazioni astratte esistenza 1-8
relazioni 9-24
quantità 25-57
ordine 58-83
numero 84-105
tempo 106-139
cambiamento 140-152
causalità 153-179
2. spazio spazio in generale 180-191
dimensioni 192-239
forma 240-263
movimento 264-315
3. materia materia in generale 316-320
materia inorganica 321-356
materia organica 357-449
4. intelletto (uso della mente)
(1) formazione di idee in generale 450-454
condizioni a priori
e operazioni 455-466
materiale per il
ragionamento 467-475
processi per il
ragionamento 476-479
risultati del
ragionamento 480-504
estensioni del
pensiero 505-513
pensiero creativo 514-515
(2) comunicazione delle idee natura delle idee
comunicate 516-524
modelli di
comunicazione 525-549

38
significato delle
idee comunicate 550-599
5. volontà (esercizio della volontà)
(1) volontà individuale volontà in generale 600-619
volontà prospettica 620-679
azione volontaria 680-703
antagonismo 704-728
esito dell'azione 729-736
(2) volontà sociale volontà sociale
in generale 737-759
volontà sociale
particolare 760-767
volontà sociale
condizionata 768-774
relazioni possessive 775-819
6. emozione,religione e moralità
generale 820-826
emozione personale 837-887
emozione
interpersonale 888-921
moralità 922-975
religione 976-1000
---------------------------------------------------------------------------------------

(fig 2.6)

A differenza del thesaurus di Roget che presenta un carattere generale, la


maggior parte dei thesaurus costruiti si occupano di termini tecnici propri di
settori particolari. I concetti propri di aree tecniche come per esempio
l'ingegneria elettronica, la scienza del computer o l'economia sono espressi
in termini tecnici. È necessario raggruppare tutti i termini tecnici di una
particolare materia e chiarire le relazioni tra tali termini per rendere il
significato dei termini e delle strutture il più chiaro possibile. A differenza di
un thesaurus di termini generali, un thesaurus di termini tecnici è di solito
creato con un preciso proposito; come per esempio creare un sistema di ricerca
delle informazioni con una determinata organizzazione e utilizzare tale
organizzazione come strumento per processare il linguaggio naturale.

39
È possibile individuare le seguenti relazioni dalle connessioni tra termini
tecnici:

1) relazioni tra nomi


a) sinonimi - antinomie
b) termini generali - termini specifici
c) parole simili
d) relazioni
d1) relazione parte_di, relazione composto_da
d2) relazione d'ordine, di causa-effetto, successione
d3) relazione logica
d4) relazione di simiglianza
(determinata dall'avere le stesse caratteristiche)
e) parole composte - parole derivate

2) relazioni tra verbi e nomi esempio


a) soggetto del verbo il cane abbaia
b) oggetto comprare un libro
c) beneficiario dare qualcosa al cane
d) strumento, metodo mangia col cucchiaio
e) locazione va a Roma
f) tempo arriva alle cinque
f) causa arriverò tardi a causa di un terremoto
g) ruolo la sua funzione è dirigente

I sistemi di Information - Retrieval usano spesso relazioni che valgono tra le


parole, come nel caso 1). Le relazioni del tipo 2) tra verbi e nomi vengono
utilizzate per analizzare frasi oppure per analizzare il contesto di un'azione
nell'ambito della rappresentazione della conoscenza. Nell'ambito di un'area
tecnica una parola conserva un preciso significato tecnico a cui è fortemente
legata. Considerando il mondo accademico come un'area tecnica specifica,
notiamo che oltre alle parole che sono considerate standard nel mondo
accademico, varie altre parole possono essere usate per indicare lo stesso
oggetto.

Una parola che sia ufficialmente riconosciuta come indice è chiamata


descrittore; altre parole sono considerate non descrittori.

40
Accenniamo brevemente ad un ulteriore tentativo di classificazione delle
relazioni possibili tra i nomi:

relazione simbolo descrizione


---------------------------------------------------------------------------------------

1) gerarchica BT termine generale (broader term)


NT termine particolare (narrower term)

2) generica BTG termine generale generico


NTG termine particolare generico

3) partitiva BTP termine generale partitivo


NTP termine particolare partitivo

4) associativo RT termine in relazione

5) antinomia A

6) equivalenza USE utilizza per


UF usato per
USE+ usa in combinazione

Appare evidente dagli esempi riportati quanto risulti complesso e difficoltoso il


compito di classificare in uno schema complessivo le parole del linguaggio.
Effettivamente la complessità del linguaggio è notevole e di fronte al
problema di trovare dei criteri che ci consentano di afferrare le similarità tra
messaggi espressi nel linguaggio naturale chiunque si scoraggerebbe ancor
prima di cominciare. D'altra parte possiamo ragionare su messaggi più
semplici di quelli espressi nel linguaggio naturale e concentrarci su cosa
succede nel canale di comunicazione tra due sistemi che si scambiano
messaggi.

L'informazione generalmente contiene alcune caratteristiche chiamate attributi.


Ogni pezzo di informazione si distingue da un'altro sulla base del valore che
assume ciascun attributo.
Supponiamo di chiamare ciascun attributo fi (i=1,2,...,n) e il valore di ogni
attributo fij (j=1,2,...,ji). Allora ogni pezzo di informazione esiste in ciascuno
dei punti del reticolo j1 x j2 x ... x jn dello spazio n-dimensionale i cui assi

41
sono le fi. In altre parole, ogni pezzo di informazione a può essere
rappresentato utilizzando il seguente vettore:

a: (f1a, f2a, ... ,fna)

tale vettore è chiamato vettore degli attributi e il suo raggio è detto spazio delle
caratteristiche (feature space). Dove fia è il valore dell'attributo fi per la
parte di informazione a.

(fig 2.7)

42
2.4 Il trattamento dell'incertezza

Consideriamo, ora brevemente, il tema della conoscenza inferenziale e della


risoluzione di problemi.
(Inferential Knowledge and Problem Solving).

Il primo compito che ci si prefigge quando si affronta un problema, cercandone


una soluzione automatica, consiste nel rappresentare lo spazio degli stati del
problema stesso.

Vi sono principalmente due tipi di informazione che descrivono gli stati


accessibili di un problema:

a) primo tipo di conoscenza: certi fatti sono veri;


b) secondo tipo di conoscenza: regole del tipo "IF fatto1 THEN fatto2".

Per esempio consideriamo il seguente semplice problema: depositiamo tre


monete sul tavolo a caso, alcune saranno rivolte dalla parte testa altre dalla
parte croce. Il gioco consiste nell'ottenere tutte le monete girate nello
stesso verso, tutte testa o tutte croci, a partire dalla configurazione casuale
iniziale; l'unica mossa consentita consiste nel girare due monete
contemporaneamente.
Allora, riassumendo, si hanno i seguenti punti:

1) La soluzione è la configurazione con tutte e tre le monete dalla stessa


faccia: T T T oppure C C C.

2) Ad ogni istante il problema è espresso da uno stato particolare.

3) Le regole del gioco consistono nella transizione da uno stato ad un'altro.

4) Sono permesse parecchie transizioni che creano una struttura ad albero.


Tale struttura è chiamata: albero di ricerca (search tree). Poichè il numero
degli stati è finito abbiamo uno spazio degli stati finito (state-space search). Ad
ogni transizione ogni transizione successiva è ammessa: gli stati successivi
sono in relazione OR (Or tree). Avremo un grafo degli stati (state graph).
La verifica delle regole della forma A --> B è detta pattern matching.

43
Questo primo semplice esempio contiene gli elementi principali da definire
nella formalizzazione della soluzione automatica di problemi. Nell'esempio le
configurazioni possono essere elencate una per una e rappresentate per
esempio come (T,C,T).
Vediamo un caso leggermente più complesso, consideriamo n monete. In tal
caso il numero delle configurazioni diviene eccessivo. Rappresentiamo allora
gli stati raggruppandoli (grouping state) con la coppia di valori numerici
(n1,n2) che rappresentano:

1) n1 = numero di T teste nella configurazione;


2) n2 = numero di C croci nella configurazione;
3) n1 + n2 = n ;
4) n1 ed n2 positivi.

Le regole diventano:

stato corrente stato successivo


a) (n1,n2) (n1-2,n2+2)
b) (n1,n2) (n1+2,n2-2)

Il Goal : (0,n) oppure (n,0).

Dagli esempi risulta evidente come l'algoritmo di soluzione sia legato al tipo
di rappresentazione del problema.

Per affrontare problemi di una certa complessità occorre raffinare gli algoritmi
di risoluzione e implementare con metodo la base di conoscenza. Alcune
tipologie di risoluzione e di rappresentazione della base di conoscenza sono
divenute di uso corrente grazie alla diffusione e standardizzazione dei sistemi
esperti, anche se la ricerca in tale settore non li rende definitivi, oggigiorno
possiamo trovare sistemi esperti efficienti ed affidabili.
I sistemi esperti si compongono di:

a) una base di conoscenza;


b) un motore inferenziale.

I principali problemi non ancora completamente risolti ed oggetto di ricerca


nel settore dei sistemi esperti possono essere riassunti nei seguenti punti:

44
1) La complessità del problema: problemi troppo complessi presentano
notevoli difficoltà di implementazione anche per i sistemi esperti più
sofisticati;

2) Incompletezza o incertezza delle informazioni disponibili;

3) difficoltà di razionalizzare in modo preciso molti procedimenti mentali


utilizzati, invece, dall'esperto umano;

Quando ci si trova di fronte ai problemi sopra esposti, nello sviluppo di un


sistema esperto, le possibili alternative per superare l'ostacolo sono:

a) procedere per tentativi;


b) sviluppare metodi di implementazione che utilizzino processi
mentali deduttivi in ambito di incertezza.

Un sistema esperto possiede di solito un modulo chiamato modulo di


spiegazione che consente all'utilizzatore di analizzare i passi logici che il
sistema ha seguito per fornire la risposta. Il colloquio avviene tramite un
modulo di interfaccia.

Un sistema esperto utilizza la descrizione del problema per determinarne la


soluzione, mentre i sistemi tradizionali utilizzano una procedura di risoluzione.

La descrizione dettagliata del problema costituisce per il sistema esperto la


propria base di conoscenza. I sistemi esperti sono di supporto per la soluzione
di problemi complessi. Alcuni sistemi trattano efficacemente le informazioni
della base di conoscenza utilizzando il concetto di stato.
Il processo di risoluzione è visto come il passaggio da uno stato appartenente
ad una classe (stati iniziali) ad uno appartenente ad un'altra (stati finali) ; il
passaggio è scomposto in una catena di passaggi a successivi stati intermedi.
Il primo passo per la soluzione di un problema è la sua definizione precisa: per
far questo generalmente occorre puntare l'attenzione su alcuni aspetti:

a) il campo di definizione del problema


(l'insieme di tutti gli stati possibili);

b) lo stato iniziale del problema;

c) lo stato finale del problema;

45
d) le regole che definiscono le possibili transizioni tra uno
stato e l'altro;

e) i fatti e le regole che aiutano a decidere la via migliore da


seguire per passare da uno stato ad un altro
(conoscenza euristica).

È utilizzando la conoscenza euristica che si stabiliscono le "priorità" tra gli


stati. La conoscenza, per poter essere interpretata dal motore inferenziale,
deve essere "racchiusa" in strutture formali adeguate.

Il metodo principale consiste nella rappresentazione della conoscenza tramite


regole.

L'insieme delle regole e delle proposizioni della base di conoscenza forma un


grafo (e non un albero) in quanto regole diverse possono avere in comune delle
proposizioni antecedenti e possono avere la stessa proposizione come
conseguente. Proposizioni che sono fra gli antecedenti di una regola possono
essere conseguenti di altre. Un importante problema che ci si pone durante la
progettazione degli algoritmi risolutivi è come trasformare il grafo del
problema in un albero.

Le regole si possono suddividere in tre classi:

1) question - affermazioni iniziali ;


2) proposizioni intermedie ;
3) goal - deduzioni finali.

Esiste un nodo spinoso noto a coloro che si occupano di risoluzione di


problemi tramite l'utilizzo di grafi e consiste nel problema dei grafi viziosi:
grafi che presentano dei cicli ineliminabili (loop).
Il problema dei grafi viziosi può essere formulato nel modo seguente:

Esiste un ai ∈ {a1,a2,...,an} tale che se:

{a1,a2,...,an}--> bj ; {...,bj,...}-->...
...--> vk ; {...,vk,...}--> z tale che z = ai

Le principali tecniche per descrivere la conoscenza necessaria a imitare


l'euristica sono:

46
a) l'uso di metaregole, regole che parlano di regole, che consigliano la scelta di
regole al posto di altre ( es. probabilità e livello di astrazione ) ;

b) l'uso di funzioni di valutazione, in altri termini indicatori con cui valutare il


percorso più probabile.

Nella soluzione di un problema la ricerca euristica e la ricerca sistematica


possono essere utilizzate in maniera sinergica. La ricerca euristica non
garantisce la soluzione ottima, in particolare si osserva:

a) adeguatezza statistica dell'euristica


in contrasto con la
b) particolarità individuale dell'evento.

Consideriamo, ora, il funzionamento di un sistema esperto dal punto di vista


algoritmico.
Un sistema esperto funziona sulla base del motore inferenziale.
Il funzionamento del motore inferenziale è costituito essenzialmente da una
iterazione di cicli di riconoscimento/attivazione di regole, tipicamente
suddivise in:

a) ricerca nella base di conoscenza delle regole pertinenti, ossia quelle


collegate con lo stato attuale nel processo di soluzione del problema
considerato;

b) selezione della prima regola incontrata oppure della regola più appropriata
(strategia prefissata);

c) esecuzione della regola e registrazione nella base di dati dei cambiamenti


conseguenti all'applicazione della regola.

Ad ogni ciclo si producono nuove informazioni che si aggiungono alla base


di dati e che vengono utilizzate nei cicli successivi.
Il processo si arresta quando viene trovata la soluzione.
È importante ricordare che si hanno due diversi livelli di soddisfacimento per
una proposizione:

1) il livello di valutazione parziale che si ha quando è stata applicata una


regola che ha come conseguente una certa proposizione;

47
2) il livello di valutazione globale che si ha quando sono state applicate tutte le
regole che hanno quelle proposizioni come con seguente.

Quando il motore inferenziale tratta l'incertezza è necessario che per la


valutazione globale si tenga conto dei contributi apportati da tutte le singole
regole che hanno quella proposizione come conseguente cioè tutte le
valutazioni parziali.

Esistono due modalità di procedere nella ricerca di una soluzione, goal, date
certe premesse: modalità forward e modalità backward:

a) forward - si procede dal basso verso l'alto (bottom-up)


(questions) dai dati del problema ---> goal;

b) backward - si procede dall'alto verso il basso (top-down)


dal goal ---> ai dati del problema (questions).

Esistono alcuni modi di percorrere l'albero di ricerca, in particolare:

1) da sinistra verso destra (breadth first) un livello dopo l'altro;

2) in profondità, dall'alto al basso nell'albero (depth first);

3) con funzione di valutazione, il percorso più promettente (best first).

Soffermiamoci, in particolare, sul metodo best first.


Data la lista dei nodi iniziali si esplora il primo nodo, e si genera la lista dei
nodi figli. Con l'aiuto di una funzione euristica si riordina la lista totale, ovvero
quella iniziale unita a quella dei nodi figli generati nella prima esplorazione.
Alcuni nodi possono essere scartati. Si prende il primo nodo e si genera la lista
dei nodi figli. Il processo si ripete. Il risultato è una visita in alcuni tratti in
profondità e in altri per livelli.

Quando si gestisce l'incertezza bisogna tener conto di tutte le componenti che


contribuiscono alla valutazione di una proposizione. Col metodo best first non
si tiene conto del contributo di quelle componenti che si suppongono
ininfluenti al fine della valutazione globale di una proposizione; si effettuano
cioè delle potature sui rami che vengono valutati portare contributo nullo.

Vediamo, nel seguito succintamente, una struttura teorica per il trattamento


dell'incertezza.

48
I sistemi esperti che trattano l'incertezza lavorano con regole e proposizioni a
cui sono associati dei pesi che, in generale, consistono di numeri reali. Il
motore inferenziale non deve solo individuare una soluzione (goal) vera,
piuttosto deve essere in grado di gestire e "diffondere" l'incertezza espressa
nei pesi delle question e delle regole attraverso tutta la rete di deduzioni, per
fornire il peso di ogni goal.
La propagazione dell'incertezza prevede passi di quattro tipi:

1) il peso delle proposizioni negate deve essere derivato dal peso delle
proposizioni affermative;

2) il peso di una proposizione conseguente deve essere calcolato dai pesi delle
proposizioni antecedenti;

3) il peso di una proposizione conseguente di una regola riceve da tale regola


un contributo dipendente dal peso della regola;

4) una proposizione conseguente varie regole riceve un peso globale ottenuto


componendo i contributi di ciascuna regola.

Si denota come "combining function" la funzione che combina i pesi nella


maniera richiesta dai punti sopra esposti.
Esistono due tipi di approccio al problema dei pesi:

a) approccio "estensionale" - in questo approccio non si parla di pesi come


probabilità classiche, ma ci si pone al di fuori di qualsiasi struttura
probabilistica;

b) approccio "intensionale" - in questo approccio si cerca di interpretare i pesi


come delle probabilità.

Analizziamo alcune caratteristiche tipiche di una "combining function".

Assumiamo che l'insieme dei pesi sia contenuto nell'intervallo [-1,1] dove si
intende:

peso 1 - certamente vero


peso -1 - certamente falso
peso 0 - completamente indeterminato - sconosciuto.

49
definiamo allora:

1) w(P) - peso globale della proposizione p ;


2) w(¬P) - peso della negazione della proposizione p ;
3) wr(A) - peso antecedente della regola r ;
4) w(r) - peso della regola r ;
5) wr(P) - peso parziale della proposizione P dovuto alla regola r.

gli operatori della combining function diventano:

a) neg(w(P)) = w(¬P) peso di una proposizione negata;


b) conj(w(a1),...,w(an)) = wr(A) peso di un antecedente;
c) ctr(wr(A),w(r)) = wr(P) peso parziale;
d) glob(w1(P),...,wn(P)) = w(P) peso globale.

Descriviamo per sommi capi il sistema di deduzione di Hajek.


Poichè per la propagazione della conoscenza incerta ci avvaliamo di un certo
numero di funzioni operanti su un insieme di pesi, è ragionevole pensare di
poterla inquadrare in una struttura algebrica, in particolare in un gruppo.
Una struttura algebrica è composta da:

1. un insieme S detto sostegno;


2. un certo numero di operazioni defiite su S;
3. un certo numero di assiomi: proprietà che le operazioni debbono soddisfare.

Esaminiamo le esigenze di propagazione dell'incertezza.


Oltre al livello di fiducia attribuito ad una proposizione o regola dobbiamo
essere in grado di esprimere anche un grado di fiducia "indifferente" o
"sconosciuto"; lo indicheremo con e elemento neutro :

e: S° ---> S

La funzione glob deve calcolare il peso globale di una proposizione in


funzione dei contributi che le derivano dalle regole di cui è conseguente. Si
può dedurre da un'operazione binaria di composizione:

+ : S x S ---> S
tale che
glob(w1,w2,...,wn) = w1 + w2 + ... + wn

50
Poichè vogliamo che l'ordine delle regole convergenti ad una proposizione
sia ininfluente sul peso globale delle proposizioni la composizione + deve
godere delle seguenti proprietà:

1) associativa: (w + v) + u = w + (v + u) = w + v + u
2) commutativa: w + v = v + w
3) elemento neutro: w + e = w

La funzione neg calcola, noto il peso di una proposizione, il peso della sua
negazione. Si può esprimere tale funzione mediante l'operazione unaria:
_
( ) : S ---> S
di simmetria:
_ _
neg(w) = w inoltre w + w = e

vogliamo infine essere sempre in grado di dire quale è il minore fra due pesi
dati: introduciamo una relazione d'ordine tale che per ogni w, v, u :

1. w ≤ v oppure w > v per cui l'ordine è totale su S


2. w ≤ v , v ≤ u ---> w ≤ u
3. w ≤ v ---> w + u ≤ v + u

Abbiamo così identificato un gruppo abeliano ordinato G composto di:

a) un sostegno S
b) operatori - 1. zeraria: elemento neutro e
_
2. unaria: elemento simmetrico ( )
3. binaria: composizione +

c) assiomi:
1. associatività (w+v)+w = w+(v+u) = w+v+u
2. commutatività w+v = v+w
3. w+e = w
_
4. w+w = e
5. w≤v oppure w>v
6. w≤v , v≤u --> w≤u
7. w≤v --> w+u ≤ v+u

51
Vediamo allora come si presenta il sistema di deduzione di Hajek.

1. Un sistema di regole R esente da loop.

2. Un opportuno dominio D nell'intervallo [-1,1] di pesi


_
3. Una struttura < D,+,( ),e,≤ > che sia la chiusura di un gruppo abeliano
ordinato

4. Le funzioni neg, conj, ctr definite come segue:


_
a) neg(a) = a

b) conj(a,b) = min(a,b)

c) ctr(a,b) = min(a,b) se a > e , b > e oppure


___ _
min(a,b) se a > e , b ≤ e oppure

e se a ≤ e

d) la funzione glob definita come

w1,w2,...,wn ∈ D : glob(w1,w2,...,wn) = w1+w2+...+wn

Con queste assunzioni siamo pertanto in grado di determinare:

1. il peso di una regola


2. il peso globale di una proposizione

Per quanto riguarda l'approccio probabilistico al trattamento dell'incertezza è


possibile riportare le seguenti considerazioni. Si può interpretare il peso di una
proposizione come una "misura" (essenzialmente una misura di probabilità)
della collezione di tutti i possibili mondi in cui la proposizione è vera.
Il tentativo è indirizzato a trovare la migliore distribuzione che soddisfi le
condizioni marginali e usarle per trovare le probabilità delle proposizioni.
Esistono due approcci:

a) teoria della probabilità diretta;


b) teoria della probabilità condizionata.

52
La teoria della probabilità condizionata osserva che le probabilità associate ai
possibili risultati cambiano ad ogni passo in dipendenza dello svolgersi degli
eventi. Queste osservazioni suggeriscono che l'accumularsi di evidenze
può cambiare le probabilità degli eventi.
In generale non ci sono ragioni "a priori".

Vediamo un approccio, dovuto ad Hajek, al trattamento dell'incertezza con


utilizzo dei concetti della probabilità.
Consideriamo le regole espresse nella forma: A ---> H(w) dove:
A = antecedente, H = conseguente, w = peso.

Per semplificare supponiamo siano vere le seguenti affermazioni:

1. La base di conoscenza non deve avere proposizioni intermedie, vi saranno


solo question e goal;

2. I pesi appartengono all'intervallo [0,1] anzichè a [-1,1];

3. L'utente ha la possibilità di rispondere utilizzando solo i pesi {0,0.5,1} che


corrispondono rispettivamente a no, non so, si.

Se Ω è un certo campo di conoscenza e K è un sistema di pesi allora


possiamo scrivere Γ = (Ω,K). Per ogni goal H e ogni congiunzione
elementare E di question possiamo definire peso globale di H dato E
come:

1) W(Γ) = Σ(+) K(En --> E) per ogni En appartenente ad E

Una distribuzione congiunta su Quest ∪ Goal è una funzione D associata ad


ogni congiunzione elementare di elementi di Quest ∪ Goal tale che:

2) Σ(+) D(K) = 1 per ogni K appartenente al dominio di D

La probabilità

3) P(K) = Σ(+) D(Kn) per ogni K appartenente al


D dominio di D e per tutti i
Kn che contengono K

53
la probabilità condizionata E ∈ Ques, H ∈ Goal è data da:

P(H,E)
D
4) P(H/E) = 
D P(E)
D

L'approccio probabilistico al trattamento dell'incertezza presenta notevoli


difficoltà sia tecniche che concettuali e la ricerca è ancora lontana da una
soluzione definitiva o anche semplicemente dalla costruzione di un modello
probabilistico soddisfacente.
A questo riguardo, trovo utile riportare alcune considerazioni ed alcuni teoremi
significativi nello studio della problematica connessa all'approccio
probabilistico del trattamento dell'incertezza in un sistema di deduzioni.

Facendo riferimento al modello di Gaines vi sono alcuni punti da tenere in


considerazione. La conoscenza che deve essere acquisita consiste in:

a) conoscenza fattuale ovvero descrizione del mondo e metodi di risoluzione;


b) valutazioni euristiche ed empiriche.

La nozione centrale di tale modello è il concetto di distinzione.


Le distinzioni sono le strutture più elementari dell'informazione, ciò che è
distinguibile da tutto il resto; le distinzioni possono riguardare elementi statici
o elementi dinamici. In particolare una semplice classificazione delle
distinzioni potrebbe essere la seguente:

a) costruzioni - le distinzioni fatte sugli eventi del mondo;


b) esperienze - eventi che capitano o che facciamo accadere;
c) ipotesi - razionalizzazioni dell'esperienza;
d) analogie - corrispondenza rilevante tra ipotesi diverse;
e) astrazioni - raffinamenti delle analogie;
f) trascendenze - ciò che va al di là dell'astrazione.

L'acquisizione delle valutazioni segue la fase di rappresentazione della


conoscenza questo processo riguarda:

1) lo schema di percezione dell'incertezza;


2) il metodo di propagazione dell'incertezza;

54
3) le valutazioni sugli elementi del mondo e sui mezzi di soluzione dei
problemi.

In relazione alla possibilità di costruire un gruppo abeliano idoneo


all'implementazione di un sistema di deduzione con caratteristiche analoghe ai
sistemi prospettati divengono utili i seguenti teoremi e le seguenti
proposizioni.

TEOREMA 2.4.1 (di Levi).

In base al teorema di Levi un gruppo può essere ordinato se e solo se per


ogni x diverso da e elemento neutro, per ogni n numero naturale positivo si
ha:

1. n * x = x + x + ... + x diverso da e

PROPOSIZIONE 2.4.2
_
Dato il gruppo abeliano ordinato G = < S1, + , ( ) , ≤ >, se S ha almeno un
elemento oltre ad e, allora non esiste in G un elemento che sia massimo nè uno
che sia minimo, per cui G è infinito.
La dimostrazione segue dalle seguenti osservazioni:

1. per ogni x ∈ G se x < e --> x + x < x (x + x) ∈ G,


2. per ogni x ∈ G se e < x --> x < x + x (x + x) ∈ G.

PROPOSIZIONE 2.4.3

Sia ƒ una funzione crescente di [-1,1] su [-∞,+∞], sostegno del gruppo


additivo di reali |R = <[-∞,+∞], + , - , 0 , ≤ >.
Su [-1,1] esiste un gruppo abeliano ordinato archimedeo G = <[-1,1], + , - , ≤ >
tale per cui ƒ è un isomorfismo da G ad |R se e solo se ƒ è dispari, ossia se
per ogni x vale:

1. ƒ(-x) = - ƒ(x) .

55
PROPOSIZIONE 2.4.4

Ogni gruppo ordinato G = <[-1,1], + , - , ≤ > è isomorfo al gruppo additivo


dei reali |R = <[-∞,+∞], + , - , 0 , ≤ > .
Per ogni x ∈ [0,1] vi è un unico isomorfismo di G su |R che ad x assegna
immagine 1 ∈ [-∞,+∞].

PROPOSIZIONE 2.4.5

Siano ƒ1 ed ƒ2 funzioni crescenti dispari di [-1,1] su [-∞,+∞].


Esiste un gruppo ordinato G su [-1,1] tale che sia ƒ1 che ƒ2 trasformano
isomorficamente G in |R, se e solo se esiste un c>0 tale che ƒ1(x) = c ƒ2(x).

PROPOSIZIONE 2.4.6

Per ogni gruppo abeliano ordinato archimedeo G = <[-1,1],+,-,≤ > esiste


un'unica minima estensione non-archimedea G1 contenuta o uguale a G
determinata a meno di un isomorfismo.

TEOREMA 2.4.7 (Belief network decomposition)

Data una rete di affidabilità arbitraria (belief network) che possa essere
suddivisa in due insiemi di nodi, A e B, connessi con un singolo arco da un
nodo x in A ad un nodo y in B. Se l'evidenza negli insiemi è e(A) ed e(B),
allora la probabilità a posteriori:

P{A/e(A),e(B)} e P{B/e(A),e(B)}

può essere calcolata trasmettendo un singolo messaggio con un numero per


ciascun valore possibile di x da un insieme all'altro. In più, i due messaggi
sono indipendenti.

56
(fig 2.8)

I messaggi mandati tra A e B contengono tutte le informazioni rilevanti su


ciascun insieme.

Il vantaggio di utilizzare messaggi per aggiornare la situazione sui nodi,


anzichè ricalcolare tutte le probabilità utilizzando le formule di Bayes, consiste
nel fatto che è possibile comunicare solo le variazioni conservando integra la
conoscenza sul sistema.
Questo teorema rappresenta una fondamentale indicazione sulla dinamica di
sistemi in comunicazione reciproca e ci fornisce un importante analogia in
relazione a quanto si verrà sostenendo nel seguito.

57
3. IL PROCESSO DI ASTRAZIONE
3.1 Principali meccanismi di astrazione

La conoscenza è generalizzata attraverso il processo di astrazione. La


classificazione di fatti simili selezionati in una larga collezione di fatti è un
particolare tipo di astrazione.

L'astrazione è un procedimento mentale che si adotta quando si evidenziano


alcune proprietà e caratteristiche di un insieme di oggetti, escludendone altre
giudicate non rilevanti e giungendo alla definizione di un nuovo oggetto come
concetto unificante rispetto alle proprietà considerate.
Il processo di astrazione non è ancora ben compreso, nè è chiaro in che
modo esso si presenti nel ragionamento umano, è possibile comunque
elencare alcune tipologie di astrazione: la classificazione, l'aggregazione, la
generalizzazione, l'associazione.
a) La classificazione è il processo di astrazione fondamentale che conduce
alla definizione di una classe di oggetti basandosi sulla osservazione che tali
oggetti hanno alcune proprietà in comune.
b) L'aggregazione è un processo di astrazione mediante il quale si giunge ad un
"oggetto" nuovo aggregando oggetti. Il fatto di costituire un nuovo oggetto
diviene una proprietà che si aggiunge a ciascun oggetto costituente
l'aggregato.
c) La generalizzazione consiste in una aggregazione di classi di oggetti
basandosi sulle proprietà comuni.
d) L'associazione consiste nel suddividere un determinato insieme di oggetti in
gruppi separati. La proprietà di appartenere ad un determinato gruppo si
aggiunge a tutti gli oggetti costituenti il gruppo medesimo.

Nel lavoro di analisi di problemi per la loro rappresentazione simbolica


esistono alcuni termini particolarmente significativi che vengono solitamente
utilizzati:

1) Entità
Le entità sono degli elementi base di ogni rappresentazione, l'ossatura, la
parte costituente.
Un'entità descrive un concetto, un oggetto, un fatto,...
Un'entità possiede un nome e in relazione a tale nome si aggregano gli attributi
che descrivono l'entità. Il nome dell'entità è il suo primo attributo, anche se non
sempre esso risulta essere univoco.
58
2) Gli attributi
Gli attributi sono anch'essi elementi fondamentali nella rappresentazione,
esprimono le caratteristiche delle entità, la conformazione, le parti costituenti,
ma anche la sintesi, il concetto unitario, la forma. Gli attributi possiedono un
nome, una descrizione con cui sono identificati.

3) Le proprietà
Anche le proprietà descrivono le entità e svolgono un ruolo analogo agli
attributi; anche se vi sono differenze concettuali, al fine di descrivere entità, le
proprietà vengono considerate equivalenti agli attributi.

4) Gli oggetti
Gli oggetti rappresentano entità con un certo spessore ed una particolare
individualità. Un oggetto richiama direttamente alla mente qualcosa di
concreto e tangibile, a differenza dell'entità che appare un concetto più
astratto. Comunque esistono fraintendimenti ed ambiguità che avvicinano il
concetto di oggetto al concetto di entità molto più di quanto possa sembrare ad
un'analisi superficiale: per esempio un albero è un oggetto o un'entità?
L'albero che ho in giardino potrebbe essere un oggetto in un senso più forte
rispetto all'abete che rappresenta una famiglia di alberi illustrato sul libro di
botanica. Il primo possiede un'esistenza propria, il secondo è una
rappresentazione di una classe astratta, ma, occorre ricordare, che a livello di
costruzione di sistemi automatici, per esempio i computer, ogni componente è
una rappresentazione astratta rispetto ad una "realtà di interesse" ad esso
estranea.

5) I termini
In ogni caso qualsiasi tipo di rappresentazione simbolica utilizza simboli, e tali
simboli costituiscono l'abecedario con cui entità, oggetti, attributi, proprietà
possono esprimersi nella rappresentazione: il simbolo, il nome, il termine
rappresentano il mattone fondamentale su cui tutta la rappresentazione viene
costruita.

6) Le classi
I raggruppamenti di oggetti, o di entità rappresentano delle classi: per
esempio gli abeti. Ora, i raggruppamenti di attributi rappresentano oggetti,
raggruppamenti di oggetti rappresentano entità, raggruppamenti di entità
rappresentano classi; ma appartenere ad una determinata classe è un attributo
o una proprietà di un oggetto, pertanto un raggruppamento di entità
rappresenta un attributo.

59
7) I domini
Una classe di entità che gode di una certa proprietà viene chiamata dominio
della proprietà stessa. I domini sono classi che possiedono una determinata
caratteristica idonea all'espletazione di un certo compito; uno specifico dominio
viene di solito definito in relazione ad una specifica funzione.

8) Le regole
Una trasformazione da un oggetto ad un'altro oggetto, da una proprietà ad
un'altra proprietà, è descrivibile con una regola. Una regola consiste in una
relazione tra insiemi di oggetti o insiemi di attributi e di solito si esprime nella
forma: Se fatto-1 allora fatto-2.

9) I legami
I legami tra oggetti o tra attributi descrivono una prima relazione
fondamentale in cui gli oggetti o gli attributi stessi entrano in reciproco
rapporto. Per cui se esiste una regola del tipo "Se fatto-1 allora fatto-2" esiste
anche un legame tra il fatto-1 e il fatto-2, una connessione logica esprimibile in
concomitanza di eventi spazio temporali oppure semplicemente di coincidenza
fra termini nella rappresentazione; I termini e i legami, in particolare i legami
binari, costituiscono l'ossatura di qualsiasi sistema di rappresentazione a stati
finiti.

10) I processi
I processi attuano le regole. I processi realizzano ciò che le regole descrivono.
Un processo possiede una dimensione temporale attraverso cui esso stesso si
svolge; partendo da certe premesse produce determinati risultati. I processi
sono trasformazioni nella rappresentazione; le trasformazioni descritte da
regole determinano l'evoluzione del sistema di memorizzazione.

11) Frames o strutture


I termini non sempre assolvono con efficacia al loro compito di rappresentare
oggetti o attributi; la ragione principale di questa inadeguatezza risiede nella
non univocità dei termini utilizzati rispetto alla complessità della "realtà di
interesse". Ragioni di efficenza costringono alla sintesi e pertanto diviene
necessario ricondurre ad ambiti ristretti di validità, frames o strutture appunto,
il significato che il termine esprime.

12) Il contesto
Il contesto è un particolare tipo di struttura, con un significato intuitivo
specifico, relativamente alla restrizione ad un particolare ambito degli
elementi della rappresentazione.

60
13) I fatti
I processi fanno riferimento ad un divenire, a trasformazioni nel tempo; i fatti o
gli eventi, rappresentano gli oggetti nella loro dimensione temporale, in
sostanza gli oggetti possono essere pensati come a raggruppamenti di eventi
che presentano una particolare costanza e continuità rispetto a determinati
attributi.

14) La relazione parte_di


Un oggetto può essere parte di un altro oggetto.
Gli oggetti possono essere scomposti in parti, in particolare ogni attributo di
un oggetto può essere discriminante e consentire l'individuazione di un oggetto
che è parte dell'oggetto originario: nella rappresentazione, oltre al nome, le
sole informazioni che possediamo sugli oggetti sono costituite dall'insieme
di attributi che tali oggetti possiedono, per cui la possibilità di individuare le
parti costituenti un oggetto risiedono esclusivamente nella possibilità di
distinguere gli attributi da esso posseduti. Esiste una analogia tra
l'appartenere ad un insieme ed essere parte di un altro oggetto.

15) La relazione composto_da


Un oggetto può essere composto da altri oggetti.
Esiste una analogia tra essere un insieme di elementi ed essere composto da
un insieme di altri oggetti.

16) I verbi
I verbi sono gli operatori del linguaggio naturale, e nello stesso tempo
descrivono i processi, le trasformazioni, le azioni che si svolgono nella realtà.
In una rappresentazione utilizzabile da una procedura automatica i verbi
possono essere descritti da regole e da relazioni.

17) Gli operatori


Gli operatori sono processi definiti che operano trasformazioni sugli oggetti
nella rappresentazione. Gli operatori possono essere descritti da insieme di
regole che definiscono, a partire da certi stati in ingresso, quali debbono
essere gli stati in uscita, dopo l'esecuzione dell'operatore medesimo.

18) I dati
Tutte le informazioni che il sistema di rappresentazione è in grado di
manipolare debbono essere trasformate in dati, ovvero, configurazioni statiche
e definite di componenti del supporto di memorizzazione; una tale
trasformazione implica un processo fondamentale a cui l'informazione è
sottoposta per poter essere memorizzata: la codifica.

61
19) Gli aggregati
Il processo di aggregazione è il processo fondamentale che consente la
costruzione di classi e di raggruppamenti caratterizzanti gli oggetti e gli
attributi che sono descritti nella rappresentazione. L'aggregazione tra elementi
costituenti il sistema di rappresentazione non avviene in maniera statica una
volta per tutte, è piuttosto un processo dinamico in continua evoluzione;
non esistono aggregati definitivi, ogni raggruppamento è possibile al fine di
ottenere un determinato risultato. Non si riparte, comunque, sempre da capo,
ogni raggruppamento che ha prodotto risultati significativi lascia una traccia di
sè che può essere utilizzata dal sistema di rappresentazione: in particolare una
volta attribuito un nome ad una determinata classe, questa risulta presente
nella rappresentazione.

20) Le registrazioni
Il processo di memorizzazione delle informazioni avviene effettuando delle
registrazioni; le registrazioni consistono nella effettiva modificazione degli
stati interni alla rappresentazione che conserveranno traccia degli eventi
associati alle registrazioni medesime: una tale variazione di stati può
coinvolgere, nel contempo, la costruzione o identificazione di aggregati con
funzione classificatoria delle informazioni memorizzate.

21) Le inferenze
Le inferenze rappresentano ciò che il sistema di rappresentazione si aspetta
succeda in realtà nel mondo. Le inferenze dovrebbero avere una base statistica,
anche se, affinchè la statistica sia valida occorre che i parametri di valutazione
delle previsioni siano conformi, non solo nella forma ma anche nella sostanza,
con i fenomeni reali, per definizione inconoscibili, che avvengono nella "realtà
di interesse". Le inferenze si esprimono attraverso regole, ovvero attraverso la
relazione di causa ed effetto tra eventi rappresentati nel sistema; una tale
relazione viene espressa solitamente nella forma: Dal fatto-1 ne consegue,
salvo evidenza del contrario, il fatto-2.

Vedremo in seguito come, in una particolare rappresentazione degli oggetti e


delle classi, si possa ricondurre i suddetti processi di astrazione in un unico
schema. Introdurremo nel seguito un esempio di rappresentazione formale
che ci consentirà ulteriori considerazioni su tali processi fondamentali di
astrazione, per far ciò ci serviremo del formalismo della programmazione
logica. Partiremo con l'indroduzione alla logica matematica, ma prima
tratteremo del concetto di simiglianza in un senso molto generale.

62
3.2 Il processo di categorizzazione

Il mondo di cui ognuno ha esperienza è composto da una quantità enorme di


oggetti, se rispondessimo in modo unico registrando tutte le differenze tra le
cose ben presto saremmo sopraffatti dalla complessità dell'ambiente. La
creazione di categorie rende "equivalenti" cose discernibilmente diverse,
consente di raggruppare gli oggetti e gli eventi in classi, e di rispondere ad essi
in funzione della loro appartenenza ad una data classe piuttosto che della loro
unicità (J.S.Bruner, 1956).

Vi sono principalmente almeno cinque vantaggi nella formazione di categorie


(Stephen K. Reed, Psicologia cognitiva):

1) riduzione della complessità ambientale;

2) strumento di identificazione (riconoscimento);

3) minore necessità di apprendimento costante;

4) possibilità di decidere sull'appropriatezza delle azioni;

5) possibilità di ordinare e porre in relazione classi di oggetti o eventi;

In particolare ,occorre sottolineare un aspetto fondamentale, riconducibile al


fatto di possedere uno schema di classi: le categorie consentono di riconoscere
oggetti nuovi sulla base del confronto con oggetti simili.

Consideriamo il processo di identificazione dei concetti.


Tale processo riguarda la capacità di riconoscere fatti, eventi, idee, oggetti
come appartenenti ad uno schema più generale; in altri termini riconoscerli
appartenenti ad una classe sulla base delle caratteristiche che tali oggetti
presentano.

È possibile isolare quattro regole principali di combinazione logica di


caratteristiche che consentono di individuare concetti:

a) regola congiuntiva;
AND - identificazione di una o più caratteristiche per un certo scopo;

b) regola disgiuntiva:
OR - equivalenza tra due o più caratteristiche per un certo scopo;

63
c) regola condizionale:
IF fact-1 THEN fact-2 - se si verifica una determinata condizione fact-1 allora è
possibile una certa azione fact-2;

d) regola bicondizionale:
IF fact-k THEN SELECT fact-1 fact-2 ... fact-n - se si verifica una
determinata condizione allora si applica una determinata regola di selezione;
esempio: caratteristica condizionata da altre caratteristiche IF maschio THEN
entra SOLO SE ha la cravatta.

Nel processo di identificazione dei concetti sulla base delle caratteristiche


riscontrate nell'esperienza si rileva statisticamente che, oltre all'uso sistematico
delle regole sopra riportate, esiste una dominanza legata alla frequenza dei casi
positivi, sembrerebbe che vi sia uno squilibrio di base nella valutazione
dei fatti tra eventi che accadono ed eventi che potrebbero accadere o che sono
negati.

È esperienza comune che esistano delle categorie a cui tutti fanno


riferimento, categorie fortemente condivise dalla comunità; le categorie
naturali. Le categorie naturali si sono formate evolutivamente e hanno
raggiunto per l'uomo una notevole stabilità, eppure le categorie naturali non
raccolgono esemplari ugualmente buoni, consideriamo per esempio i colori,
essi sono distinti in intervalli di lunghezza d'onda e si presentano alla
percezione con caratteristiche estremamente diverse l'uno dall'altro; dal punto
di vista dei fenomeni fisici la differenza tra il colore viola e il colore rosso
è piccola mentre percettivamente sono colori nettamente distinti.
Se analizzate in dettaglio le categorie naturali mostrano una struttura
gerarchica e dimensioni continue piuttosto che discrete. Nelle categorie
naturali alcuni esemplari sembrano essere più centrali di altri.
Una affermazione di particolare interesse è la seguente:

La differenziazione delle categorie è misurabile determinando in quale misura i


membri di una categoria condividono alcuni attributi e posseggono attributi
diversi da quelli di altre categorie.
(Rosch, Gray, Johnsen e Boyes-Braem, 1976).

È possibile pensare ad un buon esemplare per ciascuna categoria, ma si tratta


di un oggetto ben diverso dalla media di tutti gli esemplari. Il concetto di
esemplare medio assume significato quando si pensa agli oggetti di una
medesima categoria base. Mentre è assurdo tentare di definire la forma media
di una classe: per es. la forma media dei mobili ?

64
Si utilizza il termine tipicità per designare il grado in cui ciascun membro
rappresenta una data categoria.

Per dimostrare che un esemplare buono è quello che condivide molti attributi
con altri membri della medesima categoria è necessario fornire una misura
delle somiglianze come "aria di famiglia" (family resemblance), prendendo in
considerazione quanti membri condividono lo stesso attributo.

Il criterio di somiglianza è utile per predire la tipicità dei membri delle comuni
categorie tassonomiche, tuttavia non si rivela utile nel predire le tipicità nel
caso di categorie riferite a scopi. La ragione di ciò sta nel fatto che i membri
delle categorie riferite ad uno scopo sono selezionati sulla base di un
principio sottostante, piuttosto che sulla base di attributi condivisi. Esiste, in tal
caso, un diverso livello semantico.

Consideriamo, ora, il problema di categorizzare pattern nuovi.


Esistono due principali approcci al problema:

1) modello del prototipo;


2) modello della frequenza delle caratteristiche.

In particolare è possibile utilizzare quattro principali regole di classificazione


per costruire la funzione di somiglianza tra pattern:

a) regola della massima vicinanza (nearest-neighbor rule);


b) regola della distanza media (average distance rule);
c) regola del prototipo;
d) regola della frequenza delle caratteristiche.

Non tutti utilizzano la strategia del prototipo, ma essa appare prevalente.


La regola che ci sembra più interessante e che svilupperemo nel seguito è
invece la regola della massima vicinanza. Vedremo come tale regola possa
essere generalizzata in maniera tale da comprendere le altre.

Benchè il modello del prototipo sia il migliore nel predire il modo in cui i
soggetti umani classificano facce schematiche (Reed, 1972) in altri casi il
modello delle frequenze delle caratteristiche si dimostra più appropriato.
L'unico problema, per i vari modelli basati sulla frequenza delle caratteristiche,
risiede nella necessità di operare un gran numero di confronti, per valutare sia
le combinazioni di caratteristiche sia le caratteristiche isolate.
(Reitman e Bower 1973).

65
Medin e Schaffer(1978) proposero un modello in cui gli esemplari di una
categoria vengono depositati in memoria e le configurazioni nuove vengono
confrontate con gli esemplari recuperati sulla base delle somiglianze.
Maggiore è la somiglianza tra le configurazioni nuove e un esemplare in
memoria, maggiore è la probabilità che questo venga recuperato. Il modello di
Medin e Schaffer misura la somiglianza di combinazioni di caratteristiche.

Consideriamo il problema dell'organizzazione semantica della struttura di


memorizzazione. Uno scienziato deve organizzare la propria base di
conoscenza.

La costruzione dell'edificio scientifico ha bisogno dei fatti allo stesso modo in


cui la costruzione di una casa ha bisogno delle pietre; ma un'accumulazione di
fatti non costituisce una scienza più di quanto un mucchio di pietre non
costituisce una casa. (Henri Poincarè).

Allo scopo di recuperare le informazioni rilevanti dalla memoria a lungo


termine MLT, dobbiamo essere in grado di organizzare la nostra memoria.
Molta dell'organizzazione è semantica, cioè si basa sul significato
dell'informazione. Un modo particolarmente efficiente di organizzare
l'informazione consiste nella formazione di gerarchie.
Fondamentalmente esistono due modelli di memoria semantica:

1) uno si basa sull'assunzione che le persone confrontano le caratteristiche


delle due categorie allo scopo di determinare la loro relazione.

2) l'altro modello si basa sull'assunzione che la relazione tra due categorie


viene immagazzinata direttamente nella rete semantica, una struttura
consistente in concetti collegati ad altri concetti mediante nessi che
specificano la natura delle relazioni.

Il primo modello è abbastanza simile ai modelli di categorizzazione.

Una idea chiave relativamente al funzionamento di un sistema di


riconoscimento è quella di propagazione dell'attivazione (spreading activation).
Quando viene attivato un concetto vengono attivati in parte anche concetti
collegati, in quanto l'attivazione si diffonde lungo i nessi della rete.

Gli effetti dell'organizzazione della base di conoscenza non si limitano creare


una struttura gerarchica, tipicamente ad albero rovesciato; è necessario che le
parole siano "associate" in collegamento tra loro. Quando le parole associate

66
sono collegate tra loro, i soggetti ricordano molte più parole di quando le
stesse parole sono collegate a caso. L'organizzazione semantica del materiale
migliora la rievocazione, anche quando l'organizzazione non è del tipo
gerarchico.

Esistono due modelli, implementati a calcolatore, particolarmente


interessanti che eseguono il riconoscimento di un oggetto in una categoria:

1) modello della rete gerarchica (Collins e Quillian, 1969);

2) modello del confronto di caratteristiche (Smith, Shoben e Rips, 1974).

Secondo il modello del confronto della rete gerarchica, l'informazione


categoriale viene immagazzinata direttamente mediante associazioni.

Sono stati fatti degli esperimenti che mostrano come il tempo di risposta sia
influenzato dal livello in cui gli attributi sono immagazzinati. Ciò conferma la
previsione che il passaggio da un livello all'altro della gerarchia richiede tempo,
in particolare l'ipotesi secondo la quale il tempo di risposta aumenta quando si
devono recuperare le caratteristiche immagazzinate in un dato livello della
gerarchia.
Un'altra previsione interessante riguarda la facilitazione del recupero dalla
memoria quando l'informazione critica è preceduta dal recupero di
un'informazione simile.
Esistono comunque alcune anomalie nel modello:
a) vi sono casi in cui il tempo di verifica non è funzione del livello nella
gerarchia.
b) effetto tipicità: membri più tipici di una categoria vengono classificati con
maggiore facilità dei membri meno tipici.

Vediamo in maggior dettaglio il modello del confronto di caratteristiche.


Il significato delle parole viene rappresentato in memoria da una lista di
caratteristiche. Le caratteristiche sono utilizzate per definire le categorie, ma
il loro grado di associazione con una data categoria è variabile.
Esistono tue tipi di caratteristiche:
a) caratteristiche "definienti" proprietà essenziali;
b) caratteristiche "tipiche".
Le caratteristiche definienti sono quelle che un oggetto deve possedere per
poter essere membro di una categoria, mentre le caratteristiche tipiche sono
quelle possedute normalmente, pur non essendo necessarie.

67
I confronti tra le caratteristiche per valutare la simiglianza possono essere di
due tipi:
a) o su tutte le caratteristiche indistintamente;
b) oppure solo sulle caratteristiche definienti.
Il modello del confronto di caratteristiche spiega le eccezioni dovute
all'effetto "ampiezza" delle categorie in quanto si basa sulle simiglianze e non
sull'ampiezza delle categorie, spiega inoltre l'effetto tipicità.

Vi sono, da segnalare, alcune difficoltà presenti nel modello:

1) il giudizio di somiglianza è arbitrario;

2) necessità di calcoli nelle classificazioni;


se abbiamo appreso che un pettirosso è un uccello sembrerebbe più facile
utilizzare questa informazione direttamente piuttosto che calcolare la
somiglianza tra pettirosso ed uccello;

3) scarse evidenze che le persone possano identificare caratteristiche definienti.

Sono stati costruiti e implementati su calcolatore anche sistemi di


categorizzazione basati sul modello a reti semantiche:

a) Modello a propagazione dell'attivazione (Collins e Loftus, 1975);

b) Modello ACT (John Anderson, Language, memory and thought, 1976);

Prendiamo, ora, in considerazione il linguaggio umano nel suo complesso.


Il linguaggio si compone di parole.
Nella memoria semantica si stabiliscono associazioni fra parole.
Le parole possono venire combinate a loro volta in frasi compiute.
Una possibile spiegazione di questa capacità di combinazione è basata, di
nuovo, sul concetto di associazione: associazione tra parole.
Una prima difficoltà consiste nel fatto che nel linguaggio vi sono così tante
parole combinabili che sembra che per poter formare frasi corrette debba
essere necessario imparare un numero pressochè infinito di associazioni.
Per questa ragione, principalmente, è necessario lo studio della grammatica.
Lo studio dell'ambiguità linguistica, fenomeno particolarmente interessante,
consente di fare luce sulle strategie utilizzate per la risoluzione delle
ambiguità ai fini della comprensione del testo.

68
Chomsky (1957) ha dimostrato che l'ipotesi associazionistica
dell'apprendimento linguistico pone dei problemi che sembrano insormontabili:
1) una prima difficoltà è il numero di associazioni necessarie;
2) una seconda difficoltà risiede nel trattamento delle relazioni fra parole non
adiacenti.

Una divisione fondamentale e quella che solitamente si stabilisce fra sintagma


nominale e sintagma verbale, all'interno dell'analisi grammaticale delle
strutture di frasi.

a) sintagma nominale: aggettivi, nomi.


b) sintagma verbale: avverbi, verbi e sintagmi nominali.

Esiste un'intera disciplina che si occupa dello studio della struttura delle
frasi: la grammatica strutturale. La rappresentazione del linguaggio come
sistema di regole costituisce un'attraente alternativa alla rappresentazione in
termini di semplici stringhe di parole.
Vediamo brevemente alcune regole della grammatica strutturale.
Utilizzeremo le seguenti abbreviazioni:

F - frase
SN - sintagma nominale
SV - sintagma verbale
Det - determinatore

Regola-1 : qualsiasi frase può essere riscritta come un sintagma nominale


seguito da un sintagma verbale; es. F --> SN + SV

Regola-2 : un sintagma nominale può essere riscritto come un determinatore


seguito da un nome; es. SN --> Det + Nome

Regola-3 : un sintagma verbale può essere riscritto come un verbo seguito da


un sintagma nominale; es. SV --> Verbo + SN

Regole-4,5,6 : un determinatore, un nome o un verbo possono essere riscritti


usando certi vocaboli, elencati dopo le frecce; es. Det --> un, il
Nome --> ragazzo, palla, bastone Verbo-->colpire

69
(fig. 3.1)

La grammatica trasformazionale proposta da Chomsky (1957), rappresentò un


avanzamento rispetto alla grammatica strutturale, in quanto, oltre a descrivere
le strutture gerarchiche delle frasi, la grammatica trasformazionale consentì
anche di mostrare come le frasi possono essere trasformate in altre frasi.
Tuttavia Chomsky non rimase completamente soddisfatto della grammatica
trasformazionale, e continuò a lavorare sulla sua teoria. I risultati del suo lavoro
furono pubblicati in un secondo libro (Chomsky, 1965) dove egli introdusse un
nuovo aspetto della grammatica: il ruolo del significato. Esistono infatti alcune
difficoltà che si incontrano analizzando il linguaggio e che la grammatica
trasformazionale non risolve in maniera soddisfacente, in particolare:
riconoscere i diversi significati delle frasi ambigue. Per esempio: un tipo di
ambiguità abbastanza frequente nella lingua inglese è la seguente:

a) they are flying planes


- sono aerei volanti
- stanno facendo volare degli aerei

70
b) flying planes can be dangerous
- gli aerei volanti possono essere pericolosi
- far volare gli aerei può essere pericoloso

secondo Chomsky (1965) questo tipo di ambiguità è risolvibile solo


postulando un livello di analisi in grado di rappresentare direttamente il
significato della frase. Si rende quindi necessario considerare la grammatica
trasformazionale come costituita da due livelli:

1) il livello superficiale, collegato direttamente alla frase sentita;

2) il livello profondo, che ne rappresenta invece il significato.

Per raggiungere il livello profondo, relativo al significato siamo costretti a


considerare il contesto. Vi sono alcuni effetti tipici del contesto sulla
comprensione di una frase. Nella vita di ogni giorno, le molte ambiguità
potenziali del linguaggio vengono corrette dal contesto, che nella maggior
parte dei casi rende chiaro il significato della frase. Sembra che il ruolo del
contesto non sia quello di attivare l'uno o l'altro dei possibili significati, ma
quello di consentire al sistema di selezionare, fra i significati attivati, quello
appropriato. Tale selezione avviene velocemente, abbastanza da scongiurare
possibili interferenze da parte del significato inappropriato. In conclusione il
contesto può influire in maniera determinante sulla comprensione di parole o
frasi; il contesto può avere effetti sia negativi che positivi in relazione al
compito svolto nella comprensione di frasi.

Oltre al contesto esistono anche altri elementi che influenzano la corretta


comprensione di frasi, probabilmente riconducibili al contesto, ma non in
maniera direttamente evidente. Il linguaggio coinvolge anche significati
impliciti, non rappresentati direttamente dalle parole nel discorso. Spesso è
sufficiente che un messaggio implichi una certa azione perchè chi ascolta resti
convinto che l'azione ha avuto effettivamente luogo:
es: il pitone catturò il topo --> il pitone si è mangiato il topo.
Vi sono esempi che dimostrano che spesso la gente non distingue fra
affermazioni esplicite e implicazioni, cosicchè i messaggi impliciti vengono
ad assumere, nel vissuto dell'ascoltatore, lo stesso peso di quello che è stato
detto esplicitamente.
Nel ragionamento logico spesso compare il problema opposto: la gente non
vede le implicazioni logiche di certe affermazioni, o ne vede di scorrette; es:
ogni carta che ha una D su una faccia ha un 3 sull'altra

71
(fig. 3.2)

3 7 D K

cosa si trova dietro il 3?

Se rispondete una D allora state compiendo un errore logico poichè questo non
è implicato dai termini del problema.
La gente compie questo tipo di errori a causa di una tendenza a verificare,
invece che a falsificare, la regola data; mentre invece l'informazione
potenzialmente falsificante è l'unica necessaria. Un fatto curioso è il seguente:
la gente risolve con più facilità problemi logici se applicati a situazioni
concrete - il contenuto semantico di un'affermazione è una determinante
importante della comprensione linguistica.

Che cosa possiamo trarre da quanto delineato in relazione al processo di


memorizzazione, in particolare riguardo alla comprensione e al ricordo?
L'importanza della conoscenza di un soggetto diventa evidente quando
bisogna capire idee molto astratte. Un contesto significante migliora la
rievocazione se viene fornito prima della lettura del materiale. È necessario
migliorare la comprensione se si vuol migliorare il ricordo. Le conoscenze dei
soggetti riguardo le attività di ogni giorno possono essere rappresentate per
mezzo di SCRIPTS (copioni), contenenti un elenco degli eventi più
comunemente associati ad una determinata attività. Il concetto di script è
stato utilizzato per studiare come la conoscenza intorno ad una certa attività
abituale consenta di capire e ricordare l'informazione complessiva in essa
contenuta. (Black e Turner, 1979) (Schank e Abelson, 1977).
La facilità con cui vengono ricordati gli eventi che ostacolano il
raggiungimento di uno scopo suggerisce che gli scripts sono orientati a scopi.

In che modo le strutture di memorizzazione possono aiutarci nel compito


relativo alla risoluzione di problemi?

Un metodo di classificazione dei problemi li raggruppa in tre categorie:

a) problemi di organizzazione;
b) problemi di scoperta della struttura;
c) problemi che coinvolgono trasformazioni.

72
La soluzione è influenzata dalle proprietà della memoria a breve termine e dalla
memoria a lungo termine, in particolare i fattori coinvolti sono:
1) la capacità;
2) il tempo di immagazzinamento;
3) il tempo di recupero.

Un punto fondamentale è il seguente:

- Le prestazioni sono influenzate dalle dimensioni dello spazio di ricerca, che


riguarda il numero di mosse legali corrispondenti a ciascun punto del problema.

Ora, esperimenti di psicologia cognitiva hanno dimostrato che le principali


strategie di tipo generale utilizzate nella risoluzione dei problemi si possono
classificare nelle seguenti:

a) analisi mezzi / fini


b) formulazione di sottoscopi
c) uso di analogie
d) costruzione di diagrammi

La strategia di maggior interesse, per la presente trattazione, riguarda l'uso di


analogie. Talvolta l'uso di soluzioni analoghe si dimostra utile anche se
spesso le persone non notano l'esistenza dell'analogia. Cercheremo, nel seguito
di delineare in che senso sia possibile introdurre le analogie all'interno di una
rappresentazione formale di regole e dati.

73
3.3 Algoritmi genetici

Gli algoritmi genetici nascono dalla ricerca di procedure basate sui


meccanismi di selezione naturale e di genetica naturale.
Il processo di astrazione ci porta a immaginare funzioni di ricerca,
ottimizzazione e apprendimento automatico delle informazioni. Tramite lo
studio di algoritmi di tipo genetico possiamo ipotizzare meccanismi che
consentano la costruzione di categorie astratte generali a partire dai dati
elementari. Per introdurre gli algoritmi genetici occorre fare riferimento a
processi analoghi ai processi biologici. Gli algoritmi genetici sono
sostanzialmente algoritmi di ricerca che sfruttano le caratteristiche dei
meccanismi di selezione e genetica naturale. Le informazioni sono
organizzate in stringhe di dati corredati da algoritmi che ne consentono la
riproduzione di generazione in generazione. Tali algoritmi combinano la
sopravvivenza delle stringhe, valutate come migliori, con l'interscambio di
informazioni strutturate e casuali e con alcune tipologie di ricerca tipiche del
ragionamento umano. Vengono generate strutture di stringhe che si
riproducono di generazione in generazione.
Alcuni obiettivi di tale ricerca sono (Holland) :

1) ottenere una spiegazione astratta e rigorosa dei processi adattativi;


2) disegnare sistemi artificiali che presentino tali caratteristiche.

Il tema centrale della ricerca sugli algoritmi genetici è stata la ROBUSTEZZA,


l'equilibrio tra EFFICIENZA, EFFICACIA e FLESSIBILITÀ dei sistemi
biologici. Autoriparazione, autoguida, riproduzione sono presenti anche in
alcuni sofisticati sistemi artificiali ma gli algoritmi genetici presentano queste
caratteristiche in una maniera particolarmente interessante: tali caratteristiche
scaturiscono direttamente dall'impostazione generale propria degli algoritmi
genetici. Nei metodi tradizionali di ottimizzazione e ricerca la robustezza
viene ricavata essenzialmente dall'euristica; in particolare esitono tipicamente
quattro metodi di ottimizzazione e ricerca:

1) metodi basati sul calcolo


suddivisi in
1.1) metodi diretti
1.2) metodi indiretti - di ricerca con utilizzo del gradiente
1.3) metodi basati sull'esistenza di funzioni derivabili che descrivono
i fenomeni

74
2) metodi enumerativi
ricerca su tutto lo spazio (finito) di possibilità utilizzabili, ovviamente, quando
il numero di possibilità è relativamente basso

3) metodi casuali
gli algoritmi genetici sono un esempio di ricerca che utilizza scelte random
come strumento per guidare una ricerca esplorativa di alto livello nello spazio
codificato

4) metodi associativi
ricerca basata sui raggruppamenti associativi che organizzano lo spazio delle
soluzioni

È facile rendersi conto che i metodi di ricerca convenzionale non presentano


quelle caratteristiche di robustezza proprie degli algoritmi genetici.
Il filo conduttore degli algoritmi genetici si basa principalmente su tre idee:

1) l'astrazione di operatori e strutture da esempi naturali

2) l'analisi di tali strutture e meccanismi utilizzando la tecnica della matematica


formale

3) applicazioni di queste astrazioni a problemi pratici

All'inizio della ricerca sugli algoritmi genetici si trova una importante


domanda:

d) data una popolazione di struttura finita e dei relativi finiti valori di profitto
(fitness), quale informazione è disponibile per guidare la ricerca delle strutture
migliori?

La risposta a questa domanda è sempre la stessa:

r) similarità di alto profitto (highly fit similarities)

Senza conoscenza specifica del problema le uniche informazioni che


possiamo esplorare con una certa confidenza è ciò che è contenuto nelle
similarità ad alto profitto tra le strutture di una popolazione. Se non abbiamo
la possibilità di sperimentare delle combinazioni di tali similarità ad alto
valore, allora siamo fortemente limitati in ciò che produce la massima
potenzialità del metodo. Questo punto è semplice ma essenziale: per tale

75
ragione non è conveniente utilizzare conoscenze specifiche del problema che
non siano rappresentabili nello schema generale.

Vi sono principalmente quattro motivi per cui gli algoritmi genetici si


differenziano dai metodi tradizionali:

1) gli algoritmi genetici lavorano con i codici dell'insieme dei parametri e non
con i parametri stessi;

2) gli algoritmi genetici ricercano una popolazione di punti e non un singolo


punto;

3) gli algoritmi genetici utilizzano una funzione di valutazione (funzione


obiettivo, massima fitness) e non derivate o altre conoscenze ausiliarie;
( payoff information)

4) gli algoritmi genetici utilizzano regole di transizione probabilistiche e non


regole deterministiche.

Molte tecniche di ricerca richiedono molte informazioni ausiliarie per poter


lavorare correttamente. Per esempio la tecnica del gradiente necessita delle
derivate, per trovare il picco, e altre procedure di ricerca locali come la tecnica
dell'ottimizzazione combinatoriale richiede l'accesso ai parametri tabellari.
Viceversa, gli algoritmi genetici non necessitano di tali informazioni ausiliarie:
essi richiedono solo il valore di valutazione (payoff value) associato ad ogni
singola stringa.

Vediamo ora lo schema generale di un algoritmo genetico.


Il meccanismo di un semplice algoritmo genetico è sorprendentemente
semplice, e coinvolge solamente operazioni di duplicazione di stringhe. La
semplicità delle operazioni e la potenzialità degli effetti sono due delle
caratteristiche più accattivanti dell'approccio algoritmi genetici.

Un semplice algoritmo genetico che fornisce buoni risultati in molti problemi


pratici è composto da tre operatori:

1) riproduzione;
2) interazione (crossover)
3) mutazione

76
consideriamo una popolazione di n stringhe definite su un opportuno alfabeto,
in tal modo si codifica una "idea" completa o le prescrizioni per eseguire un
particolare compito, in tal caso ogni stringa è un' "idea" completa. Le
sottostringhe di ogni stringa contengono "nozioni" che sono rilevanti per il
lavoro. Visto in questi termini, la popolazione non contiene semplicemente n
idee, ma piuttosto contiene una moltitudine di nozioni e riarrangiamenti di
nozioni relativamente a quel particolare compito. Gli algoritmi genetici
esplodono tale insieme di informazioni con:

1) riproducendo nozioni di alta qualità in accordo con le prestazioni o il


compito da svolgere;

2) mescolando queste nozioni con molte altre nozioni di alto livello proprie di
altre stringhe, grazie alll'azione di interazione (crossover, incrocio, miscuglio)
con le precedenti riproduzioni, tali nozioni si rispecchiano nelle nuove idee
costruite dalle parti di alto livello nei tentativi passati: scambiando nozioni per
formare nuove idee si innesca un processo di innovazione.

Osserviamo, ora, in maggior dettaglio il concetto di simiglianza tra stringhe


così come viene utilizzato dagli algoritmi genetici.
Un punto fondamentale è il seguente: in un processo di ricerca guidato
esclusivamente da una funzione di costo (payoff) quale informazione è
contenuta in una popolazione di stringhe e nelle rispettive funzioni obiettivo
per ottenere un risultato positivo?
Un importante criterio consiste nel considerare le similarità esistenti tra le
stringhe sulla base della funzione di costo. Analizzando tali similarità in
maggior dettaglio notiamo che certi pattern di stringhe appaiono più
fortemente associati a buone prestazioni. In particolare sembra perfettamente
ragionevole mescolare e confrontare quelle sottostringhe che sono
maggiormente correlate a risultati positivi ottenuti.
In pratica: prima cerchiamo similarità tra le stringhe di una determinata
popolazione, quindi cerchiamo le relazioni casuali tra tali similarità
relativamente alla funzione di costo (obiective function). In un certo senso,
non siamo interessati alle stringhe e alle stringhe solamente, poichè importanti
similarità tra stringhe ci possono aiutare nella ricerca, ci chiediamo in che
modo e in quale senso una stringa può essere simile a stringhe successive. In
specifico, ci chiediamo in che modo una stringa sia rappresentativa di altre
stringhe (string classes) tramite la coincidenza in certe posizioni nella stringa
(binary strings).
Per far ciò si può utilizzare il concetto di schema.

77
Uno schema (Holland, 1968, 1975) è un corpo di similarità che descrive un
sottoinsieme di stringhe che presentano coincidenze in certe posizioni.
Limitiamoci al seguente alfabeto {0,1,*} dove * significa non de terminato o
non considerato (metasymbol). Allora lo schema *111* rappresenta l'insieme
di stringhe: {01110,01111,11110,11111}.

Vediamo ora alcuni fondamenti matematici con cui costruire algoritmi


genetici.
Consideriamo stringhe binarie V={0,1} e schemi H nella forma
V+={0,1,*}.
Denotiamo con o(H) il numero di posizioni fisse nello schema H.
Definiamo una distanza d(H) definita sugli schemi.
Gli schemi e le loro proprietà sono attrezzi notazionali interessanti per una
discussione rigorosa e una classificazione delle similarità tra stringhe.
L'effetto dovuto alla riproduzione delle stringhe sul numero di individui
corrispondenti ad un determinato schema è facile da determinare.
Supponiamo che ad un certo tempo t vi siano m esempi corrispondenti ad un
particolare schema H in una popolazione A(t)

m = m(H,t)

nella riproduzione, una stringa è copiata in accordo con una funzione di


costo o più precisamente una stringa Ai viene selezionata con una probabilità:

fi
Pi = 
Σ fj

ci aspettiamo perciò che la generazione successiva:

f(H)
m(H,t+1) = m(H,t) * n * 
Σ fj

dove f(H) è la media su tutte le stringhe rappresentate da H al tempo t.

Poichè la media su l'intera popolazione può essere scritta:

78
_ Σ fj
f = 
n

otteniamo:

f(H)
m(H,t+1) = m(H,t) _
f

In altri termini, uno schema si evolve come il rapporto tra la media della
funzione di costo dello schema e la media della funzione di costo su tutta la
popolazione.

Supponiamo che un particolare schema H rimanga sopra la media di una


quantità c⋅f con c costante: possiamo scrivere

_ _
(f + cf)
m(H,t+1) = m(H,t) _ = (1+c) * M(H,t)
f

partendo con t=0 e mantenendo c costante (e inferiore a 1) otteniamo


l'equazione dell'interesse composto. (progressione geometrica)

t
m(H,t) = m(H,0) * (1 + c)

per l'effetto di miscuglio si può ricavare che la probabilità di sopravvivenza


vale:

d(H)
Ps ≥ 1 - Pc 
l-1

dove Pc è la probabilità di scelta ed l la lunghezza, da cui:


79
f(H) d(H)
m(H,t+1) ≥ m(H,t) * _ [ 1 - Pc  ]
f l-1

considerando anche le mutazioni esse interessano solo le posizioni fisse o(H),


se Pm è la probabilità della mutazione si ottiene:

f(H) d(H)
m(H,t+1) ≥ m(H,t) _ [ 1 - Pc  - o(H) Pm ]
f l-1

Concludendo: Corti schemi, di basso ordine, che si trovano sopra la media


ricevono un incremento esponenziale nei tentativi delle generazioni
successive.
(Schema Theorem - Teorema fondamentale degli algoritmi genetici)

Un esempio di applicazione degli algoritmi genetici è l'applicazione alla


soluzione del problema dei due (k) banditi armati. Il problema dei due banditi
armati coinvolge un importante quesito di teoria statistica delle decisioni.
Supponiamo di avere una slot-machine con due leve: leva destra e leva
sinistra. Supponiamo che le probabilità di vincita siano n1 con varianza σ1 e n2
con varianza σ2 ; n1 > n2 ...
Con quale leva dobbiamo giocare?
Naturalmente con quella legata alla probabilità maggiore ma poichè non
sappiamo prima della fine quale leva è associata al più alto grado di vincita ci
troviamo in un dilemma. Non solo dobbiamo prendere una sequenza di
decisioni ma dobbiamo annotare ciò che succede per poter decidere quale leva
è migliore ad un determinato istante. Sfortunatamente una strategia ottimale
non sembra realizzabile poichè richiederebbe la conoscenza di ciò che
succederà prima che si avveri.
Lo "Schema Theorem" garantisce un andamento di tipo almeno esponenziale
sul numero di tentativi giusti osservati. In tal modo l'algoritmo genetico è un
buon algoritmo per approssimare la procedura ottimale nella ricerca tra
soluzioni alternative.

Accenniamo,ora, alla tecnica dei blocchi di costruzione.

80
L'utilizzo degli schemi fornisce agli algoritmi genetici una notevole
potenzialità. Semplicemente ricombinando schemi di basso ordine e corti ma
con un alto potenziale rispetto alla funzione obiettivo è possibile ottenere
stringhe di alto potenziale rispetto alla funzione obiettivo stessa. In un certo
senso, lavorando con questi particolari schemi (blocchi di costruzione), si
ottiene una riduzione della complessità del problema infatti piuttosto che
ottenere alte prestazioni cercando tutte le combinazioni di stringhe è possibile
costruire stringhe sempre migliori a partire dalle soluzioni parziali migliori
presenti nelle generazioni passate. Tali schemi con alti valori della funzione
obiettivo li denotiamo come blocchi di costruzione (building blocks) e li
utilizziamo per accelerare la ricerca della soluzione. Comunque è importante
tenere ben presente che semplici algoritmi genetici dipendono dalla
ricombinazione dei blocchi di costruzione per accedere alla soluzione ottimale.
Se i blocchi di costruzione non sono corretti a causa della errata codifica
utilizzata o a causa della forma della funzione di costo stessa, il problema
può richiedere molto tempo prima di fornire la soluzione o anche solo per
giungere in prossimità della soluzione ottimale.

Le condizioni di similarità sulle stringhe possono essere viste come punti di un


iperpiano.
Consideriamo stringhe e schemi di tre posizioni l=3.
È facile disegnare lo spazio della ricerca:

81
(fig 3.3)

Generalizzando allo spazio a n-dimensioni punti, linee e piani divengono


degli iperpiani di varie dimensioni < n.
Allora possiamo pensare agli algoritmi genetici come operatori che
ricercano soluzioni migliori attraversando differenti iperpiani.

Esiste, comunque, un problema fondamentale: la codifica.

Il problema della codifica è un problema centrale ma in un certo senso la


codifica di un problema per una ricerca genetica non sussiste come problema
poichè il limite del programmatore di algoritmi genetici risiede principalmente
nel limite della propria fantasia o immaginazione. Gli algoritmi genetici

82
trovano le similarità in qualsiasi codice arbitrario vengano espresse e tramite
queste costruiscono i blocchi ottimali.

Come è possibile scegliere una buona codifica?


Gli algoritmi genetici ci aiutano essendo robusti, ma esistono due principi
base che possono essere utili nella costruzione del codice con cui rappresentare
le informazioni con stringhe:

1) il principio della costruzione di blocchi sensati:


l'utente deve scegliere un codice corto, di basso ordine che sia rilevante per il
problema in esame e relativamente non correlato agli schemi sulle altre
posizioni fisse;

2) il principio del minimo alfabeto:


l'utente deve scegliere l'alfabeto più ridotto che permette una naturale
espressione del problema.

Esiste un altro aspetto importante da tenere in considerazione:


la discretizzazione del problema.
In molti problemi di ottimizzazione, (optimal control problems) non si
presenta un singolo parametro di controllo ma piuttosto una funzione di
controllo che deve essere specificata in ogni punto nel continuo - (functional)
- per applicare algoritmi genetici a questi problemi, essi devono essere
ricondotti a parametri finiti prima di codificare i parametri stessi. Con
un'algoritmo genetico, poichè dobbiamo lavorare con strutture di lunghezza
finita, prima riduciamo il problema del continuo ad un numero finito di
parametri e quindi riduciamo questi parametri (finiti) in stringhe tramite
qualche processo di codifica.
Vi sono poi i vincoli che si possono introdurre nel contesto dell'algoritmo di
risoluzione. Molti problemi pratici contengono uno o più vincoli che devono
essere soddisfatti. I vincoli sono di solito o uguaglianze o disuguaglianze.
Poiche le relazioni di uguaglianza possono essere trattate come scatole nere
in realtà ci interessano principalmente le disuguaglianze. Un algoritmo genetico
genera delle sequenze di parametri che possono essere testati utilizzando i
vincoli, un modello, e la funzione di profitto (objective function).
Eseguiamo il modello, valutiamo la funzione obiettivo, e controlliamo se i
vincoli sono violati o meno. Di più, possiamo diminuire il rango della funzione
obiettivo in relazione al "grado" di violazione dei vincoli (penalty method).
In un modello a penalizzazione, un problema con vincoli viene trasformato
in un problema con costo o penalità legata ad ogni violazione dei vincoli.
Tale costo è incluso nella valutazione della funzione obiettivo.

83
È possibile infine ottenere una ottimizzazione multiobiettivo.
L'approccio di utilizzare una funzione obiettivo che rappresenta un singolo
criterio di selezione funziona bene in molti problemi, ma ci sono volte in cui
sono presenti simultaneamente parecchi criteri e non è possibile (od
opportuno) combinare questi parametri in un singolo numero. Quando ciò
succede il problema diviene un problema "multiobiettivo" o "multicriterio".
In una ottimizzazione multiobiettivo (o vettoriale) la nozione di ottimale non è
del tutto ovvia: occorre rispettare l'integrità di ciascun criterio separatamente.
Allora, in tali problemi invece di ottenere una singola risposta otteniamo un
insieme di risposte che sono non dominate da altre (p-optimal). Per rendere la
definizione pareto-ottimalità (P-optimal) consideriamo il vettore X come
parzialmente minore di Y X < pY dove valga:

(X < pY) <==> (i) (Xi ≤ Yi) (∃i) ( Xi < Yi ).

Sotto tali condizioni diremo che X domina Y.

Vi sono alcune osservazioni da evidenziare su come gli algoritmi genetici


utilizzano la base di conoscenza. In particolare le tecniche basate sulla
conoscenza euristica tipica del ragionamento umano. Senza alcun dubbio,
l'uomo combina nozioni di alto livello per speculare su nuove idee. Perciò
considerare la sovrapposizione casuale come "il" procedimento per eccellenza
dell'inventiva umana sembra veramente troppo restrittivo e semplicistico.
Quando cerchiamo di pensare a cose nuove, siamo deliberati nelle scelte delle
nozioni che formeranno le nuove idee. Occorre una elevata dose di conoscenza
per decidere quali nozioni possono essere plausibili e ancor prima che le
combinazioni risultantanti abbiano un senso nel contesto corrente. In altre
parole per l'uomo il pensiero innovativo è "diretto" da conoscenza. In contrasto
con tutto ciò, nella sua forma pura, gli algoritmi genetici appaiono come
limitate procedure di ricerca: essi esplorano solo i codici e le funzioni obiettivo
per determinare tentativi plausibili di stringhe delle future generazioni.
D'altra parte, l'indifferenza verso informazioni specifiche del problema danno
in larga parte agli algoritmi genetici la capacità di lavorare bene senza
conoscenze peculiari e con altrettanta facilità li rende in grado di trasferire
tale conoscenza ad altri domini. D'altro canto, non utilizzare tutta la
conoscenza disponibile in un particolare problema mette gli algoritmi genetici
in svantaggio rispetto a metodi che di ciò fanno uso. La semplicità
concettuale e di funzionamento rendono gli algoritmi genetici estremamente
interessanti. Immaginiamo che la ricerca sull'Intelligenza Artificiale sia
tracciabile in un grafico a due dimensioni:

84
(fig 3.4)

La figura mette in evidenza che un tipo di approccio più semplice ma più


fondamentale può fornire, sul lungo periodo, risultati migliori.

85
4. I CRITERI DI CLASSIFICAZIONE
4.1 Sistemi di classificazione

Un sistema di classificazione solitamente consiste di:


1) regole e messaggi di sistema
2) apporto di credibilità al sistema
3) algoritmo di classificazione vero e proprio.

Esiste un prodotto CL-ONE che consente la costruzione di reti parallele


semantiche in un ambiente classificatore facente uso di algoritmi genetici.
Per molto tempo i membri della comunità di Intelligenza Artificiale hanno
criticato le macchine che apprendono basate su algoritmi genetici come troppo
semplici per spiegare la formazione e l'uso di concetti di alto livello.
Forrest (1982,1985) nella sua dissertazione dimostrò la possibilità di
implementazione di reti semantiche di alto llivello in un ambiente di
classificazione basato su algoritmi genetici. Dal successo di mappare il lavoro
simbolico di ricercatori di Intelligenza Artificiale in un formato
"classificatorio", Forrest ha offerto, in un certo senso, una dimostrazione di
esistenza relativamente al fatto che sistemi di classificazione possono emulare
i modelli complessi della Intelligenza Artificiale simbolica.
I componenti principali nel lavoro di Forrest sono:

1) generatore di classi e parser

2) tavola di conversione dei simboli

3) comandi di processore esterni

4) sistema di classificazione.

Anche altri autori hanno sviluppato sistemi di classificazione che utilizzano


algoritmi genetici (L.B.Booker, D.E.Goldberg, J.H.Holland).

I sistemi di classificazione sono sistemi fortemente paralleli, selettori di


messaggi e basati su regole che imparano grazie all'assegnamento di credito
(bucket brigade algorithm) e regole per scoprire nuovi dati (algoritmi
genetici). Essi operano in ambienti che mostrano una o più delle seguenti
caratteristiche:

86
1) eventi perpetuamente nuovi accompagnati da grande rumore o dati
irrilevanti;

2) richieste di azioni continue e spesso in tempo reale;

3) obiettivi impliciti o definiti in maniera non esatta

4) funzione di rinforzo o di merito (payoff) ottenibile solo attraverso una lunga


sequenza di azioni.

I sistemi di classificazione sono disegnati per assorbire nuove informazioni


continuamente dal proprio ambiente, analizzando insiemi di ipotesi in
competizione (espresse da regole) senza disturbare in maniera significativa le
capacità già acquisite. Nel seguito si accennerà alle definizioni, alla teoria, e
alle estensioni di applicazioni dei sistemi di classificazione, confrontandoli
con altre tecniche di costruzione di macchine che apprendono, e concludendo
con una discussione sui vantaggi, problemi, e le estensioni possibili dei sistemi
di classificazione.

Quali sono i meccanismi di apprendimento di nuove classi?


In che modo è possibile per un sistema modificarsi per incrementare le proprie
capacità di riconoscimento di nuovi input?
Esistono due tipi di approcci:
a) un agente esterno può intervenire per fornire nuove modalità di
funzionamento
b) il sistema può autonomamente revisionare il proprio comportamento sulla
base della propria esperienza.
Per i sistemi di maggiore interesse come: sistemi cognitivi, economici, ecc ... la
prima ipotesi è raramente applicabile. Tali sistemi sono immersi in ambienti
continuamente mutevoli in cui tempestivi interventi dall'esterno sono difficili
se non impossibili. L'unica possibilità è l'apprendimento o per usare un
termine più comprensivo è l'adattamento. In altri termini, l'oggetto del sistema
che apprende, naturale o artificiale, è l'aumento di conoscenza in una
situazione di incertezza. Più direttamente un sistema che apprende migliora le
proprie prestazioni tramite generalizzazioni basate sulle proprie esperienze.
Chiaramente, in una situazione di continua novità, l'esperienza può guidare le
azioni future solo se esistono rilevanti regolarità nell'ambiente. Nell'ambito
dell' Intelligenza Artificiale il problema di estrarre delle regolarità è il problema
di scoprire utili rappresentazioni o categorie. Per una macchina che apprende il
problema consiste nel costruire categorie rilevanti dalle primitive del sistema.
Scoprire categorie rilevanti è solo metà del lavoro; il sistema deve anche

87
scoprire quale tipo di azione è appropriata per ciascuna categoria. Esiste un
altro problema nel costruire le rappresentazioni: in ambienti complessi, i
tentativi di soddisfare una richiesta comportano poche informazioni in
relazione al processo di livello superiore che porta alla risoluzione della
richiesta.
Come fa il sistema di apprendimento a riconoscere il valore implicito di certe
azioni ad un certo stadio ancora incompleto?
Le informazioni coinvolte ad un certo stadio intermedio possono essere usate
per costruire un modello dell'ambiente, e tale modello può essere usato per
estrapolare previsioni. La verifica o falsificazione della previsione in eventi
successivi può essere usata per avvalorare il modello. Il modello,
naturalmente, include anche una funzione di merito, così che le previsioni sul
valore di certe azioni possono essere controllate e riviste.
Riassumendo, i sistemi di apprendimento di maggior interesse presentano le
seguenti problematiche:

1) dati sempre nuovi concernenti l'ambiente, spesso rumorosi o irrilevanti

2) richieste continue di azioni, spesso in tempo reale

3) richieste non ben definite o implicite

4) funzione di merito o di rinforzo dispersa che richiede lunghe sequenze di


azioni.

Per affrontare questi problemi il sistema di apprendimento deve:

1) inventare categorie che scoprano regolarità, rilevanti per il problema, nel


proprio ambiente;

2) utilizzare il flusso di informazioni incontrate sul percorso per ridefinire il


proprio modello di ambiente;

3) assegnare azioni appropriate alle categorie man mano create.

Richieste sempre nuove e dati sempre nuovi in continuo cambiamento


forniscono poche opportunità di ottimizzazione, conviene piuttosto utilizzare
il concetto di competizione. Tipicamente relazioni complesse tra le primitive
del linguaggio e le frasi (regole) che specificano le azioni rendono difficile
trovare combinazioni semplici di primitive che forniscono generalizzazioni
plausibili dall'esperienza.

88
fig. (4.1)

Vediamo lo schema di un sistema di classificazione generico costruito


secondo i criteri abbozzati.
Esso si compone genericamente di:

a) messaggi provenienti dall'interfaccia di ingresso (input interface);


b) messaggi in uscita sull'interfaccia di output (output interface);
c) messaggi dal monitor interno (GOALS messages);
d) funzione di valutazione (payoff);
e) un nucleo interno - algoritmo di classificazione che consente di creare i
raggruppamenti e migliorare le performances;
f) algoritmo di assegnamento del credito tramite la funzione di valutazione
(bucket brigade - credit assignment);
g) algoritmo genetico vero e proprio (Discovery);

Il punto di partenza di questo approccio verso le macchine che imparano


consiste in un insieme di sistemi basati su regole indirizzati al compito di

89
scoprire algoritmi. Le regole devono consentire l'estrazione e la
ricombinazione di blocchi di costruzione (building blocks) dalle regole
correntemente usate per formare nuove regole e tali regole devono poter
interagire sia in modo semplice che in una modalità fortemente parallela.
I sistemi di classificazione sono paralleli, elaborano messaggi, sono basati su
regole in cui le regole hanno una forma semplice. Le regole sono solitamente in
una forma condizione/azione. La condizione specifica quale messaggio
soddisfa la regola e l'azione specifica quali messaggi occorre attivare in tal
caso.

(fig. 4.2)

Un sistema di classificazione base si compone delle seguenti parti principali:


a) interfaccia messaggi in ingresso (input interface);
b) interfaccia messaggi in uscita verso l'ambiente (output interface);
c) lista complessiva dei messaggi (messages list);
d) lista corrente messaggi condizione (IF list);
e) lista corrente messaggi attivi (THEN list - active messages);

In particolare:
1. Tutti i messaggi vengono testati e forniscono altri messaggi se verificati.

90
2. Le classificazioni vincenti generano nuovi messaggi.

Un sistema di classificazione base esegue i seguenti passi:

1. tutti i messaggi in input vengono aggiunti alla lista messaggi;


2. tutti i messaggi vengono valutati e tutte le condizioni controllate;
3. per quei messaggi che soddisfano le condizioni richieste vengono generati i
messaggi corrispondenti alla parte azione (action);
4. tutti i messaggi nella lista vengono sostituiti con i nuovi;
5. I messaggi vengono riportati nella lista di output in funzione delle richieste;
6. ritorna al punto 1.

91
4.2 Teoria matematica della classificazione

Principalmente la classificazione di oggetti avviene in base all'analisi degli


attributi posseduti dagli oggetti stessi. Gli oggetti possono essere organizzati in
classi e raggruppati in concetti. I principi di classificazione si dividono in
artificiali e naturali. Ad esempio come uso del principio naturale si
potrebbe prendere la classificazione degli animali e delle piante in accordo
con i dettagli delle loro caratteristiche e strutture. La moderna biologia si
focalizza sulla spiegazione della funzione informativa dei geni e delle
molecole, anche se per un lungo periodo le classificazioni degli organismi è
stata il principale argomento della biologia. È possibile generare una
classificazione senza nessun principio naturale. In tal caso, è più semplice
trattare la classificazione in maniera globale considerando una base di
conoscenza locale; poichè è più facile determinare similarità locali, sulla base
di tali similarità locali possiamo determinare quali oggetti sono più vicini o
simili ad altri. Per misurare la vicinanza locale, possiamo usare l'idea di
dimensione o cordinata. Supponiamo di avere w1, w2, ... ,wn come parole
chiave che descrivono il contenuto di un libro. Queste parole per ciascun libro
sono diverse e all'interno di ciascun libro l'importanza relativa di una parola
chiave è differente. Per rappresentare gli attributi di tutti i libri possiamo
prendere tutte le possibili chiavi e scriverle come un vettore
<w1,w2,...,wn>. Se un libro ha una chiave associata, il valore
dell'importanza di questa chiave è 1. Altrimenti, il valore della sua importanza
è 0. Alternativamente, possiamo avere le altre chiavi ad un valore tra 0 e 1 in
relazione alla loro importanza. Supponiamo sia v(ai), il valore di importanza
della parola chiave wi ed assumiamo che le parole chiave siano ordinate da
w1 a wn. Possiamo allora rappresentare il vettore di parole chiave a con
l'espressione:

a : < v(a1), v(a2), ... , v(an) >

In tal modo il libro a è espresso come un punto nello spazio n-dimensionale


le cui coordinate stanno tra 0 e 1, tale spazio è detto spazio degli attributi.
Per determinare se due oggetti sono simili, si può introdurre l'idea di distanza
nello spazio n-dimensionale. Una semplice misura di distanza è la distanza
Euclidea:
______________
/ n 2
d( v1, v2 ) = || v1 - v2 || = \/ Σ (v1i - v2i)
i=1

92
Consideriamo, ora, il problema della classificazione.
Quando facciamo riconoscimento di forme (pattern recognition), per
esempio nel caso di riconoscimento di caratteri, assumiamo che ciascun
carattere abbia una forma standard ideale. In tal caso il nostro compito risulta
difficoltoso poichè dobbiamo essere in grado di interpretare sia i caratteri
stampati sia quelli scritti a mano che di solito non corrispondono
perfettamente a tali forme ideali. Un sistema di riconoscimento di forme
prima studia le caratteristiche delle forme dei caratteri ideali, quindi determina
la posizione della forma ideali nello spazio degli attributi, e riconosce i
caratteri non perfettamente corrispondenti misurando la loro distanza da tale
posizione. Supponiamo di avere un vettore di caratteristiche di una forma
ideale v1 e la forma di un carattere corrispondente al vettore x, allora;

d (v1,x) < l

possiamo dire che x è riconosciuto essere il carattere v1 dove l è qualche


distanza fissata.
Supponiamo di avere due vettori di attributi corrispondenti a due caratteri ideali
v1, v2 allora dovremmo avere:

d (v1,v2) > l o se possibile


d (v1,v2) > 2l

Se abbiamo n forme standard e ciascuno di esse soddisfa la condizione di cui


sopra, allora dato un carattere sconosciuto x , il sistema confronterà il relativo
vettore con ciascun vettore ideale vi e determinerà il carattere più simile
tramite:
min(i) ( d(vi,x) )
oppure
se d(vi,x) ≤ l allora x appartiene a vi
se d(vi,x) > l per ogni i allora x non viene riconosciuto

Consideriamo il caso in cui la forma standard vi non sia determinabile e non


possa essere perciò utilizzata. In tal caso dobbiamo ottenere qualcosa che
sostituisce vi , per esempio prendendo la media di molte forme che
appartengono alla stessa classe. In altre parole il sistema non si riferisce
direttamente a vi ma usa molte forme che riconosce appartenere a vi:

x ∈ S(vi)

dove S(vi) è la collezione delle forme osservate che appartengono al pattern vi.

93
Se in numero di tali forme è k, allora il valore medio è:

1
vi =  Σ x
k x ∈ S(vi)

Tale valore medio verrà designato come forma standard.

Consideriamo ora il problema del clustering.


Abbiamo visto che è possibile classificare figure utilizzando la vicinanza tra
una forma sconosciuta e un insieme di forme standard nel caso in cui queste ci
siano date. Sfortunatamente non sempre è possibile averle. Nel caso in cui non
sia possibile avere un insieme di forme standard di confronto possiamo usare
il metodo del raggruppamento (clustering). Il clustering consiste in una
collezione di metodi quantitativi per determinare se un insieme di punti in
uno spazio n-dimensionale possono essere raggruppati, e quindi scoprire
quanti gruppi esistono. Se possiamo identificare alcuni gruppi di dati in
questo modo, possiamo immaginare che ciascun gruppo rappresenti
un'entità nella classificazione e che il numero dei raggruppamenti corisponde
al numero di entità nella classificazione. Ciò fornisce un modo naturale di
dividere i punti in gruppi di oggetti. Il tipo più semplice di clustering è il
ragruppamento semplice (simple clustering).
Supponiamo di denotare N oggetti con x = {x1,x2, ... ,xn}.
Ciascun xi rappresenta un vettore che ha n valori di attributo
xi = <xi1, xi2, ... , xin>.
La distanza tra un oggetto xi e xj è d(xi,xj) ; xi e xj appartengono alla
stessa classe se d(xi,xj) ≤ T per un valore specificato di T.
Vediamo ora alcuni algoritmi di creazione delle classi.

(1) Algoritmo - Simple clustering

1. prendi il primo oggetto, x1 e rendilo il centro del cluster z1. (z1 = x1)

2. per ogni oggetto arbitrario xi ;


se d(xi,z1) ≤ T allora xi appartiene a z1 ;
se d(xi,z1) > T allora costruiamo un nuovo cluster z2 = {xi};

3. supponiamo di aver processato (i) oggetti e di aver costruito k cluster


centrati in (z1, z2, ... ,zk) ; consideriamo l'oggetto xi+1,
IF d(xi+1,z1) > T, d(xi+1,z2) > T, ... , d(xi+1,zk) > T
THEN creiamo un altro cluster zk+1 = {xi+1};

94
IF d(xi+1,zl) ≤ T ( l ≤ k ) è vera per qualche zl
THEN si conclude che xi+1 appartiene a zl;

4. quando si arriva a xn, si ferma il processo.

l'ultimo zl diviene zk.

Questo algoritmo genera k gruppi dipendenti da T e dipende anche dall'ordine


in cui si presentano gli oggetti.

(2) Algoritmo - K-average algorithm

Un altro metodo conosciuto di raggruppamento è chiamato algoritmo k-medio.


Questo metodo presume che ci siano k gruppi e cerca di dividere il tutto in k
gruppi:

1. vengono creati k centri z1(1), z2(1), ... , zk(1) si potrebbe prendere anche
k oggetti a caso da X;

2. Al k-esimo passo, il sistema classifica gli elementi di X in k gruppi


utilizzando il seguente metodo se per un certo oggetto:

|| x - zj(k) || < || x - zi(k) ||

è vera per tutti i = 1,2,...,k (i diverso da j)


allora x appartiene a zj(k)
in altre parole cerchiamo il cluster che è più vicino a x;

3. supponiamo sia Sj(k) l'insieme di vettori assegnati a zj(k) calcoliamo un


nuovo centro zj(k+1) per Sj(k) come:

1
zj(k+1) = 
Nj Σ x
x ∈ Sj(k)

dove Nj è il numero di oggetti di Sj(k)


zj(k+1) è il centro di gravità dei punti che appartengono a Sj(k);

95
4. Assumiamo che l'algoritmo sia completato e ci fermiamo quando
zj(k+1) = Zj(k) è vero per tutti j = 1,2,...,k e i centri di gravità non si
spostano più.

Nel metodo sopra descritto si inizia con k gruppi.


Si può utilizzare differenti valori di k, k è arbitrario.
Esiste un'altro metodo che cerca di creare raggruppamenti migliori combinando
automaticamente k.
Con questo metodo, misuriamo l'efficienza della classificazione determinando
quanto compatto è ciascun gruppo.
La compattezza può essere calcolata come segue:

1. La media della distanza tra due oggetti in un gruppo è data da:


_ 1
Dj =  Σ || x - zj || i = 1,2,...,k.
Nj x ∈ Sj
_
2. La media dei Dj per tutti i gruppi vale:
1 k _
D =  Σ Nj ⋅ Dj dove N è il numero di gruppi.
N j=i

96
5. LOGICA MATEMATICA
5.1 La logica proposizionale

La moderna logica classica consiste in un sistema formale sviluppato


originariamente per trattare con argomenti logici in matematica. La parte
proposizionale di questo sistema riguarda argomenti costruibili utilizzando
proposizioni costanti e connettivi per costruire le frasi. Le proposizioni costanti
sono nomi che denotano frasi dichiarative. I connettivi sono operatori che
consentono la costruzione di frasi composte a partire da quelle atomiche o
elementari. Un alfabeto della logica proposizionale classica consiste di simboli
primitivi appartenenti alle classi seguenti:

(i) Un insieme numerabile di proposizioni costanti;


(ii) Una costante-vera: "Vero";
(iii) Connettivi: "->" implicazione e "¬" negazione;
(iv) parentesi : "(" e ")".

Le classi (ii)-(iv) sono fisse, mentre la classe (i) varia da alfabeto ad alfabeto, in
particolare, può essere vuoto. Assumiamo che l'insieme di proposizioni costanti
sia numerabile e denotiamole con lettere minuscole, p, q e r. Esse possono
rappre sentare frasi comuni del linguaggio corrente.

Definizione 5.1.1
L'insieme di formule sopra ad un alfabeto AL è costituito dal più piccolo
insieme che soddisfa le seguenti condizioni:

(i) Vero e ogni proposizione costante di AL è una formula.


(ii) Se A e B sono formule, allora lo sono anche (¬A) e (A->B).

L'insieme di tutte le formule sopra un alfabeto AL è detto linguaggio


proposizionale su AL, e lo denoteremo con L(AL). Si può assumere che
l'alfabeto sia fissato e che si possa scrivere L al posto di L(AL). È facile vedere
che la restrizione agli alfabeti con un insieme numerabili di proposizioni
costanti ci assicura la calcolabilità di ogni proposizione del linguaggio: per
ogni alfabeto AL (con un insieme numerabile di proposizioni costanti), è
possibile costruire una procedura effettiva per decidere se una determinata
espressione (cioè una sequenza di simboli) è una formula su AL.
Utilizzeremo le lettere maiuscole A,B,C, e D, con o senza subscritti e
primitive, come variabili sintattiche definite sulle formule. Le formule della

97
forma (¬A) e (A->B) si leggono come "non A" e "Se A allora B",
rispettivamente. (¬A) è detta negazione di A; (A->B) è detta implicazione con
antecedente A e conseguente B.

Introduciamo, ora, ulteriori connettivi tra le frasi:

"v" disgiunzine
"&" congiunzione
"≡" equivalenza

tramite le seguenti definizioni:

(A v B) = ((¬A) -> B)
(A & B) = (¬((¬A) v (¬B)))
(A ≡ B) = ((A -> B) & (B -> A))

Le formule sopra definite si possono leggere anche rispettivamente: (A v B)


come "A o B", (A & B) come "A e B", e (A ≡ B) come "A sse B" (A se e solo
se B) o anche equivalenza tra A e B. La costante Falso la possiamo utilizzare
come abbreviazione di ¬Vero. Per rendere le formule più facilmente
comprensibili si possono adottare alcune convenzioni: utilizzare anche le
parentesi "{" "}" "[" "]" con lo stesso significato delle "(" ")"; omettere le
parentesi quando tale omissione non causa confusione; per rendere
minimo il numero di parentesi, è possibile introdurre una gerarchia dei
connettivi, con precedenza nell'ordine: ¬,&,v,->,≡ ; assumiamo anche che
connettivi binari siano associati a destra, ciò permette di omettere le parentesi
esterne. Per esempio la formula: (((p & q) v r)->(p v r)) può essere
scritta come: p & q v r -> p v r e la formula (((p v q) v Falso) & (¬q)) si
riduce a (p v q v Falso) & ¬q. Scriviamo anche che A = B per indicare che A
e B sono esattamente la stessa formula.
Diremo che A è una sottoformula di B se e solo se A è una formula che
compare in B. In particolare, per ogni formula A, A è una sottoformula di A.

98
5.1.1 Semantiche della logica proposizionale

Le semantiche per la logica proposizionale sono basate sulle seguenti


notazioni:

Definizione 5.1.2
Un interpretazione per un linguaggio proposizionale L(AL) è una funzione
che assegna a ciascuna proposizione costante di AL un elemento dell'insieme
{0,1}.

Dove con 1 si indica che la proposizione è vera e con 0 che è falsa.


L'interpretazione allora fornisce i valori di verità per le proposizioni costanti.

Definizione 5.1.3
Sia m un interpretazione per L e supponiamo che A ∈ L.
Il valore di verità di A in m, denotato con V(A), è un elemento di {0,1} definito
dalle:

(i) V(Vero) = 1;
(ii) V(p) = m(p);
(iii) V(¬B) = 1 - V(B);
(iv) V(B -> C) = 1 sse V(B) = 0 o V(C) = 1.

Dalla definizione precedente possiamo ricavare le seguenti condizioni per i


simboli v,&,≡ e Falso:

(v) V(B v C) = max(V(B),V(C));


(vi) V(B & C) = min(V(B),V(C));
(vii) V(B ≡ C) = 1 sse V(B) = V(C);
(viii) V(Falso) = 0.

Osserviamo che i valori di verità di formule composte sono determinati


univocamente dai valori di verità dei componenti. Questo principio è detto
principio estensionale e vale tipicamente per tutti i sistemi di logica classica.
Diremo che A è vera (o rispettivamente falsa) in m sse V(A) = 1,
(rispettivamente V(A) = 0).
A è soddifacibile sse V(A) = 1, per qualche interpretazione m.
A è una tautologia sse V(A) = 1, per ogni interpretazione m.
Se V(A) = 1, allora m è detto modello per A.

99
Esempio:
Sia A nella forma p v ¬q -> p (nella notazione A = p v ¬q -> p) e
consideriamo due interpretazioni, m1 ed m2 tali che:

m1(p) = m1(q) = 1; m2(p) = m2(q) = 0;

A è vera in m1 ma è falsa in m2. Allora A è soddisfacibile ma non è una


tautologia. L'interpretazione m1 è un modello per A.

Esistono varie tecniche per determinare se una formula è una tautologia. La


più utilizzata è quella basata sul concetto di tavola della verità. Illustriamo il
metodo con un esempio.
La tabella di verità della formula (p -> ¬q) v q ha la forma:

p q ¬q p->¬q (p->¬q) v q
---------------------------------------
0 0 1 1 1
0 1 0 1 1
1 0 1 1 1
1 1 0 0 1

La tabella può essere considerata una abbreviazione delle seguenti


argomentazioni. Sia m una interpretazione arbitraria. Se m assegna 0 sia a p
che a q allora il valore di ¬q in m è 1, il valore di p->¬q in m è 1 e il valore
di (p -> ¬q) v q in m è 1. (per la prima riga).
Ogni riga possiede un significato analogo e le quattro righe esauriscono tutti i
casi possibili. Poichè in tutti i casi il valore della formula è 1 essa è una
tautologia. Questa tecnica può essere applicata ad ogni formula. Se una
formula contiene n proposizioni costanti differenti allora la tavola di verità si
comporrà di 2 elevato alla n righe. Il problema di validità per la logica
proposizionale consiste nella possibilità di determinare se una determinata
proposizione è una tautologia oppure no.

Teorema 5.1.4
Il problema di validità per la logica proposizionale è decidibile. O brevemente,
la logica proposizionale è decidibile.

Elenchiamo alcune importanti tautologie:

(T1) (A -> B) ≡ (¬A v B)


(T2) (A ≡ B) ≡ ((¬A v B) & (A v ¬B))

100
(T3) (¬(A & B)) ≡ (¬A v ¬B)
(T4) (¬(A v B)) ≡ (¬A & ¬B) Regole di De Morgan
(T5) (¬¬A) ≡ A Legge della doppia negazione
(T6) (A v (B & C)) ≡ ((A v B) & (A v C))
(T7) (A & (B v C)) ≡ ((A & B) v (A & C)) leggi distributive
(T8) (A & B) ≡ (B & A)
(T9) (A v B) ≡ (B v A) Leggi commutative
(T10) A v ¬A Legge del terzo escuso
(T11) A -> A Riflessività dell'implicazione
(T12) ((A ≡ B) & (B ≡ C)) -> (A ≡ C) Transitività dell'equivalenza
(T13) (A -> B) ≡ (¬B -> ¬A) legge della contrapposizione
(T14) ¬(A & ¬A) Legge della contraddizione
(T15) Falso -> A
(T16) (A -> Falso) ≡ ¬A
(T17) A -> Vero
(T18) (Vero -> A) ≡ A

Due formule A e B si dicono logicamente equivalenti, A <=> B, se e solo se


entrambe forniscono gli stessi valori di verità in ogni interpretazione, o
alternativamente se essi hanno gli stessi modelli.
Vi sono tre importanti proprietà delle formule equivalenti:

Teorema 5.1.5

(i) A <=> B sse A ≡ B è una tautologia;


(ii) A <=> B e B <=> C implica A <=> C (Transitività della relazione di
equivalenza);
(iii) Se B è una sottoformula di A, e A’ è il risultato della sostituzione in una
o più occorrenze di B in A con C, e B <=> C, allora A <=> A’. (Teorema della
sostituzione).

Il teorema della sostituzione assieme al principio di transitività della relazione


di equivalenza, sono spesso utilizzati per mostrare che formule di una data
classe possono essere trasformate in formule equivalenti che mostrino certe
desiderate proprietà sintattiche.
Illustreremo questo fatto in relazione ad un importante teorema.
n
Scriviamo ∩ Ai come abbreviazione di A1 & A2 & ... & An
i=1

101
n
e ∪ Ai come abbreviazione di A1 v A2 v ... v An
i=1

Una formula atomica consiste o in una proposizione costante o nella costante


Vero. Una formula B si dice essere nella forma congiuntiva normale sse

n m( i )
B = ∩ [ ∪ Bij ],
i=1 j=1

dove Bij può essere o una formula atomica o la negazione di una formula
atomica. Una formula B si dice che è la forma congiuntiva normale di una
formula A se è in forma normale congiuntiva e vale A <=> B.

Teorema 5.1.6

Ogni formula A può essere effettivamente trasformata in una sua


forma normale congiuntiva.

Dimostrazione: si procede in tre passi

1) eliminare l'implicazione -> e l'equivalenza ≡ sostituendo in A

(B -> C) con (¬B v C)


(B ≡ C) con ((¬B v C) & (B v(B v ¬C))

fintanto che la formula risultante contiene solo v,& e ¬ come connettivi.

2) Spostare la negazione ¬ in avanti sostituendo

¬(B v C) con ¬B & ¬C


¬(B & C) con ¬B v ¬C
¬¬B con B

fintanto che tutte le ricorrenze della negazione ¬ non compaiono


immediatamente prima delle formule atomiche.

3) Distribuire & (e) sopra v (o) sostituendo

102
(B & C) v D con (B v D) & (C v D)
B v (C & D) con (B v C) & (B v D)

e denotando con A’ la formula risultante.


Eseguendo l'algoritmo sopra descritto viene costruita una sequenza di formule
A0, A1, ... ,An, tale che A0 = A, An = A’, A’ è in forma normale congiuntiva,
e per ciascun i (0≤i<n), Ai+1 è il risultato di una sostituzione di una
sottoformula di Ai con una sottoformula equivalente. Allora, dal teorema di
sostituzione, Ai <=> Ai+1 per ciascun i e quindi dalla transitività della
relazione di equivalenza A0 <=> An, Quindi, A’ è una forma normale
congiuntiva di A.
Esempio:
Consideriamo la formula A = r v ¬(p -> q).
1) eliminando -> si ottiene r v ¬(¬p v q).
2) spostando la negazione si ottiene r v (p & ¬q)
3) distribuendo & sopra v si ottiene (r v p) & (r v ¬q)
che è la desiderata forma normale congiuntiva per A.

103
5.3 Teorie proposizionali

Uno dei concetti centrali della logica proposizionale è quello di teoria


proposizionale. Tale teoria consiste in una collezione di formule su un
linguaggio di proposizioni, che si ripropone di fornire una descrizione di un
determinato mondo. (Un particolare dominio, una realtà, un campo di
interesse,...).

Definizione 5.1.7
Una teoria proposizionale consiste in una coppia T = <L,S>, dove L è un
linguaggio proposizionale ed S è un insieme di formule di L calcolabili. Gli
elementi di S rappresentano gli assiomi (o le premesse) di T. Se S è vuoto,
allora T è detto calcolo proposizionale.

Abbreviando la frase teoria proposizionale in teoria, denoteremo le teorie con


la lettera T. Di solito, le teorie vengono identificate con l'insieme degli assiomi
che le determinano. In tal caso si assume che il linguaggio della teoria T
consista di tutte le formule costruibili utilizzando le proposizioni costanti che
compaiono negli assiomi di T.
Per esempio, quando affermiamo che T consiste di

p & q -> r e r -> q

allora stiamo facendo l'implicita assunzione che


T = <L,{p & q -> r, r -> q}>, dove L è il linguaggio corrispondente all'alfabeto
con p, q e r come uniche proposizioni costanti.
Una teoria si dice finita (rispettivamente infinita) se e solo se l'insieme degli
assiomi è finito (rispettivamente infinito).
Se T è una teoria finita con assiomi A1,...,An allora T viene spesso denotata
con {A1,...,An} o semplicemente A1,...,An.
T' è una sottoteoria di T, sse gli assiomi di T' sono un sottoinsieme degli
assiomi di T. Osserviamo che per ciascuna formula A è possibile associare una
teoria < L,{A}>, dove L è il linguaggio consistente di tutte le formule
costruibili utilizzando le proposizioni costanti presenti in A. In questo senso
ogni formula può essere interpretata come una teoria.
Una interpretazione m è un modello per una teoria T se tutti gli assiomi di T
sono veri in m. Una teoria può avere molti modelli oppure non averne
nessuno; una teoria che possiede un modello è detta soddisfacibile, viceversa
è detta insoddisfacibile.

104
Teorema 5.1.8 (Teorema di compattezza)

Una teoria T ha un modello sse ciascuna sottoteoria di T ha un modello.

Una formula si dice essere una conseguenza semantica di una teoria T,


denotata come T ⇒ A, sse A è vera in ogni modello di T.
In particolare, A è una conseguenza semantica del calcolo proposizionale,
⇒ A, sse A è vera in ogni interpretazione per L.
Se T ⇒ A, allora possiamo anche dire che A è una conseguenza logica di T, A
è implicata da T, o T implica A.

Esempio:
Consideriamo la teoria T consistente di:

Domenica
Domenica -> Vado a pescare
Sono stanco -> ¬Vado a pescare

Si può facilmente verificare che T possiede un modello m dato da

m(Domenica)=1 ; m(Vado a pescare)=1 ; m(Sono stanco)=0

perciò la teoria implica T ⇒ ¬Sono stanco

Si può osservare che il simbolo ⇒ denota una relazione binaria, di solito


chiamata relazione di implicazione per la logica proposizionale, che vale tra
una teoria T e una formula A sse T implica A.

Teorema 5.1.9

La relazione di implicazione della logica proposizionale gode delle seguenti


proprietà:

(i) T ⇒ B sse T ∪ {¬B} è insoddisfacibile;


(ii) T, A ⇒ B sse T ⇒ A -> B;
(iii) {A1,...,An} ⇒ B sse ⇒ A1 & ... & An -> B
(iv) Se T è un sottoinsieme di T'
allora {A : T ⇒ A} è sottoinsieme di {A : T' ⇒ A }
(Monotonicità nell'espansione delle teorie)

105
Le asserzioni (iii) e (iv) necessitano di una particolare attenzione. Riguardo
alla (iii), il problema di determinare se una formula B segue da una teoria
{A1,...,An} si riduce al problema di determinare se la formula A1 & A2 ... &
An -> B è una tautologia. Per quanto riguarda la (iv), tale proposizione
esprime il fatto che se A segue da una teoria T, allora, se aggiungiamo nuovi
assiomi a T, A è ancora derivabile dalla teoria estesa. Questa proprietà,
conosciuta come principio di monotonicità, è sottintesa in tutti i sistemi logici
classici.

Due teorie T e T' si dicono logicamente equivalenti, T <=> T' sse sono
soddisfacibili dagli stessi modelli.
Un'importante proprietà delle teorie equivalenti è data dal seguente teorema.

Teorema 5.1.10

Per ogni teoria T e T', T <=> T' sse {A: T ⇒ A} = {A: T' ⇒ A}.

In altri termini da teorie equivalenti si deducono esattamente le stesse formule,


pertanto due teorie equivalenti sono indistinguibili dal punto di vista delle
applicazioni pratiche.

Teorema 5.1.11

Se T = {A1,...,An}, allora T <=> {A1 & ... & An}.

Allora ogni teoria finita si può identificare con la congiunzione di tutti i suoi
assiomi.
Due formule A e B si dicono equivalenti in una teoria T sse posseggono gli
stessi valori di verità in ogni modello per T, o, alternativamente, sse T implica
la formula A ≡ B.

106
5.4 La logica proposizionale come sistema deduttivo

Allo stesso modo in cui si può considerare le formule in relazione al loro


significato e valore di verità (vero-falso), cioè il modo in cui si può
considerare la logica proposizionale da una prospettiva semantica, così è
possibile focalizzare gli aspetti puramente sintattici del formalismo,
considerandolo un sistema deduttivo.

Definizione 5.1.12
Un sistema deduttivo, o sistema inferenziale, o teoria formale, o teoria
assiomatica, o assiomatizzazione, ... per la logica proposizionale consiste in
DS = <L,S,R>, dove:

(i) L è un linguaggio proposizionale


(ii) S è un sottoinsieme numerabile di L gli elementi di S sono detti assiomi
(iii) R = {R1,...,Rn} è un insieme finito di regole di inferenza. Ciascuna
regola Ri è una funzione parziale da Lk a L Ri : Lk ---> L (k ≥ 1). Se A1,...,Ak
appartengono al dominio di Ri, allora possiamo dire che Ri è applicabile a
A1,...,Ak e che Ri(A1,...,Ak) consiste nelle dirette conseguenze di A1,...,An in
virtù della Ri. Assumiamo che ciascuna Ri sia calcolabile, cioè esista una
procedura effettiva che prende la tupla A1,...,Ak di formule da L, determini se
Ri è applicabile ad essa, e, se lo è fornisca Ri(A1,...,Ak).

Per un sistema deduttivo nella logica proposizionale, brevemente "sistema


deduttivo", la regola di inferenza più conosciuta è probabilmente (MP) modus
ponens, che afferma che B è una diretta conseguenza di A e A -> B; dove A e
B indicano formule del linguaggio considerato. MP è solitamente scritta nel
formalismo:

A, A -> B

B

che può essere formalmente considerato come una funzione parziale (una
corrispondenza) da LxL a L tale che:
(i) il dominio di MP è {<A,A -> B>: A,B ∈ L};
(ii) MP(<A,A -> B>) = B.
È facile vedere che MP modus ponens è una regola calcolabile.

Una regola di inferenza R si dice solida (o anche che conserva la funzione di


verità) sse per qualsiasi interpretazione m e ogni A1,...,Ak nel dominio di Ri,

107
Ri(A1,...,Ak) è vera in m, quando A1,...,Ak sono vere in m. Chiaramente, MP
è una regola che conserva la funzione di verità poichè, per ogni formula A e
B, B è vera in ogni interpretazione in cui A e A -> B sono vere.
Una formula A è dimostrabile in DS = <L,S,R> (o anche A è un teorema in
DS) sse esiste una sequenza A1,...,Am di formule di L tali che A coincide
con Am e, per ciascun i, 1 ≤ i ≤ m, ogni Ai ∈ S oppure Ai è una diretta
conseguenza di qualche formula precedente in virtù di qualche regola di R.
Una tale sequenza è chiamata dimostrazione di A in DS.
Nella definizione di sistema deduttivo DS = <L,S,R>, sono state fatte due
importanti assunzioni.
Primo, l'insieme S di assiomi deve essere un sottoinsieme calcolabile di L, cioè
deve esistere una procedura effettiva per decidere quando una determinata
formula di L è logicamente un assioma oppure no.
Secondo, ogni regola di inferenza Ri ∈ R deve essere calcolabile, nel senso
che deve esistere una procedura effettiva che prende una tupla A1,...,Ak di
formule da L, determina se la tupla appartiene al dominio di Ri, e, se vi
appartiene, calcola Ri(A1,...,Ak).
Queste assunzioni assicurano, considerando il caso in cui ci restringiamo a
linguaggi calcolabili, che la nozione di dimostrazione è calcolabile nel senso
seguente: esiste una procedura effettiva che prende una sequenza finita
E1,...,En di espressioni linguistiche arbitrarie e determina se la sequenza è una
dimostrazione di En oppure no, in DS.
L'esistenza di una tale procedura è fondamentale, poichè la nozione di
dimostrazione, come sopra specificato, è stata originariamente formulata allo
scopo di formalizzare le argomentazioni matematiche. Ovviamente, se un
matematico prova una dimostrazione, dovrebbe esistere un metodo effettivo
per verificarla.
La nozione di dimostrazione può essere generalizzata nel modo seguente:
sia DS = <L,S,R> un sistema di deduzioni e supponiamo che T sia una teoria
su L. Possiamo dire che una formula A è una formula dimostrabile da T in
DS, T(DS) → A, sse esiste una sequenza A1,...,Am di formule di L tali che
A coincide con Am e, per ogni i 1 ≤ i ≤ m, ogni Ai ∈ (S ∪ T) oppure Ai è
una conseguenza diretta di qualche formula precedente in virtù di qualche
regola di R. Una tale sequenza si dice dimostrazione di A da T in DS.
Se T(DS) → A, allora possiamo anche dire che A è una conseguenza
sintattica di T in DS, o anche che A è un teorema di T in DS.
Scriviamo (DS) → A come abbreviazione per { }(DS) → A.
In altri termini (DS) → A è una notazione simbolica per l'affermazione: A è un
teorema in DS.
Nella definizione della nozione di teoria, abbiamo assunto che l'insieme
degli assiomi di qualsiasi teoria sia un sottoinsieme calcolabile del suo
108
linguaggio. Questo assicura, nel caso in cui tutte le altre richieste di
calcolabilità siano soddisfatte, che la nozione generalizzata di dimostrazione è
effettivamente calcolabile. In altre parole, per qualsiasi teoria T e qualsiasi
sistema di deduzioni DS, esiste una procedura effettiva per decidere se una
determinata sequenza di espressioni linguistiche arbitrarie formano una
dimostrazione su T e DS.
Un sistema di deduzioni DS si dice solido sse (DS) → A implica che A è una
tautologia. Per garantire questa solidità, che è chiaramente una proprietà
desiderabile, è sufficiente aggiungere due proprietà al sistema di deduzioni DS:
primo, tutti gli assiomi logici devono essere delle tautologie;
secondo, tutte le regole di inferenza debbono essere solide.
Sono particolarmente interessanti quei sistemi di deduzione solidi che sono
anche completi, cioè consentono di provare qualsiasi tautologia. Parecchi di tali
sistemi di deduzione sono stati proposti in letteratura; il più comune è forse il
seguente:

Definizione 5.1.13
Sia L un linguaggio proposizionale.
Denotiamo con PL(L) il sistema di deduzioni <L,S,R> dato da:

(i) S consiste nei seguenti assiomi


(A1) Vero
(A2) A -> (B -> A)
(A3) (A -> (B -> C)) -> ((A -> B) -> (A -> C))
(A4) (¬B -> ¬A) -> ((¬B -> A) -> B)

(ii) R contiene solo il modus ponens come unica regola.

Notiamo che (A2)-(A4) sono uno schema di assiomi ciascuno dei quali
rappresenta un numero infinito di assiomi. È facile vedere che S è un
sottoinsieme calcolabile di L.
Possiamo assumere che il linguaggio L sia fissato e che il simbolo PL(L) →
possa essere scritto semplicemente →.
Se T → A, allora diremo che A è dimostrabile da T nella logica
proposizionale. In maniera analoga, se → A, allora diremo che A è
dimostrabile nella logica proposizionale o alternativamente, che A è un
teorema della logica proposizionale.
Scriviamo T ¬→ A e ¬→ A come le negazioni per T → A e → A.

109
La relazione binaria denotata col simbolo →, cioe, la relazione che vale fra
una teoria T e una formula A sse T → A, è detta relazione di dimostrabilità
della logica proposizionale classica.
La relazione binaria corrispondente al simbolo ¬→ si riferisce alla relazione
di indimostrabilità della logica proposizionale classica.
Denotiamo con Th l'operatore della logica proposizionale classica di
dimostrabilità, in altri termini, l'operatore che assegna a ciascuna teoria T
l'insieme Th(T) di tutte le formule dimostrabili da T nella logica
proposizionale: Th(T) = {A: T → A}.

Teorema 5.1.14
L'operatore Th soddisfa le seguenti proprietà:

(i) T è sottoinsieme di Th(T);


(ii) Th(T) = Th(Th(T)); idempotenza
(iii) Se T è sottoinsieme di T' allora Th(T) è sottoinsieme di Th(T');
monotonicità

Si può osservare che (iii) rappresenta la controparte sintattica del principio di


monotonicità espresso dal teorema 5.1.9 (iv).
La sintassi e la semantica della logica proposizionale sono connesse dal
seguente risultato fondamentale:

Teorema 5.1.15

(i) Se T → A , allora T ⇒ A; (teorema di solidità)

(ii) Se T ⇒ A , allora T → A; (teorema di completezza)

Corollario 5.1.16 → A sse ⇒ A.

Una teoria T sopra L si dice consistente sse esiste una formula A ∈ L tale che
T ¬→ A.
La nozione di consistenza rappresenta la controparte sintattica della nozione
di soddisfacibilità:

Teorema 5.1.17

T è consistente sse è soddisfacibile.

110
Il risultato seguente corrisponde dal teorema 5.1.9 (ii)-(iii):

Teorema 5.1.18 (Teorema di deduzione)

(i) T,A → B sse T → A -> B;

(ii) {A1,A2,...,An} → B sse → A1 & A2 & ... & An -> B.

Abbiamo anche la seguente controparte del teorema di compattezza:

Teorema 5.1.19

T è consistente sse ogni sottoteoria finita di T è consistente.

111
5.2 Logica classica del primo ordine

La logica classica del primo ordine, conosciuta anche come logica dei predicati
di ordine minimo o logica dei predicati del primo ordine, è la logica
fondamentale per tutti i sistemi logici.
Il suo linguaggio è sufficientemente ricco da esprimere le argomentazioni
principali utilizzate nella matematica e in applicazioni diverse dalla
matematica che utilizzano il ragionamento deduttivo.

5.2.1 Il linguaggio della logica del primo ordine.

Un alfabeto nella logica classica del primo ordine consiste di simboli


primitivi appartenenti alle seguenti classi:

(i) Un insieme V numerabile di variabili individuali: {x1,x2,...};

(ii) Una costante vera: "Vero";

(iii) Connettivi per le frasi: "¬" e "->";

(iv) Un quantificatore universale: "(_)" per ogni _ ;

(v) parentesi: "(",")";

(vi) Un insieme numerabile di predicati costanti |P, a ciascun P ∈ |P, è


assegnato un intero non negativo chiamato arità di P;

(vii) Un distinto predicato costante di arità 2: "=" 2-ary predicato -


ugualianza;

(viii) Un insieme numerabile |F di funzioni costanti; a ciascuna ƒ ∈ |F è


assegnato un intero non negativo chiamato arità dell ƒ.

Le classi (i)-(v) sono fisse e i loro membri debbono essere presenti in tutti gli
alfabeti. Le altre classi possono variare e, in particolare, l'insieme delle
funzioni costanti può essere vuoto.
Assumiamo, comunque, che ogni alfabeto includa almeno un predicato
costante di arità positiva. Gli insiemi |P e |F debbono essere calcolabili nel
senso che è richiesta l'esistenza di una procedura effettiva π(|P) e π(|F) che dato

112
un arbitrario simbolo s, determina se s ∈ |P o se s ∈ |F e ne fornisce l'arità.
I predicati costanti 0-ary sono le proposizioni costanti.
Le funzioni costanti 0_ary sono gli individui o anche gli oggetti costanti.
Introduciamo alcuni simboli speciali: x,y,u,z per le variabili individuali;
P,Q,R per i predicati costanti di arità positiva; p,q,r per le proposizioni
costanti; f,g,h per le funzioni costanti di arità positiva; a,b,c per individui
costanti. I predicati e le funzioni costanti possono consistere in frasi del
linguaggio comune.

Ogni alfabeto della logica del primo ordine determina in maniera univoca tre
classi di espressioni: termini, formule atomiche e formule.

Definizione 5.2.1
Sia AL un alfabeto della logica del primo ordine.
L'insieme TM(AL) dei termini su AL consiste nel più piccolo insieme tale che:

(i) Tutte le variabili individuali e tutte le costanti individuali di AL sono


membri di TM(AL);

(ii) Se α1,...,αn ∈ TM(AL) (n ≥ 1) e f è una funzione n-ary costante di AL,


allora f(α1,...,αn) ∈ TM(AL).

L'insieme AFORM(AL) di tutte le formule atomiche su AL consiste nel più


piccolo insieme tale che:

(i) Vero e tutte le proposizioni costanti di AL appartengono a AFORM(AL);

(ii) Se α1,...,αn ∈ TM(AL) (n ≥ 1) e P è un predicato costante n-ary di AL,


allora P(α1,...,αn) ∈ AFORM(AL);

(iii) Se α1,α2 ∈ TM(AL), allora (α1 = α2) ∈ AFORM(AL), nel caso in cui
AL contenga il simbolo "=".

L'insieme L(AL) delle formule sopra AL consiste nel più piccolo insieme tale
che:

(i) Se A ∈ AFORM(AL), allora A ∈ L(AL);

(ii) Se A,B ∈ L(AL) e x è una variabile, allora (¬A) ∈ L(AL)


(A -> B) ∈ L(AL) e ((√x)(A)) ∈ L(AL). [(per ogni x(A)) ∈ L(AL)]

113
L'insieme L(AL) è detto linguaggio del primo ordine su AL, e ogni linguaggio
del primo ordine include come sottoinsieme proprio una classe di formule della
logica proposizionale.
Abbreviamo la notazione L(AL), essendo AL fisso, con L.
È facile vedere che la restrizione ad alfabeti composti da insiemi di funzioni e
predicati calcolabili garantisce la calcolabilità di ogni linguaggio del primo
ordine. L è detto essere un linguaggio del primo ordine con uguaglianza
sse "=" ∈ AL, oppure linguaggio del primo ordine senza uguaglianza in caso
contrario. Formule nella forma (¬A) e (A -> B) hanno lo stesso significato
di quelle della logica proposizionale. Una formula della forma ((√x)(A)) si
legge per ogni elemento x A è vera. Diciamo che la ricorrenza di x in (√x) è
universalmente quantificata.
Di piu, aggiungiamo un simbolo ∃ (quantificatore esistenziale):

(∃x(A)) = (¬((√x)(¬(A))))

non è vero che per ogni x A non è vera.


Una formula della forma (∃x(A)) si legge "per qualche elemento x, A è vera".
La ricorrenza di x in ∃x si chiama quantificazione esistenziale.
Introduciamo una importante convenzione nella notazione:
scriviamo "Q1x1...Qnxn.", dove Q1...Qn ∈ {(_),E}, per indicare che tutte le
ricorrenze di x1,...xn che seguono il punto "." sono vincolate dalla condizione
Q1x1,...,Qnxn. Per esempio (√x)Ey.P(x) & Q(y) sta per (√x)Ey[P(x) & Q(y)].
Una ricorrenza di una variabile si dice libera in una formula A sse non è
quantificata. Per esempio, nella formula P(x) v Q(x), entrambe le ricorrenze di
x sono libere; in P(x) -> (√x).Q(x), la prima ricorrenza di x è libera, mentre la
seconda e la terza non lo sono. Una variabile x si dice libera in A sse x ha
ricorrenze libere in A. Scriviamo A(x1,...,xn) per indicare che alcune variabili
in A sono libere, non che tutte le variabili x1,...,xn siano libere e nemmeno
che siano le uniche variabili libere in A. Per ogni formula A(x1,...,xn) abbiamo
A(α1,...,αn) per denotare il risultato della simultanea sostituzione in A dei
termini α1,...,αn per tutte le ricorrenze libere di x1,...,xn. Una formula che non
contenga variabili libere si dice chiusa, altrimenti si dice aperta. Le formule
chiuse sono anche chiamate sentenze o affermazioni. Una formula (un
termine) si dice base (ground) sse non contiene alcuna variabile.

Sia A una formula con variabili x1,...,xn (n ≥ 1).


La chiusura universale di A, (A) per ogni A, è la formula (x1),...,(xn).A.
La chiusura esistenziale di A, (∃A) esiste A, è la formula
(∃x1),...,(∃xn).A.

114
A si dice sottoformula di B se A ricorre in B.

Definizione 5.2.2
Sia L(AL) un linguaggio del primo ordine con uguaglianza.
L'insieme di assiomi per l'uguaglianza per L(AL) consiste in:

(E1) (√x).x = x riflessività


(E2) (√x)(√y).x = y -> y = x simmetria
(E3) (√x)(√y)(√z).x = y & y = z -> x = z transitività
(E4) (√x1)...(√xn)(√y1)...(√yn)[x1=y1 & ... & xn=yn & P(x1,...xn) ->
P(y1,...,yn)], per ogni n-ary (n≥1) predicato costante P ∈ AL
(E5) (√x1)...(√xn)(y1)...(√yn)[x1=y1 & ... & xn=yn -> f(x1,...,xn) =
f(y1,...,yn)], per ogni n-ary (n≥1) funzione costante f ∈ AL.

Gli assiomi (E4)-(E5) sono gli assiomi di sostitutività dell'uguaglianza.

115
5.2.2 Semantica della logica del primo ordine

La semantica della logica del primo ordine è basata sui seguenti concetti:

Definizione 5.2.3
Una struttura per un linguaggio L(AL) del primo ordine consiste in
M = <D,m> dove:

(i) D è un insieme non vuoto, chiamato dominio (universo) di M


(ii) m è una funzione che assegna a ciascun predicato costante n-ary (n≥0) di
AL, diverso da "=", una relazione n-ary su D; alla costante "=", se presente il
AL, la relazione identica su D, e a ciascuna funzione costante n-ary (n≥0) di
AL una funzione da D elevato alla n in D.

Tenendo presente che relazioni 0-ary su D e funzioni 0-ary da D0 in D sono


identificate dai valori di verità e dagli elementi di D, rispettivamente, per ogni
struttura M = <D,m> per L(AL), m assegna a ciascuna proposizione costante
in AL, un elemento di {0,1}, e a ciascuna costante individuale in AL un
elemento di D. Data una struttura M =<D,m> per L(AL), possiamo scrivere
|M| per denotare il dominio di M. Se K è un predicato o una funzione costante
in AL, allora M|K| sta per m(K). Utilizziamo la frase "M è una struttura del
primo ordine" (M è una struttura per la logica del primo ordine) per indicare
che M è una struttura per qualche linguaggio L del primo ordine. Per una
struttura del primo ordine M, denotiamo con As(M) l'insieme degli
assegnamenti su M, cioè l'insieme di tutte le funzioni dall'insieme delle
variabili in |M|. Se a ∈ As(M) e x è una variabile, allora scriviamo [a]x per
denotare l'insieme di quegli assegnamenti su M che differiscono da "a" al
massimo su x. Formalmente,
[a] = {a’:a’ ∈ As(M) e a’(y) = a(y), per ogni y diverso da x}

Definizione 5.2.4
Sia M una struttura del primo ordine per L(AL)
Il valore Va(α) di un termine α ∈ TM(AL) in M rispetto ad a ∈ As(M)
è un elemento di |M| definito dalle seguenti ricorrenze su α:

(i) Va(x) = a(x)


(ii) Va(a) = M|a|
(iii) Va(f(α1,...,αn)) = M|f|(Va(α1),...,Va(αn)).

116
Il valore di verità Va(A) di una formula A ∈ L(AL) in M corrispondente ad a
∈ As(M) è un elemento di {0,1} definito da:

(i) Va(Vero) = 1
(ii) Va(p) = M|p|
(iii) Va(P(α1,...,αn)) = M|P|(Va(α1),...,Va(αn))
(iv) Va(α = β) = 1 sse Va(α) = Va(β)
(v) Va(B -> C) = 1 sse Va(B) = 0 oppure Va(C) = 1
(vi) Va(¬B) = 1 - Va(B)
(vii) Va((x)B) = 1 sse Va(B) = 1, per ogni a’ ∈ [a]x

Le condizioni per il valore di verità seguenti si derivano dalle definizioni di


&, v, ≡, Falso e (∃x) :

(viii) Va(B & C) = min(Va(B),Va(C))


(ix) Va(B v C) = max(Va(B),Va(C))
(x) Va(B ≡ C) = 1 sse Va(B) = Va(C)
(xi) Va(Falso) = 0
(xii) Va((∃x)B) = 1 sse Va(B) = 1, per qualche a’ ∈ [a]x.

Una formula si dice soddisfatta in una struttura M da una assegnazione


a ∈ As(M) sse Va(A) = 1.
A è soddisfacibile sse Va(A) = 1, per qualche struttura M e qualche
a ∈ As(M); in caso contrario si dice insoddisfacibile.
A è vera in M sse Va(A) = 1, per ogni a ∈ As(M).
Se A è vera in M, allora M si dice modello per A.
A è (logicamente) valida sse A è vera in ogni struttura M.

Esempio:
Sia A= P(x,f(x)) -> (y)P(x,y) e consideriamo la struttura M tale che |M| sia
l'insieme degli interi positivi, M|P| è la relazione ≤, e M|f| è la funzione di
successione.
A è soddisfatta in M da a ∈ As(M) sse a(x) = 1.
Allora, A è soddisfacibile ma non valida.

Il teorema seguente elenca i risultati base che riguardano le nozioni di verità,


soddisfacibilità e validità:

117
Teorema 5.2.5

(i) A è vera in M sse (A) è vera in M


(ii) A è valida sse (A) è valida
(iii) A è soddisfacibile sse (∃A) è soddisfacibile
(iv) A è valida sse ¬A non è soddisfacibile

Il problema della validità nella logica del primo ordine consiste nel
determinare se una formula arbitraria del primo ordine è valida oppure no.

Teorema 5.2.6 (Church 1936)

Il problema di validità nella logica del primo ordine è indecidibile.

Il risultato sopra riportato può essere espresso anche dicendo che, in generale,
un insieme di formule valide (su di un linguaggio del primo ordine L) non è un
sottoinsieme calcolabile di L.
Comunque, un tale insieme è ricorsivamente numerabile e quindi abbiamo:

Teorema 5.2.7

Un insieme di formule valide su un linguaggio L del primo ordine


è un sottoinsieme di L parzialmente calcolabile.

Pertanto esiste una procedura π che prende una formula arbitraria A ∈ L e


determina che A è valida, nel caso in cui lo sia; altrimenti, se A non è valida, π
può terminare e determinare che A non è valida oppure continuare
indefinitivamente nella ricerca della validità della formula. In altri termini si
può dire che la logica del primo ordine è parzialmente decidibile o semi-
decidibile.

Una istanza di una formula proposizionale A è qualsiasi formula ottenibile da


A con la sostituzione uniforme con formule delle proposizioni costanti che
compaiono in A.
È facile vedere che ogni istanza di una tautologia è valida.
Elenchiamo alcune formule valide importanti a fini pratici:

(V1) (√x)A -> (∃x)A


(V2) (√x)A(x) -> A(α), se α è libera per x in A(x)
(V3) A(α) -> (∃x)A(x) se α è libera per x in A(x)
118
(V4) (∃x)(√y)A -> (√y)(∃x)A
(V5) (√x)(√y)A ≡ (√y)(√x)A
(V6) (∃x)(∃y)A ≡ (∃y)(∃x)A
(V7) (√x)A ≡ ¬(∃x)¬A
(V8) (∃x)A ≡ ¬(√x)¬A
(V9) (√x)(A -> B) -> ((√x)A -> (√x)B)
(V10) (√x)A & (√x)B ≡ (√x)(A & B)
(V11) (√x)A v (x)B -> (√x)(A v B)
(V12) (∃x)A v (∃x)B ≡ (∃x)(A v B)
(V13) (∃x)(A & B) -> (∃x)A & (∃x)B

Le formule seguenti sono valide nel caso in cui A non contenga ricorrenze
libere di x.

(V14) (√x)A ≡ A
(V15) (∃x)A ≡ A
(V16) (∃x)B v A ≡ (∃x)(B v A)
(V17) A v (∃x)B ≡ (∃x)(A v B)
(V18) (√x)B v A ≡ (√x)(B v A)
(V19) A v (√x)B ≡ (√x)(A v B)
(V20) (∃x)B & A ≡ (∃x)(B & A)
(V21) A & (∃x)B ≡ (∃x)(A & B)
(V22) (√x)B & A ≡ (√x)(B & A)
(V23) A & (√x)B ≡ (√x)(A & B)

Due formule A e B si dicono logicamente equivalenti, A <=> B, sse per esse


vale la stessa funzione di verità per ogni struttura M ed ogni assegnamento
a ∈ AS(M). Il teorema seguente corrisponde strettamente al teorema 5.1.5 ed
elenca le proprietà basilari delle formule equivalenti:

Teorema 5.2.8

(i) A <=> B sse A ≡ B è valida;


(ii) A <=> B e B <=> C implica A <=> C; (transitività)
(iii) Se B è una sottoformula di A, e A’ è il risultato della sostituzione di una
o più ricorrenze di B in A con C, e B <=> C, allora A <=> A’. (teorema di
sostituzione).

119
Si dice che B è una variante immediata di A sse A = Qxi.C(xi) e B =
Qxj.C(xj), dove Q ∈ {(_),(∃_)}, e C(xi) non ha ricorrenze libere di xj. Diremo
che B è un invariante di A sse B è il risultato della sostituzione di una o più
sottoformule di A con le loro varianti immediate. Per esempio: (√x).P(x) &
Q(x) è una variante immediata di (√z).P(z) & Q(z).
Allora (∃y)[R(y) -> (z).P(z) & Q(z)] è una variante di
(∃y)[R(y) -> (√x).P(x) & Q(x)].

Teorema 5.2.9 (teorema delle varianti)

Se B è una variante di A, allora A <=> B.

Una formula A si dice in forma normale congiuntiva prefissa sse è nella


forma:
m k( i )
Q1x1 ... Qnxn.[ ∩ ∪ Aij ] dove
i=1 j=1

(i) per ciascun i, 1 ≤ i ≤ n, Qi ∈ {(_),(∃_)};


m k( i )
(ii) x1,...,xn sono variabili distinte ricorrenti in ∩ ∪ Aij
i=1 j=1
(iii) ogni Aij è una formula atomica oppure la negazione di una formula
atomica. La parte Q1x1...Qnxn, che può essere vuota, si chiama prefisso di A;
m k(i)
la parte ∩ ∪ Aij è detta matrice di A.
i=1 j=1

Diremo che B è la forma normale prefissa congiuntiva di A sse B è in forma


prefissa congiuntiva e A <=> B.

Teorema 5.2.10

Ogni formula A può essere trasformata effettivamente nella sua forma prefissa
congiuntiva normale.

Dimostrazione: Costruiremo una formula A’ in forma prefissa normale


congiuntiva con sostituzioni successive nelle sottoformule di A con delle
formule di volta in volta equivalenti.
Allora dal teorema 5.2.8 (ii)-(iii) A’ <=> A.

120
La costruzione si esegue in sei passi.

passo 1.

Eliminazione dei quantificatori ridondanti. Vengono eliminati da A tutti i


quantificatori (√x), (∃x) applicati a sottoformule che non contengono x.
Denotiamo il risultato con A1.

passo 2.

Rinominazione delle variabili. Si prende la sottoformula di A1 più a sinistra


che compare nella forma (√x)B(x) o (∃x)B(x) tale che x appare in qualche
altra parte di A1, e si cambia con (y)B(y) o (∃y)B(y), rispettivamente, dove
y è una nuova variabile. Si ripete il processo fino a quando tutte le variabili
quantificate sono distinte e nessuna variabile risulta essere sia vincolata che
libera. Denotiamo il risultato con A2, A1 <=> A2.

passo 3.

Eliminazione di -> e ≡ sostituendo in A2

(B -> C) con (¬B v C)


(B ≡ C) con ((¬B v C) & (B v ¬C))

fino a che la formula risultante A3 contiene solo i connettivi v , & e ¬.

passo 4.

Spostamento in avanti della negazione ¬ sostituendo in A3

¬(√x)B con (∃x)¬B


¬(∃x)B con (√x)¬B
¬(B v C) con ¬B & ¬C
¬(B & C) con ¬B v ¬C
¬¬B con B

fino a che ciascuna ricorrenza di ¬ precede immediatamente una formula


atomica, denotiamo il risultato con A4.

121
passo 5.

Spostamento dei quantificatori a sinistra sostituendo in A4

(∃x)B v C con (∃x)(B v C)


C v (∃x)B con (∃x)(C v B)
(√x)B v C con (√x)(B v C)
C v (√x)B con (√x)(C v B)
(∃x)B & C con (∃x)(B & C)
C & (∃x)B con (∃x)(C & B)
(√x)B & C con (√x)(B & C)
C & (√x)B con (√x)(C & B)

fintanto che tutti i quantificatori sono sulla sinistra.


Denotiamo il risultato con la formula A5, osserviamo che a causa del passo 2,
rinominazione delle variabili, C non contiene ricorrenze di x e quindi
A5 <=> A4.

passo 6.

Distribuzione di & su v sostituendo nella A5 fintanto che è possibile

(B & C) v D con (B v D) & (C v D)


B v (C & D) con (B v C) & (B v D)

denotiamo la formula risultante con A’; questa è la desiderata forma normale


congiuntiva prefissa di A.

Vediamo un esempio che illustra il procedimento:

A = P(x,y) -> [(∃x).Q(x) & (∃z)(x = y)]

applicando i passi 1-6 otteniamo:

A1 = P(x,y) -> [(∃x).Q(√x) & x = y]


A2 = P(x,y) -> [(∃z).Q(√z) & z = y]
A3 = ¬P(x,y) v [(∃z).Q(√z) & z = y]
A4 = A3
A5 = (∃z)[¬P(x,y) v (Q(√z) & z = y)]
A’ = (∃z)[(¬P(x,y) v Q(√z)) & (¬P(x,y) v z = y)]

122
A’ è la forma prefissa congiuntiva normale di A.

Una formula A si dice in forma prefissa normale sse è nella forma


Q1x1...Qnxn.B (n ≥ 0), dove
(i) per ogni i (1 ≤ i ≤ n) Qi ∈ {(√_),(∃_)};
(ii) x1,...,xn sono variabili distinte ricorrenti in B;
(iii) B non contiene quantificatori.
Come prima "Q1x1,...,Qnxn" è chiamato prefisso di A e B è chiamata matrice
di A. Da notare che la forma prefissa congiuntiva normale è un caso
particolare della forma prefissa. Segue perciò che ogni formula può essere
effettivamente trasformata nella equivalente formula in forma prefissa normale.

123
5.2.3 Teorie del primo ordine

Una teoria del primo ordine T = <L,S>, si compone di un linguaggio L del


primo ordine e un insieme S calcolabile di sentenze, cioè formule chiuse di L.
Gli elementi di S sono gli assiomi o premesse di T. Se S = { }, allora T si
chiama calcolo dei predicati su L. Una teoria del primo ordine, o brevemente
una teoria, viene denotata con la lettera T. Possono esistere teorie con
uguaglianza oppure senza uguaglianza. Le teorie si possono identificare con
l'insieme dei loro assiomi, in tal caso si adotta la convenzione che il
linguaggio di una teoria T consista in tutte le formule costruibili utilizzando
predicati e funzioni costanti presenti negli assiomi di T.
Una teoria si dice finita se l'insieme degli assiomi è finito altrimenti si dice
infinita. Se T è una teoria su L(AL) e A1,...,An sono sentenze in L(AL),
allora T ∪ {A1,...,An} è una teoria; T si dice sottoteoria di T' se ogni assioma
di T è anche assioma di T'. Notiamo che ogni sentenza A può essere associata
univocamente ad una teoria <L(A),{A}>, dove L(A) è il linguaggio
costituito da tutte le formule costruibili dalle funzioni e predicati costanti
ricorrenti in A.
Allora, le sentenze possono essere considerate come teorie del primo ordine.

Una struttura M è un modello per una teoria T sse tutti gli assiomi di T sono
veri in M. Una teoria si dice soddifacibile sse possiede un modello; altrimenti
è insoddisfacibile.

Teorema 5.2.11 (Teorema di compattezza)

Una teoria T ha un modello sse ogni sottoteoria finita di T ha un modello.

Una formula A si dice conseguenza semantica di una teoria T, T ⇒ A, sse


A è vera in ogni modello per T.
In particolare, A è una conseguenza semantica del calcolo dei predicati su
L, ⇒ A, sse A è vera in ogni struttura per L.
Se T ⇒ A, allora possiamo dire che A segue logicamente da T, A è
deducibile da T, o che T implica A.

Esempio: Consideriamo i seguenti assiomi per T:

Uccello(Titti)
(√x).Uccello(x) -> Vola(x)
(√x).Vola(x) -> Ha-le-ali(x)

124
Si può vedere facilmente che la formula Vola(Titti) e Ha-le-ali(Titti) sono
vere in ogni modello di T; allora T ⇒ Vola(Titti) e T ⇒ Ha-le-ali(Titti).

Il simbolo ⇒ denota una relazione binaria, chiamata relazione di implicazione


della logica classica del primo ordine; e vale tra una teoria e una formula
A sse T ⇒ A.

Il teorema seguente è la controparte del teorema 5.1.9

Teorema 5.2.12

La relazione di implicazione della logica del primo ordine gode delle seguenti
proprietà:

(i) T ⇒ B sse la teoria T ∪ {¬(B)} è non soddisfacibile;


(ii) T, A ⇒ B sse T ⇒ A -> B;
(iii) {A1,...,An} ⇒ B sse ⇒ A1 & ... & An -> B;
(iv) Se T è una sottoteoria di T', allora
{A: T ⇒ A} è sottoinsieme di {A: T' ⇒ A} monotonicità.

Riguardo alla (iii) il problema di determinare se una formula B segue da una


teoria {A1,...,An} si riduce a determinare se la formula A1 & ... & An -> B è
valida. L'asserzione (iv) esprime il principio di monotonicità della logica del
primo ordine. Le teorie T e T' sono logicamente equivalenti, T <=> T', sse
possiedono gli stessi modelli. La proprietà più importante delle teorie
equivalenti è che esse deducono esattamente le stesse formule:

Teorema 5.2.13

T <=> T' sse {A: T ⇒ A} = {A: T' ⇒ A}.

Esiste anche la controparte del teorema 5.1.11

Teorema 5.2.14

Se T = {A1,...,An}, allora T <=> {A1 & ... & An}.

Due formule A e B si dicono equivalenti per una teoria T sse godono della
stessa funzione di verità in ogni modello M di T e per ogni a ∈ As(M).

125
Sia T una teoria su un linguaggio del primo ordine L con uguaglianza.
L'insieme degli assiomi di uguaglianza per T sono gli stessi assiomi validi
per L. (def. 5.2.2).

esempio: Sia T consistente nelle seguenti affermazioni

Elefante(Luca)
(√x).Elefante(x) -> Elefante(padre(x))
Luca = Marco

L'insieme degli assiomi di uguaglianza consistono in (E1)-(E3) def. 5.2.2 a


cui si aggiungono:

(√x)(y)[x = y & Elefante(x) -> Elefante(y)]


(√x)(y)[x = y -> padre(x) = padre(y)]

Definizione 5.2.15 (sentenza universale)


Una sentenza si dice universale sse la sua forma normale prefissa non contiene
quantificatori esistenziali.
Una teoria si dice universale sse tutti i suoi assiomi sono universali.

Il seguente teorema afferma uno dei principali risultati della logica del primo
ordine:

Teorema 5.2.16 (Teorema di Skolem - Löwenheim)

(i) Ogni teoria del primo ordine senza uguaglianza soddisfacibile ha un


modello con un dominio numerabile.

(ii) Ogni teoria del primo ordine con uguaglianza ha un modello con un
dominio contabile (cioè finito o numerabile).

126
5.2.4 Logica del primo ordine come sistema di deduzione

Un sistema di deduzione per la logica del primo ordine è difinito in maniera


analoga a quello della logica proposizionale, ad eccezione del fatto che L è
ora un linguaggio del primo ordine.
Se <L,S,R> è un sistema dedutivo per la logica del primo ordine e Ri ∈ R,
allora Ri si dice solido, o alternativamente Ri è un sistema di regole che
conservano le funzione di verità, sse per ogni struttura M ed ogni formule
A1,...,Ak nel dominio di Ri, Ri(A1,...,Ak) è vera in M, nel caso in cui tutte le
A1,...,Ak sono vere in M.
La nozione di dimostrazione è analoga a quella specificata per la logica
proposizionale. Scriviamo T(DS) → A per indicare che A è dimostrabile da
T in DS; (DS) → A è una abbreviazione per { } (DS) → A.
Le richieste di calcolabilità imposte sui sistemi di deduzione garantisce, nel
caso in cui ci restringiamo a linguaggi calcolabili del primo ordine e a teorie
calcolabili, che le dimostrazioni sono calcolabili.
Un sistema di deduzione DS = <L,S,R> si dice solido sse (DS) → A
implica che A è valida. DS si dice completo sse ogni formula valida di L è
dimostrabile in DS.

Il seguente sistema di deduzione per la logica del primo ordine è sia solido
che completo.

Definizione 5.2.17
Sia L un linguaggio del primo ordine.
Denotiamo con FOL(L) il sistema di deduzione <L,S,R> dato da:

(i) S consiste negli assiomi seguenti:

(A1) Vero
(A2) A -> (B -> A)
(A3) (A -> (B -> C)) -> ((A -> B) -> (A -> C))
(A4) (¬B -> ¬A) -> ((¬B -> A) -> B)
(A5) (√x)A(x) -> A(α), dove α è qualsiasi termine libero per x in A(x)
(A6) (√x)(A -> B) -> (A -> (√x)B), dove A non contiene ricorrenze libere di
x

Se L è un linguaggio con l'uguaglianza, allora S in più contiene l'assioma


dell'uguaglianza per L.

127
(ii) R consiste nelle seguenti regole di inferenza:

(MP) B è una diretta conseguenza di A e A -> B


(GEN) (√x)A è una diretta conseguenza di A.

È facile vedere che FOL(L) soddisfa le richieste di calcolabilità imposte sui


sistemi di deduzione. (GEN) e detta regola di generalizzazione.
Possiamo assumere che L sia fissato, e FOL(L) → sia abbreviato in →.
Se T → A, allora diremo che A è dimostrabile da T nella logica del primo
ordine. Se → A, allora diremo che A è dimostrabile nella logica del primo
ordine, o anche che A è un teorema nella logica del primo ordine. Scriviamo T
¬→ A e ¬→ A come negazione di T → A e → A rispettivamente.
La relazione binaria denotata col simbolo → è chiamata relazione di
dimostrabilità della logica classica del primo ordine.
Denotiamo con Th l'operatore di dimostrabilità per la logica classica del
primo ordine, cioè l'operatore che assegna a ciascuna teoria T del primo ordine
l'insieme Th(T) di tutte le sentenze dimostrabili da T nella logica del primo
ordine. L'operatore Th gode delle proprietà base dell'operatore di dimostrabilità
della logica proposizionale, in particolare per ogni teoria T contenuta nella
teoria T' implica Th(T) contenuto in Th(T').
La sintattica e la semantica della logica del primo ordine sono connesse dal
seguente teorema:

Teorema 5.2.18

(i) Se T → A, allora T ⇒ A; (teorema di solidità)

(ii) Se T ⇒ A, allora T → A; (teorema di completezza)

Crollario 5.2.19

→ A sse ⇒ A.

Una teoria T su L si dice consistente sse esiste una formula

A ∈ L tale che T ¬→ A.

128
Come nel caso della logica proposizionale; la nozione di consistenza è una
controparte sintattica di quella di soddisfacibilità:
Teorema 5.2.20

T è consistente sse T è soddisfacibile.

Teorema 5.2.21 (teorema di deduzione)

(i) T,A → B sse T → A -> B


(ii) {A1,...,An} → B sse → A1 & ... & An -> B

Teorema 5.2.22

T è consistente sse ogni sottoteoria di T è consistente.

129
5.3 Logica del primo ordine multi-ordinata

La logica del primo ordine multi-ordinata differisce dalla logica del primo
ordine ordinaria nel fatto che contempla parecchi tipi (ordinati) di variabili -
ciascuna tipo associato ad un particolare sottodominio di oggetti. Anche le
funzioni e i predicati costanti sono ordinati nel senso che i loro argomenti sono
limitati ai termini di tipo appropriato. Per esempio, utilizzando la logica del
primo ordine multi-ordinata, dovendo introdurre un predicato costante binario
Insegnanti dovremo fare attenzione nella definizione del suo primo argomento
che sia ristretto al tipo Insegnante e che il suo secondo argomento sia un
oggetto del tipo Studente.
Da un punto di vista strettamente tecnico, la logica multi ordinata si
presenta come un espediente superfluo, poichè è riconducibile alla logica
ordinaria. Comunque, essa si presta ad una naturalezza di rappresentazione
che le ha consentito di essere implementata in parecchie applicazioni pratiche.
Sia k un intero positivo e supponiamo che t1,...,tk siano oggetti distinti a cui ci
riferiremo come a tipi base. Definiamo l'insieme dei tipi basati su t1,...,tk,
TP(t1,...,tk) come l'insieme più piccolo che soddifa a:

(i) ti ∈ TP(t1,...,tk), per ogni i (1 ≤ i ≤ k);


(ii) per ogni tupla t=<ti1,...,tin>, dove n ≥ 0 e ti1,...,tik sono elementi di
{t1,...,tk} (non necessariamente distinti), t ∈ TP(t1,...,tk).

I tipi adempiono al compito della classificazione: i tipi base vengono


utilizzati per classificare le variabili e più generalmente i termini, mentre
quelli nella forma <ti1,...,tin> forniscono una classificazione delle funzioni e
dei predicati costanti. Specificatamente, un predicato costante di un tipo
<ti1,...,tin> (n≥0) rappresenta un predicato costante n-ary con il primo
argomento del tipo ti1, e n-esimo del tipo tin. Predicati costanti del tipo < >
sono appunto proposizioni costanti. Una funzione costante di tipo <ti,ti1,...,tin>
(n≥0) rappresenta una funzione costante n-ary che prende termini del
tipo ti1,...,tin come propri argomenti e il valore della funzione è un termine
del tipo ti.
Funzioni costanti di tipo <ti> si chiamano costanti individuali di tipo ti.

Un alfabeto della logica k-ordinata con t1,...,tk come tipi base consiste di
simboli primitivi appartenenti alle seguenti categorie:

(i) k insiemi numerabili V1,...Vk.

130
Gli elementi di Vi (1≤i≤k) rappresentano le variabili individuali del tipo ti, e le
denotiamo con xi1,xi2,...

(ii) Una costante vera: Vero

(iii) Connettivi per le frasi: "¬" e "->"

(iv) Un quantificatore: "(_)" per ogni

(v) Parentesi: "(",")"

(vi) Un insieme numerabile |P di predicati costanti a ciascun P ∈ |P è


assegnato univocamente un tipo <ti1,ti2,...,tin> ∈ TP(t1,...,tk), detto tipo di P

(vii) Un predicato binario costante: "="


si assume che gli argomenti di "=" possano essere di tipo qualsiasi

(viii) Un insieme numerabile |F di funzioni costanti; a ciascuna f ∈ |F è


assegnato univocamente un tipo non vuoto <ti,ti1,...,tin>, detto tipo della f.

Le classi (i)-(v) sono fisse, mentre le altre possono essere diverse da un


alfabeto ad un'altro. L'insieme delle funzioni costanti può essere vuoto.
Assumiamo che ogni alfabeto contenga almeno un predicato costante di arità
positiva, cioè o un elemento di |P con tipo diverso da < >, oppure la costante
"=". Gli insiemi |P e |F debbono essere calcolabili nel senso che deve esistere
una procedura effettiva πP e πF che, dato un simbolo arbitrario s, determini se
s ∈ |P o se s ∈ |F, e ne fornisca il tipo.

Definizione 5.3.1
Sia AL un alfabeto della logica k-ordinata con tipi base t1,...,tk; l'insieme
TM(i,AL) di termini del tipo ti su AL consiste nell'insieme più piccolo tale che:

(i) tutte le variabili individuali del tipo ti e tutte le costanti individuali del
tipo ti sono membri di TM(i,AL)
(ii) se f è una funzione costante di tipo <ti,ti1,...,tin> e α1,...,αn sono termini
di tipo ti1,...,tin rispettivamente allora f(α1,...,αn) ∈ TM(i,AL).

L'insieme AFORM(AL) delle formule atomiche su AL è l'insieme più


piccolo tale che:

131
(i) "Vero" e tutte le proposizioni costanti di AL sono elementi di
AFORM(AL)
(ii) Se P è un predicato costante del tipo <ti1,...,tin> (n>0) e α1,...,αn sono
termini di tipo ti1,...,tin, rispettivamente, allora P(α1,...,αn) ∈ AFORM(AL)
(iii) Se α e β sono termini di tipo arbitrario, allora (α=β) ∈
AFORM(AL), nel caso in cui "=" ∈ AL.

L'insieme L(AL) di formule su AL consiste nell'insieme più piccolo tale che:

(i) Se A ∈ AFORM(AL), allora A ∈ AL


(ii) Se A, B ∈ L(AL) e x è una variabile individuale di tipo qualunque, allora
(¬A) ∈ L(AL), (A -> B) ∈ L(AL) e ((√x)A) ∈ L(AL)

L'insieme L(AL), brevemente L, si chiama anche linguaggio k-ordinato su


AL. La restrizione agli alfabeti con un insieme calcolabile di predicati e
funzioni costanti assicura la calcolabiltà di ogni linguaggio k-ordinato.
Un linguaggio k-ordinato L(AL) può essere con uguaglianza oppure senza,
"=" ∈ AL oppure no.
I restanti connettivi logici vengono definiti come nei casi precedenti così come
le convenzioni di terminologia e di notazione già viste valgono anche per la
logica multi-ordinata.

Esempio: Assumiamo che i seguenti fatti siano veri:

(F1) Giovanni, Maria e Giorgio sono studenti


(F2) Marco e Anna sono i soli insegnanti
(F3) Tutti gli insegnanti sono insegnanti di Maria
(F4) Alcuni studenti hanno come insegnante Anna

Introduciamo due tipi base: Insegnanti e Studenti (abbreviato in i, s


rispettivamente); un predicato costante binario di tipo <i,s>: Insegna; tre
costanti individuali di tipo s: Giovanni, Maria e Giorgio; due costanti
individuali di tipo i: Marco e Anna.
Allora (F1)-(F4) possono essere rappresentati con:

(A1) (∃xs)(∃ys)(∃zs).(xs=Giovanni) & (ys=Maria) & (zs=Giorgio)


(A2) (xt).(xt=Marco) v (xt=Anna)
(A3) (xt).Insegna(xt,Maria)
(A4) (∃xs).Insegna(Anna,xs)

132
Vediamo ora la semantica della logica multi-ordinata.

Definizione 5.3.2
Sia AL un alfabeto per una logica k-ordinata con tipo base t1,...,tk; una
struttura per L(AL): M=<D1,...,Dk,m> dove:

(i) D1,...,Dk sono insiemi non vuoti chiamati sottodomini di M


k
∪ Di è detto dominio di M
i=1

(ii) m consiste in una funzione che assegna a ciascun predicato costante di tipo
<ti1,...,tin> (n≥0) di AL diverso da "=" una relazione su Di1 x ... x Din
(prodotto dei domini) assegna alla costante "=", se presente in AL, la relazione
identità sul dominio di M, e a ciascuna funzione costante di tipo <ti,ti1,...,tin>
(n≥1), una funzione da Di1 x ... x Din a Di.

Sia M = <D1,...,Dk,m> una struttura per un linguaggio L(AL) nella logica


k-ordinata del primo ordine, dove AL è un alfabeto con tipi base t1,...,tk.
Denotiamo con |M|i l'insieme Di.
Se K è un predicato o una funzione costante di AL, allora M|K| sta per m(K).
Con As(M) denotiamo l'insieme degli assegnamenti su M, cioè l'insieme di
tutte le funzioni

k k
a: ∪ Vi ---> ∪ |M|i
i=1 i=1

tale che a(xi) ∈ |M|i per ogni variabile xi di tipo ti.


Se a ∈ As(M) e xi è una variabile di tipo ti, allora [a]xi denota l'insieme di
quegli assegnamenti su M che differiscono da "a" al massimo su xi.

Definizione 5.3.3
Sia M una struttura per L(AL), dove AL è un alfabeto per la logica k-ordinata
con tipi base t1,...,tk. Il valore Va(α) di un termine α di tipo t1 in M dove a ∈
As(M) è un elemento di |M|i viene definito come segue:

(i) Va(xi) = a(xi)


(ii) Va(b) = M|b| dove b è un individuo costante
(iii) Va(f(α1,...,αn)) = M|f|(Va(α1),...,Va(αn)).

133
Il valore di verità Va(A) di una formula A ∈ L(AL) in M con a ∈ AS(M), è
un elemento di {0,1} specificato da:

(i) Va(Vero) = 1
(ii) Va(p) = M|p| dove p è una proposizione costante
(iii) Va(P(α1,...,αn)) = M|P|(Va(α1),...,V(αn))
(iv) Va(α = β) = 1 sse Va(α) = Va(β)
(v) Va(B -> C) = 1 sse Va(B) = 0 oppure Va(C) = 1
(vi) Va(¬B) = 1 - Va(B)
(vii) Va((xi)B) = 1 sse Va’(B) = 1 per ogni a’ ∈ [a]xi.

Le nozioni: "A è soddisfacibile in M da a ∈ As(M)", "A è soddisfacibile","A è


vera in M","A è valida" e "A e B sono equivalenti" sono definite come nei casi
visti in precedenza.
Il teorema 5.2.8 vale anche per le logiche multi-ordinate.
Anche la definizione di teoria per la logica k-ordinata è analoga a quanto visto
in precedenza,T = <L,S> dove L è un linguaggio k-ordinato ed S è un insieme
di affermazioni calcolabili. Di solito, M è un modello per una teoria T sse tutte
le affermazioni di S sono vere in M. Una teoria con un modello si dice
soddisfacibile, due teorie che hanno esattamente gli stessi modelli si dicono
equivalenti. Scriviamo T ⇒ A per indicare che A è vero in ogni modello di T.
I risultati dei teoremi 5.2.11, 5.2.12, 5.2.13, 5.2.14 e 5.2.16 si possono
generalizzare alla logica multi-ordinata.
È possibile costruire un sistema di deduzioni solido e completo per la logica
multi-ordinata.

134
5.4 Il metodo di risoluzione

Come abbiamo visto il problema della validità per la logica del primo ordine è
indecidibile. In altri termini non esiste un algoritmo per decidere se data una
formula arbitraria del primo ordine questa sia valida oppure no. Il problema è
comunque semidecidibile nel senso che esiste una procedura che conferma la
validità di ogni formula valida, ma che cicla indefinitamente per alcune
formule che pure sono valide. Una di queste procedure, chiamata metodo di
risoluzione, è particolarmente significativa.
La sua efficienza la rende particolarmente adatta ad essere implementata a
calcolatore.
Prima di addentrarci nella descrizione del metodo di risoluzione, facciamo due
importanti osservazioni:
primo, poichè {A1,...,An} ⇒ A sse A1 & ... & An -> A è valida, ogni
procedura in grado di confermare la validità di una formula del primo ordine
può essere utilizzata per dimostrare che una data formula è deducibile da una
data teoria finita del primo ordine;
secondo, poichè una formula è valida sse la sua negazione è non
soddisfacibile, un modo di mostrare la validità di una formula A consiste nel
mostrare che la formula ¬A non è soddisfacibile. Questo è appunto il tipo di
approccio adottato dal metodo di risoluzione, che di fatto trova formule non
soddisfacibili.
Allora per dimostrare la validità di una formula A, applicheremo il metodo di
risoluzione a ¬A. Se ¬A è non soddisfacibile allora A è valida e il processo si
arresta, in caso contrario il processo può continuare indefinitamente.

135
5.4.1 La forma in clausole

Il metodo di risoluzione si applica solo a formule che siano in una forma


particolare, detta "in forma di clausole".
Per introdurre questa nozione, ci necessitano alcune definizioni preliminari.
I letterali sono formule atomiche (letterali positivi) o negazioni di formule
atomiche (letterali negativi), li denoteremo con la lettera l, e con il simbolo |l|
indicheremo la formula atomica corrispondente; per esempio |P(x,b)|=P(x,b),
|¬Q(f(x))|=Q(f(x)).
Denotiamo con ¬l il complemento di l.
Una clausola è una formula C nella forma l1 v ... v ln (n≥0) dove l1,...,ln sono
letterali. Se n=0, allora C e detta clausola vuota e la indicheremo con Θ.
Una formula si dice in forma di clausola sse è nella forma

(C1) & ... & (Cn) (n≥1)

dove C1,...,Cn sono clausole.


Una teoria si dice in forma di clausole se tutti gli assiomi sono in forma di
clausole. Ricordando che un'affermazione si dice essere universale sse la sua
forma prefissa congiuntiva normale non contiene quantificatori esistenziali, è
facile vedere che trasformando una tale formula nella sua forma prefissa
congiuntiva normale si ottiene una affermazione della forma:
(_)[C1 & ... & Cn]
dove C1,...,Cn sono clausole.
Abbiamo pertanto il seguente risultato:

Teorema 5.4.1

(i) Ogni affermazione universale può essere effettivamente trasformata in una


affermazione equivalente in forma di clausola;

(ii) Per ogni teoria universale T, esiste una teoria T' in forma di clausole tale
che T <=> T'.

Il teorema 5.4.1 non vale necessariamente per affermazioni non universali o


teorie non universali; comunque, si può dimostrare che ogni formula A può
essere effettivamente trasformata in una affermazione A’ in forma di clausola
tale che A e soddisfacibile sse A’ è soddisfacibile. Anche per una teoria T
esiste una teoria T' in forma di clausole tale che T è soddisfacibile sse T'
è soddisfacibile.

136
Definizione 5.4.2
Sia A una formula. una forma in clausole di A è ogni formula ottenuta da A
tramite la seguente costruzione:

Passo 0.
Si prende la chiusura esistenziale di A. Si pone A1 = (∃A).

Passo 1-4.
Si applica ad A1 gli stessi passi 1-4 del teorema 5.2.10
Denotiamo il risultato con A2.

Passo 5.
Si spostano i quantificatori a destra, sostituendo

Qx(B ⊗ C) con B ⊗ (QxC) se x non è libero in B


o (QxB) ⊗ C se x non è libero in C

dove Q sta per {(_),(∃_)} e ⊗ sta per {v,&}.


denotiamo il risultato con A3.

Passo 6.
Eliminazione dei quantificatori esistenziali. Ripetendo il seguente processo
fino a che tutti i quantificatori esistenziali sono eliminati:

Si prende ogni sottoformula della forma (∃x)B(y); supponendo che


x1,...,xn (n≥0) siano tutte variabili distinte di (∃y)B(y) che sono quantificate
universalmente a sinistra di (∃y)B(y); se n=0 allora sostituiamo (∃y)B(y) con
B(a), dove a è una nuova costante individuale; se n > 0 allora sostituiamo
(∃y)B(y) con B(f(x1,...,xn)) dove f è una nuova funzione n-ary costante.
Denotiamo il risultato con A4.
Il processo appena descritto è noto come Skolemizzazione.
I simboli introdotti si chiamano funzioni di Skolem.

Passo 7.
Cancelliamo tutti i quantificatori da A4, otteniamo A5.

Passo 8.
Distribuzione di & sopra v, sostituendo

(B & C) v D con (B v D) & (C v D)

137
B v (C & D) con (B v C) & (B v D)

denotiamo il risultato con A6.

Passo 9.
Eliminazione di "Vero" e "Falso".
A6 è nella forma C1 & ... & Cn dove C1,...,Cn sono clausole.
Cancelliamo ogni Ci il cui letterale sia "Vero" o ¬"Falso".
Dalle clausole rimanenti cancelliamo tutti i letterali della forma "Falso" o
¬"Vero". Denotiamo la formula risultante con A7.

Passo 10.
Aggiungiamo quantificatori universali.
A7 è nella forma C1 & ... & Cn dove C1,...,Cn sono clausole.
Poniamo A8 = (C1) & ... & (Cn) che la desiderata forma in clausole per la A

Esempio:

Sia A = P(a,w) -> (√x)(∃y)(u)(∃z)[P(x,y) & Q(u,z)].

A1 = (∃w){P(a,w) -> (√x)(∃y)(u)(∃z)[P(x,y) & Q(u,z)]}


A2 = (∃w){¬P(a,w) v (√x)(∃y)(u)(∃z)[P(x,y) & Q(u,z)]}
A3 = (∃w)¬P(a,w) v [(√x)(∃y)P(x,y) & (u)(∃z)Q(u,z)]
A4 = ¬P(a,b) v [(√x)P(x,f(x)) & (u)Q(u,g(u))]
(b, f e g sono le funzioni di Skolem)
A5 = ¬P(a,b) v [P(x,f(x)) & Q(u,g(u))]
A6 = [¬P(a,b) v P(x,f(x))] & [¬P(a,b) v Q(u,g(u))]
A7 = A6
A8 = [(√x).¬P(a,b) v P(x,f(x))] & [(√u).¬P(a,b) v Q(u,g(u))]

Teorema 5.4.3

Se B è una forma in clausole di una formula A, allora B è soddisfacibile sse A


è soddisfacibile.

Corollario 5.4.4

Ogni formula A può essere effettivamente trasformata in una formula in forma


di clausole B tale che se A è soddisfacibile allora lo è anche B e viceversa.

138
Allora possiamo fare la seguente notevole osservazione:
siccome solitamente siamo interessati solamente al problema di
soddisfacibilità delle formule, possiamo assumere che le formule che
prenderemo in considerazione siano sempre nella forma di clausole.

Poichè ogni teoria può essere identificata con la teoria che contiene come
affermazioni solo quelle relative agli assiomi, e che ogni teoria della forma
{A1 & ... & An} è equivalente ad {A1,...,An}; ne consegue che ogni
affermazione della forma (C1) & ... & (Cn) può essere identificata con la
teoria {(C1)&...&(Cn)} e quindi possiamo utilizzare la notazione
{C1,...,Cn} per le affermazioni in forma di clausole, dove le variabili ricorrenti
in C1,...,Cn sono tutte implicitamente quantificate universalmente.
Se A è una formula, non necessariamente in forma di clausole, allora
denotiamo con CLAUSOLE(A) l'insieme di clausole corrispondenti ad una
arbitraria forma in clausole di A. Una forma in clausole di una teoria T è una
teoria ottenuta da T sostituendo tutti gli assiomi con gli assiomi corrispondenti
in forma di clausole. Se T è definita sul linguaggio del primo ordine L(AL)
allora la teoria in forma di clausole T è una teoria sul linguaggio L(AL U F),
dove F è l'insieme delle funzioni di Skolem introdotte.

Teorema 5.4.5

Se T' è la forma in clausole di T, allora T' è soddisfacibile


sse T è soddisfacibile.

Sia T una teoria in forma di clausole. Con l'insieme di clausole


corrispondenti a T intendiamo l'unione degli insiemi di clausole
corrispondenti agli assiomi di T. Se T è una teoria non necessariamente in
forma di clausole denotiamo con CLAUSOLE(T) l'insieme di clausole
corrispondenti ad un arbitraria forma in clausole di T.
Un insieme di clausole CL si dice soddisfacibile sse la teoria {(C): C ∈ CL}
è soddisfacibile altrimenti si dice non soddisfacibile.

Teorema 5.4.6

(i) A è soddisfacibile sse CLAUSOLE(A) è soddisfacibile;


(ii) T è soddisfacibile sse CLAUSOLE(T) è soddisfacibile;
(iii) T ⇒ B sse CLAUSOLE(T) ∪ CLAUSOLE(¬(B)) non è soddisfacibile.

139
5.4.2 Regola di risoluzione

Introdurremo ora una potente regola di inferenza, chiamata regola di


risoluzione (Robinson 1965), che sta alla base del metodo di risoluzione. Per
fissare le idee, cominciamo con lo specificare una versione ristretta della
regola, chiamata regola di risoluzione di base (ground resolution rule). Poichè
una formula si dice di base sse non contiene variabili, la regola di risoluzione
di base si può utilizzare per dimostrare la non soddisfacibilità di un insieme di
clausole base (ground).
La regola di risoluzione base consiste nella seguente regola di inferenza: per
qualsiasi coppia di clausole di base C1, C2 e qualsiasi letterale di base l, C1
v C2 è una diretta conseguenza di C1 v l e C2 v ¬l, che simbolicamente si
scrive:

C1 v l, C2 v ¬l

C1 v C2

Se C1 = C2 = Θ (insieme di clausole vuoto) allora

l,¬l

Θ

È facile vedere che la regola di risoluzione di base è solida, cioè C1 v C2 è


vera in ogni struttura in cui C1 v l e C2 v ¬l sono vere. C1 v C2 si chiama
risolvente di C1 v l e C2 v ¬l.
Sia CL un insieme di clausole base; una confutazione da CL è una sequenza
C1,...,Cn di clausole base tali che Cn = Θ e, per ciascun i (1≤i≤n), vale
Ci ∈ CL oppure C1 è un risolvente base di Cj e Ck, dove j,k < i.

Teorema 5.4.7

Un insieme CL di clausole base è non soddisfacibile sse esiste


una confutazione base in CL.

Esempio: Consideriamo una teoria T consistente in:

(1) Uccello(Titti)
(2) Uccello(Titti) -> Vola(Titti)

140
(3) ¬Ha-le-ali(Titti) -> ¬Vola(Titti)

e l'affermazione

(4) Ha-le ali(Titti)

ci proponiamo di mostrare che T ⇒ (4).


Allora è sufficiente dimostrare che (1) & (2) & (3) -> (4) è valida, che
equivale a mostrare che ¬[(1) & (2) & (3) -> (4)] non è soddisfacibile.

Trasformiamo l'ultima affermazione in forma di clausole:

[Uccello(Titti)] & [¬Uccello(Titti) v Vola(Titti)] &


& [Ha-le-ali(Titti) v ¬Vola(Titti)] & [¬Ha-le-ali(Titti)]

L'insieme di clausole corrispondenti a questa affermazione consiste in:

(5) Uccello(Titti)
(6) ¬Uccello(Titti) v Vola(Titti)
(7) Ha-le-ali(Titti) v ¬Vola(Titti)
(8) ¬Ha-le-ali(Titti)

rimane da dimostrare che esiste una confutazione base dalle 5-8 e tale
confutazione è data da:

(9) Vola(Titti) dalle (5) e (6)


(10) ¬Vola(Titti) dalle (7) e (8)
(11) Θ dalle (9) e (10)

Per presentare la regola di risoluzione in forma generale, definiamo alcuni


termini.
Una sostituzione (di termini al posto di variabili) in un insieme qualsiasi, anche
vuoto, la denotiamo con {x1 <- α1,...,xn <- αn}, dove x1,...,xn sono n variabili
distinte e ciascun αi è un termine diverso da xi. Una espressione "xi <- αi"
puo essere letta "αi sostituisce xi". La sostituzione corrispondente per un
insieme vuoto si dice sostituzione vuota, e la denotiamo con ∅.
Una espressione semplice consiste in un letterale o un termine.
Data una espressione semplice E e una sostituzione
θ = {x1 <- α1,...,xn <- αn},

141
denotiamo con Eθ l'espressione ottenuta da E dalla sostituzione contemporanea
in ciascuna ricorrenza di xi (1≤i≤n) con αi.
Per esempio, se E=P(x,f(y),z) e θ={x <- f(y), y <- g(b)} allora
Eθ = P(f(y),f(g(b)),z). Osserviamo che E∅ = E per ogni E.
Siano θ = {x1 <- α1,...,xn <- αn} e τ = {y1 <- β1,...,ym <- βm} due
sostituzioni; la composizione di θτ di θ e τ è la sostituzione {x1 <- α1τ,...,xn
<- αnτ, y1 <- β1,..., ym <- βm} cancellando ogni elemento xi <- αiτ, per cui xi
= αiτ e cancellando ogni elemento yi <- βi tale che yi ∈ {x1,...,xn}.

Esempio: se θ = {x <- g(y), y <- z} e τ = {x <- a, y <- b, z <-y}


allora θτ = {x <- g(b), y <- y, x <- a, y <- b, z <- y} -
- {y <- y, x <- a, y <- b} = {x <- g(b), z <- y}.
Dato un insieme non vuoto EX = {E1,...,En} di espressioni semplici, diremo
unificatore è di EX una sostituzione per cui E1θ = E2θ = ... = Enθ. Se EX
possiede un unificatore, allora possiamo dire che EX è unificabile.

Esempio: se EX = {P(a,y),P(x,f(b))}, allora la sostituzione


θ = {x <- a, y <- f(b)} è un unificatore per EX.
L'insieme {P(a), P(b)} non è unificabile.
Un unificatore θ di EX si dice l'unificatore più generale di EX sse per ciascun
unificatore τ di EX esiste una sostituzione δ tale che τ = θδ. Si può mostrare
che ogni insieme unificabile di espressioni semplici ha almeno unificatore più
generale.

Esempio: consideriamo EX = {P(x),P(y)}. Ciascuna delle seguenti


sostituzioni è un unificatore per EX:
θ1 = {x <- y}
θ2 = {y <- x}
θ3 = {x <- a, y <-a}
θ4 = {x <- f(b), y <- f(b)}
θ1 e θ2 sono gli unificatori più generali per EX infatti
θ3 = θ1{y <- a} = θ2{x <- a}
θ4 = θ1{y <- f(b)} = θ2{x <- f(b)}.

Sia E una espressione semplice. E1 è una sottoespressione di E sse E1 è


un'espressione semplice ricorrente in E.

Esempio: le sottoespressioni di P(x,f(y,b)) sono P(x,f(y,b)), x, f(y,b), e b.

142
Se EX = {E1,...,En} è un insieme di espressioni semplici, allora diremo
insieme discordante per EX l'insieme {E1',...,En'} di sottoespressioni di
E1,...,En ricavato come segue. Consideriamo ciascuna espressione E1,...,En
come stringhe di simboli e troviamo la posizione più a sinistra in cui non tutte
le espressioni di EX mostrano lo stesso simbolo, poniamo per ciascun i
(1≤i≤n) Ei’ uguale alla sottoespressione di Ei che inizia da tale posizione.
Per esempio, l'insieme discordante di:
{P(x,f(a)),P(x,c),P(f(y),d)} è {x,x,f(y)} = {x,f(y)}
L'applicazione della regola di risoluzione richiede la capacità di risolvere il
seguente problema di unificazione:
dato un insieme finito EX di espressioni semplici, determinare se EX è
unificabile oppure no, e se lo è fornire l'unificatore più generale per EX.

Teorema 5.4.8 (Robinson 1965)

Esiste un algoritmo. chiamato algoritmo di unificazione, che risolve il


problema di unificazione.

Sono stati proposti parecchi algoritmi di unificazione, il seguente è forse


quello dalle migliori prestazioni.

Algoritmo di unificazione.

Sia EX = {E1,...,En} un insieme di espressioni semplici.


Per trovare un unificatore più generale di EX, se esiste, si procede nei
seguenti passi:

passo 1. Poniamo k = 0, θ0 = ∅ ;
Vai al passo 2.

passo 2. Se E1θk = ... = Enθk allora stop;


θk è l'unificatore più generale per EX;
altrimenti costruisci l'insieme discordante Dk
di {E1θk,...,Enθk} e vai al passo 3.

passo 3. Se Dk contiene una variabile x e un termine α, allora


poni θ(k+1) = θk{x <- α} ; k = k + 1; e vai al passo 2
altrimenti dichiara che EX non è unificabile e stop.

Si vede facilmente che l'algoritmo descritto termina sempre.

143
Da notare anche che esso non è completamente determinato a causa della libera
scelta di x e di α.

Esempio: Sia EX = {Q(x,f(b)),Q(a,f(y)0}.

(i) k=0; θ0 = ∅.
(ii) D0 = {x,a}.
(iii) k=1; θ1 = {x <- a}.
(iv) D1 = {b,y}.
(v) k=2; θ2 = {x <-a;y <- b}.
(vi) θ2 è l'unificatore più generale per EX.

Sia EX = {Q(x,x),Q(a,b)}

(i) k=0; θ0 = ∅.
(ii) Do = {x,a}.
(iii) k=1; θ1 = {x <- a}.
(iv) D1 = {a,b}. EX non è unificabile.

Se C = l1 v ... v ln e θ è una sostituzione, allora Cθ sta per l1θ v ... v lnθ.


Notiamo che l1θ v ... v lnθ può a volte essere scritta in forma equivalente con
un numero di letterali minore di n; ciò succede quando θ possiede un
unificatore di due o più letterali di C.
Per esempio se C = P(x) v Q(b,y) v Q(z,y) e θ = {x <- a, z <- b}, allora
Cθ = P(a) v Q(b,y) v Q(b,y) che è equivalente a P(a) v Q(b,y).

Sia C una clausola e supponiamo che V sia l'insieme di tutte le variabili


ricorrenti in C. Una sostituzione di rinominazione per C consiste in una
sostituzione {x1 <- y1,...,xn <- yn} (n≥0) che soddisfi alle seguenti condizioni:
(i) {x1,...,xn} contenuto in V;
(ii) y1,...,yn sono variabili distinte;
(iii) (V - {x1,...,xn}) ∩ {y1,...,yn} = { }.
Notiamo che ∅ è una sostituzione di rinominazione per qualsiasi clausola.
Una clausola C1 si dice essere una variante di C sse C1 = Cθ, dove θ è una
sostituzione di rinominazione per C.
Per esempio:
C1 = P(x,y) v Q(z) è una variante di C = P(x,z) v Q(u), poichè C1 = C{z <-
y,u <- z} e {z <- y,u <-z} è una sostituzione di rinominazione per C.

144
Poichè ∅ è una sostituzione di rinominazione per ogni clausola, ogni clausola
è un invariante di sè stessa. Se C1 è una variante di C e C1 diversa da C allora
diremo che C1 si ottiene da C rinominando le variabili.
Scriviamo l1,...ln ∈ C per indicare che i letterali l1,...,ln ricorrono in C; se
l1,...,ln ∈ C allora scriviamo C - {l1,...,ln} per denotare la clausola che si
ottiene da C cancellando l1,...,ln.

Definizione 5.4.9
Siano C1 e C2 clausole tali che non abbiano variabili in comune.
Siano l1,...,ln ∈ C1 (n>0) e siano l1',...,lk' ∈ C2 (k>0).
Assumiamo che l1,...,ln siano positivi e che l1',...,lk' siano negativi, o
viceversa. Se θ è l'unificatore più generale di {|l1|,...,|ln|,|l1'|,...,|lk'|} allora la
clausola

[C1θ - {l1θ,...,lnθ}] v [C2θ - {l1'θ,...,lk'θ}]

si chiama risolvente binaria di C1 e C2.

Esempio: Siano

C1 = P(x) v P(y) v Q(b)


C2 = R(a) v ¬P(f(a))

Prendiamo l1 = P(x), l2 = P(y) e l1' = ¬P(f(a)).


Poichè θ = {x <- f(a), y <- f(a)} è l'unificatore più genarale di {|l1|,|l2|,|l1'|}, la
clausola Q(b) v R(a) è un risolvente binario di C1 e C2.

Definizione 5.4.10
Un risolvente delle clausole C1 e C2, denotato con RIS(C1,C2), è un risolvente
binario di una variante di C1 e una variante di C2.

Diamo ora una definizione di regola di risoluzione.

Definizione 5.4.11
La regola di risoluzione consiste nella regola di inferenza seguente:

Per ogni clausola C1 e C2, R(C1,C2) è una diretta conseguenza di C1 e C2.

145
Sia CL un insieme di clausole. Una confutazione da CL consiste in una
sequenza di clausole C1,...,Cn tale che Cn = Θ e, per ogni 1≤n sia Ci ∈ CL
oppure Ci è un risolvente di Cj e Ck dove j,k <i

Definizione 5.4.12
Sia CL un insieme di clausole. Scriviamo EQ(CL) per denotare l'insieme di
clausole di uguaglianza per CL, cioè l'insieme consistente nelle seguenti
clausole:

(EC1) x = x
(EC2) x ≠ y v y = x
(EC3) x ≠ y v y ≠ z v x = z
(EC4) x1 ≠ y1 v ... v xn ≠ yn v ¬P(x1,...,xn) v P(y1,...,yn)
per ogni n-ary (n>0) predicato costante P presente in CL
(EC5) x1 ≠ y1 v ... v xn ≠ yn v f(x1,...,xn)=f(y1,...,yn)
per ogni n-ary (n>0) funzione costante f presente in CL

Notiamo che le clausole di uguaglianza CL corrispondono agli assiomi di


uguaglianza per il linguaggio su un alfabeto consistente di predicati e funzioni
costanti presenti in CL.
Adottiamo la seguente convenzione di notazione:
CL ∪ [EQ(CL)] = CL se "=" non compare in CL
= CL ∪ EQ(CL) nel caso contrario.

Teorema 5.4.13

Un insieme CL di clausole è non soddisfacibile sse esiste una


confutazione da CL ∪ [EQ(CL)].

Esempio: Sia CL consistente nelle seguenti clausole:


(1) ¬P(y,a) v ¬P(y,x) v ¬P(x,y)
(2) P(y,f(y)) v P(y,a)
(3) P(f(y),y) v P(y,a)
Si può dimostrare che CL non è soddisfacibile dimostrando che Θ può essere
ricavato da CL applicando iterativamente la regola di risoluzione.
Cerchiamo di risolvere (1) e (2).
Per essere sicuri che queste clausole non hanno variabili in comune,
sostituiamo (2) con una delle sue varianti:
(2') P(y1,f(y1)) v P(y1,a)

146
prendiamo i letterali l1 = ¬P(y,a), l2 = ¬P(y,x), l3 = ¬P(x,y)
dalla (1) e l1' = P(y1,a) dalla (2').
Poichè θ = {x <- a, y <- a, y1 <- a} è l'unificatore più generale di
{|l1|,|l2|,|l3|,|l1'|} la clausola
(4) P(a,f(a))
è un risolvente binario di (1) e (2') e quindi un risolvente di (1) e (2).
Ora, cerchiamo di risolvere (1) e (3).
Sostituiamo la (3) con una sua variante
(3') P(f(y2),y2) v P(y2,a)
prendiamo l1,l2,l3 come prima e l1' = P(y2,a) dalla (3').
Poichè θ = {x <- a, y <- a, y2 <- a} è l'unificatore più generale di
{|l1|,|l2|,|l3|,|l1'|}, concludiamo che
(5) P(f(a),a)
è un risolvente binario della (1) e della (3') e quindi risolvente di (1) e (3).
Il passo successivo consiste nel risolvere (1) e (4).
Prendiamo l1 = ¬P(x,y) dalla (1) e l1' = P(a,f(a)) dalla (4).
Poichè θ = {x <- a, y <- a} è l'unificatore più generale di {|l1|,|l1'|}, otteniamo:
¬P(f(a),a) v ¬P(f(a),a), cioè
(6) ¬P(f(a),a)
e finalmente dalla (5) e dalla (6) otteniamo, con la sostituzione vuota
(7) Θ (insieme di clausole vuoto).

Riassumendo la sequenza (1),(2),(3),(4),(5),(6),(7) è una confutazione da CL,


pertanto CL è non soddisfacibile.

La confutazione sopra descritta può essere rappresentata in un albero di


confutazione.
In generale un albero di confutazione per un insieme di clausole CL è un
albero binario D orientato verso l'alto che soddisfa alle seguenti condizioni:

(i) Tutti i nodi di D sono etichettati da clausole;


(ii) Ciascun nodo foglia di D è etichettato da una clausola di CL;
(iii) Il nodo radice di D è etichettato da Θ;
(iv) Se C etichetta un nodo n non-foglia, allora C è un risolvente delle
clausole che etichettano i successori di n.

Ricordiamo che T ⇒ A sse CLAUSOLE(T) ∪ CLAUSOLE(¬(A)) è non


soddisfacibile (teorema 5.4.6) allora:

147
Definizione 5.4.14
Una dimostrazione risolvente di una formula A da una teoria T è una
confutazione da

CLAUSOLE(T) ∪ CLAUSOLE(¬(A) ∪ [EQ(CLAUSOLE(T) ∪ CLAUSOLE(¬(A))]

Teorema 5.4.15

T ⇒ A sse esiste una dimostrazione risolvente di A in T.

148
5.4.3 Soluzione lineare

Il ragionamento automatico tramite la regola di risoluzione richiede una


strategia per scegliere le clausole che devono essere risolte. L'approccio più
efficace, chiamato metodo di risoluzione base equivale alla generazione
sistematica di tutti i possibili risolventi. Più specificatamente, per verificare la
non soddisfacibilità di un insieme finito di clausole CL, si parte cercando di
costruire il risolvente di una coppia di clausole in CL, il procedimento si ripete
fintanto che, o si trova la clausola vuota oppure non è più possibile generare
nuovi risolventi. Nel primo caso, la procedura termina con la non
soddisfacibilità di CL; nel secondo caso le clausole generate sono aggiunte a
CL e il processo si ripete sull'insieme nuovo di clausole. A dispetto della sua
semplicità, il metodo di risoluzione base è troppo inefficiente per essere di
utilizzo pratico. Fortunatamente può essere migliorato notevolmente
imponendo alcune condizioni sulle clausole che devono essere risolte ad un
determinato istante nel procedimento. Uno di questi accorgimenti, chiamato
metodo di risoluzione lineare (Loveland 1970, Luckham 1970) si può
schematizzare nel modo seguente.

(i) C0 ∈ CL ; (C0 si chiama clausola iniziale della confutazione)

(ii) per 0 ≤ i < n Bi ∈ CL oppure Bi coincide con Cj per qualche j < i;

(iii) per 1 ≤ i ≤ n Ci è un risolvente di Ci-1 e Bi-1;

(iv) Cn = Θ.

In una confutazione lineare un nuovo risolvente viene sempre costruito dal


precedente.

Teorema 5.4.16

Un insieme di clausole CL è non soddisfacibile sse esiste una


confutazione lineare da CL ∪ [EQ(CL)].

Uno dei problemi che si pongono nella costruzione di una confutazione lineare
consiste nella scelta della clausole iniziale.
Il teorema seguente fornisce una interessante indicazione in questo senso.

149
Teorema 5.4.17

Sia CL un insieme di clausole non soddisfacibili e supponiamo che


sia CL' contenuto in CL. Se l'insieme CL - CL' è soddisfacibile,
allora esiste una confutazione lineare da CL ∪ [EQ(CL)] con una
clausola C ∈ CL' come clausola iniziale.

Definizione 5.4.18
Una dimostrazione risolvente lineare di una formula A da una teoria T è una
confutazione lineare da

CLAUSOLE(T) ∪ CLAUSOLE(¬(A)) ∪ [EQ(CLAUSOLE(T) ∪ CLAUSOLE(¬(A))]

con una clausola di CLAUSOLE(¬(A)) come clausola iniziale.

Teorema 5.4.19

Se T è soddisfacibile, allora T ⇒ A sse esiste una dimostrazione risolvente di


A da T.

Esempio: Sia T una teoria consistente dei seguenti assiomi

(√x).Uccello(x) -> Vola(x)


Uccello(Titti)
Titti = Canarino

mostriamo che T ⇒ A dove A = Vola(Canarino).


Le clausole di T sono, CLAUSOLE(T):
(1) ¬Uccello(x) v Vola(x)
(2) Uccello(Titti)
(3) Titti = Canarino
le clausole relative ad A sono, CLAUSOLE(¬(A))
(4) ¬Vola(Canarino)
le clausole di EQ[CLAUSOLE(T) ∪ CLAUSOLE(¬(A)) sono
(5) x = x
(6) x ≠ y v y = x
(7) x ≠ y v y ≠ z v x = z
(8) x ≠ y v ¬Uccello(x) v Uccello(y)
(9) x ≠ y v ¬Vola(x) v Vola(y)

150
allora una risoluzione lineare è la seguente:
da ¬Vola(Canarino) e ¬Uccello(x) v Vola(x)
si ha ¬Uccello(Canarino)
da ¬Uccello(Canarino) e x ≠ y v ¬Uccello(x) v Uccello(y)
si ha x ≠ Canarino v ¬Uccello(x)
da x ≠ Canarino v ¬Uccello(x) e Uccello(Titti)
si ha Titti ≠ Canarino
da Titti ≠ Canarino e Titti = Canarino
si ha Θ (clausola vuota)

(Fig. 5.1)

¬Vola(Canarino)  / (1)
 /
 /
¬Uccello(Canarino)  / (8)
 /
 /
x ≠ Canarino v ¬Uccello(x)  / (2)
 /
 /
Titti ≠ Canarino  / (3)
 /
 /
Θ 

151
5.5 Logica classica del secondo ordine

A differenza della logica del primo ordine, in cui tutte le variabili possono
indicare solamente individui, nella logica del secondo ordine si ammette, in
aggiunta, che le variabili possano indicare relazioni e funzioni specificate
sopra agli individui.
Vediamo una breve esposizione della logica classica del secondo ordine.

5.5.1 Il linguaggio logico del secondo ordine.

Un alfabeto della logica del secondo ordine consiste di simboli primitivi


appartenenti alle seguenti classi:

(i) Un insieme numerabile di (per ciascun n ≥ 0) variabili indicanti funzioni


n-ary {ϕ(n,1),ϕ(n,2),...}; variabili indicanti funzioni 0-ary vengono chiamate
variabili individuali, e donotate con x1,x2,...

(ii) Un insieme numerabile di variabili indicanti predicati n-ary (per ciascun


n ≥ 0) {Φ(n,1),Φ(n,2),...}; predicati 0-ary vengono chiamati variabili
proposizionali.

(iii) Una costante vera: "Vero"

(iv) Connettivi: "¬" e "->"

(v) un quantificatore: "(_)"

(vi) Separatori: "(" "," ")"

(vii) Un insieme numerabile |P di predicati costanti; ciascun P ∈ |P ha


assegnato un intero non negativo, chiamato arità di P.

(viii) Un predicato costante distinto 2-ary: "="

(ix) Un insieme numerabile |F di funzioni costanti f ∈ |F; a ciascuna f è


assegnato un numero intero non negativo chiamato arità della f.

Le classi (i)-(vi) sono fisse, mentre le altre possono variare, e, in particolare,


possono essere vuote.
Gli insiemi |P e |F si assumono calcolabili.

152
Predicati costanti 0-ary sono chiamati proposizioni costanti.
Funzioni costanti denotano individui od oggetti costanti.
Ogni alfabeto AL determina univocamente tre classi di espressioni: i termini
TM(AL), le formule atomiche AFORM(AL) e le formule L(AL). Queste sono
specificate come quelle nella logica classica del primo ordine con ugualianza,
con in più le seguenti caratteristiche; per quanto riguarda i termini:

(iii) Se α1,...,αn ∈ TM(AL) (n≥1) e ϕ(n,i) è una funzione variable n-ary,


allora ϕ(n,i)(α1,...,αn) ∈ AFORM(AL).

La definizione di insieme di formule atomiche su AL si arricchisce delle


seguenti affermazione:

(iv) Ogni proposizione variabile è una formula atomica su AL


(v) Se α1,...,αn ∈ TM(AL) (n≥1) e Φ(n,i) è un predicato variabile n-ary,
allora Φ(n,i)(α1,...,αn) ∈ AFORM(AL).

Inoltre la clausola (ii) nella definizione dell'insieme di formule su AL deve


essere sostituita da
(iì) Se A,B ∈ L(AL) e X e una variabile, allora (¬A) ∈ L(AL),
(A -> B) ∈ L(AL) e ((√X)(A)) ∈ L(AL) [per ogni X(A) ∈ L(AL)].
L'insieme L(AL), come sopra specificato, si chiama linguaggio del secondo
ordine su AL. Di solito si assume che AL sia fissato, e che L(AL) possa essere
abbreviato in L. La condizione per cui gli alfabeti riguardano solo insiemi di
predicati e funzioni costanti calcolabili assicura la calcolabilità di ogni
linguaggio del secondo ordine. I linguaggi logici del secondo ordine
contengono il simbolo "=" ed allora non esiste più la distinzione in linguaggi
con o senza l'uguaglianza.
Impiegheremo le convenzioni di notazione introdotte per i linguaggi del
primo ordine per denotare variabili individuali, costanti individuali, predicati
costanti n-ary (n≥1), funzioni costanti n-ary (n≥1) formule e termini. In più,
assumeremo che le lettere ϕ e τ denotino variabili di funzioni n-ary (n≥1),
mentre Φ e Ω si riferiscano a variabili predicato n-ary (n≥0). Il simbolo X per
denotare una variabile arbitraria.
I connettivi logici &, v e ≡, il quantificatore esistenziale (∃_) e la costante Falso
corrispondono alle solite definizioni.
Le definizioni di "ricorrenza di una variabile universalmente
(esistenzialmente) quantificata", "ricorrenza di una variabile vincolata",
"ricorrenza di una variabile libera", "variabile libera" e "campo di
applicazione di una variabile" sono analoghe a quelle utilizzate nei linguaggi

153
logici del primo ordine, ad eccezione del fatto che nel linguaggio logico del
secondo ordine possono essere applicate a tutti i tipi di variabili.
Una formula chiusa o affermazione è una formula che non contiene variabili
libere. Una formula non chiusa si dice aperta.

Esempi.

Termini: x, f(a,y), ϕ(x,ϕ(b,z))


Formule atomiche: P(ϕ(a),a), Ω(b,x,ϕ(x))
Formule: (√x)Ω(x), (x)(∃Φ).¬Φ(x) v Ω(x), (x)Φ.Φ(a) -> Φ'(x) & Ω(y)

154
5.5.2 Semantica della logica del secondo ordine

Definizione 5.5.1

Una struttura per un linguaggio del secondo ordine L(AL) consiste in una
coppia M = <D,m> dove D ed m sono specificati come nel caso del
linguaggio del primo ordine. Cioè D è un insieme non vuoto che corrisponde
al dominio di M (universo per M) ed m è una funzione che assegna a ciascun
predicato costante n-ary (n≥0) di AL, diverso da "=", una relazione n-ary su D,
alla costante "=", la relazione identica su D, e a ciascuna funzione costante
n-ary (n≥0) di AL, una funzione n-ary da Dn a D.
Di solito, data una struttura M =<D,m> per L(AL), si scrive |M| per indicare
il dominio di M; M|K| per indicare m(K), dove K è un predicato o una
funzione costante in AL. Diremo che M è una struttura del secondo ordine, o
anche una struttura per la logica del secondo ordine sse M è una struttura
per qualche linguaggio del secondo ordine L.
Osserviamo a questo proposito che ogni struttura del secondo ordine può
essere interpretata come una struttura del primo ordine e viceversa, infatti la
frase "struttura del primo ordine" e la frase "struttura del secondo ordine" non
vengono utilizzate per distinguere tra oggetti differenti ma piuttosto tra logiche
differenti.
Sia M una struttura del secondo ordine; un assegnamento su M consiste in una
funzione che assegna ad ogni variabile di funzione n-ary (n≥0) una funzione
n-ary da |M|n in |M|, e a ciascuna variabile predicato n-ary (n≥0) una relazione
n-ary su |M|.
Osserviamo che le variabili individuali sono identificate da variabili funzione
0-ary.
L'insieme di tutti gli assegnamenti su M viene denotato con As(M) se
a ∈ As(M) e X è una variabile qualsiasi allora scriviamo [a]x per denotare
l'insieme di quegli assegnamenti su M che differiscono da "a" al massimo
per X.

Definizione 5.5.2
Sia M una struttura del secondo ordine per L(AL).
Il valore Va(α) di un termine α ∈ TM(AL) in M dove a ∈ As(M) è un
elemento di |M| definito come segue:
(i) Va(x) = a(x), dove x è una variabile individuale;
(ii) Va(a) = M|a|;
(iii) Va(f(α1,...,αn)) = M|f|(Va(α1),...,Va(αn));
(iv) Va(ϕ(α1,...,αn)) = a(ϕ)(Va(α1),...,Va(αn)).

155
Il valore di verità Va(A) di una formula A in M dove a ∈ As(M) è un
elemento di {0,1} specificato nel modo seguente:

(i) Va(Vero) = 1;
(ii) Va(p) = M|p|;
(iii) Va(P(α1,...,αn)) = M|P|(Va(α1),...,Va(αn));
(iv) Va(α=β) = 1 sse Va(α) = Va(β);
(v) Va(Φ) = a(Φ), dove Φ è qualsiasi variabile proposizione;
(vi) Va(Φ(α1,...,αn)) = a(Φ)(Va(α1),...,Va(αn)) dove Φ è ogni
variabile predicato n-ary (n≥0);
(vii) Va(B -> C) = 1 sse Va(B) = 0 oppure Va(C) = 1;
(viii) Va(¬B) = 1 - Va(B);
(ix) Va((X)B) = 1 sse Va(B) = 1 per ogni a’ ∈ [a]x.

Le condizioni di verità per i simboli &, v, ≡, Falso, e (∃_) possono essere


facilmente dedotte dalle loro definizioni.
Una formula A si dice soddisfatta in una struttura M da un assegnamento
a ∈ As(M) sse Va(A) = 1. Una formula A è soddisfacibile sse Va(A) = 1 per
qualche struttura M e qualche a ∈ AS(M); in caso contrario si dice non
soddisfacibile. Una formula A è vera in M sse Va(A) = 1, per ogni a ∈ As(M).
Se A è vera in M, allora diremo che M è un modello per A. A è valida sse A è
vera in ogni struttura M.

Esempio:
Sia A = (Φ)(∃Ω)(√x)(√y)[Φ(x,y) ≡ Ω(y,x)].
Intuitivamente, A afferma che ogni relazione binaria possiede una inversa.
Dimostriamo che A è valida. Assumiamo che A sia falsa, cioè Va(A) = 0, per
qualche struttura M e qualche a ∈ As(M).
Allora esiste un a’ ∈ [a]Φ tale che

Va’((∃Ω)(√x)(√y)[Φ(x,y) ≡ Ω(y,x)]) = 0.

Supponiamo che a’(Φ) = R e sia a’’ l'assegnamento su M che è identico ad a’


eccetto che a’’(Φ) è l'inversa di R. Poichè,
Va’’((√x)(√y)[Φ(x,y) ≡ Ω(y,x)]) = 1
quindi
Va’((∃Ω)(√x)(√y)[Φ(x,y) ≡ Ω(y,x)]) = 1
che contraddice l'ipotesi.

156
Consideriamo lo schema

5.3.3 (α = β) ≡ ((Φ)[Φ(α) ≡ Φ(β)])

dove α e β sono termini qualsiasi.


Questo schema rappresenta il principio di identità dell'indistinguibile di
Leibnitz, in accordo col fatto che se due oggetti godono esattamente delle
stesse proprietà allora sono identici.
È facile vedere che ogni istanza della 5.3.3 è valida.
Allora nella logica del secondo ordine la costante "=" non deve
necessariamente essere un simbolo primitivo, ma può essere introdotta dalla
seguente definizione:

α = β definita come ((Φ)[Φ(α) ≡ Φ(β)].

dove α e β sono termini qualsiasi.

Il problema di validità della logica del secondo ordine consiste nel determinare
se una data formula arbitraria del secondo ordine è valida oppure no. Poichè la
classe delle formule valide del secondo ordine contiene le formule valide del
primo ordine, e poichè il problema di validità per la logica del primo ordine
è indecidibile, ne deduciamo immediatamente:

Teorema 5.5.4

Il problema di validità per la logica del secondo ordine non è decidibile.

Potremmo allora sperare di costruire un algoritmo per decidere se una data


formula del secondo ordine è valida oppure no.
Sfortunatamente, a differenza della logica del primo ordine, è altrettanto
impossibile fornire una procedura che possa essere utilizzata per confermare
la validità di una arbitraria formula valida in un linguaggio logico del secondo
ordine.

Teorema 5.5.5

Sia L un linguaggio logico del secondo ordine. In generale, l'insieme di formule


valide su L non è un sottoinsieme parzialmente calcolabile di L.

Due formule A e B si dicono logicamente equivalenti, A <=> B, sse esse


hanno gli stessi valori di verità per ogni struttura M ed ogni a ∈ As(M).
157
Formule equivalenti del linguaggio logico del secondo ordine godono delle
stesse proprietà delle formule equivalenti del linguaggio del primo ordine.

158
5.5.3 Teorie del secondo ordine

Una teoria del secondo ordine consiste in una coppia T = <L,S>, dove L è il
linguaggio del secondo ordine e S sono gli assiomi o premesse di T. Se S = { },
allora T si chiama calcolo dei predicati del secondo ordine su L.
Tutte le notazioni per i termini e altre convenzioni introdotte precedentemente
per le teorie del primo ordine possono essere utilizzate nelle teorie del
secondo ordine. In particolare, le teorie del secondo ordine possono essere
identificate con l'insieme dei loro assiomi, e questo ci consente di trattare ogni
affermazione nel linguaggio logico del secondo ordine come ad una teoria del
secondo ordine.
Di solito una struttura in cui tutti gli assiomi di una data teoria T sono veri
rappresenta un modello di T.
Una teoria T è soddisfacibile sse ha un modello; altrimenti T non è
soddisfacibile.
Una formula A è conseguenza semantica di una teoria T ( A segue da T, T
implica A, A è implicata da T), T ⇒ A, sse A è vera in ogni modello di T.
In particolare, A è una conseguenza semantica del calcolo dei predicati del
secondo ordine su L, ⇒ A, sse A è vera in ogni struttura per L.
Il simbolo ⇒ denota una relazione binaria, chiamata relazione di implicazione
della logica classica del secondo ordine.
La relazione di implicazione nella logica classica del secondo ordine gode
delle stesse proprietà della relazione di implicazione nella logica classica del
primo ordine.
Due teorie T e T' sono logicamente equivalenti, T <=> T', sse possiedono gli
stessi modelli.
Le proprietà di teorie equivalenti nella logica del primo ordine possono essere
generalizzate alla logica del secondo ordine.
Di solito, due formule A e B si dicono equivalenti in una teoria T sse esse
hanno gli stessi valori di verità in ogni modello M di T ed ogni assegnamento a
∈ As(M).

159
5.5.4 Sistemi di deduzione per la logica del secondo ordine

Un sistema di deduzioni per la logica del secondo ordine viene definito


analogamente ai sistemi di deduzione per la logica del primo ordine, ad
eccezione del fatto che L è appunto un linguaggio del secondo ordine.
Di solito, dato un sistema di deduzioni DS = <L,S,R>, si dice che A è
dimostrabile in DS sse esiste una sequenza A1,...,An di formule di L tali che
An = A e, per ciascun 1≤i≤n, si ha che Ai ∈ S oppure Ai è una diretta
conseguenza di qualche formula precedente nella sequenza in virtù di
qualche regola di R. DS è solido sse ogni formula dimostrabile in DS è
valida; è completo sse ogni formula valida di L è dimostrabile in DS.
Il seguente teorema fondamentale afferma un importante risultato riguardante
la logica del secondo ordine:

Teorema 5.5.6 (Gödel)

Non esiste un sistema di deduzione completo per la logica del secondo


ordine.

Esiste una importante classe ristretta di formule valide del secondo ordine,
chiamata la classe delle formule secondariamente valide. È possibile costruire
un sistema di deduzione per la logica del secondo ordine, che sia solido e
completo rispetto a tale classe ristretta di formule, cioè DS = <L,S,R> tale che
A è dimostrabile in DS sse A è una formula secondariamente valida di L.

160
5.5.5 Espressioni con predicati e funzioni.

Nella logica del primo ordine, è possibile sostituire termini al posto di variabili
individuali. Nella logica del secondo ordine, possiamo, in aggiunta, sostituire
espressioni di predicati al posto di variabili predicato ed espressioni di funzioni
al posto di variabili funzione.
Una espressione di predicati n-ary W è un'espressione della forma:

Γx1...xn A(x1,...,xn) (n≥0)

dove x1,...,xn sono variabili individuali e A(x1,...,xn) è una formula nella


logica del primo o del secondo ordine. Nel primo caso, W si chiama
espressione di predicati del primo ordine, nel secondo espressione di predicati
del secondo ordine.
Un ricorrenza di una variabile X si dice essere libera in W sse
X ∉ {x1,...,xn} e la ricorrenza è libera in A(x1,...,xn).
Ogni variabile individuale che ha ricorrenze libere in W si chiama parametro in
W. Se non vi sono parametri in W, allora W si dice espressione di predicati
senza parametri, altrimenti W è un'espressione di predicati con parametri.
I seguenti sono espressioni di predicati:

W1 = ΓxP(x) W2 = Γxy[Φ(x) v Q(y)] W3 = ΓxQ(x,y).

W1 e W2 sono espressioni di predicati senza parametri; W3 è


un'espressione di predicati con y come parametro.
Una espressione di predicati n-ary W ha lo scopo di rappresentare un predicato
n-ary, cioè una relazione n-ary, che può essere considerata una estensione
di W.

Definizione 5.5.7
Sia W una espressione predicato della forma
Γx1,...,xn A(x1,...,xn).
L'estensione Ea(W) di W in una struttura M dove a ∈ As(M) è la relazione
n-ary R su |M| data da

<d1,...,dn> ∈ R sse Va(x1/d1,...,xn/dn)(A) = 1

dove a(x1/d1,...,xn/dn) è l'assegnamento su M che è identico ad eccezione di


alcune tra le variabili x1,...,xn; a cui essa assegna d1,...,dn rispettivamente.

161
Da notare che per ogni predicato costante n-ary P, Ea(Γx1,...,xn P(x1,...,xn)) =
M|P| così che P può essere indentificato da Γx1,...,xn P(x1,...,xn). In maniera
analoga, per ogni variabile predicato n-ary è, Ea(Γx1,...,xn Φ(x1,...,xn)) = a(Φ).
Allora Φ può essere identificata con Γx1,...,xn Φ(x1,...,xn).
Una espressione di predicati Γx1...xn A(x1,...,xn) viene spesso scritta come
Γx A(x), dove x rappresenta la n-tupla (x1,...,xn).
Sia W una espressione predicato della forma ΓxA(x) e supponiamo che α =
(α1,...,αn) sia una n-tupla di termini.
L'applicazione di W ad α, W(α), è la formula A(α).
L'applicazione si dice corretta sse ogni αi, 1≤i≤n, è libero per xi in A(x).
Per esempio, se W = Γxy P(x,y) e α = (z,f(b)), allora W(α) = P(z,f(b)).
Se W = Γxy(∃z) P(x,y,z) e α = (z,f(a)), allora W(α) = (∃z) P(z,f(a),z).
La prima applicazione è corretta, la seconda no.
Una sostituzione di una espressione predicato al posto di variabili predicato
consiste in un insieme {Φ1 <- W1,...,Φn <- Wn} (n≥0), dove Φ1,...,Φn
sono variabili predicato distinte, W1,...,Wn sono espressioni predicato e
per ogni 1≤i≤n, Wi e Φi possiedono la stessa arità.

Definizione 5.5.8
L'applicazione di una sostituzione τ = {Φ1 <- W1,..., Φn <- Wn} ad una
formula A è la formula Aτ ottenuta da A eseguendo le seguenti operazioni:

(i) Sostituzione di ciascuna ricorrenza di Φi (1≤i≤n) nella A con {Wi};


(ii) Nella espressione risultante, che in generale non è una formula,
sostituire ciascuna parte contenente la forma {Wi}(α) con l'applicazione di
Wi ad α.

L'applicazione τ ad A si dice propria sse tutte le applicazioni, di espressioni


predicato a termini, eseguite in (i) sono corrette, e ogni ricorrenza libera di
variabili in ogni W1,...,Wn diviene vincolata in Aτ, altrimenti, l'applicazione
di τ ad A si dice impropria.

Diremo che B si ottiene da A con la sostituzione di W1,...,Wn al posto di


Φ1,...,Φn sse B è l'applicazione di {Φ1 <- W1,...,Φn <- Wn} ad A.

Esempio:

Sia A = (√x)Φ(x) -> (√x)Φ(b), τ = {Φ <- Γy P(x,y)}

162
applicando τ ad A, otteniamo prima

(√x){Γy P(x,y)}(x) -> (√x){Γy P(x,y)}(b)


e poi
(√x)P(x,x) -> (√x) P(x,b).

Allora, Aτ = (√x)P(x,x) -> (√x)P(x,b). L'applicazione di τ ad A è impropria a


causa del fatto che la ricorrenza libera di x in Γy P(x,y) diviene vincolata in
Aτ. Supponiamo ora che A’ = (√x)Φ(x) -> Φ(y) e sia

τ' = {Φ <- Γx(∃y)Q(x,y)}; applicando τ' ad A’ otteniamo

(√x){Γx(∃y)Q(x,y)}(x) -> {Γx(∃y)Q(x,y)}(y)


e
A’τ' = (√x)(∃y)Q(x,y) -> (∃y)Q(y,y)

l'applicazione τ' ad A è impropria poichè l'applicazione di Γx(∃y)Q(x,y) ad y


non è corretta essendo y vincolato alla x in (∃y)Q(x,y).
Consideriamo A2 = (√x)(y).Φ(x,y) v Ω(x,y)
e τ2 = {Φ <- Γxy P(x,y), Ω <- Γuz Q(u,z)}.
Applicando τ2 ad A2 otteniamo:

(x)(y).{Γxy P(x,y)}(x,y) v {Γuz Q(u,z)}(x,y)


e poi
A2τ2 = (√x)(√y).P(x,y) v Q(x,y).

L'applicazione di τ2 ad A2 è propria.

Teorema 5.5.9

Per ogni sostituzione τ = {Φ1 <- W1,...,Φn <- Wn} ed ogni formula A la
formula (Φ1) ... (Φn) A -> Aτ è valida, purchè l'applicazione di τ ad A sia
propria.

Il teorema precedente non è valido nel caso in cui l'applicazione di τ ad A non


sia propria. Per vederlo consideriamo la formula A e la sostituzione τ
dell'esempio precedente. È facile controllare che la formula (Φ)A è valida
mentre la formula Aτ non lo è.
163
Il teorema precedente implica immediatamente il seguente risultato:

Corollario 5.5.10

Per ogni sostituzione τ = {Φ1 <- W1,...,Φn <- Wn} ed ogni affermazione della
forma (Φ1)...(Φn).A

(Φ1)...(Φn).A ⇒ Aτ

purchè l'applicazione di τ ad A sia propria.

Una espressione funzione n-ary F è una espressione nella forma

Γx1,...xn α(x1,...,xn) (n≥0)

dove x1,...,xn sono variabili individuali e α(x1,...,xn) è un termine,


contenente alcune delle variabili inviduali xi.
Non si suppone comunque che tutte le x1,...,xn ricorrano in α e nemmeno che
α non contenga altre variabili individuali.
Una ricorrenza di una variabile individuale x si dice libera in F sse x ∉
{x1,...,xn} e x ricorre in α.

Esempio:
F1 = Γx f(x); F2 = Γxy f(g(x),y); F3 = Γx ϕ(x,y).

Una espressione funzione F intende rappresentare una funzione n-ary che si


può pensare come un'estensione di F.

Definizione 5.5.11
Sia F una espressione funzione n-ary della forma
Γx1,...,xn α(x1,...,xn).
L'estensione Ea(F) di F in una struttura M dove a ∈ As(M) è la funzione f da
|M| alla n a |M| data da

f(d1,...,dn) = Va(x1/d1,...,xn/dn)(α)

dove a(x1/d1,...,xn/dn) è l'assegnamento su M che è identico ad eccezione di


alcune tra le variabili x1,...,xn; a cui essa assegna d1,...,dn rispettivamente.

Da notare che per ogni funzione costante n-ary f,

164
Ea(Γx1,...,xn f(x1,...,xn)) = M|f| così che f può essere indentificata da Γx1,...,xn
f(x1,...,xn). In maniera analoga, per ogni variabile funzione n-ary ϕ,
Ea(Γx1,...,xn ϕ(x1,...,xn)) = a(ϕ).
Allora ϕ può essere identificata con Γx1,...,xn ϕ(x1,...,xn).
Una espressione di funzioni Γx1...xn α(x1,...,xn) viene spesso scritta come
Γx α(x), dove x rappresenta la n-tupla (x1,...,xn).
Sia F una espressione funzione della forma Γxα(x) e supponiamo che β =
(β1,...,βn) sia una n-tupla di termini.
L'applicazione di F a β, F(β), è il termine α(β1,...,βn).
Per esempio, se F = Γxy ϕ(f(x),g(y)) e β = (a,f(a)), allora F(β) = ϕ(f(a),g(f(a))).
Una sostituzione di una espressione funzione al posto di variabili funzione
consiste in un insieme τ = {ϕ1 <- F1,...,ϕn <- Fn} (n≥0), dove ϕ1,...,ϕn sono
variabili funzione distinte, F1,...,Fn sono espressioni funzione e per ogni
1≤i≤n, Fi e ϕi possiedono la stessa arità.

Definizione 5.5.12
L'applicazione di una sostituzione τ = {ϕ1 <- F1,..., ϕn <- Fn} ad una formula
A è la formula Aτ ottenuta da A eseguendo le seguenti operazioni:
(i) Sostituzione di ciascuna ricorrenza di ϕi (1≤i≤n) nella A con {Fi};
(ii) Nella espressione risultante, che in generale non è una formula,
sostituire ciascuna parte contenente la forma {Fi}(β) con l'applicazione di Fi
a β.

L'applicazione τ ad A si dice propria sse nessuna ricorrenza di variabili


individuali libere in ogni F1,...,Fn diventa vincolata in Aτ; altrimenti
l'applicazione di τ ad A si dice impropria.

Diremo che B si ottiene da A con la sostituzione di F1,...,Fn al posto di


ϕ1,...,ϕn sse B è l'applicazione di {ϕ1 <- F1,...,ϕn <- Fn} ad A.

Esempio:

Sia A = (y)[P(y) -> Q(ϕ(y))] -> (y)(z)[P(z) -> Q(ϕ(z))] e supponiamo che
τ = {ϕ <- Γx g(y,x)} applicando τ ad A, otteniamo prima

(y)[P(y)->Q({Γx g(y,x)}(y))]->(y)(z)[P(z)->Q({Γx g(y,x)}(z))]


e poi
Aτ = (y)[P(y) -> Q(g(y,y))] -> (y)(z)[P(z) -> Q(g(y,z))].

165
L'applicazione di τ ad A è impropria poichè la ricorrenza libera di y in Γx
g(y,x) diventa vincolata in Aτ.

Consideriamo ora A’ = (z).Φ(ϕ(z)) -> P(ϕ(z)) e sia τ' = {ϕ <- Γx f(x,y)};


applicando τ' ad A’ otteniamo

(z).Φ({Γx f(x,y)}(z)) -> P({Γx f(x,y)}(z))


e
A’τ' = (z).Φ(f(z,y)) -> P(f(z,y)).

l'applicazione di τ' ad A è propria.

Teorema 5.5.13

Per ogni sostituzione τ = {ϕ1 <- F1,...,ϕn <- Fn} ed ogni formula A la formula
(ϕ1) ... (ϕn) A -> Aτ è valida, purchè l'applicazione di τ ad A sia propria.

Il teorema precedente non è valido nel caso in cui l'applicazione di τ ad A non


sia propria. Consideriamo per esempio la formula A e la sostituzione τ
dell'esempio precedente. È facile controllare che la formula (ϕ)A è valida
mentre la formula Aτ non lo è.

Il teorema precedente implica immediatamente il seguente risultato:

Corollario 5.5.14

Per ogni sostituzione τ = {ϕ1 <- F1,...,ϕn <- Fn} ed ogni affermazione della
forma (ϕ1)...(ϕn).A

(ϕ1)...(ϕn).A ⇒ Aτ

purchè l'applicazione di τd ad A sia propria.

166
5.6 La logica modale

La logica modale è stata sviluppata per formalizzare concetti che coinvolgono


le nozioni di necessità e possibilità. Una proposizione necessaria è una
proposizione vera che non può essere falsa. Una proposizione possibile è una
proposizione che potrebbe essere vera. Questa distinzione si esprime spesso
utilizzando il concetto di mondi possibili: le proposizioni necessarie sono
quelle che sono vere in tutti i mondi possibili, mentre le proposizioni possibili
sono quelle che sono vere in qualche possibile mondo.

5.6.1 Logica proposizionale modale

Un alfabeto della logica proposizionale modale si ottiene da quello della


logica proposizionale classica aggiungendo due operatori modali:

(i) M operatore delle possibilità


(ii) L operatore della necessità

Definizione 5.6.1
Sia AL un alfabeto della logica modale proposizionale.
L'insieme L(AL) delle formule su AL è l'insieme più piccolo tale che:

(i) "Vero" e tutte le proposizioni costanti di AL sono membri di L(AL);


(ii) Se A e B sono elementi di L(AL) allora anche (A -> B), (¬A), (LA)
[necessariamente A] e (MA) [A è possibile] sono membri di L(AL).

L'insieme L(AL) si chiama linguaggio proposizionale modale su AL.


Di solito L(AL) viene abbreviato in L.
I simboli Falso, v, & e ≡ sono introdotti nel solito modo ed hanno il medesimo
significato.
Gli operatori M ed L sono definibili l'uno rispetto all'altro come segue:

(i) (MA) = ¬(L¬A);


(ii) (LA) = ¬(M¬A).

Gli operatori modali sono legati strettamente alla formula a cui sono applicati
e si comportano come il segno di negazione.

167
Definizione 5.6.2
Una struttura per un linguaggio modale proposizionale L(AL) consiste in
M = <W,R,m> dove:

(i) W è un insieme non vuoto chiamato l'insieme dei mondi possibili;


(ii) R è una relazione binaria su W, chiamata relazione di accessibilità;
(iii) m è una funzione che a ciascuna coppia, costituita da una proposizione
costante di AL e un elemento w ∈ W, assegna un elemento di {0,1}.

I mondi possibili sono oggetti astratti e il loro preciso significato non è


chiaramente definito. Intuitivamente, ogni mondo possibile possiamo
pensarlo come uno stato accessibile a cose, situazioni,scenari,ecc.
Poichè una proposizione può avere valori di verità differenti a seconda dello
stato effettivo in cui si trovano le cose, le situazioni, gli scenari, ecc.; il valore
di verità assegnato da m ad una proposizione costante dipende anche da quale
mondo possibile si considera, in altri termini la funzione m assegna il valore
di verità non solo alla proposizione costante ma anche ad un possibile mondo.
Il valore m(p,w) può essere pensato come il valore di verità di p in w.
La relazione di accessibilità ha il significato di esprimere l'intuizione che
alcune cose possono essere possibili dal punto di vista di un certo mondo e
impossibili, invece, in un mondo diverso. Se esiste la relazione w1Rw2 di
accessibilità, allora possiamo dire che w2 è accessibile (concepibile,
visibile,...) da w1. L'intenzione è quella di esprimere che i mondi accessibili
da w1 sono quelli che sono considerati possibili dal punto di vista di w1.

Definizione 5.6.3
Il valore di verità Vw(A) di una formula A in una struttura, dove w ∈ W, è
un elemento di {0,1} dato da:

(i) Vw(p) = m(p,w);


(ii) Vw(¬B) = 1 - Vw(B);
(iii) Vw(B -> C) = 1 sse Vw(B) = 0 oppure Vw(C) = 1;
(iv) Vw(LB) = 1 sse Vw(B) = 1 per ogni w' ∈ W tale che wRw';
(v) Vw(MB) = 1 sse Vw(B) = 1 per qualche w'∈ W tale che wRw'.

Osserviamo che Vw(LA) e Vw(MA) non sono funzioni di Vw(A), ma


dipendono anche dai valori di verità di A nei mondi che sono accessibili da
w; allora, a differenza delle logica classica, la logica modale non ubbidisce al
principio di funzionalità.
Una formula A si dice vera in una struttura M = <W,R,m> sse Vw(A)=1
per ogni w ∈ W. Se A è vera in M, allora M è un modello per A. Imponendo
168
restrizioni diverse alla relazione di accessibilità si ottengono sistemi di logica
proposizionale modale differenti.
Sia M = <W,R,m> una struttura. Diremo che M è una T-struttura sse R è
riflessiva; diremo che M è S4-struttura sse R è riflessiva e transitiva; diremo
che M è S5-struttura sse R è riflessiva, transitiva e simmetrica, cioè è una
relazione di equivalenza.
Diremo che una formula A ∈ L è X-valida, X ∈ {T,S4,S5}, sse A è vera in
ogni X-struttura per L. Ovviamente, ogni formula T-valida è anche S4-valida e
S5-valida. L'inverso generalmente non è vero; cioè esistono formule S5-valide
che non sono T-valide o S4-valide.

Esempio:

Mostriamo che ogni istanza dello schema LA -> A è T-valido.


Assumiamo il contrario; allora esiste una formula A, una T-struttura
M = <W,R,m> e w ∈ W tali che Vw(LA -> A) = 0.
Ne consegue perciò che Vw(LA) = 1 e Vw(A) = 0; poichè M è una T-struttura,
R è riflessiva, e pertanto Vw(LA) = 1 implica Vw(A) = 1 che contraddice
l'ipotesi.

Consideriamo lo schema LA -> LLA.


Proviamo che ogni istanza di questo schema è S4-valida.
Assumiamo il contrario; allora per qualche formula A, qualche S4-struttura
M = <W,R,m> e qualche w ∈ W si ha Vw(LA -> LLA) = 0;
allora Vw(LA) = 1 e Vw(LLA) = 0. Poichè Vw(LLA) = 0, deve esistere un
w' ∈ W tale che sia wRw' e Vw'(LA) = 0; ma Vw'(LA) = 0 implica l'esistenza
di w2 ∈ W tale che w'Rw2 e Vw2(A) = 0. Siccome R è transitiva wRw' e
wRw2 implica wRw2 e quindi se ne conclude che Vw2(A) = 1, che
contraddice l'ipotesi.

In generale istanze dello schema LA -> LLA non sono T-valide.


Consideriamo per esempio Lp -> LLp e prendiamo la T-struttura tale che:
W = {w1,w2,w3};
R = {<w1,w2>,<w2,w3>} ∪ {<wi,wi>:1≤i≤3};
m(p,w1) = 1; m(p,w2) = 1; m(p,w3) = 0.
Si può verificare che Vw1(Lp -> LLp) = 0.

Teorema 5.6.4

Per ogni X ∈ {T,S4,S5}, il problema di validità per la logica


proposizionale X modale è decidibile.
169
In virtù del teorema precedente è possibile costruire algoritmi per decidere se
una data formula della logica modale è X-valida.

Una teoria nella logica proposizionale modale consiste in T=<L,S> dove L è il


linguaggio proposizionale modale ed S è il sistema di assiomi di T, ed è un
sottoinsieme calcolabile di L. Di solito anche una teoria modale viene
identificata con l'insieme dei suoi assiomi.
Sia T una teoria; una struttura M si dice modello per T sse M è una struttura e
tutti gli assiomi di T sono veri in M. Una teoria che possiede un modello si dice
soddisfacibile, altrimenti si dice non soddisfacibile. Si dice che T X-implica
una formula A, T ⇒ A, sse A è vera in ogni modello di T.
Un sistema di deduzione per la logica modale proposizionale è definito nel
modo solito.

Definizione 5.6.5
Sia L un linguaggio della logica proposizionale modale e X ∈ {T,S4,S5}.
Denotiamo con MPL(L,X) il sistema di deduzione <L,S(X),R> dato da

(i) S(T) consiste nei seguenti assiomi:

(A1) Vero
(A2) A -> (B -> A)
(A3) (A -> (B -> C)) -> ((A -> B) -> (A -> C))
(A4) (¬B -> ¬A) -> ((¬B -> A) -> B)
(A5) LA -> A
(A6) L(A -> B) -> (LA -> LB)

S(S4) si ottiene da S(T) aggiungendo

(A7) LA -> LLA

S(S5) si ottiene da S(S4) aggiungendo

(A8) MA -> LMA

(ii) R consiste delle seguenti regole di inferenza:

(MP) B è una diretta conseguenza A e A -> B


(NEC) LA è una diretta conseguenza di A

(NEC) è la regola di necessità.

170
Di solito normalmente si assume che il linguaggio in considerazione sia
fissato.
Se T → A, nel sistema di deduzione MPL(L,X), diremo che A è dimostrabile
da T nella logica proposizionale X modale, e A si dice teorema della logica
proposizionale X modale.
Denotiamo con Th(T) l'operatore di dimostrabilità nella logica proposizionale
X modale: Th(T) = {A: T → A}.

Teorema 5.6.6

(i) Se T → A allora T ⇒ A (Solidità)


(ii) Se T ⇒ A allora T → A (Completezza)

Corollario 5.6.7

⇒ A sse → A.

Una teoria T su L si dice consistente sse esiste una formula


A ∈ L tale che T ¬→ A.

Teorema 5.6.8

T è consistente sse T è soddisfacibile.

Per concludere diremo che nella letteratura sulla logica, le nozioni di


implicazione modale e di dimostrabilità modale sono spesso interpretate cel
seguente forte significato: diremo che una teoria T implica fortemente una
formula A, T s⇒ A, sse per ogni struttura M = <W,R,m> e ogni w ∈ W, da
Vw(B) = 1 per ogni B ∈ T ne consegue Vw(A) = 1. A si dice fortemente
dimostrabile in T, T s→ A sse esistono delle formule B1,...,Bn ∈ T tali che
→ B1 & ... & Bn -> A. Si può vedere che T s⇒ A implica T ⇒ A e che
T s→ A implica T → A. Il contrario non è sempre vero.
Per esempio, {p} → Lp e {p} ⇒ Lp ma non vale {p} s→ Lp e nemmeno
{p} s⇒ Lp. È possibile dimostrare che la nozione di implicazione forte e di
dimostrabilità forte sono correlate alla seguente affermazione:
T s⇒ A sse T s→ A.

171
5.6.2 Logica modale del primo ordine

Un alfabeto della logica modale del primo ordine si ottiene dalla logica
classica del primo ordine aggiungendo gli operatori "L" ed "M".
Sia AL un alfabeto della logica modale del primo ordine. L'insieme dei
termini su AL e l'insieme delle formule atomiche su AL vengono definiti
nella stessa maniera in cui sono definiti nella logica classica del primo ordine.
L'insieme L(AL) delle formule su AL consiste nel più piccolo insieme tale che:

(i) Tutte le formule atomiche su AL sono elementi di L(AL);


(ii) Se x è una variabile e A, B ∈ L(AL), allora (¬A), (A -> B) ((√x)(A)),
(LA), e (MA) sono membri di L(AL).

La semantica della logica modale del primo ordine è definita come segue:

(i) D è un insieme non vuoto chiamato dominio di M;


(ii) W è un insieme non vuoto di "mondi possibili";
(iii) R è una relazione binaria di "accessibilità" su W;
(iv) m è una funzione che assegna ad ogni coppia consistente in un predicato
costante n-ary (n≥0) diverso da "=", e un elemento w di W, una relazione n-ary
su D, alla costante "=", se presente in AL, la relazione identità su D, e a
ciascuna funzione n-ary (n≥0) costante, una funzione da Dn a D.

Data una struttura M = <D,W,R,m> scriviamo |M| per denotare il dominio di


M. Se K è un predicato o una funzione costante, allora M|K,w| o M|K| sta per
m(K,w) o m(K) rispettivamente.
Un assegnamento su una struttura M viene specificato nel modo solito e
l'insieme di tutti gli assegnamenti su M viene denotato con As(M). Il simbolo
[a]x indica l'insieme di tutti gli assegnamenti su M che sono identici ad "a",
eccetto forse per l'assegnamento sulla variabile x.

Definizione 5.6.9
Sia M una struttura per L(AL).
Il valore di verità Va(α) di un termine in M dove a ∈ As(M), è specificato
come nella logica classica del primo ordine, e il valore di verità V[a,w](A) di
una formula A ∈ L(AL) in M dove w ∈ W, è un elemento di {0,1} è definito
da:

(i) V[a,w](Vero) = 1;
(ii) V[a,w](P0) = M|P0,w|;

172
(iii) V[a,w](Pn(α1,...,αn)) = M|Pn,w|(Va(α1),...,Va(αn));
(iv) V[a,w](α = β) = 1 sse Va(α) = Va(β);
(v) V[a,w](B -> C) = 1 sse V[a,w](B) = 0 oppure V[a,w](C) = 1
(vi) V[a,w](¬B) = 1 - V[a,w](B);
(vii) V[a,w]((√x)B) = 1 sse V[a,w](B) = 1 per ogni a’ ∈ [a]x;
(viii) V[a,w](LB) = 1 sse V[a,w](B) = 1 per ogni w' ∈ W
tale che wRw';
(ix) V[a,w](MB) = 1 sse V[a,w](B) = 1 per qualche w' ∈ W
tale che wRw'.

Le condizioni di verità dei simboli Falso, &, v, ≡ ed (∃_) si derivano dalle


definizioni.
Una formula A si dice vera in M sse V[a,w](A) = 1 per ogni a ∈ As(M) ed
ogni w ∈ W.
Se A è vera in M allora diremo che M è un modello per A.
Una struttura M = <Q,W,R,m> si dice T-struttura sse R è riflessiva;
S4-struttura se R è anche transitiva; S5-struttura se R è una relazione di
equivalenza.
Una formula A si dice valida sse A è vera in ogni X-struttura.

Esempio:
Mostriamo che ogni istanza dello schema (√x)(LA) -> L((x)A) è T-valida.
Assumiamo il contrario, esiste allora una formula A, una struttura
M = <D,W,R,m> a ∈ As(M) e w ∈ W tale che V[a,w]((√x)(LA) -> L((x)A)) =
0, ne segue che V[a,w]((√x)(LA)) = 1 e V[a,w](L((x)A)) = 0; poichè
V[a,w](L((x)A)) = 0 esiste w' ∈ W e a’ ∈ [a]x tale che wRw' e
V[a’,w'](A) = 0; d'altra parte, poichè V[a,w]((√x)(LA)) = 1 otteniamo
V[a’,w](LA) = 1 e quindi a causa della wRw' V[a’,w'](A) = 1, una
contraddizione.
Da notare che non è stato utilizzato il fatto che R è riflessiva; perciò ne
consegue che ogni istanza di
(√x))(LA) -> L((x)A)
è vera in ogni struttura.

Teorema 5.6.10

Il problema di validità della logica modale del primo ordine è indecidibile.

Non esiste alcun algoritmo per decidere se una data formula arbitraria nella
logica modale del primo ordine è valida.

173
Comunque, come nel caso della logica classica del primo ordine è possibile
costruire una procedura π tale che data una formula della logica modale del
primo ordine A, ne determini la validità, nel caso in cui è valida; nel caso
contrario la procedura non termina mai.
Una teoria della logica modale del primo ordine consiste in una coppia
T = <L,S> dove L è un linguaggio modale del primo ordine e S l'insieme degli
assiomi, insieme di affermazioni calcolabili di L, che costituiscono la teoria T.
Se T possiede un modello allora T è soddisfacibile altrimenti è non
soddisfacibile.
La nozione di implicazione "T implica A", T ⇒ A, è definita nel modo solito.

Definizione 5.6.11
Sia L un linguaggio modale del primo ordine e X ∈ {T,S4,S5}.
Denotiamo con MFOL(L,X) il sistema di deduzione <L,S,R> dato da:

(i) S(T) consiste dei seguenti assiomi:

(A1) Vero
(A2) A -> (B -> A)
(A3) (A -> (B -> C)) -> ((A -> B) -> (A -> C))
(A4) (¬B -> ¬A) -> ((¬a’B -> A) -> B)
(A5) (√x)A(x) -> A(α), dove α è qualsiasi termine libero
che sostituisce x in A(x)
(A6) (√x)(A -> B) -> (A -> (√x)B) dove A non contiene
ricorrenze libere di x
(A7) LA -> A
(A8) L(A -> B) -> (LA -> LB)
(A9) (√x)(LA) -> L((x)A)

S(S4) si ottiene da S(T) aggiungendo

(A10) LA -> LLA

S(S5) si ottiene da S(S4) aggiungendo

(A11) MA -> LMA

Se L è un linguaggio con uguaglianza, allora S(X) contiene anche gli assiomi


per l'uguaglianza di L.

174
(ii) R consiste nelle seguenti regole di inferenza:

(MP) B è una conseguenza diretta di A e A -> B


(GEN) (√x)A è una conseguenza diretta di A
(NEC) LA è una conseguenza diretta di A

Di solito si assume che il linguaggio in considerazione sia fisso, per cui si


denota con T → A il fatto che A è dimostrabile da T nella logica modale del
primo ordine, o anche che A è un teorema nella logica modale del primo
ordine sse → A.
Denotiamo con Th(T) l'operatore di dimostrabilità:

Th(T) = {A: a è una affermazione e T → A}.

Teorema 5.6.12

(i) Se T → A allora T ⇒ A (Solidità)


(ii) Se T ⇒ A allora T → A (Completezza)

Corollario 5.6.13

→ A sse ⇒ A.

Una teoria T è consistente sse esiste una formula A ∈ L tale che non è
dimostrabile in T, T ¬→ A.

Teorema 5.6.14

T è consistente sse T è soddisfacibile.

175
6. PROGRAMMAZIONE LOGICA
6.1 Il ragionamento non-monotonico

Le logiche deduttive tradizionali sono tutte monotoniche: aggiungendo nuovi


assiomi o premesse, tutti i teoremi precedenti rimangono validi, o in altri
termini l'insieme delle conclusioni aumenta monotonicamente con l'aumentare
delle premesse.
Formalmente una logica è monotonica sse la sua relazione di di mostrabilità
→ gode della seguente proprietà per ogni insieme di premesse S ed S':

S contenuto in S' implica {A:S→ A} è contenuto in {A: S'→ A}.

Recentemente, sistemi logici che non possiedono la proprietà di monotonicità


sono stati oggetto di notevole interesse; tali logiche sono state studiate
principalmente in relazione al tipo di ragionamento osservabile nelle situazioni
quotidiane, ragionamento basato, come si dice di solito, sul senso comune.
Un aspetto caratteristico del ragionamento umano è la capacità di districarsi in
situazioni in cui le informazioni a disposizione non sono complete. Nella vita
di tutti i giorni siamo costantemente immersi in situazioni in cui non tutte le
evidenze determinanti per una particolare conclusione sono conosciute. Infatti,
escludendo i casi più banali, esiste sempre una parte più o meno importante che
non fa parte della nostra conoscenza sugli elementi che vengono utilizzati dal
nostro ragionamento. Tuttavia, non siamo paralizzati dalla nostra parziale
ignoranza. Spinti dalla necessità di agire, traiamo conclusioni anche se le
evidenze a nostra disposizione non sono sufficienti a garantire la correttezza
del ragionamento che le deduce. Ovviamente, tali conclusioni sono rischiose e
possono essere smentite alla luce di nuove, più appropriate, informazioni.
Per illustrare questo fatto, supponiamo di avere il seguente problema:
contattare urgentemente Mario; e di avere a disposizione le seguenti
informazioni: di solito Mario il sabato sera frequenta il suo club e oggi è
proprio sabato sera. Sulla base di tale evidenza, ci sono buone possibilità, ma
solo possibilità, che Mario sia al club. Infatti, possiamo immaginare molti
posti differenti in cui egli può essere. Ma non si arriverebbe ad una azione se
non si accettasse di essere guidati da conclusioni che sono solamente
plausibili, ma non certe. Allora piuttosto che sedersi e analizzare tutti i possibili
scenari in cui può trovarsi Mario il comportamento più razionale è assumere
che: Mario si trova al club e cercare di contattarlo.
Supponiamo, prima di andare al club, di incontrare Giorgio, un amico di Mario
che ci dice un fatto inaspettato: Mario ieri ha avuto un incidente in auto.

176
Questo cambia radicalmente la situazione, se poco prima era plusibile che
Mario potesse trovarsi al club, ora alla luce della nuova informazione, questa
circostanza è divenuta altamente improbabile. Andare al club è ora solo una
perdita di tempo, ora è più razionale cercare di contattare Mario in ospedale.
Questo esempio ci porta direttamente al tipo di ragionamento non
monotonico originariamente proposto da Minsky (1975).

Definizione 6.1.1
Con ragionamento non monotonico intendiamo il processo di trarre delle
conclusioni che possono essere smentite alla luce di nuove informazioni.
Un sistema logico si sice non monotonico sse le relazioni di dimostrabilità
violano il principio di monotonicità.

La definizione appena riportata è molto generale; essa considera la non


monotonicità come una proprietà sintattica astratta ma non ci dice nulla sulla
forma delle inferenze non monotoniche.
Torniamo per un momento al ragionamento secondo il senso comune.
A differenza del ragionamento logico formale, basato sul concetto di verità o
falsità di una affermazione, il ragionamento secondo il senso comune si fonda
sul concetto di razionalità. Non possiamo aspettarci che le conclusioni di ogni
giorno siano vere per sempre, questo è semplicemente impossibile; piuttosto
non dobbiamo saltare a conclusioni completamente casuali. Per rendere
minimo il rischio di risultati errati dobbiamo analizzare la conoscenza a nostra
disposizione e basandoci sulla nostra esperienza valutare l'accettabilità o meno
delle conclusioni che possiamo trarre. Anche se molte delle inferenze che
traiamo nella vita reale si dimostrano sbagliate, nondimeno ci sforziamo di
ricavare delle conclusioni che siano razionali. La possibilità di avere una
spiegazione razionale di una certa inferenza è una delle principali richieste
che facciamo prima di accettare qualsiasi conclusione dedotta tramite un
ragionamento basato sul senso comune. Ma la razionalità è un concetto vago e
una definizione precisa di tale nozione che sia soddisfacente è difficile da
ottenere. La nozione di verità in contrasto con la nozione di razionalità gode di
due specifiche proprietà: primo, essa è indipendente dall'agente: agenti
diversi possono avere opinioni differenti su che cosa è razionale in una
determinata situazione. Secondo è indipendente dagli scopi che l'agente si
prefigge: l'accettazione di una proposizione come conclusione razionale
dipende dal fine per cui viene utilizzata.
Per esempio, una informazione superficiale può essere sufficiente per uno
scopo e non per un'altro: "Ho sufficienti informazioni su Antonio per
ipotizzare che sia onesto e gli presto del denaro","Non ho sufficienti
informazioni su Antonio per considerarlo mio socio in affari".

177
Per sottolineare la natura soggettiva delle conclusioni basate sul senso
comune, queste vengono chiamate credenze nella letteratura sulla intelligenza
artificiale.
Talvolta non si comprende bene in che senso conclusioni basate sul senso
comune possano essere considerate credenze; in accordo con il significato di
verità nella logica classica, il termine credenza sottintende che un fatto è
"creduto" essere vero. Naturalmente, un tale fatto può in seguito dimostrarsi
falso, ma raramente, e comunque rimaniamo sempre molto sorpresi quando
una nostra credenza si dimostra essere errata. Questo aspetto non viene
solitamente evidenziato quando si parla di ragionamento secondo il senso
comune, in pratica, spesso accettiamo conclusioni la cui verità è a priori
problematica. Un esempio tipico è il seguente: supponiamo che Roberto sia
accusato di aver commesso un crimine, nel caso in cui non vi siano sufficienti
prove contro di lui, l'unica posizione accettabile è quella di ritenerlo innocente,
eppure i fatti sono generalmente contro di lui e il fatto che egli sia colpevole è
effettivamente probabile.
Cerchiamo ora di impostare due problemi fondamentali:

(1) Che cosa sono in pratica le conclusioni tratte col ragionamento basato sul
senso comune (credenze) ?
(2) Che tecnica possiamo utilizzare per ricavarle ?

Il primo dei punti precedenti è analizzato in dettaglio da Perlis (1987), in


particolare egli fornisce la seguente definizione che comprende una classe
molto vasta di credenze.

Definizione 6.1.2
Una proposizione p è creduta da un agente g, cioè g considera p come una
conclusione razionale, se g è disposto ad usare p come se essa fosse vera.

Vediamo un esempio:
Supponiamo che io stia pensando di fare un viaggio in automobile.
Per cominciare, devo decidere dove si trova la mia auto in questo momento.
In assenza di evidenze migliori, è estremamente probabile che essa si trovi nel
posto in cui l'ho parcheggiata l'ultima volta. In accordo con la definizione di
Perlis, questa affermazione diviene una credenza se sono disposto ad agire
come se fosse vera. Cioè, se sono disposto ad ignorare tutte le circostanze in
cui tale affermazione potrebbe essere falsa e basare la mia azione
sull'assunzione che essa è certamente vera, questo anche se non posso essere
sicuro che l'automobile sia effettivamente nel posto aspettato, in ogni caso
"credo" che sia vera.

178
D'altra parte, anche se sono quasi certo che l'affermazione è vera, potrebbe
essere ragionevole, nello stesso tempo, cercare di aumentare le possibilità a
disposizione; controllando per esempio se un autobus, che passa da quelle
parti, può sostituire l'automobile al fine di effettuare il viaggio che mi
proponevo di fare, in tal caso l'automobile non mi servirebbe più , pertanto
l'affermazione precedente non la considerei una credenza, ma piuttosto a
qualcosa di molto simile ad una contingenza.
La definizione di Perlis non è l'unica possibile, e nemmeno comprende tutti i
tipi di inferenza del ragionamento secondo il senso comune, essa è comunque
certamente degna di attenzione.
Veniamo ora al problema di come possono essere ricavate le credenze; nel
contesto presente, una osservazione fondamentale consiste nel fatto che le
conclusioni umane sono spesso basate sia sulla presenza che sulla assenza di
informazione. Per illustrare come anche la mancanza di determinate
informazioni si un aspetto determinante nel ragionamento secondo il senso
comune riconsideriamo l'esempio precedente:

(1) Oggi è sabato sera


(2) Il sabato sera di solito Mario si trova al club

chiaramente in virtù delle affermazioni precedenti (1) e (2) vi sono buone


ragioni per trarre

(A) Mario si trova al club.

Sembrerebbe che la conclusione sia basata sulla regola

(R) Dalla (1) si deduce (A)

Questo, comunque non è vero in generale, potrei accettare la regola (R) e nello
stesso tempo rifutarne la conclusione alla luce di una nuova informazione; per
esempio che Mario ha avuto un incidente ieri. Il tipo di ragionamento
coinvolto in questo caso è estremamente più complesso. Per crearne un
modello che funzioni correttamente occorre restringere le possibilità di
applicazione della (R). La regola deve essere bloccata in ogni situazione in
cui il suo uso diviene inacettabile. In altri termini, dati (1) siamo preparati a
concludere (A) a meno che non vi sia qualche evidenza che rende tale
inferenza irrazionale.
Ciò significa che un tale tipo di ragionamento non si basa solo su (R), ma
piuttosto sulla seguente regola di dipendenza dall'ignoranza:

179
(R') Dalla (1), in assenza di evidenze contrarie, si deduce (A).

Esiste una stretta connessione tra la dipendenza dall'ignoranza e il


ragionamento non monotonico basato sul senso comune. Da una parte,
poichè nuove evidenze diminuiscono la nostra ignoranza, ogni credenza
dipendente dall'ignoranza è soggetta ad essere smentita da nuove
informazioni. D'altra parte, poichè ogni conclusione indipendente
dall'ignoranza continua a valere quando la nostra conoscenza aumenta, ogni
inferenza non monotonica deve essere necessariamente riferita all'assenza di
qualche informazione.

180
6.2 Le clausole di Horn

La logica a clausole di Horn è un sottoinsieme della logica a clausole.


Nel seguito si indicherà l'implicazione logica B -> A con:

A <- B (B implica A).

Ricordando che ¬B v A equivale a A <- B la clausola:


A1 v ... v An v ¬B1 v ... v Bm può essere scritta come:
(A1 v ... v An) <- (B1 & ... & Bm)
che per brevità di notazione scriveremo A1,...,An <- B1,...,Bm dove le "," che
separano gli atomi Ai sono da interpretare come disgiunzioni mentre quelli che
separano gli atomi Bj sono congiunzioni.
Una clausola definita è una clausola che contiene un solo atomo positivo:
A <- B1,...,Bm o anche A <-
Una clausola negativa o clausola Goal è una clausola che contiene solo letterali
negativi: <- B1,...,Bm.
Gli atomi B1,...,Bm sono chiamati sottogoal.

Una clausola di Horn è una clausola definita oppure una clausola goal.

Esempi:
A <- B1,...,Bm (regola)
A <- (asserzione)
<- B1,...,Bm (goal)
<- (clausola vuota)

In una regola, la parte sinistra e detta conseguente o testa della regola, la parte
destra e detta antecedente o corpo della regola.
Le clausole di Horn sono un sottinsieme della logica a clausole poichè non
tutto quello che è esprimibile nella logica a clausole è ancora esprimibile in
clausole di Horn.

181
6.3 Risoluzione SLD

In programmazione logica un programma è un insieme di clausole definite sul


quale si effettuano le interrogazioni che corrispondono a determinare se una
formula è un teorema di quella teoria avente per assiomi le clausole utilizzate
dal programma.
Quello che si ottiene è la sostituzione di risposta per le variabili della formula
da dimostrare, in altri termini si ottengono i legami delle variabili che rendono
vera la formula.
La computazione corrisponde alla dimostrazione di una formula da parte del
programma logico, applicando il principio di risoluzione. La strategia di
risoluzione applicata solitamente è la strategia SLD Risoluzione lineare per
clausole Definite con funzione di Selezione ed è un caso particolare della
risoluzione lineare.
La strategia SLD è completa per le clausole di Horn.
Solitamente un algoritmo di risoluzione opera per contraddizione e anche la
strategia SLD procede negando la formula F da dimostrare. Poichè
solitamente una formula F è una congiunzione di formule atomiche
quantificate esistenzialmente, la negazione produrrà una disgiunzione di
formule atomiche negate quantificata universalmente, in altri termini una
clausola di Horn goal.
Dato un programma logico P ed una clausola goal G0, la risoluzione SLD cerca
di derivare la contraddizione logica da P ∪ {G0}.
Ad ogni passo di risoluzione si ricava il nuovo risolvente G(i+1) se esiste
dalla clausola Gi, cioè dal risolvente ottenuto al passo precedente e da una
variante Ci di una clausola dell'insieme P. Una variante per una clausola C è la
clausola C' ottenuta da C rinominando le sue variabili.
La risoluzione SLD seleziona un atomo Am di Gi secondo un particolare
criterio e lo unifica, se possibile, con la testa della clausola Ci attraverso la
sostituzione più generale (mgu - most general unification) Φi.
In particolare se si ha:

<- A1,...,Am,...,Ak (Gi)


A <- B1,...,Bq (Ci ∈ P)

tali che AmΦi = AΦi allora la risoluzione SLD deriva:

<- [A1,...,Am-1,B1,...,Bq,Am+1,...,Ak]Φi (Gi+1)

Notiamo che questo è semplicemente un altro modo per descrivere il principio


di risoluzione. L'unica differenza consiste nel fatto che si è adottata la
182
notazione "<-" (implicazione) al posto della notazione che utilizza solo i
connettivi di disgiunzione v e negazione ¬.
La strategia applicata è quella di risoluzione lineare, in quanto ogni nuovo
risolvente, se esiste, si ottiene da quello precedente e da una variante della
clausola del programma.

183
6.4 La semantica di un linguaggio di programmazione

Con semantica si intende l'assegnazione di un significato alle frasi del


linguaggio utilizzato, nel caso della logica corrisponde a determinare una
interpretazione.
Esistono alcune modalità di definizione della semantica per un linguaggio di
programmazione.

(i) Semantica operazionale: definisce le relazioni di ingresso e di uscita


calcolate dal programma in termini delle operazioni elementari prodotte
dall'esecuzione del programma su una particolare macchina astratta: una
macchina che ha uno stato ed un'insieme di istruzioni (operazioni) elementari
che specificano le trasformazioni di stato.
La semantica operazionale di un linguaggio di programmazione si ottiene
traslando ogni frase del linguaggio in istruzioni della macchina astratta.
La semantica di un programma, una volta traslato nelle istruzioni elementari,
consiste nella sequenza di configurazioni interne della macchina determinate
dall'esecuzione del programma traslato. La caratteristica essenziale di tale
approccio è la dipendenza dalla macchina astratta adottata.

(ii) semantica denotazionale: associa direttamente ad un programma il suo


significato (detto denotazione). Tale significato è dato in termini di entità
matematiche (ad esempio numeri, insiemi, funzioni). Il significato del
programma si ottiene attraverso una funzione di valutazione eventualmente
ricorsiva, ottenuta attribuendo ad ogni costrutto sintattico una specifica
denotazione. La semantica denotazionale è più astratta di quella operazionale
in quanto è assolutamente indipendente da qualunque macchina che realizza il
linguaggio.

(iii) Semantica assiomatica: permette di definire le proprietà dei costrutti del


linguaggio attrverso assiomi e regole di inferenza della logica simbolica. Una
proprietà del programma può essere dedotta utilizzando gli assiomi e le regole
di inferenza e costruendo una dimostrazione per essa. La semantica
assiomatica è più astratta delle precedenti, anche se le proprietà che essa è in
grado di dimostrare per un programma possono non essere sufficienti per
determinarne completamente il significato.

184
6.5 Base di conoscenza basata sulla logica dei predicati.

La costruzione di una base di conoscenza ha inizio con l'individuazione delle


"informazioni" da codificare e memorizzare. Un sistema di memorizzazione
elabora l'insieme delle "informazioni" da memorizzare e produce un insieme
di dati registrati che sono il risultato del processo di memorizzazione.
Le informazioni vengono espresse in un linguaggio.
Nel caso del linguaggio logico monadico del primo ordine in cui vi sono un
certo numero di predicati a un posto: P1(x),P2(x),... ,Pk(x) nomi ed altri
termini singolari liberi : a1,a2, ... , b1,b2, ... connettivi, quantificatori insieme
alle variabili ad essi vincolate Esiste x, per ogni x ; enunciati atomici
Pi(aj) sta per aj gode della proprietà Pi; è possibile rappresentare gli stati come
Q-predicati del tipo:

(+)P1(x)&(+)P2(x)&...&(+)Pk(x) ==> Sj(x)

dove & sta per congiunzione e (+) sta per negazione o niente e Sj(x) è lo
stato rappresentato.

Supponendo di voler descrivere o rappresentare tramite un linguaggio (mondi


possibili) un certo sottinsieme di "oggetti" (mondo reale) ci troviamo a dover
definire:

1. La correlazione tra oggetto e rappresentazione dell'oggetto


nel linguaggio (semantica).

2. Il processo di "sperimentazione" dell'esistenza dell'oggetto


corrispondente ad una frase del linguaggio.
(attribuzione dei valori di verità).

3. La logica valida nel linguaggio


(I paradigmi deduttivi o processi di elaborazione).

I dati sono quanto rimane delle informazioni originarie rispetto al sistema di


memorizzazione e ai messaggi in esso trasmessi.
La rappresentazione di una realtà di interesse viene ricostruita sulla base delle
registrazioni fisiche che tale realtà ha prodotto sul sistema di memorizzazione.
Le rappresentazioni, le parole, i dati, denotano cose, oggetti, eventi ma da
questi vanno accuratamente tenute distinte.

185
L'organizzazione delle parole e la relativa sintassi non rispecchia fedelmente,
nel linguaggio, l'organizzazione delle cose e degli oggetti con le mutue
relazioni, ma semplicemente le esprime, le rappresenta.
Gli oggetti possono essere organizzati in gruppi di natura empirica, categorica,
logica.
Gruppi empirici sono quelli che presentano contiguità spaziale o temporale.
Gruppi categorici sono insiemi di oggetti elaborati sulla base di una
classificazione. Questa è fondata su una o più proprietà comuni agli oggetti
raggruppati.
Gruppi logici sono insiemi di oggetti che hanno precise relazioni come ad
esempio la relazione di inclusione spaziale: il magazzino è nell'edificio e
l'edificio è nella città, allora il magazzino è nella città.
Esistono corrispondenze e connessioni specifiche tra le parole e gli oggetti, tra
gruppi di parole e gruppi di oggetti. Tali relazioni conducono a strutture che
riconducono le parole agli oggetti e che sono la vera base del linguaggio.

Consideriamo la rappresentazione di un certo numero di oggetti con


altrettanti vettori binari in cui ad ogni posizione corrisponde una proprietà che
può essere verificata oppure no.
Allora ogni posizione, o se si vuole ogni proprietà, individua una classe
dell'insieme di oggetti.
Si realizza pertanto il processo di classificazione: una proprietà o una
combinazione di proprietà individuano una classe di oggetti.
Il processo di generalizzazione si realizza aggiungendo al vettore una proprietà
che sia combinazione di altre proprietà: per esempio se abbiamo la classe
impiegato e la classe operaio possiamo aggiungere la classe dipendente come
quell'insieme di oggetti in cui sia presente o la proprietà impiegato o la
proprietà operaio.
Il processo di aggregazione si ottiene aggiungendo al vettore una proprietà che
sia denotante l'aggregato e che si attivi rispettivamente agli oggetti aggregati.
Il processo di associazione si ottiene aggiungendo al vettore le proprietà
denotanti le nuove classi che corrispondono agli oggetti associati.
Esiste quindi una possibilità notevolmente variabile nella manipolazione degli
insiemi di proprietà in dipendenza del significato interpretativo che ci
interessa, anche se è possibile ricondurre tutto ad uno stesso schema:
identificazione o inserimento di proprietà.

La soluzione del problema di rappresentare i dati in maniera del tutto generale


è ancora lontano dall'essere trovata.

186
6.6 Un filtro prolog

Il presente paragrafo intende prospettare una interfaccia tra la base di


conoscenza in ambiente Data Base relazionale e il motore inferenziale in
linguaggio PROLOG: un modulo filtro di ottimizzazione ed assemblaggio dei
programmi in PROLOG sulla base della specificità del goal.
Per manipolare una base di conoscenza molto grande è necessario utilizzare
tecniche di memorizzazione tipiche dei DBMS e ciò non si sposa facilmente
con la struttura dei programmi PROLOG, interponendo un filtro assemblatore
del programma specifico tra un determinato goal e il motore inferenziale si
ottiene verosimilmente un'ampliamento delle possibilità di soluzione e
maggiori prestazioni.

Vediamo ora una breve introduzione al prolog.


Il concetto di base della programmazione logica è di descrivere la conoscenza
generale che si ha su un determinato problema, piuttosto che dettagliare uno
specifico procedimento di soluzione. Si tratta di trovare la rappresentazione
più adeguata alla specifica area applicativa ed esprimerla in un linguaggio
logico. Un problema o un'applicazione è caratterizzato dall'esistenza di
oggetti discreti, o individui, da relazioni tra essi, e da proposizioni che
esprimono proprietà logiche delle relazioni. Per rappresentare simbolicamente
la conoscenza relativa ad un problema, occorre fare uso di un linguaggio
formale, assegnando innanzi tutto dei nomi sia agli oggetti che alle relazioni.
Nel linguaggio naturale sembra che si possa fare a meno di questo passo di
attribuzione del nome in moltissimi casi di conversazione, nel linguaggio
formale ciò non è possibile. Questo fatto è estremamente curioso e merita una
approfondita riflessione, infatti di solito manipoliamo verbalmente gli oggetti
tramite le classi a cui appartengono: nel linguaggio naturale non ci sono
oggetti ma solo classi. Nel linguaggio formale tipo il prolog abbiamo a che fare
con oggetti e relazioni. Un oggetto può essere concreto, ad esempio un
minerale, un vegetale, un animale, una persona, una cosa; oppure astratto, ad
esempio il numero 2, il concetto di giustizia, la chimera, l'ascetismo.
Nell'assegnare un nome ad un oggetto, è indifferente che esso sia concreto o
astratto. La scelta del nome è arbitraria, entro determinate convenzioni, ma
naturalmente è opportuno che il nome sia espressivo, tale cioè da favorire
l'associazione mnemonica all'oggetto da esso denotato. Nomi semplici di
oggetti sono detti costanti. Essi denotano oggetti elementari definiti; volendo
stabilire un'analogia con la lingua naturale, corrispondono a nomi comuni e
nomi propri.
In PROLOG, le costanti sono di due tipi: i numeri e gli atomi.

187
Un oggetto può essere semplice oppure composto, ossia formato da altri oggetti
componenti. oggetti composti sono denotati da nomi composti detti strutture.
In PROLOG le strutture sono costituite da un primo nome, detto funtore,
seguito tra parentesi da una sequenza di uno o più altri nomi, detti componenti
o argomenti.

Esempio:

quadro(tintoretto,olio(Titolo,1572))

È possibile dare un nome, oltre che ad oggetti particolari, anche ad oggetti


specifici ma da determinare, cioè non ancora identificati, in modo analogo
all'uso del pronome nel linguaggio naturale. Oggetti non specificati sono
rappresentati da nomi di variabili; anche questi ultimi sono arbitrari, ed in
PROLOG sono caratterizzati dall'iniziare con una lettera maiuscola, o con
"_". Mentre costanti distinte denotano sempre oggetti diversi, questo non
vale per le variabili, in quanto variabili distinte potranno venire a
rappresentare lo stesso oggetto.
In generale i nomi degli oggetti sono detti termini. I termini non contenenti
variabili sono detti termini chiusi.

Riassumendo sono quindi termini:

a. le costanti;
b. le variabili;
c. le strutture.

Le strutture sono espressioni della forma

f(t1,t2, ... ,tn)

dove f è un funtore n-ario e t1,t2,...,tn sono termini.


La definizione dei termini è ricorsiva, ossia ciò che si sta definendo, un
termine, compare (ricorre) nella definizione stessa. Una definizione ricorsiva
consente di costruire termini arbitrariamente complessi. Il PROLOG mette a
disposizione il termine, utilizzabile ricorsivamente, come unico strumento di
rappresentazione di un oggetto, di applicabilità generale. Il tipo di oggetto, in
base alle convenzioni di scrittura, è rappresentato dalla forma sintattica del
termine che lo denota, ed è quindi riconosciuto senza necessità di specificarlo
esplicitamente: non occorrono, in altre parole, dichiarazioni di tipo. L'insieme
degli oggetti denotati da tutti i termini usati in una data rappresentazione è

188
detto l'universo di discorso, ossia costituisce tutto ciò di cui si parla in quella
rappresentazione.
Una relazione è l'attribuzione di una qualità comune a più oggetti.
Naturalmente una relazione può valere tra più di un gruppo di oggetti,
viceversa un singolo gruppo di oggetti può soddisfare più di una relazione.
In generale una relazione è un insieme di n-ple, e correla gli oggetti nominati
in ogni n-pla. In PROLOG una relazione è denotata da un nome, detto
predicato o simbolo predicativo seguito tra parentesi dalla n-pla dei nomi
degli oggetti correlati separati da virgola.
Riassumendo i predicati sono espressioni di forma

p(t1,t2, ... ,tn)

dove p è un simbolo predicativo e t1, t2, ... ,tn sono termini.

Sussiste quindi una completa uguaglianza formale tra funtori e predicati; un


predicato è semplicemente un funtore che compare come funtore principale in
un particolare contesto.
I termini denotano oggetti e i predicati denotano relazioni tra gli oggetti
denotati da termini.
Le proprietà logiche delle relazioni sono descritte da proposizioni (sentences).
I predicati stessi singolarmente considerati possono costituire proposizioni
atomiche.
Proposizioni non atomiche sono costituite da più predicati connessi da
operatori o connettivi logici, denotati con simboli speciali.

Il connettivo ":-" è detto condizionale o implicazione.


Il connettivo "," denota una congiunzione.

Una proposizione del tipo:

A :- B1, B2, ... , Bn.

dove A, B1, B2, ... , Bn sono predicati, è detta una clausola di Horn: la
conclusione A, che è costituita da un solo predicato è detta testa della clausola;
la congiunzione delle condizioni B1, B2, ... , Bn è detta corpo o coda della
clausola.

Si può osservare che, strutturalmente, anche le clausole possono essere viste


come termini. Infatti, una clausola unitaria ha già la forma di un termine, una
clausola non unitaria può essere vista come un termine che ha come funtore il

189
connettivo ":-", come primo argomento la testa della clausola e come
argomenti successivi le n condizioni del corpo della clausola; come segue:

:- (A, B1, B2, ... , Bn).

Questa considerazione evidenzia l'uniformità del linguaggio, ed è alla base


della possibilità di trattare clausole, e quindi più in generale programmi, come
dati. Un programma PROLOG è un insieme finito di clausole, unitarie e
non, scritte in sequenza. Tale insieme di clausole è detto anche la base di dati
del programma. Essa rappresenta l'insieme delle conoscenze espresse (come
fatti e come regole) sul problema.
Riassumendo il linguaggio PROLOG con cui descrivere un problema è
costituito da:

a) il vocabolario, l'insieme di simboli, di costanti, variabili,


funzioni e predicati; questi simboli, ed il significato ad essi
associato, sono scelti dall'utente del linguaggio, in funzione
del problema considerato;

b) i connettivi logici ed i simboli ausiliari, le parentesi, il


cui significato è prestabilito;

c) le proposizioni costruite con i simboli precedenti, secondo le


regole PROLOG considerate.

Definizione della base di dati.


Consideriamo ora il problema più generale costituito da una base di conoscenza
relativamente vasta.
Una tale base di conoscenza comprenderà fatti e regole in una forma
articolata.
Le possibili richieste espresse da un utente in relazione ad una tale base di
conoscenza coprono una ampia casistica di combinazioni. In particolare ogni
GOAL coinvolgerà un certo numero di regole e un certo numero di fatti: un
(piccolo) sottinsieme della base di conoscenza complessivamente considerata.
Poniamoci nel caso in cui la base di conoscenza comprenda una grande
quantità di dati e poniamoci il problema di organizzare tali dati in una
struttura di base di dati con tecniche tipiche dei DBMS.
I dati che dovremo memorizzare, in una rappresentazione strettamente formale
per quanto detto più sopra, saranno della forma:

:- (T1,T2, ... ,Tn).

190
dove ciascun termine sarà nella forma:

f(t1,t2, ... ,tk).

e ciascun termine avrà un'entrata corrispondente nel vocabolario dei termini:


un nome.

Supponiamo di frapporre fra l'utente e il motore inferenziale un modulo di


interfaccia che richiesto in input il GOAL specifico acceda alla base di
conoscenza, nel nostro caso una base di dati, e, sulla base di algoritmi di
ricerca ottimizzati, estragga i fatti e le regole assemblandoli, seguendo alcuni
criteri di sequenzializzazione, in un programma PROLOG da sottoporre al
motore inferenziale. In tal caso non sarebbe necessario avere in memoria
tutta la base di conoscenza, ma solo quella parte necessaria al
soddisfacimento del GOAL.

Per progettare una interfaccia di tal genere occorre disegnare una base di dati
che consenta la gestione e la memorizzazione in un formato efficiente dei fatti
e delle regole della base di conoscenza.
Nel seguito viene descritto un prototipo di una tale base di dati.
I fatti e le regole verrebbero mantenute aggiornate tramite programmi specifici
di aggiornamento della base di dati, in particolare un editor in grado di trattare
ciascun fatto e ciascuna regola come una scatola nera a cui associare gli
attributi significativi per una eventuale ricerca ed estrazione.
Il criterio di estrazione dei fatti e delle regole pertinenti ad un determinato
GOAL si basa sul concetto di propagazione dei legami.

Ogni GOAL può essere espresso nella forma:

:- (G1,G2, ... ,Gl).

dove ogni termine è ancora nella forma:

f(g1,g2, ... ,gm).

Se escludiamo i termini che corrispondono alle variabili, considerando solo le


costanti e le strutture, possiamo far corrispondere al GOAL un elenco di
termini atomici, in altre parole, un elenco di nomi.
Se estraiamo, ricorsivamente, dalla base di conoscenza tutti i fatti e tutte le
regole che presentano una coincidenza con tali nomi otterremo tutti i fatti e
tutte le regole che sono coinvolte dal possibile soddifacimento del GOAL.

191
Assemblando questo risultato con criteri di sequenza basati sulla priorità di
applicazione delle regole otteniamo il programma PROLOG che può essere
sottoposto al motore inferenziale per la ricerca della risposta.
Il problema è quindi come disegnare il data base per ottimizzare la ricerca dei
fatti e delle regole che fanno riferimento (contengono) un determinato nome.

Un possibile data base di questo tipo è il seguente.


Tutti i nomi sono memorizzati in un vocabolario di termini.
Sono memorizzati tutti i legami tra i termini a due a due.
Le regole e i fatti sono memorizzati in BOX a cui è associato un nome
(oggetti).
I nomi sono raggruppati in classi.

In particolare le tabelle del data base principale contengono le seguenti


colonne:

Tabella dei termini : Nome del termine,


Numero di legami,
Classe di appartenenza,
Descrizione del significato.

Tabella dei legami : Primo termine,


Termine di legame,
Secondo termine.

Tabella delle classi : Nome della classe,


Priorità della classe,
Numero termini nella classe.

Tabella degli oggetti : Termine,


Priorità dell'oggetto,
Box.

Per quanto riguarda gli oggetti nel Box vengono scritte le regole, i fatti e
quanto è utile per l'assemblaggio del programma PROLOG.

192
Le tipologie di dati, ciascuno dei quali richiede un criterio di ricerca
ottimizzato diverso, sono:

Le classi
I domini
I contesti
Le regole
I fatti

Queste tipologie di dati consentono un raggruppamento che migliora i tempi di


accesso ai dati medesimi è utile tenere presente anche altre valenze semantiche
attribuibili ai nomi:

Oggetto
Attributo
Verbo
Operatore
Aggregato
Gruppo
Parte_di
Composto_da
Registrazione

Nella tabella dei termini compare il numero dei legami attivi relativamente ad
un certo termine, questo dato è estremamente utile per selezionare nelle
ricerche congiuntive quale termine estrarre per primo.
La classe di appartenenza è utile per indirizzare la ricerca solo sui termini della
classe nel caso in cui tale classe sia nota.

La tabella dei legami è composta da tre elementi ed è accessibile sia dal


primo condizionatamente al secondo sia dal terzo condizionatamente al
secondo.
Il primo termine è legato al terzo termine nella modalità specificata dal
secondo termine.
Sulla base di tale tabella è possibile ricostruire dinamicamente tutto l'albero dei
legami corrispondente ad un certo insieme di termini iniziali.

La tabella delle classi serve per accorciare i percorsi di ricerca quando sia
specificata la classe nell'ambito in cui il GOAL deve essere soddisfatto.
Per esempio nel caso in cui il contesto piloti l'ambito della ricerca delle
soluzioni.

193
La tabella degli oggetti contiene esplicitamente i fatti e le regole da assemblare
nel programma PROLOG da passare al motore inferenziale.

SCHEMA GENERALE DEL FILTRO PROLOG

----------------
---------- | Utente |
| EDITOR | | |--------
---------- | GOAL | |
| ---------------- ------------
| | | RISPOSTA |
-------------- | ------------
| DATA BASE | ----------------- |
| Regole |------------> | INTERFACCIA | |
| Fatti | | FILTRO PROLOG | |
| Termini | ----------------- |
| BASE DI | | |
| CONOSCENZA | ----------------- |
-------------- | PROGRAMMA | |
| PROLOG | |
----------------- |
| |
----------------- |
| MOTORE |-------
| INFERENZIALE |
-----------------

(fig 6.1)

Esempio di applicazione ad un caso semplice.

Consideriamo la seguente base di conoscenza composta da regole e fatti:

nonno(X,Y) :- genitore(X,Z), genitore(Z,Y).


genitore(X,Y) :- madre(X,Y).
genitore(X,Y) :- padre(X,Y).

padre(ugo,bruno).
padre(bruno,valeria).
padre(carlo,susanna).
padre(dario,fulvio).
padre(giorgio,andrea).

194
padre(enea,marcella).
madre(lucia,bruno).
madre(anna,valeria).
madre(valeria,susanna).
madre(susanna,fulvio).
madre(cristina,andrea).
madre(rosa,marcella).

consideriamo il seguente goal

?- nonno(N,valeria). /* chi è nonno di valeria? */

La ricerca prende inizio dai nomi: nonno, valeria.


Il nome nonno è legato a genitore che a sua volta è legato a madre e padre.
L'elenco delle parole diviene pertanto:
nonno, genitore, padre, madre, valeria.
Il nome valeria è legata a padre, bruno, madre, anna, susanna.
Bruno è legato a padre, ugo, madre, lucia, valeria.
Anna è legata a madre, valeria.
Susanna è legata a madre, valeria, padre, carlo, fulvio.
Ugo è legato a padre, bruno.
Lucia è legata a madre, bruno.
Carlo è legato a padre, susanna.
Fulvio è legato a padre dario.

Riassumendo l'elenco di parole diviene:


nonno, genitore, padre, madre, valeria, bruno, anna, susanna, ugo, lucia, carlo,
fulvio.
Di cui alcune sono congiunte, per esempio valeria, padre o valeria, madre.
Ciò significa che per quanto riguarda i fatti, e cioè la relazione padre o la
relazione madre, è possibile selezionare solo quei fatti che presentano
congiuntamente almeno un nome tra quelli selezionati, per esempio la
clausola:
padre(bruno,valeria) viene selezionata, mentre la clausola
padre(giorgio,andrea) non viene selezionata.

Il programma selezionato potrebbe avere la forma:

nonno(X,Y) :- genitore(X,Z), genitore(Z,Y).


genitore(X,Y) :- madre(X,Y).
genitore(X,Y) :- padre(X,Y).

195
padre(ugo,bruno).
padre(bruno,valeria).
padre(carlo,susanna).
padre(dario,fulvio).
madre(lucia,bruno).
madre(anna,valeria).
madre(valeria,susanna).
madre(susanna,fulvio).

In questo esempio non sono state selezionate le clausole:

padre(giorgio,andrea).
padre(enea,marcella).
madre(cristina,andrea).
madre(rosa,marcella).

Nel caso di una grande base di conoscenza il risparmio è certamente


significativo poichè solitamente un goal in tale ambito coinvolge un numero
relativamente ristretto di clausole.

Ottimizzare gli algoritmi di ricerca dei fatti e delle regole memorizzate nella
base di dati non è certamente semplice, tuttavia lo schema abozzato può
promettere un interessante sviluppo per ottenere filtri PROLOG che siano
efficienti e che consentano di gestire una ampia base di conoscenza
aggiornabile ed implementabile dinamicamente. Ottenere un software in
grado di manipolare la base di conoscenza con tecniche tipiche dei DBMS è
senza dubbio un aspetto estremamente interessante per lo sviluppo dei sistemi
di intelligenza artificiale.

196
7. TRASFORMAZIONE DELLE SIMIGLIANZE
7.1 Descrizione di oggetti come insieme di attributi

7.1.1 La funzione di appartenenza ad insiemi sfumati

Nella teoria degli insiemi sfumati, la valutazione della funzione caratteristica


di appartenenza all'insieme ΦA(x) che ci dice quando un oggetto di un
insieme X appartiene ad un sottoinsieme A di X stesso è un punto da
considerare con molta attenzione. Un modo per farlo consiste nell'analizzare
le proprietà che caratterizzano sia x che A. In particolare, ogni oggetto x di un
insieme X può essere caratterizzato tramite delle proprietà, cioè delle l-tuple di
valori logici che un finito numero l di dettagli hanno relativamente a x.
Similmente, ogni sottoinsieme A di X è caratterizzato dagli oggetti che
include. Tuttavia, non necessariamente tutti i dettagli di cui sopra partecipano
nella determinazione dell'inclusione di un x in A. Vale a dire, che alcuni di
loro possono risultare irrilevanti ai fini dell'inclusione. Ne consegue che
ciascun x di X contribuisce ad una particolare estensione per la formazione
del sottoinsieme A, corrispondentemente alla quantità di dettagli che sono
rilevanti in esso rispetto allo stesso insieme. Allora, il valore di ΦA(x) può
essere espresso come una funzione di una misura di tale contributo. Sulla base
di tale fondamentale ipotesi possiamo studiare un metodo di valutazione
rigorosa di ΦA(x). Un primo passo consiste nel determinare come evitare di
considerare i dettagli irrilevanti tra quelli che formano ciascun x incluso in A.
È possibile costruire una struttura che da un insieme di proprietà con cui
possono essere caratterizzati un certo numero di oggetti, determina
l'introduzione nell'insieme stesso di un ordine semantico. Quest'ultimo si basa
sull'implicazione che sussiste tra due proprietà in conseguenza del loro
significato. Vale a dire, quando i valori logici dei dettagli formanti una delle
due proprietà sono gli stessi, eccetto quei dettagli che, nelle proprietà
implicate, sono irrilevanti. La struttura ottenuta è quella con cui una misura li
associerà in seguito.
Il concetto di proposizione che implica semanticamente un'altra segue dalla
distinzione fatta da R. Carnap, tra C-implicazione, che è l'implicazione
formale, e la L-implicazione: che corrisponde all'implicazione stretta di
Lewis e Moore. Quest'ultima consiste in relazioni binarie che coinvolgono il
significato che è sottinteso da entrambi gli elementi - proposizioni -:
l'antecedente e il conseguente. In accordo con tale implicazione, date due
proposizioni A e B, l'affermazione condizionale "A implica B" è vera quando la
verità di A implica quella di B.

197
Come esempio, consideriamo le seguenti proposizioni:
(A) x è un intero negativo tale che x < n"
(B) x è un intero tale che x < n"
In accordo con B il segno di x è un dettaglio irrilevante, allora per ogni x per
cui A è o verificata o assunta per vera, così lo è anche B, senza doverlo
accertare.
Essendo la descritta relazione tra le proposizioni A e B relativa al loro
significato, essa è chiamata implicazione semantica.

198
7.1.2 Rappresentazione tramite proprietà

I dettagli menzionati, i cui valori caratterizzano gli oggetti x sono


singolarmente denotati da D1,...,Dh,...Dl e possono avere valore logico o 0 o
1, che rispettivamente denotano o la presenza oppure no di ciascun Dh
nell'oggetto x. Allora a ciascun x corrisponde un l-tupla di valori che
rappresenta una proprietà elementare. Tutte le possibili proprietà elementari
si ottengono dalle disposizioni con ripetizione di l valori logici. Denotando
con Pα le proprietà elementari e con A l'insieme che esse formano, la
cardinalità |A| = 2 exp(l). Finalmente dato un sottoinsieme S di A, se le
proprietà pα che lo formano sono equivalenti a quelle che caratterizzano un
oggetto x, per uno specifico scopo, cioè il fatto che un oggetto x possiede tali
pα è sufficiente a stabilire che x possiede una caratteristica specifica,
allora S si dice proprietà composta e la denotiamo con C.
Riassumendo:
D = {D1...Dh...Dl} è l'insieme finito di dettagli
Pα = {d1α...dhα...dlα} è l'α-esima proprietà elementare dove
dhα denota i valori logici che dettagli differenti assumono in
essa e per ogni h,α dhα è un elemento di {0,1}
A = {pα:α=1,2,...,m;m=2 exp(l)} è l'insieme delle proprietà
elementari
C = {pα:α=1,...,q} è un sottoinsieme di A che include le pro-
prietà elementari che sono equivalenti l'una all'altra, che è
una proprietà composta.
Indichiamo con δ(α,β) l'insieme di tutti gli indici h per cui due proprietà
elementari date pα e pβ differiscono. Se queste sono incluse nello stessa
proprietà composta C e sono tali che δ(α,β)={h}, diremo che sono due
proprietà adiacenti: denoteremo questo fatto con α|h|β. Più formalmente,
data una coppia pα, pβ ∈ C tali che esiste un solo h per cui dhα è diverso
da dhβ allora scriveremo α|h|β. Se due proprietà elementari sono tali che
α|h|β assumeremo che l'h-esimo dettaglio è irrilevante in pα e pβ. Allora,
possiamo concepire una terza proprietà elementare pτ, isosignificante alle
precedenti rispetto a C.
Una tale pτ può essere composta da tutte i dk di pα e pβ che coincidono ad
eccezione di dh che può essere denotato da "*" un valore che non è nè 1 nè 0.
La proprietà così concepita pτ rappresenta sinteticamente entrambe le
proprietà pα e pβ.

199
Il valore di ogni dettaglio dh appartiene pertanto all' insieme {0,1,*} e
l'insieme delle possibili proprietà elemetari diviene
P = {pα:α=1,2,...,n;n=3 exp(l)}.

Esempio:

Per mostrare i concetti sopra esposti, supponiamo di avere un insieme di tre


dettagli D = {D1,D2,D3}. Il numero delle l-tuple che possono essere generate
da D sono:

D1 D2 D3
------------------------
p1 = 0 0 0
p2 = 0 0 1
p3 = 0 1 0
p4 = 0 1 1
p5 = 1 0 0
p6 = 1 0 1
p7 = 1 1 0
p8 = 1 1 1

Queste sono le proprietà elementari e costituiscono A.


Consideriamo due possibili proprietà composte di A, una C1 consistente nel
possedere o p1 o p3 o p6; C1 = {p1,p3,p6}, l'altra consistente in
c2 = {p3,p4,p8}. Si vede immediatamente che in C1 vi sono un paio di
proprietà adiacenti, p1 e p3; in C2 vi sono due paia di proprietà adiacenti, p3
e p4, p4 e p8. Allora, gli elementi delle coppie menzionate possono essere, a
due a due, sinteticamente rappresentate dalle seguenti rispettive proprietà
elementari: 0*0,01*,e *11. Queste possono essere denotate con p13, p34 e
p48. In quest'ultimo caso, alcuni dettagli sono chiaramente irrilevanti: D2 è
irrilevante rispetto a C1; D3, D1 lo sono rispetto a C2.

200
7.1.3 L'implicazione semantica

Ogni proprietà pα di P si dice condizionata dal valore logico dei dettagli di


pα che sono rilevanti in essa; in più, le condizioni attuate su due o più proprietà
elementari pα,pβ,... dallo stesso Dh, quando questo assume in esse
invariabilmente lo stesso valore, si chiama condizione di coerenza.

Definizione 7.1.1
Date due proprietà elementari pα e pβ di P, nel caso in cui tutti i dettagli
rilevanti i cui valori logici formano pβ condizionano coerentemente pα,
diremo che la prima proprietà è implicata semanticamente dalla seconda.
L'implicazione semantica di una proprietà pβ con pα la denotiamo

con pα → pβ.

Osservazione 7.1.2

La proprietà pτ ottenuta dalle proprietà adiacenti pα e pβ come specificato


precedentemente, è semanticamente implicata sia da

pα che da pβ: pα → pτ e pβ → pτ.

Osservazione 7.1.3

L'insieme P è formato da

(i) tutte le proprietà che formano A in cui nessun dettaglio è irrilevante;


(ii) tutte le proprietà che sono semanticamente implicate da quelle di A.

Le proprietà elementari pα di A sono chiamate proprietà primarie.


Le proprietà pα che formano l'insieme P \ A sono chiamate proprietà
secondarie; infatti le prime implicano le seconde.
Questo implica che ogni pα di A è implicato da se stessa e dall'insieme:

∩ {pα:pα ∈ A}.
α
Quest'ultimo, denotato con ∩A, corrisponde all'insieme vuoto della teoria degli
insiemi.

201
Definizione 7.1.4
Dati due sottoinsiemi S ed R di P, con "S implica semanticamente R" si
intende che per ogni pβ di R esiste pα di S tale che

pα → pβ.

Definizione 7.1.5
Dato un S di P, il sottoinsieme di P che soddisfa alle due condizioni seguenti:
(i) per ogni pα ∈ S0 esiste pβ ∈ S tale che pα → pβ;
(ii) S0 è implicato solo da sè stesso e da ∩A, cioè è formato
esclusivamente da proprietà elementari pα di A.
Le proprietà che formano S0 possono sinteticamente essere rappresentate da
un sottoinsieme (S0)m ottenuto come segue: vengono formate tutte le possibili
coppie di proprietà adiacenti di S0: quindi, ciascuna coppia viene sostituita da
una unica proprietà di P che rappresenta sinteticamente entrambi gli
elementi, in questo modo si ottiene (S0)1.

Definizione 7.1.6
Il sottoinsieme (S0)1 di P appena descritto, si chiama prima rappresentazione di
S0, Per rappresentazione minimale di S0, e anche di S, si intende il
sottoinsieme (S0)m che è uguale alla propria prima rappresentazione con più
piccolo m.

La rappresentazione minimale (S0)m di un sottoinsieme S di P si ottiene


dall'iterazione esaustiva del processo di rappresentazione di S0.

Osservazione 7.1.7

Dati due sottoinsieme S e R di P tali che esistono i,j tali che (S0)i = (R0)j
allora essi hanno la stessa rappresentazione minimale, cioè (S0)m = (R0)m.

Definizione 7.1.8
I due elementi R ed S considerati nella proposizione precedente si dicono
semanticamente equivalenti l'uno rispetto all'altro.

Osservazione 7.1.9

Ogni rappresentazione (S0)k dell'implicante primario di un sottoinsieme S è


semanticamente implicato da S0. In più, la rappresentazione minimale (S0)m è
implicata anche da S.

202
Grazie all'osservazione precedente si può introdurre il concetto di famiglia di
proprietà. Consideriamo la potenza dell'insieme P, denotata con |P, essa si
chiama inseme delle proprietà e i suoi elementi sono sottoinsiemi di P.

Esempio:

L'insieme P è lo stesso che si produce dalla combinazione dei


dettagli D1,...,Dl. Prendiamo ad esempio D1,D2,D3.
Le proprietà elemetari di P sono allora:

p12= 00*
p13= 0*0
p15= *00
p1= 000 p24= 0*1
p2= 001 p26= *01 p1234= p1324= 0**
p3= 010 p34= 01* p1256= p1526= *0* p12345678 =
p4= 011 p37= *01 p1357= p1537= **0 = p12563478 =
p5= 100 p48= *11 p2468= p2648= **1 = p13572468 =
p6= 101 p56= 10* p3478= p3748= *1* = p. = ***
p7= 110 p57= 1*0 p5678= p5768= 1**
p8= 111 p68= 1*1
p78= 11*

Per semplificare il concetto di implicazione semantica e di implicante


primario prendiamo in considerazione la proprietà p56.
Essa implica p1526, p5768 e p12345678: i suoi implicanti primari sono ∩A,
p5 e p6.
Consideriamo un elemento dell'insieme delle proprietà |P relativo a P. Questo
sia S = {p12,p3,p4,p5} allora:

S S0 (S0)1 (S0)2 (S0)m


-----------------------------------------
00* 000 *00 *00 *00
001 00*
010 010 0*0 0** 0**
011 011 01*
100 100 0*1

Si può dimostrare che l'implicazione semantica tra elementi di |P possiede le


seguenti caratteristiche; per ogni R,S,T ∈ |P :

(i) R → R (riflessività)
(ii) Se R → S e S → R allora R = S (antisimmetria)

203
(iii) Se R → S e S → T allora R → T (transitività)

Ne consegue che la relazione → introduce un ordinamento tra gli


elementi di |P. Tale ordine è parziale poichè vi sono elementi che anche
implicandone altri ed essendo a loro volta implicati da altri, non possono essere
confrontati fra loro. In tal modo, ogni relazione semantica tra tali elementi
rimane indeterminata. Possiamo concludere che l'insieme delle proprietà |P è
parzialmente ordinato. In esso, l'elemento ∩ P costituisce l'elemento massimo:
p*, l'elemento di P in cui tutti i dettagli sono irrilevanti costituisce il minimo
elemento. Allora in [|P,→], ∩A rappresenta il limite universale superiore e il
limite universale inferiore è costituito da p*.

Operazioni su |P

utilizzando quanto è stato sviluppato, è possibile identificare le operazioni


interne di tipo semantico che possono essere realizzate su |P.

Definizione 7.1.10
Con area semantica di un elemento S di |P si intende il sottoinsieme di |P
stesso, Sa = {∩A,S0,(S0)1,...,(S0)m} dove (S)i sono le rappresentazioni di S0.

Definizione 7.1.11
L'elemento (S0)m dell'area semantica Sa, che corrisponde alla
rappresentazione minimale di S e di S0, si chiama il più piccolo limite
superiore (least upper bound) lub di S.

Definizione 7.1.12
Il più grande limite inferiore (greatest lower bound) glb di un elemento S di
|P consiste nella rappresentazione minimale (∩α S0α)m, dove ∩α S0α denota
l'intersezione degli implicanti primari relativi ad ogni proprietà elementare pα
appartenente ad S.

Osservazione 7.1.13

Se un elemento S è tale che ∩α S0α = 0, poichè ∩A = 0, allora il glb di tale


S corrisponde al glb di ∩A.

204
Definizione 7.1.14
Ogni elemento S di |P tale che ∩α S0α = ∩A si chiama elemento
semanticamente disgiunto.

Osservazione 7.1.15

Dato un elemento disgiunto S, ogni altro elemento incluso in esso è disgiunto.

Poichè entrambi lub e glb di un elemento di |P sono singolarmente elementi


unici di |P stesso, questi due limiti costituiscono il risultato dello stesso
numero di operazioni su |P; denoteremo queste operazioni con "∧" e "∨"
rispettivamente, e le chiameremo unione semantica ed intersazione semantica,
cioe:

∨S = lub(S) = unione semantica di S


∧S = glb(S) = intersezione semantica di S
quest'ultima quando S = ∩A è uguale a glb(∩A) = ∧A

In più, poichè ogni elemento S di |P può essere considerato come formato da


uno o più elementi di |P, le operazioni appena definite sono n-ary. Allora, se S
∈ |P è tale che S = (S1 ∪ S2) possiamo scrivere:

∨S = ∨(S1 ∪ S2) = S1 ∨ S2 = (S10 ∪ S20)m


∧S = ∧(S1 ∪ S2) = S1 ∧ S2 = [∩α(S1 ∪ S2)0α]m

quando S, e così S1 ∪ S2, sono elementi disgiunti ∧S = ∧A.

Lemma 7.1.16

Dati due elementi R ed S di |P, se R → S allora

(i) R ∨ S = ∨R
(ii) R ∧ S = ∧S

Dimostrazione:
Nelle ipotesi assunte, dalla definizione di →, entrambi R ed S sono
implicati da R0, Pertanto (R0)m, cioè ∨R rappresenta i due elementi R e S,
quindi, nel nostro caso (R0 ∪ S0)m = (∪ R0)m = ∨R
Dalla definizione di ∧ si ha (R0 ∩ S0)m = (S0)m = ∨S allora R ∧ S = ∧ S.

205
Corollario 7.1.17

Il principio di compatibilità è soddisfatto In |P.

Teorema 7.1.18

Le due operazione ∧ e ∨ su |P godono delle seguenti proprietà:

(i) R ∨ R = ∨ R (i’) R ∧ R = ∧ R

(ii) R ∨ S = S ∨ R (ii’) R ∧ S = S ∧ R

(iii) (R∨S)∨T = R∨(S∨T) (iii’) (R∧S)∧T = R∧(S∧R)

(iv) (R∧S)∨R = ∨R (iv') (R∨S)∧R = ∧R.

Dimostrazione:

(i) R∨R = (R0 ∪ R0)m; poichè R0 ∪ R0 = R0


allora R∨R = (R0)m = ∨R

(ii) R∨S = (R0 ∪ S0)m; poichè R0 ∪ S0 = S0 ∪ R0, allora


(R0 ∪ S0)m = (S0 ∪ R0)m = S ∨ R.

(iii) (R ∨ S) ∨ T = [(R0 ∪ S0) ∪ T0]m;


poichè (R0 ∪ S0) ∪ T0 = R0 ∪ (S0 ∪ T0) allora
[(R0 ∪ S0) ∪ T0]m = [R0 ∪ (S0 ∪ T0)]m = R ∨ (S ∨ T).
(iv) (R ∧ S) ∨ R = [(R ∧ S)0 ∪ R0]m =[[(R0 ∩ S0)m]0 ∪ R0]m
= [(R0 ∩ S0) ∪ R0)]m = (R0)m = ∨ R.

Per quanto riguarda (i’),(ii’),(iii’) possono essere dimostrati in maniera


analoga.
Per quanto riguarda (iv') si usa R ∧ S = ∧ S al posto di R ∨ S = ∨ R.

Corollario 7.1.19

Le operazioni ∧ e ∨ sono semanticamente idempotenti, commutative ed


associative, di più esse soddisfano alla legge dell'assorbimento semantico.

206
Le caratteristiche delle operazioni ∧ e ∨ ci permettono di affermare che
<|P,∧,∨> possiede una struttura di tipo reticolare. Se <|P,∧,∨> è un reticolo, nel
senso della teoria dei reticoli, se ne deduce che per ogni elemento S di |P S ∨
S = S.
Nel nostro caso, in cui gli aspetti semantici degli elementi considerati sono
preminenti, l'uguaglianza S ∨ S = ∨ S esprime la possibilità generale che S sia
sinteticamente rappresentato da (S0)m. In particolare, anche se (S0)m è
diverso da S esso è semanticamente equivalente ad S, in altri termini ∨S ed S
hanno lo stesso significato. In più, è evidente che nel caso in cui S è disgiunto,
e quindi non include alcuna proprietà elementare adiacente, oppure è singolo,
allora S ∨ S, come ∨S sono uguali ad S. A causa della dipendenza dei risultati
ottenuti da ∧ e ∨ sul significato sottinteso dagli elementi su cui tali
operazioni sono attuate, la struttura <|P,∧,∨> la chiameremo reticolo
semantico, e lo denoteremo con L(|P).

Teorema 7.1.20

Dati tre elementi R, S, T di |P abbiamo:

(i) R ∧ (S ∨ T) = (R ∧ S) ∨ (R ∧ T);

(ii) R ∨ (S ∧ T) = (R ∨ S) ∧ (R ∨ T);

Osservazione 7.1.21

Il reticolo L(|P) è distributivo.

207
7.1.4 Definizione di un'algebra sulle proprietà

Dalla definizione di area semantica è possibile derivare l'area semantica


complementare: ¬S0 = A \ S0.

Teorema 7.1.22

Il complementare ¬S di ogni elemento S di |P è unico e sta in ¬S0.

Corollario 7.1.23

Nel reticolo L(|P) per ogni elemento S di |P vale ¬¬S = ∨ S.

Vediamo ora come si generi una struttura algebrica sull'insieme delle


proprietà |P.

Teorema 7.1.24

Per ogni coppia di elementi R e S di un reticolo L(|P) esistono in |P due


elementi ¬(R∧S) e ¬(R∨S) tali che:

(i) ¬(R ∨ S) = ¬R ∧ ¬S
(ii) ¬(R ∧ S) = ¬R ∨ ¬S.

Corollario 7.1.25

In L(|P) sono valide le leggi di De Morgan:

(i) R ∨ S = ¬(¬R ∧ ¬S)


(ii) R ∧ S = ¬(¬R ∨ ¬S)

Poichè il reticolo L(|P) è fornito di limiti, elementi minimali e massimali,


rispettivamente ∧A e p* e poichè sono valide le leggi distributive e di
complementazione, allora:

Teorema 7.1.26

Il reticolo L(|P) è un'algebra booleana semantica < |P, ∨, ∧, ¬, p*, ∧A>; la


denoteremo con A(|P).

208
7.2 Ruolo delle irrilevanze nella formazione di concetti

L'apprendimento di concetti (Concept learnig) CL è una forma di


apprendimento dall'osservazione, e consiste nell'acquisizione di conoscenza
da inferenze tratte da fatti appresi o ottenuti tramite una diretta interazione con
l'ambiente.
CL rappresenta il primo passo verso la possibilità di categorizzazione
autonoma, attività fondamentale e misteriosa, di grande interesse nell'ambito
dell'intelligenza artificiale.
Sono state sviluppate parecchie tecniche statistiche per imparare a risolvere
problemi su base numerica: comunque un approccio puramente statistico è
soggetto ad alcuni limiti intrinseci:

(i) incapacità di distinguere attributi rilevanti da attributi irrilevanti tra gli


elementi che descrivono il problema;
(ii) difficoltà a trattare efficacemente proprietà non numeriche;
(iii) impossibilità di fornire una descrizione delle classi create.

Queste limitazioni sono di impatto centrale per l'efficacia delle applicazioni di


CL nel raggruppamento concettuale (conceptual clustering) CC: l'attività di
creazione di categorie. Naturalmente la possibilità di misurare le informazioni
semantiche proprie dei messaggi che descrivono gli elementi che devono
essere classificati è determinante al fine di fornire un modello del processo di
raggruppamento concettuale. Una tale informazione scaturisce dall'integrazione
sia delle tipicità di ogni elemento rispetto ad ogni possibile concetto sia dalla
ambiguità con cui questi sono rappresentati. Occorre considerare anche la
rilevanza semiotica che attributi caratterizzanti gli elementi considerati
possono avere al fine di definire un concetto e quindi calcolare la tipicità degli
elementi rispetto al concetto definito.
Gli elementi, che consistono di fatti, situazioni o oggetti, vengono nel seguito
chiamati entità.

Cerchiamo di definire ora il concetto di "attributi irrilevanti".


Le entità vengono descritte da l-tuple di attributi booleani; queste derivano
dall'interpretazione binaria data dai valori che sono in on nella l-tupla. Se dato
un insieme base X di entità xα consideriamo i sottoinsiemi S, T,... di X,
ciascuno di essi si dice coerente sulla base di un criterio specifico di
funzionalità: in tal caso si può parlare di concetto. Ogni entità di un
concetto S costituisce una estensione iso(S)-definente di di S.
Definiamo come irrilevante, in una entità xα di S, ogni caratteristica Xk che,
qualsiasi sia l'attributo con cui compare in xα, questo rimanga ancora una

209
entità S-definente.; cioè Xk non è determinante per far sì che xα definisca S.
Una tale irrilevanza deriva dalla esistenza in S di un'altra entità xβ che, quando
è confrontata con xα differisce da xα esclusivamente per il k-esimo
attributo.
Formalmente, date due entità xα = (x1α,...,xlα) e xβ = (x1β,...,xlβ) tali
che esiste un solo k per cui xkα è diverso da xkβ e per ogni h diverso da k si
ha xhα = xhβ, allora gli attributi xkα e xkβ non hanno rilievo e la
caratteristica corrispondente Xk con lo stesso indice k risulta irrilevante sia
in xα che in xβ. Una relazione binaria lega xα e xβ così che queste possono
essere definite isosignificanti e la relazione è possibile indicarla con xα - xβ.
Gli attributi rilevanti Xh che caratterizzano ogni entità xα sono indicati nella
notazione binaria xhα ∈ {0,1}; quelli irrilevanti sono indicati con {*}. Dopo
aver accertato l'isosignificato di due entità xα e xβ, entrambe queste entità
possono essere sintetizzate in una terza xτ tale che xkτ = * e per ogni h
diverso da k xhτ = xhα = xhβ. Una tale sintesi implementa un operatore
binario che indicheremo con Θ sull'insieme base X. Allora xτ sarà il risultato
di xα Θ xβ: la struttura matematica che X riceve dalla nuova operazione
deriva dalle relazioni semantiche tra i suoi elementi.
Applicando Θ su tutte le entità isosignificanti di S, si ottiene un sottoinsieme
S1 di {0,1,*}exp(l); in cui si aggiungeranno tutte le entità dello stesso tipo di
xτ, una per ogni coppia di entità isosignificanti esistenti in S. Tramite
l'applicazione iterativa di Θ sugli elementi formati successivamente si ottiene
una successione di Si e finalmente si ottiene Sm in cui non esistono
ulteriori entità isosignificanti. Nelle entità incluse in Sm tutti gli attributi
irrilevanti vengono evidenziati: questa rappresentazione sintetica di S
costituisce l'intensiva (essenziale) definizione del concetto S stesso.
Esempio: Sia l'insieme base X generato dall'interpretazione dei valori di tre
caratteristiche X1, X2, X3 sull'insieme primario
X={000,001,010,011,100,101,110,111}, tale che S = {010,011,100}
sia il concetto definito. Le entità 010 e 011 sono isosignificanti, poichè esse
differiscono solo per la caratteristica X3, a cui corrispondono gli attributi x3α e
x3β rispettivamente, allora la forma sintetica di S è Sm = {100,01*} dove 01*
è il risultato di 010 Θ 011.

Analizziamo il caso in cui vi sono differenze per più di un attributo.


Vediamo la possibiltà di estendere gli stessi concetti di irrilevanza: sorgono dei
problemi quando esistono differenza multiple tra le entità.
Dopo aver ottenuto la definizione intensiva Sm di un concetto S, possono
essere calcolate alcune proprietà simboliche e numeriche, come il prototipo, la
tipicità dell'entità, il concetto di coerenza, di ambiguità dell'indicazione, e altre
210
ancora. Ma nello sviluppo dell'argomento sorge una legittima domanda: che
cosa succede quando due entità differiscono negli attributi relativi per più di
una caratteristica?
Questo succede per esempio tra le coppie 100 e 010 del concetto S considerato
nell'esempio precedente: sono X1, X2 irrilevanti allo stesso modo in cui
nell'esempio gli attributi differenti riguardavano una unica caratteristica in X3 ?
La risposta deve essere negativa.
Vediamo l'assurdità che si ottiene quando assumiamo che anche con
differenze per più di una caratteristica danno origine a entità isosignificanti.
Consideriamo di nuovo l'esempio sopra riportato: la irrilevanza della
caratteristica X1 sia in 100 che in 010 non consente di decidere se queste due
entità debbano essere incluse in S oppure nel suo complemento ¬S che include
tutte le entità di X che non sono in S. Una conclusione analoga si ottiene anche
considerando la possibile irrilevanza di X2 nella stessa entità. Infatti, nel caso
di irrilevanza di una o più caratteristiche in tutte le entità di S, come nel caso
considerato, queste dovrebbero essere irrilevanti anche in tutte le entità di ¬S.
In tal caso, le entità **0 dovrebbero paradossalmente comparire sia in
Sm che in ¬Sm. Al fine di definire S coerentemente, dobbiamo quindi
concludere che gli attributi connotati con queste caratteristiche non possono
essere entrambi irrilevanti. Inoltre possiamo dedurre che, se due entità xα e xβ
sono entrambe iso-definenti dello stesso concetto, potrebbe essere richiesta
la loro multipla differenziazione. Questo succede quando la differenziazione di
due attributi omologhi xhα e xhβ di tali entità possono servire per estrarre due
o più altre entità, nella definizione di un concetto.
Comunque, il caso di differenziazione multipla tra due entità iso-definenti
non esclude che più di una caratteristica risulti irrilevante per esse. Questo può
accadere quando, nell'iterazione di Θ nei successivi Si, entità che sono
sintetizzate con xα e xβ determinano in queste le irrilevanze di cui parliamo.
L'esempio seguente può essere utile per illustrare il senso intuitivo del
ragionamento precedente. Supponiamo che le tre caratteristiche X1, X2, X3
riguardino il clima con le seguenti condizioni:
x1 {=1 freddo, =0 caldo};
x2 {=1 vento, 0= calmo}
x3 {0= pioggia, 1= sole}.
Allora gli elementi del sottoinsieme S = {001,010,011} definiscono un
concetto che esprime la necessità e la sufficienza per indossare un leggero
impermeabile. Il relativo Sm è {0*1,01*} da cui è evidente come
l'impermeabile è utilizzabile per proteggersi dalla pioggia, dal vento o
possibilmente da entrambi. D'altra parte, dalla doppia differenziazione tra 001
e 010, non sarebbe ragionevole concludere che le caratteristiche X2 e X3 sono
entrambe irrilevanti. In tal caso, infatti, non sarebbe possibile decidere se
211
queste due entità definiscono un concetto S oppure il suo opposto ¬S; questo
poichè la configurazione 0** assumerebbe i seguenti significati:
non solo {caldo,calma,pioggia} e {caldo,vento,sole}
ma anche {caldo,calma,sole},
una situazione in cui l'impermeabile non sarebbe ragionevolmente richiesto.
Comunque analizzando la derivazione di ¬Sm = {*00,1**} da
¬S = {000,100,101,110,111} i cui elementi definiscono il concetto in
accordo con il fatto che l'impermeabile è o non necessario o insufficiente,
risulta che sia le coppie {100,111} che (101,110} derivano 1** anche se i loro
elementi differiscono per due attributi, quelli relativi a X2 e X3.
Questo risultato, ottenuto operando successivamente con Θ nella derivazione
di ¬Sm, differisce da quello precedentemente prospettato in cui si è ottenuto
0**, in questo caso però risulta intuitivamente corretto.

212
7.3 Simiglianze nel caso di corrispondenza biunivoca

7.3.1 Corrispondenze, trasformazioni, simiglianze

Riportiamo brevemente alcuni richiami sui concetti di trasformazione su


insiemi.

Si dice corrispondenza ƒ : A --> B un qualsiasi metodo, algoritmo, operatore,


meccanismo, trasformazione, ecc. in grado di far corrispondere ad ogni
elemento dell'insieme A un elemento dell'insieme B, e si denota con
ƒ(x) = y dove x ∈ A e y ∈ B.
Nota: può essere ƒ(x1) = y1 e ƒ(x1) = y2.

Si dice applicazione ƒ : A --> B una corrispondenza univoca, cioè tale che


per ogni elemento xi ∈ A esiste un unico elemento yi ∈ B; ƒ(xi) = yi.
Nota: può essere ƒ(x1) = y1 e ƒ(x2) = y1.

Si dice applicazione suriettiva ƒ : A --> B sse ƒ(A) = B; vale a dire che per
ogni elemento yi ∈ B esiste un xi ∈ A tale che ƒ(xi) = yi.

Si dice applicazione iniettiva ƒ : A --> B se elementi distinti di A hanno


corrispondenti distinti di B, vale a dire che per ogni x1,x2 ∈ A e y1,y2 ∈ B
tale che ƒ(x1) = y1 e ƒ(x2) = y2 x1 ≠ x2 si ha y1 ≠ y2.

Se un'applicazione è suriettiva ed iniettiva allora è anche invertibile e si dice


che ƒ : A --> B è una corrispondenza biunivoca ed esiste:
-1
ƒ : B --> A.

Sia A un insieme finito di m elementi.


Sia B un insieme finito di n elementi.
Allora il numero di applicazioni da A in B sono:

α(m,n) = n exp(m).

Mentre il numero di applicazioni iniettive sono:

α'(m,n) = n (n-1) (n-2) ... (n-m+1)

213
Ricordiamo che le combinazioni di n elementi presi a m alla volta sono:

n n!
( ) = 
m m!(n-m)!

(fig 7.1)

Consideriamo due insiemi numerabili I1,I2.

Sia ƒ : I1 --> I2 una corrispondenza biunivoca da I1 a I2.

Indichiamola con ƒ(ik) = ek dove ik ∈ I1 ed ek ∈ I2.

Denotiamo con |P(I1) la potenza di I1 e con |P(I2) la potenza di I2;

costruiamo una trasformazione T : |P(I1) --> |P(I2) definita come segue;


per ogni xi ∈ |P(I1)

xi = {i1,i2,...,ik}

T(xi) = T({i1,i2,...,ik}) = {ƒ(i1),ƒ(i2),...,ƒ(ik)} =

214
= {e1,e2,...,ek} = yi ; yi ∈ |P(I2)

Si vede facilmente che T è una corrispondenza biunivoca.

Sia µ1 : |P(I1) --> |R+ \ {∞} definita nel seguente modo:

per ogni xi ∈ |P(I1) numerabile e finito

µ1(xi) = numero di elementi distinti dell'insieme xi.

Esempio:

xi = {i1,i2,...ik} si ha µ1(xi) = k.

Poniamo µ2 : |P(I2) --> |R+ \ {∞} tale che

-1
µ2(yi) = µ1(T (yi)) = µ1(xi) allora

per ogni yi ∈ |P(I2) numerabile e finito

µ2(yi) = numero di elementi distinti dell'insieme yi

-1 -1
infatti T (yi) = T ({e1,e2,...,ek}) = {i1,i2,...,ik} = xi

(il numero di elementi è un invariante per la T !)

µ1({i1,i2,...,ik}) = k

µ2({e1,e2,...,ek}) = k

Abbiamo introdotto una semplice misura su I1 e tale misura è possibile


indurla, con lo stesso significato anche su I2.

215
(fig 7.2)

Possiamo ora costruire una metrica basata sulle misure µ1 e µ2 tale che
induca spazi isometrici sulla potenza di I1 e di I2.
Prendiamo pertanto le seguenti funzioni distanza:

d1 : |P(I1) x |P(I1) --> [0,1]

µ1(xi ∆ xj)
d1(xi,xj) =  per ogni xi,xj ∈ |P(I1)
µ1(xi ∪ xj)

d2 : |P(I2) x |P(I2) --> [0,1]

µ2(yi ∆ yj)
d2(yi,yj) =  per ogni yi,yj ∈ |P(I2)
µ2(yi ∪ yj)

Prendiamo un arbitrario insieme, S1, di insiemi di |P(I1),


_
S1 contenuto in |P(I1), sia S1 l'immagine di S1 in |P(I2),

216
_
S1 contenuto in |P(I2); allora:

PROPOSIZIONE 7.3.1
_
Per ogni yi ∈ S1 la funzione distanza d2(yi,yj) fornisce la simiglianza tra yi ed
ogni yj ∈ S2.

PROPOSIZIONE 7.3.2
_ _
Se d2(S1,S2) = 0 allora S1 coincide con S2.
_ _
Se d2(S1,S2) = 1 allora S1 è disgiunto da S2 per cui
_
per ogni ei ∈ S1 ej ∈ S2 d2(ei,ej) = 1

in altri termini non vi sono simiglianze.

PROPOSIZIONE 7.3.3

Sia g : S1 x S2 --> [0,1] tale che

g(xi,yj) = d2(T(xi),yj) xi ∈ S1, yj ∈ S2

allora la g fornisce la simiglianza tra ogni elemento di S1 ed ogni elemento di


S2.

Definizione 7.3.4

Sia Bδ = {yj; d(yi,yj) < δ} δ ∈ [0,1] yi,yj ∈ |P(I1)

allora diremo che Bδ è un intorno di yi di raggio δ.

PROPOSIZIONE 7.3.5
_
Per ogni yi ∈ S1, l'intersezione dell'intorno di raggio δ di yi con S2,
Bδ(yi) ∩ S2, fornisce un ordinamento parziale degli elementi di S2 in funzione
delle simiglianze tra gli elementi stessi di S2 e l'elemento yi di S1.

217
Esempio:

Consideriamo un insieme di cinque elementi

I1 = {i1,i2,i3,i4,i5}, I2 = {e1,e2,e3,e4,e5}

S1 = {{i1,i2},{i2,i3,i4},{i3,i4,i5},{i1,i3,i5},{i1,i4}}

S2 = {{e1,e2},{e1,e2,e3},{e1,e2,e3,e4},{e1,e2,e3,e4,e5}}

g(xi,yj) | i1,i2 | i2,i3,i4 | i3,i4,i5 | i1,i3,i5 | i1,i4


--------------|------------------------------------------------
e1,e2 | 0 | 3/4 | 1 | 3/4 | 2/3
--------------|------------------------------------------------
e1,e2,e3 | 1/3 | 2/4 | 4/5 | 2/4 | 3/4
--------------|------------------------------------------------
e1,e2,e3,e4 | 2/4 | 1/4 | 3/5 | 3/5 | 2/4
--------------|------------------------------------------------
e1,e2,e3,e4,e5| 3/5 | 2/5 | 2/5 | 2/5 | 3/5
---------------------------------------------------------------

PROPOSIZIONE 7.3.6
_
Sia S1 ∩ S2 ≠ ∅.

Sia Tr : S1 --> S2 una corrispondenza tra xi ∈ S1 e yi ∈ S2

definita come: per ogni xi ∈ S1

Tr(xi) = {yj: yi = T(xi), yj ∈ S2 tale che sia min(d2(yi,yj))}

in altri termini Tr(xi) corisponde all'insieme degli yj che rendono minima la


distanza d2(yi,yj) tra yj e l'immagine yi ∈ S1 di xi.
O se vogliamo, Tr trasforma xi ∈ S1 nell'insieme yj ∈ S2 più simile in S2.

Esempio:
Consideriamo un insieme di cinque elementi

I1 = {i1,i2,i3,i4,i5}, I2 = {e1,e2,e3,e4,e5}

S1 = {{i1,i2},{i2,i3,i4},{i3,i4,i5},{i1,i3,i5},{i1,i4}}

218
S2 = {{e1,e2},{e1,e2,e3},{e1,e2,e3,e4},{e1,e2,e3,e4,e5}}

allora Tr({i2,i3,i4}) = {e1,e2,e3,e4}

come si può verificare dalla tabella dell'esempio precedente.

(fig 7.3)

Le definizioni e i concetti fin qui esposti ci consentono di definire delle


trasformazioni delle simiglianze.
Il presente lavoro propone un interessante approccio al problema della
conservazione di simiglianze tra informazioni nel processo di comunicazione,
trasmissione, invio, o ricezione delle stesse.
Simiglianze presenti in un insieme di dati iniziali sembra vengano perse, nella
rappresentazione finale, a causa della trasformazione che essi stessi subiscono
al fine della trasmissione ad altre rappresentazioni riceventi.
Consideriamo ad esempio un pezzo musicale.
Nello spartito l'informazione, la melodia, è rappresentata da note sul
pentagramma, un esecutore trasforma le note, da una sequenza spaziale, ad
una sequenza temporale, pigiando i tasti di un pianoforte; a ciascuna nota
corrisponde un tasto ed ad ogni battuta un intervallo di tempo.

219
Il pianoforte produce un suono, un'onda sonora, con caratteristiche ben precise
di altezza e di composizione armonica, che progressivamente nel tempo si
propaga nello spazio.
Se analizzassimo la forma d'onda prodotta, in linea di principio, potremmo
ritrovare le onde corrispondenti a ciascuna nota sul pentagramma, ma dove è
rintracciabile la melodia?
Consideriamo il problema da un punto di vista astratto; per far ciò utilizziamo
la matematica.
Dal punto di vista matematico gli oggetti più generali con cui trattare
l'informazione sono gli insiemi.
Un insieme di messaggi, di oggetti, di configurazioni,... forniscono il supporto
per la trasmissione dell'informazione da un emittente ad un ricevente.
Siccome desideriamo manipolare qualsiasi combinazione di oggetti del nostro
insieme gli oggetti matematici più generali, che possono essere utili
rappresentazioni, sono gli spazi topologici.
Consideriamo pertanto due spazi topologici (X,T1) e (Y,T2), dove X è
l'insieme di partenza, con topologia T1; Y è l'insieme di arrivo, con topologia
T2.
Sia OP: X --> Y un operatore, una trasformazione, che determini
un'applicazione da X a Y tale che yi = OP(xi), yj = OP(xj) se e solo se xi = xj.
Per la definizione di topologia vale:
1) L'insieme vuoto appartiene alla topologia T
L'insieme X appartiene alla topologia T.
2) L'unione di arbitrari elementi di T appartiene ancora a T.
3) L'intersezione di un numero finito di arbitrari elementi di T
appartiene a T.
Supponiamo che gli insiemi X,Y siano misurabili e in particolare esistano una
misura m1 su X e una misura m2 su Y tali che:
1) m1: X --> R+ \ {∞}
m2: Y --> R+ \ {∞}
2) Per ogni xi,yi, xi appartenente a X, yi appartenente a Y
tali che yi=OP(xi)
valga m1(xi) = m2(yi)

In tali circostanze è possibile indurre una metrica su X e su Y utilizzando le


funzioni distanza definite come:

m1(xi ∆ xj)
a) dx (xi,xj) = kx 
m1(xi ∪ xj)

220
m2(yi ∆ yj)
b) dy (yi,yj) = ky 
m2(yi ∪ yj)

Infatti si vede che dx e dy sono distanze e inducono spazi metrici su X e Y :


Mx = (X,dx) My = (Y,dy).

Si verifica facilmente che per ogni xi,xj appartenenti ad X e yi,yj


appartenenti a Y vale

c) dx(xi,xj) = β dy(yi,yj)

allora Mx è isometrico ad My.

Questo significa che se xi e xj sono simili nella rappresentazione X allora


anche yi e yj sono simili nella rappresentazione Y.

Abbiamo ottenuto la corrispondenza di oggetti simili dalla rappresentazione


iniziale a quella finale.
Ovviamente, rimane aperto il problema della costruzione delle funzioni
misura; sotto quali condizioni è possibile costruire queste funzioni?
Secondo, quale è il livello semantico a cui rimane valida la correlazione tra
oggetti simili?
In altri termini che cosa implica, al livello di significato, modificare le funzioni
misura?
Cercheremo di rispondere nel seguito almeno ad alcune di queste domande.
Comunque dalle definizioni delle trasformazioni che abbiamo introdotto se ne
deduce che costruendo le funzioni misura sugli invarianti delle trasformazioni
medesime è possibile ottenere l'invarianza della metrica indotta sugli insiemi
trasformati.

221
7.3.2 Costruzione di una metrica sull'insieme dei naturali

Consideriamo una trasformazione Tr definita come:

Tr(xi) = {yj: yj ∈ S2, yi = T(xi) tale che min(d(yi,yj))}

Prendiamo come insieme S2 l'insieme dei naturali, vale a dire:

S2 = {{1},{1,2},{1,2,3},...,{1,2,3,...,k},...}

Se yj ∈ S2 e µ : S2 --> |N tale che µ({1,2,3...,k}) = k

allora possiamo classificare qualsiasi insieme arbitrario rapportandolo


all'insieme dei numeri naturali.

(fig 7.4)

222
Consideriamo la g(xi,yj) = d(T(xi),yj) precedentemente introdotta considerato
che se yk = T(xk), è l'insieme yk corrispondente, nell'insieme dei naturali, ad
un arbitrario xk di S1 e Tr(xi) = yk, Tr(xj) = yk corrispondono a due elementi
xi ed xj di S1 che sono simili ad yk, e pertanto ad xk dove xi, xj, xk ∈ S1 e yk
∈ S2 (insieme dei naturali) allora vale d(xi,xj) ≤ g(xi,yk) + g(xj,yk)
ovvero, in altri termini, yk rappresenta un buon prototipo per rappresentare, in
maniera standard, sia xi che xj.

Esempio:

Prendiamo S1 = {{1,2},{3,4},{2,3,4},{3,4,5}}

ed S2 = {{1},{1,2},{1,2,3},{1,2,3,4},{1,2,3,4,5}}

1 1,2 1,2,3 1,2,3,4 1,2,3,4,5


-------------------------------------------------------------
1,2 | 1/2 | 0 | 1/3 | 2/4 | 3/5
| | | | |
3,4 | 1 | 1 | 3/4 | 2/4 | 3/5
| | | | |
2,3,4 | 1 | 3/4 | 2/4 | 1/4 | 2/5
| | | | |
3,4,5 | 1 | 1 | 4/5 | 3/5 | 2/5

allora la trasformazione Tr(xi) assegna i seguenti valori agli insiemi di S1:

Tr({1,2}) = {1,2} corrispondente al numero 2

Tr({3,4}) = {1,2,3,4} corrispondente al numero 4

Tr({2,3,4}) = {1,2,3,4} corrispondente al numero 4

Tr({3,4,5}) = {1,2,3,4,5} corrispondente al numero 5

Vediamo un'estensione di questa idea.

Esempio di metrica su |N.

223
(fig 7.5)

Consideriamo una corrispondenza tra un sottoinsieme di |N ed un insieme


qualsiasi S numerabile.

ƒ : |N --> S

Definiamo come misura di un arbitrario insieme di interi la cardinalità


dell'insieme, formalmante:

µ : |P(|N) --> |R+

µ({n1,n2,...,nk}) = k

Prendiamo come metrica la funzione:

µ(xi ∆ xj)
d(xi,xj) =  xi,xj ∈ |P(|N)
µ(xi ∪ xj)

Analizziamo l'intorno di {1}.

Denotiamo con <1,2,...,n> l'insieme ordinato {1,2,...,n}.

224
Allora gli elementi di S2 sono:

<1>, <1,2>, <1,2,3>, ..., <1,2,...,n>,...

e la funzione distanza diviene:

n-m
d(<1,2,...,m>,<1,2,...,n>) =  con n ≥ m
n

la matrice dei valori della distanza è:

<1> <1,2> <1,2,3> ... <1,2,...,m>


---------------------------------------------------------------
<1> | 0 1/2 2/3 ... (m-1)/m
|
<1,2> | 1/2 0 1/3 ... (m-2)/m
|
<1,2,3> | 2/3 1/3 0 ... (m-3)/m
|
|
<1,2,...,n> | (n-1)/n (n-2)/n (n-3)/n ... (n-m)/n

Da notare le serie numeriche nelle diagonali:

1 2 3
, , , ...
n n n

n-m
Per visualizzare la funzione d(n,m) = 
n

poniamo n => k costante ed m => x x ∈ [0,k[

k-x 1
allora la ƒ(x) =  = 1 -  x
k k

può essere rappresentata da una famiglia di rette del tipo:

225
(fig. 7.6)

226
7.4 Sistemi di deduzione basati su regole

Siano x1,x2,...,xn variabili denotanti fatti atomici.


Per esempio proposizioni costanti di un linguaggio logico L.
Denoteremo con

xi - xj

una relazione binaria tra le variabili xi e xj a cui corrisponde una relazione


inversa che chiameremo duale:

xj - xi

Consideriamo delle regole di deduzione espresse nella forma:

xj implica xk

xj → xk (implicazione semantica)

xj ⇒ xk (implicazione logica)

xj → xk (deduzione logica sintattica)

xj -> xk (implicazione materiale logica)

xk <- xj (notazione per le clausole di horn)

utilizzeremo nel seguito la notazione seguente per denotare la regola


"Se xj allora xk":

xk :- xj.

Possiamo pensare a sistemi di questo tipo:

OR) xk :- x1.
xk :- x2.

Se (x1 v x2) allora xk.

AND) xk :- x1,x2.

227
Se (x1 & x2) allora xk.

In generale avremo sistemi di regole nella forma:

xk1 :- x1,x2,...,xn.

Se (x1 & x2 & ... & xn) allora xk.

Esempio:

1) x3 :- x1,x2.

2) x3 :- x2,x4.

3) x4 :- x2,x3.

4) x5 :- x3,x4.

5) x6 :- x2,x3,x4,x5.

dove xi sono fatti atomici appartenenti ad un insieme X.

Prendiamo la potenza di X |P(X)

allora le regole 1) - 5) possono essere interpretate come

una trasformazione T : |P(X) --> |P(X)

da {x1,x2,x3,x4,x5} ---> {x1,x2,x3,x4,x5,x6}

228
(fig 7.8)

Ne consegue che un insieme di regole arbitrario del tipo di quelle dell'esempio


può essere interpretato come una trasformazione (corrispondenza) dalla
potenza dell'insieme di definizione dei fatti su sè stesso.
In particolare, l'insieme di regole, corrisponde ad una trasformazione di
evidenze iniziali in una serie di generazioni successive di evidenze inferite.

Sia E0 = {e1,e2,...,et} un insieme di evidenze iniziali applicando le regole


all'insieme E0 una prima volta otteniamo un insieme di deduzioni
{x1,x2,...,xk} = D1.

L'insieme E1 = E0 ∪ D1 corrisponde ai fatti che rappresentano (con una


certa affidabilità) le nuove evidenze.

Applicando di nuovo le regole otteniamo da E1 un ulteriore insieme di


deduzioni {y1,y2,...,yh} = D2.

Prendendo E2 = E1 ∪ D2 otteniamo le nuove evidenze; il processo si ripete


fino a quando l'insieme di deduzioni ricavate dall'applicazione delle regole
risulta vuoto.
In tal modo si producono generazioni successive di evidenze.

229
Il processo è analogo alla generazione di nuove stringhe negli algoritmi
genetici: vedremo che l'analogia può essere spinta ad un livello di particolare
interesse.

Riassumendo si ha:

E0 ==> E1 ==> E2 ==> ... ==> Er

(fig 7.9)

Esempio:

Considerando le regole 1) - 5) dell'esempio precedente e prendendo come


E0 = {x1,x2} si ottiene:

E0 = {x1,x2}

E1 = {x1,x2,x3}

230
E3 = {x1,x2,x3,x4}

E4 = {x1,x2,x3,x4,x5,x6}

T T T T T
E0 ==> E1 ==> E2 ==> E3 ==> E4 ==> E4

231
7.5 Logiche a più di due valori

7.5.1 Logica modale non monotonica intuizionista

Gabbay (1982) ispirato dal primo formalismo non monotonico di debole


interpretazione di McDermott e Doyle, ha suggerito di costruire una logica
basata sull'inferenza intuitiva.
La logica intuizionista deriva da alcune considerazioni filosofiche sui
fondamenti della matematica, noti come intuizionismo.
Il punto di vista intuizionista sulla natura della logica di base e sulla
formazione teorica dei concetti differisce da quella classica sostenuta dalla
maggioranza dei matematici. Una delle principali differenze riguarda
l'interpretazione delle costanti logiche. Dal punto di vista classico, il
significato di una costante logica consiste in una regola che specifica le
condizioni di verità per una formula contenente la costante come connettivo
primario. Per esempio, il significato della regola di implicazione risiede
nell'affermare che ogni formula della forma A -> B è vera sse A è falsa o B è
vera. L'intuizionismo è stato fortemente influenzato dall'osservazione che una
formula è vera sse possiede una dimostrazione. In accordo con questa
osservazione, il significato intuizionista di una costante logica è meglio
compreso quando è considerato come una specificazione di qualcosa di
analogo ad una dimostrazione di una formula contenente la costante come
connettivo principale. Per esempio, il significato intuizionista
dell'implicazione è l'affermazione che la dimostrazione di una formula della
forma A -> B consiste nel trovare un metodo per cui qualche dimostrazione
intuizionista di A possa essere trasformata in una dimostrazione di B.
In altre parole, gli intuizionisti accettano la formula A -> B sse è possibile
costruire una dimostrazione di B a partire da A.
La negazione è strettamente correlata all'implicazione; per provare una formula
di negazione come ¬A, dal punto di vista intuizionista, occorre provare che
A -> Falso, cioè ¬A è accettata dagli intuizionisti se l'assunzione di A come
vera conduce ad una contraddizione che possa essere costruttivamente derivata.
Secondo questa interpretazione dell'implicazione e della negazione, risulta
evidente che la formula A -> ¬(¬A) è intuizionisticamente accettabile, mentre
la formula ¬(¬A) -> A non lo è.
Per provare, dal punto di vista intuizionista, una disgiunzione occorre provare
almeno un elmento della disgiunzione stessa.
Pertanto, A v B viene accettata dagli intuizionisti sse almeno uno tra A, B è
dimostrabile, nel senso che esiste un metodo costruttivo che consente di
determinarne la verità. Quest'ultima osservazione costringe gli intuizionisti a

232
rifiutare la legge del terzo escluso: A v ¬A. Infine, per provare una
congiunzione, dal punto di vista intuizionista, occorre provare tutti i termini
della congiunzione stessa.
Il linguaggio della logica proposizionale intuizionista consiste nel linguaggio
proposizionale solito con i connettivi ¬, ->, v, & per le affermazioni. Come
nella logica classica, la logica intuizionista può essere definita come un sistema
di deduzioni.
Nella logica intuizionista la disgiunzione e la congiunzione non possono
essere definite tramite l'implicazione e la negazione: entrambi i connettivi v e
& devono essere introdotti come connettivi primitivi.

Definizione 7.5.1
Sia L un linguaggio proposizionale.
Con I(L) denotiamo il sistema deduttivo <L,S,R> dove:

(i) S consiste nei seguenti assiomi

(1) A -> (A & A)


(2) (A & B) -> (B & A)
(3) (A -> B) -> ((A & C) -> (B & C))
(4) ((A -> B) & (B -> C)) -> (A -> C)
(5) B -> (A -> B)
(6) (A & (A -> B)) -> B
(7) A -> (A v B)
(8) (A v B) -> (B v A)
(9) ((A -> C) & (B -> C)) -> ((A v B) -> C)
(10) ¬A -> (A -> B)
(11) ((A -> B) & (A -> ¬B)) -> ¬B

(ii) R contiene (MP) modus ponens come sua unica regola.

Tutte le nozioni utilizzate nella logica classica si applicano anche alla logica
intuizionista, così possiamo parlare di dimostrazioni, teoremi, teorie, ecc.
nell'ambito della logica intuizionista e possiamo utilizzare le solite notazioni.

Teorema 7.5.2

Per ogni teoria T, le affermazioni dimostrabili nella logica intuizionista sono


un sottoinsieme di quelli dimostrabili nella logica classica.

233
Teorema 7.5.3

L'aggiunta dello schema A v ¬A (legge del terzo escluso) agli assiomi (1)-(11)
conduce alla logica proposizionale classica.

Teorema 7.5.4

Per ogni teoria T e ogni formula A:

(1) A ∈ Th(T) sse ¬¬A ∈ Thi(T)


(2) ¬A ∈ Th(T) sse ¬A ∈ Thi(T)

dove Th(T) = {A: T → A} è l'operatore di dimostrabilità della logica classica


e Thi(T) = {A : T →i A} è l'operatore di dimostrabilità della logica
intuizionista.

In letteratura si trovano alcune semantiche per la logica intuizionista, la più


comune è forse quella di Kripke (1965).
La semantica di Kripke può essere illustrata in termini di acquisizione della
conoscenza; consideriamo un flusso temporale (U,≤) dove U è un insieme di
istanti nel tempo e ≤ è un preordine su U, cioè una relazione transitiva e
riflessiva su U, interpretata come relazione di prima-dopo. A ciascun
istante t ∈ U e per ciascuna proposizione costante p, viene assegnato un
valore di verità m(t,p), dove m(t,p) non è interpretato nel senso di "p è vera
al tempo t" ma invece come "p è divenuta nota (è stata verificata) al tempo t";
ed un'importante ipotesi è che se t ≤ t' e m(t,p) = 1, allora anche m(t',p) = 1,
quindi una volta che p è stata verificata questa conoscenza non viene perduta.
Le proposizioni costanti rappresentano fatti unitari che possono essere
utilizzati per formare affermazioni complesse, in conseguenza dell'ipotesi
precedente la nozione di conoscenza acquisita si estende a tutto il linguaggio.
Una formula della forma A v B è considerata conosciuta ad un certo istante t
sse A è nota al tempo t oppure è noto B. Una formula della forma A & B è
conosciuta ad un certo istante t se sono noti sia A che B.
La formula A -> B è conosciuta al tempo t sse per ogni t' ∈ U, se t ≤ t' e A è
conosciuta al tempo t', allora anche B è noto.
Infine ¬A è conosciuta al tempo t sse non esiste un t' ∈ U tale che t ≤ t' e A è
nota al tempo t'.
Sulla base di queste regole e delle ipotesi su m delineate, è facile vedere che
nessuna informazione acquisita viene perduta e la conoscenza segue un
processo di continua crescita.

234
Definizione 7.5.5
Una struttura intuizionista per un linguaggio L consiste in una tripla
M = <U,≤,m>, dove

(i) U è un insieme non vuoto di istanti di tempo


(ii) ≤ è una relazione riflessiva e transitiva su U
(iii) m è una funzione che a ciascun t ∈ U e a ciascuna proposizione costante
di L assegna un elemento di {0,1}; se t ≤ t' e m(t,p) = 1 allora m(t',p) = 1.

Utilizziamo la notazione t M A per indicare che A è conosciuto al


tempo t in M, ovvero:

(1) t M p sse m(t,p) = 1, dove p è una proposizione costante in L;

(2) t M A v B sse t M A o t M B;

(3) t M A & B sse t M A e t M B;

(4) t M A -> B sse t' M B ogni volta che t' M A
per ogni t' ≥ t;

(5) t M ¬A sse non esiste un t' ≥ t tale che t' M A.

Denotiamo con t ¬M A la negazione di t M A.

Definizione 7.5.6
Diremo che A è vera in M = <U,≤,m> sse t M A , per ogni t ∈ U.

Una teoria T si dice conosciuta al tempo t in M, t M T, sse t M A, per


ogni A ∈ T. T è soddisfacibile sse t M T, per qualche M,t. Due teorie T e
T' si dicono intuizionisticamente equivalenti sse per ogni struttura
M = <U,≤,m> ed ogni t ∈ U, t M T sse t M T'. Le formula A e A’
sono intuizionisticamente equivalenti sse le teorie {A} e {A’} sono
equivalenti. Una formula A è intuizionisticamente implicata da una teoria T,
T i A, sse per ogni struttura M = <U,≤,m> e ogni t ∈ U, t M A ogni
volta che t M T.
Infine diremo che A è intuizionisticamente valida, i A, sse A è implicata
da T = {}, o, in maniera equivalente, sse A è vera in ogni struttura
intuizionista M.

235
Teorema 7.5.7 (Kripke)

Per ogni T ed ogni A:

(i) i→ A sse i A

(ii) T i→ A sse T i A.

Esempio:

Consideriamo la struttura M = <U,≤,m>, dove U = {a,b}, a ≤ b,


m(a,p)=0 e m(b,p)=1; poichè a ¬M ¬p e a ¬M p, a ¬M p v ¬p.
Questo mostra come p v ¬p non sia intuizionisticamente valida.

Esempio:

Definiamo A ≡ B come abbreviazione di (A -> B) & (B -> A) e consideriamo


lo schema A v B ≡ ¬A -> B. Questo schema valido nella logica classica non
è più valido nella logica intuizionista; per vederlo poniamo A = p, B = ¬p e
consideriamo la struttura dell'esempio precedente.
Poichè a ¬M p v ¬p e a M ¬p -> ¬p
otteniamo a ¬M (p v ¬p) ≡ (¬p -> ¬p).

Vediamo ora la logica non monotonica di Gabbay.


Partiamo estendendo la semantica di Kripke per la logica intuizionista alla
logica modale proposizionale utilizzando l'operatore modale M: una formula
MA può essere letta "è consistente assumere a questo istante che A sia vera".
Allora, MA può essere considerato come accettare come vero ora ciò che può
essere conosciuto in futuro.
Sia A ∈ L, la relazione t M A è definita come sopra.

(6) t M MA sse t' M A per qualche t' ≥ t.

Gabbay ignora l'operatore L comunque si può vedere facilmente che


definendo LA come abbreviazione di ¬M¬A si ottiene

(7) t M LA sse per ogni t' ≥ t esiste t" ≥ t' tale che t" M A.

Utilizzeremo le notazioni solite con il prefisso G per indicare la logica


intuizionista di Gabbay.

236
Esempio:

Mostriamo che per ogni A ∈ L la formula MA v ¬A è G-valida.


Prendiamo una qualsiasi struttura M = <U,≤,m> e sia t ∈ U.
Consideriamo i due casi:

(1) t' M A per qualche t' ≥ t; allora t M MA


e quindi t M MA v ¬A
(2) t' ¬M A per ogni t' ≥ t; allora t M ¬A
e quindi t MMA v ¬A.

Poichè M e t sono scelti arbitrariamente se ne conclude che


MA v ¬A è G-valida.

Si può vedere facilmente che i seguenti schemi sono G-validi:

(G1) ¬MA ≡ ¬A
(G2) (MA -> B) ≡ ¬A v B
(G3) (MA -> A) ≡ ¬A v A
(G4) (MA -> ¬A) ≡ ¬A
(G5) M(A & B) -> MA & MB.

Esempio:

Sia T = {Mp, ¬p}; T non è soddisfacibile nella G-logica.

Esempio:

Sia T = {¬Mp}; nella G-logica T è equivalente a {¬p}.

Esempio:

Sia T ={M(p & q), ¬p}; T non è soddisfacibile nella G-logica.

Definizione 7.5.8 (Gabbay 1982)


Diremo che una formula B segue non monotonicamente da una formula A e
scriveremo A > B sse esiste una sequenza finita di formule
C0 = A, C1, ..., Cn = B e un insieme EA di formule

237
MD11, ..., MD1k
. .
. .
. .
MDn1, ..., MDnk

chiamate assunzioni extra tali che

k
(1) { Ci-1 & ∩ MDij } G Ci per tutti 1≤i≤n, 1≤j≤k
j=1

(2) Se {A} è G-soddisfacibile allora EA ∪ {A} è G-soddisfacibile.

La sequenza C0, C1, ..., Cn si dice dimostrazione non monotonica di B da A.

La condizione (2) omessa nella formulazione originaria di Gabbay restringe le


assunzioni extra delle dimostrazioni non monotoniche solo a quelle
G-soddisfacibili. Se si ignora questa restrizione, la nozione di dimostrazione
non monotonica diviene estremamante problematica. Per esempio, ogni
formula potrebbe essere ricavata non monotonicamente da ogni formula della
forma ¬A, infatti potremmo considerare MA come una assunzione extra e
quindi, poichè
t ¬M ¬A & MA per tutti gli M,t ,
otteniamo {¬A & MA} G B per qualsiasi formula B.

Esempio:

Sia A = Mp -> p. Poichè {(Mp -> p) & Mp} G p e {(Mp -> p) & Mp}
è G-soddisfacibile, la sequenza C0 = Mp -> p, C1 = p è una dimostrazione
non monotonica di p da A; l'insieme di assunzioni extra utilizzato in questa
dimostrazione consiste di EA = {Mp}.
In maniera analoga, poichè
{(Mp -> p) & M¬P} G ¬p e {(Mp -> p) & M¬p} è G-soddisfacibile,
la sequenza C0 = Mp -> p C1 =¬p è una dimostrazione non monotonica di
¬p da A, e per tale dimostrazione EA = {M¬p}.
In conclusione A > p e A > ¬p.

Dall'esempio appena visto appare evidente che il sistema di Gabbay risulta


problematico nelle applicazioni formali del ragionamento basato sul senso

238
comune. Che una formula e la sua negazione possano essere non
monotonicamente derivabili da una affermazione particolare non è
sorprendente e nemmeno porta a particolari difficoltà, comunque possiamo,
come Gabbay suggerisce, scegliere una alternativa tra quelle possibili e da lì
procedere, ma il problema consiste nel fatto che se scegliamo di inferire ¬p
da Mp ->p, le nostre scelte appaiono intuitivamente non fondate; infatti dal
punto di vista del ragionamento basato sul senso comune il modo di intendere
Mp -> p è "considerare p vera a meno di evidenze che mostrano il contrario".
Il concetto "B segue non monotonicamente da una formula A" può essere
generalizzato ovviamente al concetto "B segue non monotonicamente da una
teoria T":

Definizione 7.5.8

Una formula B segue non monotonicamente da una teoria T, T G> B,


sse A G> B, dove A = A1 & ... & An, e Ai ∈ T (1≤i≤n).

Esempio:

Sia T = {Mp -> p, p & Mq -> q}.


Consideriamo A = {Mp -> p} & (p & Mq -> q).
Poichè {A & Mp} G A & p, {A & p & Mq} G q, a l'insieme
{A} ∪ {Mp,Mq} è G-soddisfacibile, la sequenza C0 = A, C1 = A & p, e
l'insieme {A} ∪ {Mp,Mq} è G-soddisfacibile, la sequenza C0 = A1,
C1 = A & p, C2 = q è una dimostrazione non monotonica di q in A.

(∃A) = {Mp,Mq}. Allora T G> q.

239
7.5.2 Logica modale non monotonica a tre valori

Un differente approccio al problema di formalizzare la logica non


monotonica è stato proposto da Turner (1984); il suo sistema analogo a quello
di Gabbay, si basa sulla logica a tre valori di Kleene.

A differenza del punto di vista della logica classica, in cui ogni formula può
essere o vera o falsa, nella logica a tre valori si ammette l'esistenza di una terza
possibilità. Questo terzo valore può essere interpretato in maniere diverse, ma
generalmente esso rappresenta uno stato intermedio tra la verità
dell'affermazione e la sua negazione.
Nella logica a tre valori di Kleene (1952), una formula può essere vera (1),
falsa (0) o indecidibile (u). Intuitivamente, una formula si trova nello stato (u)
se la sua funzione di verità non è nota. Questa interpretazione porta alle
seguenti tavole di verità per i connettivi tra le frasi:

¬A | A & B | 1 u 0 A v B | 1 u 0
------- ------------------ ------------------
1 | 0 1 | 1 u 0 1 | 1 1 1
u | u u | u u 0 u | 1 u u
0 | 1 0 | 0 0 0 0 | 1 u 0

A -> B | 1 u 0 A ≡ B | 1 u 0
-------------------- -------------------
1 | 1 u 0 1 | 1 u 0
u | 1 u u u | u u u
0 | 1 1 1 0 | 0 u 1

la logica di Kleene (K-logica) è specificata su un linguaggio L analogamente


alla logica classica.

Definizione 7.5.9
Una interpretazione parziale per L consiste in una funzione m che assegna ad
ogni proposizione costante di L un elemento {0,1,u}.

Il valore di una formula A in una interpretazione m, denotata con V(A), è un


elemento di {0,1,u} specificato come segue:

(1) V(p) = m(p) per ogni proposizione costante p


(2) V(¬A) = ¬V(A)
(3) V(A & B) = V(A) & V(B)
240
(4) V(A v B) = V(A) v V(B)
(5) V(A -> B) = V(A) -> V(B)
(6) V(A ≡ B) = V(A) ≡ V(B)

dove ¬, &, v, -> e ≡ sono calcolati in accordo con le tavole di verità sopra
riportate.
Diremo che A è K-valida sse V(A) = 1, per ogni interpretazione parziale m.
È interessante notare che la legge del terzo escluso non è valida nella K-logica,
cioè lo schema A v ¬A non è K-valido.
L'insieme dei valori di verità {1,u,0} possiede un ordine parziale naturale,
≤, dato da 1≤1, u≤u, 0≤0, u≤0, u≤1:

1 0
\ /
u

Intuitivamente i≤j sse i fornisce minore (o uguale) informazione di j.

Definizione 7.5.10
Siano m ed m' due interpretazioni parziali per L. Diremo che m' estende m,
m≤m', sse m(p) ≤ m'(p), per ogni proposizione costante p ∈ L.

Teorema 7.5.11

Per ogni A ∈ L, se m ≤ m', allora V(A) in m è ≤ V(A) in m'.

Accenniamo, brevemente, alla logica non monotonica di Turner.


Il suo sistema è costruito su di un linguaggio logico modale del primo ordine,
comprendente un operatore modale M : una formula della forma MA si
interpreta "A è plausibile".
Il sistema di Turner si basa concettualmente sulle seguenti assunzioni:

(1) Le inferenze non monotoniche sono necessarie ed appropriate


solo in quelle situazioni in cui la nostra conoscenza sul mondo
è incompleta.

(2) Ogni conclusione non monotonica derivata dalle nostre osser-


vazioni deve essere plausibile rispetto alle informazioni parziali
in nostro possesso.

241
Nella logica di Turner, stati di informazione incompleta sono
rappresentati da interpretazioni parziali della K-logica.
Per descrivere l'idea di "conclusione palusibile" egli introduce una relazione
binaria ≈>, operante tra due interpretazioni: la relazione m1 ≈> m2 si legge
"m2 plausibilmente estende m1".
L'intenzione è quella di esprimere il fatto che A è plausibile relativamente ad
un certo stato di conoscenza rappresentato da m sse A è vera in qualche
interpretazione che plausibilmente estende m.
Occorre sottolineare che la relazione di plausibilità ≈> è un concetto
primitivo; come la relazione di accessibilità implementata nella logica modale,
la relazione di plausibilità non può essere definita più precisamente. Il
massimo che si può fare consiste nell'imporre alcune proprietà che tale
relazione deve possedere, in maniera tale da riflettere la nostra idea di mondo
plausibile.

Definizione 7.5.12 (Turner 1984)


Sia ≈> una relazione binaria specificata su un insieme F di interpretazioni
parziali della K-logica.
Diremo che ≈> è una relazione di plausibilità sse

(1) m ≈> m' implica m ≤ m'

(2) m ≈> m

(3) m ≈> m' e m' ≈> m" implica m ≈> m"

per tutti m,m',m" in F.

La logica non monotonica di Turner si basa sui seguenti concetti semantici:

Definizione 7.5.13 (Turner 1984)


Una struttura modello per L consiste in un sistema M = <F,≈>>, dove F è
l'insieme di tutte le interpretazioni parziali per L e ≈> è la relazione di
plausibilità su F.

È interessante osservare che la nozione di struttura modello restringe il


concetto di struttura intuizionistica di Kripke; più specificatamente, ogni
struttura modello <F,≈>> può essere vista come una struttura intuizionista
<F,≈>,m> dove per ogni m' ∈ F, m(m',p) = 1 sse m'(p) = 1.

242
Si può vedere facilmente che <F,≈>,m> è una struttura intuizionista se <F,≈>>
è una struttura modello.

Definizione 7.5.14 (Turner 1984)


Sia M = <F,≈>> una struttura modello per un linguaggio L.
Con Vm(A) denotiamo il valore di una formula A in M dove m ∈ F.
Allora Vm(A) è un elemento di {1,u,0} definito dalle regole seguenti:

(1) Vm(p) = m(p) per ogni proposizione costante p ∈ L


(2) Vm(A v B) = Vm(A) v Vm(B)
(3) Vm(A & B) = Vm(A) & Vm(B)
(4) Vm(¬A) = ¬Vm(A)
(5) Vm(A -> B) = Vm(A) -> Vm(B)
(6) Vm(A ≡ B) = Vm(A) ≡ Vm(B)

(7) sia m ≈> m' m' ∈ F


Vm(MA) = 1 se Vm'(A) = 1 per qualche m'
Vm(MA) = 0 se Vm'(A) = 0 per ogni m'
Vm(MA) = u negli altri casi

dove v, &, ¬, -> e ≡ sono i connettivi con lo stesso significato attribuito nella
logica di Kleene.

Le regole dalla (1) alla (6) sono esattamente le regole di valutazione per la
K-logica. La regola (7) fornisce la semantica per l'operatore M; in accordo con
tale regola, MA è vera rispetto ad una interpretazione parziale m sse A è vera
in qualche interpretazione che plausibilmente estende m; MA è falsa rispetto ad
una interpretazione parziale m sse A è falsa in tutte le interpretazioni parziali.
Denoteremo la logica di Turner come T-logica.

Corollario 7.5.15

Sia A ∈ L, cioè A non coinvolge l'operatore M, e supponiamo che


M = <F,≈>> sia una struttura modello per L.
Allora per tutti m,m' in F, m ≈> m' implica Vm(A) ≤ Vm'(A).

Esempio:

Assumiamo che p sia l'unica proposizione costante di un linguaggio L e


consideriamo la struttura modello m = <F,≈>> definita da:

243
F = {m1,m2,m3} dove m1(p)=u, m2(p)=0, m3(p)=1;
≈> = {<m1,m2>,<m1,m3>} ∪ {<mi,mi>:i=1,2,3}.

Prendiamo A = Mp. Allora vale Vm1(A)=1 e Vm2(A)=0.

Le nozioni semantiche per la K-logica possono essere riportate nella


T-logica; in particolare diremo che una formula A è vera in M = <F,≈>> sse
Vm(A)=1 per ogni m ∈ F.
Una teoria T si dice T-soddisfatta in M da m, m ⇒ T sse Vm(A)=1 per ogni
A ∈ T. T si dice T-soddisfacibile sse m ⇒ T per qualche M = <F,≈>> e
qualche m ∈ F. Una formula A si dice T-implicata da T, T ⇒ A, sse m ⇒ A
ogni volta che m ⇒ T , per ogni M = <F,≈>> ed ogni m ∈ F.
Se T ⇒ A diremo anche che A T-segue da T.

Esempio:

Sia L = {¬Mp}. In accordo con la nostra intuizione, T ⇒ ¬p.


Per mostrare questo risultato, prendiamo una struttura modello M = <F,≈>> e
assumiamo che Vm(¬Mp) = 1, per qualche m ∈ F. Allora Vm(Mp) = 0 e
quindi Vm'(p)=0 per ogni m' tale che m ≈> m'.
In particolare, Vm(p)=0 poichè m ≈> m. Allora Vm(¬p)=1.

Esempio:

Sia T = {Mp,¬p}.
In accordo con le nostre aspettative, T non è T-soddisfacibile e quindi
qualsiasi formula T-segue da T.
Per vedere questo, assumiamo il contrario, cioè che Vm(Mp)=1 e Vm(¬p)=1,
per qualche M = <F,≈>> e qualche m ∈ F.
Vm(Mp)=1 implica Vm'(p)=1, per qualche m' tale che m ≈> m'.
Vm(¬p)=1 implica che Vm(p)=0 per tutti m' tali che m ≈> m'.
Questo porta ad una contraddizione.

Allo stesso modo si può dimostrare la non soddisfacibilità di una teoria


{MA,¬A}, in cui A non presenti ricorrenze dell'operatore M. Nel caso in cui
A includa l'operatore M, {MA,¬A} potrebbe essere soddisfacibile. Prendiamo
per esempio A = ¬Mp e consideriamo la struttura modello M = <F,≈>>
definita come:

244
F = {m1,m2,m3} dove m1(p)=u, m2(p)=0, m3(p)=1;
≈> = {<m1,m2>,<m1,m3>} ∪ {<mi,mi>:i=1,2,3}.

è facile verificare che Vm1(MA)=1 e Vm1(¬A)=1.

Turner considera questa situazione come intuitivamente corretta, se il lettore


non fosse di questa opinione dovrebbe comunque notare un punto importante:
ogni formula senza modalità rappresenta un fatto di un mondo reale, in tal caso
non è razionale accettare che tale fatto sia falso e simultaneamente
considerarlo plausibile; comunque, se una formula include una modalità, essa
rappresenta ciò che un agente ritiene plausibile o non plausibile intorno a fatti
del mondo, e in tal caso un fatto può essere plausibile rispetto ad un
determinato stato della conoscenza m e non plausibile in una qualche
estensione di questa; le formule modalizzate possono cambiare i loro valori
di verità quando la conoscenza degli agenti aumenta. Se A è una tale formula,
forzare la non soddisfacibilità di {MA,¬A} è intuitivamente ingiustificato.

Esempio:

Sia T = {M(p & q), ¬p}. Una tale teoria non è T-soddisfacibile.
Più generalmente, la teoria {M(A & B), ¬A} è non T-soddisfacibile se
A non include ricorrenze di M, nel caso contrario essa potrebbe essere
soddisfacibile.

Per costruire una versione non monotonica della T-logica Turner ha suggerito
di implementare il meccanismo delle "extra assunzioni" di Gabbay.

Esempio:

Sia T = {Mp -> p}.


Nella logica non monotonica di Turner, T si comporta esattamente come nel
sistema di Gabbay, cioè T  p e T  ¬p.
Mostriamo che T  ¬p facendo vedere che {(Mp -> p) & M¬p)} ⇒ ¬p,
infatti {Mp -> p, M¬p} è T-soddisfacibile.
Prendiamo una struttura modello M = <F,≈>> tale che
Vm((Mp -> p) & M¬p)=1 per qualche m ∈ F e assumiamo che Vm(¬p) ≠ 1.

Consideriamo due casi:

245
(1) Vm(¬p)=0. Allora Vm(p)=1 e quindi Vm(p)=1 per ogni m' tale
che m ≈> m'; d'altra parte Vm((Mp -> p) & M¬p)=1 implica
Vm(M¬p)=1 e perciò Vm(p)=0 per qualche m' tale che m ≈> m'.
Questo porta ad una contraddizione.

(2) Vm(¬p)=u. Allora Vm(p)=u, Vm((Mp -> p) & M¬p)=1 implica


Vm(Mp -> p) = 1. Allora , poichè Vm(p)=u, Vm(Mp)=0 si ha
Vm'(p)=0 per ogni m' tale che m ≈> m'; inparticolare Vm(p)=0 poi-
chè m ≈> m. Questo porta ad una contraddizione.

La possibilità di ricavare ¬p da Mp -> p mostra che la logica non monotonica


di Turner soffre esattamente degli stessi problemi incontrati con il formalismo
di Gabbay, quando venga considerato come uno strumento per rappresentare
le inferenze basate sul senso comune.

246
7.5.3 Logica modale non monotonica a quattro valori

Vediamo ora una ulteriore generalizzazione della logica a tre valori: un


ulteriore approccio al problema di formalizzare la logica non monotonica.
A partire dalla logica a tre valori di Kleene in cui una formula può essere o
vera (1), falsa (0) o indecidibile (u) aggiungiamo ora un ulteriore valore che
chiameremo contraddizione elementare (c); per introdurre questo concetto
consideriamo un linguaggio proposizionale L composto di n formule
atomiche <p1,p2,...,pn> sia <m1,m2,...,mn> una interpretazione per L
dove ciascun m1,m2,...,mn è descritto da una coppia di vettori
<b1,b2,...,bn | d1,d2,...,dn> di 2n variabili binarie secondo la seguente regola
tabellare di derivazione dei valori di verità :

bi di | mi
-----------------
0 0 | u (Vm(Pi) = u mancanza di informazione)
1 0 | 1 (Vm(Pi) = 1 Pi è vera)
0 1 | 0 (Vm(pi) = 0 ¬Pi è vera)
1 1 | c (Vm(pi) = c contraddizione elementare)

Questa interpretazione porta alle seguenti tavole di verità per i connettivi tra le
frasi:
¬A | A & B | 1 u c 0 A v B | 1 u c 0
------- ---------------------- ---------------------
1 | 0 1 | 1 u 0 0 1 | 1 1 1 1
u | u u | u u 0 0 u | 1 u u u
c | c c | 0 0 0 0 c | 1 u 0 0
0 | 1 0 | 0 0 0 0 0 | 1 u 0 0

A -> B | 1 u c 0 A ≡ B | 1 u c 0
----------------------- ----------------------
1 | 1 u 0 0 1 | 1 u 0 0
u | 1 u 0 u u | u u u u
c | 0 0 0 0 c | 0 u 1 0
0 | 1 1 0 1 0 | 0 u 0 1

la logica sopradescritta, che denoteremo con O-logica, è specificata su un


linguaggio L analogamente alla logica classica.

247
Definizione 7.5.16
Una interpretazione parziale per L consiste in una funzione m che assegna ad
ogni proposizione costante di L un elemento {0,1,u,c}.

Il valore di una formula A in una interpretazione m, denotata con V(A), è un


elemento di {0,1,u,c} specificato come segue:

(1) V(p) = m(p) per ogni proposizione costante p


(2) V(¬A) = ¬V(A)
(3) V(A & B) = V(A) & V(B)
(4) V(A v B) = V(A) v V(B)
(5) V(A -> B) = V(A) -> V(B)
(6) V(A ≡ B) = V(A) ≡ V(B)

dove ¬, &, v, -> e ≡ sono calcolati in accordo con le tavole di verità sopra
riportate.
Diremo che A è O-valida sse V(A) = 1, per ogni interpretazione parziale m.
È interessante notare che la legge del terzo escluso non è valida nella
O-logica, cioè lo schema A v ¬A non è O-valido; comunque se Vm(A) = 1
allora Vm(¬A) = 0 e viceversa.
L'insieme dei valori di verità {u,1,0,c} possiede un ordine parziale naturale
(n-ordine), ≤, dato da 1≤1, u≤u, 0≤0, c≤c, u≤0, u≤1, 1≤c, 0≤c:

c
/ \
1 0
\ /
u

Intuitivamente i≤j sse i fornisce un minor numero di bit (o uguale) di


informazione rispetto a j; da notare che l'informazione globale utile diviene
zero quando due bit di informazione sono contradditori, in tal caso
l'ordinamento per l'informazione utilizzabile diviene: (ordine parziale logico
l-ordine) 1≤1, u≤u, 0≤0, c≤c, u≤0, u≤1, c≤1, c≤0:

1 0
\ /
c - u

248
Definizione 7.5.17
Siano m ed m' due interpretazioni parziali per L.

(i) Diremo che m' estende m relativamente ad un n-ordine, m≤m',


sse m(p) ≤ m'(p), per ogni proposizione costante p ∈ L secondo la
relazione d'ordine naturale (n-ordine).
(ii) Diremo che m' estende m relativamente ad un l-ordine, m≤m',
sse m(p) ≤ m'(p), per ogni proposizione costante p ∈ L secondo la
relazione d'ordine logica (l-ordine).

Teorema 7.5.18

Per ogni A ∈ L, secondo un n-ordine, se m ≤ m', allora V(A) in m


è ≤ V(A) in m' secondo un n-ordine.

Il significato dell'ordinamento naturale m ≤ m' descrive un incremento di


informazione; quando due bit di informazione sono contradditori
l'informazione aggiuntiva ottiene l'effetto di elidere una informazione
precedentemente ritenuta valida: un'affermazione ritenuta vera si dimostra
contradditoria e quindi non utilizzabile.
Il significato dell'ordinamento logico m ≤ m' descrive la possibilità di un
decremento di informazione quando affermazioni vere o false divengono
contradditorie.

Accenniamo alla logica non monotonica che risulta dallo schema sopra
proposto.
Il sistema è costruito su di un linguaggio logico modale del primo ordine,
comprendente un operatore modale M : una formula della forma MA si
interpreta "A è plausibile".
Il sistema è basato concettualmente sulle seguenti assunzioni:

(1) Le inferenze non monotoniche sono necessarie ed appropriate


solo in quelle situazioni in cui la nostra conoscenza sul mondo
è incompleta.

(2) Ogni conclusione non monotonica derivata dalle nostre osser-


vazioni deve essere plausibile rispetto alle informazioni parzia-
li in nostro possesso.

249
(3) Ogni conclusione non è mai definitiva, anche se derivata da
precise osservazioni può essere contraddetta in qualsiasi momen-
to da eventi futuri non ancora noti.

Nella logica prospettata, stati di informazione incompleta sono rappresentati


da interpretazioni parziali della O-logica.
Per descrivere l'idea di "conclusione palusibile" si introduce una relazione
binaria ≈>, operante tra due interpretazioni: la relazione m1 ≈> m2 si legge
"m2 plausibilmente estende m1".
L'intenzione è quella di esprimere il fatto che A è plausibile relativamente ad
un certo stato di conoscenza rappresentato da m sse A è vera in qualche
interpretazione che plausibilmente estende m.
Occorre sottolineare che la relazione di plausibilità ≈> è un concetto
primitivo; come la relazione di accessibilità implementata nella logica modale,
la relazione di plausibilità non può essere definita più precisamente. Il
massimo che si può fare consiste nell'imporre alcune proprietà che tale
relazione deve possedere, in maniera tale da riflettere la nostra idea di mondo
plausibile.

Definizione 7.5.19
Sia ≈> una relazione binaria specificata su un insieme F di interpretazioni
parziali della O-logica.
Introduciamo il concetto di generazione.
Consideriamo generazioni successive di interpretazioni m0,m1,...
ciascuna ricavabile dalla precedente sulla base di attribuzione di nuovi valori
di verità a partire da una interpretazione iniziale m0, secondo le seguenti
regole:

(i) il valore di verità u può divenire 1,0,c;


(ii) il valore di verità 1 può divenire c;
(iii) il valore di verità 0 può divenire c;
(iv) il valore di verità c non può cambiare.

Diremo che ≈> è una relazione di plausibilità sse

(1) m ≈> m' implica m ≤ m' alla prima generazione

(2) m ≈> m alla generazione zero

(3) m ≈> m' e m' ≈> m" implica m ≈> m" alla seconda generazione

250
per tutti m,m',m" in F.

Una tale logica non monotonica si basa sui seguenti concetti semantici:

Definizione 7.5.20
Una O-struttura modello per L consiste in un sistema M = <F,≈>>, dove F è
l'insieme di tutte le interpretazioni parziali per L e ≈> è la relazione di
plausibilità su F.

È interessante osservare che ora la nozione di O-struttura modello si


differenzia dal concetto di struttura intuizionistica di Kripke; più
specificatamente, ogni struttura modello <F,≈>> non può essere vista come
una struttura intuizionista <F,≈>,m>, come nel caso della struttura modello di
Turner, infatti non è più vero che per ogni m' ∈ F, m(m',p) = 1 sse m'(p) = 1;
poichè nel momento in cui si creano contraddizioni anche se m(m',p) = 1 può
essere che m'(p) = c.

Definizione 7.5.21
Sia M = <F,≈>> una O-struttura modello per un linguaggio L.
Con Vm(A) denotiamo il valore di una formula A in M dove m ∈ F.
Allora Vm(A) è un elemento di {1,u,c,0} definito dalle regole seguenti:

(1) Vm(p) = m(p) per ogni proposizione costante p ∈ L


(2) Vm(A v B) = Vm(A) v Vm(B)
(3) Vm(A & B) = Vm(A) & Vm(B)
(4) Vm(¬A) = ¬Vm(A)
(5) Vm(A -> B) = Vm(A) -> Vm(B)
(6) Vm(A ≡ B) = Vm(A) ≡ Vm(B)

(7) sia m ≈> m' m' ∈ F


Vm(MA) = 1 se Vm'(A) = 1 per qualche m'
e Vm'(A) ≠ c per ogni m'
Vm(MA) = 0 se Vm'(A) = 0 per ogni m'
e Vm'(A) ≠ c per ogni m'
Vm(MA) = u negli altri casi

dove v, &, ¬, -> e ≡ sono i connettivi con lo stesso significato attribuito nella
O-logica sopra esposta.

251
Le regole dalla (1) alla (6) sono esattamente le regole di valutazione per la
O-logica. La regola (7) fornisce la semantica per l'operatore M; in accordo
con tale regola, MA è vera rispetto ad una interpretazione parziale m sse A è
vera in qualche interpretazione che plausibilmente estende m, ma che non
contenga contraddizioni elementari; MA è falsa rispetto ad una
interpretazione parziale m sse A è falsa in tutte le interpretazioni parziali,
purchè non siano presenti contraddizioni elementari.
Denoteremo la logica così ricavata con B-logica.

Corollario 7.5.22

Sia A ∈ L, cioè A non coinvolge l'operatore M, e supponiamo che


M = <F,≈>> sia una O-struttura modello per L.
Allora per tutti m,m' in F, m ≈> m' implica Vm(A) ≤ Vm'(A) secondo l'ordine
naturale.

Esempio:

Assumiamo che p sia l'unica proposizione costante di un linguaggio L e


consideriamo la struttura modello m = <F,≈>> definita da:

F = <b1 | d1> = {<0 | 0>,<0 | 1>,<1 | 0>,<1 | 1>};


= {m1,m2,m3,m4} dove m1(p)=u, m2(p)=0, m3(p)=1 m4(p)=c;
≈> = {<m1,m2>,<m1,m3>,<m1,m4>} ∪ {<mi,mi>:i=1,2,3,4}.

Prendiamo A = Mp. Allora vale Vm1(A)=1 e Vm2(A)=0.

Le nozioni semantiche per la O-logica possono essere riportate nella


B-logica; in particolare diremo che una formula A è vera in M = <F,≈>> sse
Vm(A)=1 per ogni m ∈ F.
Una teoria T si dice B-soddisfatta in M da m, m ⇒ T sse Vm(A)=1 per ogni
A ∈ T. T si dice B-soddisfacibile sse m ⇒ T per qualche M = <F,≈>> e
qualche m ∈ F. Una formula A si dice B-implicata da T, T ⇒ A, sse m ⇒ A
ogni volta che m ⇒ T , per ogni M = <F,≈>> ed ogni m ∈ F. Se T ⇒ A diremo
anche che A B-segue da T.

252
7.6 Rappresentazione in uno spazio vettoriale binario

Introduciamo alcune ulteriori convenzioni sulle notazioni.

Definizione 7.6.1
Sia L un linguaggio logico proposizionale.
{p1,p2,...,pn} ∈ L.
Siano x1,x2,...,xn fatti atomici corrispondenti a p1,p2,...,pn.
Siano b1,b2,...,bm variabili binarie, tali per cui bi ∈ {0,1}
{b1,b2,...,bm} ∈ X.
Poniamo che xi sia descrivibile con una combinazione di bj:
xi = {b1,b2,...,bj} ovvero xi = b1 & b2 & ... & bj.
allora {x1,x2,...,xn} ∈ |P(X).

Siano x1,x2,x3,x4,x5 ∈ |P(X).

Rappresentiamo le seguenti implicazioni con:

1) x1 -> x2 con x2 :- x1.

2) x1 & x2 & x3 -> x4 con x4 :- {x1,x2,x3}. o anche


x4 :- x1,x2,x3.

3) x1 -> x2 v x3 con [x2,x3] :- x1.

4) x1 & x2 & x3 -> x4 v x5 con [x4,x5] :- {x1,x2,x3}. o anche


[x4,x5] :- x1,x2,x3.

5) x1 v x2 v x3 -> x4 con x4 :- [x1,x2,x3]. o anche


x4 :- x1.
x4 :- x2.
x4 :- x3.

6) x1 -> x2 & x3 con {x2,x3} :- x1. o anche


x2 :- x1.
x3 :- x1.

7) x1 & x2 & x3 -> x4 & x5 con {x4,x5} :- {x1,x2,x3}. o anche


x4 :- x1,x2,x3.
x5 :- x1,x2,x3.

253
8) x1 v x2 v x3 -> x4 & x5 con {x4,x5} :- [x1,x2,x3]. o anche
x4 :- [x1,x2,x3].
x5 :- [x1,x2,x3]. o anche
x4 :- x1.
x4 :- x2.
x4 :- x3.
x5 :- x1.
x5 :- x2.
x5 :- x3.

In altri termini:

{x1,x2,x3} corrisponde a x1 & x2 & x3


[x1,x2,x3] corrisponde a x1 v x2 v x3.

Definizione 7.6.2
Sia B un insieme numerabile finito di variabili binarie B = {b1,b2,...,bn}
consideriamo l'insieme potenza di B, X = |P(B), X contiene

n n
Σ ( ) elementi distinti
k=1 k

Siano xi,xj ∈ X;
xi = {bi1,bi2,...,bih}, xj = {bj1,bj2,...,bjl} denotiamo con

{xi,xj} = xi ∪ xj = {b1,b2,...,bk} bk ∈ (xi v xj)

{xi,xj} = xi & xj = (bi1 & ... & bih) & (bj1 & ... & bjl)

[xi,xj] = xi v xj = (bi1 & ... & bih) v (bj1 & ... & bjl)

allora xi & xj è equivalente a xi ∪ xj mentre

[xi,xj] è equivalente a xi ∩ xj & [(xi \ xj) v (xj \ xi)]

se denotiamo con xi δ xj = [(xi \ xj) v (xj \ xi)] ne segue che

[xi,xj] è equivalente a (xi ∩ xj) ∪ (xi δ xj).

254
in particolare è possibile trasformare la regola:

[xi,xj] :- xk.

nelle regole equivalenti:

{(xi ∩ xk)} :- xk.


[(xi δ xk)] :- xk.

o anche

(xi ∩ xk) :- xk.


[(xi \ xj),(xj \ xi)] :- xk.

Proposizione 7.6.3
È possibile eseguire una trasformazione da un sistema di regole dato ad un
sistema di regole valido per le variabili binarie tramite sostituzione di variabili.

Esempio:

Sia {xi,xj} :- xk. un sistema di regole R1 dove:


xi = {bi1,....,bih}, xj = {bj1,...,bjl} e xk = {bk1,...,bkm}
allora R1 diviene, R2 :

xi :- xk.
xj :- xk.

Sostituendo si ottiene R3:

{bi1,...,bih} :- xk.
{bj1,...,bjl} :- xk.

da cui R4:

bi1 :- xk. bi2 :- xk. ... bih :- xk.


bj1 :- xk. bj2 :- xk. ... bjh :- xk.

eliminando le regole doppie, cioè le regole che si presentano identiche due


volte nel sistema, si ottiene R5
(regola zero di riduzione dei sistemi) :

255
br1 :- xk. br2 :- xk. ... brn :- xk.

dove brl ∈ (xi ∪ xj) (1≤l≤n)

ovvero (xi ∪ xj) :- xk. come si voleva mostrare.

Esempio:

Consideriamo il seguente sistema di regole R6:

[xi,xj] :- xk.

allora per ogni brl ∈ (xi ∩ xj) si ha brl :- xk.


mentre ogni combinazione di brm ∈ [(xi \ xj) v (xj \ xi)]
sono, in alternativa, deducibili da xk; si ha pertanto R7:

(xi ∩ xj) :- xk.


(xi δ xj) :- xk.

come si voleva mostrare.

Definizione 7.6.4
Data una regola nella forma xk :- x1,x2,x3,...,xn.
diremo che xk è la testa della regola mentre {x1,x2,...,xn} costituisce il corpo
della regola.

Prendiamo in esame un sistema di rappresentazione di una "realtà di interesse"


esterna.
Come possiamo rappresentare internamente fatti, eventi, oggetti, attributi, ecc.
di una realtà esterna?

Definizione 7.6.5
Consideriamo n variabili binarie ordinate <b1,b2,...,bn>.
Sia B l'insieme di tali variabili bi ∈ B.

Sia p : B --> [0,1] una funzione interpretabile come probabilità definita per
ogni bi ∈ B.

256
Interpretiamo B come sistema di rappresentazione di una realtà esterna R, in
particolare poniamo che ciascun valore binario bk sia in relazione con una
variabile esterna al sistema a cui sono accessibili n stati.
Consideriamo per esempio tre monete.
Tre monete possono trovarsi nelle (2 exp(3) = 8 ) configurazioni:

<TTT>,<TTC>,<TCT>,<TCC>,<CTT>,<CTC>,<CCT>,<CCC>.

Supponiamo che bk rappresenti la configurazione <TTT>.

Allora possiamo interpretare la funzione p nel seguente significato:

p(bk) = 1 la configurazione <TTT> è vera


p(bk) = 0 la configurazione <TTT> è falsa
0 < p(bk) < 1 la configurazione è sconosciuta

A priori si potrebbe dire che p(bk) = 1/8.


Informazione ricavabile dalla conoscenza delle configurazioni possibili, ma
tale conoscenza è sconosciuta al sistema all'inizio, per definizione.

L'informazione apportata al sistema dall'osservazione delle monete è data da :


Inf. = - ln(1/8) = 3 bit.
L'informazione registrata nel sistema dopo l'osservazione della
configurazione, siccome può essere solo o <TTT> o ¬<TTT>, consiste in 1 bit
di informazione.

Supponiamo di utilizzare due vettori binari per rappresentare i fatti:


<b1,b2,...,bn> e <d1,d2,...,dn> tali che ciascun valore binario bk sia
accoppiato al rispettivo valore binario dk.
In particolare scriveremo: <b1,b2,...,bn | d1,d2,...,dn>.
La coppia <bk | dk> possiamo metterla in relazione con la configurazione
<TTT> ed interpretarla nel seguente significato:

p(bk) = 1 <TTT> è vera


p(dk) = 1 ¬<TTT> è vera

Le relazioni logiche tra bk e dk sono bk :- ¬dk e dk :- ¬bk.

Definizione 7.6.6
In particolare le combinazioni possibili per bk e dk divengono:

257
p(bk) = 1 , p(dk) = 0 la configurazione <TTT> è vera
p(bk) = 0 , p(dk) = 1 la configurazione ¬<TTT> è vera
p(bk) = 0 , p(dk) = 0 informazione mancante
p(bk) = 1 , p(dk) = 1 contraddizione

L'informazione registrata consiste di due bit.

Nel caso in cui p(bk) e p(dk) possano assumere solo valori dell'insieme
{0,1} allora è possibile considerare direttamente il valore binario di bk e dk
nel seguente significato:

<bk | dk>
<1|0> fatto vero
<0|1> fatto negato
<0|0> informazione mancante
<1|1> contraddizione

Definizione 7.6.7
Vediamo il caso di deduzione logica da regole del tipo bi :- bj.
Consideriamo un caso particolare di deduzione che utilizza variabili accoppiate
e che ci fornisce una comoda modalità di propagazione della affidabilità.

Sia neg : X --> ¬X tale che per ogni bk ∈ X neg(bk) = dk dk ∈ ¬X


-1
e neg (dk) = bk. In altri termini abbiamo bk :- ¬dk e dk :- ¬bk.

Con questa convenzione abbiamo eliminato le affermazioni false dalle regole


di deduzione, ed in particolare la regola:

¬bi :- bj diviene di :- bj.

Siano bi, bj ∈ X di,dj ∈ ¬X , rk ∈ R insieme delle regole, in particolare:

rk) bj :- bi.

otteniamo le seguenti combinazioni:

258
<bi | di> | rk | <bj | dj>
--------------------------------
1 1 | 1 | 0 0 Contraddizione
1 0 | 1 | 1 0 bj :- bi.
0 1 | 1 | 0 1 dj :- di.
0 0 | 1 | 0 0 Manca informazione
1 1 | -1 | 0 0 Contraddizione
1 0 | -1 | 0 1 dj :- bi.
0 1 | -1 | 1 0 bj :- di.
0 0 | -1 | 0 0 Manca informazione

Definizione 7.6.8
Vediamo come sia possibile definire una misura dell'informazione registrata
che tenga conto delle contraddizioni elementari.

Sia B = <b1,b2,...,bn> e ¬B = <d1,d2,...,dn> due insiemi di variabili binarie


ordinate; bi,di ∈ {0,1}.
Sia X = <b1,b2,...,bn | d1,d2,...,dn> un insieme di coppie di variabili con cui
rappresentare dei fatti atomici.
Consideriamo xi ∈ |P(X); xi={<b1 | d1>,<b2 | d2>,...,<bk | dk>}.

Definiamo come misura µ(<bi | di>) sulla coppia bi,di una funzione tale che per
ogni <bi | di> ∈ xi fornisca i seguenti valori:

<bi | di> | µ(<bi | di>)


----------------------------
0 0 | 0
1 0 | 1
0 1 | 1
1 1 | 0

allora µ(xi) = Σ µ(<bk | dk>) = n bit di informazione


k

µ(xi) è una misura su |P(X) e rappresenta la quantità di informazione, in


numero di bit, registrata.

259
7.7 Sistemi ipotetici in comunicazione reciproca

Consideriamo due sistemi di elaborazione S1, S2 a stati finiti in


comunicazione tra loro tramite un canale di trasmissione C.
Denotiamo con R1 lo spazio di rappresentazioni possibili per S1 e con R2 lo
spazio di rappresentazioni possibili per S2.
In altri termini R1 ed R2 sono la memoria di S1 e di S2.

Ipotizziamo che l'interazione tra S1 ed S2 consista nello scambiarsi messaggi


selezionati da un determinato repertorio.

(fig 7.10)

Il processo di comunicazione tra S1 ed S2 potrebbe svolgersi nel modo


seguente:

1) S1 manda un messaggio msg1 a S2, il messaggio msg1 è selezionato a


caso tra n messaggi possibili.
260
2) S2 può riconoscere il messaggio oppure no.

3) S2 non riconosce il messaggio inviato da S1, in tal caso invia ad S1 il


messaggio corrispondente a "messaggio sconosciuto".

4) S2 riconosce il messaggio inviato da S1 e lo elabora (Elab2) trova in R2 la


rappresentazione corrispondente decodificando il messaggio (Dec2)

5) L'elaborazione del messaggio da parte di S2 consiste essenzialmente nel


determinare le m risposte possibili relativamente al messaggio ricevuto:
{r1,r2,...,rm} = Rp

6) S2 seleziona casualmente (Sel2) una risposta tra quelle possibili ri ∈ Rp.

7) S2 codifica (Cod2) la risposta selezionata ri in un messaggio msg2 e quindi


lo invia ad S1.

8) S1 riceve il messaggio msg2 e si comporta analogamente.

9) Il processo si ripete.

Analizziamo in maggior dettaglio la comunicazione che si istaura tra S1 ed S2;


in particolare essa può essere schematizzata nella maniera seguente:

Dec2 Elab2 Sel2 Cod2


1) msg1 ---> rk1 ----> {r11,r12,...,r1r} ----> {ri1} ---> {msg2}

Dec1 Elab1 Sel1 Cod1


2) msg2 ---> rk2 ----> {r21,r22,...,r2r} ----> {ri2} ---> {msg3}

Dec2 Elab2 Sel2 Cod2


3) msg3 ---> rk3 ----> {r31,r32,...,r3r} ----> {ri3} ---> {msg4}

Supponiamo che Elab1, Elab2, le elaborazioni dei messaggi da parte di S1 ed


S2 siano descrivibili tramite un certo numero di regole del tipo:

xk :- x1,x2,...,xn.

Ovvero

261
Elab1 = { xk1 :- x11, x12, ..., x1m1.
xk2 :- x21, x22, ..., x2m2.
...
xkn :- xn1, xn2, ..., xnmn. }

mentre la funzione di selezione Sel1 la consideriamo casuale:

Sel1
{x1,x2,...,xk} -----> {xi}

Supponiamo, per semplicità, che i messaggi corrispondano alle


rappresentazioni; in altri termini, le funzioni di codifica e decodifica
coincidono con la trasformazione identica.
Ipotizziamo inoltre che le rappresentazioni r1,...,rn siano dei vettori binari.

Con le assunzioni descritte lo schema della comunicazione tra S1 ed S2


diventa:

Elab2 Sel2
1) msg1 ----> {r11,r12,...,r1r} ----> msg2

Elab1 Sel1
2) msg2 ----> {r21,r22,...,r2r} ----> msg3

Elab1 Sel1
3) msg3 ----> {r31,r32,...,r3r} ----> msg4

Il processo di comunicazione descritto non è determinato; solo nel caso in


cui, per un certo messaggio msg(k), l'elaborazione del messaggio stesso
fornisce una unica possibile risposta si ottiene una risposta determinata.

Elab2 Sel2
k) msg(k) ----> {rk} -----> msg(k+1)

Proposizione 7.7.1

Ogni volta che S1, dopo aver inviato il messaggio msg(i), riceve
un messaggio msg(j), può dedurre che tra le regole di S2 è presente
la regola: msg(j) :- msg(i).

262
In tal caso può inserirla nel proprio sistema di regole.
Durante il processo di comunicazione si produce un allineamento di
comportamento tra S1 ed S2: S1 assorbe la conoscenza sulla struttura di S2 e
viceversa.

Proposizione 7.7.2

Se tutte (un numero significativo) le volte che S1 invia ad S2 il


messaggio msg(i) ottiene come risposta msg(j) allora il messaggio
perde il proprio contenuto informativo.
Infatti è divenuto prevedibile con alta probabilità.

263
7.8 Trasformazioni T da |P(X) a |P(X)

Vediamo come costruire una rappresentazione in uno spazio di variabili


binarie.

Prendiamo n variabili binarie: <b1,b2,...,bn>.


Sia X l'insieme di tali variabili bi ∈ X.

Prendiamo una trasformazione T : |P(X) ---> |P(X) dalla potenza di X su sè


stessa tale che:

T(xi) = xj , xi contenuto in xj per ogni xi ∈ S1

dove S1 è un sottoinsieme di |P(X).


_
Definiamo una trasformazione GEN : S1 ---> S1 tale che

GEN(xi) = T(xi) \ xi = xj \ xi = xk per ogni xi ∈ S1.

(fig. 7.11)

264
Vediamo una interpretazione delle trasformazioni introdotte.
Associando a ciascuna variabile un significato si ottiene una
rappresentazione astratta di una realtà di interesse; per esempio possiamo
associare alle variabili binarie i seguenti significati:

b1 - insieme A
b2 - insieme B
b3 - proprietà P1
b4 - proprietà P2
b5 - oggetto o1
b6 - oggetto o2
b7 - oggetto o3
b8 - oggetto o4
b9 - oggetto o5

Allora ogni variabile può essere associata ad un arbitrario insieme di variabili.


In particolare la trasformazione T applicata ad un sottoinsieme di S1, xi ci
fornisce xj.
Inoltre GEN(xi) = xj può essere interpretata come xi ⇒ xj, xi implica xj,
oppure xi → xj, da xi si deduce xj.
Di più, GEN(xi) = xk = xj \ xi, allora è possibile interpretare xk come l'insieme
di variabili che la GEN collega direttamente all'insieme di variabili xi, in
particolare possono essere considerate come proprietà associate all'insieme xi,
ovvero proprietà descriventi xi.
Alla luce di questa interpretazione, se xk = {bk} allora bk può essere
interpretato come insieme, proprietà, oggetto, attributo, o altro ancora.

Per esempio:
Se GEN(xi) = {b1}, allora la GEN esprime una relazione di appartenenza,
secondo la quale tutti gli elementi di xi appartengono all'insieme A.
Se GEN(xj) = {b3} allora la GEN esprime il fatto che tutti gli elementi di xj
possiedono la proprietà P1.
Se GEN(xk) = {b5} allora la GEN esprime il fatto che gli elementi di xk sono
attributi dell'oggetto o1.

In particolare tenendo presente le associazioni sopra descritte

Se GEN({o1,o2,o3}) = {A} si può dire che l'insieme A è composto dagli


oggetti o1,o2,o3.

265
Se GEN({A,P2}) = {o1} si può dire che l'oggetto o1 possiede le seguenti
caratteristiche:
appartiene all'insieme A
ha la proprietà P2.

Se GEN({o2,o3,o4}) = {P1} si può dire che gli oggetti o2,o3,o4


possiedono la proprietà P1.

Da notare che

GEN({o1,o2,o3}) = {A} esprime la relazione "è composto da"

GEN({A,P2}) = {o1} esprime la relazione "è parte di"


"possiede la"

GEN({o2,o3,o4}) = {P1} esprime la relazione "è posseduta da"

_
La trasformazione GEN : S1 ---> S1 può essere descritta da n
regole del tipo xk :- x1,x2,...,xn.

Esempio:

Sia GEN tale che

{o1,o2,o3} ---> {A} ; {o3,o4,o5} ---> {B}


{o2,o3,o4} ---> {P1} ; {o1,o2,o5} ---> {P2}

Allora abbiamo il sistema di regole R1 che descrive gli insiemi definiti dagli
elementi costituenti:

1) A :- o1,o2,o3.
2) B :- o3,o4,o5.
3) P1 :- o2,o3,o4.
4) P2 :- o1,o2,o5.

Consideriamo anche le relazioni seguenti che chiameremo relazioni duali:

{A,P2} ---> {o1} ; {A,P1,P2} ---> {o2}


{A,B,P1} ---> {o3} ; {B,P1} ---> {o4} ; {B,P2} ---> {o5}

266
Il sistema di regole corrispondente risulta essere R2 che descrive gli oggetti
definiti dagli attributi posseduti:

1d) o1 :- A,P2.
2d) o2 :- A,P1,P2.
3d) o3 :- A,B,P1.
4d) o4 :- B,P1.
5d) o5 :- B,P2.

L'insieme delle regole R1 ∪ R2 descrivono la trasformazione GEN.

L'insieme di regole R1 può essere interpretato come un certo numero di


relazioni binarie da considerarsi congiuntamente (interpretazione AND).
Si possono prendere in considerazione anche le relazioni binarie che
rappresentano R2, in tal caso esse sono le relazioni duali.

(fig. 7.12)

267
Esempio:

R1 Duali
(A - o1) (o1 - A) (o2 - A)
(A - o2) (o1 - P2) (o2 - P1)
(A - o3) (o2 - P2)

Vediamo come sia possibile ricavare dai sistemi di regole descritti, dei
sistemi di regole che esprimano le operazioni di unione ∪ ed intersezione ∩
tra insiemi.
In particolare cerchiamo di costruire il sistema di regole che descriva A ∪ B.
Poichè le relazioni binarie (nell'interpretazione AND) sono:

(o1 - A) (o2 - A) (o3 - A)


(o3 - B) (o4 - B) (o5 - B)
(o2 - P1) (o3 - P1) (o4 - P1)
(o1 - P2) (o2 - P2) (o5 - P2)

che nell'interpretazione OR sono descritte dal sistema di regole R3:

o1 :- A.
o2 :- A.
o3 :- A.
o3 :- B.
o4 :- B.
o5 :- B.

che corrisponde ad una GEN tale che

{A} ---> {o1,o2,o3} ; {B} ---> {o3,o4,o5}


{A,B} ---> {o1,o2,o3,o4,o5} corrispondente all'unione A ∪ B.

Dato A e B possiamo estrarre dalle relazioni binarie (interpretazione AND


ristretta ad A e B) le regole R4:

o1 :- A,¬B (dove ¬B sta per non B)


o2 :- A,¬B
o3 :- A,B
o4 :- ¬A,B
o5 :- ¬A,B
268
che corrisponde ad una GEN tale che

{A,¬B} ---> {o1,o2,o3} ; {¬A,B} ---> {o3,o4,o5}


{A,B} ---> {o3} corrispondente all'intersezione A ∩ B.

Vediamo un ulteriore esempio: P2 ∩ (A ∪ P1)

Le relazioni sono:

(o1 - A) (o2 - A) (o3 - A) (o4 - B) (o5 - B)


(o1 - P2) (o2 - P1) (o3 - P1) (o4 - P1) (o5 - P2)
(o2 - P2) (o3 - B)

da cui dati P2, A, P1 possiamo ricavare (interpretazione AND ristretta ad A,


P1, P2) le regole R5:

o1 :- A,¬P1,P2.
o2 :- A,P1,P2.
o3 :- A,P1,¬P2.
o4 :- ¬A,P1,¬P2.
o5 :- ¬A,¬P1,P2.

ed anche (interpretazione OR) le regole R6:

o1 :- A.
o2 :- A.
o3 :- A.
o2 :- P1.
o3 :- P1.
o4 :- P1.
o1 :- P2.
o2 :- P2.
o5 :- P2.

Allora le regole R5 ed R6 consentono di costruire una GEN tale che:

{A} ---> {o1,o2,o3} ; {P1} ---> {o2,o3,o4} ;


{P2} ---> {o1,o2,o5} ;

269
dalla R5
{A,P1,P2} ---> {o2} corrispondente a P2 ∩ ( A ∩ P1).
dalla R6
{A,P1} ---> {o1,o2,o3,o4} corrispondente ad A ∪ P1

possiamo quindi costruire un sistema di regole R7:

o1 :- (A ∪ P1),P2.
o2 :- (A ∪ P1),P2.
o3 :- (A ∪ P1),¬P2.
o4 :- (A ∪ P1),¬P2.

che corrisponde ad una GEN tale che

{A,P1,P2} ---> {o1,o2} corrispondente a P2 ∩ (A ∪ P1)

Il procedimento mostrato presenta delle forti analogie con il processo di


generazione (OR) e selezione (AND) di stringhe degli algoritmi genetici.

Definizione 7.8.1

Interpretazione AND ed interpretazione OR delle relazioni.


Siano (xk - x1), (xk - x2), ..., (xk - xn) n relazioni binarie
elementari:

i) diremo interpretazione OR le n regole ricavabili dalle rela-


zioni binarie nella forma:

xk :- x1.
xk :- x2.
...
xk :- xn.

ii) diremo interpretazione AND la regola ricavabile dalle rela-


zioni binarie nella forma:

xk :- x1,x2,x3,...,xn.
n
iii) diremo interpretazione modulo m le ( ) regole ricavabili
m
dalle relazioni binarie nella forma:
270
xk :- x1,x2,...,xm. 1≤m≤n

Dalla definizione ne consegue che le interpretazioni OR ed AND sono:


OR - modulo 1 - una variabile disgiuntamente
AND - modulo n - tutte le variabili congiuntamente

Se rm1, rm2 sono regole modulo m1, m2 con m1 > 1, m2 < n, m1 < m2 si ha:

µ(rm1 ∆ rm2) m2 - m1 m1
d(rm1,rm2) =  =  = 1 - 
µ(rm1 ∪ rm2) m2 m2

quindi otteniamo che


1
d( r(OR), r(AND)) = 1 - 
n

Siano S1, S2 sottoinsiemi |P(X), S1 contenuto in S2 dove S1 è un


sottoinsieme numerabile e finito di |P(X).
Prendiamo una T : S1 --> S2 tale che:

T(xi) = xj , xi contenuto in xj per ogni xi ∈ S1

allora esiste una funzione π : S1 --> |N che associa ad ogni sottoinsieme xi


di S1 un numero naturale.

Sia δ : |N --> S2 una corrispondenza tra i ∈ |N e xi ∈ S2 tale che se

T(xi) = xj , π(xi) = i

allora

δ(i) = xj \ xi = xk

in altri termini

T(xi) \ xi = δ(π(xi)) = δ(i) = xk

271
In particolare se:

T π
{x1,x2} ---> {x1,x2,x3} {x1,x2} ---> 1
{x2,x3} ---> {x2,x3,x4} {x2,x3} ---> 2
{x2,x4} ---> {x1,x2,x3,x4} {x2,x4} ---> 3

si ottiene:

δ
1 ---> x3
2 ---> x4
3 ---> x1
3 ---> x4

Definizione 7.8.2

Diremo che la corrispondenza π ha interpretazione AND


e che la corrispondenza δ ha interpretazione OR.

Riprendiamo la definizione della GEN.


Essa consiste in una trasformazione da un insieme di variabili a un altro, tale
trasformazione è interpretabile come un'implicazione. In particolare la GEN
genera generazioni successive di evidenze a partire da un insieme di evidenze
iniziali.
Consideriamo il caso di informazioni contradditorie come nell'esempio
seguente:

Titti --> Pinguino --> Uccello --> Vola !?

Assegniamo le seguenti variabili:

b1 - Titti - t individuo
b2 - Pinguino - p classe di individui
b3 - Uccello - u classe di classi
b4 - Vola - v attributo della classe

272
(fig. 7.13)

I fatti originari sono:

{t,p,u} - Titti è un pinguino ed è un uccello


{p,u} - I pinguini sono uccelli
{u,v} - Gli uccelli volano

in particolare si ha:

GEN({t}) = {p,u} Titti è un pinguino ed è un uccello


GEN({p}) = {u} I pinguini sono uccelli
GEN({u}) = {v} Gli uccelli volano

Il sistema di regole costruibile a partire da GEN consiste in R:

p :- t. Titti è un pinguino
u :- t. Titti è un uccello
u :- p. I pinguini sono uccelli
v :- u. Gli uccelli volano

273
Allora applicando le regole si ottiene:

{t} ---> {p,u} ---> {v}


prima generazione seconda generazione
fatti originari in questo caso questa deduzione è falsa !?

In un certo senso le deduzioni della seconda generazione costituiscono una


generalizzazione universale che attribuisce a tutti gli individui della classe
degli uccelli la proprietà di volare che nel caso del pinguino, il quale fa
eccezione, risulta falsa.
La suddivisione in generazioni successive delle affermazioni ricavate ci
consente di attribuire una funzione di affidabilità che dipende dal livello della
generazione considerata.
Più ci allontaniamo dalle evidenze iniziali maggiore diviene l'incertezza sulla
correttezza delle nostre deduzioni.
Aggiungiamo al nostro sistema l'informazione aggiuntiva che i pinguini non
volano:

I fatti originari sono:

{t,p,u} - Titti è un pinguino ed è un uccello


{p,u,¬v} - I pinguini sono uccelli che non volano
{u,v} - Gli uccelli volano

in particolare si ha:

GEN({t}) = {p,u} Titti è un pinguino ed è un uccello


GEN({p}) = {u,¬v} I pinguini sono uccelli che non volano
GEN({u}) = {v} Gli uccelli volano

Il sistema di regole costruibile a partire da GEN consiste in R:

p :- t. Titti è un pinguino
u :- t. Titti è un uccello
u :- p. I pinguini sono uccelli
¬v :- p. I pinguini non volano
v :- u. Gli uccelli volano

Allora applicando le regole si ottiene:

274
{t} ---> {p,u} ---> {v,¬v}
prima generazione seconda generazione
fatti originari in questo caso questa deduzione
mostra chiaramente una
contraddizione e pertanto
non apporta alcuna nuova
informazione !!

Anche se le nostre deduzioni possono essere errate nel caso di


generalizzazioni successive, esiste sempre la possibilità di ricondursi alle
deduzioni corrette aggiungendo le informazioni mancanti ed eliminando le
informazioni contradditorie.

275
7.9 Rappresentazioni di regole tramite corrispondenze

Abbiamo visto come costruire una rappresentazione in uno spazio di variabili


binarie.
Vediamo ora come è possibile rappresentare un arbitrario sistema di regole con
una corrispondenza opportuna.

Prendiamo n variabili binarie: <b1,b2,...,bn>.


Sia X l'insieme di tali variabili bi ∈ X.

Prendiamo una trasformazione T : |P(X) ---> |P(X) dalla potenza di X su sè


stessa tale che:

T(xi) = xj , xi contenuto in xj per ogni xi ∈ S1

dove S1 è un sottoinsieme di |P(X).

Sia Ri un insieme di regole arbitrario del tipo:

xk1 :- x11, x12, ..., x1n.


xk2 :- x21, x22, ..., x2n.
...
xkm :- xm1, xm2, ..., xmn.

Un simile sistema corrisponde ad una trasformazione che fa corrispondere ad


ogni insieme di variabili {x1,x2,...,xl} un insieme di variabili
{x(l+1),x(l+2),...,xh} derivato dal sistema.
Considerando l'unione delle variabili originarie con le variabili dedotte si
ottiene la corrispondenza che a partire da un certo insieme di evidenze
costruisce insiemi di generazione in generazione più ampi di evidenze.

Definizione 7.9.1
Definizione di regole dominanti.
Siano R1, Rk due insiemi di regole corrispondenti a due trasformazioni:

A) T(S1) = Si ==> Ri
B) T(S2) = Sk ==> Rk

tali che S1 contenuto in S2 e (Si \ S1) = (Sk \ S2) = Sj

276
Allora diremo che Ri è dominante rispetto ad Rk.
Infatti Sj si deduce da un insieme di premesse più ristretto, in particolare
µ(S1) ≤ µ(S2), pertanto si converrà di utilizzare le regole Ri al posto delle
regole Rk.

Proposizione 7.9.2

Sia T : |P(X) --> |P(X) una corrispondenza tale che


per ogni Si ∈ |P(X) T(Si) = Sj, Si contenuto in Sj
allora è possibile descrivere T nella forma di un insieme
di regole del tipo xk :- x1, x2, ..., xn.

Infatti sia Sj = T(Si), Si contenuto in Sj

Si = {x1, x2, ..., xk}

Sj = {x1, x2, ..., xk, x(k+1), ..., x(k+m)}

è possibile trasformare Si --> Sj ( Si implica Si ∩ Sj)

scrivendo m regole nella forma:

x(k+1) :- x1, x2, ..., xk.


x(k+2) :- x1, x2, ..., xk.
...
x(k+m) :- x1, x2, ..., xk.

Esempio:

Prendiamo una T tale che:

{x1,x2,x3} ---> {x1,x2,x3,x4,x5}

allora otteniamo il sistema di regole seguente:

1) x4 :- x1, x2, x3.


2) x5 :- x1, x2, x3.

277
7.10 Sistemi di regole ricavabili da corrispondenze

Prendiamo n variabili binarie: <b1,b2,...,bn>.


Sia X l'insieme di tali variabili bi ∈ X.

Prendiamo una trasformazione T : |P(X) ---> |P(X) dalla potenza di X su sè


stessa tale che:

T(xi) = xj , xi contenuto in xj per ogni xi ∈ S1

dove S1 è un sottoinsieme finito di |P(X).

Sia µ : S1 --> R+ \ {∞} definita come:

per ogni Si contenuto in S1 numerabile e finito

µ(Si) = numero di elementi distinti dell'insieme Si

µ({x1,x2,...,xk}) = k

prendiamo la funzione distanza:

µ(Si ∆ Sj)
d(Si,Sj) =  per ogni Si, Sj ∈ S1
µ(Si ∪ Sj)

essa induce una metrica su S1.

Definizione 7.10.1
Ora se T : S1 --> S1 è una corrispondenza relativa ad un arbitrario insieme di
regole R e Tδ : S1 --> S1 una corrispondenza tale che per ogni Si ∈ S1 vale:

1) T(Si) = Sj

2) Tδ(Si) = Sk , µ(Sk) ≥ µ(Si) , Si contenuto in Sk

3) d(Sj,Sk) < δ , δ ∈ [0,1]

278
allora diremo che Tδ è una corrispondenza che approssima T con
differenza δ.

In altri termini Tδ rappresenta un sistema di deduzione simile a T, descrivibile


con un insieme di regole Rδ simile ad R.

Prendiamo n variabili binarie: <b1,b2,...,bn>.


Sia X l'insieme di tali variabili bi ∈ X.

Definizione 7.10.2
Sia S un insieme di insiemi di |P(X);
S = {S1, S2, ..., Sn} inoltre
prendiamo una trasformazione T : |P(X) ---> |P(X) dalla potenza di X su sè
stessa tale che:

i) T(Si) = Ski , per ogni Si ∈ S

ii) S(i+1) contenuto in Si e (Ski \ Si) = Sj per ogni Si ∈ S

dove Sj rimane costante

Allora per costruire le regole relative ad Sj (deduzione di Sj) utilizziamo Si


tale che valga:

min(µ(Si)) Si ∈ S

in particolare sceglieremo Sn l'insieme più piccolo di premesse da cui si


deduce Sj.
In altri termini selezioneremo le regole dominanti.

Esempio:

Sia T(Si) tale che Sj

1) {x1,x2} --> {x1,x2,x3} {x3}


2) {x1,x2,x3} --> {x1,x2,x3,x4} {x4}
3) {x1,x2,x3,x4} --> {x1,x2,x3,x4,x5} {x5}
4) {x1,x2,x3,x4,x5} --> {x1,x2,x3,x4,x5,x6} {x6}
5) {x2,x3} --> {x2,x3,x4} {x4}
6) {x2,x3,x4} --> {x1,x2,x3,x4,x5} {x1,x5}

279
7) {x2,x4} --> {x1,x2,x3,x4} {x1,x3}
8) {x3,x4} --> {x2,x3,x4,x5} {x2,x5}
9) {x2,x3,x4,x5} --> {x1,x2,x3,x4,x5,x6} {x6}

allora selezionando le regole dominanti otteniamo:

a) x3 :- x1,x2. dalla 1)
b) x4 :- x2,x3. dalla 5)
c) x1 :- x2,x4. dalla 7)
d) x3 :- x2,x4. dalla 7)
e) x2 :- x3,x4. dalla 8)
f) x5 :- x3,x4 dalla 8)
g) x6 :- x2,x3,x4,x5. dalla 9)

Esercizio: verificare che questo insieme di regole Rδ è simile a quello riportato


nell'esempio del paragrafo 7.4 con δ = 1/4.

280
7.11 Leggi di riduzione dei sistemi di regole

Formalizziamo alcune leggi di riduzione dei sistemi di regole.

Definizione 7.11.1
Siano {b1,b2,...,bn} ∈ B n variabili costituenti un sistema di regole del tipo:

bi1 :- bj1, bj2, ..., bjl.


bi2 :- bj1, bj2, ..., bjl.
...
bih :- bj1, bj2, ..., bjl.

(i) regola zero di riduzione: duplicazione


Se una regola compare due volte nel sistema può essere eliminata.

(ii) prima regola di riduzione: tautologia


Se una regola contiene nel corpo della regola stessa la testa della regola
allora l'intera regola può essere eliminata.

Esempio b2 :- b1,b2,b3. b2 che è la testa compare nel corpo; è immediato


verificare che b1 & b2 & b3 -> b2 è una tautologia.

(iii) seconda regola di riduzione: irrilevanza


Se una variabile compare in tutte le regole nel corpo di ciascuna (ricordando
che il corpo di una regola rappresenta una congiunzione di variabili) allora la
variabile è determinante per il sistema complessivamente ma è irrilevante
nelle singole regole del sistema e può essere eliminata.

Esempio :

b1 :- b2,b3,b4.
b5 :- b3,b8.
b6 :- b3,b8.

è equivalente a:

b1 :- b2,b4.
b5 :- b8.
b6 :- b8.

281
(iv) terza regola di riduzione: dominanza
Se due regole r1 ed r2 presentano la stessa testa e il corpo di r1 è un
sottoinsieme del corpo di r2 allora diremo che r1 domina r2 ed in tal caso r2
può essere eliminata.

Esempio:

r1) b4 :- b2,b3.
r2) b4 :- b1,b2,b3.

282
7.12 Equivalenza di sistemi di regole

Vi sono sistemi di regole che possono essere considerati equivalenti, in


relazione al comportamento che presentano relativamente a determinati insiemi
di variabili in input.

Teorema 7.12.1

Consideriamo una trasformazione di variabili del tipo:

xi => b1 & b2 & ... & bk.

Dove xi ∈ |P(X) e bi ∈ |P(B).


Prendiamo un insieme di regole Rc tale che per ogni xi ∈ |P(X) e per ogni
bj ∈ |P(B) vale:

i) Rc(bj) = xi

-1
ii) Rc (xi) = bj

sia Rx un insieme di regole per le variabili xi.

Allora Rx può essere trasformato in un insieme di regole per le variabili bj, Rb


dove vale:

-1
Rx( ) = Rc(Rb(Rc ( )))

Esempio:

Prendiamo Rc definito da :

x1 :- b1,b2.
x2 :- b1,b3,b4.
x3 :- b4,b5.
x4 :- b6.
x5 :- b4,b7.

283
equivalente ai raggruppamenti:

x1 = {b1,b2} ; x2 = {b1,b2,b3} ; x3 = {b4,b5} ;


x4 = {b6} ; x5 = {b4,b7}.

in particolare Rc({b1,b2,b3,b4}) = {x1,x2}

-1
Il sistema di regole duale Rc è definito da:

b1 :- x1.
b1 :- x2.
b2 :- x1.
b3 :- x2.
b4 :- x2.
b4 :- x3.
b4 :- x5.
b5 :- x3.
b6 :- x4.
b7 :- x5.

Consideriamo come sistema Rx le regole:

x1 :- x2.
x3 :- x4,x5.
x2 :- x3.

sostituendo si ottiene il sistema Rb:

b1 :- b1,b3,b4. *
b2 :- b1,b3,b4.
b4 :- b4,b6,b7. *
b5 :- b4,b6,b7.
b1 :- b4,b5.
b3 :- b4,b5.
b4 :- b4,b5. *

riducendo il sistema secondo la prima regola di riduzione * eliminazione delle


regole ridondanti si ottiene:

284
b1 :- b4,b5.
b2 :- b1,b3,b4.
b3 :- b4,b5.
b5 :- b6,b4,b7.

eliminando la variabile b4 in conformità con la seconda regola di riduzione si


ottiene:

b1 :- b5.
b2 :- b1,b3.
b3 :- b5.
b5 :- b6,b7.

Verifichiamo ora che il sistema così ottenuto Rb risulta effettivamente


equivalente ad Rx.

Rx({x1}) = {x1,x2} ;
Rb({b1,b3,b4}) = {b1,b2,b3,b4} --> {x1,x2}

Rx({x3}) = {x2,x3} ;
Rb({b4,b5}) = {b1,b3,b4,b5} --> {x2,x3}

Rx({x2,x3} = {x1,x2,x3} ;
Rb({b1,b3,b4,b5} = {b1,b2,b3,b4,b5} --> {x1,x2,x3}

Rx({x4,x5}) = {x3,x4,x5} ;
Rb({b4,b6,b7}) = {b4,b5,b6,b7} --> {x3,x4,x5}

il sistema risulta effettivamente equivalente come volevasi mostrare.

285
7.13 Definizione di trasformazioni particolari

Prendiamo n variabili binarie: <b1,b2,...,bn>.


Sia X l'insieme di tali variabili bi ∈ X.

Prendiamo una trasformazione T : |P(X) ---> |P(X) dalla potenza di X su sè


stessa tale che:

T(xi) = xj , xi contenuto in xj per ogni xi ∈ S1

dove S1 è un sottoinsieme finito di |P(X).

(fig. 7.14)

Definizione 7.13.1
_
Prendiamo una trasformazione GEN : S1 ---> S1 definita come:

GEN(xi) = T(xi) \ xi = xj \ xi = xk per ogni xi ∈ S1

La trasformazione GEN ricava conseguenze deducibili da un certo insieme di


premesse.
Alla trasformazione GEN è possibile far corrispondere sistemi di regole con
regole del tipo xk :- x1,x2,...,xn.

286
La trasformazione GEN genera ulteriori fatti.

Definizione 7.13.2
_
Prendiamo una trasformazione SEL : S1 x S1 ---> S1 definita come:

Sia GEN(xp) = xj , xp ∈ S1 , xi ∈ S1

consideriamo xk = xi ∩ xj allora

SEL(xi,xp) = GEN(xp) ∩ xi = xj ∩ xi = xk per ogni xi,xp ∈ S1.

La trasformazione SEL restringe gli elementi di xj al dominio di xi; restringe le


conseguenze ricavabili, tramite la GEN, da xp all'insieme delle variabili di xi.
La trasformazione SEL seleziona fatti in relazione ad un criterio dato.

Esempio: GEN

Siano xi = {e1,e2,...,en} n evidenze.

GEN(xi) = xj = {e(n+1),e(n+2),...,e(n+j)} j fatti generati da xi

può essere rappresentata da j x n regole (interpretazione OR):

e(n+1) :- e1. e(n+1) :- e2. ... e(n+1) :- en.

e(n+2) :- e1. e(n+2) :- e2. ... e(n+2) :- en.

...

e(n+j) :- e1. e(n+j) :- e2. ... e(n+j) :- en.

oppure, in maniera equivalente, da j regole (interpretazione AND)

e(n+1) :- e1, e2, ..., en.

e(n+2) :- e1, e2, ..., en.

...

e(n+j) :- e1, e2, ..., en.

287
Esempio: SEL

A) Siano xi = {o1,o2,...,oi} i oggetti

Sia xp = {P} una proprietà

GEN(xp) = xj = {o1,o2,...,op} p oggetti di xj che


possiedono la proprietà P

xi ∩ xj = xk = {o1,o2,...,ok} k oggetti di xi selezionati


sulla base di possedere
la proprietà P

SEL(xi,xp) = xk

B) Siano xi = {a1,a2,...,ai} i attributi

Sia xp = {op} un oggetto

GEN(xp) = xj = {a1,a2,...,ap} p attributi dell'oggetto op

xi ∩ xj = xk = {a1,a2,...,ak} k attributi di xi condivisi


con gli attributi
dell'oggetto xp = {op}

SEL(xi,xp) = xk.

Vediamo ora alcune trasformazioni particolari ricavabili da GEN e da SEL


relativamente a particolari caratteristiche dei sistemi di regole ricavabili.

Definizione 7.13.3
_
UNO) Sia UNO : S1 ---> S1 una trasformazione che consenta di ricavare
l'insieme di tutte le variabili collegate ad almento una variabile di xi.

UNO(xi) = xk

xk = tutti gli elementi collegati direttamente ad almeno un elemento di xi.

Nota: La UNO corrisponde all GEN nell'interpretazione OR.

288
Definizione 7.13.4
_
UNO-SEL) Sia UNO-SEL : S1 ---> S1 una trasformazione che consenta di
ricavare l'insieme di tutte le variabili collegate a tutti gli elementi di xi.

UNO-SEL(xi) = xk

xk = tutti gli elementi collegati direttamente a tutti gli elementi di xi.

Definizione 7.13.5
_
TUTTI) Sia TUTTI : S1 ---> S1 una trasformazione che consenta di ricavare
l'insieme di tutte le variabili a cui sono legati tutti gli attributi di xi.

In particolare è possibile definire TUTTI nel modo seguente:

posto xk = {bk}

TUTTI(xi) = xj xj contenuto in GEN(xi) tale che

SEL(xi,xk) = GEN(xk) per ogni bk ∈ xj

xj = tutti gli oggetti descritti da attributi, GEN(xk), che sono tutti compresi
in xi.

Definizione 7.13.6
_
SIMILI) Sia SIMILI : S1 x |R ---> S1 una classe di trasformazioni dipendente
da δ ∈ [0,1] definita come:

SIMILI(xi,δ) = xj , xj contenuto in GEN(xi) tale che

d(xi,GEN(xk)) < δ per ogni bk ∈ xj

xj = tutti gli oggetti descritti da attributi GEN(xk) che sono


simili(δ) all'oggetto descritto da xi, cioè tale che
GEN(oi) = xi

In altri termini se xi, xj sono premesse da cui si ricava che

d(GEN(xi),GEN(xj)) < δ
289
cioè che la differenza tra le conseguenze è minore di una certa soglia δ allora
è verosimile che le premesse siano simili(δ).

Esempio:

Vediamo una applicazione delle definizioni sopra riportate.

Sia E0 un insieme di evidenze iniziali e C1 un criterio di selezione;


consideriamo i seguenti passi:

1) GEN(E0) = E1 evidenze della prima generazione

SEL(E1,C1) = E2 selezione delle evidenze secondo C1

2) GEN(E2) = E3 evidenze della seconda generazione

SEL(E3,C1) = E4 selezione secondo C1

GEN SEL GEN SEL GEN


E0 -----> E1 -----> E2 -----> E3 -----> E4 -----> ...
| |
C1 - C1 -

Otteniamo una successione di generazioni di fatti che cercano di sopravvivere


ad un certo criterio C1 di selezione.
È evidente l'analogia con gli algoritmi genetici.
Di più, supponiamo che il primo criterio di selezione a cui sono sottoposte le
evidenze man mano generate sia il criterio di non contraddizione, in altri
termini che tutte le contraddizioni elementari siano automaticamente eliminate
ad ogni passo di selezione: si ottiene un sistema deduttivo in grado di gestire
informazioni mancanti o contradditorie.

Definizione 7.13.7

Trasformazione delle simiglianze in presenza di invarianti.


Consideriamo una trasformazione T : S1 ---> S2
essa può rappresentare per esempio un sistema che si evolve da uno stato S1
ad uno stato S2.
Sia c(x) un invariante rispetto a T

290
Per ogni x ∈ S1 vale cioè la legge di conservazione:

i) c(x) = c(T(x)) = c(y) per ogni x ∈ S1, T(x) ∈ S2, y ∈ S2

allora sia µ(x) = µc(c(x)) = µc(c(T(x))) = µc(c(y)) = µ(y)

una misura di c(x).

La distanza:
µ(x1 ∆ x2)
d(x1,x2) = 
µ(x1 ∪ x2)

costituisce un invariante per T; in particolare vale:

d(x1,x2) = d(y1,y2)

Pertanto elementi c-simili in S1 sono c-simili anche in S2.

(fig. 7.15)

291
7.14 Misura dell'affidabilità delle deduzioni

Definizione 7.14.1
Definizione dell'affidabilità sui fatti.
Consideriamo n variabili binarie : <b1,b2,...,bn>.
Sia X l'insieme di tali variabili bi ∈ X.
Sia Pe : X --->|R una funzione "peso" tale che

Pe(bk) ∈ [-1,1] per ogni bk ∈ X

allora Pe(bk) può essere interpretata come affidabilità di un certo fatto bk


(funzione di verità di bk) con:

Pe(bk) = 1 bk vero
Pe(bk) = -1 bk negato (falso)
Pe(bk) = 0 bk indeterminato
Pe(bk) = p |p| affidabilità (probabilità) di bk.

Sia µ: X ---> |R+ definita come µ(bk) = |Pe(bk)| valore assoluto di Pe(bk).
Se xi = {b1,b2,...,bi} è un insieme di bi ∈ X

µ(xi) = Σ µ(bk) bk ∈ xi
k

allora µ: |P(X) --> |R+ è una misura sulla potenza di X

La funzione µ può essere interpretata come funzione di ottimizzazione


(objective function) dell'affidabilità di xi arbitrario insieme di fatti.

Definizione 7.14.2
Definizione dell'affidabilità sulle regole.
Consideriamo un insieme di regole R del tipo

rk) xk :- x1,x2,...,xn. rk ∈ R

Sia Pr : R ---> [-1,1] una funzione "peso della regola" allora Pr(rk) può essere
interpretata come affidabilità di una certa regola rk (verità della regola) con:

Pr(rk) = 1 rk applicabile / vera

292
Pr(rk) = -1 rk applicabile / contraria
Pr(rk) = 0 rk indeterminata / falsa
Pr(rk) = p |p| affidabilità della regola

Sia µr : R -->|R+ definita come µr(rk) = |Pr(rk)| valore assoluto della funzione
peso della regola.
Se wi = {r1,r2,...,ri} è un insieme di regole wi ∈ R

µr(wi) = Σ µr(rk) rk ∈ wi
k
definisce una misura sulla potenza di R.

Definizione 7.14.3
Definizione di regole di deduzione a due valori.
Consideriamo un caso particolare di deduzione che ci fornisce una comoda
modalità di propagazione dell'affidabilità.

Supponiamo che per ogni bi,bj ∈ X e rk ∈ R le funzioni di affidabilità


forniscano solo due valori possibili {-1,1}, in particolare supponiamo valga:

1) Pe(bi) = 1 sse bi è vero


2) Pe(bj) = -1 sse bj è falso, (denotiamo con ¬bj)
3) Pe(rk) = 1 sse rk è vera
4) Pe(rk) = -1 sse rk è contraria

Sia xj :- xi. la regola rk, xj = {bj} , xi = {bi}

Costruiamo le seguenti regole per il calcolo di Pe(xj) sulla base dei valori di
Pe(xi) e Pr(rk):

Pe(xi) Pr(rk) | Pe(xj)


-------------------------------------
1 1 | 1
-1 1 | -1
1 -1 | -1
-1 -1 | 1

In particolare se Pr(rk) = -1 possiamo scrivere ¬bj :- bi.


Ovvero bi implica che bj è falso.

293
Definizione 7.14.4
Definizione di contraddizione elementare.
Supponiamo di avere due regole r1 ed r2 tali che:

r1) bj :- bi.
r2) ¬bj :- bi.

allora diremo che le due regole considerate congiuntamente formano una


contraddizione elementare: in altri termini (r1,r2) sono incompatibili.

Proposizione 7.14.5

Sia E0 un insieme di evidenze iniziali.


Sia Cd il criterio di non contraddizione, cioè:

SEL(En,Cd) = E(n+1) dove E(n+1) è contenuto in En

ed è tale che tutti i fatti in contraddizione sono eliminati.

Se vale bj e ¬bj allora bj e ¬bj vengono eliminati da En.

Otteniamo allora i seguenti passi nella generazione di evidenze successive a


partire da un insieme di evidenze iniziali:

GEN SEL GEN SEL GEN


E0 -----> E1 -----> E2 -----> E3 -----> E4 -----> ...
| |
Cd - Cd -

Nota: Se ad un certo istante Pe(bj) = 1 e si applica r2 si ottiene Pe’(bj) = -1


allora sommando si ottiene Pe"(bj) = 0
In altri termini bj non è nè vero nè falso.

Definizione 7.14.6
Definizione di affidabilità sui fatti - seconda versione.
Consideriamo n coppie di variabili binarie:

<(b1,d1),(b2,d2),...,(bn,dn)> = <f1,f2,...,fn>

sia F l'insieme di tali variabili fi ∈ F

294
sia µ(fi) = µ(bi,di) definita come

µ(fi) = 1 sse (bi=1, di=0) oppure (bi=0,di=1) ;


µ(fi) = 0 sse (bi=0, di=0) oppure (bi=1,di=1) ;

sia P : F ---> [0,1] una funzione "peso" interpretabile come affidabilità di un


certo fatto fk.

Se µa : F ---> |R+ è definita come

µa(fi) = P(fi) * µ(fi)

allora µa è una misura dell'affidabilità del fatto fi.

Se xi = {f1,f2,...,fi} è un insieme di fatti fi ∈ F

µx(xi) = Σ µa(fk) fk ∈ xi
k
è una misura di affidabilità sull'insieme di fatti xi.

Di più, se P(fi) è interpretabile come probabilità e i k fatti sono tutti


indipendenti allora

µp(xi) = Π µa(fk) fk ∈ xi
k

il prodotto delle misure µa su fk può essere interpretato come una probabilità


per xi.

Proposizione 7.14.7
_
Siano xi,xj ∈ S1 xm,xn ∈ S1

Sia GEN(xi) = xm
GEN(xj) = xn

µ1(xi) misura della affidabilità dei fatti in S1

posto che l'affidabilità dei fatti generati xm, µ2(xm) sia la stessa dei fatti di
partenza:

295
-1
µ2(xm) = µ1(GEN (xm)) = µ1(xi)
e che
GEN(xi ∩ xj) = xm ∩ xn

allora se le premesse sono simili d1(xi,xj) < δ


anche le conseguenze sono simili d2(xm,xn) < δ

µ1(xi ∆ xj) µ2(xm ∆ xn)


dove d1(xi,xj) =  e d2(xm,xn) = 
µ1(xi ∪ xj) µ2(xm ∪ xn)

Le simiglianze delle conclusioni è valutata in base al peso dell'affidabilità


delle affermazioni di fatti comuni nella premesse.
In particolare, nel nostro caso, affidabilità di premesse comuni.

296
7.15 Interpretazione statistica dell'affidabilità

Proposizione 7.15.1

Sull' affidabilità delle regole.


Consideriamo una configurazione composta da m stati.
Per esempio tre monete generano otto possibili stati.
Poniamoci il problema di inserire nuove regole, nel nostro sistema di
rappresentazione, sulla base del verificarsi di nuove esperienze.
Sia r1 la seguente regola; basata su un'esperienza effettiva:

r1) SE "osservo tre monete" (bk)


ALLORA "vedo la configurazione TTT" (b1).

che possiamo sinteticamente scrivere come:

r1) b1 :- bk.

Supponiamo di aver applicato la regola tre volte in casi in cui si è sempre


dimostrata vera, possiamo assegnare alla regola un'affidabilità proporzionale
al numero di successi che ha ottenuto, nel caso specifico tre conferme.

i) Attribuiremo alle regole un'affidabilità proporzionale al numero n di


conferme della regola stessa.

Supponiamo, al quarto tentativo, di osservare una configurazione diversa, per


esempio CCC (b2).
Allora aggiungeremo una ulteriore regola e dovremo modificare
l'affidabilità della regola precedentemente inserita; per esempio ponendo:

r1) b1 :- bk. Ps(b1) = 3/4 = ne/n stima statistica


r2) b2 :- bk. Ps(b2) = 1/4 = ne/n

Proseguendo nelle esperienze un numero di volte sufficientemente grande si


ottiene un allineamento statistico alla probabilità dovuta al numero di stati,
supposti nel nostro caso equiprobabili, accessibili nella configurazione reale:

ne
ii) lim  = Pr(bi)
n -> ∞ n

297
Nel caso di configurazioni equiprobabili si otterrà:
1
Pr(bi) =  dove nr = numero di stati accessibili
nr

nota: nr è anche uguale al numero di regole inserite, infatti ad ogni stato


accessibile corrisponde una regola e quando per n --> ∞ si esaurisce
l'esplorazione degli stati possibili sono state inserite un numero
corrispondente di regole.

Esempio:

Nel caso delle tre monete si ottiene:

r1) b1 :- bk.
r2) b2 :- bk.
r3) b3 :- bk.
r4) b4 :- bk.
r5) b5 :- bk.
r6) b6 :- bk.
r7) b7 :- bk.
r8) b8 :- bk.

dove nr = 8 e Pr(bi) = 1/8.

Le regole sopra descritte possono essere riscritte in una notazione migliore nel
modo seguente:

rk) [b1,b2,b3,b4,b5,b5,b7,b8] :- bk.

in cui l'affidabilità della regola rk) è sempre pari all'unità.


Da notare che 1/8 coincide con la probabilità che la regola r1) possa essere
vera, perciò dato bk, cioè P(bk) = 1, 1/8 è anche la probabilità che b1 sia vero.
Se P(bk) è diverso da 1, allora sembra sensato porre:

P(b1) = P(r1) * P(bk).

Proposizione 7.15.2

Secondo lo schema delineato semberebbe allora ragionevole porre, dato un


fatto bk ed m regole ri ciascuna in alternativa all'altra del tipo:

298
[b1,b2,...,bj] :- bk.

m
iii) Σ Ps(ri) = 1 somma della probabilità statistica
i=1 delle regole in alternativa = 1;
in altri termini almeno una delle
regole, in un determinato caso, è
applicabile; in quanto ipotizziamo
l'inserimento di una nuova regola
tutte le volte in cui la iii) non
si dimostra vera in relazione ad un
determinato evento non prevedibile
a priori.
(Allineamento statistico a Pr(ri)).

Allora se

xi = {b1,b2,...,bm} e la probabilità di xi = P(xi) si ha:

iv) P(xi) = Σ P(bj) = Σ P(rj) * P(bk) = P(bk) Σ P(rj) = P(bk)


j j j

La affidabilità (probabilità) è un invariante per GEN.

GEN(xk) = xi {bk} ---> {b1,b2,...,bm}

v) µp(xk) = µp(xi) ed è ragionevole ipotizzare che ciò sia vero per ogni
_
xk ∈ S1 e per ogni GEN(xk) = xj ∈ S1

Alcune conseguenze della iii) P(xi) = P(xk) dove GEN(xk) = xi sono le


seguenti; poichè per la formula di Bayes:

P(xi,xk)
vi) P(xi\xk) =  si ha
P(xk)

P(xi,xk)
vii) P(xi\xk) =  = P(xk\xi)
P(xi)

299
In particolare se interpretiamo P(xi,xk) nel senso di probabilità che sia vero xi
dato xk, ovvero probabilità che da xk consegua xi otteniamo le seguenti
affermazioni:

Proposizione 7.15.3

La probabilità che xk sia una conseguenza di xi è uguale alla probabilità che


ha xi di essere una conseguenza di xk.

Proposizione 7.15.4

La probabilità che da xk ne consegue xi è la stessa per cui da xi ne consegue


xk.

L'analisi approfondita di queste affermazioni ci porta a considerazioni


filosofiche ed epistemologiche che riguardano la relazione di causa ed effetto.
Ipotizziamo che esse siano vere, nell'ambito ristretto della rappresentazione;
sono conseguenze della iii)
m
Σ Ps(ri) = 1.
i=1
Le proposizioni 7.15.3 e 7.15.4 derivano dal meccanismo di creazione delle
regole; tale meccanismo è basato sul concetto di coincidenza di eventi e sul
raggruppamento di tutti gli eventi correlati, con tale meccanismo le
probabilità relative della testa e della coda di una regola si mantengono sempre
allineate e in particolare, non solo l'affidabilità delle conseguenze è uguale
all'affidabilità delle premesse, ma la funzione GEN è anche invertibile.

Definizione 7.15.5

Nell'ipotesi che le proposizioni 7.15.3 e 7.15.4 siano vere se GEN(xk) = yi


sembra ragionevole estendere la trasformazione GEN ad una REL tale che
per ogni xk ∈ S1 e per ogni yi ∈ S1
a) REL(xk) = GEN(xk) = yi
b) REL(yi) = xk (regole inverse)

In altri termini se {x1,...,xk} ---> {y1,...,yi} può essere rappresentato dalle


regole:

300
y1 :- x1,x2,...,xk.
y2 :- x1,x2,...,xk.
...
yi :- x1,x2,...,xk.

è possibile aggiungere le regole duali tali che

{y1,...,yi} ---> {x1,...,xk} rappresentabili da:

x1 :- y1,y2,...,yi.
x2 :- y1,y2,...,yi.
...
xk :- y1,y2,...,yi.

Esempio:

Sia GEN tale che:

{x1,x2,x3} ---> {y1,y2} e {x1,x2} --> {y2}

y1 :- x1,x2,x3.
y2 :- x1,x2.

allora REL diventa:

{y1,y2} --> {x1,x2,x3} e {y2} --> {x1,x2}

x1 :- y1,y2.
x2 :- y1,y2.
x3 :- y1,y2.
x1 :- y2.
x2 :- y2.

riducibile a:

x1 :- y2.
x2 :- y2.
x3 :- y1,y2.

Consideriamo il processo di comunicazione fra due sistemi a stati finiti S1 ed


S2 che si scambiano messaggi selezionati da un determinato repertorio M.

301
Sia M un insieme di messaggi utilizzabili nel colloquio tra S1 ed S2, costituiti
da n variabili binarie, xi ∈ M, xi = {b1,...,bn}.
Il colloquio tra S1 ed S2 può essere descritto da una sequenza di messaggi

x1 --> x2 --> x3 --> x4 ...

tali che S1 --> x1


x1 --> S2 --> x2
x2 --> S1 --> x3
x3 --> S2 --> x4
...

S1 riceve, la successione di messaggi x2,x4,x6,...


Poniamo per comodità di notazione:

x1=O1, x2=I1, x3=O2, x4=I2, ..., x(2i) = Ii, x(2i+1) = O(i+1)

Allora S1 invia i messaggi O1,O2,... e corrispondentemente riceve i messaggi


I1,I2,...
Supponendo che per n --> ∞ vi sia un allineamento statistico tra la probabilità
di ricevere il messaggio Ii e la frequenza statistica relativa al numero di volte
che in media si è presentato il messaggio medesimo, è ragionevole supporre
che sia:

ne(Ii) numero di ricorrenze di Ii


Ps(Ii) = lim  = lim 
n -> ∞ n n -> ∞ numero di messaggi ricevuti

Ora S1 può fare tre ipotesi (almeno) sul tipo di risposta che riceverà da S2 in
relazione al messaggio che ha inviato Oi.

1) S2 risponde in maniera casuale, indipendentemente dal messaggio inviato


da S1 Oi.

2) S2 risponde in maniera determinata, strettamente dipendente dal


messaggio inviato da S1 Oi; cioè ad ogni Oi corrisponde una unica risposta Ii.

3) S2 risponde in maniera pseudo-casuale, o anche pseudo-determinata,


dipendente dal messaggio inviato, ma non strettamente determinata; cioè ad
ogni Oi corrispondono più risposte possibili che S2 può inviare.

302
Analizziamo i singoli casi:
nel caso 1) si ha:

1
P(Ii) =  scelta casuale tra n messaggi
n

P(Ii\Oi) = P(Ii) il messaggio Ii è indipendente da Oi

nel caso 2) si ha:

P(Ii) = P(Oi) la frequenza relativa con cui compaiono Ii ed Oi


nella serie dei messaggi è identica.

P(Ii\Oi) = 1 il messaggio Ii dipende strettamente da Oi

nel caso 3) si ha:

Supponendo che ad Oi corrispondano k messaggi {Ii1,...,Iik} distinti e


indipendenti si ottiene:

1
P(Ii1) =  P(Oi) la frequenza statistica con cui compare Ii1
k è 1/k volte la frequenza statistica con
cui compare Oi.

1
P(Ii1\Oi) =  il messaggio Ii1 corrisponde ad Oi una
k volta ogni k volte.

Da notare che la frequenza statistica con cui compare Oi è la stessa di quella


con cui compaiono le risposte ad Oi ==> {Ii1,...,Iik} considerate
complessivamente; cioè se ne(Oi) e ne(Iij) sono le frequenze relative di Oi e di
Iij si ha

k
Σ ne(Iij) = ne(Oi)
j=1

allora se GEN(Oi) = {Ii1,...Iik} = xk


la frequenza statistica si conserva per la GEN !!!

303
Proposizione 7.15.6
Per cui si può dire che Oi "implica" xk con affidabilità 1

Proposizione 7.15.7
Inoltre si può dire che xk "è implicato" da Oi con affidabilità 1.

Proposizione 7.15.8
Si vede facilmente che "implica" ed "è implicato" sono due aspetti di una
stessa relazione binaria.

Proposizione 7.15.9

Consideriamo la frequenza statistica di una singola variabile binaria bk


presente in k messaggi

bk ∈ x1 ∩ x2 ∩ ... ∩ xk in particolare bk ∈ Ii 1≤i≤k

Supponiamo di aver ricevuto m messaggi;


indicando con Ps(bk) una stima statistica delle aspettative su bk

k
Σ ne(Ii)
ne(bk) i=1
i) Ps(bk) =  =  e poichè
m m

P(bk, Ii)
ii) P(bk\Ii) = 1 =  si ha P(bk,Ii) = P(Ii)
P(Ii)

P(bk,Ii) P(Ii) Ne(Ii)


iii) P(Ii\bk) =  =  = 
P(bk) P(bk) k
Σ ne(Ij)
j=1

Esempio:

Prendiamo le seguenti variabili:


304
xk1={bk1}, xk2={bk2}, xk3={bk3}, xk4={bk4} ;

x1={b1,b2}, x2={b1,b3}, x3={b2,b3}, x4={b1}, x5={b1,b2,b3} ;

Supponiamo di aver costruito il seguente sistema di regole:

r1) [xk1,xk4] :- x1. verificata 20 volte di cui


xk1 :- x1. verificata 10 volte e
xk4 :- x1. verificata 10 volte.
r2) xk1 :- x2. verificata 15 volte.
r3) xk1 :- x3. verificata 5 volte.
r4) xk2 :- x4. verificata 35 volte.
r5) xk3 :- x5. verificata 25 volte.

Allora il numero di eventi complessivamente è 100.

Il numero di evidenze di xk1, ne(xk1) = 30 ;


ne(xk2) = 35 ; ne(xk3) = 25 ; ne(xk4) = 10 ;
ne(x1) = 20; ne(x2) = 15; ne(x3) = 5; ne(x4) = 35; ne(x5) = 25;
ne(b1) = 95; ne(b2) = 50; ne(b3) = 45;

calcoliamo l'affidabilità statistica.

poichè:

P(b1,x1)
P(b1\x1) = 1 =  ==> P(b1,x1) = P(x1)
P(x1)

P(xk1,x1)
P(xk1\x1) = 1 =  ==> P(xk1,x1) = P(x1)
P(x1)

quindi

ne(x1) 20 ne(x1) 20
P(x1\b1) =  =  ; P(x1\b2) =  = 
ne(b1) 95 ne(b2) 50

305
ne(x2) 15 ne(x2) 15
P(x2\b1) =  =  ; P(x2\b3) =  = 
ne(b1) 95 ne(b3) 45

ne(x1) 20 ne(x4) 35
P(x1\xk1) =  =  ; P(x2\xk2) =  =  = 1
ne(xk1) 30 ne(xk2) 35

306
7.16 Generalizzazione operazioni OR AND XOR

Le operazioni fondamentali su cui si basa la logica del computer sono


l'operazione OR e l'operazione AND.
Tipicamente queste operazioni si definiscono in termini di ingressi ed uscite
da un circuito elettronico; nel caso più semplice un circuito con due ingressi ed
un'uscita si comporta come un OR se il segnale di uscita è in ON quando
almeno un segnale in ingresso è in ON, mentre si comporta come un AND
quando il segnale in uscita è in ON solo se entrambi i segnali in ingresso
sono in ON.
1) OR

ON ---| ON ---|
|--- ON |--- ON
OFF ---| OFF ---|

2) AND

ON ---|
|--- ON
ON ---|

Supponendo vi siano k ingressi ed un'uscita si può generalizzare dicendo che il


circuito si comporta come un OR quando il segnale in uscita è in ON nel caso
vi sia almeno un segnale in ingresso che sia in ON; si comporta come un AND
quando il segnale in uscita è in ON solo nel caso in cui tutti i segnali in
ingresso sono in ON.
3) OR

... ---|
ON ---|
... ---|--- ON
... ---|

4) AND

ON ---|
ON ---|
ON ---|--- ON
ON ---|

307
Un altro modo usuale per definire gli operatori OR ed AND è quello di
utilizzare le tavole di verità:

OR V V | V AND V V | V
VF|V VF|F
FV|V FV|F
FF|F FF |F

Vediamo ora le implicazioni di quanto esposto finora nel campo della


programmazione logica.

Denotiamo con x1,x2,...,xn enne fatti atomici.


Denotiamo con xk :- x1,x2,...,xi. regole del tipo
SE x1 AND x2 AND ... AND xi ALLORA xk.
La regola: (AND)
5) x3 :- x1,x2
si può leggere anche come: x1 AND x2 implicano x3

Le regole: (OR)
6) x3 :- x1
x3 :- x2
si possono leggere anche: x1 OR x2 implicano x3.

Introduciamo ora il concetto di relazione tra fatti atomici.


Denotiamo con xi - xj una relazione tra xi e xj a cui corrisponde la relazione
inversa che chiameremo relazione duale xj - xi.

Per illustrare l'algoritmo di elaborazione che ci consente di interpretare in un


senso allargato le operazioni di AND ed OR, faremo riferimento ad un
esempio basato su di un ristretto numero di fatti e relazioni.

Consideriamo le seguenti relazioni:

Relazioni dirette Relazioni duali

R1) x1 - x3 R11) x3 - x1
R2) x2 - x3 R12) x3 - x2
R3) x2 - x4 R13) x4 - x2
R4) x3 - x4 R14) x4 - x3
R5) x3 - x5 R15) x5 - x3
R6) x4 - x5 R16) x5 - x4

308
R7) x2 - x6 R17) x6 - x2
R8) x3 - x6 R18) x6 - x3
R9) x4 - x6 R19) x6 - x4
R10) x5 - x6 R20) x6 - x5

Possiamo interpretare le relazioni come regole di implicazione del tipo


xi :- x1,x2,...,xk.

(SE (x1,x2,...,xk) ALLORA xi.

A) È possibile interpretare le relazioni nel senso di AND


B) È possibile interpretare le relazioni nel senso di OR

A) Interpretazione delle relazioni nel senso AND.

Consideriamo le seguenti regole:

R21) x3 :- x1,x2.
R22) x4 :- x2,x3.
R23) x5 :- x3,x4.
R24) x6 :- x2,x3,x4,x5.

Allora la regola R21) mette in relazione (x3,x1) e (x3,x2) ed è rappresentabile


dalle relazioni R1) ed R2) oppure dalle R11) e R12), considerate
congiuntamente (AND).

x3 :- x1,x2. <=== { (x1-x3),(x2-x3) } oppure


x3 :- x1,x2. <=== { (x3-x1),(x3-x2) }

La stessa cosa si può fare per le regole R22), R23), R24).


Conveniamo di utilizzare le relazioni duali; in altri termini dalle relazioni R11)
e R12) considerate congiuntamente si può ricavare la regola R21):

x3 - x1
x3 - x2 ===> x3 :- x1,x2.

B) Interpretazione delle relazioni nel senso OR.

Consideriamo le seguenti regole:

309
R25) x3 :- x1.
R26) x3 :- x2.
R27) x4 :- x2.
R28) x4 :- x3.
R29) x5 :- x3.
R30) x5 :- x4.
R31) x6 :- x2.
R32) x6 :- x3.
R33) x6 :- x4.
R34) x6 :- x5.

Allora la regola R25) è rappresentabile dalla relazione R1) oppure dalla


relazione R11), disgiuntamente (OR).

x3 :- x1. <=== x1 - x3 oppure


x3 :- x1. <=== x3 - x1

La stessa cosa si può fare per le regole da R25) a R34).


Conveniamo di utilizzare le relazioni dirette:

x3 :- x1. <=== x1 - x3

Nell'interpretazione OR esiste una corrispondenza diretta tra le regole e le


relazioni.

Definizione dell'algoritmo di espansione.

Definiamo un algoritmo di espansione di fatti correlati ad un arbitrario insieme


di fatti iniziali, che chiameremo per comodità di notazione "target".
L'algoritmo funziona per generazioni successive: genera di volta in volta i fatti
correlati direttamente all'insieme dei fatti del target, mantenuto, di volta in
volta, costante, e incrementato ogni volta con i nuovi fatti (generalmente)
veri implicati dal target.
In altri termini, a partire da un insieme arbitrario di fatti iniziale
S0 = { x1,x2,...,xk }
vengono generati gli insiemi di volta in volta direttamente correlati:

S0 ==> S1 ==> S2 ==> ... ==> Sr

310
ESEMPIO:

Considerando le relazioni R1),...,R20), partendo dall'insieme S0={x1,x2} si


ottiene ricorsivamente:

S0 = {x1,x2}
S1 = {x1,x2,x3,x4,x6}
S2 = {x1,x2,x3,x4,x5,x6}

Per comodità di notazione scriviamo i risultati dell'elaborazione nella forma:

Target Prima generazione Seconda generazione


x1 | |
x2 | |
| x3 |
| x4 |
| x6 |
| | x5
| |

Vediamo ora come sia possibile utilizzare questo algoritmo di espansione ai


fini della programmazione logica, in particolare per risolvere il problema del
soddisfacimento di GOAL.
Poniamoci la domanda:

dato x1 e x2 se ne deduce x5 ?

? x5 :- x1,x2. (GOAL)

Analizzeremo quattro casi distinti di elaborazione:

C1) Procedimento Forward con interpretazione OR


C2) Procedimento Forward con interpretazione AND
C3) Procedimento Backward con interpretazione OR
C4) Procedimento Backward con interpretazione AND

Caso C1) (Forward,OR)

Partiamo dai fatti x1,x2 del GOAL; S0 = {x1,x2} ;

311
a cui attribuiamo il valore di verità V vero.
Consideriamo le relazioni da R1) a R20) e le regole OR da R25) a R34).

Target

x1 V | |
x2 V | |
| x3 V 25) |
| x4 V 27) |
| x6 V 31) |
| | x5 V 29) ==> GOAL
| |

Dove, la notazione sta a significare, per esempio:

x3 V 25) --> x3 è vero per la regola R25) x3 :- x1. ed infatti x1 è vero.


In questo caso la corrispondenza tra le regole e le relazioni è immediata.

Caso C2) (Forward,AND)

Partiamo dai fatti x1,x2 del GOAL; S0 = {x1,x2} ;


a cui attribuiamo il valore di verità V vero.
Consideriamo le relazioni da R1) a R20) e le regole AND da R21) a R24).

Target
x1 V | | | |
x2 V | | | |
| x3 V 21) | | |
| x4 F | x4 V 22) | |
| x6 F | x5 F | x5 V 23) |==> GOAL
| | x6 F | x6 F | x6 V 24)

Dove, per esempio, x4 nella prima generazione non risulta vero poichè il
fatto x3 non risulta ancora vero.
Invece, x3 risulta vero sulla base della regola R21) x3 :- x1,x2 essendo x1 ed
x2 entrambi veri.
Ad ogni generazione i fatti non veri vengono eliminati dal target.

Caso C3) (Backward, OR)

Partiamo dal fatto x5 del GOAL; S0 = {x5} ;

312
e ci chiediamo quali fatti debbono essere veri affinchè sia vero x5. In altri
termini, nel caso Backward, partiamo da x5 e ci chiediamo, tra i fatti che
sono in relazione con x5, quali implicano x5.

? xj :- xi, xj = x5.

Consideriamo le relazioni da R1) a R20) e le regole OR da R25) a R34).

Target

x5 F | | | |
| x6 F | | |
| x3 F | | |
| x4 F | | |
| | x1 V G | |
| | x2 V G | |
| | | x3 V 25) |
| | | x4 V 27) |
| | | x6 V 31) |
| | | | x5 V 29) ==> GOAL

In questo caso l'algoritmo non esclude i fatti falsi fino a che non siano
istanziati tutti i fatti del GOAL.
La notazione x1 V G sta per x1 è vero dal GOAL.

Caso C4) (Backward, AND)

Partiamo dal fatto x5 del GOAL; S0 = {x5} ;


e ci chiediamo quali fatti debbono essere veri affinchè sia vero x5. In altri
termini, nel caso Backward, partiamo da x5 e ci chiediamo, tra i fatti che
sono in relazione con x5, quali implicano x5.

? xj :- xi, xj = x5.

Consideriamo le relazioni da R1) a R20) e le regole AND da R21) a R24).

313
Target

x5 F | | | | |
| x6 F | | | |
| x3 F | | | |
| x4 F | | | |
| | x1 V G | | |
| | x2 V G | | |
| | | x3 V 25) | |
| | | x4 F | x4 V 22) |
| | | x6 F | x5 F | x5 V 23) ==>GOAL
| | | | x6 F | x6 F
| | | | |

La notazione x1 V G sta per x1 è vero dal GOAL.


In questo caso l'algoritmo non esclude i fatti falsi fino a che non siano
istanziati tutti i fatti del GOAL.
Quando tutti i fatti del GOAL sono istanziati allora i fatti falsi vengono
eliminati.

Consideriamo ora il significato che l'algoritmo di estrazione fornisce alle


operazioni OR ed AND:

P1) OR - Almeno un fatto presente nel target è corrispondente al fatto del


corpo della regola.

P2) AND - Tutti i fatti del corpo della regola sono presenti nel target.

Esempio:

E1) OR

x1 V |
x2 V |
| x3 V x3 :- x1
| x4 V x4 :- x2

314
E2) AND

x1 V |
x2 V |
| x3 V x3 :- x1,x2
| x4 F x4 :- x2,x3 (x3 è falso)

Generalizzando, possiamo immaginare un nuovo operatore: SIM(δ) di


simiglianza, o di induzione probabilistica.

SIM(δ) - Se una percentuale di fatti del corpo della regola sono presenti nel
target in misura maggiore di δ, dove δ rappresenta una soglia arbitraria allora la
testa della regola è da considerarsi una induzione con una certa probabilità
dipendente da δ.
Esempio: Se dai fatti x1,x2,...,xk deduco xi allora dai fatti x1,x2,...,x(k-h)
posso indurre xi con una probabilità dipendente da h.

Riassumendo, nelle argomentazioni svolte abbiamo fatto riferimento esplicito


ad operazioni di risoluzione dei problemi di programmazione logica
utilizzando gli operatori OR ed AND; alle note procedure di risoluzione
abbiamo aggiunto un algoritmo di espansione delle relazioni che ci guida nella
definizione dell'insieme ottimale di fatti e regole da considerare per migliorare
le prestazioni nella risoluzione di un GOAL. L'impostazione e la forma
che ha assunto il problema generale di risoluzione del GOAL ci ha
suggerito un nuovo modo di interpretare le operazioni elementari di OR e di
AND focalizzando come possa essere definita un'intera classe di operatori
intermedi tra OR - Uno almeno e AND - Tutti.
Tale famiglia di operatori potrebbe essere utilizzata per introdurre un elemento
di incertezza, da una parte, ed un elemento di aspettativa, dall'altra, in grado di
pilotare il motore inferenziale verso le migliori strategie, o più probabilmente
di successo, disponibili in un determinato punto nel procedimento di
risoluzione.

315
7.17 Implicazione semantica di raggruppamento

Riprendiamo alcuni concetti illustrati nei capitoli precedenti per sintetizzare


un unico schema alcune idee precedentemente sviluppate, in maniera più
formale relativamente al problema dell'implicazione logica da una parte, e
gli algoritmi di espansione di eventi veri dall'altra, costruibili a partire da
trasformazioni del tipo della GEN precedentemente descritta.

Prendiamo un linguaggio L definito per una B-logica.


Consideriamo le interpretazioni m1,m2,...,mk come evoluzioni progressive
descritte da un certo numero di evidenze.
Il passaggio da un'interpretazione nella B-logica alla logica proposizionale
si può ottenere, per esempio, trasformando i valori di verità di ogni
proposizione P, Vl(P), secondo le seguenti regole:

i) Vl(P) = 1 e Vl(¬P) = 0 sse Vm(P) = 1

ii) Vl(P) = 0 e Vl(¬P) = 1 se Vm(P) = 0

oppure Vm(P) = u

oppure Vm(P) = c

Si suppone che per ogni proposizione costante P i valori di verità procedano


secondo lo schema, n-ordine, seguente:

1
/ \
u c
\ /
0

per cui una proposizione può essere sconosciuta (u), divenire vera (1) o falsa
(0), quindi, eventualmente risultare contraddittoria (c).

Secondo tale schema il concetto di implicazione semantica può essere


allargato. Il concetto di distinzione tra implicazione logica e implicazione
semantica; per la quale, date due affermazioni A e B, la affermazione
"A implica B", A ⇒ B, è vera quando la verità di A implica che B è vera:

1 = m(A) → m(B) = 1.
316
Per comprendere questa distinzione introduciamo il concetto di variabile
irrilevante.
Consideriamo la reguente regola:

1) {b2,b3} :- {b1,b2}.
equivalente a
2) (b1 & b2) -> (b2 & b3)

possiamo dalla 1) trarre la seguente conclusione:

3) b3 :- b1.
o anche
4) b1 -> b3.

Vediamo la tavola della verità di b1 & b2 -> b2 & b3 e b1 -> b3.

b1 b2 b3 | b1 & b2 | b2 & b3 | b1 & b2 -> b2 & b3 | b1 -> b3


---------------------------------------------------------------
1 1 1 | 1 | 1 | 1 | 1
1 1 0 | 1 | 0 | 0 | 0
1 0 1 | 0 | 0 | 1 | 1
1 0 0 | 0 | 0 | 1 | 0
0 1 1 | 0 | 1 | 1 | 1
0 1 0 | 0 | 0 | 1 | 1
0 0 1 | 0 | 0 | 1 | 1
0 0 0 | 0 | 0 | 1 | 1
---------------------------------------------------------------

da cui si ricava che:

i) (b1 -> b3) -> ((b1 & b2) -> (b2 & b3)) è una tautologia
ii) ((b1 & b2) -> (b2 & b3)) -> (b1 -> b3) non è una tautologia

eppure la ii) è semanticamente sempre vera se la variabile b2 è una variabile


irrilevante.

Definizione 7.17.1

Definiamo una implicazione semantica di raggruppamento.

Consideriamo due variabili binarie b1 e b2, <b1 b2>.


Definiamo le seguenti proprietà a partire da b1 e b2:

317
pα = <1 1> = b1 & b2
pβ = <1 0> = b1 & ¬b2
pτ = <1 *> = b1 & (b2 v ¬b2) => b1

allora

iii) pα ⇒ pτ e pβ ⇒ pτ

ovviamente b1 & b2 -> b1

denotiamo per comodità di notazione con:

A = b1 & b2
B = b1 & ¬b2
C = b1 & (b2 v ¬b2)
D = ¬b1 & b2
E = ¬b1 & ¬b2
F = ¬b1 & (b2 v ¬b2)

Costruiamo la tavola di verità per


b1, b2, A, B, C, D, E, F, A->C, B->C, D->F, E->F :

b1 b2 | A | B | C | D | E | F | A->C | B->C | D->F | E->F


-----------------------------------------------------------
1 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1
1 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1
0 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1
0 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1
-----------------------------------------------------------

dalla tavola si può verificare che la iii) è soddisfatta e inoltre se:

pα' = <0 1> = ¬b1 & b2


pβ' = <0 0> = ¬b1 & ¬b2
pτ' = <0 *> = ¬b1 & (b2 v ¬b2) => ¬b1

allora anche

iv) pα' ⇒ pτ' e pβ' ⇒ pτ'

è soddisfatta.

318
Utilizziamo quanto descritto nel capitolo 7.1 sulla rappresentazione tramite
proprietà; in particolare riprendiamo le definizioni di lub e glb.

Sia S = {p1,p2} la rappresentazione minimale (lub)


di due proprietà definite da:

p1 = <1 1 0> e p2 = <1 0 1>

allora lub({p1,p2}) = <1 * *>

mentre il più grande limite inferiore (glb) corrisponde a:

glb = <1 0 0>

Rappresentiamo p1 e p2 con: pα = <b1 b2 b3 | d1 d2 d3>

p1 = <1 1 0 | 0 0 1>

p2 = <1 0 1 | 0 1 0>

lub = <1 0 0 | 0 0 0> = p1 ∩ p2 = p1 ∧ p2

glb = <1 1 1 | 0 1 1> = p1 ∪ p2 = p1 ∨ p2

δ = <0 1 1 | 0 1 1> = p1 ∆ p2

allora

p1 ≈ b1 & b2 & ¬b3

p2 ≈ b1 & ¬b2 & b3

lub ≈ b1

glb ≈ b1 & [(b2 v ¬b2) & (b3 v ¬b3)]

Vediamo il comportamento di sistemi di regole rispetto ad una tale


implicazione; in particolare prendiamo in considerazione l'operazione di
allineamento delle variabili mancanti o irrilevanti e l'effetto che tale situazione
produce sulla negazione.

319
Prendiamo i seguenti sistemi di regole:

R1 - b4 :- b1, b2.
b5 :- b1, b3.

R2 - b4 :- b1,b2,¬b3.
b5 :- b1,¬b2,b3.

R3 - b4 :- b1,b2,(b3 v ¬b3).
b5 :- b1,(b2 v ¬b2),b3.

Allora si ha:

R1({b1,b2,b3}) = {b4,b5}

R2({b1,b2,b3}) = { } insieme vuoto !!!

R3({b1,b2,b3}) = {b4,b5}

D'altra parte b1 & b2 & b3 -> b1 & b2 -> b4 per R1 ma non per R2.

Possiamo aggiungere alcune considerazioni sulle operazioni logiche AND, OR


e XOR in relazione alle leggi di implicazione.
In particolare, prendiamo in esame il flusso informativo legato alla
determinazione dei valori di verità nelle variabili logiche che descrivono le
proprietà degli oggetti del sistema.

Prendiamo due variabili binarie b1 e b2.


Sia <b1,b2 | d1,d2> il vettore che le descrive.
Le operazioni logiche che prendiamo in considerazione sono:

AND) b1 & b2

OR) b1 v b2

XOR) b1 x b2 = b1 v b2 & ¬(b1 & b2)

la tavola di verità relativa è la seguente:

320
b1 b2 | b1 v b2 | b1 & b2 | b1 x b2
---------------------------------------------
0 0 | 0 | 0 | 0
0 1 | 1 | 0 | 1
1 0 | 1 | 0 | 1
1 1 | 1 | 1 | 0
---------------------------------------------

poniamo x1 :- b1 v b2
x2 :- b1 & b2
x3 :- b1 x b2

ricaviamo i seguenti sistemi:

OR) - x1 :- b1,b2. (α1)


x1 :- b2,d1. (α2)
x1 :- b1,d2. (α3)

AND) - x2 :- b1,b2.

XOR) - x3 :- b1,d2.
x3 :- b2,d1.

È possibile ridurre il sistema OR nel modo seguente:

OR) - x1 :- b1,b2. (α1) ==> x1 :- b1. (b2 è irrilevante)


x1 :- b1,d2. (α3)

- x1 :- b2,b1. (α1) ==> x1 :- b2. (b1 è irrilevante)


x1 :- b2,d1. (α2)

Da notare per inciso che α1 ∩ α2 ∩ α3 = 0


mentre α1 ∩ α3 = b1
e α1 ∩ α2 = b2.

Ora consideriamo il numero di bit relativi alle informazioni dovute alle


evidenze b1 e b2 e confrontiamolo con il numero di bit relativi alle
informazioni registrate:

AND) - x2 :- b1,b2. sono due bit di informazione

321
XOR) - x3 :- b1,d2. sono quattro bit di informazione
x3 :- b2,d1.

OR) - x1 :- b1. sono due bit di informazione


x1 :- b2.

In un certo senso l'operazione XOR cattura più bit di informazione rispetto


alle operazioni AND ed OR che invece si dimostrano equivalenti, la XOR
trasforma 2 bit di informazione in uno soltanto, esattamente come la AND e
la OR, la differenza risiede nella configurazione più equilibrata della
rappresentazione XOR rispetto alle rappresentazioni AND ed OR,come si può
vedere dalle tavole di verità.

Per terminare questo capitolo accenneremo, brevemente, ad alcuni possibili


sviluppi dei concetti esposti; in particolare alla possibilità di costruire regole
basate su relazioni binarie a cui viene attribuito un peso interpretabile come
affidabilità delle deduzioni ricavabili dalle regole stesse.
Ottenere un sistema deduttivo basato su relazioni binarie fornirebbe
immediatamente il seguente notevole risultato:

Proposizione 7.17.1

Una equivalenza procedurale nell'algoritmo del motore inferenziale per il


procedimento forward e backward nella ricerca delle risolventi per un
determinato Goal.

Vediamo un esempio a titolo esplicativo; consideriamo le seguenti regole


binarie su fatti atomici x1,x2,x3,x4,x5,x6.

1) x1 --> x2 (w12) 2) x2 --> x1 (w21)


3) x1 --> x3 (w13) 4) x3 --> x1 (w31)
5) x2 --> x3 (w23) 6) x3 --> x2 (w32)
7) x4 --> x3 (w43) 8) x3 --> x4 (w34)
9) x3 --> x5 (w35) 10) x5 --> x3 (w53)
11) x6 --> x4 (w64) 12) x4 --> x6 (w46)

corrispondente al seguente grafo:

322
(fig. 7.16)

Come esempio di procedimento forward consideriamo la seguente domanda:

cosa implica il fatto x3 ?

la risposta si può ottenere ricercando quali fatti sono in relazione con il fatto
x3:

x3 | |
| x1 |
| x2 |
| x4 |
| x5 |
| | x6

e quindi selezionare tra tali fatti quelli che sono implicati dal fatto x3.

nel nostro caso si ottiene:

x3 |
| x2
| x5

Come esempio di procedimento backward consideriamo la seguente


domanda:

323
cosa è implicato dal fatto x3 ?

la risposta si può ottenere ricercando quali fatti sono in relazione con il fatto
x3:

x3 | |
| x1 |
| x2 |
| x4 |
| x5 |
| | x6

e selezionare tra tali fatti quelli che implicano il fatto x3.

nel nostro caso si ottiene:

x3 | | SEL | |
| x1 | | x1 |
| x2 | | x2 |
| x4 | | x4 |
| x5 | | |
| x6 | | | x6

In particolare si otterrebbe un metodo unico e normalizzato per la


propagazione della funzione di affidabilità sui fatti coinvolti dal procedimento
di deduzione.
Di più, in tal modo anche il metodo abduttivo potrebbe essere incluso tra le
modalità di derivazione di conseguenze a partire da un determinato Goal.

324
7.18 Conclusioni

Dal punto di vista computazionale le informazioni si dispongono, una volta


codificate, in maniera naturale in termini di attributi e caratteristiche.
È possibile costruire una trattazione matematica a partire da uno spazio astratto
di insieme di caratteristiche o più in generale da un insieme di informazioni.
Operare su un simile spazio astratto costituisce un potente modello per la
manipolazione delle informazioni, in particolare è possibile isolare alcune
semplici trasformazioni e manipolazioni che consentono la realizzazione di
processi di astrazione tipici della mente umana, per esempio la classificazione,
la generalizzazione e l'aggregazione.
Il fatto che sia possibile indurre una metrica potente e generale su uno spazio
astratto di insiemi di informazioni ci consente di definire, tramite operazioni
matematiche elementari, un potente metodo di manipolazione
dell'informazione.
Avere a disposizione una funzione distanza significa poter disporre di un
criterio di simiglianza tra le informazioni, tale criterio (metrico) consente
l'immediato confronto e classificazione di informazioni simili secondo un certo
criterio arbitrario. Questo costituisce il primo passo verso la costruzione di una
rete di correlazioni tra le informazioni che ne consente una successiva
elaborazione. Il passo di codifica dell'informazione è cruciale, isolare
caratteristiche dell'informazione che siano invarianti per alcune trasformazioni
ci consente di estrarre proprietà che sono proprie dell'informazione stessa e che
rappresentano generalizzazioni indipendenti dalla codifica dell'informazione
stessa su un particolare supporto.
Associare informazioni significa confrontarle secondo un certo criterio di
simiglianza e questo consente il trattamento anche di informazioni nuove
ovvero non precedentemente memorizzate.
Passare da uno schema se A,B,... sono veri allora C e vera allo schema se
A,B,... sono attivi allora C è attiva, consente una interessante generalizzazione
della logica di deduzione utilizzata in programmazione logica e consente una
potente analogia con lo schema utilizzato nello sviluppo delle reti neurali.
In uno schema concettuale di insiemi di informazioni è possibile rappresentare
qualsiasi cosa, qualsiasi dispositivo costruibile, pertanto disporre di una metrica
su un simile spazio astratto consente un approccio molto generale al problema
dell'elaborazione delle informazioni.
Una metrica basata solo su semplici operazioni di intersezione ed unione di
insiemi dispone di un vastissimo settore di applicazioni concrete.
Ovviamente, praticamente occorre una opportuna codifica delle informazioni.

325
D'altra parte un approccio teorico che affronti i problemi alla radice della
rappresentazione è sempre preferibile ad un approccio che utilizzi euristiche di
risoluzione basate sulle particolarità contingenti di codifica delle informazioni.
Il presente lavoro costituisce un ponte di collegamento tra la programmazione
logica e le reti neurali.

326
BIBLIOGRAFIA

Adeli Hojjat, Knowledge engineering, McGraw-Hill, New York 1990.

Arigoni Anio, Mathematical Developments Arising From 'Semantical


Implication' And The Evaluation Of Membership Characteristic Functions,
Fuzzy Sets and System 4, 1980.

Arigoni Anio, Furlanello Cesare, Maniezzo Vittorio, Irrilevant


Features In Concept Learning,IPMU Parigi 1990.

Baldacci Maria Bruna, Rappresentazione e ricerca delle


informazioni, NIS la Nuova Italia Scientifica, Roma, 1988.

Baldissera C., Ceri S., Colorni A., Metodi di ottimizzazione,


Clup editore, Milano 1981.

Bencivenga Ermanno, Le logiche libere, Boringhieri editore, Torino


1976.

Bettelli Oscar, Dati, Relazioni & Associazioni, Apogeo editore,


Milano 1991.

Bettelli Oscar, Macchine intelligenti, Arpa Publishing 1997.

Bettelli Oscar, Sincronicità: un paradigma per la mente, Antitesi


editoria, Roma.

Bettelli Oscar, Processi cognitivi, CLUEB editore, Bologna 2000.

Boden M., Artificial Intelligence and Natural Man, New York,


Basic Books, 1977.

De Bono Edward, Il meccanismo della mente, Garzanti editore 1972.

Cannataro Mario, Spezzano Giandomenico, Talia Domenico,


Programmazione logica e architetture parallele, Franco Angeli

Carruccio Ettore, Mondi della logica, Zanichelli editore, Bologna


1971.

327
Casadei Giorgio A., Teolis Antonio G.B., Prolog: dalla
programmazione all'intelligenza artificiale, Zanichelli, Bologna 1986.

Ceri S., Gottlob G., Tanca L., Logic Programming and Databases,
Springer Verlag, Germany 1990.

Clocksin W.F., Mellish C.S., Programmare in prolog, Franco Angeli

Churchland Paul M., Il motore della ragione, la sede dell'anima Il


saggiatore editore.

Console Luca, Lamma Evelina, Mello Paola, Programmazione Logica


e Prolog, UTET, Torino 1991.

Feigenbaum E. e Feldman J., Computers and Thought, New York,


McGraw-Hill, 1963.

Furlan Franco Lanzarone A. Gaetano, Prolog, linguaggio e


metodologia di programmazione, Franco Angeli

Goldberg David E., Genetic Algorithms in Search, Optimization and


Machine Learning, Addison-Wesley Pubblishing, Menlo Park California 1989.

Goldbeter A., Cell To Cell Signaling: from experiment to theoretical


models, Academic press, San Diego 1989.

Hintikka Jaakko, Induzione, accettazione, informazione, Il Mulino


editore, Bologna 1974.

Jaspers Karl, Ragione e antiragione nel nostro tempo, Sansoni editore,


Firenze 1978.

Jung Carl Gustav, Sulla sincronicità, Il mulino, Bologna

Lashley Karl S., La fisica della mente, Boringhieri editore, Torino 1969.

Longo Giuseppe, Teoria dell'informazione, Boringhieri editore,


Torino 1980.

Lukaszewicz Witold, Non-Monotonic Reasoning, Ellis Horwood, New


York 1990.

328
Makinson David C., Temi fondamentali della logica moderna,
Boringhieri editore, Torino 1979.

Mendelson Elliott, Introduzione alla logica matematica, Boringhieri


editore, Torino 1972.

Nagao Makoto, Knowledge and Inference, Academic Press, United


Kingdom, 1990.

Nilsson Nils J., Metodi per la risoluzione dei problemi nella intelligenza
artificiale, Franco Angeli editore, Milano 1982.

Pierce John R., La teoria dell'informazione, Edizioni Mondadori,


Milano 1963.

Prigogine Ilya, Stengers Isabelle, La nuova alleanza, Einaudi editore,


Torino 1981.

Putnam Hilary, Rappresentazione e realtà, Garzanti editore.

Rizzi Barbara, La gestione dell'incertezza nei sistemi esperti: La teoria


di Hajek, Tesi di Laurea, Bologna 1990.

Rumelhart David E., McCelland James L., Parallel Distribuited


Processing, MIT Press, London 1989.

Salton G., McGill M.J., Introduction to modern information retrieval,


McGraw-Hill, New York 1983.

Saumya K. Debray, Raghu Ramakrishnan, Generalized Horn


clause Programs, 1991.

Schiavina Barbara, La gestione dell'incertezza nei sistemi esperti:


Un'applicazione, Tesi di Laurea, Bologna 1990.

Singh Jagjit, Linguaggio e cibernetica, Edizioni Mondadori, Milano


1969.

Tsichritzis D.C., Lochovsky F.H., Data models, Prentice-Hall,


Englewood Cliffs, N.Y., 1982.

329