Chapitre 6 Booléens 1/6 Ch 6 LOGIQUE BOOLEENS TS2-ISN Janvier 2017 George Boole, né le 2 novembre 1815 à Lincoln (Royaume-Uni) et mort le 8 décembre 1864 à Ballintemple (Irlande), est un logicien, mathématicien et philosophe britannique. Il est le créateur de la logique moderne. Ses travaux posent les bases de ce qu’on nommera plus tard l’algèbre de Boole. En 1847 sort "Mathematical Analysis of Logic". Boole y développe une nouvelle forme de logique, à la fois symbolique et mathématique. Le but : traduire des idées et des concepts en équations, leur appliquer certaines lois et retraduire le résultat en termes logiques. Pour cela, il crée une algèbre binaire n’acceptant que deux valeurs numériques : 0 et 1. Cette algèbre est définie par la donnée d’un ensemble E (non vide) muni de deux lois de composition interne (le ET et le OU) satisfaisant à un certain nombre de propriétés (commutativité, distributivité...) Un peu de logique On considère les trois propositions logiques suivantes : v : « Ma voiture marche » p : « Il pleut » m : « Je prends le métro » La valeur de ces propositions peut être VRAI (dans ce cas elle vaut 1) ou FAUX ( elle vaut 0) A partir de ces propositions on peut définir d’autres propositions, comme : • la négation de la proposition p, notée ¬p ( parfois aussi notée p) : « Il ne pleut pas » On peut représenter ceci par un tableau (appelé table de vérité) p ¬p 1 0 0 1 • la proposition « Ma voiture marche et il pleut » notée v ∧ p la proposition v ∧ p n’est vraie que si chacune des deux v et p est vraie d’où v 0 0 1 1 p v∧p 0 0 1 0 0 0 1 1 • la proposition « Ma voiture marche ou il pleut » notée v ∨ p la proposition v ∨ p est vraie lorsque v est vraie ou p est vraie ( ou les deux) d’où v 0 0 1 1 p v∨p 0 0 1 1 0 1 1 1 • On peut aussi définir des propositions plus complexes comme la proposition : « S’il pleut et ma voiture ne marche pas, je prends le métro » notée p ∧ ¬v =⇒ m Le calcul booléen permet de dresser la table de vérité de toutes ces propositions. Et l’ordinateur ? On a vu qu’il travaillait avec des 0 et des 1. Le calcul booléen va donc être représentable physiquement par des mécanismes électroniques ( à l’aide de transistors) 1 tension > 0 et 0 tension nulle. C’est Unité Arithmétique et Logique (U.A.L) de l’ordinateur qui va s’occuper de tout ça. A l’intérieur il y a des circuits logiques : Chapitre 6 Booléens 2/6 Les portes logiques Ce sont les circuits logiques élémentaires la porte ¬a , parfois aussi notée !a (not a en python) est nommée porte NOT la porte a ou b (a or b en python) est nommée porte OR La porte a et b (a and b en python) est nommée porte AND La porte non (a ou b) not a or b en python) est nommée porte NOR La porte non (a et b) not a and b en python) est nommée porte NAND Porte XOR Il y a une autre porte élémentaire qui est souvent utile la porte XOR c’est le ou exclusif noté a⊕b Chapitre 6 Booléens 3/6 Algèbre booléenne Dans le paragraphe précédent, on a représenté les portes élémentaires à l’aide des opérations a + b et a.b On peut alors définir un nouveau calcul avec ces deux opérations, elles vérifient les propositions suivantes : Element neutre Commutatitivité Associativité Element nul distributivité a+0=a a.1 = a a+b=b+a a.b = b.a a + (b + c) = (a + b) + c a.(b.c) = (a.b).c a+1=1 a.0 = 0 a + b.c = (a + b).(a + c) a.(b + c) = a.b + a.c Avec la négation Idempotence absortion Lois de Morgan : a=a a+a=1 a+a=a a + (a.b) = a a.a = 0 a.1 = a a.(a + b) = a a + b = a.b a.b = a + b Toutes ces propriétés se démontrent (par exemple à l’aide d’une table de vérité) Exemple de circuit Voila un circuit où les entrées sont a et b et la sortie s. Formule : s=a∧b∧a∧b En Python : s = not(not( a and not b) and (not (not a and b)) Table de vérité a b a b a∧b a∧b a∧b∧a∧b 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 Chapitre 6 Booléens Un peu d’électronique 4/6 Chapitre 6 Booléens 5/6 Chapitre 6 Booléens 6/6 Questions de cours chapitre 3 Question 1 Démontrer les propriétés d’ une algèbre de Boole énoncées page 3 Question 2 Ecrire un programme Python qui établisse directement la table de vérité de la formule du circuit logique de la page 3 Question 3 Un peu de logique 1. Quelle est la négation de la proposition « Je suis jeune et beau » 2. Quelle est la négation de la proposition « x > 5 ou x < 2 » 3. Dire que l’implication p =⇒ q est vraie signifie : lorsque p est vraie, q est vraie (Donc lorsque p est fausse, l’implication p =⇒ q est toujours vraie ) (a) Etablir la table de vérité de l’implication p =⇒ q (b) Etablir la table de vérité de la proposition ¬p ∨ q (c) Conclusion ? 4. Dans quels cas la proposition « S’il pleut et ma voiture ne marche pas, je prends le métro » de la page 1 est-elle vraie ? On pourra pour répondre à la question faire une table de vérité ou faire un programme Python qui écrit cette table de vérité. Question 4 1. A partir des trois opérateurs de base : négation (NOT), conjonction (AND), et disjonction (OR), redéfinir l’équivalence ( ⇐⇒) et le ou exclusif (⊕) 2. dessiner un circuit logique avec comme entrée a et b et comme sortie s = a ⇐⇒ b et t = a ⊕ b 3. Vérifier à l’aide d’un programme Python Question 5 1. Simplifier les expressions booléennes suivantes : s = a + b + c.d t = a.b.c + d u = a.b + c + d 2. Vérifier à l’aide d’un programme Python Question 6 Avec seulement la porte NAND 1. Le circuit est équivalent à une porte élémentaire, laquelle ? 2. Le circuit est équivalent à une porte élémentaire, laquelle ? 3. Comment faire une porte NOT à l’aide de seulement une porte NAND ?