Oscar Bettelli

MESSAGGI E COMUNICAZIONE Trasformazione delle simiglianze in programmazione logica

1

Introduzione………………………………………… pag. 1. 1.1 1.2 2. 2.1 2.2 2.3 2.4 3. 3.1 3.2 3.3 4. 4.1 4.2 5. 5.1 5.1.1 5.1.2 5.1.3 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.3 5.4 5.4.1 5.4.2 5.4.3 5.5 5.5.1 5.5.2 5.5.3 5.5.4

4

Rappresentazione della conoscenza
Messaggi e comunicazione……………………………….… 6 Rappresentazione simbolica………………………………... 15

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

Il processo di astrazione
Principali meccanismi di astrazione………………………… 58 Il processo di categorizzazione……………………………... 63 Algoritmi genetici…………………………………………... 74

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

Logica matematica
La logica proposizionale……………………………………. 97 Semantiche della logica proposizionale……………………. 99 Teorie proposizionali……………………………………….. 104 Logica proposizionale come sistema deduttivo…………….. 107 Logica classica del primo ordine…………………………… 112 Linguaggi della logica del primo ordine……………………. 112 Semantica della logica del primo ordine……………………. 116 Teorie del primo ordine…………………………………….. 124 Logica del primo ordine come sistema deduttivo………….. 127 Logica del primo ordine multi-ordinata……………………. 130 Il metodo di risoluzione……………………………………. 135 La forma in clausole……………………………………….. 136 Le regole di risoluzione……………………………………. 140 Soluzione lineare…………………………………………... 149 Logica classica del secondo ordine………………………... 152 Linguaggi logici del secondo ordine………………………. 152 Semantica della logica del secondo ordine………………... 155 Teorie del secondo ordine…………………………………. 159 Logica del secondo ordine come sistema deduttivo………. 160
2

5.5.5 5.6 5.6.1 5.6.2 6. 6.1 6.2 6.3 6.4 6.5 6.6 7. 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.2 7.3 7.3.1 7.3.2 7.4 7.5 7.5.1 7.5.2 7.5.3 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 7.15 7.16 7.17 7.18

Espressioni con predicati e funzioni………………….pag. 161 Logica modale…………………………………………….. 167 Logica proposizionale modale……………………………. 167 Logica modale del primo ordine………………………….. 172

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

Trasformazione delle simiglianze
Descrizione di oggetti come insieme di attributi…………… 197 La funzione di appartenenza ad insiemi sfumati……………. 197 Rappresentazione tramite proprietà…………………………. 199 Implicazione semantica……………………………………... 201 Definizione di un'algebra sulle proprietà……………………. 208 Ruolo delle irrilevanze nella formazione di concetti………... 209 Simiglianze nel caso di corrispondenza biunivoca………….. 213 Corrispondenze, trasformazioni, simiglianze……………….. 213 Costruzione di una metrica sull'insieme dei naturali………... 222 Sistemi di deduzione basati su regole………………………. 227 Logiche a più di due valori…………………………………. 232 Logica modale non monotonica intuizionista………………. 232 Logica modale non monotonica a tre valori………………... 240 Logica modale non monotonica a quattro valori……………. 247 Rappresentazione in uno spazio vettoriale binario…………. 253 Sistemi ipotetici in comunicazione reciproca………………. 260 Trasformazioni T da |P(X) a |P(X)…………………………. 264 Rappresentazioni di regole tramite corrispondenze………... 276 Sistemi di regole ricavabili da corrispondenze…………….. 278 Leggi di riduzione dei sistemi di regole……………………. 281 Equivalenza di sistemi di regole……………………………. 283 Definizione di trasformazioni particolari…………………... 286 Misura dell'affidabilità delle deduzioni……………………. 292 Interpretazione statistica dell'affidabilità…………………... 297 Generalizzazione operazioni OR AND XOR …………….. 307 Implicazione semantica di raggruppamento………………. 316 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.
2.1

LE SIMIGLIANZE

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 ¬P P&Q PvQ P -> Q P <-> Q - proposizione - negazione - congiunzione - disgiunzione - implicazione - doppia implicazione

b) Simboli del calcolo delle classi x∈α α⊂β α=β α' α∩β α∪β - appartenenza - inclusione - identità - complementazione - intersezione - unione

