# Constructs weight decreasing hamiltonian paths

### Description

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.

### Usage

1 |

### Arguments

`d` |
A |

`path1` |
A vector giving a hamiltonian.
This will be the first path of the returned hamiltonian. The default is obtained from |

`paths` |
A matrix where each row is a hamiltonian. Default comes from |

`matrix` |
if |

`cycle` |
If |

`path_weight` |
A function used combine path weights into a single value. Default function is |

`path_dir` |
A function used to evaluate a path start and orientation. |

`...` |
passed to |

### Details

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`

.

### Author(s)

C.B. Hurley and R.W. Oldford

### References

see overview

### See Also

`hpaths`

, `eulerian`

.

### Examples

1 2 3 4 5 | ```
require(PairViz)
weighted_hpaths(dist(rnorm(6)))
weighted_hpaths(dist(rnorm(7)))
``` |