diff --git a/Reports/Thesis/images/comparison/final_comparison.png b/Reports/Thesis/images/comparison/final_comparison.png new file mode 100644 index 0000000..c1732e8 Binary files /dev/null and b/Reports/Thesis/images/comparison/final_comparison.png differ diff --git a/Reports/Thesis/sections/abstract.aux b/Reports/Thesis/sections/abstract.aux new file mode 100644 index 0000000..eb83f9b --- /dev/null +++ b/Reports/Thesis/sections/abstract.aux @@ -0,0 +1,64 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Abstract}{2}{section.1}\protected@file@percent } +\@setckpt{sections/abstract}{ +\setcounter{page}{3} +\setcounter{equation}{0} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{0} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{section}{1} +\setcounter{subsection}{0} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +\setcounter{parentequation}{0} +\setcounter{float@type}{4} +\setcounter{caption@flags}{0} +\setcounter{continuedfloat}{0} +\setcounter{subfigure}{0} +\setcounter{subtable}{0} +\setcounter{NAT@ctr}{0} +\setcounter{section@level}{0} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{bookmark@seq@number}{1} +\setcounter{g@acro@QR@int}{0} +\setcounter{g@acro@AQR@int}{0} +\setcounter{g@acro@NAQR@int}{0} +\setcounter{g@acro@GRU@int}{0} +\setcounter{g@acro@LSTM@int}{0} +\setcounter{g@acro@GAN@int}{0} +\setcounter{g@acro@CTSGAN@int}{0} +\setcounter{g@acro@VAE@int}{0} +\setcounter{g@acro@MLP@int}{0} +\setcounter{g@acro@GP@int}{0} +\setcounter{g@acro@MSE@int}{0} +\setcounter{g@acro@MAE@int}{0} +\setcounter{g@acro@CRPS@int}{0} +\setcounter{g@acro@TSPA@int}{0} +\setcounter{g@acro@PLF@int}{0} +\setcounter{g@acro@CDF@int}{0} +\setcounter{g@acro@QE@int}{0} +\setcounter{g@acro@NRV@int}{0} +\setcounter{g@acro@PV@int}{0} +\setcounter{g@acro@NP@int}{0} +\setcounter{g@acro@TSO@int}{0} +\setcounter{g@acro@DSO@int}{0} +\setcounter{g@acro@BRP@int}{0} +\setcounter{g@acro@BSP@int}{0} +\setcounter{g@acro@SI@int}{0} +\setcounter{g@acro@FCR@int}{0} +\setcounter{g@acro@aFRR@int}{0} +\setcounter{g@acro@mFRR@int}{0} +\setcounter{g@acro@MW@int}{0} +\setcounter{g@acro@ACE@int}{0} +\setcounter{g@acro@MIP@int}{0} +\setcounter{g@acro@MDP@int}{0} +} diff --git a/Reports/Thesis/sections/abstract.tex b/Reports/Thesis/sections/abstract.tex new file mode 100644 index 0000000..ba4b6b7 --- /dev/null +++ b/Reports/Thesis/sections/abstract.tex @@ -0,0 +1,2 @@ +\section{Abstract} +The integration of renewable energy sources has introduced greater volatility to the electricity market, making accurate imbalance forecasting increasingly important. The objective of this thesis is to explore the effectiveness of generative modeling techniques in forecasting imbalance prices and optimizing battery usage for energy trading in the Belgian electricity market. Various generative models were trained using data provided by Elia, the Transmission System Operator (TSO) in Belgium. The models incorporated different input features, including load, wind, photovoltaic power, and nominal net position. These models were evaluated using Mean Absolute Error (MAE), Mean Squared Error (MSE), and Continuous Ranked Probability Score (CRPS). The primary approach involved modeling Net Regulation Volume (NRV) values and generating multiple full-day NRV samples, which were then used to reconstruct imbalance prices. These reconstructed prices were used to optimize a simple policy for charging and discharging a battery, aimed at maximizing profit. Traditional evaluation metrics did not correlate well with the profitability of the models, necessitating evaluation based on profit generation. Among the tested models, the diffusion model achieved a profit of €218,170.75, representing a 9.74\% increase over the baseline policy, which used the previous day's NRV as a prediction. This demonstrates the potential benefits of advanced generative models for enhancing decision-making in energy trading. This thesis underscores the potential of generative modeling in forecasting imbalance prices and optimizing energy trading policies. Focusing on profitability as a key metric can lead to more practical and impactful applications in the energy market, particularly as the share of renewable energy continues to grow. Overall, this thesis highlights the importance of using profitability as a key metric for evaluating model performance and shows the potential of generative modeling in enhancing energy trading strategies. Furthermore, it shows that diffusion models can be particularly effective in improving energy trading policies and maximizing profit in the electricity market. diff --git a/Reports/Thesis/sections/appendix.aux b/Reports/Thesis/sections/appendix.aux index 1dd0cfa..554f5a8 100644 --- a/Reports/Thesis/sections/appendix.aux +++ b/Reports/Thesis/sections/appendix.aux @@ -1,7 +1,7 @@ \relax \providecommand\hyper@newdestlabel[2]{} \@setckpt{sections/appendix}{ -\setcounter{page}{60} +\setcounter{page}{63} \setcounter{equation}{8} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -15,19 +15,19 @@ \setcounter{subsubsection}{0} \setcounter{paragraph}{0} \setcounter{subparagraph}{0} -\setcounter{figure}{22} +\setcounter{figure}{23} \setcounter{table}{14} \setcounter{parentequation}{0} \setcounter{float@type}{4} \setcounter{caption@flags}{2} \setcounter{continuedfloat}{0} -\setcounter{subfigure}{2} +\setcounter{subfigure}{0} \setcounter{subtable}{0} \setcounter{NAT@ctr}{34} \setcounter{section@level}{0} \setcounter{Item}{0} \setcounter{Hfootnote}{0} -\setcounter{bookmark@seq@number}{33} +\setcounter{bookmark@seq@number}{34} \setcounter{g@acro@QR@int}{0} \setcounter{g@acro@AQR@int}{0} \setcounter{g@acro@NAQR@int}{1} diff --git a/Reports/Thesis/sections/background.aux b/Reports/Thesis/sections/background.aux index c8752c1..b3f2005 100644 --- a/Reports/Thesis/sections/background.aux +++ b/Reports/Thesis/sections/background.aux @@ -2,66 +2,66 @@ \providecommand\hyper@newdestlabel[2]{} \citation{noauthor_geliberaliseerde_nodate} \citation{noauthor_role_nodate} -\@writefile{toc}{\contentsline {section}{\numberline {2}Electricity market}{4}{section.2}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Overview of the most important parties in the electricity market\relax }}{4}{table.caption.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Electricity market}{5}{section.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Overview of the most important parties in the electricity market\relax }}{5}{table.caption.1}\protected@file@percent } \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} -\newlabel{tab:parties}{{1}{4}{Overview of the most important parties in the electricity market\relax }{table.caption.1}{}} -\ACRO{recordpage}{BRP}{5}{1}{4} +\newlabel{tab:parties}{{1}{5}{Overview of the most important parties in the electricity market\relax }{table.caption.1}{}} +\ACRO{recordpage}{BRP}{6}{1}{5} \citation{elia_tariffs_2022} \citation{noauthor_fcr_nodate} \citation{noauthor_afrr_nodate} \citation{noauthor_mfrr_nodate} -\ACRO{recordpage}{TSO}{7}{1}{6} -\ACRO{recordpage}{FCR}{7}{1}{6} -\ACRO{recordpage}{BSP}{7}{1}{6} -\ACRO{recordpage}{aFRR}{7}{1}{6} -\ACRO{recordpage}{mFRR}{7}{1}{6} +\ACRO{recordpage}{TSO}{8}{1}{7} +\ACRO{recordpage}{FCR}{8}{1}{7} +\ACRO{recordpage}{BSP}{8}{1}{7} +\ACRO{recordpage}{aFRR}{8}{1}{7} +\ACRO{recordpage}{mFRR}{8}{1}{7} \citation{elia_tariffs_2022} \citation{elia_tariffs_2022} \citation{elia_tariffs_2022} -\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Prices paid by the BRPs \cite {elia_tariffs_2022}\relax }}{7}{table.caption.2}\protected@file@percent } -\newlabel{tab:imbalance_price}{{2}{7}{Prices paid by the BRPs \cite {elia_tariffs_2022}\relax }{table.caption.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Example of a bid ladder. The bid ladder shows the total price for the activation of a certain volume of energy.\relax }}{8}{figure.caption.3}\protected@file@percent } -\newlabel{fig:bid_ladder}{{1}{8}{Example of a bid ladder. The bid ladder shows the total price for the activation of a certain volume of energy.\relax }{figure.caption.3}{}} -\@writefile{toc}{\contentsline {section}{\numberline {3}Generative modeling}{8}{section.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Prices paid by the BRPs \cite {elia_tariffs_2022}\relax }}{8}{table.caption.2}\protected@file@percent } +\newlabel{tab:imbalance_price}{{2}{8}{Prices paid by the BRPs \cite {elia_tariffs_2022}\relax }{table.caption.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Example of a bid ladder. The bid ladder shows the total price for the activation of a certain volume of energy.\relax }}{9}{figure.caption.3}\protected@file@percent } +\newlabel{fig:bid_ladder}{{1}{9}{Example of a bid ladder. The bid ladder shows the total price for the activation of a certain volume of energy.\relax }{figure.caption.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Generative modeling}{9}{section.4}\protected@file@percent } \citation{goodfellow_generative_2014} \citation{kingma_auto-encoding_2022} \citation{rezende_variational_2015} \citation{sohl-dickstein_deep_2015} \citation{koenker_regression_1978} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Quantile Regression}{9}{subsection.3.1}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Example of a cumulative distribution function (CDF) and some quantiles. The quantiles are the values below which a certain proportion of observations fall.\relax }}{10}{figure.caption.4}\protected@file@percent } -\newlabel{fig:quantile_example}{{2}{10}{Example of a cumulative distribution function (CDF) and some quantiles. The quantiles are the values below which a certain proportion of observations fall.\relax }{figure.caption.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Quantile Regression}{10}{subsection.4.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Example of a cumulative distribution function (CDF) and some quantiles. The quantiles are the values below which a certain proportion of observations fall.\relax }}{11}{figure.caption.4}\protected@file@percent } +\newlabel{fig:quantile_example}{{2}{11}{Example of a cumulative distribution function (CDF) and some quantiles. The quantiles are the values below which a certain proportion of observations fall.\relax }{figure.caption.4}{}} \citation{team_pinball_nodate} -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Example of quantile regression output for one-quarter of the NRV, showing interpolated values for quantiles at 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are used to reconstruct the cumulative distribution function.\relax }}{11}{figure.caption.5}\protected@file@percent } -\newlabel{fig:quantile_regression_example}{{3}{11}{Example of quantile regression output for one-quarter of the NRV, showing interpolated values for quantiles at 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are used to reconstruct the cumulative distribution function.\relax }{figure.caption.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Autoregressive vs Non-Autoregressive models}{12}{subsection.3.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Model Types}{13}{subsection.3.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Linear Model}{13}{subsubsection.3.3.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Example of quantile regression output for one-quarter of the NRV, showing interpolated values for quantiles at 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are used to reconstruct the cumulative distribution function.\relax }}{12}{figure.caption.5}\protected@file@percent } +\newlabel{fig:quantile_regression_example}{{3}{12}{Example of quantile regression output for one-quarter of the NRV, showing interpolated values for quantiles at 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are used to reconstruct the cumulative distribution function.\relax }{figure.caption.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Autoregressive vs Non-Autoregressive models}{13}{subsection.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Model Types}{14}{subsection.4.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}Linear Model}{14}{subsubsection.4.3.1}\protected@file@percent } \citation{hochreiter_long_1997} \citation{cho_learning_2014} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Non-Linear Model}{14}{subsubsection.3.3.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.3}Recurrent Neural Network (RNN)}{14}{subsubsection.3.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Non-Linear Model}{15}{subsubsection.4.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.3}Recurrent Neural Network (RNN)}{15}{subsubsection.4.3.3}\protected@file@percent } \citation{sohl-dickstein_deep_2015} -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces RNN model input and output visualization\relax }}{15}{figure.caption.6}\protected@file@percent } -\newlabel{fig:rnn_model_visualization}{{4}{15}{RNN model input and output visualization\relax }{figure.caption.6}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Diffusion models}{15}{subsection.3.4}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}Overview}{15}{subsubsection.3.4.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces RNN model input and output visualization\relax }}{16}{figure.caption.6}\protected@file@percent } +\newlabel{fig:rnn_model_visualization}{{4}{16}{RNN model input and output visualization\relax }{figure.caption.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Diffusion models}{16}{subsection.4.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1}Overview}{16}{subsubsection.4.4.1}\protected@file@percent } \citation{ho_denoising_2020} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}Applications}{16}{subsubsection.3.4.2}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }}{16}{figure.caption.7}\protected@file@percent } -\newlabel{fig:diffusion_example}{{5}{16}{Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }{figure.caption.7}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{16}{subsubsection.3.4.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.2}Applications}{17}{subsubsection.4.4.2}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }}{17}{figure.caption.7}\protected@file@percent } +\newlabel{fig:diffusion_example}{{5}{17}{Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }{figure.caption.7}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.3}Generation process}{17}{subsubsection.4.4.3}\protected@file@percent } \citation{ho_denoising_2020} \citation{ho_denoising_2020} \citation{gneiting_strictly_2007} -\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Diffusion process}}{18}{figure.caption.8}\protected@file@percent } -\newlabel{fig:diffusion_process}{{6}{18}{Diffusion process}{figure.caption.8}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Evaluation}{18}{subsection.3.5}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Visualization of the CRPS metric\relax }}{19}{figure.caption.9}\protected@file@percent } -\newlabel{fig:crps_visualization}{{7}{19}{Visualization of the CRPS metric\relax }{figure.caption.9}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Diffusion process}}{19}{figure.caption.8}\protected@file@percent } +\newlabel{fig:diffusion_process}{{6}{19}{Diffusion process}{figure.caption.8}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Evaluation}{19}{subsection.4.5}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Visualization of the CRPS metric\relax }}{20}{figure.caption.9}\protected@file@percent } +\newlabel{fig:crps_visualization}{{7}{20}{Visualization of the CRPS metric\relax }{figure.caption.9}{}} \@setckpt{sections/background}{ -\setcounter{page}{20} +\setcounter{page}{21} \setcounter{equation}{7} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -70,7 +70,7 @@ \setcounter{footnote}{0} \setcounter{mpfootnote}{0} \setcounter{part}{0} -\setcounter{section}{3} +\setcounter{section}{4} \setcounter{subsection}{5} \setcounter{subsubsection}{0} \setcounter{paragraph}{0} @@ -87,7 +87,7 @@ \setcounter{section@level}{0} \setcounter{Item}{0} \setcounter{Hfootnote}{0} -\setcounter{bookmark@seq@number}{14} +\setcounter{bookmark@seq@number}{15} \setcounter{g@acro@QR@int}{0} \setcounter{g@acro@AQR@int}{0} \setcounter{g@acro@NAQR@int}{0} diff --git a/Reports/Thesis/sections/conclusion.tex b/Reports/Thesis/sections/conclusion.tex new file mode 100644 index 0000000..ce76044 --- /dev/null +++ b/Reports/Thesis/sections/conclusion.tex @@ -0,0 +1,15 @@ +\section{Conclusion} + +During this thesis, multiple models were developed and trained to predict the Net Regulation Volume (NRV) values for specific days using data provided by Elia, the Transmission System Operator (TSO) in Belgium. The models incorporated various input features, including load, wind, photovoltaic power, and nominal net position. To evaluate their performance, the models were assessed using several metrics such as Mean Absolute Error (MAE), Mean Squared Error (MSE), and Continuous Ranked Probability Score (CRPS). + +The primary objective was to model imbalance prices and generate multiple predictions for these prices. These predictions were then utilized to optimize a simple policy for charging and discharging a battery to maximize profit. The optimization process followed a two-step approach: first, different models were used to predict NRV values and generate multiple full-day NRV samples. These samples were then used to reconstruct imbalance prices. Based on these reconstructed prices, the policy determined optimal charge and discharge thresholds for each prediction, with the mean of these thresholds serving as the final thresholds for a given day. The policy's effectiveness was measured by the profit it generated during the test period. + +One significant finding is that traditional evaluation metrics like MAE, MSE, and CRPS do not correlate well with the profitability of the policy. This disconnect necessitates evaluating the models based on the profit they achieve during training, which increases computational complexity and duration. To mitigate this, a smaller validation set can be used to compare models based on maximum profit rather than conventional metrics. This approach revealed that better modeling performance does not always translate into higher profits. + +Among the models tested, only the diffusion model surpassed the baseline policy, which used the previous day's NRV as a prediction. The diffusion model achieved a profit of €218,170.75, marking a 9.74\% increase over the baseline. This demonstrates the potential benefits of modeling imbalance prices and utilizing generated samples to optimize a simple policy for energy trading. + +Future improvements to the diffusion model could involve more sophisticated implementations and advanced conditioning techniques. The current model is basic, and incorporating more complex policies could further enhance battery utilization and profitability. + +In conclusion, this thesis underscores the potential of generative modeling in forecasting imbalance prices and optimizing energy trading policies. While traditional evaluation metrics have limitations, focusing on profitability as a measure of success can lead to more practical and impactful applications in the energy market. + +In conclusion, this thesis shows that generative modeling can be very useful for predicting imbalance prices and improving energy trading strategies. Traditional metrics like MAE, MSE, and CRPS don't always reflect how profitable a model can be. Instead, evaluating models based on the profit they generate is more effective and practical. This approach can lead to better and more impactful applications in the energy market. diff --git a/Reports/Thesis/sections/introduction.aux b/Reports/Thesis/sections/introduction.aux index 4f32207..a0ad397 100644 --- a/Reports/Thesis/sections/introduction.aux +++ b/Reports/Thesis/sections/introduction.aux @@ -1,14 +1,14 @@ \relax \providecommand\hyper@newdestlabel[2]{} \citation{commission_for_electricity_and_gas_regulation_creg_study_2023} -\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{section.1}\protected@file@percent } -\ACRO{recordpage}{TSO}{3}{1}{2} -\ACRO{recordpage}{TSO}{3}{1}{2} -\ACRO{recordpage}{NRV}{3}{1}{2} -\ACRO{recordpage}{NRV}{4}{1}{3} +\@writefile{toc}{\contentsline {section}{\numberline {2}Introduction}{3}{section.2}\protected@file@percent } +\ACRO{recordpage}{TSO}{4}{1}{3} +\ACRO{recordpage}{TSO}{4}{1}{3} \ACRO{recordpage}{NRV}{4}{1}{3} +\ACRO{recordpage}{NRV}{5}{1}{4} +\ACRO{recordpage}{NRV}{5}{1}{4} \@setckpt{sections/introduction}{ -\setcounter{page}{4} +\setcounter{page}{5} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -17,7 +17,7 @@ \setcounter{footnote}{0} \setcounter{mpfootnote}{0} \setcounter{part}{0} -\setcounter{section}{1} +\setcounter{section}{2} \setcounter{subsection}{0} \setcounter{subsubsection}{0} \setcounter{paragraph}{0} @@ -34,7 +34,7 @@ \setcounter{section@level}{0} \setcounter{Item}{0} \setcounter{Hfootnote}{0} -\setcounter{bookmark@seq@number}{1} +\setcounter{bookmark@seq@number}{2} \setcounter{g@acro@QR@int}{0} \setcounter{g@acro@AQR@int}{0} \setcounter{g@acro@NAQR@int}{0} diff --git a/Reports/Thesis/sections/literature_study.aux b/Reports/Thesis/sections/literature_study.aux index 1aa46ac..61a68d9 100644 --- a/Reports/Thesis/sections/literature_study.aux +++ b/Reports/Thesis/sections/literature_study.aux @@ -7,14 +7,14 @@ \citation{lu_scenarios_2022} \citation{dumas_deep_2022} \citation{rasul_autoregressive_2021} -\@writefile{toc}{\contentsline {section}{\numberline {5}Literature Study}{22}{section.5}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Day-Ahead Electricity Price Forecasting}{22}{subsection.5.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6}Literature Study}{23}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Day-Ahead Electricity Price Forecasting}{23}{subsection.6.1}\protected@file@percent } \citation{dumas_probabilistic_2019} \citation{narajewski_probabilistic_2022} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Imbalance Price Forecasting}{23}{subsection.5.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Policies for Battery Optimization}{23}{subsection.5.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Imbalance Price Forecasting}{24}{subsection.6.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Policies for Battery Optimization}{24}{subsection.6.3}\protected@file@percent } \@setckpt{sections/literature_study}{ -\setcounter{page}{24} +\setcounter{page}{25} \setcounter{equation}{7} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -23,7 +23,7 @@ \setcounter{footnote}{0} \setcounter{mpfootnote}{0} \setcounter{part}{0} -\setcounter{section}{5} +\setcounter{section}{6} \setcounter{subsection}{3} \setcounter{subsubsection}{0} \setcounter{paragraph}{0} @@ -40,7 +40,7 @@ \setcounter{section@level}{0} \setcounter{Item}{0} \setcounter{Hfootnote}{0} -\setcounter{bookmark@seq@number}{21} +\setcounter{bookmark@seq@number}{22} \setcounter{g@acro@QR@int}{0} \setcounter{g@acro@AQR@int}{0} \setcounter{g@acro@NAQR@int}{0} diff --git a/Reports/Thesis/sections/policies.aux b/Reports/Thesis/sections/policies.aux index e5360ae..e6fccff 100644 --- a/Reports/Thesis/sections/policies.aux +++ b/Reports/Thesis/sections/policies.aux @@ -1,11 +1,11 @@ \relax \providecommand\hyper@newdestlabel[2]{} -\@writefile{toc}{\contentsline {section}{\numberline {4}Policies}{20}{section.4}\protected@file@percent } -\newlabel{sec:policies}{{4}{20}{Policies}{section.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Baselines}{20}{subsection.4.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Policies based on NRV generations}{20}{subsection.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Policies}{21}{section.5}\protected@file@percent } +\newlabel{sec:policies}{{5}{21}{Policies}{section.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Baselines}{21}{subsection.5.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Policies based on NRV generations}{21}{subsection.5.2}\protected@file@percent } \@setckpt{sections/policies}{ -\setcounter{page}{22} +\setcounter{page}{23} \setcounter{equation}{7} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -14,7 +14,7 @@ \setcounter{footnote}{0} \setcounter{mpfootnote}{0} \setcounter{part}{0} -\setcounter{section}{4} +\setcounter{section}{5} \setcounter{subsection}{2} \setcounter{subsubsection}{0} \setcounter{paragraph}{0} @@ -31,7 +31,7 @@ \setcounter{section@level}{0} \setcounter{Item}{0} \setcounter{Hfootnote}{0} -\setcounter{bookmark@seq@number}{17} +\setcounter{bookmark@seq@number}{18} \setcounter{g@acro@QR@int}{0} \setcounter{g@acro@AQR@int}{0} \setcounter{g@acro@NAQR@int}{0} diff --git a/Reports/Thesis/sections/results/policies/nrv_samples_policy.tex b/Reports/Thesis/sections/results/policies/nrv_samples_policy.tex index 5ea16e1..447dfbd 100644 --- a/Reports/Thesis/sections/results/policies/nrv_samples_policy.tex +++ b/Reports/Thesis/sections/results/policies/nrv_samples_policy.tex @@ -84,7 +84,7 @@ Table \ref{tab:aqr_models_comparison} presents a comprehensive comparison of aut (2 -256) & 20 & 108.84 & \textbf{218,141.31} & 283.94 & 428.6875 \\ (2 -256) & 20 & 105.31 & 215,862.35 & 283.06 & 440.2500 \\ (2 -512) & 20 & 103.41 & 216,411.79 & 282.56 & 450.3125 \\ - (2 - 1024) & 20 & \textbf{100.36} & 215,686.32 & 282.69 & 463.6875 \\ + (2 - 1024) & 20 & 100.36 & 215,686.32 & 282.69 & 463.6875 \\ (2 -256) & 50 & 117.81 & 216,632.39 & 282.75 & 421.3125 \\ (2 -512) & 50 & 180.83 & 210,769.03 & 282.06 & 446.4375 \\ (2 - 1024) & 50 & 179.59 & 212,793.94 & 282.88 & 454.5000 \\ @@ -125,8 +125,7 @@ Some examples of the generated samples from the model with the lowest CRPS and t \label{fig:diffusion_policy_comparison_high_low_crps} \end{figure} -A comparison of the baselines and the best-performing models is shown in Table \ref{tab:policy_comparison}. The best-performing model is the diffusion model with two layers consisting of 256 hidden units. Only the NRV values of yesterday are used as input features and 50 steps were used. The profit achieved using this model is €218,170.75 with 283.00 charge cycles. This is an improvement of 9.74\% compared to the baseline that uses the NRV of yesterday as a prediction. When the policy is evaluated using the real NRV data for the evaluated day, a total profit of €230,317.84 is achieved. This is the maximum profit that can be achieved using the simple policy that determines a buying and selling threshold for each day. The best-performing diffusion model achieves a profit of €218,170.75. This means that 94.78\% of the maximum profit is achieved using the diffusion model. This is a significant improvement compared to the baseline that uses the NRV of yesterday as a prediction. This baseline achieves a profit of €198,807.09 which is 94.72\% of the maximum profit. This shows that integrating the use of multiple full-day NRV samples into the policy can improve the profit significantly. - +% TODO: Add linear model results \begin{table}[H] \centering \begin{adjustbox}{max width=\textwidth} @@ -143,7 +142,7 @@ A comparison of the baselines and the best-performing models is shown in Table \ \multicolumn{5}{l}{\textbf{Models}} \\ \midrule - NAQR: Linear & & & & \\ + NAQR: Linear & All & 191,421.62 & 282.81 & -3.85\% \\ NAQR: Non-Linear (2 - 512) & NRV & 189,982.08 & 283.81 & -4.43\% \\ &&& \\ AQR: Linear & NRV & 190,501.34 & 282.94 & -4.17\% \\ @@ -159,5 +158,17 @@ A comparison of the baselines and the best-performing models is shown in Table \ \label{tab:policy_comparison} \end{table} -\section{Conclusion} -In this thesis, generative methods are explored to model the NRV data of the Belgian electricity market. These methods are then used to improve the decision-making to charge and discharge a battery to make a profit. +A comparison of the baselines and the best-performing models is shown in Table \ref{tab:policy_comparison}. The most effective model is the diffusion model with two layers of 256 hidden units, utilizing only the NRV values from the previous day as input features and employing 50 steps. This model is unique in that it surpasses the Yesterday NRV baseline, achieving a profit of €218,170.75 with 283.00 charge cycles. This represents a 9.74\% improvement over the baseline that uses the NRV of the previous day for prediction. When the policy is evaluated using the actual NRV data for the evaluated day, the maximum achievable profit with a simple policy is €230,317.84. Thus, the best-performing diffusion model achieves 94.78\% of this maximum potential profit. + +In contrast, all other evaluated models yielded lower profits compared to the Yesterday NRV baseline. Specifically, the NAQR models, both linear and non-linear, failed to outperform the baseline. The NAQR Non-Linear model, with two layers of 512 hidden units, achieved a profit of €189,982.08 with 283.81 charge cycles, resulting in a 4.43\% decrease compared to the Yesterday NRV baseline. Similarly, the NAQR Linear model did not yield competitive results. + +The AQR models also underperformed relative to the baseline. The AQR Linear model, which used NRV features, achieved a profit of €190,501.34 with 282.94 charge cycles, representing a 4.17\% decrease. The AQR Non-Linear model, with four layers of 512 hidden units and using all features, achieved a slightly better profit of €196,999.03 with 284.88 charge cycles but still fell short by 0.91\%. The AQR GRU model, incorporating two layers of 256 hidden units and using NRV features, recorded a profit of €196,655.36 with 283.81 charge cycles, which is 1.08\% lower than the baseline. + +Overall, the diffusion model is the only one that significantly improves upon the Yesterday NRV baseline, demonstrating its superior ability to predict and optimize for higher profits. These results show that using a generative model to generate samples of the NRV that can be used to optimize the buying and selling of electricity can be beneficial. The results are also visualized in Figure \ref{fig:profit_comparison}. + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{images/comparison/final_comparison.png} + \caption{Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.} + \label{fig:profit_comparison} +\end{figure} diff --git a/Reports/Thesis/verslag.aux b/Reports/Thesis/verslag.aux index 671b046..312094b 100644 --- a/Reports/Thesis/verslag.aux +++ b/Reports/Thesis/verslag.aux @@ -20,6 +20,7 @@ \@writefile{lof}{\acswitchoff } \@writefile{lot}{\acswitchoff } \babel@aux{english}{} +\@input{sections/abstract.aux} \@input{sections/introduction.aux} \@input{sections/background.aux} \@input{sections/policies.aux} @@ -28,100 +29,102 @@ \citation{noauthor_imbalance_nodate} \citation{noauthor_measured_nodate} \citation{noauthor_photovoltaic_nodate} -\@writefile{toc}{\contentsline {section}{\numberline {6}Results \& Discussion}{24}{section.6}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Data}{24}{subsection.6.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Results \& Discussion}{25}{section.7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Data}{25}{subsection.7.1}\protected@file@percent } \citation{noauthor_wind_nodate} \citation{noauthor_intraday_nodate} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Quantile Regression}{25}{subsection.6.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1}Linear Model}{25}{subsubsection.6.2.1}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Linear model results\relax }}{26}{table.caption.10}\protected@file@percent } -\newlabel{tab:linear_model_baseline_results}{{3}{26}{Linear model results\relax }{table.caption.10}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Mean and standard deviation of the NRV values over the quarter of the day\relax }}{28}{figure.caption.11}\protected@file@percent } -\newlabel{fig:nrv_mean_std_over_quarter}{{8}{28}{Mean and standard deviation of the NRV values over the quarter of the day\relax }{figure.caption.11}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces Autoregressive linear model results with time features\relax }}{28}{table.caption.12}\protected@file@percent } -\newlabel{tab:autoregressive_linear_model_quarter_embedding_baseline_results}{{4}{28}{Autoregressive linear model results with time features\relax }{table.caption.12}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Comparison of the autoregressive and non-autoregressive linear model samples.\relax }}{29}{figure.caption.13}\protected@file@percent } -\newlabel{fig:linear_model_sample_comparison}{{9}{29}{Comparison of the autoregressive and non-autoregressive linear model samples.\relax }{figure.caption.13}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Samples for two examples from the test set for the autoregressive and non-autoregressive linear model. The real NRV is shown in orange.\relax }}{30}{figure.caption.14}\protected@file@percent } -\newlabel{fig:linear_model_samples_comparison}{{10}{30}{Samples for two examples from the test set for the autoregressive and non-autoregressive linear model. The real NRV is shown in orange.\relax }{figure.caption.14}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{31}{figure.caption.15}\protected@file@percent } -\newlabel{fig:linear_model_quantile_over_underestimation}{{11}{31}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.15}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.2}Non-Linear Model}{32}{subsubsection.6.2.2}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {5}{\ignorespaces Non-linear Quantile Regression Model Architecture\relax }}{32}{table.caption.16}\protected@file@percent } -\newlabel{tab:non_linear_model_architecture}{{5}{32}{Non-linear Quantile Regression Model Architecture\relax }{table.caption.16}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6}{\ignorespaces Non-linear quantile regression model results. All the models used a dropout of 0.2 .\relax }}{33}{table.caption.17}\protected@file@percent } -\newlabel{tab:non_linear_model_results}{{6}{33}{Non-linear quantile regression model results. All the models used a dropout of 0.2 .\relax }{table.caption.17}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Comparison of the autoregressive and non-autoregressive non-linear model examples.\relax }}{34}{figure.caption.18}\protected@file@percent } -\newlabel{fig:non_linear_model_examples}{{12}{34}{Comparison of the autoregressive and non-autoregressive non-linear model examples.\relax }{figure.caption.18}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Quantile Regression}{26}{subsection.7.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.1}Linear Model}{26}{subsubsection.7.2.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Linear model results\relax }}{27}{table.caption.10}\protected@file@percent } +\newlabel{tab:linear_model_baseline_results}{{3}{27}{Linear model results\relax }{table.caption.10}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Mean and standard deviation of the NRV values over the quarter of the day\relax }}{29}{figure.caption.11}\protected@file@percent } +\newlabel{fig:nrv_mean_std_over_quarter}{{8}{29}{Mean and standard deviation of the NRV values over the quarter of the day\relax }{figure.caption.11}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces Autoregressive linear model results with time features\relax }}{29}{table.caption.12}\protected@file@percent } +\newlabel{tab:autoregressive_linear_model_quarter_embedding_baseline_results}{{4}{29}{Autoregressive linear model results with time features\relax }{table.caption.12}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Comparison of the autoregressive and non-autoregressive linear model samples.\relax }}{30}{figure.caption.13}\protected@file@percent } +\newlabel{fig:linear_model_sample_comparison}{{9}{30}{Comparison of the autoregressive and non-autoregressive linear model samples.\relax }{figure.caption.13}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Samples for two examples from the test set for the autoregressive and non-autoregressive linear model. The real NRV is shown in orange.\relax }}{31}{figure.caption.14}\protected@file@percent } +\newlabel{fig:linear_model_samples_comparison}{{10}{31}{Samples for two examples from the test set for the autoregressive and non-autoregressive linear model. The real NRV is shown in orange.\relax }{figure.caption.14}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{32}{figure.caption.15}\protected@file@percent } +\newlabel{fig:linear_model_quantile_over_underestimation}{{11}{32}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.15}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.2}Non-Linear Model}{33}{subsubsection.7.2.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5}{\ignorespaces Non-linear Quantile Regression Model Architecture\relax }}{33}{table.caption.16}\protected@file@percent } +\newlabel{tab:non_linear_model_architecture}{{5}{33}{Non-linear Quantile Regression Model Architecture\relax }{table.caption.16}{}} +\@writefile{lot}{\contentsline {table}{\numberline {6}{\ignorespaces Non-linear quantile regression model results. All the models used a dropout of 0.2 .\relax }}{34}{table.caption.17}\protected@file@percent } +\newlabel{tab:non_linear_model_results}{{6}{34}{Non-linear quantile regression model results. All the models used a dropout of 0.2 .\relax }{table.caption.17}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Comparison of the autoregressive and non-autoregressive non-linear model examples.\relax }}{35}{figure.caption.18}\protected@file@percent } +\newlabel{fig:non_linear_model_examples}{{12}{35}{Comparison of the autoregressive and non-autoregressive non-linear model examples.\relax }{figure.caption.18}{}} \citation{hochreiter_long_1997} \citation{cho_learning_2014} -\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive non-linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{35}{figure.caption.19}\protected@file@percent } -\newlabel{fig:non-linear_model_quantile_over_underestimation}{{13}{35}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive non-linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.19}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.3}GRU Model}{35}{subsubsection.6.2.3}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {7}{\ignorespaces GRU Model Architecture\relax }}{36}{table.caption.20}\protected@file@percent } -\newlabel{tab:gru_model_architecture}{{7}{36}{GRU Model Architecture\relax }{table.caption.20}{}} -\@writefile{lot}{\contentsline {table}{\numberline {8}{\ignorespaces Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .\relax }}{37}{table.caption.21}\protected@file@percent } -\newlabel{tab:autoregressive_gru_model_results}{{8}{37}{Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .\relax }{table.caption.21}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Comparison of the autoregressive and non-autoregressive GRU model examples.\relax }}{38}{figure.caption.22}\protected@file@percent } -\newlabel{fig:gru_model_sample_comparison}{{14}{38}{Comparison of the autoregressive and non-autoregressive GRU model examples.\relax }{figure.caption.22}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive GRU models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{39}{figure.caption.23}\protected@file@percent } -\newlabel{fig:gru_model_quantile_over_underestimation}{{15}{39}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive GRU models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.23}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Diffusion}{39}{subsection.6.3}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive non-linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{36}{figure.caption.19}\protected@file@percent } +\newlabel{fig:non-linear_model_quantile_over_underestimation}{{13}{36}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive non-linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.19}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.3}GRU Model}{36}{subsubsection.7.2.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {7}{\ignorespaces GRU Model Architecture\relax }}{37}{table.caption.20}\protected@file@percent } +\newlabel{tab:gru_model_architecture}{{7}{37}{GRU Model Architecture\relax }{table.caption.20}{}} +\@writefile{lot}{\contentsline {table}{\numberline {8}{\ignorespaces Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .\relax }}{38}{table.caption.21}\protected@file@percent } +\newlabel{tab:autoregressive_gru_model_results}{{8}{38}{Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .\relax }{table.caption.21}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Comparison of the autoregressive and non-autoregressive GRU model examples.\relax }}{39}{figure.caption.22}\protected@file@percent } +\newlabel{fig:gru_model_sample_comparison}{{14}{39}{Comparison of the autoregressive and non-autoregressive GRU model examples.\relax }{figure.caption.22}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive GRU models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{40}{figure.caption.23}\protected@file@percent } +\newlabel{fig:gru_model_quantile_over_underestimation}{{15}{40}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive GRU models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.23}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Diffusion}{40}{subsection.7.3}\protected@file@percent } \citation{ho_denoising_2020} -\@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces Intermediate steps of the diffusion model for example 864 from the test set. The confidence intervals shown in the plots are made using 100 samples.\relax }}{41}{figure.caption.24}\protected@file@percent } -\newlabel{fig:diffusion_intermediates}{{16}{41}{Intermediate steps of the diffusion model for example 864 from the test set. The confidence intervals shown in the plots are made using 100 samples.\relax }{figure.caption.24}{}} -\@writefile{lot}{\contentsline {table}{\numberline {9}{\ignorespaces Simple diffusion model results.\relax }}{41}{table.caption.25}\protected@file@percent } -\newlabel{tab:diffusion_results}{{9}{41}{Simple diffusion model results.\relax }{table.caption.25}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces Intermediate steps of the diffusion model for example 864 from the test set. The confidence intervals shown in the plots are made using 100 samples.\relax }}{42}{figure.caption.24}\protected@file@percent } +\newlabel{fig:diffusion_intermediates}{{16}{42}{Intermediate steps of the diffusion model for example 864 from the test set. The confidence intervals shown in the plots are made using 100 samples.\relax }{figure.caption.24}{}} +\@writefile{lot}{\contentsline {table}{\numberline {9}{\ignorespaces Simple diffusion model results.\relax }}{42}{table.caption.25}\protected@file@percent } +\newlabel{tab:diffusion_results}{{9}{42}{Simple diffusion model results.\relax }{table.caption.25}{}} \citation{ho_denoising_2020} \citation{dhariwal_diffusion_2021} \citation{ho_classifier-free_2022} -\@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces The plots show the generations for the examples from the test set. The diffusion model used to generate the samples consists of 2 layers with a hidden size of 1024. The number of denoising steps is set to 300. The confidence intervals shown in the plots are made using 100 samples. All the available input features are used which includes the \acs {NRV}, Load, Wind, \acs {PV} and \acs {NP} data.\relax }}{42}{figure.caption.26}\protected@file@percent } -\newlabel{fig:diffusion_test_set_examples}{{17}{42}{The plots show the generations for the examples from the test set. The diffusion model used to generate the samples consists of 2 layers with a hidden size of 1024. The number of denoising steps is set to 300. The confidence intervals shown in the plots are made using 100 samples. All the available input features are used which includes the \acs {NRV}, Load, Wind, \acs {PV} and \acs {NP} data.\relax }{figure.caption.26}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {18}{\ignorespaces The plots show the generations for the first examples from the test set. Two diffusion models with 2 layers and 1024 hidden units are used. The first one is only conditioned on the NRV of the previous day while the second one uses all available input features.\relax }}{43}{figure.caption.27}\protected@file@percent } -\newlabel{fig:diffusion_test_set_example_only_nrv_vs_all}{{18}{43}{The plots show the generations for the first examples from the test set. Two diffusion models with 2 layers and 1024 hidden units are used. The first one is only conditioned on the NRV of the previous day while the second one uses all available input features.\relax }{figure.caption.27}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Comparison}{43}{subsection.6.4}\protected@file@percent } -\ACRO{recordpage}{MSE}{44}{1}{43} -\ACRO{recordpage}{MAE}{44}{1}{43} -\ACRO{recordpage}{CRPS}{44}{1}{43} -\@writefile{lot}{\contentsline {table}{\numberline {10}{\ignorespaces Comparison of the different models using the \ac {MSE}, \ac {MAE} and \ac {CRPS} metrics. The best-performing models for a certain type are selected based on the \ac {CRPS}.\relax }}{44}{table.caption.28}\protected@file@percent } -\newlabel{tab:model_comparison}{{10}{44}{Comparison of the different models using the \ac {MSE}, \ac {MAE} and \ac {CRPS} metrics. The best-performing models for a certain type are selected based on the \ac {CRPS}.\relax }{table.caption.28}{}} -\ACRO{recordpage}{NAQR}{45}{1}{44} +\@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces The plots show the generations for the examples from the test set. The diffusion model used to generate the samples consists of 2 layers with a hidden size of 1024. The number of denoising steps is set to 300. The confidence intervals shown in the plots are made using 100 samples. All the available input features are used which includes the \acs {NRV}, Load, Wind, \acs {PV} and \acs {NP} data.\relax }}{43}{figure.caption.26}\protected@file@percent } +\newlabel{fig:diffusion_test_set_examples}{{17}{43}{The plots show the generations for the examples from the test set. The diffusion model used to generate the samples consists of 2 layers with a hidden size of 1024. The number of denoising steps is set to 300. The confidence intervals shown in the plots are made using 100 samples. All the available input features are used which includes the \acs {NRV}, Load, Wind, \acs {PV} and \acs {NP} data.\relax }{figure.caption.26}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {18}{\ignorespaces The plots show the generations for the first examples from the test set. Two diffusion models with 2 layers and 1024 hidden units are used. The first one is only conditioned on the NRV of the previous day while the second one uses all available input features.\relax }}{44}{figure.caption.27}\protected@file@percent } +\newlabel{fig:diffusion_test_set_example_only_nrv_vs_all}{{18}{44}{The plots show the generations for the first examples from the test set. Two diffusion models with 2 layers and 1024 hidden units are used. The first one is only conditioned on the NRV of the previous day while the second one uses all available input features.\relax }{figure.caption.27}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Comparison}{44}{subsection.7.4}\protected@file@percent } \ACRO{recordpage}{MSE}{45}{1}{44} \ACRO{recordpage}{MAE}{45}{1}{44} \ACRO{recordpage}{CRPS}{45}{1}{44} -\ACRO{recordpage}{MSE}{45}{1}{44} -\ACRO{recordpage}{MAE}{45}{1}{44} -\ACRO{recordpage}{MSE}{45}{1}{44} -\ACRO{recordpage}{MAE}{45}{1}{44} -\@writefile{lof}{\contentsline {figure}{\numberline {19}{\ignorespaces Comparison of the autoregressive models with the diffusion model\relax }}{46}{figure.caption.29}\protected@file@percent } -\newlabel{fig:ar_linear_gru_diffusion_comparison}{{19}{46}{Comparison of the autoregressive models with the diffusion model\relax }{figure.caption.29}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {20}{\ignorespaces Comparison of the non-autoregressive models with the diffusion model\relax }}{47}{figure.caption.30}\protected@file@percent } -\newlabel{fig:naqr_linear_gru_diffusion_comparison}{{20}{47}{Comparison of the non-autoregressive models with the diffusion model\relax }{figure.caption.30}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}Policies for battery optimization}{48}{subsection.6.5}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.1}Baselines}{48}{subsubsection.6.5.1}\protected@file@percent } -\ACRO{recordpage}{NRV}{49}{1}{48} +\@writefile{lot}{\contentsline {table}{\numberline {10}{\ignorespaces Comparison of the different models using the \ac {MSE}, \ac {MAE} and \ac {CRPS} metrics. The best-performing models for a certain type are selected based on the \ac {CRPS}.\relax }}{45}{table.caption.28}\protected@file@percent } +\newlabel{tab:model_comparison}{{10}{45}{Comparison of the different models using the \ac {MSE}, \ac {MAE} and \ac {CRPS} metrics. The best-performing models for a certain type are selected based on the \ac {CRPS}.\relax }{table.caption.28}{}} +\ACRO{recordpage}{NAQR}{46}{1}{45} +\ACRO{recordpage}{MSE}{46}{1}{45} +\ACRO{recordpage}{MAE}{46}{1}{45} +\ACRO{recordpage}{CRPS}{46}{1}{45} +\ACRO{recordpage}{MSE}{46}{1}{45} +\ACRO{recordpage}{MAE}{46}{1}{45} +\ACRO{recordpage}{MSE}{46}{1}{45} +\ACRO{recordpage}{MAE}{46}{1}{45} +\@writefile{lof}{\contentsline {figure}{\numberline {19}{\ignorespaces Comparison of the autoregressive models with the diffusion model\relax }}{47}{figure.caption.29}\protected@file@percent } +\newlabel{fig:ar_linear_gru_diffusion_comparison}{{19}{47}{Comparison of the autoregressive models with the diffusion model\relax }{figure.caption.29}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {20}{\ignorespaces Comparison of the non-autoregressive models with the diffusion model\relax }}{48}{figure.caption.30}\protected@file@percent } +\newlabel{fig:naqr_linear_gru_diffusion_comparison}{{20}{48}{Comparison of the non-autoregressive models with the diffusion model\relax }{figure.caption.30}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.5}Policies for battery optimization}{49}{subsection.7.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.1}Baselines}{49}{subsubsection.7.5.1}\protected@file@percent } \ACRO{recordpage}{NRV}{50}{1}{49} -\ACRO{recordpage}{NRV}{50}{1}{49} -\ACRO{recordpage}{NRV}{50}{1}{49} -\ACRO{recordpage}{NRV}{50}{1}{49} -\ACRO{recordpage}{NRV}{50}{1}{49} -\ACRO{recordpage}{NRV}{50}{1}{49} -\ACRO{recordpage}{NRV}{50}{1}{49} -\ACRO{recordpage}{NRV}{50}{1}{49} -\@writefile{lot}{\contentsline {table}{\numberline {11}{\ignorespaces Results of the baseline policies on the test set. \relax }}{49}{table.caption.31}\protected@file@percent } -\newlabel{tab:fixed_thresholds}{{11}{49}{Results of the baseline policies on the test set. \relax }{table.caption.31}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.2}Policy using generated NRV samples}{49}{subsubsection.6.5.2}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {21}{\ignorespaces CRPS and profit on the validation set during training.\relax }}{50}{figure.caption.32}\protected@file@percent } -\newlabel{fig:early_stopping}{{21}{50}{CRPS and profit on the validation set during training.\relax }{figure.caption.32}{}} -\@writefile{lot}{\contentsline {table}{\numberline {12}{\ignorespaces Comparison of AQR: Linear, Non-linear and GRU models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }}{51}{table.caption.33}\protected@file@percent } -\newlabel{tab:aqr_models_comparison}{{12}{51}{Comparison of AQR: Linear, Non-linear and GRU models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }{table.caption.33}{}} -\@writefile{lot}{\contentsline {table}{\numberline {13}{\ignorespaces Comparison of diffusion models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }}{52}{table.caption.34}\protected@file@percent } -\newlabel{tab:diffusion_policy_comparison}{{13}{52}{Comparison of diffusion models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }{table.caption.34}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {22}{\ignorespaces Comparison of the two samples from the model with the lowest CRPS and the model with the highest profit. \relax }}{52}{figure.caption.35}\protected@file@percent } -\newlabel{fig:diffusion_policy_comparison_high_low_crps}{{22}{52}{Comparison of the two samples from the model with the lowest CRPS and the model with the highest profit. \relax }{figure.caption.35}{}} -\@writefile{lot}{\contentsline {table}{\numberline {14}{\ignorespaces Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.\relax }}{53}{table.caption.36}\protected@file@percent } -\newlabel{tab:policy_comparison}{{14}{53}{Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.\relax }{table.caption.36}{}} -\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{53}{section.7}\protected@file@percent } +\ACRO{recordpage}{NRV}{51}{1}{50} +\ACRO{recordpage}{NRV}{51}{1}{50} +\ACRO{recordpage}{NRV}{51}{1}{50} +\ACRO{recordpage}{NRV}{51}{1}{50} +\ACRO{recordpage}{NRV}{51}{1}{50} +\ACRO{recordpage}{NRV}{51}{1}{50} +\ACRO{recordpage}{NRV}{51}{1}{50} +\ACRO{recordpage}{NRV}{51}{1}{50} +\@writefile{lot}{\contentsline {table}{\numberline {11}{\ignorespaces Results of the baseline policies on the test set. \relax }}{50}{table.caption.31}\protected@file@percent } +\newlabel{tab:fixed_thresholds}{{11}{50}{Results of the baseline policies on the test set. \relax }{table.caption.31}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.2}Policy using generated NRV samples}{50}{subsubsection.7.5.2}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {21}{\ignorespaces CRPS and profit on the validation set during training.\relax }}{51}{figure.caption.32}\protected@file@percent } +\newlabel{fig:early_stopping}{{21}{51}{CRPS and profit on the validation set during training.\relax }{figure.caption.32}{}} +\@writefile{lot}{\contentsline {table}{\numberline {12}{\ignorespaces Comparison of AQR: Linear, Non-linear and GRU models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }}{52}{table.caption.33}\protected@file@percent } +\newlabel{tab:aqr_models_comparison}{{12}{52}{Comparison of AQR: Linear, Non-linear and GRU models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }{table.caption.33}{}} +\@writefile{lot}{\contentsline {table}{\numberline {13}{\ignorespaces Comparison of diffusion models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }}{53}{table.caption.34}\protected@file@percent } +\newlabel{tab:diffusion_policy_comparison}{{13}{53}{Comparison of diffusion models using different hyperparameters. Early stopping is done based on the profit using the validation set.\relax }{table.caption.34}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {22}{\ignorespaces Comparison of the two samples from the model with the lowest CRPS and the model with the highest profit. \relax }}{53}{figure.caption.35}\protected@file@percent } +\newlabel{fig:diffusion_policy_comparison_high_low_crps}{{22}{53}{Comparison of the two samples from the model with the lowest CRPS and the model with the highest profit. \relax }{figure.caption.35}{}} +\@writefile{lot}{\contentsline {table}{\numberline {14}{\ignorespaces Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.\relax }}{54}{table.caption.36}\protected@file@percent } +\newlabel{tab:policy_comparison}{{14}{54}{Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.\relax }{table.caption.36}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {23}{\ignorespaces Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.\relax }}{55}{figure.caption.37}\protected@file@percent } +\newlabel{fig:profit_comparison}{{23}{55}{Comparison of the profit achieved by the baselines and the best-performing models. The improvement is calculated compared to the baseline that uses the NRV of yesterday as a prediction.\relax }{figure.caption.37}{}} +\@writefile{toc}{\contentsline {section}{\numberline {8}Conclusion}{55}{section.8}\protected@file@percent } \bibstyle{unsrtnat} \bibdata{references} \bibcite{commission_for_electricity_and_gas_regulation_creg_study_2023}{{1}{}{{Commission for Electricity and Gas Regulation (CREG)}}{{}}} @@ -192,15 +195,15 @@ \ACRO{usage}{ACE=={0}} \ACRO{usage}{MIP=={0}} \ACRO{usage}{MDP=={0}} -\ACRO{pages}{BRP=={5@1@4}} -\ACRO{pages}{TSO=={3@1@2|7@1@6}} -\ACRO{pages}{FCR=={7@1@6}} -\ACRO{pages}{BSP=={7@1@6}} -\ACRO{pages}{aFRR=={7@1@6}} -\ACRO{pages}{mFRR=={7@1@6}} -\ACRO{pages}{NAQR=={45@1@44}} -\ACRO{pages}{CRPS=={44@1@43|45@1@44}} -\ACRO{pages}{MSE=={44@1@43|45@1@44}} -\ACRO{pages}{MAE=={44@1@43|45@1@44}} -\ACRO{pages}{NRV=={3@1@2|4@1@3|49@1@48|50@1@49}} -\gdef \@abspage@last{60} +\ACRO{pages}{BRP=={6@1@5}} +\ACRO{pages}{TSO=={4@1@3|8@1@7}} +\ACRO{pages}{FCR=={8@1@7}} +\ACRO{pages}{BSP=={8@1@7}} +\ACRO{pages}{aFRR=={8@1@7}} +\ACRO{pages}{mFRR=={8@1@7}} +\ACRO{pages}{NAQR=={46@1@45}} +\ACRO{pages}{CRPS=={45@1@44|46@1@45}} +\ACRO{pages}{MSE=={45@1@44|46@1@45}} +\ACRO{pages}{MAE=={45@1@44|46@1@45}} +\ACRO{pages}{NRV=={4@1@3|5@1@4|50@1@49|51@1@50}} +\gdef \@abspage@last{63} diff --git a/Reports/Thesis/verslag.log b/Reports/Thesis/verslag.log index c03e6d7..6107dff 100644 --- a/Reports/Thesis/verslag.log +++ b/Reports/Thesis/verslag.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 20 MAY 2024 21:02 +This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 20 MAY 2024 23:50 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -852,7 +852,7 @@ File: T1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for T1/Lin ) LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be (Font) scaled to size 12.0pt on input line 135. - (./verslag.aux (./sections/introduction.aux) (./sections/background.aux) (./sections/policies.aux) (./sections/literature_study.aux) (./sections/appendix.aux)) + (./verslag.aux (./sections/abstract.aux) (./sections/introduction.aux) (./sections/background.aux) (./sections/policies.aux) (./sections/literature_study.aux) (./sections/appendix.aux)) \openout1 = `verslag.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 135. @@ -997,7 +997,7 @@ LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be pdfTeX warning: pdflatex (file ./ea-en.pdf): PDF inclusion: found PDF version <1.7>, but at most version <1.5> allowed - + File: ea-en.pdf Graphic file (type pdf) Package pdftex.def Info: ea-en.pdf used on input line 143. @@ -1073,7 +1073,7 @@ Overfull \hbox (33.0pt too wide) in paragraph at lines 143--143 pdfTeX warning: pdflatex (file ./ugent-en.pdf): PDF inclusion: found PDF version <1.7>, but at most version <1.5> allowed - + File: ugent-en.pdf Graphic file (type pdf) Package pdftex.def Info: ugent-en.pdf used on input line 143. @@ -1099,49 +1099,56 @@ l.152 \newpage [1 {/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc}] -\openout2 = `sections/introduction.aux'. +\openout2 = `sections/abstract.aux'. - (./sections/introduction.tex) [2 - -] [3] -\openout2 = `sections/background.aux'. - - (./sections/background.tex [4 - - - -] [5] -LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF on input line 60. + (./sections/abstract.tex +LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF on input line 2. (/usr/local/texlive/2023/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd File: TS1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for TS1/LinuxLibertineT-TLF. ) LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 12.0pt on input line 60. - [6{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc}] [7{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMI.enc}] - +(Font) scaled to size 12.0pt on input line 2. +) [2 + +{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc}] +\openout2 = `sections/introduction.aux'. + + (./sections/introduction.tex) [3 + + + +] [4] +\openout2 = `sections/background.aux'. + + (./sections/background.tex [5 + + + +] [6] [7] [8{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMI.enc}] + File: images/bid_ladder.png Graphic file (type png) Package pdftex.def Info: images/bid_ladder.png used on input line 98. (pdftex.def) Requested size: 364.19667pt x 273.15117pt. - [8 <./images/bid_ladder.png>] + [9 <./images/bid_ladder.png>] Overfull \hbox (4.77582pt too wide) in paragraph at lines 112--114 []\T1/LinuxLibertineT-TLF/m/n/12 There ex-ist many dif-fer-ent types of gen-er-a-tive mod-els. Some of the most pop-u-lar ones are: [] LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be (Font) scaled to size 14.4pt on input line 120. - + File: images/quantile_regression/cdf_quantiles_example.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/cdf_quantiles_example.png used on input line 129. (pdftex.def) Requested size: 364.19667pt x 218.51653pt. -[9] - +[10] + File: images/quantile_regression/reconstructed_cdf.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/reconstructed_cdf.png used on input line 138. (pdftex.def) Requested size: 364.19667pt x 218.51653pt. - [10 <./images/quantile_regression/cdf_quantiles_example.png>] + [11 <./images/quantile_regression/cdf_quantiles_example.png>] Underfull \hbox (badness 10000) in paragraph at lines 145--146 [] @@ -1150,25 +1157,25 @@ LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be (Font) scaled to size 8.0pt on input line 148. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be (Font) scaled to size 6.0pt on input line 148. -[11{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusEX.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusSYM.enc} <./images/quantile_regression/reconstructed_cdf.png>] +[12{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusEX.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusSYM.enc} <./images/quantile_regression/reconstructed_cdf.png>] Overfull \hbox (17.3759pt too wide) in paragraph at lines 179--180 \T1/LinuxLibertineT-TLF/m/n/12 Generative mod-els can be broadly clas-si-fied into two types: au-tore-gres-sive and non-autoregressive [] -[12] [13] - +[13] [14] + File: images/quantile_regression/rnn/RNN_diagram.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/rnn/RNN_diagram.png used on input line 233. (pdftex.def) Requested size: 364.19667pt x 156.63872pt. - [14] [15 <./images/quantile_regression/rnn/RNN_diagram.png>] - + [15] [16 <./images/quantile_regression/rnn/RNN_diagram.png>] + File: images/diffusion/Generation-with-Diffusion-Models.png Graphic file (type png) Package pdftex.def Info: images/diffusion/Generation-with-Diffusion-Models.png used on input line 259. (pdftex.def) Requested size: 364.19667pt x 90.05513pt. - [16{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBMR.enc} <./images/diffusion/Generation-with-Diffusion-Models.png>] [17{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBB.enc}] - + [17{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBMR.enc} <./images/diffusion/Generation-with-Diffusion-Models.png>] [18{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBB.enc}] + File: images/diffusion/diffusion_graphical_model.png Graphic file (type png) Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on input line 302. @@ -1176,83 +1183,83 @@ Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on LaTeX Font Info: Trying to load font information for U+bbm on input line 330. (/usr/local/texlive/2023/texmf-dist/tex/latex/bbm-macros/ubbm.fd File: ubbm.fd 1999/03/15 V 1.2 Font definition for bbm font - TH -) [18 <./images/diffusion/diffusion_graphical_model.png>] - +) [19 <./images/diffusion/diffusion_graphical_model.png>] + File: images/quantile_regression/crps_visualization.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/crps_visualization.png used on input line 347. (pdftex.def) Requested size: 455.24411pt x 273.14896pt. -) [19 <./images/quantile_regression/crps_visualization.png>] +) [20 <./images/quantile_regression/crps_visualization.png>] \openout2 = `sections/policies.aux'. - (./sections/policies.tex) [20 + (./sections/policies.tex) [21 -] [21] +] [22] \openout2 = `sections/literature_study.aux'. - (./sections/literature_study.tex [22 + (./sections/literature_study.tex [23 -]) [23] (./sections/results.tex [24 +]) [24] (./sections/results.tex [25 -] (./sections/results/models/linear.tex [25] [26] - +] (./sections/results/models/linear.tex [26] [27] + File: images/quantile_regression/nrv_mean_std_over_quarter.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/nrv_mean_std_over_quarter.png used on input line 40. (pdftex.def) Requested size: 455.24411pt x 273.14896pt. - [27] + [28] -LaTeX Warning: Reference `fig:autoregressive_linear_model_samples' on page 28 undefined on input line 77. +LaTeX Warning: Reference `fig:autoregressive_linear_model_samples' on page 29 undefined on input line 77. -[28 <./images/quantile_regression/nrv_mean_std_over_quarter.png>] - +[29 <./images/quantile_regression/nrv_mean_std_over_quarter.png>] + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 82. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png used on input line 86. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 89. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_4320.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_4320.png used on input line 93. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 96. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_6336.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_6336.png used on input line 100. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_7008.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_7008.png used on input line 103. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be (Font) scaled to size 10.95pt on input line 104. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_7008.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_7008.png used on input line 108. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - [29 <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_4320.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_6336.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_7008.png>] + [30 <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_4320.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_6336.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_7008.png>] Overfull \hbox (11.8445pt too wide) in paragraph at lines 118--119 \T1/LinuxLibertineT-TLF/m/n/12 sam-ples of the au-tore-gres-sive model are more re-al-is-tic than the sam-ples of the non-autoregressive [] @@ -1262,42 +1269,42 @@ Underfull \hbox (badness 10000) in paragraph at lines 118--119 [] - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_864_samples.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_864_samples.png used on input line 123. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_864_samples.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_864_samples.png used on input line 127. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_4320_samples.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_4320_samples.png used on input line 130. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_4320_samples.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_4320_samples.png used on input line 135. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Training.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Training.jpeg used on input line 147. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Test.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Test.jpeg used on input line 152. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Training.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Training.jpeg used on input line 157. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Test.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Test.jpeg used on input line 162. @@ -1307,64 +1314,64 @@ Underfull \hbox (badness 4582) in paragraph at lines 165--165 []\T1/LinuxLibertineT-TLF/m/n/12 Figure 11: |Over/underestimation of the quan-tiles for the au-tore-gres-sive and non- [] -[30 <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_864_samples.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_864_samples.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_4320_samples.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_4320_samples.png>]) (./sections/results/models/non-linear.tex [31 <./images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Test.jpeg>] [32{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}] - +[31 <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_864_samples.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_864_samples.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_4320_samples.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_4320_samples.png>]) (./sections/results/models/non-linear.tex [32 <./images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Test.jpeg>] [33{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}] + File: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 78. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 82. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 85. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 89. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 92. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 96. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png used on input line 99. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png used on input line 104. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - [33] - + [34] + File: images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg used on input line 117. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg used on input line 122. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg used on input line 127. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg used on input line 132. @@ -1374,64 +1381,64 @@ Underfull \hbox (badness 4582) in paragraph at lines 135--135 []\T1/LinuxLibertineT-TLF/m/n/12 Figure 13: |Over/underestimation of the quan-tiles for the au-tore-gres-sive and non- [] -) [34 <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png>] (./sections/results/models/gru.tex [35 <./images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg>] [36] - +) [35 <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png>] (./sections/results/models/gru.tex [36 <./images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg>] [37] + File: images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 74. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 78. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 81. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 85. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 88. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 92. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_7008.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_7008.png used on input line 95. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_7008.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_7008.png used on input line 100. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - [37] - + [38] + File: images/quantile_regression/quantile_performance/AQR_GRU_QP_Train.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_GRU_QP_Train.jpeg used on input line 113. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/AQR_GRU_QP_Test.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_GRU_QP_Test.jpeg used on input line 118. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/NAQR_GRU_QP_Train.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_GRU_QP_Train.jpeg used on input line 123. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/NAQR_GRU_QP_Test.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_GRU_QP_Test.jpeg used on input line 128. @@ -1441,23 +1448,23 @@ Underfull \hbox (badness 4582) in paragraph at lines 131--131 []\T1/LinuxLibertineT-TLF/m/n/12 Figure 15: |Over/underestimation of the quan-tiles for the au-tore-gres-sive and non- [] -) [38 <./images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_7008.png>] (./sections/results/models/diffusion.tex [39 <./images/quantile_regression/quantile_performance/AQR_GRU_QP_Train.jpeg> <./images/quantile_regression/quantile_performance/AQR_GRU_QP_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_GRU_QP_Train.jpeg> <./images/quantile_regression/quantile_performance/NAQR_GRU_QP_Test.jpeg>] - +) [39 <./images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/aqr_gru_model_examples/AQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_gru_model_examples/NAQR_GRU_NRV_Load_Wind_PV_NP_QE-Sample_7008.png>] (./sections/results/models/diffusion.tex [40 <./images/quantile_regression/quantile_performance/AQR_GRU_QP_Train.jpeg> <./images/quantile_regression/quantile_performance/AQR_GRU_QP_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_GRU_QP_Train.jpeg> <./images/quantile_regression/quantile_performance/NAQR_GRU_QP_Test.jpeg>] + File: images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg used on input line 18. (pdftex.def) Requested size: 204.85846pt x 102.04892pt. - + File: images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg used on input line 20. (pdftex.def) Requested size: 204.85846pt x 102.04892pt. - + File: images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg used on input line 24. (pdftex.def) Requested size: 204.85846pt x 102.04892pt. - + File: images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg used on input line 27. @@ -1466,32 +1473,32 @@ Package pdftex.def Info: images/diffusion/results/intermediates/Testing Intermed LaTeX Warning: `h' float specifier changed to `ht'. -[40] +[41] Overfull \vbox (38.38634pt too high) has occurred while \output is active [] - [41 <./images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg> <./images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg> <./images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg> <./images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg>] - + [42 <./images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg> <./images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg> <./images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg> <./images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg>] + File: images/diffusion/results/samples/Diffusion_Test_Example_864.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_864.jpeg used on input line 87. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - + File: images/diffusion/results/samples/Diffusion_Test_Example_4320.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_4320.jpeg used on input line 91. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - + File: images/diffusion/results/samples/Diffusion_Test_Example_6336.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_6336.jpeg used on input line 95. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - + File: images/diffusion/results/samples/Diffusion_Test_Example_7008.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_7008.jpeg used on input line 99. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - [42 <./images/diffusion/results/samples/Diffusion_Test_Example_864.jpeg> <./images/diffusion/results/samples/Diffusion_Test_Example_4320.jpeg> <./images/diffusion/results/samples/Diffusion_Test_Example_6336.jpeg> <./images/diffusion/results/samples/Diffusion_Test_Example_7008.jpeg>] - + [43 <./images/diffusion/results/samples/Diffusion_Test_Example_864.jpeg> <./images/diffusion/results/samples/Diffusion_Test_Example_4320.jpeg> <./images/diffusion/results/samples/Diffusion_Test_Example_6336.jpeg> <./images/diffusion/results/samples/Diffusion_Test_Example_7008.jpeg>] + File: images/diffusion/results/samples/Diffusion_Test_Example_864_Only_NRV.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_864_Only_NRV.jpeg used on input line 110. @@ -1500,7 +1507,7 @@ File: images/diffusion/results/samples/Diffusion_Test_Example_864.jpeg Graphic f Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_864.jpeg used on input line 114. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - + File: images/diffusion/results/samples/Diffusion_Test_Example_4320_Only_NRV.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_4320_Only_NRV.jpeg used on input line 118. @@ -1509,7 +1516,7 @@ File: images/diffusion/results/samples/Diffusion_Test_Example_4320.jpeg Graphic Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_4320.jpeg used on input line 123. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. -) (./sections/results/models/comparison.tex [43 <./images/diffusion/results/samples/Diffusion_Test_Example_864_Only_NRV.jpeg> <./images/diffusion/results/samples/Diffusion_Test_Example_4320_Only_NRV.jpeg>] [44] [45] +) (./sections/results/models/comparison.tex [44 <./images/diffusion/results/samples/Diffusion_Test_Example_864_Only_NRV.jpeg> <./images/diffusion/results/samples/Diffusion_Test_Example_4320_Only_NRV.jpeg>] [45] [46] File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 56. @@ -1638,9 +1645,9 @@ File: images/diffusion/results/samples/Diffusion_Test_Example_7008.jpeg Graphic Package pdftex.def Info: images/diffusion/results/samples/Diffusion_Test_Example_7008.jpeg used on input line 201. (pdftex.def) Requested size: 172.99498pt x 86.16971pt. - [46 + [47 -] [47]) (./sections/results/policies/baselines.tex [48 +] [48]) (./sections/results/policies/baselines.tex [49 ] Underfull \hbox (badness 10000) in paragraph at lines 6--7 @@ -1649,39 +1656,45 @@ Underfull \hbox (badness 10000) in paragraph at lines 6--7 LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/b/n' will be (Font) scaled to size 12.0pt on input line 12. -) (./sections/results/policies/nrv_samples_policy.tex [49{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_7f4ce4.enc}] - +) (./sections/results/policies/nrv_samples_policy.tex [50{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_7f4ce4.enc}] + File: images/diffusion/policies/comparison/crps.png Graphic file (type png) Package pdftex.def Info: images/diffusion/policies/comparison/crps.png used on input line 12. (pdftex.def) Requested size: 223.07211pt x 185.89607pt. - + File: images/diffusion/policies/comparison/profit.png Graphic file (type png) Package pdftex.def Info: images/diffusion/policies/comparison/profit.png used on input line 17. (pdftex.def) Requested size: 223.07211pt x 185.89607pt. - [50 <./images/diffusion/policies/comparison/crps.png> <./images/diffusion/policies/comparison/profit.png>] [51] - + [51 <./images/diffusion/policies/comparison/crps.png> <./images/diffusion/policies/comparison/profit.png>] [52] + File: images/diffusion/policies/comparison/Testing_864_Low_CRPS.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/policies/comparison/Testing_864_Low_CRPS.jpeg used on input line 108. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - + File: images/diffusion/policies/comparison/Testing_864_High_CRPS.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/policies/comparison/Testing_864_High_CRPS.jpeg used on input line 112. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - + File: images/diffusion/policies/comparison/Testing_7008_Low_CRPS.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/policies/comparison/Testing_7008_Low_CRPS.jpeg used on input line 115. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - + File: images/diffusion/policies/comparison/Testing_7008_High_CRPS.jpeg Graphic file (type jpg) Package pdftex.def Info: images/diffusion/policies/comparison/Testing_7008_High_CRPS.jpeg used on input line 120. (pdftex.def) Requested size: 223.07211pt x 111.11894pt. - [52 <./images/diffusion/policies/comparison/Testing_864_Low_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_864_High_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_7008_Low_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_7008_High_CRPS.jpeg>])) [53] [54] [55] (./verslag.bbl + [53 <./images/diffusion/policies/comparison/Testing_864_Low_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_864_High_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_7008_Low_CRPS.jpeg> <./images/diffusion/policies/comparison/Testing_7008_High_CRPS.jpeg>] [54] + +File: images/comparison/final_comparison.png Graphic file (type png) + +Package pdftex.def Info: images/comparison/final_comparison.png used on input line 171. +(pdftex.def) Requested size: 364.19667pt x 258.00565pt. +)) (./sections/conclusion.tex [55 <./images/comparison/final_comparison.png>]) [56] [57] [58] (./verslag.bbl LaTeX Font Info: Trying to load font information for T1+LinuxLibertineMonoT-TLF on input line 11. (/usr/local/texlive/2023/texmf-dist/tex/latex/libertine/T1LinuxLibertineMonoT-TLF.fd File: T1LinuxLibertineMonoT-TLF.fd 2019/05/20 (autoinst) Font definitions for T1/LinuxLibertineMonoT-TLF. @@ -1750,12 +1763,12 @@ Underfull \hbox (badness 1635) in paragraph at lines 49--53 | [] | [] | []\T1/LinuxLibertineT-TLF/m/n/12 , vol-ume 37 of | [] | [] | [] | [] | [], [] -[56{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_dhi6qf.enc}] +[59{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_dhi6qf.enc}] Underfull \hbox (badness 1430) in paragraph at lines 92--98 \T1/LinuxLibertineT-TLF/m/n/12 and es-ti-ma-tion. 102(477):359--378. ISSN 0162-1459, 1537-274X. doi: $10 . 1198 / [] -[57] +[60] Underfull \hbox (badness 2134) in paragraph at lines 141--147 \T1/LinuxLibertineT-TLF/m/n/12 117871$. URL [][]$\T1/LinuxLibertineMonoT-TLF/regular/n/12 https : / / linkinghub . elsevier . com / retrieve / pii / [] @@ -1795,29 +1808,29 @@ Underfull \hbox (badness 10000) in paragraph at lines 186--188 \T1/LinuxLibertineMonoT-TLF/regular/n/12 elia . be / explore / dataset / ods022 / information / ?sort = [] -[58]) [59] +[61]) [62] \openout2 = `sections/appendix.aux'. - (./sections/appendix.tex) (./verslag.aux (./sections/introduction.aux) (./sections/background.aux) (./sections/policies.aux) (./sections/literature_study.aux) (./sections/appendix.aux)) + (./sections/appendix.tex) (./verslag.aux (./sections/abstract.aux) (./sections/introduction.aux) (./sections/background.aux) (./sections/policies.aux) (./sections/literature_study.aux) (./sections/appendix.aux)) LaTeX Warning: There were undefined references. Package rerunfilecheck Info: File `verslag.out' has not changed. -(rerunfilecheck) Checksum: 784D99996779FF6E2C9BD834E9D4C8C1;5016. +(rerunfilecheck) Checksum: 6DD60247926047F8669021CF963F7910;5100. ) Here is how much of TeX's memory you used: - 36268 strings out of 476025 - 803926 string characters out of 5790017 + 36316 strings out of 476025 + 805419 string characters out of 5790017 1883388 words of memory out of 5000000 - 55839 multiletter control sequences out of 15000+600000 - 614518 words of font info for 125 fonts, out of 8000000 for 9000 + 55871 multiletter control sequences out of 15000+600000 + 614521 words of font info for 125 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 84i,16n,131p,1821b,765s stack positions out of 10000i,1000n,20000p,200000b,200000s + 84i,16n,131p,2485b,765s stack positions out of 10000i,1000n,20000p,200000b,200000s -Output written on verslag.pdf (60 pages, 9134327 bytes). +Output written on verslag.pdf (63 pages, 9213423 bytes). PDF statistics: - 883 PDF objects out of 1000 (max. 8388607) - 683 compressed objects within 7 object streams - 171 named destinations out of 1000 (max. 500000) - 607 words of extra memory for PDF output out of 10000 (max. 10000000) + 907 PDF objects out of 1000 (max. 8388607) + 701 compressed objects within 8 object streams + 176 named destinations out of 1000 (max. 500000) + 620 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/Reports/Thesis/verslag.out b/Reports/Thesis/verslag.out index 1a8f596..137479f 100644 --- a/Reports/Thesis/verslag.out +++ b/Reports/Thesis/verslag.out @@ -1,33 +1,34 @@ -\BOOKMARK [1][-]{section.1}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 1 -\BOOKMARK [1][-]{section.2}{\376\377\000E\000l\000e\000c\000t\000r\000i\000c\000i\000t\000y\000\040\000m\000a\000r\000k\000e\000t}{}% 2 -\BOOKMARK [1][-]{section.3}{\376\377\000G\000e\000n\000e\000r\000a\000t\000i\000v\000e\000\040\000m\000o\000d\000e\000l\000i\000n\000g}{}% 3 -\BOOKMARK [2][-]{subsection.3.1}{\376\377\000Q\000u\000a\000n\000t\000i\000l\000e\000\040\000R\000e\000g\000r\000e\000s\000s\000i\000o\000n}{section.3}% 4 -\BOOKMARK [2][-]{subsection.3.2}{\376\377\000A\000u\000t\000o\000r\000e\000g\000r\000e\000s\000s\000i\000v\000e\000\040\000v\000s\000\040\000N\000o\000n\000-\000A\000u\000t\000o\000r\000e\000g\000r\000e\000s\000s\000i\000v\000e\000\040\000m\000o\000d\000e\000l\000s}{section.3}% 5 -\BOOKMARK [2][-]{subsection.3.3}{\376\377\000M\000o\000d\000e\000l\000\040\000T\000y\000p\000e\000s}{section.3}% 6 -\BOOKMARK [3][-]{subsubsection.3.3.1}{\376\377\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.3.3}% 7 -\BOOKMARK [3][-]{subsubsection.3.3.2}{\376\377\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.3.3}% 8 -\BOOKMARK [3][-]{subsubsection.3.3.3}{\376\377\000R\000e\000c\000u\000r\000r\000e\000n\000t\000\040\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000\040\000\050\000R\000N\000N\000\051}{subsection.3.3}% 9 -\BOOKMARK [2][-]{subsection.3.4}{\376\377\000D\000i\000f\000f\000u\000s\000i\000o\000n\000\040\000m\000o\000d\000e\000l\000s}{section.3}% 10 -\BOOKMARK [3][-]{subsubsection.3.4.1}{\376\377\000O\000v\000e\000r\000v\000i\000e\000w}{subsection.3.4}% 11 -\BOOKMARK [3][-]{subsubsection.3.4.2}{\376\377\000A\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n\000s}{subsection.3.4}% 12 -\BOOKMARK [3][-]{subsubsection.3.4.3}{\376\377\000G\000e\000n\000e\000r\000a\000t\000i\000o\000n\000\040\000p\000r\000o\000c\000e\000s\000s}{subsection.3.4}% 13 -\BOOKMARK [2][-]{subsection.3.5}{\376\377\000E\000v\000a\000l\000u\000a\000t\000i\000o\000n}{section.3}% 14 -\BOOKMARK [1][-]{section.4}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s}{}% 15 -\BOOKMARK [2][-]{subsection.4.1}{\376\377\000B\000a\000s\000e\000l\000i\000n\000e\000s}{section.4}% 16 -\BOOKMARK [2][-]{subsection.4.2}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000b\000a\000s\000e\000d\000\040\000o\000n\000\040\000N\000R\000V\000\040\000g\000e\000n\000e\000r\000a\000t\000i\000o\000n\000s}{section.4}% 17 -\BOOKMARK [1][-]{section.5}{\376\377\000L\000i\000t\000e\000r\000a\000t\000u\000r\000e\000\040\000S\000t\000u\000d\000y}{}% 18 -\BOOKMARK [2][-]{subsection.5.1}{\376\377\000D\000a\000y\000-\000A\000h\000e\000a\000d\000\040\000E\000l\000e\000c\000t\000r\000i\000c\000i\000t\000y\000\040\000P\000r\000i\000c\000e\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section.5}% 19 -\BOOKMARK [2][-]{subsection.5.2}{\376\377\000I\000m\000b\000a\000l\000a\000n\000c\000e\000\040\000P\000r\000i\000c\000e\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section.5}% 20 -\BOOKMARK [2][-]{subsection.5.3}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000f\000o\000r\000\040\000B\000a\000t\000t\000e\000r\000y\000\040\000O\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n}{section.5}% 21 -\BOOKMARK [1][-]{section.6}{\376\377\000R\000e\000s\000u\000l\000t\000s\000\040\000\046\000\040\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n}{}% 22 -\BOOKMARK [2][-]{subsection.6.1}{\376\377\000D\000a\000t\000a}{section.6}% 23 -\BOOKMARK [2][-]{subsection.6.2}{\376\377\000Q\000u\000a\000n\000t\000i\000l\000e\000\040\000R\000e\000g\000r\000e\000s\000s\000i\000o\000n}{section.6}% 24 -\BOOKMARK [3][-]{subsubsection.6.2.1}{\376\377\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.6.2}% 25 -\BOOKMARK [3][-]{subsubsection.6.2.2}{\376\377\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.6.2}% 26 -\BOOKMARK [3][-]{subsubsection.6.2.3}{\376\377\000G\000R\000U\000\040\000M\000o\000d\000e\000l}{subsection.6.2}% 27 -\BOOKMARK [2][-]{subsection.6.3}{\376\377\000D\000i\000f\000f\000u\000s\000i\000o\000n}{section.6}% 28 -\BOOKMARK [2][-]{subsection.6.4}{\376\377\000C\000o\000m\000p\000a\000r\000i\000s\000o\000n}{section.6}% 29 -\BOOKMARK [2][-]{subsection.6.5}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000f\000o\000r\000\040\000b\000a\000t\000t\000e\000r\000y\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n}{section.6}% 30 -\BOOKMARK [3][-]{subsubsection.6.5.1}{\376\377\000B\000a\000s\000e\000l\000i\000n\000e\000s}{subsection.6.5}% 31 -\BOOKMARK [3][-]{subsubsection.6.5.2}{\376\377\000P\000o\000l\000i\000c\000y\000\040\000u\000s\000i\000n\000g\000\040\000g\000e\000n\000e\000r\000a\000t\000e\000d\000\040\000N\000R\000V\000\040\000s\000a\000m\000p\000l\000e\000s}{subsection.6.5}% 32 -\BOOKMARK [1][-]{section.7}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 33 +\BOOKMARK [1][-]{section.1}{\376\377\000A\000b\000s\000t\000r\000a\000c\000t}{}% 1 +\BOOKMARK [1][-]{section.2}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 2 +\BOOKMARK [1][-]{section.3}{\376\377\000E\000l\000e\000c\000t\000r\000i\000c\000i\000t\000y\000\040\000m\000a\000r\000k\000e\000t}{}% 3 +\BOOKMARK [1][-]{section.4}{\376\377\000G\000e\000n\000e\000r\000a\000t\000i\000v\000e\000\040\000m\000o\000d\000e\000l\000i\000n\000g}{}% 4 +\BOOKMARK [2][-]{subsection.4.1}{\376\377\000Q\000u\000a\000n\000t\000i\000l\000e\000\040\000R\000e\000g\000r\000e\000s\000s\000i\000o\000n}{section.4}% 5 +\BOOKMARK [2][-]{subsection.4.2}{\376\377\000A\000u\000t\000o\000r\000e\000g\000r\000e\000s\000s\000i\000v\000e\000\040\000v\000s\000\040\000N\000o\000n\000-\000A\000u\000t\000o\000r\000e\000g\000r\000e\000s\000s\000i\000v\000e\000\040\000m\000o\000d\000e\000l\000s}{section.4}% 6 +\BOOKMARK [2][-]{subsection.4.3}{\376\377\000M\000o\000d\000e\000l\000\040\000T\000y\000p\000e\000s}{section.4}% 7 +\BOOKMARK [3][-]{subsubsection.4.3.1}{\376\377\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.4.3}% 8 +\BOOKMARK [3][-]{subsubsection.4.3.2}{\376\377\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.4.3}% 9 +\BOOKMARK [3][-]{subsubsection.4.3.3}{\376\377\000R\000e\000c\000u\000r\000r\000e\000n\000t\000\040\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000\040\000\050\000R\000N\000N\000\051}{subsection.4.3}% 10 +\BOOKMARK [2][-]{subsection.4.4}{\376\377\000D\000i\000f\000f\000u\000s\000i\000o\000n\000\040\000m\000o\000d\000e\000l\000s}{section.4}% 11 +\BOOKMARK [3][-]{subsubsection.4.4.1}{\376\377\000O\000v\000e\000r\000v\000i\000e\000w}{subsection.4.4}% 12 +\BOOKMARK [3][-]{subsubsection.4.4.2}{\376\377\000A\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n\000s}{subsection.4.4}% 13 +\BOOKMARK [3][-]{subsubsection.4.4.3}{\376\377\000G\000e\000n\000e\000r\000a\000t\000i\000o\000n\000\040\000p\000r\000o\000c\000e\000s\000s}{subsection.4.4}% 14 +\BOOKMARK [2][-]{subsection.4.5}{\376\377\000E\000v\000a\000l\000u\000a\000t\000i\000o\000n}{section.4}% 15 +\BOOKMARK [1][-]{section.5}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s}{}% 16 +\BOOKMARK [2][-]{subsection.5.1}{\376\377\000B\000a\000s\000e\000l\000i\000n\000e\000s}{section.5}% 17 +\BOOKMARK [2][-]{subsection.5.2}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000b\000a\000s\000e\000d\000\040\000o\000n\000\040\000N\000R\000V\000\040\000g\000e\000n\000e\000r\000a\000t\000i\000o\000n\000s}{section.5}% 18 +\BOOKMARK [1][-]{section.6}{\376\377\000L\000i\000t\000e\000r\000a\000t\000u\000r\000e\000\040\000S\000t\000u\000d\000y}{}% 19 +\BOOKMARK [2][-]{subsection.6.1}{\376\377\000D\000a\000y\000-\000A\000h\000e\000a\000d\000\040\000E\000l\000e\000c\000t\000r\000i\000c\000i\000t\000y\000\040\000P\000r\000i\000c\000e\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section.6}% 20 +\BOOKMARK [2][-]{subsection.6.2}{\376\377\000I\000m\000b\000a\000l\000a\000n\000c\000e\000\040\000P\000r\000i\000c\000e\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section.6}% 21 +\BOOKMARK [2][-]{subsection.6.3}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000f\000o\000r\000\040\000B\000a\000t\000t\000e\000r\000y\000\040\000O\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n}{section.6}% 22 +\BOOKMARK [1][-]{section.7}{\376\377\000R\000e\000s\000u\000l\000t\000s\000\040\000\046\000\040\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n}{}% 23 +\BOOKMARK [2][-]{subsection.7.1}{\376\377\000D\000a\000t\000a}{section.7}% 24 +\BOOKMARK [2][-]{subsection.7.2}{\376\377\000Q\000u\000a\000n\000t\000i\000l\000e\000\040\000R\000e\000g\000r\000e\000s\000s\000i\000o\000n}{section.7}% 25 +\BOOKMARK [3][-]{subsubsection.7.2.1}{\376\377\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.7.2}% 26 +\BOOKMARK [3][-]{subsubsection.7.2.2}{\376\377\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.7.2}% 27 +\BOOKMARK [3][-]{subsubsection.7.2.3}{\376\377\000G\000R\000U\000\040\000M\000o\000d\000e\000l}{subsection.7.2}% 28 +\BOOKMARK [2][-]{subsection.7.3}{\376\377\000D\000i\000f\000f\000u\000s\000i\000o\000n}{section.7}% 29 +\BOOKMARK [2][-]{subsection.7.4}{\376\377\000C\000o\000m\000p\000a\000r\000i\000s\000o\000n}{section.7}% 30 +\BOOKMARK [2][-]{subsection.7.5}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000f\000o\000r\000\040\000b\000a\000t\000t\000e\000r\000y\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n}{section.7}% 31 +\BOOKMARK [3][-]{subsubsection.7.5.1}{\376\377\000B\000a\000s\000e\000l\000i\000n\000e\000s}{subsection.7.5}% 32 +\BOOKMARK [3][-]{subsubsection.7.5.2}{\376\377\000P\000o\000l\000i\000c\000y\000\040\000u\000s\000i\000n\000g\000\040\000g\000e\000n\000e\000r\000a\000t\000e\000d\000\040\000N\000R\000V\000\040\000s\000a\000m\000p\000l\000e\000s}{subsection.7.5}% 33 +\BOOKMARK [1][-]{section.8}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 34 diff --git a/Reports/Thesis/verslag.pdf b/Reports/Thesis/verslag.pdf index 5c66967..ae253ac 100644 Binary files a/Reports/Thesis/verslag.pdf and b/Reports/Thesis/verslag.pdf differ diff --git a/Reports/Thesis/verslag.synctex(busy) b/Reports/Thesis/verslag.synctex(busy) deleted file mode 100644 index ebaa821..0000000 Binary files a/Reports/Thesis/verslag.synctex(busy) and /dev/null differ diff --git a/Reports/Thesis/verslag.synctex.gz b/Reports/Thesis/verslag.synctex.gz new file mode 100644 index 0000000..a8953d8 Binary files /dev/null and b/Reports/Thesis/verslag.synctex.gz differ diff --git a/Reports/Thesis/verslag.tex b/Reports/Thesis/verslag.tex index dc5af22..85ff037 100644 --- a/Reports/Thesis/verslag.tex +++ b/Reports/Thesis/verslag.tex @@ -179,6 +179,7 @@ % ------------ Introduction --------- +\include{sections/abstract} \include{sections/introduction} @@ -190,6 +191,8 @@ \input{sections/results} +\input{sections/conclusion} + \newpage \printacronyms[display=all,sort=true] diff --git a/Reports/Thesis/verslag.toc b/Reports/Thesis/verslag.toc index 84caec4..5e5e610 100644 --- a/Reports/Thesis/verslag.toc +++ b/Reports/Thesis/verslag.toc @@ -1,35 +1,36 @@ \acswitchoff \babel@toc {english}{}\relax -\contentsline {section}{\numberline {1}Introduction}{2}{section.1}% -\contentsline {section}{\numberline {2}Electricity market}{4}{section.2}% -\contentsline {section}{\numberline {3}Generative modeling}{8}{section.3}% -\contentsline {subsection}{\numberline {3.1}Quantile Regression}{9}{subsection.3.1}% -\contentsline {subsection}{\numberline {3.2}Autoregressive vs Non-Autoregressive models}{12}{subsection.3.2}% -\contentsline {subsection}{\numberline {3.3}Model Types}{13}{subsection.3.3}% -\contentsline {subsubsection}{\numberline {3.3.1}Linear Model}{13}{subsubsection.3.3.1}% -\contentsline {subsubsection}{\numberline {3.3.2}Non-Linear Model}{14}{subsubsection.3.3.2}% -\contentsline {subsubsection}{\numberline {3.3.3}Recurrent Neural Network (RNN)}{14}{subsubsection.3.3.3}% -\contentsline {subsection}{\numberline {3.4}Diffusion models}{15}{subsection.3.4}% -\contentsline {subsubsection}{\numberline {3.4.1}Overview}{15}{subsubsection.3.4.1}% -\contentsline {subsubsection}{\numberline {3.4.2}Applications}{16}{subsubsection.3.4.2}% -\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{16}{subsubsection.3.4.3}% -\contentsline {subsection}{\numberline {3.5}Evaluation}{18}{subsection.3.5}% -\contentsline {section}{\numberline {4}Policies}{20}{section.4}% -\contentsline {subsection}{\numberline {4.1}Baselines}{20}{subsection.4.1}% -\contentsline {subsection}{\numberline {4.2}Policies based on NRV generations}{20}{subsection.4.2}% -\contentsline {section}{\numberline {5}Literature Study}{22}{section.5}% -\contentsline {subsection}{\numberline {5.1}Day-Ahead Electricity Price Forecasting}{22}{subsection.5.1}% -\contentsline {subsection}{\numberline {5.2}Imbalance Price Forecasting}{23}{subsection.5.2}% -\contentsline {subsection}{\numberline {5.3}Policies for Battery Optimization}{23}{subsection.5.3}% -\contentsline {section}{\numberline {6}Results \& Discussion}{24}{section.6}% -\contentsline {subsection}{\numberline {6.1}Data}{24}{subsection.6.1}% -\contentsline {subsection}{\numberline {6.2}Quantile Regression}{25}{subsection.6.2}% -\contentsline {subsubsection}{\numberline {6.2.1}Linear Model}{25}{subsubsection.6.2.1}% -\contentsline {subsubsection}{\numberline {6.2.2}Non-Linear Model}{32}{subsubsection.6.2.2}% -\contentsline {subsubsection}{\numberline {6.2.3}GRU Model}{35}{subsubsection.6.2.3}% -\contentsline {subsection}{\numberline {6.3}Diffusion}{39}{subsection.6.3}% -\contentsline {subsection}{\numberline {6.4}Comparison}{43}{subsection.6.4}% -\contentsline {subsection}{\numberline {6.5}Policies for battery optimization}{48}{subsection.6.5}% -\contentsline {subsubsection}{\numberline {6.5.1}Baselines}{48}{subsubsection.6.5.1}% -\contentsline {subsubsection}{\numberline {6.5.2}Policy using generated NRV samples}{49}{subsubsection.6.5.2}% -\contentsline {section}{\numberline {7}Conclusion}{53}{section.7}% +\contentsline {section}{\numberline {1}Abstract}{2}{section.1}% +\contentsline {section}{\numberline {2}Introduction}{3}{section.2}% +\contentsline {section}{\numberline {3}Electricity market}{5}{section.3}% +\contentsline {section}{\numberline {4}Generative modeling}{9}{section.4}% +\contentsline {subsection}{\numberline {4.1}Quantile Regression}{10}{subsection.4.1}% +\contentsline {subsection}{\numberline {4.2}Autoregressive vs Non-Autoregressive models}{13}{subsection.4.2}% +\contentsline {subsection}{\numberline {4.3}Model Types}{14}{subsection.4.3}% +\contentsline {subsubsection}{\numberline {4.3.1}Linear Model}{14}{subsubsection.4.3.1}% +\contentsline {subsubsection}{\numberline {4.3.2}Non-Linear Model}{15}{subsubsection.4.3.2}% +\contentsline {subsubsection}{\numberline {4.3.3}Recurrent Neural Network (RNN)}{15}{subsubsection.4.3.3}% +\contentsline {subsection}{\numberline {4.4}Diffusion models}{16}{subsection.4.4}% +\contentsline {subsubsection}{\numberline {4.4.1}Overview}{16}{subsubsection.4.4.1}% +\contentsline {subsubsection}{\numberline {4.4.2}Applications}{17}{subsubsection.4.4.2}% +\contentsline {subsubsection}{\numberline {4.4.3}Generation process}{17}{subsubsection.4.4.3}% +\contentsline {subsection}{\numberline {4.5}Evaluation}{19}{subsection.4.5}% +\contentsline {section}{\numberline {5}Policies}{21}{section.5}% +\contentsline {subsection}{\numberline {5.1}Baselines}{21}{subsection.5.1}% +\contentsline {subsection}{\numberline {5.2}Policies based on NRV generations}{21}{subsection.5.2}% +\contentsline {section}{\numberline {6}Literature Study}{23}{section.6}% +\contentsline {subsection}{\numberline {6.1}Day-Ahead Electricity Price Forecasting}{23}{subsection.6.1}% +\contentsline {subsection}{\numberline {6.2}Imbalance Price Forecasting}{24}{subsection.6.2}% +\contentsline {subsection}{\numberline {6.3}Policies for Battery Optimization}{24}{subsection.6.3}% +\contentsline {section}{\numberline {7}Results \& Discussion}{25}{section.7}% +\contentsline {subsection}{\numberline {7.1}Data}{25}{subsection.7.1}% +\contentsline {subsection}{\numberline {7.2}Quantile Regression}{26}{subsection.7.2}% +\contentsline {subsubsection}{\numberline {7.2.1}Linear Model}{26}{subsubsection.7.2.1}% +\contentsline {subsubsection}{\numberline {7.2.2}Non-Linear Model}{33}{subsubsection.7.2.2}% +\contentsline {subsubsection}{\numberline {7.2.3}GRU Model}{36}{subsubsection.7.2.3}% +\contentsline {subsection}{\numberline {7.3}Diffusion}{40}{subsection.7.3}% +\contentsline {subsection}{\numberline {7.4}Comparison}{44}{subsection.7.4}% +\contentsline {subsection}{\numberline {7.5}Policies for battery optimization}{49}{subsection.7.5}% +\contentsline {subsubsection}{\numberline {7.5.1}Baselines}{49}{subsubsection.7.5.1}% +\contentsline {subsubsection}{\numberline {7.5.2}Policy using generated NRV samples}{50}{subsubsection.7.5.2}% +\contentsline {section}{\numberline {8}Conclusion}{55}{section.8}% diff --git a/src/notebooks/thesis-visualizations.ipynb b/src/notebooks/thesis-visualizations.ipynb index 1fdb56b..7b62341 100644 --- a/src/notebooks/thesis-visualizations.ipynb +++ b/src/notebooks/thesis-visualizations.ipynb @@ -324,14 +324,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAPYCAYAAAChQNtPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1gUV9sG8HvpvUkVaSJi771i7xoVezcaS+xGo8YaNdEY2xt7CRpL7MYeu7EmGruxRkVFsaDSO5zvj/12YNkFFnZlgdy/6/Jy58w5M2dm5zkszw5nZEIIASIiIiIiIiIiIiLKFwz03QEiIiIiIiIiIiIiSsOkLREREREREREREVE+wqQtERERERERERERUT7CpC0RERERERERERFRPsKkLREREREREREREVE+wqQtERERERERERERUT7CpC0RERERERERERFRPmKk7w4QERERERERERVWSUlJSElJ0Xc3iOgTMzQ0hLGxsc62x6QtEREREREREZGORUZGIiwsDAkJCfruChHlEVNTUzg6OsLGxkbrbTFpS0RERERERESkQ5GRkXj58iWsrKzg6OgIY2NjyGQyfXeLiD4RIQSSkpIQERGBly9fAoDWiVuZEELoonNERERERERERAQ8efIExsbGKFasGJO1RP8hQgiEhIQgKSkJxYsX12pbfBAZEREREREREZGOJCUlISEhAba2tkzYEv3HyGQy2NraIiEhAUlJSVpti0lbIiIiIiIiIiIdUTx0TJcPJCKigkMR+9o+gJBJWyIiIiIiIiIiHeNdtkT/TbqKfSZtiYiIiIiIiIiIiPIRJm2JiIiIiIiIiIiI8hEmbYmIiIiIiIiIiACcOXMGMpkMZ86c0XdXKIdkMhlmzpwpLW/YsAEymQzBwcF665M2mLQlIiIiIiIiIiKNtGrVCvb29njz5o3KuoiICLi5uaFmzZpITU3Vel+HDx9WSsIVZooEo5mZGV6+fKmyPiAgAOXKlVMq8/b2hkwmk/5ZWlqiRo0a+OWXX6Q6ixYtgkwmw4kTJzLd99q1ayGTybB///5M68ycOVNpXwYGBnBzc0Pbtm3x559/5uKIKTtM2hIRERERERERkUZWrFiBxMREjB07VmXdlClTEBYWhjVr1sDAQPuU0+HDhzFr1iytt1OQJCQkYN68eRrXr1SpEjZt2oRNmzZh5syZiIiIQL9+/bB27VoAQPfu3WFgYICtW7dmuo2tW7eiSJEiaNWqVbb7W7lyJTZt2oQNGzZgxIgRuHPnDho0aIAbN25o3Oe80qdPH8TFxcHLy0vfXckVJm2JiIiIiIiIiEgjPj4+mDFjBn799VccO3ZMKr9y5QpWrVqFcePGoWLFinrsYdaEEIiLi9N3NzJVqVIlrF27Fq9evdKovru7O3r37o3evXtjwoQJOH/+PKysrLB48WIAQNGiRdGoUSPs2bMHCQkJKu1fvnyJs2fPokuXLjA2Ns52f4GBgejduzf69u2Lb775BocOHUJSUhJ27tyZswPNA4aGhjAzM4NMJtN3V3KFSVsiIiIiIiIiItLYuHHjUKFCBQwfPhzx8fFISUnB0KFD4eXlhRkzZuD+/fsIDAyEg4MDzMzMUK1aNZU/vU9KSsKsWbPg5+cHMzMzFClSBPXq1cPx48cBAP3798fy5csBQOnP8hVSU1OxZMkSlC1bFmZmZnBxccGQIUPw8eNHpf14e3ujbdu2OHr0KKpVqwZzc3OsXr0aABASEoLPPvsMlpaWcHZ2xtixY9UmNs+dO4cuXbrA09MTpqam8PDwwNixY5WSv0FBQZDJZLh+/bpK+++++w6GhoZqpz3IaMqUKUhJScnR3bbpOTk5oVSpUnj8+LFU1rt3b0RERODQoUMq9bdt24bU1FT06tUrV/tzdXUFABgZGUlliYmJmD59OqpWrQpbW1tYWlqifv36OH36tNr9V61aFdbW1rCxsUH58uWxdOlSpTrh4eEYM2YMPDw8YGpqihIlSmD+/PnZTsGhbk5bxfVw/vx51KhRA2ZmZihevLjSlBLa7ldXjLKvQkREREREREREJGdkZIQ1a9agTp06mD17NpydnXHt2jX8/vvvePr0KerWrQt3d3dMmjQJlpaW2LFjBz777DPs3r0bHTt2BCCfI/X777/HoEGDUKNGDURGRuLvv//GtWvX0KxZMwwZMgSvXr3C8ePHsWnTJpU+DBkyBBs2bMCAAQMwatQoPH36FMuWLcP169dx4cIFpbtGHzx4gB49emDIkCEYPHgw/P39ERcXhyZNmuD58+cYNWoUihYtik2bNuHUqVMq+9q5cydiY2MxbNgwFClSBJcvX8ZPP/2EkJAQ6Q7TwMBAfPnll9iyZQsqV66s1H7Lli0ICAiAu7t7tufWx8cHffv2xdq1azFp0iQULVo0R+9NcnIyQkJCYG9vL5V16tQJw4YNw9atW9GpUyel+lu3boWXlxfq1q2r0fY/fPgAQJ40f/nyJWbPng0zMzN07dpVqhMZGYl169ahR48eGDx4MKKiorB+/Xq0aNECly9fRqVKlQAAx48fR48ePdCkSRPMnz8fAHDv3j1cuHABo0ePBgDExsaiYcOGePnyJYYMGQJPT09cvHgRkydPRmhoKJYsWZKj8wMA//77LwIDA/H555+jX79++Pnnn9G/f39UrVoVZcuW/WT7zTFBREREREREREQ6ERcXJ+7evSvi4uLUV9i5UIge7tn/m9ZOte20dpq13blQuV1MZNbrc2nEiBHC2NhYWFlZiR49egghhGjSpIkoX768iI+Pl+qlpqaKOnXqCD8/P6msYsWKok2bNllu/8svvxTqUlfnzp0TAMSWLVuUyn///XeVci8vLwFA/P7770p1lyxZIgCIHTt2SGUxMTGiRIkSAoA4ffq0VB4bG6vSh++//17IZDLx7NkzqaxHjx6iaNGiIiUlRSq7du2aACCCgoKyPNagoCABQFy5ckU8fvxYGBkZiVGjRknrGzZsKMqWLavUxsvLSzRv3ly8e/dOvHv3Tty+fVv06dNHABBffvmlUt0uXboIMzMzERERIZXdv39fABCTJ0/Osm9CCDFjxgwBQOWfnZ2dyrlNTk4WCQkJSmUfP34ULi4uYuDAgVLZ6NGjhY2NjUhOTs50v7NnzxaWlpbi4cOHSuWTJk0ShoaG4vnz51IZADFjxgxpWXFOnz59KpUproezZ89KZW/fvhWmpqZi/PjxudpvRtmOARri9AhERERERERERHklNhIIe5n9v4h3qm0j3mnWNjZSuZ0QWa/Ppblz56JIkSIwMDDA4sWL8eHDB5w6dQpdu3ZFVFQUwsLCEBYWhvfv36NFixZ49OiRNEWAnZ0d/vnnHzx69CjH+925cydsbW3RrFkzaR9hYWGoWrUqrKysVP4M38fHBy1atFAqO3z4MNzc3BAYGCiVWVhY4IsvvlDZn7m5ufQ6JiYGYWFhqFOnDoQQStMh9O3bF69evVLa/5YtW2Bubo7OnTtrfHzFixdHnz59sGbNGoSGhmZZ99ixY3BycoKTkxPKly+PTZs2YcCAAViwYIFSvd69eyM+Ph579uyRyhQPJ8vJ1Ai7d+/G8ePHcezYMQQFBaFkyZLo3LkzLl68KNUxNDSEiYkJAPkduR8+fEBycjKqVauGa9euSfXs7OwQExMjTYmhzs6dO1G/fn3Y29srvddNmzZFSkoKzp49q3HfFcqUKYP69etLy05OTvD398eTJ08+6X5zitMjEBERERERERHlFQsbwDH7P5OHrZP6Mk3aWtgoL8tkyu0yrs8lGxsb+Pv7IywsDC4uLrh8+TKEEJg2bRqmTZumts3bt2/h7u6Ob7/9Fh06dEDJkiVRrlw5tGzZEn369EGFChWy3e+jR48QEREBZ2fnTPeRno+Pj0qdZ8+eoUSJEioPqfL391ep+/z5c0yfPh379+9XmTM3IiJCet2sWTO4ublhy5YtaNKkCVJTU/Hrr7+iQ4cOsLa2zva40ps6dSo2bdqEefPmqczxml7NmjUxZ84cpKSk4M6dO5gzZw4+fvwoJU0VWrVqBQcHB2zduhX9+/cHAPz666+oWLGiNCWAJho0aABHR0dpOTAwEH5+fhg5ciSuXr0qlW/cuBELFy7E/fv3kZSUJJWnfy+GDx+OHTt2oFWrVnB3d0fz5s3RtWtXtGzZUqrz6NEj3Lp1C05OauIBqu+1Jjw9PVXK7O3tld7bT7HfnGLSloiIiIiIiIgorwSOk//LjW/3Z19HHQtrYGtI7trmgOIBTV999ZXKna0KJUqUACBP/j1+/Bj79u3DsWPHsG7dOixevBirVq3CoEGDst2Ps7MztmzZonZ9xkRb+jtlcyolJQXNmjXDhw8f8PXXX6NUqVKwtLTEy5cv0b9/f6WHUhkaGqJnz55Yu3YtVqxYgQsXLuDVq1fo3bt3jvdbvHhx9O7dG2vWrMGkSZMyrefo6IimTZsCAFq0aIFSpUqhbdu2WLp0KcaNS7vOjI2N0bVrV6xduxZv3rzB8+fP8ejRI/zwww857lt6VlZWqFmzJvbt24eYmBhYWlpi8+bN6N+/Pz777DNMmDABzs7OMDQ0xPfff6/0gDRnZ2fcuHEDR48exZEjR3DkyBEEBQWhb9++2LhxIwD5e92sWTNMnDhR7f5LliyZ4z4bGhqqLZfPsIBPtt+cYtKWiIiIiIiIiIi0Vrx4cQDyBKEikZgVBwcHDBgwAAMGDEB0dDQaNGiAmTNnSknbjHfBKvj6+uLEiROoW7durhOyXl5euHPnDoQQSvt58OCBUr3bt2/j4cOH2LhxI/r27SuVZ/Yn/X379sXChQtx4MABHDlyBE5OTpkmsLMzdepUbN68WXpIlybatGmDhg0b4rvvvsOQIUNgaWkprevVqxdWrVqF7du34+nTp5DJZOjRo0eu+pZecnIyACA6OhqWlpbYtWsXihcvjj179iid2xkzZqi0NTExQbt27dCuXTukpqZi+PDhWL16NaZNm4YSJUrA19cX0dHRGl1PuqSv/abHOW2JiIiIiIiIiEhrzs7OCAgIwOrVq9XOxfruXdo8ve/fv1daZ2VlhRIlSiAhIUEqUyQcw8PDlep27doVKSkpmD17tso+kpOTVeqr07p1a7x69Qq7du2SymJjY7FmzRqleoq7MtPfhSmEyHTKggoVKqBChQpYt24ddu/eje7du8PIKHf3TPr6+qJ3795YvXo1Xr9+rXG7r7/+Gu/fv8fatWuVyuvWrQtvb29s3rwZ27dvR8OGDVGsWLFc9U3hw4cPuHjxIlxdXaXpKtSds7/++guXLl1SapvxGjAwMJCmx1BcB127dsWlS5dw9OhRlX2Hh4dLCWNd09d+0+OdtkREREREREREpBPLly9HvXr1UL58eQwePBjFixfHmzdvcOnSJYSEhODmzZsA5A+DCggIQNWqVeHg4IC///4bu3btwogRI6RtVa1aFQAwatQotGjRAoaGhujevTsaNmyIIUOG4Pvvv8eNGzfQvHlzGBsb49GjR9i5cyeWLl2q9IAxdQYPHoxly5ahb9++uHr1Ktzc3LBp0yZYWFgo1StVqhR8fX3x1Vdf4eXLl7CxscHu3btV5rZNr2/fvvjqq68AIFdTI6T3zTffYNOmTXjw4IHGc8+2atUK5cqVw6JFi/Dll1/C2NgYgPzO5Z49e+K7774DAHz77bc57s+uXbtgZWUFIQRevXqF9evX4+PHj1i1apV0V23btm2xZ88edOzYEW3atMHTp0+xatUqlClTBtHR0dK2Bg0ahA8fPqBx48YoVqwYnj17hp9++gmVKlVC6dKlAQATJkzA/v370bZtW/Tv3x9Vq1ZFTEwMbt++jV27diE4OFhpjl1d0dd+lQgiIiIiIiIiItKJuLg4cffuXREXF6fvruSJhg0birJlyyqVPX78WPTt21e4uroKY2Nj4e7uLtq2bSt27dol1ZkzZ46oUaOGsLOzE+bm5qJUqVJi7ty5IjExUaqTnJwsRo4cKZycnIRMJhMZ01hr1qwRVatWFebm5sLa2lqUL19eTJw4Ubx69Uqq4+XlJdq0aaO278+ePRPt27cXFhYWwtHRUYwePVr8/vvvAoA4ffq0VO/u3buiadOmwsrKSjg6OorBgweLmzdvCgAiKChIZbuhoaHC0NBQlCxZUuPzGBQUJACIK1euqKzr16+fAKBynrM6tg0bNqjt3z///CMACFNTU/Hx40eN+zdjxgwBQOmfpaWlqF27ttixY4dS3dTUVPHdd98JLy8vYWpqKipXriwOHjwo+vXrJ7y8vKR6u3btEs2bNxfOzs7CxMREeHp6iiFDhojQ0FCl7UVFRYnJkyeLEiVKCBMTE+Ho6Cjq1KkjfvzxR6XrBYCYMWOGtKw4p0+fPs32nDVs2FA0bNgwV/vNSFdjgOz/D4qIiIiIiIiIiLQUHx+Pp0+fwsfHB2ZmZvruDulBWFgY3NzcMH36dEybNk3f3aE8pqsxgHPaEhERERERERER6ciGDRuQkpKCPn366LsrVIBxTlsiIiIiIiIiIiItnTp1Cnfv3sXcuXPx2WefwdvbW99dogKMSVsiIiIiIiIiIiItffvtt7h48SLq1q2Ln376Sd/doQKOSVsiIiIiIiIiIiItnTlzRt9doEKEc9oSERERERERERER5SNM2hIRERERERERERHlI0zaEhEREREREREREeUjTNoSERERERERERER5SNM2hIRERERERERERHlI0zaEhEREREREREREeUjTNoSERERERERERER5SNM2hIRERERERERUb60YMECFC9eHIaGhqhUqZK+u0Na2rBhA2QyGYKDg6WygIAABAQE6K1P+RWTtkREREREREREpBFF0k3xz8zMDCVLlsSIESPw5s0bne7r2LFjmDhxIurWrYugoCB89913Ot0+ABw+fBgzZ87UuH5AQABkMhnatWunsi44OBgymQw//vijVHbmzBml82VoaAhnZ2cEBgbi3r17Ur0KFSrA09MTQohM9123bl24uLggOTk50zre3t4q74+fnx8mTJiADx8+aHycpH9G+u4AEREREREREREVLN9++y18fHwQHx+P8+fPY+XKlTh8+DDu3LkDCwsLnezj1KlTMDAwwPr162FiYqKTbWZ0+PBhLF++PEeJWwA4ePAgrl69iqpVq2pUf9SoUahevTqSkpJw69YtrFq1CmfOnMGdO3fg6uqKXr16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EVEe0WZqgozTJWjK2tQaIeNCctU2MzVq1EC1atXUrktNTYVMJsORI0dgaGiost7KykppOf0dn9nJ6bY/tdGjR2Px4sWYNWsWlixZkmm98uXLS4nUzz77DLGxsRg8eDDq1asHD4+0u6rbtm0LW1tbbN26FT179sTWrVthaGiI7t27a9XPJk2aAADOnj0rJW27du2KixcvYsKECahUqRKsrKyQmpqKli1bIjU1VWrbtWtX1K9fH3v37sWxY8ewYMECzJ8/H3v27EGrVq2kugsWLEClSpXU7j8374u69xdIm97iU+03v2DSloiIiIiIiIiIdMbX1xdCCPj4+Gj8J/263ravry8A4M6dOypTOaSn7VQJirttZ86cmeUdnxkpHrI1d+5crFq1Sio3NTVFYGAgfvnlF7x58wY7d+5E48aN4erqqlU/k5OTAQDR0dEA5Hernjx5ErNmzcL06dOleoq7VzNyc3PD8OHDMXz4cLx9+xZVqlTB3Llz0apVK+lc29jYZHmudU1f+80rBXNSByIiIiIiIiIiypc6deoEQ0NDzJo1S7orUkEIoTL/6KfYdpUqVeDj44MlS5YgPDxcpZ6CpaUlAKjUyYkxY8bAzs4O3377rcZtfH190blzZ2zYsAGvX79WWterVy8kJSVhyJAhePfuncYPIMvKgQMHAAAVK1YEkHYXa8ZzmPFu4ZSUFKWpEgDA2dkZRYsWRUJCAgCgatWq8PX1xY8//iglhdN79+6d1v1XR1/7zSu805aIiIiIiIiIiHTG19cXc+bMweTJkxEcHIzPPvsM1tbWePr0Kfbu3YsvvvgCX3311SfdtoGBAVauXIl27dqhUqVKGDBgANzc3HD//n38888/OHr0KAB54g8ARo0ahRYtWuRqKgJbW1uMHj0as2bNylG7CRMmYMeOHViyZAnmzZsnlTds2BDFihXDvn37YG5ujk6dOuVouy9fvsTmzZsBAImJibh58yZWr14NR0dHaWoEGxsbNGjQAD/88AOSkpLg7u6OY8eO4enTp0rbioqKQrFixRAYGIiKFSvCysoKJ06cwJUrV7Bw4UIAgIGBAdatW4dWrVqhbNmyGDBgANzd3fHy5UucPn0aNjY2UtJYl/S137zCpC0REREREREREenUpEmTULJkSWm+VwDw8PBA8+bN0b59+zzZdosWLXD69GnMmjULCxcuRGpq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S0hIUI0aNRQfH68rV64oNDRUgYGBVuf+wIED6t27t86ePauePXuqd+/eklKOhnrUysLA02rjxo0KCgqSj4+PtS06OloffvihfH19deTIES1dulTS3Vfqrl+/rsGDB2vOnDmaNGmS3nzzTaVNm9ZZxQdcwujRoxUeHq6JEycqS5Ysku62LQ0bNtTmzZv17LPPav78+SpTpowV6kZFRWnixIkaPny4+vfvrwEDBlgLkAH4Y07bAwcOqHbt2ipatKg2b94s6W6f72EB0qpVq/TWW29p7ty5atCgweMuMuCS7r/H2b9/v0qXLq2RI0eqc+fOWrFihWbOnKlTp04pd+7cCg8PV61atfT1118rMDBQkvT7779b7RvwV7ijxhPrs88+U/bs2bV///4U24cMGaIBAwZo27ZtKl++vDU6Q5Lq1q1rvdo9atQohYSEWJ+z2+2MwECqc/nyZS1btkwtW7bU5cuXre1eXl569tlndfLkSd24cUNXrlyRdHdkhd1uV6lSpTR58mTlyZNHM2bM0IQJEyT9MQKDwBapzdy5c1WrVi2NGzcuRXvy008/acKECRo5cmSKFe9tNpsyZ86s0aNHq2PHjurTp4/mzZun2NhYZ10C4BK2bdumFStW6OLFi9a2pKQkdejQQcWLF9evv/6qTZs2KTEx0Rrt5+fnpz59+ig4OFiTJk3SiBEjdOfOHWddAuByHHWlQIECevXVV7V161a9/vrrku72+ZKTk2W3263jT548qYULF6pAgQLWgmUA7t7jXLp0ybo3ev7559WzZ08NHTpUhQsXVrdu3VSoUCHNnz9fhw8f1rx587RhwwadPXvWOgeBLf4rBnhCrV271hQpUsSsWrUqxfb4+HjTokULY7PZTPny5c3t27eNMcYkJiam+Gz58uVN7ty5zbfffvtYyw24mr1795qNGzcaY4xJSkpKse/99983NpvN1K5d2/z222/WMcnJycYYYw4cOGDKlStncuXKZc6cOfNYyw24kjt37pgaNWqYlStXpth+7do189VXX5m8efOaPHnymMOHDz/w2atXr5p33nnH2Gw28+mnnxq73f64ig24jHu/9zt37jTGGBMXF2euXbtmjDEmOjraLF++3BQuXNgUKlTI7N+//4FzREZGmsGDBxubzWZ+/fXXx1Nw4AnhqGOXLl0y1atXNzabzTRt2tRERkamOO7AgQPmrbfeMj4+PuaHH35wRlEBl3X79m2TM2dO06hRIxMREWGMuVu35s+fb4YMGWK2bNlitVvGGPPVV1+ZzJkzP7TNAv4OpkfAE8tut+vGjRvKnDmzoqOjdfHiRT333HOSpMTERL3++usKCQlRly5dNHbsWKVPnz7F/IJr1qzRwIEDNW3aNFWrVs2ZlwI4hblvEYnY2FjVrFlTAwcOVJMmTaztPXv21OzZs/Xyyy9r3LhxypMnj5KTk2Wz2eTm5qb9+/crLi5OFSpUcMJVAM7naFsc04NER0frm2++Udu2beXr66sbN25o5cqV6tu3r1544QV9/fXXypUrV4pzXL16VYMGDVLz5s15DRWplqMOSVJ8fLzq1q2rfPnyaezYscqaNatiYmK0bt069e7dW/7+/lq4cKFKlCiR4hxRUVG6fPmyChQo4IxLAFya49XuixcvqkuXLvrhhx/03HPPqWnTpipdurT27t2rTZs2KTw8XF999ZWaNWvGomPAPRITE/XVV1+pf//+atiwoSZOnKjs2bNLevDeas+ePRo6dKiuXbumH374QZkyZXJWsfEEI7TFE+neH0S73a7XXntNK1asUFhYmEqWLCnp7g9qy5YttX79erVr105jxoxRunTpUgS3165dU+bMmemMAJKOHz+u119/XcePH9fixYtVv359a1/37t319ddfq3Hjxvr4448fCG4B/NE2devWTTNnztSIESPUp08f+fj46NatW1q+fLn69OmjcuXK6auvvnoguE1MTJSnpydtEvB/mjVrpu3bt6t169YaOHCgsmXLptjYWK1bt069evWSn5+fFi1a9EBw60BdAh7keDhy/fp1ff311woJCdHOnTslSenSpVO9evXUrVs3Va9e3Zrqh3qE1OTOnTtKly7dI/cnJiZq4cKF6tq1q5o0aaJPPvlEOXLkSHHM9OnTtXz5cu3fv1+bNm1SsWLF/u1i4ylFaIsnnjFG69ev16BBg3TlyhV9//33DwS3P//8s9544w2NHj1a6dKl48YYeISDBw9qwIAB2rJli5YuXZpixJ8juG3SpIlGjRqlZ5991oklBVxXdHS0WrVqpX379umdd95R3759Hxrczpkzx1qUAsAf7l3opVOnTlq1apXatm2rQYMGPRDcZsyYUXPmzNHzzz/v3EIDLuhR9zqOOub45/79+2WMUZ48eeTt7S1f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r1n7li9frsGDBys2Nvahwe3D7pmAfxuhLR6rvxo5e/r0ab3wwguKi4vT4cOHVbBgwT89Hz+cwB9iY2NVrlw53bx5U88++6yuXr2qK1euKDg4WO3bt5ePj4+WLl2q8uXLq0iRIs4uLuB0f9WGXL16VXXr1tWBAwe0bds263U6AH8tLi5O1apV0++//66aNWvqt99+0759+1S2bFmtX79ekvTjjz8qb968Kly4sJNLC7iGXbt2qXbt2qpatapeeeUVVatWTVevXtXs2bP17bffKm3atPrss8/Upk0b2e127d69Wx06dFBSUpKmT5+umjVr/uUbIUBqERsbqzt37uj48eOy2+2qWLGivLy89Ouvv2rQoEFatWqV5s+fr7Zt21qfuTe4nTp1ql5++WVrHw8+4AyEtnhsHDfHZ86c0caNG3Xjxg0FBgZaE4E7jvnll18UHR2d4gcSwMM5XjE1xmjt2rUKDg7W+PHjVbZsWdlsNrVv317Lly/Xhx9+qJ49eyp9+vR0OAD90SYdO3ZMK1eu1L59+1SlShVVrFhRZcqUsY47evSoIiIiVLt2bSeWFngy3DvK/ObNm2rQoIGCg4PVsGFDK1QaNmyYnnvuOe3atUvS35t2BEgNLl26pJdeeknZsmXTxx9/nGLhMEmaN2+exo8fr3PnzikkJEQvvviikpKStGfPHnXo0EGSNHHiRL344ovUKaR6mzZt0ty5cxUSEqKoqChJUvHixdWyZUv17NlTt2/fVrdu3bR69eqHBrfDhg3T2bNn9e2336phw4bOugyA0BaPh+PmODQ0VG3btlVERITi4+MlSW+99ZZmzpz5p58D8GjR0dEaOnSooqKidPLkSf38888p6k2bNm20ePFijRgxQu+8844yZ85McItUzdG27NixQy1atFBsbKxiYmKUmJiooKAgBQcHq169eg/Uk/tfNaWNAh4UGxurqlWr6tlnn9XNmze1evVqa17o2NhYzZ8/X/3791fhwoUVGhoqSdacgkBqtn37dtWrV09Tp061QlhjjIwxVluzfPlyvf/++4qOjlZYWJhy584tu92usLAwNW/eXB4eHgoLC1OmTJmceCWAcy1cuFD9+vVTYGCgatasqdKlS+vQoUNauXKljhw5ogYNGujrr79WfHy8unbt+tDgdtGiRZo0aZK++eabv3z7F/hXGeBflpSUZIwxZuvW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "models_final = [\n", + " \"NAQR: Linear\",\n", " \"NAQR: Non-Linear\",\n", " \"AQR: Linear\",\n", " \"AQR: Non-Linear\",\n", @@ -339,9 +351,9 @@ " \"Diffusion\",\n", "]\n", "\n", - "profits_final = [189982.08, 190501.34, 196999.03, 196655.36, 218170.75]\n", + "profits_final = [191421.62, 189982.08, 190501.34, 196999.03, 196655.36, 218170.75]\n", "\n", - "improvement_final = [-4.43, -4.17, -0.91, -1.08, 9.74]\n", + "improvement_final = [\"-3.85%\", \"-4.43%\", \"-4.17%\", \"-0.91%\", \"-1.08%\", \"+9.74%\"]\n", "\n", "# Yesterday and Perfect baselines for reference lines\n", "yesterday_baseline = 198807.09\n", @@ -379,7 +391,7 @@ " if not np.isnan(profit):\n", " height = bar.get_height()\n", " ax.annotate(\n", - " f\"{imp:.2f}%\",\n", + " imp,\n", " xy=(bar.get_x() + bar.get_width() / 2, height),\n", " xytext=(\n", " 0,\n", @@ -443,12 +455,23 @@ "plt.xticks(rotation=45, ha=\"right\", fontsize=12)\n", "plt.yticks(fontsize=12)\n", "\n", + "# remove the top and right spines\n", + "ax.spines[\"top\"].set_visible(False)\n", + "ax.spines[\"right\"].set_visible(False)\n", + "\n", "# Adjust bar width and layout\n", "plt.tight_layout()\n", "\n", "# Show the final plot with the Yesterday NRV Baseline line changed to an even darker orange\n", "plt.show()\n" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -467,7 +490,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.11" + "version": "3.12.3" } }, "nbformat": 4, diff --git a/src/training_scripts/non_autoregressive_quantiles.py b/src/training_scripts/non_autoregressive_quantiles.py index 2d91dcc..c2d8c54 100644 --- a/src/training_scripts/non_autoregressive_quantiles.py +++ b/src/training_scripts/non_autoregressive_quantiles.py @@ -5,7 +5,7 @@ clearml_helper = ClearMLHelper( project_name="Thesis/NrvForecast" ) task = clearml_helper.get_task( - task_name="NAQR: Non Linear (2 - 256) + All" + task_name="NAQR: Linear" ) task.execute_remotely(queue_name="default", exit_process=True) @@ -31,16 +31,16 @@ from src.models.time_embedding_layer import TimeEmbedding data_config = DataConfig() data_config.NRV_HISTORY = True -data_config.LOAD_HISTORY = True -data_config.LOAD_FORECAST = True +data_config.LOAD_HISTORY = False +data_config.LOAD_FORECAST = False -data_config.WIND_FORECAST = True -data_config.WIND_HISTORY = True +data_config.WIND_FORECAST = False +data_config.WIND_HISTORY = False -data_config.PV_FORECAST = True -data_config.PV_HISTORY = True +data_config.PV_FORECAST = False +data_config.PV_HISTORY = False -data_config.NOMINAL_NET_POSITION = True +data_config.NOMINAL_NET_POSITION = False data_config = task.connect(data_config, name="data_features") @@ -75,17 +75,17 @@ model_parameters = { model_parameters = task.connect(model_parameters, name="model_parameters") -# linear_model = LinearRegression(inputDim, len(quantiles) * 96) +linear_model = LinearRegression(inputDim, len(quantiles) * 96) -non_linear_model = NonLinearRegression( - inputDim, - len(quantiles) * 96, - hiddenSize=model_parameters["hidden_size"], - numLayers=model_parameters["num_layers"], - dropout=model_parameters["dropout"], -) +# non_linear_model = NonLinearRegression( +# inputDim, +# len(quantiles) * 96, +# hiddenSize=model_parameters["hidden_size"], +# numLayers=model_parameters["num_layers"], +# dropout=model_parameters["dropout"], +# ) -model = non_linear_model +model = linear_model model.output_size = 96 optimizer = torch.optim.Adam(model.parameters(), lr=model_parameters["learning_rate"])