c) Quantificatori (√x) (∃x) - universale (per ogni) - 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 k=i,j ∪ xk ∈ T

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) (ii) µ1 è non negativa µ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) (ii) µ2 è non negativa -1 µ2(∅) = µ1(ƒ (∅)) = µ1(∅) = 0

23

(iii) (iv)

µ2 è numerabilmente additiva essendolo µ1 µ2 è finita

-1 e allora vale µ2(yi) = µ1(ƒ (yi)) = µ1(xi) dove xi ∈ T1 e yi ∈ T2 . Poniamo a) µ1(xi ∆ xj) dx (xi,xj) = kx  (xi),(xj) ∈ T1 µ1(xi ∪ xj) µ2(yi ∆ yj) dy (yi,yj) = ky  (yi),(yj) ∈ T2 µ2(yi ∪ yj)

b)

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 ) n=1 n=1 -1 µ2 ( y ) = µ1 (ƒ ( y )) si ha

e

-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) = x + 1 ƒ(x) = x + 2 x ∈ [1,2[ x ∈ [2,3[ 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]) dy ([1,4],[2,6]) =  = µ2([1,6]) µ1([1,2])+µ1([3,4]) =  µ1([1,4]) µ2([1,2])+µ2([5,6])  µ2([1,6]) 2 =  3

(2-1)+(4-3) =  4-1

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) b)

d(∅,∅) = 0 d(xi,xj) = k

per xi=xj=∅ se µ(xi ∪ xj) = 0

c)

µ(xi ∆ xj) d(xi,xj) = k  µ(xi ∪ xj)

(xi), (xj), xi,xj ∈ S 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 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' (x1),(x2),(x3) ∈ S

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) 2) 3) 4) 5) inferenza probabilistica; inferenza induttiva; inferenza basata sul ragionamento del senso comune inferenza basata sul ragionamento qualitativo 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 tecnici:

connessioni tra termini

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 a) soggetto del verbo b) oggetto c) beneficiario d) strumento, metodo e) locazione f) tempo f) causa g) ruolo esempio il cane abbaia comprare un libro dare qualcosa al cane mangia col cucchiaio va a Roma arriva alle cinque arriverò tardi a causa di un terremoto 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 2) generica 3) partitiva 4) associativo 5) antinomia 6) equivalenza BT NT BTG NTG BTP NTP RT A USE UF USE+ utilizza per usato per usa in combinazione termine generale (broader term) termine particolare (narrower term) termine generale generico termine particolare generico termine generale partitivo termine particolare partitivo termine in relazione

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 rappresentato utilizzando il seguente vettore: a: (f1a, f2a, ... ,fna)

a

può essere

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) 2) 3) 4) n1 = numero di T teste nella configurazione; n2 = numero di C croci nella configurazione; n1 + n2 = n ; n1 ed n2 positivi.

Le regole diventano: a) b) stato corrente (n1,n2) (n1,n2) stato successivo (n1-2,n2+2) (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 l'euristica sono:
46

a imitare

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) 2) 3) 4) 5) w(P) w(¬P) wr(A) w(r) wr(P) - peso globale della proposizione p ; - peso della negazione della proposizione p ; - peso antecedente della regola r ; - peso della regola r ; - 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) c) conj(a,b) = min(a,b) 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 P(H/E) =  D P(E) D

4)

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 b) esperienze c) ipotesi d) analogie e) astrazioni f) trascendenze - le distinzioni fatte sugli eventi del mondo; - eventi che capitano o che facciamo accadere; - razionalizzazioni dell'esperienza; - corrispondenza rilevante tra ipotesi diverse; - raffinamenti delle analogie; - 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 2. per ogni x ∈ G se e < x --> x < x + x 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) . (x + x) ∈ G, (x + x) ∈ G.

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.
3.1

IL PROCESSO DI ASTRAZIONE

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 categorizzazione basati sul modello a reti semantiche: sistemi di

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
cosa si trova dietro il 3?

7

D

K

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 domanda: trova una importante

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) 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

otteniamo

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 espressione del problema. una naturale

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.
4.1

I CRITERI DI CLASSIFICAZIONE
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 secondo i criteri abbozzati. Esso si compone genericamente di: costruito

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.
5.1

LOGICA MATEMATICA

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
seguenti

Le semantiche per la logica proposizionale sono basate sulle 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) (ii) (iii) (iv) V(Vero) = 1; V(p) = m(p); V(¬B) = 1 - V(B); 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) (vi) (vii) (viii) V(B v C) = max(V(B),V(C)); V(B & C) = min(V(B),V(C)); V(B ≡ C) = 1 sse V(B) = V(C); 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) (T2) (A -> B) ≡ (¬A v B) (A ≡ B) ≡ ((¬A v B) & (A v ¬B))
100

