mirror of
https://gitlab.com/manzerbredes/loosely-coupled-dss-extended.git
synced 2025-06-26 23:37:41 +00:00
Cleaning repository
This commit is contained in:
parent
42594cfab4
commit
8260634af4
80 changed files with 169459 additions and 541081 deletions
2
analysis/.Rhistory
Normal file
2
analysis/.Rhistory
Normal file
|
@ -0,0 +1,2 @@
|
|||
q()
|
||||
n
|
1
analysis/.Rprofile
Normal file
1
analysis/.Rprofile
Normal file
|
@ -0,0 +1 @@
|
|||
source("renv/activate.R")
|
BIN
analysis/figures/pareto_policies.pdf
Normal file
BIN
analysis/figures/pareto_policies.pdf
Normal file
Binary file not shown.
BIN
analysis/figures/pareto_strategies.pdf
Normal file
BIN
analysis/figures/pareto_strategies.pdf
Normal file
Binary file not shown.
36
analysis/figures/table_strategy_combined.org
Normal file
36
analysis/figures/table_strategy_combined.org
Normal file
|
@ -0,0 +1,36 @@
|
|||
|
||||
\begin{table*}
|
||||
\centering
|
||||
\caption{Simulation results using the strategy_combined strategy. Comparison between our previous results\cite{prev} are in color. Green indicates improvements, red shows regressions and blue indicates no change.}
|
||||
\begin{tabular}{crlllllll}
|
||||
\toprule
|
||||
\multirow{2}{*}{Uptime} & \multirow{2}{*}{Scenario} & \multirow{2}{*}{$\# Succ_p$} & \multicolumn{2}{c}{Energy Consumption (J)} & \multicolumn{2}{c}{$eOvhd(p)$ (\%)} & \multicolumn{2}{c}{$eff(p)$ (J)}\\
|
||||
\cmidrule(lr){4-5}\cmidrule(lr){6-7}\cmidrule(lr){8-9}
|
||||
&&&Sender & Receiver&Sender & Receiver&Sender & Receiver\\
|
||||
\midrule
|
||||
\multicolumn{9}{c}{LoRa}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{60}&baseline&\makebox[0.5cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 617.37}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 581.14}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill --}&\makebox[0.65cm]{\hfill --}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 6.02}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1004.36}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 612.06}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +62.68}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +5.32}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 166.84}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 101.67}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 628.74}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 586.07}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +1.84}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +0.85}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill --}&\makebox[0.65cm]{\hfill --}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 8.05}~{\color{green!60}\textbf{+1.51}}&\makebox[0.8cm]{\hfill 1130.67}~{\color{red!60}\textbf{+94.91}}&\makebox[0.8cm]{\hfill 639.55}~{\color{red!60}\textbf{+19.93}}&\makebox[0.7cm]{\hfill +83.14}~{\color{red!60}\textbf{+15.37}}&\makebox[0.7cm]{\hfill +10.05}~{\color{red!60}\textbf{+3.43}}&\makebox[0.65cm]{\hfill 140.37}~{\color{green!60}\textbf{-17.88}}&\makebox[0.65cm]{\hfill 79.4}~{\color{green!60}\textbf{-15.27}}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{180}&baseline&\makebox[0.5cm]{\hfill 2.18}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2032.69}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1764.97}~{\color{green!60}\textbf{-0.04}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 932.43}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 809.62}~{\color{green!60}\textbf{-0.02}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 10.86}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2201.59}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1766.76}~{\color{green!60}\textbf{-0.24}}&\makebox[0.7cm]{\hfill +8.31}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +0.1}~{\color{green!60}\textbf{-0.01}}&\makebox[0.65cm]{\hfill 202.82}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 162.76}~{\color{green!60}\textbf{-0.02}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 11.57}~{\color{green!60}\textbf{+0.39}}&\makebox[0.8cm]{\hfill 2136.67}~{\color{red!60}\textbf{+5}}&\makebox[0.8cm]{\hfill 2096.91}~{\color{red!60}\textbf{+22.75}}&\makebox[0.7cm]{\hfill +5.12}~{\color{red!60}\textbf{+0.25}}&\makebox[0.7cm]{\hfill +18.81}~{\color{red!60}\textbf{+1.29}}&\makebox[0.65cm]{\hfill 184.67}~{\color{green!60}\textbf{-6.08}}&\makebox[0.65cm]{\hfill 181.24}~{\color{green!60}\textbf{-4.37}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 11.97}~{\color{green!60}\textbf{+0.08}}&\makebox[0.8cm]{\hfill 2280.6}~{\color{red!60}\textbf{+21.51}}&\makebox[0.8cm]{\hfill 1926.49}~{\color{red!60}\textbf{+26.79}}&\makebox[0.7cm]{\hfill +12.2}~{\color{red!60}\textbf{+1.06}}&\makebox[0.7cm]{\hfill +9.15}~{\color{red!60}\textbf{+1.52}}&\makebox[0.65cm]{\hfill 190.53}~{\color{red!60}\textbf{+0.53}}&\makebox[0.65cm]{\hfill 160.94}~{\color{red!60}\textbf{+1.17}}\\
|
||||
\midrule
|
||||
\multicolumn{9}{c}{NbIoT}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{60}&baseline&\makebox[0.5cm]{\hfill 2.44}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 714.79}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 593.47}~{\color{green!60}\textbf{-0.05}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 292.35}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 242.73}~{\color{green!60}\textbf{-0.02}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 6.38}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 760.83}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 591.14}~{\color{green!60}\textbf{-0.14}}&\makebox[0.7cm]{\hfill +6.44}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.39}~{\color{green!60}\textbf{-0.02}}&\makebox[0.65cm]{\hfill 119.25}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 92.65}~{\color{green!60}\textbf{-0.02}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 6.11}~{\color{green!60}\textbf{+1.31}}&\makebox[0.8cm]{\hfill 821.32}~{\color{red!60}\textbf{+49.46}}&\makebox[0.8cm]{\hfill 627.96}~{\color{red!60}\textbf{+13.15}}&\makebox[0.7cm]{\hfill +14.9}~{\color{red!60}\textbf{+6.92}}&\makebox[0.7cm]{\hfill +5.81}~{\color{red!60}\textbf{+2.22}}&\makebox[0.65cm]{\hfill 134.42}~{\color{green!60}\textbf{-26.21}}&\makebox[0.65cm]{\hfill 102.78}~{\color{green!60}\textbf{-25.18}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 9.82}~{\color{green!60}\textbf{+2.23}}&\makebox[0.8cm]{\hfill 858.74}~{\color{red!60}\textbf{+67.89}}&\makebox[0.8cm]{\hfill 635.36}~{\color{red!60}\textbf{+25.17}}&\makebox[0.7cm]{\hfill +20.14}~{\color{red!60}\textbf{+9.5}}&\makebox[0.7cm]{\hfill +7.06}~{\color{red!60}\textbf{+4.25}}&\makebox[0.65cm]{\hfill 87.45}~{\color{green!60}\textbf{-16.75}}&\makebox[0.65cm]{\hfill 64.7}~{\color{green!60}\textbf{-15.69}}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{180}&baseline&\makebox[0.5cm]{\hfill 10.37}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2034.67}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1761.97}~{\color{green!60}\textbf{-3.14}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 196.3}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 169.99}~{\color{green!60}\textbf{-0.3}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 11.12}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2026.21}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1748.93}~{\color{green!60}\textbf{-3.9}}&\makebox[0.7cm]{\hfill -0.42}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.74}~{\color{green!60}\textbf{-0.04}}&\makebox[0.65cm]{\hfill 182.3}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 157.35}~{\color{green!60}\textbf{-0.35}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 11.96}~{\color{green!60}\textbf{+0.12}}&\makebox[0.8cm]{\hfill 2055.21}~{\color{red!60}\textbf{+1.43}}&\makebox[0.8cm]{\hfill 2028.09}~{\color{green!60}\textbf{-40.16}}&\makebox[0.7cm]{\hfill +1.01}~{\color{red!60}\textbf{+0.07}}&\makebox[0.7cm]{\hfill +15.1}~{\color{green!60}\textbf{-2.07}}&\makebox[0.65cm]{\hfill 171.84}~{\color{green!60}\textbf{-1.55}}&\makebox[0.65cm]{\hfill 169.57}~{\color{green!60}\textbf{-5.04}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 11.97}~{\color{green!60}\textbf{+0.07}}&\makebox[0.8cm]{\hfill 2044.19}~{\color{red!60}\textbf{+1.64}}&\makebox[0.8cm]{\hfill 2019.51}~{\color{green!60}\textbf{-20.2}}&\makebox[0.7cm]{\hfill +0.47}~{\color{red!60}\textbf{+0.08}}&\makebox[0.7cm]{\hfill +14.62}~{\color{green!60}\textbf{-0.94}}&\makebox[0.65cm]{\hfill 170.71}~{\color{green!60}\textbf{-0.87}}&\makebox[0.65cm]{\hfill 168.64}~{\color{green!60}\textbf{-2.69}}\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table*}
|
36
analysis/figures/table_strategy_farhint.org
Normal file
36
analysis/figures/table_strategy_farhint.org
Normal file
|
@ -0,0 +1,36 @@
|
|||
|
||||
\begin{table*}
|
||||
\centering
|
||||
\caption{Simulation results using the strategy_farhint strategy. Comparison between our previous results\cite{prev} are in color. Green indicates improvements, red shows regressions and blue indicates no change.}
|
||||
\begin{tabular}{crlllllll}
|
||||
\toprule
|
||||
\multirow{2}{*}{Uptime} & \multirow{2}{*}{Scenario} & \multirow{2}{*}{$\# Succ_p$} & \multicolumn{2}{c}{Energy Consumption (J)} & \multicolumn{2}{c}{$eOvhd(p)$ (\%)} & \multicolumn{2}{c}{$eff(p)$ (J)}\\
|
||||
\cmidrule(lr){4-5}\cmidrule(lr){6-7}\cmidrule(lr){8-9}
|
||||
&&&Sender & Receiver&Sender & Receiver&Sender & Receiver\\
|
||||
\midrule
|
||||
\multicolumn{9}{c}{LoRa}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{60}&baseline&\makebox[0.5cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 617.37}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 581.14}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill --}&\makebox[0.65cm]{\hfill --}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 6.02}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1004.36}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 612.06}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +62.68}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +5.32}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 166.84}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 101.67}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 628.74}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 586.07}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +1.84}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +0.85}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill --}&\makebox[0.65cm]{\hfill --}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 8.11}~{\color{green!60}\textbf{+1.56}}&\makebox[0.8cm]{\hfill 1133.5}~{\color{red!60}\textbf{+97.74}}&\makebox[0.8cm]{\hfill 642.2}~{\color{red!60}\textbf{+22.58}}&\makebox[0.7cm]{\hfill +83.6}~{\color{red!60}\textbf{+15.83}}&\makebox[0.7cm]{\hfill +10.51}~{\color{red!60}\textbf{+3.89}}&\makebox[0.65cm]{\hfill 139.85}~{\color{green!60}\textbf{-18.4}}&\makebox[0.65cm]{\hfill 79.24}~{\color{green!60}\textbf{-15.44}}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{180}&baseline&\makebox[0.5cm]{\hfill 2.18}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2032.69}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1765.01}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 932.43}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 809.64}~{\color{blue!60}\textbf{=}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 10.86}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2201.59}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1767}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +8.31}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +0.11}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 202.82}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 162.78}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 11.68}~{\color{green!60}\textbf{+0.5}}&\makebox[0.8cm]{\hfill 2137.52}~{\color{red!60}\textbf{+5.85}}&\makebox[0.8cm]{\hfill 2140.98}~{\color{red!60}\textbf{+66.82}}&\makebox[0.7cm]{\hfill +5.16}~{\color{red!60}\textbf{+0.29}}&\makebox[0.7cm]{\hfill +21.3}~{\color{red!60}\textbf{+3.79}}&\makebox[0.65cm]{\hfill 183.01}~{\color{green!60}\textbf{-7.75}}&\makebox[0.65cm]{\hfill 183.3}~{\color{green!60}\textbf{-2.3}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 11.99}~{\color{green!60}\textbf{+0.1}}&\makebox[0.8cm]{\hfill 2254.61}~{\color{green!60}\textbf{-4.48}}&\makebox[0.8cm]{\hfill 1985.64}~{\color{red!60}\textbf{+85.94}}&\makebox[0.7cm]{\hfill +10.92}~{\color{green!60}\textbf{-0.22}}&\makebox[0.7cm]{\hfill +12.5}~{\color{red!60}\textbf{+4.87}}&\makebox[0.65cm]{\hfill 187.96}~{\color{green!60}\textbf{-2.04}}&\makebox[0.65cm]{\hfill 165.54}~{\color{red!60}\textbf{+5.77}}\\
|
||||
\midrule
|
||||
\multicolumn{9}{c}{NbIoT}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{60}&baseline&\makebox[0.5cm]{\hfill 2.44}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 714.79}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 593.52}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 292.35}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 242.75}~{\color{blue!60}\textbf{=}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 6.38}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 760.83}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 591.28}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +6.44}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.38}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 119.25}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 92.68}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 7.72}~{\color{green!60}\textbf{+2.92}}&\makebox[0.8cm]{\hfill 856.17}~{\color{red!60}\textbf{+84.31}}&\makebox[0.8cm]{\hfill 665.08}~{\color{red!60}\textbf{+50.27}}&\makebox[0.7cm]{\hfill +19.78}~{\color{red!60}\textbf{+11.8}}&\makebox[0.7cm]{\hfill +12.06}~{\color{red!60}\textbf{+8.47}}&\makebox[0.65cm]{\hfill 110.9}~{\color{green!60}\textbf{-49.73}}&\makebox[0.65cm]{\hfill 86.15}~{\color{green!60}\textbf{-41.8}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 10.22}~{\color{green!60}\textbf{+2.63}}&\makebox[0.8cm]{\hfill 864.57}~{\color{red!60}\textbf{+73.72}}&\makebox[0.8cm]{\hfill 661.81}~{\color{red!60}\textbf{+51.62}}&\makebox[0.7cm]{\hfill +20.96}~{\color{red!60}\textbf{+10.31}}&\makebox[0.7cm]{\hfill +11.51}~{\color{red!60}\textbf{+8.7}}&\makebox[0.65cm]{\hfill 84.55}~{\color{green!60}\textbf{-19.64}}&\makebox[0.65cm]{\hfill 64.72}~{\color{green!60}\textbf{-15.67}}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{180}&baseline&\makebox[0.5cm]{\hfill 10.37}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2034.67}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1765.11}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 196.3}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 170.3}~{\color{blue!60}\textbf{=}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 11.12}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2026.21}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1752.83}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.42}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.7}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 182.3}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 157.7}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 11.98}~{\color{green!60}\textbf{+0.14}}&\makebox[0.8cm]{\hfill 2057.18}~{\color{red!60}\textbf{+3.39}}&\makebox[0.8cm]{\hfill 2259.92}~{\color{red!60}\textbf{+191.67}}&\makebox[0.7cm]{\hfill +1.11}~{\color{red!60}\textbf{+0.17}}&\makebox[0.7cm]{\hfill +28.03}~{\color{red!60}\textbf{+10.86}}&\makebox[0.65cm]{\hfill 171.65}~{\color{green!60}\textbf{-1.74}}&\makebox[0.65cm]{\hfill 188.56}~{\color{red!60}\textbf{+13.95}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 11.99}~{\color{green!60}\textbf{+0.09}}&\makebox[0.8cm]{\hfill 2044.79}~{\color{red!60}\textbf{+2.24}}&\makebox[0.8cm]{\hfill 2237.9}~{\color{red!60}\textbf{+198.18}}&\makebox[0.7cm]{\hfill +0.5}~{\color{red!60}\textbf{+0.11}}&\makebox[0.7cm]{\hfill +26.79}~{\color{red!60}\textbf{+11.23}}&\makebox[0.65cm]{\hfill 170.54}~{\color{green!60}\textbf{-1.03}}&\makebox[0.65cm]{\hfill 186.65}~{\color{red!60}\textbf{+15.31}}\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table*}
|
36
analysis/figures/table_strategy_sor.org
Normal file
36
analysis/figures/table_strategy_sor.org
Normal file
|
@ -0,0 +1,36 @@
|
|||
|
||||
\begin{table*}
|
||||
\centering
|
||||
\caption{Simulation results using the strategy_sor strategy. Comparison between our previous results\cite{prev} are in color. Green indicates improvements, red shows regressions and blue indicates no change.}
|
||||
\begin{tabular}{crlllllll}
|
||||
\toprule
|
||||
\multirow{2}{*}{Uptime} & \multirow{2}{*}{Scenario} & \multirow{2}{*}{$\# Succ_p$} & \multicolumn{2}{c}{Energy Consumption (J)} & \multicolumn{2}{c}{$eOvhd(p)$ (\%)} & \multicolumn{2}{c}{$eff(p)$ (J)}\\
|
||||
\cmidrule(lr){4-5}\cmidrule(lr){6-7}\cmidrule(lr){8-9}
|
||||
&&&Sender & Receiver&Sender & Receiver&Sender & Receiver\\
|
||||
\midrule
|
||||
\multicolumn{9}{c}{LoRa}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{60}&baseline&\makebox[0.5cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 617.37}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 581.14}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill --}&\makebox[0.65cm]{\hfill --}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 6.02}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1004.36}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 612.06}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +62.68}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +5.32}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 166.84}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 101.67}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 628.74}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 586.07}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +1.84}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +0.85}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill --}&\makebox[0.65cm]{\hfill --}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 6.54}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1035.76}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 619.62}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +67.77}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +6.62}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 158.25}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 94.67}~{\color{blue!60}\textbf{=}}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{180}&baseline&\makebox[0.5cm]{\hfill 2.18}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2032.69}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1763.96}~{\color{green!60}\textbf{-1.05}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 932.43}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 809.16}~{\color{green!60}\textbf{-0.48}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 10.86}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2201.59}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1764.07}~{\color{green!60}\textbf{-2.93}}&\makebox[0.7cm]{\hfill +8.31}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +0.01}~{\color{green!60}\textbf{-0.11}}&\makebox[0.65cm]{\hfill 202.82}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 162.51}~{\color{green!60}\textbf{-0.27}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 10.8}~{\color{red!60}\textbf{-0.38}}&\makebox[0.8cm]{\hfill 2133.02}~{\color{red!60}\textbf{+1.35}}&\makebox[0.8cm]{\hfill 2028.98}~{\color{green!60}\textbf{-45.18}}&\makebox[0.7cm]{\hfill +4.94}~{\color{red!60}\textbf{+0.07}}&\makebox[0.7cm]{\hfill +15.02}~{\color{green!60}\textbf{-2.49}}&\makebox[0.65cm]{\hfill 197.59}~{\color{red!60}\textbf{+6.84}}&\makebox[0.65cm]{\hfill 187.96}~{\color{red!60}\textbf{+2.35}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 11.85}~{\color{red!60}\textbf{-0.04}}&\makebox[0.8cm]{\hfill 2251.64}~{\color{green!60}\textbf{-7.45}}&\makebox[0.8cm]{\hfill 1879.74}~{\color{green!60}\textbf{-19.96}}&\makebox[0.7cm]{\hfill +10.77}~{\color{green!60}\textbf{-0.37}}&\makebox[0.7cm]{\hfill +6.56}~{\color{green!60}\textbf{-1.07}}&\makebox[0.65cm]{\hfill 190.01}~{\color{red!60}\textbf{+0.01}}&\makebox[0.65cm]{\hfill 158.63}~{\color{green!60}\textbf{-1.14}}\\
|
||||
\midrule
|
||||
\multicolumn{9}{c}{NbIoT}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{60}&baseline&\makebox[0.5cm]{\hfill 2.44}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 714.79}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 592.29}~{\color{green!60}\textbf{-1.22}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 292.35}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 242.25}~{\color{green!60}\textbf{-0.5}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 6.38}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 760.83}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 588.96}~{\color{green!60}\textbf{-2.32}}&\makebox[0.7cm]{\hfill +6.44}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.56}~{\color{green!60}\textbf{-0.19}}&\makebox[0.65cm]{\hfill 119.25}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 92.31}~{\color{green!60}\textbf{-0.36}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 4.69}~{\color{red!60}\textbf{-0.11}}&\makebox[0.8cm]{\hfill 777.89}~{\color{red!60}\textbf{+6.03}}&\makebox[0.8cm]{\hfill 608.42}~{\color{green!60}\textbf{-6.39}}&\makebox[0.7cm]{\hfill +8.83}~{\color{red!60}\textbf{+0.84}}&\makebox[0.7cm]{\hfill +2.72}~{\color{green!60}\textbf{-0.86}}&\makebox[0.65cm]{\hfill 165.86}~{\color{red!60}\textbf{+5.23}}&\makebox[0.65cm]{\hfill 129.73}~{\color{red!60}\textbf{+1.77}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 7.32}~{\color{red!60}\textbf{-0.26}}&\makebox[0.8cm]{\hfill 785.91}~{\color{green!60}\textbf{-4.95}}&\makebox[0.8cm]{\hfill 602.98}~{\color{green!60}\textbf{-7.21}}&\makebox[0.7cm]{\hfill +9.95}~{\color{green!60}\textbf{-0.69}}&\makebox[0.7cm]{\hfill +1.8}~{\color{green!60}\textbf{-1.01}}&\makebox[0.65cm]{\hfill 107.29}~{\color{red!60}\textbf{+3.09}}&\makebox[0.65cm]{\hfill 82.32}~{\color{red!60}\textbf{+1.92}}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{180}&baseline&\makebox[0.5cm]{\hfill 10.37}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2034.67}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1729.62}~{\color{green!60}\textbf{-35.49}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 196.3}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 166.87}~{\color{green!60}\textbf{-3.42}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 11.12}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2026.21}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1717.55}~{\color{green!60}\textbf{-35.28}}&\makebox[0.7cm]{\hfill -0.42}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.7}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 182.3}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 154.53}~{\color{green!60}\textbf{-3.17}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 11.79}~{\color{red!60}\textbf{-0.06}}&\makebox[0.8cm]{\hfill 2054.06}~{\color{red!60}\textbf{+0.27}}&\makebox[0.8cm]{\hfill 1937.27}~{\color{green!60}\textbf{-130.97}}&\makebox[0.7cm]{\hfill +0.95}~{\color{red!60}\textbf{+0.01}}&\makebox[0.7cm]{\hfill +12.01}~{\color{green!60}\textbf{-5.17}}&\makebox[0.65cm]{\hfill 174.22}~{\color{red!60}\textbf{+0.83}}&\makebox[0.65cm]{\hfill 164.31}~{\color{green!60}\textbf{-10.29}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 11.85}~{\color{red!60}\textbf{-0.06}}&\makebox[0.8cm]{\hfill 2041.5}~{\color{green!60}\textbf{-1.05}}&\makebox[0.8cm]{\hfill 1916.28}~{\color{green!60}\textbf{-123.44}}&\makebox[0.7cm]{\hfill +0.34}~{\color{green!60}\textbf{-0.05}}&\makebox[0.7cm]{\hfill +10.79}~{\color{green!60}\textbf{-4.77}}&\makebox[0.65cm]{\hfill 172.35}~{\color{red!60}\textbf{+0.78}}&\makebox[0.65cm]{\hfill 161.78}~{\color{green!60}\textbf{-9.55}}\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table*}
|
36
analysis/figures/table_strategy_uor.org
Normal file
36
analysis/figures/table_strategy_uor.org
Normal file
|
@ -0,0 +1,36 @@
|
|||
|
||||
\begin{table*}
|
||||
\centering
|
||||
\caption{Simulation results using the strategy_uor strategy. Comparison between our previous results\cite{prev} are in color. Green indicates improvements, red shows regressions and blue indicates no change.}
|
||||
\begin{tabular}{crlllllll}
|
||||
\toprule
|
||||
\multirow{2}{*}{Uptime} & \multirow{2}{*}{Scenario} & \multirow{2}{*}{$\# Succ_p$} & \multicolumn{2}{c}{Energy Consumption (J)} & \multicolumn{2}{c}{$eOvhd(p)$ (\%)} & \multicolumn{2}{c}{$eff(p)$ (J)}\\
|
||||
\cmidrule(lr){4-5}\cmidrule(lr){6-7}\cmidrule(lr){8-9}
|
||||
&&&Sender & Receiver&Sender & Receiver&Sender & Receiver\\
|
||||
\midrule
|
||||
\multicolumn{9}{c}{LoRa}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{60}&baseline&\makebox[0.5cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 617.37}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 581.14}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill --}&\makebox[0.65cm]{\hfill --}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 6.02}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1004.36}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 612.06}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +62.68}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +5.32}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 166.84}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 101.67}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 628.74}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 586.07}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +1.84}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +0.85}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill --}&\makebox[0.65cm]{\hfill --}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 6.46}~{\color{red!60}\textbf{-0.08}}&\makebox[0.8cm]{\hfill 1031.35}~{\color{green!60}\textbf{-4.41}}&\makebox[0.8cm]{\hfill 617.27}~{\color{green!60}\textbf{-2.34}}&\makebox[0.7cm]{\hfill +67.05}~{\color{green!60}\textbf{-0.71}}&\makebox[0.7cm]{\hfill +6.22}~{\color{green!60}\textbf{-0.4}}&\makebox[0.65cm]{\hfill 159.53}~{\color{red!60}\textbf{+1.28}}&\makebox[0.65cm]{\hfill 95.48}~{\color{red!60}\textbf{+0.81}}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{180}&baseline&\makebox[0.5cm]{\hfill 2.18}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2032.69}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1765.01}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 932.43}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 809.64}~{\color{blue!60}\textbf{=}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 10.86}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2201.59}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1767}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +8.31}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +0.11}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 202.82}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 162.78}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 11.19}~{\color{green!60}\textbf{+0.01}}&\makebox[0.8cm]{\hfill 2133.37}~{\color{red!60}\textbf{+1.69}}&\makebox[0.8cm]{\hfill 2073.37}~{\color{green!60}\textbf{-0.79}}&\makebox[0.7cm]{\hfill +4.95}~{\color{red!60}\textbf{+0.08}}&\makebox[0.7cm]{\hfill +17.47}~{\color{green!60}\textbf{-0.04}}&\makebox[0.65cm]{\hfill 190.73}~{\color{green!60}\textbf{-0.02}}&\makebox[0.65cm]{\hfill 185.37}~{\color{green!60}\textbf{-0.24}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 11.85}~{\color{red!60}\textbf{-0.04}}&\makebox[0.8cm]{\hfill 2252.17}~{\color{green!60}\textbf{-6.92}}&\makebox[0.8cm]{\hfill 1871.36}~{\color{green!60}\textbf{-28.34}}&\makebox[0.7cm]{\hfill +10.8}~{\color{green!60}\textbf{-0.34}}&\makebox[0.7cm]{\hfill +6.03}~{\color{green!60}\textbf{-1.61}}&\makebox[0.65cm]{\hfill 190.14}~{\color{red!60}\textbf{+0.14}}&\makebox[0.65cm]{\hfill 157.99}~{\color{green!60}\textbf{-1.79}}\\
|
||||
\midrule
|
||||
\multicolumn{9}{c}{NbIoT}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{60}&baseline&\makebox[0.5cm]{\hfill 2.44}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 714.79}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 593.52}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 292.35}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 242.75}~{\color{blue!60}\textbf{=}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 6.38}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 760.83}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 591.28}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill +6.44}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.38}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 119.25}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 92.68}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 4.66}~{\color{red!60}\textbf{-0.14}}&\makebox[0.8cm]{\hfill 768.19}~{\color{green!60}\textbf{-3.67}}&\makebox[0.8cm]{\hfill 612.71}~{\color{green!60}\textbf{-2.1}}&\makebox[0.7cm]{\hfill +7.47}~{\color{green!60}\textbf{-0.51}}&\makebox[0.7cm]{\hfill +3.23}~{\color{green!60}\textbf{-0.35}}&\makebox[0.65cm]{\hfill 164.67}~{\color{red!60}\textbf{+4.03}}&\makebox[0.65cm]{\hfill 131.34}~{\color{red!60}\textbf{+3.39}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 7.44}~{\color{red!60}\textbf{-0.15}}&\makebox[0.8cm]{\hfill 786.55}~{\color{green!60}\textbf{-4.31}}&\makebox[0.8cm]{\hfill 605.19}~{\color{green!60}\textbf{-5.01}}&\makebox[0.7cm]{\hfill +10.04}~{\color{green!60}\textbf{-0.6}}&\makebox[0.7cm]{\hfill +1.97}~{\color{green!60}\textbf{-0.84}}&\makebox[0.65cm]{\hfill 105.72}~{\color{red!60}\textbf{+1.52}}&\makebox[0.65cm]{\hfill 81.34}~{\color{red!60}\textbf{+0.95}}\\
|
||||
\midrule
|
||||
\multirow{4}{*}{180}&baseline&\makebox[0.5cm]{\hfill 10.37}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2034.67}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1765.11}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill 0}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 196.3}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 170.3}~{\color{blue!60}\textbf{=}}\\
|
||||
&extended&\makebox[0.5cm]{\hfill 11.12}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 2026.21}~{\color{blue!60}\textbf{=}}&\makebox[0.8cm]{\hfill 1752.83}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.42}~{\color{blue!60}\textbf{=}}&\makebox[0.7cm]{\hfill -0.7}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 182.3}~{\color{blue!60}\textbf{=}}&\makebox[0.65cm]{\hfill 157.7}~{\color{blue!60}\textbf{=}}\\
|
||||
&hint&\makebox[0.5cm]{\hfill 11.8}~{\color{red!60}\textbf{-0.04}}&\makebox[0.8cm]{\hfill 2053.65}~{\color{green!60}\textbf{-0.13}}&\makebox[0.8cm]{\hfill 1994.3}~{\color{green!60}\textbf{-73.95}}&\makebox[0.7cm]{\hfill +0.93}~{\color{green!60}\textbf{-0.01}}&\makebox[0.7cm]{\hfill +12.98}~{\color{green!60}\textbf{-4.19}}&\makebox[0.65cm]{\hfill 174.04}~{\color{red!60}\textbf{+0.65}}&\makebox[0.65cm]{\hfill 169.01}~{\color{green!60}\textbf{-5.6}}\\
|
||||
&hintandextended&\makebox[0.5cm]{\hfill 11.84}~{\color{red!60}\textbf{-0.07}}&\makebox[0.8cm]{\hfill 2041.39}~{\color{green!60}\textbf{-1.16}}&\makebox[0.8cm]{\hfill 1965.96}~{\color{green!60}\textbf{-73.76}}&\makebox[0.7cm]{\hfill +0.33}~{\color{green!60}\textbf{-0.06}}&\makebox[0.7cm]{\hfill +11.38}~{\color{green!60}\textbf{-4.18}}&\makebox[0.65cm]{\hfill 172.49}~{\color{red!60}\textbf{+0.92}}&\makebox[0.65cm]{\hfill 166.11}~{\color{green!60}\textbf{-5.22}}\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table*}
|
1565
analysis/renv.lock
Normal file
1565
analysis/renv.lock
Normal file
File diff suppressed because it is too large
Load diff
7
analysis/renv/.gitignore
vendored
Normal file
7
analysis/renv/.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
library/
|
||||
local/
|
||||
cellar/
|
||||
lock/
|
||||
python/
|
||||
sandbox/
|
||||
staging/
|
1220
analysis/renv/activate.R
Normal file
1220
analysis/renv/activate.R
Normal file
File diff suppressed because it is too large
Load diff
19
analysis/renv/settings.json
Normal file
19
analysis/renv/settings.json
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"bioconductor.version": null,
|
||||
"external.libraries": [],
|
||||
"ignored.packages": [],
|
||||
"package.dependency.fields": [
|
||||
"Imports",
|
||||
"Depends",
|
||||
"LinkingTo"
|
||||
],
|
||||
"ppm.enabled": null,
|
||||
"ppm.ignored.urls": [],
|
||||
"r.version": null,
|
||||
"snapshot.type": "implicit",
|
||||
"use.cache": true,
|
||||
"vcs.ignore.cellar": true,
|
||||
"vcs.ignore.library": true,
|
||||
"vcs.ignore.local": true,
|
||||
"vcs.manage.ignores": true
|
||||
}
|
135
analysis/scalability_datasize.R
Normal file
135
analysis/scalability_datasize.R
Normal file
|
@ -0,0 +1,135 @@
|
|||
library("tidyverse")
|
||||
library("ggthemes")
|
||||
library("gridExtra")
|
||||
library("patchwork")
|
||||
library(RColorBrewer)
|
||||
|
||||
data=read_csv("../results/scalability_datasize.csv")
|
||||
r_=function(x){round(x,digits=1)}
|
||||
color=function(){scale_fill_brewer(palette = "Accent")}
|
||||
color2=function(){scale_fill_brewer(palette = "Set2")}
|
||||
nolegend=function(){theme(legend.position="none")}
|
||||
simkeys=unique(data$simkey)
|
||||
nsimkeys=length(simkeys)
|
||||
s_=function(x){if(x<0){return("")}else{return("+")}}
|
||||
simkey_rename=function(key){
|
||||
if(key=="hint")
|
||||
return("Hints")
|
||||
if(key=="baseline")
|
||||
return("Baseline")
|
||||
if(key=="extended")
|
||||
return("Extended")
|
||||
if(key=="hintandextended")
|
||||
return("Hints+Extended")
|
||||
return(key)
|
||||
}
|
||||
dformat=function(data){
|
||||
data%>%rowwise()%>%mutate(simkey=simkey_rename(simkey))%>%mutate(wireless=ifelse(wireless=="lora","LoRa","Nb-IoT"))
|
||||
}
|
||||
|
||||
dsformat=function(data){
|
||||
data=data%>%mutate(datasize=ifelse(datasize==1000,"1KB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==10000,"10KB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==100000,"100KB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==500000,"500KB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==1000000,"1MB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==2000000,"2MB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==10000000,"10MB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==50000000,"50MB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==100000000,"100MB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==500000000,"500MB",as.character(datasize)))
|
||||
data=data%>%mutate(datasize=ifelse(datasize==1000000000,"1GB",as.character(datasize)))
|
||||
data$datasize=factor(data$datasize,levels=c("1KB","10KB","100KB","500KB","1MB","2MB","10MB","50MB","100MB","500MB","1GB"))
|
||||
return(data)
|
||||
}
|
||||
|
||||
g_legend <- function(a.gplot){
|
||||
tmp <- ggplot_gtable(ggplot_build(a.gplot))
|
||||
leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
|
||||
legend <- tmp$grobs[[leg]]
|
||||
legend
|
||||
}
|
||||
|
||||
custom_theme=function(){theme_clean()+ theme(plot.background=element_blank())}
|
||||
|
||||
data=data%>%dformat()
|
||||
|
||||
# Compute delivery success
|
||||
statsSuccess=data%>%filter(isSender!=0)%>%group_by(wireless,wakeupfor,datasize,seed,simkey)%>%summarize(success=mean(nSend))%>%ungroup()
|
||||
data=data%>%left_join(statsSuccess,by=c("wireless","wakeupfor","datasize","seed","simkey"))
|
||||
|
||||
# Computer stats senders
|
||||
statsSender=data%>%filter(isSender!=0)%>%group_by(wireless,wakeupfor,datasize,seed,simkey)%>%summarize(success=mean(success),energy=mean(energy))%>%ungroup()
|
||||
statsSender=statsSender%>%group_by(wireless,wakeupfor,datasize,simkey)%>%summarize(success_sd=sd(success),success=mean(success),energy_sd=sd(energy),energy=mean(energy))%>%ungroup()
|
||||
|
||||
# Computer stats receiver
|
||||
statsReceiver=data%>%filter(isSender==0)%>%group_by(wireless,wakeupfor,datasize,seed,simkey)%>%summarize(success=mean(success),energy=mean(energy))%>%ungroup()
|
||||
statsReceiver=statsReceiver%>%group_by(wireless,wakeupfor,datasize,simkey)%>%summarize(success_sd=sd(success),success=mean(success),energy_sd=sd(energy),energy=mean(energy))%>%ungroup()
|
||||
|
||||
|
||||
# Energy
|
||||
sender60sPlotEnergy=ggplot(statsSender%>%filter(wakeupfor==60)%>%dsformat(),aes(datasize,energy,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=energy-energy_sd, ymax=energy+energy_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Data size")+ylab("Energy consumption (J)")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+ggtitle("Sender")+
|
||||
guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
sender180sPlotEnergy=ggplot(statsSender%>%filter(wakeupfor==180)%>%dsformat(),aes(datasize,energy,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=energy-energy_sd, ymax=energy+energy_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Data size")+ylab("Energy consumption (J)")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+ggtitle("Sender")+
|
||||
guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
|
||||
receiver60sPlotEnergy=ggplot(statsReceiver%>%filter(wakeupfor==60)%>%dsformat(),aes(datasize,energy,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=energy-energy_sd, ymax=energy+energy_sd,,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Data size")+ylab("Energy consumption (J)")+labs(colour="Policy") + custom_theme()+theme(legend.position="top")+ggtitle("Receiver")+
|
||||
guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
receiver180sPlotEnergy=ggplot(statsReceiver%>%filter(wakeupfor==180)%>%dsformat(),aes(datasize,energy,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=energy-energy_sd, ymax=energy+energy_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Data size")+ylab("Energy consumption (J)")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+ggtitle("Receiver")+
|
||||
guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
# Success
|
||||
sender60sPlotSuccess=ggplot(statsSender%>%filter(wakeupfor==60)%>%dsformat(),aes(datasize,success,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=success-success_sd, ymax=success+success_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Data size")+ylab("Number of delivery success")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+
|
||||
theme(panel.background = element_rect(fill = '#EFEFEF', color=NA))+guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
sender180sPlotSuccess=ggplot(statsSender%>%filter(wakeupfor==180)%>%dsformat(),aes(datasize,success,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=success-success_sd, ymax=success+success_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Data size")+ylab("Number of delivery success")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+
|
||||
theme(panel.background = element_rect(fill = '#EFEFEF', color=NA))+guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
|
||||
receiver60sPlotSuccess=ggplot(statsReceiver%>%filter(wakeupfor==60)%>%dsformat(),aes(datasize,success,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=success-success_sd, ymax=success+success_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Data size")+ylab("Number of delivery success")+labs(colour="Policy") + custom_theme()+theme(legend.position="top")+
|
||||
theme(panel.background = element_rect(fill = '#EFEFEF', color=NA))+guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
receiver180sPlotSuccess=ggplot(statsReceiver%>%filter(wakeupfor==180)%>%dsformat(),aes(datasize,success,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=success-success_sd, ymax=success+success_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Data size")+ylab("Number of delivery success")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+
|
||||
theme(panel.background = element_rect(fill = '#EFEFEF', color=NA))+guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
|
||||
|
||||
w1=10
|
||||
h1=4
|
||||
w2=15
|
||||
h2=4
|
||||
ggsave("figures/scalability_datasize_60s_sender_energy.pdf",plot=sender60sPlotEnergy+guides(fill = FALSE, color = FALSE),width=w1,height=h1)
|
||||
ggsave("figures/scalability_datasize_60s_receiver_energy.pdf",plot=receiver60sPlotEnergy+guides(fill = FALSE, color = FALSE),width=w1,height=h1)
|
||||
ggsave("figures/scalability_datasize_60s_success.pdf",plot=sender60sPlotSuccess,width=w2,height=h2)
|
||||
|
||||
ggsave("figures/scalability_datasize_180s_sender_energy.pdf",plot=sender180sPlotEnergy+guides(fill = FALSE, color = FALSE),width=w1,height=h1)
|
||||
ggsave("figures/scalability_datasize_180s_receiver_energy.pdf",plot=receiver180sPlotEnergy+guides(fill = FALSE, color = FALSE),width=w1,height=h1)
|
||||
ggsave("figures/scalability_datasize_180s_success.pdf",plot=sender180sPlotSuccess,width=w2,height=h2)
|
||||
|
118
analysis/scalability_nnodes.R
Normal file
118
analysis/scalability_nnodes.R
Normal file
|
@ -0,0 +1,118 @@
|
|||
library("tidyverse")
|
||||
library("ggthemes")
|
||||
library("gridExtra")
|
||||
library("patchwork")
|
||||
library(RColorBrewer)
|
||||
|
||||
data=read_csv("../results/scalability_nnodes.csv")
|
||||
r_=function(x){round(x,digits=1)}
|
||||
color=function(){scale_fill_brewer(palette = "Accent")}
|
||||
color2=function(){scale_fill_brewer(palette = "Set2")}
|
||||
nolegend=function(){theme(legend.position="none")}
|
||||
simkeys=unique(data$simkey)
|
||||
nsimkeys=length(simkeys)
|
||||
s_=function(x){if(x<0){return("")}else{return("+")}}
|
||||
simkey_rename=function(key){
|
||||
if(key=="hint")
|
||||
return("Hints")
|
||||
if(key=="baseline")
|
||||
return("Baseline")
|
||||
if(key=="extended")
|
||||
return("Extended")
|
||||
if(key=="hintandextended")
|
||||
return("Hints+Extended")
|
||||
return(key)
|
||||
}
|
||||
dformat=function(data){
|
||||
data%>%rowwise()%>%mutate(simkey=simkey_rename(simkey))%>%mutate(wireless=ifelse(wireless=="lora","LoRa","Nb-IoT"))
|
||||
}
|
||||
g_legend <- function(a.gplot){
|
||||
tmp <- ggplot_gtable(ggplot_build(a.gplot))
|
||||
leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
|
||||
legend <- tmp$grobs[[leg]]
|
||||
legend
|
||||
}
|
||||
|
||||
custom_theme=function(){theme_clean()+ theme(plot.background=element_blank())}
|
||||
|
||||
data=data%>%dformat()
|
||||
|
||||
# Compute delivery success
|
||||
statsSuccess=data%>%filter(isSender!=0)%>%group_by(wireless,wakeupfor,n_nodes,seed,simkey)%>%summarize(success=mean(nSend))%>%ungroup()
|
||||
data=data%>%left_join(statsSuccess,by=c("wireless","wakeupfor","n_nodes","seed","simkey"))
|
||||
|
||||
# Computer stats senders
|
||||
statsSender=data%>%filter(isSender!=0)%>%group_by(wireless,wakeupfor,n_nodes,seed,simkey)%>%summarize(success=mean(success),energy=mean(energy))%>%ungroup()
|
||||
statsSender=statsSender%>%group_by(wireless,wakeupfor,n_nodes,simkey)%>%summarize(success_sd=sd(success),success=mean(success),energy_sd=sd(energy),energy=mean(energy))%>%ungroup()
|
||||
|
||||
# Computer stats receiver
|
||||
statsReceiver=data%>%filter(isSender==0)%>%group_by(wireless,wakeupfor,n_nodes,seed,simkey)%>%summarize(success=mean(success),energy=mean(energy))%>%ungroup()
|
||||
statsReceiver=statsReceiver%>%group_by(wireless,wakeupfor,n_nodes,simkey)%>%summarize(success_sd=sd(success),success=mean(success),energy_sd=sd(energy),energy=mean(energy))%>%ungroup()
|
||||
|
||||
|
||||
# Energy
|
||||
sender60sPlotEnergy=ggplot(statsSender%>%filter(wakeupfor==60),aes(n_nodes,energy,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=energy-energy_sd, ymax=energy+energy_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Number of node")+ylab("Energy consumption (J)")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+ggtitle("Sender")+
|
||||
guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
sender180sPlotEnergy=ggplot(statsSender%>%filter(wakeupfor==180),aes(n_nodes,energy,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=energy-energy_sd, ymax=energy+energy_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Number of node")+ylab("Energy consumption (J)")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+ggtitle("Sender")+
|
||||
guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
|
||||
receiver60sPlotEnergy=ggplot(statsReceiver%>%filter(wakeupfor==60),aes(n_nodes,energy,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=energy-energy_sd, ymax=energy+energy_sd,,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Number of node")+ylab("Energy consumption (J)")+labs(colour="Policy") + custom_theme()+theme(legend.position="top")+ggtitle("Receiver")+
|
||||
guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
receiver180sPlotEnergy=ggplot(statsReceiver%>%filter(wakeupfor==180),aes(n_nodes,energy,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=energy-energy_sd, ymax=energy+energy_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Number of node")+ylab("Energy consumption (J)")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+ggtitle("Receiver")+
|
||||
guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
# Success
|
||||
sender60sPlotSuccess=ggplot(statsSender%>%filter(wakeupfor==60),aes(n_nodes,success,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=success-success_sd, ymax=success+success_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Number of node")+ylab("Number of delivery success")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+
|
||||
theme(panel.background = element_rect(fill = '#EFEFEF', color=NA))+guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
sender180sPlotSuccess=ggplot(statsSender%>%filter(wakeupfor==180),aes(n_nodes,success,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=success-success_sd, ymax=success+success_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Number of node")+ylab("Number of delivery success")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+
|
||||
theme(panel.background = element_rect(fill = '#EFEFEF', color=NA))+guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
|
||||
receiver60sPlotSuccess=ggplot(statsReceiver%>%filter(wakeupfor==60),aes(n_nodes,success,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=success-success_sd, ymax=success+success_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Number of node")+ylab("Number of delivery success")+labs(colour="Policy") + custom_theme()+theme(legend.position="top")+
|
||||
theme(panel.background = element_rect(fill = '#EFEFEF', color=NA))+guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
receiver180sPlotSuccess=ggplot(statsReceiver%>%filter(wakeupfor==180),aes(n_nodes,success,color=simkey,group=simkey))+
|
||||
geom_ribbon(aes(ymin=success-success_sd, ymax=success+success_sd,fill=simkey),linetype=1,alpha=0.4)+
|
||||
geom_point()+geom_line()+
|
||||
facet_wrap(~wireless)+xlab("Number of node")+ylab("Number of delivery success")+labs(colour="Policy")+custom_theme()+theme(legend.position="top")+
|
||||
theme(panel.background = element_rect(fill = '#EFEFEF', color=NA))+guides(colour=FALSE,fill=guide_legend(title="Policy"))
|
||||
|
||||
|
||||
|
||||
w1=7
|
||||
h1=4
|
||||
w2=15
|
||||
h2=4
|
||||
ggsave("figures/scalability_nnodes_60s_sender_energy.pdf",plot=sender60sPlotEnergy+guides(fill = FALSE, color = FALSE),width=w1,height=h1)
|
||||
ggsave("figures/scalability_nnodes_60s_receiver_energy.pdf",plot=receiver60sPlotEnergy+guides(fill = FALSE, color = FALSE),width=w1,height=h1)
|
||||
ggsave("figures/scalability_nnodes_60s_success.pdf",plot=sender60sPlotSuccess,width=w2,height=h2)
|
||||
|
||||
ggsave("figures/scalability_nnodes_180s_sender_energy.pdf",plot=sender180sPlotEnergy+guides(fill = FALSE, color = FALSE),width=w1,height=h1)
|
||||
ggsave("figures/scalability_nnodes_180s_receiver_energy.pdf",plot=receiver180sPlotEnergy+guides(fill = FALSE, color = FALSE),width=w1,height=h1)
|
||||
ggsave("figures/scalability_nnodes_180s_success.pdf",plot=sender180sPlotSuccess,width=w2,height=h2)
|
||||
|
18
analysis/scheduler/analysis.sh
Executable file
18
analysis/scheduler/analysis.sh
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
wai=$(dirname $(readlink -f "$0")) # Current script directory
|
||||
|
||||
log=$1
|
||||
out=$2
|
||||
|
||||
# Generate csv
|
||||
cat $log | $wai/wakeup.awk > $wai/wakeup.csv
|
||||
cat $log | $wai/data.awk > $wai/data.csv
|
||||
cat $log | $wai/hint.awk > $wai/hint.csv
|
||||
cat $log | $wai/hint_fw.awk > $wai/hint_fw.csv
|
||||
|
||||
cd $wai
|
||||
Rscript ./wakeup.R &> /dev/null || { echo "Schduler data analysis failed"; exit 1; }
|
||||
cd - > /dev/null
|
||||
|
||||
mv $wai/schedule.png $out
|
15
analysis/scheduler/data.awk
Executable file
15
analysis/scheduler/data.awk
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/awk -f
|
||||
|
||||
BEGIN {
|
||||
RS="\n"
|
||||
FS=" "
|
||||
CSV_HEADER="node,ts"
|
||||
CSV_DATA=""
|
||||
skip=1
|
||||
print(CSV_HEADER)
|
||||
}
|
||||
|
||||
/received data success/ {
|
||||
gsub("]","",$0)
|
||||
print($4","$2)
|
||||
}
|
15
analysis/scheduler/hint.awk
Executable file
15
analysis/scheduler/hint.awk
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/awk -f
|
||||
|
||||
BEGIN {
|
||||
RS="\n"
|
||||
FS=" "
|
||||
CSV_HEADER="node,wakets,duration,rcvat"
|
||||
CSV_DATA=""
|
||||
skip=1
|
||||
print(CSV_HEADER)
|
||||
}
|
||||
|
||||
/add a new hint/ {
|
||||
gsub("]","",$0)
|
||||
print($4","$10","$15","$2)
|
||||
}
|
15
analysis/scheduler/hint_fw.awk
Executable file
15
analysis/scheduler/hint_fw.awk
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/awk -f
|
||||
|
||||
BEGIN {
|
||||
RS="\n"
|
||||
FS=" "
|
||||
CSV_HEADER="node,ts"
|
||||
CSV_DATA=""
|
||||
skip=1
|
||||
print(CSV_HEADER)
|
||||
}
|
||||
|
||||
/forward a hint successfully/ {
|
||||
gsub("]","",$0)
|
||||
print($4","$2)
|
||||
}
|
65
analysis/scheduler/wakeup.R
Normal file
65
analysis/scheduler/wakeup.R
Normal file
|
@ -0,0 +1,65 @@
|
|||
library("tidyverse")
|
||||
library("gridExtra")
|
||||
|
||||
pdf(NULL)
|
||||
|
||||
# Load data
|
||||
data=read_csv("wakeup.csv")
|
||||
yorder=str_sort(unique(data$node),numeric=TRUE)
|
||||
data=data%>%mutate(node=factor(node,levels=yorder))
|
||||
|
||||
# Load hint
|
||||
hint=read_csv("hint.csv")
|
||||
|
||||
# Load hint forward
|
||||
hint_fw=read_csv("hint_fw.csv")
|
||||
|
||||
# Load data
|
||||
data_rcv=read_csv("data.csv")
|
||||
|
||||
|
||||
# Configure axis
|
||||
ts_range=seq(0, 24)*3600
|
||||
ts_labels=ts_range/3600
|
||||
|
||||
# Plot
|
||||
p1=ggplot(data,aes(x=wakets,y=node)) + geom_hline(aes(yintercept=node),color="grey",size=3)
|
||||
if(NROW(hint)!=0){
|
||||
p1=p1+geom_vline(data=hint,aes(xintercept=wakets,color="Hint slots"),show.legend = FALSE,linetype="longdash",size=0.3)
|
||||
}
|
||||
p1=p1+geom_linerange(aes(xmin=wakets,xmax=sleepts),size=10)
|
||||
if(NROW(hint)!=0){
|
||||
p1=p1+geom_linerange(data=hint,aes(xmin=wakets,xmax=wakets+duration,color="Hint slots"),size=10)
|
||||
}
|
||||
if(NROW(data_rcv)!=0){
|
||||
p1=p1+geom_point(data=data_rcv,aes(x=ts,color="Data received"),shape=18,size=4)
|
||||
}
|
||||
if(NROW(hint)!=0){
|
||||
p1=p1+geom_point(data=hint,aes(x=rcvat,color="Hint received"),shape=18,size=3)
|
||||
}
|
||||
if(NROW(hint_fw)!=0){
|
||||
p1=p1+geom_point(data=hint_fw,aes(x=ts,color="Hint Forwarded"),shape=18,size=2)
|
||||
}
|
||||
p1=p1+
|
||||
xlab("Time (hours)")+ylab("Node")+
|
||||
scale_x_continuous(breaks = ts_range, labels=ts_labels,expand = c(0, 0))+
|
||||
scale_colour_manual(name="Legend",values=c("Hint slots"="blue","Data received"="red","Hint received"="green","Hint Forwarded"="purple"))+
|
||||
theme(panel.grid.major.x = element_line(size = 1.2),panel.grid.major.y = element_blank(),panel.grid.minor = element_blank())
|
||||
|
||||
stats=data%>%group_by(node)%>%summarise(n=n())%>%mutate(nwakeup=n-24)
|
||||
|
||||
p2=ggplot(stats,aes(x=node,y=nwakeup))+
|
||||
geom_bar(stat="identity")+xlab("Node")+ylab("Extra wake up count")+ylim(0,10)+
|
||||
scale_y_continuous(breaks = seq(0,10))
|
||||
|
||||
stats2=tibble(
|
||||
metric=c("Hint Received","Hint Forwarded","Data Received"),
|
||||
count=c(NROW(hint),NROW(hint_fw),NROW(data_rcv))
|
||||
)
|
||||
|
||||
p3=ggplot(stats2,aes(x=metric,y=count))+
|
||||
geom_bar(stat="identity")+xlab("Metric")+ylab("Count")+ylim(0,20)
|
||||
|
||||
|
||||
p=grid.arrange(p1,p2,p3,heights=c(10,5,5))
|
||||
ggsave(plot=p,"schedule.png",dpi=300,width = 10,height=10)
|
43
analysis/scheduler/wakeup.awk
Executable file
43
analysis/scheduler/wakeup.awk
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/awk -f
|
||||
|
||||
BEGIN {
|
||||
RS="\n"
|
||||
FS=" "
|
||||
CSV_HEADER="node,wakets,sleepts,duration"
|
||||
CSV_DATA=""
|
||||
skip=1
|
||||
}
|
||||
|
||||
/wakes up/{
|
||||
gsub("]","",$0)
|
||||
wakets[$4][length(wakets[$4])+1]=$2
|
||||
skip=0
|
||||
}
|
||||
|
||||
/is sleeping/{
|
||||
gsub("]","",$0)
|
||||
if(!skip){
|
||||
sleepts[$4][length(sleepts[$4])+1]=$2
|
||||
}
|
||||
}
|
||||
|
||||
/LOG2PARSE/{
|
||||
gsub("]","",$0)
|
||||
endts[$6][length(endts[$6])+1]=$2
|
||||
}
|
||||
|
||||
END {
|
||||
print(CSV_HEADER);
|
||||
for(node in wakets){
|
||||
for(j=1;j<=length(wakets[node]);j++){
|
||||
start=wakets[node][j]
|
||||
end=endts[node][1]
|
||||
# Pay attention, the last sleep report for the last wake up is not printed
|
||||
# so use the printed sleep only if available (otherwise we use the en of the simulation)
|
||||
if(j<=length(sleepts[node])){
|
||||
end=sleepts[node][j]
|
||||
}
|
||||
print(node","start","end","end-start)
|
||||
}
|
||||
}
|
||||
}
|
119
analysis/strategies_pareto.R
Normal file
119
analysis/strategies_pareto.R
Normal file
|
@ -0,0 +1,119 @@
|
|||
library("tidyverse")
|
||||
library("gridExtra")
|
||||
library("patchwork")
|
||||
library("knitr")
|
||||
library(RColorBrewer)
|
||||
library(latex2exp)
|
||||
|
||||
r_=function(x){round(x,digits=2)}
|
||||
color=function(){scale_fill_brewer(palette = "Accent")}
|
||||
color2=function(){scale_fill_brewer(palette = "Set2")}
|
||||
nolegend=function(){theme(legend.position="none")}
|
||||
simkeys=unique(read_csv("../results/ccgrid2023.csv")$simkey)
|
||||
nsimkeys=length(simkeys)
|
||||
s_=function(x){if(x<0){return("")}else{return("+")}}
|
||||
simkey_rename=function(key){
|
||||
if(key=="hint")
|
||||
return("Hints")
|
||||
if(key=="baseline")
|
||||
return("Baseline")
|
||||
if(key=="extended")
|
||||
return("Extended")
|
||||
if(key=="hintandextended")
|
||||
return("Hints+\nExtended")
|
||||
return(key)
|
||||
}
|
||||
dformat=function(data){
|
||||
data%>%rowwise()%>%mutate(simkey=simkey_rename(simkey))%>%mutate(wireless=ifelse(wireless=="lora","LoRa","NbIoT"))
|
||||
}
|
||||
|
||||
build_stats=function(file){
|
||||
data=read_csv(file)
|
||||
|
||||
energy=data%>%group_by(simkey,wireless,seed,isSender,wakeupfor)%>%summarise(sd=sd(energy),energy=mean(energy))%>%mutate(type=ifelse(isSender,"Sender","Receiver"))
|
||||
|
||||
# Only sender knows success:
|
||||
success=data%>%filter(isSender==1)%>%group_by(simkey,wireless,seed,wakeupfor)%>%summarise(success_orig=mean(nSend),success=mean(nSend))
|
||||
|
||||
return(energy%>%ungroup()%>%left_join(success))
|
||||
|
||||
|
||||
energy60=data%>%filter(wakeupfor==60)
|
||||
energy60Snd=energy60%>%filter(isSender==1)%>%group_by(simkey,wireless,seed)%>%summarise(sd=sd(energy),energy=mean(energy),type="Sender")
|
||||
energy60Rcv=energy60%>%filter(isSender==0)%>%group_by(simkey,wireless,seed)%>%summarise(sd=sd(energy),energy=mean(energy),type="Receiver")
|
||||
energy60=energy60Snd%>%ungroup()%>%rbind(energy60Rcv)
|
||||
|
||||
print(energy60)
|
||||
stopifnot(1)
|
||||
|
||||
success60Snd=data%>%filter(wakeupfor==60)%>%filter(isSender!=0)%>%group_by(simkey,wireless,seed)%>%summarise(success_orig=mean(nSend),success=mean(nSend),type="Sender")
|
||||
success60Rcv=data%>%filter(wakeupfor==60)%>%filter(isSender!=0)%>%group_by(simkey,wireless,seed)%>%summarise(success_orig=mean(nSend),success=mean(nSend),type="Receiver")
|
||||
success60=rbind(success60Snd,success60Rcv)
|
||||
|
||||
total60=energy60%>%left_join(success60,by=c("simkey","wireless","type"))
|
||||
|
||||
energy180=data%>%filter(wakeupfor==180)
|
||||
energy180Snd=energy180%>%filter(isSender==1)%>%group_by(simkey,wireless,seed)%>%summarise(sd=sd(energy),energy=mean(energy),type="Sender")
|
||||
energy180Rcv=energy180%>%filter(isSender==0)%>%group_by(simkey,wireless,seed)%>%summarise(sd=sd(energy),energy=mean(energy),type="Receiver")
|
||||
energy180=energy180Snd%>%ungroup()%>%rbind(energy180Rcv)
|
||||
|
||||
success180Snd=data%>%filter(wakeupfor==180)%>%filter(isSender!=0)%>%group_by(simkey,wireless,seed)%>%summarise(success_orig=mean(nSend),success=mean(nSend),type="Sender")
|
||||
success180Rcv=data%>%filter(wakeupfor==180)%>%filter(isSender!=0)%>%group_by(simkey,wireless,seed)%>%summarise(success_orig=mean(nSend),success=mean(nSend),type="Receiver")
|
||||
success180=rbind(success180Snd,success180Rcv)
|
||||
|
||||
total180=energy180%>%left_join(success180,by=c("simkey","wireless","type"))
|
||||
|
||||
return(rbind(total60%>%mutate(wakeupfor=60),total180%>%mutate(wakeupfor=180)))
|
||||
}
|
||||
|
||||
# Load stats
|
||||
stats_sor=build_stats("../results/strategy_sor.csv")%>%filter(type=="Sender")%>%mutate(strategy="SOR")
|
||||
stats_uor=build_stats("../results/strategy_uor.csv")%>%filter(type=="Sender")%>%mutate(strategy="UOR")
|
||||
stats_fh=build_stats("../results/strategy_farhint.csv")%>%filter(type=="Sender")%>%mutate(strategy="FH")
|
||||
stats_cmb=build_stats("../results/strategy_combined.csv")%>%filter(type=="Sender")%>%mutate(strategy="Combined")
|
||||
stats_none=build_stats("../results/ccgrid2023.csv")%>%filter(type=="Sender")%>%mutate(strategy="None")
|
||||
stats=rbind(stats_sor,stats_uor,stats_fh,stats_cmb,stats_none)%>%filter(wireless=="nbiot",wakeupfor==60) # Change filter as you which (which plot you want down bellow)
|
||||
|
||||
pareto=tibble()
|
||||
stats%>%ungroup()%>%group_by(wakeupfor,wireless)%>%group_walk(function(data, t){
|
||||
for(i in 1:NROW(data)){
|
||||
pt=data[i,]
|
||||
e=pt$energy
|
||||
s=pt$success
|
||||
|
||||
domE=data$energy<e
|
||||
domS=data$success>=s
|
||||
|
||||
if(!any(domE & domS)){
|
||||
pareto<<-rbind(pareto,cbind(pt,t))
|
||||
}
|
||||
}})
|
||||
pareto = pareto %>% mutate(energy = as.numeric(energy))
|
||||
pareto = pareto %>% mutate(success = as.numeric(success))
|
||||
pareto = pareto %>% arrange(energy,success)
|
||||
pareto = pareto %>% dformat()
|
||||
|
||||
##### Policies
|
||||
ggplot(stats%>%dformat(),aes(energy,success,color=simkey,shape=simkey))+
|
||||
geom_line(data=pareto,aes(energy,success),linetype="dashed", size=1,inherit.aes=FALSE)+
|
||||
geom_point(size=4)+
|
||||
geom_point(data=pareto,size=4)+scale_y_reverse()+
|
||||
labs(color="Policies:",shape="Policies:")+scale_color_brewer(palette = "Set1")+theme_minimal()+theme(text=element_text(size=20), legend.position=c(.8,.75),legend.box.background = element_rect(color="black", size=1, fill="white"))+scale_shape_manual(values = c(17,18,20,3,4))+
|
||||
xlab("Sender energy consumption (J)")+ylab(TeX(r'(#Succ$_p$)'))
|
||||
# +facet_wrap(~wakeupfor+wireless,scale="free")
|
||||
ggsave("figures/pareto_policies.pdf",width=10,height=9)
|
||||
|
||||
##### Strategies
|
||||
ggplot(stats%>%dformat(),aes(energy,success,color=strategy,shape=strategy))+
|
||||
geom_line(data=pareto,aes(energy,success),linetype="dashed", size=1,inherit.aes=FALSE)+
|
||||
geom_point(size=4)+
|
||||
geom_point(data=pareto,size=4)+scale_y_reverse()+
|
||||
labs(color="Strategies:",shape="Strategies:")+scale_color_brewer(palette = "Dark2")+theme_minimal()+theme(text=element_text(size=20), legend.position=c(.8,.75),legend.box.background = element_rect(color="black", size=1, fill="white"))+scale_shape_manual(values = c(17,18,20,3,4))+
|
||||
xlab("Sender energy consumption (J)")+ylab(TeX(r'(#Succ$_p$)'))
|
||||
# +facet_wrap(~wakeupfor+wireless,scale="free")
|
||||
ggsave("figures/pareto_strategies.pdf",width=10,height=9)
|
||||
|
||||
|
||||
message("Pareto infos:")
|
||||
print(pareto%>%group_by(simkey)%>%summarize(count=n()))
|
||||
print(pareto%>%group_by(strategy)%>%summarize(count=n()))
|
243
analysis/strategies_tables.R
Normal file
243
analysis/strategies_tables.R
Normal file
|
@ -0,0 +1,243 @@
|
|||
library("tidyverse")
|
||||
library("gridExtra")
|
||||
library("patchwork")
|
||||
library("knitr")
|
||||
library(RColorBrewer)
|
||||
|
||||
r_=function(x){round(x,digits=2)}
|
||||
color=function(){scale_fill_brewer(palette = "Accent")}
|
||||
color2=function(){scale_fill_brewer(palette = "Set2")}
|
||||
nolegend=function(){theme(legend.position="none")}
|
||||
simkeys=unique(read_csv("../results/ccgrid2023.csv")$simkey)
|
||||
nsimkeys=length(simkeys)
|
||||
s_=function(x){if(x<0){return("")}else{return("+")}}
|
||||
simkey_rename=function(key){
|
||||
if(key=="hint")
|
||||
return("Hints")
|
||||
if(key=="baseline")
|
||||
return("Baseline")
|
||||
if(key=="extended")
|
||||
return("Extended")
|
||||
if(key=="hintandextended")
|
||||
return("Hints+Extended")
|
||||
return(key)
|
||||
}
|
||||
dformat=function(data){
|
||||
data%>%rowwise()%>%mutate(simkey=simkey_rename(simkey))%>%mutate(wireless=ifelse(wireless=="lora","LoRa","NbIoT"))
|
||||
}
|
||||
|
||||
build_stats=function(file){
|
||||
data=read_csv(file)
|
||||
energy60=data%>%filter(wakeupfor==60)
|
||||
energy60Snd=energy60%>%filter(isSender==1)%>%group_by(simkey,wireless)%>%summarise(sd=sd(energy),sd_energy=sd(energy),energy=mean(energy),type="Sender")
|
||||
energy60Rcv=energy60%>%filter(isSender==0)%>%group_by(simkey,wireless)%>%summarise(sd=sd(energy),sd_energy=sd(energy),energy=mean(energy),type="Receiver")
|
||||
energy60=energy60Snd%>%ungroup()%>%rbind(energy60Rcv)
|
||||
energy60=energy60%>%mutate(sd_min=energy-sd,sd_max=energy+sd)%>%mutate(sd_min_txt=paste0("-",r_(sd_min)))%>%mutate(sd_max_txt=paste0("+",r_(sd_max)))
|
||||
energy60Baseline=energy60%>%filter(simkey=="baseline")%>%uncount(nsimkeys,.id="id")%>%mutate(simkey=simkeys[id])
|
||||
energy60=energy60%>%left_join(energy60Baseline,by=c("simkey","wireless","type"),suffix = c("","_baseline"))
|
||||
energy60=energy60%>%mutate(ovhd=energy*100/energy_baseline-100)
|
||||
energy60=energy60%>%rowwise()%>%mutate(ovhd_txt=paste0("(",s_(ovhd),r_(ovhd),"%)"))
|
||||
success60Snd=data%>%filter(wakeupfor==60)%>%filter(isSender!=0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(success_orig=mean(nSend),success=mean(nSend),type="Sender")
|
||||
success60Rcv=data%>%filter(wakeupfor==60)%>%filter(isSender!=0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(success_orig=mean(nSend),success=mean(nSend),type="Receiver")
|
||||
success60=rbind(success60Snd,success60Rcv)
|
||||
success60=success60%>%rowwise()%>%mutate(success_txt=paste0("[",success,"]"))
|
||||
energy60=energy60%>%left_join(success60)%>%rowwise()%>%mutate(infos_txt=paste0(ovhd_txt,"\n{",r_(energy/success_orig),"}"),infos=energy/success_orig)
|
||||
energy60=energy60%>%mutate(type=factor(type,levels = c("Sender","Receiver")),wakeupfor=60)
|
||||
|
||||
|
||||
energy180=data%>%filter(wakeupfor==180)
|
||||
energy180Snd=energy180%>%filter(isSender==1)%>%group_by(simkey,wireless)%>%summarise(sd=sd(energy),sd_energy=sd(energy),energy=mean(energy),type="Sender")
|
||||
energy180Rcv=energy180%>%filter(isSender==0)%>%group_by(simkey,wireless)%>%summarise(sd=sd(energy),sd_energy=sd(energy),energy=mean(energy),type="Receiver")
|
||||
energy180=energy180Snd%>%ungroup()%>%rbind(energy180Rcv)%>%mutate(type=factor(type,levels = c("Sender","Receiver")))
|
||||
energy180=energy180%>%mutate(sd_min=energy-sd,sd_max=energy+sd)%>%mutate(sd_min_txt=paste0("-",r_(sd_min)))%>%mutate(sd_max_txt=paste0("+",r_(sd_max)))
|
||||
energy180Baseline=energy180%>%filter(simkey=="baseline")%>%uncount(nsimkeys,.id="id")%>%mutate(simkey=simkeys[id])
|
||||
energy180=energy180%>%left_join(energy180Baseline,by=c("simkey","wireless","type"),suffix = c("","_baseline"))
|
||||
energy180=energy180%>%mutate(ovhd=energy*100/energy_baseline-100)
|
||||
energy180=energy180%>%rowwise()%>%mutate(ovhd_txt=paste0("(",s_(ovhd),r_(ovhd),"%)"))
|
||||
success180Snd=data%>%filter(wakeupfor==180)%>%filter(isSender!=0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(success_orig=mean(nSend),success=mean(nSend),type="Sender")
|
||||
success180Rcv=data%>%filter(wakeupfor==180)%>%filter(isSender!=0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(success_orig=mean(nSend),success=mean(nSend),type="Receiver")
|
||||
success180=rbind(success180Snd,success180Rcv)
|
||||
success180=success180%>%rowwise()%>%mutate(success_txt=paste0("[",success,"]"))
|
||||
energy180=energy180%>%left_join(success180)%>%rowwise()%>%mutate(infos_txt=paste0(ovhd_txt,"\n{",r_(energy/success_orig),"}"),infos=energy/success_orig)
|
||||
energy180=energy180%>%mutate(type=factor(type,levels = c("Sender","Receiver")),wakeupfor=180)
|
||||
|
||||
totalUptime60=data%>%filter(wakeupfor==60)
|
||||
totalUptime60Snd=totalUptime60%>%filter(isSender==1)%>%group_by(simkey,wireless)%>%summarise(sd=sd(totalUptime),totalUptime=mean(totalUptime),type="Sender")
|
||||
totalUptime60Rcv=totalUptime60%>%filter(isSender==0)%>%group_by(simkey,wireless)%>%summarise(sd=sd(totalUptime),totalUptime=mean(totalUptime),type="Receiver")
|
||||
totalUptime60=totalUptime60Snd%>%ungroup()%>%rbind(totalUptime60Rcv)%>%mutate(type=factor(type,levels = c("Sender","Receiver")))
|
||||
totalUptime60=totalUptime60%>%mutate(sd_min=totalUptime-sd,sd_max=totalUptime+sd)%>%mutate(sd_min_txt=paste0("-",r_(sd_min)))%>%mutate(sd_max_txt=paste0("+",r_(sd_max)))
|
||||
totalUptime60Baseline=totalUptime60%>%filter(simkey=="baseline")%>%uncount(nsimkeys,.id="id")%>%mutate(simkey=simkeys[id])
|
||||
totalUptime60=totalUptime60%>%left_join(totalUptime60Baseline,by=c("simkey","wireless","type"),suffix = c("","_baseline"))
|
||||
totalUptime60=totalUptime60%>%mutate(ovhd=totalUptime-totalUptime_baseline)
|
||||
totalUptime60=totalUptime60%>%rowwise()%>%mutate(ovhd_txt=paste0("(",s_(ovhd),r_(ovhd),")"))
|
||||
totalUptime60=totalUptime60%>%mutate(type=factor(type,levels = c("Sender","Receiver")),,wakeupfor=60)
|
||||
|
||||
totalUptime180=data%>%filter(wakeupfor==180)
|
||||
totalUptime180Snd=totalUptime180%>%filter(isSender==1)%>%group_by(simkey,wireless)%>%summarise(sd=sd(totalUptime),totalUptime=mean(totalUptime),type="Sender")
|
||||
totalUptime180Rcv=totalUptime180%>%filter(isSender==0)%>%group_by(simkey,wireless)%>%summarise(sd=sd(totalUptime),totalUptime=mean(totalUptime),type="Receiver")
|
||||
totalUptime180=totalUptime180Snd%>%ungroup()%>%rbind(totalUptime180Rcv)%>%mutate(type=factor(type,levels = c("Sender","Receiver")))
|
||||
totalUptime180=totalUptime180%>%mutate(sd_min=totalUptime-sd,sd_max=totalUptime+sd)%>%mutate(sd_min_txt=paste0("-",r_(sd_min)))%>%mutate(sd_max_txt=paste0("+",r_(sd_max)))
|
||||
totalUptime180Baseline=totalUptime180%>%filter(simkey=="baseline")%>%uncount(nsimkeys,.id="id")%>%mutate(simkey=simkeys[id])
|
||||
totalUptime180=totalUptime180%>%left_join(totalUptime180Baseline,by=c("simkey","wireless","type"),suffix = c("","_baseline"))
|
||||
totalUptime180=totalUptime180%>%mutate(ovhd=totalUptime-totalUptime_baseline)
|
||||
totalUptime180=totalUptime180%>%rowwise()%>%mutate(ovhd_txt=paste0("(",s_(ovhd),r_(ovhd),")"))
|
||||
totalUptime180=totalUptime180%>%mutate(type=factor(type,levels = c("Sender","Receiver")),wakeupfor=180)
|
||||
|
||||
totalUptime=rbind(totalUptime60,totalUptime180)
|
||||
energy=rbind(energy60,energy180)
|
||||
totalUptime%>%left_join(energy,by=c("simkey","wireless","wakeupfor","type"),suffix = c("",""))
|
||||
|
||||
}
|
||||
|
||||
build_table=function(strategy_csv){
|
||||
|
||||
# Load stats
|
||||
stats=build_stats(paste0("../results/",strategy_csv,".csv"))
|
||||
stats_prev=build_stats("../results/ccgrid2023.csv")
|
||||
stats=stats%>%left_join(stats_prev,by=c("simkey","wireless","wakeupfor","type"),suffix=c("","_prev"))
|
||||
|
||||
# Additional computations
|
||||
stats=stats%>%mutate(energy_diff=energy-energy_prev)
|
||||
stats=stats%>%mutate(success_diff=success-success_prev)
|
||||
stats=stats%>%mutate(ovhd_diff=ovhd-ovhd_prev)
|
||||
stats=stats%>%mutate(infos_diff=infos-infos_prev)
|
||||
|
||||
# Final results
|
||||
stats=stats%>%select(simkey,wireless,wakeupfor,type,energy,energy_diff,success_diff,ovhd_diff,infos_diff,ovhd,infos,success)
|
||||
|
||||
|
||||
|
||||
tf=paste0("figures/table_",strategy_csv,".org")
|
||||
fw=function(str){write(str,file=tf,append = TRUE)}
|
||||
df=function(d,rcolor=FALSE){
|
||||
|
||||
if(is.na(d)||is.infinite(d)){
|
||||
return("")
|
||||
}
|
||||
else if(d<0){
|
||||
c="green!60"
|
||||
if(rcolor){c="red!60"}
|
||||
return(paste0(r"(~{\color{)",c,r"(}\textbf{)",r_(d),"}}"))
|
||||
}
|
||||
else if (d>0){
|
||||
c="red!60"
|
||||
if(rcolor){c="green!60"}
|
||||
return(paste0(r"(~{\color{)",c,r"(}\textbf{+)",r_(d),"}}"))
|
||||
}
|
||||
r"(~{\color{blue!60}\textbf{=}})"
|
||||
}
|
||||
mbox=function(v,d,alpha){
|
||||
if(is.infinite(v))
|
||||
v="--"
|
||||
paste0(r"(\makebox[)",alpha,r"(cm]{\hfill )",v,r"(})",d)
|
||||
}
|
||||
|
||||
write_table=function(techno){
|
||||
stats%>%filter(wireless==techno)%>%group_by(wakeupfor)%>%group_walk(function(d1,g1){
|
||||
uptime=as.numeric(g1)
|
||||
first=TRUE
|
||||
d1%>%group_by(simkey)%>%group_walk(function(d2,g2){
|
||||
scenario=as.character(g2)
|
||||
senders=d2%>%filter(type=="Sender")
|
||||
receivers=d2%>%filter(type=="Receiver")
|
||||
|
||||
#### Stats
|
||||
sender_energy=r_(as.numeric(senders%>%select(energy)))
|
||||
receiver_energy=r_(as.numeric(receivers%>%select(energy)))
|
||||
sender_ovhd=r_(as.numeric(senders%>%select(ovhd)))
|
||||
if(sender_ovhd>0)
|
||||
sender_ovhd=paste0("+",sender_ovhd)
|
||||
receiver_ovhd=r_(as.numeric(receivers%>%select(ovhd)))
|
||||
if(receiver_ovhd>0)
|
||||
receiver_ovhd=paste0("+",receiver_ovhd)
|
||||
sender_eff=r_(as.numeric(senders%>%select(infos)))
|
||||
receiver_eff=r_(as.numeric(receivers%>%select(infos)))
|
||||
succ=r_(as.numeric(senders%>%select(success)))
|
||||
|
||||
#### Diff
|
||||
sender_energy_diff=df(r_(as.numeric(senders%>%select(energy_diff))))
|
||||
receiver_energy_diff=df(r_(as.numeric(receivers%>%select(energy_diff))))
|
||||
sender_ovhd_diff=df(r_(as.numeric(senders%>%select(ovhd_diff))))
|
||||
receiver_ovhd_diff=df(r_(as.numeric(receivers%>%select(ovhd_diff))))
|
||||
sender_eff_diff=df(r_(as.numeric(senders%>%select(infos_diff))))
|
||||
receiver_eff_diff=df(r_(as.numeric(receivers%>%select(infos_diff))))
|
||||
succ_diff=df(r_(as.numeric(senders%>%select(success_diff))),rcolor = TRUE)
|
||||
|
||||
tw=paste0("&",scenario,"&",
|
||||
mbox(succ,succ_diff,0.5),"&",
|
||||
mbox(sender_energy,sender_energy_diff,0.8),"&",
|
||||
mbox(receiver_energy,receiver_energy_diff,0.8),"&",
|
||||
mbox(sender_ovhd,sender_ovhd_diff,0.7),"&",
|
||||
mbox(receiver_ovhd,receiver_ovhd_diff,0.7),"&",
|
||||
mbox(sender_eff,sender_eff_diff,0.65),"&",
|
||||
mbox(receiver_eff,receiver_eff_diff,0.65))
|
||||
|
||||
|
||||
if(first)
|
||||
tw=paste0(r"(\multirow{4}{*}{)",uptime,"}",tw)
|
||||
fw(paste0(tw,r"(\\)"))
|
||||
|
||||
first<<-FALSE
|
||||
})
|
||||
if(uptime==60)
|
||||
fw(r"(\midrule)")
|
||||
})
|
||||
}
|
||||
|
||||
header=paste0(r"(\begin{table*}
|
||||
\centering
|
||||
\caption{)","Simulation results using the ",strategy_csv,r"( strategy. Comparison between our previous results\cite{prev} are in color. Green indicates improvements, red shows regressions and blue indicates no change.)",r"(}
|
||||
\begin{tabular}{crlllllll}
|
||||
\toprule
|
||||
\multirow{2}{*}{Uptime} & \multirow{2}{*}{Scenario} & \multirow{2}{*}{$\# Succ_p$} & \multicolumn{2}{c}{Energy Consumption (J)} & \multicolumn{2}{c}{$eOvhd(p)$ (\%)} & \multicolumn{2}{c}{$eff(p)$ (J)}\\
|
||||
\cmidrule(lr){4-5}\cmidrule(lr){6-7}\cmidrule(lr){8-9}
|
||||
&&&Sender & Receiver&Sender & Receiver&Sender & Receiver\\
|
||||
\midrule)")
|
||||
footer=r"(\bottomrule
|
||||
\end{tabular}
|
||||
\end{table*})"
|
||||
|
||||
|
||||
write("",file=tf)
|
||||
fw(header)
|
||||
fw(r"(\multicolumn{9}{c}{LoRa}\\)")
|
||||
fw(r"(\midrule)")
|
||||
write_table("lora")
|
||||
fw(r"(\midrule)")
|
||||
fw(r"(\multicolumn{9}{c}{NbIoT}\\)")
|
||||
fw(r"(\midrule)")
|
||||
write_table("nbiot")
|
||||
fw(footer)
|
||||
}
|
||||
|
||||
build_table("strategy_sor")
|
||||
build_table("strategy_uor")
|
||||
build_table("strategy_farhint")
|
||||
build_table("strategy_combined")
|
||||
|
||||
|
||||
## Print energy sd infos
|
||||
stats_sor=build_stats("../results/strategy_sor.csv")
|
||||
stats_uor=build_stats("../results/strategy_uor.csv")
|
||||
stats_farhint=build_stats("../results/strategy_farhint.csv")
|
||||
stats_combined=build_stats("../results/strategy_combined.csv")
|
||||
message(paste0("Energy std SOR: min=",
|
||||
round(min(stats_sor$sd_energy)),
|
||||
" max=",round(max(stats_sor$sd_energy)),
|
||||
" median=",round(median(stats_sor$sd_energy))))
|
||||
|
||||
message(paste0("Energy std UOR: min=",
|
||||
round(min(stats_uor$sd_energy)),
|
||||
" max=",round(max(stats_uor$sd_energy)),
|
||||
" median=",round(median(stats_uor$sd_energy))))
|
||||
|
||||
|
||||
message(paste0("Energy std FARHINT: min=",
|
||||
round(min(stats_farhint$sd_energy)),
|
||||
" max=",round(max(stats_farhint$sd_energy)),
|
||||
" median=",round(median(stats_farhint$sd_energy))))
|
||||
|
||||
message(paste0("Energy std combined: min=",
|
||||
round(min(stats_combined$sd_energy)),
|
||||
" max=",round(max(stats_combined$sd_energy)),
|
||||
" median=",round(median(stats_combined$sd_energy))))
|
Loading…
Add table
Add a link
Reference in a new issue