Add two new features to assign:
In the top file, you can provide a 'node-hint', which is similar to a 'fix-node' in that it specifies a starting mapping for the virtual node. Unlike a fixed node, however, assign is allowed to move hinted nodes around all it wants. Add a '-t' option to assign that allows you to give a starting temperature, instead of going through the usual melting process. Together, these may be helpful with the pre-pass we're planning on incorporating into assign. During that pass, assign will be working on a coarsened version of the virtual graph, so there may be some places where decisions are made poorly due to the reduced information. After one run has been done with the coarsened version, we can run assign again with the full version of the graph, but with 'node-hints' that start virtual nodes where the first run decided. This will allow assign to fine-tune the results of the first mapping. Of course, we don't want this second run to take too long, so we'll want to start it with a low initial temperature (so that it basically just does hill-climbing), and probably use a fractional '-H' argument to prevent it from spending too long on large topologies.