ELEMENTI DI ALGEBRA BOOLEANA - Nicola BRUNO 3 - Elementi di algebra...Applicazioni dell’algebra...

45
ELEMENTI DI ALGEBRA BOOLEANA CONCETTO DI LOGICA: 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.

Transcript of ELEMENTI DI ALGEBRA BOOLEANA - Nicola BRUNO 3 - Elementi di algebra...Applicazioni dell’algebra...

ELEMENTI DI ALGEBRA BOOLEANA

CONCETTO DI LOGICA: 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

Per esempio, la frase:D) che bella l’Informatica;non è una proposizione logica perché non possiamo dire se è vera o falsa. Può 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.

Per esempio, le frasi:A) Potenza si trova in Basilicata;B) 5 è un numero dispari;C) Matera si trova in Puglia;sono proposizioni logiche, perché posiamo dire con certezza che le frasi A e Bsono vere, mentre C è falsa.Ogni frase ha un valore di verità o falsità, nessuna ambiguità.

Applicazioni dell’algebra booleana

L’algebra delle proposizioni è detta anche ALGEBRA BOOLEANA (matematico inglese,George Boole, 1854).

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

INTRODUZIONE

INTRODUZIONE UTILIZZO DI AND E OR NELLE QUERY

Operatore logico Descrizione

AND Restringe il campo d’azione della query

OR Amplia il campo d’azione della query, aumentando il numero di record che soddisfano le condizioni

UTILIZZO DI AND – Questo metodo serve per limitare l’elenco dei record in base alle condizioni comprese tra due valori.

Esempio: Vogliamo creare una query di selezione per visualizzare tutti i libri prestati dopo il 01.01.2002 e prima del 31.12.2002.

INTRODUZIONE

Questo metodo serve per individuare gruppi diversi di record:una parte che implica la riduzione dei gruppi (con AND) e le altre parti che richiedono

l’ampliamento (con OR).- I criteri AND vanno tutti sulla stessa riga e vengono valutati assieme.

- I criteri OR vanno su righe separate e ogni riga e valutata separatamente.

UTILIZZO DI AND e OR MULTIPLI

ESEMPIO 1: Visualizza tutti i libri che costano tra 10.000 e 50.000. Per trovare questi libri si utilizza AND.ESEMPIO 2: Visualizza tutti i libri che costano <= 10.000 OPPURE >=50.000. Per trovare questi libri si utilizza OR.ESEMPIO 3: Se vogliamo solo i libri di una casa editrice MONDADORI, allora dobbiamo ripetere le informazioni della casa editrice su ogni riga OPPURE.

INTRODUZIONE MOTORE DI RICERCA – USO DI AND, OR

Con la modalità Avanzata:Si usa AND per unire due parole che devono essere entrambe necessariamente presenti nel risultato della ricerca. Si usa OR per unire due parole che devono essere presenti l’una o l'altra nel risultato della ricerca.

Esempio: automobili AND bmw AND mercedes

Non è indispensabile scrivere in maiuscolo gli operatori AND e OR, ma può essere utile per distinguere le parole della ricerca dalle istruzioni date al motore.

Esempio: (bmw OR mercedes) AND automobili

Si possono utilizzare delle parentesi per stabilire l’ordine nel quale il motore di ricerca deve eseguire le operazioni.

L’ALGEBRA BOOLEANA trova applicazione nella progettazione di circuiti logici digitali.

RETE LOGICA

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.

CALCOLATORE COME RETE LOGICA

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; ecc.

Allo stato attuale della tecnologia, è possibile integrare in un unico componente di pochi cm2, diversi milioni di porte logiche (CPU, RAM, ecc.).

ESEMPI PROGETTAZIONE DI CIRCUITI LOGICI DIGITALI

Algebra booleanaGli 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 consiste di tre operatori logici di base:OR AND NOTUna variabile logica (o booleana) è una variabile che può assumere solo uno di due valori (valori di verità):VERO - simboli alternativi: true, 1, ON, SIFALSO - simboli alternativi: false, 0, OFF, NO

Concetti

