1 #ifndef MATRIXEDGESCORER_HPP
2 #define MATRIXEDGESCORER_HPP
18 class MatrixEdgeScorer {
20 MatrixEdgeScorer(
const Instance & instance,
21 const SolverConfig & sconf) noexcept;
23 double get_score_for(
size_t s,
size_t t)
const noexcept;
24 void incorporate_result(
25 double quality,
const std::vector<unsigned int> & start_times,
26 const std::vector<std::vector<detail::Edge>> & adjacency_list);
27 void iteration(
size_t iteration) noexcept;
32 size_t score_window_size;
33 double score_window_fraction_threshold;
34 double score_exponent;
37 unsigned int aging_interval;
38 unsigned int age_period;
39 std::vector<std::pair<unsigned int, double>> score_matrix_a;
40 std::vector<std::pair<unsigned int, double>> score_matrix_b;
42 void adjust_score_for(
unsigned int s,
unsigned int t,
double delta) noexcept;
44 std::vector<double> last_scores;
45 size_t last_scores_offset;