Corrections

This commit is contained in:
Antti H S Laaksonen 2017-02-18 15:43:05 +02:00
parent 37b767b135
commit 84a65c4bab
1 changed files with 18 additions and 18 deletions

View File

@ -80,7 +80,7 @@ route the flow:
\end{center} \end{center}
The notation $v/k$ means The notation $v/k$ means
a flow of $v$ units is routed through that a flow of $v$ units is routed through
an edge whose capacity is $k$ units. an edge whose capacity is $k$ units.
The size of the flow is $7$, The size of the flow is $7$,
because the source sends $3+4$ units of flow because the source sends $3+4$ units of flow
@ -141,14 +141,14 @@ their total weight would be less than $7$.
\\\\ \\\\
It is not a coincidence that It is not a coincidence that
both the size of the maximum flow and both the size of the maximum flow and
the minimum cut is 7 in the above example. the size of the minimum cut is 7 in the above example.
It turns out that the size of the maximum flow It turns out that the size of the maximum flow
and the minimum cut is and the minimum cut is
\emph{always} the same, \emph{always} the same,
so the concepts are two sides of the same coin. so the concepts are two sides of the same coin.
Next we will discuss the FordFulkerson Next we will discuss the FordFulkerson
algorithm that can be used for finding algorithm that can be used to find
the maximum flow and minimum cut of a graph. the maximum flow and minimum cut of a graph.
The algorithm also helps us to understand The algorithm also helps us to understand
\emph{why} they are equally large. \emph{why} they are equally large.
@ -169,7 +169,7 @@ The algorithm uses a special representation
of the graph where each original edge has a reverse of the graph where each original edge has a reverse
edge in another direction. edge in another direction.
The weight of each edge indicates how much more flow The weight of each edge indicates how much more flow
we might route through it. we could route through it.
At the beginning of the algorithm, the weight of each original edge At the beginning of the algorithm, the weight of each original edge
equals the capacity of the edge equals the capacity of the edge
and the weight of each reverse edge is zero. and the weight of each reverse edge is zero.
@ -254,7 +254,7 @@ For example, suppose we choose the following path:
After choosing the path, the flow increases by $x$ units, After choosing the path, the flow increases by $x$ units,
where $x$ is the smallest edge weight on the path. where $x$ is the smallest edge weight on the path.
In addition, the weight of each edge on the path In addition, the weight of each edge on the path
decreases by $x$, and the weight of each reverse edge decreases by $x$ and the weight of each reverse edge
increases by $x$. increases by $x$.
In the above path, the weights of the In the above path, the weights of the
@ -415,7 +415,7 @@ Hence, the algorithm terminates and the maximum flow is 7.
\subsubsection{Finding paths} \subsubsection{Finding paths}
The FordFulkerson algorithm does not specify The FordFulkerson algorithm does not specify
how paths that increase the flow should be chosen. how we should choose the paths that increase the flow.
In any case, the algorithm will terminate sooner or later In any case, the algorithm will terminate sooner or later
and correctly find the maximum flow. and correctly find the maximum flow.
However, the efficiency of the algorithm depends on However, the efficiency of the algorithm depends on
@ -426,7 +426,7 @@ Usually, this works well, but in the worst case,
each path only increases the flow by 1 each path only increases the flow by 1
and the algorithm is slow. and the algorithm is slow.
Fortunately, we can avoid this situation Fortunately, we can avoid this situation
by using one of the following algorithms: by using one of the following techniques:
\index{EdmondsKarp algorithm} \index{EdmondsKarp algorithm}
@ -553,7 +553,7 @@ any cut in the graph.
On the other hand, the FordFulkerson algorithm On the other hand, the FordFulkerson algorithm
produces a flow that is \emph{exactly} as large produces a flow that is \emph{exactly} as large
as a cut in the graph. as a cut in the graph.
Thus, the flow has to be a maximum flow, Thus, the flow has to be a maximum flow
and the cut has to be a minimum cut. and the cut has to be a minimum cut.
\section{Disjoint paths} \section{Disjoint paths}
@ -1006,7 +1006,7 @@ If the condition of Hall's theorem does not hold,
the set $X$ provides an explanation \emph{why} the set $X$ provides an explanation \emph{why}
we cannot form such a matching. we cannot form such a matching.
Since $X$ contains more nodes than $f(X)$, Since $X$ contains more nodes than $f(X)$,
there is no pair for all nodes in $X$. there are no pairs for all nodes in $X$.
For example, in the above graph, both nodes 2 and 4 For example, in the above graph, both nodes 2 and 4
should be connected with node 7 which is not allowed. should be connected with node 7 which is not allowed.
@ -1017,14 +1017,14 @@ should be connected with node 7 which is not allowed.
\index{minimum node cover} \index{minimum node cover}
A \key{minimum node cover} of a graph A \key{minimum node cover} of a graph
is a set of nodes such that each edge of the graph is a minimum set of nodes such that each edge of the graph
has at least one node in the set. has at least one endpoint in the set.
In a general graph, finding a minimum node cover In a general graph, finding a minimum node cover
is a NP-hard problem. is a NP-hard problem.
However, according to \key{Kőnig's theorem}, However, if the graph is bipartite,
\key{Kőnig's theorem} tells us that
the size of a minimum node cover the size of a minimum node cover
and the size of a maximum matching is always the same and the size of a maximum matching are always equal.
if the graph is bipartite.
Thus, we can calculate the size of a minimum node cover Thus, we can calculate the size of a minimum node cover
using a maximum flow algorithm. using a maximum flow algorithm.
@ -1119,7 +1119,7 @@ set is as follows:
A \key{path cover} is a set of paths in a graph A \key{path cover} is a set of paths in a graph
such that each node of the graph belongs to at least one path. such that each node of the graph belongs to at least one path.
It turns out that in a directed, acyclic graph, It turns out that in directed, acyclic graphs,
we can reduce the problem of finding a minimum we can reduce the problem of finding a minimum
path cover to the problem of finding a maximum path cover to the problem of finding a maximum
flow in another graph. flow in another graph.
@ -1174,9 +1174,9 @@ Note that one of the paths only contains node 2,
so it is possible that a path does not contain any edges. so it is possible that a path does not contain any edges.
We can find a minimum node-disjoint path cover We can find a minimum node-disjoint path cover
by constructing a matching graph so that each node by constructing a matching graph where each node
in the original graph corresponds to two of the original graph is represented by
nodes in the matching graph: a left and right node. two nodes: a left node and a right node.
There is an edge from a left node to a right node There is an edge from a left node to a right node
if there is a such an edge in the original graph. if there is a such an edge in the original graph.
In addition, the matching graph contains a source and a sink In addition, the matching graph contains a source and a sink