Add semi-continuous decisions
Add a semi-continuous decision to a conservation planning
problem(). This is a relaxed decision where a part of a planning
unit can be prioritized, as opposed to the entire planning unit, which is
the default function (see add_binary_decisions()).
This decision is similar to the add_proportion_decisions()
function except that it has an upper bound parameter. By default, the
decision can range from prioritizing none (0%) to all (100%) of a
planning unit. However, an upper bound can be specified to ensure that at
most only a fraction (e.g. 80%) of a planning unit can be preserved. This
type of decision may be useful when it is not practical to conserve entire
planning units.
add_semicontinuous_decisions(x, upper_limit)
x |
|
upper_limit |
|
Conservation planning problems involve making decisions on planning
units. These decisions are then associated with actions (e.g. turning a
planning unit into a protected area). If no decision is explicitly added to
a problem, then the binary decision class will be used by default. Only a
single decision should be added to a ConservationProblem object.
Note that if multiple decisions are added to a problem object, then the
last one to be added will be used.
Object (i.e. ConservationProblem) with the decisions 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 semi-continuous decisions
p1 <- problem(sim_pu_raster, sim_features) %>%
add_min_set_objective() %>%
add_relative_targets(0.1) %>%
add_semicontinuous_decisions(0.5) %>%
add_default_solver(verbose = FALSE)
## Not run:
# solve problem
s1 <- solve(p1)
# plot solutions
plot(s1, main = "solution")
## End(Not run)
# build multi-zone conservation problem with semi-continuous decisions
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_semicontinuous_decisions(0.5) %>%
add_default_solver(verbose = FALSE)
## Not run:
# solve the problem
s2 <- solve(p2)
# print solution
print(s2)
# plot solution
# panels show the proportion of each planning unit allocated to each zone
plot(s2, axes = FALSE, box = FALSE)
## End(Not run)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.