Pravdivostní tabulka. Karnaughova mapa. Booleovské n...

44
Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky. Tomáš Bayer | [email protected] Katedra aplikované geoinformatiky a kartografie, Pˇ rírodov ˇ edecká fakulta UK. Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Pˇ Booleovská algebra. 1 / 44

Transcript of Pravdivostní tabulka. Karnaughova mapa. Booleovské n...

Page 1: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Booleovská algebra.Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle.

Základní zákony. Unární a binární funkce. Podmínky.

Tomáš Bayer | [email protected]

Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 1 / 44

Page 2: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Obsah prednášky

1 Booleovská funkce

2 Prehled unárních booleovských funkcí

3 Prehled binárních booleovských funkcí

4 Základní zákonitosti pri práci s Booleovskými funkcemi

5 Stavební prvky algoritmu

6 Blok príkazu

7 Podmínený príkaz

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 2 / 44

Page 3: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Booleovská funkce

1. Úvod

Spojité veliciny:Promenné veliciny, které nabývají “nekonecného” množství hodnot.Lze je popsat spojitými promennými a vyjádrit reálnými datovými typy.

Diskrétní veliciny:Promenné veliciny, které nabývají konecného množství hodnot.Lze je popsat diskrétními promennými a vyjádrit celocíselnýmidatovými typy.

Booleovská algebra:Promenné veliciny nabývají hodnot 0,1.Hodnotu 0 lze interpretovat jako nepravda, hodnotu 1 jako pravda.V informatice hraje velmi výraznou roli pri konstrukci relací.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 3 / 44

Page 4: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

2. Booleovská funkceBooleovská funkce n promenných je libovolná funkce f : Bn → B, B = {0, 1}. Zapisujeme y = f (x1, ..., xn), kde xi ,i = 1, ..., n, jsou Booleovské promenné.

Nejcastejší používané varianty:

n = 1, unárníJednoprvková Booleovská algebra, B1.Napr. f (x1): f (0) = 1, f (1) = 0.

n = 2, binárníDvouprvková Booleovská algebra, B2.Napr. f (x1, x2) : f (0, 0) = f (1, 1) = 0, f (0, 1) = f (1, 0) = 1.

n = 3, ternárníTríprvková Booleovská algebra, B3.

Príklady:

B1 = {0, 1},

B2 = {0, 1}2 = {0, 1} × {0, 1} = {{0, 0}, {0, 1}, {1, 0}, {1, 1}},......

Bn = {0, 1}n = {0, 1} × {0, 1} × ...× {0, 1} = {{0, ..., 0}, {0, ..., 1}, ..., {0, ..., 0}, {0, ..., 1}}.

Pocet prvku (usporádaných entic): k = 2n.

Pocet Booleovských funkcí f :m = 2k = 22n.

Znázornení:

Pravdivostní tabulka,

Karnaughova mapa,

Booleovská n-krychle.

Page 5: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

3. Základní pojmyMinterm: log. soucin n promenných, napr. m = x1 · x ′2 · x3 = 1.Maxterm: log. soucet n promenných, napr. M = x ′1 + x2 + x ′3 = 0.

Mi = m′i = (x1 · ... · xn)′ = x ′1 + ...+ x ′n.

Souctový tvar (SoMi), castejší:

y = f (x1, ..., xn) =

2n−1∑i=1

yi mi =

2n−1∑j:yj=1

mj .

Soucinový tvar (PoMa):

y = f (x1, ..., xn) =

2n−1∏i=1

(yi + Mi ) =

2n−1∏j:yj=0

Mj .

On-set: množina všech mintermu mapovaných na 1

f 1 = {xi ∈ Bn|f (xi ) = 1}.

Off-set: množina všech mintermu mapovaných na 0

f 0 = {xi ∈ Bn|f (xi ) = 0}.

Page 6: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Booleovská funkce

4. Pravdivostní tabulka: B1 − B3

Schematické znázornení prvku a funkcních hodnot.

Sousední prvky se liší práve o 1 hodnotu.

Použitelné pro n ≤ 5, pak neefektivní.

x1 y = f (x1)

x ′1 f1

x1 f2

x1 x2 y = f (x1, x2)

