失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 动态规划-电路布线问题

动态规划-电路布线问题

时间:2018-12-06 14:08:11

相关推荐

动态规划-电路布线问题

问题描述:在一块电路板的上、下2端分别有n个接线柱。根据电路设计,要求用导线(i,π(i))将上端接线柱与下端接线柱相连,如图所示。其中π(i)是{1,2,…,n}的一个排列。导线(i,π(i))称为该电路板上的第i条连线。对于任何1≤i<j≤n,第i条连线和第j条连线相交的充分且必要的条件是π(i)>π(j)。

电路布线问题要确定将哪些连线安排在第一层上,使得该层上有尽可能多的连线。换句话说,该问题要求确定导线集Nets={(i,π(i)),1≤i≤n}的最大不相交子集。

总结一下题干:①第i条连线和第j条连线相交要满足的条件:π(i)>π(j)

②主要有这几个变量:1≤i≤n,1≤j≤n代表接线柱,π代表一种排列

主要要解决的问题:我要确定第一层怎么设计才能向上摞其他电路板,怎么摞?随便摞吗?不是的,我要考虑怎么让第一层电路板的连线最多。好,下面开始搭建数学模型:

记录N(i,j)的最大不相交子集为MNS(i,j)。Size(i,j)=|MNS(i,j)|。(Size(i,j)代表条数)

①当i等于1时,

我详细解释一下这个公式什么意思:在i等于1这种情况下,在已经存在连线π(1)的后面都可以安排线相连,但是在π(1)之前的线无法相连。

②当i大于1时,又分成三种情况:

2.1 j<π(i)时,这个时候划线的结果是前一个接线柱划线的结果(举例:N(2,7) = N (1,7),这个时候因为大于这个对应关系的线已经不需要画上了,所以对应的情况就是N(1,7)的划线情况)

即:此时, 。故在这种情况下,N(i,j)=N(i-1,j),从而Size(i,j)=Size(i-1,j)。

2.2 j≥π(i)时,

存在选择线和不选择线两种情况,我们只需要比较两个情况的最大值进行输出就可以了

最后呢,我们可以列出递推公式:

代码的话,可以参考一下这篇博客:/huangxy10/article/details/7782865

如果觉得《动态规划-电路布线问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。