Compare commits

..

11 Commits

23 changed files with 3512 additions and 0 deletions

View File

@ -3,5 +3,8 @@ all:
latexmk src/2024-12-03/presentation.tex
mv build/presentation.pdf build/presentation_2024-12-03.pdf
latexmk src/2025-03-28/presentation.tex
mv build/presentation.pdf build/presentation_2025-03-28.pdf
clean:
rm -rf build

1
lib/lib Symbolic link
View File

@ -0,0 +1 @@
/home/andreas/workspace/work/hiwi/hiwi-update-presentations/lib

View File

@ -0,0 +1,589 @@
\documentclass[10pt, aspectratio=169, usenames, dvipsnames]{beamer}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{spy, external, intersections}
%\tikzexternalize[prefix=build/]
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{fillbetween}
\usepackage{listings}
\usepackage{subcaption}
\usepackage{bbm}
\usepackage{xcolor}
%\usepackage[outputdir=build/]{minted}
\usepackage{minted}
\usemintedstyle{gruvbox-light}
%\definecolor{gruvbox-bg}{HTML}{282828}
\definecolor{gruvbox-bg}{HTML}{f2e5bc}
%
%
% Custom commands
%
%
\input{lib/latex-common/common.tex}
\pgfplotsset{colorscheme/rocket}
\newcommand{\res}{src/2025-03-28/res}
%
%
% CEL Template
%
%
\newcommand{\templates}{lib/cel-template}
\input{\templates/packages.tex}
\input{\templates/modifications.tex}
\input{\templates/makros_own.tex}
% % Change the way the overview is displayed
% \AtBeginSection[]
% {
% \begin{frame}[t]
% \frametitle{Overview}
% \tableofcontents[sectionstyle=show/shaded,
% subsectionstyle=show/show/shaded,
% subsubsectionstyle=hide]
% \end{frame}
% }
% \AtBeginSubsubsection[]{}
% \AtBeginSubsection[]{}
%
%
% Set up document
%
%
\title{HiWi Notes: Minimization of the Code Constraint Polynomial using
Homotopy Continuation Methods}
\subtitle{\small 28.03.2025}
\author{\vspace{1.5mm} Andreas Tsouchlos}
\date{ }
\institute{Karlsruhe Institute of Technology (KIT),
\\ Communications Engineering Lab (CEL) }
\tikzstyle{every node}=[font=\small]
\captionsetup[sub]{font=small}
%
%
% Document body
%
%
\begin{document}
\begin{frame}[plain]
\maketitle
\end{frame}
\newcommand{\largecitereference}[1]
{\textcolor{kit-green100}{ \large \textbf{{[#1]}} }}
%
% - The decoding problem as the search for a solution of polynomial system
% - Homotopy continuation
% - The problem with overdefined systems and the Groebner basis
% - Implementation
%
% TODO: Check example homotopy
% TODO: Add the name of the homotopy construction (t-1)G + tF and note that it
% is not the only possibility
\begin{frame}
\frametitle{Basic Idea of Homotopy Continuation \largecitereference{CL15}}
\begin{minipage}[c]{0.65\textwidth}
\begin{itemize}
\item Goal: Solve system of equations $F(\bm{x}) = \bm{0},
\hspace{2mm} F:\mathbb{R}^n \rightarrow \mathbb{R}^n$
\item Problem: Depending on $F$, solving this directly
may be difficult
\item Solution: Define \emph{homotopy function} $H(\bm{x}, t)$ with
\begin{gather*}
H(\bm{x}, 0) = G(\bm{x}), \hspace{5mm} H(\bm{x},
1) = F(\bm{x})
,
\end{gather*}
i.e., a deformation between two systems $G(\bm{x})$
and $F(\bm{x})$
(where the zeros of $G$ can be easily obtained); E.g.,
\begin{gather*}
H(\bm{x}, t) = (t-1)G(\bm{x}) + tF(\bm{x})
.
\end{gather*}
Then, compute $(\bm{x}_0, 0)$ such that $G(\bm{x}_0) =
\bm{0}$ and trace path to $(\bm{x}_1, 1)$ with
$F(\bm{x}_1) = \bm{0}$
\end{itemize}
\vspace{5mm}
\addreferences
{CL15}{Chen, Tianran, and Tien-Yien Li.: \emph{Homotopy
continuation method for solving systems of nonlinear and
polynomial equations}. Communications in Information and
Systems 15.2 (2015): 119-307.}
\stopreferences
\end{minipage}%
\hfill
\begin{minipage}[c]{0.3\textwidth}
\begin{figure}
\centering
\newcommand{\figlength}{0.8\textwidth}
\vspace*{-2mm}
\begin{tikzpicture}
\begin{axis}[
xmin=-1,xmax=1,
ymin=-1,ymax=1,
width=\figlength,
height=\figlength,
ticks=none,
view={0}{90},
title={$t=0$},
title style={yshift=-1mm},
% xlabel={$x_1$},
% ylabel={$x_2$},
]
\addplot3[point meta=\thisrow{Hmag},
point meta min=0,
point meta max=2.5,
quiver={u=\thisrow{H1},
v=\thisrow{H2},
scale arrows=.25,
every arrow/.append style={%
line width=.5
+\pgfplotspointmetatransformed/1000,
-{Latex[length=0pt 5,width=0pt 3]}
},
},
quiver/colored = {mapped color},
-stealth,
]
table[col sep=comma, discard if not={t}{0.0}]
{\res/H.csv};
\addplot[mark=*] coordinates {(0,0)} node[above]
{$\bm{x}_0$};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
xmin=-1,xmax=1,
ymin=-1,ymax=1,
width=\figlength,
height=\figlength,
ticks=none,
view={0}{90},
title={$t=0.5$},
title style={yshift=-1mm},
% xlabel={$x_1$},
% ylabel={$x_2$},
]
\addplot3[point meta=\thisrow{Hmag},
point meta min=0,
point meta max=2.5,
quiver={u=\thisrow{H1},
v=\thisrow{H2},
scale arrows=.25,
every arrow/.append style={%
line width=.5
+\pgfplotspointmetatransformed/1000,
-{Latex[length=0pt 5,width=0pt 3]}
},
},
quiver/colored = {mapped color},
-stealth,
]
table[col sep=comma, discard if not={t}{0.5}]
{\res/H.csv};
\draw[line width=1pt] (0,0) -- (0.25,-0.25);
\addplot[mark=*] coordinates {(0.25, -0.25)};
\end{axis}
\end{tikzpicture}
\vspace{2mm}
\begin{tikzpicture}
\begin{axis}[
xmin=-1,xmax=1,
ymin=-1,ymax=1,
width=\figlength,
height=\figlength,
ticks=none,
view={0}{90},
title={$t=1$},
title style={yshift=-1mm},
% xlabel={$x_1$},
% ylabel={$x_2$},
]
\addplot3[point meta=\thisrow{Hmag},
point meta min=0,
point meta max=2.5,
quiver={u=\thisrow{H1},
v=\thisrow{H2},
scale arrows=.25,
every arrow/.append style={%
line width=.5
+\pgfplotspointmetatransformed/1000,
-{Latex[length=0pt 5,width=0pt 3]}
},
},
quiver/colored = {mapped color},
-stealth,
]
table[col sep=comma, discard if not={t}{1.0}]
{\res/H.csv};
\draw[line width=1pt] (0,0) -- (0.5,-0.5);
\addplot[mark=*] coordinates {(0.5,-0.5)} node[below right]
{$\bm{x}_1$};
\end{axis}
\end{tikzpicture}
\caption{Visualization of ``snapshots'' of $H$ (e.g., $F, G$) as
vector fields}
\end{figure}
\end{minipage}
\end{frame}
\begin{frame}
\frametitle{Path Tracing}
\vspace{-4mm}
\begin{itemize}
\item Reminder: We are trying to trace the solution curve
$H(\bm{x}, t) = \bm{0}$ from $t = 0$ to $t = 1$
\item We can express the solution curve as a system of
differential equations \citereference{CL15}:
\begin{align*}
DH(\bm{y}(s))\cdot \dot{\bm{y}}(s) &= 0 \\
\text{det}\left(
\begin{array}{c} DH(\bm{y}(s)) \\ \dot{\bm{y}}(s)
\end{array}\right) &= \sigma_0 \\
\lVert \dot{\bm{y}}(s) \rVert &= 1 \\
\bm{y}(0) &= (\bm{x}_0, 0)
,%
\end{align*}
where $DH(\bm{y})$ is the Jacobian of $H(\bm{y})$ and
$\sigma_0 \in \left\{\pm 1\right\}$ defines the direction along
which we move on the curve.
\item For numerical stability, it is beneficial to solve this using a
predictor-corrector scheme, e.g., Euler's predictor and Newton's
corrector \citereference{CL15}:
\begin{align*}
\hat{\bm{y}} &= \bm{y}_0 + \Delta s \cdot \sigma \cdot
{\bm{y}}(\bm{s})\\
\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}})
.%
\end{align*}
\end{itemize}
\addreferences
{CL15}{Chen, Tianran, and Tien-Yien Li.: \emph{Homotopy
continuation method for solving systems of nonlinear and
polynomial equations}. Communications in Information and
Systems 15.2 (2015): 119-307.}
\stopreferences
\end{frame}
\begin{frame}
\frametitle{Channel Decoding and Polynomial Equations}
\vspace{-5mm}
\begin{itemize}
\item To describe the decoding problem we can use the code constraint
polynomial \citereference{WT22}
\begin{align*}
%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}}
h(\bm{x}) = \sum_{i=1}^{n}\left(1-x_i^2\right)^2 +
\sum_{j=1}^{m}\left(1 - \left(\prod_{i\in
A(j)}x_i\right)\right)^2
.%
\end{align*}
where $A(j) = \left\{i \in [1:n]: \bm{H}_{j,i} = 1\right\},
\hspace{3mm} j\in [1:m]$
represents the set of variables involved in parity check $j$.
\item In a similar vein, we can define a polynomial system whose zeros
correspond to codewords as
\begin{align*}
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}
.%
\end{align*}
\end{itemize}
\addreferences
{WT22}{Tadashi Wadayama; Satoshi Takabe: Proximal Decoding for LDPC
Codes. IEICE Transactions on Fundamentals of Electronics, Communi-
cations and Computer Sciences advpub (2022), 2022TAP0002.}
\stopreferences
\end{frame}
\begin{frame}[fragile]
\frametitle{Defining Homotopies for Channel Codes}
\begin{itemize}
\item Problem: Homotopy continuation algorithms / existing frameworks
only really support square systems, i.e., \# equations =
\# variables. The
system $F(\bm{x}) = \bm{0}$ we previously considered is overdefined
\item \textit{Gröbner bases} allow us to ``[...] transform F into
another set G of polynomials [...] such that F and G are
equivalent''
\citereference{B01}, i.e., they have the same zeros
\item Limited tests indicate that, for the systems we are interested in,
finding a Gröbner basis yields a square system
\item Example:
\end{itemize}
\begin{minipage}{0.45\textwidth}
\begin{align*}
\overbrace{\bm{H}}^{\text{Parity check matrix}} &= \left[
\begin{array}{cc} 1 & 1
\end{array}\right] \\
F(\bm{x}) &= \left[
\begin{array}{c}
1 - x_1^2 \\
1 - x_2^2\\
1 - x_1x_2
\end{array}\right]
\end{align*}
\end{minipage}%
\begin{minipage}{0.1\textwidth}
\begin{tikzpicture}
\draw[-{Latex}] (0,0) -- (1,0);
\end{tikzpicture}
\end{minipage}%
\begin{minipage}{0.45\textwidth}
\begin{align*}
\tilde{F}(\bm{x}) &= \left[
\begin{array}{c}
x_1 - x_2 \\
x_2^2 - 1
\end{array}\right] \\
G(\bm{x}) &= \left[
\begin{array}{c}
x_1\\
x_2
\end{array}\right]\\
H(\bm{x}, t) &= (1-t)G(\bm{x}) + tF(\bm{x})
\end{align*}
\end{minipage} \\
\vspace{5mm}
\addreferences
{B01}{Buchberger, Bruno. "Gröbner bases: A short introduction for systems
theorists." International Conference on Computer Aided Systems Theory.
Berlin, Heidelberg: Springer Berlin Heidelberg, 2001.}
\stopreferences
\end{frame}
\begin{frame}[fragile]
\frametitle{Path Tracker Implementation (Pseudo Code)}
\vspace{-6mm}
\begin{itemize}
\item Perform a predictor step followed by multiple corrector steps
\item If the corrector fails to converge, adjust the predictor step
size and try again \citereference{CL15}
\end{itemize}
\vspace{1mm}
\begin{minted}[
bgcolor=gruvbox-bg, % Background color
fontsize=\small, % Adjust font size
framesep=5mm, % Frame separation
baselinestretch=1, % Line spacing
breaklines, % Allow line breaking
tabsize=4, % Tab width
]{c}
func perform_prediction_step(y, step_size) {...}
func perform_correction_step(y) {...}
func perform_step(y0) {
for i in range(max_retries):
step_size = step_size / 2
y = perform_prediction_step(y0, step_size)
for k in range(max_corrector_iterations):
y = perform_correction_step(y)
if (corrector converged) break
if (corrector converged) break
return y
}
\end{minted}
\vspace{1mm}
\addreferences
{CL15}{Chen, Tianran, and Tien-Yien Li.: \emph{Homotopy
continuation method for solving systems of nonlinear and
polynomial equations}. Communications in Information and
Systems 15.2 (2015): 119-307.}
\stopreferences
\end{frame}
\begin{frame}[fragile]
\frametitle{Decoding Algorithm Implementation (Pseudo Code)}
\begin{itemize}
\item If the algorithm doesn't converge, we still return the last
estimate in the hopes that this will limit the BER
\end{itemize}
\begin{minted}[
bgcolor=gruvbox-bg, % Background color
fontsize=\small, % Adjust font size
framesep=5mm, % Frame separation
baselinestretch=1, % Line spacing
breaklines, % Allow line breaking
tabsize=4, % Tab width
]{c}
func decode(y) {
for i in range(max_iterations):
y = perform_step(y)
x_hat = hard_decision(y)
if (H @ x_hat == 0) return x_hat
return x_hat
}
\end{minted}
\end{frame}
\begin{frame}[fragile]
\frametitle{Simulation results}
\vspace*{-5mm}
\begin{itemize}
\item Simulation using the all-zeros codeword
\item Newton homotopy:
\begin{gather*}
G(\bm{x}) = F(x) - F(\bm{y}) \hspace{5mm} \Rightarrow
\hspace{5mm} H(\bm{x}) = F(\bm{x}) - (1 - t) F(\bm{y})
\end{gather*}
\end{itemize}
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.48\textwidth}
\centering
\vskip 0pt
\begin{tikzpicture}
\begin{axis}[
width=\textwidth,
height=0.75\textwidth,
ylabel={FER (-\,-\,-), BER (---)},
ymode=log,
legend,
xlabel = {$Eb/N0$ (dB)},
legend pos= south west,
xmax=6
]
\addplot+[scol0, densely dashed, mark=none, line
width=1pt, forget plot]
table[col sep=comma, x=SNR, y=FER]
{\res/bch_31_26_hc.csv};
\addplot+[scol0, mark=none, line width=1pt]
table[col sep=comma, x=SNR, y=BER]
{\res/bch_31_26_hc.csv};
\addlegendentry{Homotopy continuation}
\addplot+[scol2, densely dashed, mark=none, line width=1pt,
forget plot]
table[col sep=comma, x=SNR, y=FER, discard if
not={gamma}{0.05}]
{\res/bch_31_26_proximal.csv};
\addplot+[scol2, mark=none, line width=1pt]
table[col sep=comma, x=SNR, y=BER, discard if
not={gamma}{0.05}]
{\res/bch_31_26_proximal.csv};
\addlegendentry{Proximal decoding}
\end{axis}
\end{tikzpicture}
\caption{BCH(31,26) Code}
\end{subfigure}%
\begin{subfigure}[c]{0.48\textwidth}
\centering
\vspace*{-17mm}
\begin{tabular}{rl|ccccc}
& Parameter & Value \\ \hline
$n_\text{iter}$ & for homotopy continuation & 20 \\
$n_\text{iter}$ & for Newton corrector & 5 \\
$\delta_\text{max}$ & for Newton corrector & 0.01 \\
$\Delta s$ & for Euler predictor & 0.05 \\
$n_\text{retries}$ & for Euler predictor & 5
\end{tabular}
\bigskip
\smallskip
(No comprehensive investigation into choice of parameters
completed yet)
\end{subfigure}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Next steps}
\begin{itemize}
\item Simulations for other codes
\item Thorough investigation into parameter choice
\item Find more mathematical background / guarantees
\begin{itemize}
\item How do we have to choose $\sigma_0$?
\item Guarantees for convergence? (i.e., what is the cause for
decoding failures?)
\item When do we actually get square systems using
the Gröbner basis?
\end{itemize}
\item Other ideas:
\begin{itemize}
\item Generate more candidates by moving further along the
solution curve (if this is possible) and then performing
choosing from this list
\end{itemize}
\end{itemize}
\end{frame}
\end{document}