x ′1 x ′2 f1

x ′1 x2 f2

x1 x ′2 f3

x1 x2 f4

x1 x2 x3 y = f (x1, x2, x3)

x ′1 x ′2 x ′3 f1

x ′1 x ′2 x3 f2

x ′1 x2 x ′3 f3

x ′1 x2 x3 f4

x1 x ′2 x ′3 f5

x1 x ′2 x3 f6

x1 x2 x ′3 f7

x1 x2 x3 f8

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 6 / 44

Page 7: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

5. Ukázka souctového/soucinového tvaruFunkce y = f (x1, x2) daná tabulkou (disjunkce):

x1 x2 y mj Mj

0 0 0 m1 M1

0 1 1 m2 M2

1 0 1 m3 M3

1 1 1 m4 M4

Souctový tvar:

y = 0 · m1 + 1 · m2 + 1 · m3 + 1 · m´4,

= m2 + m3 + m4,

=∑

(2, 3, 4),

= x′1 · x2 + x1 · x′

2 + x1 · x2..

Soucinový tvar:

y = (0 + M1)(1 + M2)(1 + M3)(1 + M4),

= M1,

=∏

(1),

= x1 + x2.

On/off set:f 1 = {{0, 1}, {1, 0}, {11}}, f 0 = {0, 1}.

Page 8: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

6. Karnaughova mapa: B1 − B3

Efektivnejší reprezentace Booleovské funkce.

Lze ji chápat jako speciální usporádání pravdivostní tabulky.

“Indexy“ po hranách lze interpretovat jako souradnice.

B1 : vektor, B2 : matice, B3 : “projekce” krychle.

Sousední prvky v obou smerech se liší práve o 1 hodnotu.

Lze použít pro minimalizaci výrazu bez znalosti booleovské algebry.

x ′1 x1

x2

0 1

0 x ′1x ′2 x ′1x2

x1 1 x1x ′2 x1x2

x3

00 01 11 10

0 x ′1x ′2x ′3 x ′1x ′2x3 x ′1x2x3 x ′1x2x ′3x1 1 x1x ′2x ′3 x1x ′2x3 x1x2x3 x1x2x ′3

x2

Pro dimenze n > 4 komplikované.

x1

x3

x2

x1

x2

Page 9: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Booleovská funkce

7. Booleovské n-krychle: B1 − B3

Grafická reprezentace.Každou booleovskou fci v Bn lze znázornit n rozmernou krychlí.Vrcholy predstavují mintermy (∧).Každá m-podkrychle tvorena 2m mintermy, m < n.Hrany spojují prvky lišící se o 1.

x1

x2

x1

x3

x2

x1

(x‘ · x‘ · x‘ )2 31

(x · x‘ · x‘ )2 31

(x · x · x‘ )2 312 31

(x‘ · x‘ · x )2 31

2 31(x , x

, x )2 31

2 31

(x‘ · x‘ )21 (x · x‘

)21

(x · x )21(x‘ · x

)21

(x‘ )1(x )1

(x‘ · x · x )

(x · x‘ · x )

(x‘ · x · x‘ )

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 9 / 44

Page 10: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Booleovská funkce

8. Ukázka: B2

Funkce:

y = f (x1, x2) = x ′1x2 + x2.

Reprezentace tabulkou, Karnaughovou mapou a n-krychlemi.

x1 x2 y x1/x2 0 1

00 10

01 11

0 0 0 0 0 10 1 1 1 0 11 0 01 1 1

Svetlý uzel: 1.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 10 / 44

Page 11: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

9. Ukázka: B3

Funkce:

y = f (x1, x2, x3) = x ′1x2 + x1x ′

3 + x2x ′3.

Reprezentace tabulkou, Karnaughovou mapou a n-krychlemi.

x1 x2 x3 y

0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 1

x1/x2x3 00 01 11 10

0 0 0 1 01 0 0 1 0

000 100

010 110

001 101

011 111

Page 12: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled unárních booleovských funkcí

10. Unární booleovská funkceUnární booleovská funkce pracuje pouze s jednou promennou

f (x) : B1 → B, x = x1

Definicní obor unární funkce dán 21 hodnotami.Existuje 221

unárních booleovských funkcí.

