Randomization
Randomization
Bart Massey
Basic Idea
Use randomization as a technique for accelerating algorithms * As opposed to expected-case analysis * Usually doesn't improve worst-case performance * Can make expected-case good and worst-case vanishingly unlikely
Generating Random Numbers
Definitions of random:
- Unpredictable
- Physically random
- Uncorrelated
Construction of PRNGs
- Linear
- Crypto-secure
Using Random Numbers in Algorithms
Finding approximate median
- Using this to find actual median
Local search
Randomizing inputs
The Perfect Shuffle
- Construct from "obvious" random selection algorithm
- Replace array shifts with fill-ins
- Replace output array with blanks in input array
- Proof of correctness is thus easy
Random Weighted Selection
Application: Bayesian Particle Filtering
Technique: Start with "obvious" scan through weights
- Accelerate by DP + binary search
- Accelerate by merging
- Fixing the merge order
- Improving constant factors
Last modified: Thursday, 29 May 2014, 11:37 AM