#ifndef PEA_H
#define PEA_H

#include "heuristics/GGA.h"
#include "problems/crossover.h"

class PEA : public GGA
{
    public:
        PEA(int mu, int lda, int selection, std::vector<double> mutation_probas, std::default_random_engine& randomizer) :
            GGA(mu, lda, selection, UNIFORM_CROSSOVER, GA_V1, randomizer), m_mutation_probas{mutation_probas} {};
        double get_crossover_proba(double progress);
        double get_sbm_proba(double progress);

    protected:
        std::vector<double> m_mutation_probas;
};

#endif // PEA_H
