Randomized Algorithm – Handwritten Notes (DAA)
A Randomized Algorithm is an algorithm that uses random numbers to make
decisions during its execution. Because of randomness, the algorithm may behave
differently every time even for the same input.
The main idea behind randomized algorithms is to improve average performance
and avoid worst case situations. These algorithms are very useful when
deterministic algorithms become too slow for large inputs.
Why Randomized Algorithms are Used:
1. They are easy to design
2. They give good average case performance
3. They avoid worst case inputs
4. They are useful in large data problems
Working of Randomized Algorithm:
1. Take input
2. Generate random numbers
3. Use random choice to make decisions
4. Produce output
Types of Randomized Algorithms:
There are two main types of randomized algorithms: Monte Carlo and Las Vegas.
Monte Carlo Algorithm:
Monte Carlo algorithms always run in fixed time but may give incorrect answers
with small probability. These algorithms are used when speed is more important
than accuracy.
Example: Randomized primality testing where sometimes a non-prime number
may be reported as prime.
Las Vegas Algorithm:
Las Vegas algorithms always give correct answers but their running time may vary.
The correctness is guaranteed.
Example: Randomized Quick Sort which always sorts correctly but execution time
depends on random pivot.
Difference between Monte Carlo and Las Vegas:
Monte Carlo: Fast but may be wrong
Las Vegas: Always correct but time varies
Advantages:
1. Simple implementation
2. Efficient average performance
3. Useful for large inputs
Disadvantages:
1. Output may differ
2. Debugging is difficult
3. Monte Carlo may give wrong answer
Applications:
Sorting, Cryptography, AI, Network Routing, Load Balancing
Conclusion:
Randomized algorithms use randomness to improve efficiency. They are powerful
tools in algorithm design and widely used in real-world applications.
End of Notes