38 lines
1.3 KiB
C++
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);
|
|
}
|