forked from vagdur/Kombinatorik-1MA020
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlecture8.tex
378 lines (273 loc) · 27.2 KB
/
lecture8.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
\documentclass[nobib]{tufte-handout}
\title{Föreläsning 8: Grafer och träd $\cdot$ 1MA020}
\author[Vilhelm Agdur]{Vilhelm Agdur\thanks{\href{mailto:[email protected]}{\nolinkurl{[email protected]}}}}
\date{16 februari 2023}
%\geometry{showframe} % display margins for debugging page layout
\usepackage{graphicx} % allow embedded images
\setkeys{Gin}{width=\linewidth,totalheight=\textheight,keepaspectratio}
\graphicspath{{graphics/}} % set of paths to search for images
\usepackage{amsmath} % extended mathematics
\usepackage{booktabs} % book-quality tables
\usepackage{units} % non-stacked fractions and better unit spacing
\usepackage{multicol} % multiple column layout facilities
\usepackage{lipsum} % filler text
\usepackage{fancyvrb} % extended verbatim environments
\fvset{fontsize=\normalsize}% default font size for fancy-verbatim environments
\usepackage{color,soul} % Highlights for text
\include{mathcommands.extratex}
\floatname{algorithm}{Algoritm}
\begin{document}
\definecolor{darkgreen}{rgb}{0.0627, 0.4588, 0.1451}
\maketitle% this prints the handout title, author, and date
\begin{abstract}
\noindent
Vi introducerar grafer och träd, och bevisar att antalet rotade ordnade binära oetiketterade träd också räknas av Catalantalen. Vi bevisar också att samlingen av alla oetiketterade ordnade träd räknas av Catalantalen, fast på ett lite annat sätt.
Efter det bevisar vi Cayleys formel, som säger att det finns $n^{n-2}$ etiketterade träd på $n$ noder, på två olika sätt.
\end{abstract}
\section{Grafer och träd}
Vårt första ämne i denna föreläsning är grafer och träd, som kommer dyka upp igen och igen också i senare föreläsningar -- det är ju till och med den preliminära titeln på vår sista föreläsning. Vi börjar med att ge en samling definitioner av vad vi menar med dessa ord, och sedan börjar vi räkna hur många av olika typer av graf det finns i olika klasser.
\begin{definition}
En \emph{graf} består av en mängd $V$ av \emph{noder} och en mängd $E \subseteq \binom{V}{2}$ av kanter.\sidenote[][]{Med notationen $\binom{A}{k}$ där $A$ är en mängd och $k$ ett heltal menar vi \emph{mängden} av delmängder av storlek $k$ till $n$. Alltså har vi att
$$\abs{\binom{[n]}{k}} = \binom{n}{k}.$$} Om det finns en kant $\{u,v\}$ säger vi att $u$ och $v$ är \emph{grannar}. En graf är \emph{etiketterad} om noderna är särskiljbara, annars är den oetiketterad.
\sidenote[][]{Det här är precis samma koncept som med våra lådor som var särskiljbara eller inte. Antingen har noderna namn, så vi kan prata om nod nummer tre, eller så kan vi bara se vilka andra noder de har kanter till.}
Vi säger att en graf är \emph{sammanhängande} om det går att nå varje nod från varje annan nod genom att vandra längs kanterna. Ett sätt att vandra från en nod tillbaka till sig själv kallar vi för en \emph{cykel}.
\begin{figure}
\centering
\includegraphics[width=0.4\textwidth]{graphics/example_graph.png}
\caption[][2cm]{Ett exempel på en graf. Den är inte sammanhängande, eftersom de övre två noderna inte kan nås från de undre fem. Triangeln utgör en cykel, som är grafens enda.}
\end{figure}
\end{definition}
\begin{example}
Det finns $2^{\binom{n}{2}}$ stycken etiketterade grafer på $n$ noder, eftersom det finns $\binom{n}{2}$ möjliga kanter, och vi får en graf per val av vilka kanter som skall vara med.
Problemet med att räkna antalet oetiketterade grafer på $n$ noder är betydligt mer komplicerat. Den första idén man hade haft är kanske att det borde vara
$$\frac{2^{\binom{n}{2}}}{n!}$$
eftersom det borde finnas $n!$ olika sätt att sätta dit etiketterna. Problemet är att vissa grafer har symmetrier som gör att till synes olika sätt att skriva dit etiketter i själva verket ger samma etiketterade graf.
\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{graphics/counting_labelled_graphs.png}
\caption{Två till synes olika etiketteringar av samma graf, som i själva verket är samma etikettering på grund av grafens rotationssymmetri.}
\end{figure}
Som tur är visar det sig att nästan alla grafer inte har någon symmetri alls, så svaret är \emph{nästan} $\frac{2^{\binom{n}{2}}}{n!}$.\sidenote[][-1.5cm]{Det här påståendet låter kanske löst i kanten, men det är faktiskt helt rigoröst. I alla fall om man ersätter ``nästan'' med att skriva att antalet är
$$(1 + o(1))\frac{2^{\binom{n}{2}}}{n!}.$$}
\end{example}
\begin{definition}
\begin{marginfigure}
\centering
\includegraphics[width=0.6\textwidth]{graphics/example_tree.png}
\caption{Ett träd med sju noder och sex kanter.}
\end{marginfigure}
Ett \emph{träd} är en sammanhängande graf utan cykler. Ett \emph{rotat} träd är ett träd med en specifik nod utpekad som dess rot.\sidenote[][]{Så om trädet är oetiketterat kan vi alltså se vilken nod som är roten, men resten av noderna kan vi inte se skillnad på, bara vilka som hänger ihop med vilka med kanter.} I ett rotat träd har varje nod utom roten själv en granne som är närmre roten än sig\sidenote[][]{Eller är roten.}, vilken vi kallar dess \emph{förälder}. Alla dess andra grannar kallar vi dess \emph{barn}. En nod utan barn kallar vi för ett \emph{löv}, och en nod som inte är ett löv kallar vi för \emph{intern}.
Ifall det spelar roll i vilken ordning vi ritat noderna kallar vi trädet \emph{ordnat}, se Figur~\ref{fig:distinct_only_as_ordered}.
\begin{marginfigure}
\centering
\includegraphics[width=0.8\textwidth]{graphics/ordered_versus_unordered_trees.png}
\caption{Två träd som är olika varandra som ordnade träd, men samma träd som oordnade träd.}
\label{fig:distinct_only_as_ordered}
\end{marginfigure}
\end{definition}
\begin{definition}
Ett träd i vilket alla noder antingen har två eller noll barn kallas för ett \emph{binärt} träd.
\end{definition}
\section{Ännu fler saker som räknas av Catalantalen}
Låt oss nu återse en gammal vän, Catalantalen.
\begin{proposition}\label{prop:ROBUT_count}
Antalet rotade ordnade binära oetiketterade träd med $n$ stycken interna noder ges av Catalantalen.
\begin{proof}
Vi kan dela upp ett sådant träd i två mindre träd genom att helt enkelt ta bort roten, och låta dess två barn vara rötter i två mindre träd.
\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{graphics/RUBOTree_division.png}
\caption[][1.5cm]{Ett rotat ordnat binärt oetiketterat träd, med uppdelningen av det i två mindre träd av samma typ, ett rött och ett blått.}
\end{figure}
Alltså gäller det, om $t_n$ betecknar antalet sådana träd, att
$$t_{n+1} = \sum_{k=0}^{n} t_k t_{n-k},$$
eftersom vi kan skapa oss ett sådant träd med $n+1$ noder genom att först rita roten, och sedan fästa ett träd med $k$ interna noder till vänster och ett med $n-k$ interna noder till höger. Eftersom roten själv är intern har vi då $k + n - k + 1 = n + 1$ interna noder.
\end{proof}
\end{proposition}
I själva verket räknas också godtyckliga oetiketterade ordnade träd av Catalantalen, utan något krav på att de skall vara binära.
\begin{proposition}\label{prop:ROUT_count}
Antalet rotade ordnade oetiketterade träd på $n+1$ noder ges av Catalantalen.\sidenote[][]{Notera att vi här räknar \emph{alla} noder, inte bara de interna, som vi gjorde för de binära träden.}
\begin{proof}
Vi bevisar detta genom att uppvisa en bijektion med sätt att skriva $n$ matchande par av parenteser.
Så, givet ett rotat ordnat oetiketterat träd på $n+1$ noder, numrera dess löv från höger till vänster.
\begin{figure}
\centering
\includegraphics[width=0.6\textwidth]{graphics/rooted_ordered_general_tree_with_leaf_labels.png}
\caption{Ett rotat ordnat oetiketterat träd, med dess löv numrerade från vänster till höger.
I vår algoritm för att omvandla detta träd till en parentetisering blir uttrycket, innan vi ersatt talen med $()$,
$$((12)34)56((7)(8))9.$$}
\end{figure}
Skriv sedan upp talen $12\ldots k$ på rad, och skriv i parenteser på följande vis: För varje intern nod, förutom roten, skriv ett par parenteser runt alla de tal som motsvarar löv under noden. Ersätt sedan varje av talen med ett tomt par av parenteser, $()$. Detta ger en parentetisering med precis $n$ par av parenteser.
För att återhämta ett träd från en parentetisering, börja med att rita en nod för varje $()$. Sedan, för varje grupp av noder som ligger i samma par av parenteser, rita en gemensam förälder för dem. Till slut, rita dit roten, och koppla den till varje par av parenteser som inte har någon parentes runt sig.
\end{proof}
\end{proposition}
\section{Cayleys formel}
Vi har alltså lyckats räkna två specifika sorters träd. Kan vi räkna träd mer generellt?
\begin{theorem}
Det finns
$$n^{n-2}$$
stycken etiketterade träd med $n$ noder.
\end{theorem}
För att förstå detta resultat, låt oss börja med att räkna de första små fallen. Vi kollar på \emph{oetiketterade} träd, och räknar hur många sätt vi kan sätta etiketter på dem.
\begin{figure}
\centering
\includegraphics[width = \textwidth]{graphics/counting_tree_labellings.png}
\caption{Oetiketterade grafer med $n$ noder, för $n = 1,\ldots,5$, med antalet sätt att sätta etiketter på varje i blått.}
\end{figure}
Sätten vi får dessa antal är, per värde på $n$:
\begin{enumerate}
\item Att det bara finns ett sätt att skriva en etta på den enda noden är uppenbart.
\item Vi kan välja vilken permutation som helst av $[2]$ att skriva på noderna, men grafen har en speglingssymmetri, så att skriva etiketterna i motsatt ordning ger samma träd. Alltså $\frac{2!}{2}$.
\item Vi kan se vilken nod som är den mellersta, men vi kan inte se skillnad på de två yttre. Alltså är det enda val vi kan göra det av vilket tal vi skriver på den mellersta, vilket vi kan välja på tre sätt.
\item För den första av våra två oetiketterade grafer kan vi skriva vilken permutation av $[4]$ vi vill, men återigen har vi en speglingssymmetri, så att skriva den baklänges ger oss samma etikettering. Alltså $\frac{4!}{2}$.
För den andra är vi i samma situation som vi var i för $n=3$ -- vi kan se vilken nod det är som har mer än en granne, men vi kan inte se skillnad på de andra. Alltså är det enda valet vi har vilken etikett just den särskilda noden får, vilket vi kan göra på $4$ sätt.
\item Vi får $\frac{5!}{2}$ av samma speglingssymmetri-skäl som innan, och för den tredje av våra grafer får vi $5$ eftersom vi åter har en särskild nod och resten kan vi inte se skillnad på.
För den mellersta av våra tre oetiketterade träd kan vi se skillnad på de tre noderna i svansen till vänster, men de två som sticker ut åt höger kan vi inte se skillnad på. Så för att etikettera denna väljer vi två etiketter för de talen, vilket vi kan göra på $\binom{5}{2}$ sätt, och sedan är varje permutation av de återstående tre etiketterna faktiskt en distinkt etikettering, så vi kan välja $3!$ sätt att fullfölja vår etikettering. Så vi har totalt $\binom{5}{2}3!$ sätt att göra detta på.
\end{enumerate}
Så vi ser i alla fall att vår formel gäller för $n$ upp till fem. Vi väljer att ge två bevis för denna sats. Det första är av Prüfer, och ger en bijektion mellan etiketterade träd och en enklare mängd.
\begin{proof}[Prüfers bevis av Cayleys formel (1918)]
Vi vill visa på en bijektion mellan mängden av etiketterade träd på $n$ noder och mängden av ord av längd $n-2$ ur alfabetet $[n]$. Att den senare mängden har rätt antal element vet vi sedan innan, så om vi kan hitta en bijektion är vi klara.
Vi börjar med att berätta hur vi skapar vårt ord givet ett etiketterat träd.\sidenote[][-0.5cm]{Detta ord kallas för trädets \emph{Prüferkod}.} Vi letar upp det löv\sidenote[][]{Strikt sett har vi hittills bara definierat \emph{löv} för rotade träd -- och de träd vi studerar här har ju ingen rot-nod. Med ``löv'' menar vi här ``nod med bara en granne''.} som har lägst etikett, skriver dess etikett som första bokstav i vårt ord, och tar sedan bort noden ur trädet.
\begin{figure}
\centering
\includegraphics[width=0.75\textwidth]{graphics/prufer_code_tree_example.png}
\caption[][1.25cm]{Ett etiketterat träd med Prüferkod $33773$.}
\end{figure}
Vi upprepar denna process -- letar upp det löv i det resulterande trädet som har lägst etikett (och notera att vi, när vi tar bort ett löv, ibland kommer göra en nod som innan var intern till ett löv), skriver den etiketten på slutet av ordet, och tar bort lövet. Processen fortsätter tills vi bara har två noder kvar.
För att gå från en Prüferkod till en etiketterad graf använder vi följande algoritm, som konstruerar ett etiketterat träd givet en Prüferkod $a_1a_2\ldots a_{n-2}$.
\begin{algorithm}
\caption{Konstruktion av träd från Prüferkoder}\label{alg:constr_tree_from_prufer_code}
\begin{algorithmic}
\State Låt $G$ vara en graf med $n$ noder, med etiketter $1, 2, \ldots, n$, men utan kanter
\State $L_1 \gets (1, 2, \ldots, n)$
\State $A_1 \gets (a_1, a_2, \ldots, a_{n-2})$
\For{$t = 1, 2, \ldots$}
\If{$\abs{L_t} = 2$}
\State Rita en kant i $G$ mellan de två elementen i $L$
\State \textbf{stop}
\Else
\State Låt $l$ vara det minsta elementet i $L_t$ som inte är i $A_t$
\State Låt $a$ vara det första elementet i $A_t$
\State Rita en kant i $G$ mellan $l$ och $a$
\State $L_{t+1} \gets L_t \setminus \{l\}$
\State $A_{t+1} \gets (A_t(2), A_t(3), \ldots, A_t(\abs{A_t}))$
\EndIf
\EndFor\\
\Return $G$
\end{algorithmic}
\end{algorithm}
Det tar en stund att förstå vad den här algoritmen faktiskt gör\sidenote[][-1cm]{En fördel med föreläsningar över text är att man faktiskt kan genomföra algoritmen på ett konkret exempel, för att illustrera den, men en text måste så klart vara statisk. Sitter du hemma och läser föreslår jag att du prövar att göra algoritmen för hand på någon eller några Prüferkoder, för att få en känsla för vad som pågår.}, men efter en stunds kontemplation ser man att vad den gör är att den lägger till kanterna i precis den ordning som de försvann när vi skapade Prüferkoden.
\begin{figure}
\centering
\includegraphics[width=0.6\textwidth]{graphics/tree_from_prufer_code.png}
\caption{Ett träd skapat från Prüferkoden $565186$. I blått har vi markerat i vilket steg i algoritmen varje kant lades till -- lägg märke till att detta är precis ordningen i vilken de \emph{tas bort} om vi skapar Prüferkoden för detta trädet.}
\end{figure}
Den första kanten att ritas kommer gå mellan det första lövet att tas bort och dess granne, den andra går mellan andra lövet att tas bort och dess granne, och så vidare -- ända fram tills den sista kanten vi lägger till, som går mellan de två kvarvarande noderna när vi byggde Prüferkoden. Alltså kommer denna algoritmen precis att rekonstruera grafen vi började med, vilket bevisar att vi faktiskt har en bijektion, och satsen följer.
\end{proof}
\section{Ett alternativt bevis av Cayleys formel}
Det bevis vi just gav av Cayleys formel är visserligen elegant, men det är inte det enda beviset av denna sats. Det finns åtskilliga andra bevis -- inte bara med hjälp av bijektioner, utan också med rekursioner, och ett klassiskt bevis som använder determinanter och Kirchhoffs matris-träd-sats.
Beviset vi skall ge nu använder inga avancerade metoder alls, inte ens en bijektion, utan är bara ett helt vanligt ``räkna på två sätt''-bevis. I boken jag tog det från
\sidenote[][-1.5cm]{Beviset är av Jim Pitman, men boken är \emph{Proofs from the Book}. Den får detta namn från hur Erd\H{o}s brukade påstå att Gud hade en bok som innehöll alla de vackraste bevisen. (Kanske en väldigt infantil version av de medeltida teologernas idéer om matematiken som Guds ordning i Hans skapelseverk?)
Hela idén om ``boken'' är egentligen lite märklig, med tanke på att Erd\H{o}s var ateist -- om än av typen som är arg på Gud för Hans påstådda ickeexistens.
Själva boken (den jag tog beviset ur, alltså) är, för övrigt, inte så särskilt bra, i min mening. Den gör bevisen mer komplicerade än de behöver vara, och har ett lite udda urval. Herren har definitivt en bättre bok, även om allvetande kanske får anses som fusk när man letar efter bevis.}
beskrivs detta som ``det vackraste beviset av dem alla'', men personligen föredrar jag nog Prüfers bevis, som inte ens var med på deras lista.
För att kunna ge detta bevis behöver vi definiera några till koncept.
\begin{definition}
En \emph{riktad} graf är en graf där varje kant har en utpekad start- och slutnod. Vi tänker oss kanterna som pilar som pekar från start till slut.
Det finns ett uppenbart sätt att omvandla ett rotat träd till ett \emph{riktat} träd\sidenote[][0.4cm]{Alltså ett träd som har riktade kanter.} genom att ge varje kant den riktning som pekar bort från roten, och vice versa kan vi, för ett riktat träd med konsistenta riktningar på kanterna göra om det till ett rotat oriktat träd.
\end{definition}
\begin{definition}
En graf $H$ med noder $V_H$ och kanter $E_H$ är en \emph{delgraf} till en graf $G = (V_G, E_G)$ om $V_H\subseteq V_G$ och
$$E_H \subseteq \left\{\{u,v\} \in E_G: u, v \in V_H\right\}.$$
För att skapa oss en delgraf till $G$ tar vi alltså någon delmängd till dess noder, och tar sedan någon delmängd av kanterna mellan dessa noder.
Om graferna är riktade kräver vi att de skall ha samma riktning i $G$ som i $H$. Om de är etiketterade kräver vi att etiketterna skall matcha i $H$ och $G$.
\end{definition}
\begin{definition}
En \emph{skog} är en graf sådan att varje sammanhängande komponent är ett träd. Eller ekvivalent kan vi säga att det är en graf utan cykler.
En \emph{rotad} skog är en skog med ett val av rot för varje träd i skogen.
\end{definition}
\begin{proof}[Alternativt bevis av Cayleys sats]
Låt $\mathcal{F}_{n,k}$ beteckna mängden av rotade skogar med $n$ noder, som består av $k$ träd. Alltså är $\mathcal{F}_{n,1}$ antalet rotade träd -- om vi kan räkna dem är vi klara, eftersom vi vet att det finns precis $n$ val av rot, så $\frac{\abs{F_{n,1}}}{n}$ är talet vi söker.
Vi säger att en skog $F'$ \emph{ligger i} en annan skog $F$ om $F'$ är en delgraf till $F$ när vi betraktar dem som riktade träd.\sidenote[][-0.3cm]{Vi har ju inte definierat vad vi menar med att ett \emph{rotat} träd skulle vara en delgraf till ett annat. För att vara tydliga betyder detta att vi \emph{inte} kräver att roten till ett träd i $F'$ också är rot till det större träd det ligger i i $F$.}
\begin{figure}
\centering
\includegraphics[width=0.95\textwidth]{graphics/rooted_forest_subforest.png}
\caption[][1.2cm]{Två rotade skogar $F_2$ och $F_3$, betraktade som riktade träd. Notera att $F_3$ ligger i $F_2$.}
\label{fig:two_rooted_forests}
\end{figure}
Nyckelidén i vårt bevis är \emph{klyvande följder} av rotade skogar. Vi säger att en följd $F_1, F_2,\ldots, F_k$ av rotade skogar på $n$ noder är \emph{klyvande} om varje $F_i$ består av $i$ stycken träd, och $F_{i}$ innehåller $F_{i+1}$ för varje $i$.
Vad som händer i den här definitionen är alltså att vi börjar med ett träd $F_1$, sedan klyver vi detta träd i två genom att ta bort en kant och får skogen $F_2$, och sedan klyver vi ett av träden i $F_2$ genom att ta bort ytterligare en kant och får skogen $F_3$ på tre träd, och så vidare.
Låt nu $F_k \in \mathcal{F}_{n,k}$ vara en fix skog, och beteckna
\begin{itemize}
\item antalet rotade \emph{träd} som innehåller $F_k$ med $N(F_k)$, och
\item antalet klyvande följder som slutar med $F_k$ med $N^*(F_k)$.
\end{itemize}
Notera nu att om vi tar $k = n$ finns det bara ett val för $F_k$, nämligen skogen av $n$ stycken träd, där varje träd bara är en enda nod -- och \emph{varje} rotat träd på $n$ noder innehåller denna skog. Alltså är $N(F_n)$ helt enkelt antalet rotade träd, vilket ju är vad vi vill räkna.
Så om vi kan hitta en formel för $N(F_k)$ är vi klara. Vi gör detta genom att räkna $N^*(F_k)$ på två olika sätt. Först går vi från $F_k$ till $F_1$, och sedan i motsatt riktning.
Givet ett $F_k$, hur många val har vi av av $F_{k-1}$? Eftersom $F_{k-1}$ ska ha ett träd färre, måste vi foga ihop två träd med en kant. Den här kanten kan utgå från vilken nod som helst, och skall träffa en av de $k-1$ rötterna till andra träd än det träd noden själv är i.\sidenote[][]{Den måste träffa en rot för att riktningen på kanterna skall förbli konsekvent -- om den träffade en ickerot hade vi fått en nod som är slutnod för två kanter, och alltså har två föräldrar, vilket vi inte tillåter.} I Figur~\ref{fig:two_rooted_forests} kan vi till exempel få $F_2$ från $F_3$ genom att rita dit en kant från $3$ till $7$, som är roten för sitt träd.
Vi kan alltså välja $F_{k-1}$ givet $F_k$ på $n(k-1)$ sätt. Precis samma argument ger att vi kan välja $F_{k-2}$ givet $F_{k-1}$ på $n(k-2)$ sätt, och så vidare. Så totalt kan vi välja vår följd $F_k, F_{k-1}, \ldots, F_1$ på
$$N^*(F_k) = n^{k-1}(k-1)!$$
sätt.
Så till den andra riktningen -- givet $F_k$ finns det, per definition, precis $N(F_k)$ val av $F_1$, eftersom $F_1$ skall vara något rotat träd som innehåller $F_k$. Vi ser enkelt att det är precis $k-1$ kanter som ligger i $F_1$ men inte i $F_k$ -- när vi räknade i motsatta riktningen är det dessa vi lade till.
Tar vi bort en av dessa kanter klyver vi $F_1$ och får en skog $F_2$, tar vi bort en till klyver vi ytterligare ett träd och får $F_3$, och så vidare -- och varje klyvande följd $F_1, F_2, \ldots, F_k$ med fixt $F_1$ och $F_k$ kan fås på detta vis.
Uppenbarligen är antalet sätt att välja en ordning att ta bort de $k-1$ kanterna i precis $(k-1)!$, så vad vi har visat är att
$$N^*(F_k) = N(F_k)(k-1)!$$
vilket tillsammans med vårt andra sätt att räkna $N^*(F_k)$ ger oss att
$$N(F_k) = n^{k-1}.$$
Vi observerade innan att $N(F_n)$ är lika med det totala antalet rotade träd, och eftersom det finns $n$ sätt att välja roten till ett träd är talet vi letar efter alltså
$$\frac{N(F_n)}{n} = \frac{n^{n-1}}{n} = n^{n-2}$$
såsom önskat.
\end{proof}
\section{Övningar}
\begin{xca}
Bevisa att ett träd alltid har $\abs{E} = \abs{V} - 1$.
\end{xca}
\begin{xca}
Överväg följande skiss av ett oetiketterat träd med $1 + i + j + k$ noder:
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{graphics/exercise_label_unlabelled_tree.png}
\caption{Skiss av ett oetiketterat träd.}
\end{figure}
Hur många olika sätt finns det att sätta etiketter på detta träd?\sidenote[][-1.1cm]{Vi resonerade om detta för några små träd precis efter att vi introducerade Cayleys formel, men här har vi alltså ett mer generellt fall.} Ge en formel som gäller för alla $i, j, k = 0, 1, 2,\ldots$.\sidenote[][]{Finns det några specialfall för särskilda kombinationer av värden på $i$, $j$, och $k$?}
\end{xca}
\begin{xca}
Vi visade i Proposition~\ref{prop:ROBUT_count} att antalet rotade ordnade binära oetiketterade träd på $n-1$ interna noder ges av Catalantalen, och i Proposition~\ref{prop:ROUT_count} att antalet rotade ordnade oetiketterade träd på $n+1$ noder ges av Catalantalen. Alltså måste det specifikt finnas lika många av dessa två olika sorters träd.
Finn en explicit bijektion mellan dessa mängder av träd.\sidenote[][]{Om ni vill ha en ledtråd kan ni leta upp hur programspråket Lisp representerar träd.}
\end{xca}
\begin{xca}
Rita det etiketterade trädet som har Prüferkod $1273262$.
\end{xca}
\begin{xca}
\emph{En övning för dig som kan programmera.}\sidenote[][]{För inlämningsuppgiften i kursen är denna uppgift frivillig om ni inte har någon i er grupp som kan programmering. Om ni genomför den, vänligen använd inte Matlab, eftersom jag inte kan köra sådan kod. Mathematica är okej.} Implementera vår algoritm för att omvandla en Prüferkod till ett etiketterat träd i faktisk kod. Koden skall ge ett lämpligt grafobjekt som output, och en bild av grafen.\sidenote[][]{Skriver du i R, C/C++, eller Python kan jag föreslå \emph{igraph}-paketet för graf-datatypen och att rita dem. Mathematica har inbyggd funktionalitet för detta, så klart.}
Pröva din kod på några slumpmässigt valda Prüferkoder. Hur ser ett träd vanligtvis ut?
\end{xca}
\begin{xca}
Betrakta Figur~\ref{fig:five_graphs_for_exercise}, med fem olika riktade etiketterade grafer ritade. Vilka grafer är delgrafer till vilka?
\begin{figure}
\centering
\includegraphics[width=\textwidth]{graphics/five_graphs_for_exercise.png}
\caption{Fem olika riktade etiketterade grafer, $a$ till $e$.}
\label{fig:five_graphs_for_exercise}
\end{figure}
Föreställ er nu att vi glömmer bort riktningen på alla kanterna, så att graferna blir \emph{oriktade} etiketterade grafer. Hur förändras era svar?
Om vår glömska fortsätter, och vi glömmer också etiketterna, hur ändras era svar? I det här fallet kan vi till och med ha att en graf är en delgraf till en annan på flera olika sätt -- till exempel finns det nu två olika delgrafer till $b$ som bägge är $a$ (ta en av $b$s två noder), och $c$ har tre delgrafer som är $b$ (ta två av noderna och kanten mellan dem). Ange för varje par av grafer hur många olika sätt den ena är en delgraf till den andra, som oetiketterade grafer.
\end{xca}
\begin{xca}
För varje $n$ betecknar vi med $K_n$ den \emph{fullständiga grafen} på $n$ noder, vilken är grafen med $n$ noder med etiketter från $1$ till $n$ och varje möjlig kant närvarande. Så $K_n = \left([n],\binom{[n]}{2}\right)$, i formell notation.
För en graf $G$ säger vi att ett träd $H$ är ett \emph{uppspännande träd} för $G$ om
\begin{itemize}
\item $H$ är en delgraf till $G$,
\item $V_H = V_G$, så varje nod i $G$ är med i $H$,
\item och $H$ är ett träd.
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{graphics/spanning_tree_in_graph.png}
\caption{En graf $G$ med kanter i svart och blått. Tar vi enbart de blåa kanterna, och alla noder, får vi en delgraf $H$ som är ett uppspännande träd för $G$.}
\end{figure}
Hur många uppspännande träd finns det för $K_n$?\sidenote[][]{Ledtråd: Det här är en sak vi redan studerat, bara formulerad på ett annorlunda sätt. Fundera på vad det verkligen betyder att vara ett uppspännande träd för $K_n$.}
\end{xca}
%\bibliography{references}
%\bibliographystyle{plainnat}
\end{document}