algorithms for decision making review