Petr Hlinˇen´y, FI MU Brno, 2017 1 / 18 FI: IB000: Skl´ad´an´ı a Funkce
7 Skl´ ad´ an´ı relac´ı a funkc´ı 7 Skl´ ad´ an´ı relac´ı a funkc´ı
L´atku o relac´ıch zakonˇc´ıme poznatky o obracen´ı a skl´ad´an´ı relac´ı mezi sebou.
Kde jste se jiˇz intuitivnˇe setkali se skl´ad´an´ım funkc´ı – jak napˇr´ıklad spoˇc´ıt´ate na kalkulaˇcce v´ysledek sloˇzitˇejˇs´ıho vzorce? A jinde?✷Co tˇreba relaˇcn´ı datab´aze?
Struˇcn´y pˇrehled lekce Struˇcn´y pˇrehled lekce
* Inverze a skl´ad´an´ı relac´ı v obecn´em pojet´ı. Praktick´e pouˇzit´ı.
* Pˇrehled z´akladn´ıch vlastnost´ı funkc´ı.
* Skl´ad´an´ı funkc´ı (coby relac´ı), speci´alnˇe aplikov´ano na permutace.
Relace a funkce, zopakov´an´ı
• Relace mezi mnoˇzinami A1,· · · , Ak, pro k∈ N, je libovoln´a podmnoˇzina kart´ezsk´eho souˇcinu
R ⊆ A1× A2× · · · × Ak.
Pokud A1 = A2 = · · · = Ak = A, hovoˇr´ıme ok-´arn´ı relaciR na A. ✷
• (Tot´aln´ı) funkcez mnoˇzinyAdo mnoˇzinyB je relacef meziAaB takov´a, ˇze pro kaˇzd´ex∈ Aexistuje pr´avˇe jednoy ∈ B takov´e, ˇze(x, y) ∈ f.
✷
∗ MnoˇzinaAse naz´yv´adefiniˇcn´ı obora mnoˇzinaBobor hodnotfunkcef. Funkc´ım se tak´e ˇr´ık´azobrazen´ı.
∗ M´ısto(x, y) ∈ f p´ıˇseme obvykle f(x) = y. Z´apisf : A → B ˇr´ık´a, ˇzef je funkce s definiˇcn´ım oborem Aa oborem hodnotB.
Petr Hlinˇen´y, FI MU Brno, 2017 3 / 18 FI: IB000: Skl´ad´an´ı a Funkce
• Pokud naˇs´ı definici funkce uprav´ıme tak, ˇze poˇzadujeme pro kaˇzd´e x ∈ A nejv´yˇse jedno y ∈ B takov´e, ˇze (x, y) ∈ f, obdrˇz´ıme definici parci´aln´ı funkce zA doB.
✷
7.1 Inverze a skl´ad´an´ı relac´ı 7.1 Inverze a skl´ad´an´ı relac´ı
Ve v´ykladu se nyn´ı vr´at´ıme k obecn´emu pojet´ı relac´ı mezi dvˇema mnoˇzinami.
Definice: Necht’ R ⊆ A × B je bin´arn´ırelace mezi A a B. Inverzn´ı relace k relaci R se znaˇc´ıR−1 a je definov´ana takto:
R−1 = {(b, a) | (a, b) ∈ R}
R: s
s s
s s
A B
R−1: s s s
s s
A B
✷
R−1 je tedy relacemezi B a A.
Petr Hlinˇen´y, FI MU Brno, 2017 5 / 18 FI: IB000: Skl´ad´an´ı a Funkce
Definice skl´ad´an´ı
Definice 7.1. Sloˇzen´ı (kompozice) relac´ıR aS.
Necht’ R ⊆ A × B a S ⊆ B × C jsou bin´arn´ı relace. Sloˇzen´ı relac´ıR a S (v tomto poˇrad´ı!) je relace S◦ R ⊆ A × C definovan´a takto:✷
S◦ R = {(a, c) |existuje b∈ B takov´e, ˇze (a, b) ∈ R, (b, c) ∈ S}
R:
s s s
s s
s s s
s
A B C
:S S◦ R:
s s s
s s s
A C
✷
Sloˇzen´ı relac´ı ˇcteme
”R sloˇzeno s S“ nebo (pozor na poˇrad´ı!)
”S poR“.
Nˇekolik matematick´ych pˇr´ıklad˚u skl´ad´an´ı relac´ı n´asleduje zde.
• Je-li ∗ A= {a, b}, B = {1, 2}, C = {X, Y },
∗ R= {(a, 1), (b, 1), (b, 2)}, S= {(1, X)}, pak sloˇzen´ım vznikne relace
∗ S◦ R = {(a, X), (b, X)}. ✷
• Sloˇzen´ım funkc´ıh(x) = x2 af(x) = x + 1 na Rvznikne funkce (f ◦ h) (x) = f (h(x)) = x2+ 1.✷
• Sloˇzen´ım tˇechˇze funkc´ı
”naopak“ ale vznikne funkce (h ◦ f ) (x) = h(f (x)) = (x + 1)2.✷
Pozn´amka: Nepˇr´ıjemn´e je, ˇze v nˇekter´ych oblastech matematiky (napˇr´ıklad v algebˇre pˇri skl´ad´an´ı zobrazen´ı) se setk´ame s pr´avˇe opaˇcn´ym z´apisem skl´ad´an´ı, kdy se m´ısto S◦ Rp´ıˇseR· S nebo jenRS.
Petr Hlinˇen´y, FI MU Brno, 2017 7 / 18 FI: IB000: Skl´ad´an´ı a Funkce
Tvrzen´ı 7.2. Necht’R⊆ A × B aS ⊆ B × C jsou bin´arn´ı relace. Pak inverz´ı sloˇzen´e relace S◦ R je relace
R:
s s s
s s
s s s
s
A B C
:S
(S ◦ R)−1 =✷R−1◦ S−1.
7.2 Praktick´e pouˇzit´ı skl´ad´an´ı 7.2 Praktick´e pouˇzit´ı skl´ad´an´ı
Pˇr´ıklad 7.3. Skl´ad´an´ı v relaˇcn´ı datab´azi student˚u, jejich pˇredmˇet˚u a fakult.
Mˇejme dvˇe bin´arn´ı relace – jednuRpˇriˇr. student˚um MU k´ody jejich zapsan´ych pˇredmˇet˚u, druhou S pˇriˇr. k´ody pˇredmˇet˚u jejich mateˇrsk´ym fakult´am.
R:
student (uˇco) pˇredmˇet (k´od)
121334 MA010
133935 M4135
133935 IA102
155878 M1050
155878 IB000
S:
pˇredmˇet (k´od) fakulta MU
MA010 FI
IB000 FI
IA102 FI
M1050 PˇrF
M4135 PˇrF
✷
Jak z tˇechto
”tabulkov´ych“ relac´ı zjist´ıme, kteˇr´ı studenti maj´ızapsan´e pˇredmˇety na kter´ych fakult´ach(tˇreba na FI)?✷
Jedn´a se jednoduˇse osloˇzen´ı relac´ıS◦ R. V naˇsem pˇr´ıkladˇe tˇreba:
S◦ R :
student (uˇco) fakulta MU
121334 FI
133935 FI
133935 PˇrF
155878 FI
155878 PˇrF ✷
Petr Hlinˇen´y, FI MU Brno, 2017 9 / 18 FI: IB000: Skl´ad´an´ı a Funkce
Zobecnˇen´e skl´ad´an´ı relac´ı
Definice: (skl´ad´an´ı relac´ı vyˇsˇs´ı arity): Mˇejme relaceT ⊆ K1× K2× · · · × Kk
a U ⊆ L1 × L2 × · · · × Lℓ, pˇriˇcemˇz pro nˇejak´e m <min(k, ℓ) plat´ı L1 = Kk−m+1, L2 = Kk−m+2, . . . , Lm = Kk. ✷Pak relaciT lze sloˇzit s relac´ıU na zvolen´ych m sloˇzk´achL1, . . . , Lm (
”pˇrekryt´ı“) spouˇzit´ım Definice 7.1takto:
• PoloˇzmeA= K1×· · ·×Kk−m, B = L1×· · ·×LmaC= Lm+1×· · ·×Lℓ.
• Pˇr´ısluˇsn´e relace pak jsou
∗ R= {(~a,~b) ∈ A × B | (a1, . . . ak−m, b1, . . . bm) ∈ T } a
∗ S = {(~b, ~c) ∈ B × C | (b1, . . . bm, cm+1, . . . cℓ) ∈ U }.✷
• Nakonec pˇrirozenˇe poloˇzmeU ◦mT ≃ S ◦ R, takˇze vyjde U◦mT =
(~a, ~c) | ex. ~b ∈ B, ˇze (a1, . . . ak−m, b1, . . . bm) ∈ T a (b1, . . . bm, cm+1, . . . cℓ) ∈ U .
Schematicky pro snadnˇejˇs´ı orientaci:
T ⊆ K1× · · · × Kk−m× Kk−m+1× · · · × Kk
U ⊆ L1 × · · · × Lm ×Lm+1× · · · × Lℓ
U◦mT ⊆ K1× · · · × Kk−m
| {z }
A
× | {z }
B
× Lm+1× · · · × Lℓ
| {z }
C
Pˇr´ıklad 7.4. Skl´ad´an´ı v relaˇcn´ı datab´azi pasaˇz´er˚u a let˚u u let. spoleˇcnost´ı.
Pod´ıvejme se na pˇr´ıklad hypotetick´e rezervace let˚u pro cestuj´ıc´ı, relace T. Jak zn´amo (tzv. codeshare), leteck´e spoleˇcnosti si mezi sebou
”dˇel´ı“ m´ısta v letadlech, takˇze r˚uzn´e lety (podle k´od˚u) jsou ve skuteˇcnosti realizov´any stejn´ym letadlem jedn´e ze spoleˇcnost´ı. To zase ukazuje relace U.
T:
pasaˇz´er datum let
Petr 5.11. OK535
Pavel 6.11. OK535
Jan 5.11. AF2378
Josef 5.11. DL5457 Alena 6.11. AF2378
U :
datum let letadlo
5.11. OK535 CSAˇ
5.11. AF2378 CSAˇ
5.11. DL5457 CSAˇ
6.11. OK535 AirFrance 6.11. AF2378 AirFrance
✷
Pt´ame-li se nyn´ı, setkaj´ı se Petr a Josef na palubˇe stejn´eho letadla? Pˇr´ıpadnˇe, ˇc´ı letadlo to bude? Odpovˇedi n´am d´a sloˇzen´ı relac´ıU◦2T, jak je pops´ano v´yˇse.
U◦2T :
pasaˇz´er letadlo
Petr CSAˇ
Josef CSAˇ
Pavel AirFrance
. . . . . .
✷
Petr Hlinˇen´y, FI MU Brno, 2017 11 / 18 FI: IB000: Skl´ad´an´ı a Funkce
7.3 Vlastnosti funkc´ı 7.3 Vlastnosti funkc´ı
Definice 7.5. Funkce (pˇr´ıpadnˇe parci´aln´ı funkce)f : A → B je
• injektivn´ı(nebo tak´eprost´a) pr´avˇe kdyˇz pro kaˇzd´ex, y ∈ A, x 6= y plat´ı f(x) 6= f (y);
s s
s s
X
✷
• surjektivn´ı(nebo tak´e
”na“) pr´avˇe kdyˇz pro kaˇzd´e y∈ B existujex ∈ A takov´e, ˇzef(x) = y;
s s
s s
X
✷• bijektivn´ı(vz´aj.jednoznaˇcn´a) pr´avˇe kdyˇz je injektivn´ı asouˇc. surjektivn´ı.✷
s s
s s
s s
N´asleduj´ı jednoduch´e uk´azky vlastnost´ı funkc´ı.
• Funkce plus:N×N→Nje surjektivn´ı, ale nen´ı prost´a.✷
• Funkce g:Z→Ndan´a pˇredpisem
g(x) = −2x − 1 jestliˇze x < 0,
2x jinak
je bijektivn´ı.✷
• Funkce ∅ : ∅ → ∅je bijektivn´ı.✷
• Funkce ∅ : ∅ → {a, b}je injektivn´ı, ale nen´ı surjektivn´ı.✷
Pˇr´ıklad 7.6. Dok´azali byste nal´ezt jednoduˇse (tj.
”hezky“) vypoˇcitatelnou bi- jektivn´ı funkci N→N×N?✷
✷
Pˇr´ıklad 7.7.Pro jak´e hodnoty parametr˚ua, bje funkcef(x) = ax3+3x2+bx+1 z RdoRinjektivn´ı ˇci surjektivn´ı?
✷
Petr Hlinˇen´y, FI MU Brno, 2017 13 / 18 FI: IB000: Skl´ad´an´ı a Funkce
Inverze funkce
Inverze funkce je d´ana definic´ı inverze relace z Odd´ılu 7.1.
Pˇr´ıklady inverz´ı pro bˇeˇzn´e funkce:
• Inverz´ıbijektivn´ıfunkce f(x) = x + 1na Zje funkce f−1(x) = x − 1.✷
• Inverz´ıprost´e funkcef(x) = ex na Rjeparci´aln´ıfunkce f−1(x) = ln x.✷
• Funkceg(x) = x mod 3nen´ı prost´anaN, a proto jej´ı inverz´ı je
”jen“relace g−1= {(a, b) | a = b mod 3}.
Konkr´etnˇe g−1={(0,0),(0,3),(0,6), . . . ,(1,1),(1,4), . . . ,(2,2),(2,5), . . .}.✷
Tvrzen´ı 7.8. Mˇejme funkcif : A → B. Pak jej´ı inverzn´ı relacef−1 je a) parci´aln´ı funkcepr´avˇe kdyˇzf je prost´a, ✷
b) funkce pr´avˇe kdyˇzf je bijektivn´ı. ✷
Tvrzen´ı 7.9. Je-li inverzn´ı relacef−1funkcef takt´eˇz parci´aln´ı funkc´ı, tak plat´ı f−1(f (x)) = xpro vˇsechna x z definiˇcn´ıho oboru.
7.4 Skl´ad´an´ı funkc´ı, permutace 7.4 Skl´ad´an´ı funkc´ı, permutace
Fakt: Mˇejme funkce (zobrazen´ı) f : A → B ag : B → C. Pak jejichsloˇzen´ım coby relac´ı v tomto poˇrad´ı vznikne zobrazen´ı(g ◦ f ) : A → C definovan´e
(g ◦ f )(x) := g(f (x)) .✷
• Jak napˇr´ıklad na bˇeˇzn´e kalkulaˇcce vypoˇcteme hodnotu funkcesin2x?✷
Sloˇz´ıme (v tomto poˇrad´ı)
”element´arn´ı“ funkcef(x) = sin xag(x) = x2.✷
• Jak bychom na
”element´arn´ı“ funkce rozloˇzili aritmetick´y v´yraz 2 log(x2+ 1)?✷
Ve spr´avn´em poˇrad´ı sloˇz´ıme funkce f1(x) = x2, f2(x) = x + 1, f3(x) = log xa f4(x) = 2x.✷
• A jak bychom obdobnˇe vyj´adˇrili sloˇzen´ım funkc´ı aritmetick´y v´yraz sin x + cos x? Opˇet je odpovˇed’ pˇr´ımoˇcar´a, vezmeme
”element´arn´ı“ funkce g1(x) = sin x a g2(x) = cos x, a pak je
”sloˇz´ıme“ dalˇs´ı funkc´ıh(x, y) = x + y.✷
Vid´ıme vˇsak, ˇze takto pojat´e
”skl´ad´an´ı“ uˇz nezapad´a hladce do naˇseho zjednoduˇsen´eho formalismu skl´ad´an´ı relac´ı.
Petr Hlinˇen´y, FI MU Brno, 2017 15 / 18 FI: IB000: Skl´ad´an´ı a Funkce
Skl´ad´an´ı permutac´ı
Definice: Necht’ permutace π mnoˇziny {1, 2, . . . , n} je urˇcena seˇrazen´ım jej´ıch prvk˚u jako (p1, p2, . . . , pn). Pak π je z´aroveˇn bijektivn´ım zobrazen´ım {1, . . . , n} → {1, . . . , n} definovan´ym pˇredpisemπ(i) = pi.✷
Abychom postihli obˇe tyto podoby, budeme tak´e pouˇz´ıvat z´apis 1, 2, ..., n p1,p2...,pn
.✷
Fakt: Permutace lzeskl´adat jako relace (funkce) podle Definice 7.1.
Pozn´amka: Vˇsechny permutace mnoˇziny{1, 2, . . . , n} spolu s operac´ı skl´ad´an´ı tvoˇr´ı grupu, zvanou symetrick´a grupaSn.
Permutaˇcn´ı grupy (podgrupy symetrick´e grupy) jsou velice d˚uleˇzit´e v algebˇre, nebot’
kaˇzd´a koneˇcn´a grupa je vlastnˇe isomorfn´ı nˇekter´e permutaˇcn´ı grupˇe.✷
Pˇr´ıkladem permutace vyskytuj´ıc´ım se v program´atorsk´e praxi je tˇreba zobrazen´ı i7→ (i+1) mod n(“inkrement”).✷Casto se tˇreba lze setkat (aniˇz si to mnohdyˇ uvˇedomujeme) s permutacemi pˇri indexaci prvk˚u pol´ı. ✷
Tvrzen´ı 7.10. Mˇejme permutace π a σ mnoˇziny {1, 2, . . . , n}. Pak jejich sloˇzen´ıσ◦ π je opˇet permutac´ı mnoˇziny{1, 2, . . . , n}.
Cykly permutac´ı
V kontextu pohledu na funkce a jejich skl´ad´an´ı coby relac´ı si zavedeme jin´y, n´azornˇejˇs´ı, zp˚usob z´apisu permutac´ı – pomoc´ı jejichcykl˚u.
s s
s
s s
s s
s
.
.
1 5
6
2 3
4 8
7
✷
Definice: Necht’ π je permutace na mnoˇzinˇe A. Cyklem v π rozum´ıme posloupnost ha1, a2, . . . , aki r˚uzn´ych prvk˚u A takovou, ˇze π(ai) = ai+1 pro i= 1, 2, . . . , k − 1 aπ(ak) = a1.✷
• Jak n´azev napov´ıd´a, v z´apise cykluha1, a2, . . . , akinen´ı d˚uleˇzit´e, kter´ym prvkem zaˇcneme, ale jen dodrˇzen´ı cyklick´eho poˇrad´ı. Cyklus v permutaci m˚uˇze m´ıt i jen jeden prvek (zobrazen´y na sebe).
• Napˇr´ıklad permutace 1,2,3,4,5,6,7,8 5,3,4,8,6,1,7,2
je zakreslena sv´ymi cykly v´yˇse.
Petr Hlinˇen´y, FI MU Brno, 2017 17 / 18 FI: IB000: Skl´ad´an´ı a Funkce
Reprezentace permutac´ı jejich cykly
Vˇeta 7.11. Kaˇzdou permutaciπna koneˇcn´e mnoˇzinˇeAlze zapsat jako sloˇzen´ı cykl˚u na disjunktn´ıch podmnoˇzin´ach (rozkladu) A. ✷
D˚ukaz: Vezmeme libovoln´y prvek a1 ∈ A a iterujeme zobrazen´ıa2 = π(a1), a3 = π(a2), atd., aˇz se dostaneme
”zpˇet“ k ak+1 = π(ak) = a1. Proˇc tento proces skonˇc´ı? Protoˇze A je koneˇcn´a a tud´ıˇz ke zopakov´an´ı nˇekter´eho prvku ak+1 mus´ı doj´ıt. Nadto je π prost´a, a proto nem˚uˇze nastat π(ak) = aj pro j >1. Takto z´ısk´ame prvn´ı cyklus ha1, . . . , aki.✷
Induktivnˇe pokraˇcujeme s hled´an´ım dalˇs´ıch cykl˚u ve zbyl´e mnoˇzinˇe A′ = A\{a1, . . . , ak}, dokud nez˚ustane pr´azdn´a. V tomto indukˇcn´ım kroku si mus´ıme uvˇedomit, ˇze π omezen´e na nosnou mnoˇzinu A′ je st´ale permutac´ı podle
definice. ✷ ✷
Znaˇcen´ıpermutace jej´ımi cykly: Necht’ se permutaceπ podle Vˇety 7.11 skl´ad´a z cykl˚u ha1, . . . , aki,hb1, . . . , bli aˇz tˇreba hz1, . . . , zmi. Pak zap´ıˇseme
π = ha1, . . . , aki hb1, . . . , bli . . . hz1, . . . , zmi .
Pˇr´ıklad 7.12. Uk´azka skl´ad´an´ı permutac´ı dan´ych sv´ymi cykly.
Vezmˇeme 7-prvkovou permutaci π = (3, 4, 5, 6, 7, 1, 2), rozˇs´ıˇrenˇe zapsanou s pom˚uckou jako 1,2,3,4,5,6,7
3,4,5,6,7,1,2
. Ta se skl´ad´a z jedin´eho cykluh1, 3, 5, 7, 2, 4, 6i.
Jin´a permutace σ = (5, 3, 4, 2, 6, 1, 7), neboli 1,2,3,4,5,6,7 5,3,4,2,6,1,7
, se rozkl´ad´a na tˇri cykly h1, 5, 6i,h2, 3, 4i a h7i.✷
Nyn´ı urˇc´ıme sloˇzen´ı σ ◦ π tˇechto dvou permutac´ı (uˇz pˇr´ımo v z´apisu cykly):
h1, 5, 6ih2, 3, 4ih7i ◦ h1, 3, 5, 7, 2, 4, 6i = h1, 4ih2ih3, 6, 5, 7i
(Nezapom´ınejme, ˇze prvn´ı se ve sloˇzen´ı aplikuje prav´a permutace!)✷
Postup skl´ad´an´ı jsme pouˇzili n´asledovn´y:
∗ 1 se zobraz´ı v permutaci vpravo na 3a pak vlevo na 4.✷
∗ N´aslednˇe4se zobraz´ı na6a pak na1. T´ım
”uzavˇreme“ prvn´ı cyklush1, 4i.✷
∗ D´ale se 2zobraz´ı na4 a pak hned zpˇet na2, tj. m´a samostatn´y cyklus. ✷
∗ Zbyl´y cyklus h3, 6, 5, 7iurˇc´ıme analogicky.
✷