PUUDE LOENDAMINE - Cs.ioc.ee
PUUDE LOENDAMINE - Cs.ioc.ee
PUUDE LOENDAMINE - Cs.ioc.ee
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
<strong>PUUDE</strong> <strong>LOENDAMINE</strong><br />
T<strong>ee</strong>ma 9<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Loengu kava<br />
1 Märgendatud ja märgendamata puud<br />
2 Puude esitamine arvuti mälus<br />
3 Prüferi kood<br />
4 Märgendamata puude loendamine<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendatud graaf<br />
Olgu M ⊆ N lõplik hulk. Märgendatud graaf märgendite hulgaga M<br />
on kolmik GM = (V ,E, µ), kus<br />
G = (V ,E) on graaf<br />
µ : V → M on bijektiivne kujutus.<br />
Märgendatud graaf märgendite hulgaga {2,4,5,6}<br />
2 4<br />
5<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
6
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
(Märgendamata) graafide isomorfism<br />
Graafid G ja H on isomorfsed (tähist. G ∼ = H), kui nende tipuhulkade<br />
vahel leidub selline bijektsioon<br />
f : V (G) → V (H),<br />
et tipud u ja v on naabrid graafis G parajasti siis, kui tipud f (u) ja f (v)<br />
on naabrid graafis H.<br />
Näide: isomorfsed graafid Näide: mitte-isomorfsed graafid<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendatud graafide isomorfism<br />
Märgendatud graafid GM = (V1,E1, µ1) ja HM = (V2,E2, µ2) on<br />
isomorfsed (tähist. GM ∼ = HM), kui leidub kujutus ϕ : V1 → V2, nii<br />
et<br />
ϕ on graafide G = (V1,E1) ja H = (V2,E2) isomorfism;<br />
iga v ∈ V1 korral µ1(v) = µ2(ϕ(v)).<br />
Näide: mitte-isomorfsed kolmetipulised märgendatud puud<br />
1 2 3 2 1 3 1 3 2<br />
Kui palju on neljatipulisi puid ja märgendatud puid (märgenditega<br />
{1,2,3,4})?<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Puude esitamine arvuti mälus<br />
A. Naabrusmaatriksina<br />
Näide (üldine m<strong>ee</strong>tod kõigi graafide jaoks)<br />
1<br />
4<br />
2<br />
3<br />
Näide: leida etteantud pikkusega t<strong>ee</strong>d<br />
1<br />
4<br />
2<br />
3<br />
⎛<br />
A 2 ⎜<br />
= ⎜<br />
⎝<br />
0 1 1 0<br />
1 0 1 1<br />
1 1 0 0<br />
0 1 0 0<br />
⎞⎛<br />
⎟⎜<br />
⎟⎜<br />
⎠⎝<br />
⎛<br />
⎜<br />
A = ⎜<br />
⎝<br />
0 1 1 0<br />
1 0 1 1<br />
1 1 0 0<br />
0 1 0 0<br />
0 1 1 0<br />
1 0 1 1<br />
1 1 0 0<br />
0 1 0 0<br />
⎞<br />
⎛<br />
⎟<br />
⎠ =<br />
⎜<br />
⎝<br />
⎞<br />
⎟<br />
⎠<br />
2 1 1 1<br />
1 3 1 0<br />
1 1 2 1<br />
1 0 1 1<br />
C = A · B ⇋ cij = ∑ aik bkj või cij = <br />
k<br />
<br />
aik ∧ bkj <br />
k<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
⎞<br />
⎟<br />
⎠
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Puude esitamine arvuti mälus<br />
A. Naabrusmaatriksina<br />
Näide (üldine m<strong>ee</strong>tod kõigi graafide jaoks)<br />
1<br />
4<br />
2<br />
3<br />
Näide: leida etteantud pikkusega t<strong>ee</strong>d<br />
1<br />
4<br />
2<br />
3<br />
⎛<br />
A 2 ⎜<br />
= ⎜<br />
⎝<br />
0 1 1 0<br />
1 0 1 1<br />
1 1 0 0<br />
0 1 0 0<br />
⎞⎛<br />
⎟⎜<br />
⎟⎜<br />
⎠⎝<br />
⎛<br />
⎜<br />
A = ⎜<br />
⎝<br />
0 1 1 0<br />
1 0 1 1<br />
1 1 0 0<br />
0 1 0 0<br />
0 1 1 0<br />
1 0 1 1<br />
1 1 0 0<br />
0 1 0 0<br />
⎞<br />
⎛<br />
⎟<br />
⎠ =<br />
⎜<br />
⎝<br />
⎞<br />
⎟<br />
⎠<br />
2 1 1 1<br />
1 3 1 0<br />
1 1 2 1<br />
1 0 1 1<br />
C = A · B ⇋ cij = ∑ aik bkj või cij = <br />
k<br />
<br />
aik ∧ bkj <br />
k<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
⎞<br />
⎟<br />
⎠
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Puude esitamine arvuti mälus<br />
B. Servade loendina<br />
Näide<br />
Vajadus mälu järele:<br />
2n log 2 n (servade loendi korral)<br />
7 8<br />
9<br />
3 0 2 6<br />
7 8 9 6 3 0 2 6 6<br />
9 9 2 2 0 2 4 1 5<br />
(n 2 − n)/2 (naabrusmaatriksi korral)<br />
4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
1<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Puude esitamine arvuti mälus<br />
C. Alluvussuhtena<br />
Näide<br />
Vajadus mälu järele: (n − 1)⌈log 2 n⌉<br />
7 8<br />
9<br />
3 0 2 6<br />
1 2 3 4 5 6 7 8 9<br />
6 0 0 2 6 2 9 9 2<br />
4<br />
ehk lihtsamalt<br />
6 0 0 2 6 2 9 9 2 <br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
1<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Puude esitamine arvuti mälus<br />
D. Prüferi koodina<br />
1 Panna kirja (analoogiliselt alluvussuhte esitusega) vähima positiivse märgendiga<br />
lehega intsidentne serv ning kustutada nii leht kui serv graafist;<br />
2 Korrata <strong>ee</strong>lmist punkti, kuni puu kõik servad on kustutatud;<br />
3 Kustutada puu esituse esimene rida (teine rida ongi puu Prüferi kood<br />
4 Kustutada ka koodi viimane element (kuna s<strong>ee</strong> on alati 0)<br />
Näide<br />
3 0 2 6<br />
Vahetulemus ehk Prüferi laiendatud kood:<br />
7 8<br />
9<br />
1 3 4 5 6 7 8 9 2<br />
6 0 2 6 2 9 9 2 0<br />
Puu esitus Prüferi koodina: 6 0 2 6 2 9 9 2 <br />
4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
1<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Formaalne definitsioon<br />
Definitsioon<br />
Olgu T = (V ,E, µ) märgendatud puu märgendite hulgaga M.<br />
Tema Prüferi kood P(T ) on märgendite järjend, mis rahuldab<br />
järgmisi tingimusi:<br />
Kui |V | = 2, siis P(T ) = [ ] (tühi järjend).<br />
Kui |V | > 2, siis P(T ) = µ(w) · P(T ′ ), kus<br />
w on vähima märgendiga lehe v ∈ V naabertipp;<br />
T ′ = (V \ {v},E \ {(v,w)}, µ| V \{v}) märgendatud puu<br />
märgendite hulgaga M \ {µ(v)}<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (1) c○P<strong>ee</strong>ter Laud<br />
Kood:<br />
6<br />
8<br />
2<br />
10<br />
11<br />
9<br />
1<br />
3<br />
7 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (2) c○P<strong>ee</strong>ter Laud<br />
Kood:<br />
6<br />
8<br />
2<br />
10<br />
11<br />
9<br />
1<br />
3<br />
7 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (3) c○P<strong>ee</strong>ter Laud<br />
Kood: 9<br />
6<br />
8<br />
2<br />
10<br />
11<br />
9<br />
1<br />
3<br />
7 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (4) c○P<strong>ee</strong>ter Laud<br />
Kood: 93<br />
6<br />
8<br />
2<br />
10<br />
11<br />
9<br />
3<br />
1 7 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (5) c○P<strong>ee</strong>ter Laud<br />
Kood: 933<br />
6<br />
8<br />
22<br />
10<br />
11<br />
9<br />
3<br />
11 7 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (6) c○P<strong>ee</strong>ter Laud<br />
Kood: 9332<br />
6<br />
8<br />
2<br />
10<br />
11<br />
9<br />
3<br />
1 7<br />
4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (7) c○P<strong>ee</strong>ter Laud<br />
Kood: 93323<br />
6<br />
8<br />
2<br />
10<br />
11<br />
9 3<br />
1 7<br />
4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (8) c○P<strong>ee</strong>ter Laud<br />
Kood: 933239<br />
6<br />
8<br />
2<br />
10<br />
11<br />
9<br />
3<br />
1 7<br />
4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (9) c○P<strong>ee</strong>ter Laud<br />
Kood: 9332392<br />
6<br />
8<br />
2<br />
10 10<br />
11<br />
99<br />
3<br />
11 77<br />
44<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (10) c○P<strong>ee</strong>ter Laud<br />
Kood: 93323929<br />
6<br />
88<br />
2<br />
10 10<br />
11<br />
9<br />
3<br />
11 77<br />
44<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (11) c○P<strong>ee</strong>ter Laud<br />
Kood: 933239292<br />
6<br />
8<br />
2<br />
10 10<br />
11<br />
9<br />
3<br />
11 77<br />
44<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
55
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: Prüferi koodi gener<strong>ee</strong>rimine (tulemus) c○P<strong>ee</strong>ter Laud<br />
Kood: 933239292<br />
6<br />
8<br />
2<br />
10<br />
11<br />
9<br />
1<br />
3<br />
7 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendite esinemine Prüferi koodis<br />
Lemma<br />
Märgendatud puu T = (V ,E, µ) tipu v ∈ V märgend µ(v) esineb koodis P(T ) täpselt<br />
deg(v) − 1 korda.<br />
Tõestus.<br />
Induktsioon üle tippude arvu.<br />
Baas. Olgu |V | = 2. Siis on kummagi tipu aste 1 ning kummagi tipu märgend esineb<br />
koodis P(T ) null korda.<br />
Samm. Olgu |V | = n ja P(T ) = [m1m2 ...mn−2]. Olgu u ∈ V vähima märgendiga leht<br />
puus T . Olgu w tema naabertipp. Olgu T ′ saadud puust T , tipu u <strong>ee</strong>maldamise<br />
tulemusena (tähistame T ′ = T − u).<br />
T ′ on (n − 1)-tipuline märgendatud puu märgendite hulgaga M \ {µ(u)}. Tema Prüferi<br />
kood on [m2 ...mn−2]. Induktsiooni <strong>ee</strong>lduse järgi esineb suvalise tipu v ∈ V \ {u}<br />
märgend selles koodis deg T ′(v) − 1 korda.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendite esinemine Prüferi koodis (2)<br />
Tõestuse jätk<br />
Olgu v ∈ V . Vaatame kolme varianti:<br />
v = u. Siis deg T (v) = 1. Märgend µ(u) ei esine koodis P(T ′ ) ning m1 = µ(w).<br />
S<strong>ee</strong>ga ei esine µ(u) koodis P(T ).<br />
v = w. Siis deg T (v) = deg T ′(v) + 1. Märgend µ(w) esneb koodis P(T ) üks kord<br />
rohkem kui koodis P(T ′ ), sest m1 = µ(w).<br />
v on mingi muu tipp. Siis deg T (v) = deg T ′(v). Ka v märgendi esinemiste arv<br />
koodides P(T ) ja P(T ′ ) on sama.<br />
m.o.t.t.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Prüferi koodi ühesus<br />
Teor<strong>ee</strong>m<br />
Olgu T1 = (V1,E1, µ1) ja T2 = (V2,E2, µ2) märgendatud puud märgendite hulgaga M.<br />
Kui P(T1) = P(T2), siis T1 ∼ = T2.<br />
Tõestus.<br />
Induktsioon üle tippude arvu.<br />
Baas. Olgu |V | = 2. Siis leidub ainult üks kahetipuline märgendatud puu märgendite<br />
hulgaga M = {m1,m2}: m1 m2<br />
Samm. Olgu |V | = n ja P(T1) = P(T2) = [m1m2 ...mn−2]. P(Ti ) analüüsimise<br />
tulemusena saab kindlaks teha puu Ti lehtede märgendid – <strong>ee</strong>lmise Lemma põhjal on<br />
n<strong>ee</strong>d märgendid, mis P(Ti )-s ei esine. S<strong>ee</strong>ga on puude T1 ja T2 lehtede märgendite<br />
hulgad võrdsed.<br />
Olgu m ∈ M vähim lehe märgend. Olgu v1 ∈ V1 ja v2 ∈ V2 sellised, et<br />
µ1(v1) = µ2(v2) = m. Olgu T ′ 1 = T1 − v1 ja T ′ 2 = T2 − v2. Vastavalt Prüferi koodi<br />
konstruktsioonile P(T ′ 1 ) = P(T ′ 2 ) = [m2 ...mn−2]. Induktsiooni <strong>ee</strong>lduse järgi T ′ 1 ∼ = T ′ 2 .<br />
Olgu ϕ : V1 \ {v1} → V2 \ {v2} nendevaheline isomorfism.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Prüferi koodi ühesus (2)<br />
Tõestuse jätk<br />
Näitame, et kui me täiendavalt defin<strong>ee</strong>rime ϕ(v1) = v2, siis on ϕ märgendatud puude<br />
T1 ja T2 vaheline isomorfism.<br />
ϕ jätab märgendid paika: µ(v1) = µ(v2).<br />
Tuleb v<strong>ee</strong>l näidata, et ϕ on puude T1 ja T2 vaheline isomorfism, selleks näitame,<br />
et u,u ′ ∈ V1 korral on u ja u ′ naabrid parajasti siis, kui ϕ(u) ja ϕ(u ′ ) on naabrid.<br />
Kui u = v1 ja u ′ = v1, siis järeldub viimane väide asjaolust, et ϕ on T ′ 1 ja T ′ 2 vaheline<br />
isomorfism.<br />
Olgu u = v1. Tipud v1 ja v2 on lehed. Olgu w1 ∈ V1 ja w2 ∈ V2 tippude v1 ja v2 ainsad<br />
naabrid. Vastavalt Prüferi koodi konstruktsioonile µ1(w1) = µ2(w2) = m1. Kuna ϕ on<br />
märgendatud puude T ′ 1 ja T ′ 2 vaheline isomorfism, siis ϕ(w1) = w2. S<strong>ee</strong>ga on u ′ tipu<br />
u = v1 naabertipp parajasti siis, kui ϕ(u ′ ) on tipu ϕ(u) = v2 naabertipp. m.o.t.t.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Prüferi koodi üldisus<br />
Teor<strong>ee</strong>m<br />
Olgu M ⊂ N, nii et n = |M| 2 ja M = [m1m2 ...mn−2], kus m1,...,mn−2 ∈ M. Siis<br />
leidub n-tipuline märgendatud puu T = (V ,E, µ) märgendite hulgaga M, nii et<br />
P(T ) = M .<br />
Tõestus.<br />
Induktsioon üle tippude arvu n.<br />
Baas. n = 2. SiisM = [ ]. Kui M = {m1,m2}, siis võtame T -ks puu m1<br />
Samm. Olgu m ∈ M vähim selline element, mis ei esine järjendis M . Olgu<br />
M ′ = M \ {m} ja M ′ = [m2 ...mn−2]. Vastavalt induktsiooni <strong>ee</strong>ldusele leidub<br />
märgendatud puu T ′ = (V ′ ,E ′ , µ ′ ) märgendite hulgaga M ′ , nii et P(T ′ ) = M ′<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
m2
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Prüferi koodi üldisus (2)<br />
Tõestuse jätk<br />
Olgu w ∈ V ′ selline, et µ ′ (w) = m1 ja<br />
V = V ′ {v}<br />
E = E ′ ∪ {(v,w)}<br />
µ = µ ′ [v ↦−→ m]<br />
ja olgu T = (V ,E, µ). Siis T on märgendatud puu märgendite hulgaga M.<br />
Leiame P(T ). Meil on tarvis leida vähima märgendiga leht puus T . Puu T lehtede<br />
märgendid on täpselt n<strong>ee</strong>d M-i elemendid, mis ei kuulu M -i. Vastavalt m-i<br />
definitsioonile on m vähim nende seas. S<strong>ee</strong>ga on vastavalt µ definitsioonile v vähima<br />
märgendiga leht puus T .<br />
Tipu v naabriks puus T on w, mille märgend on vastavalt tema definitsioonile m1.<br />
Eemaldades puust T tipu v saame puu T ′ märgenditega hulgast M ′<br />
S<strong>ee</strong>ga P(T ) = µ(w) · P(T ′ ) = [m1m2 ...mn−2] = M . m.o.t.t.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendatud puu konstru<strong>ee</strong>rimine Prüferi koodi järgi<br />
M<strong>ee</strong>tod tuleneb <strong>ee</strong>lmisest tõestusest.<br />
Olgu antud M = [m1m2 ...mn−2]<br />
1 Iga i ∈ {1,...,n − 2} jaoks leiame järjendile [mi ...mn−2] vastava vähima lehe<br />
märgendi li hulgast M \ {l1,...,li−1}, nii et s<strong>ee</strong> erineks elementidest mi ,...,mn−2.<br />
2 Loome kahetipulise märgendatud puu märgenditega hulgast M \ {l1,...,ln−2}.<br />
3 Iga i ∈ {1,...,n − 2} jaoks (kahanevalt):<br />
Lisame puule uue tipu, märgendame ta li-ga.<br />
Ühendame selle tipu tipuga, mis on märgendatud mi-ga.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine<br />
M = {1,2,...,10},<br />
kood 7 7 7 4 5 7 4 4 <br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (2)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (3)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (4)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (5)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (6)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (7)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (8)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (9)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (10)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
4<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (11)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
4<br />
9<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (12)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
7<br />
4<br />
9<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (13)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
5<br />
7<br />
4<br />
9<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (14)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
8<br />
5<br />
7<br />
4<br />
9<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (15)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
8<br />
5<br />
7<br />
4<br />
6<br />
9<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (16)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
8<br />
5<br />
7<br />
3<br />
4<br />
6<br />
9<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (17)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
8<br />
5<br />
7<br />
2<br />
3<br />
4<br />
6<br />
9<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Näide: puu gener<strong>ee</strong>rimine (18)<br />
M = {1,2,...,10},<br />
Vähima märgendiga leht: 1 2 3 6 8 5 7 9<br />
Kood: 7 7 7 4 5 7 4 4<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine<br />
8<br />
5<br />
1<br />
7<br />
2<br />
3<br />
4<br />
6<br />
9<br />
10
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendatud puude arv<br />
Teor<strong>ee</strong>m 8.3.2 (Cayley teor<strong>ee</strong>m)<br />
n-tipuliste märgendatud puude arv on n n−2 .<br />
Jäeldus Prüferi koodi kohta tõestatud teor<strong>ee</strong>midest.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendamata puud<br />
Teor<strong>ee</strong>m 8.5.1<br />
Märgendamata n-tipuliste puude arv Tn rahuldab võrratust<br />
n n−2<br />
n! Tn 4 n−1<br />
Alumine tõke tuleneb sellest, et iga n-tipulist puud saab erinevate märgenditega<br />
märgendada n! viisil:<br />
Ülemise tõkke saab tuletada juurega puude võimalike planaarkoodide arvust.<br />
n-tipulise juurega puu planaarkood on Dycki k<strong>ee</strong>l 2n-täheline sõna. Näiteks puu<br />
planaarkood on sõna 1111100100011011010000.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendamata puud<br />
Teor<strong>ee</strong>m 8.5.1<br />
Märgendamata n-tipuliste puude arv Tn rahuldab võrratust<br />
n n−2<br />
n! Tn 4 n−1<br />
Alumine tõke tuleneb sellest, et iga n-tipulist puud saab erinevate märgenditega<br />
märgendada n! viisil:<br />
Ülemise tõkke saab tuletada juurega puude võimalike planaarkoodide arvust.<br />
n-tipulise juurega puu planaarkood on Dycki k<strong>ee</strong>l 2n-täheline sõna. Näiteks puu<br />
planaarkood on sõna 1111100100011011010000.<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendamata puud<br />
Dycki k<strong>ee</strong>l 2n-täheliste sünade arv võrdub Catalani arvuga<br />
Cn = 1<br />
<br />
2n<br />
n + 1 n<br />
S<strong>ee</strong>ga võiks Teor<strong>ee</strong>mi 8.5.1 tingimuse anda ka täpsemalt:<br />
nn−2 n! Tn 1<br />
<br />
2n<br />
n + 1 n<br />
Kui n > 30, siis n n−2 on suurem kui n!2 n . S<strong>ee</strong>ga võib Teor<strong>ee</strong>mi 8.5.1 tingimuse<br />
anda paremini m<strong>ee</strong>lde jääval kujul:<br />
2 n Tn 4 n<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine
Märgendatud ja märgendamata puud<br />
Puude esitamine arvuti mälus<br />
Prüferi kood<br />
Märgendamata puude loendamine<br />
Märgendamata puude arv<br />
Teor<strong>ee</strong>m (Otter, 1948)<br />
Märgendamata puu tippude arvu n piiramatu kasvu korral kehtib<br />
tingimus:<br />
Cα<br />
lim<br />
n→∞<br />
nn−5/2 = 1,<br />
Tn<br />
kus C = 0,53495... ja α = 2.95576....<br />
Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Puude loendamine