1101
src/2025-03-28/res/H.csv Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
import sympy as sp
def main():
x1,x2,x3 = sp.symbols("x_1 x_2 x_3")
x = sp.Matrix([x1, x2, x3])
F = sp.Matrix([1 - x1**2, 1 - x2**2, 1 - x3**2, 1 - x1*x2, 1 - x1*x3])
print(F.jacobian(x))
print(F.jacobian(x).rank())
if __name__=="__main__":
main()

View File

@ -0,0 +1,46 @@
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def main():
def F(x1, x2):
return np.array([x1 + x2, x2 + 0.5])
def G(x1, x2):
return np.array([x1, x2])
def H(x1, x2, t):
return (1 - t) * G(x1, x2) + t * F(x1, x2)
# x = np.linspace(-1, 1, 10)
# y = np.linspace(-1, 1, 10)
# X1, X2 = np.meshgrid(x, y)
#
# fig, axes = plt.subplots(1, 4, figsize=(20, 4))
#
# for i, t in enumerate(np.linspace(0, 1, 4)):
# H_ = H(X1, X2, t)
# axes[i].quiver(X1, X2, *H_, color='r')
# axes[i].set_title(f't = {t}')
#
# plt.show()
df_dict = {"x1": [], "x2": [], "t": [], "H1": [], "H2": [], "Hmag": []}
for x1 in np.linspace(-1, 1, 10):
for x2 in np.linspace(-1, 1, 10):
for t in [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]:
df_dict["x1"].append(x1)
df_dict["x2"].append(x2)
df_dict["t"].append(t)
H_ = H(x1, x2, t)
df_dict["H1"].append(H_[0])
df_dict["H2"].append(H_[1])
df_dict["Hmag"].append(np.sqrt(H_[0]**2 + H_[1]**2))
df = pd.DataFrame(df_dict).sort_values(by=["t", "x2", "x1"])
df.to_csv("H.csv", index=False)
if __name__=="__main__":
main()

