homotopy-continuation-chann.../docs/general_idea.md

126 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Homotopy Continuation
## Introduction
### Overview
The aim of a homotopy method consists in solving a system of N nonlinear
equations in N variables \[1, p.1\]:
$$
F(\bm{x}) = 0, \hspace{5mm} F: \mathbb{R}^N \rightarrow \mathbb{R}^N
$$
This is achieved by defining a homotopy, or deformation,
$H : \mathbb{R}^N \rightarrow \mathbb{R}^N$ such that
$$
H(\bm{x}, 0) = G(\bm{x}), \hspace{5mm} H(\bm{x},1) = F(\bm{x}),
$$
where $G: \mathbb{R}^N \rightarrow \mathbb{R}^N$ is trivial, having known zero
points. One can then trace an implicitly defined curve
$\bm{c}(s) \in H^{-1}(0)$ from $(\bm{x}_1,0)$ to $(\bm{x}_2, 1)$ [2, p.122].
Typically, a convex homotopy such as
$$
H(\bm{x}, t) := tG(\bm{x}) + (1-t)F(\bm{x})
$$
is chosen [1, p.2].
### Implicit Definition of Solution Curve
"In the construction of the homotopy H(x, t) = 0, it may seem natural to use t
as the designated parameter for the solution curve [...]. However, this
parametrization has a severe limitation, as t cannot be used as a smooth
parameter in certain situations. For example, [...] at points where ∂H/∂x is
singular the solution curve of H(x, t) = 0 cannot be parametrized by t
directly. Actually, one may avoid such difficulties by considering both x and t
as independent variables and parametrize the smooth curve γ by the arc-length."
[2, p. 125-126].
We can show that the solution curve can be implicitly defined as
$$
\begin{align}
DH(\bm{y}(s))\cdot \dot{\bm{y}}(s) = 0 \\[.5em]
\text{det}\left(\begin{array}{c} DH(\bm{y}(s)) \\ \dot{\bm{y}}(s)\end{array}\right) = \sigma_0 \\[.5em]
\lVert \dot{\bm{y}}(s) \rVert = 1 \\[.5em]
\bm{y}(0) = (\bm{x}_0, 0)
.
\end{align}
$$
where $DH(y)$ is the Jacobian of $H(y)$ [2, p.127] [1, p.9]. Equation (1)
corresponds to $\dot{y}(s)$ being tangent to the solution curve, the purpose of
(2) is to fix the direction in which the curve is traced.
### Tracing solution curves
"In principle, any of the available ODE solvers capable of integrating the
above system can be used to trace the curve [...]. However, due to numerical
stability concerns, a more preferable method to trace the curve is the
'prediction-correction scheme'. [...] Among many different choices for the
'predictors' as well as 'correctors', we shall present here a commonly used
combination of the (generalized) Eulers method for the predictor and Newtons
method for the corrector." [2, p.127]
#### Euler's Predictor
$$
\hat{\bm{y}} = \bm{y}_0 + \Delta s \cdot \sigma \cdot \Delta \bm{y},
$$
with $\Delta s$ denoting the step size and $\Delta y$ the numerical
approximation of $\dot{y}(s)$ [2, p.128].
#### Newton's corrector
$$
\bm{y} = \mathcal{N}^k(\hat{\bm{y}}), \hspace{5mm} \mathcal{N}(\hat{\bm{y}}) := \hat{\bm{y}} - (DH(\hat{\bm{y}}))^{+} H(\hat{\bm{y}}).
$$
" [...] the shrinking distance
$\lVert \mathcal{N}^j(\hat{\bm{y}}) - \mathcal{N}^{j-1} (\hat{\bm{y}})\rVert$
between successive points produced by the iterations can be used as a criterion
for convergence. Of course, if the iterations fail to converge, one must go
back to adjust the step size for the Eulers predictor." [2, p.130]
## Application to Channel Decoding
We can describe the decoding problem using the code constraint polynomial [3]
$$
h(\bm{x}) = \underbrace{\sum_{i=1}^{n}\left(1-x_i^2\right)^2}_{\text{Bipolar constraint}} + \underbrace{\sum_{j=1}^{m}\left(1 - \left(\prod_{i\in A(j)}x_i\right)\right)^2}_{\text{Parity constraint}},
$$
where $A(j) = \left\{i \in [1:n]: H_{j,i} = 1\right\}$ represents the set of
variable nodes involved in parity check j. This polynomial consists of a set of
terms representing the bipolar constraint and a set of terms representing the
parity constraint. In a similar vein, we can define the following set of
polynomial equations to describe codewords:
$$
F(\bm{x}) = \left[\begin{array}{c}1 - x_1^2 \\ \vdots\\ 1 - x_n^2 \\ 1 - \prod_{i \in A(1)}x_i \\ \vdots\\ 1 - \prod_{i \in A(m)}x_i\end{array}\right] \overset{!}{=} \bm{0}.
$$
This is a problem we can solve using homotopy continuation.
______________________________________________________________________
## References
\[1\]: E. L. Allgower and K. Georg, Introduction to numerical continuation
methods. in Classics in applied mathematics, no. 45. Philadelphia, Pa: Society
for Industrial and Applied Mathematics (SIAM, 3600 Market Street, Floor 6,
Philadelphia, PA 19104), 2003. doi: 10.1137/1.9780898719154.
\[2\]: T. Chen and T.-Y. Li, “Homotopy continuation method for solving systems
of nonlinear and polynomial equations,” Communications in Information and
Systems, vol. 15, no. 2, pp. 119307, 2015, doi: 10.4310/CIS.2015.v15.n2.a1.
\[3\]: Wadayama, Tadashi, and Satoshi Takabe. "Proximal decoding for LDPC
codes." IEICE Transactions on Fundamentals of Electronics, Communications and
Computer Sciences 106.3 (2023): 359-367.