From d72ec5ad2e8e8cc4d7c8f6ac144c02473b661c86 Mon Sep 17 00:00:00 2001 From: Jxtopher <39927513+Jxtopher@users.noreply.github.com> Date: Tue, 30 Apr 2024 14:08:30 +0200 Subject: [PATCH] Fix CI: random class issue, t-eoRoulette and update the workflow --- .github/workflows/build_ubuntu_debug.yml | 7 +------ eo/src/eoInit.h | 2 +- eo/src/eoProportionalSelect.h | 8 ++------ eo/src/ga/eoBitOp.h | 8 ++++---- 4 files changed, 8 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build_ubuntu_debug.yml b/.github/workflows/build_ubuntu_debug.yml index d6d5cad4b..b68744cb2 100644 --- a/.github/workflows/build_ubuntu_debug.yml +++ b/.github/workflows/build_ubuntu_debug.yml @@ -1,10 +1,5 @@ name: Build Debug (Ubuntu) - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] +on: [push, pull_request] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) diff --git a/eo/src/eoInit.h b/eo/src/eoInit.h index 58eef63e0..524faa96a 100644 --- a/eo/src/eoInit.h +++ b/eo/src/eoInit.h @@ -198,7 +198,7 @@ class eoInitPermutation: public eoInit // FIXME inherit from eoInitWithDim } UF_random_generator gen(chrom.size()); - std::shuffle(chrom.begin(), chrom.end(), gen); + std::random_shuffle(chrom.begin(), chrom.end(), gen); chrom.invalidate(); } diff --git a/eo/src/eoProportionalSelect.h b/eo/src/eoProportionalSelect.h index 65188bfe4..7329724ad 100644 --- a/eo/src/eoProportionalSelect.h +++ b/eo/src/eoProportionalSelect.h @@ -68,16 +68,12 @@ public: } assert(not _pop[0].invalid()); - const typename EOT::Fitness min_fit - = std::min_element( std::begin(_pop), std::end(_pop) ) - ->fitness(); - cumulative.clear(); - cumulative.push_back(_pop[0].fitness() - min_fit); + cumulative.push_back(_pop[0].fitness() ); for (unsigned i = 1; i < _pop.size(); ++i) { assert(not _pop[i].invalid()); - cumulative.push_back(cumulative.back() + _pop[i].fitness() - min_fit); + cumulative.push_back(cumulative.back() + _pop[i].fitness()); } assert(cumulative.size() == _pop.size()); } diff --git a/eo/src/ga/eoBitOp.h b/eo/src/ga/eoBitOp.h index b3e33efec..50e23207d 100644 --- a/eo/src/ga/eoBitOp.h +++ b/eo/src/ga/eoBitOp.h @@ -361,10 +361,10 @@ template class eoUBitXover: public eoQuadOp { if (chrom1[i] != chrom2[i] && eo::rng.flip(preference)) { - // bool tmp = chrom1[i]; - // chrom1[i]=chrom2[i]; - // chrom2[i] = tmp; - std::swap(chrom1[i], chrom2[i]); + bool tmp = chrom1[i]; + chrom1[i]=chrom2[i]; + chrom2[i] = tmp; + // std::swap(chrom1[i], chrom2[i]); changed = true; } }