View source: R/add_min_set_objective.R

add_min_set_objective | R Documentation |

Set the objective of a project prioritization `problem()`

to
minimize the cost of the solution whilst ensuring that all targets are met.
This objective is conceptually similar to that used in *Marxan*
(Ball, Possingham & Watts 2009).

add_min_set_objective(x)

`x` |
ProjectProblem object. |

A problem objective is used to specify the overall goal of the
project prioritization problem.
Here, the minimum set objective seeks to find the set of actions that
minimizes the overall cost of the prioritization, while ensuring that the
funded projects meet a set of persistence targets for the conservation
features (e.g. populations, species, ecosystems). Let *I* represent
the set of conservation actions (indexed by *i*). Let *C_i* denote
the cost for funding action *i*. Also, let *F* represent each
feature (indexed by *f*), *T_f* represent the persistence target
for feature *f*, and *E_f* denote the probability that each
feature will go extinct given the funded conservation projects.

To guide the prioritization, the conservation actions are organized into
conservation projects. Let *J* denote the set of conservation projects
(indexed by *j*), and let *A_{ij}* denote which actions
*i in I* comprise each conservation project
*j in J* using zeros and ones. Next, let *P_j* represent
the probability of project *j* being successful if it is funded. Also,
let *B_{fj}* denote the enhanced probability that each feature
*f in F* associated with the project *j in J*
will persist if all of the actions that comprise project *j* are funded
and that project is allocated to feature *f*.
For convenience,
let *Q_{fj}* denote the actual probability that each
*f in F* associated with the project *j in J*
is expected to persist if the project is funded. If the argument
to `adjust_for_baseline`

in the `problem`

function was set to
`TRUE`

, and this is the default behavior, then
*Q_{fj} = (P_j B_{fj}) + ((1 - (P_j
B_{fj})) * (P_n \times B_{fn}))*, where `n`

corresponds to the
baseline "do nothing" project. This means that the probability
of a feature persisting if a project is allocated to a feature
depends on (i) the probability of the project succeeding, (ii) the
probability of the feature persisting if the project does not fail,
and (iii) the probability of the feature persisting even if the project
fails. Otherwise, if the argument is set to `FALSE`

, then
*Q_{fj} = P_{j} * B_{fj}*.

The binary control variables *X_i* in this problem indicate whether
each project *i in I* is funded or not. The decision
variables in this problem are the *Y_{j}*, *Z_{fj}*, and *E_f*
variables.
Specifically, the binary *Y_{j}* variables indicate if project *j*
is funded or not based on which actions are funded; the binary
*Z_{fj}* variables indicate if project *j* is used to manage
feature *f* or not; and the semi-continuous *E_f* variables
denote the probability that feature *f* will go extinct.

Now that we have defined all the data and variables, we can formulate
the problem. For convenience, let the symbol used to denote each set also
represent its cardinality (e.g. if there are ten features, let *F*
represent the set of ten features and also the number ten).

*
Maximize sum_i^I C_i X_i (eqn 1a);
Subject to:
E_f <= T_f for all f in F (eqn 1b),
E_f = 1 - sum_j^J Y_{fj} Q_{fj} for all f in F (eqn 1c),
Z_{fj} <= Y_j for all j in J (eqn 1d),
sum_j^J Z_{fj} * ceil(Q_{fj}) = 1 for all f in F (eqn 1e),
A_{ij} Y_{j} <= X_{i} for all i I, j in J (eqn 1f),
E_f >= 0, E_f <= 1 for all f in F (eqn 1g),
X_i, Y_j, Z_{fj} in [0, 1] for all i in I, j in J, f in F (eqn 1h)
*

The objective (eqn 1a) is to minimize the cost of the funded actions.
Constraints (eqn 1b) ensure that the persistence targets are met.
Constraints (eqn 1c) calculate the probability that each feature
will go extinct according to their allocated project.
Constraints (eqn 1d) ensure that feature can only be allocated to projects
that have all of their actions funded. Constraints (eqn 1e) state that each
feature can only be allocated to a single project. Constraints (eqn 1f)
ensure that a project cannot be funded unless all of its actions are
funded. Constraints (eqns 1g) ensure that the probability variables
(*E_f*) are bounded between zero and one. Constraints (eqns 1h) ensure
that the action funding (*X_i*), project funding (*Y_j*), and
project allocation (*Z_{fj}*) variables are binary.

ProjectProblem object with the objective added to it.

Ball IR, Possingham HP & Watts M (2009) Marxan and relatives: software for
spatial conservation prioritisation.
*Spatial conservation prioritisation: Quantitative methods and
computational tools*, 185-195.

objectives, targets.

# load the ggplot2 R package to customize plot library(ggplot2) # load data data(sim_projects, sim_features, sim_actions) # build problem with minimum set objective and targets that require each # feature to have a 30% chance of persisting into the future p <- problem(sim_projects, sim_actions, sim_features, "name", "success", "name", "cost", "name") %>% add_min_set_objective() %>% add_absolute_targets(0.3) %>% add_binary_decisions() ## Not run: # solve problem s <- solve(p) # print solution print(s) # plot solution, and add a dashed line to indicate the feature targets plot(p, s) + geom_hline(yintercept = 0.3, linetype = "dashed") ## End(Not run)

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.