(T3) (T4) (T5) (T6) (T7) (T8) (T9) (T10) (T11) (T12) (T13) (T14) (T15) (T16) (T17) (T18)

(¬(A & B)) ≡ (¬A v ¬B) (¬(A v B)) ≡ (¬A & ¬B) Regole di De Morgan (¬¬A) ≡ A Legge della doppia negazione (A v (B & C)) ≡ ((A v B) & (A v C)) (A & (B v C)) ≡ ((A & B) v (A & C)) leggi distributive (A & B) ≡ (B & A) (A v B) ≡ (B v A) Leggi commutative A v ¬A Legge del terzo escuso A -> A Riflessività dell'implicazione ((A ≡ B) & (B ≡ C)) -> (A ≡ C) Transitività dell'equivalenza (A -> B) ≡ (¬B -> ¬A) legge della contrapposizione ¬(A & ¬A) Legge della contraddizione Falso -> A (A -> Falso) ≡ ¬A A -> Vero (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

e

n ∪ 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) (B ≡ C) con (¬B v 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) ¬(B & C) ¬¬B con ¬B & ¬C con ¬B v ¬C con B compaiono

fintanto che tutte le ricorrenze della negazione ¬ non immediatamente prima delle formule atomiche. 3) Distribuire & (e) sopra v (o) sostituendo

102

(B & C) v D B v (C & D)

con (B v D) & (C v 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) (ii) (iii) (iv) T ⇒ B sse T ∪ {¬B} è insoddisfacibile; T, A ⇒ B sse T ⇒ A -> B; {A1,...,An} ⇒ B sse ⇒ A1 & ... & An -> B 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 primitivi appartenenti alle seguenti classi: (i) (ii) (iii) (iv) (v) consiste di simboli

Un insieme V numerabile di variabili individuali: {x1,x2,...}; Una costante vera: "Vero"; Connettivi per le frasi: "¬" e "->"; Un quantificatore universale: "(_)" per ogni _ ; 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) (ii) Se A ∈ AFORM(AL), allora A ∈ L(AL); 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 M = <D,m> dove: consiste in

(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) (ii) (iii) (iv) (v) (vi) (vii) Va(Vero) = 1 Va(p) = M|p| Va(P(α1,...,αn)) = M|P|(Va(α1),...,Va(αn)) Va(α = β) = 1 sse Va(α) = Va(β) Va(B -> C) = 1 sse Va(B) = 0 oppure Va(C) = 1 Va(¬B) = 1 - Va(B) 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) (ix) (x) (xi) (xii) Va(B & C) = min(Va(B),Va(C)) Va(B v C) = max(Va(B),Va(C)) Va(B ≡ C) = 1 sse Va(B) = Va(C) Va(Falso) = 0 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) (ii) (iii) (iv) A è vera in M sse (A) è vera in M A è valida sse (A) è valida A è soddisfacibile sse (∃A) è soddisfacibile 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 semidecidibile. 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) (V2) (V3) (√x)A -> (∃x)A (√x)A(x) -> A(α), se α è libera per x in A(x) A(α) -> (∃x)A(x) se α è libera per x in A(x)
118

(V4) (V5) (V6) (V7) (V8) (V9) (V10) (V11) (V12) (V13)

(∃x)(√y)A -> (√y)(∃x)A (√x)(√y)A ≡ (√y)(√x)A (∃x)(∃y)A ≡ (∃y)(∃x)A (√x)A ≡ ¬(∃x)¬A (∃x)A ≡ ¬(√x)¬A (√x)(A -> B) -> ((√x)A -> (√x)B) (√x)A & (√x)B ≡ (√x)(A & B) (√x)A v (x)B -> (√x)(A v B) (∃x)A v (∃x)B ≡ (∃x)(A v B) (∃x)(A & B) -> (∃x)A & (∃x)B

