FMT 0.9.8
Forest management tools for forest planning
Loading...
Searching...
No Matches
PYexportHeuristics.hpp
Go to the documentation of this file.
1/*
2Copyright (c) 2019 Gouvernement du Québec
3
4SPDX-License-Identifier: LiLiQ-R-1.1
5License-Filename: LICENSES/EN/LiLiQ-R11unicode.txt
6*/
7
8#ifndef PYEXPORTHEURISTICS_H_INCLUDED
9#define PYEXPORTHEURISTICS_H_INCLUDED
10
11
12#include "FMToperatingarea.hpp"
17//#include "FMTlpheuristicmthandler.hpp"
18#include "FMTlpsolver.hpp"
19#include "PYdefinitions.hpp"
20#include "boost/python.hpp"
21#include "FMTpythonpickle.hpp"
22
23namespace Python
24{
26{
27 namespace bp = boost::python;
28 bp::object HeuristicsModule(bp::handle<>(bp::borrowed(PyImport_AddModule("FMT.Heuristics"))));
29 bp::scope().attr("Heuristics") = HeuristicsModule;
30 bp::scope HeuristicsModule_scope = HeuristicsModule;
31 bp::scope().attr("__doc__") = ".. module:: Heuristics\n"
32 "\n"
33 " :platform: Unix, Windows\n"
34 " :synopsis: Module used for Heuristics.\n"
35 "\n";
36 #ifdef FMTWITHOSI
37
38 /*bp::class_<Heuristics::FMTlpheuristicmthandler>("FMTlpheuristicmthandler", "@DocString(FMTlpheuristicmthandler)")
39 //.def(bp::init<std::vector<Heuristics::FMToperatingareascheduler>&>())
40 //.def(bp::init<std::vector<Heuristics::FMToperatingareaclusterer>&>())
41 .def(bp::init<boost::python::list&,const double&>())
42 .def("initialsolve", &Heuristics::FMTlpheuristicmthandler::initialsolve,
43 "@DocString(FMTlpheuristicmthandler::initialsolve)")
44 .def("greedysolve", &Heuristics::FMTlpheuristicmthandler::greedysolve,
45 "@DocString(FMTlpheuristicmthandler::greedysolve)");*/
46
47 bp::class_<Heuristics::FMToperatingarea>("FMToperatingarea", "@DocString(FMToperatingarea)")
48 .def(bp::init<const Core::FMTmask&, const double&>())
49 .def_pickle(FMT_pickle_suite<Heuristics::FMToperatingarea>())
51 "@DocString(FMToperatingarea::getneighbors)")
53 "@DocString(FMToperatingarea::setneighbors)")
55 "@DocString(FMToperatingarea::getmask)")
56 .def("getneihgborsperimeter", &Heuristics::FMToperatingarea::getneihgborsperimeter,
57 "@DocString(FMToperatingarea::getneihgborsperimeter)");
58
59 define_pylist<Heuristics::FMToperatingarea>();
60
61 bp::class_<Heuristics::FMToperatingareascheme,bp::bases<Heuristics::FMToperatingarea>>("FMToperatingareascheme", "@DocString(FMToperatingareascheme)")
62 .def(bp::init<const Heuristics::FMToperatingarea&,const size_t&,const size_t&,
63 const size_t&, const size_t&, const size_t&, const size_t&, double>())
65 "@DocString(FMToperatingareascheme::presolve)");
66
67 define_pylist<Heuristics::FMToperatingareascheme>();
68
69 bp::class_<Heuristics::FMToperatingareaclusterbinary,bp::bases<Heuristics::FMToperatingarea>>("FMToperatingareaclusterbinary", "@DocString(FMToperatingareaclusterbinary)");
70
71 define_pylist<Heuristics::FMToperatingareaclusterbinary>();
72
73 bp::class_<Heuristics::FMToperatingareacluster>("FMToperatingareacluster", "@DocString(FMToperatingareacluster)")
74 .def(bp::init<const Heuristics::FMToperatingareacluster&,const double&, const double&>())
76 "@DocString(FMToperatingareacluster::getfilteredcluster)")
78 "@DocString(FMToperatingareacluster::getallmasks)")
80 "@DocString(FMToperatingareacluster::getcentroid)")
82 "@DocString(FMToperatingareacluster::setminimalarea)")
84 "@DocString(FMToperatingareacluster::setmaximalarea)");
85
86 define_pylist<Heuristics::FMToperatingareacluster>();
87
88 bp::class_<Heuristics::FMTlpheuristic, bp::bases<Core::FMTobject, Models::FMTlpsolver>>("FMTlpheuristic", "@DocString(Heuristics::FMTlpheuristic)");
89
90 bp::class_<Heuristics::FMToperatingareaclusterer, bp::bases<Heuristics::FMTlpheuristic>>("Heuristics::FMToperatingareaclusterer", "@DocString(FMToperatingareaclusterer)")
92 "@DocString(FMToperatingareaclusterer::initialsolve)")
94 "@DocString(FMToperatingareaclusterer::branchnboundsolve)")
96 "@DocString(FMToperatingareaclusterer::setnumberofsimulationpass)")
98 "@DocString(FMToperatingareaclusterer::getsolution)");
99
100 define_pylist<Heuristics::FMToperatingareaclusterer>();
101
102 bp::class_<Heuristics::FMToperatingareascheduler, bp::bases<Heuristics::FMTlpheuristic>>("Heuristics::FMToperatingareascheduler", "@DocString(FMToperatingareascheduler)")
104 "@DocString(FMToperatingareascheduler::initialsolve)")
106 "@DocString(FMToperatingareascheduler::branchnboundsolve)")
108 "@DocString(FMToperatingareaheuristic::getsolution)")
110 "@DocString(FMToperatingareascheduler::setasprimal)")
112 "@DocString(FMToperatingareascheduler::setproportionofset)");
113
114 define_pylist<Heuristics::FMToperatingareascheduler>();
115 #endif
116 }
117}
118#endif
Definition: FMToperatingarea.hpp:29
double getneihgborsperimeter() const
Core::FMTmask getmask() const
void setneighbors(const std::vector< Core::FMTmask > &lneighbors)
std::vector< Core::FMTmask > getneighbors() const
FMToperatingareacluster getfilteredcluster(const Core::FMTmask &filtermask) const
void setmaximalarea(const double &newmaximalarea)
FMToperatingareaclusterbinary getcentroid() const
Definition: FMToperatingareacluster.hpp:106
void setminimalarea(const double &newminimalarea)
std::vector< Core::FMTmask > getallmasks() const
std::vector< FMToperatingareacluster > getsolution() const
void setnumberofsimulationpass(const int &pass)
void setproportionofset(const double &proportion)
std::vector< Core::FMTtimeyieldhandler > getsolution(const std::string &yldname) const
FMToperatingareascheme presolve(const Core::FMTmask &selectedmask, const std::vector< Core::FMTtheme > &presolvedthemes) const
Definition: PYdefinitions.hpp:14
void exportHeuristics()
Definition: PYexportHeuristics.hpp:25