From 717f63109528dae37b29454219c3bc2bf4e88325 Mon Sep 17 00:00:00 2001 From: iasonmanolas Date: Wed, 10 Nov 2021 11:28:22 +0200 Subject: [PATCH] Exporting number of function calls in the csv --- src/main.cpp | 2 +- src/reducedmodeloptimizer.cpp | 37 +++++++++++++++++++---------------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 241fac9..3bcfbe4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -135,7 +135,7 @@ int main(int argc, char *argv[]) { settings_optimization.writeHeaderTo(csv_results); csv_results << endrow; csv_results << std::to_string(fullPattern.EN()) + "#" + pairName; - optimizationResults.writeResultsTo(settings_optimization, csv_results); + optimizationResults.writeResultsTo(csv_results); settings_optimization.writeSettingsTo(csv_results); csv_results << endrow; } else { diff --git a/src/reducedmodeloptimizer.cpp b/src/reducedmodeloptimizer.cpp index 5fd16f4..0a882f4 100644 --- a/src/reducedmodeloptimizer.cpp +++ b/src/reducedmodeloptimizer.cpp @@ -23,6 +23,7 @@ struct GlobalOptimizationVariables { std::vector objectiveValueHistoryY; std::vector objectiveValueHistoryX; std::vector plotColors; + size_t iterationOfMinima{0}; Eigen::VectorXd initialParameters; std::vector simulationScenarioIndices; double minY{DBL_MAX}; @@ -253,34 +254,35 @@ double ReducedModelOptimizer::objective(const dlib::matrix &x) } } // std::cout << error << std::endl; +// global.objectiveValueHistory.push_back(totalError); +// global.plotColors.push_back(10); + ++global.numberOfFunctionCalls; if (totalError < global.minY) { global.minY = totalError; - std::cout << "New best:" << totalError << std::endl; - // global.minX.assign(x.begin(), x.begin() + n); - std::cout.precision(17); - for (int i = 0; i < x.size(); i++) { - std::cout << x(i) << " "; - } - std::cout << std::endl; - global.objectiveValueHistoryY.push_back(std::log(totalError)); - global.objectiveValueHistoryX.push_back(global.numberOfFunctionCalls); - global.plotColors.push_back(0.1); + global.iterationOfMinima = global.numberOfFunctionCalls; + // std::cout << "New best:" << totalError << std::endl; + // // global.minX.assign(x.begin(), x.begin() + n); + // std::cout.precision(17); + // for (int i = 0; i < x.size(); i++) { + // std::cout << x(i) << " "; + // } + // std::cout << std::endl; + // global.objectiveValueHistoryY.push_back(std::log(totalError)); + // global.objectiveValueHistoryX.push_back(global.numberOfFunctionCalls); + // global.plotColors.push_back(0.1); // auto xPlot = matplot::linspace(0, // global.objectiveValueHistoryY.size(), // global.objectiveValueHistoryY.size()); - global.gPlotHandle = matplot::scatter(global.objectiveValueHistoryX, - global.objectiveValueHistoryY, - 4, - global.plotColors); + // global.gPlotHandle = matplot::scatter(global.objectiveValueHistoryX, + // global.objectiveValueHistoryY, + // 4, + // global.plotColors); // matplot::show(); // SimulationResultsReporter::createPlot("Number of Steps", // "Objective value", // global.objectiveValueHistoryY); } -// global.objectiveValueHistory.push_back(totalError); -// global.plotColors.push_back(10); #ifdef POLYSCOPE_DEFINED - ++global.numberOfFunctionCalls; if (global.optimizationSettings.numberOfFunctionCalls >= 100 && global.numberOfFunctionCalls % (global.optimizationSettings.numberOfFunctionCalls / 100) == 0) { @@ -959,6 +961,7 @@ void ReducedModelOptimizer::getResults(const dlib::function_evaluation &optimiza // global.reducedPatternSimulationJobs[simulationScenarioIndex]->pMesh->registerForDrawing(); // global.reducedPatternSimulationJobs[simulationScenarioIndex]->pMesh->setLabel(temp); } + results.iterationOfMinima = global.iterationOfMinima; // results.draw(); }