I just tried to use Vina for calculating binding affinity. I used the same protein, the same ligand, the same options, but there are different results. Why do I get different results? Is it the limit Point of docking tools? Then why we use it?
Vina uses a non-deterministic docking algorithm. See the manual.
The docking algorithm is non-deterministic. Even though with this receptor-ligand pair, the minimum of the scoring function corresponds to the correct conformation, the docking algorithm sometimes fails to find it. Try several times and see for yourself. Note that the probability of failing to find the mininum may be different with a different system.
The manual states that you can set the random seed in order to obtain reproducibility.
I changed something, and now the docking results are different. Why? Firstly, had you not changed anything, some results could have been different anyway, due to the non-deterministic nature of the search algorithm. Exact reproducibility can be assured by supplying the same random seed to both calculations, but only if all other inputs and parameters are the same as well. Even minor changes to the input can have an effect similar to a new random seed. What does make sense discussing are the statistical properties of the calculations: e.g. "with the new protonation state, Vina is much less likely to find the correct docked conformation".
The answer by @Throckmorton is 100% correct in that it's deterministic. I just wanted to address a few things —so this is a long comment.
All too often the box is set as the whole protein, this is bound to make it trip up on local minima. Sure, with native ligands, binding pockets close to the active site increases the dissociation constant of the complex, but docking is not the way to calculate these. Generally this is done by tethered MD, where the ligand is pulled out.
Docking returns generally either a binding potential (∆∆G_bind) as a kcal/mol (Autodock) or kJ/mol, where negative is good, or a rank. This is not the typically binding affinity measurements, e.g. an IC50 or dissociation constant (K_D) —The Eyring equation converted in a relative form (ratio makes constants disappear) allows you do some brute conversions to a k-on for the site, but this is highly not recommended.
Docking is not perfect and, worse, gets abused a lot. However I'd flip the OP's statement around and say the limitation by far is wet lab side, where doing an ITC properly is hard and crystallising a protein with a ligand is even worse...