delorie.com/archives/browse.cgi | search |
On Wed, 2012-12-12 at 21:27 +0100, gedau AT igor2 DOT repo DOT hu wrote: > My friend showed me a great approach how to apply this solution on our > problme. Using the original connection graph of the two shorted > net (enchanched netlist with the line segments and object forming new > edges and virtual nodes) wouldn't work because it would find the minimum > cut to split the whole graph in two. We need to modify the graph to get > minimal cut to respect what should stay on one part and what should stay > on the other. > > The modification is introducing two new virtual nodes called S and T (this > is some sort of convention, I think). Connect S to each net1 nodes with > edges of infinite weight; connect T to each net2 nodes with edges of > infinite weight. Assign a finite number (1, or the length of the line > segment) to all other edges. If minimal cut is ran on this new graph, it > will never cut an infinite weight edge, thus we keep our nets togheter. > It will cut finite weighted edges minimizing total weight cut, resolving > our short. > > If all original edges are assigned weight 1, it will find the minimum > amount of cuts needed for resolving the short. Nice ;) I thought we'd be able to modify one of the graph partitioning algorithms, but I hadn't appreciated how simple and elegant you could make the modification. -- Peter Clifton <peter DOT clifton AT clifton-electronics DOT co DOT uk> Clifton Electronics
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |