Minotaur 0.4.1
Docs for developers
MultiStart.h
Go to the documentation of this file.
1//
2// Minotaur -- It's only half bull!
3//
4// (C)opyright 2009 - 2025 The Minotaur Team.
5//
6
13#ifndef MULTISTART_H
14#define MULTISTART_H
15
16#include "Types.h"
17#include "AMPLInterface.h"
18#include "BranchAndBound.h"
19#include "Brancher.h"
20#include "Presolver.h"
21#include "Solver.h"
22
23namespace Minotaur {
29class MultiStart : public Solver {
30public:
32 MultiStart(EnvPtr env);
33
36
38 void showHelp() const;
39
41 int showInfo();
42
44 virtual int solve(ProblemPtr p);
45
47 virtual SolveStatus getStatus();
48
50 virtual DoubleVector getSolution();
51
53 double getUb();
54
56 double getLb();
57
58private:
59 const static std::string me_;
60 double objSense_;
61 ProblemPtr oinst_;
62 SolveStatus status_;
63
64 BranchAndBound* getBab_(Engine *engine, HandlerVector &handlers);
65 BrancherPtr getBrancher_(HandlerVector handlers, Engine *e);
66 int getEngine_(Engine **e);
67 PresolverPtr presolve_(HandlerVector &handlers);
68 void setInitialOptions_();
69 int writeBnbStatus_(BranchAndBound *bab);
70};
71}
72#endif
73
74
Declare the AMPLInterface class fo reading problems from AMPL.
Declare the BranchAndBound class for branch-and-bound-algorithm, BabStats class for statistics and Ba...
Declare the base class Brancher for finding and creating branches in Branch-and-Bound.
Declare Presolver class for presolving.
Define the abstract base class Solver.
Declare important 'types' used in Minotaur.
Implement a generic branch-and-bound algorithm on a single cpu.
Definition: BranchAndBound.h:38
A brancher is used to find suitable branches for a given node. e.g. LexicoBrancher....
Definition: Brancher.h:33
Definition: Engine.h:34
Definition: Environment.h:28
Definition: MultiStart.h:29
double getLb()
Return the lower bound for the optimal value.
virtual int solve(ProblemPtr p)
Solve the problem.
Definition: MultiStart.cpp:447
void showHelp() const
show help messages
Definition: MultiStart.cpp:329
~MultiStart()
Destroy.
Definition: MultiStart.cpp:69
double getUb()
Return the upper bound for the optimal value.
virtual DoubleVector getSolution()
get solution of the last solve.
Definition: MultiStart.cpp:253
int showInfo()
Display information.
Definition: MultiStart.cpp:346
MultiStart(EnvPtr env)
Default constructor.
Definition: MultiStart.cpp:60
virtual SolveStatus getStatus()
get status of the last solve.
Definition: MultiStart.cpp:260
Definition: Presolver.h:39
Definition: Problem.h:74
Definition: Solver.h:28
Definition: ActiveNodeStore.h:20
SolveStatus
Different states an algorithm like branch-and-bound can be in.
Definition: Types.h:158

Minotaur source code documented by Doxygen 1.9.4 on Fri Apr 25 2025