Some progress on BACH, added pseudocode for better understanding

This commit is contained in:
Marius Drechsler 2024-08-17 20:25:41 +02:00
parent cd72a820f2
commit dd83a902f8
7 changed files with 296 additions and 2 deletions

16
pseudocode/bach_1.typ Normal file
View file

@ -0,0 +1,16 @@
#import "@preview/lovelace:0.3.0": *
#pseudocode-list(booktabs: true, numbered-title: [Center Point Approximation])[
+ *input*: $bold(cal(o))_"first", bold(x), t, M$
+ *lists*: optimal weights $bold(h)_"opt"$
+ $bold(cal(o)) arrow.l bold(cal(o))_"first"$
+ *repeat* t times:
+ *perform* @alg:best_appr for all input values with $bold(cal(o))$:
+ *update* $bold(h)_"opt"$ with returned weights
+ $bold(z)_"opt" arrow.l$ all returned linear combinations
+ *sort* $bold(z)_"opt"$ in ascending order
+ *define* new quantizer $cal(Q)^*$ using the @ecdf based on $bold(z)_"opt"$
+ *update* $bold(cal(o))$ with newly found quantizer step centers
+ *return* $bold(h)_"opt"$
]

View file

@ -0,0 +1,12 @@
#import "@preview/lovelace:0.3.0": *
#pseudocode-list(booktabs: true, numbered-title: [Find best approximation])[
+ *inputs*:
+ $bold(y)$ input values for linear combinations
+ $bold(cal(o))$ list of optimal points
+ *output*: $(bold(h), z_"opt")$
//+ n number of summands in linear combination
+ *calculate* all possible linear combinations $bold(z)$ with @eq:z_eq
+ *calculate* matrix $bold(cal(A))$ with $a_"ij" = abs(z_i - cal(o)_j)$
+ *return* weights $bold(h)$ for $z_"opt" = op("argmin")(bold(cal(A)))$ and $z_"opt"$
]