# Importance of Randomized Algorithms

• Last Updated : 30 Jun, 2021

Introduction:

• Randomization is an important concept, and hence randomization algorithms are used in a variety of fields, such as number theory, computational geometry, graph theory, and distributed computing.
• The inputs for a randomized algorithm are similar to those of deterministic algorithms, along with a sequence of random bits that can be used by the algorithm for making random choices.
• In other words, a randomized algorithm is one whose behavior depends on the inputs, similar to a deterministic algorithm, and the random choices are made as part of its logic.
• As a result, the algorithm gives different outputs even for the same input.
• In other words, the algorithm exhibits randomness; hence its run-time is often explained in terms of a random variable.

• Randomized algorithms are known for their simplicity.
• Any deterministic algorithm can easily be converted to a randomized algorithm. These algorithms are very simple to understand and implement.
• Randomized algorithms are very efficient.
• They utilize little execution time and space compared to any deterministic algorithms.
• Randomized algorithms exhibit superior asymptotic bounds compared to deterministic algorithms.
• In other words, the algorithm complexity of randomized algorithms is better than that of most deterministic algorithms.
• Reliability is an important issue in many critical applications, as not all randomized algorithms always give correct answers.
• In addition, many randomized algorithms may not terminate.
• Hence, reliability is an important concern that needs to be dealt with.
• The quality of randomized algorithms is dependent on the quality of the random number generator used as part of the algorithm.
• Unlike other design paradigms, a randomized algorithm does not use a single design principle.
• Instead, one should view randomized algorithms as those designed using a set of principles.
• Instead, one should view randomized algorithms as those designed using a set of principles.

Some design principles are listed in the following subsections:

Concept of Witness:

• This principle involves the question of checking whether a given input possesses a property X or not.
• It is established by finding a certain object called a witness or a certificate.
• The witness is identified to prove the fact that the input indeed has the desired property X.
• By conducting fewer trials, it can be found out whether the property was really present.
• The presence of a witness is strong proof of property X based on the absence of witnesses. This principle is illustrated using the example of primality testing.

Fingerprinting:

• By definition, a fingerprint is a shorter message that is representative of a larger object.
• Fingerprinting is a technique wherein one makes a comparison of two large objects, A and B, only by comparing their respective short fingerprints.
• If two fingerprints do not match, then objects A and B are different.
• However, if the fingerprints match, then there is strong circumstantial evidence that both objects are the same.

Checking Identities:

• Let us assume that an algebraic expression is given, and the problem is to check whether the expression evaluates to zero or not.
• The principle of checking identities is to plug the random variables of a given algebraic equation and check whether the expression evaluates to zero.
• If it is not zero, then the given expression is not an identity.
• Otherwise, there is strong circumstantial evidence that the expression is identically zero.

Random Sampling and Ordering:

• The performance of an algorithm sometimes improves by randomizing the input distribution or order.
• It can be observed that for certain ordering of the input, the performance of the algorithm can be higher or just acceptable.
• Here, randomization leads to randomized ordering, partitioning, and sampling.
• In addition, randomized algorithms gather information about input distributions using random samples. This is illustrated through the hiring problem.