diff --git a/fs-succinct/Makefile b/fs-succinct/Makefile index 33dc94d5bc23aedff1319f6331e34ac3ecd4ef80..08ab41e0f244a1f93051c26a871e87acf61334c2 100644 --- a/fs-succinct/Makefile +++ b/fs-succinct/Makefile @@ -1,5 +1,5 @@ TOP=.. -PICS=sole sole_boxes sole_hilevel mixer +PICS=sole sole_boxes sole_hilevel mixer composition include ../Makerules diff --git a/fs-succinct/composition.asy b/fs-succinct/composition.asy new file mode 100644 index 0000000000000000000000000000000000000000..a382b3043279997f9cb221fd31420c591b60db5d --- /dev/null +++ b/fs-succinct/composition.asy @@ -0,0 +1,24 @@ +//import ads; +//import flowchart; + +//draw(roundrectangle("f", (0,0))); +//draw(roundrectangle("g", (1,-1))); +//draw(roundrectangle("h", (-1,-2))); + +object f1 = draw("$f_1$", roundbox, (0,0), xmargin=0.5, ymargin=0.5); +object f2 = draw("$f_2$", roundbox, (1cm,-1cm), xmargin=0.5, ymargin=0.5); +object f3 = draw("$f_3$", roundbox, (-1cm,-1.5cm), xmargin=0.5, ymargin=0.5); + +// XXX this does not work when setting unitsize +draw(point(f1, SE) -- point(f2, NW), Arrow); +draw(point(f1, SW) -- point(f3, NE), Arrow); +draw(point(f2, W) -- point(f3, E), Arrow); + +draw(roundbox(bbox(), xmargin=0.35cm)); + +draw(point(f2, S) -- (xpart(point(f2, S)), -2.5cm), Arrow); +draw(point(f3, S) -- (xpart(point(f3, S)), -2.5cm), Arrow); +draw((xpart(point(f1, N)), 1cm) -- point(f1, N), Arrow); + +label("$f$", (xpart(min(currentpicture)), ypart(max(currentpicture))) + (0.25cm, -0.25cm)); + diff --git a/fs-succinct/succinct.tex b/fs-succinct/succinct.tex index 91c016ed61c7347b40fa87b9fa2f31c80730cb7d..b6b1679e5e9c73869bdf7fb505000f1f8e45fee5 100644 --- a/fs-succinct/succinct.tex +++ b/fs-succinct/succinct.tex @@ -284,6 +284,23 @@ want to set $C$ so that it satisfies the inequality $C \cdot Y \le 2^M$. Basical we are asking the question how much information can we fit in $m$ in addition to the whole of $y$. Clearly we want $C$ to be as high as possibly, thus we set $C := \lfloor 2^M / Y \rfloor$. + +Now let us calculate the redundancy. First we shall note that we can compute redundancy +for $f_1$ and $f_2$ separately and add them up: +$$\eqalign{r(f) &= M + \lceil\log S\rceil - \lceil\log X\rceil - \lceil\log Y\rceil \cr +&= \left(M - \lceil\log C\rceil - \lceil\log Y\rceil\right) + \left(\lceil\log C\rceil + \lceil\log S\rceil - \lceil\log X\rceil\right)\cr +&= r(f_2) + r(f_1)}$$ } +This is just a telescopic sum. It works similarly for more complex mapping compositions: +as long as each intermediate result is used only once as an input to another mapping, you +can just sum the redundancies of all the mappings involved. + +For example, if you have a mapping composition as in fig. \figref{composition}, +you can easily see $r(f) = r(f_1) + r(f_2) + r(f_3)$. +\figure[composition]{composition.pdf}{}{Mapping composition} + +First, we shall estimate $r(f_2)$: +$$\eqalign{r(f_2) &= M - \log(Y\cdot C)= M - \log(\overbrace{Y\cdot \lfloor 2^M / Y \rfloor}^{\ge 2^M - Y})\cr +r(f_2) &\le M - \log(2^M-Y)= \log{2^M\over 2^M-Y} = \log{1 \over 1-{Y \over 2^M}}}$$ \endchapter