Project problem class
This class is used to represent project prioritization problems. A
project prioritization problem has actions, projects,
and features. Features are the biological entities that need to
be conserved (e.g. species, populations, ecosystems). Actions are
real-world management actions that can be implemented for conservation
purposes (e.g. habitat restoration, monitoring, pest eradication). Each
action should have a known cost, and this usually means that each
action should have a defined spatial extent and time period (though this
is not necessary). Conservation projects are groups of management actions
(they can also comprise a singular action too), and each project is
associated with a probability of success if all of its associated actions
are funded. To determine which projects should be funded, each project is
associated with an probability of persistence for the
features that they benefit. These values should indicate the
probability that each feature will persist if only that project funded
and not the additional benefit relative to the baseline project. Missing
(NA
) values should be used to indicate which projects do not
enhance the probability of certain features.
Given these data, a project prioritization problem involves making a
decision about which actions should be funded or not---and in turn, which
projects should be funded or not---to maximize or minimize a specific
objective whilst meeting specific constraints. The objective for a project
prioritization problem will always pertain to the probability that
features are expected to persist. For example, an objective for a project
prioritization problem could be to maximize the maximize the total amount of
species that are expected to persist, or minimize the total cost of the
funded actions subject to constraints which ensure that each feature meets a
target level of persistence. The constraints in a project prioritization
problem can be used to specify additional requirements (e.g. certain
actions must be funded). Finally, a project prioritization problem---unlike
an optimization problem---also requires a method to solve the problem.
This class represents a planning problem, to actually build and then
solve a planning problem, use the problem()
function. Only
experts should use this class directly.
list
object containing data.
Objective object used to represent how the targets relate to the solution.
Decision object used to represent the type of decision made on planning units.
Target object used to represent representation targets for features.
Weight object used to represent feature weights.
Collection object used to represent additional constraints that the problem is subject to.
Solver object used to solve the problem.
x$print()
x$show()
x$repr()
x$get_data(name)
x$set_data(name, value)
feature_weights()
feature_phylogeny()
action_costs()
project_costs()
project_success_probabilities()
pf_matrix()
epf_matrix()
pa_matrix()
x$add_objective(obj)
x$add_decisions(dec)
x$add_constraint(con)
x$add_solver(sol)
x$add_targets(targ)
x$add_weights(wt)
x$get_constraint_parameter(id)
x$set_constraint_parameter(id, value)
x$render_constraint_parameter(id)
x$render_all_constraint_parameters()
x$get_objective_parameter(id)
x$set_objective_parameter(id, value)
x$render_objective_parameter(id)
x$render_all_objective_parameters()
x$get_solver_parameter(id)
x$set_solver_parameter(id, value)
x$render_solver_parameter(id)
x$render_all_solver_parameters()
print the object.
show the object.
return character
representation of the object.
return an object stored in the data
field with
the corresponding name
. If the object is not present in the
data
field, a waiver
object is returned.
store an object stored in the data
field with
the corresponding name. If an object with that name already
exists then the object is overwritten.
integer
number of actions.
integer
number of projects.
integer
number of features.
character
names of actions in the problem.
character
names of projects in the problem.
character
names of features in the problem.
character
feature weights.
ape::phylo()
phylogenetic tree object.
numeric
costs for each action.
numeric
costs for each project.
numeric
probability that
each project will succeed.
Matrix::dgCMatrix object denoting the enhanced probability that features will persist if different projects are funded.
Matrix::dgCMatrix object denoting the enhanced
probability that features is expected to persist if different projects are
funded. This is calculated as the pf_matrix
multiplied by the
project success probabilities.
Matrix::dgCMatrix object indicating which actions are associated with which projects.
tibble::tibble()
with feature targets.
return a new ProjectProblem with the objective added to it.
return a new ProjectProblem object with the decision added to it.
return a new ProjectProblem object with the solver added to it.
return a new ProjectProblem object with the constraint added to it.
return a copy with the targets added to the problem.
get the value of a parameter (specified by
argument id
) used in one of the constraints in the object.
set the value of a parameter (specified by
argument id
) used in one of the constraints in the object to
value
.
generate a shiny widget to modify
the value of a parameter (specified by argument id
).
generate a shiny div
containing all the parameters' widgets.
get the value of a parameter (specified by
argument id
) used in the object's objective.
set the value of a parameter (specified by
argument id
) used in the object's objective to value
.
generate a shiny widget to modify
the value of a parameter (specified by argument id
).
generate a shiny div
containing all the parameters' widgets.
get the value of a parameter (specified by
argument id
) used in the object's weights.
set the value of a parameter (specified by
argument id
) used in the object's weights to value
.
generate a shiny widget to modify
the value of a parameter (specified by argument id
).
generate a shiny div
containing all the parameters' widgets.
get the value of a parameter (specified by
argument id
) used in the object's solver.
set the value of a parameter (specified by
argument id
) used in the object's solver to value
.
generate a shiny widget to modify
the value of a parameter (specified by argument id
).
generate a shiny div
containing all the parameters' widgets.