Skip to contents

Encourage cohesion of the selected planning units, regardless of which action is implemented within each unit.

Usage

add_objective_min_fragmentation_planning_units(
  x,
  relation_name = "boundary",
  weight_multiplier = 1,
  alias = NULL
)

Arguments

x

A Problem object.

relation_name

Character string giving the name of the spatial relation to use. The relation must already exist in x$data$spatial_relations.

weight_multiplier

Numeric scalar greater than or equal to zero. Global multiplier applied to the relation weights when the objective is built.

alias

Optional identifier used to register this objective for multi-objective workflows.

Value

An updated Problem object.

Details

This objective uses planning-unit selection variables \(w_i\) and a spatial relation registered with add_spatial_relations() or add_spatial_boundary(). Relation weights \(\omega_{ij}\) are scaled by weight_multiplier.

The underlying model uses \(y_{ij}=w_i \land w_j\) to record whether neighbouring units are both selected, encouraging spatially consolidated selections. Action identities do not enter this spatial criterion: adjacent units receiving different actions are part of the same selected planning-unit set.

Without another requirement, selecting no units can be optimal. Combine this objective with a budget equality, an area requirement, or an ecological target that ensures meaningful management activity. For action-specific cohesion, see add_objective_min_fragmentation_action().

Repeated calls

With alias = NULL, one explicit single objective can be defined per problem; a second unaliased definition raises an error. With an alias, objectives accumulate under distinct names; a repeated alias raises an error. Aliased definitions preserve an explicitly configured single objective. To compare alternatives, start from the problem before its objective was added.

References

Ball, I. R., Possingham, H. P., and Watts, M. E. (2009). Marxan and relatives: software for spatial conservation prioritisation. In Spatial Conservation Prioritization: Quantitative Methods and Computational Tools, pp. 185–195. doi:10.1093/oso/9780199547760.003.0014

Önal, H., and Briers, R. A. (2002). Incorporating spatial criteria in optimum reserve network selection. Proceedings of the Royal Society B, 269, 2437–2441. doi:10.1098/rspb.2002.2183

Examples

# EXAMPLE: Select a cohesive set of 12 planning units
#
# With one feasible action costing one unit, a budget equality
# forces exactly 12 selected units. Without this requirement,
# minimising fragmentation alone could select no units.
sim <- load_sim_multiaction()

p <- create_problem(
  pu = sim$planning_units,
  features = sim$features,
  dist_features = sim$dist_features,
  cost = "cost"
) |>
  add_actions(data.frame(id = "restore"), cost = 1) |>
  add_spatial_boundary(name = "boundary", include_self = TRUE) |>
  add_constraint_budget(12, "equal", include_pu_cost = FALSE) |>
  add_objective_min_fragmentation_planning_units(
    relation_name = "boundary", alias = "pu_fragmentation"
  )

# Cohesion is evaluated for the selected planning-unit pattern,
# irrespective of action identity. No additional objective is used.
if (requireNamespace("rcbc", quietly = TRUE) &&
    requireNamespace("ggplot2", quietly = TRUE)) {
  solutions <- solve(set_solver_cbc(p, time_limit = 30, verbose = FALSE))
  get_objectives(solutions, format = "wide")
  plot_spatial_planning_units(solutions)
}