if (FALSE) {
# set seed for reproducibility
set.seed(500)
sim_pu_raster <- get_sim_pu_raster()
sim_features <- get_sim_features()
sim_zones_pu_raster <- get_sim_zones_pu_raster()
sim_zones_features <- get_sim_zones_features()
# create base problem
p <-
problem(sim_pu_raster, sim_features) %>%
add_min_set_objective() %>%
add_binary_decisions() %>%
add_default_solver(verbose = FALSE)
# create problem with 10% targets
p1 <- p %>% add_relative_targets(0.1)
# create problem with varying targets for each feature
targets <- c(0.1, 0.2, 0.3, 0.4, 0.5)
p2 <- p %>% add_relative_targets(targets)
# solve problem
s3 <- c(solve(p1), solve(p2))
names(s3) <- c("10% targets", "varying targets")
# plot solution
plot(s3, main = , axes = FALSE)
# create a problem with multiple management zones
p4 <-
problem(sim_zones_pu_raster, sim_zones_features) %>%
add_min_set_objective() %>%
add_binary_decisions() %>%
add_default_solver(verbose = FALSE)
# create a problem with targets that specify an equal amount of each feature
# to be represented in each zone
p4_targets <- matrix(
0.1, nrow = 5, ncol = 3, dimnames = list(
feature_names(sim_zones_features), zone_names(sim_zones_features)
)
)
print(p4_targets)
p5 <- p4 %>% add_relative_targets(p4_targets)
# solve problem
s5 <- solve(p5)
# plot solution (pixel values correspond to zone identifiers)
plot(category_layer(s5), main = "equal targets")
# create a problem with targets that require a varying amount of each
# feature to be represented in each zone
p6_targets <- matrix(
runif(15, 0.01, 0.2), nrow = 5, ncol = 3, dimnames = list(
feature_names(sim_zones_features), zone_names(sim_zones_features)
)
)
print(p6_targets)
p6 <- p4 %>% add_relative_targets(p6_targets)
# solve problem
s6 <- solve(p6)
# plot solution (pixel values correspond to zone identifiers)
plot(category_layer(s6), main = "varying targets")
}
Run the code above in your browser using DataLab