Forum Programmation.autre Algèbre de Bool, cherche cours/doc/mooc/tuto whatever

Posté par  . Licence CC By‑SA.
Étiquettes :
0
7
juin
2021

Coucou !

Je suis nul en algèbre Bool, les 3 cours que j'ai pu avoir sur son introduction sont bien loin aujourd'hui, et j'ai besoin d'en connaitre plus.

Donc si quelqu'un à des conseils à me donner pour passer de gros noob à guru méditant dans des délais raisonnables, je lui construit une table de vérité en bois d'arbre pour sa salle à manger, aves ses rallonges =D

Par avance tous mes remerciements distingués.

  • # Openclassroom

    Posté par  (site Web personnel) . Évalué à 1 (+0/-0).

    • [^] # Re: Openclassroom

      Posté par  . Évalué à 1 (+0/-0).

      Merci.
      J'ai déjà croisé cette page, mais ça commence déjà un peu fort. Je cherche plutôt quelque chose qui parte des bases avec un suivi progressif pour aller vers des notions complexes.

      • [^] # Re: Openclassroom

        Posté par  . Évalué à 4 (+2/-0). Dernière modification le 07/06/21 à 16:32.

        Je t'avoue que la page qu'il t'a conseillé me parait être la "base". Ca me surprend car tu sembles déjà connaitre tableau de vérité & co.

        NB : après c'est peut etre que je suis dans le bain de l'algèbre de bool

        A moins que ce soit l'électronique qui te gêne ?

        Peut etre que sans l'électronique, tu trouverais ca plus clair : Bool avec python

        Sinon tu as aussi les ressources types wikipedia qui peuvent donner des bases
        Wikipedia
        Wikiversity

      • [^] # Re: Openclassroom

        Posté par  . Évalué à 2 (+0/-0). Dernière modification le 07/06/21 à 16:50.

        les bases sont dans la page open classroom (attention il y a 3 pages)

        1. découvrez
        2. apprenez à simplifier
        3. synthétisez

        ensuite c'est à toi de prendre ces bases et de construire ton "produit" et sa table de vérité

      • [^] # Re: Openclassroom

        Posté par  . Évalué à 3 (+1/-0). Dernière modification le 07/06/21 à 18:01.

        Enfin, il suffit de faire une recherche sur « cours algèbre de Boole » (my name is Boole, George Boole) pour tomber sur plein de cours très bien faits (universités, lycées, etc.)

        Ex. niveau lycée : http://lycees.ac-rouen.fr/modeste-leroy/spip/IMG/pdf/_algebre_de_boole.pdf

  • # Les bases

    Posté par  . Évalué à -2 (+0/-3).

    Sans aller verifier le contenu des pages recensees plus haut, de memoire, les bases se reduisent peu ou prou a:
    - une specificite de l'addition: 1 + 1 = 0
    - les tables logiques: AND, OR, XOR, voire NAND (des puristes pourraient t'expliquer que la table NAND est suffisante)

    Ai-je merite ma belle table en vrai bois d'arbre (avec ses rallonges)?

    ++
    Gi)

    • [^] # Re: Les bases

      Posté par  (site Web personnel) . Évalué à 2 (+0/-0).

      Un bol en python plus probablement si j'ai bien compris (il doit y avoir moyen de raidir une peau de python je suppose).

      Designeuse de masques pour sphéniscidés.

    • [^] # Re: Les bases

      Posté par  . Évalué à 5 (+3/-0).

      • une specificite de l'addition: 1 + 1 = 0

      Raté ! ;)

      1 + 1 = 1

      • [^] # Re: Les bases

        Posté par  (site Web personnel) . Évalué à 2 (+0/-0).

        Y'a Jean-Claude, y'a dieu, dans un même corps.

      • [^] # Re: Les bases

        Posté par  . Évalué à -1 (+0/-2).

        raté ;)
        1 + 1 = 3

        • [^] # Re: Les bases

          Posté par  . Évalué à 2 (+0/-0).

          helas si t'as pas de chance, ca peut donné d'autres combinaisons

          des plus classiques 1+1=4, au plus rare (mais récemment expliqué aux infos) 1+1=11

          8-)

          • [^] # Re: Les bases

            Posté par  . Évalué à 0 (+0/-1).

            héhé un qui m'a compris ;-) chaud onze, une équipe de foot…

            pour en revenir au sujet, la vérité des résultat dépend du référentiel (ou en mathématique du corps/groupe et de l'algèbre considérés.) certes le sujet est bien l'algèbre (entre guillemets) booléen mais ça n'empêche qu'il faut préciser qu'on est en base deux pour avoir "1+1=10" et encore… (quand on descend à l'implémentation il faut aussi considérer la taille des entiers et comment on complémente et comment on gère les débordements, car on aurait pu avoir juste "1+1=0" ou "1+1=1" si on est sur un bit…)
            bon, je m'égare ; le message de départ de la discussion a précisé vouloir du plus simple possible. (ou pas, on voit qu'il faut cibler le domaine de définition de cette simplicité pour borner les réponses)

            • [^] # Re: Les bases

              Posté par  . Évalué à 2 (+1/-0). Dernière modification le 10/06/21 à 14:23.

              "pour en revenir au sujet", je ne comprends pas en quoi tu reviens au sujet, quelle est le rapport entre "1+1=10" et l'algèbre de Boole ?
              l'algèbre de Boole c'est 1+x=1, 0+x=x (avec x=0 ou 1),ce genre de choses, il me semble

              • [^] # Re: Les bases

                Posté par  . Évalué à 1 (+0/-0).

                J'ai suivi le glissement, que tu fais aussi, du booléen vers le binaire.
                L'algèbre de Boole est une transcription du calcul de propositions sous forme algébrique en posant 1 pour les propositions vraies et 0 pour les propositions fausses. Je note, pour ma part, V (ou T) et F dans mes cours.

                • [^] # Re: Les bases

                  Posté par  . Évalué à 1 (+0/-0).

                  J'ai suivi le glissement, que tu fais aussi, du booléen vers le binaire.

                  pas compris, il me semble que c'est toi qui a glissé vers le binaire, je ne vois pas qui a glissé avant, et je ne vois pas pourquoi tu dis que j'ai glissé, j'utilise 0 pour faux et 1 pour vrai parce que c'est ce qui est fait dans l'algèbre de boole pas parce je veux parler du binaire.

            • [^] # Re: Les bases

              Posté par  . Évalué à 5 (+3/-0).

              le sujet est bien l'algèbre (entre guillemets) booléen mais ça n'empêche qu'il faut préciser qu'on est en base deux

              Non on n'est pas « en base deux ». L'algèbre de Boole n'utilise que deux valeurs : vrai ou faux, O ou 1. « + » n'a rien a voir avec l'addition des nombres; c'est la notation symbolique de l'opération logique « OU ».

              Tu ferais bien de lire les liens donnés plus haut…

              • [^] # Re: Les bases

                Posté par  . Évalué à 1 (+0/-0).

                Pourtant le sujet était bien le glissement (prière remonter au pied du fil)

                • une specificite de l'addition: 1 + 1 = 0

                Si on veut chipoter sur la notation, je n'utilise pas « + » mais plutôt « ∥ » (logique propositionnelle) ou à la rigueur « ∨ » (disjonction inclusive)

                • [^] # Re: Les bases

                  Posté par  . Évalué à 2 (+1/-0). Dernière modification le 14/06/21 à 09:14.

                  Pourtant le sujet était bien le glissement

                  hein ? le sujet partait d'une correction qui disait 1+1=0 (vrai ou vrai = faux) était faux que c'était 1+1=1 (vrai ou vrai = vrai). et toi tu lances que non 1+1=3… Ou as-tu vu que le sujet était le glissement avant que toi même tu glisses ?

                  De plus pourquoi pas glisser sous forme de blague (mais j'aurais d'abord commencé par 1+1=2), mais à la fin tu dis "revenons au sujet" ('algèbre de boole, normalement) et tu persistes sur 1+1=10…

    • [^] # Re: Les bases

      Posté par  . Évalué à 3 (+1/-0).

      des puristes pourraient t'expliquer que la table NAND est suffisante

      Pas une histoire du puriste, juste une propriété qui est (a été ?) pratique. Mais démontrer par exemple que le OR peut être fait uniquement à partir de NAND montre bien l'intérêt du OR en lui-même. Si tu crées un langage qui n'a que le mot clé NAND, tu risques de pas avoir trop de succès :)

      Et sinon il te manque la fonction NOT dans les bases.

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: Les bases

        Posté par  (site Web personnel) . Évalué à 5 (+2/-0).

        Pas une histoire du puriste, juste une propriété qui est (a été ?) pratique. Mais démontrer par exemple que le OR peut être fait uniquement à partir de NAND montre bien l'intérêt du OR en lui-même. Si tu crées un langage qui n'a que le mot clé NAND, tu risques de pas avoir trop de succès :)

        En fait NAND (ou NOR, ça fonctionne aussi) peuvent être assemblés pour reconstruire toutes les autres opérations. NAND et NOR sont donc des opérations dites universelles.

        C'est toujours très utilisé, notamment dans les FPGA ou dans les différentes mémoires, car justement avec une structure élémentaire identique tu peux tout reconstituer. Cela simplifie le processus de fabrication et donc le coût que d'utiliser des portes dédiées à chaque fois. En plus d'autoriser une reprogrammation complète dans le cas du FPGA.

      • [^] # Re: Les bases

        Posté par  . Évalué à 1 (+0/-0).

        L'intérêt est plus au niveau de la conception physique : on a moins de composants différents à assembler et produire. Un certain nombre de circuits intégrés mettent cela à profit aussi.
        Si on doit imaginer un tel langage, ça aura de l'intérêt dans ce contexte précis et non comme langage générique.

        • [^] # Re: Les bases

          Posté par  . Évalué à 3 (+1/-0). Dernière modification le 09/06/21 à 15:03.

          L'intérêt est plus au niveau de la conception physique

          Oui je connais très bien l'histoire.

          Mais c'était pour relever le "les puristes diront". Non, ce n'est pas une histoire de puriste. Jamais un puriste ne te dira que le OR ne sert à rien. Le fait qu'on puisse faire un OR (par exemple) avec des NAND (par exemple), n'enlève rien à l'intérêt du OR, voire même montre son intérêt (sinon on n'en parlerait même pas et on ne ferait que avec du NAND).

          Les fonctions de base de l'algèbre de Boole restent bien NOT, OR, XOR et AND, "puriste" ou pas.

          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

          • [^] # Re: Les bases

            Posté par  . Évalué à 2 (+1/-0).

            Alors nous sommes d'accord ; je n'avais pas bien compris le message initial.

  • # En cherchant un peu...

    Posté par  . Évalué à 2 (+1/-0).

  • # Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

    Posté par  . Évalué à 1 (+0/-0).

    L'algebre de Boole est une algèbre basée sur le binaire.

    Une équation booleenne S = (expression) peut être comparée à un énlément (une lampe, un contact) qui s'active (s'allume pour une lampe, se ferme pour un contact normalement fermé, ou s'ouvre pour un contact normalement ouvert). Pour l'explication on va considérer que S est une lampe :

    ---(S)---
    
    

    L'état de cette lampe peut être éteint (s=0) ou allumé (S=1).

    Représentation de S=0:

    les barres verticales représentent l'alimentation d'un montage électrique (mais on pourrait représenter ça avec des éléments pneumatiques, hydrauliques ou autre) La représentation peut se faire autrement mais celle que j'utilise est souvent utilisée sur des automates programmables (Ladder)

    Représentation de S=0 :

    |                             |
    |                       -(S)--|
    |                             |
    
    

    Il n'y a pas de contact entre les deux extrémités de ton alim donc ta lampe ne peut s'allumer

    Représentation de S=1 :

    |                             |
    |------------------------(S)--|
    |                             |
    
    

    Il y a un contact (un fil) entre les deux extrémités de ton alim, S est alimenté donc S=1 (si c'est une lampe elle s'allume);

    • [^] # Re: Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

      Posté par  . Évalué à 1 (+0/-0).

      Suite :

      Soit une variable a qui peut prendre 2 états (0 ou 1). Il s'agit d'un élément dont dépend ta sortie. On pourrait le représenter ainsi :

            a
      _____ \____ (on appelle ça un contact normalement ouvert)
      
      

      On peut aussi le représenter ainsi (ladder):

            a
      -----| |--------
      
      

      si a=0, le contact est "au repos", le circuit est ouvert.

      Si a= 1, le contact est fermé (tu appuies sur le bouton), le circuit est fermé.

      Ecrire S=a signifie que l'état de S est équivalent à l'état de A.

      Ca peut se représeter ainsi :

      |     a              |
      |____ \_______(S)____|
      |                    |
      
      

      si a = 0, s=0 (si c'est une lampe, elle est éteinte)
      Si a = 1, s= 1 (la lampe est allumée)

      Représentation cas ou a n'est pas actionné (contact ouvert)

      |     a              |
      |____ \_______(S)____|
      |                    |
      
      

      A est actionné (contact fermé, se comporte comme un fil), la lamper s'allume

      |     a              |
      |_____________(S)____|
      |                    |
      
      

      On pourrait écrire s=f(a) avec a ne pouvant prendre que deux valeurs, 0 ou 1.

    • [^] # Re: Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

      Posté par  . Évalué à 1 (+0/-0). Dernière modification le 10/06/21 à 14:58.

      Le post précédent parlait de la représentation de a, on va parler maintenant de son complément ( ā ) ou parfois représenté par /a ( on dit a barre).

         a
      ___/|____ (suppose que | et \ sont collés)
      
      

      En ladder :

      
      ---|/|----
      
      
      

      ā est ce qu'on appelle un contact "normalement fermé). Son état est "l'inverse" (on dit plutôt le complément) de a

      Si ā=0, le circuit est fermé (si tu pousses pas sur le bouton c équivalent à un fil)

      ā = 1, le circuit est ouvert (tu pousses sur le bouton, tu enleves le fil

           / 
      ____/  |_____
      
      
      

      Ecrire S=ā signifie que l'état de S est équivalent à l'état de ā, soit l'état complémentaire de a.

      Ca peut se représeter ainsi :

      |                    |
      |____/|_______(S)____|
      |                    |
      

      Si ā = 0 (on ne l'active pas), S=1 (si c'est une lampe, elle est allumée)
      Si ā = 1 (on l'active), s= 0 (la lampe est éteinte)

      cas ou a n'est pas actionné (fermé au repos, se comporte comme un fil)

      |     ā              |
      |_____________(S)____|
      |                    |
      

      A est actionné (contact ouvert, lampe éteinte)

            ā
      |     /                 |
      |____/  |________(S)____|
      |                       |
      

      Le prochain post expliquera pourquoi on parle de "complément"

      • [^] # Re: Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

        Posté par  . Évalué à 1 (+0/-0).

        Come indiqué précédemment, le complément de a est ā. Leur état est lié. a=0 au repos et ā=1 au repos. lorsque a change d'état, ā change également simultanément. a=1 lorsqu'il est actif et ā=0 lorsqu'il est actif.

        On pourrait représenter ça comme deux interrupteurs, l'un en état normalement ouvert et l'autre en état normalement fermé, et les deux sont déclench's par le même bouton :

        |      a                          |
        |-----| |---------------(S1)------|
        |      |                          |
        |      ā                          |
        |-----|/|---------------(S2)------|
        |      |                          |
               |
               Ū <- Bouton
        

        Ici on a deux expression : S1=a et S2=ā. a et ā sont liés entre eux. Au repos, S1 est éteint et S2 est allumé.
        En appuyant sur le "bouton", S2 s'allume et S1 s'éteint.

    • [^] # Re: Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

      Posté par  . Évalué à 1 (+0/-0). Dernière modification le 10/06/21 à 19:35.

      Operateur ET

      S=a.b

      Signifie que l'état de S dépend de l'état de a ET de l'état de B

      C'est comme si on avait deux interrupteurs en série pour allumer une lampe (note qu'en LADDER on parle plutôt de bobine mais le résultat est le même) :

      
      |      a            B                    |
      |-----| |----------| |-----------(S)-----|                                   
      |                                        |
      
      

      Quand tu observes, tu regarde que S est active (à 1) lorsque a est actif ET b est actif (a=1 et b=1).

      Si a n'est pas actif, et que b n'est pas actif, S n'est pas actif
      Si a n'est pas actif, et que b est actif, S n'est pas actif (on a toujours une coupure dans le circuit)
      Si a est actif, et que b n'est pas actif, S n'est pas actif (on a toujours une coupure dans le circuit)

      d'ou le nom d'operateur ET

    • [^] # Re: Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

      Posté par  . Évalué à 1 (+0/-0).

      operateur OU

      S=a+b signifie que l'état de S dépend de l'état de B Autrement dit, S est actif si A est actif OU b est actif.

      Ca peut se représenter par des interrupteurs en parallèle

      
      |     a
      |----| |----+                        |
      |           |                        |
      |           +-----------------(S)----|
      |     b     |                        |
      |----| |----+                        |
      
      

      Si a=O et B=0, la sortie n'est pas active (circuit ouvert)

      si a=0 et b=1, la sortie est active (fermeture de circuit en b)
      si a=1 et b=0, la sortie est active (fermeture de circuit en a)
      si a=1 et b=1, la sortie est active (fermeture de circuit en a et en b)

      On a bien donc une activation de l'état de sortie de S en fonction de a ou de B.

    • [^] # Re: Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

      Posté par  . Évalué à 1 (+0/-0).

      Table de vérité.

      On appelle table de vérité la table qui représente tous les états possible de l'expression.

      Par exemple pour ET

      S=a.b

      On crée un tableau qui relève tous les éléments de ton ou de tes expressions

      +---+---+---+
      | a | b | S |
      +---+---+---+
      
      

      Ensuite dans ce tableau, pour chaque éléments d'entrée, on positionne les états possibles Comme on a 2 éléments et que chaque élément peut prendre deux valeurs, ça donne ça :

      +---+---+---+
      | a | b | S |
      +---+---+---+
      | 0 | 0 |   |
      +---+---+---+
      | 0 | 1 |   |
      +---+---+---+
      | 1 | 0 |   |
      +---+---+---+
      | 1 | 1 |   |
      +---+---+---+
      

      Ensuite on écrit l'état de S en fonction de l'état des élé"ments dont il dépend. Pour l'operateur S=a.b ça donne :

      
      +---+---+---+
      | a | b | S |
      +---+---+---+
      | 0 | 0 | 0 |
      +---+---+---+
      | 0 | 1 | 0 |
      +---+---+---+
      | 1 | 0 | 0 |
      +---+---+---+
      | 1 | 1 | 1 |
      +---+---+---+
      
      

      pour OU, je laisse à titre d'exercice

      s=a+b

      +---+---+---+
      | a | b | S |
      +---+---+---+
      | 0 | 0 |   |
      +---+---+---+
      | 0 | 1 |   |
      +---+---+---+
      | 1 | 0 |   |
      +---+---+---+
      | 1 | 1 |   |
      +---+---+---+
      
    • [^] # Re: Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

      Posté par  . Évalué à 1 (+0/-0). Dernière modification le 10/06/21 à 20:01.

      Priorité des opérateurs.

      Comme enb algèbre classiques, les operateurs ont des priorités.

      L'opérateur ET est prioritaire sur l'opérateur OU.

      Par exemple :

      s=a.b+c signifie que l'état de la sortie est dépendant de l'état de a et de b, ou de l'état de C.

      Représentation :

      Si on veut que b+c soit prioritaire, on peut mettre des parenthèses. Ca donne :

      S=a.(b+c)

      Représentation :

      Essaie de générer la table de vérité de ces deux expressions.

      • [^] # Re: Ce qui m'a permis de comprendre l'algebre de boole, c'est du conctret.

        Posté par  . Évalué à 1 (+0/-0). Dernière modification le 10/06/21 à 20:05.

        Je poste les représentations ici (je me suis planté dans la représentation précédemment)

        Représentation de S=a.b+c

        
        |   a      b                |
        |--| |----| |---+----(S)----|
        |       c       |           |
        |------| |------+           |
        
        

        Représentation de S=a.(b+c)

        |   a       b                |
        |--| |--+--| |---+----(S)----|
        |       |        |           |
        |       |   c    |           |
        |       +--| |---+           |
        
        
  • # Si tu as compris mes posts précédents ....

    Posté par  . Évalué à 1 (+0/-0).

    je continuerai ensuite.

    J'ai volontairement splitté un peu mes réponses pour que tu puisses poser des questions.

    Je ne sais pas si la prochaine fois je vais parler de l'operateur NOT (c'est la fameuse barre qu'on trouve sur l'expression ā ou continuer par quelques petits exercices.

  • # Puisque personne ne l'a fait..:

    Posté par  . Évalué à 3 (+1/-0).

    Le mieux pour bien comprendre l'algèbre de bool, c'est de regarder tous ses films.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.