0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

电路板电路布线设计相关问题

西西 来源:博客园 作者:祥昊 2020-08-08 11:01 次阅读

问题

在一块电路板的上下两端分别有n个接线柱。根据电路设计,要求用导线 (i,π(i)),将上端接线柱 i 与下端接线柱 π(i) 相连,

如图,其中 π(i),1《=i《=n,是(1,2……,n)的一个排列。导线(i,π(i))称为该电路板上的第i条连线。对于任何 1《=i《s《=n,第i条连线和第s条连线相交的充分且必要条件是 π(i) 》 π(s)。

ps:注意 π(pi) 和 n,不是小写的n,别看错了

问:在制作电路板时,要求将这n条线分布到若干个绝缘层上,在同一层上的连线不能相交。电路布线问题要确定将哪些连线安排在第一层上,使得该层上有尽可能多的连线。

详细说明

首先 上下各有 n 个接线柱,用 a[i] 数组表示 与 上接线柱 相连线的 下接线柱,再用 set[i][j] 表示上接线柱 i 与下接线柱 j 相连线的 左边(包括 i ,j 连线)的最大不相交连线的个数。

ps(这里的 j ,i 和上面问题中说的不是一个东西,这里的 i指的是上接线柱,j指的是下接线柱)

1、公式如下:

如果 j != a[i] 则 max( set[i-1][j],set[i][j-1] )

set[i,j] =

如果 j == a[i] 则 set[i-1][j-1] + 1

循环遍历 i 和 j ,具体使用 i X j 的嵌套循环,其实就是每一个上接线柱和每一个下接线柱做一次匹配,这样就可以得出结果,set[n][n]即我们想要的结果。最后通过回溯把结果输出出来

==》 j == a[i],表示当上图中的某个上下接线柱相连时,这时这两个点不会在和其他的接线柱相连,

这时在 (i ,j) 处的最大不相交连线的个数就应该是就是 第 i-1个上接线柱 和第 j-1个下接线柱时的 最大不相交连线的个数 + 1。这个+1很重要。

==》 j != a[i],表示当上图中的某个上下接线柱相连时,这时 i 点和 非 j 点相连, j 点和 非 i 点相连,

这时在( i ,j) 处的最大不相交连线的个数就应该和 ( i - 1,j ) 处最大不相交连线的个数、 ( i,j - 1)处最大不相交连线的个数中较大的最大不相交连线的个数相同。

2、参考图如下:

红色标明的就是算法选择的路径(向上优先,也可以用向左优先,答案都是四个,但值会有一点不同)。在斜角值改变时可以取得所求的子集。即 9-》10,7-》9, 5-》5, 3-》4

代码块

#include 《stdio.h》

#include 《stdlib.h》

#define MAX( a, b ) ( (a) 》 (b) ? (a) : (b) )

void circut( int a[], int set[][11], int n );

void back_track( int i, int j, int set[][11] );

int main()

{

int a[] = { 0, 8, 7, 4, 2, 5, 1, 9, 3, 10, 6 };

int set[11][11];

circut( a, set, 10 );

printf( “max set: %d \n”, set[10][10] );

back_track( 10, 10, set );

printf( “\n” );

system( “pause” );

return(0);

}

void circut( int a[], int set[][11], int n )

{

int i, j;

for ( i = 0; i 《 n; i++ )

{

set[i][0] = 0;

set[0][i] = 0;

}

for ( i = 1; i 《= n; i++ )

{

for ( j = 1; j 《= n; j++ )

{

if ( a[i] != j )

set[i][j] = MAX( set[i - 1][j], set[i][j - 1] );

else

set[i][j] = set[i - 1][j - 1] + 1;

}

}

}

void back_track( int i, int j, int set[][11] )

{

if ( i == 0 )

return;

if ( set[i][j] == set[i - 1][j] )

back_track( i - 1, j, set );

else if ( set[i][j] == set[i][j - 1] )

back_track( i, j - 1, set );

else{

back_track( i - 1, j - 1, set );

printf( “(%d,%d) ”, i, j );

}

}

