Add a shuffle portfolio
Generate a portfolio of solutions for a conservation planning
problem()
by randomly reordering the data prior to
solving the problem. This is recommended as a replacement for
add_top_portfolio()
when the Gurobi software is not
available.
add_shuffle_portfolio( x, number_solutions = 10L, threads = 1L, remove_duplicates = TRUE )
x |
|
number_solutions |
|
threads |
|
remove_duplicates |
|
This strategy for generating a portfolio of solutions often results in different solutions, depending on optimality gap, but may return duplicate solutions. In general, this strategy is most effective when problems are quick to solve and multiple threads are available for solving each problem separately.
Object (i.e. ConservationProblem
) with the portfolio
added to it.
# set seed for reproducibility set.seed(500) # load data data(sim_pu_raster, sim_features, sim_pu_zones_stack, sim_features_zones) # create minimal problem with shuffle portfolio p1 <- problem(sim_pu_raster, sim_features) %>% add_min_set_objective() %>% add_relative_targets(0.2) %>% add_shuffle_portfolio(10, remove_duplicates = FALSE) %>% add_default_solver(gap = 0.2, verbose = FALSE) ## Not run: # solve problem and generate 10 solutions within 20% of optimality s1 <- solve(p1) # plot solutions in portfolio plot(stack(s1), axes = FALSE, box = FALSE) ## End(Not run) # build multi-zone conservation problem with shuffle portfolio p2 <- 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_shuffle_portfolio(10, remove_duplicates = FALSE) %>% add_default_solver(gap = 0.2, verbose = FALSE) ## Not run: # solve the problem s2 <- solve(p2) # print solution str(s2, max.level = 1) # plot solutions in portfolio plot(stack(lapply(s2, category_layer)), main = "solution", axes = FALSE, box = FALSE) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.