Skip to main content
. 2020 Oct 23;22(11):1198. doi: 10.3390/e22111198
Algorithm 1 Basic algorithm
Require:
  • Initial population pop

  • Evaluation function evalF

  • Number of iterations K

  • Mating pool selection strategy selectPool

  • Crossover strategy crossover

  • Mutation strategy mutate

  • Predicate resetTOFront

  • Predicate purgeFrontPredicate

  • Front purging procedure purgeFront

  • 1:

    function FeatureSubsetSelection

  • 2:

        front ← pop

  • 3:

        for gen = 1 to K do

  • 4:

            pool ← selectPool(pop)

  • 5:

            pool ← crossover(pool)

  • 6:

            pop ← mutate(pop ∪ pool)

  • 7:

            pop ← evaluate(pop, evalF)

  • 8:

            front ← front ∪ pop                       ▹ Add evaluated population to Pareto front

  • 9:

            front ← removeDominated(front)      ▹ Remove unoptimal items from Pareto front

  • 10:

            if purgeFrontPredicate(gen) then

  • 11:

               front ← purgeFront(front)

  • 12:

            end if

  • 13:

            if resetToFront(gen) then

  • 14:

               pop ← front

  • 15:

            end if

  • 16:

        end for

  • 17:

        return front

  • 18:

    end function