Fondamenti dell’Informatica Algebra di Boole

63
Prof.ssa Enrica Gentile Fondamenti dell’Informatica Algebra di Boole

Transcript of Fondamenti dell’Informatica Algebra di Boole

Page 1: Fondamenti dell’Informatica Algebra di Boole

Prof.ssa Enrica Gentile

Fondamenti dell’Informatica

Algebra di Boole

Page 2: Fondamenti dell’Informatica Algebra di Boole

Algebra di Boole

Si basa su tre operazioni logiche:

AND (*)

OR (+)

NOT (!)

Gli operandi possono avere solo due valori:

Vero (1)

Falso (0)

Si possono comporre delle espressioni logiche più o meno

complesse

(A AND B) OR C

(NOT A) OR B

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 2

Page 3: Fondamenti dell’Informatica Algebra di Boole

Tavole di verità

AND 0 1

0 0 0

1 0 1

OR 0 1

0 0 1

1 1 1

NOT 0 1

1 0

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 3

Page 4: Fondamenti dell’Informatica Algebra di Boole

Esempio di espressioni A B C A OR (B AND C) A AND (B OR (NOT C))

0 0 0 0 0

0 0 1 0 0

0 1 0 0 0

0 1 1 1 0

1 0 0 1 1

1 0 1 1 0

1 1 0 1 1

1 1 1 1 1 Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA)

4

Page 5: Fondamenti dell’Informatica Algebra di Boole

Trasformazione

A B C f

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Si può specificare l’output di

ogni funzione booleana

esprimendo, tramite una

espressione booleana, quali

combinazioni delle variabili di

input determinano l’output 1

011-101-110-111

!ABC+A!BC+AB!C+ABC

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 5

Page 6: Fondamenti dell’Informatica Algebra di Boole

Prima forma canonica

Per passare dalla rappresentazione mediante tabella di verità alla

notazione tramite espressione booleana è necessario:

1. Identificare tutte le righe della tabella di verità che danno 1 in output;

2. Per ogni riga con un 1 in output scrivere la configurazione delle variabili che la definiscono (tutte le variabili della configurazione saranno in AND tra loro)

3. Collegare tramite OR tutte le configurazioni ottenute.

La rappresentazione così ottenuta è detta:

prima forma canonica.

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 6

Page 7: Fondamenti dell’Informatica Algebra di Boole

Esercizio

A B C f

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 7

Page 8: Fondamenti dell’Informatica Algebra di Boole

Risoluzione

!A!BC + !AB!C + A!B!C + ABC

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 8

Page 9: Fondamenti dell’Informatica Algebra di Boole

Equivalenza

Def. Due funzioni booleane si dicono equivalenti se

presentano lo stesso output per qualsiasi configurazione

dell’input.

AB!C + A!BC + ABC = A(B + C)

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 9

Page 10: Fondamenti dell’Informatica Algebra di Boole

Funzione più semplice

Determinare la più semplice funzione booleana equivalente alla

funzione data facilita l’interpretazione della funzione stessa e

permette di semplificare anche i circuiti logici corrispondenti.

Una funzione f' è più semplice di una funzione f (f≡f') secondo il

criterio del minor numero di operatori se il suo calcolo richiede

meno operazioni di AND e OR rispetto al calcolo di f.

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 10

Page 11: Fondamenti dell’Informatica Algebra di Boole

Proprietà dell’algebra di Boole

Commutativa a+b=b+a a*b=b*a

Associativa (a+b)+c=a+(b+c) (a*b)*c=a*(b*c)

Idempotenza a+a=a a*a=a

Assorbimento a+(a*b)=a a*(a+b)=a

Distributiva a*(b+c)=(a*b)+(a*c) a+(b*c)=(a+b)*(a+c)

Min e Max a*0=0 a+1=1

Elemento neutro a+0=a a*1=a

Complemento a*!a=0 a+!a=1

De Morgan !(a+b)=!a*!b !(a*b)=!a+!b

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 11

Page 12: Fondamenti dell’Informatica Algebra di Boole

Esercizio

Minimizzare l’espressione logica:

A+AB+CB+C!B

Risoluzione:

• A(1+B)+C(B+!B)

• A+C

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 12

Page 13: Fondamenti dell’Informatica Algebra di Boole

Porte Logiche

Possiamo esprimere delle operazioni logiche attraverso le

porte logiche che simulano le funzioni dell’algebra di boole

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 13

Page 14: Fondamenti dell’Informatica Algebra di Boole

Equivalenza tra funzioni e circuiti

Esiste una equivalenza tra le funzioni logiche e le porte

elementari delle reti logiche (Shannon)

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 14

Page 15: Fondamenti dell’Informatica Algebra di Boole

Funzioni ed espressioni

