Codifica binaria: - valori logici e algebra di Boole -

Documenti analoghi
Informazione binaria: - rappresentazione di valori logici -

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale

Codifica binaria: - numeri naturali -

Informazione binaria: Codici per la rilevazione e correzione di errori

Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA

Logica booleana. Bogdan Maris ( )

Codifica binaria: - numeri interi relativi -

Precedenza degli operatori

Algebra di Boole ed elementi di logica

Informazione binaria: - rappresentazione dei numeri naturali e interi relativi -

Algebra di Boole. Introdotta nel 1874 da George Boole per fornire una rappresentazione algebrica della logica

Le variabili logiche possono essere combinate per mezzo di operatori detti connettivi logici. I principali sono:

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole

17/10/16. Espressioni Booleane

ALGEBRA DI BOOLE. In caso di errori di battitura o se si volesse contribuire a migliorare la seguente guida contattare:

Algebra di Boole X Y Z V. Algebra di Boole

Elementi di Informatica A. A. 2016/2017

Introduzione alla logica matematica

La codifica binaria: concetti fondamentali

Calcolatori Elettronici

Informazione binaria: Codici per la rilevazione e correzione di errori Codici di compressione

CODIFICA DELLE INFORMAZIONI MODULO 5

Fondamenti di Informatica B

Introduzione all algebra di Boole. Introduzione all'algebra di Boole

Algebra di Boole ed elementi di logica

Tipi di dato primitivi

La codifica dell informazione

Introduzione alla logica matematica. Logica matematica. Paolo Bison

Circuiti digitali combinatori

Informatica. Logica e Algebra di Boole

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Elementi di Informatica

ESERCITAZIONE 1- Soluzioni. Sistemi di numerazione e cambiamenti di base Algebre di Boole e funzioni logiche

Algebra di Boole Algebra di Boole

Proposizioni logiche e algebra di Boole

Elementi di informatica

ESERCITAZIONE 1- Soluzioni. Sistemi di numerazione e cambiamenti di base Algebre di Boole e funzioni logiche

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense

Operatori di relazione

Fondamenti di Informatica

Fondamenti di Informatica. Algebra di Boole

CODIFICA DELLE INFORMAZIONI MODULO 5

Fondamenti di Informatica

Informatica AA 2005/06. Programmazione M.A. Alberti. Operatori in Java 1. Operatori in Java. Espressioni aritmetiche. Espressioni booleane

Matematica per le scienze sociali Elementi di base. Francesco Lagona

Logica per la Programmazione

Prof. Pagani Corrado ALGEBRA BOOLEANA

Rappresentazione in virgola mobile (floating-point) Rappresentazione in virgola mobile (floating-point)

Calcolatori Elettronici A a.a. 2008/2009

Algebra di Boole ed elementi di logica

La codifica binaria. Informatica B. Daniele Loiacono

I.3 Porte Logiche. Elisabetta Ronchieri. Ottobre 13, Università di Ferrara Dipartimento di Economia e Management. Insegnamento di Informatica

Introduzione alla logica proposizionale

Fondamenti di Informatica B. Fondamenti di Informatica B. Fondamenti di Informatica B. Fondamenti di Informatica B.

Rappresentazione in virgola fissa (fixed-point) Rappresentazione di Numeri Reali. Conversione decimale-binario di numeri non interi

Fondamenti di Informatica 2

Reti logiche: introduzione

Logica: materiale didattico

Esercizio 2: controllare l identità delle seguenti due funzioni di 4 variabili :

Architettura degli elaboratori Ricapitolando (ciascuna freccia rappresenta un procedimento, che vedremo)

George BOOLE ( ) L algebra booleana. (logica proposizionale)

Fondamenti di Informatica

si vuole verificare: P5: pioverà

Dispensa su. Funzioni Booleane. Jianyi Lin Università degli Studi di Milano

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

0. ALGEBRA DI BOOLE E SISTEMI DI NUMERAZIONE

Laboratorio Informatico di Base. Concetti di base sull informatica