Vengono definiti i seguenti 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 ≠≠≠≠ 1

x = 1 se x ≠≠≠≠ 0

Operatori booleaniSi definiscono gli operatori booleani o logici fondamentali:

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 VERITA’: 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: Potenza è una città;B: Basilicata è una regione.Esempio di proposizione composta:C: Potenza è una città AND Basilicata è una regione.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.

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

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)

x

Rappresentazione dell’operazione not(x) con la tavola della verità:

FV

VF

not(x)x

10

01

not(x)xoppure 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

x y

Rappresentazione dell’operazione x and y con la tavola della verità:

0001

x and y0101

0011

yx oppureFFFV

x and yFFVV

FVFV

yx

Proprietà:

x . 0 = 0

x . 1 = x

x . x = x

ORSomma 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à:

0111

x or y0101

0011

yx oppureFVVV

x or yFFVV

FVFV

yxProprietà:

x + 0 = x

x + 1 = 1

x + x = x

ELETTRONICA

Esempio di applicazione alla teoria dei circuiti elettrici:

L'algebra di Boole trova numerose applicazioni nel campo dei computer e dell'elettronica.

Proposizioni più complicate danno luogo a circuiti interruttori più articolati.

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

x yx

Siano x e y due proposizioni.

Corrente nel circuito1) x AND y

2) x OR y Corrente nel circuito

x

y

Porte LogicheLe porte logiche sono dispositivi elettronici capaci di eseguire

operazioni logiche su variabili booleane.

A AND B

A OR B

NOT A

Porta AND

Alcune proprietà della porta AND

Porta OR

Alcune proprietà della porta OR

Rete combinatoria

Tale comportamento è dato dalla tabella:

1011

1010

0001

0101

0011

U2=X*Y + -Y-YU1=X*YYX

Una rete combinatoria è un circuito che usa porte logiche per realizzare funzionibooleane più complesse.

U1=X AND Y U2=X AND Y OR NOT Y

Rete combinatoria

(X AND NOT Y) OR NOT (X OR Y)

Proprietà

IDEMPOTENZA

x + x = x

x . x = x

Proprietà degli operatori logici NOT, AND e OR

ELEMENTO NULLO

x + 1 = 1

x . 0 = 0 PROPRIETÀ COMMUTATIVA

x + y = y + x

x . y = y . x

PROPRIETÀ ASSOCIATIVA

x + (y + z) = (x + y) + z = x + y + z

x . (y . z) = (x . y) . z = x . y . z

ProposizioniIn generale, l’obiettivo della logica proposizionale è quello di associare ad una frase del nostro linguaggio una espressione booleana, che ne rappresenta un modello logico.

Una proposizione è un qualunque asserto che può assumere solo il valore Vero o Falso.Ad una proposizione è possibile associare una variabile booleana, detta in questo caso proposizionale, il cui valore (1 per Vero e 0 per Falso) coincide con quello della proposizione stessa.

Una frase del nostro ragionamento è considerata come un insieme di proposizioni elementari collegate tra loro mediante alcuni elementi del linguaggio, tra cui i più frequenti sono: “o”, “e” e “non”.

Nel modello logico, a questi elementi dobbiamo sostituire gli operatori logici:

“o” (“oppure”) alternativa (o disgiunzione) logica (OR) somma “+”

“e” congiunzione logica (AND) prodotto “·“

“non” negazione logica (NOT) negazione “-”

ProposizioniSostituendo nella frase:

1. alle proposizioni le variabili logiche;

2. agli elementi di collegamento gli operatori;

si ottiene una espressione booleana che rappresenta il modello logico della frase stessa.

Proposizioni: p, q, t, …

PrioritàPer calcolare una espressione booleana, si costruisce la corrispondente tabella di verità con le

seguenti regole:

1. la tabella avrà tante righe quante sono le possibili combinazioni delle variabili: con 2

variabili, 4 righe; con 3 variabili, 8 righe; in generale, con n variabili, 2n righe;

2. la tabella avrà tante colonne quante sono le operazioni indicate nell’espresione;

