non deterministic machine learning algorithms