5#ifndef IDOL_IMPL_MOSTINFEASIBLE_H
6#define IDOL_IMPL_MOSTINFEASIBLE_H
9#include "VariableBranching.h"
11namespace idol::BranchingRules {
12 template<
class NodeInfoT>
class MostInfeasible;
15template<
class NodeInfoT>
18 std::list<std::pair<Var, double>> scoring_function(
const std::list<Var> &t_var,
const Node<NodeInfoT> &t_node)
override;
23template<
class NodeInfoT>
28template<
class NodeInfoT>
29std::list<std::pair<idol::Var, double>>
33 const auto& primal_solution = t_node.info().primal_solution();
35 std::list<std::pair<Var, double>> result;
37 for (
const auto& var : t_variables) {
38 const double value = primal_solution.get(var);
39 const double score = std::abs(value - std::round(value));
40 result.emplace_back(var, score);