Skip to content

Commit f65e93a

Browse files
committed
update
1 parent fc7e7bb commit f65e93a

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,8 @@ target_include_directories(main PUBLIC
1919

2020
if (MSVC)
2121
target_compile_options(main PRIVATE /bigobj)
22+
23+
else()
24+
target_compile_options(main PRIVATE -march=native)
2225
endif()
2326

include/common.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <Eigen/QR>
2424
#include <unsupported/Eigen/MatrixFunctions>
2525

26-
using Float = double;
26+
using Float = long double;
2727
using Matrix = Eigen::Matrix<Float, -1, -1>;
2828
using Vector = Eigen::Matrix<Float, -1, 1>;
2929
using Array = Eigen::Array<Float, -1, 1>;

src/main.cpp

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ using std::chrono::duration;
1010
using std::chrono::milliseconds;
1111

1212
static int dim = 20;
13-
static bool rotated = true;
13+
static bool rotated = false;
1414
static size_t budget = dim * 10000;
1515

1616

@@ -53,7 +53,8 @@ struct Timer
5353
{
5454
const auto t2 = high_resolution_clock::now();
5555
const auto ms_int = duration_cast<milliseconds>(t2 - t1);
56-
std::cout << "Time elapsed: " << static_cast<Float>(ms_int.count()) / 1000.0 << "s\n\n";
56+
std::cout << "Time elapsed: " << std::defaultfloat << std::setprecision(5) <<
57+
static_cast<Float>(ms_int.count()) / 1000.0 << "s\n\n";
5758
}
5859
};
5960

@@ -63,7 +64,7 @@ void run_modcma(parameters::MatrixAdaptationType mat_t, functions::ObjectiveFunc
6364
rng::set_seed(42);
6465
parameters::Modules m;
6566
m.matrix_adaptation = mat_t;
66-
m.elitist = true;
67+
m.elitist = false;
6768
m.active = false;
6869
m.ssa = ssa;
6970
//m.weights = parameters::RecombinationWeights::EQUAL;
@@ -83,8 +84,8 @@ void run_modcma(parameters::MatrixAdaptationType mat_t, functions::ObjectiveFunc
8384
FunctionType f = Ellipse(dim, rotated, fun_t);
8485
while (cma.step(f))
8586
{
86-
if (cma.p->stats.global_best.y < 1e-9)
87-
break;
87+
//if (cma.p->stats.global_best.y < 1e-9)
88+
//break;
8889
}
8990

9091
std::cout << "modcmaes: " << parameters::to_string(mat_t) << std::defaultfloat;
@@ -109,17 +110,13 @@ void run_modcma(parameters::MatrixAdaptationType mat_t, functions::ObjectiveFunc
109110
int main()
110111
{
111112
auto ft = functions::ELLIPSE;
112-
113-
114113
auto ssa = parameters::StepSizeAdaptation::CSA;
115114

116-
//run_modcma(parameters::MatrixAdaptationType::NONE, ft, ssa);
117-
//run_modcma(parameters::MatrixAdaptationType::SEPERABLE, ft);
118-
//run_modcma(parameters::MatrixAdaptationType::MATRIX, ft, ssa);
119-
//run_modcma(parameters::MatrixAdaptationType::CHOLESKY, ft, ssa);
120-
//run_modcma(parameters::MatrixAdaptationType::COVARIANCE_NO_EIGV, ft, ssa);
121-
run_modcma(parameters::MatrixAdaptationType::NATURAL_GRADIENT, ft, parameters::StepSizeAdaptation::XNES);
122-
run_modcma(parameters::MatrixAdaptationType::NATURAL_GRADIENT, ft, ssa);
123-
//run_modcma(parameters::MatrixAdaptationType::NATURAL_GRADIENT, ft, parameters::StepSizeAdaptation::LPXNES);
115+
run_modcma(parameters::MatrixAdaptationType::NONE, ft, ssa);
116+
run_modcma(parameters::MatrixAdaptationType::SEPERABLE, ft, ssa);
117+
run_modcma(parameters::MatrixAdaptationType::MATRIX, ft, ssa);
118+
run_modcma(parameters::MatrixAdaptationType::CHOLESKY, ft, ssa);
124119
run_modcma(parameters::MatrixAdaptationType::COVARIANCE, ft, ssa);
120+
run_modcma(parameters::MatrixAdaptationType::COVARIANCE_NO_EIGV, ft, ssa);
121+
run_modcma(parameters::MatrixAdaptationType::NATURAL_GRADIENT, ft, ssa);
125122
}

src/matrix_adaptation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ namespace matrix_adaptation
151151
{
152152
const auto rank_mu = (popY.row(j).array().pow(2) * weights.transpose().array()).sum();
153153
c(j) = (decay_c * c(j)) + (w.c1 * pow(pc(j), 2)) + (w.cmu * rank_mu);
154-
c(j) = std::max(c(j), 1e-12);
154+
c(j) = std::max(c(j), Float{ 1e-12 });
155155
d(j) = std::sqrt(c(j));
156156
}
157157

0 commit comments

Comments
 (0)