Learn R Programming

prioriactions (version 0.5.0)

getConnectivityPenalty: Extract connectivity penalty values

Description

Provides the connectivity penalty value for all actions and planning units in a solution.

Usage

getConnectivityPenalty(x)

Value

data.frame.

Arguments

x

solution or portfolio object.

Details

The connectivity penalty among is calculated as the sum of all connectivity penalties by each action and planning unit in the solution. This can be expressed mathematically for a set of planning units \(I\) indexed by \(i\) and \(j\), and a set of threats \(K\) indexed by \(k\) as:

$$ \sum_{k \in K}\sum_{i \in I_k}\sum_{j \in I_k} x_{ik} (1 - x_{jk})cv_{ij} $$

Where, \(x_{ik}\) is the decisions variable that specify whether an action has been selected to abate threat \(k\) in planning unit \(i\) (1) or not (0), \(cv_{ij}\) is the connectivity penalty that applies when a solution contains planning unit \(i\) but not \(j\) o viceversa.

Note that there is an action per threat, so it is assumed that the index of the threat coincides with the index of the action used to abate it.

Examples

Run this code
# \donttest{
# set seed for reproducibility
set.seed(14)

## Load data
data(sim_pu_data, sim_features_data, sim_dist_features_data,
sim_threats_data, sim_dist_threats_data, sim_sensitivity_data,
sim_boundary_data)

## Create data instance
problem_data <- inputData(
  pu = sim_pu_data, features = sim_features_data, dist_features = sim_dist_features_data,
  threats = sim_threats_data, dist_threats = sim_dist_threats_data,
  sensitivity = sim_sensitivity_data, boundary = sim_boundary_data
)

## Create optimization model
problem_model <- problem(x = problem_data, blm = 0.03)

## Solve the optimization model
s <- solve(a = problem_model, time_limit = 2, output_file = FALSE, cores = 2)

# get connectivity penalty values
getConnectivityPenalty(s)
# }

Run the code above in your browser using DataLab