fix: maximization & max restarts, feat: always use absolute values in logger
This commit is contained in:
parent
be230c34cd
commit
fd09739770
1 changed files with 8 additions and 6 deletions
|
|
@ -11,8 +11,8 @@
|
||||||
#include <f_w_model_one_max.hpp>
|
#include <f_w_model_one_max.hpp>
|
||||||
|
|
||||||
// using Particle = eoRealParticle<eoMaximizingFitness>;
|
// using Particle = eoRealParticle<eoMaximizingFitness>;
|
||||||
using Ints = eoInt<eoMinimizingFitnessT<int>, size_t>;
|
using Ints = eoInt<eoMaximizingFitnessT<int>, size_t>;
|
||||||
using Bits = eoBit<eoMinimizingFitnessT<int>, int>;
|
using Bits = eoBit<eoMaximizingFitnessT<int>, int>;
|
||||||
|
|
||||||
// by enumerating candidate operators and their parameters.
|
// by enumerating candidate operators and their parameters.
|
||||||
eoAlgoFoundryFastGA<Bits>& make_foundry(
|
eoAlgoFoundryFastGA<Bits>& make_foundry(
|
||||||
|
|
@ -23,7 +23,8 @@ eoAlgoFoundryFastGA<Bits>& make_foundry(
|
||||||
const size_t generations
|
const size_t generations
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
auto& foundry = store.pack< eoAlgoFoundryFastGA<Bits> >(init, eval_onemax, max_evals /*, max_restarts = max */);
|
// FIXME using max_restarts>1 does not allow to honor max evals.
|
||||||
|
auto& foundry = store.pack< eoAlgoFoundryFastGA<Bits> >(init, eval_onemax, max_evals, /*max_restarts=*/1);
|
||||||
|
|
||||||
/***** Continuators ****/
|
/***** Continuators ****/
|
||||||
foundry.continuators.add< eoGenContinue<Bits> >(generations);
|
foundry.continuators.add< eoGenContinue<Bits> >(generations);
|
||||||
|
|
@ -312,7 +313,9 @@ int main(int argc, char* argv[])
|
||||||
auto max_target_para = problem_config_mapping[problem].max_target;
|
auto max_target_para = problem_config_mapping[problem].max_target;
|
||||||
IOHprofiler_RangeLinear<size_t> target_range(0, max_target_para, buckets);
|
IOHprofiler_RangeLinear<size_t> target_range(0, max_target_para, buckets);
|
||||||
IOHprofiler_RangeLinear<size_t> budget_range(0, max_evals, buckets);
|
IOHprofiler_RangeLinear<size_t> budget_range(0, max_evals, buckets);
|
||||||
IOHprofiler_ecdf_logger<int, size_t, size_t> logger(target_range, budget_range);
|
IOHprofiler_ecdf_logger<int, size_t, size_t> logger(
|
||||||
|
target_range, budget_range,
|
||||||
|
/*use_known_optimum*/false);
|
||||||
|
|
||||||
logger.set_complete_flag(true);
|
logger.set_complete_flag(true);
|
||||||
logger.set_interval(0);
|
logger.set_interval(0);
|
||||||
|
|
@ -394,8 +397,7 @@ int main(int argc, char* argv[])
|
||||||
// assert(0 < perf and perf <= buckets*buckets);
|
// assert(0 < perf and perf <= buckets*buckets);
|
||||||
if(perf <= 0 or buckets*buckets < perf) {
|
if(perf <= 0 or buckets*buckets < perf) {
|
||||||
std::cerr << "WARNING: illogical performance: " << perf
|
std::cerr << "WARNING: illogical performance: " << perf
|
||||||
<< ", check the bounds?"
|
<< ", check the bounds or the algorithm." << std::endl;
|
||||||
<< " Will let it as is." << std::endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Output
|
// Output
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue