From: Martin Mares Date: Thu, 29 Mar 2007 15:48:04 +0000 (+0200) Subject: Pridana ctvrta prednaska (1. verze). X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=b8eb811ea42914fee7061c66f9086dd5170dbd1b;p=ads1.git Pridana ctvrta prednaska (1. verze). --- diff --git a/4-avg/4-avg.tex b/4-avg/4-avg.tex new file mode 100644 index 0000000..517f9b5 --- /dev/null +++ b/4-avg/4-avg.tex @@ -0,0 +1,143 @@ +\input ../lecnotes.tex + +\def\E{{\bb E}} + +\prednaska{4}{Prùmìrná èasová slo¾itost}{(zapsali R. Cinkais a R. Barczi)} + +\h{První pomoc z~teorie pravdìpodobnosti} + +\s{Definice:} {\I Diskrétní pravdìpodobnostní prostor} je uspoøádaná dvojice +$(\Omega,P)$, kde $\Omega$ je nejvý¹e spoèetná mno¾ina {\I elementárních jevù} +a $P:\Omega\rightarrow[0,1]$ je funkce, pro kterou platí: +$$\sum_{x\in\Omega}P(x)=1.$$ +Hodnotám $P(x)$ budeme øíkat {\I pravdìpodobnosti} jednotlivých elementárních jevù. + +\s{Pøíklad:} Mno¾ina elementárních jevù pøi vrhu kostkou je $\Omega=\{1,2,3,4,5,6\}$ a pokud je kostka spravedlivá, platí $\forall x\in\Omega:P(x)=1/6$. + +\s{Definice:} {\I Jevem} $A$ rozumíme $A\subseteq\Omega$. {\I Pravdìpodobnost} +jevu $A$ poèítáme jako: $$P(A)=\sum_{a\in A}P(a).$$ Je-li $P(A)=0$, nazýváme $A$ +jevem nemo¾ným. V pøípadì $P(A)=1$ nazýváme $A$ jevem jistým. + +\s{Pøíklad:} +Jaká je pravdìpodobnost slo¾eného jevu, ¾e na kostce padne sudé èíslo? Oznaèíme +$A=\{2,4,6\}\subseteq\Omega$. Hledanou pravdìpodobností je pak +$P(A)=1/6+1/6+1/6=1/2$. + +\s{Definice:} {\I Náhodná promìnná} $X$ je funkce $X:\Omega\rightarrow{\bb +R}$. {\I Støední hodnotou} náhodné promìnné $X$ rozumíme výraz +$$\E{}X=\sum_{x\in\Omega}P(x)\cdot X(x).$$ + +\s{Pøíklad:} Nech» $H$ je náhodná promìnná pøiøazující vrhu kostkou dosa¾enou +hodnotu, tedy $\forall x\in\Omega:H(x)=x$. Støední (oèekávanou) hodnotou této +promìnné je $\E{}H= 1/6\cdot1 +1/6\cdot2 +1/6\cdot3 +1/6\cdot4 +1/6\cdot5 ++1/6\cdot6=7/2$. + +\s{Vìta:} (linearita støední hodnoty) +Nech» $A,B:\Omega\rightarrow\bb R$ jsou náhodné promìnné a $\alpha\in\bb R$ je libovolná konstanta. Potom: +\numlist\ndotted +\:$\E{}(A+B)=\E{}(A)+\E{}(B)$, +\:$\E{}(\alpha\cdot A)=\alpha\cdot\E{}(A)$. +\endlist + +\proof +\numlist\ndotted +\:Podle definice støední hodnoty je: +$$\eqalign{ +\E{}(A+B)&=\sum_{x\in\Omega}(A(x)+B(x))\cdot P(x)=\sum_{x\in\Omega}(A(x)\cdot P(x)+B(x)\cdot P(x))=\cr + &=\sum_{x\in\Omega}A(x)\cdot P(x)+\sum_{x\in\Omega}B(x)\cdot P(x)=\E{}A+ \E{}B. +}$$ +\:Opìt z definice støední hodnoty platí: +$$\E{}(\alpha\cdot A)=\sum_{x\in\Omega}\alpha\cdot A(x)\cdot P(x)=\alpha\cdot \sum_{x\in\Omega}A(x)\cdot P(x)=\alpha\cdot\E{}A.$$ +\endlist +\qed + +\s{Pøíklad:} +Házíme dvìmi odli¹nými hracími kostkami. Uva¾ovaný prostor elementárních jevù +je proto $\Omega=\{(1,1),(1,2),\dots, (6,5),(6,6)\}$ a $\forall +(a,b)\in\Omega:P((a,b))=1/36$. Mìjme náhodnou promìnnou $S$ pøiøazující vrhu +kostkami souèet dosa¾ených hodnot, tedy $\forall (a,b)\in\Omega:S((a,b))=a+b$. +Chceme urèit $\E{}S$. + +Oznaème $A$ náhodnou promìnnou, která pøi vrhu kostkami vrací hodnotu na první +kostce, tedy $\forall (a,b)\in\Omega:A((a,b))=a$. Podobnì, oznaème $B$ náhodnou +promìnnou, která vrací hodnotu na druhé kostce, tedy $\forall +(a,b)\in\Omega:B((a,b))=b$. V~pøedcházejícím pøíkladì jsme si ukázali, ¾e +$\E{}A=\E{}B=7/2$. Proto¾e $S((a,b))=a+b=A((a,b))+B((a,b))$, pou¾itím vìty +o linearitì støední hodnoty dostáváme $\E{}S=\E{}(A+B)=\E{}A+\E{}B=7/2+7/2=7$. + +\s{Poznámka:} +Pro ka¾dou náhodnou promìnnou $X$ platí: $$\E{}X=\sum_{x\in{\bb R}}x\cdot\Pr[X=x].$$ +\proof +Uvedený vztah plyne okam¾itì z definice støední hodnoty, slouèíme-li dohromady v¹echny èleny $x\in\Omega$ se stejnou hodnotou $X(x)$. +\qed + +\s{Prùmìrná slo¾itost algoritmu} + +Prùmìrnou slo¾itost algoritmu mù¾eme poèítat pøes v¹echny vstupy nebo pøes náhodné +volby vstupù. Pokud jde o koneèný výsledek, jsou oba uvedené zpùsoby ekvivalentní. + +Na¹im cílem bude odvodit slo¾itost algoritmu $\(k,X)$ spou¹tìt pøi svém bìhu +jako podprogram pro výbìr pivota. Bez újmy na~obecnosti budeme pøedpokládat, +¾e v¹echny prvky jsou navzájem rùzné. + +\s{Algoritmus:} (Hledání l¾imediánu v mno¾inì $X$) +\algo +\:Zvol náhodnì $x\in X$. +\:Spoèítej $y_0=\vert \{y\in X:yx\}\vert$. +\:Pokud $y_0\geq1/4$ a~zároveò $y_1\geq1/4$, vra» $x$, jinak skoè na~1. +\endalgo + +\s{Pozorování:} +Uva¾ujme, ¾e házíme spravedlivou mincí. Aby nedo¹lo ke ¾ádnému mezinárodnímu sporu, tak oznaème strany mince jako tuèòák (T) a ryba (R). Tedy pravdìpodobnost pádu na nìjakou stranu je $1/2$. +Budeme zkoumat, jaká je støední hodnota èekání na pád tuèòáka $\E{}T$. Mno¾inu v¹ech jevù (vrhù), které mohou nastat oznaème jako $\Omega=\{T,RT,RRT,\dots,RRR\dots\}$. Platí: +$$P(T)={1\over 2}, P(RT)={1\over 4}, P(R^{k}T)={1\over 2^{k+1}}, P(RR\dots)=0.$$ +Podle pozorování máme: $$\E{}T=\sum_{k=1}^{\infty}k\underbrace{Pr[T=k]}_{1\over 2^k}=\sum_{k=1}^{\infty}{k\over 2^k}.$$ +Tuto sumu je v¹ak trochu obtí¾né spoèítat (kdo chce si to mù¾e zkusit), proto provedeme následující trik: +$$\E{}T=1+{1\over 2}\cdot0+{1\over 2}\cdot\E{}T,$$ +to znamená, ¾e po jednom tahu jsme s polovièní pravdìpodobnosti vyhráli +a s polovièní pravdìpodobnosti se situace nezmìnila. Jednoduchou úpravou tedy +zjistíme, ¾e: $$\E{}T=2.$$ + +\s{Lemma:} +Èekání na jev, který nastane s pravdìpodobností $p$, trvá prùmìrnì $1/p$. + +\proof +$\E{}T=1+(1-p)\E{}T$, tedy $\E{}T=1/p$. +\qed + +Pøi hledání l¾imediánu máme polovièní ¹anci, ¾e se trefíme pøi náhodném výbìru +do prostøední poloviny -- prùmìrnì tedy vykonáme dva prùchody cyklem, pøièem¾ +jeden prùchod trvá $O(n)$. Celkem bude tedy hledání l¾imediánu trvat prùmìrnì +$O(n)$. + +\s{Vìta:} +\ s~pivotem rovným prostøednímu prvku má v~prùmìru pøes permutace na vstupu èasovou slo¾itost $\Theta(n)$. + +\proof +Pøevodem na náhodnou volbu pivota. Pokud je na~vstupu náhodná permutace, tak v¹echny hodnoty~$p$ +jsou stejnì pravdìpodobné. Zbývá ukázat, ¾e dal¹í iterace algoritmu dostane opìt náhodnou permutaci +(s~rovnomìrným rozdìlením pravdìpodobností), tak¾e prùbìh celého algoritmu bude odpovídat +algoritmu s~náhodnou volbou pivota, který jsme odhadli v~pøedchozí vìtì. + +K~tomu sestrojíme bijekci mezi $\pi_n$ (permutace na $1$ a¾ $n$) a mno¾inou ètveøic $(m, L, \pi_M, \pi_V)$, kde: +$$m\in{1,\dots,n};$$ +$$L\in{{\{1{\dots}l-1,l+1{\dots}n\}} \choose {m-1}}, l=\Big\lfloor{1+n\over 2}\Big\rfloor;$$ +$$\pi_M \hbox{ permutace na } \{1{\dots}m-1\};$$ +$$\pi_V \hbox{ permutace na } \{m+1{\dots}n\};$$ +Tedy pøi konkrétni volbì $m$ máme +$$Pr[\pi_{M}=\xi]={{n-1 \choose m-1}{\cdot}(n-m)! \over (n-1)!},$$ +z èeho je vidìt, ¾e èasová slo¾itost je $O(n)$. +\qed + +\bye diff --git a/4-avg/Makefile b/4-avg/Makefile new file mode 100644 index 0000000..fc508c9 --- /dev/null +++ b/4-avg/Makefile @@ -0,0 +1,3 @@ +P=4-avg + +include ../Makerules diff --git a/lecnotes.tex b/lecnotes.tex index 61df352..bdbf0f1 100644 --- a/lecnotes.tex +++ b/lecnotes.tex @@ -125,7 +125,11 @@ % Blackboard bold font \newfam\bbfam \font\bbten=bbold10 +\font\bbseven=bbold7 +\font\bbfive=bbold5 \textfont\bbfam=\bbten +\scriptfont\bbfam=\bbseven +\scriptscriptfont\bbfam=\bbfive \def\bb{\bbten\fam\bbfam} % Reference na konci kapitoly