Le formule seguenti sono valide nel caso in cui A non contenga ricorrenze libere di x. (V14) (V15) (V16) (V17) (V18) (V19) (V20) (V21) (V22) (V23) (√x)A ≡ A (∃x)A ≡ A (∃x)B v A ≡ (∃x)(B v A) A v (∃x)B ≡ (∃x)(A v B) (√x)B v A ≡ (√x)(B v A) A v (√x)B ≡ (√x)(A v B) (∃x)B & A ≡ (∃x)(B & A) A & (∃x)B ≡ (∃x)(A & B) (√x)B & A ≡ (√x)(B & A) 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) (B ≡ C) con (¬B v 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 C v (∃x)B (√x)B v C C v (√x)B (∃x)B & C C & (∃x)B (√x)B & C C & (√x)B con con con con con con con con (∃x)(B v C) (∃x)(C v B) (√x)(B v C) (√x)(C v B) (∃x)(B & C) (∃x)(C & B) (√x)(B & C) (√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 B v (C & D) con (B v D) & (C v 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) (ii) (iii) (iv) T ⇒ B sse la teoria T ∪ {¬(B)} è non soddisfacibile; T, A ⇒ B sse T ⇒ A -> B; {A1,...,An} ⇒ B sse ⇒ A1 & ... & An -> B; 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) (A2) (A3) (A4) (A5) (A6) x Vero A -> (B -> A) (A -> (B -> C)) -> ((A -> B) -> (A -> C)) (¬B -> ¬A) -> ((¬B -> A) -> B) (√x)A(x) -> A(α), dove α è qualsiasi termine libero per x in A(x) (√x)(A -> B) -> (A -> (√x)B), dove A non contiene ricorrenze libere di

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) (F2) (F3) (F4) Giovanni, Maria e Giorgio sono studenti Marco e Anna sono i soli insegnanti Tutti gli insegnanti sono insegnanti di Maria 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) (A2) (A3) (A4) (∃xs)(∃ys)(∃zs).(xs=Giovanni) & (ys=Maria) & (zs=Giorgio) (xt).(xt=Marco) v (xt=Anna) (xt).Insegna(xt,Maria) (∃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) (ii) (iii) (iv) (v) (vi) (vii) Va(Vero) = 1 Va(p) = M|p| dove p è una proposizione costante Va(P(α1,...,αn)) = M|P|(Va(α1),...,V(αn)) Va(α = β) = 1 sse Va(α) = Va(β) Va(B -> C) = 1 sse Va(B) = 0 oppure Va(C) = 1 Va(¬B) = 1 - Va(B) 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) (2) Uccello(Titti) 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) (6) (7) (8) Uccello(Titti) ¬Uccello(Titti) v Vola(Titti) Ha-le-ali(Titti) v ¬Vola(Titti) ¬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 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)}. seguenti

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 problema di unificazione. risolve il

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) (ii) (iii) (iv) (v) (vi) k=0; θ0 = ∅. D0 = {x,a}. k=1; θ1 = {x <- a}. D1 = {b,y}. k=2; θ2 = {x <-a;y <- b}. θ2 è l'unificatore più generale per EX. Sia EX = {Q(x,x),Q(a,b)} (i) (ii) (iii) (iv) k=0; θ0 = ∅. Do = {x,a}. k=1; θ1 = {x <- a}. 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 confutazione da

è una

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) (ii) C0 ∈ CL ; (C0 si chiama clausola iniziale della confutazione) 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) / / / (8) / / / (2) / / / (3) / /

¬Uccello(Canarino)

x ≠ Canarino v ¬Uccello(x)

Titti ≠ Canarino

Θ

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 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

