Schaltelemente BoolescheAlgebra Aussagenlogik Ubersetzungen¨ · PDF file 2020. 6....

Click here to load reader

  • date post

    18-Jan-2021
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Schaltelemente BoolescheAlgebra Aussagenlogik Ubersetzungen¨ · PDF file 2020. 6....

  • Schaltelemente

    Boolesche Algebra

    KV-Diagramm

    Aussagenlogik

    Logelei

    Aussagenlogik Übersetzungen

    Logelei Python

    Programm in PureBasic

    Logelei

  • ↑ Schaltelemente

    Und Konjunktion a und b

    & a b a ∧ b

    0 0 0

    0 1 0

    1 0 0

    1 1 1

    Oder Disjunktion a oder b

    ≥ 1 a b a ∨ b

    0 0 0

    0 1 1

    1 0 1

    1 1 1

    Negation nicht a

    1 bc

    a a

    0 1

    1 0

    Mit diesen elementaren Bauteilen lassen sich alle Computerschaltungen realisieren.

    ↑ c© Roolfs

    1

  • ↑ Gesetze der Booleschen Algebra

    Kommutativgesetze: a ∨ b = b ∨ a a ∧ b = b ∧ a

    Assoziativgesetze: (a ∨ b) ∨ c = a ∨ (b ∨ c) (a ∧ b) ∧ c = a ∧ (b ∧ c)

    Absorptionsgesetze: a ∨ (a ∧ b) = a a ∧ (a ∨ b) = a

    Distributivgesetze: a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c) a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)

    Idempotenzgesetze: a ∨ a = 1 a ∧ a = 0

    a ∨ a = a a ∧ a = a

    de Morgan-Gesetze: a ∨ b = a ∧ b a ∧ b = a ∨ b

    neutrale Elemente: a ∨ 0 = a a ∧ 1 = a

    doppelte Negation: a = a

    1. Zeige mit den Gesetzen der Booleschen Algebra die Gleichheit der Terme.

    a) (a ∧ b) ∨ (a ∧ b ∧ c) = a ∧ b b) (a ∨ b) ∧ (a ∨ b) ∧ (a ∨ b) ∧ (a ∨ b) = 0

    c) (a ∧ b ∨ c) ∧ (a ∨ b ∨ c) = a ∨ c d) a ∧ b ∨ c ∨ (a ∧ c) = a ∧ (b ∨ c)

    2. Gib für die booleschen Funktionen möglichst einfache Terme an.

    a) b) c) d) e) f)

    a b c t u v x y z

    0 0 0 1 0 1 1 ? 0

    0 0 1 0 0 1 1 0 ?

    0 1 0 1 1 0 0 1 ?

    0 1 1 0 1 0 ? 0 0

    1 0 0 0 0 1 0 1 0

    1 0 1 1 1 1 ? 0 0

    1 1 0 1 0 1 0 0 1

    1 1 1 1 1 0 1 ? 1

    ↑ c© Roolfs

    2

  • ↑ Boolesche Algebra

    Gib für die booleschen Funktionen möglichst einfache Terme an.

    a) b) c) d) e) f)

    a b c t u v x y z

    0 0 0 1 0 1 1 1 0

    0 0 1 0 0 1 1 0 0

    0 1 0 1 1 0 0 1 0

    0 1 1 0 1 0 0 0 0

    1 0 0 0 0 1 0 1 0

    1 0 1 1 1 1 1 0 0

    1 1 0 1 0 1 0 0 1

    1 1 1 1 1 0 1 0 1

    a) (a ∧ c) ∨ (a ∧ c) ∨ (b ∧ c)

    b) (a ∧ b) ∨ (a ∧ c)

    c) b ∨ (a ∧ c)

    d) (a ∧ b) ∨ (a ∧ c)

    e) (a ∧ c) ∨ (b ∧ c) = (a ∨ b) ∧ c

    f) a ∧ b

    ↑ c© Roolfs

    3

  • ↑ Boolesche Algebra

    a) PureBasic

    OpenConsole()

    For a= #False To #True

    For b= #False To #True

    For c= #False To #True

    PrintN(Str(a)+Str(b)+Str(c)+ “ “ +Str( ((Not c) Or a) And ( (Not a) Or b Or c) ) )

    Next c

    Next b

    Next a

    Input()

    b) Python

    for A in [False,True]:

    for B in [False,True]:

    for C in [False,True]:

    D1 = . . .

    D2 = . . .

    D3 = . . .

    print(int(A), int(B), int(C), “ “, int(D1 and D2 and D3))

    4

  • ↑ Boolesche Algebra

    Sei B = {0, 1} die Boolesche Menge, auf der folgende Verknüpfungen erklärt sind (x, y Boolesche Variablen):

    Addition x+ y = x ∨ y (= Max(x, y)) Beachte den Unterschied 1 + 1 = 1 zur Addition von Dualzahlen.

    Multiplikation x · y = x ∧ y (= Min(x, y))

    Das vereinfacht die Schreibweise Boolescher Terme, statt (a ∧ b) ∨ (a ∧ b ∧ c) ist ab+ abc möglich.

    Gib für die Booleschen Funktionen X, Y und Z einen Term an.

    a b c X Y Z

    0 0 0 0 0 0

    0 0 1 0 0 0

    0 1 0 1 1 1

    0 1 1 0 0 0

    1 0 0 0 0 0

    1 0 1 0 1 1

    1 1 0 0 0 1

    1 1 1 0 0 0

    X = abc

    Y = abc + abc

    Z = abc + abc + abc disjunktive Normalform

    Es sollte nun klar sein, dass zu jeder Booleschen Funktion ein zugehöriger Boolescher Term in disjunktiver Normalform ermittelt werden kann. Wir wollen der Frage nachgehen, wie dieser Term vereinfacht werden kann.

    ↑ c© Roolfs

    5

  • ↑ Karnaugh-Veitch-Diagramm 1952

    Betrachten wir die Boolesche Funktion:

    a b X

    0 0 1

    0 1 0

    1 0 0

    1 1 1

    Die Funktion X = ab+ ab kann mit einem Diagramm veranschaulicht werden.

    00 10

    01 11

    aa

    b

    b

    a wird für {(1, 0), (1, 1)} 1,

    b wird für {(0, 1), (1, 1)} 1,

    ab wird nur auf dem gemeinsamen Element (1, 1) 1.

    Die Randbeschriftungen markieren also die Bereiche, für die die elementaren Terme jeweils 1 werden.

    Wie lautet der Boolesche Term?

    a) aa

    b

    b

    b) aa

    b

    b

    c) Wie sieht das KV-Diagramm für den Term a+ b aus?

    ↑ c© Roolfs

    6

  • ↑ KV-Diagramm

    Betrachten wir die Boolesche Funktion:

    a b c X

    0 0 0 0

    0 0 1 1

    0 1 0 0

    0 1 1 1

    1 0 0 0

    1 0 1 1

    1 1 0 1

    1 1 1 0

    Das Karnaugh-Veitch-Diagramm muss aus 8 Feldern bestehen.

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b 000 001

    010 011

    101 100

    111 110

    Die Unterteilung ist so angelegt, dass sich benachbarte Felder lediglich um eine Stelle unterscheiden.

    Wie lautet der Boolesche Term?

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    a)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    b)

    ↑ c© Roolfs

    7

  • ↑ Idee des KV-Diagramms

    a b c X

    0 0 0 0

    0 0 1 1

    0 1 0 0

    0 1 1 0

    1 0 0 0

    1 0 1 1

    1 1 0 1

    1 1 1 0

    b c bc abc bc + abc

    1 0 0 0 0

    1 1 1 0 1

    0 0 0 0 0

    0 1 0 0 0

    1 0 0 0 0

    1 1 1 0 1

    0 0 0 1 1

    0 1 0 0 0

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b 000 001

    010 011

    101 100

    111 110 X = bc + abc

    Jede Boolesche Funktion (mit 3 Variablen) und damit jeder Term legt eine Teilmenge der Menge

    A = {(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)} fest, hier ist es

    B = {(0, 0, 1), (1, 0, 1), (1, 1, 0)}

    Auf dieser Teilmenge ist die Funktion (der Term) 1, sonst 0.

    Der Term b wird auf C = {(0, 0, 0), (0, 0, 1), (1, 0, 1), (1, 0, 0)} 1,

    der Term c auf D = {(0, 0, 1), (0, 1, 1), (1, 0, 1), (1, 1, 1)}.

    bc wird auf der Schnittmenge C ∩D = {(0, 0, 1), (1, 0, 1)} 1.

    abc wird auf der E = {(1, 1, 0)} 1, das ist die Schnittmenge der zu a, b und c gehörenden Teilmengen.

    Die Funktion X nimmt damit auf der Menge (C ∩D) ∪ E den Wert 1 an,

    der Funktionsterm lautet: bc + abc

    + bedeutet im KV-Diagramm die Vereinigung von Feldern,

    · die Bildung der Schnittmenge.

    ↑ c© Roolfs

    8

  • ↑ Mengenoperationen

    A ∪B Vereinigung

    A

    B

    A ∩B Schnitt

    A

    B

    ↑ c© Roolfs

    9

  • ↑ KV-Diagramm

    Wie lautet der Boolesche Term?

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    a)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    b)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    c)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    d)

    e) Wie sieht das KV-Diagramm für den Term (a+ c)b+ cb aus?

    ↑ c© Roolfs

    10

  • ↑ KV-Diagramm Vorlagen

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    a)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    b)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    c)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    d)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    e)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    f)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    g)

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    b

    b

    h)

    ↑ c© Roolfs

    11

  • ↑ KV-Diagramm

    Das Karnaugh-Veitch-Diagramm für 4 Variablen muss aus 16 Feldern bestehen.

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a

    c c

    

    

    b

    

    

    b

    d

    d 

    

    

    d

    Wie sieht das KV-Diagramm für den Term (a+ b)(c+ d) aus?

    ↑ c© Roolfs

    12

  • ↑ KV-Diagramm

    ︸ ︷︷ ︸

    c

    ︷ ︸︸ ︷ a

    ︷ ︸︸ ︷ a