开关盒布线问题

什么是开关盒布线呢?
假如一个开关盒里面有十个接口,我们要连五条线,但是当我们规划完连线方式后,怎么判断这些线是不相交的呢?因为如果线相交那么线之间会相互影响,所以我们希望它们不相交。
以下是一个布线合理的例子。

假如有十个节点1,2,3,4,5,6,7,8布线规划为(1,4),(2,3),(5,6),(7,8)。
我们首先创建一个栈,将1压入栈中,然后增序查找,首先找到2由于2和1不是一个线对所以将2也压入栈,继续搜索3然后3和2是一个线对,从栈中删除2继续搜寻4发现1和4是一个线对,然后将1从栈中删除,然后继续搜寻5将5压入栈,发现5,6一个线对,删除5,搜寻7,7,8一个线对删除7最后栈空,开关盒布线不相交。

一个布线不合理的例子
布线规划为(1,5),(2,3),(4,7),(6,8)。
从1开始搜索,将1压入栈中,将2也压入栈中,发现接下来的三和2配对,将2从栈中删除,将4压入栈中,本来5和1是一个线对,但是栈顶为4,意味着4和5以后的一个节点会配合成一个线对,如果1和5配对,那么就会相交,所以将5也压入栈,6也压入栈,7也入栈,8也入栈。最后栈不为空,所以该布线不合理。

但是这个布线检查是有瑕疵的,因为它要求每个节点都必须进行连接,不过我们可以将不要求连线的节点从搜索队列中删除,这样就不受影响了。

猜你喜欢

转载自blog.csdn.net/du_shuang/article/details/81162544