Learn R Programming

ergm (version 4.7.1)

shrink_into_CH: Identify the position of a point relative to the convex hull of a set of points

Description

This function uses linear programming to find the value by which vector p needs to be scaled towards or away from vector m in order for p to be on the boundary of the convex hull of rows of M. If p is a matrix, a value that scales all rows of p into the convex hull of M is found.

Usage

shrink_into_CH(
  p,
  M,
  m = NULL,
  verbose = FALSE,
  max_run = nrow(M),
  ...,
  solver = c("glpk", "lpsolve")
)

Value

The scaling factor described above is returned. shrink_into_CH() >= 1 indicates that all points in p are in the convex hull of M.

Arguments

p

a \(d\)-dimensional vector or a matrix with \(d\) columns.

M

an \(n\) by \(d\) matrix. Each row of M is a \(d\)-dimensional vector.

m

a \(d\)-dimensional vector specifying the value towards which to shrink; must be in the interior of the convex hull of \(M\), and defaults to its centroid (column means).

verbose

A logical or an integer to control the amount of progress and diagnostic information to be printed. FALSE/0 produces minimal output, with higher values producing more detail. Note that very high values (5+) may significantly slow down processing.

max_run

if there are no decreases in step length in this many consecutive test points, conclude that diminishing returns have been reached and finish.

...

arguments passed directly to linear program solver.

solver

a character string selecting which solver to use; by default, tries Rglpk's but falls back to lpSolveAPI's.

References

https://www.cs.mcgill.ca/~fukuda/soft/polyfaq/node22.html