void HillClimbing<T>::optimiseImplementation() noexcept { ++this->numberOfIterations_; this->bestParameter_ = this->initialParameter_; this->bestSoftConstraintsValue_ = this->getSoftConstraintsValue(this->initialParameter_); this->bestObjectiveValue_ = this->getObjectiveValue(this->initialParameter_); while(!this->isFinished() && !this->isTerminated()) { ++this->numberOfIterations_; const arma::Col<T>& candidateParameter = this->getRandomNeighbour(this->bestParameter_, static_cast<T>(0.0L), maximalStepSize_); updateBestParameter(candidateParameter, this->getSoftConstraintsValue(candidateParameter), this->getObjectiveValue(candidateParameter)); } }
void SimulatedAnnealing::optimiseImplementation() { ++numberOfIterations_; bestParameter_ = initialParameter_; bestObjectiveValue_ = getObjectiveValue(initialParameter_); arma::Col<double> state = bestParameter_; while (!isFinished() && !isTerminated()) { ++numberOfIterations_; const arma::Col<double>& candidateParameter = getRandomNeighbour(bestParameter_, arma::zeros<arma::Col<double>>(numberOfDimensions_), maximalStepSize_); const double candidateObjectiveValue = getObjectiveValue(candidateParameter); if (updateBestParameter(candidateParameter, candidateObjectiveValue) || isAcceptableState(candidateObjectiveValue)) { state = candidateParameter; } } }