polyscip.h
Go to the documentation of this file.
91 using ProjMap = std::map<TwoDProj, ResultContainer, std::function<bool(const TwoDProj&, const TwoDProj&)>>; ///< Container for non-dominated projections
114 * lhs-Projection epsilonDominates rhs-Projection if lhs.first - epsilon < rhs.first && lhs.second - epsilon < rhs.second
182 * @brief A rectangular box R = [a_1,e_1) x ... x [a_k,e_k) is a k-ary Cartesian product of half-open intervals
242 std::vector<RectangularBox> getDisjointPartsFrom(double delta, const RectangularBox &other) const;
275 * Constructor: constructs box first_beg x ... x (first_end-1) x second x third_bex x ... x (third_end-1)
410 * @param orig_vars Container storing original problem variables with non-zero coefficients for each objective
411 * @param orig_vals Container storing original non-zero objective coefficients for each objective
420 * @param orig_vars Container storing original problem variables with non-zero coefficients for each objective
421 * @param orig_vals Container storing original non-zero objective coefficients for each objective
430 * Checks whether results corresponding to given iterator is dominated or equal to other given elements
434 * @return true if result given by it is dominated or equal to other given results; false otherwise
510 * @param primal_sol Corresponding SCIP primal solution pointer if previous computation yielded optimal status
536 * @param begin_nonzeros begin_nonzeros[i+1] = begin_nonzeros[i] + obj_probdata->getNumberNonzeroCoeffs(i)
561 * @param orig_vars Container storing original problem variables with non-zero coefficients for each objective
562 * @param orig_vals Container storing original non-zero objective coefficients for each objective
565 SCIP_RETCODE computeNonLexicographicNondomResults(const std::vector<std::vector<SCIP_VAR*>>& orig_vars,
570 * @param orig_vars Container storing original problem variables with non-zero coefficients for each objective
571 * @param orig_vals Container storing original non-zero objective coefficients for each objective
574 * @return Container of non-dominated outcomes which are also non-dominated for projection onto obj_1 and obj_2
576 std::vector<OutcomeType> solveWeightedTchebycheff(const std::vector<std::vector<SCIP_VAR*>>& orig_vars,
586 std::vector<RectangularBox> computeDisjointBoxes(std::list<RectangularBox>&& feasible_boxes) const;
591 * @param orig_vars Container storing original problem variables with non-zero coefficients for each objective
592 * @param orig_vals Container storing original non-zero objective coefficients for each objective
603 * @param orig_vars Container storing original problem variables with non-zero coefficients for each objective
604 * @param orig_vals Container storing original non-zero objective coefficients for each objective
614 * @param orig_vars Container storing original problem variables with non-zero coefficients for each objective
615 * @param orig_vals Container storing original non-zero objective coefficients for each objective
626 * @param orig_vars Container storing original problem variables with non-zero coefficients for each objective
627 * @param orig_vals Container storing original non-zero objective coefficients for each objective
652 * Computes non-dominated point which fulfills: obj_val_cons1 = obj_val_cons1_rhs and obj_val_cons2 = obj_val_cons2_rhs
712 bool only_weight_space_phase_; ///< Indicates whether only non-dominated extreme points should be computed
714 std::unique_ptr<WeightSpacePolyhedron> weight_space_poly_; ///< Pointer holding weight space polyhedron object
717 std::vector<std::size_t> unbd_orig_objs_; ///< Container storing objectives indices for which unbounded rays were found
ResultContainer::const_iterator boundedCBegin()
Definition: polyscip.h:391
Definition: struct_scip.h:59
ResultContainer::const_iterator boundedCEnd()
Definition: polyscip.h:397
static SCIP_RETCODE printStatus(SCIP *masterscip, SCIP_STATUS status)
Definition: benders.c:31
Definition: struct_var.h:198
General types used for PolySCIP.
std::vector< ValueType > OutcomeType
Type for points, rays in objective space.
Definition: polyscip_types.h:35
std::pair< SolType, OutcomeType > Result
A result comprises of a solution/ray in feasible space and a corresponding outcome in objective space...
Definition: polyscip_types.h:38
Definition: struct_sol.h:64
Definition: struct_cons.h:37
std::map< TwoDProj, ResultContainer, std::function< bool(const TwoDProj &, const TwoDProj &)> > ProjMap
Container for non-dominated projections.
Definition: polyscip.h:91
C++ wrapper classes for SCIP.
Class representing the 1-skeleton of the weight space polyhedron.
friend std::ostream & operator<<(std::ostream &os, const TwoDProj &proj)
Class representing a two-dimensional projection of an outcome.
Definition: polyscip.h:47
Definition: cmd_line_args.cpp:37
A rectangular box R = [a_1,e_1) x ... x [a_k,e_k) is a k-ary Cartesian product of half-open intervals...
Definition: polyscip.h:184
std::vector< std::pair< std::string, ValueType > > SolType
Type for solutions in feasible space.
Definition: polyscip_types.h:36
Definition: objbenders.h:33
Definition: struct_clock.h:55
PolySCIP command line arguments.
TwoDProj(const OutcomeType &outcome, std::size_t first, std::size_t second)
Definition: polyscip.cpp:81