RVA3DOCNBWFBWA2MLC2TVQOEY25AUCYGEJSWMD72QRQ26AFLVZUAC HF25ZQRDZXNE2IM3YGE3NAPWGDE3U252H764IBIJSIZS3LRLYIMAC EWCCR4CPDE536DBLSJHXPJI67C4EQOWRJZR7D57P5XBV4ONPKXMQC DDNESFMD4LGNTDGTCW27FQPCOR5Y5MJWN2TWCSIRNBK6QGBITBRQC QMVJ2ZKX5ALAMMIL7E47ZQS67QFZJ7Z3HAY5G7X72KPEQEHWRGCQC X7SPUV4CXRX7D5KKL6UVGHC7JWRWCA4QAJVVQISE64UEU7GXJNRQC BGMT6NIKIDEGQ74DC4LPVBR7JCUYHHQBOZXHYXMO5F2UVEQ3N47QC 567NUQ633R5ESTE2LWXVUGM7XEZGJ65IRKPOCDZJS3JE5RAMR5KAC JCK77YLTPL6VV5ZOTMGUJSFZ5DNMS3MZGP5UQLXYW6WSMEK6GAQAC MQJMCLGFSBSFJ3JPCIHQSBZS4XZPGJI7NGGRASX5UVGJO6HES25AC DJPCS5EU6K5RJO2XKRJ53PS4WYECL63UPHY54K7QWCZNXIJRQI4AC UVN5HOW3H2OVESJ62UFNQNS6VXHI5TRV22HQ44EOYU42453SDD2QC B5T3HFKSQF3T4T6Z2KZOA5ZDMI6TVON7BS7KKB3EAGGYAS7RJPBAC EIPHTX56WTRFBMBNA4VYMKK4L7GWHA4Q2AQ3BCG2ZGZB3DBRENBQC KUEZAMEH2M3K6EDHWMYXQMHZ2QTTH4KBM5CO7A7EB64ABEWRE6WQC % \RequirePackage{caption}\RequirePackage{subcaption}
}@Misc{kraaikamp2005modern,author = {C. Kraaikamp and F.M. Dekking and H.P. Lopuhaä and L.E. Meester},title = {A Modern Introduction to Probability and Statistics Understanding Why and How},year = {2005},doi = {https://doi.org/10.1007/1-84628-168-7},file = {Full Book:/home/paradyx/MA/literatur/kraaikamp2005modern.pdf:PDF},groups = {Probability},publisher = {springer publication},}@Book{vanderbei2020lp,author = {Robert J. Vanderbei},publisher = {Springer},title = {Linear Programming Foundations and Extensions},year = {2020},edition = {5},isbn = {978-3-030-39414-1},series = {International Series in Operations Research and Management Science},volume = {285},doi = {https://doi.org/10.1007/978-3-030-39415-8},file = {Full Book:/home/paradyx/MA/literatur/vanderbei2020lp.pdf:PDF},groups = {Linear Programming},timestamp = {Mon, 22 Jul 2019 16:40:55 +0200},}@Book{pan2023lpcomputation,author = {Ping{-}Qi Pan},publisher = {Springer},title = {Linear Programming Computation, Second Edition},year = {2023},isbn = {978-981-19-0146-1},bibsource = {dblp computer science bibliography, https://dblp.org},biburl = {https://dblp.org/rec/books/sp/Pan23.bib},doi = {10.1007/978-981-19-0147-8},file = {Full Book:/home/paradyx/MA/literatur/pan2023lpcomputation.pdf:PDF},groups = {Linear Programming},timestamp = {Mon, 16 Jan 2023 12:10:53 +0100},url = {https://doi.org/10.1007/978-981-19-0147-8},}@Article{bagnara2005convexpolyhedron,author = {Roberto Bagnara and Patricia M. Hill and Enea Zaffanella},journal = {Formal Aspects Comput.},title = {Not necessarily closed convex polyhedra and the double description method},year = {2005},number = {2},pages = {222--257},volume = {17},bibsource = {dblp computer science bibliography, https://dblp.org},biburl = {https://dblp.org/rec/journals/fac/BagnaraHZ05.bib},doi = {10.1007/s00165-005-0061-1},file = {:/home/paradyx/MA/literatur/bagnara2005convexpolyhedron.pdf:PDF},groups = {Polyhedra, Octagons, Boxes},timestamp = {Mon, 09 May 2022 16:20:12 +0200},url = {https://doi.org/10.1007/s00165-005-0061-1},
@InProceedings{mine2001wcre,author = {Antoine Min{\'{e}}},booktitle = {Proceedings of the Eighth Working Conference on Reverse Engineering, WCRE'01, Stuttgart, Germany, October 2-5, 2001},title = {The Octagon Abstract Domain},year = {2001},editor = {Elizabeth Burd and Peter Aiken and Rainer Koschke},pages = {310},publisher = {{IEEE} Computer Society},bibsource = {dblp computer science bibliography, https://dblp.org},biburl = {https://dblp.org/rec/conf/wcre/Mine01.bib},doi = {10.1109/WCRE.2001.957836},file = {:/home/paradyx/MA/literatur/mine2001wcre.pdf:PDF},groups = {Polyhedra, Octagons, Boxes},timestamp = {Fri, 24 Mar 2023 00:04:44 +0100},url = {https://doi.org/10.1109/WCRE.2001.957836},}@Article{mine2007arxiv,author = {Antoine Min{\'{e}}},journal = {CoRR},title = {The Octagon Abstract Domain},year = {2007},volume = {abs/cs/0703084},bibsource = {dblp computer science bibliography, https://dblp.org},biburl = {https://dblp.org/rec/journals/corr/abs-cs-0703084.bib},eprint = {cs/0703084},eprinttype = {arXiv},file = {:/home/paradyx/MA/literatur/mine2007arxiv.pdf:PDF},groups = {Polyhedra, Octagons, Boxes},timestamp = {Mon, 13 Aug 2018 16:47:22 +0200},url = {http://arxiv.org/abs/cs/0703084},}@Article{mine2006hosc,author = {Antoine Min{\'{e}}},journal = {High. Order Symb. Comput.},title = {The octagon abstract domain},year = {2006},number = {1},pages = {31--100},volume = {19},bibsource = {dblp computer science bibliography, https://dblp.org},biburl = {https://dblp.org/rec/journals/lisp/Mine06.bib},doi = {10.1007/s10990-006-8609-1},file = {:/home/paradyx/MA/literatur/mine2006hosc.pdf:PDF},groups = {Polyhedra, Octagons, Boxes},timestamp = {Thu, 05 Mar 2020 12:04:59 +0100},url = {https://doi.org/10.1007/s10990-006-8609-1},}@InProceedings{truchet2010synacs,author = {Charlotte Truchet and Marie Pelleau and Fr{\'{e}}d{\'{e}}ric Benhamou},booktitle = {12th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, {SYNASC} 2010, Timisoara, Romania, 23-26 September 2010},title = {Abstract Domains for Constraint Programming, with the Example of Octagons},year = {2010},editor = {Tetsuo Ida and Viorel Negru and Tudor Jebelean and Dana Petcu and Stephen M. Watt and Daniela Zaharie},pages = {72--79},publisher = {{IEEE} Computer Society},bibsource = {dblp computer science bibliography, https://dblp.org},biburl = {https://dblp.org/rec/conf/synasc/TruchetPB10.bib},doi = {10.1109/SYNASC.2010.69},groups = {Polyhedra, Octagons, Boxes},timestamp = {Fri, 24 Mar 2023 00:01:58 +0100},url = {https://doi.org/10.1109/SYNASC.2010.69},}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.4,declare function={unif(\k,\n)=1/\n;}]\begin{axis}[axis lines = left,xlabel = {$k$},ylabel = {$P(X=k)$},x label style={at={(axis description cs:1,0.1)},anchor=north},y label style={at={(axis description cs:-0.15,1)},rotate = -90,anchor=north},yticklabel style={/pgf/number format/fixed,% /pgf/number format/fixed zerofill,/pgf/number format/precision=2},ymin=0,% ymax=0.3,xmin=-0.5,xmax=8.5,samples at={2,...,7},xtick={0,1,...,8},% xtick={0,1},% ytick={0,0.1,...,0.3},ybar=0pt,bar width=1,bar shift=0pt,% font=\tiny]\addplot[fill=rwth-50] {unif(x,5)};\end{axis}\end{tikzpicture}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.4,]\begin{axis}[axis lines = left,xlabel = {$k$},ylabel = {$P(X=k)$},x label style={at={(axis description cs:1,0.1)},anchor=north},y label style={at={(axis description cs:-0.15,1)},rotate = -90,anchor=north},yticklabel style={/pgf/number format/fixed,% /pgf/number format/fixed zerofill,/pgf/number format/precision=2},ymin=0,ymax=0.45,xmin=-0.5,xmax=6.5,xtick={0,1,...,6},% ytick={0,0.1,...,0.3},ybar=0pt,bar width=1,bar shift=0pt,% font=\tiny]% Hypergeom N=12 K=8 n=5% [0. 0.01010101 0.14141414 0.42424242 0.35353535 0.07070707]\addplot[fill=rwth-50] coordinates{(0,0.0)(1,0.01010101)(2,0.14141414)(3,0.42424242)(4,0.35353535)(5,0.07070707)};% Hypergeom N=20 K=8 n=10% 0.00035723 0.00952608 0.07501786 0.24005716 0.35008335 0.24005716% 0.07501786 0.00952608 0.00035723 0. 0.% \addplot[fill=rwth-50] coordinates{% (0, 0.00035723)% (1, 0.00952608)% (2, 0.07501786)% (3, 0.24005716)% (4, 0.35008335)% (5, 0.24005716)% (6, 0.07501786)% (7, 0.00952608)% (8, 0.00035723)% (9, 0 )% (10, 0 )% };\end{axis}\end{tikzpicture}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.4]\begin{axis}[axis lines = left,xlabel = {$k$},ylabel = {$P(X=k)$},x label style={at={(axis description cs:1,0.1)},anchor=north},y label style={at={(axis description cs:-0.15,1)},rotate = -90,anchor=north},ymax=0.45,yticklabel style={/pgf/number format/fixed,% /pgf/number format/fixed zerofill,/pgf/number format/precision=2},ymin=0,xmin=-0.5,xmax=11.5,xtick={0,1,...,11},% ytick={0,0.25,...,1},ybar=0pt,bar width=1,bar shift=0pt,% font=\tiny]% Geometric p=0.4, up to r=11% [0.4 0.24 0.144 0.0864 0.05184 0.031104% 0.0186624 0.01119744 0.00671846 0.00403108 0.00241865 0.00145119]\addplot[fill=rwth-50] coordinates {(0, 0.4)(1, 0.24)(2, 0.144)(3, 0.0864)(4, 0.05184)(5, 0.031104)(6, 0.0186624)(7, 0.01119744)(8, 0.00671846)(9, 0.00403108)(10, 0.00241865)(11, 0.00145119)};\end{axis}\end{tikzpicture}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.4,]\begin{axis}[axis lines = left,xlabel = {$k$},ylabel = {$P(X=k)$},x label style={at={(axis description cs:1,0.1)},anchor=north},y label style={at={(axis description cs:-0.15,1)},rotate = -90,anchor=north},yticklabel style={/pgf/number format/fixed,% /pgf/number format/fixed zerofill,/pgf/number format/precision=2},ymin=0,xmin=-0.5,xmax=9,xtick={0,1,...,8},ymax=0.3,ybar=0pt,bar width=1,bar shift=0pt,% font=\tiny]% Binomial n=8 p=0.4% [0.01679616 0.08957952 0.20901888 0.27869184 0.2322432 0.12386304% 0.04128768 0.00786432 0.00065536]\addplot[fill=rwth-50] coordinates {(0, 0.01679616)(1, 0.08957952)(2, 0.20901888)(3, 0.27869184)(4, 0.2322432)(5, 0.12386304)(6, 0.04128768)(7, 0.00786432)(8, 0.00065536)};\end{axis}\end{tikzpicture}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.4,]\begin{axis}[axis lines = left,xlabel = {$k$},ylabel = {$P(X=k)$},x label style={at={(axis description cs:1,0.1)},anchor=north},y label style={at={(axis description cs:-0.15,1)},rotate = -90,anchor=north},xmax=1.7,ymax=1,yticklabel style={/pgf/number format/fixed,% /pgf/number format/fixed zerofill,/pgf/number format/precision=2},ymin=0,xmin=-0.5,xtick={0,1},ytick={0,0.25,...,1},ybar=0pt,bar width=1,bar shift=0pt,% font=\tiny]\addplot[fill=rwth-50] coordinates {(0,0.75)(1,0.25)};\end{axis}\end{tikzpicture}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.5]\begin{axis}[axis lines = center,axis on top,xmin=-3.3,xmax=3.3,ymin=0,ymax=5.3,y=1cm,x=1cm,ytick={-0,...,5},xtick={-3,...,3},xlabel = x,ylabel = y,font=\tiny]\addplot [ name path = A, thick ] {x + 4};\addplot [ name path = B, thick ] {x + 1};\addplot [ name path = C, thick ] {-x + 4};\addplot [ name path = D, thick ] {-x + 1};\addplot[name path=top,draw=none] {5.3};\addplot[name path=bottom,draw=none] {0};\addplot[pattern=north west lines,pattern color=blue!30] fillbetween[of=A and top];\addplot[pattern=north west lines,pattern color=blue!30] fillbetween[of=C and top];\addplot[pattern=north west lines,pattern color=blue!30] fillbetween[of=B and bottom];\addplot[pattern=north west lines,pattern color=blue!30] fillbetween[of=D and bottom];\addplot[only marks,mark=o] coordinates {(0, 4)(-1, 3) (0, 3) (1, 3)(-1, 2) (0, 2) (1, 2)(0, 1)};\addplot[fill=red,fill opacity=0.20] fill between [of=B and bottom,softclip={domain=0:1.5}];\addplot[fill=red,fill opacity=0.20] fill between [of=D and bottom,softclip={domain=-1.5:0}];\end{axis}\end{tikzpicture}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.5]\begin{axis}[axis lines = center,axis on top,xmin=-3.3,xmax=3.3,ymin=-3.3,ymax=3.3,y=1cm,x=1cm,ytick={-3,...,3},xtick={-3,...,3},xlabel = x,ylabel = y,font=\tiny]\addplot [% domain=-3:3,name path = A,thick,% pattern=north east lines,] {0.5*x + 1};\addplot[name path=C,draw=none] {3.3};\addplot [% domain={-1.65:3},name path = B,thick,% pattern=north east lines,] {0.5*x*x-2};\addplot[name path=D,draw=none] {-3.3};\addplot[pattern=north west lines,pattern color=blue!30] fill between[of=A and C];\addplot[pattern=north east lines,pattern color=red!30] fill between[of=B and D];\addplot[only marks,mark=o] coordinates {(2, 2)(0, 1) (1, 1) (2, 1)(-1, 0) (0, 0) (1, 0)(-1, -1) (0, -1) (1, -1)};\end{axis}\end{tikzpicture}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.5]\begin{axis}[axis lines = center,axis on top,xmin=-3.3,xmax=3.3,ymin=-3.3,ymax=3.3,y=1cm,x=1cm,ytick={-3,...,3},xtick={-3,...,3},xlabel = x,ylabel = y,font=\tiny]\addplot [% domain={-1.65:3},name path = B,thick,% pattern=north east lines,] {0.5*x*x-2};\addplot[name path=D,draw=none] {-3.3};\addplot[pattern=north east lines,pattern color=red!30] fill between[of=B and D];\addplot[only marks,mark=o] coordinates {(-3, 3) (-2, 3) (-1, 3) (0, 3) (1, 3) (2, 3) (3, 3)(-2, 2) (-1, 2) (0, 2) (1, 2) (2, 2)(-2, 1) (-1, 1) (0, 1) (1, 1) (2, 1)(-2, 1) (-1, 1) (0, 1) (1, 1) (2, 1)(-1, 0) (0, 0) (1, 0)(-1, -1) (0, -1) (1, -1)};\end{axis}\end{tikzpicture}
% TeX root = ../main.tex\begin{tikzpicture}[scale=0.5]\begin{axis}[axis lines = center,axis on top,xmin=-3.3,xmax=3.3,ymin=-3.3,ymax=3.3,y=1cm,x=1cm,ytick={-3,...,3},xtick={-3,...,3},xlabel = x,ylabel = y,font=\tiny]\addplot [% domain=-3:3,name path = A,thick,% pattern=north east lines,] {0.5*x + 1};\addplot[name path=C,draw=none] {3.3};\addplot[pattern=north west lines,pattern color=blue!30] fill between[of=A and C];\addplot[only marks,mark=o] coordinates {(2, 2) (3, 2)(0, 1) (1, 1) (2, 1) (3, 1)(-2, -0) (-1, -0) (0, -0) (1, -0) (2, -0) (3, -0)(-3,-1) (-2, -1) (-1, -1) (0, -1) (1, -1) (2, -1) (3, -1)(-3,-2) (-2, -2) (-1, -2) (0, -2) (1, -2) (2, -2) (3, -2)(-3,-3) (-2, -3) (-1, -3) (0, -3) (1, -3) (2, -3) (3, -3)};\addplot[only marks,mark=o,red!80] coordinates { (0, -2) };\end{axis}\end{tikzpicture}
\label{ch:preliminaries}\begin{comment}# Textbautsteine---For random program variables in this thesis, $\Omega$ will be the set ofintegers and $\mathcal{F}$ the maximal $\sigma$-field in $\Omega$, thepower-set $2^\Omega$. However since the program variables are chosen atrandom, a specific path over a given program can also be considered a randomevent in the probability space and hence be considered as a ransom variable.In this case $\Omega$ is the set of all runs $\mathcal{Runs}$. The exactdefinition will be introduced later on in \Sref{}.---\begin{definition}[Linear Constraints]Let $V$ be a fixed set of integerVariables $\{x_1, x_2, \dots, n\} $. A linear constraint is defined as $\psi= a_0 + a_1 x_1 + \dots + a_n x_n \diamond 0$ where $a_i \in \mathbb{N}$ areinteger coefficients, $x_i \in V$ are variables and $\diamond \in \{>, <,\geq, \leq, =\}$. \end{definition}
\section{Preliminaries}\label{sec:preliminaries}
\begin{definition}[Assignment]An assignment $\sigma : V \mapsto \mathbb{Z}$ assigns an integer value toeach variable in $V$. $\sigma$ is a solution for a linear constraint $\psi$\end{definition} \Common operations can be defined over probability distributions as well, whichwill be very handy in probabilistic integer programs. Given two probabilitydistributions $p$, and $q$, the following operations are defined:\begin{equation*}p \diamond q (x) = \sum_{\substack{i,j \in \Z \\ i \diamond j = x}} p(i)\cdot q(i) \hspace{1cm} \with \diamond \in \{+, \cdot\}\end{equation*}\todo{more operators?}In the context of this thesis the discrete bounded distributions will be used todescribe the possible values of a variable. They can be used as if they werenon-probabilistic values, for exymple andIt can be used inside theA note non-probabilistic (fixed) value $k$ is equivalent to a distribution whichassignes the probability $1$ to this fixed value $k$ and $0$ to every othervalue.program itself during assignments when setting a new value to a variable orduring analysis to describe the possible values of the variables at a certainconfiguration.\[p_k(x) = \begin{cases}1, & x = k \\0, & \text{otherwise}\end{cases}\]\end{comment}
}
\end{subcaptiongroup}% \subbottom[Formula $\varphi_1$]{% \centering% \input{figures/ch1_example1_phi1}% }% \subbottom[Formula $\varphi_2$]{% \centering% \input{figures/ch1_example1_phi2}% }% \subbottom[Formula $\varphi_3 = \varphi_1 \land \varphi_2$]{% \centering% \input{figures/ch1_example1_phi3}% }
definitions from \cite{alma991005910089706448}. For additional information wewill refer to the literature.
definitions from \cite{billingsley2011}. For additional information wewill refer to the literature.\cite{kraaikamp2005modern, billingsley2011}
% For random program variables in this thesis, $\Omega$ will be the set of% integers and $\mathcal{F}$ the maximal $\sigma$-field in $\Omega$, the power-set% $2^\Omega$. However since the program variables are chosen at random, a specific% path over a given program can also be considered a random event in the% probability space and hence be considered as a ransom variable. In this case% $\Omega$ is the set of all runs $\mathcal{Runs}$. The exact definition will be% introduced later on in \Sref{}.
The concept of random variables is not to be confused with program variables orvariables in formulas. Colloquially, a random variable maps the results of aprobabilistic event $\omega$ to a real value, or, the value of the randomvariable depends on the outcome of a probabilistic event.
The concept of random variables is not to be confused with programvariables or variables in formulas. Random variables assign a probabilityto an event of a probability space, whereas variables in formulas can be boundto a value by an assignment or existentially quantified.
A discrete bounded probability distribution gives a probability to everypossible integer and can be seen as a function $q: \Z \mapsto [0,1]$ where allvalues of $q$ add up to $1$, that is $\sum_{x\in\Z} q(x) = 1$.
The distribution of a variable is a way of describing a random variable and theunderlying probability space. In case of discrete random variables the aresufficient to fully describe them. The underlying event space $\Omega$ becomesirrelevant at this point, as the specific events and their probabilities are notimportant to the outcome of the random variable, as long as the probability ofthe outcome is fully defined.
\begin{definition}[Linear Constraints]Let $V$ be a fixed set of integerVariables $\{x_1, x_2, \dots, n\} $. A linear constraint is defined as $\psi= a_0 + a_1 x_1 + \dots + a_n x_n \diamond 0$ where $a_i \in \mathbb{N}$ areinteger coefficients, $x_i \in V$ are variables and $\diamond \in \{>, <,\geq, \leq, =\}$. \end{definition}
\begin{definition}[Distribution of a random variable]Let $X$ be a discrete random variable. The distribution is describe by theprobability measure $\mu: \Z \rightarrow \R$ with\begin{align}\mu(A) = P(\set{\omega \in \Omega}{X(\omega) \in A})\end{align}\end{definition}
\begin{definition}[Assignment]An assignment $\sigma : V \mapsto \mathbb{Z}$ assigns an integer value toeach variable in $V$. $\sigma$ is a solution for a linear constraint $\psi$\end{definition} \
The probability of a single value is well defined by the distribution asfollows:\begin{align}P(X=r) = \mu(\{r\}) = P(\set{\omega \in \Omega}{X(\omega) = r})\end{align}
Common operations can be defined over probability distributions as well, whichwill be very handy in probabilistic integer programs. Given two probabilitydistributions $p$, and $q$, the following operations are defined:\begin{equation*}p \diamond q (x) = \sum_{\substack{i,j \in \Z \\ i \diamond j = x}} p(i)\cdot q(i) \hspace{1cm} \with \diamond \in \{+, \cdot\}\end{equation*}\todo{more operators?}
\begin{definition}[Support]For a random variable with a distribution $\mu$, the support is smallestBorel-set $S$ for which $\mu(S) = 1$. \todo{why borel set?} Discrete randomvariables have a countable support $S = \{S_1, S_2, \dots\}$.\begin{align}\text{supp}(\mu) = \set{x \in \N}{P(X = x) > 0}\end{align}\end{definition}
In the context of this thesis the discrete bounded distributions will be used todescribe the possible values of a variable. They can be used as if they werenon-probabilistic values, for exymple andIt can be used inside theA note non-probabilistic (fixed) value $k$ is equivalent to a distribution whichassignes the probability $1$ to this fixed value $k$ and $0$ to every othervalue.
There are many common probability distributions. \gls{koat} uses five of them,the Bernoulli, Uniform, Geometric, Hypergeometric and Binomial distributions.They will be briefly introduced in this section, following the definitionsfrom \cite{kraaikamp2005modern}. Examples for the various probabilitydistributions are displayed in \fref{fig:distributions}.
program itself during assignments when setting a new value to a variable orduring analysis to describe the possible values of the variables at a certainconfiguration.
\subsection{Bernoulli Distribution}\label{sec:bernoulli}The Bernoulli distribution is a distribution with two possible outcomes: $1$ and $0$. Forexample decided by a coin-flip.\begin{definition}[Bernoulli Distribution]A discrete random variable $X$ follows a \textit{Bernoulli distribution}parameterized by $p \in [0,1]$ if its probability is given by $P(X=1) = p$and $P(X=0) = 1-p$.\end{definition}
The resulting
\subsection{Uniform Distribution}\label{sec:uniform}The uniform distribution is a distribution where every value in a certain rangehas the same probability.\begin{definition}A discrete random variable $X$ follows a \textit{discrete uniformdistribution} on the interval $[a, b]$, if its probability is given by\begin{align}P(X=k) &= \begin{cases}\frac{1}{b-a} & \text{if} , a \leq k \leq b \\0 & \text{otherwise}\end{cases} & \text{for } k\in\N\end{align}\end{definition}The support of a uniform distribution is as follows:\begin{align}\text{supp}(\textsc{Unif}(a, b)) = \{a, a+1, \dots, b-1, b\}\end{align}\subsection{Geometric distribution}The geometric distribution is related to the Bernoulli distribution. A series ofindependent Bernoulli events is repeated until a false result is encountered.The number of repetition is the result to the geometric distribution.\begin{definition}A discrete random variable $X$ follows a \textit{geometric distribution}parameterized by $p$ (the probability of the repeated Bernoulli event) with$0 < p \leq 1$, if its probability is given by\begin{align}P(X=k)&=(1-p)^{k-1}p & \text{for } k = 1, 2, \dots\end{align}\end{definition}The support of a geometric distribution is as follows:\begin{align}\text{supp}(\textsc{Geom}(p)) = \N^+\end{align}\subsection{Hypergeometric Distribution}The hypergeometric distribution describes counting the number of successes whensampling from population with a certain number of successes without puttingback.\begin{definition}[Hypergeometric Distribution]A discrete random variable $X$ follows a \textit{hypergeometricdistribution} with a population of size $N$, $K < N$ successes therein, and$n < N$ samples, if its probability is given by\begin{align}P(X=k) &= \frac{\binom{K}{k} \binom{N-K}{n-k}}{\binom{N}{n}} & \text{for} k = 0, \dots, n\end{align}\end{definition}
The support of a hypergeometric distribution is as follows: \todo{elaborate}\begin{align}\text{supp}(\textsc{Hyper}(N, K, n)) = \{\max(0, n+K-N), \dots, \min (n, K)\}\end{align}\subsection{Binomial Distribution}The binomial distribution similar to the geometric distribution except that thenumber of successes of repeated independent Bernoulli events is counted.Or (\enquote{with putting back}).\begin{definition}[Binomial Distribution]A discrete random variable $X$ follows a \textit{binomial distribution} with$n$ Bernoulli events of a probability $p$, with $0 < p < 1$, if itsprobability is given by\begin{align}P(X=k)&=\binom{n}{k} p^k (1-p)^{n-k} & \text{for } k = 0,\dots,n\end{align}\end{definition}The support of a binomial distribution is as follows:\begin{align}\text{supp}(\textsc{Binom}(n, p))=\{0,\dots,n\}\end{align}\begin{figure}\centering\begin{subcaptionblock}[t]{0.3\textwidth}\centering\input{figures/ch2_distributions_bern}\caption{Bernoulli $p = 0.25$}\end{subcaptionblock}\begin{subcaptionblock}[t]{.3\textwidth}\centering\input{figures/ch2_distributions_unif}\caption{Uniform $a = 2, b=6$}\end{subcaptionblock}\begin{subcaptionblock}[t]{.3\textwidth}\centering\input{figures/ch2_distributions_geom}\caption{Geometric $p = 0.4$}\end{subcaptionblock}\begin{subcaptionblock}[t]{.35\textwidth}\input{figures/ch2_distributions_hyper}\caption{Hypergeometric $N=12,$ \\$K=8, n=5$}\end{subcaptionblock}\begin{subcaptionblock}[t]{.35\textwidth}\centering\input{figures/ch2_distributions_bino}\caption{Binomial $p=0.4, n=8$}\end{subcaptionblock}\caption{Examples of common probability distributions. \label{fig:distributions}}\end{figure}