LEZIONE 6 Algebra booleana e logica In questa lezione impareremo... ◗◗ a utilizzare le tabelle della verità ◗◗ le precedenze degli operatori logici ◗◗ a utilizzare le regole del ragionamento logico ■■ Introduzione Si potrebbe intitolare questa lezione “tributo a Boole” in quanto i due argomenti che verranno affrontati si possono ricondurre al lavoro di Boole descritto in An Investigation of the Laws of Thought, opera in cui Boole pose le basi della logica formale e anche i fondamenti di un nuovo tipo di algebra, nota oggi come algebra booleana: è un’algebra innovativa per il periodo, che formalizza le teorie anticipate nel volumetto dal titolo The Mathematical Analysis of Logic che lui stesso scrisse nel 1847 e dove è presente chiaramente il suo pensiero nei riguardi della logica e della matematica stessa; è l’algebra degli insiemi del suo amico De Morgan (di cui ricordiamo i teoremi e le leggi sugli insiemi); è un’algebra della logica. L’EPOCA DELLE ”RIVOLUZIONI” MATEMATICHE Boole opera in un periodo rivoluzionario che vede la nascita delle geometrie non euclidee di Lobachevsky (siamo sicuri che i triangoli sulla sfera abbiano la somma degli angoli interni uguale a 180°?), la nascita della matematica dell’infinito di Cantor (i numeri reali sono infiniti e sono “di più” dei numeri naturali), e quando in Francia, Galois, appena diciassettenne, inventa i “gruppi”. Per Boole l’insieme universo è 1, l’insieme vuoto è 0, il segno + sta a indicare l’unione tra due insiemi e il segno X sta a indicare l’intersezione tra insiemi (i simboli oggi sono stati cambiati ma il “concetto” è lo stesso). P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 1 UdA 6 Dal problema al programma Inoltre dimostra che la sua algebra è utile a rappresentare ragionamenti di tipo sillogistico (la “logica”, per intenderci, oggi chiamata anche “logica boolena”), e dimostra anche il possibile utilizzo della sua algebra per applicazioni al calcolo delle probabilità. Oltre che in matematica l’algebra di Boole è utilizzata oggi in molteplici discipline tecniche e scientifiche, come la teoria dell’informazione e della trasmissione dei segnali, impieghi impensabili per il 1860 (periodo in cui fu diffusa); il lavoro di Boole ha contribuito alla nascita e allo sviluppo dei computer, macchine “stupide” in grado di comprendere esclusivamente se c’è corrente (stato 1) oppure no (stato 0). Grazie ai teoremi di Claude Shannon, sempre basati sulle regole dell’algebra booleana, si è potuto rappresentare un qualsiasi circuito costituito da una combinazione di interruttori e/o transistor (sistemi digitali) mediante un insieme di espressioni matematiche. Da quanto è stato detto si deduce che l’algebra di Boole spazia dalla matematica alla logica, dall’informatica all’elettronica ed è possibile individuare tre diverse discipline nelle quali trova applicazione: ◗◗ algebra degli insiemi; ◗◗ algebra delle proposizioni; ◗◗ algebra dei circuiti. ■■ Algebra degli insiemi Senza approfondire ogni dettaglio della teoria di Boole, è necessario conoscerne gli aspetti fondamentali. La definizione rigorosa è la seguente: L’algebra di Boole è una struttura algebrica costituita da due costanti, 0 e 1, una operazione unaria – (o !, che è la negazione) e due operazioni binarie * (congiunzione) e + (disgiunzione) e che verifica gli assiomi riportati nella tabella che segue: Proprietà associativa A + (B + C) = A + (B + C) (A * B) * C = A + (B * C) commutativa A*B=B*A A+B=B+A idempotenza A+A=A A*A=A assorbimento A + (A * B) = A A * (A + B) = A distributività A * (B + C) = (A * B) + (A * C) A + (B * C) = (A + B) * (A + C) 1*A=A 0+A=A A * (–A) = 0 A + (–A) = identità esistenza inverso Riportiamo in ultimo anche i teoremi di De Morgan (prima citato): !(A + B) = !A * !B !(A * B) = !A + !B Nella pratica la terminologia utilizzata è la seguente: 2 P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 Algebra booleana e logica Elementi della struttura Valori Descrizione Costanti {F, V oppure 0, 1} F = falso, V = vero oppure 0 = falso, 1 = vero Operatori +, OR operatore binario chiuso detto anche disgiunzione logica *, AND operatore binario chiuso detto anche congiunzione logica !, NOT operatore unario chiuso detto anche negazione logica Lezione 6 Gli operatori vengono anche denominati, rispettivamente, somma logica, prodotto logico e negazione. Il valore assunto da un’operazione logica elementare (e, più in generale, da una funzione logica) può essere espresso mediante una tabella di verità (TT, Truth Table) che riassume tutte le combinazioni dei valori di ingresso e il corrispondente valore del risultato dell’operazione logica. La tabella di verità di una funzione a n ingressi ha 2n righe, che corrispondono a tutte le possibili configurazioni di ingresso e un insieme di colonne suddivise in due gruppi, gli ingressi e le uscite: ◗◗ colonne degli ingressi: contengono tutte le combinazioni di valori delle variabili coinvolte nell’operazione; ◗◗ colonna dell’uscita: riporta i valori assunti dalla funzione in corrispondenza degli ingressi indicati nelle colonne precedenti. Nei paragrafi che seguono procediamo all’esame delle singole operazioni. Operatore AND (*): prodotto logico Prende anche il nome di prodotto logico in quanto il risultato può essere ottenuto dal prodotto algebrico delle due variabili di ingresso: solamente quando entrambi i valori sono uguali a 1 l’uscita assume valore 1, negli altri casi il prodotto vale 0. Il simbolo che rappresenta tale operatore può assumere diverse forme, a seconda della disciplina in cui viene impiegato; le notazioni più diffuse sono le seguenti: A AND B, A && B, AB, A x B In elettronica digitale esiste un circuito che effettua automaticamente questa operazione; esso viene rappresentato negli schemi elettrici mediante il simbolo funzionale riportato nella figura a lato. L’analogia che meglio si presta a descrivere questo operatore è quella elettrica in cui i due ingressi sono rappresentati da interruttori collegati in serie e l’uscita è costituita da una lampadina: affinché la lampadina possa essere accesa entrambi gli interruttori devono essere chiusi. P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 3 UdA 6 Dal problema al programma Operatore OR (+): somma logica Prende anche il nome di somma logica in quanto il risultato può essere ottenuto dalla somma algebrica (senza riporto) delle due variabili di ingresso: l’uscita assume valore 0 soltanto quando entrambi i valori sono uguali a 0, mentre negli altri casi la somma ha come risultato 1. Il simbolo che rappresenta tale operatore può assumere forme diverse, a seconda della disciplina in cui viene impiegato; le notazioni più diffuse sono le seguenti: A OR B, A || B, A + B In elettronica digitale esiste un circuito che effettua automaticamente questa operazione e viene rappresentato negli schemi elettrici mediante il simbolo funzionale riportato nella figura a lato. Sempre utilizzando l’analogia elettrica, in questo caso gli interruttori dovranno essere connessi in parallelo e la lampadina si accenderà quando almeno uno dei due interruttori verrà chiuso: infatti viene garantito il passaggio in almeno uno dei due rami e, di conseguenza, l’accensione della lampadina. Operatore NOT (!): complemento o negazione Prende anche il nome di negazione logica, in quanto effettua il “ribaltamento” del valore della variabile in ingresso: in uscita viene riportato il valore “opposto” al valore della variabile di ingresso, detto appunto valore negato, o complementato. Si ha che: ◗◗ la negazione di 0 è 1 e, viceversa, la negazione di 1 è 0; ◗◗ il complemento di 0 è 1 e, viceversa, il complemento di 1 è 0. Le notazioni più utilizzate sono le seguenti: Not A, !A, A’, Ā Il simbolo funzionale del circuito che in elettronica digitale espleta questa operazione è quello della figura a lato. Combinazione e precedenza degli operatori È possibile combinare più operatori in modo da ottenere espressioni logiche complesse: si può osservare come già le proprietà del reticolo definite in precedenza presentassero combinazioni tra più di due variabili, quindi la possibilità di utilizzare operatori diversi nella medesima espressione. Come nell’algebra tradizionale, anche nell’algebra di Boole sono definite precise precedenze tra gli operatori, che sono le seguenti: NOT - AND - OR 4 P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 Algebra booleana e logica Lezione 6 cioè viene effettuata prima l’operazione di negazione, quindi il prodotto e per ultima la somma logica. Possiamo vedere come, modificando l’ordine, il risultato finale risulti diverso, prendendo in esame l’esempio riportato di seguito. NOT A AND B Eseguiamo l’espressione dapprima con le precedenze corrette, cioè ((NOT A) AND B), eseguendo la negazione di A e solo successivamente l’AND di tale risultato con B; la tabella di verità è riportata a lato. Eseguiamo ora l’espressione con le precedenze errate, cioè (NOT (A AND B)): otteniamo dapprima il risultato di A AND B e solo successivamente effettuiamo la negazione, ottenendo i risultati riportati nella tabella a lato. Come si è appena visto, il risultato è completamente diverso. Il rispetto delle precedenze è fondamentale per otttenere il corretto risultato della espressione; in caso di perplessità o dubbio operativo si suggerisce di introdurre le parentesi che, come nell’algebra, definiscono in maniere esplicita le precedenze. ■■ Algebra delle proposizioni Lo studio di Boole trova applicazione nell’algebra delle proposizioni (anche chiamata “Logica delle proposizioni”), anzi, spesso si identifica con essa! Definiamo innanzitutto il concetto di proposizione: Una proposizione (o enunciato) è un’affermazione che può essere VERA o FALSA. Potendo assumere esclusivamente due valori è quindi un naturale campo di applicazione dell’algebra di Boole, con i suoi enunciati, operatori e teoremi: è quella che viene comunemente chiamata logica moderna e della quale giochi, quesiti ed enigmi “farciscono” riviste di enigmistica e test attitudinali. Anche alcuni presunti “test di intelligenza” si riducono a quesiti di logica che, come vedremo, non danno alcuna indicazione di intelligenza ma evidenziano solamente la conoscenza delle regole dell’algebra di Boole da parte del candidato. LA LOGICA CLASSICA Prima di procedere è opportuno ricordare le origini della logica classica e quindi ricordare Aristotele (384-322 a.C.); dato che logica deriva dal greco logos = pensiero, ragione, possiamo ricordare la seguente definizione classica: ”la logica è la scienza del ragionamento corretto quale possiamo osservarlo attraverso i discorsi che le persone fanno“. P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 5 UdA 6 Dal problema al programma La logica moderna, invece, studia le asserzioni, cioè si basa su proposizioni che esprimono relazioni e ne studia il loro valore (o significato): LOGICA La logica moderna studia i processi deduttivi che, partendo da frasi vere o false, giungono a soluzioni che attribuiscono il valore di vero o falso. In particolare possiamo individuare due compiti della logica matematica: ◗■ il primo compito è stabilire come il valore di verità di un’asserzione composta possa essere calcolato a partire dai valori di verità delle asserzioni che la compongono e quindi dare un significato alla parola “essere vero” (questa parte viene chiamata semantica); ◗■ il secondo compito è quello di formalizzare e riprodurre le forme di ragionamento dell’essere umano, cioè quei processi mentali che permettono di ottenere, a partire da asserzioni considerate vere (premesse), nuove asserzioni (conclusioni). Questa parte della logica prende il nome di teoria della dimostrazione. Vero e falso oppure 1 e 0: supponiamo infatti che invece di dire che un’asserzione è vera affermiamo che ha “valore di verità 1”, invece di dire che è falsa affermiamo che ha “valore di verità 0”. Iniziamo con la distinzione delle proposizioni da semplici frasi, come negli esempi seguenti: Frase A Roma è la capitale d’Italia B Milano è la capitale d’Italia C Il gatto miagola D 6 * 7 è uguale a 42 E 6 * 7 è uguale a 22 F Forse domani pioverà G Ti piace la marmellata? H Telefonami quando arrivi a casa I Piove perché le nuvole sono sopra di noi L Cadendo ti rompi una gamba M Adesso piove N Il vento mi spettina O Frequento la III classe P Il prossimo anno frequenterò l’università Tipologia Esito proposizione VERO proposizione VERO proposizione proposizione proposizione non proposizione non proposizione non proposizione non proposizione non proposizione proposizione proposizione proposizione non proposizione FALSO VERO FALSO ??? ??? ??? ??? ??? VERO VERO FALSO ??? ◗ Le proposizioni vengono indicate da una lettera maiuscola (A, B, C …). ◗ Non è ammesso che una proposizione sia contemporaneamente vera o falsa, quindi frasi interrogative o esclamative che possono assumere diversi valori a seconda dell’interlocutore non sono proposizioni (frasi F, G e H). ◗ Non sono proposizioni frasi che includono eventi casuali (frasi I e L). ◗ Il valore di una proposizione può modificarsi nel tempo, come per esempio le ultime due proposte nella tabella che restano comunque sempre delle proposizioni (frasi M, N, O, P). 6 P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 Algebra booleana e logica Lezione 6 Nel calcolo proposizionale non è importante il significato che hanno le proposizioni, ma esclusivamente il loro valore di verità o falsità. Per esempio, le frasi come: “6 * 8 è uguale a 48” oppure “la domenica viene dopo il sabato”, pur avendo contenuti completamente diversi, per la logica proposizionale sono le stesse in quanto il loro valore è VERO e VERO (V e V). Se all’interno di una proposizione è presente un solo predicato verbale la proposizione si dice semplice mentre è composta se è costituita da due o più proposizione semplici. Per esempio, la frase I non è una frase semplice: potrebbe essere scomposta in due frasi: Q R Piove Le nuvole sono sopra di noi È immediato constatare che la frase completa non è una proposizione, infatti anche se le due proposizioni sono vere la veridicità della proposizione composta non è garantita poiché dipende anche da altre considerazioni non presenti (infatti non basta avere le nuvole sopra alla testa affinché piova!). In generale la presenza del connettivo perché implica considerazioni aggiuntive, quindi non deve essere utilizzato nelle produzioni. Per esempio: la Roma non vince mai perché Totti è un bravo giocatore. Anche se le due proposizioni A (la Roma non vince mai) e B (Totti è un bravo giocatore) sono vere singolarmente, una volta che sono composte (A perché B) si ottiene una affermazione falsa e quindi non si ottiene una produzione. Per costruire proposizioni complesse si utilizzano i connettivi (operatori) dell’algebra di Boole: negazione (not), congiunzione (and) e disgiunzione (or). Prima di proseguire riportiamo un’ultima definizione, concettualmente semplice, che sarà utilizzata in seguito. PROPOSIZIONI Una proposizione, a seconda del numero di variabili che lega, si dice: ◗ unaria: se contiene una variabile; ◗ binaria: se contiene due variabili; ◗ ternaria: se contiene tre variabili; ◗ N-aria: se contiene N variabili. come negli esempi riportati di seguito: Proposizione Descrizione A è un numero pari Unaria A è maggiore di B (A > B) Binaria A è più bello di B che di C Ternaria A è più bello di B che di C che di D... N-aria P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 7 UdA 6 Dal problema al programma Vediamo ora alcuni esempi di proposizioni complesse ottenute mediante i connettivi. Frase Connettivo A Roma è la capitale d’Italia e Parigi di Francia B Milano non è la capitale d’Italia C Il gatto miagola e il cane abbaia congiunzione VERO congiunzione VERO negazione FALSO negazione D 6 * 7 è uguale a 42 o 6 * 7 uguale 48 E 6 * 7 non è uguale a 42 F I pesci non nuotano disgiunzione negazione negazione doppia G Non è vero che i pesci non nuotano H La Ferrari è rossa o il fuoco è caldo I Mario è più vecchio di Luigi che è più giovane di Giovanni L Mario è più vecchio di Luigi o è più giovane di Giovanni Esito VERO FALSO FALSO FALSO disgiunzione VERO disgiunzione VERO congiunzione VERO Come si può vedere nella proposizione G, è possibile combinare più volte i connettivi nella stessa proposizione: nell’esempio è stato riportato il caso classico di doppia negazione che “diventa” un‘affermazione. La proposizione “non ho voglia di fare niente”, se possiamo accettare che niente è la negazione di qualcosa, può essere così trasformata: ◗◗ “non (ho voglia di fare niente)”; ◗◗ “non (non ho voglia di fare qualcosa)”; ◗◗ “non non (ho voglia di fare qualcosa)”; quindi togliendo la doppia negazione si ottiene: “ho voglia di fare qualcosa” Il risultato di una produzione composta si ottiene mediante le tabella della verità che in base alla veridicità o meno delle due proposizioni semplici fornisce i possibili valori della proposizione composta, come nel successivo esempio: “per comprarmi la merenda o ho contanti (A) oppure ho la carta di credito (B)” Dalla tabella della verità del connettivo OR possiamo affermare che la produzione è vera quando una delle due produzioni è vera, mentre è falsa nell’unico caso in cui entrambe sono false. Osserviamo che la tabella della verità è identica a quella vista in precedenza per l’operatore OR: basta sostituire FALSO con 0 VERO con 1 Analogo confronto può essere fatto con le altre tabelle della verità; se però ricordiamo la definizione di struttura algebrica, quando si è detto che sono presenti due costanti, già si è visto come queste costanti possano essere sia Falso e Vero che 0 e 1 ecc. 8 P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 Algebra booleana e logica Lezione 6 ABBIAMO IMPARATO CHE... • Per Boole l’insieme universo è 1, l’insieme vuoto è 0, il segno + sta a indicare l’unione tra due insiemi e il segno X sta a indicare l’intersezione tra insiemi. • L’algebra di Boole spazia dalla matematica alla logica, dall’informatica all’elettronica ed è possibile individuare tre diverse discipline nelle quali trova applicazione: ◗◗ algebra degli insiemi; ◗◗ algebra delle proposizioni; ◗◗ algebra dei circuiti. • L’algebra di Boole è una struttura algebrica costituita da due costanti, 0 e 1, una operazione unaria – (o !, che è la negazione) e due operazioni binarie * (congiunzione) e + (disgiunzione) • Gli operatori vengono anche denominati, rispettivamente, negazione, prodotto logico e somma logica. Hanno le seguenti tabelle della verità: • Lo studio di Boole trova applicazione nell’algebra delle proposizioni, anche chiamata “Logica delle proposizioni”. • La logica moderna studia le asserzioni, cioè si basa su proposizioni che esprimono relazioni e ne studia il loro valore (o significato): studia cioè i processi deduttivi che, partendo da frasi vere o false, giungono a soluzioni che attribuiscono il valore di vero o falso. • Una proposizione, a seconda del numero di variabili che lega, si dice: ◗◗ unaria: se contiene una variabile; ◗◗ binaria: se contiene due variabili; ◗◗ ternaria: se contiene tre variabili; ◗◗ N-aria: se contiene N variabili. P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 9 UdA 6 Dal problema al programma Verifichiamo le conoscenze 1. Esercizi svolti 1 Esercizio: le scatole dei gioielli – caso 1 Situazione: in una delle tre scatole che sono sul tavolo è contenuto un gioiello. Sulle scatole è riportata una scritta, come si può vedere nella figura. Quesito: se solo una affermazione è vera, in quale scatola è il gioiello? Soluzione formale: procediamo per ipotesi costruendo una tabella di questo tipo: A B C Se il gioiello fosse in A V V F Se il gioiello fosse in B F F V Se il gioiello fosse in C F V V L’unica situazione coerente con il quesito è la seconda, quindi il gioiello è in B Se il gioiello fosse in B A B C F F V 2 Esercizio: le scatole dei gioielli – caso 2 Situazione: in una delle tre scatole che sono sul tavolo è contenuto un gioiello. Sulle scatole è riportata una scritta, come si può vedere nella figura. Quesito: se almeno un‘affermazione è vera e almeno una è falsa, in quale scatola è il gioiello? Soluzione formale: procediamo per ipotesi costruendo una tabella di questo tipo: A B C Se il gioiello fosse in A V V F Se il gioiello fosse in B F F F Se il gioiello fosse in C V V V L’unica situazione coerente con il quesito è la prima, quindi il gioiello è in A Se il gioiello fosse in B 10 A B C V V F P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 Algebra booleana e logica Lezione 6 3 Esercizio: le scatole dei gioielli – caso 3 Situazione: in una delle tre scatole che sono sul tavolo è contenuto un gioiello. Sulle scatole è riportata una scritta, come si può vedere nella figura. Quesito: se solo l’iscrizione della scatola che contiene il gioiello dice il vero, mentre le altre due affermazioni sono false, dove si trova il gioiello? Soluzione formale: procediamo per ipotesi costruendo una tabella di questo tipo: A B C Se il gioiello fosse in A V F F Se il gioiello fosse in B F F V Se il gioiello fosse in C F V F L’unica situazione coerente con il quesito è la prima, quindi il gioiello è in A Se il gioiello fosse in B A B C V F F 4 Esercizio: paradosso dell’impiccato Situazione: in un’aula di tribunale è in corso un processo contro un criminale accusato di omicidio. La sentenza, correttamente riportata per iscritto dal giudice, è una condanna all’impiccagione. Viste le continue insistenze (ovviamente infondate) da parte dell’imputato sulla sua innocenza, il giudice gli propone un piccolo gioco per permettergli di commutare leggermente la pena: l’imputato dovrà fare una affermazione di senso compiuto e, se si dimostrerà falsa, verrà comunque impiccato, se invece risulterà vera rimarrà condannato ma alla fucilazione. Il tutto viene scritto nella sentenza dal giudice. Il condannato, non perdendosi affatto d’animo, ragiona con una logica a dir poco rigorosa e ferrea e presenta alle orecchie del giudice l’unica affermazione che gli salva la vita non facendolo né impiccare né fucilare. Quesito: quale affermazione gli ha consentito di salvarsi la vita? Soluzione formale: l’affermazione è “Io sarò impiccato”. È infatti da ricordare che la sentenza emessa era di esecuzione tramite impiccagione. L’affermazione fatta dall’imputato risulta dunque essere vera, ma in tal caso, dovrebbe essere fucilato. Dovendo essere fucilato l’affermazione dovrebbe essere falsa e invece è vera. L’affermazione dunque porta a un paradosso che costringe il giudice, non potendo ignorare la condizione aggiunta alla fine della sentenza, ad assolvere l’imputato. P. Camagni, R. Nikolassy, TI Professional Office 2010 e Windows 7, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2014 11