11 #ifndef BonBqpdSolver_H
12 #define BonBqpdSolver_H
31 const std::string &name):
34 virtual const std::string&
errorName()
const;
73 virtual bool Initialize(std::string params_file);
98 throw CoinError(__PRETTY_FUNCTION__,
"",
"Not implemented");
169 Times(): numsolve(0), create(0),
solve(0), resolve(0), warm_start(0), pivots(0){
172 Times & operator +=(Times &rhs){
173 numsolve += rhs.numsolve;
174 create += rhs.create;
176 resolve += rhs.resolve;
177 warm_start += rhs.warm_start;
178 pivots += rhs.pivots;
247 fint irh1,
na,
na1,
nb,
nb1,
ka1,
kb1,
kc1,
irg1,
lu1,
lv,
lv1,
ll1;
261 fint ns,
ns1,
nt,
nt1,
nu,
nu1,
nx,
nx1,
np,
np1,
nprof,
lc;
262 fint lc1,
li,
li1,
lm,
lm1,
lp_,
lp1,
lq,
lq1,
lr,
lr1,
ls_,
ls1,
lt,
lt1;
347 int kmax_ipt,
int mlp_ipt,
double* fillin_factor):
380 initialize(tqp, options, kmax_ipt, mlp_ipt, fillin_factor);
386 int kmax_ipt,
int mlp_ipt,
double* fillin_factor);
417 Times ×(){
return cached_->times_;}
fint lm
bqpdc common block
fint m2
bqpdc common block
fint ns1
bqpdc common block
fint nx
bqpdc common block
int pivots_
Number of pivots.
TNLPSolver::ReturnStatus callOptimizer()
Perform optimization using data structure in cache.
virtual ReturnStatus ReOptimizeTNLP(const Ipopt::SmartPtr< Ipopt::TNLP > &tnlp)
Resolves a problem expresses as a TNLP.
fint mp
bqpdc common block
double cpuTime_
Elapsed CPU time in last optimization.
UnsolvedBqpdError(int errorNum, Ipopt::SmartPtr< TMINLP2TNLP > model, const std::string &name)
Ipopt::SmartPtr< Ipopt::Journalist > journalist()
Get a pointer to a journalist.
virtual const std::string & errorName() const
Get the string corresponding to error.
fint lq
bqpdc common block
fint nprof
bqpdc common block
virtual int IterationCount()
Get the iteration count of the last optimization.
virtual std::string & solverName()
Get the solver name.
fint na
bqpdc common block
virtual bool markHotStart()
Safe the current state (after most recent solve that must have been successful) as hot start informat...
virtual void disableWarmStart()
Solves a problem expresses as a TNLP.
Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions()
Get a pointer to RegisteredOptions (generally used to add new ones)
fint li1
bqpdc common block
Ipopt::SmartPtr< BranchingTQP > tqp_
int mlp_ipt_
Fill-in factor for QP factorization.
fint nu
bqpdc common block
void unmarkHotStart()
Forget about the hot start info.
fint na1
bqpdc common block
static int reinit_freq_
Hot start reinitialization fequency.
bool IsValid(const OSSmartPtr< U > &smart_ptr)
bool use_warm_start_in_cache_
flag remembering if warm start information has been put into cache
fint nu1
bqpdc common block
virtual ~UnsolvedBqpdError()
This is a generic class for calling an NLP solver to solve a TNLP.
real sgnf
repc common block
fint lt1
bqpdc common block
real emin
bqpdc common block
fint nb1
bqpdc common block
fint irh1
bqpdc common block
fint ka1
bqpdc common block
real vstep
vstepc common block
virtual bool Initialize(std::string params_file)
Initialize the TNLPSolver (read options from params_file)
fint lv1
bqpdc common block
static std::string errorNames_[1]
fint nt
bqpdc common block
fint lr1
bqpdc common block
virtual void enableWarmStart()
Solves a problem expresses as a TNLP.
ipfint fint
Fortran type for integer used in filter.
fint lc1
bqpdc common block
fint lp1
bqpdc common block
real tol
bqpdc common block
int default_log_level_
To record default log level.
fint li
bqpdc common block
fint lastr
bqpdc common block
virtual UnsolvedError * newUnsolvedError(int num, Ipopt::SmartPtr< TMINLP2TNLP > problem, std::string name)
virtual void setOutputToDefault()
turn off all output from the solver
int errorNum() const
Return error number.
void solve(OSCommandLine *oscommandline, OSnl2OS *osnl2os)
Next we have implementations of the six remote service methods solve, send, retrieve, knock, kill, getJobID (Do not bother with local solve; use runSolver instead)
fint lv
bqpdc common block
fint nres
bqpdc common block
virtual int errorCode() const
Error code (solver specific).
fint lq1
bqpdc common block
fint np1
bqpdc common block
virtual void forceSolverOutput(int log_level)
turn on all output from the solver
fint nx1
bqpdc common block
virtual CoinWarmStart * getEmptyWarmStart() const
Solves a problem expresses as a TNLP.
bool markHotStart()
Store most recent solution as hot start.
fint m1
factorc common block
fint mxm1
mxm1c common block
real eps
epsc common block
int next_reinit_
next reinitialization of hot start.
static int m0de_
Hot start m0de.
double fillin_factor_
Fill-in factor for QP factorization.
void registerOptions()
Register this solver options into passed roptions.
fint ns
sparsec common block
fint ls1
bqpdc common block
void copyFromHotStart()
Copy current values from hot start info.
real alpha
alphac common block
virtual ReturnStatus OptimizeTNLP(const Ipopt::SmartPtr< Ipopt::TNLP > &tnlp)
Solves a problem expresses as a TNLP.
cachedInfo(const Ipopt::SmartPtr< BranchingTQP > &tqp, Ipopt::SmartPtr< Ipopt::OptionsList > &options, int kmax_ipt, int mlp_ipt, double *fillin_factor)
fint lc
bqpdc common block
Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions_
Registered Options.
void fint fint fint real fint real real real real real real real real real fint real fint fint fint real * ws
bool haveHotStart_
indicates if we should start from a hotstart
int kmax_ipt_
Fill-in factor for QP factorization.
fint irg1
bqpdc common block
virtual bool setWarmStart(const CoinWarmStart *warm, Ipopt::SmartPtr< TMINLP2TNLP > tnlp)
Set the warm start in the solver.
fint ll1
bqpdc common block
ReturnStatus
Standard return statuses for a solver.
virtual Ipopt::SmartPtr< TNLPSolver > clone()
Virtual copy constructor.
double * fillin_factor_
Fill-in factor for QP factorization.
fint nb
bqpdc common block
fint lm1
bqpdc common block
Ipopt::SmartPtr< const Ipopt::OptionsList > options() const
Get the options (for getting their values).
fint npiv
bqpdc common block
fint lp_
bqpdc common block
Ipopt::SmartPtr< cachedInfo > cached_
Cached information on last problem optimized for reoptimization.
fint nfreq
bqpdc common block
void initialize(const Ipopt::SmartPtr< BranchingTQP > &tqp, Ipopt::SmartPtr< Ipopt::OptionsList > &options, int kmax_ipt, int mlp_ipt, double *fillin_factor)
Fill data structures for filter with info from tnlp.
We will throw this error when a problem is not solved.
virtual double CPUTime()
Get the CpuTime of the last optimization.
BqpdSolver(bool createEmpty=false)
Default constructor.
fint mq
bqpdc common block
void optimize()
Optimize problem described by cache with filter.
fint np
bqpdc common block
fint ls_
bqpdc common block
fint lu1
bqpdc common block
fint irow
bqpdc common block
virtual CoinWarmStart * getUsedWarmStart(Ipopt::SmartPtr< TMINLP2TNLP > tnlp) const
Get warm start used in last optimization.
virtual const std::string & solverName() const
Return the name of the solver.
fint kc1
bqpdc common block
bool bad_warm_start_info_
int amax_
Number of nonzeros in Jacobian and gradient.
static std::string solverName_
To record default log level.
virtual bool warmStartIsValid(const CoinWarmStart *ws) const
Check that warm start object is valid.
static std::string solverName_
fint nt1
bqpdc common block
Cached information for reoptimizing.
double real
Fortran type for double.used in filter.
virtual CoinWarmStart * getWarmStart(Ipopt::SmartPtr< TMINLP2TNLP > tnlp) const
Get the warm start form the solver.
const char * prefix()
Get the prefix.
fint nup
refactorc common block
fint nrep
bqpdc common block
fint kb1
bqpdc common block
fint lt
bqpdc common block
fint lr
bqpdc common block
virtual ~BqpdSolver()
destructor