]> git.rustad.me Git - master/commitdiff
New figure and more BK
authorBjørn Rustad <bjorn@rustad.me>
Mon, 19 Jan 2015 17:23:22 +0000 (18:23 +0100)
committerBjørn Rustad <bjorn@rustad.me>
Mon, 19 Jan 2015 17:23:22 +0000 (18:23 +0100)
fig/bk_norm_subgraph.tex [new file with mode: 0644]
fig/norm_subgraph.tex
theory.tex

diff --git a/fig/bk_norm_subgraph.tex b/fig/bk_norm_subgraph.tex
new file mode 100644 (file)
index 0000000..864b589
--- /dev/null
@@ -0,0 +1,13 @@
+\centering
+\begin{tikzpicture}[scale=2.2]
+    \node[vertex] (s) at (0,  0) {s};
+    \node[vertex] (u) at (0, -1) {$u^\lambda_x$};
+    \node[vertex] (t) at (0, -2) {t};
+
+    \path[edge] (s) -- node[weight noslope] {$\max\{E_{L-1}^x(1), 0\}$} (u);
+    \path[edge] (u) -- node[weight noslope] {$\max\{E_{L-1}^x(1), 0\} - E_\lambda^x(1)$} (t);
+\end{tikzpicture}
+\caption{%
+    \fixme{boop}
+}
+\label{fig:bk_norm_subgraph}
index 3e95ca158488a119b30ad7f7cb5ec67cf81be69d..24b5083075096d3964830cae4b81000933c0cd52 100644 (file)
@@ -8,8 +8,8 @@
 
         \path[edge] (u) -- node[weight noslope] {$E_\lambda^x(0)$} (t);
     \end{tikzpicture}
-    \caption{The graph when $E_\lambda^x(0) > 0$, with constant equal to
-        0.
+    \caption{%
+        The graph when $E_\lambda^x(0) > 0$, with constant equal to 0.
     }
     \label{fig:norm_subgraph_pos}
 \end{subfigure}
@@ -28,9 +28,9 @@
     }
     \label{fig:norm_subgraph_neg}
 \end{subfigure}
-\caption{
+\caption{%
     The graph construction for the fidelity term $E_\lambda^x(u^\lambda_x)$.
-    See Table \ref{tab:fid_energy} for an overview of the different
+    See Table~\ref{tab:fid_energy} for an overview of the different
     possible cuts, and on why this construction works.
 }
 \label{fig:norm_subgraph}
index 1e3f2d152736be88ab6fc8d0bae8c6b1b8b9e0f1..bf6fc68e7fecf8cab6ff2182ef47f8b1598c5760 100644 (file)
@@ -2905,10 +2905,33 @@ to completely restart the Boykov--Kolmogorov algorithm for every level
 of the image, but we can reuse the graph and the trees $S$ and $T$ in
 successive runs. 
 
+\begin{figure}
+    \input{fig/bk_norm_subgraph}
+\end{figure}
+
 Since this is algorithm does not deal with the relaxed preflow concept,
 the updates from one level to the next has to be done in a different
 way. We can no longer decrease the capacity of edges, as this could
-break the flow conservation constraint.
+break the flow conservation constraint. However, the graph construction
+in \fixme{ref} did allow for the addition of an arbitrary constant to
+all the edges of the sub-graph. Thus the construction in
+Figure~\ref{bk_norm_subgraph} is also valid. We have added the
+non-negative constant $\max\{E_{L-1}^x(0), 0\}$ to all the edges of the
+graph in \fixme{ref}. As $\lambda$ goes from $L-1$ to $0$ both edges
+stay non-negative. The edge from $u_\lambda^x$ to $t$ is non-decreasing
+with decreasing $\lambda$ parameter.
+
+This construction allows us to update the capacities of the edges, while
+retaining the flow and the trees $S$ and $T$. A nice property that
+follows is that the partition $(V - T, T)$ is a minimum cut, and the set
+of vertices $T$ is non-decreasing. More importantly, no vertex already
+in the tree $T$ will leave $T$ for succeeding lower $\lambda$ values.
+This can be seen from the fact that if $u$ is in $T$ and the algorithm
+has terminated, all paths from $s$ to $t$ going
+through $u$ has a saturated edge somewhere before $u$. For all these
+paths, the capacity will only change for edges after $u$, as we only
+change the capacity of edges $(v, t)$. Thus these saturated edges will
+stay saturated, and $u$ will stay in $T$.
 
 \section{Performance comparison}