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)