Sat.ResponseA response from CP-SAT for a given problem.
type status = | UnknownThe solver has not run for long enough.
*)| ModelInvalidThere is a problem with the model.
*)| FeasibleThe model has a solution but it may not be optimal with respect to the objective.
*)| InfeasibleThe model has no solutions, i.e., the constraints are too restrictive.
*)| OptimalThe model has a solution and it is optimal with respect to the objective.
*)The overall result.
val string_of_status : status -> stringString representing the status.
The name and restricted domain of a variable.
type objective = {terms : (int * Var.t_int) list;offset : float;scaling_factor : float;domain : (int64 * int64) list;scaling_was_exact : bool;integer_before_offset : int64;integer_after_offset : int64;integer_scaling_factor : int64;}Information on the objective.
type t = {status : status;The status of the solve.
*)solution : int array;A feasible solution, mapping each variable (index) to an integer value.
*)objective_value : float;The value of the objective for the given solution.
*)best_objective_bound : float;A proven lower or upper bound on the objective to, respectively, minimize or maximize.
*)additional_solutions : int array list;Other solutions if the fill_additional_solutions_in_response parameters is set.
tightened_variables : vardom list;Reduced variable domains if the fill_tightened_domains_in_response parameter is set.
sufficient_assumptions_for_infeasibility : Var.t_bool list;A subset of the assumptions field that makes the model infeasible.
*)integer_objective : objective option;Integer objective optimized internally.
*)integer_objective_lower_bound : int;A lower bound on the integer expression of the objective.
*)num_integers : int;num_booleans : int;num_fixed_booleans : int;num_conflicts : int;num_branches : int;num_binary_propagations : int;num_integer_propagations : int;num_restarts : int;num_lp_iterations : int;wall_time : float;Counted from the beginning of the solve call.
*)user_time : float;Counted from the beginning of the solve call.
*)deterministic_time : float;Counted from the beginning of the solve call.
*)gap_integral : float;The integral of log(1 + absolute_objective_gap) over time.
solution_info : string;Additional information about how the solution was found.
*)solve_log : string;Filled if the log_to_response parameter is set.
}A response from CP-SAT. See the documentation in cp_model.proto.
val of_proto : model -> Cp_model.cp_solver_response -> tConvert from the protocol buffer response format.