Uppgifter i TDDC75: Diskreta strukturer Kapitel 8 Ordning och oändlighet Mikael Asplund 19 oktober 2016 Uppgifter 1. Avgör om följande relationer utgör partialordningar. Motivera varför eller varför inte. (a) < på de naturliga talen, N (b) ≤ på N (c) ≥ på N (d) R ⊆ A × A där A = {0, 1, . . . , 100}, R = {(i, j) ∈ A × A ∣ s(i) ≤ s(j)}, och s(i) är siffersumman för talet i (exempelvis s(13) = 1 + 3 = 4). (e) R ⊆ N × N där R = {(i, j) ∈ N × N ∣ 2i ≤ j} 2. Låt A = {A, B, C, D, E, F }. (a) Skapa en partialordning R ⊆ A × A. (b) Rita dess Hassediagram. (c) Avgör om R−1 är en partialordning. (d) Avgör om R2 är en partialordning. (e) Finns det någon relation S ⊂ R som också är en partialordning? (f) Finns det någon relation T sådan att R ⊂ T och T är en partialordning? 3. I objektorienterad programmering kan en klass ärva egenskaper av en annan klass. Som ett exempel kan vi tänka oss en klass Fordon. En barnklass (eller subklass) till Fordon är till exempel en Bil. En barnklass till bil är exempelvis en Elbil. Vi kan nu tänka oss en relation mellan klasser som vi kallas ärEnSorts, så att Elbil ärEnSorts Bil, och Bil ärEnSorts Fordon. Ta ställning till om relationen ärEnSorts bör definieras som en partialordning. 4. Avgör om följande relationer utgör ekvivalensrelationer. Motivera varför eller varför inte. (a) R ⊆ A × A där A = {0, 1, 2, 3} och R = {(0, 0), (0, 1), (1, 0), (1, 1), (2, 2), (2, 3), (3, 2), (3, 3)} (b) ⊆ på 2A för A = {0, 1, 2, 3}. 1 (c) ≡ på mängden av satslogiska formler. (d) R = {(i, j) ∈ N × N ∣ i + j = 0} (e) R = {(i, j) ∈ N × N ∣ ∣i − j∣ < 2} 5. För varje partition nedan, ange vilken ekvivalensrelation den genererar. (a) {{A, B}, {C}, {D}} (b) {{A, B, C}} (c) {{0}, {1}} 6. Betrakta relationen R ⊆ N × N som defineras enligt R = {(i, j) ∣ ∃n, m ∈ N[i − 3n = j − 3m]} (a) Visa att R är en ekvivalensrelation. (b) Karakterisera (beskriv) ekvivalensklasserna [0], [1], [2] 7. Låt E = {n ∈ N ∣ n/2 ∈ N} och visa att ∣N ∣ = ∣E∣ genom att skapa en bijektion f ∶ N → E. 8. Låt Σ vara ett alfabet och Σ∗ vara mängden av alla strängar över Σ. Visa att ∣Σ∗ ∣ = ∣N∣ genom att skapa en bijketion f ∶ Σ∗ → N i följande fall: (a) Σ = {a} (b) Σ = {a, b} (c) Σ = {a, b, c} (d) Σ = {a, b, . . . , z} 2 Lösningsförslag (med reservation för eventuella fel) 1. (a) < är inte en partialordning på N eftersom < inte är en reflexiv relation. Till exempel 2 ≮ 2 (b) ≤ är en partialordning på N. • ≤ är reflexiv eftersom för alla i ∈ N gäller att i ≤ i • ≤ är transitiv eftersom för alla i, j, k ∈ N gäller att i≤j∧j ≤k →i≤k • ≤ är anti-symmetrisk eftersom för alla i, j ∈ N gäller att i≤j∧j ≤i→i=j (c) ≥ är en partialordning på N av samma skäl som ovan (byt ut ≤ mot ≥) (d) R är inte en partialordning eftersom den inte är anti-symmetrisk. s(1) = s(10) vilket innebär att (1, 10) ∈ R och (10, 1) ∈ R, men 1 ≠ 10. (e) R är inte en partialordning eftersom den inte är reflexiv. 2 ⋅ 1 ≰ 1 så (1, 1) ∉ R 2. Låt A = {A, B, C, D, E, F }. (a) Exempel på en partialordning är det reflexiva och symmetriska höljet av {(A, B), (A, C), (B, D), (C, E), (D, F ), (E, F )}. F (b) D E B C A (c) Ja, detta gäller för alla partialordningar, ty om R är reflexiv är även R−1 reflexiv (trivialt), om R är transitiv så är även dess invers transitiv (god övning att visa detta), och om R är anti-symmetrisk så är dess invers också det. (d) Eftersom R är transitiv och reflexiv så gäller att R2 = R, alltså är R2 en partialordning. (e) Ja, vi kan till exempel ta bort (E, F ) från R och fortfarande ha en partialordning. I allmänhet går det att hitta en sådan relation S så länge R ≠ idA (f) Ja, vi kan till exempel lägga till (C, D) och fortfarande ha en partialordning. I allmänhet går det att hitta en sådan relation T så länge inte R är en totalordning. 3 3. Relationen ärEnSorts bör definieras som en partialordning. Vi går igenom egenskaperna en i taget: • Reflexivitet. Det är rimligt att säga att en klass A ärEnSorts A • Transitivitet. Om en klass A ärEnSorts B och B ärEnSorts C så är det också rimligt att A ärEnSorts C • Anti-symmetri. Om en klass A ärEnSorts B och B ärEnSorts A, är då A = B? Ja det är ett rimligt, men inte självklart. I vardagligt språk kan vi säga att “en gång är en sorts stig” och att en “stig är en sorts gång”, men gång är inte exakt samma sak som stig. För klasser vill vi dock ha en mer exakta definitioner. 4. (a) Ja, R är reflexiv, transitiv och symmetrisk. (b) Nej, ⊆ är inte symmetrisk: {0} ⊆ {0, 1} men {0, 1} ⊈ {0} (c) Ja. Vi konstaterar först att F1 ≡ F2 om sanningsvärdet för de två formlerna är samma för alla tolkningar (rader i sanningstabellen). • Reflexiv: F ≡ F eftersom F has samma sanningsvärde som sig själv. • Transitiv: Om F1 ≡ F2 och F2 ≡ F3 så har F1 , F2 och F3 samma sanningsvärde för alla tolkningar alltså måse F1 ≡ F3 • Symmetrisk: Om F1 ≡ F2 så gäller också F2 ≡ F1 enligt definitionen ≡ på mängden av satslogiska formler. (d) R innehåller endast ett element: (0, 0). Alltså är R inte reflexiv och därmed inte en ekvivalensrelation. (e) R är reflexiv och symmetrisk, men inte transitiv: (1, 2) ∈ R och (2, 3) ∈ R, men (1, 3) ∉ R, så R är inte en ekvivalensrelation. 5. (a) R = {(A, A), (A, B), (B, A), (B, B), (C, C), (D, D)} (b) {(A, A), (A, B), (A, C), (B, A), (B, B), (B, C), (C, A), (C, B), (C, C)} (c) {(0, 0), (1, 1)} 6. Betrakta relationen R ⊆ N × N som defineras enligt R = {(i, j) ∣ ∃n, m ∈ N[i − 3n = j − 3m]} (a) Vi behöver visa reflexivitet, transitivitet och symmetri: • Reflexiv: Låt i vara godtyckligt tal i N. Då finns det tal n och m nämligen n = m = 0 sådana att i−3n = i−3⋅0 = i = i−3⋅0 = i−3m. Alltså är (i, i) ∈ R. • Transitiv: Låt i, j, k vara godtyckliga tal i N sådana att (i, j) ∈ R och (j, k) ∈ R. Då finns det heltal n, m, n′ , m′ ∈ N sådana att i − 3n = j − 3m och j − 3n′ = k − 3m′ Vi kan skriva om dessa uttryck till i − 3n + 3m = j och j = k − 3m′ + 3n′ 4 Kombinerar vi dessa (eliminerar j) får vi: i − 3n + 3m = k − 3m′ + 3n′ Skriver om: i − 3(n + n′ ) = k − 3(m + m′ ) Eftersom n, m, m′ , m′ ∈ N är även (n + n′ ) ∈ N och (m + m′ ) ∈ N. Alltså är (i, k) ∈ R och R är därmed transitiv. • Symmetri: Om (i, j) ∈ R så finns n, m ∈ N at sådana att i − 3n = j − 3m vilket av definitionen ger att även (j, i) ∈ R (b) • [0] = {0, 3, 6, ...} = {n ∈ N ∣ ∃k ∈ N[3k = n]} • [1] = {1, 4, 7, ...} = {n ∈ N ∣ ∃k ∈ N[3k + 1 = n]} • [2] = {2, 5, 8, ...} = {n ∈ N ∣ ∃k ∈ N[3k + 2 = n]} 7. Vi konstaterat först att E innehåller alla jämna tal: E = {0, 2, 4, . . .}. Låt f (n) = 2n. Vi visar att f är en bijektion, genom att visa att f är injektiv och surjektiv: • Injektiv: om n ≠ m så gäller f (n) = 2n ≠ 2m = f (m). • Surjektiv: Låt n vara godtyckligt tal i E. Vi vet av definitionen av E att det då finns ett tal m = n/2 ∈ N. Men f (m) = 2m = 2(n/2) = n. Alltså är f surjektiv. 8. Låt Σ vara ett alfabet och Σ∗ vara mängden av alla strängar över Σ. Visa att ∣Σ∗ ∣ = ∣N∣ genom att skapa en bijketion f ∶ Σ∗ → N i följande fall: (a) Låt f (w) = ∣w∣, det vill säga längden av strängen w. Vi visar att f är injektiv och surjektiv (och därmed en bijektion): • Injektiv: Låt w, v ∈ Σ∗ och w ≠ v. Eftersom det endast finns en symbol i alfabetet och strängarna är olika måste ∣w∣ ≠ ∣v∣ alltså är också f (w) = ∣w∣ ≠ ∣v∣ = f (v). • Surjektiv: Låt n vara godtyckligt element i N. Vi skapar en sträng w ∈ Σ∗ av längden n (om n = 0 så är w = ). Då gäller att f (w) = ∣w∣ = n. (b) Vi måste nu ge plats för fler varianter av strängar som innehåller b. Vi kan åstadkomma detta genom att ordna alla strängar av en viss längd alfabetiskt enligt tabellen nedan. f (w) 0 1 2 3 4 5 6 7 ... w a b aa ab ba bb aaa ... 5 Att f är injektiv inses eftersom om två strängar v och w är olika så har de antingen olika längd, eller olika alfabetisk ordning. Att f är surjektiv kan inses genom att tabellen ovan räknar upp alla tal i N. Vi kan uttrycka detta formellt (men det är ok att inte hänga med på detta) som f (w) = 2n − 1 + on (w) där n = ∣w∣ och funktionen on ∶ Σn → {0, . . . , 2n − 1} anger ordningstalet för en sträng av längd n. Att f är injektiv kan inses eftersom om w ≠ v så är antingen strängarna av olika längd (och eftersom o(w) ≤ 2∣w∣ − 1 så gäller att ∣w∣ < ∣v∣ → f (w) < f (v)), eller så har w och v olika ordningstal. Surjektivitet visas genom att betrakta godtyckligt heltal m ∈ N, och låta k ∈ N vara det största tal sådant att 2k − 1 ≤ m. Sedan låta strängen w av längden k vara sådan att o(w) = m − (2k − 1). Då gäller att f (w) = 2k − 1 + ok (w) = m. (c) Vi kan göra på samma sätt som i b-uppgiften. Tabellen blir: f (w) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... w a b c aa ab ac ba bb bc ca cb cc aaa ... i Funktionen blir lite bökigare att utrycka: f (w) = ∑n−1 i=0 3 + on (w) där n = ∣w∣ (obs att ∑ i detta fallet betyder summering och inte ett alfabet) och funktionen on ∶ Σn → {0, . . . , 3n − 1} anger ordningstalet för en sträng av längden n. Surjektivtet och injektivitet visas på samma sätt som i b-uppgiften. (d) Till sist innehåller Σ = {a, b, . . . , z} 26 element så motsvarande funki tion blir: f (w) = ∑n−1 i=0 26 + on (w) där n = ∣w∣ och funktionen n n on ∶ Σ → {0, . . . , 26 −1} anger ordningstalet för en sträng av längden n. 6