f = x+y*!z+!y*z

f = x*!z+x*y+y*!z+!y*z

x y z f

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 1

Espressioni equivalenti

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 15

Page 16: Fondamenti dell’Informatica Algebra di Boole

Esempio

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 16

Page 17: Fondamenti dell’Informatica Algebra di Boole

Esempio

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 17

Page 18: Fondamenti dell’Informatica Algebra di Boole

Algoritmo semplice

A=1

B=1

C=1

A=0

B=0

C=0

Bel tempo

Caldo

Esco

Non bel tempo

Non caldo

Resto a casa

C=0 “rimango in casa”

C=1 “esco” Leggi A, B

Bel tempo

Caldo Rimango in casa

esco

NO

NO

SI

SI

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 18

Page 19: Fondamenti dell’Informatica Algebra di Boole

Lettura dell’IF

IF A AND B THEN C

SE bel tempo E caldo ALLORA esco

SE non bel tempo E caldo ALLORA resto a casa

SE bel tempo E non caldo ALLORA resto a casa

SE non bel tempo E non caldo ALLORA resto a casa

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 19

Page 20: Fondamenti dell’Informatica Algebra di Boole

Rete combinatoria

F(A,B,C) = AB + !C

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 20

Page 21: Fondamenti dell’Informatica Algebra di Boole

F(0,0,0) = 1

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 21

Page 22: Fondamenti dell’Informatica Algebra di Boole

Esercizio

Applicando i teoremi dell’algebra di Boole, verificare la

seguente equivalenza tra espressioni

!A!B!C + B!C + A(B + !B!C) = AB + !C

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 22

Page 23: Fondamenti dell’Informatica Algebra di Boole

Esercizio

Applicando i teoremi dell’algebra di Boole, semplificare le

seguenti espressioni e disegnarne la tavola di verità e la rete

logica

AB!C + AB + AC + C

!A!BC + A!B + !A!B + AB

A + AB + B + BC

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 23

Page 24: Fondamenti dell’Informatica Algebra di Boole

Esercizio

Disegnare il circuito logico della seguente espressione

!((AB) + (!BC))

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 24

Page 25: Fondamenti dell’Informatica Algebra di Boole

Sintesi delle reti combinatorie

1a forma canonica, somma di prodotti (mintermini)

Si considerano le righe della tabella delle verità il cui valore è 1

2a forma canonica: prodotto logico dei termini somma

(maxtermini)

Si considerano le righe della tabella delle verità il cui valore è 0

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 25

Page 26: Fondamenti dell’Informatica Algebra di Boole

Esercizio funzione maggioranza

Si chiede di sintetizzare (in 1° forma canonica) una funzione

combinatoria dotata di 3 ingressi A, B e C, e di un’uscita F,

funzionante come segue:

Se la maggioranza degli ingressi vale 0, l’uscita vale 0

Se la maggioranza degli ingressi vale 1, l’uscita vale 1

In sintesi: L’uscita vale 1 se e solo se 2 o tutti e 3 gli ingressi

valgono 1 (cioè se e solo se il valore 1 è in maggioranza)

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 26

Page 27: Fondamenti dell’Informatica Algebra di Boole

Tabella funzione maggioranza

A B C f

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 27

Page 28: Fondamenti dell’Informatica Algebra di Boole

Schema logico

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 28

Page 29: Fondamenti dell’Informatica Algebra di Boole

Funzione combinatoria

Dallo schema logico della rete combinatoria così sintetizzata,

si può ricavare la funzione combinatoria data come

espressione booleana come somma di prodotti

F(A, B, C) = !A B C + A !B C + A B !C + A B C

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 29

Page 30: Fondamenti dell’Informatica Algebra di Boole

Reti equivalenti

F1 = AB + AC

F2 = A(B + C)

F1 = AB + AC =

= A(B + C) = F2

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 30

Page 31: Fondamenti dell’Informatica Algebra di Boole

Operazioni NAND e NOR

A B f

0 0 1

0 1 1

1 0 1

1 1 0

A B f

0 0 1

0 1 0

1 0 0

1 1 0

NAND NOR

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 31

Page 32: Fondamenti dell’Informatica Algebra di Boole

Rete NAND e NOR

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 32

Page 33: Fondamenti dell’Informatica Algebra di Boole

XOR o OR Esclusivo

AB = !AB + A!B

A B

0 0 0

0 1 1

1 0 1

1 1 0

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 33

Page 34: Fondamenti dell’Informatica Algebra di Boole

Esercizi

F = !(!(!A+!B)+!(!A+!C))

F = CD!B+A+!C

F = (A+B+!C+D)(A+!B+!C+D)(A+!B+!C+!D)

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 34

Page 35: Fondamenti dell’Informatica Algebra di Boole

