Program Listing for File multiStartOptimization.h¶
↰ Return to documentation for file (include/parpeoptimization/multiStartOptimization.h
)
#ifndef MULTI_START_OPTIMIZATION_H
#define MULTI_START_OPTIMIZATION_H
#include <parpeoptimization/optimizationProblem.h>
#include <memory>
namespace parpe {
class MultiStartOptimizationProblem {
public:
virtual int getNumberOfStarts() const = 0;
virtual bool restartOnFailure() const { return false; }
virtual std::unique_ptr<OptimizationProblem>
getLocalProblem(int multiStartIndex) const = 0;
virtual ~MultiStartOptimizationProblem() = default;
};
class MultiStartOptimization {
public:
MultiStartOptimization(MultiStartOptimizationProblem& problem,
bool runParallel = true,
int first_start_idx = 0);
~MultiStartOptimization() = default;
void run();
void runMultiThreaded() const;
void runSingleThreaded();
void setRunParallel(bool runParallel);
private:
int runStart(int start_idx) const;
MultiStartOptimizationProblem& msProblem;
int numberOfStarts = 1;
bool restartOnFailure = false;
bool runParallel = true;
int first_start_idx = 0;
};
} // namespace parpe
#endif