Chapter 20 first version

This commit is contained in:
Antti H S Laaksonen 2017-01-10 23:56:44 +02:00
parent c65bbed2f3
commit 51520519cf
1 changed files with 77 additions and 78 deletions

View File

@ -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.