FONDAMENTI DI INFORMATICA Lezione n. 2

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale -

1 Minimizzazione di espressioni logiche con le proprietà dell algebra

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

DIMOSTRAZIONI DI TAUTOLOGIE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella

ELEMENTI DI ALGEBRA BOOLEANA

Codifica binaria: - numeri razionali -

Marta Capiluppi Dipartimento di Informatica Università di Verona

Informazione binaria: - rappresentazione dei numeri razionali -

CIRCUITI DIGITALI. La grandezza fisica utilizzata nella maggior parte dei circuiti digitali è la differenza di potenziale (tensione).

Algebra di Boole Cenni all Algebra di Boole. Algebra Booleana: definizione

Algebra Booleana. 13. Rif:

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Algebra di Boole. Da Boole a Shannon

Algebra di Boole Cenni all Algebra di Boole

Corso di Informatica

Il concetto di calcolatore e di algoritmo

Logica per la Programmazione

Corso di Calcolatori Elettronici I

Corso di Calcolatori Elettronici I A.A Algebra di Boole Lezione 4

Parte IV Indice. Algebra booleana. Esercizi

Per affrontare in modo sistematico lo studio dei sistemi di calcolo, abbiamo bisogno di un formalismo matematico definito su grandezze binarie

Algebra di Boole. Cenni all Algebra di Boole

Lezione 9 : Algebra di Boole e Codifica Binaria (p. 1) Lunedì 29 Novembre 2010

Informazione binaria:

Algebra di Boole Cenni all Algebra di Boole

Problemi, algoritmi, calcolatore

Tabelle di Verità FONDAMENTI DI INFORMATICA 1. Tabelle di Verità. Uso delle proprietà dell algebra booleana

DIMOSTRAZIONI DI TAUTOLOGIE. Corso di Logica per la Programmazione

Fondamenti di Informatica

Transcript:

Codifica binaria: - valori logici e algebra di Boole - Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin

Tipologie di codici Per la rappresentazione di: caratteri alfabetici e testi valori logici numeri naturali numeri interi relativi [val assoluto e segno, complemento a due] numeri reali [virgola fissa e virgola mobile] suoni, immagini e sequenze video Codici per la rilevazione e correzione di errori Codici di compressione (senza con perdita) Informatica e Programmazione Università di Brescia 2

Le radici GEORGE BOOLE (1815-1864) An Investigation of the Laws of Thought (1854) ALGEBRA BOOLEANA 4

Una riflessione sull algebra numerica -(x + y) ESPRESSIONE - Costanti (valori) - Variabili - Operatori Le variabili denotano (contengono) valori numerici (es. interi) Operatori binari (es. +) e unari (es. ) Valore dell espressione determinabile da valori delle variabili, mediante applicazione operatori Equivalenza di espressioni: -(x + y) = -(x) - y uguale valore per qualunque coppia di valori assunti da x, y Elementi di Informatica e Programmazione Università di Brescia 5

OBIETTIVO: introdurre un formalismo per esprimere FATTI ESEMPIO: - r1 contiene l età di un utente acquisita da tastiera - si vuole fare in modo che r2 indichi se è maggiorenne SE(r1>=18) r2 VERO SE(r1<18) r2 FALSO I fatti possono essere veri o falsi Elementi di Informatica e Programmazione Università di Brescia 6

Valori logici e codifica binaria Valore logico: esprime il valore di verità di un determinato fatto ES: Il voto del compito di informatica è sufficiente (F1) F1 è vero oppure falso, non entrambi Dato un fatto, dobbiamo codificare i suoi possibili valori logici. 2 oggetti da rappresentare V (vero) F (falso) E quindi sufficiente 1 bit, ad esempio con la codifica: - falso: 0 - vero: 1 Elementi di Informatica e Programmazione Università di Brescia 7

