Chapter 20 first version
This commit is contained in:
parent
c65bbed2f3
commit
51520519cf
155
luku20.tex
155
luku20.tex
|
@ -1025,7 +1025,7 @@ the minimum node cover.
|
||||||
|
|
||||||
The set of all nodes that do \emph{not}
|
The set of all nodes that do \emph{not}
|
||||||
belong to a minimum node cover
|
belong to a minimum node cover
|
||||||
is a \key{maximum independent set}.
|
forms a \key{maximum independent set}.
|
||||||
This is the largest possible set of nodes
|
This is the largest possible set of nodes
|
||||||
where there is no edge between any two nodes
|
where there is no edge between any two nodes
|
||||||
in the graph.
|
in the graph.
|
||||||
|
@ -1056,30 +1056,28 @@ set is as follows:
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\section{Polkupeitteet}
|
\section{Path covers}
|
||||||
|
|
||||||
\index{polkupeite@polkupeite}
|
\index{path cover}
|
||||||
|
|
||||||
\key{Polkupeite} on joukko verkon polkuja,
|
A \key{path cover} is a set of paths in a graph
|
||||||
jotka on valittu niin, että jokainen verkon solmu kuuluu
|
that is chosen so that each node in the graph
|
||||||
ainakin yhteen polkuun.
|
belongs to at least one path.
|
||||||
Osoittautuu, että voimme muodostaa
|
It turns out that we can reduce the problem
|
||||||
virtauslaskennan avulla
|
of finding a minimum path cover in a
|
||||||
pienimmän polkupeitteen suunnatussa,
|
directed, acyclic graph into a maximum flow problem.
|
||||||
syklittömässä verkossa.
|
|
||||||
|
|
||||||
Polkupeitteestä on kaksi muunnelmaa:
|
There are two variations for the problem:
|
||||||
\key{Solmuerillinen peite} on polkupeite,
|
In a \key{node-disjoint cover},
|
||||||
jossa jokainen verkon solmu esiintyy tasan yhdessä polussa.
|
every node appears in exactly one path,
|
||||||
\key{Yleinen peite} taas on polkupeite, jossa sama solmu voi
|
and in a \key{general cover},
|
||||||
esiintyä useammassa polussa.
|
a node may appear in more than one path.
|
||||||
Kummassakin tapauksessa pienin polkupeite löytyy
|
In both cases, the minimum path cover can be
|
||||||
samanlaisella idealla.
|
found using a similar idea.
|
||||||
|
|
||||||
\subsubsection{Solmuerillinen peite}
|
\subsubsection{Node-disjoint cover}
|
||||||
|
|
||||||
Tarkastellaan esimerkkinä seuraavaa verkkoa:
|
|
||||||
|
|
||||||
|
As an example, consider the following graph:
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tikzpicture}[scale=0.9]
|
\begin{tikzpicture}[scale=0.9]
|
||||||
\node[draw, circle] (1) at (0,0) {1};
|
\node[draw, circle] (1) at (0,0) {1};
|
||||||
|
@ -1099,9 +1097,9 @@ Tarkastellaan esimerkkinä seuraavaa verkkoa:
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
Tässä tapauksessa pienin solmuerillinen polkupeite
|
In this case, the minimum node-disjoint path cover
|
||||||
muodostuu kolmesta polusta.
|
consists of three paths.
|
||||||
Voimme valita polut esimerkiksi seuraavasti:
|
For example, we can choose the following paths:
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tikzpicture}[scale=0.9]
|
\begin{tikzpicture}[scale=0.9]
|
||||||
|
@ -1120,18 +1118,19 @@ Voimme valita polut esimerkiksi seuraavasti:
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
Huomaa, että yksi poluista sisältää vain solmun 2,
|
Note that one of the paths only contains node 2,
|
||||||
eli on sallittua, että polussa ei ole kaaria.
|
so it is possible that a path doesn't contain any edges.
|
||||||
|
|
||||||
Polkupeitteen etsiminen voidaan tulkita paritusongelmana
|
Finding a path cover can be interpreted as finding
|
||||||
verkossa, jossa jokaista alkuperäisen verkon solmua
|
a maximum matching in a graph where each node
|
||||||
vastaa kaksi solmua: vasen ja oikea solmu.
|
in the original graph is represented by two nodes:
|
||||||
Vasemmasta solmusta oikeaan solmuun on kaari,
|
a left node and a right node.
|
||||||
jos tällainen kaari esiintyy alkuperäisessä verkossa.
|
There is an edge from a left node to a right node,
|
||||||
Ideana on, että paritus määrittää, mitkä solmut
|
if there is such an edge in the original graph.
|
||||||
ovat yhteydessä toisiinsa poluissa.
|
The idea is that the matching determines which
|
||||||
|
edges belong to paths in the original graph.
|
||||||
|
|
||||||
Esimerkkiverkossa tilanne on seuraava:
|
The matching in the example case is as follows:
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tikzpicture}[scale=0.9]
|
\begin{tikzpicture}[scale=0.9]
|
||||||
|
@ -1185,24 +1184,25 @@ Esimerkkiverkossa tilanne on seuraava:
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
Tässä tapauksessa maksimiparitukseen kuuluu neljä kaarta,
|
In this case, the maximum matching consists of four edges
|
||||||
jotka vastaavat alkuperäisen verkon kaaria
|
that corresponds to edges
|
||||||
$1 \rightarrow 5$, $3 \rightarrow 4$,
|
$1 \rightarrow 5$, $3 \rightarrow 4$,
|
||||||
$5 \rightarrow 6$ ja $6 \rightarrow 7$.
|
$5 \rightarrow 6$ and $6 \rightarrow 7$ in the original graph.
|
||||||
Niinpä pienin solmuerillinen polkupeite syntyy muodostamalla
|
Thus, a minimum node-disjoint path cover consists of paths
|
||||||
polut kyseisten kaarten avulla.
|
that contain these edges.
|
||||||
|
|
||||||
Pienimmän polkupeitteen koko on $n-c$, jossa $n$ on verkon
|
The size of a minimum path cover is $n-c$ where
|
||||||
solmujen määrä ja $c$ on maksimiparituksen kaarten määrä.
|
$n$ is the number of nodes in the graph,
|
||||||
Esimerkiksi yllä olevassa verkossa pienimmän
|
and $c$ is the number of edges in the maximum matching.
|
||||||
polkupeitteen koko on $7-4=3$.
|
For example, in the above graph the size of the
|
||||||
|
minimum path cover is $7-4=3$.
|
||||||
|
|
||||||
\subsubsection{Yleinen peite}
|
\subsubsection{General cover}
|
||||||
|
|
||||||
Yleisessä polkupeitteessä sama solmu voi kuulua moneen polkuun,
|
In a general path cover, a node can belong to more than one path
|
||||||
minkä ansiosta tarvittava polkujen määrä saattaa olla pienempi.
|
which may decrease the number of paths needed.
|
||||||
Esimerkkiverkossa pienin yleinen polkupeite muodostuu
|
In the example graph, the minimum general path cover
|
||||||
kahdesta polusta seuraavasti:
|
consists of two paths as follows:
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tikzpicture}[scale=0.9]
|
\begin{tikzpicture}[scale=0.9]
|
||||||
|
@ -1223,19 +1223,19 @@ kahdesta polusta seuraavasti:
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
Tässä verkossä yleisessä polkupeitteessä on 2 polkua,
|
In this graph, a minimum general path cover contains 2 paths,
|
||||||
kun taas solmuerillisessä polkupeitteessä on 3 polkua.
|
while a minimum node-disjoint path cover contains 3 paths.
|
||||||
Erona on, että yleisessä polkupeitteessä solmua 6
|
The difference is that in the general path cover,
|
||||||
käytetään kahdessa polussa.
|
node 6 appears in two paths.
|
||||||
|
|
||||||
Yleisen polkupeitteen voi löytää lähes samalla
|
A minimum general path cover can be found
|
||||||
tavalla kuin solmuerillisen polkupeitteen.
|
almost like a minimum node-disjoint path cover.
|
||||||
Riittää täydentää maksimiparituksen verkkoa niin,
|
It suffices to extend the matching graph
|
||||||
että siinä on kaari $a \rightarrow b$ aina silloin,
|
so that there is an edge $a \rightarrow b$
|
||||||
kun alkuperäisessä verkossa solmusta $a$ pääsee
|
always when there is a path from node $a$ to node $b$
|
||||||
solmuun $b$ (mahdollisesti usean kaaren kautta).
|
in the original graph (possibly through several edges).
|
||||||
|
|
||||||
Nyt esimerkkiverkossa on seuraava tilanne:
|
The matching graph for the example case looks as follows:
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tikzpicture}[scale=0.9]
|
\begin{tikzpicture}[scale=0.9]
|
||||||
\node[draw, circle] (1a) at (0,6) {1};
|
\node[draw, circle] (1a) at (0,6) {1};
|
||||||
|
@ -1320,23 +1320,22 @@ Nyt esimerkkiverkossa on seuraava tilanne:
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
|
\subsubsection{Dilworth's theorem}
|
||||||
|
|
||||||
\subsubsection{Dilworthin lause}
|
\index{Dilworth's theorem}
|
||||||
|
\index{antichain}
|
||||||
|
|
||||||
\index{Dilworthin lause@Dilworthin lause}
|
\key{Dilworth's theorem} states that the size of
|
||||||
\index{antiketju@antiketju}
|
a minimum general path cover in a directed, acyclic graph
|
||||||
|
equals the maximum size of an \key{antichain}, i.e.,
|
||||||
|
a set of nodes such that there is no path
|
||||||
|
from any node to another node.
|
||||||
|
|
||||||
\key{Dilworthin lauseen} mukaan suunnatun, syklittömän
|
For example, in the example graph, the minimum
|
||||||
verkon pienin yleinen polkupeite
|
general path cover contains two paths,
|
||||||
on yhtä suuri kuin suurin verkossa oleva \key{antiketju}
|
so the largest antichain contains two nodes.
|
||||||
eli kokoelma solmuja,
|
We can construct such an antichain
|
||||||
jossa minkään kahden solmun välillä ei ole polkua.
|
by choosing nodes 3 and 7:
|
||||||
|
|
||||||
Esimerkiksi äskeisessä verkossa pienin
|
|
||||||
yleinen polkupeite sisältää kaksi polkua,
|
|
||||||
joten verkon suurimmassa antiketjussa on kaksi solmua.
|
|
||||||
Tällainen antiketju muodostuu esimerkiksi
|
|
||||||
valitsemalla solmut 3 ja 7:
|
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tikzpicture}[scale=0.9]
|
\begin{tikzpicture}[scale=0.9]
|
||||||
|
@ -1357,9 +1356,9 @@ valitsemalla solmut 3 ja 7:
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
Verkossa ei ole polkua solmusta 3 solmuun 7
|
There is no path from node 3 to node 7,
|
||||||
eikä polkua solmusta 7 solmuun 3,
|
and no path from node 7 to node 3,
|
||||||
joten valinta on kelvollinen.
|
so nodes 3 and 7 form an antichain.
|
||||||
Toisaalta jos verkosta valitaan mitkä tahansa
|
On the other hand, if we choose any three
|
||||||
kolme solmua, jostain solmusta toiseen on polku.
|
nodes in the graph, there is certainly a
|
||||||
|
path from one node to another node.
|
||||||
|
|
Loading…
Reference in New Issue