Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

add_max_phylo_end_objective

Add maximum phylogenetic endemism objective


Description

Set the objective of a conservation planning problem() to maximize the phylogenetic endemism of the features represented in the solution subject to a budget. This objective is similar to add_max_phylo_end_objective() except that emphasis is placed on representing species with geographically restricted evolutionary histories, instead representing as much evolutionary history as possible. This function was inspired by Faith (1992), Rodrigues et al. (2002), and Rosauer et al. (2009).

Usage

add_max_phylo_end_objective(x, budget, tree)

Arguments

x

problem() (i.e. ConservationProblem) object.

budget

numeric value specifying the maximum expenditure of the prioritization. For problems with multiple zones, the argument to budget can be a single numeric value to specify a budget for the entire solution or a numeric vector to specify a budget for each each management zone.

tree

phylo() object specifying a phylogenetic tree for the conservation features.

Details

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 phylogenetic endemism objective finds the set of planning units that meets representation targets for a phylogenetic tree while staying within a fixed budget. If multiple solutions can meet all targets while staying within budget, the cheapest solution is chosen. Note that this objective is similar to the maximum features objective (add_max_features_objective()) in that it allows for both a budget and targets to be set for each feature. However, unlike the maximum feature objective, the aim of this objective is to maximize the total phylogenetic endemism of the targets met in the solution, so if multiple targets are provided for a single feature, the problem will only need to meet a single target for that feature for the phylogenetic benefit for that feature to be counted when calculating the phylogenetic endemism of the solution. In other words, for multi-zone problems, this objective does not aim to maximize the phylogenetic endemism in each zone, but rather this objective aims to maximize the phylogenetic endemism of targets that can be met through allocating planning units to any of the different zones in a problem. This can be useful for problems where targets pertain to the total amount held for each feature across multiple zones. For example, each feature might have a non-zero amount of suitable habitat in each planning unit when the planning units are assigned to a (i) not restored, (ii) partially restored, or (iii) completely restored management zone. Here each target corresponds to a single feature and can be met through the total amount of habitat in planning units present to the three zones.

The maximum phylogenetic endemism 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 (mb * lb * (1 / ab)) subject to sum_i^I (xi * rij) >= (yj * tj) for all j in J & mb <= yj for all j in T(b) & 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. Additionally, T represents a phylogenetic tree containing features j and has the branches b associated within lengths lb. Each branch b in B is associated with a total amount ab indicating the total geographic extent or amount of habitat. The ab variable for a given branch is calculated by summing the rij data for all features j in J that are associated with the branch. The binary variable mb denotes if at least one feature associated with the branch b has met its representation as indicated by yj. For brevity, we denote the features j associated with branch b using T(b). Finally, 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.

Value

Object (i.e. ConservationProblem) with the objective added to it.

References

Faith DP (1992) Conservation evaluation and phylogenetic diversity. Biological Conservation, 61: 1–10.

Rodrigues ASL and Gaston KJ (2002) Maximising phylogenetic diversity in the selection of networks of conservation areas. Biological Conservation, 105: 103–111.

Rosauer D, Laffan SW, Crisp, MD, Donnellan SC and Cook LG (2009) Phylogenetic endemism: a new approach for identifying geographical concentrations of evolutionary history. Molecular Ecology, 18: 4061–4072.

See Also

Examples

# load ape package
require(ape)

# load data
data(sim_pu_raster, sim_features, sim_phylogeny, sim_pu_zones_stack,
     sim_features_zones)

# plot the simulated phylogeny
## Not run: 
par(mfrow = c(1, 1))
plot(sim_phylogeny, main = "phylogeny")

## End(Not run)
# create problem with a maximum phylogenetic endemism objective,
# where each feature needs 10% of its distribution to be secured for
# it to be adequately conserved and a total budget of 1900
p1 <- problem(sim_pu_raster, sim_features) %>%
      add_max_phylo_end_objective(1900, sim_phylogeny) %>%
      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)

# find out which features have their targets met
r1 <- eval_target_coverage_summary(p1, s1)
print(r1, width = Inf)

# plot the phylogeny and color the adequately represented features in red
plot(sim_phylogeny, main = "adequately represented features",
     tip.color = replace(
       rep("black", nlayers(sim_features)),
       sim_phylogeny$tip.label %in% r1$feature[r1$met],
       "red"))

## End(Not run)
# rename the features in the example phylogeny for use with the
# multi-zone data
sim_phylogeny$tip.label <- feature_names(sim_features_zones)

# create targets for a multi-zone problem. Here, each feature needs a total
# of 10 units of habitat to be conserved among the three zones to be
# considered adequately conserved
targets <- tibble::tibble(
  feature = feature_names(sim_features_zones),
  zone = list(zone_names(sim_features_zones))[rep(1,
          number_of_features(sim_features_zones))],
  type = rep("absolute", number_of_features(sim_features_zones)),
  target = rep(10, number_of_features(sim_features_zones)))

# create a multi-zone problem with a maximum phylogenetic endemism
# objective, where the total expenditure in all zones is 5000.
p2 <- problem(sim_pu_zones_stack, sim_features_zones) %>%
      add_max_phylo_end_objective(5000, sim_phylogeny) %>%
      add_manual_targets(targets) %>%
      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)

# find out which features have their targets met
r2 <- eval_target_coverage_summary(p2, s2)
print(r2, width = Inf)

# plot the phylogeny and color the adequately represented features in red
plot(sim_phylogeny, main = "adequately represented features",
     tip.color = replace(rep("black", nlayers(sim_features)),
                         which(r2$met), "red"))

## End(Not run)
# create a multi-zone problem with a maximum phylogenetic endemism
# objective, where each zone has a separate budget.
p3 <- problem(sim_pu_zones_stack, sim_features_zones) %>%
      add_max_phylo_end_objective(c(2500, 500, 2000), sim_phylogeny) %>%
      add_manual_targets(targets) %>%
      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)

# find out which features have their targets met
r3 <- eval_target_coverage_summary(p3, s3)
print(r3, width = Inf)

# plot the phylogeny and color the adequately represented features in red
plot(sim_phylogeny, main = "adequately represented features",
     tip.color = replace(rep("black", nlayers(sim_features)),
                         which(r3$met), "red"))

## End(Not run)

prioritizr

Systematic Conservation Prioritization in R

v7.0.1
GPL-3
Authors
Jeffrey O Hanson [aut] (<https://orcid.org/0000-0002-4716-6134>), Richard Schuster [aut, cre] (<https://orcid.org/0000-0003-3191-7869>), Nina Morrell [aut], Matthew Strimas-Mackey [aut] (<https://orcid.org/0000-0001-8929-7776>), Matthew E Watts [aut], Peter Arcese [aut] (<https://orcid.org/0000-0002-8097-482X>), Joseph Bennett [aut] (<https://orcid.org/0000-0002-3901-9513>), Hugh P Possingham [aut] (<https://orcid.org/0000-0001-7755-996X>)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.