# B1: Paradigms for Randomized Algorithms

When designing randomized algorithms, there are many ways. The following paradigms in [1] are useful.

- Fooling an adversary
- Random Sampling
- Abundance of witness
- Fingerprinting and hashing
- Random re-ordering
- Load Balancing
- Rapidly mixing Markov chains
- Isolation and symmetry breaking
- Probabilistic methods and existence proofs.

Paradigms 2, 6, 7, 9 can be seen a lot in papers. In this blog, I will cover all the above methods by examples.

## Reference

[1]. Motwani, Rajeev, and Prabhakar Raghavan. *Randomized algorithms*. Cambridge university press, 1995.