KATEDRA INFORMATIKY ˇ I´RODOVEˇDECKA ´ FAKULTA PR UNIVERZITA PALACKE´HO
DISKRE´TNI´ MATEMATIKA PRO INFORMATIKY I ´ VEK, VILE´M VYCHODIL RADIM BEˇLOHLA
´N VY´VOJ TOHOTO UCˇEBNI´HO TEXTU JE SPOLUFINANCOVA ´ LNI´M FONDEM A STA ´ TNI´M ROZPOCˇTEM CˇESKE´ REPUBLIKY EVROPSKY´M SOCIA
Olomouc 2006
Abstrakt
Text je u´vodem do vybrany´ch partiı´ diskre´tnı´ matematiky a souvisejı´cı´ch oblastı´. Postupneˇ seznamuje cˇtena´rˇe s u´vodem do logiky, mnozˇin, relacı´ a funkcı´, kombinatorikou, teoriı´ grafu˚ a vybrany´mi pokrocˇilejsˇ´ımi partiemi z teorie relacı´ a logiky. Text je psa´n matematicky´m stylem, tj. nove´ pojmy jsou definova´ny, o definovany´ch pojmech jsou vyslovova´na tvrzenı´ a ta jsou pak dokazova´na. Du˚raz je kladen na motivaci pro zavedenı´ novy´ch pojmu˚ a jejich vysveˇtlenı´. Text prˇedpokla´da´ jen za´kladnı´ strˇedosˇkolske´ znalosti matematiky.
Cı´lova´ skupina
Text je urcˇen pro studenty oboru Aplikovana´ informatika uskutecˇnˇovane´ho v kombinovane´ formeˇ na Prˇ´ırodoveˇdecke´ fakulteˇ Univerzity Palacke´ho v Olomouci. Mu˚zˇe by´t uzˇitecˇny´ i studentu˚m jiny´ch informaticky´ch a matematicky´ch oboru˚ a teˇm, kterˇ´ı se chteˇjı´ sezna´mit se se za´klady diskre´tnı´ matematiky.
Obsah 1
2
Logika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.1
Co a k cˇemu je logika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.2
Vy´rokova´ logika (u´vod) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2.1
Jazyk vy´rokove´ logiky, formule vy´rokove´ logiky . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2.2
Pravdivost formulı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3
Se´manticke´ vyply´va´nı´ ve vy´rokove´ logice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.4
Norma´lnı´ formy formulı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
Mnozˇiny, relace, funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.1
Co a k cˇemu jsou mnozˇiny, relace a funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.2
Mnozˇiny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.2.1
Pojem mnozˇiny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.2.2
Za´pisova´nı´ mnozˇin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.2.3
Vztahy mezi mnozˇinami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2.2.4
Operace s mnozˇinami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Relace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
2.3.1
Pojem relace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
2.3.2
Vztahy a operace s relacemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
2.3.3
Operace s bina´rnı´mi relacemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
2.3.4
Bina´rnı´ relace a jejich reprezentace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
Funkce (zobrazenı´) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
2.4.1
Pojem funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
2.4.2
Typy funkcı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
2.4.3
Princip indukce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
2.4.4
Konecˇne´, spocˇetne´ a nespocˇetne´ mnozˇiny . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Kombinatorika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.1
Co a k cˇemu je kombinatorika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.2
Pravidla soucˇtu a soucˇinu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
3.3
Permutace, variace, kombinace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.3.1
Permutace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.3.2
Variace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.3.3
Kombinace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.3.4
Dalsˇ´ı vy´beˇry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.4
Princip inkluze a exkluze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3.5
Pocˇ´ıta´nı´ pravdeˇpodobnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
Grafy a stromy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.1
66
2.3
2.4
3
4
Co a k cˇemu jsou grafy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
6
4.2
Neorientovane´ a orientovane´ grafy: za´kladnı´ pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.3
Hleda´nı´ cest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
4.4
Stupneˇ vrcholu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
4.5
Stromy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
4.5.1
Definice a za´kladnı´ vlastnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
4.5.2
Hleda´nı´ minima´lnı´ kostry grafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
4.5.3
Korˇenove´ stromy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
Relace (znovu u relacı´) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
5.1
Bina´rnı´ relace na mnozˇineˇ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
5.2
Uza´veˇry relacı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
5.3
Ekvivalence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
5.4
Usporˇa´da´nı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
Logika (znovu u logiky) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.1
Dokazatelnost ve vy´rokove´ logice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.2
Korektnost a u´plnost vy´rokove´ logiky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.3
Predika´tova´ logika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 6.3.1
Syntax predika´tove´ logiky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.3.2
Se´mantika predika´tove´ logiky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.4
Vlastnosti kvantifikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.5
Omezenı´ klasicke´ predika´tove´ logiky a dalsˇ´ı logicke´ kalkuly . . . . . . . . . . . . . . . . . . . . . . 133
A Seznam obra´zku˚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 B Seznam tabulek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
1
Logika
Studijnı´ cı´le: Po prostudova´nı´ kapitoly by student meˇl aktivneˇ zna´t za´klady syntaxe a se´mantiky vy´rokove´ logiky. Student by meˇl umeˇt zapisovat vy´roky pomocı´ formulı´ a vysˇetrˇovat pravdivost pomocı´ tabulkove´ metody. Klı´cˇova´ slova: disjunkce, ekvivalence, formule, implikace, jazyk vy´rokove´ logiky, konjunkce, kontradikce, logicka´ operace, logicka´ spojka, logika, negace, podformule, pravdivostnı´ ohodnocenı´, se´manticka´ ekvivalence, se´mantika, syntaxe, tabelace, tautologie, vy´rok, vy´rokova´ logika, vy´rokovy´ symbol Potrˇebny´ cˇas: 120 minut.
1.1
Co a k cˇemu je logika
Logika je veˇda zaby´vajı´cı´ se usuzova´nı´m. Zkouma´ pojmy jako jsou pravdivost, dokazatelnost, vyvratitelnost a zaby´va´ se jejich vza´jemny´mi vztahy. Logika si klade ota´zky typu: „Je kazˇde´ dokazatelne´ tvrzenı´ pravdive´?“, „Co plyne z toho zˇe jsme dosˇli neˇjakou u´vahou ke sporu?“. Hlavnı´mi rysy soudobe´ logiky jsou idealizace a formalizace – logika zkouma´ pouze formu usuzova´nı´, nezaby´va´ se obsahem tvrzenı´, psychologicky´mi interpretacemi a podobneˇ. Co se tı´m ma´ na mysli? Vezmeme-li naprˇ´ıklad dvojici tvrzenı´ „Jestlizˇe prsˇ´ı, pak jsou silnice mokre´“
a
„Prsˇ´ı“,
pak z nich prˇirozenou u´vahou odvozujeme „Silnice jsou mokre´“. Vezmeme-li dvojici „Pokud je Petr unaveny´, pak (Petr) spı´“
a
„Petr je unaveny´“,
pak odvodı´me „Petr spı´“. V teˇchto dvou prˇ´ıkladech vyply´valo z dvojice tvrzenı´ dalsˇ´ı tvrzenı´. Acˇkoliv meˇly obeˇ dvojice tvrzenı´ zcela jiny´ obsah (mokre´ silnice versus spa´nek), meˇly stejnou formu a z obou jsme vyvodili novy´ za´veˇr stejny´m zpu˚sobem (u´sudkem). Formu prˇedchozı´ch ´ sudek, ktery´ jsme tvrzenı´ lze symbolicky zna´zornit takto: A i B („kdyzˇ A, pak B“) a A. U pouzˇili k odvozenı´ za´veˇru˚ byl: z A i B a A odvodı´me B. Pro uvedene´ rysy by´va´ modernı´ logika oznacˇova´na jako forma´lnı´ logika (symbolicka´ logika).
Logika zkouma´ forma´lnı´ aspekty usuzova´nı´.
Pru˚vodce studiem Du˚vod pro formalizaci tvrzenı´ a u´sudku˚ plyne prˇ´ımo povahy proble´mu˚, ktery´m se logika veˇnuje. Jelikozˇ se logika zaby´va´ aspekty usuzova´nı´, je zejme´na potrˇebne´, aby byly pojmy jako je tvrzenı´ cˇi u´sudek prˇesneˇ a dostatecˇneˇ jednodusˇe zavedene´. Jedineˇ tak budeme s to zkoumat jejich vlastnosti – naprˇ´ıklad rozhodovat, zda-li je konkre´tnı´ u´sudek spra´vny´ cˇi nikoliv, zda-li dane´ tvrzenı´ vyply´va´ z jiny´ch a podobneˇ.
Logika, jako veˇdnı´ disciplı´na, se vyvı´jela beˇhem staletı´ a vyvı´jely se i jejı´ cı´le. Za zakladatele logiky je povazˇova´n rˇecky´ filosof Aristotele´s. Od svy´ch pocˇa´tku˚ byly ota´zky logiky smeˇrova´ny na podstatu lidske´ho usuzova´nı´ a byly tedy svou povahou hlavneˇ filozoficke´ – odtud pocha´zı´ oznacˇenı´ filosoficka´ logika. Na prˇelomu 19. a 20. stoletı´ dosˇlo k vy´razne´ formalizaci logiky – sˇlo prˇedevsˇ´ım o formalizaci usuzova´nı´ v matematice a v jiny´ch veˇda´ch, filosoficke´ aspekty byly u´plneˇ pominuty. V soucˇasnosti neexistuje zˇa´dna´ zrˇetelna´ hranice mezi forma´lnı´ a filosofickou logikou. Mnohe´ aspekty usuzova´nı´ zkoumane´ filosofickou logikou se podarˇilo formalizovat a zkoumat je cˇisteˇ matematicky´mi metodami. Na druhou stranu, forma´lnı´ logika doka´zala odpoveˇdeˇt na neˇktere´ za´sadnı´ ota´zky, ktery´mi se zaby´vali filosofove´ jizˇ od staroveˇku. Vztah logiky a informatiky je velmi teˇsny´. Logika je du˚lezˇita´ v informatice (forma´lnı´ metody specifikace, verifikace, analy´zy dat) a elektrotechnice (logika el. obvodu˚). Naopak, vy´sledky informaticky´ch disciplı´n (teorie informace, teorie jazyku˚) jsou nepostradatelne´ v logice. Logika se 5
Logika je za´kladem forma´lnı´ch metod v informatice.
zaby´va´ naprˇ´ıklad algoritmicky´mi aspekty usuzova´nı´ a konstrukcı´ automaticky´ch dokazovacı´ch syste´mu˚ (jde o specia´lnı´ algoritmy), ktere´ jsou schopny, byt’omezeneˇ, mechanicky odvozovat tvrzenı´ z jiny´ch. Doposud jsme rˇekli, zˇe logika formalizuje pojmy jako je tvrzenı´ a u´sudek, ale nespecifikovali jsme jak. Formalizace pojmu˚ a pra´ce s nimi je ve skutecˇnosti za´visla´ na konkre´tnı´m logicke´m kalkulu, se ktery´m pracujeme. Logicky´ kalkul lze zjednodusˇeneˇ cha´pat jako soubor pravidel, ktera´ mimo jine´ specifikujı´, jak „jemna´“ formalizace se pouzˇ´ıva´. Vsˇe si ukazˇme na prˇ´ıkladu. Uvazˇujme tvrzenı´ „Pokud ma´ Petr deset korun, pak si mu˚zˇe koupit cˇokola´du.“ V prˇ´ıpadeˇ, zˇe si nebudeme vsˇ´ımat struktury sdeˇlenı´ v jednotlivy´ch veˇta´ch tohoto souveˇtı´, se jedna´ o tvrzenı´ ve tvaru „kdyzˇ A, pak B“. V druhe´ veˇteˇ se vsˇak vyskytuje vazba „moci“, z tohoto u´hlu pohledu se jedna´ o tvrzenı´ tvaru „kdyzˇ A, pak mu˚zˇe B“. Prˇi jesˇteˇ jemneˇjsˇ´ı formalizaci bychom mohli zachytit i jednotlive´ objekty („deset korun“, „cˇokola´da“, „Petr“) a vztahy mezi nimi („mı´t“, „koupit“). Zbytek u´vodnı´ kapitoly se veˇnuje vy´rokove´ logice (vy´rokove´mu kalkulu), ktera´ z pohledu formalizace zkouma´ usuzova´nı´ na u´rovni veˇt v souveˇtı´ch. V kapitole 6.3 prˇedstavı´me predika´tovou logiku, ktera´ z pohledu formalizace zkouma´ usuzova´nı´ azˇ na u´rovni jednotlivy´ch veˇtny´ch cˇlenu˚.
1.2
Vy´rokova´ logika (u´vod)
Vy´rokem intuitivneˇ cha´peme tvrzenı´, pro ktere´ ma´ smysl pta´t se, zda-li je pravdive´. Naprˇ´ıklad „Prsˇ´ı.“ je vy´rok, „Byl jsem v obchodeˇ a koupil jsem si knihu.“ je vy´rok, „2 + 2 = 6“ je vy´rok, ale „kniha v obchodeˇ“ nenı´ vy´rok, „2 + 2“ nenı´ vy´rok. Je zcela v souladu s intuicı´, zˇe z vy´roku˚ lze vytva´rˇet vy´roky slozˇiteˇjsˇ´ı tı´m, zˇe je mezi sebou kombinujeme pomocı´ dodatecˇny´ch slovnı´ch konstrukcı´ jako jsou „a“, „nebo“, „pokud, . . . pak . . . “, „ne“ (to jest „neplatı´, zˇe . . . “). Naprˇ´ıklad vy´rok „Pokud prsˇ´ı a svı´tı´ slunce, pak je na obloze duha“ lze cha´pat jako vy´rok slozˇeny´ z vy´roku˚ „Prsˇ´ı“, „Svı´tı´ slunce“, „Na obloze je duha“ pomocı´ vazeb „a“, „pokud . . . , pak . . . “. Vy´rokova´ logika formalizuje tyto slovnı´ vazby pomocı´ logicky´ch spojek, proto se neˇkdy nazy´va´ logika vy´rokovy´ch spojek. Formalizace ve vy´rokove´ logice nejde za hranici vy´roku˚, to jest vy´rokova´ logika neformalizuje jednotlive´ objekty a vztahy mezi nimi, nepracuje s cˇasem, ani s vazbami typu „smeˇt“, „moci“, „veˇdeˇt“ a podobneˇ.
Vy´rokova´ logika zkouma´ usuzova´nı´ o vy´rocı´ch.
Pru˚vodce studiem Vy´rokova´ logika se soustrˇedı´ na formu usuzova´nı´ o vy´rocı´ch – to jest nezajı´ma´ na´s obsah vy´roku˚, ale pouze forma usuzovane´ho. Na jednu stranu tı´m v jiste´m smyslu ztratı´me, nebot’ nasˇe rozlisˇovacı´ schopnost odhle´dnutı´m od obsahu vy´roku˚ klesne – vy´roky se stejnou formou, ale ru˚zny´m obsahem, pro na´s budou nerozlisˇitelne´. Na druhou stranu, soustrˇedeˇnı´m se pouze na formu na´m umozˇnı´ objevit za´konitosti, ktery´mi se rˇ´ıdı´ usuzova´nı´ nad jaky´mikoli vy´roky, tedy vy´roky s libovolny´m obsahem. Vy´sledky, ktere´ zı´ska´me, budeme tedy moci pouzˇ´ıt na libovolne´ vy´roky.
1.2.1
Jazyk vy´rokove´ logiky, formule vy´rokove´ logiky
Nynı´ prˇikrocˇ´ıme k prˇesne´mu zavedenı´ za´kladnı´ch pojmu˚ a vybudova´nı´ forma´lnı´ho syste´mu vy´rokove´ logiky (da´le VL). Doposud jsme se o pojmech jako je „vy´rok“ bavili pouze na intuitivnı´ u´rovni, ktera´ byla neprˇesna´ a neuchopitelna´ matematicky´mi metodami. Intuitivnı´ prˇedstavu vy´roku je dobre´ mı´t neusta´le na pameˇti – je du˚lezˇita´ z hlediska vazby (forma´lnı´) vy´rokove´ logiky na prˇirozene´ usuzova´nı´, pro nasˇe dalsˇ´ı u´cˇely je vsˇak pouze intuitivnı´ zavedenı´ pojmu˚ nedostacˇujı´cı´ kvu˚li va´gnosti slovnı´ho popisu a prˇirozene´ho jazyka – v nasˇem prˇ´ıpadeˇ cˇesˇtiny. Mı´sto 6
Prˇirozeny´ jazyk se pro formalizaci nehodı´ – je komplikovany´ a nejednoznacˇny´.
komplikovane´ho a nejednoznacˇne´ho prˇirozene´ho jazyka nejprve zavedeme vhodny´ jednoduchy´ a prˇesny´ (forma´lnı´ ) jazyk vy´rokove´ logiky, ve ktere´m budeme vy´roky popisovat. Neˇktere´ vy´roky jsou slozˇeny z jiny´ch uzˇitı´m pomocny´ch slovnı´ch konstrukcı´ („Prsˇ´ı a svı´tı´ slunce.“), jine´ nikoliv („Prsˇ´ı.“) a jsou v tomto smyslu nedeˇlitelne´ – atomicke´. Atomicke´ vy´roky budeme v jazyku VL oznacˇovat specia´lnı´mi symboly, ktery´m budeme rˇ´ıkat vy´rokove´ symboly. Slovnı´ konstrukce, ktery´mi se vy´roky spojujı´ ve slozˇene´ vy´roky, budeme v jazyku VL oznacˇovat symboly vy´rokovy´ch spojek. Vy´roky slozˇene´ z jiny´ch budeme v jazyku VL zapisovat pomocı´ vy´rokovy´ch symbolu˚ a symbolu˚ vy´rokovy´ch spojek, pro prˇehlednost a jednoznacˇnost je budeme vhodneˇ oddeˇlovat za´vorkami. Nynı´ mu˚zˇeme pojem jazyk VL prˇesneˇ zave´st. Jazyk vy´rokove´ logiky se skla´da´ z • vy´rokovy´ch symbolu˚: p, q, r, . . . , • symbolu˚ vy´rokovy´ch spojek: n (negace), i (implikace), c (konjunkce), d (disjunkce), e (ekvivalence),
Forma´lnı´ jazyk odstranˇuje nevy´hody prˇirozene´ho jazyka.
• pomocny´ch symbolu˚: za´vorek (, ). Pozna´mka 1.1. (1) Vy´rokove´ symboly oznacˇujeme podle potrˇeby s indexy, to jest p1 , p2 , . . . Da´le budeme prˇedpokla´dat, zˇe vy´rokovy´ch symbolu˚ ma´me k dispozici nekonecˇneˇ mnoho – vezmeme-li konecˇneˇ mnoho vy´rokovy´ch symbolu˚ p1 , p2 , . . . , pn , pak ma´me vzˇdy k dispozici dalsˇ´ı vy´rokove´ symboly, ktere´ se mezi p1 , p2 , . . . , pn nenacha´zejı´. (2) Symboly vy´rokovy´ch spojek n („neplatı´, zˇe . . . “), i („kdyzˇ . . . , pak . . . “), c („. . . a . . . “), d („. . . nebo . . . “), e („. . . , pra´veˇ kdyzˇ . . . “), zastupujı´ pouze zlomek vazeb, ktere´ lze vyja´drˇit prˇirozeny´m jazykem – v tomto mı´steˇ jsme oproti prˇirozene´mu jazyku provedli vy´razne´ zjednodusˇenı´. (3) V dalsˇ´ıch kapitola´ch budeme neˇkdy pouzˇ´ıvat ru˚zne´ typy za´vorek (, ), [, ], . . . kvu˚li zvy´sˇenı´ prˇehlednosti. Prˇ´ısneˇ vzato bychom si ale vystacˇili pouze s jednı´m typem za´vorek. Nynı´ jizˇ ma´me zaveden jazyk, ve ktere´m budeme vy´roky popisovat. Potrˇebujeme jesˇteˇ jednoznacˇna´ pravidla zapisova´nı´ vy´roku˚ v tomto jazyku. Vy´roky budeme zapisovat jako konecˇne´ posloupnosti symbolu˚ jazyka VL splnˇujı´cı´ dalsˇ´ı pozˇadavky. Dosta´va´me se tak k na´sledujı´cı´mu pojmu. Formule (dane´ho jazyka) vy´rokove´ logiky jsou definova´ny na´sledovneˇ: • kazˇdy´ vy´rokovy´ symbol je formule (atomicka´ formule), • jsou-li ϕ a ψ formule, pak jsou i nϕ, (ϕ i ψ), (ϕ c ψ), (ϕ d ψ), (ϕ e ψ) formule. Nejprve nahle´dneˇme, zˇe definice formule je skutecˇneˇ spra´vna´, nejedna´ se o definici kruhem, protozˇe v druhe´m bodu definice se zava´deˇjı´ formule slozˇiteˇjsˇ´ı z formulı´ jednodusˇsˇ´ıch. Vsˇechny formule vznikajı´ aplikacı´ prˇedchozı´ch dvou bodu˚. Da´le si vsˇimneˇme, zˇe pojem formule se vztahuje k jazyku VL, meˇli bychom tedy spra´vneˇ hovorˇit o „formulı´ch dane´ho jazyka VL“. Ve veˇtsˇineˇ prˇ´ıpadu˚ vsˇak bude jazyk zrˇejmy´ z kontextu proto budeme hovorˇit pouze o „formulı´ch VL“ nebo jen o „formulı´ch“.
Formule jsou prˇesny´m zavedenı´m intuitivnı´ho pojmu vy´rok.
Prˇ´ıklad 1.2. Pokud chceme rozhodnout, zda-li je dana´ posloupnost symbolu˚ jazyka VL formule, stacˇ´ı pouze mechanicky postupovat podle prˇedchozı´ definice. Naprˇ´ıklad p, q1 , np, (p i q), nn(np e p), (np c (q i nr)) jsou formule. Zdu˚vodnı´me podrobneˇ pro (np c (q i nr)): kazˇdy´ z vy´rokovy´ch symbolu˚ p, q, r je formule dle prvnı´ho bodu definice. Potom dle druhe´ho bodu postupneˇ dosta´va´me, zˇe np, nr jsou take´ formule, da´le (q i nr) je formule, proto i (np c (q i nr)) je formule. Na druhou stranu n(p), (pnq), (p i (q c r), p i r, (p d q d r), i p nejsou formule. Abychom zprˇehlednili za´pis formulı´, prˇijmeme nynı´ konvenci o vynecha´va´nı´ vneˇjsˇ´ıch za´vorek.
7
Vynecha´nı´m vneˇjsˇ´ıch za´vorek zprˇehlednˇujeme za´pis formulı´.
Formule tvaru (ϕ i ψ), (ϕ c ψ), (ϕ d ψ), (ϕ e ψ) budeme psa´t bez vneˇjsˇ´ıch za´vorek, to jest ϕ i ψ, ϕ c ψ, ϕ d ψ, ϕ e ψ. Za´vorky, ktere´ mohou by´t ve formulı´ch ϕ a ψ, ale nevypousˇtı´me. Prˇepis tvrzenı´ z prˇirozene´ho jazyka do jazyka VL a zpeˇt nenı´ prˇedmeˇtem zkouma´nı´ forma´lnı´ logiky, protozˇe je v mnoha ohledech zatı´zˇen psychologicky´mi aspekty, vyzˇaduje znalost proble´move´ dome´ny, cozˇ je pra´veˇ to, od cˇeho forma´lnı´ logika odhlı´zˇ´ı. Prˇesto je potrˇebne´ mı´t v prˇepisu jisty´ cvik. Pokud na u´rovni formalizovane´ho mysˇlenı´ objevı´me za´konitost, mu˚zˇeme ji pak snadno porovnat s jejı´m proteˇjsˇkem prˇirozene´ho (intuitivnı´ho) usuzova´nı´ – neˇkdy tak mu˚zˇeme objevit netusˇene´ za´konitosti v intuitivnı´m usuzova´nı´, nebo mu˚zˇeme naopak zjistit, zˇe formalizace, kterou jsme zvolili, nenı´ vhodna´ – trˇeba se nechova´ dost prˇirozeneˇ. Potrˇeba „umeˇt cˇ´ıst formule“ je nezbytna´ ve veˇtsˇineˇ informaticky´ch a matematicky´ch disciplin, ve ktery´ch se formalizovane´ vy´roky pouzˇ´ıvajı´ k prˇesne´mu vyjadrˇova´nı´ vztahu˚ v definicı´ch, algoritmech, veˇta´ch a podobneˇ. Nynı´ si uvedeme strucˇny´ na´vod, jak bychom prˇi formalizaci vy´roku˚ a cˇtenı´ formulı´ meˇli postupovat, du˚raz je kladen na vhodne´ pouzˇitı´ spojek. • negace n se na rozdı´l od ostatnı´ch spojek va´zˇe pouze s jednı´m vy´rokem – o spojce rˇ´ıka´me, zˇe je una´rnı´. Formuli nϕ cˇteme „neplatı´, zˇe ϕ“. Pokud naprˇ´ıklad vy´rokovy´ symbol p formalizuje vy´rok „Venku prsˇ´ı“, pak np formalizuje vy´rok „Venku neprsˇ´ı“, nebo kostrbateˇji: „Neplatı´, zˇe venku prsˇ´ı“. Je-li q formalizace vy´roku „5 je liche´ cˇ´ıslo“, pak nq je formalizacı´ vy´roku „5 nenı´ liche´ cˇ´ıslo“. Zde se prosı´m vyvarujme jaky´chkoliv u´vah o pravdivosti cˇi nepravdivosti teˇchto vy´roku˚ – – porˇa´d zkouma´me vy´roky pouze z hlediska jejich formy, nikoliv obsahu nebo neˇjake´ jejich intuitivnı´ cˇi „prˇirozene´“ interpretace. Kdybychom za negaci vy´roku „5 je liche´ cˇ´ıslo“ povazˇovali vy´rok „5 je sude´ cˇ´ıslo“, uzˇ bychom tı´m neprˇ´ıpustneˇ prˇihle´dli k jeho obsahu! Vsˇechny da´le uvedene´ spojky se vztahujı´ vzˇdy ke dveˇma vy´roku˚m – rˇ´ıka´me jim bina´rnı´ spojky. • konjunkce c vyjadrˇuje vazbu „a“. Formuli ϕ c ψ cˇteme „ϕ a ψ“. Podotkneˇme, zˇe konjunkce se vztahuje k platnosti vy´roku˚, nikoliv k jejich obsahu ani k jejich cˇasove´ na´vaznosti. Budou-li naprˇ´ıklad vy´rokove´ symboly p, q formalizovat vy´roky „Egypt’ane´ postavili pyramidy“ a „Cˇloveˇk prˇista´l na meˇsı´ci“, pak p c q formalizuje vy´rok „Platı´, zˇe egypt’ane´ postavili pyramidy a platı´, zˇe cˇloveˇk prˇista´l na meˇsı´ci“, nikoliv vy´rok „Platı´, zˇe egypt’ane´ postavili pyramidy a (soucˇasneˇ) cˇloveˇk prˇista´l na meˇsı´ci“. • disjunkce d vyjadrˇuje vazbu „nebo“, nikoliv vsˇak ve smyslu „bud’. . . a nebo . . . “, cozˇ je tak zvana´ vylucˇovacı´ disjunkce, ale ve smyslu platnosti alesponˇ jednoho z vy´roku˚. Formuli ϕ d ψ cˇteme „ϕ nebo ψ“. Pokud naprˇ´ıklad vy´rokove´ symboly p a q vyjadrˇujı´ vy´roky „Prsˇ´ı“ a „Svı´tı´ slunce“, pak p d q vyjadrˇuje vy´rok „Prsˇ´ı nebo svı´tı´ slunce“, ale za´rovenˇ nevylucˇuje platnost vy´roku „Prsˇ´ı a svı´tı´ slunce“. I kdyzˇ jsme pro vylucˇovacı´ disjunkci nezavedli samostatnou spojku, mu˚zˇeme ji snadno vyja´drˇit trˇeba pomocı´ n, c a d. Jsou-li ϕ, ψ formule, pak (ϕ d ψ) c n(ϕ c ψ) vyjadrˇuje, zˇe platı´ ϕ nebo ψ, ale ne obeˇ. • implikace i vyjadrˇuje vy´rokovou vazbu „kdyzˇ . . . , pak . . . “ opeˇt vsˇak ne ve smyslu cˇasu, ale ve smyslu „pokud platı´ . . . , pak platı´ . . . “. Formuli ϕ i ψ lze cˇ´ıst mnoha zpu˚soby, naprˇ´ıklad „pokud ϕ, pak ψ“, „ψ za prˇedpokladu, zˇe ϕ“, „ϕ dostacˇuje pro ψ“, „ψ je nutne´ pro ϕ“, „ϕ, jen kdyzˇ ψ“. Implikace obecneˇ nelze obracet bez ztra´ty jejich vy´znamu, volneˇ rˇecˇeno, nelze obracet prˇ´ıcˇinu a du˚sledek. Pokud naprˇ´ıklad vy´rokove´ symboly p a q vyjadrˇujı´ vy´roky „x je deˇlitelne´ sˇesti“ a „x je deˇlitelne´ dveˇma“, pak p i q vyjadrˇuje vy´rok „pokud je x deˇlitelne´ sˇesti, pak je x deˇlitelne´ dveˇma“, kdezˇto q i p vyjadrˇuje vy´rok „pokud je x deˇlitelne´ dveˇma, pak je x deˇlitelne´ sˇesti“. Implikace ϕ i ψ nic nerˇ´ıka´ o platnosti ψ za prˇedpokladu, zˇe ϕ nenı´ platna´. Uvazˇujme naprˇ´ıklad vy´rok „pokud je x prˇirozene´ cˇ´ıslo, pak je x cele´ cˇ´ıslo“. Pokud vy´rok „x je prˇirozene´ cˇ´ıslo“ nenı´ platny´, pak o platnosti „x je cele´ cˇ´ıslo“ nelze nic rˇ´ıct, cozˇ je zcela v souladu s intuitivnı´ interpretacı´. 8
• ekvivalence e vyjadrˇuje vy´rokovou vazbu „pra´veˇ kdyzˇ“, to jest ϕ e ψ cˇteme „ϕ, pra´veˇ kdyzˇ ψ“. Ekvivalence ϕ e ψ vyjadrˇuje, zˇe ϕ je platna´ tehdy a jen tehdy, je-li platna´ ψ. Jiny´mi slovy, bud’jsou ϕ, ψ obeˇ platne´, nebo ani jedna z nich nenı´ platna´. Vyja´drˇeno jesˇteˇ jinak, pokud je platna´ ϕ, pak je platna´ i ψ a obra´ceneˇ, pokud je platna´ ψ, pak je platna´ i ϕ. Pokud naprˇ´ıklad vy´rokove´ symboly p a q vyjadrˇujı´ vy´roky „x = 2“ a „x je sude´ prvocˇ´ıslo“, pak p e q vyjadrˇuje vy´rok „x = 2, pra´veˇ kdyzˇ je x sude´ prvocˇ´ıslo“. V prˇirozene´m jazyku je neˇkdy obtı´zˇne´ rozlisˇit implikaci a ekvivalenci. Neˇkdy je typicke´ sdeˇlovat vy´roky ve tvaru ekvivalence pouze s du˚razem na jednu jejı´ stranu, protozˇe druha´ strana je (v dane´m kontextu) platna´ trivia´lneˇ. Naprˇ´ıklad vy´rokem „Jestli budesˇ hodny´, dostanesˇ cˇokola´du“ (zde je potrˇeba odhle´dnout od cˇasove´ souslednosti) majı´ rodicˇe obvykle na mysli „Cˇokola´du dostanesˇ, pra´veˇ kdyzˇ budesˇ hodny´“. To jest i prˇesto, zˇe implikace „Cˇokola´du dostanesˇ, jen kdyzˇ budesˇ hodny´“ je pro rodicˇe de facto hlavnı´m prˇedmeˇtem sdeˇlenı´, ve vy´chozı´m vy´roku nenı´ explicitneˇ zahrnuta, protozˇe plyne z kontextu. Pru˚vodce studiem Rozdı´l mezi vy´roky ve tvaru implikace a ekvivalence je nezbytneˇ nutne´ pochopit, protozˇe te´meˇrˇ vesˇkera´ tvrzenı´ v informatice a matematice jsou bud’ve tvaru implikace nebo ve tvaru ekvivalence. Za´meˇna implikace za ekvivalenci je jednou z nejcˇasteˇjsˇ´ıch zacˇa´tecˇnicky´ch chyb. Kdybychom ze strˇedosˇkolske´ matematiky zna´me´ tvrzenı´: „Pokud ma´ kvadraticka´ rovnice dveˇ ru˚zna´ rea´lna´ rˇesˇenı´, pak nema´ komplexneˇ sdruzˇeny´ korˇen“, reformulovali ve tvaru ekvivalence, dostali bychom tvrzenı´: „Kvadraticka´ rovnice ma´ dveˇ ru˚zna´ rea´lna´ rˇesˇenı´, pra´veˇ kdyzˇ nema´ komplexneˇ sdruzˇeny´ korˇen“, cozˇ neplatı´ naprˇ´ıklad pro x2 = 0. Prˇ´ıklad 1.3. Na´sledujı´cı´ vy´roky „Petr nosı´ desˇtnı´k, kdyzˇ je ra´no mlha nebo prsˇ´ı“, „Kdyzˇ jsou na obloze vecˇer cˇerva´nky, pak ra´no nenı´ mlha“, „Petr jezdı´ autem, jen kdyzˇ prsˇ´ı“. „Ra´no je mlha.“ formalizujeme formulemi VL. V prˇedchozı´ch vy´rocı´ch se vyskytujı´ tyto atomicke´ vy´roky: „Petr nosı´ desˇtnı´k“ (oznacˇ´ıme d), „Ra´no je mlha“ (oznacˇ´ıme m), „Ra´no prsˇ´ı“ (oznacˇ´ıme p), „Na obloze jsou vecˇer cˇerva´nky“ (oznacˇ´ıme c), „Petr jezdı´ autem“ (oznacˇ´ıme a). Vy´roky mu˚zˇeme nynı´ formalizovat formulemi (m d p) i d, c i nm, a i p, m. V prvnı´m prˇ´ıpadeˇ je diskutabilnı´, zda-li bychom nemeˇli uvazˇovat spı´sˇe formuli (m d p) e d.
Prˇi formalizaci vy´roku˚ je nejprve vhodne´ najı´t atomicke´ vy´roky.
V neˇktery´ch prˇ´ıpadech se na´m bude hodit odkazovat se na cˇa´sti formulı´, ktere´ jsou samy o sobeˇ formulemi. Meˇjme formuli ϕ. Kazˇda´ formule, ktera´ se ve ϕ nacha´zı´ jako podrˇeteˇzec (vcˇetneˇ cele´ ϕ), se nazy´va´ podformule ϕ. Vezmeme-li naprˇ´ıklad formuli n(p c q) i p, pak vsˇechny jejı´ podformule jsou p, q, p c q, n(p c q) a n(p c q) i p. ψ je vlastnı´ podformule ϕ, pokud je ψ podformule ϕ a formule ψ, ϕ jsou vza´jemneˇ ru˚zne´.
Kazˇda´ formule je podformule sebe sama.
1.2.2
Pravdivost formulı´
Zatı´m jsme se formulı´m veˇnovali pouze z pohledu jejich tvaru, prˇ´ıpadneˇ za´pisu a cˇtenı´, ale doposud se nebavili o jejich pravdivosti cˇi nepravdivosti. Cˇa´st vy´rokove´ logiky, ktera´ se zaby´va´ formulemi pouze jako rˇeteˇzci symbolu˚ jazyka, se nazy´va´ syntaxe. Syntaxe VL nedefinuje pravdivost formulı´ ani vy´znam spojek, ten jsme si v prˇedchozı´ kapitole neforma´lneˇ nastı´nili z du˚vodu nahle´dnutı´ do vztahu vy´rok – formule. Formule samy o sobeˇ nemajı´ zˇa´dny´ vy´znam. Prˇirˇazenı´ vy´znamu syntakticky´m objektu˚m je za´lezˇitostı´ dalsˇ´ı cˇa´sti vy´rokove´ logiky – se´mantiky. Pra´veˇ se´mantikou vy´rokove´ logiky se nynı´ budeme zaby´vat. 9
Vy´rokova´ logika ma´ svou syntaxi a se´mantiku.
0 1
¬ 1 0
∧ 0 1
0 0 0
1 0 1
∨ 0 1
0 0 1
1 1 1
→ 0 1
0 1 0
1 1 1
↔ 0 1
0 1 0
1 0 1
Tabulka 1: Logicke´ operace Drˇ´ıve nezˇ zacˇneme, si jesˇteˇ na jednom prˇ´ıkladu uka´zˇeme, procˇ je nezbytne´ formalizovat vy´roky i jejich vy´znam. V prˇirozene´m jazyku je mozˇne´ snadno vytva´rˇet „vazby na sebe sama“, tak zvane´ autoreference. Prˇ´ıkladem vy´roku, ktery´ v sobeˇ obsahuje autoreferenci je vy´rok: „Tento vy´rok nenı´ pravdivy´“ – jedna´ se tedy o vy´rok, ktery´ vypovı´da´ o sve´ vlastnı´ pravdivosti. Kdybychom se zamysleli nad pravdivostı´ tohoto vy´roku, pak bychom se dostali do paradoxnı´ situace: Pokud bychom prˇedpokla´dali pravdivost vy´roku, pak by byla pravda, zˇe on sa´m je nepravdivy´. Kdybychom naopak vysˇli z toho, zˇe je nepravdivy´, pak by nebyla pravda, zˇe je nepravdivy´, tudı´zˇ by meˇl by´t pravdivy´. V prˇirozene´m jazyku lze touto cestou snadno dospeˇt k paradoxu, v jazyku VL nikoliv, protozˇe tvrzenı´ obsahujı´cı´ autoreferenci v neˇm nejsou formulovatelna´. Prˇi zavedenı´ pravdivosti formulı´ se budeme opeˇt snazˇit odhle´dnout od jejich obsahu. Vy´rokovy´m symbolu˚m (atomicky´m formulı´m), budeme prˇideˇlovat pravdivostnı´ hodnoty 0 nebo 1, prˇitom 0 bude mı´t vy´znam „nepravda“ a 1 bude mı´t vy´znam „pravda“. Tı´m se opeˇt dopustı´me vy´znamne´ho zjednodusˇenı´, protozˇe v mnoha situacı´ch se lze setkat naprˇ´ıklad s cˇa´stecˇneˇ pravdivy´mi vy´roky. Samotne´ prˇirˇazenı´ pravdivostnı´ch hodnot vy´rokovy´m symbolu˚m budeme nazy´vat pravdivostnı´ ohodnocenı´. Dosta´va´me se tak k na´sledujı´cı´mu pojmu.
0 znacˇ´ı nepravdu, 1 znacˇ´ı pravdu.
Pravdivostnı´ ohodnocenı´ (zkra´ceneˇ ohodnocenı´ ) je prˇedpis e, ktery´ kazˇde´mu vy´rokove´mu symbolu p jazyka VL prˇirˇazuje pravdivostnı´ hodnotu 0 (oznacˇujeme e(p) = 0), nebo 1 (oznacˇujeme e(p) = 1). Pokud e(p) = 0, pak rˇ´ıka´me, zˇe p je nepravdivy´ v ohodnocenı´ e, pokud e(p) = 1, pak ˇr´ıka´me, zˇe p je pravdivy´ v ohodnocenı´ e. Pru˚vodce studiem Vy´znam ohodnocenı´ e mu˚zˇeme cha´pat na´sledovneˇ. Vy´rokove´ symboly oznacˇujı´ vy´roky. Zada´me-li ohodnocenı´ e, pak vy´rokovy´ symbol p oznacˇuje vy´rok, ktery´ ma´ pravdivostnı´ hodnotu e(p). Na to lze nahlı´zˇet dveˇma zpu˚soby. V prvnı´m prˇ´ıpadeˇ „zna´me“ vy´rok oznacˇeny´ symbolem p a povazˇujeme jej za pravdivy´ nebo nepravdivy´. V tom prˇ´ıpadeˇ polozˇ´ıme e(p) = 1 nebo e(p) = 0. V druhe´m prˇ´ıpadeˇ pravdivostnı´ hodnotu vy´roku oznacˇene´ho p nezna´me. Polozˇ´ıme-li pak e(p) = 1 nebo e(p) = 0, omezujeme se na situace, kdy je vy´rok oznacˇeny´ p pravdivy´ nebo nepravdivy´ – pak se mu˚zˇeme zaby´vat tı´m, co plyne z pravdivosti cˇi nepravdivosti vy´roku p.
Zavedenı´m pravdivostnı´ho ohodnocenı´ definujeme pouze pravdivost vy´rokovy´ch symbolu˚, to jest atomicky´ch formulı´. Pro stanovenı´ pravdivosti formulı´, ktere´ jsou slozˇeny z jiny´ch pomocı´ symbolu˚ logicky´ch spojek je nutne´ nejprve prˇesneˇ zave´st vy´znam logicky´ch spojek. Uved’me si nejprve neforma´lnı´ prˇ´ıklad. Pokud zna´me pravdivost vy´roku˚ „Prsˇ´ı“ a „Svı´tı´ slunce“, pak prˇirozenou u´vahou rozhodujeme, je-li vy´rok „Prsˇ´ı a svı´tı´ slunce“ pravdivy´ a to tak, zˇe „Prsˇ´ı a svı´tı´ slunce“ je pravdivy´ (pouze) v prˇ´ıpadeˇ, zˇe „Prsˇ´ı“ a „Svı´tı´ slunce“ jsou oba pravdive´. ´ plneˇ stejnou u´vahu provedeme, pokud budeme mı´t vy´roky „x je liche´“ a „x je deˇlitelne´ U trˇemi“. Prˇi stanovenı´ pravdivosti vy´roku˚ „Prsˇ´ı a svı´tı´ slunce“ a „x je liche´ a deˇlitelne´ trˇemi“ vycha´zı´me pouze z pravdivosti dı´lcˇ´ıch vy´roku˚ (nikoliv jejich obsahu) a z toho, zˇe prˇirozeneˇ vı´me, jak interpretujeme spojku „a“. Stejnou u´vahu lze udeˇlat i pro ostatnı´ spojky. Prˇirozene´ interpretace spojek budeme formalizovat logicky´mi operacemi – ke kazˇde´mu symbolu logicke´ spojky budeme uvazˇovat logickou operaci. Logickou operaci negace oznacˇ´ıme ¬, logickou operaci konjunkce oznacˇ´ıme ∧, logickou operaci disjunkce oznacˇ´ıme ∨ a tak da´le. Fakt, zˇe „negacı´ pravdy je nepravda“ vyja´drˇ´ıme ¬1 = 0, 10
Logicke´ operace formalizujı´ vy´znam logicky´ch spojek.
naopak ¬0 = 1 vyjadrˇuje, zˇe „negace nepravdy je pravda“. Jelikozˇ je negace una´rnı´ spojka, prˇ´ıslusˇna´ logicka´ operace pracuje pouze s jednou pravdivostnı´ hodnotou. U ostatnı´ch (bina´rnı´ch) spojek budou logicke´ operace pracovat se dveˇma pravdivostnı´mi hodnotami, u implikace bude navı´c za´lezˇet na jejich porˇadı´. Naprˇ´ıklad pro konjunkci polozˇ´ıme 0 ∧ 0 = 0, 0 ∧ 1 = 0, 1 ∧ 0 = 0 a 1 ∧ 1 = 1, cozˇ vyjadrˇuje nasˇi intuitivnı´ interpretaci konjunkce uvedenou v prˇedchozı´m odstavci. Pro prˇehlednost si logicke´ operace zada´me tabulkami, viz tabulku 1. Tabulku pro → je trˇeba cˇ´ıst nejprve po rˇa´dku, pak po sloupci, tedy 0 → 0 = 1, 0 → 1 = 1, 1 → 0 = 0 a 1 → 1 = 1. Nynı´ nic nebra´nı´ tomu, abychom definovali pravdivost formulı´ VP prˇi dane´m ohodnocenı´. Definice 1.4. Pro kazˇde´ pravdivostnı´ ohodnocenı´ e definujeme: kpke = e(p),
kϕ c ψke = kϕke ∧ kψke ,
kϕ i ψke = kϕke → kψke ,
knϕke = ¬ kϕke ,
kϕ d ψke = kϕke ∨ kψke ,
kϕ e ψke = kϕke ↔ kψke ,
kde p je vy´rokovy´ symbol a ϕ, ψ jsou formule jazyka VL. kϕke se nazy´va´ pravdivostnı´ hodnota formule ϕ prˇi ohodnocenı´ e. Je-li kϕke = 0, pak rˇ´ıka´me, zˇe ϕ nenı´ pravdiva´ prˇi ohodnocenı´ e. Pokud kϕke = 1, pak rˇ´ıka´me, zˇe ϕ je pravdiva´ prˇi ohodnocenı´ e. Pozna´mka 1.5. Vsˇimneˇte si, zˇe logicke´ operace tak, jak jsme je definovali v tabulka´ch 1 odpovı´dajı´ zamy´sˇlene´mu vy´znamu spojek, ktery´ jsme slovneˇ popsali v kapitole 1.2.1. Logicke´ operace bychom take´ mohli zave´st analogicky´m slovnı´m popisem. Naprˇ´ıklad kϕ i ψke = 1, pra´veˇ kdyzˇ kϕke = 0 nebo kψke = 1.
Pravdivost formule cha´peme vzˇdy vzhledem k neˇjake´mu ohodnocenı´.
Pru˚vodce studiem V tomto okamzˇiku je potrˇebne´, abyste se ujistili, zˇe skutecˇneˇ rozumı´te rozdı´lu mezi symbolem logicke´ spojky a jemu prˇ´ıslusˇnou logickou operacı´. Znovu prˇipomenˇme, zˇe symbol spojky je zaveden v jazyku VL, jedna´ se tedy o syntakticky´ pojem. Naproti tomu logicka´ operace je pojem se´manticky´ a slouzˇ´ı k prˇesne´mu zavedenı´ interpretace spojky – tedy jejı´ho vy´znamu, ktery´ je na symbolu spojky neza´visly´. Vztahy z definice 1.4 na´m da´vajı´ na´vod, jak zjistit hodnotu kϕke . Pokud je formule ϕ atomicka´, pak je ϕ neˇktery´ z vy´rokovy´ch symbolu˚, rˇekneˇme p, a pak kϕke = e(p). Pokud ϕ nenı´ atomicka´, pak je v neˇktere´m ze tvaru˚ nϑ, ϑ c χ, ϑ d χ, ϑ i χ nebo ϑ e χ. Pokud je naprˇ´ıklad ve tvaru ϑ i χ, pak stanovı´me pravdivostnı´ hodnoty kϑke , kχke a pomocı´ logicke´ operace → snadno vypocˇteme kϕke = kϑke → kχke . Prˇi vysˇetrˇova´nı´ pravdivosti navı´c mu˚zˇeme vyuzˇ´ıt vlastnostı´ jednotlivy´ch logicky´ch operacı´. Pokud naprˇ´ıklad zjistı´me, zˇe kϕke = 1, pak platı´ kϕ d ψke = 1 bez ohledu na hodnotu kψke , pokud je kϕke = 0, pak kϕ c ψke = 0 opeˇt bez ohledu na kψke . Definice 1.6. Formule ϕ se nazy´va´ tautologie, pokud kϕke = 1 prˇi kazˇde´m ohodnocenı´ e. Formule ϕ se nazy´va´ kontradikce, pokud kϕke = 0 prˇi kazˇde´m ohodnocenı´ e. Formule ϕ se nazy´va´ splnitelna´, pokud kϕke = 1 prˇi neˇjake´m ohodnocenı´ e. Formule ϕ, ψ jsou se´manticky ekvivalentnı´, pokud kϕke = kψke pro kazˇde´ ohodnocenı´ e. Pozna´mka 1.7. Pro tautologie, kontradikce a splnitelne´ formule platı´ neˇkolik vztahu˚, ktere´ vesmeˇs plynou prˇ´ımo z definice a z vlastnostı´ logicky´ch operacı´. Uved’me si neˇktere´ z nich. Formule ϕ je tautologie (kontradikce), pra´veˇ kdyzˇ je nϕ kontradikce (tautologie). Formule ϕ je kontradikce, pra´veˇ kdyzˇ nenı´ splnitelna´. Pokud ma´me stanovit, zda-li je neˇjaka´ formule splnitelna´, stacˇ´ı najı´t alesponˇ jedno ohodnocenı´, prˇi ktere´m je pravdiva´. Kazˇda´ tautologie je splnitelna´ formule. Formule ϕ, ψ jsou se´manticky ekvivalentnı´, pra´veˇ kdyzˇ je ϕ e ψ tautologie. Jak mu˚zˇeme zjistit, zda-li je dana´ formule tautologie? Pokud bychom chteˇli mechanicky oveˇrˇit kϕ i ψke = 1 pro kazˇde´ ohodnocenı´ e, narazı´me na proble´m, zˇe pravdivostnı´ch ohodnocenı´ 11
Se´manticky ekvivalentnı´ formule od sebe nelze rozlisˇit pravdivostı´.
je nekonecˇneˇ mnoho, protozˇe v jazyku VL prˇedpokla´da´me (a potrˇebujeme) nekonecˇneˇ mnoho vy´rokovy´ch symbolu˚. Na druhou stranu, v kazˇde´ formuli se vyskytuje pouze konecˇneˇ mnoho vy´rokovy´ch symbolu˚. Pro prˇehlednost tedy zavedeme Oznacˇenı´ 1.8. Vy´raz ϕ(p1 , . . . , pn ) oznacˇuje, zˇe ϕ je formule jazyka VL a p1 , . . . , pn jsou pra´veˇ vsˇechny vy´rokove´ symboly vyskytujı´cı´ se v ϕ. Je te´meˇrˇ evidentnı´, zˇe pokud vezmeme dveˇ obecneˇ ru˚zna´ ohodnocenı´ e a e0 takova´, zˇe e(p1 ) = e0 (p1 ), . . . , e(pn ) = e0 (pn ), pak pro ϕ(p1 , . . . , pn ) ma´me kϕke = kϕke0 . To jest, platı´ Du˚sledek 1.9. Pravdivost formule ϕ prˇi dane´m pravdivostnı´m ohodnocenı´ za´visı´ pouze na ohodnocenı´ vy´rokovy´ch symbolu˚ vyskytujı´cı´ch se ve formuli ϕ. Aplikacı´ prˇedchozı´ u´vahy je jizˇ zrˇejme´, zˇe k tomu, abychom vysˇetrˇili tautologicˇnost formule ϕ, se lze omezit pouze na oveˇrˇenı´ jejı´ pravdivosti v konecˇneˇ mnoha ohodnocenı´ch, ktera´ se od sebe vza´jemneˇ lisˇ´ı v pravdivostnı´ch hodnota´ch prˇirˇazeny´ch vy´rokovy´m symbolu˚m vyskytujı´cı´ch se ve ϕ. Pro ϕ(p1 , . . . , pn ) je trˇeba vzı´t v u´vahu pra´veˇ 2n ohodnocenı´. Na tomto pozorova´nı´ je zalozˇena tabulkova´ metoda neboli tabelace. Tabelacı´ formule ϕ(p1 , . . . , pn ) rozumı´me vysˇetrˇenı´, ve ktery´ch ohodnocenı´ch je ϕ pravdiva´, prˇitom se omezı´me na ohodnocenı´, ktera´ vy´rokovy´m symbolu˚m p1 , . . . , pn prˇirˇazujı´ vza´jemneˇ ru˚zne´ pravdivostnı´ hodnoty. Prˇi tabelaci vytva´rˇ´ıme tabulku, jejı´zˇ rˇa´dky reprezentujı´ pravdivostnı´ ohodnocenı´ a sloupce reprezentujı´ podformule ϕ, ktere´ jsou psa´ny zleva doprava tak, aby vzˇdy platilo, zˇe pokud aktua´lnı´ sloupec odpovı´da´ formuli ψ, pak sloupce odpovı´dajı´cı´ vsˇem vlastnı´m podformulı´m ψ jsou uvedeny prˇed aktua´lnı´m sloupcem. V tabulce tedy bude na poslednı´m mı´steˇ sloupec odpovı´dajı´cı´ ϕ. Rovneˇzˇ je prakticke´ do prvnı´ch n sloupcu˚ zapsat vy´rokove´ symboly p1 , . . . , pn . Naprˇ´ıklad pro formuli p e ((p i nq) c r) bychom mohli sloupce zapsat v porˇadı´ p .. .
q .. .
r .. .
nq .. .
p i nq .. .
(p i nq) c r .. .
p e ((p i nq) c r) . .. .
V tabulce je na dane´m poli 0 (prˇ´ıpadneˇ 1), pokud je v ohodnocenı´ reprezentovane´m rˇa´dkem formule prˇ´ıslusˇna´ sloupci nepravdiva´ (prˇ´ıpadneˇ pravdiva´). V tabulce nejprve vyplnˇujeme hodnoty u sloupcu˚ reprezentujı´cı´ch vy´rokove´ symboly – s ohledem na to, aby byly kazˇde´ dva rˇa´dky ru˚zne´. Pote´ mu˚zˇeme vyplnˇovat zbyle´ sloupce zleva doprava pomocı´ logicky´ch operacı´ – pokud postupujeme zleva doprava, ma´me vzˇdy k dispozici hodnoty pravdivostı´ podformulı´ prˇi ohodnocenı´ reprezentovane´m rˇa´dkem. Pro formuli p e ((p i nq) c r) tedy budeme mı´t tabulku: p q r nq p i nq (p i nq) c r p e ((p i nq) c r) 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 Z nı´ je jasne´, zˇe p e ((p i nq) c r) je splnitelna´ formule (asponˇ v jednom rˇa´dku v poslednı´m sloupci tabulky je 1), tı´m pa´dem nenı´ kontradikce, ale nenı´ tautologie (naprˇ´ıklad na druhe´m rˇa´dku v poslednı´m sloupci je 0, to jest pro ohodnocenı´ e, kde e(p) = 0, e(q) = 0, e(r) = 1 ma´me kp e ((p i nq) c r)ke = 0). Prˇ´ıklad 1.10. Rozhodneme, zda-li jsou formule p d (p i nq),
(p c q) e p,
splnitelne´, tautologie, nebo kontradikce. Provedeme tabelaci: 12
n(p i p).
Tabelace slouzˇ´ı k prˇehledne´mu vysˇetrˇenı´ pravdivosti.
p 0 0 1 1
q 0 1 0 1
pcq 0 0 0 1
pip 1 1 1 1
p i nq 1 1 1 0
p d (p i nq) 1 1 1 1
(p c q) e p 1 1 0 1
n(p i p) 0 0 0 0
Formule p d (p i nq) je tautologie, (p c q) e p je splnitelna´, n(p i p) je kontradikce. Ve vy´rokove´m kalkulu je obvykle´ uvazˇovat pouze dva za´kladnı´ symboly logicky´ch spojek n, i a nikoliv peˇt n, c, d, i, e, jak jsme ucˇinili my. Du˚vody pro snı´zˇenı´ pocˇtu symbolu˚ jsou dva. Prvnı´ du˚vod je cˇisteˇ technicky´ – zjednodusˇenı´ du˚kazu˚. Druhy´m du˚vodem je fakt, zˇe konjunkci, disjunkci a ekvivalenci je mozˇne´ vyja´drˇit pouze pomocı´ negace a implikace – v tomto smyslu jsou i symboly spojek c, d, e nadbytecˇne´. Vskutku, formule p d q, p c q a p e q (v tomto porˇadı´) jsou se´manticky ekvivalentnı´ formulı´m np i q,
n(p i nq),
n((p i q) i n(q i p)),
o cˇemzˇ se mu˚zˇeme prˇesveˇdcˇit tabelacı´: p 0 0 1 1
q 0 1 0 1
np 1 1 0 0
nq 1 0 1 0
np i q 0 1 1 1
p i nq 1 1 1 0
n(p i nq) 0 0 0 1
To jest knp i qke = kp d qke a kn(p i nq)ke = kp c qke prˇi kazˇde´m pravdivostnı´m ohodnocenı´ e. O se´manticke´ ekvivalenci n((p i q) i n(q i p)) s p e q necht’ se cˇtena´rˇ prˇesveˇdcˇ´ı sa´m. Pokud bychom v jazyku VL meˇli pouze symboly spojek n, i, pak ϕ d ψ jizˇ nenı´ formule takove´ho jazyka, ale mu˚zˇeme ji cha´pat jako zkratku za formuli nϕ i ψ.
Shrnutı´ Logika je veˇda zkoumajı´cı´ usuzova´nı´, prˇitom odhlı´zˇ´ı od obsahu a zaby´va´ se pouze formou usuzova´nı´. Vy´rokova´ logika se zaby´va´ forma´lnı´m usuzova´nı´m o vy´rocı´ch. Vy´rokova´ logika ma´ svou syntaxi a se´mantiku. Syntaxe vy´rokove´ logiky definuje pojmy jako je jazyk a formule, ale formulemi (i ostatnı´mi syntakticky´mi pojmy) se zaby´va´ cˇisteˇ z pohledu jejich tvaru. Se´mantika vy´rokove´ logiky zava´dı´ pojem pravdivostnı´ ohodnocenı´ a pravdivost formule prˇi dane´m ohodnocenı´. Se´mantika prˇirˇazuje vy´znam syntakticky´m pojmu˚m. Z hlediska pravdivosti lze kazˇdou formuli klasifikovat jako splnitelnou, kontradikci, nebo tautologii. K oveˇrˇenı´, do ktere´ kategorie formule patrˇ´ı mu˚zˇeme pouzˇ´ıt tabulkovou metodu. Pojmy k zapamatova´nı´ • • • • • •
vy´rok, logicka´ spojka, vy´rokovy´ symbol, jazyk vy´rokove´ logiky, formule, podformule, pravdivostnı´ ohodnocenı´, logicka´ operace, se´manticka´ ekvivalence, kontradikce, tautologie, tabelace
Kontrolnı´ ota´zky 1. Cˇ´ım se zaby´va´ logika a cˇ´ım se nezaby´va´? 2. Jaky´ je vztah mezi vy´rokem a formulı´? 3. Jaky´ je vztah mezi symbolem logicke´ spojky a logickou operacı´? 13
V jazyku VL bychom si vystacˇili pouze se symboly spojek n a i.
4. Existujı´ tautologie, ktere´ nejsou splnitelne´? 5. Cˇ´ım se odlisˇuje implikace od ekvivalence? Cvicˇenı´ 1. Rozhodneˇte, zda-li jsou na´sledujı´cı´ vy´razy formule VL a rozhodneˇte procˇ. p,
np,
(nq c q) e r,
n(nnp),
nq d np,
p i q c r.
Ke kazˇde´ formuli navı´c vypisˇte vsˇechny jejı´ podformule. 2. Zjisteˇte, ktere´ z na´sledujı´cı´ch formulı´ jsou splnitelne´, tautologie, nebo kontradikce. p i (np i q),
p i (nq i (q c np)),
p d (nq c nr),
(q c np) e n(nq d p),
r i (n(p i p) i q),
nq c ((p i q) c p).
´ koly k textu U 1. Vrat’te se k prˇ´ıkladu 1.3 na straneˇ 9. Vhodneˇ formalizujte na´sledujı´cı´ vy´roky v souladu s formalizacı´ vy´roku˚ v prˇ´ıkladu 1.3: „Pokud ma´ Petr desˇtnı´k, pak nejede autem“, „Vecˇer nejsou na obloze cˇerva´nky“, „Ra´no je mlha, kdyzˇ neprsˇ´ı“, „K tomu aby Petr jel autem stacˇ´ı aby byly na obloze cˇerva´nky“. Pokud je mozˇne´ neˇktery´ z vy´roku˚ formalizovat neˇkolika zpu˚soby, uved’te vsˇechny, ktere´ jsou podle va´s „rozumne´“ a proved’te diskusi nad jejich prˇ´ıpadny´mi rozdı´ly. Jsou vasˇe odlisˇne´ formalizace vy´roku˚ se´manticky ekvivalentnı´?
ˇ esˇenı´ R 1. p je formule (podformule: p); np je formule (podformule: p, np); (nq c q) e r je formule kdyzˇ prˇijmeme konvenci o vynecha´nı´ vneˇjsˇ´ıch za´vorek (podformule: q, r, nq, nq c q, (nq c q) e r); n(nnp) nenı´ formule; nq d np je formule kdyzˇ prˇijmeme konvenci o vynecha´nı´ vneˇjsˇ´ıch za´vorek (podformule: p, q, np, nq, nq d np); p i q c r nenı´ formule. 2. p i (np i q) je tautologie, p i (nq i (q c np)) je splnitelna´ ale nenı´ tautologie, p d (nq c nr) je splnitelna´ ale nenı´ tautologie, (q c np) e n(nq d p) je tautologie, r i (n(p i p) i q) je tautologie, nq c ((p i q) c p) je kontradikce. Studijnı´ cı´le: Po prostudova´nı´ kapitoly by student meˇl umeˇt zna´t pojem se´manticke´ho vyply´va´nı´ formulı´ z mnozˇin formulı´. Da´le by meˇl umeˇt vysˇetrˇovat se´manticke´ vyply´va´nı´ pomocı´ tabulkove´ metody a meˇl by umeˇt najı´t norma´lnı´ formy formulı´. Klı´cˇova´ slova: DNF, KNF, booleovska´ funkce, elementa´rnı´ disjunkce, elementa´rnı´ konjunkce, funkcˇnı´ u´plnost, litera´l, norma´lnı´ forma, se´manticke´ vyply´va´nı´, u´plny´ syste´m spojek Potrˇebny´ cˇas: 120 minut.
14
1.3
Se´manticke´ vyply´va´nı´ ve vy´rokove´ logice
V prˇedchozı´m u´vodu do vy´rokove´ logiky jsme prˇesneˇ zavedli intuitivnı´ pojmy vy´rok a pravdivost pomocı´ formulı´ vy´rokove´ logiky a pravdivosti formulı´ prˇi dane´m ohodnocenı´ vy´rokovy´ch symbolu˚. Prˇesne´ zavedenı´ teˇchto pojmu˚ na´m umozˇnilo pracovat s nimi jako s matematicky´mi objekty, o ktery´ch mu˚zˇeme dokazovat ru˚zna´ tvrzenı´ (trˇeba, zˇe kazˇda´ formule je podformule sebe sama, zˇe pravdivost formule prˇi dane´m ohodnocenı´ za´lezˇ´ı pouze na ohodnocenı´ vy´rokovy´ch symbolu˚ vyskytujı´cı´ch se v te´to formuli a podobneˇ). Nynı´ se zameˇrˇ´ıme na prˇesne´ zavedenı´ pojmu vyply´va´nı´, ktery´ ma´ v logice u´strˇednı´ vy´znam. Definice 1.11. Meˇjme formule ψ1 , . . . , ψn , kde n ≥ 0. Formule ϕ se´manticky plyne z formulı´ ψ1 , . . . , ψn (znacˇ´ıme ψ1 , . . . , ψn ϕ), jestlizˇe kϕke = 1 pro kazˇde´ pravdivostnı´ ohodnocenı´ e takove´, zˇe kψ1 ke = 1, . . . , kψn ke = 1. Pozna´mka 1.12. Formule ψ1 , . . . , ψn z prˇedchozı´ definice neˇkdy nazy´va´me prˇedpoklady, formuli ϕ nazy´va´me se´manticky´ du˚sledek formulı´ ψ1 , . . . , ψn . Definice 1.11 zahrnuje i prˇ´ıpad vyply´va´nı´ z nulove´ho pocˇtu formulı´, tedy ϕ. V tomto prˇ´ıpadeˇ dle definice 1.11 ma´me, zˇe ϕ, pra´veˇ kdyzˇ pro kazˇde´ pravdivostnı´ ohodnocenı´ e platı´ kϕke = 1, cozˇ je pra´veˇ kdyzˇ ϕ je tautologie.
ϕ je tautologie, pra´veˇ kdyzˇ ϕ.
Prˇ´ıklad 1.13. Rozhodneˇte, ktere´ z na´sledujı´cı´ch formulı´ q i np,
(p i q) d r,
(s c q) i p,
r i ((p i nq) i r)
se´manticky plynou z formulı´ p i n(r d q), nr. Necht’ϕ oznacˇuje p i n(r d q) a necht’ψ oznacˇuje nr. Provedeme tabelaci: p e1 : 0 0 e2 : 0 0
q 0 0 1 1
r 0 1 0 1
ϕ 1 1 1 1
ψ 1 0 1 0
p e3 : 1 1 1 1
q 0 0 1 1
r 0 1 0 1
ϕ 1 0 0 0
ψ 1 0 1 0
Z prˇedchozı´ tabulky je videˇt, zˇe stacˇ´ı vysˇetrˇovat pravdivost formulı´ v ohodnocenı´ch, ktera´ jsou v tabulce reprezentova´na rˇa´dky oznacˇeny´mi e1 , e2 , e3 , protozˇe to jsou rˇa´dky reprezentujı´cı´ pra´veˇ ta ohodnocenı´, prˇi nichzˇ jsou obeˇ formule pravdive´. Nynı´ zrˇejmeˇ ϕ, ψ q i np, protozˇe formule q i np je pravdiva´ v kazˇde´m z ohodnocenı´ e1 , e2 , e3 . Da´le k(p i q) d rke3 = 0, to jest formule (p i q) d r se´manticky neplyne z ϕ, ψ – ohodnocenı´ e3 na´m slouzˇ´ı jako protiprˇ´ıklad. Stejneˇ tak trˇetı´ formule (s c q) i p neplyne z ϕ, ψ, uvazˇujeme-li naprˇ´ıklad ohodnocenı´ e, kde e(p) = e2 (p), e(q) = e2 (q), e(r) = e2 (r) a e(s) = 1, pak e je ohodnocenı´, prˇi ktere´m jsou obeˇ formule ϕ i ψ pravdive´, ale k(s c q) i pke = 0. Konecˇneˇ formule r i ((p i nq) i r) se´manticky plyne z ϕ, ψ, protozˇe se jedna´ o tautologii (tautologie je pravdiva´ prˇi kazˇde´m ohodnocenı´, tedy i ve vsˇech ohodnocenı´ch, prˇi ktery´ch jsou obeˇ ϕ i ψ pravdive´). Pru˚vodce studiem Se´manticke´ vyply´va´nı´ jsme prˇesneˇ zavedli a mu˚zˇeme se da´l zaby´vat jeho vlastnostmi. V kapitole 6.1 si naprˇ´ıklad nastı´nı´me ota´zku, zda-li je mozˇne´ o se´manticke´m vyply´va´nı´ rozhodnout i bez pouzˇitı´ pravdivostnı´ch ohodnocenı´, to jest pouze manipulacı´ s formulemi. Podobne´ ota´zky jsou ve strˇedu za´jmu forma´lnı´ logiky.
Nynı´ si pro uka´zku doka´zˇeme jednoduche´ tvrzenı´ o se´manticke´m vyply´va´nı´: Veˇta 1.14. χ1 , . . . , χn ϕ i ψ, pra´veˇ kdyzˇ χ1 , . . . , χn , ϕ ψ. 15
Tautologie se´manticky´ plynou z libovolny´ch formulı´.
Du˚kaz. Nejprve prˇedpokla´dejme χ1 , . . . , χn ϕ i ψ a doka´zˇeme χ1 , . . . , χn , ϕ ψ. Stacˇ´ı oveˇrˇit, zˇe pro kazˇde´ ohodnocenı´ e, prˇi ktere´m jsou vsˇechny formule z χ1 , . . . , χn , ϕ pravdive´, ma´me kψke = 1. Jsou-li ale χ1 , . . . , χn , ϕ prˇi ohodnocenı´ e pravdive´, pak dosta´va´me kϕ i ψke = 1 dle prˇedpokladu χ1 , . . . , χn ϕ i ψ. Rovneˇzˇ platı´ kϕke = 1. To jest kϕ i ψke = kϕke → kψke = 1 → kψke = 1. Z vlastnostı´ → pak plyne, zˇe kψke = 1. To jest χ1 , . . . , χn , ϕ ψ. Naopak, prˇedpokla´dejme χ1 , . . . , χn , ϕ ψ. Stacˇ´ı oveˇrˇit, zˇe pro kazˇde´ ohodnocenı´ e, prˇi ktere´m jsou vsˇechny formule χ1 , . . . , χn pravdive´, je kϕ i ψke = 1. Mohou nastat dveˇ situace. V prvnı´m prˇ´ıpadeˇ je kϕke = 0 a tı´m pa´dem kϕ i ψke = 0 → kψke = 1. V druhe´m prˇ´ıpadeˇ kϕke = 1, to jest prˇi ohodnocenı´ e jsou pravdive´ vsˇechny formule z χ1 , . . . , χn , ϕ a tı´m pa´dem dosta´va´me kψke = 1 z prˇedpokladu χ1 , . . . , χn , ϕ ψ. Odtud kϕ i ψke = 1 → 1 = 1, v du˚sledku cˇehozˇ χ1 , . . . , χn ϕ i ψ. Veˇta 1.14 ma´ na´sledujı´cı´ vy´znam: k tomu abychom proka´zali, zˇe ϕ i ψ se´manticky plyne ze χ1 , . . . , χn stacˇ´ı uka´zat, zˇe ψ se´manticky plyne z χ1 , . . . , χn , ϕ a obra´ceneˇ, k tomu abychom proka´zali, zˇe ψ se´manticky plyne z χ1 , . . . , χn , ϕ, stacˇ´ı uka´zat, zˇe implikace ϕ i ψ se´manticky plyne z χ1 , . . . , χn . Aplikacı´ tohoto tvrzenı´ mu˚zˇeme naprˇ´ıklad okamzˇiteˇ tvrdit, zˇe ϕ i ϕ, protozˇe ϕ se´manticky plyne z ϕ trivia´lneˇ. Dvojna´sobnou aplikacı´ tvrzenı´ na zrˇejmy´ fakt ϕ, ψ ϕ c ψ dosta´va´me ϕ i (ψ i (ϕ c ψ)) a tak podobneˇ. Veˇta 1.14 rovneˇzˇ da´va´ dalsˇ´ı na´vod pro oveˇrˇenı´ se´manticke´ho vyply´va´nı´: k tomu, abychom oveˇrˇili, zˇe ϕ se´manticky plyne z χ1 , . . . , χn , stacˇ´ı oveˇrˇit, zˇe formule χ1 i (χ2 i (· · · (χn i ϕ) · · · )) je tautologie.
1.4
Norma´lnı´ formy formulı´
V kapitole 1.2.2 jsme pro formuli ϕ sestrojovali tabulku, kterou jsme vysˇetrˇovali pravdivost formule v za´vislosti na ohodnocenı´ vy´rokovy´ch symbolu˚. Nabı´zı´ se prˇirozena´ ota´zka, zdali nenı´ mozˇne´ prove´st opacˇny´ proces. To jest k libovolne´ tabulce o 2n rˇa´dcı´ch (vyplneˇny´ch nulami a jednicˇkami) najı´t formuli ϕ(p1 , . . . , pn ) tak, zˇe jejı´ tabelacı´ zı´ska´me vy´chozı´ tabulku pravdivostnı´ch hodnot. V te´to kapitole si uka´zˇeme, zˇe je tomu vskutku tak. Nalezena´ formule bude navı´c ve specia´lnı´m tvaru – norma´lnı´ formeˇ. Postup uvedeny´ v te´to kapitole lze aplikovat naprˇ´ıklad v situaci kdy zna´me pravdivostnı´ vy´stupy neˇjake´ho syste´mu, ktere´ jsme zı´skali jeho pozorova´nı´m nebo jako informaci od experta, a potrˇebujeme je vyja´drˇit (popsat) pomocı´ vy´rokove´ formule. Mı´sto pojmu „rˇa´dek v tabulce“ nynı´ zavedeme o neˇco prˇesneˇjsˇ´ı pojem. Definice 1.15. n-a´rnı´ booleovska´ funkce je prˇedpis f , ktery´ kazˇdy´m n pravdivostnı´m hodnota´m a1 , . . . , an (v tomto porˇadı´) prˇideˇluje pravdivostnı´ hodnotu f (a1 , . . . , an ). Pro kazˇdou ϕ(p1 , . . . , pn ) budeme uvazˇovat n-a´rnı´ booleovskou funkci f ϕ takovou, zˇe f ϕ kp1 ke , . . . , kpn ke = kϕke pro kazˇde´ ohodnocenı´ e. Prˇ´ıklad 1.16. Nejprve si uveˇdomte, zˇe f ϕ je dı´ky du˚sledku 1.9 vzˇdy dobrˇe definovana´ booleovska´ funkce. Vezmeme-li naprˇ´ıklad formuli p c q, pak prˇ´ıslusˇna´ booleovska´ funkce f pcq je bina´rnı´ a ma´me f pcq (0, 0) = f pcq (0, 1) = f pcq (1, 0) = 0 a f pcq (1, 1) = 1. Jiny´mi slovy, f pcq bychom mohli vyja´drˇit pomocı´ logicke´ operace ∧ jako f pcq (a, b) = a ∧ b. Analogicky trˇeba f pe(qcr) (a, b, c) = a ↔ (b ∧ c) a tak da´le. Prˇedchozı´ u´vahu lze zobecnit pro libovolnou formuli ϕ o cˇemzˇ se mu˚zˇete snadno prˇesveˇdcˇit. Booleovske´ funkce tedy v jiste´m smyslu zobecnˇujı´ logicke´ operace – v jiste´m smyslu je to tote´zˇ jak uvidı´me da´le. Nynı´ si zavedeme dveˇ norma´lnı´ formy formulı´ VP. Nejprve jedno uprˇesneˇnı´. Tabulkovou metodou se lze snadno prˇesveˇdcˇit, zˇe naprˇ´ıklad formule p c (q c r) a (p c q) c r jsou se´manticky ekvivalentnı´, to jest u formulı´ ve tvaru konjunkce neza´lezˇ´ı na uza´vorkova´nı´. To same´ platı´ pokud bychom nahradili konjunkci disjunkcı´. V dalsˇ´ım tedy budeme psa´t strucˇneˇ p1 c · · · c pn mı´sto p1 c (p2 c (· · · (pn−1 c pn ) · · · )). Analogicky pro disjunkci. 16
Booleovske´ funkce lze cha´pat jako obecne´ logicke´ operace.
Definice 1.17. Kazˇdy´ vy´rokovy´ symbol p a jeho negaci np nazveme litera´l. Necht’ l1 , . . . , lk jsou litera´ly. Formuli ve tvaru l1 c · · · c lk nazveme elementa´rnı´ konjunkce litera´lu˚, formuli ve tvaru l1 d · · · d lk nazveme elementa´rnı´ disjunkce litera´lu˚. Formule ϕ je v – disjunktivnı´ norma´lnı´ formeˇ (DNF), pokud je ve tvaru ϑ1 d · · · d ϑn a ϑ1 , . . . , ϑn jsou elementa´rnı´ konjunkce litera´lu˚, – konjunktivnı´ norma´lnı´ formeˇ (KNF), pokud je ve tvaru ϑ1 c · · · c ϑn a ϑ1 , . . . , ϑn jsou elementa´rnı´ disjunkce litera´lu˚. Formule ψ(p1 , . . . , pn ) se nazy´va´ disjunktivnı´ (konjunktivnı´ ) norma´lnı´ forma n-a´rnı´ booleovske´ funkce f , pokud je ψ v DNF (KNF) a f (a1 , . . . , an ) = f ψ (a1 , . . . , an ) prˇi vsˇech pravdivostnı´ch hodnota´ch a1 , . . . , an . Formule ψ se nazy´va´ disjunktivnı´ (konjunktivnı´ ) norma´lnı´ forma formule ϕ, pokud je ψ v DNF (KNF) a ψ je se´manticky ekvivalentnı´ ϕ. Algoritmus nalezenı´ DNF a KNF pro zadanou n-a´rnı´ booleovskou funkci si nejprve neforma´lneˇ uka´zˇeme na prˇ´ıkladu. Meˇjme tabulku, ktera´ na´m definuje bina´rnı´ booleovskou funkci f : a 0 0 1 1
b 0 1 0 1
f (a, b) 1 0 1 1
Kdybychom meˇli slovneˇ vyja´drˇit „jakou informaci tabulka zachycuje“, mohli bychom to vyja´drˇit naprˇ´ıklad obratem: „f (a, b) = 1, pra´veˇ kdyzˇ a = 0 a b = 0, nebo kdyzˇ a = 1 a b = 0, nebo kdyzˇ a = 1 a b = 1“, nebo kratsˇ´ım obratem „f (a, b) = 1, pra´veˇ kdyzˇ neplatı´ a = 0 a b = 1“. Pokud prˇepı´sˇeme prvnı´ (druhe´) vyja´drˇenı´ pomocı´ formule, najdeme tak DNF (KNF) pro f . Da´le budeme pouzˇ´ıvat vy´rokove´ symboly p, q, prˇitom p bude oznacˇovat vy´rok „a = 1“ a q bude oznacˇovat vy´rok „b = 1“. Nalezenı´ DNF je intuitivneˇ jasne´: (np c nq) d (p c nq) d (p c q) – – znovu srovnejte s uvedeny´m slovnı´m popisem. Prˇi nalezenı´ KNF se snazˇ´ıme formalizovat popis, ktery´ nezachycuje, kdy je booleovska´ funkce pravdiva´, ale naopak za´rovenˇ vylucˇuje vsˇechny situace, kdy je nepravdiva´. Prˇ´ımy´m prˇepisem vy´sˇe uvedene´ho popisu bychom dostali formuli n(np c q), ktera´ ale nenı´ v KNF. n(np c q) je ale se´manticky´ ekvivalentnı´ p d nq, cozˇ uzˇ je formule v KNF. Cˇtena´rˇ se mu˚zˇe tabulkovou metodou prˇesveˇdcˇit, zˇe obeˇ zkonstruovane´ formy jsou skutecˇneˇ prˇedpisem vy´chozı´ funkce f . Nynı´ si algoritmy nalezenı´ DNF a KNF podrobneˇ popı´sˇeme. Algoritmus 1.18 (Nalezenı´ DNF). Vstup: n-a´rnı´ booleovska´ funkce f Vy´stup: formule ϕ v DNF Zvolı´me n vza´jemneˇ ru˚zny´ch vy´rokovy´ch symbolu˚ p1 , . . . , pn , jme´na symbolu˚ obvykle volı´me podle potrˇeby. Pro pravdivostnı´ hodnoty a1 , . . . , an (v tomto porˇadı´) mu˚zˇeme uvazˇovat elementa´rnı´ konjunkci a◦1 c · · · c a◦n , kde a◦i je bud’to litera´l pi , pokud je ai = 1, nebo litera´l npi v opacˇne´m prˇ´ıpadeˇ (to jest ai = 0). Pokud neexistujı´ zˇa´dne´ a1 , . . . , an tak, aby f (a1 , . . . , an ) = 1, pak polozˇ´ıme ϕ = p c np, kde p je neˇktery´ ze symbolu˚ p1 , . . . , pn . V opacˇne´m prˇ´ıpadeˇ polozˇ´ıme ϕ = ϑ1 d · · · d ϑk , kde ϑi (i = 1, . . . , k) jsou pra´veˇ vsˇechny formule ve tvaru a◦1 c · · · c a◦n , pro ktere´ platı´ f (a1 , . . . , an ) = 1. Algoritmus 1.19 (Nalezenı´ KNF). Vstup: n-a´rnı´ booleovska´ funkce f Vy´stup: formule ϕ v KNF Zvolı´me n vza´jemneˇ ru˚zny´ch vy´rokovy´ch symbolu˚ p1 , . . . , pn , jme´na symbolu˚ obvykle volı´me podle potrˇeby. Pro pravdivostnı´ hodnoty a1 , . . . , an (v tomto porˇadı´) mu˚zˇeme uvazˇovat 17
Norma´lnı´ formy hleda´me jako „prˇedpis“ pro booleovskou funkci.
elementa´rnı´ disjunkci a•1 d · · · d a•n , kde a•i je bud’to litera´l pi , pokud je ai = 0, nebo litera´l npi v opacˇne´m prˇ´ıpadeˇ (to jest ai = 1). Pokud neexistujı´ zˇa´dne´ a1 , . . . , an tak, aby f (a1 , . . . , an ) = 0, pak polozˇ´ıme ϕ = p d np, kde p je neˇktery´ ze symbolu˚ p1 , . . . , pn . V opacˇne´m prˇ´ıpadeˇ polozˇ´ıme ϕ = ϑ1 c · · · c ϑk , kde ϑi (i = 1, . . . , k) jsou pra´veˇ vsˇechny formule ve tvaru a•1 d · · · d a•n , pro ktere´ platı´ f (a1 , . . . , an ) = 0. Pozna´mka 1.20. Za pozornost stojı´, zˇe formule vytvorˇene´ prˇedcha´zejı´cı´mi algoritmy, azˇ na formule p c np a p d np, obsahujı´ v kazˇde´ elementa´rnı´ konjunkci (disjunkci) libovolny´ vy´rokovy´ symbol z p1 , . . . , pn jako litera´l pra´veˇ jednou. Takovy´m formulı´m rˇ´ıka´me, zˇe jsou v u´plne´ DNF, prˇ´ıpadneˇ u´plne´ KNF. KNF a DNF dane´ booleovske´ funkce nenı´ urcˇena jednoznacˇneˇ a to ani v prˇ´ıpadeˇ, kdybychom zanedbali pouzˇitı´ ru˚zny´ch vy´rokovy´ch symbolu˚ cˇi jine´ uza´vorkova´nı´ vy´razu˚. Naprˇ´ıklad formule (p d q) c (q d nq) a (p d q) jsou obeˇ v KNF a jsou se´manticky ekvivalentnı´ – tudı´zˇ se jedna´ o KNF te´zˇe booleovske´ funkce. Prˇ´ıklad 1.21. K na´sledujı´cı´ tabulkou zadane´ booleovske´ funkci najdeme DNF a KNF. Tabulka je z u´sporny´ch du˚vodu˚ rozdeˇlena na dveˇ cˇa´sti: a 0 0 0 0
b 0 0 1 1
c 0 1 0 1
f (a, b, c) 1 0 1 1
a 1 1 1 1
b 0 0 1 1
c 0 1 0 1
f (a, b, c) 0 1 0 1
Ma´me f (0, 0, 0) = f (0, 1, 0) = f (0, 1, 1) = f (1, 0, 1) = f (1, 1, 1) = 1, to jest DNF ma´ tvar (np c nq c nr) d (np c q c nr) d (np c q c r) d (p c nq c r) d (p c q c r), da´le ma´me f (0, 0, 1) = f (1, 0, 0) = f (1, 1, 0) = 0, to jest KNF ma´ tvar (p d q d nr) c (np d q d r) c (np d nq d r). Nynı´ je jasne´, jak najı´t DNF (KNF) k ϕ(p1 , . . . , pn ). Stacˇ´ı najı´t formuli ψ(p1 , . . . , pn ), ktera´ je disjunktivnı´ (konjunktivnı´) norma´lnı´ forma booleovske´ funkce f ϕ . Pokud zachova´me identicke´ znacˇenı´ vy´rokovy´ch symbolu˚, pak budou formule ϕ, ψ se´manticky ekvivalentnı´. Prˇ´ıklad 1.22. Najdeme DNF a KNF formule p e q. Tabelacı´ dosta´va´me p 0 0 1 1
q 0 1 0 1
peq 1 0 0 1
To jest DNF ma´ tvar (np c nq) d (p c q), KNF ma´ tvar (p d nq) c (np d q). V prˇ´ıkladu 1.22 jsme nasˇli KNF a DNF formule p e q, prˇitom booleovska´ funkce f peq (a, b) odpovı´da´ logicke´ operaci prˇ´ıslusˇne´ ekvivalenci, to jest f peq (a, b) = a ↔ b. Jiny´mi slovy, obeˇ nalezene´ norma´lnı´ formy je mozˇne´ cha´pat jako vyja´drˇenı´ ekvivalence pouze pomocı´ konjunkce, disjunkce a negace. Stejnou u´vahu bychom mohli prove´st i pro symbol spojky i a logickou operaci →. To na´s prˇ´ımo dovede k u´vaze, zˇe za za´kladnı´ symboly spojek jazyka VL bychom mohli vzı´t pouze n, c a d a na se´manticke´ u´rovni bychom je interpretovali prˇ´ıslusˇny´mi logicky´mi operacemi. To je mozˇna´ poneˇkud prˇekvapujı´cı´, protozˇe tı´m pa´dem zna´me jizˇ trˇetı´ syste´m logicky´ch spojek, ktery´ je dostacˇujı´cı´ z hlediska popisu vsˇech ostatnı´ch spojek. Prˇipomenˇme, zˇe na´sˇ vy´chozı´ syste´m obsahoval vsˇechny symboly: n, c, d, i, e a da´le jsme uvedli, zˇe se lze bez u´jmy omezit pouze na n, i. Nynı´ jsme zjistili, zˇe stacˇ´ı n, c, d. Nejsou to vsˇak jedine´ syste´my spojek, ktere´ jsou z hlediska popisu ostatnı´ch dostacˇujı´cı´. 18
n, c, d, i, e n(p i p) pcq n(p i q) p n(q i p) q n(p e q) pdq n(p d q) peq nq qip np piq n(p c q) pip
n, i n(p i p) n(p i nq) n(p i q) p n(q i p) q (p i q) i n(q i p) np i q n(np i q) n((p i q) i n(q i p)) nq qip np piq p i nq pip
⇑ (p ⇑ (p ⇑ p)) ⇑ (p ⇑ (p ⇑ p)) (p ⇑ q) ⇑ (p ⇑ q) (p ⇑ (p ⇑ p)) ⇑ (p ⇑ (p ⇑ q)) p (p ⇑ (p ⇑ p)) ⇑ (q ⇑ (p ⇑ p)) q (p ⇑ (p ⇑ q)) ⇑ (q ⇑ (p ⇑ p)) (p ⇑ p) ⇑ (q ⇑ q) (p ⇑ (p ⇑ p)) ⇑ ((p ⇑ p) ⇑ (q ⇑ q)) (p ⇑ q) ⇑ ((p ⇑ p) ⇑ (q ⇑ q)) q ⇑q q ⇑ (p ⇑ p) p⇑p p ⇑ (p ⇑ q) p⇑q p ⇑ (p ⇑ p)
Tabulka 2: Trˇi u´plne´ syste´my spojek Syste´my logicky´ch spojek, pomocı´ nichzˇ lze vyja´drˇit libovolnou dalsˇ´ı spojku nazy´va´me u´plne´ syste´my spojek. Na u´rovni se´mantiky spojek (to jest prˇ´ıslusˇny´ch logicky´ch operacı´) to znamena´, zˇe libovolnou logickou operaci lze zkonstruovat pouze ze za´kladnı´ch logicky´ch operacı´ – te´to vlastnosti se ˇr´ıka´ funkcˇnı´ u´plnost. Cˇ´ım veˇtsˇ´ı je syste´m za´kladnı´ch spojek, ktere´ uvazˇujeme v jazyku VL, tı´m jednodusˇsˇ´ı je vyjadrˇova´nı´ ostatnı´ch spojek, naopak, pokud je syste´m spojek maly´, vyjadrˇova´nı´ ostatnı´ch spojek mu˚zˇe by´t komplikovane´ a formule slouzˇ´ıcı´ k vyja´drˇenı´ zby´vajı´cı´ch spojek jsou obvykle dlouhe´. Specia´lnı´ vy´znam majı´ Pierceova spojka (vy´znam: „ani . . . , ani . . . “, oznacˇujeme symbolem ⇓) a Shefferova spojka (vy´znam: „pokud . . . , pak neplatı´ . . . “, oznacˇujeme symbolem ⇑), ktere´ samy o sobeˇ tvorˇ´ı u´plny´ syste´m spojek. Obeˇ dveˇ spojky jsou interpretova´ny na´sledujı´cı´mi logicky´mi operacemi: ↓ 0 1
0 1 0
↑ 0 1
1 0 0
0 1 1
1 1 0
Prˇ´ıklad 1.23. V tabulce 2 je uveden souhrn vsˇech bina´rnı´ch booleovsky´ch funkcı´, ktere´ jsou popsa´ny formulemi pomocı´ trˇ´ı ru˚zny´ch syste´mu˚ spojek. Kazˇda´ bina´rnı´ booleovska´ funkce 2 naby´va´ pra´veˇ 22 hodnot, to jest vza´jemneˇ ru˚zny´ch bina´rnı´ch booleovsky´ch funkcı´ je 22 = 16.
Shrnutı´ Se´manticke´ vyply´va´nı´ formalizuje intuitivnı´ pojem „vyply´va´nı´“ z mnozˇin formulı´. Se´manticke´ vyply´va´nı´ je zavedeno pomocı´ pojmu ohodnocenı´. Pro oveˇrˇenı´ se´manticke´ho vyply´va´nı´ je mozˇne´ pouzˇ´ıt tabelaci. Booleovske´ funkce prˇedstavujı´ obecne´ logicke´ operace. Pro kazˇdou booleovskou funkci mu˚zˇeme najı´t vy´rokovou formuli, ktera´ jej jejı´m prˇedpisem. Formule v disjunktivnı´ (konjunktivnı´) norma´lnı´ formeˇ jsou vy´rokove´ formule ve specia´lnı´ch tvarech. Ke kazˇde´ vy´rokove´ formuli lze najı´t logicky ekvivalentnı´ formuli, ktera´ je v disjunktivnı´ nebo konjunktivnı´ norma´lnı´ formeˇ. K nalezenı´ norma´lnı´ch forem lze opeˇt pouzˇ´ıt tabelaci. Pojmy k zapamatova´nı´ • se´manticke´ vyply´va´nı´, 19
U´plny´ syste´m spojek stacˇ´ı k popisu vsˇech ostatnı´ch spojek.
• • • •
booleovska´ funkce, elementa´rnı´ disjunkce (konjunkce), disjunktivnı´ (konjunktivnı´) norma´lnı´ forma, funkcˇnı´ u´plnost, u´plny´ syste´m spojek,
Kontrolnı´ ota´zky 1. 2. 3. 4.
Co jsou to litera´ly? Mu˚zˇe by´t neˇkdy kontradikce se´manticky´m du˚sledkem? Cˇ´ım se lisˇ´ı postup nalezenı´ DNF a KNF dane´ formule? Co je to funkcˇnı´ u´plnost?
Cvicˇenı´ 1. Formuli (q e n(r i p)) d p prˇeved’te do DNF a KNF. 2. Rozhodneˇte, ktere´ z formulı´ r i (nr i (q i r)),
p i (q c r),
p i (q i n(p i q)),
(p i q) i nr,
(r i p) i (nq i nr),
n((p d q) i r),
se´manticky plynou z formulı´ p i nq, r i (p d r), r i n(p i q). 3. Dokazˇte na´sledujı´cı´ tvrzenı´. (a) Pokud χ1 , . . . , χn ϕ, pak ϑ1 , . . . , ϑk , χ1 , . . . , χn ϕ. (b) χ1 , . . . , χn , nϕ p c np, pra´veˇ kdyzˇ χ1 , . . . , χn ϕ. (c) Pokud χ1 , . . . , χn ϕ a χ1 , . . . , χn ϕ i ψ, pak χ1 , . . . , χn ψ. (d) ϕ a ψ jsou logicky ekvivalentnı´, pra´veˇ kdyzˇ ϕ ψ a ψ ϕ.
´ koly k textu U 1. Vrat’te se k prˇ´ıkladu 1.3 na straneˇ 9 a k u´kolu k textu z minule´ kapitoly. Pro vasˇi formalizaci jizˇ uvedeny´ch vy´roku˚ „Pokud ma´ Petr desˇtnı´k, pak nejede autem“, „Vecˇer nejsou na obloze cˇerva´nky“, „Ra´no je mlha, kdyzˇ neprsˇ´ı“, „K tomu aby Petr jel autem stacˇ´ı aby byly na obloze cˇerva´nky“, zjisteˇte, ktere´ z formulı´ prˇ´ıslusˇny´ch vy´sˇe uvedeny´m vy´roku˚m se´manticky plynou z formulı´ uvedeny´ch v prˇ´ıkladu 1.3 a prˇesveˇdcˇte se, zda-li vy´sledek koresponduje s intuitivnı´m usuzova´nı´m. 2. Prˇedpokla´dejme, zˇe jiste´ zarˇ´ızenı´ je ovla´da´no cˇloveˇkem – expertem, ktery´ na za´kladeˇ pozorova´nı´ trˇ´ı cˇidel A, B, C ovla´da´ zarˇ´ızenı´ pomocı´ dvou spı´nacˇu˚ P , Q. Cˇidla i spı´nacˇe naby´vajı´ dvou stavu˚ (nesvı´tı´/svı´tı´, prˇ´ıpadneˇ vypnuto/zapnuto), ktere´ oznacˇ´ıme 0/1. Prˇi kazˇde´ konfiguraci cˇidel pracovnı´k jisty´m zpu˚sobem nastavı´ spı´nacˇe tak, aby zarˇ´ızenı´ vykona´valo pozˇadovanou cˇinnost. V na´sledujı´cı´ tabulce je uvedena za´vislost nastavenı´ spı´nacˇu˚ na hodnota´ch cˇidel. A 0 0 0 0
B 0 0 1 1
C 0 1 0 1
P 1 1 0 1
Q 0 1 1 0
A 1 1 1 1
Popisˇte ˇr´ıdı´cı´ cˇinnost experta pomocı´ formulı´.
20
B 0 0 1 1
C 0 1 0 1
P 1 0 1 0
Q 1 0 1 1
ˇ esˇenı´ R 1. DNF: (np c nq c nr) d (np c q c r) d (p c nq c nr) d (p c nq c r) d (p c q c nr) d (p c q c r); KNF: (p d q d nr) c (p d nq d r). 2. Se´manticke´ du˚sledky: r i (nr i (q i r)), p i (q i n(p i q)), (p i q) i nr. 3. (a) Prˇ´ımy´ du˚sledek faktu: pokud jsou prˇi pravdivostnı´m ohodnocenı´ e pravdive´ vsˇechny formule ϑ1 , . . . , ϑk , χ1 , . . . , χn , pak jsou pravdive´ i χ1 , . . . , χn . (b) Plyne z faktu, zˇe formule p c np je kontradikce, tudı´zˇ χ1 , . . . , χn , nϕ p c np, pra´veˇ kdyzˇ neexistuje zˇa´dne´ pravdivostnı´ ohodnocenı´, prˇi ktere´m by byly vsˇechny formule z χ1 , . . . , χn , nϕ pravdive´. (c) Vezmeˇme pravdivostnı´ ohodnocenı´ e, prˇi ktere´m jsou χ1 , . . . , χn pravdive´. Pak pokud kϕke = 1, pak z prˇedpokladu kϕ i ψke = 1 → kψke = 1, tedy kψke = 1. (d) Plyne prˇ´ımo z definice logicke´ ekvivalence a se´manticke´ho vyply´va´nı´.
21
2
Mnozˇiny, relace, funkce
Studijnı´ cı´le: Po prostudova´nı´ kapitol 2.1 a 2.2 by student meˇl rozumeˇt pojmu mnozˇina. Meˇl by zna´t za´kladnı´ operace a vztahy definovane´ nad mnozˇinami. Student by meˇl tyto pojmy zna´t aktivneˇ, meˇl by umeˇt samostatneˇ doka´zat jednoducha´ tvrzenı´, hledat prˇ´ıklady a protiprˇ´ıklady. Klı´cˇova´ slova: mnozˇina, prvek, podmnozˇina, pru˚nik, sjednocenı´, rozdı´l. Potrˇebny´ cˇas: 180 minut.
2.1
Co a k cˇemu jsou mnozˇiny, relace a funkce
Mnozˇiny, relace a funkce jsou matematicky´mi proteˇjsˇky jevu˚, se ktery´mi se setka´va´me v kazˇdodennı´m zˇivoteˇ. Mnozˇina je proteˇjsˇkem souboru (cˇi seskupenı´ ). Relace je proteˇjsˇkem vztahu. Funkce je proteˇjsˇkem prˇirˇazenı´. Pojmy mnozˇina, relace a funkce patrˇ´ı k za´kladnı´m stavebnı´m prvku˚m diskre´tnı´ matematiky a matematiky vu˚bec. Umozˇnˇujı´ prˇesne´, srozumitelne´ a jednoduche´ vyjadrˇova´nı´. Pouzˇ´ıvajı´ se v matematice (bez jejich znalosti nemu˚zˇeme cˇ´ıst zˇa´dny´ matematicky´ text) a v rˇadeˇ aplikovany´ch oboru˚ vcˇetneˇ informatiky (funkciona´lnı´ programova´nı´, relacˇnı´ databa´ze, informacˇnı´ syste´my, znalostnı´ inzˇeny´rstvı´ a dalsˇ´ı).
Mnozˇina, relace a funkce jsou za´kladnı´ pojmy matematiky. V informatice se bez nich neobejdeme.
Pru˚vodce studiem S pojmy mnozˇina, relace a funkce se podrobneˇ seznamte. Jsou to jednoduche´ pojmy. Byly zavedeny, abychom mohli prˇesneˇ mluvit o souborech, seskupenı´ch, syste´mech, vztazı´ch, prˇirˇazenı´ch apod. Nenechte se sve´st tı´m, zˇe prˇeci vı´te, co je to seskupenı´ nebo vztah. Kdyzˇ formalismus mnozˇin, relacı´ a funkcı´ dobrˇe zvla´dnete, usˇetrˇ´ıte si spoustu pra´ce v dalsˇ´ım studiu. Navı´c budete umeˇt prakticke´ proble´my dobrˇe „uchopit“ a popsat. Kdyzˇ naopak formalismus mnozˇin, relacı´ a funkcı´ nezvla´dnete, budete s tı´m i v dalsˇ´ıch oblastech neusta´le bojovat.
2.2 2.2.1
Mnozˇiny Pojem mnozˇiny
Pojem mnozˇina je matematicky´m proteˇjsˇkem beˇzˇneˇ pouzˇ´ıvany´ch pojmu˚ soubor, seskupenı´, apod. Mnozˇina je objekt, ktery´ se skla´da´ z jiny´ch objektu˚, tzv. prvku˚ te´ mnozˇiny. Tak naprˇ´ıklad mnozˇina (oznacˇme ji S) vsˇech sudy´ch cˇ´ısel, ktere´ jsou veˇtsˇ´ı nezˇ 1 a mensˇ´ı nezˇ 9, se skla´da´ z cˇ´ısel 2, 4, 6, 8. Tato cˇ´ısla jsou tedy prvky mnozˇiny S. Fakt, zˇe S se skla´da´ pra´veˇ z prvku˚ 2, 4, 6, 8 zapisujeme S = {2, 4, 6, 8}.
Mnozˇina je objekt, ktery´ se skla´da´ z jiny´ch objektu˚, tzv. prvku˚ mnozˇiny.
Mnozˇiny zpravidla oznacˇujeme velky´mi pı´smeny (A, B, . . . , Z), jejich prvky pak maly´mi pı´smeny (a, b, . . . , z). Fakt, zˇe x je prvkem mnozˇiny A oznacˇujeme x∈A a ˇr´ıka´me take´, zˇe x patrˇ´ı do A (poprˇ. x je v A, A obsahuje x apod.). Nenı´-li x prvkem A, pı´sˇeme x 6∈ A. Dany´ objekt do dane´ mnozˇiny bud’ patrˇ´ı, nebo nepatrˇ´ı. Mnozˇina je jednoznacˇneˇ da´na svy´mi prvky, tj. tı´m, ktere´ prvky do nı´ patrˇ´ı a ktere´ ne. Nema´ tedy smysl hovorˇit o porˇadı´ prvku˚ v mnozˇineˇ (tj. pojmy „prvnı´ prvek mnozˇiny“, „druhy´ prvek mnozˇiny“ atd. nemajı´ smysl). Nema´ take´ smysl uvazˇovat, kolikra´t je dany´ prvek v dane´ mnozˇineˇ (tj. rˇ´ıci „prvek x je v dane´ mnozˇineˇ A trˇikra´t“). 22
Mnozˇina je jednoznacˇneˇ da´na tı´m, jake´ prvky obsahuje.
Specia´lnı´ mnozˇinou je tzv. pra´zdna´ mnozˇina. Oznacˇuje se ∅. Tato mnozˇina neobsahuje zˇa´dny´ prvek, tj. pro kazˇdy´ prvek x platı´ x 6∈ ∅. Prˇ´ıklad 2.1. Vy´znacˇne´ mnozˇiny cˇ´ısel majı´ sva´ specia´lnı´ oznacˇenı´. • N oznacˇuje mnozˇinu vsˇech prˇirozeny´ch cˇ´ısel. N tedy sesta´va´ z prvku˚ 1, 2, 3, 4, 5, . . . . • Z oznacˇuje mnozˇinu vsˇech 0, 1, −1, 2, −2, 3, −3, 4, −4, . . . .
cely´ch
cˇ´ısel.
Z
tedy
sesta´va´
z
prvku˚
• Q oznacˇuje mnozˇinu vsˇech raciona´lnı´ch cˇ´ısel. Q tedy sesta´va´ z celocˇ´ıselny´ch zlomku˚, tj. z cˇ´ısel m n , kde m ∈ Z, n ∈ N. √ • R oznacˇuje mnozˇinu vsˇech rea´lny´ch cˇ´ısel. Ta obsahuje i iraciona´lnı´ cˇ´ısla, naprˇ. 2, π apod. Mnozˇiny se deˇlı´ na konecˇne´ a nekonecˇne´. Mnozˇina A se nazy´va´ konecˇna´, pra´veˇ kdyzˇ existuje prˇirozene´ cˇ´ıslo n tak, zˇe prvky te´to mnozˇiny lze jednoznacˇneˇ ocˇ´ıslovat cˇ´ısly 1, 2, . . . n. Cˇ´ıslo n se prˇitom nazy´va´ pocˇet prvku˚ mnozˇiny A a znacˇ´ıme ho |A|, tj. |A| = n. Rˇ´ıka´me take´, zˇe A ma´ n prvku˚. Naprˇ. mnozˇina {2, 4, 6, 8} je konecˇna´. Zvolı´me-li totizˇ n = 4, mu˚zˇeme jejı´ prvky ocˇ´ıslovat naprˇ. na´sledovneˇ: prvku 2 prˇirˇadı´me cˇ´ıslo 1, prvku 4 cˇ´ıslo 2, prvku 6 cˇ´ıslo 3, prvku 8 cˇ´ıslo 4. Ma´me tedy |{2, 4, 6, 8}| = 4, tj. pocˇet prvku˚ mnozˇiny {2, 4, 6, 8} je 4. Mnozˇina A se nazy´va´ nekonecˇna´, nenı´-li konecˇna´. Pak pı´sˇeme |A| = ∞ a rˇ´ıka´me, zˇe A ma´ nekonecˇneˇ mnoho prvku˚. Naprˇ. mnozˇina N vsˇech prˇirozeny´ch cˇ´ısel je nekonecˇna´. 2.2.2
Prvky konecˇny´ch mnozˇin lze ocˇ´ıslovat cˇ´ısly 1, . . . , n. Pokud to nelze, je mnozˇina nekonecˇna´.
Za´pisova´nı´ mnozˇin
Mnozˇiny zapisujeme dveˇma za´kladnı´mi zpu˚soby. Prvnı´m je za´pis tzv. vy´cˇtem prvku˚. Mnozˇina sesta´vajı´cı´ pra´veˇ z prvku˚ a1 , . . . , an se oznacˇuje {a1 , . . . , an }. Prˇ´ıkladem je vy´sˇe uvedeny´ za´pis {2, 4, 6, 8}. Za´pis vy´cˇtem prvku˚ mu˚zˇeme pouzˇ´ıt u konecˇny´ch mnozˇin. Druhy´m je za´pis uda´nı´m tzv. charakteristicke´ vlastnosti. Mnozˇina sesta´vajı´cı´ pra´veˇ z prvku˚, ktere´ splnˇujı´ vlastnost ϕ(x), se oznacˇuje {x | ϕ(x)}. Vlastnost ϕ(x) mu˚zˇe by´t popsana´ trˇeba i v prˇirozene´m jazyce, ale musı´ mı´t jednoznacˇny´ smysl. Naprˇ. je-li ϕ(x) vlastnost „x je sude´ prˇirozene´ cˇ´ıslo veˇtsˇ´ı nezˇ 1 a mensˇ´ı nezˇ 9“, mu˚zˇeme uvazˇovat mnozˇinu oznacˇenou {x | ϕ(x)}. Ta je shodna´ s mnozˇinou oznacˇenou {2, 4, 6, 8}. Mı´sto „mnozˇina oznacˇena´ za´pisem {. . . }“ budeme rˇ´ıkat jen „mnozˇina {. . . }“. Naprˇ. rˇ´ıka´me „mnozˇina {a, b, c} ma´ trˇi prvky“, „uvazˇujme mnozˇinu {x | x je sude´ cele´ cˇ´ıslo}“ apod. Neˇkdy se pouzˇ´ıva´ i pro za´pis nekonecˇny´ch mnozˇin zpu˚sob, ktery´ je podobny´ za´pisu vy´cˇtem. Naprˇ´ıklad mnozˇinu vsˇech kladny´ch sudy´ch cˇ´ısel zapı´sˇeme {2, 4, 6, 8, . . . }. Obecneˇ tedy mu˚zˇeme pouzˇ´ıt za´pis {a1 , a2 , a3 , a4 , . . . }, pokud je z prvku˚ a1 , a2 , a3 , a4 zrˇema´ vlastnost charakterizujı´cı´ prvky popisovane´ mnozˇiny. Poznamenejme take´, zˇe pra´zdna´ mnozˇina se neˇkdy zapisuje {}. Pozna´mka 2.2. Za´pis vy´cˇtem prvku˚ sva´dı´ k tomu mluvit o prvnı´m prvku mnozˇiny, druhe´m prvku mnozˇiny, atd. Naprˇ. u mnozˇiny {2, 4, 6, 8} ma´me tendenci rˇ´ıci, zˇe 2 je prvnı´m prvkem, 4 druhy´m prvkem atd. My vsˇak vı´me, zˇe vy´razy „prvnı´ prvek mnozˇiny“, „druhy´ prvek mnozˇiny“ atd. nemajı´ smysl. Mnozˇina je totizˇ da´na jen tı´m, jake´ prvky obsahuje, ne jejich porˇadı´m. Prˇi za´pisu vy´cˇtem se ale porˇadı´ objevuje. Spra´vneˇ bychom meˇli rˇ´ıci, zˇe {2, 4, 6, 8} oznacˇuje mnozˇinu, v jejı´mzˇ za´pise vy´cˇtem, ktery´ jsme pouzˇili, je prvek 2 na prvnı´m mı´steˇ, prvek 4 na druhe´m mı´steˇ atd. Stejnou mnozˇinu mu˚zˇeme zapsat vy´cˇtem a naprˇ. {4, 6, 2, 8}. V tomto za´pise je prvek 2 na trˇetı´m mı´steˇ. Za´pis vy´cˇtem sva´dı´ da´le k tomu mluvit o tom, kolikra´t se prvek v dane´ mnozˇineˇ vyskytuje. Z technicky´m du˚vodu˚ je vy´hodne´ prˇipustit, aby se prvky v za´pisu vy´cˇtem opakovaly. Mu˚zˇeme naprˇ. napsat {2, 4, 6, 8, 2, 2, 4}. Takovy´ za´pis oznacˇuje stejnou mnozˇinu jako {2, 4, 6, 8}. 23
{a1 , . . . , an } je mnozˇina, ktera´ obsahuje pra´veˇ prvky a1 , . . . , an . {x | ϕ(x)} je mnozˇina, ktera´ obsahuje pra´veˇ prvky x splnˇujı´cı´ vlastnost ϕ(x).
Stejnou mnozˇinu oznacˇuje i {6, 6, 6, 2, 4, 8}. Za´lezˇ´ı tedy jen na tom, ktere´ prvky se v za´pise vyskytujı´, neza´lezˇ´ı na pocˇtu jejich vy´skytu. Nelze tedy naprˇ. rˇ´ıci, zˇe mnozˇina {2, 4, 6, 8, 2, 2, 4} obsahuje trˇi prvky 2. Mu˚zˇeme jen rˇ´ıci, zˇe v za´pise {2, 4, 6, 8, 2, 2, 4} se prvek 2 vyskytuje trˇikra´t. Pozna´mka 2.3. (1) Za´pis {x ∈ A | ϕ(x)} oznacˇuje mnozˇinu {x | x ∈ A a ϕ(x)}. Je to tedy za´pis pomocı´ charakteristicke´ vlastnosti. Oznacˇ´ıme-li totizˇ ψ(x) vlastnost, kterou prvek x splnˇuje, pra´veˇ kdyzˇ patrˇ´ı do A a splnˇuje ϕ(x), pak mnozˇina {x ∈ A | ϕ(x)} je rovna mnozˇineˇ {x | ψ(x)}. Naprˇ. mnozˇina {x ∈ Z | x ≤ 2} je mnozˇina {x | x ∈ Z a x ≤ 2}, tj. mnozˇina vsˇech cely´ch cˇ´ısel, ktera´ jsou nejvy´sˇe rovna 2. (2) Cˇasto se take´ pouzˇ´ıva´ za´pis {ai | i ∈ I}. Prˇitom I je neˇjaka´ mnozˇina (rˇ´ıka´ se jı´ indexova´) a pro kazˇdy´ (index) i ∈ I je ai neˇjaky´ prvek. Pak {ai | i ∈ I} je mnozˇina {x | existuje i ∈ I tak, zˇe x = ai }. {ai | i ∈ I} je tedy vlastneˇ za´pis pomocı´ charakteristicke´ vlastnosti, nebot’oznacˇuje mnozˇinu {x | ϕ(x)}, kde ϕ(x) je „existuje i ∈ I, tak, zˇe x = ai “. Je-li kazˇdy´ prvek ai mnozˇinou, nazy´va´ se {ai | i ∈ I} indexovany´ syste´m mnozˇin. (3) Prˇi za´pise pomocı´ charakteristicke´ vlastnosti se prˇi popisu vlastnosti ϕ(x) cˇasto pouzˇ´ıvajı´ obraty „pro kazˇde´ y platı´, zˇe . . . “ a „existuje y tak, zˇe platı´ . . . “. Jak je beˇzˇne´, budeme tyto obraty zkra´ceneˇ zapisovat (po rˇadeˇ) pomocı´ „∀y . . . “ a „∃y . . . “ s prˇ´ıpadny´mi za´vorkami, ktere´ zajistı´ jednoznacˇny´ zpu˚sob cˇtenı´, poprˇ. veˇtsˇ´ı srozumitelnost. „∀y ∈ Y . . . “ a „∃y ∈ Y . . . “ znamenajı´ „pro kazˇde´ y z mnozˇiny Y platı´, zˇe . . . “ a „existuje y z mnozˇiny Y tak, zˇe platı´ . . . “. Naprˇ. mnozˇina {x | ∃y ∈ N : x = y 2 } je mnozˇina prvku˚ x takovy´ch, zˇe existuje prˇirozene´ cˇ´ıslo y tak, zˇe x = y 2 . Je to tedy mnozˇina vsˇech druhy´ch mocnin prˇirozeny´ch cˇ´ısel. V Kapitole 6 se s kvantifika´tory a jejich vlastnostmi sezna´mı´me podrobneˇji. Prˇ´ıklad 2.4. Podı´vejte se na na´sledujı´cı´ mnozˇiny a jejich za´pisy. • {k | ∃n ∈ N : k = 2n } oznacˇuje mnozˇinu vsˇech kladny´ch mocnin cˇ´ısla 2. Stejnou mnozˇinu oznacˇuje {2, 4, 8, 16, . . . }. • {k ∈ N | k 6= 1 a jestlizˇe ∃m, n ∈ N : m · n = k, pak m = 1 nebo n = 1} oznacˇuje mnozˇinu vsˇech prvocˇ´ısel. • {{a, b}, {a}, {1, 2, 3, {a, b}}} je mnozˇina, ktera´ ma´ trˇi prvky. Tyto prvky samy, tj. {a, b}, {a}, a {1, 2, 3, {a, b}}}, jsou opeˇt mnozˇiny. {a, b} ma´ dva prvky (a a b), {a} ma´ jeden prvek (a), {1, 2, 3, {a, b}}} ma´ trˇi prvky (jsou to 1, 2, 3 a {a, b}). Vidı´me tedy, zˇe mnozˇina mu˚zˇe obsahovat prvek, ktery´ je sa´m mnozˇinou. Tento prvek-mnozˇina sa´m mu˚zˇe obsahovat prvky, ktere´ jsou mnozˇinami atd. • {∅} je jednoprvkova´ mnozˇina. Jejı´m jediny´m prvkem je ∅ (pra´zdna´ mnozˇina). Uveˇdomte si, zˇe {∅} a ∅ jsou ru˚zne´ mnozˇiny ({∅} obsahuje jeden prvek, ∅ neobsahuje zˇa´dny´). {∅, {∅}, {{∅}}, {∅, {∅}}} je cˇtyrˇprvkova´ mnozˇina. Jejı´ prvky jsou ∅, {∅}, {{∅}}, {∅, {∅}}}. • Necht’a1 = p, a2 = q, a3 = r, a4 = x, a5 = y, a6 = z, a7 = 1, a8 = r, I = {1, 2, 3, 4}, J = {1, 2, 3, 7, 8}. Pak {ai | i ∈ I} je mnozˇina {p, q, r, x}, {ai | i ∈ J} je mnozˇina {p, q, r, 1}. • {2i | i ∈ N} je za´pis typu {ai | i ∈ I} (ma´me ai = 2i , I = N). Je to mnozˇina vsˇech kladny´ch mocnin cˇ´ısla 2. Mnozˇina je pojem, ktery´ intuitivneˇ pouzˇ´ıva´me v beˇzˇne´m zˇivoteˇ, chceme-li oznacˇit neˇkolik objektu˚ najednou („da´t je do jednoho pytle“). Naprˇ. rˇekneme-li „ekonomicke´ oddeˇlenı´ “, myslı´me tı´m vlastneˇ mnozˇinu zameˇstnancu˚ ekonomicke´ho odeˇlenı´. Mnozˇinovy´ za´pis take´ umozˇnˇuje 24
Pouhy´ mnozˇinovy´ za´pis umozˇnˇuje prˇehledneˇ vyja´drˇit strukturu, kterou chceme zachytit.
jednodusˇe vyja´drˇit hierarchickou strukturu. Prˇedpokla´dejme pro jednoduchost, zˇe v nemocnici pracuje rˇeditel (R), trˇi u´drzˇba´rˇi (U1 , U2 , U3 ), na oddeˇlenı´ chirurgie dva le´karˇi (C1 , C2 ) a trˇi sestry (CS1 , CS2 , CS3 ), na anesteziologicko-resuscitacˇnı´m oddeˇlenı´ dva le´karˇi (A1 , A2 ) a dveˇ sestry (AS1 , AS2 ), na oddeˇlenı´ internı´m trˇ´ı le´karˇi (I1 , I2 , I3 ) a cˇtyrˇi sestry (IS1 , IS2 , IS3 , IS4 ). Pak strukturu zameˇstnancu˚ nemocnice popisuje jisty´m zpu˚sobem naprˇ. mnozˇina {{R}, {U1 , U2 , U3 }, {{C1 , C2 , CS1 , CS2 , CS3 }, {A1 , A2 , AS1 , AS2 }, {I1 , I2 , I3 , IS1 , IS2 , IS3 , IS4 }}}. Prˇi tomto pohledu se dı´va´me takto: Zameˇstnanci nemocnice jsou rozdeˇleni do trˇech skupin, a to {R} (vedenı´), {U1 , U2 , U3 } (technicky´ persona´l), {{C1 , C2 , CS1 , CS2 , CS3 }, {A1 , A2 , AS1 , AS2 }, {I1 , I2 , I3 , IS1 , IS2 , IS3 , IS4 } (zdravotnicky´ persona´l). Zdravotnicky´ persona´l se da´le deˇlı´ na {C1 , C2 , CS1 , CS2 , CS3 } (chirurgicke´ oddeˇlenı´), {A1 , A2 , AS1 , AS2 } (anesteziologicko-resuscitacˇnı´ oddeˇlenı´) a {I1 , I2 , I3 , IS1 , IS2 , IS3 , IS4 } (internı´ oddeˇlenı´). Jiny´m zpu˚sobem (vedenı´, technicky´ persona´l, le´karˇi, sestry) popisuje strukturu zameˇstnancu˚ mnozˇina {{R}, {U1 , U2 , U3 }, {C1 , C2 , A1 , A2 , I1 , I2 , I3 }, {CS1 , CS2 , CS3 , AS1 , AS2 , IS1 , IS2 , IS3 , IS4 }}. Pokud mluvı´me o mnozˇineˇ, jejı´zˇ prvky jsou opeˇt mnozˇiny, rˇ´ıka´ se neˇkdy mı´sto „mnozˇina mnozˇin“ spı´sˇe „syste´m mnozˇin“ nebo „soubor mnozˇin“. Du˚vody k tomu jsou vsˇak jen esteticke´ (zvukomalebne´, „mnozˇina mnozˇin“ neznı´ dobrˇe). Pozna´mka 2.5. (1) Ne kazˇdou slovneˇ popsanou vlastnost lze pouzˇ´ıt k za´pisu mnozˇiny. Uvazˇujme naprˇ. za´pis {x | x je cˇ´ıslo uda´vajı´cı´ ve stupnı´ch Celsia vysokou letnı´ teplotu v Cˇesku}. Proble´m je v tom, zˇe pojem „vysoka´ letnı´ teplota v Cˇesku“ nenı´ vymezen tak, zˇe by pro kazˇda´ teplota bud’ byla nebo nebyla vysoka´. Naprˇ. by teploty 30 stupnˇu˚ a vı´ce byly vysoke´ a teploty mensˇ´ı nezˇ 30 stupnˇu˚ vysoke´ nebyly. Pojem „vysoka´ letnı´ teplota v Cˇesku“ je totizˇ va´gnı´, urcˇite´ teploty mu vyhovujı´ le´pe, urcˇite´ hu˚rˇe. Va´gnostı´ se zaby´va´ tzv. fuzzy logika a fuzzy mnozˇiny. Fuzzy mnozˇina se od (klasicke´, tj. „nefuzzy“) mnozˇiny lisˇ´ı v za´sadeˇ v tom, zˇe objekt do fuzzy mnozˇiny mu˚zˇe patrˇit v urcˇite´m stupni, naprˇ. 0 (vu˚bec nepatrˇ´ı), 0.2 (patrˇ´ı jen trochu), . . . , 1 (u´plneˇ patrˇ´ı). Klasicke´ mnozˇiny lze cha´pat jako hranicˇnı´ prrˇ´ıpad fuzzy mnozˇin, kdy pouzˇ´ıva´me pouze stupneˇ 0 a 1. Za´jemce odkazujeme naprˇ. na [KlYu95].
Je-li vlastnost ϕ(x) popsana´ slovneˇ, nemusı´ by´t urcˇita´, a pak {xϕ(x)} nepopisuje mnozˇinu.
(2) Prˇ´ıstup k mnozˇina´m, ktery´ zde prˇedstavujeme, je tzv. naivnı´ (poprˇ. intuitivnı´). Mu˚zˇe vsˇak ve´st k zvla´sˇtnı´m situacı´m, tzv. paradoxu˚m. Zacˇa´tkem 20. stol. na neˇ upozornil Bertrand Russel. Aby paradoxy odstranil, navrhl tzv. teorii typu˚ a na nı´ vybudobal prˇ´ıstup k mnozˇina´m, ve ktere´m se paradoxy neobjevujı´. Jiny´, pozdeˇji mnohem rozsˇ´ırˇeneˇjsˇ´ı prˇ´ıstup k mnozˇina´m, ve ktere´m se paradoxy nevyskytujı´, nabı´zı´ tzv. axiomaticka´ teorie mnozˇin. Pro nasˇe u´cˇely a i v rˇadeˇ jiny´ch situacı´ vsˇak postacˇuje naivnı´ prˇ´ıstup. Protozˇe je take´ mnohem jednodusˇsˇ´ı, zu˚staneme u neˇj. (3) Jednı´m z nejzna´meˇjsˇ´ıch paradoxu˚ naivnı´ho prˇ´ıstupu k mnozˇina´m je tzv. Russellu˚v paradox. Vypada´ takto: Prvky mnozˇin mohou by´t opeˇt mnozˇiny. Da´le lze jisteˇ uvazˇovat vlastnost „x 6∈ x“ a mnozˇiny objektu˚, ktere´ ji splnˇujı´. Oznacˇme ji N a nazveˇme ji mnozˇinou vsˇech norma´lnı´ch mnozˇin, tj. x ∈ N , pra´veˇ kdyzˇ x 6∈ x. Poznamenejme na okraj, zˇe vsˇechny mnozˇiny, ktere´ jsme zatı´m videˇli, byly norma´lnı´. Protozˇe N sama o sobeˇ mnozˇina, mu˚zˇeme se zeptat, zda platı´ N ∈ N , tj. zda N sama je norma´lnı´. Je jasne´, zˇe musı´ by´t bud’ (a) N ∈ N , nebo (b) N 6∈ N . Zkusme ty mozˇnosti rozebrat: (a) Kdyzˇ N ∈ N , pak N splnˇuje vlastnost prvku˚ mnozˇiny N , tedy splnˇuje x 6∈ x, tedy N 6∈ N . Naopak, kdyzˇ (b) N 6∈ N , pak protozˇe N splnˇuje vlastnost x 6∈ x, je dle definice norma´lnı´ a tedy patrˇ´ı do mnozˇiny vsˇech norma´lnı´ch mnozˇin, tedy patrˇ´ı do N , tedy N ∈ N . Vidı´me tedy, zˇe z N ∈ N plyne N 6∈ N a z N 6∈ N plyne N ∈ N , tedy N ∈ N platı´, pra´veˇ kdyzˇ N 6∈ N . To je spor. Z prˇirozeny´ch prˇedpokladu˚ jsme prˇirozeny´mi u´vahami dosˇli ke sporu, odtud na´zev paradox. Russellu˚v paradox ma´ rˇadu popula´rnı´ch podob. Jednou z nich je tzv. paradox holicˇe: Ve meˇsteˇ je holicˇ, ktery´ holı´ pra´veˇ ty lidi, kterˇ´ı neholı´ sami sebe. Ota´zka: Holı´ holicˇ sa´m sebe? 25
Russellu˚v paradox ukazuje meze nasˇeho prˇ´ıstupu k mnozˇina´m.
2.2.3
Vztahy mezi mnozˇinami
Za´kladnı´ vztahy mezi mnozˇinami jsou rovnost (oznacˇujeme ji symbolem =) a inkluze (oznacˇujeme ji symbolem ⊆). Jsou-li A a B mnozˇiny, pak A = B cˇteme „(mnozˇina) A se rovna´ (mnozˇineˇ) B“ a A ⊆ B cˇteme „(mnozˇina) A je podmnozˇinou (mnozˇiny) B“. Prˇitom A=B
znamena´, zˇe
pro kazˇdy´ x : x ∈ A pra´veˇ kdyzˇ x ∈ B
a A⊆B
znamena´, zˇe
pro kazˇdy´ x : jestlizˇe x ∈ A, pak x ∈ B.
Jiny´mi slovy, A = B znamena´, zˇe mnozˇiny A a B obsahujı´ stejne´ prvky (neexistuje prvek, ktery´ by do jedne´ patrˇil ale do druhe´ ne). A ⊆ B znamena´, zˇe vsˇechny prvky mnozˇiny A jsou take´ prvky mnozˇiny B. A 6= B znamena´, zˇe neplatı´ A = B. A 6⊆ B znamena´, zˇe neplatı´ A ⊆ B. Vsˇimneˇme si, zˇe A = B platı´, pra´veˇ kdyzˇ platı´ za´rovenˇ A ⊆ B a B ⊆ A. Neˇkdy je vy´hodne´ psa´t A ⊂ B, abychom oznacˇili, zˇe A ⊆ B a A 6= B. Da´le si uveˇdomme, zˇe pro vsˇechny mnozˇiny A, B, C je ∅ ⊆ A, A ⊆ A a zˇe jestlizˇe A ⊆ B a B ⊆ C, pak A ⊆ C. Dokazˇme poslednı´ tvrzenı´. Prˇedpokla´dejme, zˇe A ⊆ B a B ⊆ C. Ma´me doka´zat A ⊆ C, tedy zˇe pro kazˇdy´ x platı´, zˇe kdyzˇ x ∈ A, pak x ∈ C. Zvolme tedy libovolny´ x a prˇedpokla´dejme, zˇe x ∈ A. Chceme uka´zat x ∈ C. Udeˇla´me to na´sledovneˇ. Z x ∈ A a z prˇedpokladu A ⊆ B plyne, zˇe x ∈ B. Da´le z x ∈ B a z prˇedpokladu B ⊆ C plyne x ∈ C. Du˚kaz je hotov. Pra´veˇ doka´zane´ tvrzenı´ je velmi jednoduche´. Je tak jednoduche´, zˇe ma´ cˇloveˇk sklon rˇ´ıci „to je prˇece jasne´, to nenı´ trˇeba dokazovat“. Tvrzenı´ vsˇak mohou by´t slozˇiteˇjsˇ´ı a slozˇiteˇjsˇ´ı (viz da´le) tak, zˇe uzˇ nebudou „prˇece jasna´“. Doka´zat dane´ tvrzenı´, tj. vyjı´t z prˇedpokladu˚ a pomocı´ jednoduchy´ch u´vah (a poprˇ. i pomocı´ zna´my´ch tvrzenı´) dojı´t z prˇedpokladu˚ k za´veˇru dane´ho tvrzenı´, je pak jediny´m zpu˚sobem, jak se prˇesveˇdcˇit, zˇe tvrzenı´ platı´. Ostatneˇ uveˇdomme si, zˇe i u velmi jednoduchy´ch tvrzenı´ je jediny´m korektnı´m zdu˚vodneˇnı´m du˚kaz. Rˇ´ıci „to je prˇece jasne´“ nema´ jako argument zˇa´dnou va´hu. Za prve´, cˇloveˇk se mu˚zˇe sple´st (co, co se mu zda´ jasne´, tak ve skutecˇnosti nemusı´ by´t). Za druhe´, a to je snad jesˇteˇ du˚lezˇiteˇjsˇ´ı, argumentujeme-li pomocı´ „to je jasne´“, mu˚zˇe se na´m sta´t, zˇe pojmy, o ktery´ch mluvı´me, vlastneˇ porˇa´dneˇ necha´peme, zˇe je cha´peme jen povrchneˇ, intuitivneˇ. Umeˇt doka´zat i jednoducha´ tvrzenı´ (a tvrzenı´ vu˚bec) je tedy i dobry´ test, jestli veˇci rozumı´me (u slozˇiteˇjsˇ´ıch tvrzenı´ je dobre´ alesponˇ du˚kaz si prˇecˇ´ıst a pochopit). Tedy nasˇe doporucˇenı´: Cˇteˇte du˚kazy a pokousˇejte se je sami vymy´sˇlet. To je uzˇitecˇny´ zvyk nejen pro diskre´tnı´ matematiku. Nasˇe zkusˇenost je na´sleduı´cı´: Osvojit si du˚kazy (cˇ´ıst je, ty jednoduche´ i sami formulovat) vyzˇaduje pocˇa´tecˇnı´ cˇasovou investici. Ta se ale vyplatı´. Veˇcem le´pe porozumı´te, zacˇnou se zda´t jednoduche´ a zacˇnete videˇt souvislosti. Platı´ to nejen pro matematiku a informatiku, ale i pro kazˇdou oblast, ve ktere´ ze za´kladnı´ch kamenu˚ (pojmu˚, konstruktu˚, principu˚, . . . ) budujeme slozˇiteˇjsˇ´ı syste´m. Prˇ´ıklad 2.6. Platı´ naprˇ. • {2} = {n ∈ N | n je sude´ prvocˇ´ıslo}, • ∅ = k ∈ Z | ∃n ∈ N : 2k = 2n + 1, • {a, b, c, d} = {b, d, c, a}, {a, b, 1} = {1, a, a, b, b, b, 1}, • {a, b} ⊆ {a, b, c, d}, {a, b} ⊆ {1, 2, a, b}, • {a, {a, b}, {{a, 1}, b}} ⊆ {{a, b, {a, b}, {a, b, 1}, {{a, 1}, b}}}, • {a, b} 6⊆ {{a, b, c}}, {{a, 1}} 6⊆ {a, b, 1, {a}, {1}}. Procˇ platı´ {a, b} 6⊆ {{a, b, c}}, tj. procˇ {a, b} nenı´ podmnozˇinou {{a, b, c}}? Vzˇdyt’ v {{a, b, c}} jsou vsˇechny prvky, ktere´ jsou v {a, b} (pokusˇenı´ ktere´ mu˚zˇe plynout z povrchnı´ho cha´pa´nı´ ⊆). Zdu˚vodneˇnı´: Naprˇ. pro prvek a je a ∈ {a, b}, ale a 6∈ {{a, b, c}}. 26
Za´kladnı´ vztahy mezi mnozˇinami jsou rovnost a inkluze.
Pru˚vodce studiem Podı´vejte se znovu na Prˇ´ıklad 2.6. Vztahy mezi mnozˇinami, ktere´ jsou v neˇm uvedene´, a dalsˇ´ı podobne´ vztahy byste meˇli umeˇt bez proble´mu˚ zdu˚vodnit. Tak si oveˇrˇ´ıte, zˇe teˇm u´plneˇ za´kladnı´m veˇcem rozumı´te. Tady i na jiny´ch mı´stech v textu platı´, zˇe skoro nema´ smysl cˇ´ıst text da´l, dokud va´m nebude jasne´ (tj. dokud nebudete umeˇt pomocı´ definic zdu˚vodnit), procˇ naprˇ. platı´ {{a}} ⊆ {{a}, {b}} a procˇ neplatı´ {{a}} ⊆ {{a, b}}. Nezˇ tyto veˇci zacˇnete jasneˇ cha´pat a videˇt, mu˚zˇe to chvı´li trvat. Ten cˇas se va´m ale vra´tı´. Zdu˚vodneˇte naprˇ., procˇ je x ∈ A, pra´veˇ kdyzˇ {x} ⊆ A.
Mnozˇina, jejı´mizˇ prvky jsou pra´veˇ vsˇechny podmnozˇiny dane´ mnozˇiny X, se nazy´va´ potencˇnı´ mnozˇina mnozˇiny X a znacˇ´ı se 2X . Tedy 2X = {A | A ⊆ X}. Vezmeˇme naprˇ. X = {a, b}. X ma´ cˇtyrˇi podmnozˇiny. Jsou to ∅ (ta je podmnozˇinou kazˇde´ mnozˇiny), {a}, {b} a {a, b} (mnozˇina je podmnozˇino sebe same´). Tedy 2X = {∅, {a}, {b}, {a, b}}. Prˇ´ıklad 2.7.
Potencˇnı´ mnozˇina mnozˇiny X je mnozˇina vsˇech podmnozˇin mnozˇiny X.
• Pro X = {a} je 2X = {∅, {a}},
• pro X = {1, 2, 3} je 2X = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}, • pro X = ∅ je 2X = {∅} (to si promyslete: jedinou podmnozˇinou mnozˇiny ∅ je ∅), • pro X = {a, {a}} je 2X = {∅, {a}, {{a}}, {a, {a}}}. 2.2.4
Operace s mnozˇinami
Se skupinami objektu˚ prova´dı´me v beˇzˇne´m zˇivoteˇ ru˚zne´ operace. Naprˇ. rˇekneme „samostatnost a logicke´ uvazˇova´nı´ jsou spolecˇne´ vlastnosti Jany a Aleny“. Z mnozˇinove´ho pohledu tı´m myslı´me na´sledujı´cı´. Jana i Alena majı´ neˇjake´ vlastnosti. Mnozˇinu rysu˚ Jany oznacˇme J, mnozˇinu rysu˚ Aleny oznacˇme A. Mnozˇiny J a A jsou ru˚zne´, naprˇ. oznacˇuje-li m vlastnost „je dobra´ v matematice“, mu˚zˇe by´t m ∈ J (Jana je dobra´ v matematice), ale m 6∈ A (Alena nenı´ dobra´ v matematice). Oznacˇme s a l vlastnosti „samostatnost“ a „logicke´ uvazˇova´nı´“. Oznacˇme da´le J ∩ A mnozˇinu vlastnostı´, ktere´ patrˇ´ı do J i do A. Pak „samostatnost a logicke´ uvazˇova´nı´ jsou spolecˇne´ vlastnosti Jany a Aleny“ vlastneˇ znamena´ s ∈ J ∩ A a l ∈ J ∩ A. Mezi za´kladnı´ operace s mnozˇinami, se ktery´mi se sezna´mı´me, patrˇ´ı pru˚nik (znacˇ´ı se ∩), sjednocenı´ (znacˇ´ı se ∪) a rozdı´l (znacˇ´ı se −). Jsou-li A a B mnozˇiny, definujeme mnozˇiny A ∩ B, A ∪ B a A − B prˇedpisy A ∩ B = {x | x ∈ A a x ∈ B}, A ∪ B = {x | x ∈ A nebo x ∈ B}, A − B = {x | x ∈ A a x 6∈ B}. Tedy x patrˇ´ı do A ∩ B, pra´veˇ kdyzˇ x patrˇ´ı do A i do B; x patrˇ´ı do A ∪ B, pra´veˇ kdyzˇ x patrˇ´ı do A nebo do B; x patrˇ´ı do A − B, pra´veˇ kdyzˇ x patrˇ´ı do A, ale nepatrˇ´ı do B. Prˇ´ıklad 2.8. • Pro A = {a, b, e}, B = {b, c, d} je A ∩ B = {b}, A ∪ B = {a, b, c, d, e}, A − B = {a, e}, • pro A = {1, 2, a, b}, B = {1, a} je A∩B = {1, a}, A∪B = {1, 2, a, b}, A−B = {2, b}, B − A = ∅, • Pro A = {a}, B = {b, {a}} je A ∩ B = ∅, A ∪ B = {a, b, {a}}, 27
Za´kladnı´ operace s mnozˇinami jsou pru˚nik, sjednocenı´ a rozdı´l.
B
A
A
A=B
A
B
B
Obra´zek 1: Vennovy diagramy. • pro A = {∅, a, {a}, {a, b}}, B = {b, {a, {b}}} je a ∩ B = ∅, A ∪ B = {∅, a, {a}, {a, b}, b, {a, {b}}}, A − B = A, B − A = B. Mnozˇiny A a B se nazy´vajı´ (navza´jem) disjunktnı´, pra´veˇ kdyzˇ A ∩ B = ∅. Naprˇ. mnozˇiny {a, b, c, d} a {1, 2, 3} jsou disjunktnı´, mnozˇiny {a, b, 1} a {1, 2, a} disjunktnı´ nejsou. Cˇasto uvazˇujeme jednu mnozˇinu X, ktere´ rˇ´ıka´me univerzum (obor nasˇich u´vah) a pracujeme jen s mnozˇinami, ktere´ jsou podmnozˇinami X. Naprˇ. uvazˇujeme univerzum X vsˇech obcˇanu˚ Cˇeske´ republiky a potom pracujeme s jeho podmnozˇinami (naprˇ. mnozˇina deˇtı´ z X, mnozˇina zameˇstnany´ch, mnozˇina du˚chodcu˚ apod.). Je-li da´no neˇjake´ univerzum X a mnozˇina A ⊆ X, pak doplneˇk (neˇkdy take´ komplement) mnozˇiny A je mnozˇina X − A a znacˇ´ıme ji A. Naprˇ. pro X = {a, b, c, d, e} je {a, c} = {b, d, e}. Je-li A = {Bi | i ∈ I} mnozˇina, jejı´zˇ prvky jsou opeˇt mnozˇiny, definujeme [ A = {x | ∃i ∈ I : x ∈ Bi }, S tedy x ∈ A, pra´veˇ kdyzˇ x patrˇ´ı do neˇjake´ mnozˇiny, ktera´ je prvkem A. Naprˇ. S {{a, b, c}, {a, 1}, {1, 2}} = {a, b, c, 1, 2}. Pru˚vodce studiem Operace a za´kladnı´ vztahy mezi mnozˇinami mu˚zˇeme ilustrovat pomocı´ tzv. Vennovy´ch diagramu˚1 . Mnozˇiny se zna´zornˇujı´ (jsou reprezentova´ny) v rovineˇ jako obrazce ohranicˇene´ uzavrˇeny´mi krˇivkami (kruzˇnice, ova´ly apod.). Prˇitom jedna mnozˇina mu˚zˇe by´t reprezentova´na neˇkolika obrazci, ktere´ se neprotı´najı´, poprˇ. se jen doty´kajı´. Prvky mnozˇiny jsou ty body roviny, ktere´ se nacha´zejı´ uvnitrˇ odpovı´dajı´cı´ho obrazce (poprˇ. se neˇktere´ prvky v obrazci explicitneˇ vyznacˇ´ı krˇ´ızˇkem). Ke kazˇde´mu obrazci se napı´sˇe symbol odpovı´dajı´cı´ mnozˇiny. Podı´vejte se na Obr. 1. Kazˇda´ ze cˇtyrˇ situacı´ (vlevo dole, vpravo dole, vpravo nahorˇe, vlevo nahorˇe) zna´zornˇuje dveˇ mnozˇiny, A a B. Pro situaci vlevo dole je A = B, vpravo dole jsou A a B disjunktnı´, vpravo nahorˇe A a B disjunktnı´ nejsou, vlevo nahorˇe je A ⊆ B. Mnozˇina A ∩ B je reprezentova´na obrazcem, ktery´ je roven spolecˇne´ cˇa´sti obrazce reprezentujı´cı´ho A a obrazce reprezentujı´cı´ho B. Mnozˇina A ∪ B je reprezentova´na obrazcem, ktery´ je da´n sloucˇenı´m obrazce reprezentujı´cı´ho A a obrazce reprezentujı´cı´ho B. Fakt A ⊆ B odpovı´da´ situaci, kdy obrazec reprezentujı´cı´ A je obsazˇen v obrazci reprezentujı´cı´m B. Vennovy diagramy umozˇnˇujı´ na´zornou prˇedstavu. Lze pomocı´ nich zna´zornit mnozˇiny, jejichzˇ prvky mu˚zˇeme cha´pat jako dvourozmeˇrne´. Neˇktere´ mnozˇiny tak zna´zornit nemu˚zˇeme. Podı´vejme se ted’ na neˇktere´ za´kladnı´ vlastnosti. 28
Vennovy diagramy slouzˇ´ı ke graficke´ ilustraci mnozˇin.
Veˇta 2.9. Pro mnozˇiny A, B, C platı´ A ∩ ∅ = ∅,
A∪∅=A
A ∪ A = A,
A∩A=A
A ∪ B = B ∪ A,
A∩B =B∩A
(A ∪ B) ∪ C = A ∪ (B ∪ C),
(A ∩ B) ∩ C = A ∩ (B ∩ C)
A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C),
A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)
A ∪ (A ∩ B) = A,
A ∩ (A ∪ B) = A
Prˇed du˚kazem si uveˇdomme na´sledujı´cı´. Ma´me-li doka´zat A = B, ma´me podle definice doka´zat, zˇe pro libovolny´ prvek x je x ∈ A, pra´veˇ kdyzˇ x ∈ B. To lze da´le rozlozˇit na oveˇrˇenı´ toho, zˇe z x ∈ A plyne x ∈ B a zˇe z x ∈ B plyne x ∈ A. Pojd’me na du˚kaz Veˇty 2.9. Du˚kaz. A ∩ ∅ = ∅: Zvolme libovolny´ x. Je x ∈ A ∩ ∅, pra´veˇ kdyzˇ (podle definice ∩) x ∈ A a x ∈ ∅. Protozˇe x ∈ ∅ je vzˇdy nepravdive´, je vzˇdy nepravdivy´ i vy´rok x ∈ A a x ∈ ∅. Ma´me tedy da´le x ∈ A a x ∈ ∅, pra´veˇ kdyzˇ x ∈ ∅. Celkem tedy ma´me x ∈ A ∩ ∅, pra´veˇ kdyzˇ x ∈ ∅, cozˇ dokazuje A ∩ ∅ = ∅. A ∪ ∅ = A: x ∈ A ∪ ∅, pra´veˇ kdyzˇ (podle definice ∪) x ∈ A nebo x ∈ ∅, pra´veˇ kdyzˇ (protozˇe x ∈ ∅ je vzˇdy nepravdive´) x ∈ A. A ∪ A = A: x ∈ A ∪ A, pra´veˇ kdyzˇ x ∈ A nebo x ∈ A, pra´veˇ kdyzˇ x ∈ A. A ∩ A = A: Podobneˇ jako prˇedchozı´, x ∈ A ∩ A, pra´veˇ kdyzˇ x ∈ A a x ∈ A, pra´veˇ kdyzˇ x ∈ A. A ∪ B = B ∪ A: x ∈ A ∪ B, pra´veˇ kdyzˇ x ∈ A nebo x ∈ B, pra´veˇ kdyzˇ x ∈ B nebo x ∈ A, pra´veˇ kdyzˇ x ∈ B ∪ A. A ∩ B = B ∩ A: Podobneˇ jako prˇedchozı´. (A ∪ B) ∪ C = A ∪ (B ∪ C): x ∈ (A ∪ B) ∪ C, pra´veˇ kdyzˇ x ∈ (A ∪ B) nebo x ∈ C, pra´veˇ kdyzˇ (x ∈ A nebo x ∈ B) nebo x ∈ C, pra´veˇ kdyzˇ (podle pravidel vy´rokove´ logiky) x ∈ A nebo (x ∈ B nebo x ∈ C), pra´veˇ kdyzˇ x ∈ A nebo x ∈ B ∪ C, pra´veˇ kdyzˇ x ∈ A ∪ (B ∪ C). (A ∩ B) ∩ C = A ∩ (B ∩ C): Podobneˇ jako prˇedchozı´. A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C): x ∈ A ∩ (B ∪ C), pra´veˇ kdyzˇ x ∈ A a x ∈ B ∪ C, pra´veˇ kdyzˇ x ∈ A a (x ∈ B nebo x ∈ C), cozˇ je podle pravidel vy´rokove´ logiky pra´veˇ kdyzˇ (x ∈ A a x ∈ B) nebo (x ∈ A a x ∈ C), pra´veˇ kdyzˇ x ∈ A ∩ B nebo x ∈ A ∩ C, pra´veˇ kdyzˇ x ∈ (A ∩ B) ∪ (A ∩ C). A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C): Podobneˇ jako prˇedchozı´. A ∪ (A ∩ B) = A: x ∈ A ∪ (A ∩ B), pra´veˇ kdyzˇ x ∈ A nebo (x ∈ A a x ∈ B)), cozˇ je podle pravidel vy´rokove´ logiky pra´veˇ kdyzˇ x ∈ A. A ∩ (A ∪ B) = A: Podobneˇ jako prˇedchozı´. Vidı´me tedy, zˇe rˇadu vlastnostı´ operacı´ s mnozˇinami dostaneme jednodusˇe z odpovı´dajı´cı´ch pravidel vy´rokove´ logiky. Podı´vejme se jesˇteˇ jednou na du˚kaz tvrzenı´ A∩(B ∪C) = (A∩B)∪ (A ∩ C). Z vy´rokove´ logiky vı´me, zˇe formule p c (q d r) je ekvivalentnı´ formuli (p c q) d (p c r), tj. tyto formule majı´ prˇi kazˇde´m ohodnocenı´ stejnou pravdivostnı´ hodnotu. Vezmeme-li ohodnocenı´, ktere´ vy´rokovy´m symbolu˚m p, q a r prˇirˇazujı´ po rˇadeˇ pravdivostnı´ hodnoty tvrzenı´ x ∈ A, x ∈ B, x ∈ C, pak prˇi tomto ohodnocenı´ ma´ formule p c (q d r) stejnou pravdivostnı´ hodnotu jako tvrzenı´ x ∈ A ∩ (B ∪ C) (podı´vejte se do vy´sˇe napsane´ho du˚kazu) a formule (p c q) d (p c r) ma´ stejnou pravdivostnı´ hodnotu jako tvrzenı´ x ∈ (A ∩ B) ∪ (A ∩ C). Proto je x ∈ A ∩ (B ∪ C), pra´veˇ kdyzˇ x ∈ (A ∩ B) ∪ (A ∩ C), tedy A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C). 29
Pru˚vodce studiem Jednı´m z jednoduchy´ch ale uzˇitecˇny´ch prˇ´ınosu˚ teorie mnozˇin je, zˇe na´m da´va´ prostrˇedky jednodusˇe a jednoznacˇneˇ se vyjadrˇovat. Bez mnozˇinove´ho formalismu bychom vsˇe museli vyjadrˇovat opisem. K jednoduchosti: Zkuste naprˇ. opisem (tj. v prˇirozene´mjazyku, bez mnozˇinove´ho formalismu) popsat mnozˇinu (A∩(B∪(A∩D)))∪(B∪E). K jednoznacˇnosti: ˇ ekneme-li „seskupenı´ sudy´ch a lichy´ch cˇ´ısel“, ma´me nejspı´sˇ na mysli sjednocenı´ mnozˇiny R sudy´ch a mnozˇiny lichy´ch cˇ´ısel. Rˇekneme-li ale „soubor maly´ch a zeleny´ch muzˇ´ıcˇku˚“, ma´me asi na mysli soubor teˇch muzˇ´ıcˇku˚, kterˇ´ı jsou za´roveˇnˇ malı´ a zelenı´ (pru˚nik mnozˇiny maly´ch muzˇ´ıcˇku˚ a mnozˇiny zeleny´ch muzˇ´ıcˇku˚), ale mu˚zˇeme mı´t namysli i soubor teˇch muzˇ´ıcˇku˚, kterˇ´ı jsou malı´ nebo zelenı´ (sjednocenı´ mnozˇiny maly´ch muzˇ´ıcˇku˚ a mnozˇiny zeleny´ch muzˇ´ıcˇku˚). Co prˇesneˇ ma´me na mysli, vyply´va´ z kontextu nebo to musı´me uprˇesnit. Mnozˇinovy´ formalismus je naproti tomu jednoznacˇny´.
Shrnutı´ Mnozˇiny, relace a funkce patrˇ´ı k za´kladnı´m pojmu˚m matematiky. Mnozˇina je matematicky´ pojem, ktery´ je proteˇjsˇkem beˇzˇneˇ pouzˇ´ıvane´ho pojmu soubor, seskupenı´ apod. Relace je proteˇjsˇkem pojmu vztah. Funkce je proteˇjsˇkem pojmu prˇirˇazenı´. Mnozˇina je da´na tı´m, jake´ prvky obsahuje. Specia´lnı´ mnozˇinou je pra´zdna´ mnozˇina, ta neobsahuje zˇa´dny´ prvek. S mnozˇinami mu˚zˇeme prova´deˇt ru˚zne´ operace. Mezi za´kladnı´ patrˇ´ı pru˚nik, sjednocenı´ a rozdı´l. Za´kladnı´ vztah mezi mnozˇinami je vztah inkluze (by´t podmnozˇinou). Mnozˇiny zapisujeme nejcˇasteˇji vy´cˇtem prvku˚ nebo uda´nı´m charakteristicke´ vlastnosti. Pojmy k zapamatova´nı´ • • • •
mnozˇina, inkluze, pru˚nik, sjednocenı´, rozdı´l, potencˇnı´ mnozˇina.
Kontrolnı´ ota´zky 1. Mu˚zˇe mnozˇina obsahovat dany´ prvek vı´ce nezˇ jedenkra´t? Procˇ? Jsou mnozˇiny {a, b} a {b, a} ru˚zne´? Procˇ? 2. Jake´ zna´te zpu˚soby za´pisu mnozˇin? Jsou mnozˇiny {x ∈ R | x2 < 0} a {x ∈ N | x4 < 0} stejne´? Je neˇktera´ z nich rovna ∅? 3. Platı´, zˇe kdyzˇ A ⊆ B, pak |A| = |B|? Co je to potencˇnı´ mnozˇina dane´ mnozˇiny? Existuje mnozˇina, jejı´zˇ potencˇnı´ mnozˇina je pra´zdna´? 4. Jake´ zna´te mnozˇinove´ operace? Jaka´ je nutna´ a postacˇujı´cı´ podmı´nka pro to, aby A∩X = A? Jaka´ pro A ∪ X = A? Cvicˇenı´ 1. Platı´ na´sledujı´cı´ tvrzenı´? a) ∅ ⊆ ∅ b) ∅ ∈ ∅ c) {a} ∈ {a, b, c} d) {a} ∈ {{a, b}, c} e) {a, b} ⊆ {a, {a, b}} 30
f) {a, b} ⊆ {a, b, {a, b}} 2. 3. 4. 5.
g) A ∈ P (A) Necht’A = {a, 1, {a, b}}, B = {2, a, {a}, }, C = {∅, 2, 3, {a, b}}. Urcˇete A ∪ B, A ∩ C, C − A, A × B, P (B). Necht’A = {a, {b}}, B = {a, b, {a, b}}. Urcˇete B ∩ P (A), (A × B) ∩ (B × A). Urcˇete P (∅), P ({∅}), P ({1}), P ({{∅}}), P ({∅, {∅}}). Definujme operaci ⊕ vztahem A ⊕ B = (A ∪ B) − (A ∩ B). Zjisteˇte, zda platı´ na´sledujı´cı´ vztahy (vztahy dokazˇte nebo nalezneˇte protiprˇ´ıklady.) a) A ⊕ A = A b) A ⊕ (B ∩ C) = (A ⊕ B) ∩ (A ⊕ C) c) A ∩ (B ⊕ C) = (A ∩ B) ⊕ (A ∩ C) d) A ⊕ (A ⊕ A) = A
e) A ⊆ B ⇒ A ⊕ C ⊆ B ⊕ C 6. Najdeˇte nutnou a postacˇujı´cı´ podmı´nku pro to, aby a) A ⊕ B = A ∪ B, b) A ⊕ B = A. 7. Najdeˇte prˇ´ıklady mnozˇin A, B, C tak, aby platilo a) A ∩ B = C ∩ B, ale A 6= C 6= ∅ b) A ∩ B ⊂ A ∩ C, ale B 6⊆ C c) A ∪ B = C ∪ B, ale A 6= C d) A ∪ B ⊂ A ∪ C, ale B 6⊆ C 8. Necht’pro mnozˇiny A, B, C platı´ B ⊂ A ⊂ C. Urcˇete mnozˇinu X, pro kterou A−X = B a A ∪ X = C.
´ koly k textu U 1. Zdu˚vodneˇte (prˇesneˇ podle definice), procˇ je pra´zdna´ mnozˇina podmnozˇinou kazˇde´ mnozˇiny. 2. Mu˚zˇe mı´t potencˇnı´ mnozˇina mnozˇiny A me´neˇ prvku˚ nezˇ mnozˇina A? Mu˚zˇe jich mı´t stejneˇ? Mu˚zˇe jich mı´t vı´ce? 3. Jake´ vztahy platı´ mezi mnozˇinou A a 2X ?
ˇ esˇenı´ R 1. a) ano, b) ne, c) ne, d) ne, e) ne, f) ano, g) ano. 2. A ∪ B = {a, 1, 2, {a}, {a, b}}, A ∩ C = {{a, b}}, C − A = {∅, 2, 3}, A × B = {ha, 2i, ha, ai, ha, {a}i, h1, 2i, h1, ai, h1, {a}i, h{a, b}, 2i, h{a, b}, ai, h{a, b}, {a}i, }, P (B) = {∅, {2}, {a}, {{a}}, {2, a}, {2, {a}}, {a, {}}, {2, a, {a}}}. 3. B ∩ P (A) = ∅, (A × B) ∩ (B × A) = {ha, ai}. 4. P (∅) = {∅}, P ({∅}) = {∅, {∅}}, P ({1}) = {1, {1}}, P ({{∅}}) = {{{∅}}, ∅}, P ({∅, {∅}}) = {∅, {∅}, {{∅}}, {∅, {∅}}}. 5. a) ne, b) ano, c) ano, d) ano, e) ne 6. a) A ∩ B = ∅, b) B = ∅. 7. a) A = {a, b, c}, B = {a, c, d}, C = {a}, b) A = {a}, B = {a, b}, C = {a, c}, c) A = {a}, B = {a, b, c}, C = {c}, d) A = {a, b}, B = {a, c}, C = {b, c, d}. 31
8. X = C − B (jine´ nejsou). Studijnı´ cı´le: Po prostudova´nı´ kapitol 2.3 a 2.4 by student meˇl rozumeˇt pojmu˚m relace a funkce. Meˇl by zna´t za´kladnı´ operace a vztahy definovane´ nad teˇmito pojmy. Student by meˇl tyto pojmy zna´t aktivneˇ, meˇl by umeˇt samostatneˇ doka´zat jednoducha´ tvrzenı´, hledat prˇ´ıklady a protiprˇ´ıklady. Klı´cˇova´ slova: karte´zsky´ soucˇin, relace, reprezentace relacı´, inverznı´ relace, skla´da´nı´ relacı´, funkce, injekce, surjekce, bijekce, princip indukce. Potrˇebny´ cˇas: 180 minut.
2.3
Relace
2.3.1
Pojem relace
Pojem relace je matematicky´m proteˇjsˇkem beˇzˇneˇ pouzˇ´ıvane´ho pojmu vztah. Ru˚zne´ objekty jsou nebo nejsou v ru˚zny´ch vztazı´ch. Naprˇ. cˇ´ıslo 3 je ve vztahu „by´t mensˇ´ı“ s cˇ´ıslem 5, ne vsˇak s cˇ´ıslem 2. Karel Cˇapek byl ve vztahu „by´t bratrem“ s Josefem Cˇapkem. Trˇi body v rovineˇ mohou by´t ve vztahu „lezˇet na jedne´ prˇ´ımce“. Vsˇimneˇme si, cˇ´ım je vztah urcˇen. Za prve´ je to tzv. arita vztahu, tj. cˇ´ıslo uda´vajı´cı´ pocˇet objektu˚, ktere´ do vztahu vstupujı´. Naprˇ. do vztahu „by´t bratrem“ vstupujı´ dva objekty, ten vztah je bina´rnı´, do vztahu „lezˇet na jedne´ prˇ´ımce“ vstupujı´ trˇi objekty, ten vztah je terna´rnı´. Za druhe´ jsou to mnozˇiny, jejichzˇ prvky do vztahu vstupujı´. Naprˇ. do vztahu „by´t bratrem“ vstupujı´ dva objekty, prvnı´ je z mnozˇiny X1 lidı´, druhy´ je z mnozˇiny X2 lidı´. V tomto prˇ´ıpadeˇ jsou X1 a X2 stejne´, tj. X1 = X2 . To tak ale nemusı´ by´t. Uvazˇujme naprˇ. vztah „mı´t“ mezi mnozˇinou X1 neˇjaky´ch objektu˚ a mnozˇinou X2 neˇjaky´ch atributu˚. V tomto prˇ´ıpadeˇ je obecneˇ X1 6= X2 , naprˇ. X1 = {pes, kocˇka, beˇhat, stu˚l, rychly´, zeleny´, cˇ´ıst} a X2 = {„je podstatne´ jme´no“, „je sloveso“}. Je-li da´na arita n a prˇ´ıslusˇne´ mnozˇiny X1 , . . . , Xn , vztah je potom urcˇen tı´m, ktere´ prvky x1 z X1 , . . . , xn z Xn v tom vztahu jsou a ktere´ ne. To na´s prˇiva´dı´ k pojmu relace. Za´kladnı´m pojmem je pojem usporˇa´dane´ n-tice prvku˚. Usporˇa´dana´ n-tice objektu˚ x1 , . . . , xn (v tomto porˇadı´) se oznacˇuje hx1 , . . . , xn i. Prvek xi (1 ≤ i ≤ n) se nazy´va´ i-ta´ slozˇka dane´ n-tice. Rovnost definujeme tak, zˇe hx1 , . . . , xn i = hy1 , . . . , ym i, pra´veˇ kdyzˇ n = m a x1 = y1 , . . . , xn = yn . n-tice a m-tice jsou si tedy rovny, pra´veˇ kdyzˇ majı´ stejny´ pocˇet slozˇek a odpovı´dajı´cı´ si slozˇky jsou stejne´. Definice 2.10. Karte´zsky´ soucˇin mnozˇin X1 , . . . , Xn je mnozˇina X1 × · · · × Xn definovana´ prˇedpisem X1 × · · · × Xn = {hx1 , . . . , xn i | x1 ∈ X1 , . . . , xn ∈ Xn }. Xn
Je-li X1 = · · · = Xn = X, pak X1 × · · · × Xn znacˇ´ıme take´ (n-ta´ karte´zska´ mocnina mnozˇiny X). Usporˇa´danou 1-tici hxi obvykle ztotozˇnˇujeme s prvkem x (tj. hxi = x). Potom tedy X 1 je vlastneˇ mnozˇina X. Prˇ´ıklad 2.11. • Pro A = {a, b, c}, B = {1, 2} je A × B {ha, 1i, ha, 2i, hb, 1i, hb, 2i, hc, 1i, hc, 2i}, B 2 = {h1, 1i, h1, 2i, h2, 1i, h2, 2i},
=
• pro A = {{a}, b}, B = {1} je A × B = {h{a}, 1i, hb, 1i}, • pro A = {1, 2}, B = {b} je A × B × A = {h1, b, 1i, h1, b, 2i, h2, b, 1i, h2, b, 2i}, • pro A = ∅, B = {1, 2, 3} je A × B = ∅ (neexistuje totizˇ usporˇa´dana´ dvojice hx, yi tak, aby x ∈ A a y ∈ B). Mu˚zˇeme prˇistoupit k definici pojmu relace. 32
Karte´zsky´ soucˇin n mnozˇin je mnozˇina vsˇech usporˇa´dany´ch n-tic prvku˚ z teˇchto mnozˇin.
Definice 2.12. Necht’ X1 , . . . , Xn jsou mnozˇiny. Relace mezi X1 , . . . , Xn je libovolna´ podmnozˇina karte´zske´ho soucˇinu X1 × · · · × Xn . Pozna´mka 2.13. (1) Cˇ´ıslu n rˇ´ıka´me arita relace R, R se nazy´va´ n-a´rnı´. Je-li X1 = · · · = Xn = X, nazy´va´ se R take´ n-a´rnı´ relace v mnozˇineˇ X. Pro n = 1, 2, 3, 4 se mı´sto n-a´rnı´ pouzˇ´ıva´ take´ una´rnı´, bina´rnı´, terna´rnı´, kvaterna´rnı´. To, zˇe R je una´rnı´ relace v X, vlastneˇ znamena´, zˇe R ⊆ X. (2) O prvcı´ch x1 ∈ X1 , . . . , xn ∈ Xn rˇ´ıka´me, zˇe jsou (v tomto porˇadı´) v relaci R, pokud hx1 , . . . , xn i ∈ R. Relace je tedy mnozˇina sesta´vajı´cı´ z n-tic prvku˚ prˇ´ıslusˇny´ch mnozˇin. Obsahuje ty n-tice hx1 , . . . , xn i, ktere´ mezi sebou majı´ zamy´sˇleny´ vztah. Ty, ktere´ zamy´sˇleny´ vztah nemajı´, neobsahuje. Beˇzˇneˇ pouzˇ´ıvany´, avsˇak jen intuitivneˇ cha´pany´, pojem vztah je tedy pojmem relace matematizova´n. Pojem relace je prˇitom zalozˇen na pojmech mnozˇina a usporˇa´dana´ n-tice. Prˇ´ıklad 2.14. (1) Pro X = {a, b, c}, Y = {1, 2, 3, 4} jsou {ha, 2i, ha, 3i, hb, 1i, hc, 1i}, {ha, 2i}, ∅, X × Y bina´rnı´ relace mezi X a Y . {ha, b, 2, 4, ci, ha, a, 2, 2, ai} je relace mezi X, X, Y, Y, X. {ha, 1i, h2, ci} nenı´ bina´rnı´ relace mezi X a Y , protozˇe dvojice h2, ci nepatrˇ´ı do karte´zske´ho soucˇinu X × Y . (2) Prˇedpokla´dejme, zˇe na rodinne´ oslaveˇ jsou Adam (A), Bedrˇich (B), Cyril (C), Dominik (D), Egon (E), Marta (M), Nad’a (N), Olga (O), Pavla (P) a Radka (R). Prˇitom A je synem Cyrila a Marty, C je synem Egona a Olgy, P je dcerou Dominka, E je synem Adama a Radky. Urcˇete bina´rnı´ relaci R, ktera´ odpovı´da´ vztahu „X je dı´teˇtem Y“, a terna´rnı´ relaci S, ktera´ odpovı´da´ vztahu „X je dı´teˇtem Y a Z“, kde Y je otec a Z je matka. Jde o relace na mnozˇineˇ {A, B, C, D, E, M, N, O, P, R}. R bude obsahovat vsˇechny usporˇa´dane´ dvojice hx, yi takove´, zˇe x je dı´teˇtem y. Tedy R = {hA, Ci, hA, Mi, hC, Ei, hC, Oi, hP, Di, hE, Ai, hE, Ri} a S = {hA, C, Mi, hC, E, Oi, hE, A, Ri}. (3) Platı´-li navı´c, zˇe C je manzˇelem M, E je manzˇelem O a A je manzˇelem R, mu˚zˇeme uvazˇovat bina´rnı´ relaci T mezi mnozˇinou X = {A, B, C, D, E} muzˇu˚ a mnozˇinou Y = { M, N, O, P, R} zˇen, tj. T ⊆ X × Y , ktera´ odpovı´da´ vztahu „by´t manzˇelem“. Pak bude T = {hC, Mi, hE, Oi, hA, Ri}. (4) Zapisˇte jako bina´rnı´ relaci vztah deˇlitelnosti (tj. „x deˇlı´ y“ znamena´, zˇe existuje cele´ cˇ´ıslo k tak, zˇe x · k = y) na mnozˇineˇ X = {2, . . . , 10}. Oznacˇme prˇ´ıslusˇnou relaci D. Je tedy D ⊆ X × X, konkre´tneˇ D = {h2, 2i, h2, 4i, h2, 6i, h2, 8i, h2, 10i, h3, 6i, h3, 9i, h4, 8i, h5, 10i}. Pru˚vodce studiem Zastavme se u pojmu relace. Podle Definice 2.12 je relace podmnozˇina karte´zske´ho soucˇinu. Da´va´ to smysl? Relace ma´ by´t matematicky´m proteˇjsˇkem pojmu vztah, ktery´ je prˇece kazˇde´mu jasny´. Naproti tomu „podmnozˇina karte´zske´ho soucˇinu“ znı´ neprˇ´ıstupneˇ a zbytecˇneˇ komplikovaneˇ. Pokud souhlası´te s prˇedchozı´mi dveˇma veˇtami, bude nejlepsˇ´ı, kdyzˇ si zkusı´te sami narvhnout definici pojmu relace. Uvidı´te, jestli prˇijdete na neˇco lepsˇ´ıho nezˇ je Definice 2.12. Prˇitom ale dodrzˇte „pravidla hry“: Vasˇe definice musı´ by´t jednoznacˇna´ (tj. musı´ by´t zalozˇana na jednoznacˇneˇ definovany´ch pojmech) a musı´ by´t tak obecna´, aby
33
Relace mezi mnozˇinami X1 , . . . , Xn je podmnozˇina karte´zske´ho soucˇinu X1 × · · · × Xn .
prˇ´ıjmenı´ Adam Kos Mala´ Rychly´ .. .
jme´no Jirˇ´ı Jan Magda Karel .. .
narozenı´ 1976 1961 1955 1967 .. .
Zahradnı´k
Milan
1950
vzdeˇla´nı´ SSˇ VSˇ SSˇ VSˇ .. . ZSˇ
funkce prodejce projektant sekreta´rˇka rˇeditel .. . technik
Tabulka 3: Databa´ze z Prˇ´ıkladu 2.15.
odpovı´dala pojmu vztah (tj. nemu˚zˇete se naprˇ. omezit jen na bina´rnı´ relace). Naprˇ. definice „Relace je da´na tı´m, ktere´ prvky jsou v relaci se ktery´mi.“ neobstojı´. Je znacˇneˇ neurcˇita´ a navı´c je to definice kruhem (v definici pojmu relace se odkazujeme na pojme relace). Zkuste si prˇedstavit, zˇe podle te´to definice ma´te rozhodnout, zde neˇco je nebo nenı´ relace. Zˇe je trˇeba, aby definice relace byla jednoznacˇna´ a jednoducha´ vynikne nejle´pe, kdyzˇ si uveˇdomı´me, zˇe relace mu˚zˇeme chtı´t zpracova´vat pocˇ´ıtacˇem (a pocˇ´ıtacˇovy´ch aplikacı´ zalozˇeny´ch na relacı´ch je cela´ rˇada). Prˇedkla´da´me-li nejednoznacˇnou definici cˇloveˇku, mu˚zˇe na´m to projı´t, ten cˇloveˇk si definici trˇeba domyslı´. U pocˇ´ıtacˇe na´m to neprojde, pocˇ´ıtacˇ si nic nedomyslı´. Kromeˇ toho, jednoznacˇnost a jednoduchost definice patrˇ´ı k za´kladu˚m kultury vyjadrˇova´nı´ nejen v matematice. Nejste-li tedy spokojeni s Definicı´ 2.12, zkuste ted’ sami navrhnout lepsˇ´ı a pak pokracˇujte ve cˇtenı´. Porovnejte nynı´ va´sˇ na´vrh s Definicı´ 2.12 (nejle´pe s kolegy nebo ucˇitelem). Pokud jste lepsˇ´ı definici nevymysleli, vrat’te se k Definici 2.12 a znovu ji posud’te. Prˇ´ıklad 2.15. Pojem relace ma´ u´strˇednı´ roli v tzv. relacˇnı´m databa´zove´m modelu, ktery´ navrhl E. F. Codd.2 Tzv. relacˇnı´ pohled na databa´ze spocˇ´ıva´ v tom, zˇe databa´zi cha´peme jako relaci. Naprˇ. databa´zi zna´zorneˇnou Tab. 3, ktera´ obsahuje v rˇa´dcı´ch informace o zameˇstnancı´ch, mu˚zˇeme cha´pat jako 5-a´rnı´ relaci R mezi mnozˇinami (teˇm se v databa´zı´ch rˇ´ıka´ dome´ny) D1 = {Adam, Kos, Mala´, Rychly´, . . . }, D2 = {Jirˇ´ı, Jan, Magda, Karel, . . . }, D3 = {n ∈ N | 1900 ≤ n ≤ 2004}, D4 = {ZSˇ, SOU, SSˇ, VSˇ}, D5 = {prodejce, projektant, sekreta´rˇka, rˇeditel, . . . }, tedy R ⊆ D1 × D2 × D3 × D4 × D5 . Relace je da´na za´znamy (rˇa´dky) v databa´zi, takzˇe naprˇ. h Adam, Jirˇ´ı, 1976, SSˇ, prodejcei ∈ R, h Kos, Jan, 1961, VSˇ, projektanti ∈ R. V relacˇnı´ch databa´zı´ch jsou zavedeny i jine´ operace nezˇ ty, ktere´ zavedeme my. Tyto operace slouzˇ´ı k manipulaci a zprˇ´ıstupnˇova´nı´ dat v databa´zi a cˇtena´rˇ se s nimi mu˚zˇe sezna´mit te´meˇrˇ v kazˇde´ ucˇebnici databa´zovy´ch syste´mu˚. 2.3.2
Vztahy a operace s relacemi
Relace jsou mnozˇiny (relace je podmnozˇina karte´zske´ho soucˇinu). Proto s nimi lze prova´deˇt mnozˇinove´ operace (∩, ∪, −) a lze na neˇ aplikovat vztah inkluze (⊆). Prˇ´ıklad 2.16. (1) Meˇjme X = {a, b, c}, Y = {1, 2, 3, 4} a uvazˇujme bina´rnı´ relace R = {ha, 1i, ha, 4i, hc, 2i, hc, 3i, hc, 4i}, S = {ha, 2i, ha, 3i, ha, 4i, hb, 1i, hb, 3i}, T = {ha, 4i, hc, 4i} mezi X a Y . Pak je naprˇ. R ∩ S = {ha, 4i}, R ∪ S = {ha, 1i, ha, 2i, ha, 3i, ha, 4i, hb, 1i, hb, 3i, hc, 2i, hc, 3i, hc, 4i}. Da´le je T ⊆ S, R 6⊆ S apod. 2
Peˇkneˇ je o tom napsa´no v knize C. J. Date: The Database Relational Model: A Retrospective Analysis. Addison Wesley, Reading, MA, 2001.
34
Relace jsou specia´lnı´ mnozˇiny, a proto s nimi mu˚zˇeme prova´deˇt vsˇechny mnozˇinove´ operace.
R a b c
1 ×
2 × ×
3
4 × ×
×
Tabulka 4: Tabulka popisujı´cı´ bina´rnı´ relaci R mezi X = {a, b, c} a Y = {1, 2, 3, 4}. (2) Necht’≤ je relace usporˇa´da´nı´ a | relace deˇlitelnosti na mnozˇineˇ N prˇirozeny´ch cˇ´ısel. Tedy hk, li ∈≤, pra´veˇ kdyzˇ k je mensˇ´ı nebo rovno l, a hk, li ∈ |, pra´veˇ kdyzˇ l je deˇlitelne´ cˇ´ıslem k (v tomto prˇ´ıpadeˇ, jako i u jiny´ch prˇ´ıpadu˚ bina´rnı´ch relacı´, beˇzˇneˇ pouzˇ´ıva´me tzv. infixovou notaci, tj. pı´sˇeme k ≤ l a k|l). Pak | ⊆≤, tj. relace | je podmnozˇinou relace ≤. To vlastneˇ znamena´, zˇe pro vsˇechna prˇirozena´ cˇ´ısla k, l ∈ N platı´, zˇe kdyzˇ k|l, pak k ≤ l. (3) Jsou-li R1 a R2 relace popisujı´cı´ neˇjake´ databa´ze (viz Prˇ´ıklad 2.15), pak R1 ∪ R2 je relace popisujı´cı´ databa´zi, ktera´ vznikne sloucˇenı´m vy´chozı´ch databa´zı´, tj. zrˇeteˇzenı´m databa´zovy´ch tabulek (prˇesneˇ vzato, sloucˇenı´m a vymaza´nı´m duplicitnı´ch vy´skytu˚ databa´zovy´ch rˇa´dku˚). R1 ∩ R2 je relace, ktera´ popisuje spolecˇne´ polozˇky obou databa´zı´. 2.3.3 Operace s bina´rnı´mi relacemi S relacemi vsˇak lze dı´ky jejich specia´lnı´ strukturˇe prova´deˇt i dalsˇ´ı operace. Zameˇrˇ´ıme se na bina´rnı´ relace. Ty lze zna´zornˇovat tabulkami. Naprˇ. relace R = {ha, 1i, ha, 2i, ha, 4i, hb, 2i, hb, 4i, hc, 1i} mezi mnozˇinami X = {a, b, c} a Y = {1, 2, 3, 4} je zna´zorneˇna v Tab. 5. Tedy, je-li hx, yi ∈ R, je v pru˚secˇ´ıku rˇa´dku x a sloupce y symbol ×, jinak tam nenı´ nic. Zacˇneme tzv. inverznı´ relacı´. Inverznı´ relacı´ k relaci R ⊆ X × Y je relace R−1 mezi Y a X definovana´ prˇedpisem R−1 = {hy, xi | hx, yi ∈ R}. Prˇ´ıklad 2.17. Necht’relace R mezi X = {a, b, c} a Y = {1, 2, 3} je R = {ha, 1i, ha, 2i, hb, 2i}. Pak inverznı´ relace k R je relace R−1 mezi Y a X dana´ R−1 = {h1, ai, h2, ai, h2, bi}. Dalsˇ´ı operacı´ je tzv. skla´da´nı´. Je-li R relacı´ mezi mnozˇinami X a Y a S relacı´ mezi mnozˇinami Y a Z, pak slozˇenı´m relacı´ R a S je relace R ◦ S mezi X a Z definovana´ prˇedpisem R ◦ S = {hx, zi | existuje y ∈ Y : hx, yi ∈ R a hy, zi ∈ S}. Tedy hx, zi patrˇ´ı do relace R ◦ S, pra´veˇ kdyzˇ existuje prvek y ∈ Y tak, zˇe hx, yi jsou v relaci R a hy, zi jsou v relaci S. Uvazˇujme na´sledujı´cı´ prˇ´ıklad. Necht’ X je mnozˇina pacientu˚, Y mnozˇina prˇ´ıznaku˚ nemocı´ a Z mnozˇina nemocı´. Necht’ R ⊆ X × Y je relace „mı´t prˇ´ıznak“, tj. hx, yi ∈ R znamena´, zˇe pacient x ma´ prˇ´ıznak y, a S ⊆ Y × Z je relace „by´t prˇ´ıznakem“, tj. hy, zi ∈ S znamena´, zˇe y je prˇ´ıznakem nemoci z (naprˇ. zvy´sˇena´ teplota je prˇ´ıznakem chrˇipky). Pak pro pacienta x ∈ X a nemoc z ∈ Z znamena´ hx, zi ∈ R ◦ S, zˇe existuje prˇ´ıznak y ∈ Y tak, zˇe pacient x ma´ tento prˇ´ıznak a za´rovenˇ je tento prˇ´ıznak prˇ´ıznakem nemoci z. Tedy hx, zi ∈ R ◦ S mu˚zˇeme interpretovat jako „pacient x mu˚zˇe mı´t nemoc z“. Prˇ´ıklad 2.18. Necht’ X = {1, 2, 3, 4, 5, 6, 7} (X reprezentuje pacienty 1–7), Y = {b, h, k, o, r, s, v, z} (b . . . bolest hlavy, h . . . horecˇka, k . . . bolest koncˇetin, o . . . otekle´ zˇla´zy na krku, r . . . ry´ma, s . . . strnuly´ krk, v . . . vyra´zˇka, z . . . zvracenı´), Z = {C, M, N, S, Za} (C . . . chrˇipka, M . . . meningitida, N . . . plane´ nesˇtovice, S . . . spalnicˇky, Za . . . zardeˇnky). Vztah „mı´t prˇ´ıznak“ mezi pacienty a prˇ´ıznaky je popsa´n relacı´ R ⊆ X × Y zna´zorneˇnou v Tab. 5 vlevo, vztah „by´t prˇ´ıznakem nemoci“ mezi prˇ´ıznaky a nemocemi je popsa´n relacı´ S ⊆ Y × Z zna´zorneˇnou v Tab. 5 vpravo. Slozˇenı´ relacı´ R a S je relace R ◦ S ⊆ X × Z zna´zorneˇna´ v 35
S bina´rnı´mi relacemi lze navı´c prova´deˇt operace inverze a skla´da´nı´.
R 1 2 3 4 5 6 7
b
×
h × × ×
× ×
× × ×
k
×
×
o
×
r ×
s
×
×
× ×
v
× × ×
×
S b h k o r s v z
z
×
×
C × × ×
M × ×
N
S
Za
× ×
×
× × ×
×
×
×
Tabulka 5: K Prˇ´ıkladu 2.18: Tabulky popisujı´cı´ bina´rnı´ relaci R mezi pacienty a prˇ´ıznaky nemocı´ (vlevo) a relaci S prˇ´ıznaky nemocı´ a nemocemi (vpravo). R◦S 1 2 3 4 5 6 7
C × × ×
M × × ×
× × ×
× × ×
N
S ×
Za
× × ×
× × × × ×
× × ×
Tabulka 6: Tabulka popisujı´cı´ bina´rnı´ relaci R ◦ S mezi pacienty a nemocemi (viz Prˇ´ıklad 2.18). Tab. 6. Protozˇe hx, zi ∈ R ◦ S mu˚zˇeme cha´pat tak, zˇe pacient x mu˚zˇe mı´t nemoc z, mu˚zˇeme se na prˇ´ılad dı´vat na´sledovneˇ. Ze vstupnı´ch informacı´ R (da´no le´karˇsky´m vysˇetrˇenı´m) a S (da´no znalostı´ le´karˇe) jsme odvodili nove´ informace reprezentovane´ relacı´ R ◦ S. Ty rˇ´ıkajı´, zˇe naprˇ. pacient 1 mu˚zˇe mı´t chrˇipku, meningitidu nebo spalnicˇky, zˇe pacient 5 mu˚zˇe mı´t libovolnou z uvazˇovany´ch nemocı´ (ma´ vsˇechny sledovane´ prˇ´ıznaky), pacient 6 mu˚zˇe mı´t libovolnou z uvazˇovany´ch nemocı´ (prˇestozˇe nema´ vsˇechny sledovane´ prˇ´ıznaky) atd. Veˇta 2.19. Pro relace R ⊆ X × Y , S ⊆ Y × Z, T ⊆ Z × U platı´. R ◦ (S ◦ T ) = (R ◦ S) ◦ T (R ◦ S)−1 = S −1 ◦ R−1 (R−1 )−1 = R
Du˚kaz. R ◦ (S ◦ T ) = (R ◦ S) ◦ T : Ma´me hx, ui ∈ R ◦ (S ◦ T ), pra´veˇ kdyzˇ existuje y ∈ Y tak, zˇe hx, yi ∈ R a hy, ui ∈ S ◦ T , pra´veˇ kdyzˇ pra´veˇ kdyzˇ existuje y ∈ Y tak, zˇe hx, yi ∈ R a existuje z ∈ Z tak, zˇe hy, zi ∈ S a hz, ui ∈ T , pra´veˇ kdyzˇ existujı´ y ∈ Y a z ∈ Z tak, zˇe hx, yi ∈ R, hy, zi ∈ S, hz, ui ∈ T , pra´veˇ kdyzˇ existuje z ∈ Z tak, zˇe hx, zi ∈ R ◦ S a hz, ui ∈ T , pra´veˇ kdyzˇ hx, yi ∈ (R ◦ S) ◦ T . (R ◦ S)−1 = S −1 ◦ R−1 : hz, xi ∈ (R ◦ S)−1 , pra´veˇ kdyzˇ hx, zi ∈ (R ◦ S), pra´veˇ kdyzˇ existuje y ∈ Y tak, zˇe hx, yi ∈ R a hy, zi ∈ S, pra´veˇ kdyzˇ existuje y ∈ Y tak, zˇe hz, yi ∈ S −1 a hy, xi ∈ R−1 , pra´veˇ kdyzˇ hz, xi ∈ S −1 ◦ R−1 . (R−1 )−1 = R: hx, yi ∈ (R−1 )−1 , pra´veˇ kdyzˇ hy, xi ∈ R−1 , pra´veˇ kdyzˇ hx, yi ∈ R. Existujı´ vsˇak i dalsˇ´ı prˇirozene´ zpu˚soby, jak skla´dat relace. Prˇedpokla´dejme opeˇt, zˇe R ⊆ X ×Y , S ⊆ Y × Z. Pak R C S, R B S a R S jsou relace mezi X a Z definovane´ prˇedpisy R C S = {hx, zi | pro kazˇde´ y ∈ Y : pokud hx, yi ∈ R, pak hy, zi ∈ S}, R B S = {hx, zi | pro kazˇde´ y ∈ Y : pokud hy, zi ∈ S, pak hx, yi ∈ R}, R S = {hx, zi | pro kazˇde´ y ∈ Y : hx, yi ∈ R, pra´veˇ kdyzˇ hy, zi ∈ S}. 36
Zpu˚sobu˚, jak skla´dat relace, existuje vı´ce.
RCS 1 2 3 4 5 6 7
C × ×
M
N
S × ×
Za
×
× ×
×
×
RBS 1 2 3 4 5 6 7
× ×
×
×
RS 1 2 3 4 5 6 7
× C
M
N
S
C
M
N
S
Za
×
×
× × ×
×
×
×
× × Za
× × × ×
Tabulka 7: Tabulka popisujı´cı´ bina´rnı´ relace R C S, R B S a R S mezi pacienty a nemocemi (viz Prˇ´ıklad 2.20). Vrat’me se k prˇ´ıklady s pacienty, prˇ´ıznaky a nemocemi. hx, zi ∈ R C S znamena´, zˇe vsˇechny prˇ´ıznaky, ktere´ ma´ pacient x, jsou prˇ´ıznaky nemoci z. hx, zi ∈ R B S znamena´, zˇe pacient x ma´ vsˇechny prˇ´ıznaky nemoci y. hx, zi ∈ R S znamena´, zˇe pacient x ma´ pra´veˇ prˇ´ıznaky nemoci y. Uveˇdomme si, zˇe relace R mu˚zˇe vzniknout na za´kladeˇ le´karˇske´ho vysˇetrˇenı´ (le´karˇ zjisˇt’uje, jake´ prˇ´ıznaky pacienti majı´) a zˇe relace S je „ucˇebnicova´ znalost“ (le´karˇske´ knihy popisujı´ prˇ´ıznaky jednotlivy´ch nemocı´). Obeˇ R i S tedy mohou by´t dostupne´ naprˇ. v databa´zi. Vsˇechna slozˇenı´ R ◦ S, R C S, R B S i R S je pak mozˇne´ z R a S jednodusˇe spocˇ´ıtat. Tyto relace poskytujı´ netrivia´lnı´ informace o tom, kterˇ´ı pacienti mohou mı´t ktere´ nemoci. Prˇitom pro dane´ho pacienta x a danou nemoc y ma´ kazˇdy´ z faktu˚ hx, zi ∈ R ◦ S, hx, zi ∈ R C S, hx, zi ∈ R B S i hx, zi ∈ R S prˇesneˇ stanoveny´ vy´znam. Prˇitom nejslabsˇ´ı indikacı´ toho, zˇe pacient x ma´ nemoc z je fakt hx, zi ∈ R ◦ S (x ma´ asponˇ jeden prˇ´ıznak nemoci z), nejsilneˇjsˇ´ı naopak fakt hx, zi ∈ R S (x ma´ pra´veˇ vsˇechny prˇ´ıznaky nemoci z). Jak je videˇt prˇ´ımo z definice (rozmyslete si), relace C i B jsou podmnozˇinami relace , ta je jejich pru˚nikem. Prˇ´ıklad 2.20. Vrat’me se k Prˇ´ıkladu 2.18. Relace R C S, R B S a R S jsou zna´zorneˇny v Tab. 7. 2.3.4
Bina´rnı´ relace a jejich reprezentace
Pru˚vodce studiem Chceme-li matematicke´ pojmy zpracova´vat v pocˇ´ıtacˇi, je trˇeba je vhodny´m zpu˚sobem v pocˇ´ıtacˇi reprezentovat. Musı´me tedy navrhnout, jak by meˇl by´t matematicky´ pojem (mnozˇina, relace apod.) v pocˇ´ıtacˇi (tj. v pameˇti pocˇ´ıtacˇe) ulozˇen. Nejde ale jen o samotne´ ulozˇenı´ v pameˇti, ny´brzˇ take´ o to, aby vy´pocˇty, ktere´ budou s dany´mi pojmy prova´deˇny, byly rychle´.
V te´to kapitole si uka´zˇeme za´kladnı´ zpu˚soby reprezentace bina´rnı´ch relacı´. Prˇedpokla´dejme, zˇe je da´na bina´rnı´ relace R mezi konecˇny´mi mnozˇinami X a Y .
37
Matematicke´ pojmy je trˇeba umeˇt vhodneˇ reprezentovat. Zvla´sˇt’du˚lezˇita´ je reprezentace v pameˇti pocˇ´ıtacˇe.
R a b c
1 ×
2 × ×
3
4 × ×
1 0 MR = 0 0
×
1 1 0 0
0 0 0 0
1 0 . 1 0
Tabulka 8: Tabulka (vlevo) a matice (vpravo) popisujı´cı´ bina´rnı´ relaci R mezi X = {a, b, c} a Y = {1, 2, 3, 4}. Reprezentace maticı´ (tabulkou) Prˇipomenˇme, zˇe matice typu m × n je obde´lnı´kove´ sche´ma o m rˇa´dcı´ch a n sloupcı´ch, ve ktere´m se na kazˇde´m mı´steˇ odpovı´dajı´cı´m neˇjake´mu rˇa´dku a neˇjake´mu sloupci nacha´zı´ neˇjaka´ (zpravidla cˇ´ıselna´) hodnota. Oznacˇme takovou matici M. Pro kazˇde´ i ∈ {1, . . . , m} a j ∈ {1, . . . , n} oznacˇme mij prvek matice z pru˚secˇ´ıku rˇa´dku i a sloupce j. Pru˚vodce studiem Matice typu m × n je to same´ co tabulka o m rˇa´dcı´ch a n sloupcı´ch. Rozdı´l je jen v tom, zˇe matice majı´ specificky´ zpu˚sob za´pisu a zˇe s maticemi jsou definova´ny ru˚zne´ standardnı´ operace. Pojem matice pouzˇ´ıvajı´ matematici a inzˇeny´rˇi, zvla´sˇt’kdyzˇ se s u´daji zaneseny´mi v matici budou prova´deˇt dalsˇ´ı operace. Pojem tabulka pouzˇ´ıva´ kazˇdy´, kdo chce prˇehledny´m zpu˚sobem zapsat u´daje o neˇjaky´ch polozˇka´ch (viz tabulkove´ procesory, nabı´dkove´ katalogy apod.).
Tabulky a matice prˇedstavujı´ za´kladnı´ zpu˚sob reprezentace bina´rnı´ch relacı´. Necht’ R je relace mezi mnozˇinami X = {x1 , . . . , xm } a Y = {y1 , . . . , yn }. Relaci R reprezentujeme tabulkou/maticı´, ve ktere´ se na mı´steˇ odpovı´dajı´cı´m rˇa´dku i a sloupci j nacha´zı´ hodnota, ktera´ urcˇuje, zda dvojice hxi , yj i je v relaci R. Obvykle se pouzˇ´ıva´ 1 (poprˇ. ×) k oznacˇenı´ hxi , yj i ∈ R a 0 (poprˇ. pra´zdne´ mı´sto) k oznacˇenı´ hxi , yj i 6∈ R. Matice MR reprezentujı´cı´ relaci R ⊆ {x1 , . . . , xm } × {y1 , . . . , yn } je definova´na prˇedpisem 1 je-li hxi , yj i ∈ R, (2.1) mij = 0 je-li hxi , yj i ∈ / R.
Relaci lze reprezentovat maticovı´ (tabulkou).
MR se nazy´va´ matice relace R. Naopak take´, kazˇda´ bina´rnı´ matice M typu m × n, tj. matice s hodnotami 0 a 1, reprezentuje relaci mezi X = {x1 , . . . , xm } a Y = {y1 , . . . , yn }. Prˇ´ıklad 2.21. V Tab. 8 vidı´me tabulkovou a maticovou reprezentaci relace R = {ha, 1i, ha, 2i, ha, 4i, hb, 2i, hb, 4i, hc, 1i} mezi X = {a, b, c} a Y = {1, 2, 3, 4}. Vy´hodou te´to reprezentace je prˇehlednost a to, zˇe zjistit, zda hxi , yj i ∈ R, lze rychle. Nevy´hodou je pameˇt’ova´ na´rocˇnost. Naprˇ. pro reprezentaci relace na mnozˇineˇ X s 1000 prvky zabı´ra´ je odpovı´dajı´cı´ matice rozmeˇru 1000 × 1000 a ma´ tedy 1000000 polı´cˇek. V prˇ´ıpadeˇ, zˇe kazˇdy´ prvek z X je v relaci s (pru˚meˇrneˇ) 3 prvky z Y , obsahuje matice 3 tisı´ce jednicˇek a zbytek (997 tisı´c) jsou nuly. Prˇitom uchova´vat nuly je zbytecˇne´, stacˇilo by uchovat informaci o tom, kde majı´ by´t jednicˇky. Pro takove´ prˇ´ıpady se pouzˇ´ıvajı´ jine´ reprezentace. Pro bina´rnı´ matice mu˚zˇeme zave´st operace, ktere´ odpovı´dajı´ operacı´m s relacemi. Meˇjme bina´rnı´ matice M, N typu m × n a matici K typu n × k. Definujme na´sledujı´cı´ operace. M ∨ N = P,
pij = max{mij , nij }
M ∧ N = P,
pij = min{mij , nij } 38
Maticova´ reprezentace je na´zorna´. Jejı´ nevy´hodou je velka´ pameˇt’ova´ na´rocˇnost.
M − N = P, M · K = P, MT ,
pij = max{0, mij − nij } pij = max{mil · klj ; l = 1, . . . , n}
mTij = mji .
Naprˇ´ıklad operace ∨ prˇirˇazuje maticı´m M a N matici P, jejı´zˇ kazˇdy´ prvek pij je roven minimu z hodnot mij a nij . Veˇta 2.22. Pro relace R, S ⊆ X × Y , U ⊆ Y × Z je MR∪S = MR ∨ MS
Operace s relacemi lze prova´deˇt pomocı´ vhodny´ch operacı´ s maticemi.
MR∩S = MR ∧ MS MR−S = MR − MS MR◦U = MR · MU MR−1 = (MR )T Du˚kaz. Du˚kaz je jednoduchy´. Stacˇ´ı porovnat definice operacı´ s maticemi a definice operacı´ s relacemi. Prˇ´ıklad 2.23. Na mnozˇineˇ X = {a1 , a2 , a3 , a4 } uvazˇujme relace R = idX ∪ {ha1 , a2 i, ha1 , a3 i, ha3 , a2 i} a S = {ha1 , a1 i, ha2 , a4 i, ha3 , a4 i, ha4 , a1 i}. Prˇitom idX = {ha1 , a1 i, . . . , ha6 , a6 i}. Matice teˇchto relacı´ jsou 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 a MS = MR = 0 0 0 1 . 0 1 1 0 1 0 0 0 0 0 0 1 Matice relace R ∪ S je
1 1 1 0
1 0 1 0
0 1 . 1 1
0 0 0 0
0 0 0 0
0 0 . 0 0
0 0 0 0
0 0 0 0
1 1 . 1 0
1 0 MR ∨ MS = 0 1 Matice relace R ∩ S je 1 0 MR ∧ MS = 0 0 Matice relace R ◦ S je 1 0 MR · MS = 0 1 Matice relace R−1 je
1 1 (MR )T = 1 0
0 1 0 0
0 1 1 0
0 0 . 0 1
Reprezentace grafem Grafy prˇedstavujı´ dalsˇ´ı zpu˚sob reprezentace bina´rnı´ch relacı´, ktery´ je na´zorny´. Graf bina´rnı´ relace R na mnozˇineˇ X dostaneme tak, zˇe kazˇdy´ prvek x ∈ X zna´zornı´me v rovineˇ jako krouzˇek s oznacˇenı´m dane´ho prvku. Pokud hx, yi ∈ R, nakreslı´me z krouzˇku odpovı´dajı´cı´ho x do krouzˇku odpovı´dajı´cı´ho y orientovanou cˇa´ru s sˇipkou. 39
Relace na mnozˇineˇ lze graficky zna´zornit pomocı´ tzv. grafu˚.
a
d
b
c
Obra´zek 2: Graf relace k Prˇ´ıkladu 2.24. a • •
b •
b • •
d
c • •
a
d
d
Obra´zek 3: Relace R z Prˇ´ıkladu 2.24 reprezentovana´ seznamem seznamu˚. Prˇ´ıklad 2.24. Na Obr. 2 vidı´me graf reprezentujı´cı´ {ha, bi, ha, di, hc, ai, hb, di} na mnozˇineˇ X = {a, b, c, d}.
bina´rnı´
relaci
R
=
Upozorneˇme uzˇ ted’, zˇe graf je jednı´m ze za´kladnı´ch pojmu˚ diskre´tnı´ matematiky. Grafy se budeme zaby´vat v Kapitole 4. V tomto smyslu pouzˇ´ıva´me v te´to kapitole pojem graf neprˇesneˇ. Podobneˇ jak jsme uka´zali, je mozˇne´ reprezentovat i relace R mezi X a Y . Cˇtena´rˇ necht’ si detaily rozmyslı´ sa´m. Reprezentace seznamem seznamu˚ Tento zpu˚sob reprezentace je vhodny´ pro ulozˇenı´ bina´rnı´ relace R na mnozˇineˇ X v pameˇti pocˇ´ıtacˇe. Na Obr. 3 je zna´zorneˇna reprezentace relace R z Prˇ´ıkladu 2.24 seznamem seznamu˚. Reprezentaci tvorˇ´ı hlavnı´ (spojovy´) seznam3 , ve ktere´m jsou ulozˇeny vsˇechny prvky mnozˇiny X. Na Obr. 3 je hlavnı´ seznam zna´zorneˇn shora dolu˚ spojeny´mi cˇtverecˇky, ktere´ obsahujı´ a, . . . , d. Z kazˇde´ho prvku x ∈ X hlavnı´ho seznamu vede seznam obsahujı´cı´ pra´veˇ ty y ∈ X, pro ktere´ hx, yi ∈ R. Na Obr. 3 jsou tyto seznamy zna´zorneˇny vodorovneˇ. Naprˇ. z prvku a hlavnı´ho seznamu vede seznam obsahujı´cı´ b a d. To proto, zˇe ha, bi ∈ R a ha, di ∈ R. Z prvku d nevede zˇa´dny´ seznam (tj. z d vede pra´zdny´ seznam), protozˇe neexistuje y ∈ X tak, zˇe hd, yi ∈ R. Vrat’me se k relaci na mnozˇineˇ X s 1000 prvky, kde kazˇdy´ prvek je v relaci s pru˚meˇrneˇ 3 prvky. Prˇi reprezentaci seznamem seznamu˚ budeme potrˇebovat 1000 polı´cˇek pro prvky hlavnı´ho seznamu a pro kazˇdy´ z teˇchto prvku˚ 3 dalsˇ´ı polı´cˇka pro prvky seznamu, ktery´ z tohoto prvky vede. To je celkem 4000 polı´cˇek. Zapocˇ´ıta´me-li, zˇe v kazˇde´m polı´cˇku je trˇeba mı´t nejen oznacˇnı´ prvku, ale i ukazatel na dalsˇ´ı polı´cˇko, je trˇeba zhruba 2×4000 pameˇt’ovy´ch buneˇk. Prˇipomenˇme, zˇe maticova´ reprezentace takove´ relace vyzˇaduje 1000000 pameˇt’ovy´ch buneˇk4 . 3
Spojovy´ seznam je jednou ze za´kladnı´ch datovy´ch struktur. Blı´zˇe viz jakoukoli ucˇebnici algoritmu˚ a datovy´ch struktur. 4 Cela´ tato u´vaha je zjednodusˇena´, ale ilustruje podstatu veˇci.
40
Reprezentace seznamem seznamu˚ je pameˇt’oveˇ u´sporna´ a je vhodna´ pro pocˇ´ıtacˇove´ zpracova´nı´.
2.4
Funkce (zobrazenı´)
2.4.1
Pojem funkce
Funkce je matematicky´m proteˇjsˇkem beˇzˇneˇ pouzˇ´ıvane´ho pojmu prˇirˇazenı´. Objektu˚m jsou cˇasto jednoznacˇny´m zpu˚sobem prˇirˇazova´ny dalsˇ´ı objekty. Naprˇ. funkce sinus prˇirˇazuje kazˇde´mu rea´lne´mu cˇ´ıslu x hodnotu sin(x), zameˇstnancu˚m jsou v ra´mci spolecˇnosti, kde pracujı´, prˇirˇazova´na identifikacˇnı´ cˇ´ısla apod. Takove´ prˇirˇazenı´ je mozˇne´ cha´pat jako mnozˇinu dvojic hx, yi, kde y je objekt prˇirˇazeny´ objektu x. Prˇirˇazenı´ je tedy mozˇne´ cha´pat jako bina´rnı´ relaci mezi mnozˇinou X objektu˚, ktery´m jsou prˇirˇazova´ny objekty, a mnozˇinou Y objektu˚, ktere´ jsou objektu˚m z X prˇirˇazova´ny. Takova´ relace R ma´ dı´ky jednoznacˇnosti prˇirˇazenı´ na´sledujı´cı´ specia´lnı´ vlastnost: je-li hx, y1 i ∈ R (objektu x je prˇirˇazen objekt y1 ) a hx, y2 i ∈ R (objektu x je prˇirˇazen objekt y2 ), pak y1 = y2 (jednoznacˇnost prˇirˇazene´ho objektu, objektu x nemohou by´t prˇirˇazeny dva ru˚zne´ objekty). To vede k na´sledujı´cı´ definici. Definice 2.25. Relace R mezi X a Y se nazy´va´ funkce (neˇkdy take´ zobrazenı´ ) mnozˇiny X do mnozˇiny Y , pra´veˇ kdyzˇ pro kazˇde´ x ∈ X existuje y ∈ Y tak, zˇe hx, yi ∈ R, a pro kazˇde´ x ∈ X a y1 , y2 ∈ Y platı´, zˇe hx, y1 i ∈ R a hx, y2 i ∈ R implikuje y1 = y2 . Fakt, zˇe R je funkce X do Y , oznacˇujeme R : X → Y . Pro funkce pouzˇ´ıva´me spı´sˇ f, g, . . . nezˇ R, S, . . . . Je-li f : X → Y funkce a x ∈ X, pak ten y ∈ Y , pro ktery´ je hx, yi ∈ f , oznacˇujeme f (x), pı´sˇeme take´ x 7→ y, poprˇ. x 7→ f (x). Prˇ´ıklad 2.26. Uvazˇujme mnozˇiny X = {a, b, c}, Y = {a, b, 1, 2}. • Relace R = {ha, ai, hb, bi} nenı´ funkce X do Y , protozˇe k prvku c ∈ X neexistuje prvek y ∈ Y tak, zˇe hx, yi ∈ R. • Relace R = {ha, ai, hb, 2i, hc, ai, hc, 2i} nenı´ funkce X do Y , protozˇe k prvku c ∈ X existujı´ dva ru˚zne´ prvky, ktere´ jsou s nı´m v relaci R. Ma´me totizˇ hc, ai ∈ R, hc, 2i ∈ R, ale a 6= 2. • Relace R = {ha, 2i, hb, bi, hc, 2i} je funkce X do Y . Relace R ⊆ X × Y , ktera´ splnˇuje kdyzˇ hx, y1 i ∈ R a hx, y2 i ∈ R, pak y1 = y2 se neˇkdy nazy´va´ parcia´lnı´ (cˇa´stecˇna´) funkce. Neˇkdy se pouzˇ´ıva´ obrat „uvazˇujme funkci y = f (x)“, kde f (x) je neˇjaky´ vy´raz, naprˇ. y = x2 apod. Prˇitom se ma´ za to, zˇe je jasne´, o jake´ mnozˇiny X a Y se jedna´ (cˇasto je X = Y = R, poprˇ. X ⊆ R). Pak jde vlastneˇ o funkci {hx, yi | x ∈ X, y ∈ Y, y = f (x)}. 2.4.2
Typy funkcı´
Definice 2.27. Funkce f : X → Y se nazy´va´ • prosta´ (neˇkdy take´ injektivnı´ ), pra´veˇ kdyzˇ pro kazˇde´ x1 , x2 ∈ X, zˇe z x1 6= x2 plyne f (x1 ) 6= f (x2 ), • funkce mnozˇiny X na mnozˇinu Y (neˇkdy take´ surjektivnı´ ), pra´veˇ kdyzˇ pro kazˇde´ y ∈ Y existuje x ∈ X tak, zˇe f (x) = y,
41
• vza´jemneˇ jednoznacˇna´ (neˇkdy take´ bijektivnı´ ), pra´veˇ kdyzˇ je prosta´ a je to funkce na mnozˇinu Y (tj. injektivnı´ a surjektivnı´). Funkce je tedy prosta´, pra´veˇ kdyzˇ z f (x1 ) = f (x2 ) plyne x1 = x2 . Prˇ´ıklad 2.28. • Pro X = {a, b, c, d} a Y = {1, 2, 3, 4} je f = {ha, 1i, hb, 1i, hc, 4i, hd, 3i} funkce X do Y . f nenı´ injektivnı´ (protozˇe f (a) = f (b), ale a 6= b), ani surjektivnı´ (neexistuje x ∈ X tak, aby f (x) = 2), a tedy ani bijektivnı´. • Pro X = {a, b} a Y = {1, 2, 3} je f = {ha, 1i, hb, 3i} funkce X do Y , ktera´ je injektivnı´, ale nenı´ surjektivnı´ (neexistuje x ∈ X tak, aby f (x) = 2), a tedy ani bijektivnı´. • Pro X = {a, b, c} a Y = {1, 2} je f = {ha, 2i, hb, 2i, hc, 1i} funkce X do Y , ktera´ nenı´ injektivnı´ (protozˇe f (a) = f (b), ale a 6= b), ale je surjektivnı´, a tedy nenı´ bijektivnı´. • Pro X = {a, b, c} a Y = {1, 2, 3} je f = {ha, 2i, hb, 1i, hc, 3i} funkce X do Y , ktera´ je injektivnı´ i surjektivnı´, a i bijektivnı´. Prˇ´ıklad 2.29. Podı´vejte se na na´sledujı´cı´ funkce. • f = {hx, yi ∈ R × R | y = x2 } je funkce R do R, ktera´ nenı´ injekce (naprˇ. (−2)2 = 22 ) ani surjekce (naprˇ. neexistuje x ∈ R tak, zˇe x2 = −1). Uvazˇujeme-li ji vsˇak jako funkci mnozˇiny R do mnozˇiny {a ∈ R | a ≥ 0} (neza´porna´ rea´lna´ cˇ´ısla), je to surjekce. • f = {hx, yi ∈ R × R | y = x3 } je funkce R do R, ktera´ je injekcı´ i surjekcı´, tj. je bijekcı´. • f = {hx, yi ∈ N × N | y = x!} je funkce N do N (faktoria´l, tj. x! = x · (x − 1) · · · 2 · 1). Je to injekce, ale ne surjekce (naprˇ. cˇ´ıslo 3 nenı´ faktoria´lem zˇa´dne´ho cˇ´ısla, tj. neexistuje x ∈ N tak, zˇe x! = 3). Podı´vejme se na neˇktere´ vlastnosti funkcı´. Veˇta 2.30. Pro funkce f, f1 , f2 : X → Y , g, g1 , g2 : Y → Z platı´ a) f ◦ g je funkce. b) Jsou-li f, g injekce, je f ◦ g injekce. c) Jsou-li f, g surjekce, je f ◦ g surjekce. Du˚kaz. Dokazˇme a). Nejprve musı´me uka´zat, zˇe pro kazˇde´ x ∈ X existuje z ∈ Z tak, zˇe hx, zi ∈ f ◦ g. Protozˇe je f funkce, existuje k x ∈ X prvek y ∈ Y tak, zˇe hx, yi ∈ f , a protozˇe je g funkce, existuje k tomu y prvek z ∈ Z tak, zˇe hy, zi ∈ g. Podle definice je tedy hx, zi ∈ f ◦ g. Nynı´ musı´me uka´zat, zˇe kdyzˇ hx, z1 i ∈ f ◦ g a hx, z2 i ∈ f ◦ g, pak z1 = z2 . Kdyzˇ hx, z1 i ∈ f ◦ g a hx, z2 i ∈ f ◦ g, pak podle definice pro neˇjake´ y1 , y2 ∈ Y je hx, y1 i ∈ f , hy1 , z1 i ∈ g, a hx, y2 i ∈ f , hy2 , z2 i ∈ g. Protozˇe f je funkce, musı´ by´t y1 = y2 , a protozˇe g je funkce, musı´ by´t z1 = z2 . Tedy a) platı´. Dokazˇme b). Je-li hx1 , zi ∈ f ◦ g, hx2 , zi ∈ f ◦ g, existujı´ y1 , y2 ∈ Y tak, zˇe hx1 , y1 i ∈ f , hx2 , y2 i ∈ f , hy1 , zi ∈ g, hy2 , zi ∈ g. Protozˇe g je injekce, platı´ y1 = y2 . Platı´ tedy hx1 , y1 i ∈ f , hx2 , y1 i ∈ f , a protozˇe f je injekce, je x1 = x2 , tedy f ◦ g je injekce. c) se doka´zˇe podobneˇ.
42
2.4.3
Princip indukce
Princip (matematicke´) indukce umozˇnˇuje dokazovat tvrzenı´ tvaru „pro kazˇde´ prˇirozene´ cˇ´ıslo n ). platı´ V (n)“, kde V (n) je neˇjake´ tvrzenı´, ktere´ za´visı´ na n (naprˇ. 1 + 2 + · · · + n = n(n+1) 2 Veˇta 2.31 (princip indukce). Necht’je pro kazˇde´ n ∈ N da´no tvrzenı´ V (n). Prˇedpokla´dejme, zˇe platı´ • V (1) (indukcˇnı´ prˇedpoklad), • pro kazˇde´ n ∈ N: z V (n) plyne V (n + 1) (indukcˇnı´ krok). Pak V (n) platı´ pro kazˇde´ n ∈ N. Princip indukce je jednou ze za´kladnı´ch vlastnostı´ prˇirozeny´ch cˇ´ısel. Z prˇedpokladu, zˇe kazˇda´ nepra´zdna´ podmnozˇina K ⊆ N ma´ nejmensˇ´ı prvek (cozˇ je pravdivy´ a intuitivneˇ jasny´ prˇedpoklad) lze princip indukce doka´zat. Du˚kaz. Princip indukce doka´zˇeme sporem. Prˇedpokla´dejme, zˇe princip indukce neplatı´, tj. existujı´ tvrzenı´ V (n) (n ∈ N), ktere´ splnˇujı´ oba prˇedpoklady principu indukce, ale pro neˇjake´ n0 ∈ N tvrzenı´ V (n0 ) neplatı´. Oznacˇme K = {m ∈ N | V (m) neplatı´} mnozˇinu vsˇech takovy´ch n0 . K je tedy nepra´zdna´ (nebot’n0 ∈ K). K ma´ tedy nejmensˇ´ı prvek k (viz pozna´mka prˇed du˚kazem) a ten je ru˚zny´ od 1 (protozˇe podle indukcˇnı´ho prˇedpokladu 1 6∈ K). Pak tedy k − 1 6∈ K, tedy V (k − 1) platı´. Z indukcˇnı´ho kroku plyne, zˇe platı´ i V (k), tedy k 6∈ K, cozˇ je spor s k ∈ K. . Tedy V (n) je tvrzenı´ Prˇ´ıklad 2.32. Dokazˇme uzˇ uvedeny´ vztah 1 + 2 + · · · + n = n(n+1) 2 Pn n(n+1) . Podle principu indukce stacˇ´ı oveˇrˇit indukcˇnı´ prˇedpoklad a indukcˇnı´ krok. k=1 k = 2 Indukcˇnı´ prˇedpoklad: V (1) je tvrzenı´ 1 =
1·(1+1) , 2
a to evidentneˇ platı´.
Indukcˇnı´ krok: Prˇedpokla´dejme, zˇe platı´ V (n) a dokazˇme V (n+1). 1+· · ·+n+n+1 se rovna´ + n + 1. Da´le je n(n+1) +n+1 = (1 + · · · + n) + n + 1, cozˇ se dle prˇedpokladu rovna´ n(n+1) 2 2 n(n+1)+2(n+1) (n+1)·(n+1) (n+1)·(n+1) n2 +3n+2 = = . Celkem tedy 1 + · · · + n + n + 1 = , 2 2 2 2 cozˇ je pra´veˇ tvrzenı´ V (n + 1). Podle principu indukce je tedy tvrzenı´ doka´zane´. 2.4.4
Konecˇne´, spocˇetne´ a nespocˇetne´ mnozˇiny
Mnozˇina A se nazy´va´ konecˇna´, pra´veˇ kdyzˇ pra´zdna´ (A = ∅) nebo existuje prˇirozene´ cˇ´ıslo n a bijekce f : A → {1, 2, . . . , n}. V prvnı´m prˇ´ıpadeˇ rˇ´ıka´me, zˇe pocˇet prvku˚ mnozˇiny A je 0. Ve druhe´m prˇ´ıpadeˇ rˇ´ıka´me, zˇe pocˇet prvku˚ mnozˇiny A je n. Prˇ´ıklad 2.33. Je tedy |∅| = 0. Mnozˇiny A = {2, 4, 6}, B = {n ∈ N | n ≤ 10000000 a n je sude´} jsou konecˇne´ a je |A| = 3, |B| = 5000000. Mnozˇina A se nazy´va´ nekonecˇna´, pra´veˇ kdyzˇ nenı´ konecˇna´. Mnozˇina A se nazy´va´ spocˇetna´, pra´veˇ kdyzˇ bijekce f : A → N. Mnozˇina A se nazy´va´ nespocˇetna´, pra´veˇ kdyzˇ je nekonecˇna´ a nenı´ spocˇetna´. Pozna´mka 2.34. (1) Protozˇe pro zˇa´dne´ n ∈ N neexistuje bijekce f : {1, . . . , n} → N, je kazˇda´ spocˇetna´ mnozˇina nekonecˇna´. (2) Z definice plyne, zˇe kazˇda´ nekonecˇna´ mnozˇina je bud’ spocˇetna´, nebo nespocˇetna´. 2
(22 )
Prˇ´ıklad 2.35. Mnozˇiny A = {2, 4, 6, 8, . . . }, B = {2, 22 , 2(2 ) , 2(2 ),... }, B = Z, C = Q, D = R, E = [0, 1] jsou nekonecˇne´. Prˇitom A, B, C jsou spocˇetne´ a D a E jsou nespocˇetne´. 43
Shrnutı´ Karte´zsky´ soucˇin mnozˇin X1 , . . . , Xn je mnozˇina vsˇech usporˇa´dany´ch n-tic prvku˚ z teˇchto mnozˇin. Relace mezi mnozˇinami X1 , . . . , Xn je libovolna´ podmnozˇina karte´zske´ho soucˇinu teˇchto mnozˇin. S relacemi lze prova´deˇt vsˇechny mnozˇinove´ operace. S bina´rnı´mi relacemi lze prova´deˇt operace inverze a skla´da´nı´. Bina´rnı´ relace se nejcˇasteˇji reprezentujı´ tabulkou nebo grafem, v pameˇti pocˇ´ıtacˇe pak maticı´ nebo seznamem seznamu˚. Funkce je zvla´sˇtnı´ typ relace. Injekce, surjekce a bijekce jsou specia´lnı´ typy funkcı´. Princip indukce slouzˇ´ı k proka´za´nı´ toho, zˇe dany´ vy´rok platı´ pro vsˇechna prˇirozena´ cˇ´ısla. Pojmy k zapamatova´nı´ • karte´zsky´ soucˇin, • relace, bina´rnı´ relace, inverznı´ relace, skla´da´nı´ bina´rnı´ch relacı´, reprezentace bina´rnı´ch relacı´, • funkce, injekce, surjekce, bijekce, • princip indukce. Kontrolnı´ ota´zky 1. Je pravda, zˇe kazˇda´ nepra´zdna´ n-a´rnı´ relace ma´ asponˇ n prvku˚? Procˇ? 2. Jaka´ je inverznı´ relace k relaci „by´t otcem“ na mnozˇineˇ vsˇech lidı´ (slovneˇ ji popisˇte)? Je-li R vy´sˇe uvedena´ relace „by´t otcem“, co je relacı´ R ◦ R? Co jsou relace R C R, R B R? 3. Jaky´ je rozdı´l mezi tabulkovou a maticovou reprezentacı´ bina´rnı´ relace? 4. Necht’X a Y jsou mnozˇiny. Jaky´ vztah musı´ platit mezi |X| a |Y | pro to, aby existovala funkce f : X → Y , ktera´ je injekcı´, surjekcı´, bijekcı´? 5. Mu˚zˇe by´t pra´zdna´ mnozˇina funkcı´ X do Y ? Rozeberte v za´vislosti na mnzˇina´ch X a Y . Cvicˇenı´ 1. Dokazˇte na´sledujı´cı´ vztahy. A × B = ∅, pra´veˇ kdyzˇ A = ∅ nebo B = ∅ A × B = B × A, pra´veˇ kdyzˇ A × B = ∅ nebo A = B A × (B ∪ C) = (A × B) ∪ (A × C) (A ∪ B) × C = (A × C) ∪ (B × C) A × (B ∩ C) = (A × B) ∩ (A × C) (A ∩ B) × C = (A × C) ∩ (B × C) A × (B − C) = (A × B) − (A × C) (A − B) × C = (A × C) − (B × C) 2. Najdeˇte prˇ´ıklady relacı´, pro ktere´ platı´ (neplatı´) R ◦ S = S ◦ R, R−1 = R. 3. Dokazˇte, zˇe pro relace R, R1 , R2 , U ⊆ X × Y , S, S1 , S2 , V ⊆ Y × Z, T ⊆ Z × W
44
platı´ (R−1 )−1 = R (R ◦ S) ◦ T = R ◦ (S ◦ T ) (R ◦ S)−1 = S −1 ◦ R−1 Je-li R ⊆ U, S ⊆ V, pak R ◦ S ⊆ U ◦ V (R1 ∪ R2 )−1 = R1−1 ∪ R2−1 (R1 ∩ R2 )−1 = R1−1 ∩ R2−1 R ◦ (S1 ∪ S2 ) = R ◦ S1 ∪ R ◦ S2 R ◦ (S1 ∩ S2 ) = R ◦ S1 ∩ R ◦ S2 (R1 ∪ R2 ) ◦ S = R1 ◦ S ∪ R2 ◦ S (R1 ∩ R2 ) ◦ S = R1 ◦ S ∩ R2 ◦ S 4. Ktere´ z na´sledujı´cı´ch relacı´ R jsou funkce X do Y ? a) X = Y = N, R = {hm, ni | m 6= n}, b) X = Y = {a, b, c}, R = {ha, ai, ha, bi, ha, ci}, c) X = Y = {a, b, c}, R = {ha, ai, hb, ai, hc, ai}, d) X je mnozˇina vsˇech cˇesky´ch slov, Y je mnozˇina vsˇech pı´smen cˇeske´ abecedy {hw, li | w je cˇeske´ slovo s poslednı´m pı´smenem l}, e) X = Y = R, R = {hx, yi | x2 + y 2 = 1}, f) X = Y = R, R = {hx, yi | x2 = y}, g) X = Y = R, R = {hx, yi | x = y 2 }. 5. Ktere´ z na´sledujı´cı´ch funkcı´ jsou injektivnı´? Ktere´ jsou surjektivnı´? a) f : N → N , f (n) = n + 1, b) f : Z → Z, f (i) = i + 1, c) f : K → K, kde K = {1, 2, . . . , k}, i+1 f (i) = 1 d) f : N → {0, 1, 2, 3}, kde 0 1 f (i) = 2 3
pro 1 ≤ i < k pro i = k
jestlizˇe i je deˇlitelne´ 5, ale ne 11, jestlizˇe i je deˇlitelne´ 11, ale ne 5, jestlizˇe i je deˇlitelne´ 55, v ostatnı´ch prˇ´ıpadech,
e) f : Q → Q, f (i) = i3 . 6. Najdeˇte prˇ´ıklady funkcı´ f a g tak, aby a) g nebyla injekce, ale f ◦ g ano, b) f nebyla surjekce, ale f ◦ g ano. 7. Pro mnozˇinu U necht’ je idU = {hu, ui | u ∈ U } relace identita. Ukazˇte, zˇe pro relaci f ⊆ X × Y platı´ a) f splnˇuje, zˇe z hx, y1 i ∈ f a hx, y2 i ∈ f plyne y1 = y2 , pra´veˇ kdyzˇ f −1 ◦ f ⊆ idY , b) je-li f funkce X do Y , pak je injektivnı´, pra´veˇ kdyzˇ f ◦ f −1 = idX . c) Je-li f funkce X do Y , pak je surjektivnı´, pra´veˇ kdyzˇ f −1 ◦ f = idY . 8. Meˇjme f : X → Y . Pro A ⊆ X a B ⊆ Y oznacˇme f (A) = {f (x) | x ∈ A} a f−1 (B) = {x ∈ X | f (x) ∈ B}. Ukazˇte, zˇe a) f je injektivnı´, pra´veˇ kdyzˇ f −1 splnˇuje, zˇe z hx, y1 i ∈ f a hx, y2 i ∈ f plyne y1 = y 2 , 45
b) je-li f injektivnı´, pak pro kazˇde´ A, B ⊆ X platı´ f (A ∩ B) = f (A) ∩ f (B), f (A − B) = f (A) − f (B). c) pro kazˇde´ A, B ⊆ Y f−1 (A ∩ B) = f−1 (A) ∩ f−1 (B), f−1 (A − B) = f−1 (A) − f−1 (B). 9. Ukazˇte, zˇe nenı´-li f injektivnı´, neplatı´ bod b) z prˇedchozı´ho cvicˇenı´. 10. Dokazˇte, zˇe pro funkce f, f1 , f2 : X → Y , g, g1 , g2 : Y → Z platı´, zˇe a) je-li f ◦ g injekce, je f injekce, b) je-li f ◦ g surjekce, je g surjekce, c) je-li g injekce f1 ◦ g = f2 ◦ g, je f1 = f2 , 11. 12. 13. 14. 15.
d) je-li f surjekce f ◦ g1 = f ◦ g2 , je g1 = g2 . P Dokazˇte indukcı´, zˇe nk=1 k 2 = n(n+1)(2n+1) . 6 Pn n(n+1) Dokazˇte indukcı´, zˇe k=1 k 3 = [ 2 ]2 . Dokazˇte indukcı´, zˇe pro n ∈ N je 2n+2 + 32n+1 deˇlitelne´ 7. Dokazˇte, zˇe pro n ∈ N je (1 + 31 )n ≥ 1 + n3 . Kde je chyba v na´sledujı´cı´m „du˚kazu“ indukcı´? Tvrzenı´. V pro kazˇdou posloupnost n prvku˚ a1 , . . . , an platı´, zˇe vsˇechny prvky v nı´ jsou stejne´. Du˚kaz. Pro cˇ´ıslo 1 je tvrzenı´ trivia´lneˇ splneˇno. Prˇedpokla´dejme, zˇe tvrzenı´ platı´ pro k prvku˚. Uvazˇujme posloupnost libovolny´ch k + 1 prvku˚ a1 , . . . , ak+1 . Pak a1 , . . . , ak je posloupnost k prvku˚ a a2 , . . . , ak+1 je posloupnost k prvku˚, a podle prˇedpokladu tedy a1 = · · · = ak a a2 = · · · = ak+1 . Odtud plyne a1 = · · · = ak+1 .
´ koly k textu U 1. Vrat’me se k pojmu usporˇa´dana´ dvojice prvku˚. Tento pojem jsme cha´pali jako za´kladnı´, tj. nedefinovany´. Je ho vsˇak mozˇne´ definovat pomocı´ pojmu mnozˇina tak, zˇe bude mı´t ˇ ekneˇme, zˇe usporˇa´dana´ dvojice prvku˚ a, b je mnozˇina vsˇechny pozˇadovane´ vlastnosti. R ha, bi = {a, {a, b}}. Ukazˇte, zˇe ha, bi = hc, di, pra´veˇ kdyzˇ a = c a b = d. 2. Dokazˇte zby´vajı´cı´ cˇa´sti Veˇty 2.9 3. Dokazˇte Veˇtu 2.22. 4. Ukazˇte, zˇe pro konecˇne´ mnozˇiny X a Y existuje bijekce X do Y , pra´veˇ kdyzˇ X a Y majı´ stejny´ pocˇet prvku˚. 5. Dokazˇte bod c) z Veˇty 2.30.
ˇ esˇenı´ R 1. Vztahy se doka´zˇou jednodusˇe, rozepsa´nı´m prˇ´ımo podle definice. 2. Meˇjme naprˇ. X = Y = {x, y, z}. R ◦ S = S ◦ R platı´ pro R = {hx, yi, hz, yi}, S = {hy, xi, hy, zi}, neplatı´ pro R = {hx, yi}, S = {hy, zi}. R−1 = R platı´ naprˇ. pro R = {hx, yi, hy, xi}, neplatı´ naprˇ. pro R = {hx, zi}. 3. Vztahy se doka´zˇou jednodusˇe, rozepsa´nı´m prˇ´ımo podle definice. 4. Funkcemi jsou relace R z c), d), f). 5. Injekce: a), b), c), e), surjekce: b), c), d). 6. Vezmeˇme X = {x}, Y = {y1 , y2 }, Z = {z}. f = {hx, y1 i}, g = {hy1 , zi, hy2 , zi} splnˇujı´ a) i b).
46
7. a) Necht’f splnˇuje, zˇe z hx, y1 i ∈ f a hx, y2 i ∈ f plyne y1 = y2 . Kdyzˇ hy1 , y2 i ∈ f −1 ◦f , pak existuje x ∈ X tak, zˇe hy1 , xi ∈ f −1 a hx, y2 i ∈ f , tj. hx, y1 i ∈ f a hx, y2 i ∈ f . Z prˇedpokladu plyne y1 = y2 , tj. f −1 ◦ f ⊆ idY . Naopak, necht’f −1 ◦ f ⊆ idY . Necht’hx, y1 i ∈ f a hx, y2 i ∈ f . Pak hy1 , y2 i ∈ f −1 ◦ f ⊆ idY . Protozˇe f −1 ◦ f ⊆ idY , je hy1 , y2 i ∈ idY , tj. y1 = y2 . Tedy z z hx, y1 i ∈ f a hx, y2 i ∈ f plyne y1 = y2 . b) a c) se doka´zˇou podobny´mi u´vahami. 8. a) prˇ´ımo z definice. b) f (A ∩ B) = f (A) ∩ f (B): Protozˇe A ∩ B ⊆ A i A ∩ B ⊆ B, je dle definice f (A ∩ B) ⊆ f (A) i f (A ∩ B) ⊆ f (B). Z toho plyne f (A ∩ B) ⊆ f (A) ∩ f (B). Naopak, pokud y ∈ f (A) ∩ f (B), pak existujı´ x1 ∈ A a x2 ∈ B tak, zˇe f (x1 ) = y a f (x2 ) = y. Protozˇe je f injekce, musı´ by´t x1 = x2 . Tedy x1 ∈ A ∩ B, a proto y ∈ f (A ∩ B). Proto je f (A) ∩ f (B) ⊆ f (A ∩ B). f (A − B) = f (A) − f (B): Necht’ y ∈ f (A − B), tj. existuje x ∈ A − B tak, zˇe f (x) = y. Proto je y ∈ f (A). Kdyby y ∈ f (B), pak existoval x0 ∈ B tak, zˇe f (x0 ) = y. Protozˇe x ∈ A − B, je x 6= x0 . To je ale spor s injektivitou f , protozˇe ma´me x 6= x0 a f (x) = y = f (x0 ). Tedy je y ∈ f (A) − f (B). Naopak, necht’ y ∈ f (A) − f (B). Pak y = f (x) pro neˇjaky´ x ∈ A a neexistuje x0 ∈ B tak, zˇe f (x0 ) = y. Proto je x ∈ A − B, a tedy y ∈ f (A − B). c) se doka´zˇe podobny´mi u´vahami. 9. Vezmeˇme naprˇ. X = {x1 , x2 }, Y = {y}, funkci f danou prˇedpisy f (x1 ) = y, f (x2 ) = y, mnozˇiny A = {x1 }, B = {x2 }. Pak f (A∩B) = ∅ a f (A)∩f (B) = {y}. Pro mnozˇiny A = {x1 , x2 } a B = {x2 } je f (A − B) = f ({x1 }) = {y} a f (A) = f (B) = ∅. 10. Dokazˇme b). Kdyby g nebyla surjekce, pak by existoval z ∈ Z, kte ktere´mu neexistuje y ∈ Y tak, zˇe g(y) = z. Proto nemu˚zˇe existovat x ∈ X tak, aby f ◦ g(x) = z (jinak by pro y = f (x) bylo g(y) = z). Dokazˇme d). Protozˇe f je surjekce, existuje pro libovolny´ prvek y ∈ Y prvek x ∈ X tak, zˇe hx, yi ∈ f . Platı´ tedy g1 (y) = g1 (f (x)) = f ◦g1 (x) = f ◦g2 (x) = g2 (f (x)) = g2 (y). Doka´zali jsme, zˇe pro libovolny´ prvek y ∈ Y je g1 (y) = g2 (y), tedy g1 = g2 . a) a c) se doka´zˇou podobny´mi u´vahami. P . V (1) platı´, protozˇe je to tvrzenı´ 12 = 11. V (n) je tvrzenı´ nk=1 k 2 = n(n+1)(2n+1) 6 P 1(1+1)(2+1) 2 . Prˇedpokla´dejme, zˇe platı´ V (n) a dokazˇme V (n+1), tj. dokazˇme n+1 k=1 k = 6 2 P P (n+1)(n+2)(2(n+1)+1) n(n+1)(2n+1) n 2 2 2 . Je n+1 + 6(n+1) = k=1 k + (n + 1) = k=1 k = 6 6 6 3 2 (n+1)(n+2)(2(n+1)+1) 2n +9n +13n+6 = . 6 6 12. Jednoduche´, standardneˇ pouzˇitı´m jednoduchy´ch u´prav. 13. Jednoduche´, standardneˇ pouzˇitı´m jednoduchy´ch u´prav. 14. Jednoduche´, standardneˇ pouzˇitı´m jednoduchy´ch u´prav. 15. Chyba je v tom, zˇe u´vaha, kterou se z V (k) doka´zˇe V (k + 1), nenı´ spra´vna´ pro k = 1, tj. neplatı´, zˇe z V (1) plyne V (2). Projdeˇte si u´vahu podrobneˇ: tvrdı´ se v nı´, zˇe z toho, zˇe v posloupnosti a1 jsou vsˇechny prvky stejne´, a z toho, zˇe v posloupnosti a2 jsou vsˇechny prvky stejne´, plyne, zˇe a1 = a2 , cozˇ nenı´ pravda.
47
3
Kombinatorika
Studijnı´ cı´le: Po prostudova´nı´ kapitol 3.1, 3.2 a 3.3 by student meˇl by´t zna´t za´klady kombinatoricke´ho pocˇ´ıta´nı´. Meˇl by zna´t pravidla soucˇtu a soucˇinu, pojmy permutace, variace a kombinace. Student by meˇl umeˇt v za´kladnı´ch u´loha´ch samostatneˇ prove´st spra´vnou kombinatorickou u´vahu. Meˇl by by´t schopen pouzˇ´ıt pravidla soucˇtu a soucˇinu k rozlozˇenı´ slozˇiteˇjsˇ´ı u´lohy na jednodusˇsˇ´ı. Klı´cˇova´ slova: kombinatorika, pravidlo soucˇtu, pravidlo soucˇinu, permutace, permutace s opakova´nı´m, variace, variace s opakova´nı´m, kombinace, kombinace s opakova´nı´m Potrˇebny´ cˇas: 180 minut.
3.1
Co a k cˇemu je kombinatorika
Kombinatorika je jednou z nejuzˇitecˇneˇjsˇ´ıch oblastı´ diskre´tnı´ matematiky. Zaby´va´ se urcˇova´nı´m pocˇtu mozˇnostı´ (konfiguracı´), ktere´ existujı´ za urcˇity´ch prˇedepsany´ch podmı´nek. Mu˚zˇe na´s naprˇ´ıklad zajı´mat, kolika zpu˚soby je mozˇne´ vyja´drˇit prˇirozene´ cˇ´ıslo n ve tvaru soucˇtu n1 + · · · + nk prˇirozeny´ch cˇ´ısel n1 , . . . , nk prˇicˇemzˇ neza´lezˇ´ı na porˇadı´ cˇ´ısel v soucˇtu. Zde se jednou mozˇnostı´ rozumı´ cˇ´ısla n1 , . . . , nk . Prˇedepsane´ podmı´nky v tomto prˇ´ıpadeˇ rˇ´ıkajı´, zˇe musı´ platit n1 + · · · + nk = n a da´le zˇe mozˇnosti n1 , . . . , nk a n01 , . . . , n0k se povazˇujı´ za shodne´ (pocˇ´ıtajı´ se jako jedna mozˇnost), pokud se lisˇ´ı jen porˇadı´m cˇ´ısel (naprˇ. mozˇnosti 1, 1, 2 a 1, 2, 1 se povazˇujı´ za shodne´, 1, 1, 2 a 1, 2, 2 nikoli). Tak naprˇ´ıklad pro cˇ´ıslo 3 existujı´ 3 mozˇnosti (ty mozˇnosti jsou 1 + 1 + 1, 1 + 2, 3), pro cˇ´ıslo 4 existuje 5 mozˇnostı´ (1 + 1 + 1 + 1, 1 + 1 + 2, 1 + 3, 2 + 2, 4) atd.
Kombinatorika se zaby´va´ urcˇova´nı´m pocˇtu mozˇnostı´, ktere´ mohou nastat za prˇedepsany´ch podmı´nek.
Pru˚vodce studiem V cˇasopise BYTE Magazine kdysi vysˇla na´sledujı´cı´ zpra´va. ”According to ... WEB Technologies’ vice president of sales and marketing, the compression algorithm used by DataFiles/16 is not subject to the laws of information theory” (BYTE Magazine 17(6):45, June 1992). Prˇedstavitele´ WEB Technologies tvrdili, zˇe jejich kompresnı´ program DataFiles/16 komprimuje vsˇechny typy souboru˚ na prˇiblizˇneˇ jednu sˇestna´ctinu jejich pu˚vodnı´ velikosti a zˇe pro soubory velikosti asponˇ 64KB je tato komprese bezeztra´tova´. Jednoducha´ kombinatoricka´ u´vaha vsˇak ukazuje, zˇe to nenı´ mozˇne´. Uvazˇujme naprˇ. de´lku souboru 16n bitu˚. Existuje celkem 216n ru˚zny´ch souboru˚ de´lky 16n bitu˚. Kazˇdy´ takovy´ soubor by podle WEB Technologies meˇlo by´t mozˇne´ zkomprimovat na vy´sledny´ soubor de´lky nejvy´sˇe n bitu˚. Prˇitom existuje pra´veˇ 2k ru˚zny´ch souboru˚ de´lky k bitu˚. Tedy navza´jem ru˚zny´ch souboru˚ de´lky nejvy´sˇe n bitu˚ existuje 20 +21 +22 +· · ·+2n = 2n+1 − 1. Protozˇe ale 2n+1 − 1 < 216n , nenı´ takova´ komprese mozˇna´. Kompresı´ totizˇ vyrobı´me z dane´ho souboru de´lky 16n bitu˚ (teˇch je 216n ) neˇktery´ ze souboru˚ de´lky nejvy´sˇe rovne´ n (teˇch je 2n+1 −1). Proto musı´ existovat ru˚zne´ soubory de´lky 16n, ktere´ se kompresı´ prˇevedou na stejny´ soubor de´lky nejvy´sˇe rovne´ n. Takova´ komprese tedy nenı´ bezeztra´tova´.
Prˇ´ıklad 3.1. Prˇedpokla´dejme, zˇe heslo pro prˇ´ıstup do databa´ze je posloupnost sesta´vajı´cı´ z pra´veˇ 5 povoleny´ch znaku˚. Mezi povolene´ znaky patrˇ´ı pı´smena a,. . . , z, A, . . . , Z, cˇ´ıslice 0, 1, . . . , 9. Platı´ prˇitom, zˇe heslo musı´ zacˇ´ınat pı´smenem. Kolik existuje ru˚zny´ch hesel? Protozˇe pı´smen je 52 (26 maly´ch a 26 velky´ch) a cˇ´ıslic je 10, pouzˇitı´m pravidla soucˇinu (viz da´le) zjistı´me, zˇe hesel je 52 · 624 = 768.369.472. Nezna´me-li heslo, musı´me tedy to spa´vne´ ´ vahy tohoto typu musı´ umeˇt prova´deˇt kazˇdy´, „uhodnout“ z cca 768 milio´nu˚ mozˇny´ch hesel. U kdo se zaby´va´ bezpecˇnostı´ pocˇ´ıtacˇovy´ch syste´mu˚.
48
Kombinatorika ma´ pouzˇitı´ v mnoha prakticky´ch oblastech nasˇeho zˇivota.
Prˇ´ıklad 3.2. Uvazˇujme na´sledujı´cı´ variantu hazardnı´ hry. Z osudı´ obsahujı´cı´ho mı´cˇky s cˇ´ısly 1,. . . , 20 jsou vylosova´ny 3 mı´cˇky. Hra spocˇ´ıva´ v tom, zˇe si prˇed losova´nı´m mu˚zˇeme vsadit na na´mi vybrana´ 3 cˇ´ısla. Za vsa´zku zaplatı´me 10 Kcˇ. V prˇ´ıpadeˇ, zˇe uhodneme vsˇechna 3 pozdeˇji vylosovana´ cˇ´ısla, dostaneme 20.000 Kcˇ, jinak nedostaneme nic. Vyplatı´ se vsadit si, tj. budeme-li dlouhodobeˇ vsa´zet, budeme celkoveˇ prohra´vat nebo vyhra´vat? Vybrat 3 mı´cˇky z 20 je mozˇne´ 2.280 zpu˚soby (je to pocˇet kombinacı´ 3 z 20, viz da´le). My si 1 vsadı´me na 1 takovy´ vy´beˇr. Pravdeˇpodobnost, zˇe trefı´me ten spra´vny´, je tedy 2280 . Z dlouhodobe´ho hlediska tedy vyhrajeme v 1 z 2280 prˇ´ıpadu˚. V takovy´ch 2280 prˇ´ıpadech tedy vyhrajeme 1 × 20.000 = 20.000 Kcˇ, prˇitom za vsa´zenı´ utratı´me 2.280 × 10 = 22.800 Kcˇ. Vsadit si se tedy nevyplatı´. Prˇ´ıklad 3.3. Prˇedpokla´dejme, zˇe ko´dujeme elementa´rnı´ zpra´vy (zpra´va mu˚zˇe by´t znak nebo neˇjaka´ posloupnost znaku˚) tak, zˇe kazˇdou zpra´vu zako´dujeme jako posloupnost n symbolu˚ 0 a 1, tzv. ko´dove´ slovo. Takove´mu ko´du se rˇ´ıka´ bina´rnı´ ko´d de´lky n. Bina´rnı´ ko´d de´lky n tedy mu˚zˇeme povazˇovat za neˇjakou mnozˇinu posloupnostı´ de´lky n, ktere´ sesta´vajı´ z 0 a 1. Naprˇ. {100, 010, 001} je bina´rnı´ ko´d de´lky 3. Ten mu˚zˇe by´t pouzˇit naprˇ. pro ko´dova´nı´ vy´sledku˚ neˇjake´ho procesu, kde vy´sledek je jeden z trˇ´ı mozˇny´ch typu˚ (prohra, remı´za, vy´hra; rychlost ≤ 50 km/h, rychlost > 50, ale < 70 km/h, rychlost ≥ 70 km/h), tak, zˇe naprˇ. prohra je ko´dova´na posloupnostı´ 100, remı´za posloupnostı´ 010, vy´hra posloupnostı´ 001. Prvnı´ ota´zka: Chceme-li ko´dovat k znaku˚ bina´rnı´m ko´dem de´lky n, jake´ nejmensˇ´ı n musı´me zvolit, abychom zarucˇili mozˇnost jednoznacˇne´ho deko´dova´nı´? Aby byl ko´d jednoznacˇneˇ deko´dovatelny´, musı´ obsahovat asponˇ k posloupnostı´. Prˇitom posloupnostı´ z 0 a 1, ktere´ majı´ de´lku n, je pra´veˇ 2n (podle pravidla soucˇinu, viz da´le). De´lka n musı´ tedy splnˇovat k ≤ 2n , tj. log2 k ≤ n. Druha´ ota´zka: Prˇedpokla´dejme, zˇe na ko´dujı´cı´ posloupnosti 0 a 1 pu˚sobı´ rusˇive´ vlivy a zˇe se proto mu˚zˇe 0 zmeˇnit na 1 a 1 zmeˇnit na 0. Takove´ chyby jsou ale ma´lo cˇaste´. Prˇijmeme-li posloupnost v de´lky n, mu˚zˇe by´t zatı´zˇena chybami, a nemusı´ to tedy nutneˇ by´t neˇjake´ ko´dove´ slovo. Protozˇe prˇedpokla´da´me, zˇe chyby jsou ma´lo cˇaste´, je intuitivneˇ prˇirozene´ cha´pat v jako chybou zmeˇneˇne´ ko´dove´ slovo w, a to takove´ w, ktere´ se ze vsˇech ko´dovy´ch slov od v nejme´neˇ lisˇ´ı. Ve vy´sˇe uvedene´m prˇ´ıpadeˇ naprˇ. 110 nenı´ ko´dovy´m slovem a jemu nejblizˇsˇ´ı ko´dova´ slova jsou 100 a 010. Vzda´lenostı´ posloupnostı´ prˇitom rozumı´me pocˇet pozic, na ktery´ch se lisˇ´ı, tj. vzda´lenost posloupnostı´ a1 · · · an a b1 · · · bn je pocˇet prvku˚ mnozˇiny {i | ai 6= bi }. Vzda´lenost 110 a 100 je tedy rovna 1 (lisˇ´ı se pra´veˇ jednou pozicı´). Pokud je ko´d dobrˇe navrzˇeny´, mu˚zˇe deko´dova´nı´ probı´hat tak, zˇe prˇijata´ posloupnost w de´lky n se opravı´ a vy´sledkem bude nejblizˇsˇ´ı ko´dove´ slovo. Jak jsme videˇli, vy´sˇe uvedeny´ ko´d nenı´ dobrˇe navrzˇeny´, protozˇe ke slovu 110 existujı´ dveˇ ko´dova´ slova (100 a 010) se stejnou vzda´lenostı´ od 110. Jaky´ je nejveˇtsˇ´ı pocˇet k ko´dovy´ch posloupnostı´ bina´rnı´ho ko´du de´lky n, ktery´ umozˇnˇuje opravu jednoduchy´ch chyb? Prˇitom jednoducha´ chyba je ta, ktera´ vznikne zmeˇnou pra´veˇ jednoho symbolu posloupnosti (jednoduchou chybou vznikne z 001 naprˇ. 101, ale uzˇ ne 110). Uvazˇujme takto: Necht’takovy´ ko´d obsahuje pra´veˇ k ko´dovy´ch slov. Vezmeˇme libovolne´ z nich a oznacˇme ho v. Slovem v bude interpretova´na nejen posloupnost v, ale i kazˇda´ posloupnost, jejı´zˇ vzda´lenost od v je 1 (tyto posloupnosti budou opraveny na v). Posloupnostı´, ktere´ majı´ od v vzda´lenost 1, je pra´veˇ n (chyba mu˚zˇe by´t na libovolne´ z n pozic). Slov, ktere´ prˇipadajı´ na ko´dove´ slovo v v tom smyslu, zˇe budou po prˇ´ıpadne´ opraveˇ jedne´ chyby prˇevedeny na v, je tedy celkem 1 + n. Protozˇe na kazˇde´ z k ko´dovy´ch slov takto prˇipada´ n + 1 navza´jem ru˚zny´ch posloupnostı´ de´lky n a protozˇe pocˇet vsˇech posloupnostı´ nul a jednicˇek de´lky n je 2n , musı´ by´t k · (n + 1) ≤ 2n , 2n tedy k ≤ n+1 . Nejveˇtsˇ´ı pocˇet ko´dovy´ch posloupnostı´ bina´rnı´ho ko´du de´lky n, ktery´ umozˇnˇuje n
3
2 2 opravu jednoduchy´ch chyb, je tedy n+1 . Pro n = 3 je tedy nejveˇtsˇ´ı pocˇet 3+1 = 2. Ko´d s 3 ko´dovy´mi slovy opravujı´cı´ jednoduche´ chyby tedy musı´ mı´t de´lku n asponˇ 4 (protozˇe pro de´lku n = 3 je nejveˇtsˇ´ı pocˇet ko´dovy´ch slov 2). Vy´sˇe uvedeny´ prˇ´ıklad tedy nelze spravit tı´m, zˇe vybereme jina´ ko´dova´ slova de´lky 3.
Uvedene´ prˇ´ıklady prˇedstavujı´ typicke´ proble´my, ktery´mi se kombinatorika zaby´va´. Prˇesneˇji 49
ˇrecˇeno, kombinatorika se, jako kazˇda´ oblast matematiky, zaby´va´ obecny´mi principy, ktere´ je potom mozˇne´ na konkre´tnı´ situace z prakticke´ho zˇivota pouzˇ´ıt. Tak naprˇ´ıklad prˇedpokla´dejme, zˇe vı´me, kolika zpu˚soby je mozˇne´ vybrat dvouprvkovou podmnozˇinu {x, y} z dany´ch n prvku˚. Oznacˇme pocˇet teˇchto zpu˚sobu˚ D(n). Vı´me tedy, zˇe D(n) = n(n−1) (vyzkousˇejte nebo to 2 prˇ´ımo odvod’te). Pak je snadne´ spocˇ´ıtat, zˇe z 30 studentu˚ je mozˇne´ vybrat dvojici studentu˚ 435 zpu˚soby (nebot’435 = 30·29 ˇ e existuje pra´veˇ 499 500 zpu˚sobu˚ jak vybrat dva mı´cˇky z tisı´ce 2 ), z 1000·999 (499 500 = ) atd. 2 Upozornı´me nynı´ na du˚lezˇitou veˇc. I v kombinatorice se setka´me s tı´m, zˇe pro ru˚zne´ situace ). Vcˇas vsˇak varujme: odvodı´me ru˚zne´ vzorce (jako vy´sˇe uvedeny´ vzorec D(n) = n(n−1) 2 Strˇezˇme se mechanicke´ho pouzˇ´ıva´nı´ vzorcu˚! V kombinatorice snad vı´ce nezˇ kde jinde platı´, zˇe k tomu, abychom byli vu˚bec schopni vybrat pro danou situaci “spra´vny´ vzorec”, musı´me situaci rozebrat a dokonale jı´ porozumeˇt. Prˇitom toto porozumeˇnı´ je cˇasto netrivia´lnı´ za´lezˇitost (tomu tak nenı´ naprˇ. u derivova´nı´ funkcı´: ma´me-li naprˇ´ıklad spocˇ´ıtat derivaci funkce x2 · sin(x), stacˇ´ı zna´t vzorce pro derivova´nı´ x2 , sin(x) a vzorec pro derivova´nı´ soucˇinu funkcı´; pouzˇitı´ vzorce pro u´lohu spocˇ´ıta´nı´ derivace dane´ funkce je tedy te´meˇrˇ trivia´lnı´). Rˇesˇenı´ kombinatoricke´ u´lohy se spı´sˇe podoba´ rˇesˇenı´ “slovnı´ u´lohy”: neexistuje obecny´ prˇedpis pro rˇesˇenı´. Situaci musı´me nejdrˇ´ıve dobrˇe porozumeˇt, pokud mozˇno rozlozˇit ji na jednodusˇsˇ´ı situace a ty potom vyrˇesˇit pomocı´ za´kladnı´ch kombinatoricky´ch pravidel. Tato za´kladnı´ pravidla mohou mı´t podobu vzorcu˚. Nesrovnatelneˇ du˚lezˇiteˇjsˇ´ı nezˇ naucˇit se vzorce, je ale naucˇit se pouzˇ´ıvat za´kladnı´ kombinatoricka´ pravidla (tato pravidla jsou pravy´m smyslem kombinatoricky´ch vzorcu˚). Bez porozumeˇnı´ kombinatoricky´m pravidlu˚m nejsme schopni rˇesˇit jine´ nezˇ trivia´lnı´ kombinatoricke´ u´lohy.
3.2
Pravidla soucˇtu a soucˇinu
Pravidlo soucˇtu a pravidlo soucˇinu jsou dveˇ za´kladnı´ kombinatoricka´ pravidla. Mnoho dalsˇ´ıch pravidel vznika´ jejich kombinova´nı´m. Pru˚vodce studiem Pravidlo soucˇtu: Lze-li u´kol A prove´st m zpu˚soby a lze-li u´kol B prove´st n zpu˚soby, prˇicˇemzˇ zˇa´dny´ z m zpu˚sobu˚ provedenı´ u´kolu A nenı´ totozˇny´ s zˇa´dny´m z n zpu˚sobu˚ provedenı´ u´kolu B, pak prove´st u´kol A nebo u´kol B lze prove´st m + n zpu˚soby. Pravidlo soucˇtu je zjevne´. Uka´zˇeme, jak ho lze pouzˇ´ıt. Prˇ´ıklad 3.4. V knihovneˇ je 5 knih, jejichzˇ autorem je A. C. Doyle (?), a 10 knih, jejichzˇ autorkou je A. Christie. Cˇtena´rˇ si tedy mu˚zˇe vybrat 15 zpu˚soby knihu, kterou napsali A. C. Doyle nebo A. Christie. Je-li A u´kol “vybrat knihu, jejı´zˇ autorem je A. C. Doyle” a B u´kol “vybrat knihu, jejı´zˇ autorem je A. Christie”, pak je m = 5 a n = 10. Prˇitom prˇitom prove´st u´kol A nebo u´kol B znamena´ vybrat knihu, kterou napsali A. C. Doyle nebo A. Christie. Podle pravidla soucˇtu to lze pra´veˇ m + n = 15 zpu˚soby. Pouzˇitı´ pravidla soucˇtu je opra´vneˇne´, protozˇe zˇa´dna´ kniha, kterou napsal A. C. Doyle, nenı´ totozˇna´ s zˇa´dnou knihou, kterou napsala A. Christie. Prˇ´ıklad 3.5. Mnozˇiny M a N jsou disjunktnı´ (tj. nemajı´ spolecˇne´ prvky) a platı´ |M | = m a |N | = n. Kolika zpu˚soby lze vybrat prvek, ktery´ patrˇ´ı do M nebo do N ? Jsou-li A a B po rˇadeˇ u´koly “vybrat prvek z mnozˇiny M ” a ‘vybrat prvek z mnozˇiny N ”, pak prˇedpoklady pravidla soucˇtu jsou splneˇny (M a N nemajı´ spolecˇne´ prvky), a proto existuje m+n zpu˚sobu˚, jak vybrat prvek z M nebo N . Jiny´mi slovy, jsou-li M a N disjunktnı´ mnozˇiny, je |M ∪ N | = |M | + |N |. Poznamenejme, zˇe prˇedpoklad pravidla soucˇtu, ktera´ rˇ´ıka´, zˇe zˇa´dny´ z m zpu˚sobu˚ provedenı´ u´kolu A nenı´ totozˇny´ s zˇa´dny´m z n zpu˚sobu˚ provedenı´ u´kolu B, je podstatna´. Uvazˇujme Prˇ´ıklad 3.5, ale vezmeˇme mnozˇiny, ktere´ nejsou disjunktnı´, naprˇ. M = {a, b, c}, N = {b, c, d, e}. Jak snadno vidı´me, existuje 5 zpu˚sobu˚, jak vybrat prvek z M nebo N , prˇitom 5 6= 3+4 = m+n. 50
Za´kladnı´ kombinatoricka´ pravidla jsou pravidlo soucˇtu a pravidlo soucˇinu.
Pravidlo soucˇtu lze zobecnit na konecˇny´ pocˇet u´kolu˚: Lze-li u´kol C rozlozˇit na po sobeˇ na´sledujı´cı´ u´koly A1 , . . . , An a lze-li u´kol Ai prove´st mi zpu˚soby (pro kazˇde´ i = 1, . . . , n), pak lze u´kol C prove´st m1 + · · · + mn zpu˚soby. Pokud u´kol A1 lze prove´st m1 zpu˚soby, u´kol A2 lze prove´st m2 zpu˚soby, . . . , u´kol Ak lze prove´st mk zpu˚soby, prˇicˇemzˇ po kazˇdou dvojici Ai a Aj (i 6= j) zˇa´dny´ z mi zpu˚sobu˚ provedenı´ u´kolu Ai nenı´ totozˇny´ s zˇa´dny´m z mj zpu˚sobu˚ provedenı´ u´kolu Aj , pak prove´st u´kol A1 nebo u´kol A2 nebo u´kol Ak lze prove´st m1 + m2 + · · · + mk zpu˚soby. Prˇ´ıklad 3.6. Necht’ M1 , . . . , Mk jsou konecˇne´ po dvou disjunktnı´ mnozˇiny. Kolik prvku˚ ma´ sjednocenı´ M1 ∪ · · · ∪ Mk ? Pomocı´ zobecneˇne´ho pravidla soucˇtu mu˚zˇeme podobneˇ jako v Prˇ´ıkladeˇ 3.5 uka´zat, zˇe |M1 ∪ · · · ∪ Mk | = |M1 | + · · · + |Mk |. Pru˚vodce studiem Pravidlo soucˇinu: Lze-li u´kol C rozlozˇit na po sobeˇ na´sledujı´cı´ u´koly A a B (tj. prove´st C znamena´ prove´st nejdrˇ´ıv A a potom B) a lze-li u´kol A prove´st m zpu˚soby a u´kol B lze prove´st n zpu˚soby, pak lze u´kol C prove´st m · n zpu˚soby.
Take´ pravidlo soucˇinu je zjevne´. Uka´zˇeme ho na konkre´tnı´ch prˇ´ıkladech. Prˇ´ıklad 3.7. Kolik prvku˚ ma´ karte´zsky´ soucˇin M × N dvou konecˇny´ch mnozˇin M a N ? Prˇipomenˇme, zˇe M × N = {hx, yi | x ∈ M, y ∈ N }. Urcˇit libovolny´ prvek hx, yi ∈ M × N znamena´ tote´zˇ, co splnit u´kol “zvol x a zvol y”. Tento u´kol lze rozlozˇit na u´kol “zvol x” a u´kol “zvol y”. Prvek x lze prˇitom zvolit |M | zpu˚soby, prvek y lze zvolit |N | zpu˚soby. Podle pravidla soucˇinu lze tedy u´kol “zvol x a zvol y” prove´st |M | · |N | zpu˚soby. Proto |M × N | = |M | · |N |. Podobneˇ jako pravidlo soucˇtu lze i pravidlo soucˇinu zobecnit na na konecˇny´ pocˇet u´kolu˚: Lze-li u´kol C rozlozˇit na po sobeˇ na´sledujı´cı´ u´koly A1 , . . . , Ak a lze-li u´kol Ai prove´st mi zpu˚soby (pro kazˇde´ i = 1, . . . , k), pak lze u´kol C prove´st m1 + · · · + mk zpu˚soby. Prˇ´ıklad 3.8. Registracˇnı´ znacˇka vozidla ma´ tvar PKC CCCC, kde P, K, a C jsou symboly a prˇitom P je neˇktera´ z cˇ´ıslic 1–9, K je pı´smeno, urcˇujı´cı´ prˇ´ıslusˇnost ke kraji (naprˇ. T oznacˇuje Moravskoslezsky´ kraj, H oznacˇuje hradecky´ apod.) a C je neˇktera´ z cˇ´ıslic 0–9. Kolik lze v ra´mci jednoho kraje prˇideˇlit registracˇnı´ch znacˇek? Prvnı´ symbol lze zvolit 9 zpu˚soby, druhy´ symbol nelze volit, protozˇe je v ra´mci kraje pevneˇ dany´, trˇetı´ symbol lze zvolit 10 zpu˚soby, stejneˇ tak lze 10 zpu˚soby zvolit cˇtvrty´, pa´ty´, sˇesty´ i sedmy´ symbol. Podle zobecneˇne´ho pravidla soucˇinu tedy existuje v ra´mci jednoho kraje 9 · 10 · 10 · 10 · 10 · 10 = 9 · 105 (deveˇt set tisı´c) mozˇny´ch ru˚zny´ch registracˇnı´ch znacˇek. Pravidla soucˇtu a soucˇinu se cˇasto v jedne´ u´loze kombinujı´. Ukazˇme jednoduchy´ prˇ´ıklad. Prˇ´ıklad 3.9. Necht’ A, B, C jsou konecˇne´ mnozˇiny, prˇicˇemzˇ A a B jsou disjunktnı´. Kolik prvku˚ ma´ mnozˇina (A ∪ B) × C? ´ kol vybrat libovolneˇ prvek z (A ∪ B) × C lze rozlozˇit na dva na´sledujı´cı´ u´koly “vyber U prvek z A ∪ B” a “vyber prvek z C” (viz Prˇ´ıklad 3.7). Prˇitom u´kol “vyber prvek z A ∪ B” znamena´ “vyber prvek z A nebo vyber prvek z B” a lze ho podle pravidla soucˇtu prove´st |A| + |B| zpu˚soby (viz Prˇ´ıklad 3.5). Proto lze podle pravidla soucˇtu prvek z (A ∪ B) × C vybrat (|A| + |B|) · |C| zpu˚soby, tedy |(A ∪ B) × C| = (|A| + |B|) · |C|.
3.3
Permutace, variace, kombinace
Kolika zpu˚soby lze serˇadit urcˇity´ pocˇet objektu˚? Kolika zpu˚soby lze vybrat urcˇity´ pocˇet objektu˚ z dany´ch objektu˚, kdyzˇ na porˇadı´ vy´beˇru za´lezˇ´ı? Co kdyzˇ na porˇadı´ vy´beˇru neza´lezˇ´ı? Co kdyzˇ 51
se prvky ve vy´beˇru nemohou opakovat? Co kdyzˇ se opakovat mohou? Tyto a podobne´ ota´zky se cˇasto objevujı´ v ru˚zny´ch kombinatoricky´ch u´loha´ch. Odpoveˇdi na neˇ lze nale´zt pouzˇitı´m pravidel soucˇtu a soucˇinu. Protozˇe se vsˇak tyto ota´zky objevujı´ opravdu cˇasto, odvodı´me si vzorce, ktere´ na neˇktere´ tyto ota´zky odpovı´dajı´. Vzorce, ktere´ odvodı´me, patrˇ´ı k za´kladu˚m kombinatoricke´ho pocˇ´ıta´nı´. Nejprve vsˇak jesˇteˇ jednou varova´nı´. Pru˚vodce studiem Prˇi pouzˇ´ıva´nı´ kombinatoricky´ch vzorcu˚, ktere´ uvedeme, je du˚lezˇite´ vzorci dobrˇe rozumeˇt, “videˇt do neˇj”, umeˇt ho kdykoli odvodit. Du˚lezˇiteˇjsˇ´ı nezˇ vzorce samotne´ jsou totizˇ u´vahy, ktere´ k nim vedou. Vzorec je jen symbolicky´m vyja´drˇenı´m za´veˇru kombinatoricke´ u´vahy. Osvojı´me-li si odpovı´dajı´cı´ u´vahy, potrˇebne´ vzorce si nakonec mu˚zˇeme odvodit sami (nebo je neˇkde najdeme). Kdyzˇ si odpovı´dajı´cı´ u´vahy neosvojı´me, budou na´m nejspı´sˇ vzorce k nicˇemu, nebot’ je u jen trochu slozˇiteˇjsˇ´ıch u´loh nebudeme umeˇt pouzˇ´ıvat. Cˇtena´rˇi proto na´sledujı´cı´ doporucˇenı´: Nesnazˇte se ucˇit vzorce. Snazˇte se pochopit a naucˇte se sami prova´deˇt u´vahy. Uvidı´te, zˇe veˇci jsou ve skutecˇnosti jednoduche´.
3.3.1
Permutace
Student si u zkousˇky vybere trˇi ota´zky. Mu˚zˇe si vybrat, v jake´m porˇadı´ na neˇ bude odpovı´dat. Kolik ma´ mozˇnostı´? Oznacˇme ota´zky A, B a C. Mozˇna´ porˇadı´ odpovı´da´nı´ jsou ABC, ACB, BAC, BCA, CAB, CBA. Je jich tedy sˇest. Tak prˇicha´zı´me k pojmu permutace. Definice 3.10 (permutace). Permutace n (navza´jem ru˚zny´ch) objektu˚ je libovolne´ serˇazenı´ teˇchto objektu˚, tj. serˇazenı´ od prvnı´ho k n-te´mu. Pocˇet permutacı´ n objektu˚ budeme znacˇit P (n).
Permutace neˇjaky´ch prvku˚ je jejich serˇazenı´.
Veˇta 3.11. P (n) = n!. Du˚kaz. Jedno ale libovolne´ serˇazenı´ dostaneme tak, zˇe vybereme 1. prvek (to lze prove´st n zpu˚soby), pote´ vybereme 2. prvek (to lze prove´st n − 1 zpu˚sobem, protozˇe jeden prvek jsme jizˇ vybrali), pote´ vybereme 3. prvek (to lze prove´st n − 2 zpu˚soby), . . . , nakonec vybereme n-ty´ prvek (to lze prove´st jednı´m zpu˚sobem, n − 1 prvku˚ totizˇ jizˇ bylo vybra´no a zby´va´ poslednı´ prvek). Podle pravidla soucˇinu lze takovy´ vy´beˇr prove´st n · (n − 1) · (n − 2) · · · · · 1 = n! zpu˚soby. Tedy P (n) = n!. Serˇazujeme-li objekty, z nichzˇ neˇktere´ jsou stejne´, prova´dı´me tzv. permutace s opakova´nı´m. Definice 3.12 (permutace s opakova´nı´m). Je da´no n objektu˚ rozdeˇleny´ch do r skupin, ktere´ majı´ po rˇadeˇ n1 , . . . , nr objektu˚, tj. n1 + · · · + nr = n. Objekty v kazˇde´ ze skupin jsou navza´jem nerozlisˇitelne´. Kazˇde´ serˇazenı´ teˇchto n objektu˚ se nazy´va´ permutace s opakova´nı´m (dany´m parametry (n1 , . . . , nr )). Pocˇet takovy´ch permutacı´ znacˇ´ıme P (n1 , . . . , nr ). Veˇta 3.13. Pro n1 + · · · + nr = n je P (n1 , . . . , nr ) =
n! n1 !·····nr ! .
Du˚kaz. Uvazˇujme libovolnou permutaci s opakova´nı´m. Ocˇ´ıslujme objekty v ra´mci kazˇde´ z r skupin tak, aby se staly rozlisˇitelny´mi. Pak dane´ permutaci s opakova´nı´m odpovı´da´ neˇkolik permutacı´ ocˇ´ıslovany´ch objektu˚ v tom smyslu, zˇe na pozici i (1 ≤ i ≤ n) je v permutaci s opakova´nı´m objekt z j-te´ skupiny (1 ≤ i ≤ n), pra´veˇ kdyzˇ je na pozici i v permutaci ocˇ´ıslovany´ch objektu˚ objekt, ktery´ vznikl ocˇ´ıslova´nı´m z neˇktere´ho objektu z j-te´ skupiny. Pro prˇ´ıklad: Meˇjme n = 5, r = 2, n1 = 3, n2 = 2, objekty prvnı´ skupiny znacˇ´ıme A, objekty druhe´ skupiny znacˇ´ıme B. Po ocˇ´ıslova´nı´ budeme mı´t objekty A1 , A2 , A3 , B1 , B2 . Permutaci s opakova´nı´m ABAAB odpovı´da´ naprˇ. permutace A3 B1 A2 A1 B2 , ne vsˇak permutace A3 A2 A1 B 1 B 2 . 52
U permutacı´ s opakova´nı´m mohou by´t neˇktere´ serˇazovane´ prvky stejne´.
Kolik permutacı´ ocˇ´ıslovany´ch objektu˚ odpovı´da´ kazˇde´ permutaci s opakova´nı´m? Objekty prvnı´ skupiny mu˚zˇeme na jejich pozicı´ch (ty jsou pro danou permutaci s opakova´nı´m da´ny pevneˇ a je jich n1 ) serˇadit n1 ! zpu˚soby (tolik je permutacı´ n1 prvku˚), . . . , objekty r-te´ skupiny mu˚zˇeme na jejich pozicı´ch serˇadit nr ! zpu˚soby. Protozˇe serˇazova´nı´ objektu˚ kazˇde´ skupiny prova´dı´me neza´visle na serˇazova´nı´ objektu˚ libovolne´ jine´ skupiny. Proto je celkovy´ pocˇet permutacı´ ocˇ´ıslovany´ch objektu˚, ktere´ odpovı´dajı´ libovolne´ permutaci s opakova´nı´m roven n1 ! · · · · · nr !. Dostali jsme tedy P (n1 , . . . , nr ) · n1 ! · · · · · nr ! = P (n), odkud plyne P (n1 , . . . , nr ) =
n! n1 !·····nr ! .
Prˇ´ıklad 3.14. Kolik slov (i nesmyslny´ch) lze sestavit prˇerovna´nı´m pı´smen ve sloveˇ POSTOLOPRTY? Pocˇet slov je roven pocˇtu serˇazenı´ pı´smen slova POSTOLOPRTY. Jde o permutace objektu˚ s opakova´nı´m. Ma´me n = 11 objektu˚ (pı´smen), ktere´ jsou rozdeˇleny do r = 7 skupin odpovı´dajı´cı´ch jednotlivy´m pı´smenu˚m P, O, S, T, L, R, Y. Pocˇty objektu˚ v jednotlivy´ch skupina´ch jsou nP = 2, nO = 3, nS = 1, nT = 2, nL = 1, nR = 1, nY = 1. Pocˇet slov je tedy 11! P (2, 3, 1, 2, 1, 1, 1) = 2!3!2! . 3.3.2
Variace
Na lodi jsou cˇtyrˇi du˚stojnı´ci. Z nich je trˇeba jmenovat kapita´na a jeho za´stupce. Kolika zpu˚soby to lze prove´st? Oznacˇme du˚stojnı´ky pı´smeny A, B, C, D. Pak existuje teˇchto 12 zpu˚sobu˚: AB (A je kapita´n, B jeho za´stupce), AC, AD, BA, BC, BD, CA, CB, CD, DA, DB, DC. Definice 3.15 (variace). Je da´no n (navza´jem ru˚zny´ch) objektu˚ a cˇ´ıslo r ≤ n. Variace r (objektu˚) z n (objektu˚) je libovolny´ vy´beˇr r objektu˚ z dany´ch n objektu˚, ve ktere´m za´lezˇ´ı na porˇadı´ vybı´rany´ch objektu˚. Pocˇet takovy´ch variacı´ znacˇ´ıme V (n, r). Ve vy´sˇe uvedene´m prˇ´ıkladu je n = 4 (ma´me 4 objekty) a r = 2 (vybı´ra´me dva objekty). Variace BA je vy´beˇr, ve ktere´m je jako prvnı´ vybra´n objekt B a jako druhy´ objekt A. Variace BA a AB jsou ru˚zne´ (za´lezˇ´ı na porˇadı´). Celkem existuje 12 takovy´ch variacı´, tj. V (4, 2) = 12. Veˇta 3.16. V (n, r) = n · (n − 1) · · · · · (n − r + 1). Du˚kaz. Kazˇda´ variace je da´na tı´m, jake´ objekty jsou na 1., 2., . . . , r-te´m mı´steˇ. Objekt na 1. mı´steˇ lze zvolit n zpu˚soby (vybı´ra´me z n objektu˚), objekt na 2. mı´steˇ pak n − 1 zpu˚soby (vybı´ra´me z n − 1 objektu˚, protozˇe jeden objekt je uzˇ na 1. mı´steˇ), . . . , objekt na r-te´m mı´steˇ lze vybrat n − r + 1 zpu˚soby (tolik objektu˚ je3teˇ k vy´beˇru zby´va´). Podle pravidla soucˇinu je tedy celkovy´ pocˇet takto provedeny´ch vy´beˇru˚, tj. pocˇet vsˇech variacı´, n·(n−1)·· · ··(n−r +1). Vsˇimneˇme si, zˇe V (n, r) =
n! (n−r)! .
Skutecˇneˇ,
n · (n − 1) · · · · · (n − r + 1) · (n − r) · · · · · 1 n! = = n·(n−1)·· · ··(n−r+1) = V (n, r) (n − r)! (n − r) · · · · · 1 Prˇ´ıklad 3.17. Za´mek na kolo s ko´dem ma´ pro nastavenı´ ko´du trˇi ota´cˇecı´ kolecˇka. Na kazˇde´m z nich lze nastavit cˇ´ıslice 0, 1, . . . , 9. Prˇedpokla´dejme, zˇe nastavenı´ a zkousˇka jedne´ cˇ´ıselne´ kombinace trva´ 2 sekundy. Jak dlouho trva´ v pru˚meˇrne´m prˇ´ıpadeˇ otevrˇenı´ za´kmu, nezna´me-li spra´vnou cˇ´ıselnou kombinaci (pru˚meˇrny´ prˇ´ıpad definujeme jako aritmeticky´ pru˚meˇr nejlepsˇ´ıho a nejhorsˇ´ıho prˇ´ıpadu)? Cˇ´ıselne´ kombinace jsou 000 azˇ 999. Jsou to tedy variace 3 z 10 s opakova´nı´m (3 pozice, 10 cˇ´ıslic). Teˇch je 103 = 1000. V nejlepsˇ´ım prˇ´ıpadeˇ nastavı´me spra´vnou kombinaci uzˇ v 1. pokusu (to trva´ 2 sekundy), vnejhorsˇ´ım azˇ v 1000. pokusu (to trva´ 2000 sekund). V pru˚meˇrne´m prˇ´ıpadeˇ je to tedy 1000 ˇ je 8 minut a 20 sekund). 2 = 500 sekund (coz
53
Variace je vy´beˇr, u ktere´ho za´lezˇ´ı na porˇadı´ vybı´rany´ch prvku˚.
Pozna´mka 3.18. Vsˇimneˇte si, zˇe V (n, n) = n! = P (n), tj. pocˇet variacı´ n a n je stejny´ jako pocˇet permutacı´ n objektu˚. To nenı´ na´hoda. Variace n a n je vlastneˇ vy´beˇr n prvku˚ z n prvku˚, ve ktere´m za´lezˇ´ı na porˇadı´. Je to tedy usporˇa´da´nı´, tj. permutace, n prvku˚ (prvnı´ vybrany´ prvek je v dane´m usporˇa´da´nı´ na prvnı´m mı´steˇ, . . . , n-ty´ vybrany´ prvek je v dane´m usporˇa´da´nı´ na n-te´m mı´steˇ). Vy´beˇry, ve ktery´ch se prvky mohou opakovat, nazy´va´me variace s opakova´nı´m. Definice 3.19 (variace s opakova´nı´m). Jsou da´ny objekty n ru˚zny´ch typu˚. Objektu˚ kazˇde´ho typu je neomezeneˇ mnoho a jsou navza´jem nerozlisˇitelne´. Variace r (objektu˚) z n (objektu˚) s opakova´nı´m je libovolny´ vy´beˇr r objektu˚ z dany´ch objektu˚ n typu˚, ve ktere´m za´lezˇ´ı na porˇadı´ vybı´rany´ch objektu˚. Pocˇet takovy´ch variacı´ znacˇ´ıme V (n, r).
U variacı´ s opakova´nı´m mu˚zˇe by´t kazˇdy´ prvek vybra´n neˇkolikra´t.
Protozˇe jsou prvky jednotlivy´ch typu˚ nerozlisˇitelne´, jsou dveˇ variace s opakova´nı´m stejne´, pra´veˇ kdyzˇ majı´ na odpovı´dajı´cı´ch si mı´stech (prvnı´m azˇ r-te´m) objekty stejny´ch typu˚. Veˇta 3.20. V (n, r) = nr . Du˚kaz. Prvnı´ prvek mu˚zˇeme vybrat n zpu˚soby, druhy´ prvek mu˚zˇeme vybrat n zpu˚soby, . . . , r-ty´ mu˚zˇeme vybrat n zpu˚soby. Podle pravidla soucˇinu lze tedy vy´beˇr prove´st n · · · · · n = nr zpu˚soby. Pozna´mka 3.21. Variace s opakova´nı´m bychom mohli definovat jinak, a to na´sledovneˇ: Je da´no n (navza´jem ru˚zny´ch) objektu˚ a cˇ´ıslo r. Variace r (objektu˚) z n (objektu˚) s opakova´nı´m (definovana´ alternativneˇ) je libovolny´ vy´beˇr r objektu˚ z dany´ch n objektu˚, ve ktere´m za´lezˇ´ı na porˇadı´ vybı´rany´ch objektu˚ a ve ktere´m se prvky po vy´beˇru vracejı´ mezi prvky, ze ktery´ch se vybı´ra´. Uveˇdomme si, zˇe zpu˚sob vy´beˇru zde je jiny´, nezˇ v Definici 3.19. Du˚lezˇite´ vsˇak je, zˇe pocˇet variacı´ s opakova´nı´m je i v tomto prˇ´ıpadeˇ V (n, r) (oveˇrˇte). Prˇ´ıklad 3.22. Z mı´sta A je trˇeba prˇeda´vat na mı´sto B zpra´vu o tom, jak dopadla akce konana´ v mı´steˇ A. Prˇitom existuje celkem 20 000 mozˇny´ch vy´sledku˚ te´ akce. Prˇedpokla´dejme, zˇe pro zako´dova´nı´ vy´sledku se pouzˇije posloupnost k = 2 ru˚zny´ch symbolu˚ (naprˇ. 0 a 1), ktera´ ma´ de´lku d. Jaka´ je nejmensˇ´ı de´lka takove´ posloupnosti? Jak to bude prˇi jiny´ch pocˇtech symbolu˚ k = 3, 4, 5? Jde o to, najı´t nejmensˇ´ı de´lku d tak, aby posloupnostı´ k symbolu˚ bylo asponˇ 20000, tj. aby kazˇdy´ vy´sledek mohl by´t neˇjakou posloupnostı´ zako´dova´n. Vy´bı´ra´me-li z k symbolu˚ posloupnost de´lky d, vybı´ra´me vlastneˇ variaci d z k s opakova´nı´m. Takovy´ch posloupnostı´ je tedy V (k, d) = k d . Chceme tedy najı´t nejmensˇ´ı d tak, aby k d ≥ 20000. Pro k = 2 je d = 15, pro k = 3 je d = 10, pro k = 4 je d = 8, pro k = 5 je d = 7. 3.3.3
Kombinace
V ta´borˇe jsou 4 muzˇi (oznacˇme je A, B, C, D). Kolika zpu˚soby z nich lze vybrat dvoucˇlennou hlı´dku? Vy´beˇr hlı´dky je da´n vy´beˇrem dvou z nich, tedy dvouprvkovou podmnozˇinou mnozˇiny {A, B, C, D}. Hlı´dky tedy mohou by´t {A, B}, {A, C}, {A, D}, {B, C}, {B, D}, {C, D}, je jich tedy 6. Definice 3.23 (kombinace). Je da´no n (navza´jem ru˚zny´ch) objektu˚ a cˇ´ıslo r ≤ n. Kombinace r (objektu˚) z n (objektu˚) je libovolny´ vy´beˇr r objektu˚ z dany´ch n objektu ˚ , ve ktere´m neza´lezˇ´ı na porˇadı´ vybı´rany´ch objektu˚. Pocˇet takovy´ch kombinacı´ znacˇ´ıme nr . Cˇ´ısla
n r
se nazy´va´jı´ kombinacˇnı´ cˇ´ısla a oznacˇujı´ se take´ C(n, r) (cˇte se “en nad er”).
Ve vy´sˇe uvedene´m prˇ´ıkladu je n = 4 (ma´me 4 objekty) a r = 2 (vybı´ra´me dva objekty). Kombinace {A, C} je vy´beˇr, ve ktere´m jsou vybra´ny A a C. Celkem existuje 6 takovy´ch kombinacı´, tj. 42 = 6. 54
Kombinace je vy´beˇr, u ktere´ho neza´lezˇ´ı na porˇadı´ vybı´rany´ch prvku˚.
Veˇta 3.24.
n r
=
n! (n−r)!r! .
n! Du˚kaz. Vı´me, zˇe V (n, r) = (n−r)! . Uveˇdomme si, zˇe kazˇde´ kombinaci r z n odpovı´da´ tolik variacı´ r z n, kolika zpu˚soby lze usporˇa´dat r vybrany´ch objektu˚ (u kombinace za´lezˇ´ı jen na vybrany´ch objektech, ne na jejich usporˇa´da´nı´, kdezˇto u variace za´lezˇ´ı i na jejich usporˇa´da´nı´). Naprˇ. kombinaci {A, B, C} odpovı´dajı´ variace ABC, ACB, BAC, BCA, CAB, CBA. Existuje r! zpu˚sobu˚, jak usporˇa´dat r objektu˚. Je tedy
pocˇet kombinacı´ r z n kra´t pocˇet usporˇa´da´nı´ r objektu˚ = pocˇet variacı´ r z n, tj. n · r! = V (n, r). r Odtud
n r
=
V (n,r) r!
=
n! (n−r)!r! .
Prˇ´ımo z odvozene´ho vzorce plyne
Skutecˇneˇ,
n n−r
=
n! (n−(n−r))!(n−r)!
n n = . r n−r n! = (n−r)!r! = nr . Da´le platı´, zˇe
n n =1 a = 1. n 0 Pozna´mka 3.25. Vzorec pro nr lze odvodit take´ takto. Ocˇ´ıslujme n objektu˚, ze ktery´ch vybı´ra´me, cˇ´ısly 1 azˇ n. Kombinaci r z n mu˚zˇeme vyja´drˇit jako rˇeteˇzec n nul a jednicˇek, ktery´ obsahuje pra´veˇ r jednicˇek, prˇicˇemzˇ na i-te´m mı´steˇ toho rˇeteˇzce je 1, pra´veˇ kdyzˇ se v dane´ kombinaci nacha´zı´ i-ty´ prvek. Naprˇ. jsou-li a, b, c, d prvnı´ azˇ cˇtvrty´ prvek a, pak rˇeteˇzci 0110 odpovı´da´ kombinace {b, c}. Takovy´ rˇeteˇzcu˚ existuje pra´veˇ tolik, kolik existuje permutacı´ n prvku˚ s opakova´nı´m, ktere´ jsou rozdeˇleny do dvou skupin obsahujı´cı´ch r prvku˚ (jednicˇky) a n! n − r prvku˚ (nuly). Takovy´ch permutacı´ je podle Veˇty 3.13 (n−r)!r! . Prˇ´ıklad 3.26. Kolika zpu˚soby lze vybrat 4 prˇedmeˇty z nabı´dky 10 volitelny´ch prˇedmeˇtu˚? Vy´beˇr 10! 10·9·8·7 prˇedmeˇtu˚ je kombinace 4 z 10. Vy´beˇr lze tedy prove´st 10 ˚ soby. 4 = 6!·4! = 4·3·2 = 210 zpu Rˇekneme si ted’ dva uzˇitecˇne´ vztahy. Prvnı´m z nich je, zˇe pro k < n platı´ n n−1 n−1 = + . k k−1 k Odvod’me to:
n−1 k−1
(k+(n−k))·(n−1)! k!(n−k)!
=
+
n−1 k
n! k!(n−k)!
= = nk .
(n−1)! (k−1)!(n−k)!
+
(n−1)! k!(n−k−1)!
=
(3.1)
k·(n−1)!+(n−k)·(n−1)! k!(n−k)!
=
Druhy´m je tzv. binomicka´ veˇta. Veˇta 3.27 (binomicka´ veˇta). Pro rea´lne´ cˇ´ıslo x a neza´porne´ cele´ n je n
(1 + x) =
n X n k=0
k
xk .
(3.2)
Du˚kaz. Doka´zˇeme to indukcı´ prˇes n. 0 Indukcˇnı´prˇedpoklad: Pro n = 0 je tvrzenı´ zrˇejme´. Naprˇ. pro n = 0 je (1 + x) = 1 a P 0 n k 0 0 k=0 k x = 0 x = 1.
55
Indukcˇnı´ krok: Prˇedpokla´dejme, zˇe tvrzenı´ platı´ pro n − 1, tj. (1 + x)n−1 = dokazˇme ho pro n. Ma´me n
(1 + x)
=
=
=
=
=
Pn−1 k=0
n−1 k
xk , a
n−1 X
n−1 k (1 + x)(1 + x) = (1 + x) x = k k=0 n−1 n−1 n−1 n X n − 1 X n − 1 X n − 1 X n−1 k k k+1 k x + x = x + x = k k k k−1 k=0 k=0 k=0 k=1 n−1 X n − 1 n−1 0 n−1 k n−1 n k x + ( x + x ) + x = 0 k−1 k−1 n−1 k=1 n−1 X n − 1 n − 1 0 x + ( + )xk + xn = k−1 k−1 k=1 n−1 n X n n 0 n n X n k k x + x + x = x . k 0 k n n−1
k=0
k=1
Prˇitom jsme pouzˇili vzorec (3.1). Binomicka´ veˇta ma´ rˇadu pouzˇitı´. Prˇ´ıklad 3.28 (pocˇet podmnozˇin n-prvkove´ mnozˇiny). Dosazenı´m x = 1 dosta´va´me n X n n n n 2n = = + + ··· + . k 0 1 n k=0
n
Protozˇe k je pocˇet vsˇech k-prvkovy´ch podmnozˇin n-prvkove´ mnozˇiny, uda´va´ soucˇet vpravo pocˇet 0-prvkovy´ch plus pocˇet 1-prvkovy´ch plus . . . plus pocˇet n-prvkovy´ch, tj. pocˇet vsˇech podmnozˇin n-prvkove´ mnozˇiny. Pomocı´ binomicke´ veˇty tedy vidı´me, zˇe je roven 2n . K tomu lze ale dojı´t i takto: Serˇad’me prvky dane´ n-prvkove´ mnozˇiny za sebe. Prˇedstavme si n pozic, ktere´ odpovı´dajı´ 1., 2.,. . . , n. prvku. Do pozic budeme umı´st’ovat 0 a 1. Podmnozˇiny jednoznacˇneˇ odpovı´dajı´ umı´steˇnı´m 0 a 1 do teˇchto pozic: je-li na i-te´ pozici 1, pak i-ty´ prvek patrˇ´ı do dane´ podmnozˇiny, je-li tam 0, pak do nı´ nepatrˇ´ı. Podmnozˇin n-prvkove´ mnozˇiny je tedy pra´veˇ tolik, kolika zpu˚soby lze do n pozic umı´stit nuly a jednicˇky. Tento pocˇet je roven pocˇtu variacı´ n ze 2 (vybı´ra´me z {0, 1}), tedy je to V (n, 2) = 2n .
Pru˚vodce studiem Pocˇet vsˇech podmnozˇin n-prvkove´ mnozˇiny je 2n . Lze k tomu dojı´t neˇkolika zpu˚soby. Dva z nich jsme uka´zali v Prˇ´ıkladu 3.28. Takova´ situace, kdy k jednomu vy´sledku mu˚zˇeme dojı´t neˇkolika zpu˚soby, je pro kombinatoriku typicka´. Ru˚zne´ zpu˚soby odpovı´dajı´ ru˚zny´m pohledu˚m na veˇc. Naprˇ´ıklad u pocˇtu vsˇech podmnozˇin byl prvnı´ zpu˚sob “secˇti pocˇty vsˇech 0-prvkovy´ch, 1-prvkovy´ch, . . . , n-prvkovy´ch podmnozˇin”, druhy´ zpu˚sob byl “prˇedstav si podmnozˇiny jako posloupnosti nul a jednicˇek a urcˇi pocˇet teˇchto posloupnostı´”. Obecny´ na´vod, jak si proble´m vhodneˇ prˇedstavit, nenı´. Za´lezˇ´ı jen na nasˇ´ı prˇedstavivosti.
Vy´beˇr, ve ktere´m neza´lezˇ´ı na porˇadı´ prvku˚ a ve ktere´m se prvky mohou opakovat, se nazy´va´ kombinace s opakova´nı´m. Vede k tomu na´sledujı´cı´ u´loha. V obchodeˇ majı´ 4 typy za´kusku˚ (veˇnecˇky, rˇezy, sˇpicˇky a trubicˇky). Ma´me koupit 6 za´kusku˚. Kolika zpu˚soby to lze prove´st? Jeden mozˇny´ zpu˚sob je koupit 6 veˇnecˇku˚, dalsˇ´ı je koupit 6 veˇtrnı´ku˚, dalsˇ´ı je koupit 2 veˇtrnı´ky a 4 rˇezy, dalsˇ´ı je koupit veˇnecˇek, rˇez, sˇpicˇku a 3 veˇtrnı´ky atd. Du˚lezˇite´ je, zaprve´, zˇe porˇadı´ za´kusku˚ v na´kupu je nepodstatne´, a zadruhe´, zˇe v na´kupu mohou by´t za´kusky stejne´ho typu (za´kusky se mohou opakovat). 56
Zpu˚sobu˚, jak vyrˇesˇit kombinatoricky´ proble´m, by´va´ neˇkolik.
U kombinacı´ s opakova´nı´m mu˚zˇe by´t kazˇdy´ prvek vybra´n neˇkolikra´t.
Definice 3.29 (kombinace s opakova´nı´m). Jsou da´ny objekty n ru˚zny´ch typu˚. Objektu˚ kazˇde´ho typu je neomezeneˇ mnoho a jsou navza´jem nerozlisˇitelne´. Kombinace r (objektu˚) z n (objektu˚) s opakova´nı´m je libovolny´ vy´beˇr r objektu˚ z dany´ch objektu˚ n typu˚, ve ktere´m neza´lezˇ´ı na porˇadı´ vybı´rany´ch objektu˚. Pocˇet takovy´ch kombinacı´ znacˇ´ıme C(n, r). Zˇe jsou objekty jednotlivy´ch typu˚ nerozlisˇitelne´, znamena´, zˇe dveˇ kombinace s opakova´nı´m povazˇujeme za stejne´, pra´veˇ kdyzˇ pro kazˇdy´ z n typu˚ obsahujı´ stejne´ pocˇty objektu˚ toho typu. U prˇ´ıkladu se za´kusky to naprˇ. znamena´, zˇe kazˇde´ dva na´kupy obsahujı´cı´ dva veˇtrnı´ky a cˇtyrˇi sˇpicˇky, povazˇujeme za stejne´ (byt’v jednom na´kupu mohou by´t jine´ dva veˇnecˇky nezˇ ve druhe´m). Veˇta 3.30. C(n, r) = n+r−1 n−1 . Du˚kaz. Podı´vejme se na vy´beˇr takhle. Ma´me n prˇihra´dek, ktere´ odpovı´dajı´ typu˚m objektu˚. Vybrat kombinaci r z n s opakova´nı´m znamena´ umı´stit do teˇchto prˇihra´dek celkem r kulicˇek. Pocˇet kulicˇek v i-te´ prˇihra´dce mu˚zˇeme totizˇ cha´pat jako pocˇet objektu˚ typu i, ktere´ jsme vybrali. Hledany´ pocˇet kombinacı´ C(n, r) je tedy stejny´ jako pocˇet umı´steˇnı´ r kulicˇek do n prˇihra´dek. Abychom urcˇili pocˇet takovy´ch umı´steˇnı´, budeme kazˇde´ umı´steˇnı´ reprezentovat posloupnostı´ nul (reprezentujı´ prˇepa´zˇky mezi prˇihra´dkami) a 1 (reprezentujı´ kulicˇky). Naprˇ. pro n = 4 a r = 6 rˇeteˇzec 101100111 reprezentuje umı´steˇnı´, kdy je v prvnı´ prˇihra´dce 1 kulicˇka, ve druhe´ 2 kulicˇky, ve trˇetı´ 0 kulicˇek, ve cˇtvrte´ 3 kulicˇky. Tedy: prvnı´ jednicˇka reprezentuje 1 kulicˇku v prvnı´ prˇihra´dce; na´sledujı´cı´ nula reprezentuje prˇepa´zˇku; na´sledujı´cı´ dveˇ jednicˇky reprezentujı´ 2 kulicˇky ve druhe´ prˇihra´dce; na´sledujı´cı´ nula reprezentuje prˇihra´dku mezi druhou a trˇetı´ prˇihra´dkou; pak nena´sleduje zˇa´dna´ jednicˇka (tj. trˇetı´ prˇihra´dka neobsahuje zˇa´dnou kulicˇku), ale hned dalsˇ´ı nula reprezentujı´cı´ prˇepa´zˇku mezi trˇetı´ a cˇtvrtou prˇihra´dkou; na´sledujı´ trˇi jednicˇky reprezentujı´cı´ 3 kulicˇky ve cˇtvrte´ prˇ´ıhra´dce. Protozˇe ma´me n − 1 prˇepa´zˇek a r kulicˇek, je kazˇde´ umı´steˇnı´ reprezentova´no rˇeteˇzcem de´lky n + r − 1, ve ktere´m je n − 1 nul a r jednicˇek. Kazˇdy´ takovy´ rˇeteˇzec je urcˇen tı´m, na ktery´ch jeho n − 1 pozicı´ch z 1.,. . . ,(n + r − 1)-te´ pozice jsou nuly (na ostatnı´ch pozicı´ch jsou totizˇ jednicˇky). Vy´beˇr n − 1 pozic pro nuly z celkove ´ ho pocˇtu n + r − 1 pozic je kombinace n − 1 z n + r − 1, a teˇch je podle Veˇty 3.24 n+r−1 n−1 . Prˇ´ıklad 3.31. Vrat’me se k za´kusku˚m (viz vy´sˇe). Vy´beˇr 6 za´kusku˚ ze 4 druhu ´ kusku ˚ za4+6−1 ˚ je kombinace 6 z 4 s opakova´nı´m. Teˇch je podle Veˇty 3.30 C(n, r) = n+r−1 = = n−1 4−1 9 9! 3 = 6!3! = 84. Pozna´mka 3.32. Zastavme se u pojmu˚ permutace s opakova´nı´m, variace s opakova´nı´m a kombinace s opakova´nı´m. Ve vsˇech prˇ´ıpadech ma´me vlastneˇ objekty rozdeˇleny do neˇkolika typu˚. Zatı´mco vsˇak u permutacı´ s opakova´nı´m je objektu˚ kazˇde´ho typu prˇedepsany´ pocˇet a tyto pocˇty mohou by´t pro ru˚zne´ typy ru˚zne´, u variacı´ i kombinacı´ s opakova´nı´m je objektu˚ kazˇde´ho typu neomezeneˇ mnoho. 3.3.4
Dalsˇ´ı vy´beˇry
Permutace, variace a kombinace jsou za´kladnı´ typy vy´beˇru˚. Uka´zali jsme si za´kladnı´ typy u´vah, ktere´ vedou ke stanovenı´ jejich pocˇtu. Prakticky se vsˇak mu˚zˇeme setkat s prˇ´ıklady slozˇiteˇjsˇ´ımi, ve ktery´ch u´vahy o permutacı´ch, variacı´ch a kombinacı´ch mu˚zˇeme vyuzˇ´ıt. Prˇ´ıklad 3.33. Ligu hraje 14 ty´mu˚. Vy´sledek ligy je da´n tı´m, ktere´ ty´my obsadı´ 1., 2. a 3. mı´sto a ktere´ 2 ty´my sestoupı´ do nizˇsˇ´ı souteˇzˇe. Kolik je mozˇny´ch vy´sledku˚ ligy? Vy´sledek ligy je da´n vy´beˇrem ty´mu˚ na 1.-3. mı´steˇ a vy´beˇrem ty´mu˚, ktere´ sestupujı´. Ty´my na 1.-3. mı´steˇ jsou trˇi a vybı´ra´me je z 14 ty´mu˚, prˇitom na porˇadı´ vy´beˇru za´lezˇ´ı. Jde tedy o variace 3 z 14 a je jich V (14, 3). Po jejich vy´beˇru vybereme ze zby´vajı´cı´ch 11 ty´mu˚ dva, ktere´ sestoupı´. 11 Zde na porˇadı´ neza´lezˇ´ı. Jde tedy o kombinace 2 z 11 a je jich 2 . Podle pravidla soucˇinu je celkoveˇ V (14, 3) · 11 ˇ ny´ch vy´sledku˚ ligy. 2 moz 57
Mu˚zˇeme ale take´ postupovat obra´ceneˇ, tj. nejdrˇ´ıv vybrat ze 14 dva sestupujı´cı´ ty´my a pak ze zbyly´ch 12 vybrat 3 medailisty. Tak dostaneme 14 ˇ nostı´. Vy´sledek je ale stejny´ 2 · V (12, 3) moz jako u prvnı´ u´vahy, protozˇe 14 14 · 13 14 · 13 · 12 · 11 · 10 · V (12, 3) = · 12 · 11 · 10 = = 2 2 2 11 · 10 11 = 14 · 13 · 12 · = V (14, 3) · . 2 2 Prˇ´ıklad 3.34. Kolika ru˚zny´mi zpu˚soby lze kolem kulate´ho stolu se 6 zˇidlemi posadit 6 osob? Prˇitom dveˇ posazenı´, ktera´ se lisˇ´ı jen pootocˇenı´m, povazˇujeme za shodna´. Oznacˇmeˇ osoby A, B, C, D, E, F. Kdyby i dveˇ posazenı´ lisˇ´ıcı´ se pootocˇenı´m, byla povazˇova´na za ru˚zna´, pak by pocˇet vsˇech posazenı´ byl stejny´ jako pocˇet vsˇech permutacı´ 6 objektu˚, tj. P (6) = 6!. Kruhove´ usporˇa´da´nı´ kolem stolu by totizˇ nehra´lo roli. Kolem stolu je 6 mı´st, mu˚zˇeme jim rˇ´ıkat 1., 2., . . . , 6. mı´sto. Ota´zka by pak byla, kolika zpu˚soby mu˚zˇeme umı´stit 6 osob na 6 mı´st, tj. vlastneˇ kolika zpu˚soby lze usporˇa´dat 6 osob. Odpoveˇd’ je pak zjevneˇ P (6). Povazˇujeme-li vsˇak posazenı´ za shodna´, pra´veˇ kdyzˇ lze z jednoho do druhe´ho prˇejı´t pootocˇenı´m, bude celkovy´ pocˇet posazenı´ mensˇ´ı. Dojdeme k neˇmu naprˇ. na´sledovneˇ. Kruhove´ posazenı´ kolem stolu “roztrhneme” a zapı´sˇeme linea´rneˇ. Naprˇ. ABCFDE je za´pis, kdy A sedı´ na 1. zˇidi, . . . , E sedı´ na 6. zˇidli. Postupny´m ota´cˇenı´m tohoto posazenı´ o 0 azˇ 5 zˇidlı´ dostaneme celkem 6 jeho za´pisu˚: ABCFDE, BCFDEA, CFDEAB, FDEABC, DEABCF, EABCFD. Celkovy´ pocˇet za´pisu˚ je tedy 6 kra´t veˇtsˇ´ı nezˇ pocˇet posazenı´. Protozˇe za´pisu˚ je P (6), je hledany´ pocˇet posazenı´ P (6) 6! 6 = 6 = 5!. Prˇ´ıklad 3.35. Kolik existuje posloupnostı´ n nul a k jednicˇek, ve ktery´ch zˇa´dne´ dveˇ jednicˇky nejsou vedle sebe? Prˇedstavme si posloupnost n nul. Na zacˇa´tku, mezi nulami a na konci te´to posloupnosti je celkem n + 1 mı´st (naprˇ. pro posloupnost 000 jsou to mı´sta 0 0 0 ). Libovolnou posloupnost n nul a k jednicˇek, ktera´ splnˇuje pozˇadovane´ podmı´nky, tak, zˇe na vznikly´ch n + 1 mı´st umı´stı´me k jednicˇek. Takovy´ch mozˇnostı´ je pra´veˇ tolik, kolika zpu˚soby mu˚zˇeme z n + 1 mı´st (mezi nulami) vybrat k mı´st (na kazˇde´ z nich da´me jednicˇku), tedy pra´veˇ n+1 ˇ et hledany´ch k . Poc n+1 posloupnostı´ je tedy k . Shrnutı´ Kombinatorika se zaby´va´ zjisˇt’ova´nı´m pocˇtu mozˇnostı´, ktere´ mnohou nastat za prˇedem dany´ch podmı´nek. Za´kladnı´ kombinatoricka´ pravidla jsou pravidlo soucˇtu a pravidlo soucˇinu. Pomocı´ nich se dajı´ urcˇit naprˇ. pocˇty mozˇnostı´ ru˚zny´ch typu˚ vy´beˇru˚. Mezi za´kladnı´ typy vy´beˇru˚ patrˇ´ı permutace, variace a kombinace. Permutace n prvku˚ je jejich libovolne´ usporˇa´da´nı´. Variace k prvku˚ z n prvku˚ je libovolny´ vy´beˇr k prvku˚ z n prvku˚, ve ktere´m na porˇadı´ vybı´rany´ch prvku˚ za´lezˇ´ı. Kombinace k prvku˚ z n prvku˚ je libovolny´ vy´beˇr k prvku˚ z n prvku˚, ve ktere´m na porˇadı´ vybı´rany´ch prvku˚ neza´lezˇ´ı. Variace a kombinace s opakova´nı´m jsou podobne´ vy´beˇry, ve ktery´ch se vybı´rane´ prvky mohou opakovat. Pojmy k zapamatova´nı´ • • • •
pravidla soucˇtu a soucˇinu, permutace a permutace s opakova´nı´m, variace a variace s opakova´nı´m, kombinace a kombinace s opakova´nı´m.
Kontrolnı´ ota´zky 1. Co rˇ´ıka´ pravidlo soucˇtu? Co rˇ´ıka´ pravidlo soucˇinu? 58
Cˇ´ım se lisˇ´ı permutace a variace? Cˇ´ım se lisˇ´ı variace a kombinace? Cˇ´ım se lisˇ´ı permutace a permutace s opakova´nı´m? Cˇ´ım se lisˇ´ı variace a variace s opakova´nı´m? Cˇ´ım se lisˇ´ı kombinace a kombinace s opakova´nı´m? 4. Cˇ´ım se lisˇ´ı aspekt opakova´nı´ u permutacı´ s opakova´nı´m, variacı´ s opakova´nı´m a kombinacı´ s opakova´nı´m? 2. 3.
Cvicˇenı´ 1. Kolik existuje v soustaveˇ o za´kladu n neza´porny´ch cˇ´ısel, ktere´ majı´ pra´veˇ k cˇ´ıslic? 2. Kolik ru˚zny´ch slov lze zı´skat z akronymu WYSIWYG? n 3. Dokazˇte matematickou indukcı´, zˇe nk + k−1 = n+1 pro vsˇechna n ∈ N a k = k 0, 1, . . . , n. 4. Definujme indukcı´ P 1 (X) = P (X) a pro n > 1 P n (X) = P (P n−1 (X)). Je-li mnozˇina X konecˇna´, kolik prvku˚ ma´ P n (X)? 5. Kolik ma´ n-prvkova´ mnozˇina m-prvkovy´ch podmnozˇin (m < n)? 6. Kolik existuje funkcı´ m prvkove´ do n prvkove´ mnozˇiny? 7. Kolik existuje injektivnı´ch funkcı´ z m prvkove´ do n prvkove´ mnozˇiny? 8. Kolik existuje n-a´rnı´ch operacı´ na m-prvkove´ mnozˇineˇ? Kolik z nich je injektivnı´ch? Kolik jich je surjektivnı´ch? 9. Krotitel ma´ do are´ny prˇive´st za sebou jdoucı´ch 5 lvu˚ a 4 tygry. Prˇitom zˇa´dnı´ dva tygrˇi nesmı´ jı´t bezprostrˇedneˇ za sebou (musı´ mezi nimi by´t lev). Kolika zpu˚soby to lze prove´st? Na porˇadı´ tygru˚ i lvu˚ za´lezˇ´ı. 10. Rozeberte prˇedchozı´ cvicˇenı´ pro prˇ´ıpad n lvu˚ a k tygru˚. 11. Na policˇce je 12 knih. Kolika zpu˚soby lze vybrat 5 z nich tak, aby zˇa´dne´ dveˇ z vybrany´ch nesta´ly vedle sebe? Jak je to prˇi vy´beˇru k knih z n?
´ koly k textu U 1. U Prˇ´ıkladu˚ 3.1, 3.2, 3.3 zdu˚vodneˇte pouzˇite´ kombinatoricke´ u´vahy. 2. Vrat’me se k Prˇ´ıkladu 3.3. Jaky´ je nejveˇtsˇ´ı pocˇet k ko´dovy´ch posloupnostı´ bina´rnı´ho ko´du de´lky n, ktery´ umozˇnˇuje opravu azˇ t-na´sobny´ch chyb? t-na´sobnou chybou vznikne z dane´ho slova slovo, ktere´ se od dane´ho lisˇ´ı pra´veˇ v t pozicı´ch. Prˇ´ıklad 3.3 tedy da´va´ n odpoveˇd’ pro t = 1. [Odpoveˇd’: 1+n+ n2 +···+ n .] (2) (r ) 3. Vrat’me se k Prˇ´ıkladu 3.8. Navrhneˇte ru˚zne´ tvary registracˇnı´ch znacˇek a pro kazˇdy´ tvar spocˇ´ıtejte odpovı´dajı´cı´ pocˇet znacˇek, ktere´ lze prˇideˇlit. Jake´ pravidlo pro na´vrh tvaru registracˇnı´ch znacˇek plyne? 4. Zdu˚vodneˇte podrobneˇ Veˇtu 3.13. 5. Zdu˚vodneˇte podrobneˇ Veˇtu 3.16. 6. Zdu˚vodneˇte podrobneˇ Veˇtu 3.24. Promyslete si a zdu˚vodneˇte du˚kaz Veˇty 3.30.
ˇ esˇenı´ R 1. (n − 1) · nk−1 . Na´vod: Jako prvnı´ cˇ´ıslici lze pouzˇ´ıt n − 1 cˇ´ıslic (nelze 0), na kazˇdou z dalsˇ´ıch k − 1 pozic pak n cˇ´ıslic. Podle principu soucˇinu to lze celkem (n − 1) · nk−1 zpu˚soby. 59
2. 1260. Na´vod: Je to P (2, 2, 1, 1, 1). 3. Dokazˇte matematickou indukcı´, zˇe 0, 1, . . . , n.
n k
+
n k−1
=
n+1 k
pro vsˇechna n ∈ N a k =
2k
..k 2.
4. Oznacˇme k = |X|. Pak |P 1 (X)| = 2k , |P 2 (X)| = 2 , atd. Obecneˇ je |P n (X)| = 2 (dvojka je tam k kra´t). n 5. m , je to pra´veˇ pocˇet kombinacı´ m z n. 6. V (n, m) = nm . Na´vod: Meˇjme X = {x1 , . . . , xm }, Y = {y1 , . . . , yn }. Libovolna´ funkce f je da´na usporˇa´danou m-ticı´ hf (x1 ), . . . , f (xm )i hodnot f (xi ) ∈ Y . Vy´beˇr kazˇde´ takove´ m-tice je variace m z n s opakova´nı´m. Teˇch je V (n, m) = nm . 7. Pro m ≤ n existuje V (n, m) injektivnı´ch funkcı´, pro m > n zˇa´dna´. Na´vod: Viz prˇedchozı´ cvicˇenı´, jde o variace bez opakova´nı´. n 8. mm . Na´vod: Pro |X| = m je to pocˇet zobrazenı´ mnozˇiny X n do mnozˇiny X. Protozˇe |X n | = n mn , je jich nm (viz prˇedchozı´ cvicˇenı´). 9. Existuje 43200 zpu˚sobu˚. Na´vod: Lvy lze rozmı´stit P (5) = 5! = 120 zpu˚soby. Zby´va´ 6 mı´st pro umı´steˇnı´ tygru˚ (na zacˇa´tku, mezi lvy a na konci). Do nich lze tygry umı´stit V (6, 4) = 360 zpu˚soby. Podle pravidla soucˇinu existuje celkem 120 · 360 = 43200 zpu˚sobu˚. 10. Pro k ≤ n + 1 existuje P (n) · V (n + 1, k) zpu˚sobu˚. Pro k > n + 1 takovy´ zpu˚sob neexistuje. 11. Existuje 56 mozˇnostı´. V obecne´m prˇ´ıpadeˇ existuje n+k−1 mozˇnostı´ (pokud 2k −1 ≤ n, k jinak zˇa´dna´ mozˇnost neexistuje). Na´vod: Kazˇdy´ kazˇdy´ takovy´ vy´beˇr k knih z n knih mu˚zˇeme reprezentovat posloupnostı´ k jednicˇek (na pozicı´ch vybrany´ch knih) a n − k nul (na pozicı´ch nevybrany´ch knih), ve ktere´ se nevyskytujı´ sousedı ´cı´ jednicˇky (vybrane´ knihy nestojı´ vedle sebe). Teˇch je podle Prˇ´ıkladu 3.35 n−k+1 . k Studijnı´ cı´le: Po prostudova´nı´ kapitol 3.4 a 3.5 by student meˇl by´t zna´t princip inkluze a exkluze a umeˇt ho pouzˇ´ıt. Da´le by meˇl zna´t za´klady pocˇ´ıta´nı´ pravdeˇpodobnostı´. Student by meˇl umeˇt v za´kladnı´ch u´loha´ch samostatneˇ prove´st spra´vnou kombinatorickou u´vahu. Klı´cˇova´ slova: princip inkluze a exkluze, pravdeˇpodobnost, pocˇ´ıta´nı´ pravdeˇpodobnosti Potrˇebny´ cˇas: 160 minut.
3.4
Princip inkluze a exkluze
V nabı´dce volitelny´ch prˇedmeˇtu˚ je neˇmcˇina a anglicˇtina. Neˇmcˇinu si zvolilo 15 studentu˚, anglicˇtinu 30 studentu˚. 5 studentu˚ si zvolilo nemcˇinu i anglicˇtinu. Kolik studentu˚ si jako volitelny´ prˇedmeˇt vybralo cizı´ jazyk (tj. neˇmcˇinu nebo anglicˇtinu)? Oznacˇme N a A po rˇadeˇ mnozˇiny studentu˚, kterˇ´ı si zapsali neˇmcˇinu a anglicˇtinu. Secˇteme-li |N | (pocˇet teˇch, kterˇ´ı si zapsali neˇmcˇinu) a |A| (pocˇet teˇch, kterˇ´ı si zapsali anlicˇtinu), pocˇ´ıta´me dvakra´t ty, kterˇ´ı si zapsali neˇmcˇinu i anglicˇtinu (teˇch je |N ∩ A|). Ty tedy musı´me od |N | + |A| odecˇ´ıst. Pocˇet |N ∪ A| teˇch, terˇ´ı si zapsali neˇmcˇinu nebo anglicˇtinuje tedy |N ∪ A| = |N | + |A| − |N ∩ A| = 15 + 30 − 5 = 40. Jiny´ prˇ´ıklad: Na jiste´ univerziteˇ je 56 ucˇitelu˚ cˇleny americke´ informaticke´ spolecˇnosti ACM (Association for Computing Machinery). Cˇlenove´ ACM si mohou prˇikoupit cˇlenstvı´ v neˇktere´ 60
z tzv. special interest group (SIG, SIG jsou soucˇa´sti ACM). Ze zmı´neˇny´ch 56 ucˇitelu˚ jich je 20 cˇleny SIMOD (Special Interest Group on Management of Data), oznacˇme jejich mnozˇinu A1 ; 15 cˇleny SIGIR (Special Interest Group on Information Retrieval), oznacˇme jejich mnozˇinu A2 ; 20 cˇleny SIGKDD (Special Interest Group on Knowledge Discovery in Data), oznacˇme jejich mnozˇinu A3 . Da´le je zna´mo, zˇe 10 jich je cˇleny SIMOD i SIGIR, 8 jich je cˇleny SIGMOD i SIGKDD, 7 jich je cˇleny SIGIR i SIGKDD, 4 jsou cˇleny SIGMOD, SIGIR i SIGKDD. Kolik z 56 cˇlenu˚ ACM je cˇlenem neˇktere´ z SIGMOD, SIGIR, SIGKDD? Pta´me se vlastneˇ, kolik prvku˚ ma´ mnozˇina A1 ∪ A2 ∪ A3 , prˇitom zna´me |A1 |, |A2 |, |A3 |, |A1 ∩ A2 |, |A1 ∩ A3 |, |A2 ∩ A3 | a |A1 ∩ A2 ∩ A3 |. Pokud bychom pouze secˇetli |A1 | + |A2 | + |A3 |, pak jsou dvakra´t zapocˇ´ıta´ni ti z A1 ∩ A2 , z A1 ∩ A3 a z A2 ∩ A3 , a dokonce trˇikra´t jsou zapocˇ´ıta´ni ti z A1 ∩ A2 ∩ A3 . To sva´dı´ k tomu rˇ´ıci, zˇe |A1 ∪ A2 ∪ A3 | se rovna´ |A1 | + |A2 | + |A3 | − |A1 ∩ A2 | − |A1 ∩ A3 | − |A2 ∩ A3 | − 2|A1 ∩ A2 ∩ A3 |. To je ale sˇpatneˇ. Odecˇteme-li totizˇ od |A1 | + |A2 | + |A3 | pocˇty |A1 ∩ A2 |, |A1 ∩ A3 | i |A2 ∩ A3 |, odecˇ´ıta´me v kazˇde´m z |A1 ∩ A2 |, |A1 ∩ A3 | a |A2 ∩ A3 | i pocˇet teˇch, kterˇ´ı jsou v A1 ∩ A2 ∩ A3 (nakreslete si obra´zek). Tedy od |A1 | + |A2 | + |A3 | jsme odecˇetli 3|A1 ∩ A2 ∩ A3 |. K tomu jsme pak jesˇteˇ odecˇetli 2|A1 ∩ A2 ∩ A3 |. Celkoveˇ jsme tedy od |A1 | + |A2 | + |A3 | odecˇetli |A1 ∩ A2 ∩ A3 | peˇtkra´t a meˇli jsme to odecˇ´ıst jen dvakra´t. Spra´vny´ vy´sledek tedy je |A1 ∪ A2 ∪ A3 | = |A1 | + |A2 | + |A3 | − |A1 ∩ A2 | − |A1 ∩ A3 | − |A2 ∩ A3 | + +|A1 ∩ A2 ∩ A3 | = 20 + 15 + 20 − 10 − 8 − 7 + 4 = 24. ´ vahy uka´zane´ na vy´sˇe uvedeny´ch prˇ´ıkladech jsou prˇedmeˇtem tzv. principu inkluze a exkluze U (tj. zapojova´nı´ a vylucˇova´nı´). Veˇta 3.36 (princip inkluze a exkluze). Pro mnozˇiny A1 , . . . , An platı´ X \ |A1 ∪ A2 ∪ · · · ∪ An | = (−1)|I|+1 | Ai |. ∅6=I⊆{1,2,...,n}
i∈I
Zastavme se nejdrˇ´ıv nad tı´m, co princip inkluze a exkluze rˇ´ıka´. Na leve´ straneˇ rovnosti je pocˇet prvku˚, ktere´ patrˇ´ı do sjednocenı´ A1 ∪ · · · ∪ An , tj. alesponˇ do jedne´ z A1 , . . . , An . Na prave´ straneˇ je soucˇet vy´razu˚ (−1)|I|+1 | ∩i∈I Ai |, kde I probı´ha´ prˇes vsˇechny nepra´zdne´ podmnozˇiny mnozˇiny {1, . . . , n}. | ∩i∈I Ai | je pocˇet prvku˚ pru˚niku mnozˇin, jejichzˇ index patrˇ´ı do I, tj. naprˇ. pro I = {2, 3, 5} je to |A2 ∩ A3 ∩ A5 |. Vy´raz (−1)|I|+1 je roven 1, pokud I obsahuje lichy´ pocˇet prvku˚, a je roven −1, pokud I obsahuje sudy´ pocˇet prvku˚. Tedy: v soucˇtu na prave´ straneˇ jsou pocˇty prvku˚ vsˇech mozˇny´ch pru˚niku˚ (jednocˇlenny´ch, dvoucˇlenny´ch,. . . , azˇ po n-cˇlenny´) utvorˇene´ z A1 , . . . , An , prˇitom pocˇet prvku˚ dane´ho pru˚niku je se zname´nkem + pro pru˚niky liche´ho pocˇtu mnozˇin a se zname´nkem − pro pru˚niky liche´ho pocˇtu mnozˇin. Zkontrolujte, zˇe vzorec pro n = 2 i n = 3 da´va´ pra´veˇ dva vzorce, ke ktery´m jsme dosˇli i prˇ´ıkladu˚ s volitelny´mi prˇedmeˇty a s cˇlenstvı´m v SIG ACM. Prˇejdeˇme nynı´ k du˚kazu Veˇty 3.36. Du˚kaz. Vezmeˇme libovolny´ prvek z A1 ∪ · · · ∪ An a porovnejme, jaky´m cˇ´ıslem x “prˇispı´va´” na leve´ a na prave´ straneˇ dokazovane´ rovnosti. Na leve´ straneˇ prˇispı´va´ zrˇejmeˇ jednicˇkou. Pro pravou stranu je to slozˇiteˇjsˇ´ı. Prvek x patrˇ´ı pra´veˇ do, rˇekneˇme, k mnozˇin z mnozˇin A1 , . . . , Ak . Mu˚zˇeme prˇedpokla´dat, zˇe to jsou mnozˇiny A1 , . . . , Ak (kdyby ne, mnozˇiny prˇeznacˇ´ıme). Pak x patrˇ´ı do neˇjake´ho pru˚niku, ktery´ je na prave´ straneˇ rovnosti, pra´veˇ kdyzˇ je to pru˚nik neˇjaky´ch mnoz Tˇ in z |I|+1 A1 , . . . , Aj . Je-li to pru˚nik liche´ho pocˇtu mnozˇin, x do odpovı´dajı´cı´ho vy´razu (−1) | Ai | T prˇispı´va´ cˇ´ıslem 1, je-li to pru˚nik sude´ho pocˇtu mnozˇin, x do vy´razu (−1)|I|+1 | Ai | prˇispı´va´ cˇ´ıslem -1. Z A1 , . . . ,Ak lze vytva´rˇet jednoprvkove´, . . . , k-prvkove´ pru˚niky. Pocˇet l-prvkovy´ch pru˚niku˚ je prˇitom kl . Vidı´me tedy, zˇe x prˇispı´va´ celkem na pravou stranu cˇ´ıslem k k k k+1 k − + − · · · + (−1) . 1 2 3 k 61
Jaka´ je hodnota tohoto soucˇtu? Vezmeˇme binomickou veˇtu a dosad’me do (3.2) x = −1. Dostaneme k k X X n i k k k i k 0 = 0 = (1 − 1) = (1 + x) = x =1+ = (−1) k i i=0 i=1 k k k k+1 k = 1−( − + − · · · + (−1) ). 1 2 3 k Odtud tedy vidı´me, zˇe hledana´ hodnota soucˇtu je 1. Prvek x tedy i nalpravou stranu prˇispı´va´ jednicˇkou. Protozˇe x byl libovolny´, vy´razy na leve´ a prave´ straneˇ dokazovane´ rovnosti majı´ stejne´ hodnoty. Prˇ´ıklad 3.37. Kolik je prˇirozeny´ch cˇ´ısel mezi 1 a 100 (vcˇetneˇ 1 i 100), ktera´ nejsou deˇlitelna´ ani dveˇma, ani trˇemi nebo peˇti? Princip inkluze a exkluze mu˚zˇeme pouzˇ´ıt na´sledovneˇ. Oznacˇme A1 = {n ∈ N | 1 ≤ n ≤ 100, n je deˇlitelne´ 2},
(3.3)
A2 = {n ∈ N | 1 ≤ n ≤ 100, n je deˇlitelne´ 3},
(3.4)
A3 = {n ∈ N | 1 ≤ n ≤ 100, n je deˇlitelne´ 5}.
(3.5)
Pak prˇirozena´ cˇ´ısla mezi 1 a 100 (vcˇetneˇ 1 i 100), ktera´ nejsou deˇlitelna´ ani dveˇma, ani trˇemi nebo peˇti, jsou pra´veˇ prvky mnozˇiny A = A1 ∩ A2 ∩ A3 . Protozˇe A1 ∩ A2 ∩ A3 = A1 ∪ A2 ∪ A3 , je |A| = |A1 ∪ A2 ∪ A3 | = 100 − |A1 ∪ A2 ∪ A3 |. Podle principu inkluze a exkluze je |A1 ∪ A2 ∪ A3 | = |A1 | + |A2 | + |A3 | − |A1 ∩ A2 | − |A1 ∩ A3 | − |A2 ∩ A3 | + |A1 ∩ A2 ∩ A3 |. Zby´va´ tedy urcˇit |A1 |, |A2 |, |A3 |, |A1 ∩ A2 |, |A1 ∩ A3 |, |A2 ∩ A3 |, |A1 ∩ A2 ∩ A3 |, cozˇ je snadne´. Ukazˇme to na prˇ´ıkladu mnozˇiny A1 ∩ A2 . A1 ∩ A2 je mnozˇina prˇirozeny´ch cˇ´ısel mezi 1 a 100, ktera´ jsou deˇlitelna´ dveˇma i trˇemi. To jsou ale pra´veˇ ta cˇ´ısla, ktera´ jsou deˇlitelna´ 6 (cˇ´ıslo je deˇlitelne´ 6, pra´veˇ kdyzˇ je deˇlitelne´ 2 i 3). Teˇch je b 100 ´ cˇa´st cˇ´ısla 100 6 c = 16 (dolnı´ cela 6 ), tj. |A1 ∩ A2 | = 16. Podobneˇ dostaneme |A1 | = 50, |A2 | = 33, |A3 | = 20, |A1 ∩ A3 | = 10, |A2 ∩A3 | = 6, |A1 ∩A2 ∩A3 | = 3. Dosazenı´m pak dostaneme |A| = 100−|A1 ∪A2 ∪A3 | = 26.
3.5
Pocˇ´ıta´nı´ pravdeˇpodobnosti
Pocˇ´ıta´nı´ pravdeˇpodobnostı´ jednoduchy´ch jevu˚ je jednou z aplikacı´ kombinatoricke´ho pocˇ´ıta´nı´, ktera´ je v prakticke´m zˇivoteˇ velmi uzˇitecˇna´. Prˇedstavme si, zˇe ha´zı´me kostkou. Mu˚zˇe padnout jednicˇka, dvojka, trojka, cˇtyrˇka, peˇtka nebo sˇestka. Prˇitom kazˇdy´ z teˇchto vy´sledku˚ ma´ stejnou sˇanci (kostka je fe´rova´). Jaka´ je pravdeˇpodobnost, zˇe prˇi hodu padne cˇ´ıslo deˇlitelne´ trˇemi? Jiny´mi slovy, jaka´ je pravdeˇpodobnost, zˇe prˇi hodu padne trojka nebo sˇestka? Celkovy´ existuje 6 mozˇny´ch vy´sledku˚ hodu kostkou. Z teˇchto pra´veˇ dva vy´sledky (trojka a sˇestka) odpovı´dajı´ jevu „padne trojka nebo sˇestka“. Cha´peme-li praveˇpeˇdobnost jako pocˇet kladny´ch vy´sledku˚ ku pocˇtu vsˇech mozˇny´ch vy´sledku˚, je to dveˇ ku sˇesti, tedy 62 = 0.33333 . . . . Pru˚vodce studiem Ota´zkami o pravdeˇpodobnostech a usuzova´nı´ za nejistoty se zaby´va´ teorie pravdeˇpodobnosti. Velke´ mnozˇstvı´ prˇ´ıpadu˚, se ktery´mi se prakticky setka´va´me, ma´ na´sledujı´cı´ podobu. Prˇedstavme si, zˇe se kona´ neˇjaky´ pokus, ktery´ skoncˇ´ı jednı´m z vy´sledku˚ e1 , . . . , en . Vy´sledku˚m e1 , . . . , en se rˇ´ıka´ elementa´rnı´ jevy. Prˇedpokla´da´me, zˇe kazˇdy´ z vy´sledku˚ e1 , . . . , en ma´ stejnou sˇanci, tj. elementa´rnı´ jevy jsou stejneˇ pravdeˇpodobne´. Pokusem mu˚zˇe by´t hod kostkou, elementa´rnı´ jevy jsou pak 1, 2, 3, 4, 5, 6 (vy´sledky hodu). Jev je kazˇda´ podmnozˇina
62
A ⊆ E = {e1 , . . . , en }. Jevem u hodu kostkou je naprˇ. mnozˇina A = {3, 6} (padne cˇ´ıslo deˇlitelne´ trˇemi) nebo B = {2, 3, 4, 5, 6} (padne cˇ´ıslo ru˚zne´ od 1). Pravdeˇpodobnost P (A) jevu A je da´na vztahem |A| P (A) = , |E| tj. je to pocˇet vsˇech vy´sledku˚ prˇ´ıznivy´ch jevu A ku pocˇtu vsˇech mozˇny´ch vy´sledku˚. Naprˇ. |{3,6}| = 13 , pravdeˇpodobnost toho, zˇe padne cˇ´ıslo deˇlitelne´ 3 je tedy P (A) = |{1,2,3,4,5,6}| |{2,3,4,5,6}| pravdeˇpodobnost, zˇe padne cˇ´ıslo ru˚zne´ od 1 je P (A) = |{1,2,3,4,5,6}| = 56 . Pravdeˇpodobnost mu˚zˇe naby´vat hodnot od 0 do 1. 0 je pravdeˇpodobnost nemozˇne´ho jevu, naprˇ. zˇe padne cˇ´ıslo, ktere´ je sude´ i liche´. 1 je pravdeˇpodobnost jiste´ho jevu, naprˇ. zˇe padne cˇ´ıslo mensˇ´ı nezˇ 9.
Chceme-li urcˇit pravdeˇpodobnost neˇjake´ uda´losti, mu˚zˇeme jednodusˇe pouzˇ´ıt vzorec P (A) = |A| ˇ init na´sledujı´cı´: |E| . K tomu je ale trˇeba uc 1. Urcˇit mnozˇinu E vsˇech elementa´rnı´ch jevu˚ (vy´sledku˚) a oveˇrˇit, zˇe jsou vsˇechny stejneˇ pravdeˇpodobne´, 2. urcˇit jev A ⊆ E, ktery´ odpovı´da´ dane´ uda´losti, 3. urcˇit pocˇet prvku˚ mnozˇiny E, tj. urcˇit |E|, 4. urcˇit pocˇet prvku˚ mnozˇiny A, tj. urcˇit |A|. V krocı´ch 1. a 2. si koncepcˇneˇ ujasnı´me situaci (1. a 2. odpovı´da´ nalezenı´ spra´vne´ho pohledu na veˇc), v krocı´ch 3. a 4. obvykle provedeme urcˇite´ kombinatoricke´ u´vahy. Zacˇneme jednoduchy´mi prˇ´ıklady. Prˇ´ıklad 3.38. Ha´zı´me modrou a cˇervenou kostkou. Jaka´ je pravdeˇpodobnost, zˇe na modre´ kostce padne sude´ a na cˇervene´ liche´ cˇ´ıslo? Na sitaci se mu˚zˇeme dı´vat takto: Vy´sledek, tj. elementa´rnı´ jev, je da´n dvojicı´ cˇ´ısel hm, ci, kde m, c ∈ {1, 2, 3, 4, 5, 6} a m a c jsou po rˇadeˇ vy´sledek na modre´ a cˇervene´ kostce. Tedy ma´me E = {hm, ci | m, c ∈ {1, 2, 3, 4, 5, 6}}. Elementa´rnı´ jev hm, ci je prˇ´ıznivy´ uda´losti „na modre´ kostce padne sude´ a na cˇervene´ liche´ cˇ´ıslo“, pra´veˇ kdyzˇ m ∈ {2, 4, 6} a c ∈ {1, 3, 5}. Tedy A = {hm, ci | m ∈ {2, 4, 6}, c ∈ {1, 3, 5}}. Vidı´me, zˇe |E| = 6 · 6 = 36 (prˇ´ımo podle pravidla soucˇinu) a zˇe |A| = 3 · 3 = 9 (podle pravidla |A| 9 soucˇinu). Tedy hledana´ pravdeˇpodobnost P (A) je P (A) = |E| = 36 = 0.25. Prˇ´ıklad 3.39. Ha´zı´me dveˇma kostkami, ktere´ jsou nerozlisˇitelne´. Jaka´ je pravdeˇpodobnost, zˇe asponˇ na jedne´ z nich padne dvojka? Vezmeˇme opeˇt E = {hm, ci | m, c ∈ {1, 2, 3, 4, 5, 6}}. Zajı´ma´ na´s ted’ jev A = {hm, ci ∈ E | m = 2 nebo c = 2} a jeho pocˇet prvku˚. K neˇmu mu˚zˇeme dojı´t tak: Pro jevy A1 = {hm, ci ∈ E | m = 2} (na modre´ padne dvojka) a A2 = {hm, ci ∈ E | c = 2} (na cˇervene´ padne dvojka) zrˇejmeˇ platı´ A = A1 ∪ A2 . Protozˇe A1 ∩ A2 = {h2, 2i}, je podle principu inkluze a exkluze |A| = |A1 ∪ A2 | = |A1 | + |A2 | − |A1 ∩ A2 | = 6 + 6 − 1 = 11. Pravdeˇpodobnost, zˇe asponˇ na jedne´ z kostek padne dvojka je tedy P (A) =
63
|A| |E|
=
11 36 .
Prˇi hleda´nı´ vhodne´ho pohledu na veˇc (viz bod 1.) musı´me by´t opatrnı´. Podı´vejme se znovu na Prˇ´ıklad 3.39. Prˇ´ıklad sva´dı´ k na´sledujı´cı´mu pohledu. Na hody se mu˚zˇeme dı´vat jako na kombinace 2 z 6 s opakova´nı´m. Pro to, zda padne dvojka, totizˇ nenı´ du˚lezˇite´, jestli padne na jedne´ nebo druhe´ kostce. Du˚lezˇite´ je veˇdeˇt, zˇe naprˇ. padla trojka a cˇtyrˇka, neza´lezˇ´ı na tom, na ktere´ z kostek ta cˇ´ıla padla. Tedy hod mu˚zˇeme cha ´ pat jako kombinaci 2 z 6 s opakova´nı´m a 7 teˇch je podle Veˇty 3.30 C(6, 2) = 6+2−1 = ´ me tedy 21 elementa´rnı´ch jevu˚. 6−1 5 = 21. Ma Kolik z nich je prˇ´ıznivy´ch jevu A, ktery´ popisuje, zˇe padla asponˇ jedna dvojka? Je jich 6. Skutecˇneˇ, v kombinaci, ktera´ do jevu patrˇ´ı, musı´ by´t jeden z prvku˚ dvojka a ten druhy´ mu˚zˇe by´t libovolny´ z 1, 2, 3, 4, 5, 6. To je celkem 6 mozˇnostı´. Hodnota pravdeˇpodobnosti P (A) je |A| 6 tedy P (A) = |E| = 21 . To je ale jiny´ vy´sledek nezˇ ten, ktery´ jsme dostali v Prˇ´ıkladu 3.39! Kde je chyba (zkuste na to prˇijı´t nejdrˇ´ıv sami)? Je v tom, zˇe kdyzˇ se na elementa´rnı´ jevy dı´va´me jako na kombinace s opakova´nı´m, nejsou vsˇechny stejneˇ pravdeˇpodobne´. Naprˇ. kombinace, ve ktere´ jsou dveˇ trojky (padnou dveˇ trojky) je (dvakra´t) me´neˇ pravdeˇpodobna´ nezˇ kombinace, ve ktere´ je trojka a sˇestka. Vy´sledek „dveˇ trojky“ totizˇ mu˚zˇe nastat pra´veˇ jednı´m zpu˚sobem: na modre´ i cˇervene´ padne trojka. Vy´sledek „trojka a sˇestka“ mu˚zˇe naproti tomu padnout dveˇma zpu˚soby: na modre´ trojka a na cˇervene´ sˇestka, nebo na modre´ sˇestka a na cˇervene´ trojka. Vzorec |A| P (A) = |E| tedy nemu˚zˇeme pouzˇ´ıt. Prˇ´ıklad 3.40. Jaka´ je pravdeˇpodobnost, zˇe prˇi rozda´va´nı´ 4 karet z balı´cˇku 32 hracı´h karet dostaneme cˇtyrˇi sedmicˇky? Jaka´ je pravdeˇpodobnost, zˇe dostaneme 2 kra´le a a dveˇ esa? V tomto prˇ´ıpadeˇ mu˚zˇeme za elementa´rnı´ jevy povazˇovat cˇtyrˇprvkove´ mnozˇiny karet (podmnozˇiny 32-prvkove´ mnozˇiny vsˇech karet). Kazˇde´mu rozda´nı´ totizˇ odpovı´da´ jedna cˇtyrˇprvkova ´ 32 mnozˇina karet (na porˇadı´ neza´lezˇ´ı). Pravdeˇpodobnosti, zˇe dostaneme cˇtyrˇi sedmicˇky je 1/ 4 . Pravdeˇpodobnost, zˇe dostaneme 2 kra´le a 2 esa je 42 42 / 32 4 .
Shrnutı´ Princip inkluze a exkluze je cˇasto pouzˇ´ıvany´m kombinatoricky´m principem. Uda´va´ pocˇet prvku˚ sjednocenı´ neˇkolika mnozˇin pomocı´ pocˇtu prvku˚ pru˚niku˚ jednotlivy´ch mnozˇin. Pocˇ´ıta´nı´ pravdeˇpodobnostı´ jednoduchy´ch jevu˚ patrˇ´ı mezi za´kladnı´ aplikace kombinatoricke´ho pocˇ´ıta´nı´. Pravdeˇpodobnost jevu je da´na podı´lem pocˇtu mozˇnostı´ prˇ´ıznivy´ch dane´mu jevu ku pocˇtu vsˇech mozˇnostı´. Kombinatoricke´ u´vahy se uplatnı´ prˇi urcˇova´nı´ pocˇtu mnozˇnostı´. Pojmy k zapamatova´nı´ • princip inkluze a exkluze, • elementa´rnı´ jev, jev, • pravdeˇpodobnost. Kontrolnı´ ota´zky 1. Co rˇ´ıka´ princip inkluze a exkluze? 2. Jak se zjednodusˇ´ı vzorec z principu inkluze a exkluze, jsou-li mnozˇiny A1 , . . . , An po dvou disjunktnı´? 3. Jaky´ je rozdı´l mezi pojmy jev a elementa´rnı´ jev? 4. Co je to pravdeˇpodobnost jevu a jak je definova´na? Cvicˇenı´ 1. Urcˇete pocˇet prˇirozeny´ch cˇ´ısel mezi 1 a 2000 (vcˇetneˇ 1 i 2000), ktera´ nejsou deˇlitelna´ ani 2, ani 3, ani 5. 2. Urcˇete pocˇet prˇirozeny´ch cˇ´ısel mezi 1 a 2000 (vcˇetneˇ 1 i 2000), ktera´ nejsou deˇlitelna´ ani 2, ani 3, ani 5, ani 7. 64
3. Urcˇete pocˇet prˇirozeny´ch cˇ´ısel mezi 1 a 2000 (vcˇetneˇ 1 i 2000), ktera´ nejsou deˇlitelna´ ani 2, ani 3, ani 5, ale jsou deˇlitelna´ 7. 4. Kolika zpu˚soby mu˚zˇeme rozmı´stit 15 ru˚zny´ch knih do 5 prˇihra´dek tak, aby v kazˇde´ prˇihra´dce byla asponˇ jedna kniha, ale nejvy´sˇe 4 knihy? 5. Ha´zı´me dveˇma kostkami. Ma´me si vsadit na cˇ´ıslo, ktere´ vzejde jako soucˇet vy´sledku˚ na jednotlivy´ch kostka´ch. Na jake´ cˇ´ıslo vsadı´me? 6. Rozved’te vy´pocˇet u Prˇ´ıkladu 3.40. 7. Ha´zı´me trˇikra´t po sobeˇ kostkou. Jaka´ je pravdeˇpodobnost, zˇe vy´sledek prˇi druhe´m i prˇi trˇetı´m hodu je veˇtsˇ´ı nezˇ vy´sledek prˇi prvnı´m hodu? 8. Ha´zı´me trˇikra´t po sobeˇ kostkou. Jaka´ je pravdeˇpodobnost, zˇe vy´sledek prˇi druhe´m hodu je veˇtsˇ´ı nezˇ vy´sledek prˇi prvnı´m hodu a zˇe vy´sledek prˇi trˇetı´m hodu je veˇtsˇ´ı nezˇ vy´sledek prˇi druhe´m hodu?
´ koly k textu U 1. U Prˇ´ıkladu˚ 3.1, 3.2, 3.3 zdu˚vodneˇte pouzˇite´ kombinatoricke´ u´vahy. 2. Vrat’me se k Prˇ´ıkladu 3.3. Jaky´ je nejveˇtsˇ´ı pocˇet k ko´dovy´ch posloupnostı´ bina´rnı´ho ko´du de´lky n, ktery´ umozˇnˇuje opravu azˇ t-na´sobny´ch chyb? t-na´sobnou chybou vznikne z dane´ho slova slovo, ktere´ se od dane´ho lisˇ´ı pra´veˇ v t pozicı´ch. Prˇ´ıklad 3.3 tedy da´va´ n odpoveˇd’ pro t = 1. [Odpoveˇd’: 1+n+ n2 +···+ n .] (2) (r ) 3. Vyrˇesˇte podrobneˇ Prˇ´ıklad 3.37. 4. Na za´kladeˇ Prˇ´ıkladu 3.37 dokazˇte na´sledujı´cı´ tvrzenı´: Jsou-li podmnozˇiny A1 , . . . , An neˇjake´ k-prvkove´ mnozˇinyP X, pak pocˇet prvku˚ mnozˇT iny X, ktere´ nepatrˇ´ı ani jedne´ z |I|+1 | i∈I Ai |. mnozˇin A1 , . . . , An je k − ∅6=I⊆{1,2,...,n} (−1) 5. Vysveˇtlete podrobneˇ chybu popsanou v odstavci na Prˇ´ıkladem 3.39.
ˇ esˇenı´ R 1. 2. 3. 4. 5. 6.
534. 458. 76. 5 10 5 6 15!(˙ 14 10 − 1 6 + 2 2 ). 6, 7 nebo 8. Na´vod: Pocˇet vsˇech cˇtyrˇprvkovy´ch podmnozˇin 32-prvkove´ mnozˇiny je 32 ; existuje 4 4 4 jedina´ z nich, ktera´ obsahuje same´ sedmicˇky; 2 2 z nich obsahuje 2 kra´le a 2 esa. 7. 55/216. 8. 5/54.
65
Reference [Goo98]
Goodaire E. G., Parmenter M. M.: Discrete Mathematics with Graph Theory. Prentice-Hall, Inc., 1998.
[Gri99]
Grimaldi R.: Discrete and Combinatorial Mathematics. An Applied Introduction. 4th ed. Addison Wesley, Reading, MA, 1999.
[KlYu95] Klir G. J., Yuan B.: Fuzzy Sets and Fuzzy Loic. Theory and Applications. Prentice Hall, Upper Saddle River, NJ, 1995. [MaNe00] Matousˇek J., Nesˇetrˇil J.: Kapitoly z diskre´tnı´ matematiky. Karolinum, Praha, 2000. [Mau91]
Maurer S. B., Ralston A.: Discrete Algorithmic Mathematics. Addison Wesley, 1991. DOPLNIT NOVEJSI REF.?
[PrYe73] Preparata F. P., Yeh R. T.: Introduction to Discrete Structures. For Computer Science and Engineering. Addison Wesley, Reading, MA, 1973. [Soch01] Sochor A.: Klasicka´ matematicka´ logika. Karolinum, Praha, 2001 (v prodeji, velmi dobrˇe psana´ s rˇadou doplnˇujı´cı´ch informacı´). [Sˇve02]
Sˇvejdar V.: Logika, neu´plnost a slozˇitost. Academia, Praha, 2002.
[Vil77]
Vilenkin N. J.: Kombinatorika. SNTL, Praha, 1977.
136
A
Seznam obra´zku˚ 1
Vennovy diagramy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2
Graf relace k Prˇ´ıkladu 2.24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3
Relace R z Prˇ´ıkladu 2.24 reprezentovana´ seznamem seznamu˚. . . . . . . . . . . . . . . . . . . . . .
40
4
Neorientovany´ (vlevo) a orientovany´ (vpravo) graf. . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
5
Izomorfnı´ neorientovane´ grafy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
6
Podgrafy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
7
Hranoveˇ a vrcholoveˇ ohodnoceny´ graf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
8
Nakreslete obra´zky jednı´m tahem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
9
Stromy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
10
Strom pro ha´da´nı´ cˇ´ısla z 1, . . . , 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
11
n-ta´ mocnina relace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
12
Reflexivnı´, symetricky´ a tranzitivnı´ uza´veˇr relace . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
13
Hasseovy diagramy usporˇa´dany´ch mnozˇin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
137
B
Seznam tabulek 1
Logicke´ operace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2
Trˇi u´plne´ syste´my spojek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3
Databa´ze z Prˇ´ıkladu 2.15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4
Tabulka popisujı´cı´ bina´rnı´ relaci R mezi X = {a, b, c} a Y = {1, 2, 3, 4}. . . . . . . . . . . . . . . .
35
5
K Prˇ´ıkladu 2.18: Tabulky popisujı´cı´ bina´rnı´ relaci R mezi pacienty a prˇ´ıznaky nemocı´ (vlevo) a relaci S prˇ´ıznaky nemocı´ a nemocemi (vpravo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
6
Tabulka popisujı´cı´ bina´rnı´ relaci R ◦ S mezi pacienty a nemocemi (viz Prˇ´ıklad 2.18). . . . . . . . . .
36
7
Tabulka popisujı´cı´ bina´rnı´ relace R C S, R B S a R S mezi pacienty a nemocemi (viz Prˇ´ıklad 2.20). 37
8
Tabulka (vlevo) a matice (vpravo) popisujı´cı´ bina´rnı´ relaci R mezi X = {a, b, c} a Y = {1, 2, 3, 4}. .
138
38