#include "src/mc/api/strategy/UniformStrategy.hpp"
#include "src/mc/explo/Exploration.hpp"
#include "src/mc/mc_config.hpp"
+#include "xbt/random.hpp"
#include <algorithm>
#include <boost/range/algorithm.hpp>
{
XBT_VERB("Creating a guide for the state");
- srand(_sg_mc_random_seed);
if (_sg_mc_strategy == "none")
strategy_ = std::make_shared<BasicStrategy>();
strategy_ = std::make_shared<MaxMatchComm>();
else if (_sg_mc_strategy == "min_match_comm")
strategy_ = std::make_shared<MinMatchComm>();
- else if (_sg_mc_strategy == "uniform")
+ else if (_sg_mc_strategy == "uniform") {
+ xbt::random::set_mersenne_seed(_sg_mc_random_seed);
strategy_ = std::make_shared<UniformStrategy>();
+ }
else
THROW_IMPOSSIBLE;
#define SIMGRID_MC_UNIFORMSTRATEGY_HPP
#include "src/mc/transition/Transition.hpp"
+#include "xbt/random.hpp"
#define MAX_RAND 100000
UniformStrategy()
{
for (long aid = 0; aid < 10; aid++)
- valuation[aid] = rand() % 10000;
+ valuation[aid] = xbt::random::uniform_int(0, MAX_RAND);
}
void copy_from(const Strategy* strategy) override
{
for (auto& [aid, _] : actors_to_run_)
- valuation[aid] = rand() % 10000;
+ valuation[aid] = xbt::random::uniform_int(0, MAX_RAND);
}
std::pair<aid_t, int> best_transition(bool must_be_todo) const override
if (possibilities == 1)
chosen = 0;
else
- chosen = rand() % possibilities;
+ chosen = xbt::random::uniform_int(0, possibilities-1);
for (auto const& [aid, actor] : actors_to_run_) {
if (((not actor.is_todo()) and must_be_todo) or actor.is_done() or (not actor.is_enabled()))