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);
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
int num
Number of SOS constraints.
virtual ~TMINLP()
Default destructor.
virtual const int * get_const_xtra_id() const
Access array describing constraint to which perspectives should be applied.
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_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.
(C) Copyright International Business Machines Corporation 2007
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.
MarkedNonConvex()
Default constructor gives "safe" values.
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_constraint_convexities(int m, TMINLP::Convexity *constraints_convexities) const
Get accest to constraint convexities.
virtual bool get_variables_types(Ipopt::Index n, VariableType *var_types)=0
overload this method to provide the variables types.
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_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 ...
virtual bool get_variables_linearity(Ipopt::Index n, Ipopt::TNLP::LinearityType *var_types)=0
overload this method to provide the variables linearity.
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.
void CoinFillN(T *to, const CoinBigIndex size, const T value)
int * priorities
priorities of sos constraints.
int yIdx
Index of the variable y.
SosInfo()
default constructor.
Constraint is non-convex.
virtual bool get_simple_concave_constraints(int number_concave, SimpleConcaveConstraint *simple_concave) const
Fill array containing indices of simple concave constraints.
int size
number of variables
Base class for all MINLPs that use a standard triplet matrix form and dense vectors.
Class to store sos constraints for model.
Stores branching priorities information.
DECLARE_STD_EXCEPTION(TMINLP_INVALID)
const double * GetPerturbationArray() const
Method for getting the array for the perturbation radii in order to use the values.
double * weights
weights of the elements of the SOS.
SimpleConcaveConstraint()
Default constructor gives "safe" values.
double * downPsCosts
User set down pseudo costs.
Class to store perturbation radii for variables in the model.
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.
double * upPsCosts
User set up pseudo costs.
Structure which describes a constraints of the form $f[ y \gt F(x) \f] with a concave function.
Constraint is concave of the simple form y >= F(x).
void gutsOfDestructor()
Reset information.
virtual bool get_number_nonconvex(int &number_non_conv, int &number_concave) const
Get dimension information on nonconvex constraints.
int * starts
For 0 <= i < nums, start[i] gives the indice of indices and weights arrays at which the description o...
int xIdx
Index of the variable x.
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.
BranchingInfo(const BranchingInfo &other)
int * branchingDirections
User set preferered branching direction.
Structure for marked non-convex constraints.
This is an adapter class that converts a TMINLP to a TNLP to be solved by Ipopt.
SolverReturn
Return statuses of algorithm.
VariableType
Type of the variables.
int cIdx
Index of the nonconvex constraint.
int cIdx
Index of the constraint.
void SetPerturbationArray(Ipopt::Index numvars, const double *perturb_radius)
Method for setting the perturbation radii.
virtual bool get_constraints_linearity(Ipopt::Index m, Ipopt::TNLP::LinearityType *const_types)=0
overload this method to provide the constraint linearity.
int cRelaxIdx
Index of constraint relaxing the nonconvex constraint.
virtual bool hasUpperBoundingObjective()
Say if has a specific function to compute upper bounds.
Convexity
Used to mark constraints of the problem.
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...
int * priorities
User set priorities on variables.
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 const PerturbInfo * perturbInfo() const
int numNz
Total number of non zeroes in SOS constraints.
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 const BranchingInfo * branchingInfo() const =0
T * CoinCopyOfArray(const T *array, const CoinBigIndex size)
void operator=(const TMINLP &)
Overloaded Equals Operator.
virtual const SosInfo * sosConstraints() const =0
bool hasGeneralInteger()
Say if problem has general integer variables.
virtual bool hasLinearObjective()
Say if problem has a linear objective (for OA)
int * indices
indices of elements belonging to the SOS.
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
PerturbInfo()
default constructor.