A pharmaceutical drug compound is usually a small organic molecule, also termed as ligand, that binds to the target protein and alters the natural activity of the protein, thus, leading to a therapeutic effect. Computational docking or computer-aided docking is an extremely useful tool to gain an understanding of protein-ligand interactions which is important for the drug discovery. Computational docking is the process of computationally predicting the placement and binding affinity of the ligand in the binding pocket of the protein. Docking methods rely on a search algorithm which computes the placement of the ligand in the binding pocket and a scoring function which estimates the binding affinity, i.e., how strongly the ligand interacts with the protein. A variety of methods have been developed to solve the computational docking problems that range from simple point-matching algorithms to explicit physical simulation methods.