10#ifndef FMToperatingarea_Hm_included
11#define FMToperatingarea_Hm_included
17#include <boost/serialization/serialization.hpp>
18#include <boost/serialization/nvp.hpp>
19#include <boost/serialization/export.hpp>
158 friend class boost::serialization::access;
159 template<
class Archive>
160 void serialize(Archive& ar,
const unsigned int version)
162 ar & boost::serialization::make_nvp(
"mask", m_mask);
163 ar & boost::serialization::make_nvp(
"neighbors", m_neighbors);
164 ar & boost::serialization::make_nvp(
"neighborsperimeter", m_neighborsperimeter);
165 ar & boost::serialization::make_nvp(
"_area", m_area);
#define FMTEXPORT
Definition: FMTutility.h:125
Filter built from masks used to preSolve and postsolve FMTMask objects.
Definition: FMTMaskFilter.h:31
Core class holding, as a boost dynamic bitset, which theme attributes are part of a mask.
Definition: FMTMask.h:96
Comparator to find a FMTOperatingArea with std::find_if when operating areas are in an stl container.
Definition: FMTOperatingArea.h:174
FMTOperatingAreaComparator(const FMTOperatingArea &oparea)
Construct the comparator from an operating area.
bool operator()(const FMTOperatingArea &oparea) const
Comparator for FMTOperatingArea.
FMTOperatingAreaComparator(const Core::FMTMask &lmask)
Construct the comparator from a mask reference.
Operating area giving information about its mask, neighbors and neighbors perimeter.
Definition: FMTOperatingArea.h:29
double getNeighborsPerimeter() const
Return the percentage of perimeter the operating area needs to share with another operating area to b...
std::vector< Core::FMTMask > m_neighbors
Neighbors mask of the operating area.
Definition: FMTOperatingArea.h:143
std::vector< Core::FMTMask > getNeighbors() const
Return a copy of the neighbors masks of the operating area.
double m_neighborsperimeter
neighborsperimeter is the ratio a operatingarea needs to share to a other operatingarea to be conside...
Definition: FMTOperatingArea.h:146
virtual ~FMTOperatingArea()=default
Default destructor for FMTOperatingArea.
double m_area
The initial area of the operating area used as big M for the MIP.
Definition: FMTOperatingArea.h:149
Core::FMTMask m_mask
The mask describing the operating area.
Definition: FMTOperatingArea.h:140
FMTOperatingArea(const Core::FMTMask &lmask, const double &lneighborsperimeter)
Main constructor for FMTOperatingArea from a mask and a neighbors perimeter.
FMTOperatingArea(const FMTOperatingArea &rhs)=default
Copy constructor for FMTOperatingArea.
void setNeighbors(const std::vector< Core::FMTMask > &lneighbors)
Set the neighbors masks of the operating area.
FMTOperatingArea()=default
Default constructor for FMTOperatingArea.
FMTOperatingArea postSolveOperatingArea(const Core::FMTMaskFilter &filter, const std::vector< Core::FMTTheme > &basethemes) const
Return a postsolved FMTOperatingArea using a mask filter and the original themes.
FMTOperatingArea preSolveOperatingArea(const Core::FMTMaskFilter &filter, const std::vector< Core::FMTTheme > &presolvedthemes) const
Return a presolved FMTOperatingArea using a mask filter and a subset of the original themes.
Core::FMTMask getMask() const
Return the mask of the operating area.
void setArea(const double &newarea)
Set the area of the operating area.
double getArea() const
Get the area of the operating area.
Namespace regrouping all tools for solving LP/MIP problems using an heuristic.
Definition: FMTAreaParser.h:47