Add maximum feature representation objective
Set the objective of a conservation planning problem()
to
fulfill as many targets as possible while ensuring that the cost of the
solution does not exceed a budget.
add_max_features_objective(x, budget)
x |
|
budget |
|
A problem objective is used to specify the overall goal of the conservation planning problem. Please note that all conservation planning problems formulated in the prioritizr package require the addition of objectives—failing to do so will return an error message when attempting to solve problem.
The maximum feature representation objective is an enhanced version of the
maximum coverage objective add_max_cover_objective()
because
targets can be used to ensure that a certain amount of each feature is
required in order for them to be adequately represented (similar to the
minimum set objective (see add_min_set_objective()
). This
objective finds the set of planning units that meets representation targets
for as many features as possible while staying within a fixed budget
(inspired by Cabeza and Moilanen 2001). Additionally, weights can be used
add_feature_weights()
). If multiple solutions can meet the same
number of weighted targets while staying within budget, the cheapest
solution is returned.
The maximum feature objective for the reserve design problem can be expressed mathematically for a set of planning units (I indexed by i) and a set of features (J indexed by j) as:
Maximize sum_i^I (-s * ci * xi) + sum_j^J (yj * wj) subject to sum_i^I (xi * rij) >= (yj tj) for all j in J & sum_i^I (xi * ci) <= B
Here, xi is the decisions variable (e.g.
specifying whether planning unit i has been selected (1) or not
(0)), rij is the amount of feature j in planning
unit i, tj is the representation target for feature
j, yj indicates if the solution has meet
the target tj for feature j, and wj is the
weight for feature j (defaults to 1 for all features; see
add_feature_weights()
to specify weights). Additionally,
B is the budget allocated for the solution, ci is the
cost of planning unit i, and s is a scaling factor used
to shrink the costs so that the problem will return a cheapest solution
when there are multiple solutions that represent the same amount of all
features within the budget.
Object (i.e. ConservationProblem
) with the objective
added to it.
Cabeza M and Moilanen A (2001) Design of reserve networks and the persistence of biodiversity. Trends in Ecology & Evolution, 16: 242–248.
# load data data(sim_pu_raster, sim_pu_zones_stack, sim_features, sim_features_zones) # create problem with maximum features objective p1 <- problem(sim_pu_raster, sim_features) %>% add_max_features_objective(1800) %>% add_relative_targets(0.1) %>% add_binary_decisions() %>% add_default_solver(verbose = FALSE) ## Not run: # solve problem s1 <- solve(p1) # plot solution plot(s1, main = "solution", axes = FALSE, box = FALSE) ## End(Not run) # create multi-zone problem with maximum features objective, # with 10% representation targets for each feature, and set # a budget such that the total maximum expenditure in all zones # cannot exceed 3000 p2 <- problem(sim_pu_zones_stack, sim_features_zones) %>% add_max_features_objective(3000) %>% add_relative_targets(matrix(0.1, ncol = 3, nrow = 5)) %>% add_binary_decisions() %>% add_default_solver(verbose = FALSE) ## Not run: # solve problem s2 <- solve(p2) # plot solution plot(category_layer(s2), main = "solution", axes = FALSE, box = FALSE) ## End(Not run) # create multi-zone problem with maximum features objective, # with 10% representation targets for each feature, and set # separate budgets for each management zone p3 <- problem(sim_pu_zones_stack, sim_features_zones) %>% add_max_features_objective(c(3000, 3000, 3000)) %>% add_relative_targets(matrix(0.1, ncol = 3, nrow = 5)) %>% add_binary_decisions() %>% add_default_solver(verbose = FALSE) ## Not run: # solve problem s3 <- solve(p3) # plot solution plot(category_layer(s3), main = "solution", axes = FALSE, box = FALSE) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.