From: Bjørn Rustad Date: Mon, 19 Jan 2015 17:23:22 +0000 (+0100) Subject: New figure and more BK X-Git-Url: http://git.rustad.me/?a=commitdiff_plain;h=3248eb4a2f6a7887560b15de7ff303b8ebdda58c;p=master New figure and more BK --- diff --git a/fig/bk_norm_subgraph.tex b/fig/bk_norm_subgraph.tex new file mode 100644 index 0000000..864b589 --- /dev/null +++ b/fig/bk_norm_subgraph.tex @@ -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} diff --git a/fig/norm_subgraph.tex b/fig/norm_subgraph.tex index 3e95ca1..24b5083 100644 --- a/fig/norm_subgraph.tex +++ b/fig/norm_subgraph.tex @@ -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} diff --git a/theory.tex b/theory.tex index 1e3f2d1..bf6fc68 100644 --- a/theory.tex +++ b/theory.tex @@ -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}