时间复杂度

circut 的时间复杂度为O(n2)

back_track的时间复杂度为 O(n)

如有错误请指正。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路板
    +关注

    关注

    140

    文章

    4621

    浏览量

    92445
  • 电路设计
    +关注

    关注

    6565

    文章

    2317

    浏览量

    195366
收藏 人收藏

    评论

    相关推荐

    PCB电路板布局布线设计交流

    PCB电路板布局布线设计交流
    发表于 01-19 22:27

    电子兼容和印刷电路板 理论设计和布线

    电子兼容和印刷电路板 理论设计和布线
    发表于 02-07 13:50

    射频(RF)电路板分区设计中PCB布局布线技巧

    射频(RF)电路板分区设计中PCB布局布线技巧
    发表于 08-16 16:51

    PCB(印制电路板)布局布线技巧100问

    PCB(印制电路板)布局布线技巧100问
    发表于 09-06 21:56

    讨论关于高频电路印制电路板布局布线与普通电路板区别

    如题高频电路 印制电路板设计 在实际布线中需要注意些什么? 怎样避免线路之间的干扰?
    发表于 02-27 11:17

    电路板布线设计(一)探索双层布线技艺

    成本时总是要求设计者在设计中使用双层电路板。虽然多层(四层、六层以及八层)的解决方式无论在尺寸、噪声,以及性能上都可以做得更好,但成本压力迫使工程师必须尽量使用双层。在本文中将讨论使用或不用自动
    发表于 04-28 11:45

    用3D打印机制造多层印刷电路板、柔性电路板乃至三维布线电路板

    利用台式喷墨打印机,使用银纳米墨等导电体墨水和电介质墨水,制作多层电路板、柔性电路板乃至三维布线电路板。用于制造这样的多层印刷电路板的3D打
    发表于 10-24 16:54

    硬件电路板设计信号线的分布和地线的布线

    ,在PCB设计过程中,应该遵循高频电路设计的基本原则。这就要求首先要注意电源的质量与分配,其次要注意信号线的分布和地线的布线。  1.电源质量与分配  在设计PCB时,给各个单元电路
    发表于 09-05 16:38

    浅谈PCB高频电路板布线(转载

    完成的高频电路板,该实用新型中的高频电路板结构简单,成本低,易于制造。PCB设计高频电路板布线技巧一、高速电子器件管脚间的引线弯折越少越好高频电路
    发表于 11-18 22:14

    PCB电路板设计流程

    进行检查和修正。   3、布置各零件封装的位置   可利用系统的自动布局功能,但自动布局功能并不太完善,需要进行手工调整各零件封装的位置。   4、进行电路板布线   电路板自动布线
    发表于 04-15 07:35

    电路板的分类与相关画法

    电路板的名称有:陶瓷电路板,氧化铝陶瓷电路板,氮化铝陶瓷电路板,线路,PCB,铝基板,高频
    发表于 05-23 07:26

    印制电路板布线流程

    、制订详细的布线规则  布线规则包括走线间距、各种线宽、过孔的大小、布线的拓扑结构等,这些规则需要根据所设计的电路板的实际情况进行设置。另外,还要在不希望有走线的区域内放置填充层,如散
    发表于 06-24 15:35

    电路板级的EMC设计相关资料分享

    电路板级的EMC设计(3) PCB布线技术文章目录电路板级的EMC设计(3) PCB布线技术文档简介第三部分:印制电路板
    发表于 11-12 08:43

    如何实现良好的电路板布局布线

      工程课程一般不会教授如何实现良好的电路板布局布线。高频RF类课程会研究走线阻抗的重要性,但需要自行构建系统电源的工程师,通常不会将电源视为高频系统,而忽视了电路板布局布线的重要性。
    发表于 11-15 08:27

    电路板布线设计的顺序

    电路板厂印制板进行布线设计的顺序可能不同,在电路板布线设计师准备进行设计布线之前,他的电路设计
    发表于 06-04 17:58 1609次阅读