3. la priorità delle operazioni è data dalle parentesi, procedendo da quelle più interne verso l’esterno, oppure mediante l’ordine di esecuzione degli operatori: not, and, or.

Esempio: calcolare la seguente espressione: (p and q) or not p

VFVV

FFVV

VFFF

VFVF

VVFF

(p and q) or not pnot pp and qqp

EsempioConsideriamo la frase:

L’auto può attraversare il casello autostradale se il conducente ha pagato e l’operatore alza la sbarra oppure se il conducente possiede una tessera autostradale e l’operatore alza la sbarra.

Il modello logico associato alla frase può essere costruito individuando le seguenti proposizioni

elementari:

y=1 (Vero)

y=0 (Falso)

se l’auto attraversa il casello

se l’auto non può attraversare il casello

s=1

p=1

t=1

se l’operatore del casello alza la sbarra

se il conducente ha pagato

se il conducente possiede la tessera autostradale

Variabile booleana associataProposizione

La variabile di uscita è in questo caso y, mentre s, p e t sono quelle di ingresso. Sostituendo

nella frase agli elementi del linguaggio E e OPPURE i rispettivi operatori logici prodotto e somma, si ottiene l’espressione booleana:

p . s + t . s

Esempio (segue)

L’espressione booleana y = p . s + t . s ha la seguente tabella della verità:

Nel modello logico del nostro esempio, la condizione per cui il conducente attraversa il casello (y=1) si ha, per esempio, quando possiede la tessera (t=1) e si alza la sbarra (s=1).

Circuito (segue)

y = p . s + t . s

Equivalenza logica

Due espressioni si dicono equivalenti quando hanno la stessa tavola di verità.

Esempio: verificare che le seguenti espressioni sono equivalenti:

(p AND q) or (NOT p) (NOT p) OR q

VFVV

FFVV

VFVF

VVFF

(NOT p) OR qNOT pqp

FFVV

NOT p

VFVV

(p AND q) OR (NOT p)

VFFF

VFVF

VVFF

p AND qqp

Esercizi

Esercizio 1: calcolare la tavola di verità delle seguenti espressioni:

p and not q or p

not p or not q or t

Esercizio 2: calcolare le seguenti espressioni per i valori assegnati:

p or not q or p and not t

per p = Vero, q = Falso, t = Vero

Esercizio 3: calcolare le seguenti espressioni per i valori assegnati:

not p and not q or t

per p = Falso, q = Falso, t = Falso

Proprietà

Proprietà degli operatori AND, OR, NOT:

1) RIFLESSIVI:

A AND B ≡ B AND A

A OR B ≡ B OR A

2) ASSOCIATIVI:

A AND B AND C ≡ (A AND B) AND C ≡ A AND (B AND C)

A OR B OR C ≡ (A OR B) OR C ≡ A OR (B OR C)

Esempio alla fine

Proprietà

3) DISTRIBUTIVI RECIPROCAMENTE:

4) NEGAZIONE:

A AND (B OR C) ≡ (A AND B) OR (A AND C)

A OR (B AND C) ≡ (A OR B) AND (A OR C)

NOT NOT A ≡ A

Esempio alla fine

Proprietà

5) Leggi di DE MORGAN:

NOT (A AND B) ≡ (NOT A) OR (NOT B)

NOT (A OR B) ≡ (NOT A) AND (NOT B)

Esempio alla fine

OPERATORI SPECIALIMediante gli operatori logici di somma, prodotto e negazione, possiamo definire gli operatori

speciali descritti dalle seguenti tabelle.

Somma negata o NOR logico (OR Negato)

1000

y = A + B0101

0011

BA

oppureVFFF

y = A + BFFVV

FVFV

BA

Espressione logica: y = A + B

Tabella di verità

Simbolo della porta logica

L’operazione di NOR logico è l’operazione negata dell’operazione OR.

Il simbolo NOR è una contrazione di NOT OR.

Quindi l’operazione di NOR logico fra due (o più) variabili fornisce il valore logico 1 se nessuna delle variabili assume il valore logico 1.

OPERATORI SPECIALIProdotto negato o NAND logico (AND Negato)

1110

