probabilistic analysis of algorithms: what's it good for?conrado/research/talks/... ·...
TRANSCRIPT
![Page 1: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/1.jpg)
Probabilistic analysis of algorithms:What’s it good for?
Conrado Martínez
Univ. Politècnica de Catalunya, Spain
February 2008
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 2: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/2.jpg)
The goal
Given some algorithm A taking inputs from someset I , we would like to analyze the performance ofthe algorithm as a function of the input size (andpossibly other parameters).
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 3: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/3.jpg)
Why should we analyze algorithms?
To predict the resources (time, space. . . . ) that thealgorithm will consumeTo compare algorithm A with competingalternativesTo improve the algorithm, by spotting theperformance bottlenecksTo explain observed behavior
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 4: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/4.jpg)
Why should we analyze algorithms?
To predict the resources (time, space. . . . ) that thealgorithm will consumeTo compare algorithm A with competingalternativesTo improve the algorithm, by spotting theperformance bottlenecksTo explain observed behavior
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 5: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/5.jpg)
Why should we analyze algorithms?
To predict the resources (time, space. . . . ) that thealgorithm will consumeTo compare algorithm A with competingalternativesTo improve the algorithm, by spotting theperformance bottlenecksTo explain observed behavior
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 6: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/6.jpg)
Why should we analyze algorithms?
To predict the resources (time, space. . . . ) that thealgorithm will consumeTo compare algorithm A with competingalternativesTo improve the algorithm, by spotting theperformance bottlenecksTo explain observed behavior
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 7: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/7.jpg)
Concepts & definitions
The performance � : I ! N depends on eachparticular instance of the inputWe have to introduce some notion of size:j � j : I ! N ; we may safely assume that eachIn = fx 2 I j jxj = ng is finiteWorstcase:�[worst](n) = maxf�(x) jx 2 Ing
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 8: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/8.jpg)
To analyze “typical behavior” or the performance ofrandomized algorithms, we have to assume someprobabilistic distribution on the input and/or thealgorithm’s choices; hence, we consider theperformance as a family of random variablesf�ngn�0; �n : In ! NAveragecase:�[avg](n) = E [�n℄ = Xk�0 k P[�n = k℄
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 9: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/9.jpg)
When we assume uniformly distributed inputsP[x℄ = 1#In ; for all x 2 Inour problem is one of counting, e.g.,E [�n℄ = Px2In �(x)#In
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 10: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/10.jpg)
One of the most important tools in the analysis ofalgorithms are generating functions:A(z; u) = Xn�0Xk�0P[�n = k℄ znukFor the uniform distribution[znuk℄A(z; u) = [znuk℄Pn�0Pk�0 an;kznuk[zn℄Pn�0 anzn = [znuk℄B(z; u)[zn℄B(z; 1)with an;k = #fx 2 I j jxj = n ^ �(x) = kg and an = #In
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 11: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/11.jpg)
The equations before can be expressed symbolicallyB(z; u) = Xx2I zjxju�(x)The ratio of the nth coefficients of B(z; u) andB(z; 1) is the probability generating function of �npn(u) = Xk�0P[�n = k℄uk = [zn℄B(z; u)[zn℄B(z; 1)
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 12: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/12.jpg)
Taking derivatives w.r.t. u and setting u = 1 we getthe expected value, second factorial moment, . . .A(r)(z) = �rA(z; u)�ur ����u=1= Xn�0 E [�nr℄ znFor example,V[�n℄ = E h�n2i+E [�n℄�E [�n℄2 = [zn℄A(2)(z)+[zn℄A(z)�([zn℄A(z))2
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 13: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/13.jpg)
The symbolic methodThe symbolic method translates combinatorialconstructions to functional equations overgenerating functions.
Example: Consider the counting generating functionof a combinatorial class A:A(z) = Xn�0 anzn = X�2A zj�jIf A = B � C thenA(z) = X�2A zj�j = X(�; )2B�C zj�j+j j = 0�X�2B zj�j1A0�X 2C zj j1A= B(z) � C(z)
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 14: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/14.jpg)
A dictionary of (labelled) combinatorial constructionsand G.F.’s f�g 1fZg zA+ B A+BA� B A �BSeq(A) 11�ASet(A) exp(A)Cy le(A) log 11�A
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 15: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/15.jpg)
Complex analysis
Another important set of techniques comes fromcomplex variable analysis.Under suitable technical conditions, if F (z) is analytic ina disk D = fz 2 C j jzj < 1g and has a single dominantsingularity at z = 1 thenF (z) � G(z) =) [zn℄F (z) � [zn℄G(z)This is one of the useful transfer lemmas of Flajoletand Odlyzko (1990). Many other similar results areextremely useful when computing asymptotic estimatesfor the nth coefficient of a generating function.
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 16: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/16.jpg)
For example, ifF (z) � G(z) � �1� z���� +H(z)as z ! �, the dominant singularity of F (z), for someanalytic G(z) and H(z) and � 62 f�1;�2; : : :g then[zn℄F (z) � G(�)��nn��1�(�) �1 +O(n�1)�
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 17: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/17.jpg)
Complex analysis
In recent years, complex analysis techniques andperturbation theory have been used to prove powerfulresults such as Hwang’s quasipower theorem, whichallows one to prove the convergence in law to aGaussian distribution of many combinatorialparameters in strings, permutations, trees, etc., as wellas local limits and the speed of convergence.
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 18: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/18.jpg)
A trivial example: Counting binary trees
A binary tree is either an empty tree (leaf) or a roottogether with two binary (sub)trees:B = f�g+ fZg � B � BHence the counting GF of binary trees isB(z) = 1 + zB2(z)
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 19: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/19.jpg)
Solving the equation before for B(z) and sinceB(0) = b0 = 1, B(z) = (1�p1�4z2z z 6= 0;1 z = 0:Extracting the nth coefficient of B(z) we find[zn℄B(z) = �2nn �n+ 1 � 4nn�3=2p�
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 20: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/20.jpg)
2nd example: The average cost of building BSTs
A binary search tree T for a set of elements Xcontains some y 2 X at its root; its subtrees L and Rare binary search trees recursively constructed for thesets X� = fx 2 X jx < yg and X+ = fz 2 X j y < zg.Binary search trees (BSTs) are useful for fast lookup,and support both dynamic insertions and deletions.
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 21: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/21.jpg)
To insert some new item w into a BST, we compare wto the element y at the root of T . If w < y then weinsert w recursively in the left subtree of T . If y < wwe insert recursively in the right subtree. If at anypoint we have to insert the element into an emptytree, we simply make w the root of the new tree.
6 6
3
6
3
4
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 22: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/22.jpg)
How much does it cost to build a BST of size n?Let d(x; T ) denote the depth (= edges from the root)of element x in T . It is the number of elements withwhich x was compared when we inserted it at someprevious step.Hence, the cost I(T ) to build T isI(T ) = Xx2T d(x; T )I(T ) is also called the internal path length of T .
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 23: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/23.jpg)
Let n = jT j.If T is a linked list (at most one nonempty subtreeper node) then I(T ) = n(n� 1)=2.If T is perfectly balanced then I(T ) = �(n log n).
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 24: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/24.jpg)
In a random BST any element has the same probabilityof being its root; hence the probability that jLj = k is1=n for all k, 0 � k < n.P[T ℄ = 8<:1 if T is empty,P[L℄�P[R℄jT j otherwise.
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 25: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/25.jpg)
I(T ) = (0 if T is empty,I(L) + I(R) + jT j � 1 otherwise.
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 26: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/26.jpg)
E [In℄ = [zn℄I(z)I(z) = XT2B P[T ℄ I(T )zjT j= X(L;R)2B�B P[L℄P[R℄jLj+ jRj+ 1(I(L) + I(R) + jLj+ jRj)zjLj+jRj+1Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 27: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/27.jpg)
dIdz = X(L;R)2B�B P[L℄P[R℄ (I(L) + I(R) + jLj+ jRj)zjLj+jRj= X(L;R)2B�B P[L℄P[R℄ I(L)zjLj+jRj+ X(L;R)2B�B P[L℄P[R℄ I(R)zjLj+jRj+ X(L;R)2B�B P[L℄P[R℄ jLjzjLj+jRj+ X(L;R)2B�B P[L℄P[R℄ jRjzjLj+jRjProbabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 28: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/28.jpg)
dIdz = 2 X(T1;T2)2B�B P[T1℄ I(T1)zjT1j P[T2℄ zjT2j+ 2 X(T1;T2)2B�B P[T1℄ jT1jzjT1j P[T2℄ zjT2j= 20�XT12B P[T1℄ I(T1)zjT1j1A �0�XT22B P[T2℄ zjT2j1A+ 20�XT12B P[T1℄ jT1jzjT1j1A �0�XT22B P[T2℄ zjT2j1AProbabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 29: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/29.jpg)
XT2B P[T ℄ zjT j = Xn�0 zn = 11� zXT2B P[T ℄ jT jzjT j = Xn�0nzn = z ddz 11� z = z(1� z)2Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 30: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/30.jpg)
dIdz = 2 I(z)1� z + 2z(1� z)3I(0) = 0+I(z) = 2ln � 11�z�(1� z)2 � 2z(1� z)2Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 31: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/31.jpg)
E [In℄ = [zn℄I(z) = 2(n� 1)Hn� 2n lnn+ 2n +O(log n)Hn = X1�k�n 1k � lnn+ +O(n�1)Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 32: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/32.jpg)
3rd example: Insertion in Kd trees
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 33: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/33.jpg)
3rd example: Insertion in Kd trees
1
1
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 34: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/34.jpg)
3rd example: Insertion in Kd trees
1
2
1
2
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 35: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/35.jpg)
3rd example: Insertion in Kd trees
1
2
1
2
33
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 36: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/36.jpg)
3rd example: Insertion in Kd trees
1
2
1
2
33
4
4
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 37: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/37.jpg)
3rd example: Insertion in Kd trees
1
2
1
2
33
4
4
5 5
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 38: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/38.jpg)
Insertion in relaxed Kd treesrkdt insert (rkdt t, onst Elem& x) {int n = size(t);int u = random (0,n);if (u == n)return insert_at_root(t, x);else { // t annot be emptyint i = t -> dis r;if (x[i℄ < t -> key [i℄)t -> left = insert (t -> left , x);elset -> right = insert (t -> right , x);return t;}}Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 39: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/39.jpg)
Deletion in relaxed Kd treesrkdt delete (rkdt t, onst Elem& x) {if (t == NULL) return NULL;if (t -> key == x)return join(t -> left , t -> right );int i = t -> dis r;if (x -> key[i℄ < t -> key[i℄)t -> left = delete (t -> left , x);elset -> right = delete (t -> right , x);return t;}Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 40: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/40.jpg)
Split: Case #1
t r
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 41: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/41.jpg)
Split: Case #1
t r
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 42: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/42.jpg)
Split: Case #1
t r
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 43: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/43.jpg)
Split: Case #2
t
r
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 44: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/44.jpg)
Split: Case #2
t
r
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 45: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/45.jpg)
Split: Case #2
t
r
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 46: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/46.jpg)
Split: Case #2
t
r
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 47: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/47.jpg)
Analysis of split/joinsn = avg. number of visited nodes in a splitmn = avg. number of visited nodes in a joinsn = 1 + 2nK X0�j<n j + 1n+ 1sj + 2(K � 1)nK X0�j<n sj+ K � 1K X0�j<n�n;jmj ;where �n;j is probability of joining two trees withtotal size j .
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 48: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/48.jpg)
Analysis of split/joinsn = avg. number of visited nodes in a splitmn = avg. number of visited nodes in a joinsn = 1 + 2nK X0�j<n j + 1n+ 1sj + 2(K � 1)nK X0�j<n sj+ K � 1K X0�j<n�n;jmj ;where �n;j is probability of joining two trees withtotal size j .
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 49: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/49.jpg)
Analysis of split/joinsn = avg. number of visited nodes in a splitmn = avg. number of visited nodes in a joinsn = 1 + 2nK X0�j<n j + 1n+ 1sj + 2(K � 1)nK X0�j<n sj+ K � 1K X0�j<n�n;jmj ;where �n;j is probability of joining two trees withtotal size j .
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 50: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/50.jpg)
The recurrence for sn issn = 1 + 2nK X0�j<n j + 1n+ 1sj + 2(K � 1)nK X0�j<n sj+ 2(K � 1)nK X0�j<n n� jn+ 1mj ;with s0 = 0.The recurrence for mn has exactly the same shapewith the rôles of sn and mn interchanged; it easilyfollows that sn = mn.
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 51: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/51.jpg)
Define S(z) = Xn�0 snznThe recurrence for sn translates toz d2Sdz2 + 21� 2z1� z dSdz� 2�3K � 2K � z� S(z)(1� z)2 = 2(1� z)3 ;with initial conditions S(0) = 0 and S0(0) = 1.
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 52: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/52.jpg)
The homogeneous second order linear ODE is ofhypergeometric type.An easy particular solution of the ODE is�12 � KK � 1� 11� z
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 53: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/53.jpg)
TheoremThe generating function S(z) of the expected cost ofsplit is, for any K � 2,S(z) = 12 11� 1K �(1� z)�� � 2F1 � 1� �; 2 � �2 ���� z�� 11� z � ;where � = �(K) = 12 �1 +q17� 16K �.
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 54: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/54.jpg)
TheoremThe expected cost sn of splitting a relaxed Kd tree ofsize n is sn = �(K)n�(K) + o(n);with � = 12 11� 1K �(2�� 1)��3(�) ;� = �� 1 = 12 0�s17� 16K � 11A :
Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 55: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/55.jpg)
7060
1.1
K
100908010
1.2
403020
1.5
1.4
50
1.3
1.0
Plot of �(K)Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch
![Page 56: Probabilistic analysis of algorithms: What's it good for?conrado/research/talks/... · randomized algorithms, we have to assume some ... extremely useful when computing asymptotic](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbfc0919c20f232c64f12c7/html5/thumbnails/56.jpg)
30
0.7
K
1009080706050
1.0
40
0.9
0.8
0.6
2010
Plot of �(K)Probabilistic analysis of algorithms: What’s it good for? Univ. von Stellenbosch