# NOT RUN {
# set seed for reproducibility
set.seed(600)
# load data
data(sim_pu_raster, sim_features, sim_pu_zones_stack, sim_features_zones)
# }
# NOT RUN {
# create minimal problem with pool portfolio
p1 <- problem(sim_pu_raster, sim_features) %>%
add_min_set_objective() %>%
add_relative_targets(0.05) %>%
add_pool_portfolio() %>%
add_default_solver(gap = 0, verbose = FALSE)
# solve problem
s1 <- solve(p1)
# print number of solutions found
print(length(s1))
# plot solutions
plot(stack(s1), axes = FALSE, box = FALSE)
# create minimal problem with pool portfolio and find the top 5 solutions
p2 <- problem(sim_pu_raster, sim_features) %>%
add_min_set_objective() %>%
add_relative_targets(0.05) %>%
add_pool_portfolio(method = 2, number_solutions = 5) %>%
add_default_solver(gap = 0, verbose = FALSE)
# solve problem
s2 <- solve(p2)
# print number of solutions found
print(length(s2))
# plot solutions
plot(stack(s2), axes = FALSE, box = FALSE)
# build multi-zone conservation problem with pool portfolio
p3 <- problem(sim_pu_zones_stack, sim_features_zones) %>%
add_min_set_objective() %>%
add_relative_targets(matrix(runif(15, 0.1, 0.2), nrow = 5,
ncol = 3)) %>%
add_binary_decisions() %>%
add_pool_portfolio() %>%
add_default_solver(gap = 0, verbose = FALSE)
# solve the problem
s3 <- solve(p3)
# print number of solutions found
print(length(s3))
# print solutions
str(s3, max.level = 1)
# plot solutions in portfolio
plot(stack(lapply(s3, category_layer)), main = "solution", axes = FALSE,
box = FALSE)
# }
Run the code above in your browser using DataLab