x1 f1(x1) f2(x1) f3(x1) f4(x1)

0 0 1 0 1

1 0 0 1 1

Prehled unárních booleovských funkcí:

Falsum.Negace.Aserce.Verum.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 12 / 44

Page 13: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled unárních booleovských funkcí

11. Falsum

Funkci y = f1(x) nazýváme falsum, jestliže platí

f1(x1)→ {0}.

Tato funkce libovolné hodnote x prirazuje hodnotu nepravda.

Pravdivostní tabulka funkce f1(x):

x f1(x)

0 01 0

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 13 / 44

Page 14: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled unárních booleovských funkcí

10. Negace

Funkci y = f2(x) nazýváme negací, jestliže platí

f2(x1) =

{1, pro x1 = 0,0, pro x1 = 1.

.

Negace je nejznámejší a nejcasteji používanou unární funkcí.Prirazuje hodnote f (x1) opacnou hodnotu promenné x1.Oznacení negace: x1.Hodnota x1je doplnkem (complement) k x1 (a naopak).

Pravdivostní tabulka negace:

x f1(x)

0 11 0

V programovacích jazycích odvozených od jazyka C bývá negaceoznacována symbolem !.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 14 / 44

Page 15: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled unárních booleovských funkcí

13. Aserce

Funkci y = f3(x) nazýváme asercí, jestliže platí

f3(x1) =

{1, pro (x1) = 1,0, pro (x1) = 0.

.

Aserce prirazuje hodnote f (x1) hodnotu promenné x1.

Pravdivostní tabulka aserce:

x f1(x)

0 01 1

Tato funkce se v praxi príliš nepoužívá.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 15 / 44

Page 16: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled unárních booleovských funkcí

14. Verum

Funkci y = f4(x) nazýváme verum, jestliže platí

f4(x1)→ {1}.

Tato funkce libovolné hodnote x1 prirazuje hodnotu True.

Pravdivostní tabulka verum:

x f1(x)

0 11 1

Tato funkce se v praxi príliš nepoužívá.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 16 / 44

Page 17: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled binárních booleovských funkcí

15. Binární booleovská funkceUnární booleovská funkce pracuje pouze s dvema promennými

f (x) : B2 → B, x = {x1, x2}

Definicní obor binární funkce dán 22 hodnotami.Existuje 2212

= 16 binárních booleovských funkcí.

Nejcasteji používané booleovské binární funkce:

Konjunkce.Disjunkce.Negace konjunkce.Negace disjunkce.Ekvivalence.Nonekvivalence.Implikace.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 17 / 44

Page 18: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled binárních booleovských funkcí

16. Prehled Booleovských funkcí v B2

x1 x2 f1 f2 f3 f4 f5 f6 f7 f80 0 0 0 0 0 0 0 0 00 1 0 0 0 0 1 1 1 11 0 0 0 1 1 0 0 1 11 1 0 1 0 1 0 1 0 1

x1 x2 f9 f10 f11 f12 f13 f14 f15 f160 0 1 1 1 1 1 1 1 10 1 0 0 0 0 1 1 1 11 0 0 0 1 1 0 0 1 11 1 0 1 0 1 0 1 0 1

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 18 / 44

Page 19: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled binárních booleovských funkcí

17. Konjunkce

Konjunkcí neboli “logickým soucinem” nazýváme takovou funkci fpopsanou následující pravdivostní tabulkou:

x1 x2 f (x1, x2)

0 0 00 1 01 0 01 1 1

Funkcní hodnota je rovna jedné pouze v prípade, kdy jsou oba vstupníargumenty x1, x2 rovny jedné.Logický soucin oznacujeme znakem ∧, zápis a ∧ b cteme jako “a i b”.Pro vyjádrení konjunkce používáme logickou spojku AND.

V programovacích jazycích odvozených od jazyka C bývá konjunkceoznacována symbolem &&.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 19 / 44

Page 20: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled binárních booleovských funkcí

18. Disjunkce

Disjunkcí neboli “logickým souctem” nazýváme takovou funkci fpopsanou následující pravdivostní tabulkou:

x1 x2 f (x1, x2)

0 0 00 1 11 0 11 1 1

Poslední rádkem tabulky se disjunkce liší od “obycejného” souctu.

Funkcní hodnota je rovna nule pouze v prípade, kdy jsou oba vstupníargumenty x1, x2 rovny nule.Logický soucet oznacujeme znakem +, zápis a + b cteme jako “a nebo

b”.Pro vyjádrení disjunkce používáme logickou spojku OR.

V programovacích jazycích odvozených od jazyka C bývá disjunkceoznacována symbolem ||.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 20 / 44

Page 21: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled binárních booleovských funkcí

19. Negace konjunkce

Negaci logického soucinu nazýváme takovou funkci f popsanounásledující pravdivostní tabulkou.

x1 x2 f (x1, x2)

0 0 10 1 11 0 11 1 0

Funkcní hodnota nabývá jedné v prípade, kdy oba argumenty x1, x2nejsou rovny jedné.Tuto funkci nazýváme Shefferovou funkcí .

Pro její vyjádrení používáme logickou spojku NAND.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 21 / 44

Page 22: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled binárních booleovských funkcí

20. Negace disjunkce

Negaci logického souctu nazýváme takovou funkci f popsanounásledující pravdivostní tabulkou:

x1 x2 f (x1, x2)

0 0 10 1 01 0 01 1 0

Funkcní hodnota nabývá jedné v prípade, kdy oba argumenty x1, x2nejsou jsou rovny nule.Tuto funkci nazýváme Pierceovou funkcí .

Pro její vyjádrení používáme logickou spojku NOR.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 22 / 44

Page 23: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled binárních booleovských funkcí

21. Nonekvivalence

Nonekvivalencí nazýváme takovou funkci f popsanou následujícípravdivostní tabulkou:

x1 x2 f (x1, x2)

0 0 00 1 11 0 11 1 0

Funkce je analogií scítání, oznacujeme ji znakem ⊕.Její hodnota je pravdivá pokud se oba argumenty x1, x2 liší.

Pro její vyjádrení používáme XOR=”eXlucive OR”.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 23 / 44

Page 24: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Prehled binárních booleovských funkcí

22. Implikace

Implikací nazýváme takovou funkci f popsanou následujícípravdivostní tabulkou:

x1 x2 f (x1, x2)

0 0 10 1 11 0 01 1 1

U implikace je duležité poradí argumentu x1, x2, x1 je p°edpoklad a x2je tvrzení.

Lze interpretovat jako “Jestliže platí x1, pak platí x2”.Funkcní hodnota nabývá False, pokud je první výrok pravdivý a druhýnepravdivý.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 24 / 44

Page 25: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

23. Priorita booleovských operací

Udává, v jakém poradí jsou jednotlivé booleovské operace provádeny.Analogie s bežnými aritmetickými operacemi.Vyhodnocování výrazu z leva do prava.

Pravidlo priority operací:Pravidlo priority operací platí následujícím zpusobem:

1 Negace.2 Konjunkce.3 Disjunkce.

Zmena priorit operací:Poradí vyhodnocování booleovských operací lze zmenitprostrednictvím závorek.

Príklad: platí následující ekvivalence?:f (x , y , z) : x · (y + z · x) = (x · y) + z · x . Neplatí.f (x , y , z) : (x · y) + (z · x) = x · y + z · x . Platí.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 25 / 44

Page 26: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

24. Booleovské unární zákonyZákon dvojí negace: (

x ′)′

= x (1)Zákon vyloucení tretí možnosti:

x ′ + x = 1 (2)Zákon sporu:

x ′ · x = 0 (3)Zákony opakování (idempotence):

x + x = x (4)

x · x = x (5)

Zákony neutrálnosti:

x + 0 = x (6)

x · 1 = x (7)

Zákony agresivnosti:

x + 1 = 1 (8)

x · 0 = 0 (9)

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 26 / 44

Page 27: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

25. Booleovské binární zákony (1/2)

Komutativní zákony:

x1 + x2 = x2 + x1 (10)x1 · x2 = x2 · x1 (11)

Asociativní zákony:

x1 + (x2 + x3) = (x1 + x2) + x3 (12)x1 · (x2 · x3) = (x1 · x2) · x3 (13)

Distributivní zákony:

x1 · (x2 + x3) = x1 · x2 + x1 · x3 (14)x1 + (x2 · x3 = (x1 + x2) · (x1 + x3) (15)

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 27 / 44

Page 28: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

26. Booleovské binární zákony (2/2)

De Morganovy zákony:

(x1 + x2)′ = x ′1 · x ′2 (16)

(x1 · x2)′ = x ′1 + x ′2 (17)

Adsorpcní zákony:

x1 + (x1 · x2) = x1 (18)x1 · (x1 + x2) = x1 (19)

Zákony adsorpce negace:

x1 + (x ′1 · x2) = x1 + x2 (20)x1 · (x ′1 + x2) = x1 · x2 (21)

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 28 / 44

Page 29: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

27. Minimalizace Booleovské funkceVycházíme z Boolevských zákonu nebo používáme KM.Dva výrazy v SOM se liší v 1 promenné v prímém/komplementárním tvaru

y = a · f (x) + a′ · f (x), .= f (x) · (a + a′),

= f (x), tzv. Uniting Theorem.

Dva výrazy v POS se liší v 1 promenné v prímém/komplementárním tvaru

y = (a + f (x)) · (a′ + f (x))

= a · a′ + a · f (x) + a′ · f (x) + f (x) · f (x),= 0 + f (x) + f (x),

= f (x).

Vede k Shannon Expansion Theoremu

f (x1, x2, ..., xn) = x1 · f (1, x2, ..., xn) + x ′1 · f (0, x2, ..., xn),

= x1 · g(x2, ..., xn) + x ′1 · h(x2, ..., xn).

Dusledek:Každou Booleovskou funkci lze vyjádrit prostrednictvím konjunkce, disjunkce, negace.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 29 / 44

Page 30: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

28. PríkladySoucet sousedních mintermu (UT):

y = f (x1, x2, x3) = m1 + m2,

= x ′1 · x ′2 · x ′3 + x1 · x ′2 · x ′3,= x ′2 · x ′3.

Vyjádrení maxtermu:

M1 = (x ′1 + x2 + x3) · (x ′1 + x2 + x ′3),

= x ′1 + x2.

Minimalizace Boleovské funkce v B2 :

y = f (x1, x2) = [(x1 · x2)′ + (x1 · x2)]

′ + x1,

= [(x1 · x2)′]′ · (x1 · x2)

′ + x1 ‖ (18),

= (x1 · x2) · (x1 · x2)′ + x1 ‖ (2),

= 0 + x1 ‖ (4),= x1.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 30 / 44

Page 31: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

29. Minimalizace f s využitím Karnaughových map

Efektivní zpusob minimalizace Booleovských funkcí.

Využití UT⇒ sousední mintermy v K-M se liší v 1 promenné.

Použitelné zpravidla pro n < 5.

Výpocetne:

Hledáme sousedy xj±1,k±1 k xj,k v K-M, kde f (xj±1,k±1) = 1 (n-tice).

Na sousedy aplikován UT.

Graficky:

Hledáme, zda každá N-tice sousedu leží celá v xi , nebo v doplnku x i .

Zajímá nás pouze vodorovný/svislý smer, ne úhloprícky.

Vyjádrení s využitím SOMi.

Pokud je vetšina prvku v K-M nenulová, lze pracovat s inverzní variantou K-M.

Zjednodušení lze provést i bez znalostí Booleovských zákonu.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 31 / 44

Page 32: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

30. Ukázka zjednodušení funkce (1/2)Dána funkce

f (x1, x2, x3) =∑

(2,4,6),

= x ′1 · x ′2 · x3︸ ︷︷ ︸1

+ x ′1 · x2 · x3︸ ︷︷ ︸1

+ x1 · x ′2 · x3︸ ︷︷ ︸1

.

00 01 11 10

0

1

0

x1

x2x

3

1 01

0 1 0 0

00 01 11 10

0

1

0

x1

x2x

3

1 01

0 1 0 0

00 01 11 10

0

1

0

x1

x2x

3

1 01

0 1 0 0

00 01 11 10

0

1

0

x1

x2x

3

1 01

0 1 0 0

00 01 11 10

0

1

0

x1

x2x

3

1 01

0 1 0 0

x1

x3

x3

x2

f1 = x

1• x

2• x

3 + x

1• x

2• x

3

= x

1• x

3

f2 = x

1• x

2• x

3 + x

1• x

2• x

3

= x

2• x

3

f1 = x

1• x

3f

2 = x

2• x

3

Page 33: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

31. Ukázka zjednodušení funkce (2/2)Císelne:První n-tice

f1(x1, x2, x3) = x ′1 · x′2 · x3 + x ′1 · x2 · x3,

= x ′1 · x3.

Druhá n-tice

f2(x1, x2, x3) = x ′1 · x′2 · x3 + x1 · x ′2 · x3,

= x ′2 · x3.

Pak

f (x1, x2, x3) = f1(x1, x2, x3) + f2(x1, x2, x3),

= x ′1 · x3 + x2 · x ′3.

Graficky:První n-tice: vne x1 (v x ′1), uvnitr x3, protíná x2 (neuplatní se):

f1(x1, x2, x3) = x ′1 · x3.

Druhá n-tice: protíná x1 (neuplatní se), vne x2(v x ′2), uvnitr x3:

f2(x1, x2, x3) = x ′2 · x3.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 33 / 44

Page 34: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

32. Tautologie, kontradikce, ekvivalence

Tautologief 1 = Bn,⇒ f 0 = ∅.

Kontradikcef 0 = Bn,⇒ f 1 = ∅.

Splnitelnostf 0 6= Bn.

Ekvivalence f ,gf (x) = g(x), ∀x ∈ Bn.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 34 / 44

Page 35: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

33. Tautologie

Predstavuje booleovskou formuli, která je vždy pravdivá.

Pro libovolnou kombinaci argumentu nabývá hodnoty pravda.Unárních / binární zákony predstavují tautologie.

Tautologie používány pri posuzování identity vztahu, dukazech, atd.Nejjednodušší tautologie: zákon dvojí negace

(x ′)′ = x .

Pri navrhování podmínek v cyklu/rekurze se vyhýbejme tautologiím.Jinak vzniknou nekonecný cyklus ci nekonecná rekurze.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 35 / 44

Page 36: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Základní zákonitosti pri práci s Booleovskými funkcemi

34. Kontradikce

Booleovskou funkce, která je vždy nepravdivá.

Pro libovolnou kombinaci argumentu nabývá hodnoty nepravda.Kontradikce je negací tautologie, tautologie je negací kontradikce.

Jednoduchá kontradikce: zákon sporu

x ′ · x = 0.

Pri navrhování podmínek v cyklu/rekurze se vyhýbejme kontradikcím.Jinak vzniknou nekonecný cyklus ci nekonecná rekurze.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 36 / 44

Page 37: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

35. Príklad

Overte, zda f (x) je tautologie/kontradikce:

f (x) = x · (x + (x + x ′))′,

= x · (x + 1)′ ‖ 3,

= x · (1′) ‖ 9,

= x · 0 ‖ 10,

= 0.

Funkce f (x) je kontradikcí.

Overte, zda f (x1, x2) je tautologie/kontradikce:

f (x1, x2) =[((x1 · x2) + x1)

′ · (x1 · (x2 + x1)]′,

=[((x1 · x2) + x1)

′ · (x1)]′ ‖ 20,

= (x ′1 · x1)′ ‖ 19,

= 0′ ‖ 4,

= 1.

Funkce f (x1, x2) je tautologií.

Page 38: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Stavební prvky algoritmu

36. Stavební prvky programu

Základní stavební prvky programu: príkazy.

Delení príkazu:

Jednoduché príkazyZákladní stavební jednotka programu, neobsahují další príkazy.Prirazovací príkaz, prázdný príkaz, príkaz skoku, príkazpodprogramu (procedury, funkce).Strukturované príkazyTvoreny jednoduchými ci dalšími príkazy.Složený príkaz (blok), príkaz pro vetvení programu (podmínka),príkaz pro opakování (cyklus).

Umožnují realizovat více operací nad datovými položkami.

Vzájemne mohou být kombinovány.

Implementovány prakticky ve všech programovacích jazycích.Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 38 / 44

Page 39: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Blok príkazu

37. Blok príkazu

Používají se v prípadech, kdy je nutno provádet více akcí.Posloupnost kroku, které jsou provádeny postupne v zadaném poradí.Jednotlivé kroky mohu/nemusí být elementární.

Oznacován jako složený príkaz.V Pythonu uvozen : odsazení tabelátorem, uvnitr libovolný pocet príkazu.V jiných jazycích (C/C++/Java) použity {}.

if x < 0: # Nasleduje blok

a = 10

b = 2.0 * a;

c = a * a + b * b;

print (c) #Ackoliv promenna deklarovana v bloku,

#lze ji pouzit i jinde

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 39 / 44

Page 40: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Podmínený príkaz

38. Príkazy pro vetvení programu

Príkazy pro vetvení bývají casto oznacovány jako tzv. rídící struktury.Patrí k nejcasteji používaným konstrukcím.

Ovlivnují, které príkazy budou provedeny v závislosti na hodnotáchbooleovských výrazu.Bývají proto nazývány podmínenými príkazy.

Realizují vetvení algoritmu, reagují na situace, ke kterým dochází vprubehu zpracování programu.O tom, která z vetví se bude provádet, rozhoduje pravdivostní hodnotapodmínky.

Typy podmínek:

neúplná podmínka.úplná podmínka.

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 40 / 44

Page 41: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Podmínený príkaz

39. Neúplná podmínka

Pokud výraz nabývá pravdivé hodnoty, provede se príkaz resp. blok príkazu.

Nereší, co se bude delat v prípade nesplnení podmínky.

if booleovsky_vyraz:

prikaz1

prikaz2

...

Pokud je to možné, podmínky neuvádíme v negaci, ale v “kladné” forme.

Príklady:

if x > 0:

x += 10

Vnorená podmínka: podmínka uvnitr tela jiné podmínky

if x < 0:

if y > 0:

x -= 10 #Vnorena podminka

if (x < 0) & (y > 0): #Spojeni obou podminek do jedne

x -= 10

Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 41 / 44

Page 42: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

40. Úplná podmínkaÚplná podmínka vznikne rozšírením neúplné podmínky o konstrukci else.Blok vykonán, pokud podmínka nebude splnena.Else se páruje s nejbližším if.

if booleovsky_vyraz:

prikaz1

prikaz2

...

else:

prikaz3

prikaz4

...

Príklad 1: Ukázka úplné podmínky

if x > 0:

x += 10

else:

x -= 10

Príklad 2: Párování else k nejbližšímu if

if x > 0: #Neuplna podminka

x += 10

if x > 100: #Uplna podminka

x *= 10

else: #else se paruje s nejblizsim if

x -= 10

Page 43: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

Podmínený príkaz

41. Kombinace více podmínekPro kombinaci více podmínek používán príkaz elif.Umožnuje realizovat složitejší vetvení (>2 varianty)

if booleovsky_vyraz1:

prikaz1

prikaz2

...

elif booleovsky_vyraz2:

prikaz3

prikaz4

...

elif booleovsky_vyraz3:

prikaz5

prikaz6

...

else:

prikaz7

prikaz8

...Tomáš Bayer | [email protected] (Katedra aplikované geoinformatiky a kartografie, Prírodovedecká fakulta UK.)Booleovská algebra. 43 / 44

Page 44: Pravdivostní tabulka. Karnaughova mapa. Booleovské n ...bayertom/images/courses/Prog1/programovani... · Booleovská funkce 1. Úvod Spojité veliciny:ˇ Promenné veliˇ ciny,

42. Príklad: kvadratická rovnice

import math

from math import sqrt

a = int(input("a: ")) #Standardni vstup

b = int(input("b: "))

c = int(input("c: "))

D = b * b - 4. * a * c #Diskriminant

if D < 0: #0 reseni

print ("Nema reseni v R.")

elif D == 0: #1 reseni

x = (-b + sqrt(D))/(2. * a)

print ("Dvojnasobny koren: ", x)

else: #2 reseni

x1 = (-b - sqrt(D))/(2. * a)

x2 = (-b + sqrt(D))/(2. * a)

print ("Dva koreny: ", x1, " a", x2)