\documentclass[11 pt,xcolor={dvipsnames,svgnames,x11names,table}]{beamer} \usepackage[english]{babel} \usepackage{polski} \usepackage[skins,theorems]{tcolorbox} \tcbset{highlight math style={enhanced, colframe=red,colback=white,arc=0pt,boxrule=1pt}} \usetheme[ bullet=circle, % Other option: square bigpagenumber, % circled page number on lower right topline=true, % colored bar at the top of the frame shadow=false, % Shading for beamer blocks watermark=BG_lower, % png file for the watermark ]{Flip} %\logo{\kern+1.em\includegraphics[height=1cm]{SHiP-3_LightCharcoal}} \usepackage[lf]{berenis} \usepackage[LY1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{emerald} \usefonttheme{professionalfonts} \usepackage[no-math]{fontspec} \usepackage{listings} \defaultfontfeatures{Mapping=tex-text} % This seems to be important for mapping glyphs properly \setmainfont{Gillius ADF} % Beamer ignores "main font" in favor of sans font \setsansfont{Gillius ADF} % This is the font that beamer will use by default % \setmainfont{Gill Sans Light} % Prettier, but harder to read \setbeamerfont{title}{family=\fontspec{Gillius ADF}} \input t1augie.fd %\newcommand{\handwriting}{\fontspec{augie}} % From Emerald City, free font %\newcommand{\handwriting}{\usefont{T1}{fau}{m}{n}} % From Emerald City, free font % \newcommand{\handwriting}{} % If you prefer no special handwriting font or don't have augie %% Gill Sans doesn't look very nice when boldfaced %% This is a hack to use Helvetica instead %% Usage: \textbf{\forbold some stuff} %\newcommand{\forbold}{\fontspec{Arial}} \usepackage{graphicx} \usepackage[export]{adjustbox} \usepackage{amsmath, amssymb} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{bm} \usepackage{colortbl} \usepackage{mathrsfs} % For Weinberg-esque letters \usepackage{cancel} % For "SUSY-breaking" symbol \usepackage{slashed} % for slashed characters in math mode \usepackage{bbm} % for \mathbbm{1} (unit matrix) \usepackage{amsthm} % For theorem environment \usepackage{multirow} % For multi row cells in table \usepackage{arydshln} % For dashed lines in arrays and tables \usepackage{siunitx} \usepackage{xhfill} \usepackage{grffile} \usepackage{textpos} \usepackage{subfigure} \usepackage{tikz} \usepackage{hyperref} %\usepackage{hepparticles} \usepackage[italic]{hepparticles} \usepackage{hepnicenames} % Drawing a line \tikzstyle{lw} = [line width=20pt] \newcommand{\topline}{% \tikz[remember picture,overlay] {% \draw[crimsonred] ([yshift=-23.5pt]current page.north west) -- ([yshift=-23.5pt,xshift=\paperwidth]current page.north west);}} % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % \usepackage{tikzfeynman} % For Feynman diagrams \usetikzlibrary{arrows,shapes} \usetikzlibrary{trees} \usetikzlibrary{matrix,arrows} % For commutative diagram % http://www.felixl.de/commu.pdf \usetikzlibrary{positioning} % For "above of=" commands \usetikzlibrary{calc,through} % For coordinates \usetikzlibrary{decorations.pathreplacing} % For curly braces % http://www.math.ucla.edu/~getreuer/tikz.html \usepackage{pgffor} % For repeating patterns \usetikzlibrary{decorations.pathmorphing} % For Feynman Diagrams \usetikzlibrary{decorations.markings} \tikzset{ % >=stealth', %% Uncomment for more conventional arrows vector/.style={decorate, decoration={snake}, draw}, provector/.style={decorate, decoration={snake,amplitude=2.5pt}, draw}, antivector/.style={decorate, decoration={snake,amplitude=-2.5pt}, draw}, fermion/.style={draw=gray, postaction={decorate}, decoration={markings,mark=at position .55 with {\arrow[draw=gray]{>}}}}, fermionbar/.style={draw=gray, postaction={decorate}, decoration={markings,mark=at position .55 with {\arrow[draw=gray]{<}}}}, fermionnoarrow/.style={draw=gray}, gluon/.style={decorate, draw=black, decoration={coil,amplitude=4pt, segment length=5pt}}, scalar/.style={dashed,draw=black, postaction={decorate}, decoration={markings,mark=at position .55 with {\arrow[draw=black]{>}}}}, scalarbar/.style={dashed,draw=black, postaction={decorate}, decoration={markings,mark=at position .55 with {\arrow[draw=black]{<}}}}, scalarnoarrow/.style={dashed,draw=black}, electron/.style={draw=black, postaction={decorate}, decoration={markings,mark=at position .55 with {\arrow[draw=black]{>}}}}, bigvector/.style={decorate, decoration={snake,amplitude=4pt}, draw}, } % TIKZ - for block diagrams, % from http://www.texample.net/tikz/examples/control-system-principles/ % \usetikzlibrary{shapes,arrows} \tikzstyle{block} = [draw, rectangle, minimum height=3em, minimum width=6em] \usetikzlibrary{backgrounds} \usetikzlibrary{mindmap,trees} % For mind map \newcommand{\degree}{\ensuremath{^\circ}} \newcommand{\E}{\mathrm{E}} \newcommand{\Var}{\mathrm{Var}} \newcommand{\Cov}{\mathrm{Cov}} \newcommand\Ts{\rule{0pt}{2.6ex}} % Top strut \newcommand\Bs{\rule[-1.2ex]{0pt}{0pt}} % Bottom strut \def\ARROW{{\color{JungleGreen}{$\Rrightarrow$}}\xspace} \graphicspath{{images/}} % Put all images in this directory. Avoids clutter. % SOME COMMANDS THAT I FIND HANDY % \renewcommand{\tilde}{\widetilde} % dinky tildes look silly, dosn't work with fontspec %\newcommand{\comment}[1]{\textcolor{comment}{\footnotesize{#1}\normalsize}} % comment mild %\newcommand{\Comment}[1]{\textcolor{Comment}{\footnotesize{#1}\normalsize}} % comment bold %\newcommand{\COMMENT}[1]{\textcolor{COMMENT}{\footnotesize{#1}\normalsize}} % comment crazy bold \newcommand{\Alert}[1]{\textcolor{Alert}{#1}} % louder alert \newcommand{\ALERT}[1]{\textcolor{ALERT}{#1}} % loudest alert %% "\alert" is already a beamer pre-defined \newcommand*{\Scale}[2][4]{\scalebox{#1}{$#2$}}% \def\Put(#1,#2)#3{\leavevmode\makebox(0,0){\put(#1,#2){#3}}} \usepackage{gmp} \usepackage[final]{feynmp-auto} \usepackage[backend=bibtex,style=numeric-comp,firstinits=true]{biblatex} \bibliography{bib} \setbeamertemplate{bibliography item}[text] \makeatletter\let\frametextheight\beamer@frametextheight\makeatother % suppress frame numbering for backup slides % you always need the appendix for this! \newcommand{\backupbegin}{ \newcounter{framenumberappendix} \setcounter{framenumberappendix}{\value{framenumber}} } \newcommand{\backupend}{ \addtocounter{framenumberappendix}{-\value{framenumber}} \addtocounter{framenumber}{\value{framenumberappendix}} } \definecolor{links}{HTML}{2A1B81} %\hypersetup{colorlinks,linkcolor=,urlcolor=links} % For shapo's formulas: \def\lsi{\raise0.3ex\hbox{$<$\kern-0.75em\raise-1.1ex\hbox{$\sim$}}} \def\gsi{\raise0.3ex\hbox{$>$\kern-0.75em\raise-1.1ex\hbox{$\sim$}}} \newcommand{\lsim}{\mathop{\lsi}} \newcommand{\gsim}{\mathop{\gsi}} \newcommand{\wt}{\widetilde} %\newcommand{\ol}{\overline} \newcommand{\Tr}{\rm{Tr}} \newcommand{\tr}{\rm{tr}} \newcommand{\eqn}[1]{&\hspace{-0.7em}#1\hspace{-0.7em}&} \newcommand{\vev}[1]{\rm{$\langle #1 \rangle$}} \newcommand{\abs}[1]{\rm{$\left| #1 \right|$}} \newcommand{\eV}{\rm{eV}} \newcommand{\keV}{\rm{keV}} \newcommand{\GeV}{\rm{GeV}} \newcommand{\im}{\rm{Im}} \newcommand{\disp}{\displaystyle} \def\be{\begin{equation}} \def\ee{\end{equation}} \def\ba{\begin{eqnarray}} \def\ea{\end{eqnarray}} \def\d{\partial} \def\l{\left(} \def\r{\right)} \def\la{\langle} \def\ra{\rangle} \def\e{{\rm e}} \def\Br{{\rm Br}} \def\fixme{{\color{red} FIXME!}} \def\mc{{\color{Magenta}{MC}}} \def\pdf{{\rm p.d.f.}} \def\cdf{{\rm c.d.f.}} \newcommand*{\QEDA}{\hfill\ensuremath{\blacksquare}}% \newcommand*{\QEDB}{\hfill\ensuremath{\square}}% \author{ {\fontspec{Trebuchet MS}Marcin Chrz\k{a}szcz} (CERN)} \institute{UZH} \title[Random number generators and application]{Random number generators and application} \date{\fixme} \begin{document} \tikzstyle{every picture}+=[remember picture] { \setbeamertemplate{sidebar right}{\llap{\includegraphics[width=\paperwidth,height=\paperheight]{bubble2}}} \begin{frame}[c]%{\phantom{title page}} \begin{center} \begin{center} \begin{columns} \begin{column}{0.9\textwidth} \flushright\fontspec{Trebuchet MS}\bfseries \Huge {Random number generators and application} \end{column} \begin{column}{0.2\textwidth} %\includegraphics[width=\textwidth]{SHiP-2} \end{column} \end{columns} \end{center} \quad \vspace{3em} \begin{columns} \begin{column}{0.44\textwidth} \flushright \vspace{-1.8em} {\fontspec{Trebuchet MS} \Large Marcin Chrząszcz\\\vspace{-0.1em}\small \href{mailto:mchrzasz@cern.ch}{mchrzasz@cern.ch}} \end{column} \begin{column}{0.53\textwidth} \hspace{0.3\textwidth}\includegraphics[height=1.3cm]{cern} \end{column} \end{columns} \vspace{1em} % \footnotesize\textcolor{gray}{With N. Serra, B. Storaci\\Thanks to the theory support from M. Shaposhnikov, D. Gorbunov}\normalsize\\ \vspace{0.5em} \textcolor{normal text.fg!50!Comment}{Experimental Methods in Particle Physics, \\ 5 October, 2017} \end{center} \end{frame} } \begin{frame}\frametitle{Random and pseudorandom numbers} \begin{exampleblock}{John von Neumann:} ''Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin. For, as has been pointed out several times, there is no such thing as a random number — there are only methods to produce random numbers, and a strict arithmetic procedure of course is not such a method.'' \end{exampleblock} $\color{PineGreen}\Rrightarrow$ Random number: a given value that is taken by a random variable $ \twoheadrightarrow$ by definition cannot be predicted.\\ %$\color{PineGreen}\Rrightarrow$ Sequence of random numbers $\twoheadrightarrow$ $\color{PineGreen}\Rrightarrow$ Sources of truly random numbers: \begin{itemize} \item Mechanical \item Physical \end{itemize} $\color{PineGreen}\Rrightarrow$ Disadvantages of physical generators: \begin{itemize} \item To slow for typical applications, especially the mechanical ones! \item Not stable; small changes in boundary conditions might lead to completely different results! \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Random numbers - history remark} $\color{PineGreen}\Rrightarrow$ In the past there were books with random numbers: \begin{center} \includegraphics[width=0.55\textwidth]{images/million-random-digits-open.jpg} \end{center} $\color{PineGreen}\Rrightarrow$ It's obvious that they didn't become very popular ;)\\ $\color{PineGreen}\Rrightarrow$ This methods are comming back!\\ $\color{PineGreen}\twoheadrightarrow$ Storage device are getting more cheap and bigger (CD, DVD).\\ $\color{PineGreen}\twoheadrightarrow$ 1995: G. Marsaglia, $650\rm MB$ of random numbers, ''White and Black Noise''. \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Pseudorandom numbers} $\color{PineGreen}\Rrightarrow$ Pseudorandom numbers are numbers that are generated accordingly to strict mathematical formula. \\ $\color{PineGreen}\looparrowright$ Strictly speaking they are non random numbers, how ever they have all the statistical properties of random numbers.\\ $\color{PineGreen}\looparrowright$ Discussing those properties is a wide topic so let's just say that without knowing the formula they are generated by one cannot say if those numbers are random or not.\\ $\color{PineGreen}\Rrightarrow$ Mathematical methods of producing pseudorandom numbers: \begin{itemize} \item Good statistical properties of generated numbers. \item Easy to use and fast! \item Reproducible! \end{itemize} $\color{PineGreen}\Rrightarrow$ Since mathematical pseudorandom genrators are dominantly: pseudorandom $\rightarrowtail$ random. \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Middle square generator; von Neumann} $\color{PineGreen}\Rrightarrow$ The first mathematical generator (middle square) was proposed by von Neumann (1964).\\{~}\\ $\color{PineGreen}\looparrowright$ Formula: $ \tcbhighmath[fuzzy halo=0.5mm with PineGreen!50!white,arc=0.1pt, boxrule=0pt,frame hidden]{ X_n= \lfloor X_{n-1}^2\cdot 10 ^{-m} \rfloor - \lfloor X_{n-1}^2\cdot 10^{-3m} \rfloor \cdot 10^{2m}} $ $\color{PineGreen}\looparrowright$ where $X_0$ is a constant (seed), $\lfloor\cdot\rfloor$ is the cut-off of a number to integer.\\ $\color{PineGreen}\Rrightarrow$ Example:\\ {~}{~}Let's put $m=2$ and $X_0=2045$:\\ \begin{columns} \column{0.1\textwidth} {~} \column{0.4\textwidth} $\color{PineGreen}\looparrowright$ $X_0^2=\underbrace{04}_{\rm rej}1820\underbrace{25}_{\rm rej}$ \column{0.3\textwidth} $\Rightarrow X_1=1820$ \end{columns} \begin{columns} \column{0.1\textwidth} {~} \column{0.4\textwidth} $\color{PineGreen}\looparrowright$ $X_1^2=\underbrace{03}_{\rm rej}3124\underbrace{00}_{\rm rej}$ \column{0.3\textwidth} $\Rightarrow X_1=3124$ \end{columns} $\color{PineGreen}\looparrowright$ Simple generator but unfortunately quite bad generator. Firstly the sequences are very short and strongly dependent on the $X_0$ number. \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Linear generators $\rm \color{RubineRed}{Lecture2/Linear\_gen1}$} $\color{PineGreen}\Rrightarrow$ This was a first generator written and it's a good example how to not write generators.\\ $\color{PineGreen}\Rrightarrow$ It's highly non stable! \includegraphics[width=0.8\textwidth]{images/shit.png} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Linear generators} $\color{PineGreen}\Rrightarrow$ General equation: \begin{equation} \tcbhighmath[fuzzy halo=0.5mm with PineGreen!50!white,arc=0.1pt, boxrule=0pt,frame hidden]{X_n=(a_1X_{n-1} + a_2X_{n-2}+...+a_kX_{n-k}+c)~{\rm mod}~m ,} \nonumber \end{equation} $\color{PineGreen}\looparrowright$ where $a_i,c,m$ are parameters of a generator(integer numbers).\\ $\color{PineGreen}\looparrowright$ Generator initialization $\color{PineGreen} \rightleftarrows$ setting those parameters.\\ $\color{PineGreen}\Rrightarrow$ Very old generators. (often used in Pascal, or first C versions): \begin{columns} \column{0.1\textwidth} {~} \column{0.8\textwidth} $k=1:~X_n=(aX_{n-1} +c )~{\rm mod} m,$ $c= \begin{cases} =0, {\rm multiplicative geneator}\\ \neq 0, {\rm mix geneator} \end{cases} $ \column{0.1\textwidth} {~} \end{columns} $\color{PineGreen}\Rrightarrow$ The period can be achieved by tuning the seed parameters:\\ $P_{{\rm max}}= \begin{cases} 2^{L-2};~{\rm for~} m=2^L\\ m-1;~{\rm for~} m= {\rm prime~number} \end{cases} $ \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Shift register generator} \begin{small} $\color{PineGreen}\Rrightarrow$ General equation: \begin{equation} \tcbhighmath[fuzzy halo=0.5mm with PineGreen!50!white,arc=0.1pt, boxrule=0pt,frame hidden]{b_n=(a_1X_{n-1} + a_2X_{n-2}+...+a_kX_{n-k}+c)~{\rm mod}~2 ,} \nonumber \end{equation} where $a_i \subset(\lbrace0,1\rbrace )$\\ $\color{PineGreen}\Rrightarrow$ Super fast and easy to implement due to: $(a+b) ~{\rm mod}~2 = a~{\rm xor}~b$ \begin{center} \begin{tabular}{||c|c|c||} \hline \hline a & b & a xor b\\ \hline 0 & 0 & 0\\ 1 & 0 & 1\\ 0 & 1 & 1\\ 1 & 1 & 0\\ \hline \hline \end{tabular} \end{center} $\color{PineGreen}\Rrightarrow$ Maximal period is $2^k-1$.\\ $\color{PineGreen}\Rrightarrow$ Example (Tausworths generator):\\ $a_p=a_q=1$, other $a_i=0$ and $p>q$. Then: $b_n=b_{n-p}~{\rm xor}~b_{n-q}$ $\color{PineGreen}\Rrightarrow$ How to get numbers from bits (for example):\\ $U_i = \sum_{j=1}^L 2^{-j} b_{is+j},~s<L$. \end{small} \end{frame} \iffalse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Fibonacci generator} \begin{small} $\color{PineGreen}\Rrightarrow$ In 1202 Fibonacci with Leonardo in Piza: \begin{equation} f_n=f_{n-2}+f_{n-1},~n\geqslant 2 \nonumber \end{equation} $\color{PineGreen}\Rrightarrow$ Based on this first generator was created (Taussky and Todd, 1956): \begin{equation} X_n=(X_{n-2}+X_{n-1})~{\rm mod}~m,~n\geqslant 2 \nonumber \end{equation} This generator isn't so good in terms of statistics tests.\\ $\color{PineGreen}\Rrightarrow$ Generalization: \begin{equation} X_n=(X_{n-r} \odot X_{n-s})~{\rm mod}~m,~n \geqslant r ,~s \geqslant 1 \nonumber \end{equation}\begin{center} \begin{tabular}{||c|c|c||} \hline \hline $\bigodot$ & $P_{max}$ & Stat. properties \\ \hline $+,-$ & $(2^r-1)2^{L-1}$ & good \\ $x$ & $(2^r-1)2^{L-13}$ & very good \\ $xor$ & $(2^r-1)$ & poor \\ \hline \hline \end{tabular} \end{center} \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Multiply with carry, generator} \begin{small} $\color{PineGreen}\Rrightarrow$ We start from: \begin{equation} b_n=(a_1X_{n-1} + a_2X_{n-2}+...+a_kX_{n-k}+c)~{\rm mod}~m, \nonumber \end{equation} where $a_1,..,a_k \in \mathbb{N}$ are constant parameters.\\ $\color{PineGreen}\Rrightarrow$ The c parameters is calculated foe each step: \begin{equation} c=\lfloor (a_1X_{n-1} + a_2X_{n-2}+...+a_kX_{n-k}+c)/m\rfloor, \nonumber \end{equation} $\color{PineGreen}\Rrightarrow$ Initialization: $a_1,..,a_k,c$.\\ $\color{PineGreen}\Rrightarrow$ Advantages: \begin{itemize} \item Fast and easy to implement. \item Large period. \item Good statistical properties. \item First proposed by Marsaglia. \end{itemize} \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Subtract with borrow, generator} \begin{small} $\color{PineGreen}\Rrightarrow$ Created again by Marsaglia (1991): \begin{equation} X_n=(X_{n-r} \circleddash X_{n-s})~{\rm mod}~m,~r,s \nonumber \in \mathbb{N}, \end{equation} where : \begin{equation} x \circleddash y = \begin{cases} x-y-c +m,~c=1,~{\rm{ when~x-y-c<0}}\\ x-y-c,~c=0,~{\rm{ when~x-y-c\geq0}} \nonumber \end{cases} \end{equation} $\color{PineGreen}\Rrightarrow$ Initialization: $X_1,...,X_{n-r}$ and $c=0$.\\ $\color{PineGreen}\Rrightarrow$ Fast and easy :)\\ $\color{PineGreen}\Rrightarrow$ Fails some of the basic statistics tests. \end{small} \end{frame} \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Non linear generators} \begin{small} $\color{PineGreen}\Rrightarrow$ The natural solutions to problems of linear generators are the non-linear generators (second part of 1980s).\\ $\color{PineGreen}\Rrightarrow$ Eichenauera i Lehna (1986): \begin{equation} X_n= (a X_{n−1}^{-1} + b)~{\rm mod}~m, \nonumber \end{equation} $\color{PineGreen}\Rrightarrow$ Eichenauera-Hermanna (1993) \begin{equation} X_n= [a(n+n_0)+b]^{-1}~{\rm mod}~m, \nonumber \end{equation} $\color{PineGreen}\Rrightarrow$ L. Blum, M. Blum, Shub (1986): \begin{equation} X_n= X_{n-1}^2~{\rm mod}~m, \nonumber \end{equation} $\color{PineGreen}\rightarrowtail$ Very popular in cryptography.\\ $\color{PineGreen}\Rrightarrow$ Pros and cons: \begin{itemize} \item {\color{PineGreen}{They all pass all statistical tests.}} \item {\color{red}{Much slower then linear generators.}} \end{itemize} \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%5 %% Stat tests$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{\texttt{RANLUX} generator} \begin{small} $\color{PineGreen}\Rrightarrow$ All described generators are based on some mathematical algorithms and recursion. The typical scheme is of constructing a MC generator: \begin{itemize} \item Think of a formula that takes some initial values. \item Generate large number of random numbers and put them through statistical tests. \item If the test are positive we accept the the generator. \end{itemize} $\color{PineGreen}\Rrightarrow$ Now let's think: why the hell numbers obtained that way are showing some random number properties?\pause ~There is no science behind it, it's pure luck!\\ $\color{PineGreen}\Rrightarrow$ M.Luscher (1993) \href{http://arxiv.org/pdf/hep-lat/9309020v1.pdf}{hep-lat/9309020}\\ $\color{PineGreen}\Rrightarrow$ Generator RANLUX based on Kolomogorow entropy and Lyapunov exponent. { \color{PineGreen} Effectively we are building inside the generator the chaos theory}.\\ $\color{PineGreen}\Rrightarrow$ RANLUX and Mersenne Twister (TRandom1, TRandom3) are the 2 most powerful generators in the world that passed every known statistical test. \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Chaos theory in a nut shell} \begin{small} \begin{columns} \column{0.1in} {~} \column{3in} $\color{PineGreen}\Rrightarrow$ We know that the solution of classical systems is described by trajectory in phase spaces. Now the problem with this picture starts to be when arround one point in this phase space we are getting more and more trajectories that are drifting a part later on.\\ $\color{PineGreen}\Rrightarrow$ The Lyapunov exponent tells us how a two solutions drift apart with time: \begin{equation} \vert \delta X(t) \vert \approx e^{\lambda t} \vert \delta X_0 \vert \nonumber \end{equation} $\color{PineGreen}\Rrightarrow$ Kolomogorow entropy: \begin{equation} h_K = \int_P \lambda d \mu \nonumber \end{equation} \column{2in} \includegraphics[width=0.9\textwidth]{images/Focal_stability.png}\\ \includegraphics[width=0.9\textwidth]{images/LogisticMap_BifurcationDiagram.png} \end{columns} \end{small} \end{frame} \begin{frame}\frametitle{Reverting the \cdf} \begin{footnotesize} \begin{alertblock}{~} \ARROW Let $U$ be a random variable from $\mathcal{U}(0,1)$\\ \ARROW Now let $F$ be a non decreasing function such that: \begin{align*} F(- \infty) =0~~~~F(\infty)=1 \end{align*} then: \begin{align*} X=F^{-1}(U) \end{align*} has a \pdf~ distribution with a \cdf~function of F. \end{alertblock} \ARROW Prove: \begin{align*} F(x)=\mathcal{P}(U\leq F(x))=\mathcal{P}(F^{-1}(U) \leq x) = \mathcal{P}(X \leq x) ~~~~ \QEDB \end{align*} \ARROW So it looks very simple if $x_1,X_2,...,X_n$ are random variables from $\mathcal{U}(0,1)$ then: $\lbrace X_i=F^{-1}(x_i)\rbrace,i=1,...,n$ is the sequence that has a \cdf~distirbution of $F$. \end{footnotesize} \end{frame} \begin{frame}\frametitle{Reverting the \cdf, examples} \begin{footnotesize} \ARROW The exponential distribution: $E(0,1)$. \\ \ARROW The \pdf : $\rho(X)=e^{-X},~X \geq 0$.\\ \ARROW The \cdf : $F(x) = \int_0^x e^{-X} dX= 1- e^{-x}.$\\ \ARROW Now let $R \in \mathcal{U}(0,1):~R=F(X)=1-e^{-X} \longrightarrow X = -\ln(1-R)$\\ \ARROW Now we can play a trick: if $R \in \mathcal{U}(0,1)$ then $1-R$ also in $\mathcal{U}(0,1)$. \\ \ARROW In the end we get: $X=-\ln(R)$ \\ {~}\\ \ARROW Use the reverting to generate the following distributions: \begin{itemize} \item E 6.1 $\rho(X)= \dfrac{c}{X}$ on the interval $[a,b]$, where $0<a<b<\infty$. \item E6.2 The Breit-Wigner function: \begin{align*} \rho_{\theta,\lambda}(X)=\dfrac{\lambda}{\pi} \dfrac{1}{(X-\theta)^2 + \lambda^2} \end{align*} Hit: First do $C(0,1)$ then transform the variables. \end{itemize} \end{footnotesize} \end{frame} \begin{frame}\frametitle{Reverting the \cdf, general case} \begin{footnotesize} \begin{alertblock} \ARROW Lets assume: $F$ - non decreasing function such that: $F(-\infty)=0$ and $F(\infty)=1$. Then a random variable $X$: \begin{align*} X=\inf \lbrace x: U \leq F(x) \rbrace \end{align*} has a distribution with a \cdf~of $F$ \end{alertblock} \begin{center} \includegraphics[width=0.5\textwidth]{images/code.png} \end{center} \ARROW E6.3 Using the above example please generate the \pdf~accordingly to: \begin{equation} \mathcal{ P}(X=k) =p_k=A \sin (\dfrac{\pi}{10}\left[k+\dfrac{1}{2}\right])\nonumber \end{equation} where $A$ is the normalization constant (calculate it!). From the generated numbers make a histogram and compare to the exact function. \end{footnotesize} \end{frame} \begin{frame}\frametitle{Reverting the \cdf, pros and cons} \begin{footnotesize} \ARROW Pros: \begin{itemize} \item Very accurate method. \item Fast and easy. \item To generate one random number from \cdf~you need one random number from $\mathcal{U}(0,1)$. \end{itemize} \ARROW Cons: \begin{itemize} \item Usually we require that the \cdf~is revertible analytically( small number of functions). \item If we use the numerical method of reverting the function, then it's much slower and less accurate. \item Super hard fro multidimensional distributions. \end{itemize} \ARROW Mathematical digression: Numerical reverting the \cdf : \begin{itemize} \item We look for the zero of the function: $F_u(X)\equiv F(X)-U$, where $U \in \mathcal{U}(0,1)$. \item $X_0=F^{-1}(U)$ \end{itemize} \end{footnotesize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{HEP simulation} \begin{small} $\color{PineGreen}\Rrightarrow$ There is some ambiguity what particle physicist call MC. Normally those are mathematical theorises but when we say MC we usually mean MC simulation of a physics process. $\color{PineGreen}\Rrightarrow$ There are plenty of things that need to be simulated: \only<1>{ \includegraphics[width=0.95\textwidth]{images/gen1.png} } \only<2>{ \includegraphics[width=0.95\textwidth]{images/gen2.png} } \only<3>{ \includegraphics[width=0.95\textwidth]{images/gen3.png} } \only<4>{ \includegraphics[width=0.95\textwidth]{images/gen4.png} } \only<5>{ \includegraphics[width=0.95\textwidth]{images/gen5.png} } \only<6>{ \includegraphics[width=0.95\textwidth]{images/gen6.png} } \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Detector simulation} \begin{small} $\color{PineGreen}\Rrightarrow$ Things do not get simpler on the detector side simulation.\\ $\color{PineGreen}\Rrightarrow$ Lots of effects need to be taken into account: \begin{columns} \column{0.2in} {~} \column{2in} $\color{PineGreen}\rightarrowtail$ Bremsstrahlung\\ $\color{PineGreen}\rightarrowtail$ Interactions with different detector materials\\ $\color{PineGreen}\rightarrowtail$ Particle identification\\ $\color{PineGreen}\rightarrowtail$ Showers\\ \column{3in} \includegraphics[width=0.95\textwidth]{{images/lhcb2_h-640x408}.jpg} \end{columns} $\color{PineGreen}\Rrightarrow$ Example of generators:\\ $\color{PineGreen}\rightarrowtail$ FLUKA\\ $\color{PineGreen}\rightarrowtail$ Geant \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Method of Moments} \begin{small} $\color{PineGreen}\Rrightarrow$ Now real cool things!\\ $\color{PineGreen}\Rrightarrow$ Let's consider we want to study a rare decay: $\PB^{\pm} \to \PK^{\pm} \Pmu \Pmu$. The decay is described by the following PDF: \begin{equation} \dfrac{1}{\Gamma}\dfrac{d^2\Gamma}{dq^2 d\cos \theta_l} =\dfrac{3}{4}(1-F_H)(1-\cos^2 \theta_l)+F_H/2 + A_{FB}\cos \theta_l \nonumber \end{equation} $\color{PineGreen}\Rrightarrow$ PDF by construction is normalized: $\int_{-1}^{1} \dfrac{1}{\Gamma}\dfrac{d^2\Gamma}{dq^2 d\cos \theta_l} =1$ \begin{columns} \column{0.1in} {~} \column{2.2in} \begin{itemize} \item Normally we do a likelihood fit and we are done. \item There is a second way! \end{itemize} \column{2.8in} \includegraphics[width=0.95\textwidth]{images/Kmumu_LL.png} \end{columns} \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Method of Moments} \begin{small} $\color{PineGreen}\Rrightarrow$ Let's calculate the integrals: \begin{equation} \int_{-1}^{1} \dfrac{1}{\Gamma}\dfrac{d^2\Gamma}{dq^2 d\cos \theta_l} \cdot \cos \theta_l = \dfrac{2}{3}A_{FB} \nonumber \end{equation} \begin{equation} \int_{-1}^{1} \dfrac{1}{\Gamma}\dfrac{d^2\Gamma}{dq^2 d\cos \theta_l} \cdot \cos^2 \theta_l = \dfrac{1}{5} + \dfrac{2 F_H}{15} \nonumber \end{equation} $\color{PineGreen}\Rrightarrow$ So we can get our parameters that we searched for by doing a integration. So now what?\pause \\ $\color{PineGreen}\Rrightarrow$ Well nature is the best random number generator so let's take the data and treat and calculate the integral estimates: \begin{equation} \int_{-1}^{1} \dfrac{1}{\Gamma}\dfrac{d^2\Gamma}{dq^2 d\cos \theta_l} \cdot \cos \theta_l = \dfrac{2}{3}A_{FB} = \dfrac{1}{N} \sum_{i=1}^N \cos \theta_{l,i} \nonumber \end{equation} \begin{equation} \int_{-1}^{1} \dfrac{1}{\Gamma}\dfrac{d^2\Gamma}{dq^2 d\cos \theta_l} \cdot \cos^2 \theta_l = \dfrac{1}{5} + \dfrac{2 F_H}{15}= \dfrac{1}{N} \sum_{i=1}^N \cos^2 \theta_{l,i} \nonumber \end{equation} \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Method of Moments} \begin{small} $\color{PineGreen}\Rrightarrow$ So what did we do? \begin{itemize} \item We have just estimated a parameters of interests without using any fit!! \end{itemize} $\color{PineGreen}\Rrightarrow$ Pros and cones of method of moments: \begin{itemize} \item {\color{PineGreen}{Are very immune to bias.}} \item {\color{PineGreen}{Do not suffer from boundary problems.}} \item {\color{PineGreen}{Require less statistic to work then likelihood fit.}} \item {\color{PineGreen}{They always have a Gaussian error}}. \item {\color{Red}{Estimator has a larger uncertainty.}} \end{itemize} \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Method of Moments, uncertainty estimator} \begin{small} \begin{columns} \column{0.1in} {~} \column{2.5in} $\color{PineGreen}\Rrightarrow$ It can be proven that Method of Moments estimator converges slower then the maximum likelihood fit. \column{2.5in} \includegraphics[width=0.95\textwidth]{images/S7.png} \end{columns} \begin{columns} \column{0.1in} {~} \column{2.5in} \includegraphics[width=0.95\textwidth]{images/S8F_950.png} \column{2.5in} \includegraphics[width=0.95\textwidth]{images/S8.png} \end{columns} \end{small} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}\frametitle{Other application of MC - testing your analysis} \begin{small} $\color{PineGreen}\Rrightarrow$ Probably the biggest application of MC methods in HEP are validations of your experimental methodology. The procedure is as follows: \begin{itemize} \item Define your analysis methodology: selection, efficiency corrections, parameters you want to measure. \item Simulate an assembly of simulation events for different values of parameters you want to measure. \item Do the analysis on this pseudo data. \item See if you are getting back what you have simulated. \end{itemize} \end{small} \end{frame} \begin{frame}\frametitle{Testing your analysis, $\rm \color{RubineRed}{Lecture2/Test\_met}$} \begin{small} $\color{PineGreen}\Rrightarrow$ Probably the biggest application of MC methods in HEP are validations of your experimental methodology. The procedure is as follows: \begin{itemize} \item Define your analysis methodology: selection, efficiency corrections, parameters you want to measure. \item Simulate an assembly of simulation events for different values of parameters you want to measure. \item Do the analysis on this pseudo data. \item See if you are getting back what you have simulated. \end{itemize} \includegraphics[width=0.4\textwidth]{{images/mean_estimator}.png} \end{small} \end{frame} \begin{frame}\frametitle{Wrap up} \begin{small} $\color{PineGreen}\Rrightarrow$ Things to remember: \begin{itemize} \item Computer cannot produce random numbers, only pseudorandom numbers. \item We use pseudorandon numbers as random numbers if they are statistically acting the same as random numbers. \item Linear generators are not commonly used nowadays. \item State of the art generators are the ones based on Kolomogorows theorem. \item MC methods used to simulate physics process, detector response and validating the estimators. \end{itemize} \end{small} \end{frame} \backupbegin \begin{frame}\frametitle{Backup} \end{frame} \backupend \end{document}