P ∈ |P ha

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) (ii) (iii) (iv) (v) (vi) Va(Vero) = 1; Va(p) = M|p|; Va(P(α1,...,αn)) = M|P|(Va(α1),...,Va(αn)); Va(α=β) = 1 sse Va(α) = Va(β); Va(Φ) = a(Φ), dove Φ è qualsiasi variabile proposizione; 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) (ii) (iii) (iv) (v) Vw(p) = m(p,w); Vw(¬B) = 1 - Vw(B); Vw(B -> C) = 1 sse Vw(B) = 0 oppure Vw(C) = 1; Vw(LB) = 1 sse Vw(B) = 1 per ogni w' ∈ W tale che wRw'; 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) (A2) (A3) (A4) (A5) (A6) Vero A -> (B -> A) (A -> (B -> C)) -> ((A -> B) -> (A -> C)) (¬B -> ¬A) -> ((¬B -> A) -> B) LA -> A 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) (ii) Tutte le formule atomiche su AL sono elementi di L(AL); 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) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) Vero A -> (B -> A) (A -> (B -> C)) -> ((A -> B) -> (A -> C)) (¬B -> ¬A) -> ((¬a’B -> A) -> B) (√x)A(x) -> A(α), dove α è qualsiasi termine libero che sostituisce x in A(x) (√x)(A -> B) -> (A -> (√x)B) dove A non contiene ricorrenze libere di x LA -> A L(A -> B) -> (LA -> LB) (√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.
6.1

PROGRAMMAZIONE LOGICA

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) (2) Oggi è sabato sera 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 A <- B1,...,Bq (Gi) (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 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. le seguenti

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 ottimizzato diverso, sono: Le classi I domini I contesti Le regole I fatti

di ricerca

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

---------| EDITOR | ---------| | -------------| DATA BASE | | Regole |------------> | Fatti | | Termini | | BASE DI | | CONOSCENZA | --------------

---------------| Utente | | |-------| GOAL | | ---------------- -----------| | RISPOSTA | | ---------------------------| | INTERFACCIA | | | FILTRO PROLOG | | ----------------| | | ----------------| | 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.
7.1

TRASFORMAZIONE DELLE SIMIGLIANZE
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 proprietà 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' l'insieme delle possibili proprietà elemetari diviene P = {pα:α=1,2,...,n;n=3 exp(l)}. Esempio:

insieme {0,1,*} e

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= p13= p15= p24= p26= p34= p37= p48= p56= p57= p68= p78= 00* 0*0 *00 0*1 *01 01* *01 *11 10* 1*0 1*1 11*

p1= p2= p3= p4= p5= p6= p7= p8=

000 001 010 011 100 101 110 111

p1234= p1256= p1357= p2468= p3478= p5678=

p1324= p1526= p1537= p2648= p3748= p5768=

0** *0* **0 **1 *1* 1**

p12345678 = = p12563478 = = p13572468 = = p. = ***

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 (ii) R ∨ S = S ∨ R (iii) (R∨S)∨T = R∨(S∨T) (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. (i’) R ∧ R = ∧ R (ii’) R ∧ S = S ∧ R (iii’) (R∧S)∧T = R∧(S∧R) (iv') (R∨S)∧R = ∧R.

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 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 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 denoteremo con A(|P). < |P, ∨, ∧, ¬, p*, ∧A>; la sull'insieme delle l'area semantica

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 insiemi. trasformazione su

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) per ogni xi ∈ |P(I1) xi = {i1,i2,...,ik} T(xi) = T({i1,i2,...,ik}) = {ƒ(i1),ƒ(i2),...,ƒ(ik)} = definita come segue;

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 è indurla, con lo stesso significato anche su I2. possibile

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: a) m1(xi ∆ xj) dx (xi,xj) = kx  m1(xi ∪ xj)
220

b)

m2(yi ∆ yj) 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 appartenenti a Y vale c) dx(xi,xj) = β dy(yi,yj) X e 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} Tr({3,4}) = {1,2,3,4} Tr({2,3,4}) = {1,2,3,4} Tr({3,4,5}) = {1,2,3,4,5} corrispondente al numero 2 corrispondente al numero 4 corrispondente al numero 4 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) Analizziamo l'intorno di {1}. Denotiamo con <1,2,...,n> l'insieme ordinato {1,2,...,n}.
224

xi,xj ∈ |P(|N)

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>) =  n la matrice dei valori della distanza è: con n ≥ m

<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 xj ⇒ xk xj → xk xj -> xk xk <- xj (implicazione semantica) (implicazione logica) (deduzione logica sintattica) (implicazione materiale logica) (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) (2) ¬A ∈ Th(T) sse sse ¬¬A ∈ Thi(T) ¬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 M = <U,≤,m>, dove

una tripla

