Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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
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
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
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.
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}.
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
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}.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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í.
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
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
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
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
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
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
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)