Add a top portfolio
Generate a portfolio of solutions for a conservation planning
problem()
by finding a pre-specified number of solutions that
are closest to optimality (i.e the top solutions).
add_top_portfolio(x, number_solutions)
x |
|
number_solutions |
|
This strategy for generating a portfolio requires problems to
be solved using the Gurobi software suite (i.e. using
add_gurobi_solver()
. Specifically, version 9.0.0 (or greater)
of the gurobi package must be installed.
Note that the number of solutions returned may be less than the argument to
number_solutions
, if the total number of feasible solutions
is less than the number of solutions requested.
Object (i.e. ConservationProblem
) with the portfolio
added to it.
## Not run: # set seed for reproducibility set.seed(600) # load data data(sim_pu_raster, sim_features) # create minimal problem with a portfolio for the top 5 solutions p1 <- problem(sim_pu_raster, sim_features) %>% add_min_set_objective() %>% add_relative_targets(0.05) %>% add_top_portfolio(number_solutions = 5) %>% add_default_solver(gap = 0, verbose = FALSE) # solve problem and generate portfolio s1 <- solve(p1) # print number of solutions found print(length(s1)) # plot solutions plot(stack(s1), axes = FALSE, box = FALSE) # create multi-zone problem with a portfolio for the top 5 solutions 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_top_portfolio(number_solutions = 5) %>% add_default_solver(gap = 0, verbose = FALSE) # solve problem and generate portfolio s2 <- solve(p2) # print number of solutions found print(length(s2)) # 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.