Compare commits
28 Commits
1de3eb10fc
...
4250f2a903
| Author | SHA1 | Date | |
|---|---|---|---|
| 4250f2a903 | |||
| e940e7ab9f | |||
| 82f27fbede | |||
| a7785f6c75 | |||
| 9edd80cf28 | |||
| fc9dcbe11e | |||
| 5c4bad30e2 | |||
| 1d822dac8b | |||
| 7fc66a2c68 | |||
| 9ee3eb64e9 | |||
| 2246915be9 | |||
| 5480f2ed7b | |||
| f21563251b | |||
| 4ae8f66603 | |||
| 1e3af6c69e | |||
| 942f33582f | |||
| 9f3bef606a | |||
| 3dd0863aae | |||
| b60b1a2aed | |||
| 7db31aec85 | |||
| 631eeed5cd | |||
| 733577fbfb | |||
| 6e819d650f | |||
| 1aa45bd741 | |||
| 168688e9a0 | |||
| 0949255d78 | |||
| 12dc737537 | |||
| 082666a8e2 |
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -4,3 +4,6 @@
|
||||
[submodule "lib/cel-thesis"]
|
||||
path = lib/cel-thesis
|
||||
url = ssh://git@100.123.176.93:2222/an.tsouchlos/cel-thesis.git
|
||||
[submodule "lib/latex-common"]
|
||||
path = lib/latex-common
|
||||
url = ssh://git@100.123.176.93:2222/an.tsouchlos/latex-common.git
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#!/bin/bash
|
||||
SESSION=$1
|
||||
|
||||
tmux send-keys -t "$SESSION:1" "cd ~/workspace/private/ma-thesis/" Enter
|
||||
tmux send-keys -t "$SESSION:1" "./.setup_local_env.sh" Enter
|
||||
# tmux send-keys -t "$SESSION:1" "export TEXINPUTS=./lib/cel-slides-template-2025:\$TEXINPUTS" C-m
|
||||
tmux send-keys -t "$SESSION:1" "trap './.clean_local_env.sh' EXIT" Enter
|
||||
|
||||
5
Makefile
5
Makefile
@@ -1,4 +1,5 @@
|
||||
DOCUMENTS := $(patsubst src/%/main.tex,build/%.pdf,$(wildcard src/*/main.tex))
|
||||
DOCUMENTS := build/midterm_presentation.pdf build/thesis.pdf
|
||||
# DOCUMENTS := build/thesis.pdf
|
||||
|
||||
.PHONY: all
|
||||
all: $(DOCUMENTS)
|
||||
@@ -6,7 +7,7 @@ all: $(DOCUMENTS)
|
||||
build/%.pdf: src/%/main.tex build/prepared
|
||||
TEXINPUTS=./lib/cel-slides-template-2025:$(dir $<):$$TEXINPUTS \
|
||||
latexmk -outdir=build/$* $<
|
||||
mv build/main.pdf $@
|
||||
mv build/thesis/main.pdf $@
|
||||
|
||||
build/prepared:
|
||||
mkdir -p build
|
||||
|
||||
1
lib/latex-common
Submodule
1
lib/latex-common
Submodule
Submodule lib/latex-common added at bded242752
1384
src/final_presentation/MA.bib
Normal file
1384
src/final_presentation/MA.bib
Normal file
File diff suppressed because it is too large
Load Diff
195
src/final_presentation/gen_sliding_window_overlap_image.py
Normal file
195
src/final_presentation/gen_sliding_window_overlap_image.py
Normal file
@@ -0,0 +1,195 @@
|
||||
import warnings
|
||||
from typing import Sequence
|
||||
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.patches as pt
|
||||
from scipy.sparse import csc_matrix
|
||||
|
||||
from quits.decoder import spacetime
|
||||
from quits.decoder import detector_error_model_to_matrix
|
||||
|
||||
from quits.qldpc_code import BbCode
|
||||
from quits import ErrorModel, CircuitBuildOptions
|
||||
|
||||
|
||||
def build_bb_circuit(N: int, num_rounds: int, p: float):
|
||||
# fmt: off
|
||||
if N == 72:
|
||||
code = BbCode(l=6, m=6, A_x_pows=[3], A_y_pows=[1, 2], B_x_pows=[1, 2], B_y_pows=[3])
|
||||
elif N == 90:
|
||||
code = BbCode(l=15, m=3, A_x_pows=[9], A_y_pows=[1, 2], B_x_pows=[2, 7], B_y_pows=[0])
|
||||
elif N == 108:
|
||||
code = BbCode(l=9, m=6, A_x_pows=[3], A_y_pows=[1, 2], B_x_pows=[1, 2], B_y_pows=[3])
|
||||
elif N == 144:
|
||||
code = BbCode(l=12, m=6, A_x_pows=[3], A_y_pows=[1, 2], B_x_pows=[1, 2], B_y_pows=[3])
|
||||
elif N == 288:
|
||||
code = BbCode(l=12, m=12, A_x_pows=[3], A_y_pows=[2, 7], B_x_pows=[1, 2], B_y_pows=[3])
|
||||
elif N == 360:
|
||||
code = BbCode(l=30, m=6, A_x_pows=[9], A_y_pows=[1, 2], B_x_pows=[25, 26], B_y_pows=[3])
|
||||
elif N == 756:
|
||||
code = BbCode(l=21, m=18, A_x_pows=[3], A_y_pows=[10, 17], B_x_pows=[3, 19], B_y_pows=[5])
|
||||
else:
|
||||
assert False, "Unsupported code size"
|
||||
# fmt: on
|
||||
|
||||
circuit = code.build_circuit(
|
||||
error_model=ErrorModel(p, p, p, p),
|
||||
num_rounds=num_rounds,
|
||||
basis="Z",
|
||||
circuit_build_options=CircuitBuildOptions(),
|
||||
seed=1,
|
||||
)
|
||||
|
||||
return code, circuit
|
||||
|
||||
|
||||
|
||||
|
||||
def compute_num_windows(num_rounds: int, W: int, F: int):
|
||||
"""
|
||||
This was extracted from the function `sliding_window_circuit_mem()` of
|
||||
`quits.decoder`.
|
||||
"""
|
||||
if 2 + num_rounds - W >= 0:
|
||||
# num_cor_rounds = num of windows before the last window
|
||||
num_cor_rounds = (2 + num_rounds - W) // F
|
||||
|
||||
# we can slide one more window if the remaining rounds > W
|
||||
if (2 + num_rounds - W) % F != 0:
|
||||
num_cor_rounds += 1
|
||||
else:
|
||||
num_cor_rounds = 0
|
||||
warnings.warn(
|
||||
"Window size larger than the syndrome extraction rounds: Doing"
|
||||
" whole history correction"
|
||||
)
|
||||
|
||||
return num_cor_rounds + 1
|
||||
|
||||
|
||||
def get_overlap_info(
|
||||
col_start_indices: Sequence, W: int, F: int, m: int, win_check_set: Sequence
|
||||
):
|
||||
def i_B(k: int):
|
||||
return col_start_indices[k]
|
||||
|
||||
def i_E(k: int):
|
||||
return i_B(k) + win_check_set[k].shape[1]
|
||||
|
||||
def j_B(k: int):
|
||||
return F * (k) * m
|
||||
|
||||
def j_E(k: int):
|
||||
return (F * k + W) * m
|
||||
|
||||
num_windows = len(win_check_set)
|
||||
|
||||
overlap_begin_positions = []
|
||||
for k in range(num_windows - 1):
|
||||
overlap_begin_positions.append((j_B(k + 1) - j_B(k), i_B(k + 1) - i_B(k)))
|
||||
|
||||
overlap_end_positions = []
|
||||
for k in range(1, num_windows):
|
||||
overlap_end_positions.append((j_E(k - 1) - j_B(k), i_E(k - 1) - i_B(k)))
|
||||
|
||||
return overlap_begin_positions, overlap_end_positions
|
||||
|
||||
|
||||
def reconstruct_window_start_col_indices(win_observable_set: Sequence):
|
||||
"""
|
||||
This function effectively just reconstructs the `col_min` values of each
|
||||
window, from the `spacetime()` function of `quits.decoder`.
|
||||
"""
|
||||
num_windows = len(win_observable_set)
|
||||
|
||||
col_mins = [0]
|
||||
|
||||
for k in range(num_windows - 1):
|
||||
col_mins.append(col_mins[-1] + win_observable_set[k].shape[1])
|
||||
|
||||
return col_mins
|
||||
|
||||
|
||||
|
||||
|
||||
num_rounds = 12
|
||||
N = 72
|
||||
p = 0.005
|
||||
W = 5
|
||||
F = 3
|
||||
|
||||
#
|
||||
# Get detector error matrix and split it into windows
|
||||
#
|
||||
|
||||
code, circuit = build_bb_circuit(N, num_rounds, p)
|
||||
model = circuit.detector_error_model(decompose_errors=False)
|
||||
check_matrix, observable_matrix, priors = detector_error_model_to_matrix(model)
|
||||
|
||||
num_windows = compute_num_windows(num_rounds, W, F)
|
||||
win_check_set, win_observable_set, win_priors_set, win_update = spacetime(
|
||||
circuit, code.hz, W, F, num_windows - 1
|
||||
)
|
||||
|
||||
col_start_indices = reconstruct_window_start_col_indices(win_observable_set)
|
||||
|
||||
#
|
||||
# Paint rectangles
|
||||
#
|
||||
|
||||
custom_colors = [
|
||||
(162/255, 34/255, 35/255),
|
||||
(223/255, 155/255, 27/255),
|
||||
(70/255, 100/255, 170/255),
|
||||
(163/255, 16/255, 124/255),
|
||||
]
|
||||
|
||||
fig, ax = plt.subplots(1, 1, figsize=(10, 10))
|
||||
ax.spy(check_matrix.toarray())
|
||||
|
||||
colors = [custom_colors[i % len(custom_colors)] for i in range(num_windows)]
|
||||
|
||||
m = code.hz.shape[0]
|
||||
# for win_idx in range(num_windows):
|
||||
# col_start_idx = col_start_indices[win_idx]
|
||||
# row_start_idx = win_idx * F * m
|
||||
#
|
||||
# ax.add_patch(
|
||||
# pt.Rectangle(
|
||||
# (col_start_idx, row_start_idx),
|
||||
# win_check_set[win_idx].shape[1],
|
||||
# win_check_set[win_idx].shape[0],
|
||||
# fc="none",
|
||||
# ec=colors[win_idx],
|
||||
# )
|
||||
# )
|
||||
|
||||
# overlap_begin_positions, overlap_end_positions = get_overlap_info(
|
||||
# col_start_indices, W, F, m, win_check_set
|
||||
# )
|
||||
|
||||
# for k in range(len(win_check_set) - 1):
|
||||
# ax.add_patch(
|
||||
# pt.Rectangle(
|
||||
# (
|
||||
# overlap_begin_positions[k][1] + col_start_indices[k],
|
||||
# overlap_begin_positions[k][0] + F * k * m,
|
||||
# ),
|
||||
# win_check_set[k].shape[1] - overlap_begin_positions[k][1],
|
||||
# win_check_set[k].shape[0] - overlap_begin_positions[k][0],
|
||||
# fc=colors[k],
|
||||
# ec=colors[k],
|
||||
# alpha=0.3,
|
||||
# )
|
||||
# )
|
||||
|
||||
|
||||
ax.set_xticks([])
|
||||
ax.set_yticks([])
|
||||
|
||||
fig.savefig('72_bb_dem_no_windows.pdf', bbox_inches='tight')
|
||||
|
||||
plt.show()
|
||||
|
||||
|
||||
2085
src/final_presentation/main.tex
Normal file
2085
src/final_presentation/main.tex
Normal file
File diff suppressed because it is too large
Load Diff
BIN
src/final_presentation/res/72_bb_dem.pdf
Normal file
BIN
src/final_presentation/res/72_bb_dem.pdf
Normal file
Binary file not shown.
BIN
src/final_presentation/res/72_bb_dem_no_windows.pdf
Normal file
BIN
src/final_presentation/res/72_bb_dem_no_windows.pdf
Normal file
Binary file not shown.
BIN
src/final_presentation/res/architecture.pdf
Normal file
BIN
src/final_presentation/res/architecture.pdf
Normal file
Binary file not shown.
BIN
src/final_presentation/res/gdg.pdf
Normal file
BIN
src/final_presentation/res/gdg.pdf
Normal file
Binary file not shown.
BIN
src/final_presentation/res/google_roadmap.png
Normal file
BIN
src/final_presentation/res/google_roadmap.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 515 KiB |
BIN
src/final_presentation/res/stergios_tanner_graph.png
Normal file
BIN
src/final_presentation/res/stergios_tanner_graph.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 229 KiB |
BIN
src/final_presentation/res/taxonomy.pdf
Normal file
BIN
src/final_presentation/res/taxonomy.pdf
Normal file
Binary file not shown.
@@ -62,7 +62,7 @@
|
||||
\DeclareFieldFormat{doi}{}
|
||||
\DeclareFieldFormat[article,book,inproceedings]{urldate}{}
|
||||
|
||||
\addbibresource{MA.bib}
|
||||
\addbibresource{src/midterm_presentation/MA.bib}
|
||||
|
||||
%
|
||||
%
|
||||
|
||||
417
src/qec-meeting-presentation/main.tex
Normal file
417
src/qec-meeting-presentation/main.tex
Normal file
@@ -0,0 +1,417 @@
|
||||
\documentclass[xcolor=dvipsnames,t,aspectratio=169]{beamer}
|
||||
\setbeamersize{text margin left=1cm,text margin right=1cm,}
|
||||
|
||||
\usepackage{subcaption}
|
||||
\usepackage{minted}
|
||||
\usepackage[minted, most]{tcolorbox}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{bm}
|
||||
\usepackage[dvipsnames]{xcolor}
|
||||
\usepackage{siunitx}
|
||||
\usepackage{graphics}
|
||||
\usepackage{xfp}
|
||||
\usepackage{quantikz}
|
||||
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[scaled=.92]{helvet}
|
||||
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{positioning, arrows.meta, shapes.misc,
|
||||
decorations.pathreplacing, calc}
|
||||
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{pgffor}
|
||||
\usepgfplotslibrary{groupplots}
|
||||
|
||||
% \usetikzlibrary{external}
|
||||
% \tikzexternalize
|
||||
|
||||
%
|
||||
%
|
||||
% Set up the theme
|
||||
%
|
||||
%
|
||||
|
||||
% General and beamer options
|
||||
|
||||
\makeatletter
|
||||
\addtobeamertemplate{author}{\centering}{}
|
||||
\addtobeamertemplate{date}{\vspace*{-0.85cm}\centering}{}
|
||||
\makeatother
|
||||
|
||||
\setbeamertemplate{enumerate items}[circle]
|
||||
\setbeamertemplate{itemize items}[circle]
|
||||
\setbeamercolor{title}{fg=black}
|
||||
\setbeamercolor{frametitle}{fg=black}
|
||||
|
||||
\setbeamertemplate{footline}[frame number]
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
|
||||
% \AtBeginSection[]{
|
||||
% \begin{frame}
|
||||
% \frametitle{Overview}
|
||||
% \tableofcontents[currentsection]
|
||||
% \end{frame}
|
||||
% }
|
||||
%
|
||||
% \AtBeginSubsection[]{
|
||||
% \begin{frame}
|
||||
% \frametitle{Overview}
|
||||
% \tableofcontents[currentsubsection]
|
||||
% \end{frame}
|
||||
% }
|
||||
|
||||
\fontfamily{cmss}\selectfont
|
||||
|
||||
\newcommand\wider[2][3em]{%
|
||||
\makebox[\linewidth][c]{%
|
||||
\begin{minipage}{\dimexpr\textwidth+#1\relax}
|
||||
\raggedright#2
|
||||
\end{minipage}%
|
||||
}%
|
||||
}
|
||||
|
||||
% Code listings
|
||||
|
||||
\usemintedstyle{gruvbox-dark}
|
||||
\definecolor{gruvbox-bg}{HTML}{282828}
|
||||
|
||||
% PGF color scheme
|
||||
|
||||
\input{lib/latex-common/common.tex}
|
||||
\pgfplotsset{colorscheme/rocket}
|
||||
|
||||
%
|
||||
%
|
||||
% Configure document
|
||||
%
|
||||
%
|
||||
|
||||
\title{Soft-Information Aware Sliding-Window Decoding}
|
||||
\author{Andreas Tsouchlos}
|
||||
\date{March 26, 2026}
|
||||
|
||||
%
|
||||
%
|
||||
% Custom commands
|
||||
%
|
||||
%
|
||||
|
||||
\newcommand{\red}[1]{\textcolor{red}{#1}}
|
||||
|
||||
\newcommand{\linkpython}[1]{
|
||||
\scalebox{0.7}{
|
||||
\begingroup
|
||||
\setbox0=\hbox{\includegraphics[scale=0.18]{\res/python-logo.pdf}}%
|
||||
\parbox{\wd0}{\box0}\endgroup
|
||||
\hspace{1mm}
|
||||
\colorbox{gruvbox-bg}{%
|
||||
\textcolor{white}{%
|
||||
\texttt{#1}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
|
||||
%
|
||||
%
|
||||
% Content
|
||||
%
|
||||
%
|
||||
|
||||
\begin{document}
|
||||
|
||||
\frame[plain]{\titlepage}
|
||||
\setcounter{framenumber}{0}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Motivation and Core Idea}
|
||||
\label{sec:Motivation and Core Idea}
|
||||
|
||||
\newsavebox{\innercircuit}
|
||||
\begin{frame}
|
||||
\frametitle{Sliding-Window Decoding for Fault-Tolerant QEC}
|
||||
|
||||
% \vspace*{-5mm}
|
||||
|
||||
\begin{figure}
|
||||
\scalebox{0.8}{
|
||||
\savebox{\innercircuit}{
|
||||
\begin{tikzpicture}[
|
||||
block/.style={draw, rectangle, minimum
|
||||
height=1cm, minimum width=1.2cm, align=center,
|
||||
fill=white, font=\small},
|
||||
container/.style={draw, thick, inner sep=0.6cm}
|
||||
]
|
||||
% Internal blocks
|
||||
\node (se1) [block]
|
||||
{$\text{SE}_1$ \\ + noise};
|
||||
\node (se2) [block, right=0.5cm of se1]
|
||||
{$\text{SE}_2$ \\ + noise};
|
||||
\node (dots) [right=0.3cm of se2] {\dots};
|
||||
|
||||
% Wires
|
||||
\draw (se1.west) -- ++(-0.4,0);
|
||||
\draw (se1.east) -- (se2.west);
|
||||
\draw (se2.east) -- (dots.west);
|
||||
\draw (dots.east) -- ++(0.4,0);
|
||||
|
||||
% The "Circuit" container
|
||||
\node (box) [
|
||||
container, fit=(se1) (se2) (dots),
|
||||
label={[anchor=north west, xshift=2pt]
|
||||
north west:Complete circuit}
|
||||
] {};
|
||||
\end{tikzpicture}
|
||||
}
|
||||
|
||||
\begin{tikzpicture}[
|
||||
every edge/.style = {draw, -{latex}}
|
||||
]
|
||||
\node (pcm) {Code~/~$\bm{H}_\text{PCM}$};
|
||||
|
||||
\node[
|
||||
rectangle,
|
||||
draw=black,
|
||||
minimum width=2cm, minimum height=1cm,
|
||||
right=of pcm,
|
||||
align=center
|
||||
] (sec) {Single\\ SE Circ.};
|
||||
|
||||
\node[right=of sec] (qc) {\usebox{\innercircuit}};
|
||||
|
||||
\node[right=of qc] (dem) {$\bm{H}_\text{DEM}$};
|
||||
|
||||
\draw (pcm.east) edge[bend left] (sec.west);
|
||||
\draw (sec.east) edge[bend left] ($(qc.west) + (0.22,0)$);
|
||||
\draw ($(qc.east) + (-0.22,0)$) edge[bend left]
|
||||
node[midway, above] {Stim} (dem.west);
|
||||
\end{tikzpicture}
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
\only<1>{
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[scale=0.55]{./res/pcm.png}
|
||||
\end{figure}
|
||||
}
|
||||
\only<2->{
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[scale=0.55]{./res/windowing.png}
|
||||
\end{figure}
|
||||
}
|
||||
|
||||
\vspace*{-5mm}
|
||||
|
||||
\visible<2->{
|
||||
\begin{align*}
|
||||
\colorbox{red!20}{$\bm{H}_1 \bm{e}_1 = \bm{s}_1$}
|
||||
\hspace{2mm}\rightarrow\hspace{2mm} \hat{\bm{e_1}} = \cdots
|
||||
\hspace{2mm}\rightarrow\hspace{2mm} \bm{s}_2' = \cdots \\
|
||||
\colorbox{ForestGreen!20}{$\bm{H}_2 \bm{e}_2 = \bm{s}_2'$}
|
||||
\hspace{2mm}\rightarrow\hspace{2mm} \hat{\bm{e_2}} = \cdots
|
||||
\hspace{2mm}\rightarrow\hspace{2mm} \bm{s}_3' = \cdots \\
|
||||
\colorbox{blue!20}{$\bm{H}_3 \bm{e}_3 = \bm{s}_3'$}
|
||||
\hspace{2mm}\rightarrow\hspace{2mm} \hat{\bm{e_3}} = \cdots
|
||||
\hspace{2mm}\rightarrow\hspace{2mm} \bm{s}_4' = \cdots
|
||||
% &\hspace{2.25mm}\vdots
|
||||
\end{align*}
|
||||
}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Similarities to Spatially-Coupled LDPC Codes}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[scale=0.1]{./res/sc-tanner-graph.png}
|
||||
\includegraphics[scale=0.1]{./res/sc-pcm.png}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Current Results}
|
||||
\label{sec:Current Results}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{An ``Upper Bound'' on the Performance Gain}
|
||||
|
||||
\begin{minipage}{0.65\textwidth}
|
||||
\begin{figure}[H]
|
||||
% \centering
|
||||
\hspace*{-8mm}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=10cm,
|
||||
height=8cm,
|
||||
ymode=log,
|
||||
ylabel={LER},
|
||||
xlabel={Physical error rate},
|
||||
legend pos=south east,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
grid=both,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xmin=0.001, xmax=0.004,
|
||||
ymin=1e-2, ymax=1,
|
||||
]
|
||||
|
||||
\addplot+[NavyBlue, mark=none, line width=1pt]
|
||||
table[col sep=comma, x=p, y=LER_sw]
|
||||
{res/whole_vs_windowed_spa.csv};
|
||||
\addlegendentry{Windowed - SPA}
|
||||
|
||||
\addplot+[BurntOrange, mark=none, line width=1pt]
|
||||
table[col sep=comma, x=p, y=LER_sw]
|
||||
{res/whole_vs_windowed_min_sum.csv};
|
||||
\addlegendentry{Windowed - Min-Sum}
|
||||
|
||||
\addplot+[NavyBlue, mark=none, line width=1pt,
|
||||
densely dashed]
|
||||
table[col sep=comma, x=p, y=LER_whole]
|
||||
{res/whole_vs_windowed_spa.csv};
|
||||
\addlegendentry{Whole - SPA}
|
||||
|
||||
\addplot+[BurntOrange, mark=none, line width=1pt,
|
||||
densely dashed]
|
||||
table[col sep=comma, x=p, y=LER_whole]
|
||||
{res/whole_vs_windowed_min_sum.csv};
|
||||
\addlegendentry{Whole - Min-Sum}
|
||||
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\end{figure}
|
||||
\end{minipage}%
|
||||
\begin{minipage}{0.35\textwidth}
|
||||
\begin{itemize}
|
||||
\item $[[144,12,12]]$ BB code
|
||||
\item $n_\text{rounds} = 12$
|
||||
\item $W=3$, $F=1$
|
||||
\end{itemize}
|
||||
\end{minipage}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Soft- vs. Hard-Information Decoding Behavior I}
|
||||
|
||||
\begin{minipage}{0.65\textwidth}
|
||||
\begin{figure}[H]
|
||||
% \centering
|
||||
\hspace*{-8mm}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=10cm,
|
||||
height=8cm,
|
||||
ymode=log,
|
||||
ylabel={LER},
|
||||
xlabel={Physical error rate},
|
||||
legend pos=south east,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
grid=both,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xmin=0.001, xmax=0.004,
|
||||
ymin=1e-2, ymax=1,
|
||||
]
|
||||
|
||||
\addplot+[BurntOrange, mark=none,
|
||||
line width=1pt]
|
||||
table[col sep=comma, x=p, y=LER_soft]
|
||||
{res/hard_vs_soft_spa.csv};
|
||||
\addlegendentry{Soft info - SPA}
|
||||
|
||||
\addplot+[BurntOrange, densely dashed, mark=none,
|
||||
line width=1pt]
|
||||
table[col sep=comma, x=p, y=LER_hard]
|
||||
{res/hard_vs_soft_spa.csv};
|
||||
\addlegendentry{Hard info - SPA}
|
||||
|
||||
\addplot+[NavyBlue, mark=none, line width=1pt]
|
||||
table[col sep=comma, x=p, y=LER_soft]
|
||||
{res/hard_vs_soft_min_sum.csv};
|
||||
\addlegendentry{Soft info - Min-Sum}
|
||||
|
||||
\addplot+[NavyBlue, densely dashed, mark=none,
|
||||
line width=1pt]
|
||||
table[col sep=comma, x=p, y=LER_hard]
|
||||
{res/hard_vs_soft_min_sum.csv};
|
||||
\addlegendentry{Hard info - Min-Sum}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\end{figure}
|
||||
\end{minipage}%
|
||||
\begin{minipage}{0.35\textwidth}
|
||||
\begin{itemize}
|
||||
\item $[[144,12,12]]$ BB code
|
||||
\item $n_\text{rounds} = 12$
|
||||
\item $W=3$, $F=1$
|
||||
\end{itemize}
|
||||
\end{minipage}
|
||||
|
||||
% \begin{itemize}
|
||||
% \item \red{Soft vs hard for min sum and spa (4 plots)}
|
||||
% \item \red{Different window sizes}
|
||||
% \end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% \begin{frame}
|
||||
% \frametitle{Soft- vs. Hard-Information Decoding Behavior II}
|
||||
%
|
||||
% \begin{itemize}
|
||||
% \item \red{Comparison of numbers of iterations for soft vs hard}
|
||||
% \item \red{Convergence analysis}
|
||||
% \end{itemize}
|
||||
% \end{frame}
|
||||
%
|
||||
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% \section{Future Work and Open Questions}
|
||||
% \label{sec:Future Work and Open Questions}
|
||||
%
|
||||
% \begin{frame}
|
||||
% \frametitle{Future Work}
|
||||
%
|
||||
% \vspace*{15mm}
|
||||
%
|
||||
% \begin{itemize}
|
||||
% \item Look at behavior during iterations
|
||||
% \item Move from BP to BPGD
|
||||
%
|
||||
% \vspace{15mm}
|
||||
%
|
||||
% \item Q: Theoretically rigorous proof for the
|
||||
% ``window-friendly'' structure of the detector error matrix?
|
||||
% \item Q: Min-sum seems to perform better than SPA? \red{Make
|
||||
% sure this question even makes sense}
|
||||
% \end{itemize}
|
||||
% \end{frame}
|
||||
%
|
||||
% % TODOs
|
||||
% % - Whole vs windowed for min sum and spa
|
||||
% % - Basic implementation
|
||||
% % - Choose parameters (e.g., window sizes)
|
||||
% % - soft vs hard for min sum and spa (4 plots)
|
||||
% % - Basic implementation
|
||||
% % - Choose parameters (e.g., window sizes)
|
||||
% % - Comparison of numbers of iterations for soft vs hard
|
||||
% % - Basic implementation (more or less done)
|
||||
% % - Choose parameters
|
||||
% % - Convergence analysis
|
||||
% % - Basic implementation (more or less done)
|
||||
% % - Choose parameters
|
||||
% % - Make sure min sum vs spa question makes sense
|
||||
% % - Think of a few words for each slide (and take notes)
|
||||
|
||||
\end{document}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
p,LER_hard,LER_soft
|
||||
0.001,0.08,0.028
|
||||
0.0015,0.174,0.076
|
||||
0.002,0.348,0.218
|
||||
0.0025,0.54,0.38
|
||||
0.003,0.716,0.564
|
||||
0.0035,0.862,0.75
|
||||
0.004,0.948,0.906
|
||||
|
7
src/qec-meeting-presentation/res/hard_vs_soft_spa.csv
Normal file
7
src/qec-meeting-presentation/res/hard_vs_soft_spa.csv
Normal file
@@ -0,0 +1,7 @@
|
||||
p,LER_hard,LER_soft
|
||||
0.001,0.098,0.038
|
||||
0.0015,0.174,0.11
|
||||
0.002,0.394,0.268
|
||||
0.0025,0.536,0.376
|
||||
0.003,0.688,0.574
|
||||
0.0035,0.822,0.744
|
||||
|
BIN
src/qec-meeting-presentation/res/pcm.png
Normal file
BIN
src/qec-meeting-presentation/res/pcm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 76 KiB |
BIN
src/qec-meeting-presentation/res/sc-pcm.png
Normal file
BIN
src/qec-meeting-presentation/res/sc-pcm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 146 KiB |
BIN
src/qec-meeting-presentation/res/sc-tanner-graph.png
Normal file
BIN
src/qec-meeting-presentation/res/sc-tanner-graph.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 340 KiB |
@@ -0,0 +1,8 @@
|
||||
p,LER_whole,LER_sw
|
||||
0.001,0.046,0.086
|
||||
0.0015,0.11,0.2
|
||||
0.002,0.185,0.345
|
||||
0.0025,0.346,0.546
|
||||
0.003,0.587,0.721
|
||||
0.0035,0.732,0.852
|
||||
0.004,0.871,0.941
|
||||
|
@@ -0,0 +1,8 @@
|
||||
p,LER_whole,LER_sw
|
||||
0.001,0.072,0.101
|
||||
0.0015,0.128,0.234
|
||||
0.002,0.213,0.352
|
||||
0.0025,0.374,0.517
|
||||
0.003,0.544,0.676
|
||||
0.0035,0.711,0.823
|
||||
0.004,0.83,0.905
|
||||
|
BIN
src/qec-meeting-presentation/res/windowing.png
Normal file
BIN
src/qec-meeting-presentation/res/windowing.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
1
src/results/2026-03-29/lib
Symbolic link
1
src/results/2026-03-29/lib
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/andreas/workspace/private/ma-thesis/lib
|
||||
641
src/results/2026-03-29/main.tex
Normal file
641
src/results/2026-03-29/main.tex
Normal file
@@ -0,0 +1,641 @@
|
||||
\documentclass{article}
|
||||
|
||||
\usepackage[a4paper,left=2cm,right=2cm,top=2.5cm,bottom=2cm]{geometry}
|
||||
\usepackage{float}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{amsfonts}
|
||||
\usepackage{mleftright}
|
||||
\usepackage{bm}
|
||||
\usepackage{tikz}
|
||||
\usepackage{subcaption}
|
||||
\usepackage{xcolor}
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{pgfplotstable}
|
||||
\pgfplotsset{compat=newest}
|
||||
\usepackage{acro}
|
||||
\usepackage{braket}
|
||||
\usepackage[
|
||||
backend=biber,
|
||||
style=ieee,
|
||||
sorting=nty,
|
||||
]{biblatex}
|
||||
\usepackage{todonotes}
|
||||
\usepackage{lipsum}
|
||||
|
||||
\usetikzlibrary{calc, positioning}
|
||||
|
||||
\input{lib/latex-common/common.tex}
|
||||
\pgfplotsset{colorscheme/matplotlib}
|
||||
|
||||
%
|
||||
%
|
||||
% Custom commands
|
||||
%
|
||||
%
|
||||
|
||||
\newcommand{\red}[1]{\textcolor{red}{#1}}
|
||||
\newcommand{\figwidth}{8cm}
|
||||
\newcommand{\figheight}{6.5cm}
|
||||
|
||||
%
|
||||
%
|
||||
% Acronyms
|
||||
%
|
||||
%
|
||||
|
||||
\DeclareAcronym{qec}{
|
||||
short=QEC,
|
||||
long=quantum error correction
|
||||
}
|
||||
|
||||
\addbibresource{src/proposal/MA.bib}
|
||||
|
||||
%
|
||||
%
|
||||
% Content
|
||||
%
|
||||
%
|
||||
|
||||
\title{Results: 2026-03-29}
|
||||
\author{Andreas Tsouchlos}
|
||||
\date{}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Whole vs Windowed decoding}
|
||||
\label{sec:Whole vs Windowed decoding}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=1e-3, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, \col,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=\W/2026-03-29_23-39-18/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~whole}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_sw})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=\W/2026-03-29_23-39-18/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~windowed}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=1e-3, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=\W/2026-03-29_23-39-18/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~whole}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_sw})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=\W/2026-03-29_23-39-18/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~windowed}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with $F=1,
|
||||
n_\text{iter,BP}=32,n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=1e-3, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=\F,+system.W=5/2026-03-29_23-39-18/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~whole}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_sw})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=\F,+system.W=5/2026-03-29_23-39-18/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~windowed}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=1e-3, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=\F,+system.W=5/2026-03-29_23-39-18/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~whole}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_sw})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=\F,+system.W=5/2026-03-29_23-39-18/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~windowed}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with $W=5,
|
||||
n_\text{iter,BP}=32,n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Soft- vs Hard- Information Decoding}
|
||||
\label{sec:Soft- vs Hard- Information Decoding}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=\W/2026-03-30_00-06-26/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~hard}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=*, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=\W/2026-03-30_00-06-26/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~soft}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=\W/2026-03-30_00-06-26/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~hard}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=*, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=\W/2026-03-30_00-06-26/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~soft}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with $F=1,
|
||||
n_\text{iter,BP}=32,n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=\F,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~hard}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=*, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=\F,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~soft}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=\F,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~hard}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=*, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=\F,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~soft}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with $W=5,
|
||||
n_\text{iter,BP}=32,n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Soft-Information Decoding: Best Performance}
|
||||
\label{sec:Soft-Information Decoding: Best Performance}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Windowed, hard}
|
||||
|
||||
\addplot+[mark=*, line width=1pt, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Windowed, soft}
|
||||
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol1]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=5/2026-03-29_23-39-18/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Whole window}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Windowed, hard}
|
||||
|
||||
\addplot+[mark=*, line width=1pt, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Windowed, soft}
|
||||
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol1]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=5/2026-03-29_23-39-18/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Whole window}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code,
|
||||
$W=5, F=1, n_\text{iter,BP} = 32$}
|
||||
\end{figure}
|
||||
|
||||
\end{document}
|
||||
|
||||
1
src/results/2026-03-29/src
Symbolic link
1
src/results/2026-03-29/src
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/andreas/workspace/private/ma-thesis/src
|
||||
753
src/results/2026-03-30/main.tex
Normal file
753
src/results/2026-03-30/main.tex
Normal file
@@ -0,0 +1,753 @@
|
||||
\documentclass{article}
|
||||
|
||||
\usepackage[a4paper,left=2cm,right=2cm,top=2.5cm,bottom=2cm]{geometry}
|
||||
\usepackage{float}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{amsfonts}
|
||||
\usepackage{mleftright}
|
||||
\usepackage{bm}
|
||||
\usepackage{tikz}
|
||||
\usepackage{subcaption}
|
||||
\usepackage{xcolor}
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{pgfplotstable}
|
||||
\pgfplotsset{compat=newest}
|
||||
\usepackage{acro}
|
||||
\usepackage{braket}
|
||||
\usepackage[
|
||||
backend=biber,
|
||||
style=ieee,
|
||||
sorting=nty,
|
||||
]{biblatex}
|
||||
\usepackage{todonotes}
|
||||
\usepackage{lipsum}
|
||||
|
||||
\usetikzlibrary{calc, positioning}
|
||||
|
||||
\input{lib/latex-common/common.tex}
|
||||
\pgfplotsset{colorscheme/matplotlib}
|
||||
|
||||
%
|
||||
%
|
||||
% Custom commands
|
||||
%
|
||||
%
|
||||
|
||||
\newcommand{\red}[1]{\textcolor{red}{#1}}
|
||||
\newcommand{\figwidth}{8cm}
|
||||
\newcommand{\figheight}{6.5cm}
|
||||
|
||||
%
|
||||
%
|
||||
% Acronyms
|
||||
%
|
||||
%
|
||||
|
||||
\DeclareAcronym{qec}{
|
||||
short=QEC,
|
||||
long=quantum error correction
|
||||
}
|
||||
|
||||
\addbibresource{src/proposal/MA.bib}
|
||||
|
||||
%
|
||||
%
|
||||
% Content
|
||||
%
|
||||
%
|
||||
|
||||
\title{Results: 2026-03-30}
|
||||
\author{Andreas Tsouchlos}
|
||||
\date{}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
|
||||
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% \section{Soft vs Hard Information Decoding}
|
||||
% \label{sec:Soft vs Hard Information Decoding}
|
||||
%
|
||||
% \begin{figure}[H]
|
||||
% \centering
|
||||
%
|
||||
% \begin{subfigure}{0.5\textwidth}
|
||||
% \begin{tikzpicture}
|
||||
% \begin{axis}[
|
||||
% width=\figwidth,
|
||||
% height=\figheight,
|
||||
% ymode=log,
|
||||
% legend style={
|
||||
% cells={anchor=west},
|
||||
% cells={align=left},
|
||||
% },
|
||||
% enlargelimits=false,
|
||||
% ymin=1e-3, ymax=2.5e-1,
|
||||
% grid=both,
|
||||
% legend pos = south west,
|
||||
% xtick={8, 32, 64, 96, 128, 160, 192},
|
||||
% xlabel={Max BP iterations},
|
||||
% ylabel={Per-round-LER},
|
||||
% ]
|
||||
% \foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
% \edef\temp{\noexpand
|
||||
% \addplot+[
|
||||
% mark=o, line width=1pt, densely dashed, \col,
|
||||
% ]
|
||||
% table[
|
||||
% col sep=comma, x=max_bp_iter,
|
||||
% y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
% ]
|
||||
% {/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=\W/2026-03-30_13-49-44/LERs.csv};
|
||||
% }
|
||||
% \temp
|
||||
%
|
||||
% \addlegendentryexpanded{$W = \W$~hard}
|
||||
% }
|
||||
%
|
||||
% \foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
% \edef\temp{\noexpand
|
||||
% \addplot+[mark=o, line width=1pt, \col]
|
||||
% table[
|
||||
% col sep=comma, x=max_bp_iter,
|
||||
% y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
% ]
|
||||
% {/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=\W/2026-03-30_13-49-44/LERs.csv};
|
||||
% }
|
||||
% \temp
|
||||
%
|
||||
% \addlegendentryexpanded{$W = \W$~soft}
|
||||
% }
|
||||
% \end{axis}
|
||||
% \end{tikzpicture}
|
||||
% \caption{Min-Sum}
|
||||
% \end{subfigure}%
|
||||
% \begin{subfigure}{0.5\textwidth}
|
||||
% \begin{tikzpicture}
|
||||
% \begin{axis}[
|
||||
% width=\figwidth,
|
||||
% height=\figheight,
|
||||
% ymode=log,
|
||||
% legend style={
|
||||
% cells={anchor=west},
|
||||
% cells={align=left},
|
||||
% },
|
||||
% enlargelimits=false,
|
||||
% ymin=1e-3, ymax=2.5e-1,
|
||||
% grid=both,
|
||||
% legend pos = south west,
|
||||
% xtick={8, 32, 64, 96, 128, 160, 192},
|
||||
% xlabel={Max BP iterations},
|
||||
% ylabel={Per-round-LER},
|
||||
% ]
|
||||
% \foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
% \edef\temp{\noexpand
|
||||
% \addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
% table[
|
||||
% col sep=comma, x=max_bp_iter,
|
||||
% y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
% ]
|
||||
% {/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=\W/2026-03-30_13-49-44/LERs.csv};
|
||||
% }
|
||||
% \temp
|
||||
%
|
||||
% \addlegendentryexpanded{$W = \W$~hard}
|
||||
% }
|
||||
%
|
||||
% \foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
% \edef\temp{\noexpand
|
||||
% \addplot+[mark=o, line width=1pt, \col]
|
||||
% table[
|
||||
% col sep=comma, x=max_bp_iter,
|
||||
% y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
% ]
|
||||
% {/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=\W/2026-03-30_13-49-44/LERs.csv};
|
||||
% }
|
||||
% \temp
|
||||
%
|
||||
% \addlegendentryexpanded{$W = \W$~windowed}
|
||||
% }
|
||||
% \end{axis}
|
||||
% \end{tikzpicture}
|
||||
% \caption{SPA}
|
||||
% \end{subfigure}
|
||||
%
|
||||
% \caption{BP simulations for the [[144,12,12]]-BB code with $F=1,
|
||||
% n_\text{iter,BP}=32,n_\text{rounds}=12$}
|
||||
% \end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Whole vs Windowed decoding}
|
||||
\label{sec:Whole vs Windowed decoding}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=4e-5, ymax=2e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, \col,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=\W/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~whole}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_sw})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=\W/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~windowed}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=4e-5, ymax=2e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=\W/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~whole}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_sw})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=\W/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~windowed}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with $F=1,
|
||||
n_\text{iter,BP}=200,n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=4e-5, ymax=2e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=\F,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~whole}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_sw})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=\F,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~windowed}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=4e-5, ymax=2e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=\F,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~whole}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_sw})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=\F,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~windowed}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with $W=5,
|
||||
n_\text{iter,BP}=200,n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Soft- vs Hard- Information Decoding}
|
||||
\label{sec:Soft- vs Hard- Information Decoding}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=4e-5, ymax=2e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=\W/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~hard}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=*, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=\W/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~soft}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=4e-5, ymax=2e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=\W/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~hard}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=*, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=\W/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~soft}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with $F=1,
|
||||
n_\text{iter,BP}=32,n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=\F,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~hard}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=*, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=\F,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~soft}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=\F,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~hard}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=*, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=\F,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~soft}
|
||||
}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with $W=5,
|
||||
n_\text{iter,BP}=200,n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Soft-Information Decoding: Best Performance}
|
||||
\label{sec:Soft-Information Decoding: Best Performance}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Windowed, hard}
|
||||
|
||||
\addplot+[mark=*, line width=1pt, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Windowed, soft}
|
||||
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol1]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Whole window}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.5\textwidth}
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=8e-4, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = south east,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
xlabel={Physical error rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Windowed, hard}
|
||||
|
||||
\addplot+[mark=*, line width=1pt, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Windowed, soft}
|
||||
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol1]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=windowed_vs_whole_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Whole window}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code,
|
||||
$W=5, F=1, n_\text{iter,BP} = 200, n_\text{rounds}=12$}
|
||||
\end{figure}
|
||||
|
||||
\end{document}
|
||||
|
||||
587
src/results/2026-04-01/main.tex
Normal file
587
src/results/2026-04-01/main.tex
Normal file
@@ -0,0 +1,587 @@
|
||||
\documentclass{article}
|
||||
|
||||
\usepackage[a4paper,left=2cm,right=2cm,top=2.5cm,bottom=2cm]{geometry}
|
||||
\usepackage{float}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{amsfonts}
|
||||
\usepackage{mleftright}
|
||||
\usepackage{bm}
|
||||
\usepackage{tikz}
|
||||
\usepackage{subcaption}
|
||||
\usepackage{xcolor}
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{pgfplotstable}
|
||||
\pgfplotsset{compat=newest}
|
||||
\usepackage{acro}
|
||||
\usepackage{braket}
|
||||
\usepackage[
|
||||
backend=biber,
|
||||
style=ieee,
|
||||
sorting=nty,
|
||||
]{biblatex}
|
||||
\usepackage{todonotes}
|
||||
\usepackage{lipsum}
|
||||
|
||||
\usetikzlibrary{calc, positioning}
|
||||
|
||||
\input{lib/latex-common/common.tex}
|
||||
\pgfplotsset{colorscheme/matplotlib}
|
||||
|
||||
%
|
||||
%
|
||||
% Custom commands
|
||||
%
|
||||
%
|
||||
|
||||
\newcommand{\red}[1]{\textcolor{red}{#1}}
|
||||
\newcommand{\figwidth}{7.5cm}
|
||||
\newcommand{\figheight}{6.5cm}
|
||||
|
||||
%
|
||||
%
|
||||
% Acronyms
|
||||
%
|
||||
%
|
||||
|
||||
\DeclareAcronym{qec}{
|
||||
short=QEC,
|
||||
long=quantum error correction
|
||||
}
|
||||
|
||||
\addbibresource{src/proposal/MA.bib}
|
||||
|
||||
%
|
||||
%
|
||||
% Content
|
||||
%
|
||||
%
|
||||
|
||||
\title{Results: 2026-04-01}
|
||||
\author{Andreas Tsouchlos}
|
||||
\date{}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Soft vs Hard Information Decoding}
|
||||
\label{sec:Soft vs Hard Information Decoding}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.4\textwidth}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
enlargelimits=false,
|
||||
ymin=5e-3, ymax=2.5e-1,
|
||||
grid=both,
|
||||
xtick={8, 32, 64, 96, 128, 160, 192},
|
||||
xlabel={Max BP iterations},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, \col,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=\W/2026-03-30_23-30-38/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=\W/2026-03-30_23-30-38/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
}
|
||||
|
||||
\addplot+[mark=o, line width=1pt, black]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=5/2026-03-30_23-30-38/LERs.csv};
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.6\textwidth}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=5e-3, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = outer north east,
|
||||
xtick={8, 32, 64, 96, 128, 160, 192},
|
||||
xlabel={Max BP iterations},
|
||||
ylabel={},
|
||||
yticklabels = {},
|
||||
]
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, \col,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=\W/2026-03-30_23-30-38/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~hard}
|
||||
}
|
||||
|
||||
\foreach \W/\col in {3/scol2,4/scol1,5/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=\W/2026-03-30_23-30-38/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$W = \W$~soft}
|
||||
}
|
||||
|
||||
\addplot+[mark=o, line width=1pt, black]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=5/2026-03-30_23-30-38/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Whole}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}%
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with
|
||||
$n_\text{rounds}=12,p_\text{phys} = 0.0025,F=1$}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.4\textwidth}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
enlargelimits=false,
|
||||
ymin=5e-3, ymax=2.5e-1,
|
||||
grid=both,
|
||||
xtick={8, 32, 64, 96, 128, 160, 192},
|
||||
xlabel={Max BP iterations},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, \col,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=\F,+system.W=5/2026-03-30_23-30-38/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=\F,+system.W=5/2026-03-30_23-30-38/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
}
|
||||
|
||||
\addplot+[mark=o, line width=1pt, black]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=5/2026-03-30_23-30-38/LERs.csv};
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.6\textwidth}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=5e-3, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = outer north east,
|
||||
xtick={8, 32, 64, 96, 128, 160, 192},
|
||||
xlabel={Max BP iterations},
|
||||
ylabel={},
|
||||
yticklabels = {},
|
||||
]
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, \col,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=\F,+system.W=5/2026-03-30_23-30-38/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~hard}
|
||||
}
|
||||
|
||||
\foreach \F/\col in {1/scol2,2/scol1,3/scol0} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=o, line width=1pt, \col]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=\F,+system.W=5/2026-03-30_23-30-38/LERs.csv};
|
||||
}
|
||||
\temp
|
||||
|
||||
\addlegendentryexpanded{$F = \F$~soft}
|
||||
}
|
||||
|
||||
\addplot+[mark=o, line width=1pt, black]
|
||||
table[
|
||||
col sep=comma, x=max_bp_iter,
|
||||
y expr={1 - (1-\noexpand\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_over_iter_param_exploration,+system.F=1,+system.W=5/2026-03-30_23-30-38/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Whole}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}%
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with
|
||||
$n_\text{rounds}=12,p_\text{phys} = 0.0025,W=5$}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Whole vs Windowed Decoding with Constant Total Number of Iterations}
|
||||
\label{sec:Whole vs Windowed Decoding with Constant Total Number of Iterations}
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{32 Sliding-Window Iterations}
|
||||
\label{subsec:32 Sliding-Window Iterations}
|
||||
|
||||
\begin{minipage}[t]{0.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item Sliding-window decoding
|
||||
\begin{itemize}
|
||||
\item $n_\text{iter,BP} = 32$
|
||||
\item $W=5, F=1 \Rightarrow n_\text{windows} = 8$
|
||||
\item $n_\text{iter,BP}^\text{total} = n_\text{windows}
|
||||
\cdot n_\text{iter,BP} = 256$
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{minipage}%
|
||||
\begin{minipage}[t]{0.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item Whole decoding
|
||||
\begin{itemize}
|
||||
\item $n_\text{iter,BP} = 256$
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{minipage}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.4\textwidth}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
enlargelimits=false,
|
||||
ymin=5e-5, ymax=2.5e-1,
|
||||
grid=both,
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
grid=both,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xlabel={Physical Error Rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, black,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=whole_more_iterations,+system.F=1,+system.W=3/2026-04-01_15-41-23/LERs.csv};
|
||||
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
|
||||
\addplot+[mark=*, line width=1pt, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.6\textwidth}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=5e-5, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = outer north east,
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
grid=both,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xlabel={Physical Error Rate},
|
||||
ylabel={},
|
||||
yticklabels = {},
|
||||
]
|
||||
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
|
||||
\addlegendentry{Hard}
|
||||
|
||||
\addplot+[mark=*, line width=1pt, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_00-06-26/LERs.csv};
|
||||
|
||||
\addlegendentry{Soft}
|
||||
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, black,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=whole_more_iterations,+system.F=1,+system.W=3/2026-04-01_15-41-24/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Whole}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}%
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with
|
||||
$n_\text{rounds}=12, W=5, F=1$}
|
||||
\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{200 Sliding-Window Iterations}
|
||||
\label{subsec:200 Sliding-Window Iterations}
|
||||
|
||||
\begin{minipage}[t]{0.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item Sliding-window decoding
|
||||
\begin{itemize}
|
||||
\item $n_\text{iter,BP} = 200$
|
||||
\item $W=5, F=1 \Rightarrow n_\text{windows} = 8$
|
||||
\item $n_\text{iter,BP}^\text{total} = n_\text{windows}
|
||||
\cdot n_\text{iter,BP} = 1600$
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{minipage}%
|
||||
\begin{minipage}[t]{0.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item Whole decoding
|
||||
\begin{itemize}
|
||||
\item $n_\text{iter,BP} = 1536$
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{minipage}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}{0.4\textwidth}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
enlargelimits=false,
|
||||
ymin=5e-5, ymax=2.5e-1,
|
||||
grid=both,
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
grid=both,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xlabel={Physical Error Rate},
|
||||
ylabel={Per-round-LER},
|
||||
]
|
||||
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, black,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=whole_more_iterations,+system.F=1,+system.W=5/2026-04-01_18-31-29/LERs.csv};
|
||||
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addplot+[mark=*, line width=1pt, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=minimum_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Min-Sum}
|
||||
\end{subfigure}%
|
||||
\begin{subfigure}{0.6\textwidth}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=\figwidth,
|
||||
height=\figheight,
|
||||
ymode=log,
|
||||
legend style={
|
||||
cells={anchor=west},
|
||||
cells={align=left},
|
||||
},
|
||||
enlargelimits=false,
|
||||
ymin=5e-5, ymax=2.5e-1,
|
||||
grid=both,
|
||||
legend pos = outer north east,
|
||||
xticklabel style={/pgf/number format/fixed},
|
||||
xticklabel style={/pgf/number format/precision=4},
|
||||
scaled x ticks=false,
|
||||
grid=both,
|
||||
xtick={0.001,0.0015,...,0.004},
|
||||
xlabel={Physical Error Rate},
|
||||
ylabel={},
|
||||
yticklabels = {},
|
||||
]
|
||||
|
||||
\addplot+[mark=o, line width=1pt, densely dashed, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_hard})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addlegendentry{Hard}
|
||||
|
||||
\addplot+[mark=*, line width=1pt, scol0]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_soft})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=soft_vs_hard_param_exploration,+system.F=1,+system.W=5/2026-03-30_08-57-21/LERs.csv};
|
||||
|
||||
\addlegendentry{Soft}
|
||||
|
||||
\addplot+[
|
||||
mark=o, line width=1pt, densely dashed, black,
|
||||
]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y expr={1 - (1-\thisrow{LER_whole})^(1/12)}
|
||||
]
|
||||
{/home/andreas/workspace/private/ma-sw-results/outputs/+decoder.bp_method=product_sum,+experiment=whole_more_iterations,+system.F=1,+system.W=3/2026-04-01_18-31-29/LERs.csv};
|
||||
|
||||
\addlegendentryexpanded{Whole}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{SPA}
|
||||
\end{subfigure}%
|
||||
|
||||
\caption{BP simulations for the [[144,12,12]]-BB code with
|
||||
$n_\text{rounds}=12, W=5, F=1$}
|
||||
\end{figure}
|
||||
|
||||
\end{document}
|
||||
|
||||
@@ -8,6 +8,21 @@
|
||||
long=belief propagation
|
||||
}
|
||||
|
||||
\DeclareAcronym{nms}{
|
||||
short=NMS,
|
||||
long=normalized min-sum
|
||||
}
|
||||
|
||||
\DeclareAcronym{spa}{
|
||||
short=SPA,
|
||||
long=sum-product algorithm
|
||||
}
|
||||
|
||||
\DeclareAcronym{llr}{
|
||||
short=LLR,
|
||||
long=log-likelihood ratio
|
||||
}
|
||||
|
||||
\DeclareAcronym{sc}{
|
||||
short=SC,
|
||||
long=spatially coupled
|
||||
@@ -23,7 +38,37 @@
|
||||
long=maximum likelihood
|
||||
}
|
||||
|
||||
\DeclareAcronym{map}{
|
||||
short=MAP,
|
||||
long=maximum a posteriori
|
||||
}
|
||||
|
||||
\DeclareAcronym{pcm}{
|
||||
short=PCM,
|
||||
long=parity-check matrix
|
||||
}
|
||||
|
||||
\DeclareAcronym{vn}{
|
||||
short=VN,
|
||||
long=variable node
|
||||
}
|
||||
|
||||
\DeclareAcronym{cn}{
|
||||
short=CN,
|
||||
long=check node
|
||||
}
|
||||
|
||||
\DeclareAcronym{ber}{
|
||||
short=BER,
|
||||
long=bit error rate
|
||||
}
|
||||
|
||||
\DeclareAcronym{fer}{
|
||||
short=FER,
|
||||
long=frame error rate
|
||||
}
|
||||
|
||||
\DeclareAcronym{awgn}{
|
||||
short=AWGN,
|
||||
long=additive white Gaussian noise
|
||||
}
|
||||
|
||||
@@ -1,4 +1,23 @@
|
||||
|
||||
@article{dirac_new_1939,
|
||||
title = {A new notation for quantum mechanics},
|
||||
volume = {35},
|
||||
issn = {1469-8064, 0305-0041},
|
||||
url = {https://www.cambridge.org/core/journals/mathematical-proceedings-of-the-cambridge-philosophical-society/article/abs/new-notation-for-quantum-mechanics/4631DB9213D680D6332BA11799D76AFB},
|
||||
doi = {10.1017/S0305004100021162},
|
||||
abstract = {In mathematical theories the question of notation, while not of primary importance, is yet worthy of careful consideration, since a good notation can be of great value in helping the development of a theory, by making it easy to write down those quantities or combinations of quantities that are important, and difficult or impossible to write down those that are unimportant. The summation convention in tensor analysis is an example, illustrating how specially appropriate a notation can be.},
|
||||
language = {en},
|
||||
number = {3},
|
||||
urldate = {2025-11-28},
|
||||
journal = {Mathematical Proceedings of the Cambridge Philosophical Society},
|
||||
author = {Dirac, P. a. M.},
|
||||
month = jul,
|
||||
year = {1939},
|
||||
note = {TLDR: In mathematical theories the question of notation is yet worthy of careful consideration, since a good notation can be of great value in helping the development of a theory, by making it easy to write down those quantities or combinations of quantities that are important, and difficult or impossible towrite down those that are unimportant.},
|
||||
keywords = {/unread},
|
||||
pages = {416--418},
|
||||
}
|
||||
|
||||
@article{huang_improved_2023,
|
||||
title = {Improved {Noisy} {Syndrome} {Decoding} of {Quantum} {LDPC} {Codes} with {Sliding} {Window}},
|
||||
url = {http://arxiv.org/abs/2311.03307},
|
||||
@@ -1445,7 +1464,8 @@ We study the performance of medium-length quantum LDPC (QLDPC) codes in the depo
|
||||
author = {Ryan, William and Lin, Shu},
|
||||
month = sep,
|
||||
year = {2009},
|
||||
keywords = {/unread, Computers / Networking / General, Mathematics / Applied, Technology \& Engineering / Electrical, Technology \& Engineering / Electronics / General, Technology \& Engineering / Signals \& Signal Processing, Technology \& Engineering / Telecommunications},
|
||||
keywords = {Mathematics / Applied, /unread, Technology \& Engineering / Electrical, Computers / Networking / General, Technology \& Engineering / Electronics / General, Technology \& Engineering / Signals \& Signal Processing, Technology \& Engineering / Telecommunications},
|
||||
file = {PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/47TG5EWT/Ryan and Lin - 2009 - Channel Codes Classical and Modern.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@book{macwilliams_theory_1977,
|
||||
@@ -1459,3 +1479,87 @@ We study the performance of medium-length quantum LDPC (QLDPC) codes in the depo
|
||||
keywords = {/unread, Computers / Information Theory},
|
||||
file = {PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/25RR5P4A/MacWilliams and Sloane - 1977 - The Theory of Error-correcting Codes.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@book{richardson_modern_2008,
|
||||
address = {Cambridge},
|
||||
title = {Modern {Coding} {Theory}},
|
||||
isbn = {978-0-521-85229-6},
|
||||
url = {https://www.cambridge.org/core/books/modern-coding-theory/A08C3B7B15351BF9C956CDFE5BE4846B},
|
||||
doi = {10.1017/CBO9780511791338},
|
||||
abstract = {Having trouble deciding which coding scheme to employ, how to design a new scheme, or how to improve an existing system? This summary of the state-of-the-art in iterative coding makes this decision more straightforward. With emphasis on the underlying theory, techniques to analyse and design practical iterative coding systems are presented. Using Gallager's original ensemble of LDPC codes, the basic concepts are extended for several general codes, including the practically important class of turbo codes. The simplicity of the binary erasure channel is exploited to develop analytical techniques and intuition, which are then applied to general channel models. A chapter on factor graphs helps to unify the important topics of information theory, coding and communication theory. Covering the most recent advances, this text is ideal for graduate students in electrical engineering and computer science, and practitioners. Additional resources, including instructor's solutions and figures, available online: www.cambridge.org/9780521852296.},
|
||||
urldate = {2026-03-22},
|
||||
publisher = {Cambridge University Press},
|
||||
author = {Richardson, Tom and Urbanke, Rüdiger},
|
||||
year = {2008},
|
||||
note = {TLDR: This summary of the state-of-the-art in iterative coding makes this decision more straightforward, with emphasis on the underlying theory, techniques to analyse and design practical iterative codes systems.},
|
||||
keywords = {/unread},
|
||||
file = {PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/62YP4N87/Richardson and Urbanke - 2008 - Modern Coding Theory.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@phdthesis{gallager_low_1960,
|
||||
type = {Thesis},
|
||||
title = {Low density parity check codes},
|
||||
copyright = {M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission.},
|
||||
url = {https://dspace.mit.edu/handle/1721.1/11804},
|
||||
abstract = {Thesis (Sc. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering, 1960.},
|
||||
language = {eng},
|
||||
urldate = {2026-03-24},
|
||||
school = {Massachusetts Institute of Technology},
|
||||
author = {Gallager, Robert G.},
|
||||
year = {1960},
|
||||
note = {Accepted: 2005-08-17T12:00:00Z},
|
||||
keywords = {/unread},
|
||||
file = {Full Text PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/PRCEXIWQ/Gallager - 1960 - Low density parity check codes.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{hassan_fully_2016,
|
||||
title = {Fully parallel window decoder architecture for spatially-coupled {LDPC} codes},
|
||||
issn = {1938-1883},
|
||||
url = {https://ieeexplore.ieee.org/abstract/document/7511553},
|
||||
doi = {10.1109/ICC.2016.7511553},
|
||||
abstract = {Spatially-coupled low-density parity-check (SC-LDPC) codes have been shown to be superior in performance than LDPC block codes. In order to comply with the practical constraints on latency, SC-LDPC codes are decoded using a window decoder that reduces the decoder latency and complexity compared to traditional block-wise decoding. However, so far the literature only considers the structural decoding latency of window decoder, ignoring the processing latency. Note that the processing latency directly impacts the decoder's throughput and is an important parameter in any modern communication system. The throughput of an iterative decoder is directly influenced by the number of iterations and hence in this paper we propose a fully parallel window decoder architecture for SC-LDPC codes where the decoding iterations are performed in parallel. This guarantees a high throughout while fulfilling the low latency requirements. The overall decoding latency (structural and processing latency) of the proposed window decoder architecture is compared with the classical window decoder.},
|
||||
urldate = {2026-03-26},
|
||||
booktitle = {2016 {IEEE} {International} {Conference} on {Communications} ({ICC})},
|
||||
author = {Hassan, Najeeb Ul and Schlüter, Martin and Fettweis, Gerhard P.},
|
||||
month = may,
|
||||
year = {2016},
|
||||
note = {ISSN: 1938-1883},
|
||||
keywords = {/unread, Decoding, Complexity theory, Iterative decoding, Block codes, Sparse matrices, Throughput},
|
||||
pages = {1--6},
|
||||
file = {Full Text PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/TRN7GLTA/Hassan et al. - 2016 - Fully parallel window decoder architecture for spatially-coupled LDPC codes.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{costello_spatially_2014,
|
||||
title = {Spatially coupled sparse codes on graphs: theory and practice},
|
||||
volume = {52},
|
||||
issn = {1558-1896},
|
||||
shorttitle = {Spatially coupled sparse codes on graphs},
|
||||
url = {https://ieeexplore.ieee.org/document/6852099},
|
||||
doi = {10.1109/MCOM.2014.6852099},
|
||||
abstract = {Since the discovery of turbo codes 20 years ago and the subsequent rediscovery of low-density parity check codes a few years later, the field of channel coding has experienced a number of major advances. Until that time, code designers were usually happy with performance that came within a few decibels of the Shannon Limit, primarily due to implementation complexity constraints, whereas the new coding techniques now allow performance within a small fraction of a decibel of capacity with modest encoding and decoding complexity. Due to these significant improvements, coding standards in applications as varied as wireless mobile transmission, satellite TV, and deep space communication are being updated to incorporate the new techniques. In this article, we review a particularly exciting new class of low-density parity check codes called spatially coupled codes, which promise excellent performance over a broad range of channel conditions and decoded error rate requirements.},
|
||||
number = {7},
|
||||
urldate = {2026-03-26},
|
||||
journal = {IEEE Communications Magazine},
|
||||
author = {Costello, Daniel J. and Dolecek, Lara and Fuja, Thomas E. and Kliewer, Jorg and Mitchell, David G.M. and Smarandache, Roxana},
|
||||
month = jul,
|
||||
year = {2014},
|
||||
note = {TLDR: This article reviews a particularly exciting new class of low-density parity check codes called spatially coupled codes, which promise excellent performance over a broad range of channel conditions and decoded error rate requirements.},
|
||||
keywords = {/unread, Decoding, Iterative decoding, Block codes, Sparse matrices, Convolutional codes},
|
||||
pages = {168--176},
|
||||
file = {Full Text PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/WH3R5BMN/Costello et al. - 2014 - Spatially coupled sparse codes on graphs theory and practice.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{hagenauer_iterative_2002,
|
||||
title = {Iterative decoding of binary block and convolutional codes},
|
||||
volume = {42},
|
||||
url = {https://ieeexplore.ieee.org/abstract/document/485714/},
|
||||
number = {2},
|
||||
urldate = {2026-04-09},
|
||||
journal = {IEEE Transactions on information theory},
|
||||
publisher = {IEEE},
|
||||
author = {Hagenauer, Joachim and Offer, Elke and Papke, Lutz},
|
||||
year = {2002},
|
||||
keywords = {/unread},
|
||||
pages = {429--445},
|
||||
file = {Available Version (via Google Scholar):/home/andreas/workspace/work/hiwi/Zotero/storage/BYT9IHNL/Hagenauer et al. - 2002 - Iterative decoding of binary block and convolutional codes.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
\Ac{qec} is a field of research combining ``classical''
|
||||
communications engineering and quantum information science.
|
||||
This chapter provides the relevant theoretical background on both of
|
||||
these topics and subsequently introduces the the fundamentals of \ac{qec}.
|
||||
these topics and subsequently introduces the fundamentals of \ac{qec}.
|
||||
|
||||
% TODO: Is an explanation of BP with guided decimation needed in this chapter?
|
||||
% TODO: Is an explanation of OSD needed chapter?
|
||||
@@ -12,15 +12,14 @@ these topics and subsequently introduces the the fundamentals of \ac{qec}.
|
||||
\section{Classical Error Correction}
|
||||
\label{sec:Classical Error Correction}
|
||||
|
||||
% TODO: Maybe rephrase: The core concept is not the realization, its's the
|
||||
% thing itself
|
||||
The core concept underpinning error correcting codes is the
|
||||
realization that a finite amount of redundancy, introduced
|
||||
deliberately and systematically to information before its
|
||||
tranmission, can be utilized to reduce the error rate of a
|
||||
communications system considerably.
|
||||
This idea has been expanded upon significantly since it was first
|
||||
brought forward by Claude Shannon in 1948 \cite{shannon_mathematical_1948}.
|
||||
realization that introducing a finite amount of redundancy to
|
||||
information before transmission can considerably reduce the error rate.
|
||||
Specifically, Shannon proved in 1948 that for any channel, a block
|
||||
code can be found that achieves arbitrarily small probability of
|
||||
error at any communication rate up to the capacity of the channel
|
||||
when the block length approaches infinity
|
||||
\cite[Sec.~13]{shannon_mathematical_1948}.
|
||||
|
||||
In this section, we explore the concepts of ``classical'' (as in non-quantum)
|
||||
error correction that are central to this work.
|
||||
@@ -30,17 +29,15 @@ first considering binary linear block codes in general and then \ac{ldpc} and
|
||||
Finally, we pivot to the decoding process, specifically the \ac{bp}
|
||||
algorithm.
|
||||
|
||||
% TODO: Use subsubsections?
|
||||
\subsection{Binary Linear Block Codes}
|
||||
|
||||
%
|
||||
% Codewords, n, k, rate
|
||||
%
|
||||
|
||||
% TODO: Do I need a specific reference for the expanded Hilbert space thing?
|
||||
One particularly important class of coding schemes is that of binary
|
||||
linear block codes.
|
||||
The information to be protected takes the form of a sequence of of
|
||||
The information to be protected takes the form of a sequence of
|
||||
binary symbols, which is split into separate blocks.
|
||||
Each block is encoded, transmitted, and decoded separately.
|
||||
The encoding step introduces redundancy by mapping input messages
|
||||
@@ -51,7 +48,7 @@ $\bm{u} \in \mathbb{F}_2^k$ of length $k \in \mathbb{N}$ (called the
|
||||
A measure of the amount of introduced redundancy is the \textit{code
|
||||
rate} $R = k/n$.
|
||||
We call the set of all codewords $\mathcal{C}$ the \textit{code}
|
||||
\cite[Sec. 3.1]{ryan_channel_2009}.
|
||||
\cite[Sec.~3.1.1]{ryan_channel_2009}.
|
||||
|
||||
%
|
||||
% d_min and the [] Notation
|
||||
@@ -60,20 +57,22 @@ We call the set of all codewords $\mathcal{C}$ the \textit{code}
|
||||
During the encoding process, a mapping from $\mathbb{F}_2^k$
|
||||
onto $\mathcal{C} \subset \mathbb{F}_2^n$ takes place.
|
||||
The input messages are mapped onto an expanded vector space, where
|
||||
they are ``further appart'', giving rise to the error correcting
|
||||
they are ``further apart'', giving rise to the error correcting
|
||||
properties of the code.
|
||||
This notion of the distance between two codewords $\bm{x}_1$ and
|
||||
$\bm{x}_2$ can be expressed using the \textit{Hamming distance} $d(\bm{x}_1,
|
||||
\bm{x}_2)$, which is defined as the number of positions in which they differ.
|
||||
We define the \textit{minimum distance} of a code $\mathcal{C}$ as
|
||||
%
|
||||
\begin{align*}
|
||||
d_\text{min} = \min \left\{ d(\bm{x}_1, \bm{x}_2) : \bm{x}_1,
|
||||
d_\text{min} := \min \left\{ d(\bm{x}_1, \bm{x}_2) : \bm{x}_1,
|
||||
\bm{x}_2 \in \mathcal{C}, \bm{x}_1 \neq \bm{x}_2 \right\}
|
||||
.
|
||||
\end{align*}
|
||||
%
|
||||
We can signify that a binary linear block code has information length
|
||||
$k$, block length $n$ and minimum distance $d_\text{min}$ using the
|
||||
notation $[n,k,d_\text{dmin}]$ \cite[Sec. 1.3]{macwilliams_theory_1977}.
|
||||
notation $[n,k,d_\text{min}]$ \cite[Sec.~1.3]{macwilliams_theory_1977}.
|
||||
|
||||
%
|
||||
% Parity checks, H, and the syndrome
|
||||
@@ -87,15 +86,19 @@ Since $\lvert \mathcal{C} \rvert = 2^k$ and $\lvert \mathbb{F}_2^n
|
||||
additional degrees of freedom.
|
||||
These conditions, called parity checks, take the form of equations
|
||||
over $\mathbb{F}_2^n$, linking the individual positions of each codeword.
|
||||
We can arrange the coefficients of these equations in the
|
||||
We can arrange the coefficients of these equations in a
|
||||
\textit{parity-check matrix} (\acs{pcm}) $\bm{H} \in
|
||||
\mathbb{F}_2^{(n-k) \times n}$ and equivalently define the code as
|
||||
\cite[Sec. 3.1]{ryan_channel_2009}
|
||||
\cite[Sec.~3.1.1]{ryan_channel_2009}
|
||||
%
|
||||
\begin{align*}
|
||||
\mathcal{C} = \left\{ \bm{x} \in \mathbb{F}_2^n :
|
||||
\bm{H}\bm{x}^\text{T} = \bm{0} \right\}
|
||||
.%
|
||||
\end{align*}
|
||||
Note that in general we may have linearly dependent parity checks,
|
||||
prompting us to define the \ac{pcm} as $\bm{H} \in
|
||||
\mathbb{F}_2^{m\times n}$ with $\hspace{2mm} m \ge n-k$ instead.
|
||||
The \textit{syndrome} $\bm{s} = \bm{H} \bm{v}^\text{T}$ describes
|
||||
which parity checks a candidate codeword $\bm{v} \in \mathbb{F}_2^n$ violates.
|
||||
The representation using the \ac{pcm} has the benefit of providing a
|
||||
@@ -107,31 +110,23 @@ exponentially with $n$, in contrast to keeping track of all codewords directly.
|
||||
%
|
||||
|
||||
Figure \ref{fig:Diagram of a transmission system} visualizes the
|
||||
entire communication process \cite[Sec. 1.1]{ryan_channel_2009}.
|
||||
communication process \cite[Sec.~1.1]{ryan_channel_2009}.
|
||||
An input message $\bm{u}\in \mathbb{F}_2^k$ is mapped onto a codeword $\bm{x}
|
||||
\in \mathbb{F}_2^n$. This is passed on to a modulator, which
|
||||
interacts with the physical channel.
|
||||
A demodulator processes the received message and forwards the result
|
||||
$\bm{y} \in \mathbb{R}^n$ to a decoder.
|
||||
A demodulator processes the channel output and forwards the result
|
||||
$\bm{y}$ to a decoder.
|
||||
We differentiate between \textit{soft-decision} decoding, where
|
||||
$\bm{y} \in \mathbb{R}^n$, and \textit{hard-decision} decoding, where
|
||||
$\bm{y} \in \mathbb{F}_2^n$ \cite[Sec.~1.5.1.3]{ryan_channel_2009}.
|
||||
Finally, the decoder is responsible for obtaining an estimate
|
||||
$\hat{\bm{u}} \in \mathbb{F}_2^k$ of the original input message from the
|
||||
received message.
|
||||
$\hat{\bm{u}} \in \mathbb{F}_2^k$ of the original input message.
|
||||
This is done by first finding an estimate $\hat{\bm{x}}$ of the sent
|
||||
codeword and undoing the encoding.
|
||||
The decoding problem that we generally attempt to solve thus consists
|
||||
in finding the best estimate $\hat{\bm{x}}$ given $\bm{y}$.
|
||||
One approach is to use the \ac{ml} criterion \cite[Sec.
|
||||
1.4]{ryan_channel_2009}
|
||||
\begin{align*}
|
||||
\hat{\bm{u}}_\text{ML} = \arg\max_{\bm{x} \in \mathcal{C}}
|
||||
P(\bm{Y} = \bm{y} \vert \bm{X} = \bm{x})
|
||||
.
|
||||
\end{align*}
|
||||
Finally, we differentiate between \textit{soft decision} decoding, where
|
||||
$\bm{y} \in \mathbb{R}^n$, and \textit{hard decision} decoding, where
|
||||
$\bm{y} \in \mathbb{F}_2^n$ \cite[Sec. 1.5.1.3]{ryan_channel_2009}.
|
||||
%
|
||||
\begin{figure}[h]
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
|
||||
\tikzset{
|
||||
@@ -171,32 +166,429 @@ $\bm{y} \in \mathbb{F}_2^n$ \cite[Sec. 1.5.1.3]{ryan_channel_2009}.
|
||||
|
||||
\subsection{Low-Density Parity-Check Codes}
|
||||
|
||||
\red{
|
||||
\begin{itemize}
|
||||
\item Use \cite[Ch. 5]{ryan_channel_2009} as a reference
|
||||
\item Core concept (Large $n$ with manageable complexity)
|
||||
\item Tanner graphs, VNs and CNs
|
||||
\end{itemize}
|
||||
%
|
||||
% Core concept
|
||||
%
|
||||
|
||||
Shannon's noisy-channel coding theorem is stated for codes whose block
|
||||
length approaches infinity. This suggests that as the block length
|
||||
becomes larger, the performance of the considered codes should
|
||||
generally improve.
|
||||
However, the size of the \ac{pcm}, and thus in general the decoding complexity,
|
||||
of a linear block code grows quadratically with $n$.
|
||||
This would quickly render decoding intractable as we increase the block length.
|
||||
We can get around this problem by constructing $\bm{H}$ in such a
|
||||
manner that the number of nonzero entries grows less than quadratically, e.g.,
|
||||
only linearly.
|
||||
This is exactly the motivation behind \ac{ldpc} codes
|
||||
\cite[Ch.~1]{gallager_low_1960}.
|
||||
|
||||
%
|
||||
% Tanner Graph, VNs and CNs
|
||||
%
|
||||
|
||||
\ac{ldpc} codes belong to a class sometimes referred to as ``modern codes''.
|
||||
These differ from ``classical codes'' in their decoding algorithms:
|
||||
Classical codes are usually decoded using one-step hard-decision decoding,
|
||||
whereas modern codes are suitable for iterative soft-decision
|
||||
decoding \cite[Preface]{ryan_channel_2009}. The iterative decoding algorithms
|
||||
in question are generally defined in terms of message passing on the
|
||||
\textit{Tanner graph} of the code. The Tanner graph is a bipartite
|
||||
graph that constitutes an alternative representation of the \ac{pcm}.
|
||||
We define two types of nodes: \acp{vn}, corresponding to codeword
|
||||
bits, and \acp{cn}, corresponding to individual parity checks.
|
||||
We then construct the Tanner graph by connecting each \ac{cn} to
|
||||
the \acp{vn} that make up the corresponding parity check
|
||||
\cite[Sec.~5.1.2]{ryan_channel_2009}.
|
||||
Figure \ref{PCM and Tanner graph of the Hamming code} shows this
|
||||
construction for the [7,4,3]-Hamming code.
|
||||
%
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
|
||||
\begin{align*}
|
||||
\bm{H} =
|
||||
\begin{pmatrix}
|
||||
0 & 1 & 1 & 1 & 1 & 0 & 0 \\
|
||||
1 & 0 & 1 & 1 & 0 & 1 & 0 \\
|
||||
1 & 1 & 0 & 1 & 0 & 0 & 1 \\
|
||||
\end{pmatrix}
|
||||
\end{align*}
|
||||
|
||||
\vspace*{2mm}
|
||||
|
||||
\tikzset{
|
||||
VN/.style={
|
||||
circle, fill=KITgreen, minimum width=1mm, minimum height=1mm,
|
||||
},
|
||||
CN/.style={
|
||||
rectangle, fill=KITblue, minimum width=1mm, minimum height=1mm,
|
||||
},
|
||||
}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\node[VN, label=above:$x_1$] (vn1) {};
|
||||
\node[VN, right=12mm of vn1, label=above:$x_2$] (vn2) {};
|
||||
\node[VN, right=12mm of vn2, label=above:$x_3$] (vn3) {};
|
||||
\node[VN, right=12mm of vn3, label=above:$x_4$] (vn4) {};
|
||||
\node[VN, right=12mm of vn4, label=above:$x_5$] (vn5) {};
|
||||
\node[VN, right=12mm of vn5, label=above:$x_6$] (vn6) {};
|
||||
\node[VN, right=12mm of vn6, label=above:$x_7$] (vn7) {};
|
||||
|
||||
\node[
|
||||
CN, below=25mm of vn4,
|
||||
label={below:$x_1 + x_3 + x_4 + x_6 = 0$}
|
||||
] (cn2) {};
|
||||
\node[
|
||||
CN, left=40mm of cn2,
|
||||
label={below:$x_2 + x_3 + x_4 + x_5 = 0$}
|
||||
] (cn1) {};
|
||||
\node[
|
||||
CN, right=40mm of cn2,
|
||||
label={below:$x_1 + x_2 + x_4 + x_7 = 0$}
|
||||
] (cn3) {};
|
||||
|
||||
\foreach \n in {2,3,4,5} {
|
||||
\draw (cn1) -- (vn\n);
|
||||
}
|
||||
|
||||
\foreach \n in {1,3,4,6} {
|
||||
\draw (cn2) -- (vn\n);
|
||||
}
|
||||
|
||||
\foreach \n in {1,2,4,7} {
|
||||
\draw (cn3) -- (vn\n);
|
||||
}
|
||||
\end{tikzpicture}
|
||||
|
||||
\caption{The \ac{pcm} and corresponding Tanner graph of the
|
||||
[7,4,3]-Hamming code.}
|
||||
\label{PCM and Tanner graph of the Hamming code}
|
||||
\end{figure}
|
||||
|
||||
%
|
||||
% N_V(j), N_C(i)
|
||||
%
|
||||
|
||||
Mathematically, we represent a \ac{vn} using the index $i \in
|
||||
\mathcal{I} := \left[
|
||||
1 : n \right]$ and a \ac{cn} using the index $j \in \mathcal{J}
|
||||
:= \left[ 1 : m \right]$.
|
||||
We can then encode the information contained in the graph by defining
|
||||
the neighborhood of a variable node $i$ as
|
||||
$\mathcal{N}_\text{V} (i) = \left\{ j \in \mathcal{J} : \bm{H}_{j,i}
|
||||
= 1 \right\}$
|
||||
and that of a check node $j$ as
|
||||
$\mathcal{N}_\text{C} (j) = \left\{ i \in \mathcal{I} : \bm{H}_{j,i}
|
||||
= 1 \right\}$.
|
||||
|
||||
%
|
||||
% Error floor and waterfall regions
|
||||
%
|
||||
|
||||
We typically evaluate the performance of LDPC codes using the
|
||||
\ac{ber} or the \ac{fer} (a \textit{frame} referes to one whole
|
||||
transmitted block in this context).
|
||||
Considering an \ac{awgn} channel, \autoref{fig:ldpc-perf} shows a
|
||||
qualitative performance characteristic of an \ac{ldpc} code
|
||||
\cite[Fig.~1]{costello_spatially_2014}. We talk of the
|
||||
\textit{waterfall} and the \textit{error floor} regions.
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
width=12cm,
|
||||
height=9cm,
|
||||
xlabel={Signal-to-noise ratio},
|
||||
ylabel={Error rate},
|
||||
% xmin=0, xmax=6,
|
||||
enlarge x limits=false,
|
||||
ymin=1e-9, ymax=1,
|
||||
ticks=none,
|
||||
% y tick label={},
|
||||
ymode=log,
|
||||
grid=both,
|
||||
grid style={line width=0.2pt, draw=gray!30},
|
||||
major grid style={line width=0.4pt, draw=gray!50},
|
||||
legend pos=north east,
|
||||
legend cell align={left},
|
||||
]
|
||||
|
||||
\addplot+[mark=none, solid, smooth, KITblue] coordinates {
|
||||
(4.5789E-01, 1.1821E-01)
|
||||
(6.6842E-01, 9.4575E-02)
|
||||
(8.6316E-01, 5.2657E-02)
|
||||
(1.0421E+00, 2.2183E-02)
|
||||
(1.1789E+00, 8.3588E-03)
|
||||
(1.3368E+00, 1.4835E-03)
|
||||
(1.4895E+00, 1.6852E-04)
|
||||
(1.5842E+00, 2.8285E-05)
|
||||
(1.6737E+00, 4.2465E-06)
|
||||
(1.7684E+00, 3.4519E-07)
|
||||
(1.8316E+00, 3.9213E-08)
|
||||
(1.8684E+00, 6.2247E-09)
|
||||
(1.9053E+00, 1E-09)
|
||||
};
|
||||
\addlegendentry{Regular}
|
||||
|
||||
\addplot+[mark=none, solid, smooth, KITorange] coordinates {
|
||||
(4.5789E-01, 1.1821E-01)
|
||||
(6.4211E-01, 4.9800E-02)
|
||||
(7.5263E-01, 1.2700E-02)
|
||||
(8.1579E-01, 2.3177E-03)
|
||||
(8.6842E-01, 3.5779E-04)
|
||||
(9.1053E-01, 5.3716E-05)
|
||||
(9.4737E-01, 4.8818E-06)
|
||||
(9.8947E-01, 6.5555E-07)
|
||||
(1.0421E+00, 9.5713E-08)
|
||||
% (1.0684E+00, 2.9670E-08)
|
||||
(1.1474E+00, 1.2499E-08)
|
||||
(1.3000E+00, 7.1560E-09)
|
||||
(1.4579E+00, 6.0535E-09)
|
||||
% (1.6105E+00, 5E-09)
|
||||
(1.9579E+00, 4E-09)
|
||||
(2.2947E+00, 3.1876E-09)
|
||||
% (2.8842E+00, 2.0403E-09)
|
||||
};
|
||||
\addlegendentry{Irregular}
|
||||
|
||||
\draw[gray, densely dashed]
|
||||
(axis cs:0.65, 2e-3) rectangle (axis cs:1.65, 5e-5);
|
||||
\node[below] at (axis cs:1.15, 6e-5) {Waterfall};
|
||||
|
||||
\draw[gray, densely dashed]
|
||||
(axis cs:1, 6e-8) rectangle (axis cs:2, 2e-9);
|
||||
\node[above] at (axis cs:1.5, 7e-8) {Error floor};
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
|
||||
\caption{
|
||||
Qualitative performance characteristic of \ac{ldpc} code
|
||||
in an \ac{awgn} channel. Adapted from
|
||||
\cite[Fig.~1]{costello_spatially_2014}.
|
||||
}
|
||||
\label{fig:ldpc-perf}
|
||||
\end{figure}
|
||||
|
||||
Broadly, there are two kinds of \ac{ldpc} codes, \textit{regular} and
|
||||
\textit{irregular}.
|
||||
Regular codes are characterized by the fact that the weights, i.e.,
|
||||
the numbers of ones, of their rows and columns are constant
|
||||
\cite[Sec.~5.1.1]{ryan_channel_2009}.
|
||||
Already during their introduction, regular \ac{ldpc} codes were shown to have
|
||||
a minimum distance scaling linearly with the block length $n$ for
|
||||
large values \cite[Ch.~2,~Theorem~1]{gallager_low_1960},
|
||||
which leads to them not exhibiting an error floor under \ac{ml} decoding.
|
||||
Irregular codes, on the other hand, generally do exhibit an error floor,
|
||||
their redeeming quality being the ability to reach near-capacity
|
||||
performance in the waterfall region \cite[Intro.]{costello_spatially_2014}.
|
||||
|
||||
\subsection{Spatially-Coupled LDPC Codes}
|
||||
|
||||
\red{
|
||||
\begin{itemize}
|
||||
\item Core idea
|
||||
\item Mathematical description (H)
|
||||
\end{itemize}
|
||||
A relatively recent development in the world of \ac{ldpc} codes is
|
||||
that of \ac{sc}-\ac{ldpc} codes.
|
||||
Their key feature is that they combine the best properties of regular
|
||||
and irregular codes.
|
||||
They have a minimum distance that grows linearly with $n$, promising
|
||||
good error floor behavior, and capacity approaching
|
||||
iterative decoding behavior, promising good performance in the
|
||||
waterfall region \cite[Intro.]{costello_spatially_2014}.
|
||||
|
||||
The essential property of \ac{sc}-\ac{ldpc} codes is that codewords
|
||||
from different \textit{spatial positions}, that would ordinarily be sent
|
||||
one after the other independently, are coupled.
|
||||
This is achieved by connecting some \acp{vn} of one spatial position to
|
||||
\acp{cn} of another, resulting in a \ac{pcm} of the form
|
||||
\cite[Eq.~1]{hassan_fully_2016}
|
||||
%
|
||||
\begin{align*}
|
||||
\bm{H} =
|
||||
\begin{pmatrix}
|
||||
\bm{H}_0(1) & & \\
|
||||
\vdots & \ddots & \\
|
||||
\bm{H}_K(1) & & \bm{H}_0(L) \\
|
||||
& \ddots & \\
|
||||
& & \bm{H}_K(L) \\
|
||||
\end{pmatrix}
|
||||
,
|
||||
\end{align*}
|
||||
%
|
||||
where $K \in \mathbb{N}$ is the \textit{coupling width} and $L \in
|
||||
\mathbb{N}$ is the number of spatial positions.
|
||||
This construction results in a Tanner graph as depicted in
|
||||
\autoref{fig:sc-ldpc-tanner}.
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
|
||||
\tikzset{
|
||||
VN/.style={
|
||||
circle, fill=KITgreen, minimum width=1mm, minimum height=1mm,
|
||||
},
|
||||
CN/.style={
|
||||
rectangle, fill=KITblue, minimum width=1mm, minimum height=1mm,
|
||||
},
|
||||
}
|
||||
|
||||
\subsection{Belief Propagation}
|
||||
\begin{tikzpicture}[node distance=7mm and 1cm]
|
||||
\node[VN] (vn00) {};
|
||||
\node[VN, below = of vn00] (vn01) {};
|
||||
\node[VN, below = of vn01] (vn02) {};
|
||||
\node[VN, below = of vn02] (vn03) {};
|
||||
\node[VN, below = of vn03] (vn04) {};
|
||||
|
||||
\red{
|
||||
\begin{itemize}
|
||||
\item Core idea
|
||||
\item BP for SC-LDPC codes
|
||||
\end{itemize}
|
||||
\coordinate (temp) at ($(vn01)!0.5!(vn02)$);
|
||||
|
||||
\node[CN, right = of temp] (cn00) {};
|
||||
\node[CN, below = of cn00] (cn01) {};
|
||||
|
||||
\draw (vn00) -- (cn00);
|
||||
\draw (vn01) -- (cn00);
|
||||
\draw (vn03) -- (cn00);
|
||||
\draw (vn01) -- (cn01);
|
||||
\draw (vn02) -- (cn01);
|
||||
\draw (vn04) -- (cn01);
|
||||
|
||||
\foreach \i in {1,2,3} {
|
||||
\pgfmathtruncatemacro{\previ}{\i-1}
|
||||
\node[VN, right = 25mm of vn\previ 0] (vn\i0) {};
|
||||
|
||||
\foreach \j in {1,...,4} {
|
||||
\pgfmathtruncatemacro{\prevj}{\j-1}
|
||||
\node[VN, below = of vn\i\prevj] (vn\i\j) {};
|
||||
}
|
||||
|
||||
\coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);
|
||||
|
||||
\node[CN, right = of temp] (cn\i0) {};
|
||||
\node[CN, below = of cn\i0] (cn\i1) {};
|
||||
|
||||
\draw (vn\i0) -- (cn\i0);
|
||||
\draw (vn\i1) -- (cn\i0);
|
||||
\draw (vn\i3) -- (cn\i0);
|
||||
\draw (vn\i1) -- (cn\i1);
|
||||
\draw (vn\i2) -- (cn\i1);
|
||||
\draw (vn\i4) -- (cn\i1);
|
||||
}
|
||||
|
||||
\node[right = 25mm of vn30] (vn40) {};
|
||||
\node[below = of vn40] (vn41) {};
|
||||
\node[below = of vn41] (vn42) {};
|
||||
\node[below = of vn42] (vn43) {};
|
||||
\node[below = of vn43] (vn44) {};
|
||||
|
||||
\coordinate (temp) at ($(vn41)!0.5!(vn42)$);
|
||||
|
||||
\node[right = of temp] (cn40) {};
|
||||
\node[below = of cn40] (cn41) {};
|
||||
|
||||
\foreach \i in {0,1,2} {
|
||||
\pgfmathtruncatemacro{\next}{\i+1}
|
||||
\pgfmathtruncatemacro{\nextnext}{\i+2}
|
||||
|
||||
\draw (vn\i 3) to[bend right] (cn\next 1);
|
||||
\draw (vn\i 1) to[bend left] (cn\nextnext 0);
|
||||
}
|
||||
|
||||
\draw (vn33) to[bend right] (cn41);
|
||||
|
||||
\node at ($(cn40)!0.5!(cn41)$) {\dots};
|
||||
|
||||
\draw[decorate, decoration={brace, amplitude=10pt}]
|
||||
([xshift=-5mm,yshift=2mm]vn00.north) --
|
||||
([xshift=5mm,yshift=2mm]vn00.north -| cn20.north)
|
||||
node[midway, above=4mm] {K};
|
||||
\end{tikzpicture}
|
||||
|
||||
\caption{
|
||||
Visualization of the coupling between the Tanner graphs
|
||||
of individual spatial positions.
|
||||
}
|
||||
\label{fig:sc-ldpc-tanner}
|
||||
\end{figure}
|
||||
|
||||
Note that at the first and last few spatial positions, some \acp{cn}
|
||||
have lower degrees.
|
||||
This leads to more reliable information about the
|
||||
\acp{vn} that, as we will see, is
|
||||
later passed to subsequent spatial positions during decoding.
|
||||
This is precisely the effect that leads to the good performance of
|
||||
\ac{sc}-\ac{ldpc} codes in the waterfall region \cite{costello_spatially_2014}.
|
||||
|
||||
\subsection{Iterative Decoding}
|
||||
|
||||
% Introduction
|
||||
|
||||
\ac{ldpc} codes are generally decoded using efficient iterative
|
||||
algorithms, something that is possible due to their sparsity
|
||||
\cite[Sec.~5.3]{ryan_channel_2009}.
|
||||
The algorithm originally proposed alongside LDPC codes for this
|
||||
purpose by Gallager in 1960 is now known as the \ac{spa}
|
||||
\cite[5.4.1]{ryan_channel_2009}, also called \ac{bp}.
|
||||
|
||||
The optimality criterion the \ac{spa} is built around is a
|
||||
symbol-wise \ac{map} decision \cite[Sec.~5.4.1]{ryan_channel_2009}.
|
||||
The core idea of the resulting algorithm is to view \acp{cn} as
|
||||
representing single-parity check codes and \acp{vn} as representing
|
||||
repetition codes.
|
||||
The algorithm alternates between consolidating soft information about
|
||||
the \acp{vn} in the \acp{cn}, and consolidating soft information about
|
||||
the \acp{cn} in the \acp{vn}.
|
||||
To this end, messages are passed back and forth along the edges of
|
||||
the Tanner graph.
|
||||
$L_{i\rightarrow j}$ represents a message passed from \ac{vn} $i$ to
|
||||
\ac{cn} j, $L_{i\leftarrow j}$ represents a message passed from
|
||||
\ac{cn} j to \ac{vn} i.
|
||||
The \acp{vn} additionally receive messages \cite[5.4.2]{ryan_channel_2009}
|
||||
\begin{align*}
|
||||
\tilde{L}_i = \log \frac{P(X=0 \vert Y=y)}{P(X=1 \vert Y=y)},
|
||||
\end{align*}
|
||||
computed from the channel outputs.
|
||||
The consolidation of the information occurs in the \ac{vn} update
|
||||
\begin{align*}
|
||||
L_{i\rightarrow j} = \tilde{L}_i + \sum_{j'\in \mathcal{N}(i)\setminus
|
||||
j} L_{i\leftarrow j'}
|
||||
\end{align*}
|
||||
and the \ac{cn} update
|
||||
\begin{align*}
|
||||
L_{i\leftarrow j} = 2\cdot \tanh^{-1} \left( \prod_{i'\in
|
||||
\mathcal{N}(j)\setminus i} \tanh \frac{L_{i'\rightarrow j}}{2} \right)
|
||||
.
|
||||
\end{align*}
|
||||
|
||||
A basic assumption for the derivation of the \ac{spa} is that the
|
||||
messages are statistically independent.
|
||||
If the Tanner graph has cycles, however, this
|
||||
condition is not met.
|
||||
The shorter the cycles, the sooner this condition is violated and the
|
||||
worse the approximation becomes \cite[Sec.~5.4.4]{ryan_channel_2009}.
|
||||
Cycles of length four (so-called \emph{$4$-cycles}) are the shortest
|
||||
possible cycles and are thus especially problematic.
|
||||
|
||||
% Min-sum algorithm
|
||||
|
||||
A simplification of the \ac{spa} is the min-sum decoder. Here, the
|
||||
\ac{cn} update is approximated as \cite[Sec.~5.5.1]{ryan_channel_2009}
|
||||
\begin{align*}
|
||||
L_{i \leftarrow j} = \prod_{i' \in \mathcal{N}(j)\setminus i}
|
||||
\sign \left( L_{i' \rightarrow j} \right)
|
||||
\cdot \min_{i' \in \mathcal{N}(j)\setminus i} \lvert
|
||||
L_{i'\rightarrow j} \rvert
|
||||
.
|
||||
\end{align*}
|
||||
|
||||
% Sliding-window decoding
|
||||
|
||||
For \ac{sc}-\ac{ldpc} codes, the iterative decoding process is wrapped by a
|
||||
windowing step. This is done to reduce the latency and memory requirements and
|
||||
also the overall computational complexity \cite{costello_spatially_2014}.
|
||||
To this end, the Tanner graph is split into several overlapping windows.
|
||||
During decoding, the messages that are passed along the edges of the
|
||||
graph in the overlapping regions are kept in memory and used for the
|
||||
decoding of subsequent blocks \cite[Sec.~III.~C.]{hassan_fully_2016}.
|
||||
|
||||
\section{Quantum Mechanics and Quantum Information Science}
|
||||
\label{sec:Quantum Mechanics and Quantum Information Science}
|
||||
|
||||
|
||||
@@ -19,7 +19,14 @@
|
||||
% ]{biblatex}
|
||||
\usepackage{todonotes}
|
||||
|
||||
\usetikzlibrary{calc, positioning, arrows}
|
||||
\usetikzlibrary{calc, positioning, arrows, fit}
|
||||
|
||||
\usetikzlibrary{external}
|
||||
\tikzexternalize
|
||||
|
||||
\makeatletter
|
||||
\renewcommand{\todo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable}
|
||||
\makeatother
|
||||
|
||||
%
|
||||
%
|
||||
@@ -28,6 +35,8 @@
|
||||
%
|
||||
|
||||
\newcommand{\red}[1]{\textcolor{red}{#1}}
|
||||
\newcommand{\figwidth}{10cm}
|
||||
\newcommand{\figheight}{7.5cm}
|
||||
|
||||
%
|
||||
%
|
||||
@@ -92,7 +101,7 @@
|
||||
% \listoftables
|
||||
% \include{abbreviations}
|
||||
|
||||
\bibliography{lib/cel-thesis/IEEEabrv,bibliography}
|
||||
\bibliography{lib/cel-thesis/IEEEabrv,src/thesis/bibliography}
|
||||
|
||||
\end{document}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user