Variabile booleana Così come si usano variabili numeriche per memorizzare valori numerici (es. temperatura_aria) in modo simile si possono usare variabili booleane per memorizzare il valore di verità di un fatto Esempio: uso una variabile F1 per il fatto che il compito sia suff. se (voto>=18) allora F1 = V Definizione Variabile booleana: variabile binaria che può assumere uno dei due valori logici denotati con 0 e 1 (oppure Falso e Vero) DOMINIO: {0, 1} (oppure: {F, V}) Elementi di Informatica e Programmazione Università di Brescia 8

Espressione booleana (informalmente) I fatti possono essere composti a partire da altri fatti mediante congiunzione, disgiunzione, negazione, ho_l automobile e ho_la_benzina ho_l automobile o ho_la_bicicletta non ho_l automobile Il loro valore di verità dipende da quello dei fatti elementari ES: se ho_l automobile è VERO, ho_la_benzina è FALSO, ho_l automobile e ho_la_benzina è FALSO Definizione degli operatori booleani Elementi di Informatica e Programmazione Università di Brescia 9

Operatori booleani Così come per le variabili numeriche esistono operatori aritmetici (es: +, -, *, ), allo stesso modo per le variabili booleane esistono operatori booleani OPERATORI BINARI (due argomenti) V F V F op V F OPERATORI UNARI (un argomento) V F op V F Elementi di Informatica e Programmazione Università di Brescia 10

Operatori booleani più importanti NOT Negazione Logica not(x), x, ~x AND Prodotto Logico x and y, x y, xy OR Somma Logica x or y, x + y Tabelle di verità (NB: 0 equivale a F, 1 equivale a T) x x 0 1 1 0 NOT x 1 x 0 x 1 x 0 0 0 0 0 1 0 1 0 0 1 1 1 AND x 1 x 0 x 1 + x 0 0 0 0 0 1 1 1 0 1 1 1 1 OR Elementi di Informatica e Programmazione Università di Brescia 11

Formule (o espressioni) booleane (formalmente) Esempi: x + y ((x+y) z) Definizione: 1. Le costanti 0 e 1 e le variabili (simboli a cui possono essere associati i valori 0 e 1) sono formule booleane 2. Se E, E 1 ed E 2 sono formule booleane lo sono anche (E 1 +E 2 ), (E 1 E 2 ) e (E) 3. Non esistono altre formule oltre a quelle che possono essere generate da un numero finito di applicazioni delle regole 1 e 2 Elementi di Informatica e Programmazione Università di Brescia 12

Riassumendo Per elaborare numeri (es: gli interi relativi) - Costanti (valori) - Variabili ESPRESSIONI - Operatori Anche in questo contesto abbiamo gli stessi concetti - FALSO e VERO sono i valori elaborati - ho_l automobile, sono variabili che assumono questi valori - (Non ho_l automobile) o (Non ho_la_bicicletta) sono ESPRESSIONI costruiti con gli operatori non, o, e Elementi di Informatica e Programmazione Università di Brescia 13

Tabelle di verità di formule booleane Valore di verità per ogni combinazione di valori delle variabili ESEMPIO auto bici auto bici auto bici 0 0 1 0 1 1 1 0 1 1 1 0 Elementi di Informatica e Programmazione Università di Brescia 14

Equivalenza di espressioni booleane (1) Espressioni diverse possono indicare il medesimo fatto Non (ho_l automobile e ho_la_bicicletta) (Non ho_l automobile) o (Non ho_la_bicicletta) Come si può verificare formalmente? Cfr. il concetto di espressioni equivalenti nel contesto numerico! Elementi di Informatica e Programmazione Università di Brescia 15

Equivalenza di espressioni booleane (2) Formule equivalenti: per ogni combinazione di valori delle variabili ESEMPIO 1 auto bici = auto+bici le formule restituiscono lo stesso valore Un modo per verificare l equivalenza: tabella di verità auto bici auto bici auto bici auto bici auto+bici 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 Elementi di Informatica e Programmazione Università di Brescia 16

ESEMPIO 2 Assorbimento: x(x+y) = x x y x+y x(x+y) 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 Elementi di Informatica e Programmazione Università di Brescia 17

