Annotated circuit figure and added prose in S.4 to describe OnePass and SampMonomial informally.

master
Aaron Huber 2022-06-03 16:25:03 -04:00
parent e581f6b9ab
commit cd17e7933b
2 changed files with 29 additions and 4 deletions

View File

@ -94,7 +94,7 @@ Given the above, the algorithm is a sampling based algorithm for the above sum:
to $\abs{\coef}$ and compute $\vari{Y}=\indicator{\isInd{\encMon}}
\cdot \prod_{X_i\in \monom} p_i$.
Repeating the sampling an appropriate number of times
and computing the average of $\vari{Y}$ gives us our final estimate. \onepass is used to compute the sampling probabilities needed in \sampmon. All the algorithms details are in \Cref{sec:proofs-approx-alg}.
and computing the average of $\vari{Y}$ gives us our final estimate. For every gate \circuit, \onepass computes $\abs{\circuit}\inparen{1,\ldots, 1}$ as seen in the lighter font of~\Cref{fig:circuit}. \onepass further weights each child $\circuit_i$ for $i\in\inset{\linput, \rinput}$, by the expression $\frac{\abs{\circuit_i}\inparen{1,\ldots, 1}}{\abs{\circuit}\inparen{1,\ldots, 1}}$. These weight are the basis for the sampling performed by \sampmon. All the algorithms details are in \Cref{sec:proofs-approx-alg}.
%%%%%%%%%%%%%%%%%%%%%%%

View File

@ -29,7 +29,7 @@ $\circuitset{\polyX}$ is the set of all possible circuits $\circuit$ such that $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The circuit of \Cref{fig:circuit} is an element of $\circuitset{2X^2+3XY-2Y^2}$. %One can think of $\circuitset{\polyX}$ as the infinite set of circuits where for each element \circuit, $\polyf\inparen{\circuit} = \polyX$.
\Cref{fig:circuit} depicts a circuit \circuit in $\circuitset{2X^2+3XY-2Y^2}$. Light-text annotations denote the computation of $\abs{\circuit}\inparen{1, \ldots, 1}$ which we introduce in~\Cref{sec:algo}.%One can think of $\circuitset{\polyX}$ as the infinite set of circuits where for each element \circuit, $\polyf\inparen{\circuit} = \polyX$.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\medskip
@ -54,7 +54,32 @@ The circuit of \Cref{fig:circuit} is an element of $\circuitset{2X^2+3XY-2Y^2}$.
\node[tree_node] (b3) at (3.75, 1.5) {$\boldsymbol{\circplus}$};
\node[tree_node] (a4) at (2.25, 2.25) {$\boldsymbol{\circmult}$};
%%%%%%%%%%%%%%
%|C| label nodes
\node[draw=none, gray%, left=of a1
](a1l) at (0, -0.75) {$1$};
\node[draw=none, gray] (b1l) at (1.5, -0.75) {$2$};
\node[draw=none, gray] (c1l) at (3, -0.75) {$1$};
\node[draw=none, gray] (d1l) at (4.5, -0.75) {$1$};
\node[draw=none, gray] (a2l) at (0.75, 0) {$2$};
\node[draw=none, gray] (b2l) at (2.25, 0) {$2$};
\node[draw=none, gray] (c2l) at (3.75, 0) {$1$};
\node[draw=none, gray] (a3l) at (-0.2, 1.5) {$3$};
\node[draw=none, gray] (b3l) at (4.5, 1.5) {$3$};
\node[draw=none, gray] (a4l) at (2.8, 2.7) {$9$};
% |C| label lines
\draw[gray] (a1l) -- (a1);
\draw[gray] (b1) -- (b1l);
\draw[gray] (c1) -- (c1l);
\draw[gray] (d1) -- (d1l);
\draw[gray] (a2) -- (a2l);
\draw[gray] (b2) -- (b2l);
\draw[gray] (c2) -- (c2l);
\draw[gray] (a3) -- (a3l);
\draw[gray] (b3) -- (b3l);
\draw[gray] (a4) -- (a4l);
%%%%%%%%%%%%%
\draw[->] (a1) -- (a2);
\draw[->] (a1) -- (a3);
\draw[->] (b1) -- (a2);
@ -71,7 +96,7 @@ The circuit of \Cref{fig:circuit} is an element of $\circuitset{2X^2+3XY-2Y^2}$.
\end{tikzpicture}
%\setlength{\abovecaptionskip}{-0.025cm}
\savecaptionspace{
\caption{Circuit encoding of $(X + 2Y)(2X - Y)$}
\caption{Circuit encoding of $(X + 2Y)(2X - Y)$.}
\label{fig:circuit}
}{-0.025cm}{-0.58cm}
%\vspace{-0.58cm}