5#ifndef IDOL_IMPL_UNIFORMLYRANDOM_H
6#define IDOL_IMPL_UNIFORMLYRANDOM_H
9#include "VariableBranching.h"
11namespace idol::BranchingRules {
12 template<
class NodeInfoT>
class UniformlyRandom;
15template<
class NodeInfoT>
19 std::list<std::pair<Var, double>> scoring_function(
const std::list<Var> &t_var,
const Node<NodeInfoT> &t_node)
override;
22 std::list<Var> t_branching_candidates,
26template<
class NodeInfoT>
29 std::list<Var> t_branching_candidates,
35template<
class NodeInfoT>
36std::list<std::pair<idol::Var, double>>
40 std::mt19937 engine(m_seed);
41 std::uniform_real_distribution<double> distribution(0, 1);
43 std::list<std::pair<Var, double>> result;
45 for (
const auto& var : t_variables) {
46 result.emplace_back(var, distribution(engine));