5. Logické operácie

Logické hodnoty:

  • True = pravda = logická 1
  • False = nepravda = logická 0

Príklad 1: Výrok "v januári mrzne" má logickú hodnotu "pravda".

Základné logické funkcie:

  • AND = a zároveň - musia byť splnené všetky podmienky
  • OR = alebo - stačí aby bola splnená aspoň jedna podmienka
  • NOT = negácia = opak - opačná hodnota

Príklady:

  • AND - Pri horení je potrebné palivo a vzduch./li>
  • OR - Kúriť možno plynom alebo elektrinou.
  • NOT - Dnes je slnečné počasie a zajtra bude opak, zamračené.

Zápis logických operácií:

  • logický súčet: AND, "+", "∨"
  • logický súčin: OR, "." , "x" , "∧"
  • negácia: NOT, čiara nad premennou, apostrof, znak mínus "-"

Odvodené logické funkcie:

  • XOR - exkluzívna disjunkcia = nezhoda = buď alebo. Porovnáva unikátnosť hodnoty každého vstupu: a XOR b = a.b´ + a´.b
  • EQ - ekvivalencia = zhoda. a EQ b = ab + a´b´= (a + b´) . (a´+ b)

Príklady:

  • XOR - Na výlet pôjdeme buď na turisitiku do hôr, alebo k vodnej nádrži.
  • EQ - Na idúcom aute majú byť zapnuté obrysové aj stretávacie svetlá, alebo žiadne z nich.

Pravdivostné tabuľky funkcií obsahujú všetky kombinácie stavov premenných:

Úlohu: Napíšte logickú rovnicu pre stavbu snehuliaka. Snehuliak sa stavia (Q) ak je sneh (A), a je teplo (B) alebo svieti slnko (C).

Q = A AND (B OR C)

Q = A . (B + C)

Zápis logického výrazu z tabuľky hodnôt:

  1. Súčinova metóda: Z tabuľky zvolíme riadky s výslednou hodnotou 1. Premenné v riadku zapíšeme ako logický súčin, pričom premenné ktoré majú hodnotu 0 sa zapíšu ako negácia. Jednotlivé riadky zapíšeme ako logický súčet.
  2. Súčtová metóda: Z pravdivostní tabulky sa vyberú riadky, ktoré majú výsledek operácie rovný logickej nule. Z vybraných riadkov sa vytvoria logické súčty. Ak je premenná rovna 1, tak sa neguje. Ak je logická premenná rovná 0, neneguje sa.

Úloha: Napíšte logickú rovnicu z pravdivostnej tabuľky pre stavbu snehuliaka:

Použijeme metódu ktorá dáva jednoduchšiu rovnicu, v tomto prípade súčinovú:
Q = (´A . B . C) + (A . ´B . C)

Minimalizácia logického výrazu sa dá robiť pomocou

  1. Booleova algebra – vhodná pre jednoduché funkcie a učnú úpravu, https://is.muni.cz/th/322248/pedf_b/Booleova_algebra.pdf .
  2. Karnaughove mapy – pre ručnú úpravu, vhodné pre max. 3 premenné, https://sk.wikipedia.org/wiki/Karnaughova_mapa
  3. Quineova metóda - pre počítačové riešenie, pre max 4 premenné, https://en.wikipedia.org/wiki/Quine%E2%80%93McCluskey_algorithm
  4. Heuristické metódy - pre počítače a veľa premenných, program https://en.wikipedia.org/wiki/Espresso_heuristic_logic_minimizer

Booleova algebra zovšeobecňuje vlastnosti množinových a logických operácií, pre ktoré sú definované axiómy (základné vety):

  • komutativita: A + B = B + A
  • distributivita:
    A + (B x C) = (A + B) x (A + C)
    A x (B + C) = (A x B) + (A x C)
  • neutralita:
    A + 0 = A
    A x 1 = A
  • komplementarita
    A + -A = 1
    A x -A = 0

Platí:

  • asociativita:
    (A + B) + C = A + (B + C)
    (A x B) x C = A x (B x C)
  • absorpcia:
    A + (A x C) = A
    A x (A + B) = A
  • agresivita nuly: A x 0 = 0
  • agresivita jednotky: A + 1 = 1
  • idempotencia:
    A + A = A
    A x A = A
  • absorpcia negácie:
    A + (−A x B) = A + B
    A x (−A + B) = A x B
  • dvojitá negácia: −(−A) = A
  • De Morganove zákony:
    −A x −B = −(A + B)
    −A + −B = −(A x B)
  • 0 a 1 sú vzájomne komplementárne:
    −0 = 1
    −1 = 0

Príklady na zjednodušenie:

  1. a.(b+c) + ac = ab + ac + ac = ab + ac = a(b+c)
  2. ab + ac + ac´ = ab + a.(c + c´) = ab + a.(1) = ab + a = a(b + 1) = a
  3. stavba snehuliaka: Q = (-A x B x C) + (A x -B x C) = C x (-A x B + A x -B)

Karnaughova mapa - V tabuľke sú výsledky, v hlavičke sú úseky pre hodnoty 0 a 1 pre jednotlivé premenné. Pre stavbu snehuliaka môže vyzerať takto:

Z tejto tabuľky vyčítame minimálnu funkciu. Q = C x (-A x B + A x -B)

PrílohaVeľkosť
LogickaTabulkaFunkcia.PNG8.17 KB
LogickaTabulkaFunkcia.PNG6.92 KB
LogickaTabulkaFunkcia.PNG9.12 KB
LogickaTabulkaFunkcia.PNG9.24 KB
LogikaStaviameSnehuliaka.PNG4.78 KB
LogFunkcieTabulky.PNG4.7 KB
KarnaughSnehuliak.PNG1.59 KB