Go to the documentation of this file.
14 #ifndef __TMINLP_HPP__
15 #define __TMINLP_HPP__
162 perturb_radius_(NULL)
168 delete [] perturb_radius_;
177 return perturb_radius_;
188 double* perturb_radius_;
307 std::cerr <<
"Method eval_gi not overloaded from TMINLP\n";
317 std::cerr <<
"Method eval_grad_gi not overloaded from TMINLP\n";
387 assert(number_non_conv == 0);
391 assert(number_concave == 0);
T * CoinCopyOfArray(const T *array, const CoinBigIndex size)
virtual bool hasUpperBoundingObjective()
Say if has a specific function to compute upper bounds.
bool hasGeneralInteger()
Say if problem has general integer variables.
@ SimpleConcave
Constraint is concave of the simple form y >= F(x).
Class to store sos constraints for model.
@ NonConvex
Constraint is non-convex.
virtual bool eval_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g)=0
overload this method to return the vector of constraint values
BranchingInfo(const BranchingInfo &other)
double * downPsCosts
User set down pseudo costs.
int * branchingDirections
User set preferered branching direction.
int cIdx
Index of the nonconvex constraint.
double * upPsCosts
User set up pseudo costs.
void CoinFillN(T *to, const CoinBigIndex size, const T value)
int cRelaxIdx
Index of constraint relaxing the nonconvex constraint.
virtual const int * get_const_xtra_id() const
Access array describing constraint to which perspectives should be applied.
SosInfo()
default constructor.
(C) Copyright International Business Machines Corporation 2007
double * weights
weights of the elements of the SOS.
MarkedNonConvex()
Default constructor gives "safe" values.
virtual bool eval_h(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number obj_factor, Ipopt::Index m, const Ipopt::Number *lambda, bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)=0
overload this method to return the hessian of the lagrangian.
virtual bool get_starting_point(Ipopt::Index n, bool init_x, Ipopt::Number *x, bool init_z, Ipopt::Number *z_L, Ipopt::Number *z_U, Ipopt::Index m, bool init_lambda, Ipopt::Number *lambda)=0
overload this method to return the starting point.
virtual bool eval_upper_bound_f(Ipopt::Index n, const Ipopt::Number *x, Ipopt::Number &obj_value)
overload this method to return the value of an alternative objective function for upper bounding (to ...
Stores branching priorities information.
Structure which describes a constraints of the form $f[ y \gt F(x) \f] with a concave function.
int * priorities
User set priorities on variables.
virtual bool get_constraint_convexities(int number_non_conv, MarkedNonConvex *non_convs) const
Get array describing the constraints marked nonconvex in the model.
virtual bool get_simple_concave_constraints(int number_concave, SimpleConcaveConstraint *simple_concave) const
Fill array containing indices of simple concave constraints.
virtual bool eval_gi(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index i, Ipopt::Number &gi)
Compute the value of a single constraint.
virtual bool eval_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value)=0
overload this method to return the value of the objective function
virtual bool eval_jac_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)=0
overload this method to return the jacobian of the constraints.
virtual bool eval_grad_gi(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index i, Ipopt::Index &nele_grad_gi, Ipopt::Index *jCol, Ipopt::Number *values)
Compute the structure or values of the gradient for one constraint.
virtual bool eval_grad_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f)=0
overload this method to return the vector of the gradient of the objective w.r.t.
virtual bool get_number_nonconvex(int &number_non_conv, int &number_concave) const
Get dimension information on nonconvex constraints.
const double * GetPerturbationArray() const
Method for getting the array for the perturbation radii in order to use the values.
Class to store perturbation radii for variables in the model.
int * indices
indices of elements belonging to the SOS.
This is an adapter class that converts a TMINLP to a TNLP to be solved by Ipopt.
virtual bool get_variables_types(Ipopt::Index n, VariableType *var_types)=0
overload this method to provide the variables types.
SolverReturn
Return statuses of algorithm.
int size
number of variables
Convexity
Used to mark constraints of the problem.
DECLARE_STD_EXCEPTION(TMINLP_INVALID)
VariableType
Type of the variables.
virtual bool get_variables_linearity(Ipopt::Index n, Ipopt::TNLP::LinearityType *var_types)=0
overload this method to provide the variables linearity.
int numNz
Total number of non zeroes in SOS constraints.
int * priorities
priorities of sos constraints.
void SetPerturbationArray(Ipopt::Index numvars, const double *perturb_radius)
Method for setting the perturbation radii.
void gutsOfDestructor()
Reset information.
@ Convex
Constraint is convex.
virtual const PerturbInfo * perturbInfo() const
int num
Number of SOS constraints.
int xIdx
Index of the variable x.
virtual bool get_nlp_info(Ipopt::Index &n, Ipopt::Index &m, Ipopt::Index &nnz_jac_g, Ipopt::Index &nnz_h_lag, Ipopt::TNLP::IndexStyleEnum &index_style)=0
overload this method to return the number of variables and constraints, and the number of non-zeros i...
Base class for all MINLPs that use a standard triplet matrix form and dense vectors.
virtual bool get_bounds_info(Ipopt::Index n, Ipopt::Number *x_l, Ipopt::Number *x_u, Ipopt::Index m, Ipopt::Number *g_l, Ipopt::Number *g_u)=0
overload this method to return the information about the bound on the variables and constraints.
virtual const BranchingInfo * branchingInfo() const =0
virtual const SosInfo * sosConstraints() const =0
virtual void finalize_solution(TMINLP::SolverReturn status, Ipopt::Index n, const Ipopt::Number *x, Ipopt::Number obj_value)=0
This method is called when the algorithm is complete so the TNLP can store/write the solution.
PerturbInfo()
default constructor.
int cIdx
Index of the constraint.
SimpleConcaveConstraint()
Default constructor gives "safe" values.
Structure for marked non-convex constraints.
virtual bool get_constraint_convexities(int m, TMINLP::Convexity *constraints_convexities) const
Get accest to constraint convexities.
int yIdx
Index of the variable y.
virtual bool get_scaling_parameters(Ipopt::Number &obj_scaling, bool &use_x_scaling, Ipopt::Index n, Ipopt::Number *x_scaling, bool &use_g_scaling, Ipopt::Index m, Ipopt::Number *g_scaling)
overload this method to return scaling parameters.
virtual ~TMINLP()
Default destructor.
int * starts
For 0 <= i < nums, start[i] gives the indice of indices and weights arrays at which the description o...
virtual bool hasLinearObjective()
Say if problem has a linear objective (for OA)
void operator=(const TMINLP &)
Overloaded Equals Operator.
virtual bool get_constraints_linearity(Ipopt::Index m, Ipopt::TNLP::LinearityType *const_types)=0
overload this method to provide the constraint linearity.