Internally it handles the points and the possible matchings as a bi-partite
graphs and finds an optimal matching due to euclidean distance by an
efficient linear programming solver.
getOptimalPointMatching(x, y, method = "lp", full.output = FALSE)
Arguments
x |
[Network | matrix ]
First network or matrix of coordinates of the first point set. |
y |
[Network | matrix ]
Second network or matrix of coordinates of the second point set. |
method |
[character(1) ]
Method used to solve the assignment problem. There are currently two methods
available:
- lp
Solves the problem be means of linear programming with the
lpSolve package to optimality. This is the default.
- push_relabel
The assignment problem can be formulated as a
matching problem on bipartite graphs. This method makes use of the
push-relabel algorithm from the igraph. Solves to optimality.
- random
Random point matching. Just for comparisson.
- greedy
Greedy point matching, i.e., iterativeely assign two unmatched
points with minimal euclidean distance.
|
full.output |
[logical(1) ]
Should optimization process information, e.g., the weight of the best matching,
be returned?
Default is FALSE . |
Value
[matrix | list
]
Either a matrix where each row consists of the indizes of the pairwise
assigned points.
If full.output = TRUE
a list is returned with the assignment matrix “pm”,
the method “method” and the optimal weight “opt.weight”.
See also