View File

@ -0,0 +1,392 @@
\documentclass[10pt, aspectratio=169, usenames, dvipsnames]{beamer}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{spy, external, intersections}
%\tikzexternalize[prefix=build/]
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{fillbetween}
\usepackage{listings}
\usepackage{subcaption}
\usepackage{bbm}
\usepackage{multirow}
\usepackage{xcolor}
%\usepackage[outputdir=build/]{minted}
\usepackage{minted}
\usemintedstyle{gruvbox-light}
%\definecolor{gruvbox-bg}{HTML}{282828}
\definecolor{gruvbox-bg}{HTML}{f2e5bc}
%
%
% Custom commands
%
%
\input{lib/latex-common/common.tex}
\pgfplotsset{colorscheme/rocket}
\newcommand{\res}{src/2025-05-08/res}
%
%
% CEL Template
%
%
\newcommand{\templates}{lib/cel-template}
\input{\templates/packages.tex}
\input{\templates/modifications.tex}
\input{\templates/makros_own.tex}
% % Change the way the overview is displayed
% \AtBeginSection[]
% {
% \begin{frame}[t]
% \frametitle{Overview}
% \tableofcontents[sectionstyle=show/shaded,
% subsectionstyle=show/show/shaded,
% subsubsectionstyle=hide]
% \end{frame}
% }
% \AtBeginSubsubsection[]{}
% \AtBeginSubsection[]{}
%
%
% Set up document
%
%
\title{HiWi Notes: Minimization of the Code Constraint Polynomial using
Homotopy Continuation Methods}
\subtitle{\small 08.05.2025}
\author{\vspace{1.5mm} Andreas Tsouchlos}
\date{ }
\institute{Karlsruhe Institute of Technology (KIT),
\\ Communications Engineering Lab (CEL) }
\tikzstyle{every node}=[font=\small]
\captionsetup[sub]{font=small}
%
%
% Document body
%
%
\begin{document}
\begin{frame}[plain]
\maketitle
\end{frame}
\newcommand{\largecitereference}[1]
{\textcolor{kit-green100}{ \large \textbf{{[#1]}} }}
\begin{frame}
\frametitle{The All-Zeros Assumption}
\vspace*{-5mm}
\begin{itemize}
\item Previous results were generated using the all-zeros
assumption
\item To cancel out any numerical effects,
subsequent results have been generated using randomly
generated codewords
\item Using randomly generated codewords paints a very different picture
\end{itemize}
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.48\textwidth}
\centering
\vskip 0pt
\begin{tikzpicture}
\begin{axis}[
width=\textwidth,
height=0.75\textwidth,
ylabel={FER (-\,-\,-), BER (---)},
ymode=log,
legend,
xlabel = {$Eb/N0$ (dB)},
legend pos= south west,
xmax=6
]
\addplot+[black, densely dashed, mark=none, line width=1pt,
forget plot]
table[col sep=comma, x=SNR, y=FER, discard if
not={gamma}{0.05}]
{\res/bch_31_26_proximal.csv};
\addplot+[black, mark=none, line width=1pt]
table[col sep=comma, x=SNR, y=BER, discard if
not={gamma}{0.05}]
{\res/bch_31_26_proximal.csv};
\addlegendentry{Proximal decoding}
\addplot+[scol3, densely dashed, mark=none, line
width=1pt, forget plot]
table[col sep=comma, x=SNR, y=FER]
{\res/bch_31_26_hc_all_zeros.csv};
\addplot+[scol3, mark=none, line width=1pt]
table[col sep=comma, x=SNR, y=BER]
{\res/bch_31_26_hc_all_zeros.csv};
\addlegendentry{Hom. cont. - all zeros}
\addplot+[scol1, densely dashed, mark=none, line
width=1pt, forget plot]
table[col sep=comma, x=SNR, y=FER]
{\res/bch_31_26_hc_random.csv};
\addplot+[scol1, mark=none, line width=1pt]
table[col sep=comma, x=SNR, y=BER]
{\res/bch_31_26_hc_random.csv};
\addlegendentry{Hom. cont. - rand. cw.}
\end{axis}
\end{tikzpicture}
\caption{BCH(31,26) Code}
\end{subfigure}%
\begin{subfigure}[c]{0.48\textwidth}
\centering
\vspace*{-17mm}
\begin{tabular}{rl|ccccc}
& Parameter & Value \\ \hline
$n_\text{iter}$ & for homotopy continuation & 20 \\
$n_\text{iter}$ & for Newton corrector & 5 \\
$\delta_\text{max}$ & for Newton corrector & 0.01 \\
$\Delta s$ & for Euler predictor & 0.05 \\
$n_\text{retries}$ & for Euler predictor & 5
\end{tabular}
\bigskip
\smallskip
\end{subfigure}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Fixed Point Homotopy}
\vspace*{-6mm}
\begin{itemize}
\item Previous results were generated using the Newton homotopy
\begin{gather*}
G(\bm{x}) = F(x) - F(\bm{y}) \hspace{5mm} \Rightarrow
\hspace{5mm} H(\bm{x}) = F(\bm{x}) - (1 - t) F(\bm{y})
\end{gather*}
\item We could instead try the fixed point homotopy
\begin{gather*}
G(\bm{x}) = (\bm{x} - \bm{y}) \hspace{5mm}
\Rightarrow \hspace{5mm} H(\bm{x}) = (1-t)(\bm{x} -
\bm{y}) + t F(\bm{x})
\end{gather*}
\end{itemize}
\vspace*{-2mm}
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.48\textwidth}
\centering
\vskip 0pt
\begin{tikzpicture}
\begin{axis}[
width=\textwidth,
height=0.72\textwidth,
ylabel={FER (-\,-\,-), BER (---)},
ymode=log,
legend,
xlabel = {$Eb/N0$ (dB)},
legend pos= south west,
xmax=6,
ymin = 0.1
]
\addplot+[scol1, densely dashed, mark=none, line
width=1pt, forget plot]
table[col sep=comma, x=SNR, y=FER]
{\res/bch_31_26_hc_fixed_point_random.csv};
\addplot+[scol1, mark=none, line width=1pt]
table[col sep=comma, x=SNR, y=BER]
{\res/bch_31_26_hc_fixed_point_random.csv};
\addlegendentry{Hom. cont. - fixed point, rand. cw.}
\end{axis}
\end{tikzpicture}
\vspace*{-2mm}
\caption{BCH(31,26) Code}
\end{subfigure}%
\begin{subfigure}[c]{0.48\textwidth}
\centering
\vspace*{-17mm}
\begin{tabular}{rl|ccccc}
& Parameter & Value \\ \hline
$n_\text{iter}$ & for homotopy continuation & 20 \\
$n_\text{iter}$ & for Newton corrector & 5 \\
$\delta_\text{max}$ & for Newton corrector & 0.01 \\
$\Delta s$ & for Euler predictor & 0.05 \\
$n_\text{retries}$ & for Euler predictor & 5
\end{tabular}
\bigskip
\smallskip
\end{subfigure}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Parameter Exploration}
\vspace*{-7mm}
\begin{figure}
\centering
\begin{subfigure}[c]{0.48\textwidth}
\centering
\begin{itemize}
\item Fixed parameters:
\begin{tabular}{rl|c}
& Parameter & Value \\ \hline
$E_\text{b} / N_0$ &
& $\SI{6}{dB}$ \\
$n_\text{iter}$ & for homotopy continuation & 200 \\
$n_\text{iter}$ & for Newton corrector & 20 \\
$n_\text{retries}$ & for Euler predictor & 20
\end{tabular}
\item Random codewords, Newton homotopy, BCH(31, 26) code
\item Low decoding failure rate (DFR) $\rightarrow$
We do often reach codewords, just not the correct ones
\end{itemize}
\end{subfigure} \hfill %
\begin{subfigure}[c]{0.48\textwidth}
\centering
\vskip 0pt
\scalebox{0.7}{
% tex-fmt: off
\begin{tabular}{c|c|ccccccc}
DFR && \multicolumn{7}{c}{Euler step size}\\\hline
&& 0.001 & 0.005 & 0.01 & 0.05 & 0.1 & 0.5 & 1.0 \\ \hline
\parbox[t]{2mm}{\multirow{7}{*}{\rotatebox[origin=c]{90}{Newtown threshold}}}
& 0.001 & 0.070 & 0.055 & 0.085 & 0.070 & 0.075 & 0.050 & 0.060 \\
& 0.005 & 0.055 & 0.075 & 0.060 & 0.070 & 0.100 & 0.070 & 0.050 \\
& 0.01 & 0.065 & 0.060 & 0.075 & 0.085 & 0.095 & 0.040 & 0.045 \\
& 0.05 & 0.090 & 0.080 & 0.085 & 0.085 & 0.045 & 0.065 & 0.055 \\
& 0.1 & 0.100 & 0.085 & 0.045 & 0.080 & 0.065 & 0.055 & 0.075 \\
& 0.5 & 0.070 & 0.075 & 0.125 & 0.055 & 0.070 & 0.055 & 0.090 \\
& 1.0 & 0.055 & 0.095 & 0.060 & 0.050 & 0.055 & 0.075 & 0.055 \\
\end{tabular}
% tex-fmt: on
}
\end{subfigure}\\[2mm]
\begin{subfigure}[t]{0.48\textwidth}
\centering
\scalebox{0.7}{
% tex-fmt: off
\begin{tabular}{c|c|ccccccc}
FER && \multicolumn{7}{c}{Euler step size}\\\hline
&& 0.001 & 0.005 & 0.01 & 0.05 & 0.1 & 0.5 & 1.0 \\ \hline
\parbox[t]{2mm}{\multirow{7}{*}{\rotatebox[origin=c]{90}{Newtown threshold\footnotemark}}}
& 0.001 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 \\
& 0.005 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 \\
& 0.01 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 \\
& 0.05 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 \\
& 0.1 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 \\
& 0.5 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 \\
& 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 \\
\end{tabular}
% tex-fmt: on
}
\end{subfigure} \hfill %
\begin{subfigure}[t]{0.48\textwidth}
\centering
\scalebox{0.7}{
% tex-fmt: off
\begin{tabular}{c|c|ccccccc}
BER && \multicolumn{7}{c}{Euler step size}\\\hline
&& 0.001 & 0.005 & 0.01 & 0.05 & 0.1 & 0.5 & 1.0 \\ \hline
\parbox[t]{2mm}{\multirow{7}{*}{\rotatebox[origin=c]{90}{Newtown threshold}}}
& 0.001 & 0.497 & 0.496 & 0.509 & 0.495 & 0.508 & 0.495 & 0.503 \\
& 0.005 & 0.509 & 0.503 & 0.491 & 0.502 & 0.506 & 0.502 & 0.502 \\
& 0.01 & 0.498 & 0.492 & 0.520 & 0.509 & 0.500 & 0.502 & 0.504 \\
& 0.05 & 0.503 & 0.499 & 0.507 & 0.494 & 0.492 & 0.500 & 0.506 \\
& 0.1 & 0.499 & 0.499 & 0.500 & 0.508 & 0.502 & 0.488 & 0.507 \\
& 0.5 & 0.510 & 0.503 & 0.510 & 0.495 & 0.507 & 0.515 & 0.501 \\
& 1.0 & 0.502 & 0.506 & 0.506 & 0.502 & 0.500 & 0.505 & 0.500 \\
\end{tabular}
% tex-fmt: on
}
\end{subfigure}
\end{figure}
\footnotetext{``Newton threshold'' refers to the threshold used
for the convergence criterion of the newton corrector}
\end{frame}
\begin{frame}
\frametitle{Tentative Conclusion}
\vspace*{-5mm}
\begin{itemize}
\item Original motivation
\begin{itemize}
\item Novel decoding technique
\item Possible decoding guarantees due to homotopy
continuation behavior
\end{itemize}
\item Simulation results
\begin{itemize}
\item Implementing a working decoder has proven
difficult, irrespective of the parameters / code chosen
\item The homotopy continuation implementation itself
seems to be working, judging by the DFR
\item There are two alternatives that both describe
the observed results:
\begin{itemize}
\item We always converge to the same
codeword - error rates are due to
Tx codewords being random
\item We randomly converge to codewords that
have nothing to do with what was sent
\end{itemize}
\end{itemize}
\item Problems
\begin{itemize}
\item It is not obvious how we can apply the
theory from homotopy continuation to the
decoder
\item Decoding algorithm seems too comput. expensive (matrix
inversion necessary for each iteration)
\end{itemize}
\item Conclusion
\begin{itemize}
\item There is no hard evidence yet that a decoder
based on homotopy continuation can't work
\item However, pursuing this line of research doesn't seem
particularly promising, due to missing motivation
and missing evidence it can work at all
\end{itemize}
\end{itemize}
\end{frame}
\end{document}

1101
src/2025-05-08/res/H.csv Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
2.0, 0.550964, 0.250955, 0.550964, 200
4.0, 0.487805, 0.215342, 0.487805, 200
6.0, 0.255102, 0.103152, 0.255102, 200
8.0, 0.057339, 0.018756, 0.057339, 200
10.0, 0.003046, 0.000718, 0.003046, 200
12.0, 0.000022, 0.000003, 0.000022, 22
1 SNR FER BER DFR frame_errors
2 2.0 0.550964 0.250955 0.550964 200
3 4.0 0.487805 0.215342 0.487805 200
4 6.0 0.255102 0.103152 0.255102 200
5 8.0 0.057339 0.018756 0.057339 200
6 10.0 0.003046 0.000718 0.003046 200
7 12.0 0.000022 0.000003 0.000022 22

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
1.0, 0.869565, 0.073072, 0.826087, 200
2.0, 0.653595, 0.045435, 0.630719, 200
3.0, 0.546448, 0.030672, 0.535519, 200
4.0, 0.377358, 0.017712, 0.371698, 200
5.0, 0.174825, 0.007219, 0.173077, 200
6.0, 0.068989, 0.002648, 0.065885, 200
1 SNR FER BER DFR frame_errors
2 1.0 0.869565 0.073072 0.826087 200
3 2.0 0.653595 0.045435 0.630719 200
4 3.0 0.546448 0.030672 0.535519 200
5 4.0 0.377358 0.017712 0.371698 200
6 5.0 0.174825 0.007219 0.173077 200
7 6.0 0.068989 0.002648 0.065885 200

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
1.0, 1.0, 0.532419, 0.635, 200
2.0, 1.0, 0.523710, 0.470, 200
3.0, 1.0, 0.520806, 0.425, 200
4.0, 1.0, 0.518871, 0.220, 200
5.0, 1.0, 0.512419, 0.125, 200
6.0, 1.0, 0.504839, 0.085, 200
1 SNR FER BER DFR frame_errors
2 1.0 1.0 0.532419 0.635 200
3 2.0 1.0 0.523710 0.470 200
4 3.0 1.0 0.520806 0.425 200
5 4.0 1.0 0.518871 0.220 200
6 5.0 1.0 0.512419 0.125 200
7 6.0 1.0 0.504839 0.085 200

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
2.0,1.000000,0.409194,0.985000,200
4.0,1.000000,0.302097,0.990000,200
6.0,0.995025,0.185684,0.930348,200
8.0,0.970874,0.106326,0.941748,200
10.0,0.749064,0.043132,0.734082,200
12.0,0.251889,0.009547,0.251889,200
1 SNR FER BER DFR frame_errors
2 2.0 1.000000 0.409194 0.985000 200
3 4.0 1.000000 0.302097 0.990000 200
4 6.0 0.995025 0.185684 0.930348 200
5 8.0 0.970874 0.106326 0.941748 200
6 10.0 0.749064 0.043132 0.734082 200
7 12.0 0.251889 0.009547 0.251889 200

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
2.0,1.000000,0.396613,0.965000,200
4.0,1.000000,0.298548,0.960000,200
6.0,1.000000,0.193871,0.960000,200
8.0,0.966184,0.106904,0.937198,200
10.0,0.716846,0.040351,0.709677,200
12.0,0.238379,0.009112,0.235995,200
1 SNR FER BER DFR frame_errors
2 2.0 1.000000 0.396613 0.965000 200
3 4.0 1.000000 0.298548 0.960000 200
4 6.0 1.000000 0.193871 0.960000 200
5 8.0 0.966184 0.106904 0.937198 200
6 10.0 0.716846 0.040351 0.709677 200
7 12.0 0.238379 0.009112 0.235995 200

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
2.0,1.000000,0.471774,0.250000,200
4.0,1.000000,0.461613,0.260000,200
6.0,1.000000,0.450806,0.125000,200
8.0,0.970874,0.454588,0.087379,200
10.0,0.738007,0.340198,0.110701,200
12.0,0.264201,0.119657,0.054161,200
1 SNR FER BER DFR frame_errors
2 2.0 1.000000 0.471774 0.250000 200
3 4.0 1.000000 0.461613 0.260000 200
4 6.0 1.000000 0.450806 0.125000 200
5 8.0 0.970874 0.454588 0.087379 200
6 10.0 0.738007 0.340198 0.110701 200
7 12.0 0.264201 0.119657 0.054161 200

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
2.0,0.506329,0.209637,0.470886,200
4.0,0.111794,0.039002,0.081610,200
6.0,0.036826,0.007674,0.002210,200
8.0,0.022379,0.002815,0.000000,200
10.0,0.008497,0.000683,0.000000,200
12.0,0.001114,0.000073,0.000000,200
1 SNR FER BER DFR frame_errors
2 2.0 0.506329 0.209637 0.470886 200
3 4.0 0.111794 0.039002 0.081610 200
4 6.0 0.036826 0.007674 0.002210 200
5 8.0 0.022379 0.002815 0.000000 200
6 10.0 0.008497 0.000683 0.000000 200
7 12.0 0.001114 0.000073 0.000000 200

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
1.0, 1.0, 0.524194, 0.700, 200
2.0, 1.0, 0.520161, 0.495, 200
3.0, 1.0, 0.509516, 0.455, 200
4.0, 1.0, 0.515161, 0.295, 200
5.0, 1.0, 0.506290, 0.145, 200
6.0, 1.0, 0.504516, 0.065, 200
1 SNR FER BER DFR frame_errors
2 1.0 1.0 0.524194 0.700 200
3 2.0 1.0 0.520161 0.495 200
4 3.0 1.0 0.509516 0.455 200
5 4.0 1.0 0.515161 0.295 200
6 5.0 1.0 0.506290 0.145 200
7 6.0 1.0 0.504516 0.065 200

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
2.0,1.000000,0.410484,0.860000,200
4.0,1.000000,0.308710,0.895000,200
6.0,1.000000,0.207581,0.900000,200
8.0,0.909091,0.100000,0.868182,200
10.0,0.602410,0.040420,0.575301,200
12.0,0.156128,0.006421,0.156128,200
1 SNR FER BER DFR frame_errors
2 2.0 1.000000 0.410484 0.860000 200
3 4.0 1.000000 0.308710 0.895000 200
4 6.0 1.000000 0.207581 0.900000 200
5 8.0 0.909091 0.100000 0.868182 200
6 10.0 0.602410 0.040420 0.575301 200
7 12.0 0.156128 0.006421 0.156128 200

View File

@ -0,0 +1,9 @@
SNR,FER,num_errors,num_iterations
0.00,7.353e-01,100,136
1.00,4.566e-01,100,219
2.00,2.695e-01,100,371
3.00,9.990e-02,100,1001
4.00,3.271e-02,100,3057
5.00,5.692e-03,100,17568
6.00,5.506e-04,100,181625
7.00,4.400e-05,44,1000000
1 SNR FER num_errors num_iterations
2 0.00 7.353e-01 100 136
3 1.00 4.566e-01 100 219
4 2.00 2.695e-01 100 371
5 3.00 9.990e-02 100 1001
6 4.00 3.271e-02 100 3057
7 5.00 5.692e-03 100 17568
8 6.00 5.506e-04 100 181625
9 7.00 4.400e-05 44 1000000

View File

@ -0,0 +1,121 @@
SNR,gamma,BER,FER,DFR,num_iterations
1.0,0.05,0.06718717896034518,0.643312101910828,0.31140350877192985,157.0
1.5,0.05,0.0661494487545937,0.6392405063291139,0.3218884120171674,158.0
2.0,0.05,0.05079308501158439,0.5580110497237569,0.29571984435797666,181.0
2.5,0.05,0.031607700312174816,0.40725806451612906,0.2392638036809816,248.0
3.0,0.05,0.02535950252623397,0.3042168674698795,0.18427518427518427,332.0
3.5,0.05,0.01818181818181818,0.22954545454545455,0.15221579961464354,440.0
4.0,0.05,0.00959242319990286,0.12672521957340024,0.09225512528473805,797.0
4.5,0.05,0.006309506892141537,0.08898678414096917,0.07195421095666395,1135.0
5.0,0.05,0.00286888005926325,0.042171189979123176,0.03466344216041919,2395.0
5.5,0.05,0.0013774794630334601,0.019604037267080744,0.01510227489963678,5152.0
1.0,0.06,0.07658688865764829,0.6516129032258065,0.2986425339366516,155.0
1.5,0.06,0.06632837984777093,0.5674157303370787,0.29365079365079366,178.0
2.0,0.06,0.055200966016905294,0.5401069518716578,0.26666666666666666,187.0
2.5,0.06,0.04103324681745149,0.38697318007662834,0.2018348623853211,261.0
3.0,0.06,0.025357499168606586,0.2603092783505155,0.15835140997830802,388.0
3.5,0.06,0.01972079154242342,0.21218487394957983,0.1407942238267148,476.0
4.0,0.06,0.00978494623655914,0.11222222222222222,0.07692307692307693,900.0
4.5,0.06,0.00609199720895282,0.08402662229617304,0.06893880712625872,1202.0
5.0,0.06,0.0027946638640407974,0.03739355794150315,0.031205164992826398,2701.0
5.5,0.06,0.0014139377270801887,0.018679489550582577,0.01332116788321168,5407.0
1.0,0.07,0.12405282528685863,0.6778523489932886,0.2766990291262136,149.0
1.5,0.07,0.09492028179458657,0.5804597701149425,0.27800829875518673,174.0
2.0,0.07,0.11432116270825948,0.554945054945055,0.2571428571428571,182.0
2.5,0.07,0.06734352910936897,0.40239043824701193,0.17973856209150327,251.0
3.0,0.07,0.053402005963675794,0.28291316526610644,0.13349514563106796,357.0
3.5,0.07,0.03186387228171605,0.20570264765784113,0.12321428571428572,491.0
4.0,0.07,0.0234468339307049,0.11689814814814815,0.06290672451193059,864.0
4.5,0.07,0.01270772238514174,0.08744588744588745,0.060211554109031735,1155.0
5.0,0.07,0.006274571064073525,0.04075867635189669,0.025560361777428233,2478.0
5.5,0.07,0.0028845455685591135,0.0206670759156947,0.013524424707307227,4887.0
1.0,0.08,0.182328190743338,0.7318840579710145,0.29949238578680204,138.0
1.5,0.08,0.12381129964572068,0.5838150289017341,0.24782608695652175,173.0
2.0,0.08,0.13440860215053763,0.5260416666666666,0.20987654320987653,192.0
2.5,0.08,0.09911772814998622,0.43162393162393164,0.1958762886597938,234.0
3.0,0.08,0.07541774640335984,0.27977839335180055,0.13842482100238662,361.0
3.5,0.08,0.06018882769472856,0.20528455284552846,0.11669658886894076,492.0
4.0,0.08,0.04350280032996136,0.13593539703903096,0.06775407779171895,743.0
4.5,0.08,0.030346963656133645,0.10316649642492338,0.06583969465648855,979.0
5.0,0.08,0.014361372859206273,0.04307036247334755,0.026567040265670402,2345.0
5.5,0.08,0.006640913568086678,0.024093511450381678,0.01526896875734085,4192.0
1.0,0.09,0.29746367889682346,0.7709923664122137,0.27624309392265195,131.0
1.5,0.09,0.22641509433962265,0.6352201257861635,0.2638888888888889,159.0
2.0,0.09,0.18493401759530792,0.5738636363636364,0.2314410480349345,176.0
2.5,0.09,0.19055861526357198,0.4926829268292683,0.21153846153846154,205.0
3.0,0.09,0.09714928732183045,0.2936046511627907,0.14640198511166252,344.0
3.5,0.09,0.0644494801386297,0.20867768595041322,0.12,484.0
4.0,0.09,0.059809624537281864,0.16557377049180327,0.08132530120481928,610.0
4.5,0.09,0.03724608669970138,0.10274669379450661,0.052986512524084775,983.0
5.0,0.09,0.02243519496303971,0.062384187770228534,0.031119090365050867,1619.0
5.5,0.09,0.012482709013445472,0.034648370497427104,0.015202702702702704,2915.0
1.0,0.1,0.34069478908188583,0.7769230769230769,0.26136363636363635,130.0
1.5,0.1,0.3058542413381123,0.7481481481481481,0.23295454545454544,135.0
2.0,0.1,0.2742878702131673,0.5906432748538012,0.21559633027522937,171.0
2.5,0.1,0.20332798131659613,0.45701357466063347,0.15648854961832062,221.0
3.0,0.1,0.14913510986442263,0.36594202898550726,0.14285714285714285,276.0
3.5,0.1,0.09198413292418232,0.23433874709976799,0.09832635983263599,431.0
4.0,0.1,0.08395293015631403,0.18330308529945555,0.08166666666666667,551.0
4.5,0.1,0.05740649699353326,0.11840562719812427,0.04049493813273341,853.0
5.0,0.1,0.03869453278812661,0.07902973395931143,0.028136882129277566,1278.0
5.5,0.1,0.0204410360212678,0.044631020768890854,0.01949740034662045,2263.0
1.0,0.11,0.44111027756939236,0.7829457364341085,0.26704545454545453,129.0
1.5,0.11,0.30016757436112274,0.6558441558441559,0.2413793103448276,154.0
2.0,0.11,0.285047677013593,0.6352201257861635,0.22815533980582525,159.0
2.5,0.11,0.2512272089761571,0.5489130434782609,0.19298245614035087,184.0
3.0,0.11,0.15604155276107162,0.3423728813559322,0.14985590778097982,295.0
3.5,0.11,0.1307300509337861,0.2657894736842105,0.10377358490566038,380.0
4.0,0.11,0.09022822433213422,0.1846435100548446,0.06495726495726496,547.0
4.5,0.11,0.06363750470691602,0.1309987029831388,0.04932182490752158,771.0
5.0,0.11,0.04158537563139749,0.08367854183927093,0.032852564102564104,1207.0
5.5,0.11,0.024072745376539324,0.04584657285519746,0.0160786065207682,2203.0
1.0,0.12,0.3686635944700461,0.8015873015873016,0.2840909090909091,126.0
1.5,0.12,0.3323888404533566,0.6824324324324325,0.24489795918367346,148.0
2.0,0.12,0.29266862170087976,0.6121212121212121,0.24311926605504589,165.0
2.5,0.12,0.23887096774193547,0.505,0.16666666666666666,200.0
3.0,0.12,0.1956177723676202,0.38113207547169814,0.14790996784565916,265.0
3.5,0.12,0.14758292972676598,0.28611898016997167,0.10632911392405063,353.0
4.0,0.12,0.11147035050334338,0.23006833712984054,0.09670781893004116,439.0
4.5,0.12,0.06464346349745331,0.13289473684210526,0.0594059405940594,760.0
5.0,0.12,0.05474095796676442,0.10202020202020202,0.03696498054474708,990.0
5.5,0.12,0.03271028037383177,0.05899532710280374,0.021714285714285714,1712.0
1.0,0.13,0.3831945889698231,0.8145161290322581,0.2832369942196532,124.0
1.5,0.13,0.3530340627114821,0.7062937062937062,0.27411167512690354,143.0
2.0,0.13,0.322372528616025,0.6516129032258065,0.27230046948356806,155.0
2.5,0.13,0.2628500531726338,0.554945054945055,0.2222222222222222,182.0
3.0,0.13,0.20543959519291588,0.396078431372549,0.1611842105263158,255.0
3.5,0.13,0.1576331582895724,0.2936046511627907,0.1134020618556701,344.0
4.0,0.13,0.14013883217639853,0.25569620253164554,0.10633484162895927,395.0
4.5,0.13,0.08928199791883455,0.1629032258064516,0.06766917293233082,620.0
5.0,0.13,0.0567049057097101,0.10233029381965553,0.03988326848249027,987.0
5.5,0.13,0.04593323449721384,0.08003169572107766,0.025482625482625483,1262.0
1.0,0.14,0.3830005120327701,0.8015873015873016,0.2840909090909091,126.0
1.5,0.14,0.35023041474654376,0.7593984962406015,0.2692307692307692,133.0
2.0,0.14,0.35659425060346717,0.6870748299319728,0.24615384615384617,147.0
2.5,0.14,0.28910856746444674,0.543010752688172,0.22821576763485477,186.0
3.0,0.14,0.18365102639296188,0.38257575757575757,0.1592356687898089,264.0
3.5,0.14,0.15388222055513878,0.2936046511627907,0.12020460358056266,344.0
4.0,0.14,0.14191927378829633,0.2537688442211055,0.1036036036036036,398.0
4.5,0.14,0.10066546356868937,0.17657342657342656,0.0848,572.0
5.0,0.14,0.06809621480514637,0.11676300578034682,0.04419889502762431,865.0
5.5,0.14,0.037988972344028135,0.06796769851951548,0.024294156270518712,1486.0
1.0,0.15,0.4050179211469534,0.8632478632478633,0.3352272727272727,117.0
1.5,0.15,0.3296728437428506,0.7163120567375887,0.29850746268656714,141.0
2.0,0.15,0.35769701919150676,0.6392405063291139,0.2882882882882883,158.0
2.5,0.15,0.29013611784449,0.5838150289017341,0.24782608695652175,173.0
3.0,0.15,0.21948924731182795,0.42083333333333334,0.2079207920792079,240.0
3.5,0.15,0.1787845080392355,0.3166144200626959,0.14016172506738545,319.0
4.0,0.15,0.11805555555555555,0.2337962962962963,0.11293634496919917,432.0
4.5,0.15,0.0756765020639046,0.15955766192733017,0.0718475073313783,633.0
5.0,0.15,0.06440677966101695,0.11412429378531073,0.04838709677419355,885.0
5.5,0.15,0.046331435800126504,0.08251633986928104,0.03622047244094488,1224.0
1.0,0.16,0.47146401985111663,0.8632478632478633,0.3352272727272727,117.0
1.5,0.16,0.3194971537001898,0.7426470588235294,0.3096446700507614,136.0
2.0,0.16,0.374910394265233,0.7481481481481481,0.3076923076923077,135.0
2.5,0.16,0.2666268418956591,0.6234567901234568,0.273542600896861,162.0
3.0,0.16,0.19184369263047468,0.4105691056910569,0.18,246.0
3.5,0.16,0.17089466541392628,0.3268608414239482,0.1510989010989011,309.0
4.0,0.16,0.13593282341203858,0.2603092783505155,0.12612612612612611,388.0
4.5,0.16,0.08454600785702429,0.1732418524871355,0.07313195548489666,583.0
5.0,0.16,0.06474681840901227,0.12038140643623362,0.05090497737556561,839.0
5.5,0.16,0.0342563516985441,0.06875425459496257,0.027796161482461945,1469.0
1 SNR gamma BER FER DFR num_iterations
2 1.0 0.05 0.06718717896034518 0.643312101910828 0.31140350877192985 157.0
3 1.5 0.05 0.0661494487545937 0.6392405063291139 0.3218884120171674 158.0
4 2.0 0.05 0.05079308501158439 0.5580110497237569 0.29571984435797666 181.0
5 2.5 0.05 0.031607700312174816 0.40725806451612906 0.2392638036809816 248.0
6 3.0 0.05 0.02535950252623397 0.3042168674698795 0.18427518427518427 332.0
7 3.5 0.05 0.01818181818181818 0.22954545454545455 0.15221579961464354 440.0
8 4.0 0.05 0.00959242319990286 0.12672521957340024 0.09225512528473805 797.0
9 4.5 0.05 0.006309506892141537 0.08898678414096917 0.07195421095666395 1135.0
10 5.0 0.05 0.00286888005926325 0.042171189979123176 0.03466344216041919 2395.0
11 5.5 0.05 0.0013774794630334601 0.019604037267080744 0.01510227489963678 5152.0
12 1.0 0.06 0.07658688865764829 0.6516129032258065 0.2986425339366516 155.0
13 1.5 0.06 0.06632837984777093 0.5674157303370787 0.29365079365079366 178.0
14 2.0 0.06 0.055200966016905294 0.5401069518716578 0.26666666666666666 187.0
15 2.5 0.06 0.04103324681745149 0.38697318007662834 0.2018348623853211 261.0
16 3.0 0.06 0.025357499168606586 0.2603092783505155 0.15835140997830802 388.0
17 3.5 0.06 0.01972079154242342 0.21218487394957983 0.1407942238267148 476.0
18 4.0 0.06 0.00978494623655914 0.11222222222222222 0.07692307692307693 900.0
19 4.5 0.06 0.00609199720895282 0.08402662229617304 0.06893880712625872 1202.0
20 5.0 0.06 0.0027946638640407974 0.03739355794150315 0.031205164992826398 2701.0
21 5.5 0.06 0.0014139377270801887 0.018679489550582577 0.01332116788321168 5407.0
22 1.0 0.07 0.12405282528685863 0.6778523489932886 0.2766990291262136 149.0
23 1.5 0.07 0.09492028179458657 0.5804597701149425 0.27800829875518673 174.0
24 2.0 0.07 0.11432116270825948 0.554945054945055 0.2571428571428571 182.0
25 2.5 0.07 0.06734352910936897 0.40239043824701193 0.17973856209150327 251.0
26 3.0 0.07 0.053402005963675794 0.28291316526610644 0.13349514563106796 357.0
27 3.5 0.07 0.03186387228171605 0.20570264765784113 0.12321428571428572 491.0
28 4.0 0.07 0.0234468339307049 0.11689814814814815 0.06290672451193059 864.0
29 4.5 0.07 0.01270772238514174 0.08744588744588745 0.060211554109031735 1155.0
30 5.0 0.07 0.006274571064073525 0.04075867635189669 0.025560361777428233 2478.0
31 5.5 0.07 0.0028845455685591135 0.0206670759156947 0.013524424707307227 4887.0
32 1.0 0.08 0.182328190743338 0.7318840579710145 0.29949238578680204 138.0
33 1.5 0.08 0.12381129964572068 0.5838150289017341 0.24782608695652175 173.0
34 2.0 0.08 0.13440860215053763 0.5260416666666666 0.20987654320987653 192.0
35 2.5 0.08 0.09911772814998622 0.43162393162393164 0.1958762886597938 234.0
36 3.0 0.08 0.07541774640335984 0.27977839335180055 0.13842482100238662 361.0
37 3.5 0.08 0.06018882769472856 0.20528455284552846 0.11669658886894076 492.0
38 4.0 0.08 0.04350280032996136 0.13593539703903096 0.06775407779171895 743.0
39 4.5 0.08 0.030346963656133645 0.10316649642492338 0.06583969465648855 979.0
40 5.0 0.08 0.014361372859206273 0.04307036247334755 0.026567040265670402 2345.0
41 5.5 0.08 0.006640913568086678 0.024093511450381678 0.01526896875734085 4192.0
42 1.0 0.09 0.29746367889682346 0.7709923664122137 0.27624309392265195 131.0
43 1.5 0.09 0.22641509433962265 0.6352201257861635 0.2638888888888889 159.0
44 2.0 0.09 0.18493401759530792 0.5738636363636364 0.2314410480349345 176.0
45 2.5 0.09 0.19055861526357198 0.4926829268292683 0.21153846153846154 205.0
46 3.0 0.09 0.09714928732183045 0.2936046511627907 0.14640198511166252 344.0
47 3.5 0.09 0.0644494801386297 0.20867768595041322 0.12 484.0
48 4.0 0.09 0.059809624537281864 0.16557377049180327 0.08132530120481928 610.0
49 4.5 0.09 0.03724608669970138 0.10274669379450661 0.052986512524084775 983.0
50 5.0 0.09 0.02243519496303971 0.062384187770228534 0.031119090365050867 1619.0
51 5.5 0.09 0.012482709013445472 0.034648370497427104 0.015202702702702704 2915.0
52 1.0 0.1 0.34069478908188583 0.7769230769230769 0.26136363636363635 130.0
53 1.5 0.1 0.3058542413381123 0.7481481481481481 0.23295454545454544 135.0
54 2.0 0.1 0.2742878702131673 0.5906432748538012 0.21559633027522937 171.0
55 2.5 0.1 0.20332798131659613 0.45701357466063347 0.15648854961832062 221.0
56 3.0 0.1 0.14913510986442263 0.36594202898550726 0.14285714285714285 276.0
57 3.5 0.1 0.09198413292418232 0.23433874709976799 0.09832635983263599 431.0
58 4.0 0.1 0.08395293015631403 0.18330308529945555 0.08166666666666667 551.0
59 4.5 0.1 0.05740649699353326 0.11840562719812427 0.04049493813273341 853.0
60 5.0 0.1 0.03869453278812661 0.07902973395931143 0.028136882129277566 1278.0
61 5.5 0.1 0.0204410360212678 0.044631020768890854 0.01949740034662045 2263.0
62 1.0 0.11 0.44111027756939236 0.7829457364341085 0.26704545454545453 129.0
63 1.5 0.11 0.30016757436112274 0.6558441558441559 0.2413793103448276 154.0
64 2.0 0.11 0.285047677013593 0.6352201257861635 0.22815533980582525 159.0
65 2.5 0.11 0.2512272089761571 0.5489130434782609 0.19298245614035087 184.0
66 3.0 0.11 0.15604155276107162 0.3423728813559322 0.14985590778097982 295.0
67 3.5 0.11 0.1307300509337861 0.2657894736842105 0.10377358490566038 380.0
68 4.0 0.11 0.09022822433213422 0.1846435100548446 0.06495726495726496 547.0
69 4.5 0.11 0.06363750470691602 0.1309987029831388 0.04932182490752158 771.0
70 5.0 0.11 0.04158537563139749 0.08367854183927093 0.032852564102564104 1207.0
71 5.5 0.11 0.024072745376539324 0.04584657285519746 0.0160786065207682 2203.0
72 1.0 0.12 0.3686635944700461 0.8015873015873016 0.2840909090909091 126.0
73 1.5 0.12 0.3323888404533566 0.6824324324324325 0.24489795918367346 148.0
74 2.0 0.12 0.29266862170087976 0.6121212121212121 0.24311926605504589 165.0
75 2.5 0.12 0.23887096774193547 0.505 0.16666666666666666 200.0
76 3.0 0.12 0.1956177723676202 0.38113207547169814 0.14790996784565916 265.0
77 3.5 0.12 0.14758292972676598 0.28611898016997167 0.10632911392405063 353.0
78 4.0 0.12 0.11147035050334338 0.23006833712984054 0.09670781893004116 439.0
79 4.5 0.12 0.06464346349745331 0.13289473684210526 0.0594059405940594 760.0
80 5.0 0.12 0.05474095796676442 0.10202020202020202 0.03696498054474708 990.0
81 5.5 0.12 0.03271028037383177 0.05899532710280374 0.021714285714285714 1712.0
82 1.0 0.13 0.3831945889698231 0.8145161290322581 0.2832369942196532 124.0
83 1.5 0.13 0.3530340627114821 0.7062937062937062 0.27411167512690354 143.0
84 2.0 0.13 0.322372528616025 0.6516129032258065 0.27230046948356806 155.0
85 2.5 0.13 0.2628500531726338 0.554945054945055 0.2222222222222222 182.0
86 3.0 0.13 0.20543959519291588 0.396078431372549 0.1611842105263158 255.0
87 3.5 0.13 0.1576331582895724 0.2936046511627907 0.1134020618556701 344.0
88 4.0 0.13 0.14013883217639853 0.25569620253164554 0.10633484162895927 395.0
89 4.5 0.13 0.08928199791883455 0.1629032258064516 0.06766917293233082 620.0
90 5.0 0.13 0.0567049057097101 0.10233029381965553 0.03988326848249027 987.0
91 5.5 0.13 0.04593323449721384 0.08003169572107766 0.025482625482625483 1262.0
92 1.0 0.14 0.3830005120327701 0.8015873015873016 0.2840909090909091 126.0
93 1.5 0.14 0.35023041474654376 0.7593984962406015 0.2692307692307692 133.0
94 2.0 0.14 0.35659425060346717 0.6870748299319728 0.24615384615384617 147.0
95 2.5 0.14 0.28910856746444674 0.543010752688172 0.22821576763485477 186.0
96 3.0 0.14 0.18365102639296188 0.38257575757575757 0.1592356687898089 264.0
97 3.5 0.14 0.15388222055513878 0.2936046511627907 0.12020460358056266 344.0
98 4.0 0.14 0.14191927378829633 0.2537688442211055 0.1036036036036036 398.0
99 4.5 0.14 0.10066546356868937 0.17657342657342656 0.0848 572.0
100 5.0 0.14 0.06809621480514637 0.11676300578034682 0.04419889502762431 865.0
101 5.5 0.14 0.037988972344028135 0.06796769851951548 0.024294156270518712 1486.0
102 1.0 0.15 0.4050179211469534 0.8632478632478633 0.3352272727272727 117.0
103 1.5 0.15 0.3296728437428506 0.7163120567375887 0.29850746268656714 141.0
104 2.0 0.15 0.35769701919150676 0.6392405063291139 0.2882882882882883 158.0
105 2.5 0.15 0.29013611784449 0.5838150289017341 0.24782608695652175 173.0
106 3.0 0.15 0.21948924731182795 0.42083333333333334 0.2079207920792079 240.0
107 3.5 0.15 0.1787845080392355 0.3166144200626959 0.14016172506738545 319.0
108 4.0 0.15 0.11805555555555555 0.2337962962962963 0.11293634496919917 432.0
109 4.5 0.15 0.0756765020639046 0.15955766192733017 0.0718475073313783 633.0
110 5.0 0.15 0.06440677966101695 0.11412429378531073 0.04838709677419355 885.0
111 5.5 0.15 0.046331435800126504 0.08251633986928104 0.03622047244094488 1224.0
112 1.0 0.16 0.47146401985111663 0.8632478632478633 0.3352272727272727 117.0
113 1.5 0.16 0.3194971537001898 0.7426470588235294 0.3096446700507614 136.0
114 2.0 0.16 0.374910394265233 0.7481481481481481 0.3076923076923077 135.0
115 2.5 0.16 0.2666268418956591 0.6234567901234568 0.273542600896861 162.0
116 3.0 0.16 0.19184369263047468 0.4105691056910569 0.18 246.0
117 3.5 0.16 0.17089466541392628 0.3268608414239482 0.1510989010989011 309.0
118 4.0 0.16 0.13593282341203858 0.2603092783505155 0.12612612612612611 388.0
119 4.5 0.16 0.08454600785702429 0.1732418524871355 0.07313195548489666 583.0
120 5.0 0.16 0.06474681840901227 0.12038140643623362 0.05090497737556561 839.0
121 5.5 0.16 0.0342563516985441 0.06875425459496257 0.027796161482461945 1469.0

View File

@ -0,0 +1,7 @@
SNR,FER,BER,DFR,frame_errors
2.0,1.0,0.499032,0.895,200
4.0,1.0,0.480000,0.865,200
6.0,1.0,0.483710,0.885,200
8.0,1.0,0.478548,0.800,200
10.0,1.0,0.504516,0.575,200
12.0,1.0,0.500323,0.135,200
1 SNR FER BER DFR frame_errors
2 2.0 1.0 0.499032 0.895 200
3 4.0 1.0 0.480000 0.865 200
4 6.0 1.0 0.483710 0.885 200
5 8.0 1.0 0.478548 0.800 200
6 10.0 1.0 0.504516 0.575 200
7 12.0 1.0 0.500323 0.135 200

View File

@ -0,0 +1,7 @@
SNR,FER,num_errors,num_iterations
2.0, 0.341880, 0.187546, 0.186325, 200
4.0, 0.238949, 0.121010, 0.102748, 200
6.0, 0.120555, 0.051580, 0.035564, 200
8.0, 0.048614, 0.015973, 0.005348, 200
10.0, 0.015249, 0.004466, 0.000610, 200
12.0, 0.002916, 0.000846, 0.000000, 200
1 SNR,FER,num_errors,num_iterations
2 2.0, 0.341880, 0.187546, 0.186325, 200
3 4.0, 0.238949, 0.121010, 0.102748, 200
4 6.0, 0.120555, 0.051580, 0.035564, 200
5 8.0, 0.048614, 0.015973, 0.005348, 200
6 10.0, 0.015249, 0.004466, 0.000610, 200
7 12.0, 0.002916, 0.000846, 0.000000, 200

View File

@ -0,0 +1,13 @@
import sympy as sp
def main():
x1,x2,x3 = sp.symbols("x_1 x_2 x_3")
x = sp.Matrix([x1, x2, x3])
F = sp.Matrix([1 - x1**2, 1 - x2**2, 1 - x3**2, 1 - x1*x2, 1 - x1*x3])
print(F.jacobian(x))
print(F.jacobian(x).rank())
if __name__=="__main__":
main()

View File

@ -0,0 +1,46 @@
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def main():
def F(x1, x2):
return np.array([x1 + x2, x2 + 0.5])
def G(x1, x2):
return np.array([x1, x2])
def H(x1, x2, t):
return (1 - t) * G(x1, x2) + t * F(x1, x2)
# x = np.linspace(-1, 1, 10)
# y = np.linspace(-1, 1, 10)
# X1, X2 = np.meshgrid(x, y)
#
# fig, axes = plt.subplots(1, 4, figsize=(20, 4))
#
# for i, t in enumerate(np.linspace(0, 1, 4)):
# H_ = H(X1, X2, t)
# axes[i].quiver(X1, X2, *H_, color='r')
# axes[i].set_title(f't = {t}')
#
# plt.show()
df_dict = {"x1": [], "x2": [], "t": [], "H1": [], "H2": [], "Hmag": []}
for x1 in np.linspace(-1, 1, 10):
for x2 in np.linspace(-1, 1, 10):
for t in [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]:
df_dict["x1"].append(x1)
df_dict["x2"].append(x2)
df_dict["t"].append(t)
H_ = H(x1, x2, t)
df_dict["H1"].append(H_[0])
df_dict["H2"].append(H_[1])
df_dict["Hmag"].append(np.sqrt(H_[0]**2 + H_[1]**2))
df = pd.DataFrame(df_dict).sort_values(by=["t", "x2", "x1"])
df.to_csv("H.csv", index=False)
if __name__=="__main__":
main()