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