Playing games for security: an efficient exact algorithm for solving Bayesian Stackelberg games