Corrections
This commit is contained in:
parent
37b767b135
commit
84a65c4bab
36
luku20.tex
36
luku20.tex
|
@ -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 Ford–Fulkerson
|
Next we will discuss the Ford–Fulkerson
|
||||||
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 Ford–Fulkerson algorithm does not specify
|
The Ford–Fulkerson 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{Edmonds–Karp algorithm}
|
\index{Edmonds–Karp algorithm}
|
||||||
|
|
||||||
|
@ -553,7 +553,7 @@ any cut in the graph.
|
||||||
On the other hand, the Ford–Fulkerson algorithm
|
On the other hand, the Ford–Fulkerson 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
|
||||||
|
|
Loading…
Reference in New Issue