net routing ordering problem

73 Views Asked by At

I hope I'm not misusing terms, so I'll try to explain the problem in a few words and would appreciate any insight on how to minimize the run-time of the code or increase chances of success.

There are several 'nets' on the grid. Each net has two points that needs to be connected so that a net can be considered closed, otherwise it's open. The nets are being closed with wires which exist or a small number of layers and they can not intersect.

A routing algorithm gets a list of n nets. It tried to rout the 1st net. If it managed to do so it continues to the second net and so on. If at some point the router fails, it will re-arrange the un-routed nets list in such a way that the next net to rout won't be the one that fail in the last run. This continues until the last net is reached or that there are no more possible arrangements for the remaining nets.

The main problem with this approach is that the order of nets might affect the outcome in a way that even selection of the 1st net might fail the entire run and there is no way to know that before running through all options which take too much time.

I'm looking for an alternative approach to tackle this problem. I won't be dealing with more than 10 nets at a time (that's also a lot).

enter image description here