y = A . B

0101

0011

BA oppureVVVF

y = A . B

FFVV

FVFV

BAEspressione logica: y = A . B

Tabella di verità

Simbolo della porta logica

L’operazione di NAND logico è l’operazione negata dell’operazione AND.

Il simbolo NAND è una contrazione di NOT AND.

Quindi l’operazione di NAND logico fra due (o più) variabili fornisce il valore logico 1 se almeno una delle variabili assume il valore logico 0.

Proprietà di NANDL'operatore NAND ha una particolare importanza in quanto rende possibile realizzare tutte le funzioni logiche possibili con una circuiteria decisamente semplice.

Si dimostra che, utilizzando solo l'operatore NAND e possibile ottenere le tabelle di verità degli operatori NOT, OR e AND:

1. A NAND A = NOT A

VF

A NAND AFV

AVF

A NOT AFV

A

2. NOT(A NAND B) = A AND B

3. (NOT A) NAND (NOT B) = A OR B

0001

NOT(A NAND B)

1110

A NAND B

0101

0011

BA

OPERATORI SPECIALI

Comparatore di disuguaglianza o EX-OR logico (OR esclusivo)

0110

y = A + B

0101

0011

BA oppureFVVF

y = A + B

FFVV

FVFV

BA

Espressione logica: y = A + B

Tabella di verità

Simbolo della porta logica

L’operazione di or esclusivo EX-OR fra due (o più) variabili fornisce il valore logico 1 se il numero delle variabili che assumono valore logico 1 è dispari.

EsempioConsideriamo la frase:

L’auto si blocca perché suona l’allarme E qualcuno sta forzando lo sportello, Operché manca la benzina E non suona l’allarme .

Y=1 (Vero)Y=0 (Falso)

l’auto si bloccal’auto non si blocca

A = VS = V B = V

suona l’allarmequalcuno sta forzando lo sportello

manca la benzina

Variabile booleana associataProposizione

La variabile di uscita è Y, mentre A, S, B sono quelle di ingresso. Sostituendo nella

frase agli elementi del linguaggio E e O i rispettivi operatori logici prodotto e somma, si ottiene la seguente espressione booleana:

Modello logico associato alla frase:

Y = (A AND S) OR (B AND NOT A)

Esempio (segue)

L’espressione booleana Y = (A AND S) OR (B AND NOT A)ha la seguente tabella della verità:

F

F

F

F

V

F

V

F

B AND NOT A

F

F

F

F

V

V

V

V

NOT A

V

V

F

F

V

F

V

F

(A AND S) OR (B AND NOT A)

V

V

F

F

F

F

F

F

VVV

VVF

VFV

VFF

FVV

FVF

FFV

FFF

A AND SASB

T E S T

1. Perché una operazione logica si dice binaria? E in quale caso si dice unaria?

2. Qual è la definizione di somma logica?

3. In quale caso l’AND logico di due variabili può assumere il valore 1?

4. Quante sono le righe della tabella di verità che rappresenta una funzione con N variabili di ingresso?

5. Qual è la combinazione degli ingressi per cui l’operatore NOR assume il valore di uscita 1?

6. Qual è il legame tra la porta NAND e quelle elementari OR, AND o NOT?

7. Quando due espressioni si dicono equivalenti?

8. Cosa si intende per rete combinatoria?

9. Quali sono le proprietà degli operatori logici OR, AND, NOT?

10. Sistema le parentesi relative alla priorità: NOT p AND q OR NOT p

T E S T (SEGUE)

Dimostriamo, tramite la tabella di verità (induzione perfetta) che le espressioni:

A OR ((NOT B) AND C)(A OR (NOT B)) AND C

non sono equivalenti

A OR ((NOT B) AND C)

T E S T (SEGUE)

(A OR (NOT B)) AND C

T E S T (SEGUE)

Verificare tramite tavola di verità le proprietà degli operatori AND, OR, NOT

1) RIFLESSIVI

2) ASSOCIATIVI

3) DISTRIBUTIVI RECIPROCAMENTE

4) NEGAZIONE

5) Leggi di DE MORGAN