X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4de2a148bea34f550b79c07fb5e80ac36e6aa0e9..2961338407d12e499aba2b9086f22350ac3668ff:/src/kernel/lmm/bmf.hpp diff --git a/src/kernel/lmm/bmf.hpp b/src/kernel/lmm/bmf.hpp index d039d247b7..3d0564fa94 100644 --- a/src/kernel/lmm/bmf.hpp +++ b/src/kernel/lmm/bmf.hpp @@ -3,10 +3,10 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#ifndef SURF_BMF_HPP -#define SURF_BMF_HPP +#ifndef SIMGRID_KERNEL_LMM_BMF_HPP +#define SIMGRID_KERNEL_LMM_BMF_HPP -#include "src/kernel/lmm/maxmin.hpp" +#include "src/kernel/lmm/System.hpp" #include #include @@ -92,6 +92,13 @@ private: * @return Actual resource capacity */ double get_resource_capacity(int resource, const std::vector& bounded_players) const; + /** + * @brief Get maxmin share of the resource + * + * @param resource Internal index of resource in C_ vector + * @return maxmin share + */ + double get_maxmin_share(int resource) const; /** * @brief Auxiliary method to get list of bounded player from allocation * @@ -180,7 +187,7 @@ private: AllocationGenerator gen_; std::vector allocations_age_; static constexpr int NO_RESOURCE = -1; //!< flag to indicate player has selected no resource - int max_iteration_ = sg_bmf_max_iterations; //!< number maximum of iterations of BMF algorithm + int max_iteration_; //!< number maximum of iterations of BMF algorithm }; /** @@ -224,10 +231,10 @@ private: class XBT_PUBLIC BmfSystem : public System { public: using System::System; - /** @brief Implements the solve method to calculate a BMF allocation */ - void solve() final; private: + /** @brief Implements the solve method to calculate a BMF allocation */ + void do_solve() final; using allocation_map_t = std::unordered_map>; /** * @brief Solve equation system to find a fair-sharing of resources @@ -260,7 +267,6 @@ private: std::unordered_map idx2Var_; //!< Map player index (and position in matrices) to system's variable std::unordered_map cnst2idx_; //!< Conversely map constraint to index - bool warned_nonlinear_ = false; }; } // namespace lmm