Calculates the randomized shortest path distance between points.

`rSPDistance(x, from, to, theta, totalNet = "net", method = 1)`

## Arguments

- x
`TransitionLayer`

object

- from
point locations coordinates (of SpatialPoints,
matrix or numeric class)

- to
point locations coordinates (of SpatialPoints,
matrix or numeric class)

- theta
theta is the degree from which the path randomly
deviates from the shortest path, 0 < theta < 20

- totalNet
total or net movements between cells

- method
method 1 (as defined in Saerens et al.) or
method 2 (a modified version, see below in Details)

## Value

distance matrix (S3 class dist or matrix)

## Details

The function implements the algorithm given by Saerens et al. (2009).

Method 1 implements the method as it is.
Method 2 uses W = exp(-theta * ln(P)).

## References

Saerens M., L. Yen, F. Fouss, and Y. Achbany. 2009.
Randomized shortest-path problems: two related models.
*Neural Computation*, 21(8):2363-2404.

## Examples

```
#Create a new raster and set all its values to unity.
r <- raster(nrows=18, ncols=36)
r <- setValues(r,rep(1,ncell(raster)))
#Create a Transition object from the raster
tr <- transition(r,mean,4)
#> The extent and CRS indicate this raster is a global lat/lon raster. This means that transitions going off of the East or West edges will 'wrap' to the opposite edge.
#> Global lat/lon rasters are not supported under new optimizations for 4 and 8 directions with custom transition functions. Falling back to old method.
#Create two sets of coordinates
sP1 <- SpatialPoints(cbind(c(65,5,-65),c(55,35,-35)))
sP2 <- SpatialPoints(cbind(c(50,15,-40),c(80,20,-5)))
#Calculate the RSP distance between the points
rSPDistance(tr, sP1, sP2, 1)
#> [,1] [,2] [,3]
#> [1,] 3.054101 9.061349 16.079315
#> [2,] 9.082282 3.048942 8.058728
#> [3,] 23.095346 13.073405 6.055039
```