.. _program_listing_file_include_cvrp_simulated_annealing.hpp: Program Listing for File simulated_annealing.hpp ================================================ |exhale_lsh| :ref:`Return to documentation for file <file_include_cvrp_simulated_annealing.hpp>` (``include/cvrp/simulated_annealing.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef SA_HPP #define SA_HPP #include "cvrp/utils.hpp" class SimulatedAnnealingSolution : public Solution { public: SimulatedAnnealingSolution( const std::vector<Node>& nodes, const std::vector<Vehicle>& vehicles, const std::vector<std::vector<double>>& distanceMatrix, const int stag_limit = 500000, const double init_temp = 5000, const double cooling_rate = 0.9999, const int n_reheats = 20); explicit SimulatedAnnealingSolution(const Problem& p, const int stag_limit = 500000, const double init_temp = 5000, const double cooling_rate = 0.9999, const int n_reheats = 20); explicit SimulatedAnnealingSolution(const Solution& s, int stag_limit = 500000, double init_temp = 5000, double cooling_rate = 0.9999, const int n_reheats = 20); void Solve() override; private: const int stag_limit_; const double init_temp_; const double cooling_rate_; const int n_reheats_; inline static bool AllowMove(const double delta, const double temp); }; #endif // SA_HPP