# Set an objective to maximize the integral index of connectivity

Source:`R/set_max_iic_objective.R`

`set_max_iic_objective.Rd`

Specify that a restoration problem (`restopt_problem()`

) should
the integral index of connectivity (IIC).

## Arguments

- problem
`restopt_problem()`

Restoration problem object.- distance_threshold
`numeric`

greater than 0. Minimum distance (in`unit`

) between two patches to consider them connected in the computation of the IIC. The default value -1 causes the function to use 1 aggregated cell as the distance threshold.- unit
`unit`

object or a`character`

that can be coerced to a distance unit (see`unit`

package), or "cells" for cell width of aggregated habitat raster. Units of the`distance_threshold`

parameter. If the input habitat raster does not use a projected coordinate system, only "cells" is available. Meters by default, expected if`distance_threshold`

is set to its default value (-1), which causes the function to use 1 cell by default.

## Value

An updated restoration problem (`restopt_problem()`

object.

## Details

The integral index of connectivity (IIC) is a graph-based inter-patch
connectivity index based on a binary connection model (Pascual-Hortal &
Saura, 2006). Its maximization in the context of restoration favours
restoring the structural connectivity between large patches. IIC is unitless
and comprised between 0 (no connectivity) and 1 (all the landscape is
habitat, thus fully connected). The `distance_threshold`

parameter indicates
to the solver how to construct the habitat graph, i.e. what is the minimum
distance between two patches to consider them as connected. Note that, as
the computation occurs on aggregated cells, if `distance_threshold`

is used
with a different unit than "cells", it will be rounded to the closest
corresponding number of cells.

## References

Pascual-Hortal, L., & Saura, S. (2006). Comparison and development of new graph-based landscape connectivity indices: Towards the priorization of habitat patches and corridors for conservation. Landscape Ecology, 21(7), 959‑967. https://doi.org/10.1007/s10980-006-0013-z

## See also

Other objectives:
`set_max_mesh_objective()`

,
`set_max_nb_pus_objective()`

,
`set_max_restore_objective()`

,
`set_min_nb_pus_objective()`

,
`set_min_restore_objective()`

,
`set_no_objective()`

## Examples

```
# \donttest{
# load data
habitat_data <- rast(
system.file("extdata", "habitat_hi_res.tif", package = "restoptr")
)
locked_out_data <- rast(
system.file("extdata", "locked_out.tif", package = "restoptr")
)
# create problem with locked out constraints
p <- restopt_problem(
existing_habitat = habitat_data,
aggregation_factor = 16,
habitat_threshold = 0.7
) %>%
set_max_iic_objective() %>%
add_restorable_constraint(
min_restore = 5,
max_restore = 5,
) %>%
add_locked_out_constraint(data = locked_out_data) %>%
add_settings(time_limit = 1)
# print problem
print(p)
#> -----------------------------------------------------------------
#> Restopt
#> -----------------------------------------------------------------
#> original habitat: habitat_hi_res.tif
#> aggregation factor: 16
#> habitat threshold: 0.7
#> existing habitat: in memory
#> restorable habitat: in memory
#> -----------------------------------------------------------------
#> objective: Maximize integral index of connectivity
#> -----------------------------------------------------------------
#> constraints:
#> - restorable (min_restore = 5, max_restore = 5, min_proportion = 1, unit = ha)
#> - locked out (data = in memory)
#> -----------------------------------------------------------------
#> settings:
#> - precision = 4
#> - time_limit = 1
#> - nb_solutions = 1
#> - optimality_gap = 0
#> - solution_name_prefix = Solution
#> -----------------------------------------------------------------
# solve problem
s <- solve(p)
#> Note: The current solution is the best that the solver could find within the time limit. However, the solver had not enough to prove whether it is optimal or not. Consider increasing the time limit if you need a better solution (solving time = 1.01 s)
# plot solution
plot(s)
# }
```