stochastic algorithms