Returns a modified version of paths
, where
component paths/cycles are re-oriented so low weight edges occur first, and the component paths/cycles are then permuted so low-weight paths are first.
weighted_hpaths(d, path1 = NULL, paths=NULL, matrix=TRUE, cycle=NULL,
path_weight=sum, path_dir = path_cor,...)
A dist
, used to provide edge weights.
A vector giving a hamiltonian.
This will be the first path of the returned hamiltonian. The default is obtained from order_tsp
.
A matrix where each row is a hamiltonian. Default comes from hpaths
.
if TRUE
, returns a matrix where each row is a hamiltonian
path, otherwise concatenates the rows into a vector. For odd n
, the starting node is appended to close the eulerian.
If TRUE
, the weighted_hpaths
algorithm evaluates
path_weight
on hamiltonian cycles, if FALSE
, on open hamiltonian paths.
Default is TRUE
for odd n and FALSE
for even n
.
A function used combine path weights into a single value. Default function is path_cor
.
A function used to evaluate a path start and orientation.
passed to path_weight
If path
is not provided, find the hamiltonian (path for even n, cycle for odd n) with the smallest total
weight. Applying path_dir
to edge weights, pick the starting and point orientation for path1 giving the largest path_dir
value. (For open paths, there are only two possible starts, for cycles there are n).
Apply this node labelling to the hamiltonians in the rows of paths.
Use criterion path_dir
again to find the best orientation for each of rows 2... of paths and
permute these rows in order of increasing path_weight
.
see overview
# NOT RUN {
require(PairViz)
weighted_hpaths(dist(rnorm(6)))
weighted_hpaths(dist(rnorm(7)))
# }
Run the code above in your browser using DataCamp Workspace