Esercizi

A B C D F

0 0 0 0 0

0 0 0 1 1

0 0 1 0 1

0 0 1 1 0

0 1 0 0 1

0 1 0 1 0

0 1 1 0 0

0 1 1 1 1

1 0 0 0 1

1 0 0 1 0

1 0 1 0 0

1 0 1 1 1

1 1 0 0 0

1 1 0 1 1

1 1 1 0 1

1 1 1 1 0

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 35

Page 36: Fondamenti dell’Informatica Algebra di Boole

Mappa di Karnaugh

A B f

0 0 0

0 1 1

1 0 1

1 1 0

B A 0 1

0 0 1

1 1 0

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 36

Page 37: Fondamenti dell’Informatica Algebra di Boole

Mappa di Karnaugh a 3 valori

A B C F

0 0 0 1

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

1

0

01

1

0

11

0 0 1

1 1 0

10 00 C AB

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 37

Page 38: Fondamenti dell’Informatica Algebra di Boole

Mappa di Karnaugh a 4 valori A B C D F

0 0 0 0 1

0 0 0 1 1

0 0 1 0 1

0 0 1 1 0

0 1 0 0 1

0 1 0 1 1

0 1 1 0 0

0 1 1 1 0

1 0 0 0 1

1 0 0 1 1

1 0 1 0 1

1 0 1 1 0

1 1 0 0 0

1 1 0 1 1

1 1 1 0 0

1 1 1 1 1

00 01 11 10

00 1 1 0 1

01 1 1 0 0

11 0 1 1 0

10 1 1 0 1

AB CD

!A!C + !CD + !B!D + ABD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 38

Page 39: Fondamenti dell’Informatica Algebra di Boole

Esempio

00 01 11 10

00 0 1 1 0

01 0 0 1 0

11 1 1 0 0

10 0 1 1 0

1°Fc = !A!BCD + !AB!C!D +

!ABC!D + !ABCD + AB!C!D +

AB!CD + ABC!D

Implicanti primi:

B!D, !ACD, !ABC, AB!C

Imp. primi essenziali:

B!D, !ACD, AB!C

Copertura minima:

B!D + !ACD + AB!C

AB CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 39

Page 40: Fondamenti dell’Informatica Algebra di Boole

Esercizio

F=!A!B!C + !A!BC + A!B!C + A!BC

F=!AC!D + !ABC + B!CD + A!C

F=(A+!B+C)(!A+!B+C)(A+!B+!C)(!A+!B+!C)

F=(!B+!C+D)(A+!C+!D)(B+C+!D)(!A+C+D)

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 40

Page 41: Fondamenti dell’Informatica Algebra di Boole

Equivalenza tra Karnaugh e

le reti logiche

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 41

Page 42: Fondamenti dell’Informatica Algebra di Boole

Semplificazione

Per n variabili si può dire che:

Due 1 adiacenti rappresentano un prodotto di n-1 variabili

Quattro 1 adiacenti rappresentano un prodotto di n-2 variabili

Otto 1 adiacenti rappresentano un prodotto di n-3 variabili

Sedici 1 adiacenti rappresentano un prodotto di n-4 variabili

Etc…

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 42

Page 43: Fondamenti dell’Informatica Algebra di Boole

Metodo di minimizzazione

Si rappresenta la funzione logica sulla mappa

Si localizzano sulla mappa i più grandi raggruppamenti

possibili di 1 adiacenti che formano potenze di due

Si sceglie il numero minimo di raggruppamenti che

copre tutti gli 1 della mappa tenendo presente che

eventuali termini isolati debbono essere riportati

integralmente

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 43

Page 44: Fondamenti dell’Informatica Algebra di Boole

Esempio

f = !A!B!C + !ABC + !AB!C + A!B!C + A!BC

1

1

01

0

0

11

1 0 1

1 1 0

10 00 C AB

f = !AB + !A!C + A!B

f = !AB + A!B +!B!C

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 44

Page 45: Fondamenti dell’Informatica Algebra di Boole

Reti logiche

f = !AB + !A!C + A!B

f = !AB + A!B +!B!C

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 45

Page 46: Fondamenti dell’Informatica Algebra di Boole

Esempio

f = !B!C + !CD + ABD + !ABC!D

1 1 1 1 01

0 1 0 0 11

1

0

01

0

0

11

0 0 10

1 1 00

10 00 AB

CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 46

Page 47: Fondamenti dell’Informatica Algebra di Boole

Rete logica

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 47

Page 48: Fondamenti dell’Informatica Algebra di Boole

Funzione a 5 variabili

f = !A!BC!DE + !ABC!DE + !A!BCDE + !ABCDE + ABC!DE

+ ABCDE + A!B!CDE + A!B!CD!E

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 48

