Learn R Programming

prioritizr (version 3.0.4)

add_max_phylo_objective: Add Maximum Phylogenetic Representation Objective

Description

Set an objective to find to find the solution that fulfills as much of a representative sample a phylogenetic tree as possible given a budget. This objective is similar to add_max_features_objective except that emphasis is placed on phylogenetic representation rather than target representation, and inspired by Faith (1992) and Rodrigues et al. (2002). This objective requires the ape package to be installed.

Usage

add_max_phylo_objective(x, budget, tree)

Arguments

budget

numeric value specifying the maximum expenditure of the prioritization.

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 both objectives and targets. Failing to do so will return a default error message when solving.

The maximum phylogenetic representation problem is similar to the maximum features problem in that it allows for both a budget and targets to be set. This problem 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.

The maximum phylogenetic representation 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:

$$\mathit{Maximize} \space \sum_{i = 1}^{I} -s \space c_i + \sum_{j = 1}^{J} m_b l_b \\ \mathit{subject \space to} \\ \sum_{i = 1}^{I} x_i r_{ij} >= y_j t_j \forall j \in J \\ m_b <= y_j \forall j \in T(b) \\ \sum_{i = 1}^{I} x_i c_i \leq B$$

Here, \(x_i\) is the decisions variable (e.g. specifying whether planning unit \(i\) has been selected (1) or not (0)), \(r_{ij}\) is the amount of feature \(j\) in planning unit \(i\), \(t_j\) is the representation target for feature \(j\), \(y_j\) indicates if the solution has meet the target \(t_j\) for feature \(j\). Additionally, \(T\) represents a phylogenetic tree containing features \(j\) and has the branches \(b\) associated within lengths \(l_b\). The binary variable \(m_b\) denotes if at least one feature associated with the branch \(b\) has met its representation as indicated by \(y_j\). For brevity, we denote the features \(j\) associated with branch \(b\) using \(T(b)\). Finally, \(B\) is the budget allocated for the solution, \(c_i\) 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.

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.

See Also

objectives.

Examples

Run this code
# NOT RUN {
# load data
data(sim_pu_raster, sim_features, sim_phylogeny)

# create problem
p <- problem(sim_pu_raster, sim_features) %>%
     add_max_phylo_objective(5000, sim_phylogeny) %>%
     add_relative_targets(0.1) %>%
     add_binary_decisions()
# }
# NOT RUN {
# solve problem
s <- solve(p)

# plot solution
plot(s, main = "solution", axes = FALSE, box = FALSE)
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab