DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Algebra Booleana Generalità
Algebra di Boole Casazza Andrea 3EA I.I.S. Maserati.
Elaborazione dei segnali mediante circuiti analogici o digitali.
Informatica Generale Marzia Buscemi IMT Lucca
Process synchronization
(sommario delle lezioni in fondo alla pagina)
Il ragionamento classico
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Corso di Informatica (Programmazione)
IFTS2002 Acq. Dati Remoti: INFORMATICA
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Programmazione Corso di laurea in Informatica
Semantica per formule di un linguaggio proposizionale p.9 della dispensa.
L'algebra di Boole e le sue applicazioni
Algebra di Boole e sue applicazioni
Indice: L’algebra di Boole Applicazione dell’algebra di Boole
Intelligenza Artificiale
Intelligenza Artificiale
Introduzione ~ 1850 Boole - De Morgan – Schroeder ALGEBRA BOOLEANA
Algebra di Boole … logica matematica Progetto Eracle 2
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Pierdaniele Giaretta Primi elementi di logica
Radice quadrata di un numero
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
Algebra di Boole.
Calcolo letterale.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
La logica Dare un significato preciso alle affermazioni matematiche
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Reti Logiche A Lezione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 27 Marzo 2015.
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
Algoritmi e basi del C Struttura di un programma
Algebra di Boole.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
Fondamenti di Informatica1 Memorizzazione su calcolatore L'unità atomica è il bit (BInary DigiT) L'insieme di 8 bit è detta byte Altre forme di memorizzazione:
Rappresentazione dell'informazione
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Algebra di Boole L’algebra di Boole è un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono assumere.
A.S.E.7.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 7 ALGEBRA BOOLEANA PostulatiPostulati Principio di dualitàPrincipio di dualità Teoremi fondamentaliTeoremi.
Rappresentazione in virgola mobile (floating-point) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
Copyright © Istituto Italiano Edizioni Atlas
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
ELEMENTI DI LOGICA del Prof. Giovanni Ianne
LA LOGICA MATEMATICA.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata.
Logica di base e Conversione analogico-digitale Lezione 3 / Prima parte Gaetano Arena e.mail: 1.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole, elementi di logica e Mappe di Karnaugh Marco D. Santambrogio –
TEORIA ELEMENTARE DEGLI INSIEMI
Le proposizioni DEFINIZIONE. La logica è un ramo della matematica che studia le regole per effettuare ragionamenti rigorosi e corretti. DEFINIZIONE. Una.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 22 Marzo 2016.
Algebra di Boole ed elementi di logica
Algebra di Boole ed elementi di logica
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata al 17 Ottobre 2014

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Installation Party Dove: LM1 Quando:  Martedì 21 Ottobre  12.oopm pm 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A grande richiesta… Come si stampano \n e %c 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A grande richiesta… Come si stampano \n e %c 4

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A grande richiesta… Come si stampano \n e %c Ma non aveva detto che dovevamo farlo da soli? 5

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A grande richiesta… Come si stampano \n e %c Ma non aveva detto che dovevamo farlo da soli? Si ma poi voi mi dite che “sono sempre un po’ troppo acido nelle risposte, tende a scoraggiare future domande” 6

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEOps… 7 Forse era acida anche questa? :)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un paio di osservazioni 8 looks like things start to get tricky

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un paio di osservazioni 9 looks like things start to get tricky Trovo profondamente triste il fatto che non vedremo come funziona una libreria in dettaglio, ma immagino che data la durata ridotta del corso, il docente abbia preferito farci concentrare su qualcosa di più utile/interessante.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un paio di osservazioni 10 looks like things start to get tricky Trovo profondamente triste il fatto che non vedremo come funziona una libreria in dettaglio, ma immagino che data la durata ridotta del corso, il docente abbia preferito farci concentrare su qualcosa di più utile/interessante. Trovo anche molto stimolante il fatto che il professore non risponda direttamente alle domande poste in alcuni casi, ma lasci il compito di trovare la risposta allo studente.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un paio di osservazioni 11 looks like things start to get tricky Trovo profondamente triste il fatto che non vedremo come funziona una libreria in dettaglio, ma immagino che data la durata ridotta del corso, il docente abbia preferito farci concentrare su qualcosa di più utile/interessante. Trovo anche molto stimolante il fatto che il professore non risponda direttamente alle domande poste in alcuni casi, ma lasci il compito di trovare la risposta allo studente. Rispetto a quanto fatto alle superiori, qui non imparo semplicemente la sintassi, ma apprendo anche il significato informatico di ogni simbolo.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Algebra di Boole  Algebra di boole a due valori: algebra di commutazione  Operazioni logiche  Espressioni logiche  Assiomi e proprietà dell’algebra di commutazione 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 13 L’algebra di Boole (inventata da G. Boole, britannico, seconda metà ’800), o algebra della logica, si basa su operazioni logiche Le operazioni logiche sono applicabili a operandi logici, cioè a operandi in grado di assumere solo i valori vero e falso Si può rappresentare vero con il bit 1 e falso con il bit 0 (convenzione di logica positiva) Cenni all’algebra di Boole

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra Booleana: definizione Algebra Booleana B è un sistema algebrico identificato dalla sestupla (B,+,*,’,0,1) dove:  B è l'insieme su cui vengono definite le operazioni (supporto)  +, *,’ sono le operazioni binarie OR e AND e l’operazione unaria NOT  0, 1 sono elementi speciali di B. 0 è l’elemento neutro rispetto a + 1 è l’elemento neutro rispetto a *  Assiomi

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane, l'algebra booleana a due valori è la più utile. Essa è la base matematica della analisi e progetto di circuiti di commutazione che realizzano i sistemi digitali.” [Lee, S.C., Digital Circuit And Logic Design. Englewood Cliffs, NJ: Prentice-Hall, 1976]

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 Operatori logici binari (con 2 operandi logici)  Operatore OR, o somma logica  Operatore AND, o prodotto logico Operatore logico unario (con 1 operando)  Operatore NOT, o negazione, o inversione Poiché gli operandi logici ammettono due soli valori, si può definire compiutamente ogni operatore logico tramite una tabella di associazione operandi-risultato Operazioni logiche fondamentali

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le variabili dell’algebra booleana a due valori possono assumere solo i due valori 0 e 1  precisamente, se x indica una variabile, è x = 0 se e solo se x  1 x = 1 se e solo se x  0 Algebra Booleana a due valori: ({0,1},+,*,’,0,1) dove + (OR) e * (AND) sono definiti come Mentre l’operazione a un solo elemento (unary operation) detta complementazione o negazione ( NOT ) è definita come  Nota: il simbolo associato al NOT è spesso indicato come ’ (esempio x’ ), ! (esempio !x ) o sopra segnando la variabile * Operazioni logiche fondamentali ‘

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 18 Operatori logici di base e loro tabelle di verità A B A and B (prodotto logico) A B A or B (somma logica) A not A (negazione) Le tabelle elencano tutte le possibili combinazioni in ingresso e il risultato associato a ciascuna combinazione

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 Come le espressioni algebriche, costruite con:  Variabili logiche (letterali): p. es. A, B, C  0 oppure 1  Operatori logici: and, or, not Esempi: A or (B and C) (A and (not B)) or (B and C) Precedenza: l’operatore “not” precede l’operatore “and”, che a sua volta precede l’operatore “or” A and not B or B and C  (A and (not B)) or (B and C) Per ricordarlo, si pensi OR come “  ” (più), AND come “  ” (per) e NOT come “  ” (cambia segno) Espressioni logiche (o Booleane)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A and B or not C A B C X = A and B Y = not C X or Y and 0 = 0 not 0 = 1 0 or 1 = and 0 = 0 not 1 = 0 0 or 0 = and 1 = 0 not 0 = 1 0 or 1 = and 1 = 0 not 1 = 0 0 or 0 = and 0 = 0 not 0 = 1 0 or 1 = and 0 = 0 not 1 = 0 0 or 0 = and 1 = 1 not 0 = 1 1 or 1 = and 1 = 1 not 1 = 0 1 or 0 = 1 Tabella di verità di un’espressione logica

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 21 A B NOT ((A OR B) AND (NOT A)) A B C ( B OR NOT C) AND (A OR NOT C) Due esercizi

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Vero e falso in C In C non esiste un tipo di dato specifico per rappresentare i concetti vero e falso Una condizione assume un valore intero pari a  0 se la condizione è falsa  1 se la condizione è vera In generale, ogni valore diverso da zero è considerato vero  ( 3 ) VERO  ( 1 ) VERO  ( a – a ) FALSO 22

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEProblema Si scriva un programma in C che, dato un numero, dica se questo è positivo o negativo 23

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONESoluzione 1. Si inserisca N 2. N è maggiore di 0?  Vero: N è positivo  Falso: N non è positivo 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 25 In C: positivo int main() { int n; printf (“Inserisci un numero\n"); scanf ("%d", &n ); if ( n > 0 ) printf ("Un numero positivo ! \n"); else printf ("Un numero negativo o nullo\n"); printf ("Fine del programma\n"); return 0; } condizione

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Pausa 5’ 26 George Boole

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: caratteri MaIuScOli Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo 27

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 28

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE HELP: errori sull’input 29

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: errori sull’input Problema  Preso un dato inserito da tastiera  Per potervi applicare la trasformazione di nostro interesse  Dobbiamo prima verificare che il dato sia coerente con quanto ci aspettiamo Soluzione  Definire l’insieme dei caratteri validi  Verificare l’appartenenza del carattere inserito, all’insieme dei caratterei validi 30

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice Dati  L’insieme dei caratteri ammissibili {a, b, c, …, z} 1. Richiedere l’inserimento di un carattere 2. Se carattere inserito corretto 3. Allora stampa a video carattere Altrimenti stampa a video un messaggio di errore 31

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Dati  L’insieme dei caratteri ammissibili {a, b, c, …, z} Il carattere inserito deve essere  =>a  <= z 32

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: solo if 33

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z X e Y devono essere entrambe vere 34 X Y X and Y (prodotto logico)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: AND 35

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: codice ottimizzato 36

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 37

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 38 A modellare alcune (non tutte) forme di ragionamento  A  è vero che 1 è maggiore di 2 ? (sì o no, qui è no)  0  B  è vero che 2 più 2 fa 4 ? (sì o no, qui è sì)  1  A and B  è vero che 1 sia maggiore di 2 e che 2 più 2 faccia 4 ? Si ha che A and B  0 and 1  0, dunque no  A or B  è vero che 1 sia maggiore di 2 o che 2 più 2 faccia 4 ? Si ha che A or B  0 and 1  1, dunque sì OR, AND e NOT vengono anche chiamati connettivi logici, perché funzionano come le congiunzioni coordinanti “o” ed “e”, e come la negazione “non”, del linguaggio naturale Si modellano ragionamenti (o deduzioni) basati solo sull’uso di “o”, “e” e “non” (non è molto, ma è utile) A che cosa servono le espressioni logiche?

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 39 Le espressioni logiche (booleane) non modellano:  Domande esistenziali: “c’è almeno un numero reale x tale che il suo quadrato valga  1 ?”  x | x 2   1è falso (si sa bene che non c’è)  Domande universali: “ogni numero naturale è la somma di quattro quadrati di numeri naturali ?”  x | x  a 2  b 2  c 2  d 2` è vero (“teorema dei 4 quadrati”) Più esattamente andrebbe scritto:  x  a,b,c,d | x  a2  b2  c2  d2  e  sono chiamati “operatori di quantificazione”, e sono ben diversi da or, and e not La parte della logica che tratta solo degli operatori or, and e not si chiama calcolo proposizionale Aggiungendo gli operatori di quantificazione, si ha il calcolo dei predicati (che è molto più complesso) Che cosa non si può modellare tramite espressioni logiche?

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 40 Tautologia  Una espressione logica che è sempre vera, per qualunque combinazione di valori delle variabili Esempio: principio del “terzo escluso”: A or not A (tertium non datur, non si dà un terzo caso tra l’evento A e la sua negazione) Contraddizione  Una espressione logica che è sempre falsa, per qualunque combinazione di valori delle variabili Esempio: principio di “non contraddizione”: A and not A (l’evento A e la sua negazione non possono essere entrambi veri) Tautologie e Contraddizioni

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 41 Due espressioni logiche si dicono equivalenti (e si indica con  ) se hanno la medesima tabella di verità. La verifica è algoritmica. Per esempio: A B not A and not B  not (A or B) and 1 = 1 not 0 = and 0 = 0 not 1 = and 1 = 0 not 1 = and 0 = 0 not 1 = 0 Espressioni logiche equivalenti modellano gli stessi stati di verità a fronte delle medesime variabili Equivalenza tra espressioni

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 42 Proprietà dell’algebra di Boole L’algebra di Boole gode di svariate proprietà, formulabili sotto specie di identità  cioè formulabili come equivalenze tra espressioni logiche, valide per qualunque combinazione di valori delle variabili

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra Booleana a due valori: Assiomi Gli operatori descritti godono delle proprietà definite dai seguenti assiomi (postulati di Huntington):  Le operazioni di disgiunzione (+) e congiunzione (·) sono commutative, cioè per ogni elemento a,b  B a+b = b+a a·b = b·a  Esiste un elemento neutro (o identità) rispetto a + (indicato con 0) e un elemento neutro rispetto a · (indicato con 1), cioè: a+0=a a·1=a  Le due operazioni sono distributive rispetto all’altra, cioè per ogni a,b,c  B, risulta: a+(b·c)=(a+b)·(a+c) a·(b+c)=(a·b)+(a·c)  Per ogni a  B esiste l’elemento a ’  B, detto negazione logica o complemento di a, tale che: a+a ’ =1 a·a ’ =0 Vale per la somma rispetto al prodotto come per il prodotto rispetto alla somma – non esiste precedenza fra le due operazioni, occorre sempre immaginare le parentesi “sottintese” intorno a ogni applicazione di un’operazione.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Commutazione: Proprietà 1 1: associativa a+(b+c)=(a+b)+c a*(b*c)=(a*b)*c 2: idempotenza a+a=a a*a=a 3: elemento nullo a+1=1 a*0=0 4: unicità elemento inverso: il complemento di a, a’, è unico 5: assorbimento a+(a*b)=a a*(a+b)=a

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE : Semplificazione a+a’b = a+b a*(a’+b) = a*b 7: involuzione ((a)’)’ = a 8: Leggi di De Morgan (a+b)’ = a’*b’ (a*b)’ = a’+b’ 9: consenso a*b+a’*c+b*c = a*b + a’*c (a+b)*(a’+c)*(b+c)=(a+b)*(a’+c) Algebra di Commutazione: Proprietà 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 46 Trasformare un’espressione logica in un’altra, differente per aspetto ma equivalente: not A and B or A  (assorbimento)  not A and B or (A or A and B)  (togli le parentesi)  not A and B or A or A and B  (commutativa)  not A and B or A and B or A  (distributiva)  (not A or A) and B or A  (legge dell’elemento 1)  true and B or A  (vero and B  B)  B or Aè più semplice dell’espressione originale Si può verificare l’equivalenza con le tabelle di verità Occorre conoscere un’ampia lista di proprietà e si deve riuscire a “vederle” nell’espressione (talvolta è difficile) Uso delle proprietà

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problemi di fine giornata… Si scriva un programma in C che richiede l’inserimento di un numero intero positivo, se l’inserimento e’ errato ritorna un messaggio di errore Si scriva un programma in C che, dati due caratteri, li ordina in ordine alfabetico “inverso” 47

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill Capitolo 2 Credits  Daniele Braga  Cristiana Bolchini htm