NB: potevamo usare anche una diversa simbologia per i valori Assorbimento: x(x +y) = x x y x+y x(x+y) F F F F F V V F V F V V V V V V Elementi di Informatica e Programmazione Università di Brescia 18

o per gli operatori Assorbimento: x AND (x OR y) = x x y x OR y x AND (x OR y) F F F F F V V F V F V V V V V V Elementi di Informatica e Programmazione Università di Brescia 19

ESEMPIO 3 x 1 + x 2 + x 2 x 3 + x 2 x 3 = x 1 + x 2 + x 3 x 3 x 2 x 1 x 2 x 2 x 3 x 2 x 3 x 1 +x 2 +x 2 x 3 +x 2 x 3 x 1 +x 2 +x 3 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 Elementi di Informatica e Programmazione Università di Brescia 20

Il concetto di algebra Per elaborare numeri (es: i numeri relativi Z) si utilizzano operatori che elaborano i valori appartenenti al dominio considerato L impianto formale sottostante è il concetto di algebra - insieme di supporto (i valori utilizzati) - insieme degli operatori fondamentali (devono essere chiusi rispetto all insieme di supporto) Es: (Z, {+, -}) è un algebra, (N, {+, -}) non lo è Elementi di Informatica e Programmazione Università di Brescia 21

Algebra di Boole Una specifica algebra che include: un insieme di supporto A (l insieme {0,1} o {V,F}) due operatori binari: AND ( ) e OR (+) un operatore unario: NOT ( ) [operatori definiti da un insieme di assiomi] E lo strumento matematico su cui si fonda il funzionamento dei circuiti digitali Elementi di Informatica e Programmazione Università di Brescia 22

Assiomi dell algebra di Boole Forma AND Forma OR Commutatività AB = BA Distributività A+BC=(A+B)(A+C) A+B = B+A A(B+C)=AB+AC Identità 1A = A 0+A = A Inverso AĀ = 0 A+Ā = 1 Elementi di Informatica e Programmazione Università di Brescia 23

Proprietà dell algebra di Boole (deducibili dagli assiomi) Forma AND Forma OR Elemento nullo 0A = 0 1+A = 1 Idempotenza AA = A A+A = A Assorbimento A(A+B) = A A+AB=A Associatività (AB)C=A(BC) (A+B)+C=A+(B+C) De Morgan AB = A+B A+B = A B Altre proprietà della negazione logica 1 = 1 0 = 0 Elementi di Informatica e Programmazione Università di Brescia 24

Equivalenza tra formule booleane via algebra di Boole ESEMPIO 1 precedente auto bici = auto+bici direttamente dalla proprietà di De Morgan ESEMPIO 2 precedente x(x+y) = x direttamente dalla proprietà di assorbimento ESEMPIO 3 precedente x 1 + x 2 + x 2 x 3 + x 2 x 3 = x 1 + x 2 + x 3 (x 2 +x 2 ) = x 1 + x 2 + x 3 Elementi di Informatica e Programmazione Università di Brescia 25

ESERCIZIO 0 Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti: x 1 x 2 + x 1 x 2 x 3 + x 1 x 2 e x 1 x 2 + x 1 x 2 x 3 Elementi di Informatica e Programmazione Università di Brescia 26

ESERCIZIO 0 Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti: Soluzione 1 Si costruiscono le tabelle di verità e si verifica che sono equivalenti (serve la tabella di verità completa) Soluzione 2 x 1 x 2 + x 1 x 2 x 3 + x 1 x 2 = x 1 x 2 + x 1 x 2 x 3 = x 1 x 2 (1 +x 3 ) = x 1 x 2 Elementi di Informatica e Programmazione Università di Brescia 27

ESERCIZIO 1 Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti (ovvero, identificano la stessa funzione delle variabili booleane x, y e z): xy + xy + x y e x + y Elementi di Informatica e Programmazione Università di Brescia 28

Soluzione 1 Si costruiscono le tabelle di verità e si verifica che sono equivalenti (serve la tabella di verità completa) Soluzione 2 xy + xy + x y = xy + xy + x y + x y = (x+x) y + x(y+y) = x + y Elementi di Informatica e Programmazione Università di Brescia 29

