Uppgifter i TDDC75: Diskreta strukturer Kapitel 8 Ordning och

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