move_one_node(soln, seed)
The node to move and the position to move to are chosen randomly. The first and last nodes are left untouched as soln must be a cycle starting at that node.
This function assumes that the incoming list
:None:None:`soln`
is a cycle (that the first and last element are the same) and also that we don't want any move to change the first node in the list (and thus not the last node either).The input list is changed as well as returned. Make a copy if needed.
Current cycle of nodes
Indicator of random number generation state. See Randomness<randomness>
.
The solution after move is applied. (A neighbor solution.)
Move one node to another position to give a neighbor solution.
The following pages refer to to this document either explicitly or contain code examples using this.
networkx.algorithms.approximation.traveling_salesman.swap_two_nodes
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them