10#ifndef FMToperatingareacluster_Hm_included
11#define FMToperatingareacluster_Hm_included
14#include <boost/serialization/serialization.hpp>
15#include <boost/serialization/nvp.hpp>
16#include <boost/serialization/export.hpp>
41 const std::vector<FMTOperatingAreaClusterBinary>& p_neighborsbinaries);
50 const double& p_minimalarea,
51 const double& p_maximalarea);
89 inline std::vector<FMTOperatingAreaClusterBinary>
getBinaries()
const
136 return m_minimalarea;
145 return m_maximalarea;
204 friend class boost::serialization::access;
212 template<
class Archive>
213 void serialize(Archive& ar,
const unsigned int version)
215 ar & boost::serialization::make_nvp(
"maxvar", m_maxvar);
216 ar & boost::serialization::make_nvp(
"minvar", m_minvar);
217 ar & boost::serialization::make_nvp(
"minimalarea", m_minimalarea);
218 ar & boost::serialization::make_nvp(
"maximalarea", m_maximalarea);
219 ar & boost::serialization::make_nvp(
"binaries", m_binaries);
220 ar & boost::serialization::make_nvp(
"centroid", m_centroid);
230 double m_minimalarea;
233 double m_maximalarea;
236 std::vector<FMTOperatingAreaClusterBinary>m_binaries;
#define FMTEXPORT
Definition: FMTutility.h:125
Core class holding, as a boost dynamic bitset, which theme attributes are part of a mask.
Definition: FMTMask.h:96
Definition of a non clustered operating area, used by the FMTOperatingAreaCluster.
Definition: FMTOperatingAreaClusterBinary.h:32
Potential cluster of multiple operating areas.
Definition: FMTOperatingAreaCluster.h:27
FMTOperatingAreaClusterBinary getCentroid() const
Return the centroid binary of the cluster.
Definition: FMTOperatingAreaCluster.h:80
void setMinimalArea(const double &newminimalarea)
Set the minimal area of the cluster.
const FMTOperatingAreaClusterBinary & getBinary(const Core::FMTMask &mask) const
Return the binary of the cluster corresponding to a given mask.
FMTOperatingAreaCluster(const FMTOperatingAreaCluster &)=default
Default copy constructor for FMTOperatingAreaCluster.
void setMinimalObjectiveVariable(const int &lminvar)
Set the minimal objective variable of the cluster.
FMTOperatingAreaCluster()=default
Default constructor for FMTOperatingAreaCluster.
void setMaximalObjectiveVariable(const int &lmaxvar)
Set the maximal objective variable of the cluster.
FMTOperatingAreaCluster getFilteredCluster(const Core::FMTMask &filterMask) const
Return a cluster with the binaries not falling in a mask definition removed, which can reduce the num...
double getMinimalArea() const
Get the minimal area of the potential cluster considering the number of binaries in the cluster.
double getRealMaximalArea() const
Return the maximal area member of the cluster.
Definition: FMTOperatingAreaCluster.h:143
double getTotalPotentialArea() const
Get the maximal potential area of the cluster.
int getMaximalObjectiveVariable() const
Return the maximal objective variable.
Definition: FMTOperatingAreaCluster.h:98
double getMaximalArea() const
Get the maximal area of the potential cluster considering the number of binaries in the cluster.
void setMaximalArea(const double &newmaximalarea)
Set the potential maximal area of the cluster.
FMTOperatingAreaCluster(const FMTOperatingAreaCluster &p_basecluster, const double &p_minimalarea, const double &p_maximalarea)
Complete constructor for FMTOperatingAreaCluster from a base cluster and its minimal and maximal area...
std::vector< FMTOperatingAreaClusterBinary > getBinaries() const
Return the binaries of the cluster.
Definition: FMTOperatingAreaCluster.h:89
bool isValidArea(const double &area) const
Check if an area is valid for the cluster (between the bounds).
double getMaximalStats() const
Get the maximal statistic for the whole cluster.
~FMTOperatingAreaCluster()=default
Default destructor for FMTOperatingAreaCluster.
int getMinimalObjectiveVariable() const
Return the minimal objective variable.
Definition: FMTOperatingAreaCluster.h:107
std::vector< Core::FMTMask > getAllMasks() const
Return all the masks contained by the cluster, including the operating area centroid.
double getRealMinimalArea() const
Return the minimal area member of the cluster.
Definition: FMTOperatingAreaCluster.h:134
FMTOperatingAreaCluster(const FMTOperatingAreaClusterBinary &p_localcentroid, const std::vector< FMTOperatingAreaClusterBinary > &p_neighborsbinaries)
Incomplete constructor for FMTOperatingAreaCluster from a centroid and its neighbors binaries.
bool isValidAreaBounds() const
Validate that the minimal and maximal area set by the user respect the binaries present in the cluste...
Namespace regrouping all tools for solving LP/MIP problems using an heuristic.
Definition: FMTAreaParser.h:47