(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 tempo t in M, ovvero: (1) t M p t M A per indicare che A è conosciuto al

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 definendo LA come abbreviazione di ¬M¬A si ottiene facilmente che

(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 intuizionista di Gabbay.
236

indicare la logica

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) (G2) (G3) (G4) (G5) 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 ¬MA ≡ ¬A (MA -> B) ≡ ¬A v B (MA -> A) ≡ ¬A v A (MA -> ¬A) ≡ ¬A M(A & B) -> MA & MB.

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 | ------1 | 0 u | u 0 | 1 A & B | 1 u 0 -----------------1 | 1 u 0 u | u u 0 0 | 0 0 0 A v B | 1 u 0 -----------------1 | 1 1 1 u | 1 u u 0 | 1 u 0

A -> B | 1 u 0 -------------------1 | 1 u 0 u | 1 u u 0 | 1 1 1

A ≡ B | 1 u 0 ------------------1 | 1 u 0 u | u u u 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 \ 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 osservazioni deve essere plausibile rispetto alle informazioni parziali in nostro possesso.
241

0 /

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) (2) (3) m ≈> m' implica m ≤ m' m ≈> m 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) (2) (3) (4) (5) (6) Vm(p) = m(p) per ogni proposizione costante p ∈ L Vm(A v B) = Vm(A) v Vm(B) Vm(A & B) = Vm(A) & Vm(B) Vm(¬A) = ¬Vm(A) Vm(A -> B) = Vm(A) -> Vm(B) Vm(A ≡ B) = Vm(A) ≡ Vm(B) m' ∈ F se Vm'(A) = 1 per qualche m' se Vm'(A) = 0 per ogni m' negli altri casi

(7) sia m ≈> m' Vm(MA) = 1 Vm(MA) = 0 Vm(MA) = u

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 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

che

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 poichè 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 1 0 | 1 (Vm(Pi) = 1 0 1 | 0 (Vm(pi) = 0 1 1 | c (Vm(pi) = c

mancanza di informazione) Pi è vera) ¬Pi è vera) contraddizione elementare)

Questa interpretazione porta alle seguenti tavole di verità per i connettivi tra le frasi:
¬A | ------1 | 0 u | u c | c 0 | 1 A & B | 1 u c 0 ---------------------1 | 1 u 0 0 u | u u 0 0 c | 0 0 0 0 0 | 0 0 0 0 A v B | 1 u c 0 --------------------1 | 1 1 1 1 u | 1 u u u c | 1 u 0 0 0 | 1 u 0 0

A -> B | 1 u c 0 ----------------------1 | 1 u 0 0 u | 1 u 0 u c | 0 0 0 0 0 | 1 1 0 1

A ≡ B | 1 u c 0 ---------------------1 | 1 u 0 0 u | u u u u c | 0 u 1 0 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) (2) (3) (4) (5) (6) V(p) = m(p) per ogni proposizione costante p V(¬A) = ¬V(A) V(A & B) = V(A) & V(B) V(A v B) = V(A) v V(B) V(A -> B) = V(A) -> V(B) 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 \ 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 \ / c - u
248

\ 0 /

0

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 osservazioni deve essere plausibile rispetto alle informazioni parziali in nostro possesso.

249

(3) Ogni conclusione non è mai definitiva, anche se derivata da precise osservazioni può essere contraddetta in qualsiasi momento 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) (2) (3) m ≈> m' implica m ≤ m' alla prima generazione m ≈> m alla generazione zero

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) (2) (3) (4) (5) (6) Vm(p) = m(p) per ogni proposizione costante p ∈ L Vm(A v B) = Vm(A) v Vm(B) Vm(A & B) = Vm(A) & Vm(B) Vm(¬A) = ¬Vm(A) Vm(A -> B) = Vm(A) -> Vm(B) 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 2) x1 & x2 & x3 -> x4 3) x1 -> x2 v x3 con x2 :- x1. con x4 :- {x1,x2,x3}. o anche x4 :- x1,x2,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. con {x2,x3} :- x1. o anche x2 :- x1. x3 :- x1.

6) x1 -> x2 & x3

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(bk) = 0 , p(bk) = 0 , p(bk) = 1 ,

p(dk) = 0 p(dk) = 1 p(dk) = 0 p(dk) = 1

la configurazione <TTT> è vera la configurazione ¬<TTT> è vera informazione mancante 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> <0|1> <0|0> <1|1> fatto vero fatto negato informazione mancante 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 1 0 | 1 | 1 0 0 1 | 1 | 0 1 0 0 | 1 | 0 0 1 1 | -1 | 0 0 1 0 | -1 | 0 1 0 1 | -1 | 1 0 0 0 | -1 | 0 0

Contraddizione bj :- bi. dj :- di. Manca informazione Contraddizione dj :- bi. bj :- di. 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 seguente: nel modo

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 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

S1 ed S2

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)
variabili

Vediamo come costruire una rappresentazione in uno spazio di 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 b2 b3 b4 b5 b6 b7 b8 b9 insieme A insieme B proprietà P1 proprietà P2 oggetto o1 oggetto o2 oggetto o3 oggetto o4 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 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" o2,o3,o4

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) 2) 3) 4) A :- o1,o2,o3. B :- o3,o4,o5. P1 :- o2,o3,o4. 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) 2d) 3d) 4d) 5d) o1 :- A,P2. o2 :- A,P1,P2. o3 :- A,B,P1. o4 :- B,P1. 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 (A - o1) (A - o2) (A - o3) Duali (o1 - A) (o1 - P2) (o2 - A) (o2 - P1) (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) (o3 - B) (o2 - P1) (o1 - P2) (o2 - A) (o3 - A) (o4 - B) (o5 - B) (o3 - P1) (o4 - P1) (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 o2 :- A,¬B o3 :- A,B o4 :- ¬A,B o5 :- ¬A,B (dove ¬B sta per non 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 relazioni binarie nella forma: xk :- x1. xk :- x2. ... xk :- xn. ii) diremo interpretazione AND la regola ricavabile dalle relazioni 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} {x2,x3} ---> {x2,x3,x4} {x2,x4} ---> {x1,x2,x3,x4} si ottiene: δ 1 ---> 2 ---> 3 ---> 3 ---> x3 x4 x1 x4 π {x1,x2} ---> 1 {x2,x3} ---> 2 {x2,x4} ---> 3

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. u :- t. u :- p. v :- u. Titti è un pinguino Titti è un uccello I pinguini sono uccelli 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 B) T(S2) = Sk ==> Ri ==> 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 differenza δ.

con

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 1) 2) 3) 4) 5) 6) {x1,x2} --> {x1,x2,x3} {x1,x2,x3} --> {x1,x2,x3,x4} {x1,x2,x3,x4} --> {x1,x2,x3,x4,x5} {x1,x2,x3,x4,x5} --> {x1,x2,x3,x4,x5,x6} {x2,x3} --> {x2,x3,x4} {x2,x3,x4} --> {x1,x2,x3,x4,x5}
279

Sj {x3} {x4} {x5} {x6} {x4} {x1,x5}

7) {x2,x4} 8) {x3,x4} 9) {x2,x3,x4,x5}

--> {x1,x2,x3,x4} --> {x2,x3,x4,x5} --> {x1,x2,x3,x4,x5,x6}

{x1,x3} {x2,x5} {x6}

allora selezionando le regole dominanti otteniamo: a) b) c) d) e) f) g) x3 :- x1,x2. dalla 1) x4 :- x2,x3. dalla 5) x1 :- x2,x4. dalla 7) x3 :- x2,x4. dalla 7) x2 :- x3,x4. dalla 8) x5 :- x3,x4 dalla 8) 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 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. effettivamente

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} Sia xp = {op} i attributi

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 consideriamo i seguenti passi: 1) GEN(E0) = E1 evidenze della prima generazione selezione;

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 Pe(bk) = -1 Pe(bk) = 0 Pe(bk) = p bk vero bk negato (falso) bk indeterminato |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) k bk ∈ xi

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) 2) 3) 4) Pe(bi) = 1 Pe(bj) = -1 Pe(rk) = 1 Pe(rk) = -1 sse sse sse sse bi è vero bj è falso, (denotiamo con ¬bj) rk è vera 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 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

una

sia µ(fi) = µ(bi,di) definita come µ(fi) = 1 µ(fi) = 0 sse (bi=1, di=0) oppure (bi=0,di=1) ; 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) k fk ∈ xi

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  n -> ∞ n = Pr(bi)
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) r2) r3) r4) r5) r6) r7) r8) b1 :- bk. b2 :- bk. b3 :- bk. b4 :- bk. b5 :- bk. b6 :- bk. b7 :- bk. 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 i=1 somma della probabilità statistica 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) =  P(xk) si ha

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 nel caso 3) si ha: Supponendo che ad Oi corrispondano k messaggi {Ii1,...,Iik} 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) =  k il messaggio Ii1 corrisponde ad Oi una volta ogni k volte. distinti e il messaggio Ii dipende strettamente da Oi

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 Ps(bk) =  =  e poichè m m

i)

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. xk1 :- x1. xk4 :- x1. r2) xk1 :- x2. r3) xk1 :- x3. r4) xk2 :- x4. r5) xk3 :- x5. verificata 20 volte di cui verificata 10 volte e verificata 10 volte. verificata 15 volte. verificata 5 volte. verificata 35 volte. 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 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 ... ... 4) AND ON ON ON ON ---| ---| ---|--- ON ---|
307

ON ---| |--- ON OFF ---|

---| ---| ---|--- ON ---|

Un altro modo usuale per definire gli operatori OR ed AND è quello di utilizzare le tavole di verità: OR V V | V VF|V FV|V FF|F AND V V | V VF|F FV|F FF |F nel campo della

Vediamo ora le implicazioni di quanto esposto finora 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 R1) R2) R3) R4) R5) R6) x1 - x3 x2 - x3 x2 - x4 x3 - x4 x3 - x5 x4 - x5 Relazioni duali R11) R12) R13) R14) R15) R16) x3 - x1 x3 - x2 x4 - x2 x4 - x3 x5 - x3 x5 - x4
308

R7) x2 - x6 R8) x3 - x6 R9) x4 - x6 R10) x5 - x6

R17) x6 - x2 R18) x6 - x3 R19) x6 - x4 R20) x6 - x5 del tipo

Possiamo interpretare le relazioni come regole di implicazione 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) R22) R23) R24) x3 :- x1,x2. x4 :- x2,x3. x5 :- x3,x4. 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. x3 :- x1,x2. <=== { (x1-x3),(x2-x3) } oppure <=== { (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) R26) R27) R28) R29) R30) R31) R32) R33) R34)

x3 :- x1. x3 :- x2. x4 :- x2. x4 :- x3. x5 :- x3. x5 :- x4. x6 :- x2. x6 :- x3. x6 :- x4. x6 :- x5. oppure dalla

Allora la regola R25) è rappresentabile dalla relazione R1) relazione R11), disgiuntamente (OR). x3 :- x1. x3 :- x1. <=== x1 - x3 oppure <=== 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 x1 x2 Prima generazione | | | x3 | x4 | x6 | | Seconda generazione | | | | | | 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) C2) C3) C4) Procedimento Forward con interpretazione OR Procedimento Forward con interpretazione AND Procedimento Backward con interpretazione OR 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 | x4 V

x3 :- x1 x4 :- x2

314

E2)

AND x1 V | x2 V | | x3 V | x4 F

x3 :- x1,x2 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 ii) Vl(P) = 0 e Vl(¬P) = 1 se Vm(P) = 1 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 \ / 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

c

Per comprendere questa distinzione introduciamo il concetto di variabile irrilevante. Consideriamo la reguente regola: 1) equivalente a 2) {b2,b3} :- {b1,b2}. (b1 & b2) -> (b2 & b3)

possiamo dalla 1) trarre la seguente conclusione: 3) o anche 4) b3 :- b1. 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) OR) XOR) b1 & b2 b1 v b2 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. x3 :- b2,d1. OR) - x1 :- b1. x1 :- b2.

sono quattro bit di informazione sono due bit di informazione

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) 3) x1 --> x3 (w13) 5) x2 --> x3 (w23) 7) x4 --> x3 (w43) 9) x3 --> x5 (w35) 11) x6 --> x4 (w64) 2) 4) 6) 8) 10) 12) x2 --> x1 (w21) x3 --> x1 (w31) x3 --> x2 (w32) x3 --> x4 (w34) x5 --> x3 (w53) 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 domanda:
323

la

seguente

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 | | x1 | x2 | x4 | x5 | x6 | SEL | | | | x1 | | | x2 | | | x4 | | | | | | | 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 Features In Concept Learning,IPMU Parigi 1990. Vittorio, Irrilevant

Baldacci Maria Bruna, Rappresentazione e informazioni, NIS la Nuova Italia Scientifica, Roma, 1988. Baldissera C., Ceri S., Colorni A., Metodi Clup editore, Milano 1981. di

ricerca

delle

ottimizzazione,

Bencivenga Ermanno, Le logiche libere, Boringhieri editore, Torino 1976. Bettelli Oscar, Dati, Relazioni & Associazioni, Apogeo Milano 1991. Bettelli Oscar, Macchine intelligenti, Arpa Publishing 1997. Bettelli Oscar, Sincronicità: un paradigma per la mente, editoria, Roma. Bettelli Oscar, Processi cognitivi, CLUEB editore, Antitesi 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: programmazione all'intelligenza artificiale, Zanichelli, Bologna 1986.

dalla

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, Torino 1980. Boringhieri editore,

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 Milano 1963. Mondadori,

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 clause Programs, 1991. Horn

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., Englewood Cliffs, N.Y., 1982.
329

Data

models,

Prentice-Hall,

Sign up to vote on this title
UsefulNot useful