31 std::shared_ptr<Decision> discreteBisection(std::shared_ptr<const DecisionRequest> request,
const BPMNOS::Model::Choice* choice);
36 std::shared_ptr<ChoiceDecision> decision;
38 bool isFeasible()
const {
return decision && decision->reward.has_value(); }
39 double reward()
const {
return decision->reward.value(); }
44 std::vector<BPMNOS::number> values;
48 Candidate evaluate(
size_t index);
51 std::tuple<size_t, Candidate, size_t> findFeasible(
size_t first,
size_t last);
54 void findBetweenFeasibleAndFeasible(Candidate left, Candidate right);
55 void findBetweenFeasibleAndInfeasible(Candidate feasible,
size_t infeasibleIndex);
56 void findBetweenInfeasibleAndFeasible(
size_t infeasibleIndex, Candidate feasible);