Compile a conservation planning problem()
into an
(potentially mixed) integer linear programming problem.
compile(x, ...)
# S3 method for ConservationProblem
compile(x, compressed_formulation = NA, ...)
problem()
(i.e., ConservationProblem
) object.
not used.
logical
should the conservation problem
compiled into a compressed version of a planning problem?
If TRUE
then the problem is expressed using the compressed
formulation. If FALSE
then the problem is expressed using the
expanded formulation. If NA
, then the compressed is used unless one
of the constraints requires the expanded formulation. This argument
defaults to NA
.
OptimizationProblem
object.
This function might be useful for those interested in understanding
how their conservation planning problem()
is expressed
as a mathematical problem. However, if the problem just needs to
be solved, then the solve()
function should just be used.
Please note that in nearly all cases, the default argument to
formulation
should be used. The only situation where manually
setting the argument to formulation
is desirable is during testing.
Manually setting the argument to formulation
will at best
have no effect on the problem. At worst, it may result in
an error, a misspecified problem, or unnecessarily long
solve times.
# build minimal conservation problem
p <- problem(sim_pu_raster, sim_features) %>%
add_min_set_objective() %>%
add_relative_targets(0.1)
# compile the conservation problem into an optimization problem
o <- compile(p)
# print the optimization problem
print(o)
#> optimization problem
#> model sense: min
#> dimensions: 5, 90, 450 (nrow, ncol, ncell)
#> variables: 90 (B)