Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Elementi di calcolo combinatorio Insieme di n elementi ES. {A,B,C,D} (n=4) SEMPLICE PERMUTAZIONE P sequenza nella quale compaiono tutti gli elementi in ordine diverso ES [A,C,B,D] oppure [D,A,B,C] NUMERO DI PERMUTAZIONI POSSIBILI su n elementi Pn = n! Fondamenti di Informatica 40 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Elementi di calcolo combinatorio Insieme di n elementi ES. {A,B,C,D} (n=4) SEMPLICE DISPOSIZIONE D sequenza nella quale compare un sottoinsieme di elementi di dimensione k ES [A,B,D] oppure [D,A,C] (k=3) NUMERO DI DISPOSIZIONI di dimensione k su n elementi Dn,k = n! / (n-k)! ES D4,2 = 4*3*2 / 2 = 12 [A,B] [A,C] [A,D] [B,A] [B,C] [B,D] [C,A] [C,B] [C,D] [D,A] [D,B] [D,C] Fondamenti di Informatica 41 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Elementi di calcolo combinatorio Insieme di n elementi ES. {A,B,C,D} (n=4) SEMPLICE COMBINAZIONE C sequenza nella quale compare un sottoinsieme di elementi di dimensione k L'ORDINE NON CONTA ES [A,B,D] oppure [D,A,C] ma non [A,D,B] (k=3) NUMERO DI COMBINAZIONI di dimensione k su n elementi Cn,k = Dn,k / Pk ES C4,2 = n! / ( k! * (n-k)!) = n k () = 4*3*2 / (2*2) = 6 [A,B] [A,C] [A,D] [B,A] [B,C] [B,D] [C,A] [C,B] [C,D] [D,A] [D,B] [D,C] Fondamenti di Informatica 42 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Elementi di calcolo combinatorio COSA ACCADE SE GLI ELEMENTI POSSONO APPARIRE IN MODO RIPETUTO? Insieme di n elementi ES. {A,B,C,D} (n=4) DISPOSIZIONE CON RIPETIZIONE D' sequenza nella quale compare un sottoinsieme di elementi di dimensione k ES [A,B,B] oppure [D,D,D](k=3) NUMERO DI DISPOSIZIONI CON RIPETIZIONE di dimensione k su n elementi D'n,k = nk ES D'4,2 = 4*4 = 16 [A,B] [A,C] [A,D] [B,A] [B,C] [B,D] [C,A] [C,B] [C,D] [D,A] [D,B] [D,C] [A,A] [B,B] [C,C] [D,D] Fondamenti di Informatica 43 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Elementi di calcolo combinatorio COSA ACCADE SE GLI ELEMENTI POSSONO APPARIRE IN MODO RIPETUTO? Insieme di n elementi ES. {A,B,C,D} (n=4) COMBINAZIONE CON RIPETIZIONE C' sequenza nella quale compare un sottoinsieme di elementi di dimensione k L'ORDINE NON CONTA ES [A,B,B] oppure [D,A,A] ma non [B,A,B] (k=3) NUMERO DI COMBINAZIONI CON RIPETIZIONE di dimensione k su n elementi C'n,k = (n+k-1)! / ( k! * (n-1)!) = ES C'4,2 = 5*4*3*2 / (2*6) = 10 ( n+ k −1 k ) ( = n+ k −1 n−1 ) [A,B] [A,C] [A,D] [B,A] [B,C] [B,D] [C,A] [C,B] [C,D] [D,A] [D,B] [D,C] [A,A] [B,B] [C,C] [D,D] Fondamenti di Informatica 44 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Elementi di calcolo combinatorio COSA ACCADE NEL CASO DI UN INSIEME BINARIO? Insieme di 2 elementi {0,1} (n=2) DISPOSIZIONI CON RIPETIZIONE D' di dimensione k D'n,k = 2k ES D'2,3 = 8 [0,0,0] [0,0,1] [0,1,0] [0,1,1] [1,0,0] [1,0,1] [1,1,0] [1,1,1] COMBINAZIONI CON RIPETIZIONE C' di dimensione k C'n,k = K+1 ES C'2,3 = 4 [0,0,0] [0,0,1] [0,1,1] [1,1,1] Fondamenti di Informatica 45 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Elementi di calcolo combinatorio HOMEWORK Quanti oggetti possiamo differenziare con un codice costituito da due simboli di cui il primo è una lettera dell’alfabeto (21 lettere) e il secondo è una cifra da 0 a 9 ? Uno studente deve sostenere 6 esami ogni anno per i 3 anni di durata del suo corso di studi, senza poter rimandare un esame da un anno all’altro, nell’ordine da lui preferito durante ogni singolo anno. Quante sono le possibili sequenze dei 18 esami ? Quanti numeri di sei cifre hanno almeno una cifra dispari? Quattro giocatori di tennis vogliono giocare un doppio . Quante coppie distinte possono formarsi? Fondamenti di Informatica 46 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Elementi di calcolo combinatorio HOMEWORK 21*10 = 210 6!* 6! * 6! 9*10*10*10*10*10 – 56 +55 6 Fondamenti di Informatica 47 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Algebra booleana: base dei calcolatori moderni – George Boole (1815-1864): fondamenti dell’algebra booleana – Shannon (1938): prima idea di applicare l’algebra booleana ai circuiti • Componenti: – Variabili logiche – Operatori • Le funzioni logiche, ottenute applicando gli operatori alle variabili, possono essere descritte tramite tavole di verità Fondamenti di Informatica 48 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Variabili logiche – una variabile logica x puo` avere solo due stati: x = VERO (TRUE) = 1 x = FALSO (FALSE) = 0 – questa e` definita logica positiva – elettricamente: • 1 e` rappresentato da un valore di tensione positivo • 0 e` rappresentato da un valore di tensione nullo • Operatori – Nell’algebra booleana esistono tre operatori fondamentali: • AND • OR • NOT Fondamenti di Informatica 49 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Operatore AND A AND B -> simbolo A · B (moltiplicazione) corrisponde ad una congiunzione stretta: A · B è vero solo se A e B sono entrambi veri Tavola di verità A B f = A AND B 0 0 1 1 0 1 0 1 0 0 0 1 Fondamenti di Informatica A B f = A. B 50 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Operatore OR A OR B -> simbolo A + B (somma) A + B è vero se A oppure B oppure entrambi sono veri Tavola di verità A B f = A OR B 0 0 1 1 0 1 0 1 0 1 1 1 Fondamenti di Informatica A B f = A+ B 51 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • NOT NOT A -> simbolo A (negazione) A è vero se A è falso e viceversa Tavola di verità A f = NOT A 0 1 1 0 Fondamenti di Informatica A f= A 52 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Gli operatori AND OR NOT possono essere sostituiti da vari altri operatori logici • Tra questi NOR e NAND sono chiamati universali in quanto ognuno di essi e` in grado di sostituire da solo e completamente i tre precedenti • Sono ovvie le implicazioni di carattere costruttivo, per le realizzazioni di circuiti integrati Fondamenti di Informatica 53 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • NOR (NOT OR) A B f = A NOR B 0 0 1 1 0 1 0 1 1 0 0 0 Fondamenti di Informatica A B f = A+ B 54 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • NAND (NOT AND) A B f = A NAND B 0 0 1 1 0 1 0 1 1 1 1 0 Fondamenti di Informatica A B f = A.B 55 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Un altro operatore importante è lo XOR (OR esclusivo) A XOR B = (A AND NOT(B)) + (NOT(A) AND B) ● ● ● Simbolo: A XOR B -> A + B A XOR B è vero se solo uno tra A o B è vero È talvolta chiamato EXOR o EOR A B f = A XOR B 0 0 1 1 Fondamenti di Informatica 0 1 0 1 0 1 1 0 56 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Proprieta` dell’algebra booleana (valgono anche le relazioni duali) – Commutativa A+B = B+A – Associativa A. (B. C) = (A. B) . C – Assorbimento o inclusione • A . (A+B) = A Proprieta` supplementari – Distributiva A. (B+ C) = A. B + A. C (vale la duale!!) – Elemento neutro 0+A=A 1 . A = A (duale) – Complementare A. A=0 A + A = 1 (duale) Fondamenti di Informatica 57 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Altre proprieta` importanti (derivabili dalle precedenti) assorbimento del complemento A+A.B=A+B (duale) A . (A + B) = A . B fusione diretta A.B+A.B=A (duale) (A+B) . (A+B) = A Fondamenti di informatica 58 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Leggi di De Morgan A+ B = A. B A B 0 0 1 1 0 1 0 1 Fondamenti di Informatica A+ B A+ B A B A. B 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 59 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Leggi di De Morgan A .B =A+B A B 0 0 1 1 0 1 0 1 Fondamenti di Informatica A· B A· B A B A+ B 0 0 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 60 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana Esempio di utilizzo di De Morgan: equivalenza tra circuiti digitali complessi A B A· B (A·B) · (C·D) = (A·B) + (C·D) = C D Fondamenti di informatica C·D A·B + C·D 61 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana Circuito digitale equivalente al precedente A B A· B (A·B) · (C·D) = (A·B) + (C·D) = C D Fondamenti di informatica C·D A·B + C·D 62 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana • Sintesi di circuiti digitali – consiste nel derivare la funzione logica a partire dalla descrizione del problema – esistono diverse metodologie tra cui la piu` semplice e` la sintesi diretta; richiede: • la costruzione della tabella di verita` • la derivazione della funzione diretta • la semplificazione tramite teoremi e proprieta` note – NB - funziona solo per casi molto semplici!! Fondamenti di informatica 63 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana • Un esempio di aritmetica binaria: l’HALF ADDER – serve a sommare due bit – genera un riporto per lo stadio successivo – utilizzato in cascata con un FULL ADDER consente di sommare numeri binari A B Fondamenti di informatica HA Ci+1 S 64 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana PASSO 1: la tabella di verità – INPUT operandi A, B – OUTPUT somma S e riporto per il passo successivo C i+1 Fondamenti di informatica A B S Ci+1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 65 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana PASSO 2: derivazione della formula diretta: – Per ogni riga in cui la funzione assume valore 1: • AND di tutte le variabili: – Normali quelle che hanno valore 1 – Negate le altre – OR di tutte queste formule Esempio per S: – Riga 2 -> A · B – Riga 3 -> A · B – TOTALE : (A · B) + (A · B) Fondamenti di informatica 66 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana PASSO 3: Semplificazione • Utilizzo le proprietà dell’algebra booleana per semplificare la formula (come semplificazioni espressioni in algebra lineare) – In questo caso si vede che è uno XOR, quindi S = A XOR B • Posso procedere allo stesso modo per Ci+1: – Riga 4 -> A · B , quindi Ci+1 = A · B Fondamenti di informatica 67 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana • Verifica: – calcolo la tabella di verità di A B e la confronto con la tabella di verità di S A B S A B Fondamenti di informatica 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 68 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana • Un altro esempio: il FULL ADDER – serve a sommare due bit, tenendo conto di un riporto che può derivare dallo stadio precedente – genera a sua volta un riporto per lo stadio successivo A B Ci Fondamenti di Informatica FA Ci+1 S 69 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana PASSO 1: la tabella di verità: – INPUT operandi A, B, e il riporto dal passo precedente – OUTPUT somma S e riporto per il passo successivo C i+1 Fondamenti di Informatica A B Ci Ci+1 S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 70 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana PASSO 2: derivazione della formula diretta: • FORMULA S: – Riga 2 -> A · B · Ci – Riga 3 -> A · B · Ci – Riga 5 -> A · B · Ci – Riga 8 -> A · B · C TOTALE : A · B · Ci + A · B · Ci + A · B · Ci + A · B · Ci • FORMULA Ci+1: – Riga 4 -> A · B · Ci – Riga 6 -> A · B · Ci – Riga 7 -> A · B · Ci – Riga 8 -> A · B · Ci TOTALE : A · B · Ci + A· B · Ci + A· B · Ci + A · B · Ci Fondamenti di Informatica A B Ci Ci+1 S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 71 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 L’algebra booleana PASSO 3: Semplificazione • in questo caso si vede che S è uno XOR a tre variabili mentre Ci+1 può essere ridotto utilizzando la proprietà di inclusione A B Ci Ci+1 S A B A B Ci S = A B Ci Ci+1 = A·B + B·Ci + A·Ci Fondamenti di Informatica 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 72 Università di Sassari – Dipartimento di Sc. Politiche, Sc. Delle Comunicazione e Ingegneria dell'Informazione - A.A. 2015-2016 Algebra booleana Co S3 Full Adder Ci A3 B3 Fondamenti di Informatica Co S2 Full Adder Ci A2 B2 Co S1 Full Adder Ci A1 B1 Co S0 Half Adder A0 B0 73