2021-07-15 12:00:02 -04:00
%root: main.tex
\usetikzlibrary { shapes.geometric} %for cylinder
\usetikzlibrary { shapes.arrows} %for arrow shape
\usetikzlibrary { shapes.misc}
%rid of vertical spacing for booktabs rules
\renewcommand { \aboverulesep } { 0pt}
\renewcommand { \belowrulesep } { 0pt}
2022-03-15 11:21:11 -04:00
\begin { figure*} [t!]
2021-07-15 12:00:02 -04:00
\centering
2022-05-25 09:47:05 -04:00
\resizebox { \textwidth } { !} { %
2021-07-15 12:00:02 -04:00
\begin { tikzpicture}
%pdb cylinder
2022-05-25 09:47:05 -04:00
\node [cylinder, text width=0.28\textwidth, align=center, draw=black, text=black, cylinder uses custom fill, cylinder body fill=blue!10, aspect=0.12, minimum height=2.5cm, minimum width=2.5cm, cylinder end fill=blue!50, shape border rotate=90] (cylinder) at (0, 0) {
2021-07-15 12:00:02 -04:00
\tabcolsep =0.1cm
2022-05-25 09:47:05 -04:00
\begin { tabular} [t]{ >{ \small } c | >{ \small } c | >{ \small } c}
2022-02-04 15:36:14 -05:00
\multicolumn { 2} { c} { $ \boldsymbol { T } $ } \\
2021-07-15 12:00:02 -04:00
%\toprule
2022-02-04 15:36:14 -05:00
Point & $ \Phi $ \\ %& $\semN$\\
2021-07-15 12:00:02 -04:00
\midrule
2022-02-04 15:36:14 -05:00
$ e _ 1 $ & $ A $ \\ %& 1 \\
$ e _ 2 $ & $ B $ \\ %& 1\\
$ e _ 3 $ & $ C $ \\ %& 1\\
$ e _ 4 $ & $ E $ \\ %& 1\\
2022-05-25 09:47:05 -04:00
\end { tabular} \hspace { 0.15cm}
2021-07-15 12:00:02 -04:00
\tabcolsep =0.05cm
%\captionof{table}{Route}
2022-05-25 09:47:05 -04:00
\begin { tabular} [t]{ >{ \footnotesize } c | >{ \footnotesize } c | >{ \footnotesize } c | >{ \footnotesize } c}
2022-02-04 15:36:14 -05:00
\multicolumn { 3} { c} { $ \boldsymbol { R $ } } \\
2021-07-15 12:00:02 -04:00
%\toprule
2022-02-04 15:36:14 -05:00
$ \text { Point } _ 1 $ & $ \text { Point } _ 2 $ & $ \Phi $ \\ % & $\semN$ \\
2021-07-15 12:00:02 -04:00
\midrule
2022-06-03 12:11:54 -04:00
$ e _ 1 $ & $ e _ 2 $ & $ U $ \\ % & 2 \\
2022-02-04 15:36:14 -05:00
$ e _ 2 $ & $ e _ 4 $ & $ Y $ \\ % & 4 \\
2021-07-15 12:00:02 -04:00
%& $\cdots$ & $\cdots$ & $\cdots$ & $\cdots$ \\
2022-02-04 15:36:14 -05:00
$ e _ 2 $ & $ e _ 3 $ & $ Z $ \\ % & 3 \\
2021-07-15 12:00:02 -04:00
\end { tabular} } ;
%label below cylinder
2022-02-01 12:44:19 -05:00
\node [below=0.2 cm of cylinder] { { \LARGE $ \pdb $ } } ;
2021-07-15 12:00:02 -04:00
%First arrow
2021-08-05 11:34:01 -04:00
\node [single arrow, right=0.25 of cylinder, draw=black, fill=black!65, text=white, minimum height=0.75cm, minimum width=0.25cm] (arrow1) { \textbf { \abbrStepOne } } ;
2022-06-08 23:20:17 -04:00
\node (arrow1Label) at (3, 1.4) { $ \query _ 2 $ } ;
2021-07-15 12:00:02 -04:00
\usetikzlibrary { arrows.meta} %for the following arrow configurations
2022-06-08 23:20:17 -04:00
\draw [line width=0.5mm, dashed, arrows = -{Latex[length=3mm, open] } ] ([yshift=0cm, xshift=-0.75cm]arrow1Label)->([yshift=0cm, xshift=0cm]arrow1);
2021-07-15 12:00:02 -04:00
%Query output (output of step 1)
2022-05-25 09:47:05 -04:00
\node [rectangle, right=0.175 of arrow1, draw=black, text=black, fill=purple!10, minimum height=2.5cm, minimum width=2cm] (rect) {
2021-07-15 12:00:02 -04:00
\tabcolsep =0.075cm
%\captionof{table}{Q}
%\setlength{\cellspacetoplimit}{4pt}
2022-05-26 10:13:59 -04:00
%\setlength\extrarowheight{10pt}
% \setlength{\cellspacetoplimit}{10mm}
% \setlength{\cellspacebottomlimit}{10mm}
%\renewcommand{\arraystretch}{1.5}
2022-05-25 09:47:05 -04:00
\begin { tabular} { >{ \footnotesize } c | >{ \centering \arraybackslash \footnotesize } m{ 1.95cm} | >{ \centering \arraybackslash \footnotesize } m{ 3.95cm} }
2022-02-01 17:31:36 -05:00
%\multicolumn{3}{c}{$\boldsymbol{\query_2(\pdb)}$}\\[1mm]
2021-07-15 12:00:02 -04:00
%\toprule
2022-02-01 17:31:36 -05:00
Point & $ \Phi $ & Circuit\\ % & $\expct_{\idb \sim \probDist}[\query_2(\db)(t)]$ \\ \hline
2021-07-15 12:00:02 -04:00
\midrule
%\hline
%\\\\[-3.5\medskipamount]
2022-06-03 12:11:54 -04:00
$ e _ 1 $ & $ AU $ & \adjustbox { valign=b} { \resizebox { !} { 9mm} {
2021-07-15 12:00:02 -04:00
\begin { tikzpicture} [thick]
\node [gen_tree_node] (sink) at (0.5, 0.8){ $ \boldsymbol { \circmult } $ } ;
2021-09-07 08:02:00 -04:00
\node [gen_tree_node] (source1) at (0, 0){ $ A $ } ;
2022-06-03 12:11:54 -04:00
\node [gen_tree_node] (source2) at (1, 0){ $ U $ } ;
2021-07-15 12:00:02 -04:00
\draw [->] (source1)--(sink);
\draw [->] (source2)--(sink);
2022-05-26 10:13:59 -04:00
\end { tikzpicture} $ \inparen { 1 } $ % & $0.5 \cdot 1.0 + 0.5 \cdot 1.0 = 1.0$
} } \\ % & $0.9$ \\
2022-05-25 09:47:05 -04:00
$ e _ 2 $ & $ B ( Y + Z ) $ Or $ BY + BZ $ &
2022-05-26 07:54:24 -04:00
\adjustbox { valign=m} {
2022-05-25 09:47:05 -04:00
\resizebox { !} { 14mm} {
2021-07-15 12:00:02 -04:00
\begin { tikzpicture} [thick]
2021-09-07 08:02:00 -04:00
\node [gen_tree_node] (a1) at (1, 0){ $ Y $ } ;
\node [gen_tree_node] (b1) at (2, 0){ $ Z $ } ;
2021-07-15 12:00:02 -04:00
%level 1
2021-09-07 08:02:00 -04:00
\node [gen_tree_node] (a2) at (0.75, 0.8){ $ B $ } ;
2021-07-15 12:00:02 -04:00
\node [gen_tree_node] (b2) at (1.5, 0.8){ $ \boldsymbol { \circplus } $ } ;
%level 0
\node [gen_tree_node] (a3) at (1.1, 1.6){ $ \boldsymbol { \circmult } $ } ;
%edges
\draw [->] (a1) -- (b2);
\draw [->] (b1) -- (b2);
\draw [->] (a2) -- (a3);
\draw [->] (b2) -- (a3);
2022-05-26 10:13:59 -04:00
\end { tikzpicture} $ \inparen { 2 } $
2022-05-26 07:54:24 -04:00
} } \adjustbox { valign=m} { Or}
2021-07-15 12:00:02 -04:00
%%%%%%%%%%%
%Non factorized circuit%
%%%%%%%%%%%
2022-05-26 07:54:24 -04:00
\adjustbox { valign=m} {
2022-05-25 09:47:05 -04:00
\resizebox { !} { 14mm} {
2021-07-15 12:00:02 -04:00
\begin { tikzpicture} [thick]
2021-09-07 08:02:00 -04:00
\node [gen_tree_node] (a2) at (0, 0){ $ Y $ } ;
\node [gen_tree_node] (b2) at (1, 0){ $ B $ } ;
\node [gen_tree_node] (c2) at (2, 0){ $ Z $ } ;
2021-07-15 12:00:02 -04:00
%level 1
\node [gen_tree_node] (a1) at (0.5, 0.8){ $ \boldsymbol { \circmult } $ } ;
\node [gen_tree_node] (b1) at (1.5, 0.8){ $ \boldsymbol { \circmult } $ } ;
%level 0
\node [gen_tree_node] (a0) at (1.0, 1.6){ $ \boldsymbol { \circplus } $ } ;
%edges
\draw [->] (a2) -- (a1);
\draw [->] (b2) -- (a1);
\draw [->] (b2) -- (b1);
\draw [->] (c2) -- (b1);
\draw [->] (a1) -- (a0);
\draw [->] (b1) -- (a0);
\end { tikzpicture}
2022-05-26 07:54:24 -04:00
} } \\
2021-07-15 12:00:02 -04:00
\end { tabular}
} ;
%label below rectangle
2022-02-01 17:31:36 -05:00
\node [below=0.2cm of rect] { { \LARGE $ \query _ 2 ( \pdb ) \inparen { \tup } \equiv \poly \inparen { \vct { X } } $ } } ;
2021-07-15 12:00:02 -04:00
%Second arrow
2021-08-05 11:34:01 -04:00
\node [single arrow, right=0.25 of rect, draw=black, fill=black!65, text=white, minimum height=0.75cm, minimum width=0.25cm] (arrow2) { \textbf { \abbrStepTwo } } ;
2021-07-15 12:00:02 -04:00
%Expectation computation; (output of step 2)
2022-05-25 09:47:05 -04:00
\node [rectangle, right=0.25 of arrow2, rounded corners, draw=black, fill=red!10, text=black, minimum height=2.5cm, minimum width=2cm] (rrect) {
2021-07-15 12:00:02 -04:00
\tabcolsep =0.09cm
%\captionof{table}{Q}
2022-02-01 12:44:19 -05:00
\begin { tabular} { >{ \small } c | >{ \arraybackslash \normalsize } c} %m{1.95cm}}
2021-07-15 12:00:02 -04:00
%\multicolumn{2}{c}{$\expct\pbox{\poly(\vct{X})}$}\\[1mm]
%\toprule
2022-01-31 15:39:13 -05:00
Point & $ \mathbb { E } [ \poly ( \vct { X } ) ] $ \\
2021-07-15 12:00:02 -04:00
\midrule %[0.05pt]
2022-06-03 12:11:54 -04:00
$ e _ 1 $ & $ \inparen { \prob _ { A _ 1 } + \prob _ { A _ 2 } } \cdot \left ( \prob _ { U _ 1 } + 2 \prob _ { U _ 2 } \right ) $ \\ %$1.0 \cdot 0.9 = 0.9$\\[3mm]
2022-05-25 10:08:38 -04:00
$ e _ 2 $ & $ \inparen { \prob _ { B _ 1 } + \prob _ { B _ 2 } } \inparen { \prob _ { Y _ 1 } + 2 \prob _ { Y _ 2 } + \prob _ { Z _ 1 } + 2 \prob _ { Z _ 2 } } $ \\ %$(0.5 \cdot 1.0) + $\newline $\hspace{0.2cm}(0.5 \cdot 1.0)$\newline $= 1.0$\\
2021-07-15 12:00:02 -04:00
\end { tabular}
} ;
%label of rounded rectangle
\node [below=0.2cm of rrect] { { \LARGE $ \expct \pbox { \poly ( \vct { X } ) } $ } } ;
\end { tikzpicture}
}
2022-05-31 11:28:15 -04:00
%\setlength{\abovecaptionskip}{-0.35cm}
\savecaptionspace {
2022-02-22 22:16:29 -05:00
\caption { Intensional Query Evaluation Model $ ( \query _ 2 = \project _ { \text { Point } } $ $ \inparen { T \join _ { \text { Point } = \text { Point } _ 1 } R } $ where, for table $ R,~ \bound = 2 $ , while for $ T,~ \bound = 1 . ) $ }
2021-07-15 12:00:02 -04:00
\label { fig:two-step}
2022-05-31 11:28:15 -04:00
} { -0.35cm} { -0.43cm}
%\vspace{-0.43cm}
2022-03-15 11:21:11 -04:00
\end { figure*}
2021-08-27 13:58:03 -04:00