Teorie množin- stručný přehled doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze c Josef Kolar, 2011 Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 2 Evropský sociální fond. Praha& EU: Investujeme do vaší budoucnosti doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 1/ 35
Cantorovo pojetí Cojetomnožina? Množina(neformálně) je neuspořádaný soubor přesně specifikovaných objektů(prvků množiny). Neformální přístup vede na paradoxy, např.: Russelův:Buď Mmnožinavšechmnožin xtakových,že x / x. Platí M M?Pokud M M,potomzdefinice Mplyne M / M, naopakzm / Mplyne M M. Únik: na začátku předpokládáme nějakou množinu U, s jejímiž prvky a částmi pracujeme. Richardův: Buď n nejmenší přirozené číslo, které nejde definovat méně než třiceti slovy českého jazyka. Problém: věty, které mluví samy o sobě. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 2/ 35
Vyhneme se paradoxům Bez paradoxů- axiomatická teorie množin(např. Zermelova-Fraenkelova), pro nás není teorie množin cílem, ale nástrojem. Příklad zadání množiny: výčet A={1,2,3} vlastnost B= {n;njesudé}??cotamchybí?? Typická universa přirozenáčíslan={0,1,2,3,...},n + = {1,2,3,...} celáčíslaz={0,1, 1,2, 2,3,...} racionálníčíslaq={p/q;p Z q N + } reálná čísla R Modifikátory vymezující podmnožiny universa: Z = {n Z;n <0},Q + = {x Q;x >0},R = {x R;x <0} doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 3/ 35
Inkluze a potenční množina Inkluze( býtpodmnožinou ): A B Definice: A B df ( x) x A x B Vlastnosti: A,A A, (A B) (B C) (A C), (A=B) (A B) (B A),... Vlastnípodmnožina-A B (A B) (A B) Potenční množina P(A)- množina všech podmnožin množiny A Příklad: A={1,2,3} P(A)={,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}} Vlastnosti (A B) (P(A) P(B))?proč? doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 4/ 35
Operace s množinami Definice 1 doplněkmnožiny A(vuniversu U): A={x U; x / A} průnikmnožin AaB: A B= {x; x A x B} sjednocenímnožin AaB: A B= {x; x A x B} rozdílmnožin AaB: A B= {x; x A x B} kartézskýsoučinmnožin AaB: A B= {(a,b); a A b B} Uspořádanádvojice(a,b)alenenímnožinovýpojem-costím? doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 5/ 35
Program pro kartézský součin Postup: prokaždé a Aaprokaždé b Bpřidejdo A Bdvojici(a,b) Program v jazyce systému Mathematica(iterační verze): cartprod[a_, B_]:= Module[ {C}, (* na kumulaci vysledku *) C = {}; (* init prazdnym seznamem *) Do[ Do[ C = Prepend[C, {a, b}], a, A], (* a se bere z A *) b, B]; (* b se bere z B *) C] (* vysledna hodnota *) Nyní ale přepneme na funkcionální programování! doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 6/ 35
Kartézský součin funkcionálně Funkcionální verze programu používá následující struktury a standardní fukce: List[a,b,...]={a,b,...} -vytvoříseznamobsahujícíprvky a,b,... F unction[arg, body] - představuje funkci parametru arg s tělem body Map[f,s] -aplikujefunkci fnaprvkyseznamu s Apply[f,args]=f[args] -aplikujefunkci fnaargumenty args Join[a,b,...] -spojíseznamy a,b,... dojednoho cartp[a_, B_]:= Apply[Join, Map[Function[a, Map[Function[b,{a,b}], B]], A]] Otázka: Nebylo by jednodušší udělat Join[Map[Function[a, Map[Function[b, \{a,b\}], B]], A]]?? doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 7/ 35
Generujeme potenční množinu Jak získáme potenční množinu konečné množiny A? je-li Aprázdná,pak P(A)={ } je-li Aneprázdná,vezmemelibovolnýprvek a A apotom pro B= A {a}vytvořímepotenčnímnožinu P(B) prokaždé X P(B)(tj. X B)vytvořímepodmnožinu X {a} apřidámekp(b),jinýmislovy P(A) = P(A {a}) {X {a}; X P(A {a})} powerset[{}]:= {{}} (* vysledek pro emptyset *) powerset[x_]:= pshelper[first[x], powerset[rest[x]]] (* pomocná funkce, která provede hlavní operace *) pshelper[a_,p_]:= Union[p, Map[Function[x, Prepend[x,a]], p]] doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 8/ 35
Pro hloubavé Úloha Navrhněte vlastní algoritmy pro operace sjednocení, průniku, rozdílu množin. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 9/ 35
Vlastnosti operací Věta2 Zákony komutativnosti A B= B A Zákony asociativnosti A (B C)=(A B) C A (B C)=(A B) C Zákony distributivnosti A (B C)=(A B) (A C) A (B C)=(A B) (A C) Zákony jednotky A = A=A Zákony nuly A U= U A=U A B= B A A U= U A=A A = A= doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 10/ 35
Vlastnosti operací Věta3 Zákony doplňku Zákon involuce A A=A A=U A A=A A= (A)=A Zákony idempotence A A=A A A=A Zákony absorpce A (A B)=A A (A B)=A De Morganovy zákony A (B C)=(A B) (A C) A (B C)=(A B) (A C) vtradičnípodobě(pro A=U): B C= B C B C= B C doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 11/ 35
Zobecnění operací na více argumentů Definice 4 Nechť A 1,A 2,...,A n jsoumnožinyvestejnémuniversu U. n k=1 A k= {x U; k {1,2,...,n}:x A k } n k=1 A k= {x U; k {1,2,...,n}:x A k } A 1 A 2... A n = = {(a 1,a 2,...,a n ); a 1 A 1 a 2 A 2... a n A n } Pokud A i = Aprovšechna i,pakznačíme A A... A=A n doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 12/ 35
Jiná možnost definice zobecnění Definice 5 n k=1 A k je-li n=1,pak n k=1 A k= A 1 je-li n >1,pak n k=1 A k=( n 1 k=1 A k) A n n k=1 A k je-li n=1,pak n k=1 A k= A 1 je-li n >1,pak n k=1 A k=( n 1 k=1 A k) A n A 1 A 2... A n je-li n=2,paksejednáo normální kartézskýsoučin A1 A 2 je-li n >2,pak A1... A n 1 A n =(A 1... A n 1 ) A n Jakou roli hraje v těchto variantách asociativnost definovaných operací? Vlastnosti zobecněných operací? doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 13/ 35
Programpro A 1 A n Jakvytvořímekartézskýsoučin A 1 A 2... A n? Použijeme velmi šikovnou funkcionální konstrukci- redukci: Fold[f,a 0,{a 1,a 2,...,a n }]=f(f(...f(f(a 0,a 1 ),a 2 ),...),a n ) např. Fold[f,0,{1, 2, 3}] = f[f[f[0,1],2],3] cartpn[s_]:= Fold[cartP, {{}}, s] cartpn[{{1,2}, {a, b, c}}] Out[]= {{{{}, 1}, a}, {{{}, 1}, b}, {{{}, 1}, c}, {{{}, 2}, a}, {{{}, 2}, b}, {{{}, 2}, c}} Toalenenípřesněto,cochceme... doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 14/ 35
Programpro A 1 A n -vylepšení Je zapotřebí provést malé doladění: odstranit vnitřní podseznamy zařídit proměnný počet argumentů funkce cartpn. Funkce Flatten stáhne všechny prvky víceúrovňového seznamu do jediné úrovně. cartpn[s_]:= Map[Flatten, Fold[cartP, {{}}, s]] cartpn[{{1, 2}, {a, b, c}}] Out[]={{1, a}, {1, b}, {1, c}, {2, a}, {2, b}, {2, c}} doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 15/ 35
Zobrazení Definice 6 Nechť A,B jsoumnožiny zobrazení f(z)množiny Adomnožiny B (píšeme f: A B): f (A B)taková,že a Aexistujenejvýšejedno b B tak,že (a,b) f(obvyklýzápis f(a)=b). D(f)={a A; (a,b) f} A jedefiničníoborzobrazení f R(f)={b B; (a,b) f} B jeoborhodnotzobrazení f zobrazení f: A Bjesurjektivní(na): R(f)=B zobrazení f: A Bjeinjektivní(prosté): ( x,y A)(x y f(x) f(y)) zobrazení f: A Bjebijektivní(vzájemnějednoznačné): fje injektivní a na doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 16/ 35
Zobrazení Definice 7 proparciálnízobrazení f: A Bplatí D(f) A prototálnízobrazení f: A Bplatí D(f)=A(předpokládáme) restrikce(zúžení)zobrazení f: A Bnamnožinu M Aje f M : M Btakové,že f M (a)=f(a)prokaždé a M obrazmnožiny M Avzobrazení f: A Bje f[m]={f(a); a M} vzormnožiny N Bvzobrazení f: A Bje f 1 [N]={a A; f(a) N} Otázka: Jaké budou počty různých typů zobrazení na konečných množinách? doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 17/ 35
Jak programujeme zobrazení Jak můžeme v našem funkcionálním prostředí reprezentovat zobrazení? Intenzionálně- pomocí definice funkce Extenzionálně- jako množinu uspořádaných dvojic, tedy jako seznam dvouprvkových seznamů Předpokládáme extenzionální reprezentaci zobrazení na konečných množinách a sestavíme několik jednoduchých algoritmů. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 18/ 35
Test a hodnota zobrazení FunkceisMapzjistí,zdaprokaždé a D(f)existujenejvýšejedna dvojice(a,b) f,avkladnémpřípaděvrátíjakovýsledekdefiniční obor D(f)zobrazení f.vopačnémpřípaděvracíprázdnýseznam. Funkce funval vrací hodnotu zobrazení f pro argument a. ismap[f_] := ismaptest[f /. {a_, _} -> a]; (* prvni slozky *) ismaptest[l_] := If[Length[DeleteDuplicates[L]] == Length[L], L, {}] funval[{}, a_] := {}; funval[f_, a_] := If[ f[[1,1]] == a, f[[1,2]], funval[rest[f], a] ] doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 19/ 35
Pro hloubavé Úloha Vytvořte funkce isinjective[f] testující injektivnost zobrazení f, která v kladném případěvracíoborhodnot R(f)zobrazení f,jinaknil. mapset[f,m], která vytvoří obraz množiny M v zobrazení f invmapset[f,n], která vytvoří vzor množiny N v zobrazení f doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 20/ 35
Složení zobrazení Definice 8 Zobrazení f: A B a g: C D jsoushodná,právěkdyž (A=C) (B= D) ( a A)f(a)=g(a) Složení(f g) zobrazení f: A B a g: B C: (f g)(a)=g(f(a)) pro a A Poznámka:Obrácenákonvenceprosložení f a g je g f.vlastnosti složení zobrazení: (f g) h=f (g h) (f id B )=f, id A f= f OBRAZEK doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 21/ 35
Mocnina zobrazení Definice 9 Prozobrazení f: A A a n N sedefinuje n-támocninazobrazení f takto: f 0 = id A -identickézobrazení(identita)na A f 1 = f(zbytečnýpřípad) f n+1 = f n fpro n 1(resp. n 0) doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 22/ 35
Inverzní zobrazení Definice 10 Pro f: A Bnazvemezobrazení g: B Ainverznímkzobrazení f, jestliže f g= id A a g f= id B. Pokud takové zobrazení g existuje, tak řekneme, že f je invertibilní a jeho inverznízobrazeníznačíme f 1. Vlastnosti: je-li f: A Binvertibilní,pak f 1 (b)=a f(a)=b f 1 jetakéinvertibilníaplatí(f 1 ) 1 = f jsou-li f: A Ba g: B Cinvertibilní,paki(f g)jeinvertibilní aplatí (f g) 1 = g 1 f 1 f: A B jeinvertibilní,právěkdyž f jebijekce doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 23/ 35
Algoritmus složení zobrazení Vytvoříme několik funkcí realizujících operace se zobrazeními. Funkce compmap[f,g] realizuje složením zobrazení g a f. Funkce isrev[f] testuje reverzibilitu zobrazení a v kladném případě vrátíoborhodnot R(f). FunkceinvMap[f]vracíinverznízobrazení f 1 kzobrazení f. compmap[f_, g_] := Map[Function[x, {x, mapval[g, mapval[f, x]]}], ismap[f]] isrev[f_] := isrevtest[f /. {_, b_} -> b]; (* substituce *) isrevtest[l_] := If[Length[DeleteDuplicates[L]] == Length[L], L, {}] invmap[f_] := Map[Reverse,f] doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 24/ 35
Vlastnosti zobrazení Věta 11 Nechť f: A B a g: B C jsouzobrazení.potom jsou-li fa gprostázobrazení,takje f gprosté jsou-li fa gzobrazenína,takje f gna jsou-li fa gbijekce,takje f gbijekce. Věta 12 Nechť f: A BjezobrazeníaA,Bmajíkonečněmnohoprvků.Potom má-li Bvíceprvkůnež A,pak fnemůžebýtna má-li Avíceprvkůnež B,pak fnemůžebýtprosté pokud AaBnemajístejněprvků,pak fnemůžebýtbijekce je-li fbijekce,takmají AaBstejnýpočetprvků mají-li AaBstejnýpočetprvků,pakje fprostépravětehdy,kdyžje fna. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 25/ 35
Mohutnost množin Jak srovnávat množiny podle velikosti? Definice 13 Říkáme, že množiny A, B mají stejnou mohutnost(značeno A = B ),právěkdyžexistujebijekce Ana B. Mohutnost množiny A je menší nebo rovna mohutnosti množiny B, značeno A B, jestliže existuje prosté zobrazení A do B. Mohutnost A je striktně(ostře) menší než mohutnost B, značeno A < B,jestliže A B,aleneplatí A = B. značení A B vyjadřujepřípad,kdyneplatí A = B. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 26/ 35
Srovnávání mohutností Věta 14 Platí A = A a A A, jestliže B A,pak B A, jestliže A B a B C,pak A C, jestliže A B a B = C,pak A C, podobnějestliže A = B a B C,pak A C, jestliže A = B a B = C,pak A = C, (Cantor-Bernstein-Schroeder) jestliže A B a B A, pak A = B. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 27/ 35
Konečné a nekonečné množiny Definice 15 Množina A se nazývá konečná, jestliže A= (pakpíšeme A =0), neboexistujetakové m N,že A = {1,2,...,m} (pakpíšeme A =m). Jinak se množina nazývá nekonečná. Množina A se nazývá spočetná, jestliže má stejnou mohutnost jako množina N. Množina A se nazývá nespočetná, jestliže je nekonečná, ale není spočetná. Věta 16 N je nejmenší nekonečná množina, přesně N A pro každou nekonečnou množinu A. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 28/ 35
Vlastnosti konečných množin Věta 17 Je-li Akonečná,pakjeikaždájejípodmnožina Bkonečnáaplatí B A. Je-linavíc Bpodmnožinavlastní,pak B < A. Jsou-li A,Bkonečnémnožiny,pakjeiA Bkonečnáaplatí A B A + B. Jsou-linavíc A,Bdisjunktní,pak A B = A + B. Jsou-li A,Bkonečnémnožiny,pakje A Bkonečnáaplatí A B = A B. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 29/ 35
Počítání s konečnými mohutnosti Věta 18 Nechťjsoumnožiny A i pro i=1,2,...,n konečné.potomplatí: n i=1 A ijekonečnámnožinaa n A i i=1 n A i. i=1 Jsou-linavíc A i navzájemdisjunktní,takje n A i = i=1 n A i. i=1 A 1 A n jekonečnámnožinaa A 1 A n = A 1 A n. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 30/ 35
Princip inkluse a exkluse Princip inkluse a exkluse Věta 19 Jsou-li A, B konečné množiny, pak A B = A + B A B Jsou-li A,B,Ckonečnémnožiny,pak A B C = A + B + C A B A C B C + A B C obecnéznění... doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 31/ 35
Mohutnost nekonečných množin Velikost nekonečných množin má(také) jiné vlastnosti než známe z množin konečných. Věta 20 Je-li A nekonečná množina, tak má vlastní podmnožinu se stejnou mohutností. Nechť A,Bjsoumnožiny, Bjenekonečnáa A B.Pak A B = B. Nechť A i pro i=1,...,mnebo i Njsoumnožiny,kde A 1 je nekonečná,anechť A i A 1 provšechna i,pak n i=1 A i = A 1. Nechť A,Bjsoumnožiny, Bjenekonečnáa A B,pak A B = B. Nechť A i pro i=1,...,mnebo i Njsoumnožiny,kde A 1 je nekonečná,anechť A i A 1 provšechna i.potomje A 1 A 2 = A 1. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 32/ 35
Spočetné a nespočetné množiny Některé základní spočetné množiny Věta 21 množina Z je spočetná množinan Njespočetná množinaz Zjespočetná Důkaz: f(n)=2npro n 0af(n)= 2n 1jebijekceZnaN další dva případy přes diagonální procházení kvadrantu Jak je to s dalšími číselnými množinami? množina racionálních čísel Q je spočetná množina reálných čísel z intervalu(0, 1) je nespočetná množina reálných čísel R je nespočetná doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 33/ 35
Spočetné a nespočetné množiny Věta 22 Jestližeje Akonečnámnožina,pak P(A) =2 A. (Cantor)Prokaždoumnožinu Aplatí A < P(A). Notace 23 Nechť A,Bjsoumnožiny.Symbolem B A značímemnožinuvšech zobrazenízado B. Věta 24 Nechť A,Bjsoukonečnémnožiny.Pak B A = B A. Nechť Ajemnožina.Pak P(A) = {0,1} A. doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 34/ 35
Pro hloubavé Úlohy Předpokládáme, že množiny A a B jsou konečné: Je-li A B, jak budemem generovat všechna prostá zobrazení f: A Bakolikjichje? Je-li A B, jak budeme generovat všechna surjektivní zobrazení f: A Bakolikjichje? doc. Josef Kolář (FIT ČVUT) Teorie množin- stručný přehled ZDM, ZS 2011/12, Lekce 2 35/ 35