Programmazione in C Semplificazione di espressioni Algebra di Boole Semplificazione di espressioni Proprietà fondamentali Minimizzazione 2 © 2006 Politecnico di Torino 1 Programmazione in C Semplificazione di espressioni Semplificazione di espressioni Proprietà dell’algebra Gli operatori and, or, etc. soddisfano specifiche proprietà Al contrario di quanto avviene nell’algebra ordinaria le proprietà sono dimostrabili per induzione completa Si valuta la proprietà per tutte le possibili combinazioni delle variabili indipendenti La proprietà è valida se è sempre verificata 4 © 2006 Politecnico di Torino 2 Programmazione in C Semplificazione di espressioni Principali proprietà (1/3) Involuzione (0’)’ = 1’ = 0 (1’)’ = 0’ = 1 (x’)’ = x Assorbimento x ⋅ x =x x+ x =x 0⋅0=0 1⋅1=1 Identità 0+0=0 1+0=1 x ⋅ 1 =x x+ 0 =x Complemento 0 + (0)’ = 0 + 1 = 1 1 + (1)’ = 1 + 0 = 1 x ⋅ x’ = 0 x + x’ = 1 5 Principali proprietà (2/3) Dominanza x ⋅0 =0 x+1=1 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) Proprietà distributiva x ⋅ (y + z) = x ⋅ y + x ⋅ z x + (y ⋅ z) = (x + y) ⋅ (x + z) © 2006 Politecnico di Torino 6 3 Programmazione in C Semplificazione di espressioni Principali proprietà (3/3) Inclusione o assorbimento x+x⋅y =x x ⋅ (x + y) = x Fusione diretta x ⋅ y + x ⋅ y’ = x (x + y) ⋅ (x + y’) = x Teorema di De Morgan (x ⋅ y)’ = x’ + y’ (x + y)’ = x’ ⋅ y’ Ridondanza Sono valide? x ⋅ (x’ + y) = x ⋅ y x + x’ ⋅ y = x + y 7 Esempio 1 ? (x + y)’ = x’ ⋅ y’ x y x’ y’ x+y (x+y)’ x’ ⋅ y’ 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 = 8 © 2006 Politecnico di Torino 4 Programmazione in C Semplificazione di espressioni Esempio 2 ? x + x’ ⋅ y = x + y x y x’ x’ ⋅ y x + x’⋅y x+y 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 = 9 Semplificazione di espressioni © 2006 Politecnico di Torino 5 Programmazione in C Semplificazione di espressioni Funzioni equivalenti Due funzioni f1 e f2 sono equivalenti se, per tutte le combinazioni delle variabili indipendenti Qualora f1 = 1 allora anche f2 = 1 Qualora f1 = 0 allora anche f2 = 0 Se due funzioni f1 e f2 sono equivalenti allora f1 = f2 Data una funzione logica f esistono più espressioni (equivalenti) che la rappresentano 11 Esempi f1 (x1, x2) = x1 ⊕ x2 = x1’ ⋅ x2 + x1 ⋅ x2’ f2 (x1, x2) = (x1 ⊕ x2)’ = x1’ ⋅ x2’ + x1 ⋅ x2 © 2006 Politecnico di Torino x1 x2 f1 0 0 0 0 1 1 1 0 1 1 1 0 x1 x2 f2 0 0 1 0 1 0 1 0 0 1 1 1 12 6 Programmazione in C Semplificazione di espressioni Minimizzazione Problema Tra tutte le funzioni equivalenti trovare quella minima Che cosa si intende per minima? La più semplice La meno costosa da realizzare Etc. Le proprietà (e i teoremi) possono essere impiegate per semplificare le funzioni booleane, passando da una funzione equivalente a un’altra 13 Esempio 1 f (x1, x2, x3) = x1’ ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3 = x2 ⋅ x3 ⋅ (x1’ + x1) = x2 ⋅ x3 ⋅ 1 = x2 ⋅ x3 x2 x3 f (x1, x2, x3) f non dipende da x1 © 2006 Politecnico di Torino Proprietà distributiva x ⋅ (y+z) = x ⋅ y + x ⋅ z Complemento x + x’ = 1 Identità x⋅1=x 14 7 Programmazione in C Semplificazione di espressioni Esempio 2 f (x, y, z) = = x’⋅y’⋅z + x’⋅y⋅z + x⋅y’⋅z + x⋅y⋅z’ = x’⋅z⋅(y’+y) + x⋅y’⋅z + x⋅y⋅z’ = + x⋅y’⋅z + x⋅y⋅z’ x’⋅z = (x’+x⋅y’)⋅z + x⋅y⋅z’ = (x’+y’) ⋅ z + x⋅y⋅z’ Proprietà distributiva x ⋅ (y+z) = x ⋅ y + x ⋅ z Complemento e identità x + x’ = 1, x ⋅ 1 = x Proprietà distributiva x ⋅ (y+z) = x ⋅ y + x ⋅ z Teorema x + x’ ⋅ y = x + y 15 © 2006 Politecnico di Torino 8