BinaryAntColonyAlgoritm.h 768 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "ObjectiveFunction.h"
  3. #include "BinaryHeuristic.h"
  4. #include "Random.h"
  5. #include <ostream>
  6. #include <functional>
  7. class BinaryAntColonyOptimization;
  8. typedef BinaryAntColonyOptimization Baco;
  9. class BinaryAntColonyOptimization : BinaryHeuristic
  10. {
  11. public:
  12. BinaryAntColonyOptimization(std::ostream& outstream, int iteration, int population, double vaporization = 0.3, double resetThreshold = 0.99);
  13. Solution execute(int round, int n, std::function<double(const std::vector<bool>&)> objectiveFunction, ObjectiveFunctionGoal goal) override;
  14. protected:
  15. private:
  16. //Params:
  17. int maxIteration;
  18. int amountOfPopulation;
  19. double vaporization;
  20. double resetThreshold;
  21. //Methods
  22. double calculateConvergenceFactor(std::vector<double> pheromons);
  23. };