rosa/bench/graspels/nrsk.cpp

38 lines
1.3 KiB
C++

#include "bad_graspels.h"
#include "common.h"
using NRELS = rosa::SkelNREls<
tsp::Solution, RNG,
Descent,
Move2Opt, Descent, FN(selectMin)
>;
using NRGRASPxELS = rosa::SkelNRGrasp<
tsp::Problem, tsp::Solution, RNG,
RGreedy<tsp::Solution>, NRELS,
FN(selectMin)
>;
tsp::Solution sk_nr_seq(tsp::Problem const& p, RNG& rng, Arguments const&) {
auto graspEls = alsk::implement<alsk::exec::Sequential, NRGRASPxELS>();
graspEls.executor.repeatability.disabled();
graspEls.skeleton.task.task<0>() = rgreedy();
graspEls.skeleton.task.task<1>().task<1>().n = ELS_ITER_MAX;
graspEls.skeleton.task.task<1>().task<1>().task.n = ELS_GEN;
graspEls.skeleton.n = GRASP_N;
return graspEls(p, rng);
}
tsp::Solution sk_nr_par(tsp::Problem const& p, RNG& rng, Arguments const&) {
auto graspEls = alsk::implement<alsk::exec::FirstLevelNoOpti, NRGRASPxELS>();
graspEls.executor.cores = NTHREADS;
graspEls.executor.repeatability.disabled();
graspEls.skeleton.task.task<0>() = rgreedy();
graspEls.skeleton.task.task<1>().task<1>().n = ELS_ITER_MAX;
graspEls.skeleton.task.task<1>().task<1>().task.n = ELS_GEN;
graspEls.skeleton.n = GRASP_N;
return graspEls(p, rng);
}