22#include <libcmaes/cmaes.h>
23#include <libcmaes/surrogatestrategy.h>
24#include <libcmaes/opti_err.h>
25#include <libcmaes/surrogates/rankingsvm.hpp>
27#ifndef RSVMSURROGATESTRATEGY_H
28#define RSVMSURROGATESTRATEGY_H
34 void to_mat_vec(std::vector<Candidate> &cp,
35 dMat &x, dVec &fvalues,
39 std::sort(cp.begin(),cp.end(),
40 [](Candidate
const &c1, Candidate
const &c2){return c1.get_fvalue() > c2.get_fvalue();});
41 x = dMat(cp.at(0).get_x_size(),cp.size());
42 fvalues = dVec(cp.size());
43 for (
int i=0;i<(int)cp.size();i++)
45 x.col(i) = cp.at(i).get_x_dvec().transpose();
46 fvalues(i) = cp.at(i).get_fvalue();
50 template <
class TGenoPheno>
using eostrat = ESOStrategy<CMAParameters<TGenoPheno>,CMASolutions,CMAStopCriteria<TGenoPheno> >;
52 template<
template <
class U,
class V>
class TStrategy,
class TCovarianceUpdate=CovarianceUpdate,
class TGenoPheno=GenoPheno<NoBoundStrategy>>
60 this->
_train = [
this](
const std::vector<Candidate> &
c,
const dMat &cov)
66 std::vector<Candidate>
cp =
c;
74 this->
_predict = [
this](std::vector<Candidate> &
c,
const dMat &cov)
76 dMat
x_test(
c.at(0).get_x_size(),
c.size());
77 for (
int i=0;
i<(
int)
c.size();
i++)
78 x_test.col(
i) =
c.at(
i).get_x_dvec().transpose();
82 std::vector<Candidate>
tset = this->
_tset;
89 for (
int i=0;
i<(
int)
c.size();
i++)
90 c.at(
i).set_fvalue(
fit(
i));
void train(dMat &x, const int &niter, const dMat &covinv, const dVec &xmean)
trains a ranker from a set of points
Definition rankingsvm.hpp:142
void predict(dVec &fit, dMat &x_test, dMat &x_train, const dMat &covinv, const dVec &xmean)
predicts a ranking from a learnt ranker
Definition rankingsvm.hpp:180
bool _encode
Definition rankingsvm.hpp:346
ACM Surrogate strategy for CMA-ES, follows: 'Surrogate-Assisted Evolutionary Algorithms',...
Definition surrogatestrategy.h:295
dVec xmean() const
returns current distribution's mean in parameter space
Definition cmasolutions.h:354
CMASolutions & get_solutions()
returns reference to current solution object
Definition esostrategy.h:193
an optimizer main class.
Definition esoptimizer.h:72
Definition rsvm_surr_strategy.hpp:54
int _rsvm_iter
Definition rsvm_surr_strategy.hpp:98
std::vector< Candidate > _tset
Definition surrogatestrategy.h:198
SurrFunc _predict
Definition surrogatestrategy.h:200
CSurrFunc _train
Definition surrogatestrategy.h:199
linear scaling of the parameter space to achieve similar sensitivity across all components.
Definition acovarianceupdate.h:30