ESERCIZIO 2 Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti (ovvero, identificano la stessa funzione delle variabili booleane x, y e z): xy + x+z e x+y + x z [5] Elementi di Informatica e Programmazione Università di Brescia 30

Soluzione Si costruiscono le tabelle di verità (anche parziali) e si riportano uno o più casi (non occorre tutti) in cui non danno lo stesso valore, quindi non sono equivalenti. Volendo, per trovare un caso ci si può aiutare con l algebra booleana notando che i due termini a destra sono equivalenti (ma vedi soluzione errata) P.es. x=0, y=1, z=1 (la prima è 1, la seconda 0) Elementi di Informatica e Programmazione Università di Brescia 31

Soluzione ERRATA xy + x+z e x+y + x z e quindi, verificando che i due termini xy e x+y non sono equivalenti, concludere che le formule non lo sono. NB: è vero che le formule non sono equivalenti, ma questo metodo non lo dimostra perché in altri casi non funziona (cfr la regola i gol in trasferta valgono doppio nelle coppe) Elementi di Informatica e Programmazione Università di Brescia 32

NOTA IMPORTANTE Poichè il dominio non è illimitato, per dimostrare che due formule NON sono equivalenti non si possono trascurare termini equivalenti! Esempio?stabilire se x+1 è equivalente a x+1 Ovviamente sì (valgono entrambe 1)! Ma ragionando come in algebra numerica si direbbe che sono equivalenti sse x=x, cosa non vera! Elementi di Informatica e Programmazione Università di Brescia 33

Esempio precedente leggermente modificato. xy + z+z e x+y + z z Sono equivalenti, perché danno 1 in tutti i casi (il II termine è 1), invece procedendo come prima: xy + z+z e x+y + z z e quindi, verificando che i due termini xy e x+y non sono equivalenti, si concluderebbe che le formule non lo sono. Elementi di Informatica e Programmazione Università di Brescia 34

VADEMECUM PER TEMI D ESAME A) VERIFICARE CHE DUE FORMULE SONO EQUIVALENTI: bisogna dimostrare che danno lo stesso valore in tutti i casi - via tabella di verità, oppure - dimostrando con proprietà algebriche che sono equivalenti a due formule sintatticamente uguali L algebra booleana consente praticamente tutte le operazioni cui si è abituati con l algebra dei numeri, p.es. - raccogliere termini comuni - 0*x=0, 1*x=x ed anche molte altre (es. prop. De Morgan, 1+x=1, ecc.) Elementi di Informatica e Programmazione Università di Brescia 35

B) DIMOSTRARE CHE DUE FORMULE NON SONO EQUIVALENTI: bisogna e basta trovare un caso in cui danno risultato diverso - Errore frequente: semplificare un termine e dimostrare che i termini rimasti sono equivalenti. Questo NON dimostra nulla NB: trovare la risposta esatta con un procedimento sbagliato è valutato come se la risposta fosse sbagliata! Elementi di Informatica e Programmazione Università di Brescia 36

CODIFICA ED ELABORAZIONE DI VALORI LOGICI NEI LINGUAGGI DI PROGRAMMAZIONE

Linguaggio macchina (cenno) Il verificarsi (o meno) di determinate condizioni (es. ultima operazione aritmetica ha dato risultato nullo) sono segnalate ponendo a 1/0 uno specifico bit di un particolare registro Sono tipicamente disponibili istruzioni per la manipolazione di bit corrispondenti agli operatori booleani Esempio and $r1, $r2, $r3 or $r1, $r2, $r3 # $r1 = $r2 AND $r3 (bit a bit) # $r1 = $r2 OR $r3 (bit a bit) Elementi di Informatica e Programmazione Università di Brescia 38

Linguaggio C In C non esiste il tipo booleano e quindi neppure le variabili booleane Esistono però gli operatori logici Cfr. Operatori in C Elementi di Informatica e Programmazione Università di Brescia 39