11 Commits

7 changed files with 586 additions and 224 deletions

View File

@@ -224,25 +224,25 @@ construction for the [7,4,3]-Hamming code.
} }
\begin{tikzpicture} \begin{tikzpicture}
\node[VN, label=above:$x_1$] (vn1) {}; \node[VN, label=above:$x_0$] (vn1) {};
\node[VN, right=12mm of vn1, label=above:$x_2$] (vn2) {}; \node[VN, right=12mm of vn1, label=above:$x_1$] (vn2) {};
\node[VN, right=12mm of vn2, label=above:$x_3$] (vn3) {}; \node[VN, right=12mm of vn2, label=above:$x_2$] (vn3) {};
\node[VN, right=12mm of vn3, label=above:$x_4$] (vn4) {}; \node[VN, right=12mm of vn3, label=above:$x_3$] (vn4) {};
\node[VN, right=12mm of vn4, label=above:$x_5$] (vn5) {}; \node[VN, right=12mm of vn4, label=above:$x_4$] (vn5) {};
\node[VN, right=12mm of vn5, label=above:$x_6$] (vn6) {}; \node[VN, right=12mm of vn5, label=above:$x_5$] (vn6) {};
\node[VN, right=12mm of vn6, label=above:$x_7$] (vn7) {}; \node[VN, right=12mm of vn6, label=above:$x_6$] (vn7) {};
\node[ \node[
CN, below=25mm of vn4, CN, below=25mm of vn4,
label={below:$x_1 + x_3 + x_4 + x_6 = 0$} label={below:$x_0 + x_2 + x_3 + x_5 = 0$}
] (cn2) {}; ] (cn2) {};
\node[ \node[
CN, left=40mm of cn2, CN, left=40mm of cn2,
label={below:$x_2 + x_3 + x_4 + x_5 = 0$} label={below:$x_1 + x_2 + x_3 + x_4 = 0$}
] (cn1) {}; ] (cn1) {};
\node[ \node[
CN, right=40mm of cn2, CN, right=40mm of cn2,
label={below:$x_1 + x_2 + x_4 + x_7 = 0$} label={below:$x_0 + x_1 + x_3 + x_6 = 0$}
] (cn3) {}; ] (cn3) {};
\foreach \n in {2,3,4,5} { \foreach \n in {2,3,4,5} {
@@ -268,9 +268,9 @@ construction for the [7,4,3]-Hamming code.
% %
Mathematically, we represent a \ac{vn} using the index $i \in Mathematically, we represent a \ac{vn} using the index $i \in
\mathcal{I} := \left[ \mathcal{I} := \left[ 0:n-1 \right] := \left\{ 0,1,\ldots,n-1 \right\}$
1 : n \right]$ and a \ac{cn} using the index $j \in \mathcal{J} and a \ac{cn} using the index $j \in \mathcal{J}
:= \left[ 1 : m \right]$. := \left[ 0 : m-1 \right]$.
We can then encode the information contained in the graph by defining We can then encode the information contained in the graph by defining
the neighborhood of a variable node $i$ as the neighborhood of a variable node $i$ as
$\mathcal{N}_\text{V} (i) = \left\{ j \in \mathcal{J} : \bm{H}_{j,i} $\mathcal{N}_\text{V} (i) = \left\{ j \in \mathcal{J} : \bm{H}_{j,i}

View File

@@ -41,7 +41,7 @@ address both.
% Definition of fault tolerance % Definition of fault tolerance
We model the possible occurrence of errors during any processing We model the possible occurrence of errors during any processing
stage as different \emph{error locations} $E_i,~i\in \{1,\ldots,N\}$ stage as different \emph{error locations} $E_i,~i\in [1:N]$
in the circuit. in the circuit.
$N \in \mathbb{N}$ is the total number of considered error locations. $N \in \mathbb{N}$ is the total number of considered error locations.
The \emph{circuit error vector} $\bm{e} \in \{0,1\}^N$ is a vector The \emph{circuit error vector} $\bm{e} \in \{0,1\}^N$ is a vector
@@ -861,7 +861,7 @@ can add the results from the previous round, as illustrated in
\Cref{fig:detectors_from_measurements_general}. \Cref{fig:detectors_from_measurements_general}.
We thus have $D=n-k$. We thus have $D=n-k$.
Concretely, we denote the outcome of Concretely, we denote the outcome of
measurement $\ell \in \{1,\ldots,n-k\}$ in round $r \in \{1,\ldots,R\}$ by measurement $\ell \in [1:n-k]$ in round $r \in [1:R]$ by
$m_\ell^{(r)} \in \mathbb{F}_2$ $m_\ell^{(r)} \in \mathbb{F}_2$
and define and define
\begin{gather*} \begin{gather*}
@@ -873,7 +873,7 @@ and define
\end{pmatrix} \end{pmatrix}
.% .%
\end{gather*} \end{gather*}
Similarly, we denote the outcome of detector $j\in\{1,\ldots,D\}$ in Similarly, we denote the outcome of detector $j\in[1:D]$ in
round $r$ by $d_j^{(r)} \in \mathbb{F}_2$ and define round $r$ by $d_j^{(r)} \in \mathbb{F}_2$ and define
\begin{gather} \begin{gather}
\label{eq:measurement_combination} \label{eq:measurement_combination}

File diff suppressed because it is too large Load Diff

View File

@@ -129,6 +129,24 @@ sp="/-\|"
# done # done
# done # done
# Copy whole BP over max iter. results
echo -e "\rCopying whole over max_iter simulation results..."
echo -n ' '
for decoder in "SyndromeMinSumDecoder"; do
for p in 0.001 0.0025 0.004; do
SRC_PATH="${BASE_PATH}+rust_exp=max_iter_bp,decoder.class_name=${decoder},simulation.phy_err_rate=${p}/"
LATEST_RESULTS_DIR=$(ls -t ${SRC_PATH} | head -1)
SRC_FILE="${SRC_PATH}/${LATEST_RESULTS_DIR}/LERs.csv"
DEST_DIR="res/sim/max_iter/${decoder}/p_${p}/"
mkdir -p ${DEST_DIR}
DEST_FILE="${DEST_DIR}/LERs.csv"
cp ${SRC_FILE} ${DEST_FILE}
post_process_LERs ${DEST_FILE}
printf "\b${sp:i++%${#sp}:1}"
done
done
# # Copy BPGD decimation passing # # Copy BPGD decimation passing
# #
# echo -e "\rCopying BPGD param exploration results..." # echo -e "\rCopying BPGD param exploration results..."
@@ -151,20 +169,20 @@ sp="/-\|"
# Copy BPGD with decimation info passing over max iter. results # Copy BPGD with decimation info passing over max iter. results
echo -e "\rCopying BPGD over max. iter. results..." # echo -e "\rCopying BPGD over max. iter. results..."
echo -n ' ' # echo -n ' '
for pass_soft_info in "True" "False"; do # for pass_soft_info in "True" "False"; do
for F in 1 2 3; do # for F in 1 2 3; do
for W in 3 4 5; do # for W in 3 4 5; do
SRC_PATH="${BASE_PATH}+rust_exp=max_iter_bpgd_pass_channel,decoder.class_name=WindowingSyndromeSpaGdDecoder,decoder.pass_soft_info=${pass_soft_info},simulation.phy_err_rate=0.0025,system.F=${F},system.W=${W}/" # SRC_PATH="${BASE_PATH}+rust_exp=max_iter_bpgd_pass_channel,decoder.class_name=WindowingSyndromeSpaGdDecoder,decoder.pass_soft_info=${pass_soft_info},simulation.phy_err_rate=0.0025,system.F=${F},system.W=${W}/"
LATEST_RESULTS_DIR=$(ls -t ${SRC_PATH} | head -1) # LATEST_RESULTS_DIR=$(ls -t ${SRC_PATH} | head -1)
SRC_FILE="${SRC_PATH}/${LATEST_RESULTS_DIR}/LERs.csv" # SRC_FILE="${SRC_PATH}/${LATEST_RESULTS_DIR}/LERs.csv"
DEST_DIR="res/sim/max_iter/WindowingSyndromeSpaGdDecoderPassDecimation/p_0.0025/pass_soft_info_${pass_soft_info}/F_${F}/W_${W}" # DEST_DIR="res/sim/max_iter/WindowingSyndromeSpaGdDecoderPassDecimation/p_0.0025/pass_soft_info_${pass_soft_info}/F_${F}/W_${W}"
mkdir -p ${DEST_DIR} # mkdir -p ${DEST_DIR}
DEST_FILE="${DEST_DIR}/LERs.csv" # DEST_FILE="${DEST_DIR}/LERs.csv"
cp ${SRC_FILE} ${DEST_FILE} # cp ${SRC_FILE} ${DEST_FILE}
post_process_LERs ${DEST_FILE} # post_process_LERs ${DEST_FILE}
printf "\b${sp:i++%${#sp}:1}" # printf "\b${sp:i++%${#sp}:1}"
done # done
done # done
done # done

View File

@@ -0,0 +1,8 @@
max_iter,num_trials,LER,LER_per_round,num_errors
32,10528,0.0354293313069908,0.0030015014232951387,372.99999999999915
128,68422,0.0029230364502645,0.00024391332035389457,199.99999999999764
256,100000,0.00184,0.00015346279666106355,184.0
512,100000,0.00122,0.00010172355962756452,122.0
1024,100000,0.00084,7.002696447200307e-05,84.0
2048,100000,0.00052,4.33436645435048e-05,51.99999999999999
4096,100000,0.00042,3.5006739308451884e-05,42.0
1 max_iter num_trials LER LER_per_round num_errors
2 32 10528 0.0354293313069908 0.0030015014232951387 372.99999999999915
3 128 68422 0.0029230364502645 0.00024391332035389457 199.99999999999764
4 256 100000 0.00184 0.00015346279666106355 184.0
5 512 100000 0.00122 0.00010172355962756452 122.0
6 1024 100000 0.00084 7.002696447200307e-05 84.0
7 2048 100000 0.00052 4.33436645435048e-05 51.99999999999999
8 4096 100000 0.00042 3.5006739308451884e-05 42.0

View File

@@ -0,0 +1,8 @@
max_iter,num_trials,LER,LER_per_round,num_errors
32,5264,0.3575227963525836,0.03619728900635699,1882.0
128,5264,0.1118920972644376,0.00983977212107956,588.9999999999995
256,5264,0.0818768996960486,0.007093372523371166,430.99999999999983
512,5264,0.0645896656534954,0.005548714177492475,339.9999999999998
1024,5264,0.0524316109422492,0.004477957765848362,275.9999999999998
2048,5264,0.0442629179331307,0.0037655941776483237,233.0
4096,10528,0.0361892097264437,0.0030669771276242708,380.99999999999926
1 max_iter num_trials LER LER_per_round num_errors
2 32 5264 0.3575227963525836 0.03619728900635699 1882.0
3 128 5264 0.1118920972644376 0.00983977212107956 588.9999999999995
4 256 5264 0.0818768996960486 0.007093372523371166 430.99999999999983
5 512 5264 0.0645896656534954 0.005548714177492475 339.9999999999998
6 1024 5264 0.0524316109422492 0.004477957765848362 275.9999999999998
7 2048 5264 0.0442629179331307 0.0037655941776483237 233.0
8 4096 10528 0.0361892097264437 0.0030669771276242708 380.99999999999926

View File

@@ -0,0 +1,8 @@
max_iter,num_trials,LER,LER_per_round,num_errors
32,5264,0.8651215805471124,0.15375677320993897,4554.0
128,5264,0.5987841945288754,0.0732807818579091,3152.0000000000005
256,5264,0.5184270516717325,0.05907464062706547,2729.0
512,5264,0.4591565349544073,0.04992921073125611,2417.0
1024,5264,0.4209726443768997,0.04451268995716784,2216.0
2048,5264,0.3865881458966565,0.03990837706831185,2035.0
4096,5264,0.3563829787234042,0.036054914686007855,1875.9999999999995
1 max_iter num_trials LER LER_per_round num_errors
2 32 5264 0.8651215805471124 0.15375677320993897 4554.0
3 128 5264 0.5987841945288754 0.0732807818579091 3152.0000000000005
4 256 5264 0.5184270516717325 0.05907464062706547 2729.0
5 512 5264 0.4591565349544073 0.04992921073125611 2417.0
6 1024 5264 0.4209726443768997 0.04451268995716784 2216.0
7 2048 5264 0.3865881458966565 0.03990837706831185 2035.0
8 4096 5264 0.3563829787234042 0.036054914686007855 1875.9999999999995