#ifndef PGA_H
#define PGA_H


#include <vector>
#include <random>

#include "GGA.h"

class PGA : public GGA {
    public:
        PGA(int mu, int lda, int selection, double sbm_proba, std::vector<double> crossover_probas, int crossover_method, int version, std::default_random_engine& randomizer) : GGA(mu, lda, selection, sbm_proba, crossover_method, version, randomizer), m_crossover_probas{crossover_probas} {};
        double get_crossover_proba(double progress);

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

#endif // PGA_H
