Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 1 Che cosa è la LOGICA. Il Concetto di Logica esprime l elemento essenziale del pensiero umano. La logica permette all uomo di formulare ragionamenti e di elaborare informazioni. La logica è esprimibile con il linguaggio binario. Le frasi del linguaggio della logica prendono il nome di proposizioni logiche o, più semplicemente, proposizioni. In logica si chiama proposizione ogni frase per la quale ha senso dire che è vera , o è falsa . La logica delle proposizioni è anche detta logica bivalente proprio perché ogni proposizione può avere uno solo dei due valori: vero o falso. Esempi Ad esempio, le frasi: A) Napoli si trova in Campania; B) 5 è un numero dispari; C) Roma si trova in Campania; sono proposizioni logiche, perché posiamo dire con certezza che le frasi A e B sono vere, mentre C è falsa; quindi, ogni frase ha un valore di verità o falsità, senza ambiguità. Ad esempio, la frase: D) che bella l Informatica; non è una proposizione logica in quanto non si può dire se è vera o falsa; infatti potrà essere una proposizione vera solo per chi ama l Informatica, ma non per tutti. La verità o la falsità della frase dipendono solo dalle emozioni soggettive. L algebra delle proposizioni è detta anche ALGEBRA BOOLEANA (dal matematico inglese, George Boole, che nel 1854 ne formulò la teorizzazione). In Informatica, l algebra di Boole trova applicazioni in diversi settori: 1. è la logica di cui si avvalgono i calcolatori per interpretare ed eseguire le istruzioni dei programmi; 2. è la logica usata nella progettazione e per il funzionamento dei circuiti elettronici; 3. è utilizzata nello studio dei sistemi elettronici digitali che fanno parte di un computer; 4. nei linguaggi di programmazione, per esprimere scelte in base a dei criteri di selezione, nella sequenza di esecuzione delle istruzioni di un programma; 5. rappresenta uno strumento matematico su cui si basano i sistemi digitali, che utilizzano variabili che possono avere solo uno di due valori: 1 (Vero) o 0 (Falso). L Algebra Booleana trova applicazione nella progettazione di circuiti logici digitali. Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 2 I segnali binari sono livelli di tensione. Il valore esatto della tensione del segnale non è significativo: conta l appartenenza ad un livello contrassegnato alto e ad un livello contrassegnato basso. I componenti di un computer comunicano tra loro mediante segnali elettrici ai quali sono assegnati solo due stati diversi. L algebra booleana quindi diventa lo strumento più opportuno per descrivere il loro funzionamento. In generale, il computer può essere considerato come una rete logica, cioè come un insieme di dispositivi chiamati porte logiche, opportunamente connessi. Le porte logiche sono dispositivi capaci di eseguire operazioni logiche su segnali binari. Questi segnali sono identificati tramite una coppia di simboli, per esempio: 0-1; Vero-Falso; Aperto-Chiuso; .. Allo stato attuale della tecnologia, è possibile integrare in un unico componente di pochi mm2, diversi milioni di porte logiche (CPU, RAM, ecc.). Gli elementi di un'Algebra Booleana possono essere astratti o concreti; ad esempio possono essere numeri, proposizioni, insiemi o reti elettriche. Di solito, gli elementi considerati sono proposizioni, o semplici dichiarazioni, aventi la caratteristica di poter essere o vere o false, con la completa esclusione di casi ambigui. La logica booleana si basa su tre operatori logici: OR AND NOT Una variabile logica (o booleana) è una variabile che può assumere solo uno di due valori (valori di verità): VERO - simboli alternativi: true, 1, ON, SI FALSO - simboli alternativi: false, 0, OFF, NO Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 3 In tale algebra vengono definiti i concetti : variabili booleane operatori booleani porte logiche Variabili booleane Una variabile booleana è una variabile binaria che può assumere esclusivamente due valori logici che saranno denotati con 0 e 1, oppure V e F. Se x è una variabile booleana, vale quindi la seguente definizione: x = 0 se x diverso da 1 x = 1 se x diverso da 0 Operatori booleani Si definiscono gli operatori booleani o logici fondamentali: Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 4 NOT : Negazione Logica, o COMPLEMENTAZIONE AND : Prodotto Logico, o CONGIUNZIONE OR : Somma Logica, o DISGIUNZIONE La verità o la falsità di una variabile booleana sono dette Valori di Verità: una variabile può essere vera o falsa, ma non entrambe le cose. Le operazioni sono rappresentate da opportune tabelle di verità. Esempio di proposizione semplice: A: Napoli è una città; B: Campania è una regione. Esempio di proposizione composta: C: Napoli è una città AND Campania è una regione. La Proposizione Composta, è ottenuta operando sulle proposizioni A e B per mezzo dell operatore AND. Il valore di verità di C dipende dai valori delle due proposizioni. L operazione binaria che da come risultato il valore di verità C si chiama Congiunzione. Si usa AND per unire due elementi che devono essere entrambe necessariamente veri nel contesto del risultato ricercato. Si usa OR per unire due elementi che devono essere presenti l una o l'altra nel contesto del risultato ricercato. Esempio (analisi di un elenco di costruttori di automobili): automobili AND Alfa Romeo AND Ferrari Si possono utilizzare delle parentesi per stabilire l ordine nel quale si devono eseguire le operazioni. Esempio: (Alfa Romeo OR Ferrari) AND automobili Tavola di verità Una espressione complessa ha bisogno di parentesi per indicare l'ordine di applicazione degli operatori. L'algebra booleana prevede delle priorità di applicazione: prima si applica l'operatore NOT, poi AND e infine OR. L espressione A OR NOT B AND C equivale all espressione A OR ((NOT B) AND C). L'espressione (A OR (NOT B)) AND C non rappresenta la stessa funzione della precedente. Come si può dimostrare questo fatto? Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 5 Un metodo e quello di applicare l'induzione perfetta. Questa regola prevede che due formule sono equivalenti se hanno lo stesso valore di verità per qualsiasi valore di verità associato alle variabili che le costituiscono. Per verificare che due espressioni A e B sono equivalenti (A B) si devono quindi esaminare tutti i possibili valori di verità delle variabili costituenti A e B e controllare che i valori di verità delle proposizioni A e B coincidano in ogni circostanza. Questo viene fatto con le cosiddette tabelle di verità. Le tabelle di verità associano a ogni combinazione dei valori di verità delle variabili di una espressione, i valori di verità dell espressione stessa. Gli Operatori Logici NOT : Negazione o Complementazione Operazione unaria che restituisce il valore logico opposto a quello della variabile di ingresso. Per rappresentare il complemento di una variabile x vengono usate varie notazioni: not(x) Rappresentazione dell operazione not(x) con la tavola della verità: x V F not(x) F V Oppure x 0 1 not(x) 1 0 Proprietà: not(not(x)) = x Le tavole di verità sono tabelle matematiche utilizzate come principale rappresentazione di una funzione booleana, per determinare se, attribuiti i valori di verità alle proposizioni che la compongono, una determinata proposizione è VERA o FALSA. AND : Prodotto Logico (AND) L operazione di prodotto logico fra due (o più) variabili fornisce il valore logico 1 se e solo se tutte le variabili assumono valore logico 1. Per rappresentare il prodotto logico di due variabili x e y si usa la notazione: x and y x.y xy Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 6 Rappresentazione dell operazione x and y con la tavola della verità: x 0 0 1 1 y 0 1 0 1 x and y 0 0 0 1 Oppure x F F V V y F V F V x and y F F F V Proprietà: x.0=0 x.1=x x.x=x OR : Somma Logica (OR) L operazione di somma logica fra due (o più) variabili fornisce il valore logico 1 se e solo se almeno una delle variabili assume valore logico 1. Per rappresentare la somma logica di due variabili x e y si usa la notazione: x or y x+y Rappresentazione dell operazione x or y con la tavola della verità: x 0 0 1 1 y 0 1 0 1 x or y 0 1 1 1 Oppure x y F F F V V F V V x or y F V V V Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 7 Proprietà: x+0=x x+1=1 x+x=x L'algebra di Boole trova numerose applicazioni nel campo dei computer e dell'elettronica. Proposizioni più complicate danno luogo a circuiti interruttori più articolati. Si Associa un interruttore a ognuna delle due proposizioni x e y: l interruttore si chiude se la proposizione è vera, e si apre se la proposizione è falsa. In questo caso, l'espressione x AND y si può associare a due interruttori collegati in serie: c è corrente nel circuito se e solo se entrambi gli interruttori sono chiusi, cioè se e solo se entrambe le proposizioni x e y sono vere. Siano x e y due proposizioni. 1) x AND y Corrente nel circuito 2) x OR y Corrente nel circuito Proposizioni più complicate danno luogo a circuiti con interruttori più articolati. Una relazione logica è esprimile anche con la circuiteria delle porte elementari AND, OR e NOT, si abbia ad esempio la relazione : e la si voglia realizzare con una circuiteria apposita; la tabella della verità della relazione precedente è rappresentabile come segue Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 8 Il circuito corrispondente alla funzione prima proposta è rappresentabile come in figura dove ogni blocco parentesi viene realizzato con un circuito logico Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 9 La riga in rosso ad esempio ha la seguente articolazione di segnali . Fondamenti di Informatica Algebra delle Proposizioni- A.A. 2010-11 Ing. Giovanni Secondulfo 10