Page 49: Fondamenti dell’Informatica Algebra di Boole

Minimizzare funzione a 5 variabili A = 0 A = 1

0 1 0 0 01

0 1 0 1 11

0

0

01

0

0

11

0 1 10

0 0 00

10 00 BC

DE

0 1 1 0 01

0 1 1 0 11

0

0

01

0

0

11

0 0 10

0 0 00

10 00 BC

DE

F = !ACE + A!B!CD + BCE Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA)

49

Page 50: Fondamenti dell’Informatica Algebra di Boole

Esercizio 1

1 1 0 1 01

1 1 1 1 11

1

0

01

0

0

11

0 0 10

0 0 00

10 00 AB

CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 50

Page 51: Fondamenti dell’Informatica Algebra di Boole

Esercizio 2

1 1 1 1 01

1 1 0 1 11

0

1

01

0

0

11

0 0 10

0 0 00

10 00 AB

CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 51

Page 52: Fondamenti dell’Informatica Algebra di Boole

Esercizio 3

1 0 0 1 01

1 0 0 1 11

1

1

01

1

1

11

0 0 10

0 0 00

10 00 AB

CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 52

Page 53: Fondamenti dell’Informatica Algebra di Boole

Esercizio 4

1 0 1 1 01

1 0 0 1 11

1

1

01

1

0

11

0 0 10

0 1 00

10 00 AB

CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 53

Page 54: Fondamenti dell’Informatica Algebra di Boole

Esercizio 5

0 0 1 1 01

0 0 1 1 11

1

1

01

0

0

11

1 1 10

1 1 00

10 00 AB

CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 54

Page 55: Fondamenti dell’Informatica Algebra di Boole

Esercizio 6

1 1 0 1 01

1 1 0 1 11

1

1

01

1

1

11

0 0 10

0 0 00

10 00 AB

CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 55

Page 56: Fondamenti dell’Informatica Algebra di Boole

Esercizio 7

1 1 1 1 01

0 0 0 0 11

1

1

01

1

1

11

0 0 10

1 1 00

10 00 AB

CD

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 56

Page 57: Fondamenti dell’Informatica Algebra di Boole

Esercizio 8 A = 0 A = 1

1 1 1 0 01

0 1 1 0 11

0

0

01

0

0

11

0 1 10

1 0 00

10 00 BC

DE BC

1 1 1 0 01

0 1 1 0 11

0

0

01

0

0

11

0 1 10

0 0 00

10 00 DE

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 57

Page 58: Fondamenti dell’Informatica Algebra di Boole

Esercizio 9 A = 0 A = 1

0 1 1 0 01

0 1 1 0 11

0

0

01

0

0

11

0 0 10

0 0 00

10 00 BC

DE BC

1 1 1 1 01

1 1 1 1 11

0

0

01

0

0

11

0 0 10

0 0 00

10 00 DE

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 58

Page 59: Fondamenti dell’Informatica Algebra di Boole

Esercizi

F=!A!B!C + !A!BC + A!B!C + A!BC

F=!AC!D + !ABC + B!CD + A!C

F=(A+!B+C)(!A+!B+C)(A+!B+!C)(!A+!B+!C)

F=(!B+!C+D)(A+!C+!D)(B+C+!D)(!A+C+D)

F=!ABCD+ABCD+A!BCD+!AB!CD

F=!ABCD+ABCD+A!BCD

F=!A!BC+!AB!C+!BC+ABC

F=!A!BCD+!AB!C!D+!ABC!D+A!BCD+AB!C!D+AB!CD+ABC!D

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 59

Page 60: Fondamenti dell’Informatica Algebra di Boole

Somma di numeri binari

Regole

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0 con riporto di 1

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 60

Page 61: Fondamenti dell’Informatica Algebra di Boole

Sottrazione di numeri binari

Regole

0 – 0 = 0

1 – 1 = 0

1 – 0 = 1

0 – 1 = 1 con prestito di 1

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 61

Page 62: Fondamenti dell’Informatica Algebra di Boole

Sottrazione con complemento a 2

Trasformo la sottrazione in somma utilizzando il

complemento a 2 del secondo termine

Cambio degli 1 con 0 e viceversa, più 1

La sottrazione 0101 – 0011

Equivale alla somma 0101 + 1101

Riporto finale 1 indica risultato positivo

Riporto finale 0 indica risultato negativo

Il riporto può essere ignorato

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 62

Page 63: Fondamenti dell’Informatica Algebra di Boole

Prodotto di numeri binari

Regole

0 * 0 = 0

0 * 1 = 0

1 * 0 = 0

1 * 1 = 1

Prof.ssa E. Gentile Fondamenti dell'Informatica (ICD-TA) 63