#pragma once #include "ObjectiveFunction.h" #include #include #include "Random.h" class BinaryHeuristic { public: BinaryHeuristic(std::ostream& outstream); enum class ObjectiveFunctionGoal { min, max }; virtual Solution execute(int rounds, int n, std::function&)> objectiveFunction, ObjectiveFunctionGoal goal) = 0; protected: //Interfaces PseudoRandom rand; std::ostream& outstream; std::function getOperatorFromGoal(ObjectiveFunctionGoal goal); private: };