Idrisi is very capable of this, it is less expensive than Arc stuff. You can even use python.

if you are just using python... perhaps a basic distance assigned to each site can be added to the dataframe and used for the proximity value in moors law. 

I think using the spatial application of Moore's law, where likelihood of visiting a site based on proximity would be an n over distance squared equation, would be a good start. Then one could add parameters to the moors law equation to represent the different situations presented. I dont know if you have the math already figured out but a coefficient for proximity, effectiveness of recommendations (maybe start with one - a perfect recomendation always adhered to) and a certain crowwding factor where if location has more than n people it is not likely to get more.... 

just a few thoughts i guess... good luck!